From owner-svn-src-head@freebsd.org Sun Feb 28 00:24:14 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B693AB5CDF; Sun, 28 Feb 2016 00:24:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 395C71086; Sun, 28 Feb 2016 00:24:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1S0ODe3099148; Sun, 28 Feb 2016 00:24:13 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1S0ODEi099147; Sun, 28 Feb 2016 00:24:13 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201602280024.u1S0ODEi099147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 28 Feb 2016 00:24:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296151 - head/etc/mtree X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 00:24:14 -0000 Author: emaste Date: Sun Feb 28 00:24:13 2016 New Revision: 296151 URL: https://svnweb.freebsd.org/changeset/base/296151 Log: Sort subdirectories in BSD.debug.dist Modified: head/etc/mtree/BSD.debug.dist Modified: head/etc/mtree/BSD.debug.dist ============================================================================== --- head/etc/mtree/BSD.debug.dist Sat Feb 27 23:39:59 2016 (r296150) +++ head/etc/mtree/BSD.debug.dist Sun Feb 28 00:24:13 2016 (r296151) @@ -13,10 +13,10 @@ .. .. lib - geom - .. casper .. + geom + .. .. libexec .. From owner-svn-src-head@freebsd.org Sun Feb 28 00:57:04 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1C7DAA796B; Sun, 28 Feb 2016 00:57:04 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9DD121175; Sun, 28 Feb 2016 00:57:04 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-io0-x234.google.com with SMTP id 9so151518623iom.1; Sat, 27 Feb 2016 16:57:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=A6WO9tMCe621hvd5xFNHBKCoY5OXE6NZmDwXqCm+/dY=; b=EGwu2dT4IyKSDhtMGF/hUbCzhqMquVDcIGUeL+EopPuyc+IvhaUswVEqM6Fc8qwNuk 4WWLtaSXRv+ItAfqEXhMZ8/bwCgPNCWBTRs/Y5nRmRKHcjwQU8+YLMPAiVgNYRN/k28e 6q/Uf5komcqtDhPbuzo5aSDBarv7jOEsZMgZpK5Z6gJnH8BWgZdm8GhjV8H+a+gls5kJ oIYZ08kTzQBt2cAKqN502s7iaadp9wbGgXpmEdZteh9WM0kJQ/m/UDkqsOdLXfzsYmVE Zpy/J3FCJzIhfGsLHdaUdJ6bRv/Y83hKEasSgVQdK3q0BZOmSxBN8f8vyxoX9kqZHa3+ TshA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=A6WO9tMCe621hvd5xFNHBKCoY5OXE6NZmDwXqCm+/dY=; b=HUelnLHn7ZdYf1zmhjS1Tp6jvijKwr3JQljy27S2Zqeyu8NUU3iI3d4I+j4eGpUeqK +QUD5s1pwWacowdGfJN5q4t6eRssuF6a+po/fvzjo/dJtJW/j5MZx33McSiyj0hmUFNz phS9qL5kUgSr9xVnij3j9iGkGGcEA/HZ3X3ZoEl38kHf8NVA3X3/4hLcPzBo3dnLpUCC 8noEYCq/K76uTlYGDHmepxv6V5iiXKaBWrnCPfac8ExaVm4OKtkbvvWUVXtOm8LsjkFw qhtRKW8HqbxwiVah3Hh6McoTIyB3a0z5T0LCCyE/iysyypnZ6M98PSjawcbmgKvFqXsb wckA== X-Gm-Message-State: AG10YOSjhkETrjFKqt1xsi5vsVpOexUuDa0nSHRsWDV3FE3pAmN+z6ThkqDf4Zh9ICukOnvryfvwdFkAAIbIww== MIME-Version: 1.0 X-Received: by 10.107.11.231 with SMTP id 100mr13454799iol.165.1456621023618; Sat, 27 Feb 2016 16:57:03 -0800 (PST) Received: by 10.36.14.19 with HTTP; Sat, 27 Feb 2016 16:57:03 -0800 (PST) In-Reply-To: <201602271203.u1RC37xT075430@repo.freebsd.org> References: <201602271203.u1RC37xT075430@repo.freebsd.org> Date: Sat, 27 Feb 2016 16:57:03 -0800 Message-ID: Subject: Re: svn commit: r296138 - in head/sys: arm/arm arm/include kern sys From: Adrian Chadd To: Svatopluk Kraus Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 00:57:05 -0000 hi, I think this was mostly shared with kan's MIPS work on the CI20 as the IPI stuff via the gic is effectively the same. Can we make this (again) something we can share, but optionally? -a On 27 February 2016 at 04:03, Svatopluk Kraus wrote: > Author: skra > Date: Sat Feb 27 12:03:07 2016 > New Revision: 296138 > URL: https://svnweb.freebsd.org/changeset/base/296138 > > Log: > Move IPI related parts back to (ARM) machine specific file now, when > the interrupt framework is also going to be used by another (MIPS) > architecture. IPI implementations may vary much across different > architectures. > > An IPI implementation should still define INTR_IPI_COUNT and use > intr_ipi_setup_counters() to setup IPI counters which are inside of > intrcnt[] and intrnames[] arrays. Those are used for sysctl and ddb. > Then, intr_ipi_increment_count() should be used to increment obtained > counter. > > Reviewed by: imp > Differential Revision: https://reviews.freebsd.org/D5459 > > Modified: > head/sys/arm/arm/machdep_intr.c > head/sys/arm/include/intr.h > head/sys/kern/subr_intr.c > head/sys/sys/intr.h > > Modified: head/sys/arm/arm/machdep_intr.c > ============================================================================== > --- head/sys/arm/arm/machdep_intr.c Sat Feb 27 03:38:01 2016 (r296137) > +++ head/sys/arm/arm/machdep_intr.c Sat Feb 27 12:03:07 2016 (r296138) > @@ -52,11 +52,22 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#include > > #include > #include > #include > #include > +#include > + > +#ifdef ARM_INTRNG > +#include "pic_if.h" > + > +#ifdef SMP > +static struct intr_irqsrc ipi_sources[INTR_IPI_COUNT]; > +static u_int ipi_next_num; > +#endif > +#endif > > /* > * arm_irq_memory_barrier() > @@ -121,3 +132,127 @@ arm_irq_memory_barrier(uintptr_t irq) > cpu_l2cache_drain_writebuf(); > } > > +#ifdef ARM_INTRNG > +#ifdef SMP > +/* > + * Lookup IPI source. > + */ > +static struct intr_irqsrc * > +intr_ipi_lookup(u_int ipi) > +{ > + > + if (ipi >= INTR_IPI_COUNT) > + panic("%s: no such IPI %u", __func__, ipi); > + > + return (&ipi_sources[ipi]); > +} > + > +/* > + * interrupt controller dispatch function for IPIs. It should > + * be called straight from the interrupt controller, when associated > + * interrupt source is learned. Or from anybody who has an interrupt > + * source mapped. > + */ > +void > +intr_ipi_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf) > +{ > + void *arg; > + > + KASSERT(isrc != NULL, ("%s: no source", __func__)); > + > + intr_ipi_increment_count(isrc->isrc_count, PCPU_GET(cpuid)); > + > + /* > + * Supply ipi filter with trapframe argument > + * if none is registered. > + */ > + arg = isrc->isrc_arg != NULL ? isrc->isrc_arg : tf; > + isrc->isrc_ipifilter(arg); > +} > + > +/* > + * Map IPI into interrupt controller. > + * > + * Not SMP coherent. > + */ > +static int > +ipi_map(struct intr_irqsrc *isrc, u_int ipi) > +{ > + boolean_t is_percpu; > + int error; > + > + if (ipi >= INTR_IPI_COUNT) > + panic("%s: no such IPI %u", __func__, ipi); > + > + KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); > + > + isrc->isrc_type = INTR_ISRCT_NAMESPACE; > + isrc->isrc_nspc_type = INTR_IRQ_NSPC_IPI; > + isrc->isrc_nspc_num = ipi_next_num; > + > + error = PIC_REGISTER(intr_irq_root_dev, isrc, &is_percpu); > + if (error == 0) { > + isrc->isrc_dev = intr_irq_root_dev; > + ipi_next_num++; > + } > + return (error); > +} > + > +/* > + * Setup IPI handler to interrupt source. > + * > + * Note that there could be more ways how to send and receive IPIs > + * on a platform like fast interrupts for example. In that case, > + * one can call this function with ASIF_NOALLOC flag set and then > + * call intr_ipi_dispatch() when appropriate. > + * > + * Not SMP coherent. > + */ > +int > +intr_ipi_set_handler(u_int ipi, const char *name, intr_ipi_filter_t *filter, > + void *arg, u_int flags) > +{ > + struct intr_irqsrc *isrc; > + int error; > + > + if (filter == NULL) > + return(EINVAL); > + > + isrc = intr_ipi_lookup(ipi); > + if (isrc->isrc_ipifilter != NULL) > + return (EEXIST); > + > + if ((flags & AISHF_NOALLOC) == 0) { > + error = ipi_map(isrc, ipi); > + if (error != 0) > + return (error); > + } > + > + isrc->isrc_ipifilter = filter; > + isrc->isrc_arg = arg; > + isrc->isrc_handlers = 1; > + isrc->isrc_count = intr_ipi_setup_counters(name); > + isrc->isrc_index = 0; /* it should not be used in IPI case */ > + > + if (isrc->isrc_dev != NULL) { > + PIC_ENABLE_INTR(isrc->isrc_dev, isrc); > + PIC_ENABLE_SOURCE(isrc->isrc_dev, isrc); > + } > + return (0); > +} > + > +/* > + * Send IPI thru interrupt controller. > + */ > +void > +pic_ipi_send(cpuset_t cpus, u_int ipi) > +{ > + struct intr_irqsrc *isrc; > + > + isrc = intr_ipi_lookup(ipi); > + > + KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); > + PIC_IPI_SEND(intr_irq_root_dev, isrc, cpus); > +} > +#endif > +#endif > > Modified: head/sys/arm/include/intr.h > ============================================================================== > --- head/sys/arm/include/intr.h Sat Feb 27 03:38:01 2016 (r296137) > +++ head/sys/arm/include/intr.h Sat Feb 27 12:03:07 2016 (r296138) > @@ -51,6 +51,15 @@ > > #include > > +#ifdef SMP > +void intr_ipi_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf); > + > +#define AISHF_NOALLOC 0x0001 > + > +int intr_ipi_set_handler(u_int ipi, const char *name, intr_ipi_filter_t *filter, > + void *arg, u_int flags); > +#endif > + > #else /* ARM_INTRNG */ > > /* XXX move to std.* files? */ > > Modified: head/sys/kern/subr_intr.c > ============================================================================== > --- head/sys/kern/subr_intr.c Sat Feb 27 03:38:01 2016 (r296137) > +++ head/sys/kern/subr_intr.c Sat Feb 27 12:03:07 2016 (r296138) > @@ -89,7 +89,7 @@ void intr_irq_handler(struct trapframe * > > /* Root interrupt controller stuff. */ > static struct intr_irqsrc *irq_root_isrc; > -static device_t irq_root_dev; > +device_t intr_irq_root_dev; > static intr_irq_filter_t *irq_root_filter; > static void *irq_root_arg; > static u_int irq_root_ipicount; > @@ -115,9 +115,6 @@ u_int irq_next_free; > > #ifdef SMP > static boolean_t irq_assign_cpu = FALSE; > - > -static struct intr_irqsrc ipi_sources[INTR_IPI_COUNT]; > -static u_int ipi_next_num; > #endif > > /* > @@ -239,36 +236,20 @@ isrc_setup_counters(struct intr_irqsrc * > > #ifdef SMP > /* > - * Virtualization for interrupt source IPI counter increment. > - */ > -static inline void > -isrc_increment_ipi_count(struct intr_irqsrc *isrc, u_int cpu) > -{ > - > - isrc->isrc_count[cpu]++; > -} > - > -/* > * Virtualization for interrupt source IPI counters setup. > */ > -static void > -isrc_setup_ipi_counters(struct intr_irqsrc *isrc, const char *name) > +u_long * > +intr_ipi_setup_counters(const char *name) > { > u_int index, i; > char str[INTRNAME_LEN]; > > index = atomic_fetchadd_int(&intrcnt_index, MAXCPU); > - isrc->isrc_index = index; > - isrc->isrc_count = &intrcnt[index]; > - > for (i = 0; i < MAXCPU; i++) { > - /* > - * We do not expect any race in IPI case here, > - * so locking is not needed. > - */ > snprintf(str, INTRNAME_LEN, "cpu%d:%s", i, name); > intrcnt_setname(str, index + i); > } > + return (&intrcnt[index]); > } > #endif > > @@ -679,7 +660,7 @@ intr_isrc_assign_cpu(void *arg, int cpu) > struct intr_irqsrc *isrc = arg; > int error; > > - if (isrc->isrc_dev != irq_root_dev) > + if (isrc->isrc_dev != intr_irq_root_dev) > return (EINVAL); > > mtx_lock(&isrc_table_lock); > @@ -926,7 +907,7 @@ intr_pic_claim_root(device_t dev, intptr > * Note that we further suppose that there is not threaded interrupt > * routine (handler) on the root. See intr_irq_handler(). > */ > - if (irq_root_dev != NULL) { > + if (intr_irq_root_dev != NULL) { > device_printf(dev, "another root already set\n"); > return (EBUSY); > } > @@ -949,7 +930,7 @@ intr_pic_claim_root(device_t dev, intptr > device_printf(dev, "failed to install root pic handler\n"); > return (error); > } > - irq_root_dev = dev; > + intr_irq_root_dev = dev; > irq_root_filter = filter; > irq_root_arg = arg; > irq_root_ipicount = ipicount; > @@ -1211,132 +1192,6 @@ dosoftints(void) > > #ifdef SMP > /* > - * Lookup IPI source. > - */ > -static struct intr_irqsrc * > -intr_ipi_lookup(u_int ipi) > -{ > - > - if (ipi >= INTR_IPI_COUNT) > - panic("%s: no such IPI %u", __func__, ipi); > - > - return (&ipi_sources[ipi]); > -} > - > -/* > - * interrupt controller dispatch function for IPIs. It should > - * be called straight from the interrupt controller, when associated > - * interrupt source is learned. Or from anybody who has an interrupt > - * source mapped. > - */ > -void > -intr_ipi_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf) > -{ > - void *arg; > - > - KASSERT(isrc != NULL, ("%s: no source", __func__)); > - > - isrc_increment_ipi_count(isrc, PCPU_GET(cpuid)); > - > - /* > - * Supply ipi filter with trapframe argument > - * if none is registered. > - */ > - arg = isrc->isrc_arg != NULL ? isrc->isrc_arg : tf; > - isrc->isrc_ipifilter(arg); > -} > - > -/* > - * Map IPI into interrupt controller. > - * > - * Not SMP coherent. > - */ > -static int > -ipi_map(struct intr_irqsrc *isrc, u_int ipi) > -{ > - boolean_t is_percpu; > - int error; > - > - if (ipi >= INTR_IPI_COUNT) > - panic("%s: no such IPI %u", __func__, ipi); > - > - KASSERT(irq_root_dev != NULL, ("%s: no root attached", __func__)); > - > - isrc->isrc_type = INTR_ISRCT_NAMESPACE; > - isrc->isrc_nspc_type = INTR_IRQ_NSPC_IPI; > - isrc->isrc_nspc_num = ipi_next_num; > - > - error = PIC_REGISTER(irq_root_dev, isrc, &is_percpu); > - > - debugf("ipi %u mapped to %u on %s - error %d\n", ipi, ipi_next_num, > - device_get_nameunit(irq_root_dev), error); > - > - if (error == 0) { > - isrc->isrc_dev = irq_root_dev; > - ipi_next_num++; > - } > - return (error); > -} > - > -/* > - * Setup IPI handler to interrupt source. > - * > - * Note that there could be more ways how to send and receive IPIs > - * on a platform like fast interrupts for example. In that case, > - * one can call this function with ASIF_NOALLOC flag set and then > - * call intr_ipi_dispatch() when appropriate. > - * > - * Not SMP coherent. > - */ > -int > -intr_ipi_set_handler(u_int ipi, const char *name, intr_ipi_filter_t *filter, > - void *arg, u_int flags) > -{ > - struct intr_irqsrc *isrc; > - int error; > - > - if (filter == NULL) > - return(EINVAL); > - > - isrc = intr_ipi_lookup(ipi); > - if (isrc->isrc_ipifilter != NULL) > - return (EEXIST); > - > - if ((flags & AISHF_NOALLOC) == 0) { > - error = ipi_map(isrc, ipi); > - if (error != 0) > - return (error); > - } > - > - isrc->isrc_ipifilter = filter; > - isrc->isrc_arg = arg; > - isrc->isrc_handlers = 1; > - isrc_setup_ipi_counters(isrc, name); > - > - if (isrc->isrc_dev != NULL) { > - mtx_lock(&isrc_table_lock); > - PIC_ENABLE_INTR(isrc->isrc_dev, isrc); > - PIC_ENABLE_SOURCE(isrc->isrc_dev, isrc); > - mtx_unlock(&isrc_table_lock); > - } > - return (0); > -} > - > -/* > - * Send IPI thru interrupt controller. > - */ > -void > -pic_ipi_send(cpuset_t cpus, u_int ipi) > -{ > - struct intr_irqsrc *isrc; > - > - isrc = intr_ipi_lookup(ipi); > - > - KASSERT(irq_root_dev != NULL, ("%s: no root attached", __func__)); > - PIC_IPI_SEND(irq_root_dev, isrc, cpus); > -} > - > -/* > * Init interrupt controller on another CPU. > */ > void > @@ -1346,10 +1201,10 @@ intr_pic_init_secondary(void) > /* > * QQQ: Only root PIC is aware of other CPUs ??? > */ > - KASSERT(irq_root_dev != NULL, ("%s: no root attached", __func__)); > + KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); > > //mtx_lock(&isrc_table_lock); > - PIC_INIT_SECONDARY(irq_root_dev); > + PIC_INIT_SECONDARY(intr_irq_root_dev); > //mtx_unlock(&isrc_table_lock); > } > #endif > @@ -1360,25 +1215,6 @@ DB_SHOW_COMMAND(irqs, db_show_irqs) > u_int i, irqsum; > struct intr_irqsrc *isrc; > > -#ifdef SMP > - for (i = 0; i <= mp_maxid; i++) { > - struct pcpu *pc; > - u_int ipi, ipisum; > - > - pc = pcpu_find(i); > - if (pc != NULL) { > - for (ipisum = 0, ipi = 0; ipi < INTR_IPI_COUNT; ipi++) { > - isrc = intr_ipi_lookup(ipi); > - if (isrc->isrc_count != NULL) > - ipisum += isrc->isrc_count[i]; > - } > - printf ("cpu%u: total %u ipis %u\n", i, > - pc->pc_cnt.v_intr, ipisum); > - } > - } > - db_printf("\n"); > -#endif > - > for (irqsum = 0, i = 0; i < NIRQ; i++) { > isrc = irq_sources[i]; > if (isrc == NULL) > > Modified: head/sys/sys/intr.h > ============================================================================== > --- head/sys/sys/intr.h Sat Feb 27 03:38:01 2016 (r296137) > +++ head/sys/sys/intr.h Sat Feb 27 12:03:07 2016 (r296138) > @@ -39,6 +39,8 @@ > #ifndef _SYS_INTR_H_ > #define _SYS_INTR_H_ > > +#include > + > #ifdef notyet > #define INTR_SOLO INTR_MD1 > typedef int intr_irq_filter_t(void *arg, struct trapframe *tf); > @@ -101,6 +103,8 @@ u_int intr_namespace_map_irq(device_t de > u_int intr_fdt_map_irq(phandle_t, pcell_t *, u_int); > #endif > > +extern device_t intr_irq_root_dev; > + > int intr_pic_register(device_t dev, intptr_t xref); > int intr_pic_unregister(device_t dev, intptr_t xref); > int intr_pic_claim_root(device_t dev, intptr_t xref, intr_irq_filter_t *filter, > @@ -117,14 +121,19 @@ u_int intr_irq_next_cpu(u_int current_cp > #ifdef SMP > int intr_irq_bind(u_int, int); > > -void intr_ipi_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf); > - > -#define AISHF_NOALLOC 0x0001 > +void intr_pic_init_secondary(void); > > -int intr_ipi_set_handler(u_int ipi, const char *name, intr_ipi_filter_t *filter, > - void *arg, u_int flags); > +/* Virtualization for interrupt source IPI counter increment. */ > +static inline void > +intr_ipi_increment_count(u_long *counter, u_int cpu) > +{ > + > + KASSERT(cpu < MAXCPU, ("%s: too big cpu %u", __func__, cpu)); > + counter[cpu]++; > +} > > -void intr_pic_init_secondary(void); > +/* Virtualization for interrupt source IPI counters setup. */ > +u_long * intr_ipi_setup_counters(const char *name); > > #endif > #endif /* _SYS_INTR_H */ > From owner-svn-src-head@freebsd.org Sun Feb 28 04:25:04 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38951AB6F0D; Sun, 28 Feb 2016 04:25:04 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: from mail-qk0-x231.google.com (mail-qk0-x231.google.com [IPv6:2607:f8b0:400d:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0925C1509; Sun, 28 Feb 2016 04:25:03 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: by mail-qk0-x231.google.com with SMTP id o6so46073696qkc.2; Sat, 27 Feb 2016 20:25:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version; bh=jFzYqkmjBRIw2sY9K63CMhz/d+pYMGaFnJLioDaZ9t8=; b=AwGC8Pa6uBWL0dPb0HP64MdvLTU3ntv+MEfZ5XhxRoCdHjsz1GaTu3HyhInSvi7gSL LTl5YaBqQYeyedFGMQsHCn7zIOTaes5kvGXaKQ54kJrxMsPaBOgo47eu1ak+v9l1Jb66 1nyFXDo1t0aBjlOVVKe/rLTn6Zu1Hoo2NFhKVbirRiD/ftjUSk2hKQD3T0ymTPJf8/KL bnSlFHP9wSE+CcqgCc3ujMXDkU2BHpVuGvTCn6TrDU9bGouLJvXk+LLAZGqGVhCJbt65 qhIf9Z0CDhrYdr9rTXA0aTqPgLfZggFruJ4gtWPg3cNUxoGdvtRSef4vsgqiFY2I8DRq O39Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version; bh=jFzYqkmjBRIw2sY9K63CMhz/d+pYMGaFnJLioDaZ9t8=; b=hGOO6QomRsfgvEyW16EuGYV6i9zhccDWMF7cU7p2lgPIgdFhYM90T0tbWh+1qcD/O9 Z5kgdMwU3wna22ai/TlAp6vKTmTtYsbJj78UU/P+1lRlEc4ybYmucmlGkTe7AWTFQi2U x1vWmhe5xYO5Byd/P7XXtkrd/xMKk/mFwcKjAL5KEgUdR9h9W1uCWFp2AGt4gzCIVtA4 YAFiOJq8590hxoNfXy95DeuOmaPH/Rc/Fl8cKE2RhiWB35voDRzdiDkzJZtbSCPP+GOa H5qFRtt9k9m5xI8ICbPV99UmCyx/A5cx0OOzQM7GaRBLQTzQcH6tkdVzz4dR/CcoU4jc E9SQ== X-Gm-Message-State: AD7BkJLz7YRr4QEq5WUUwAJ74IJcZ7Mmgzt+oiV8HC3Ui4AC98cbf8C1Ooszaue+Dyr5eQ== X-Received: by 10.55.200.215 with SMTP id t84mr11767228qkl.55.1456633502936; Sat, 27 Feb 2016 20:25:02 -0800 (PST) Received: from kan ([2601:18f:802:4680:226:18ff:fe00:232e]) by smtp.gmail.com with ESMTPSA id y127sm8490641qky.4.2016.02.27.20.25.01 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 27 Feb 2016 20:25:01 -0800 (PST) Date: Sat, 27 Feb 2016 23:24:55 -0500 From: Alexander Kabaev To: Adrian Chadd Cc: Svatopluk Kraus , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r296138 - in head/sys: arm/arm arm/include kern sys Message-ID: <20160227232455.739ee997@kan> In-Reply-To: References: <201602271203.u1RC37xT075430@repo.freebsd.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/ZVvqE.nU8ORYmxy941KuPLh"; protocol="application/pgp-signature" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 04:25:04 -0000 --Sig_/ZVvqE.nU8ORYmxy941KuPLh Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sat, 27 Feb 2016 16:57:03 -0800 Adrian Chadd wrote: > hi, >=20 > I think this was mostly shared with kan's MIPS work on the CI20 as the > IPI stuff via the gic is effectively the same. >=20 > Can we make this (again) something we can share, but optionally? >=20 >=20 Nope, mips shares no IPI code with ARM and probably shouldn't too, since IPI delivery and mapping between IPI types and IRQs are very platform specific. --=20 Alexander Kabaev --Sig_/ZVvqE.nU8ORYmxy941KuPLh Content-Type: application/pgp-signature Content-Description: Цифровая подпись OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJW0naYXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRDNUY3RDk5NTk5QjY0MUUxM0M1MTU2OTEw NzEzMjI5OTkyNzkyRTdFAAoJEAcTIpmSeS5+99EQAKchdHw/buUYYxw0yzG0szZa WmpNl3N2Fzm3VJR+hXuFiqC8A/4S7CvF7qOKBPXOUTyzvpc7VQqSpKrCZi0C2F6O LHcqUoELSZG6UxIM2ZIq9lAHwzruqKQgZd1Cibd5OCpaCu4+KhMhgvPFK35wJu76 i93rL/3LjXVCUOzJLcZusXWGAmDN8It0msyPXzkBUfi4KMOXMFf0HWZXFHYtSQX9 CtvWJxSreNsCUalEpvCwPTIUfrit/D57jQ0BYce04T+GTIw97fcyk1ARzgf9irWl Pwi63Z1I5ZqKUEPy3R29x+ZqyK7Onn4XbkA9TwGZrsPDu9TwMxg5T92UFe2C1vBl dft/kxLrq0XxwBIYbQD+4KU76rI9yJkNNo0WUfl0boGbWuBZV+oPMJzc2tvTk3v+ fR2YQc8INc9WZxQtrPL2pHOBqNZ6z88TBqXMGAkMTg3dmrozAQro8vGgqfEaLhGC 1JG3xobqYu2FUu+H6sWlBx94/fPWWEA/2OvrT2XAVDnNK2rSwPXKfIxoQdvrVu4B s9Q4K8tAiZrISu9rQ9Us/e4O+IVjJm0N5tea0n8AZ3fOY4UopTshY3eTStfFnY85 1wcrm0htsT3nW9M2FVEjppqFrsh1s1NZ5NDYKgYA+0ELz8zpz1ci6HLqMKu1wRIx /oMtO9N8gkUTA7tAKlBE =EcaN -----END PGP SIGNATURE----- --Sig_/ZVvqE.nU8ORYmxy941KuPLh-- From owner-svn-src-head@freebsd.org Sun Feb 28 06:29:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C82B8AAE116; Sun, 28 Feb 2016 06:29:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A380D1D12; Sun, 28 Feb 2016 06:29:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1S6T79l004560; Sun, 28 Feb 2016 06:29:07 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1S6T7gG004558; Sun, 28 Feb 2016 06:29:07 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201602280629.u1S6T7gG004558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sun, 28 Feb 2016 06:29:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296152 - head/tools/tools/ath/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 06:29:09 -0000 Author: adrian Date: Sun Feb 28 06:29:07 2016 New Revision: 296152 URL: https://svnweb.freebsd.org/changeset/base/296152 Log: Begin abstracting out the access method for ath(4) ioctls. Each of the ath* commands do their own direct socket/ioctl calls, which makes it difficult to forklift upgrade things. So, this is the beginning of abstracting out the stats API calls in the hope that I can migrate things to use a /dev/athX file for ioctls and use a more general interface. Tested: * QCA9565 NIC, STA mode Added: head/tools/tools/ath/common/ctrl.c (contents, props changed) head/tools/tools/ath/common/ctrl.h (contents, props changed) Added: head/tools/tools/ath/common/ctrl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/ath/common/ctrl.c Sun Feb 28 06:29:07 2016 (r296152) @@ -0,0 +1,218 @@ +/*- + * Copyright (c) 2016 Adrian Chadd . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, 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 DAMAGES. + * + * $FreeBSD$ + */ + +/* + * This is a simple abstraction of the control channel used to access + * device specific data. + * + * In the past it used a ifnet socket on athX, but since those devices + * are now gone, they can use wlanX. However, there are debug cases + * where you'll instead want to talk to the hardware before any VAPs are + * up, so we should also handle the case of talking to /dev/athX. + * + * For now this'll be a drop-in replacement for the existing ioctl() + * based method until the /dev/athX (and associated new ioctls) land + * in the tree. + */ + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "ah.h" +#include "ah_desc.h" +#include "net80211/ieee80211_ioctl.h" +#include "net80211/ieee80211_radiotap.h" +#include "if_athioctl.h" +#include "if_athrate.h" + +#include "ctrl.h" + +int +ath_driver_req_init(struct ath_driver_req *req) +{ + + bzero(req, sizeof(*req)); + req->s = -1; + return (0); +} + +/* + * Open a suitable file descriptor and populate the relevant interface + * information for ioctls. + * + * For file path based access the ifreq isn't required; it'll just be + * a direct ioctl on the file descriptor. + */ +int +ath_driver_req_open(struct ath_driver_req *req, const char *ifname) +{ + int s; + + if (s != -1) + ath_driver_req_close(req); + + /* For now, netif socket, not /dev/ filedescriptor */ + s = socket(AF_INET, SOCK_DGRAM, 0); + if (s < 0) { + warn("%s: socket", __func__); + return (-1); + } + req->ifname = strdup(ifname); + req->s = s; + + return (0); +} + +/* + * Close an open descriptor. + */ +int +ath_driver_req_close(struct ath_driver_req *req) +{ + if (req->s == -1) + return (0); + close(req->s); + free(req->ifname); + req->s = -1; + req->ifname = NULL; + return (0); +} + +/* + * Issue a diagnostic API request. + */ +int +ath_driver_req_fetch_diag(struct ath_driver_req *req, unsigned long cmd, + struct ath_diag *ad) +{ + int ret; + + ret = ioctl(req->s, cmd, ad); + if (ret < 0) + warn("%s: ioctl", __func__); + return (ret); +} + +/* + * Issue a zero statistics API request. + */ +int +ath_driver_req_zero_stats(struct ath_driver_req *req) +{ + struct ifreq ifr; + int ret; + + /* Setup ifreq */ + bzero(&ifr, sizeof(ifr)); + strncpy(ifr.ifr_name, req->ifname, sizeof (ifr.ifr_name)); + ifr.ifr_data = NULL; + + /* ioctl */ + ret = ioctl(req->s, SIOCZATHSTATS, &ifr); + if (ret < 0) + warn("%s: ioctl", __func__); + return (ret); +} + +/* + * Fetch general statistics. + */ +int +ath_driver_req_fetch_stats(struct ath_driver_req *req, struct ath_stats *st) +{ + struct ifreq ifr; + int ret; + + /* Setup ifreq */ + bzero(&ifr, sizeof(ifr)); + strncpy(ifr.ifr_name, req->ifname, sizeof (ifr.ifr_name)); + ifr.ifr_data = (caddr_t) st; + + /* ioctl */ + ret = ioctl(req->s, SIOCGATHSTATS, &ifr); + if (ret < 0) + warn("%s: ioctl", __func__); + return (ret); +} + +/* + * Fetch aggregate statistics. + */ +int +ath_drive_req_fetch_aggr_stats(struct ath_driver_req *req, + struct ath_tx_aggr_stats *tx) +{ + struct ifreq ifr; + int ret; + + /* Setup ifreq */ + bzero(&ifr, sizeof(ifr)); + strncpy(ifr.ifr_name, req->ifname, sizeof (ifr.ifr_name)); + ifr.ifr_data = (caddr_t) tx; + + /* ioctl */ + ret = ioctl(req->s, SIOCGATHAGSTATS, &ifr); + if (ret < 0) + warn("%s: ioctl", __func__); + return (ret); + +} + +/* + * Fetch rate control statistics. + * + * Caller has to populate the interface name and MAC address. + */ +int +ath_drive_req_fetch_ratectrl_stats(struct ath_driver_req *req, + struct ath_rateioctl *r) +{ + int ret; + + /* ioctl */ + ret = ioctl(req->s, SIOCGATHNODERATESTATS, r); + if (ret < 0) + warn("%s: ioctl", __func__); + return (ret); +} Added: head/tools/tools/ath/common/ctrl.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/tools/ath/common/ctrl.h Sun Feb 28 06:29:07 2016 (r296152) @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2016 Adrian Chadd . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, 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 DAMAGES. + * + * $FreeBSD$ + */ +#ifndef __ATH_CTRL_H__ +#define __ATH_CTRL_H__ + +struct ath_stats; +struct ath_diag; +struct ath_tx_aggr_stats; +struct ath_rateioctl; + +struct ath_driver_req { + /* Open socket, or -1 */ + int s; + /* The interface name in question */ + char *ifname; +}; + +extern int ath_driver_req_init(struct ath_driver_req *req); +extern int ath_driver_req_open(struct ath_driver_req *req, const char *ifname); +extern int ath_driver_req_close(struct ath_driver_req *req); +extern int ath_driver_req_fetch_diag(struct ath_driver_req *req, + unsigned long cmd, struct ath_diag *ad); +extern int ath_driver_req_zero_stats(struct ath_driver_req *req); +extern int ath_driver_req_fetch_stats(struct ath_driver_req *req, + struct ath_stats *st); +extern int ath_drive_req_fetch_aggr_stats(struct ath_driver_req *req, + struct ath_tx_aggr_stats *tx); +extern int ath_drive_req_fetch_ratectrl_stats(struct ath_driver_req *req, + struct ath_rateioctl *r); + +#endif From owner-svn-src-head@freebsd.org Sun Feb 28 06:29:27 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20527AAE155; Sun, 28 Feb 2016 06:29:27 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 EC4CD1E5E; Sun, 28 Feb 2016 06:29:26 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1S6TPXv004614; Sun, 28 Feb 2016 06:29:25 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1S6TP0x004612; Sun, 28 Feb 2016 06:29:25 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201602280629.u1S6TP0x004612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sun, 28 Feb 2016 06:29:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296153 - head/tools/tools/ath/athstats X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 06:29:27 -0000 Author: adrian Date: Sun Feb 28 06:29:25 2016 New Revision: 296153 URL: https://svnweb.freebsd.org/changeset/base/296153 Log: Migrate athstats to use the new stats API. Modified: head/tools/tools/ath/athstats/Makefile head/tools/tools/ath/athstats/athstats.c Modified: head/tools/tools/ath/athstats/Makefile ============================================================================== --- head/tools/tools/ath/athstats/Makefile Sun Feb 28 06:29:07 2016 (r296152) +++ head/tools/tools/ath/athstats/Makefile Sun Feb 28 06:29:25 2016 (r296153) @@ -10,6 +10,10 @@ PROG= athstats SRCS= main.c athstats.c opt_ah.h ah_osdep.h +CFLAGS+= -I${.CURDIR}/../common/ +.PATH.c: ${.CURDIR}/../common/ +SRCS+= ctrl.c + CLEANFILES+= opt_ah.h .include <../Makefile.inc> Modified: head/tools/tools/ath/athstats/athstats.c ============================================================================== --- head/tools/tools/ath/athstats/athstats.c Sun Feb 28 06:29:07 2016 (r296152) +++ head/tools/tools/ath/athstats/athstats.c Sun Feb 28 06:29:25 2016 (r296153) @@ -60,6 +60,8 @@ #include "athstats.h" +#include "ctrl.h" + #ifdef ATH_SUPPORT_ANI #define HAL_EP_RND(x,mul) \ ((((x)%(mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) @@ -441,10 +443,9 @@ struct _athstats { struct athstatfoo_p { struct athstatfoo base; - int s; int optstats; + struct ath_driver_req req; #define ATHSTATS_ANI 0x0001 - struct ifreq ifr; struct ath_diag atd; struct _athstats cur; struct _athstats total; @@ -455,7 +456,8 @@ ath_setifname(struct athstatfoo *wf0, co { struct athstatfoo_p *wf = (struct athstatfoo_p *) wf0; - strncpy(wf->ifr.ifr_name, ifname, sizeof (wf->ifr.ifr_name)); + ath_driver_req_close(&wf->req); + (void) ath_driver_req_open(&wf->req, ifname); #ifdef ATH_SUPPORT_ANI strncpy(wf->atd.ad_name, ifname, sizeof (wf->atd.ad_name)); wf->optstats |= ATHSTATS_ANI; @@ -467,30 +469,34 @@ ath_zerostats(struct athstatfoo *wf0) { struct athstatfoo_p *wf = (struct athstatfoo_p *) wf0; - if (ioctl(wf->s, SIOCZATHSTATS, &wf->ifr) < 0) - err(-1, "ioctl: %s", wf->ifr.ifr_name); + if (ath_driver_req_zero_stats(&wf->req) < 0) + exit(-1); } static void ath_collect(struct athstatfoo_p *wf, struct _athstats *stats) { - wf->ifr.ifr_data = (caddr_t) &stats->ath; - if (ioctl(wf->s, SIOCGATHSTATS, &wf->ifr) < 0) - err(1, "ioctl: %s", wf->ifr.ifr_name); + + if (ath_driver_req_fetch_stats(&wf->req, &stats->ath) < 0) + exit(1); #ifdef ATH_SUPPORT_ANI if (wf->optstats & ATHSTATS_ANI) { + + /* XXX TODO: convert */ wf->atd.ad_id = HAL_DIAG_ANI_CURRENT; /* HAL_DIAG_ANI_CURRENT */ wf->atd.ad_out_data = (caddr_t) &stats->ani_state; wf->atd.ad_out_size = sizeof(stats->ani_state); - if (ioctl(wf->s, SIOCGATHDIAG, &wf->atd) < 0) { - warn("ioctl: %s", wf->atd.ad_name); + if (ath_driver_req_fetch_diag(&wf->req, SIOCGATHDIAG, + &wf->atd) < 0) { wf->optstats &= ~ATHSTATS_ANI; } + + /* XXX TODO: convert */ wf->atd.ad_id = HAL_DIAG_ANI_STATS; /* HAL_DIAG_ANI_STATS */ wf->atd.ad_out_data = (caddr_t) &stats->ani_stats; wf->atd.ad_out_size = sizeof(stats->ani_stats); - if (ioctl(wf->s, SIOCGATHDIAG, &wf->atd) < 0) - warn("ioctl: %s", wf->atd.ad_name); + (void) ath_driver_req_fetch_diag(&wf->req, SIOCGATHDIAG, + &wf->atd); } #endif /* ATH_SUPPORT_ANI */ } @@ -1064,6 +1070,7 @@ athstats_new(const char *ifname, const c wf = calloc(1, sizeof(struct athstatfoo_p)); if (wf != NULL) { + ath_driver_req_init(&wf->req); bsdstat_init(&wf->base.base, "athstats", athstats, nitems(athstats)); /* override base methods */ @@ -1083,10 +1090,6 @@ athstats_new(const char *ifname, const c wf->base.setstamac = wlan_setstamac; #endif wf->base.zerostats = ath_zerostats; - wf->s = socket(AF_INET, SOCK_DGRAM, 0); - if (wf->s < 0) - err(1, "socket"); - ath_setifname(&wf->base, ifname); wf->base.setfmt(&wf->base, fmtstring); } From owner-svn-src-head@freebsd.org Sun Feb 28 06:30:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F823AAE22E; Sun, 28 Feb 2016 06:30:41 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E8852100A; Sun, 28 Feb 2016 06:30:40 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1S6Ud4C004709; Sun, 28 Feb 2016 06:30:39 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1S6UdVH004707; Sun, 28 Feb 2016 06:30:39 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201602280630.u1S6UdVH004707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Sun, 28 Feb 2016 06:30:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296154 - head/tools/tools/ath/athregs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 06:30:41 -0000 Author: adrian Date: Sun Feb 28 06:30:39 2016 New Revision: 296154 URL: https://svnweb.freebsd.org/changeset/base/296154 Log: Migrate athregs over to use the new stats API. Modified: head/tools/tools/ath/athregs/Makefile head/tools/tools/ath/athregs/dumpregs.c Modified: head/tools/tools/ath/athregs/Makefile ============================================================================== --- head/tools/tools/ath/athregs/Makefile Sun Feb 28 06:29:25 2016 (r296153) +++ head/tools/tools/ath/athregs/Makefile Sun Feb 28 06:30:39 2016 (r296154) @@ -2,9 +2,12 @@ PROG= athregs +CFLAGS+= -I${.CURDIR}/../common/ + .PATH.c: ${.CURDIR}/../common SRCS= dumpregs.c +SRCS+= ctrl.c SRCS+= dumpregs_5210.c SRCS+= dumpregs_5211.c SRCS+= dumpregs_5212.c Modified: head/tools/tools/ath/athregs/dumpregs.c ============================================================================== --- head/tools/tools/ath/athregs/dumpregs.c Sun Feb 28 06:29:25 2016 (r296153) +++ head/tools/tools/ath/athregs/dumpregs.c Sun Feb 28 06:30:39 2016 (r296154) @@ -43,6 +43,8 @@ #include #include +#include "ctrl.h" + typedef struct { HAL_REVS revs; u_int32_t regdata[0xffff / sizeof(u_int32_t)]; @@ -93,11 +95,11 @@ main(int argc, char *argv[]) const char *ifname; u_int32_t *data; u_int32_t *dp, *ep; - int what, c, s, i; + int what, c, i; + struct ath_driver_req req; + + ath_driver_req_init(&req); - s = socket(AF_INET, SOCK_DGRAM, 0); - if (s < 0) - err(1, "socket"); ifname = getenv("ATH"); if (!ifname) ifname = ATH_DEFAULT; @@ -144,6 +146,16 @@ main(int argc, char *argv[]) usage(); /*NOTREACHED*/ } + + /* Initialise the driver interface */ + if (ath_driver_req_open(&req, ifname) < 0) { + exit(127); + } + + /* + * Whilst we're doing the ath_diag pieces, we have to set this + * ourselves. + */ strncpy(atd.ad_name, ifname, sizeof (atd.ad_name)); argc -= optind; @@ -154,7 +166,8 @@ main(int argc, char *argv[]) atd.ad_id = HAL_DIAG_REVS; atd.ad_out_data = (caddr_t) &state.revs; atd.ad_out_size = sizeof(state.revs); - if (ioctl(s, SIOCGATHDIAG, &atd) < 0) + + if (ath_driver_req_fetch_diag(&req, SIOCGATHDIAG, &atd) < 0) err(1, "%s", atd.ad_name); if (ath_hal_setupregs(&atd, what) == 0) @@ -172,7 +185,8 @@ main(int argc, char *argv[]) exit(-1); } atd.ad_id = HAL_DIAG_REGS | ATH_DIAG_IN | ATH_DIAG_DYN; - if (ioctl(s, SIOCGATHDIAG, &atd) < 0) + + if (ath_driver_req_fetch_diag(&req, SIOCGATHDIAG, &atd) < 0) err(1, "%s", atd.ad_name); /* @@ -238,6 +252,7 @@ main(int argc, char *argv[]) fprintf(stdout, "\n"); ath_hal_dumpbb(stdout, what); } + ath_driver_req_close(&req); return 0; } From owner-svn-src-head@freebsd.org Sun Feb 28 09:35:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D64E8AB7186; Sun, 28 Feb 2016 09:35:38 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8D36B1F97; Sun, 28 Feb 2016 09:35:38 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1S9ZbvY062287; Sun, 28 Feb 2016 09:35:37 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1S9Zb2k062283; Sun, 28 Feb 2016 09:35:37 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201602280935.u1S9Zb2k062283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 28 Feb 2016 09:35:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296155 - in head/sys: arm/annapurna/alpine arm/broadcom/bcm2835 arm/qemu conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 09:35:38 -0000 Author: andrew Date: Sun Feb 28 09:35:37 2016 New Revision: 296155 URL: https://svnweb.freebsd.org/changeset/base/296155 Log: Build ofw_cpu.c on all ARM configs using FDT. As we mve towards using the Linux dts files these are more likely to have cpu nodes we can attach to. Sponsored by: ABT Systems Ltd Modified: head/sys/arm/annapurna/alpine/files.alpine head/sys/arm/broadcom/bcm2835/files.bcm283x head/sys/arm/qemu/files.qemu head/sys/conf/files.arm Modified: head/sys/arm/annapurna/alpine/files.alpine ============================================================================== --- head/sys/arm/annapurna/alpine/files.alpine Sun Feb 28 06:30:39 2016 (r296154) +++ head/sys/arm/annapurna/alpine/files.alpine Sun Feb 28 09:35:37 2016 (r296155) @@ -5,7 +5,6 @@ kern/kern_clocksource.c standard arm/versatile/sp804.c standard arm/versatile/versatile_timer.c standard dev/uart/uart_dev_ns8250.c optional uart -dev/ofw/ofw_cpu.c standard arm/annapurna/alpine/common.c standard arm/annapurna/alpine/alpine_machdep.c standard Modified: head/sys/arm/broadcom/bcm2835/files.bcm283x ============================================================================== --- head/sys/arm/broadcom/bcm2835/files.bcm283x Sun Feb 28 06:30:39 2016 (r296154) +++ head/sys/arm/broadcom/bcm2835/files.bcm283x Sun Feb 28 09:35:37 2016 (r296155) @@ -19,7 +19,6 @@ arm/broadcom/bcm2835/bcm283x_dwc_fdt.c kern/kern_clocksource.c standard dev/mbox/mbox_if.m standard -dev/ofw/ofw_cpu.c standard arm/broadcom/bcm2835/bcm2835_audio.c optional sound vchiq \ compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" Modified: head/sys/arm/qemu/files.qemu ============================================================================== --- head/sys/arm/qemu/files.qemu Sun Feb 28 06:30:39 2016 (r296154) +++ head/sys/arm/qemu/files.qemu Sun Feb 28 09:35:37 2016 (r296155) @@ -11,5 +11,3 @@ kern/kern_clocksource.c standard arm/qemu/virt_common.c standard arm/qemu/virt_machdep.c standard arm/qemu/virt_mp.c optional smp - -dev/ofw/ofw_cpu.c standard Modified: head/sys/conf/files.arm ============================================================================== --- head/sys/conf/files.arm Sun Feb 28 06:30:39 2016 (r296154) +++ head/sys/conf/files.arm Sun Feb 28 09:35:37 2016 (r296155) @@ -102,6 +102,7 @@ dev/fdt/fdt_arm_platform.c optional plat dev/hwpmc/hwpmc_arm.c optional hwpmc dev/hwpmc/hwpmc_armv7.c optional hwpmc armv6 dev/iicbus/twsi/twsi.c optional twsi +dev/ofw/ofw_cpu.c optional fdt dev/psci/psci.c optional psci dev/psci/psci_arm.S optional psci dev/syscons/scgfbrndr.c optional sc From owner-svn-src-head@freebsd.org Sun Feb 28 09:44:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 484F8AB74BB; Sun, 28 Feb 2016 09:44:29 +0000 (UTC) (envelope-from onwahe@gmail.com) Received: from mail-ig0-x22b.google.com (mail-ig0-x22b.google.com [IPv6:2607:f8b0:4001:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 12E7A150A; Sun, 28 Feb 2016 09:44:29 +0000 (UTC) (envelope-from onwahe@gmail.com) Received: by mail-ig0-x22b.google.com with SMTP id hb3so58370199igb.0; Sun, 28 Feb 2016 01:44:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=M8DVR0Mye1oY/QoMz7pIUbq2hjDe6kQ/hnapmdrTPfs=; b=KXDQhZzyEL9RFeZ/RBwqW8tD8nYcKui1kKwlKgM9rYxX56XHdPaw1CIt06HiRwUdeE Esu+xu+MqOdX6h0TzWXKetIfUICEZgA+Qm+B3YkvdVb2/UTyb0HPBeH27q+Hr/FSoB0o Tjzwx/pcQ3vZ8oRWa/oSuhi1teaKPFHDEqoRdz37wPHp0DxpPvq0xid7gcy/gvzP3NrX SkgVSLyDRKPZMKNPUTLcQtW/Az4VJaL5OFx9z/2SJ4M7YV4UceevoDkWrx7TQl0W1HRs +QPzGApzctUi6W5pF9+ZwjoiMp+EZ1OqsDFR1Wp/5JdVgmeB0ZxkNaA/9znnTwlHbiJT enFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=M8DVR0Mye1oY/QoMz7pIUbq2hjDe6kQ/hnapmdrTPfs=; b=EqDQi+rrnmdWf7LlYmhM9qrvRO6dQWXJRKKTMMDopVsow/BsWiJ4y89asiOsuBsVel Jv4Geqjjrlw7y1Ax8rcqgXOuTP66J7im+Vdjiqh0SC28CHoZPjh1cUMJJ8+U/0+eqC6l TvG4T4nSr/2vDAJknPSJY9Y/Ti5rqY9B2sNLnQbrFT+cxxHhIoU7dTupplPoMXvLwvaY KQmhnUMSwCIZt+Aox7UpjM29Pwk5UtzNTtCCzXadvtCEgA/1Yi6O5Qj8umDPwRtEFXbo Nw+kI4GjnYtXij1wGdB1jgTJd2gPrIK97KJgHsBBWC3RKkX6Xk6IS8uNBMkIOEgFX7Lc Ghsg== X-Gm-Message-State: AD7BkJL54LdrEcyGStUbR6vkfjGk0s/sha7Gwj56YVN7u2Aeq4iy63Oh+oki6EpdkjyB1fTLqu5fakrmjg9Tlg== MIME-Version: 1.0 X-Received: by 10.50.4.1 with SMTP id g1mr4980949igg.42.1456652667888; Sun, 28 Feb 2016 01:44:27 -0800 (PST) Received: by 10.64.126.104 with HTTP; Sun, 28 Feb 2016 01:44:27 -0800 (PST) In-Reply-To: <20160227232455.739ee997@kan> References: <201602271203.u1RC37xT075430@repo.freebsd.org> <20160227232455.739ee997@kan> Date: Sun, 28 Feb 2016 10:44:27 +0100 Message-ID: Subject: Re: svn commit: r296138 - in head/sys: arm/arm arm/include kern sys From: Svatopluk Kraus To: Alexander Kabaev Cc: Adrian Chadd , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 09:44:29 -0000 On Sun, Feb 28, 2016 at 5:24 AM, Alexander Kabaev wrote: > On Sat, 27 Feb 2016 16:57:03 -0800 > Adrian Chadd wrote: > >> hi, >> >> I think this was mostly shared with kan's MIPS work on the CI20 as the >> IPI stuff via the gic is effectively the same. >> >> Can we make this (again) something we can share, but optionally? >> >> > > Nope, mips shares no IPI code with ARM and probably shouldn't too, > since IPI delivery and mapping between IPI types and IRQs are very > platform specific. > > -- > Alexander Kabaev IMO, it's better for MIPS IPI stuff to not be bound to ARM one in the beginning and vice versa. Let them evolve for some time separately to see if there are really some common parts or not. The ARM IPI stuff was made too general with a try to fit into interrupt framework. Thus struct intr_irqsrc was used for an IPI description, but it does not mean that an IPI must be bounded to PIC methods. Very likely, the meaning of AISHF_NOALLOC flag in intr_ipi_set_handler() was not stressed enough. If used, an IPI description (filter, argument, name, counters) is created and saved in struct intr_irqsrc, but the IPI is not bounded to any PIC and no PIC method is called. This struct can be looked at by intr_ipi_lookup() and intr_ipi_dispatch() can be used on any place when an IPI should be dispatched. An IPI can be send in any way. It means that no PIC must be involved. That said, there is some plan to make IPI stuff on ARM more clear and simple. From owner-svn-src-head@freebsd.org Sun Feb 28 10:27:14 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AE7EAB613C; Sun, 28 Feb 2016 10:27:14 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2A200A01; Sun, 28 Feb 2016 10:27:14 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SARDsI077207; Sun, 28 Feb 2016 10:27:13 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SARCnp077201; Sun, 28 Feb 2016 10:27:12 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602281027.u1SARCnp077201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 28 Feb 2016 10:27:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296156 - head/bin/dd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 10:27:14 -0000 Author: trasz Date: Sun Feb 28 10:27:12 2016 New Revision: 296156 URL: https://svnweb.freebsd.org/changeset/base/296156 Log: Add speed limit to dd(1). This is useful for testing RCTL disk io limits (when they actually get committed, that is), and might also come in handy in other situations. Reviewed by: wblock@ (man page) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/bin/dd/args.c head/bin/dd/dd.1 head/bin/dd/dd.c head/bin/dd/extern.h head/bin/dd/misc.c Modified: head/bin/dd/args.c ============================================================================== --- head/bin/dd/args.c Sun Feb 28 09:35:37 2016 (r296155) +++ head/bin/dd/args.c Sun Feb 28 10:27:12 2016 (r296156) @@ -66,6 +66,7 @@ static void f_obs(char *); static void f_of(char *); static void f_seek(char *); static void f_skip(char *); +static void f_speed(char *); static void f_status(char *); static uintmax_t get_num(const char *); static off_t get_off_t(const char *); @@ -89,6 +90,7 @@ static const struct arg { { "oseek", f_seek, C_SEEK, C_SEEK }, { "seek", f_seek, C_SEEK, C_SEEK }, { "skip", f_skip, C_SKIP, C_SKIP }, + { "speed", f_speed, 0, 0 }, { "status", f_status, C_STATUS,C_STATUS }, }; @@ -295,6 +297,13 @@ f_skip(char *arg) } static void +f_speed(char *arg) +{ + + speed = get_num(arg); +} + +static void f_status(char *arg) { Modified: head/bin/dd/dd.1 ============================================================================== --- head/bin/dd/dd.1 Sun Feb 28 09:35:37 2016 (r296155) +++ head/bin/dd/dd.1 Sun Feb 28 10:27:12 2016 (r296156) @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd February 4, 2016 +.Dd February 28, 2016 .Dt DD 1 .Os .Sh NAME @@ -156,6 +156,10 @@ Otherwise, input data is read and discar For pipes, the correct number of bytes is read. For all other devices, the correct number of blocks is read without distinguishing between a partial or complete block being read. +.It Cm speed Ns = Ns Ar n +Limit the copying speed to +.Ar n +bytes per second. .It Cm status Ns = Ns Ar value Where .Cm value @@ -325,7 +329,7 @@ appended. .El .El .Pp -Where sizes are specified, a decimal, octal, or hexadecimal number of +Where sizes or speed are specified, a decimal, octal, or hexadecimal number of bytes is expected. If the number ends with a .Dq Li b , Modified: head/bin/dd/dd.c ============================================================================== --- head/bin/dd/dd.c Sun Feb 28 09:35:37 2016 (r296155) +++ head/bin/dd/dd.c Sun Feb 28 10:27:12 2016 (r296156) @@ -82,6 +82,7 @@ size_t cbsz; /* conversion block size uintmax_t files_cnt = 1; /* # of files to copy */ const u_char *ctab; /* conversion table */ char fill_char; /* Character to fill with if defined */ +size_t speed = 0; /* maximum speed, in bytes per second */ volatile sig_atomic_t need_summary; int @@ -276,6 +277,29 @@ getfdtype(IO *io) io->flags |= ISSEEK; } +/* + * Limit the speed by adding a delay before every block read. + * The delay (t_usleep) is equal to the time computed from block + * size and the specified speed limit (t_target) minus the time + * spent on actual read and write operations (t_io). + */ +static void +speed_limit(void) +{ + static double t_prev, t_usleep; + double t_now, t_io, t_target; + + t_now = secs_elapsed(); + t_io = t_now - t_prev - t_usleep; + t_target = (double)in.dbsz / (double)speed; + t_usleep = t_target - t_io; + if (t_usleep > 0) + usleep(t_usleep * 1000000); + else + t_usleep = 0; + t_prev = t_now; +} + static void dd_in(void) { @@ -293,6 +317,9 @@ dd_in(void) break; } + if (speed > 0) + speed_limit(); + /* * Zero the buffer first if sync; if doing block operations, * use spaces. Modified: head/bin/dd/extern.h ============================================================================== --- head/bin/dd/extern.h Sun Feb 28 09:35:37 2016 (r296155) +++ head/bin/dd/extern.h Sun Feb 28 10:27:12 2016 (r296156) @@ -42,6 +42,7 @@ void def_close(void); void jcl(char **); void pos_in(void); void pos_out(void); +double secs_elapsed(void); void summary(void); void siginfo_handler(int); void terminate(int); @@ -54,6 +55,7 @@ extern void (*cfunc)(void); extern uintmax_t cpy_cnt; extern size_t cbsz; extern u_int ddflags; +extern size_t speed; extern uintmax_t files_cnt; extern const u_char *ctab; extern const u_char a2e_32V[], a2e_POSIX[]; Modified: head/bin/dd/misc.c ============================================================================== --- head/bin/dd/misc.c Sun Feb 28 09:35:37 2016 (r296155) +++ head/bin/dd/misc.c Sun Feb 28 10:27:12 2016 (r296156) @@ -54,15 +54,12 @@ __FBSDID("$FreeBSD$"); #include "dd.h" #include "extern.h" -void -summary(void) +double +secs_elapsed(void) { struct timespec end, ts_res; double secs, res; - if (ddflags & C_NOINFO) - return; - if (clock_gettime(CLOCK_MONOTONIC, &end)) err(1, "clock_gettime"); if (clock_getres(CLOCK_MONOTONIC, &ts_res)) @@ -72,6 +69,20 @@ summary(void) res = ts_res.tv_sec + ts_res.tv_nsec * 1e-9; if (secs < res) secs = res; + + return (secs); +} + +void +summary(void) +{ + double secs; + + if (ddflags & C_NOINFO) + return; + + secs = secs_elapsed(); + (void)fprintf(stderr, "%ju+%ju records in\n%ju+%ju records out\n", st.in_full, st.in_part, st.out_full, st.out_part); From owner-svn-src-head@freebsd.org Sun Feb 28 10:40:11 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E9D3AB655A; Sun, 28 Feb 2016 10:40:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 245A8F14; Sun, 28 Feb 2016 10:40:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SAeA6g080235; Sun, 28 Feb 2016 10:40:10 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SAeA6M080234; Sun, 28 Feb 2016 10:40:10 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602281040.u1SAeA6M080234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 28 Feb 2016 10:40:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296157 - head/usr.sbin/fstyp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 10:40:11 -0000 Author: trasz Date: Sun Feb 28 10:40:09 2016 New Revision: 296157 URL: https://svnweb.freebsd.org/changeset/base/296157 Log: Fix .Xr - autofs(5) is section 5, not 8. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/fstyp/fstyp.8 Modified: head/usr.sbin/fstyp/fstyp.8 ============================================================================== --- head/usr.sbin/fstyp/fstyp.8 Sun Feb 28 10:27:12 2016 (r296156) +++ head/usr.sbin/fstyp/fstyp.8 Sun Feb 28 10:40:09 2016 (r296157) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 11, 2015 +.Dd February 28, 2016 .Dt FSTYP 8 .Os .Sh NAME @@ -107,7 +107,7 @@ type is not recognized. .Sh SEE ALSO .Xr file 1 , .Xr capsicum 4 , -.Xr autofs 8 , +.Xr autofs 5 , .Xr geli 8 , .Xr glabel 8 , .Xr mount 8 , From owner-svn-src-head@freebsd.org Sun Feb 28 13:44:00 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFF69AB0C4E; Sun, 28 Feb 2016 13:44:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9B7721C65; Sun, 28 Feb 2016 13:44:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SDhxcj035421; Sun, 28 Feb 2016 13:43:59 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SDhxAi035414; Sun, 28 Feb 2016 13:43:59 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201602281343.u1SDhxAi035414@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 28 Feb 2016 13:43:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296158 - in head/sys: arm/arm arm/conf arm/qemu conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 13:44:01 -0000 Author: andrew Date: Sun Feb 28 13:43:58 2016 New Revision: 296158 URL: https://svnweb.freebsd.org/changeset/base/296158 Log: Add SMP support to the ARM PLATFORM code. This will allow us to have different methods to start the secondary cores in a kernel built for multiple SoCs, e.g. with the Allwinner A20 and A31. Sponsored by: ABT systems Ltd Differential Revision: https://reviews.freebsd.org/D5466 Added: head/sys/arm/qemu/virt_mp.h (contents, props changed) Modified: head/sys/arm/arm/platform.c head/sys/arm/arm/platform_if.m head/sys/arm/conf/VIRT head/sys/arm/qemu/virt_machdep.c head/sys/arm/qemu/virt_mp.c head/sys/conf/options.arm Modified: head/sys/arm/arm/platform.c ============================================================================== --- head/sys/arm/arm/platform.c Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/arm/arm/platform.c Sun Feb 28 13:43:58 2016 (r296158) @@ -177,3 +177,18 @@ platform_late_init(void) PLATFORM_LATE_INIT(plat_obj); } +#if defined(SMP) && defined(PLATFORM_SMP) +void +platform_mp_setmaxid(void) +{ + + PLATFORM_MP_SETMAXID(plat_obj); +} + +void +platform_mp_start_ap(void) +{ + + PLATFORM_MP_START_AP(plat_obj); +} +#endif Modified: head/sys/arm/arm/platform_if.m ============================================================================== --- head/sys/arm/arm/platform_if.m Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/arm/arm/platform_if.m Sun Feb 28 13:43:58 2016 (r296158) @@ -57,6 +57,12 @@ CODE { { return; } + + static void platform_default_mp_setmaxid(platform_t plat) + { + mp_ncpus = 1; + mp_maxid = 0; + } }; /** @@ -114,3 +120,16 @@ METHOD void late_init { platform_t _plat; }; +/** + * @brief Called by cpu_mp_setmaxid() to set mp_maxid and mp_ncpus. + */ +METHOD void mp_setmaxid { + platform_t _plat; +} DEFAULT platform_default_mp_setmaxid; + +/** + * @brief Called by cpu_mp_start to start the secondary processors. + */ +METHOD void mp_start_ap { + platform_t _plat; +}; Modified: head/sys/arm/conf/VIRT ============================================================================== --- head/sys/arm/conf/VIRT Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/arm/conf/VIRT Sun Feb 28 13:43:58 2016 (r296158) @@ -26,6 +26,7 @@ include "../qemu/std.virt" options HZ=100 options SCHED_ULE # 4BSD scheduler options PLATFORM +options PLATFORM_SMP options SMP # Enable multiple cores # Debugging for use in -current Modified: head/sys/arm/qemu/virt_machdep.c ============================================================================== --- head/sys/arm/qemu/virt_machdep.c Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/arm/qemu/virt_machdep.c Sun Feb 28 13:43:58 2016 (r296158) @@ -41,6 +41,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include "platform_if.h" struct arm32_dma_range * @@ -86,6 +88,11 @@ static platform_method_t virt_methods[] PLATFORMMETHOD(platform_devmap_init, virt_devmap_init), PLATFORMMETHOD(platform_lastaddr, virt_lastaddr), +#ifdef SMP + PLATFORMMETHOD(platform_mp_start_ap, virt_mp_start_ap), + PLATFORMMETHOD(platform_mp_setmaxid, virt_mp_setmaxid), +#endif + PLATFORMMETHOD_END, }; Modified: head/sys/arm/qemu/virt_mp.c ============================================================================== --- head/sys/arm/qemu/virt_mp.c Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/arm/qemu/virt_mp.c Sun Feb 28 13:43:58 2016 (r296158) @@ -38,12 +38,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include #include +#include + static int running_cpus; static boolean_t @@ -57,7 +60,7 @@ virt_maxid(u_int id, phandle_t node, u_i } void -platform_mp_setmaxid(void) +virt_mp_setmaxid(platform_t plat) { mp_maxid = PCPU_GET(cpuid); @@ -85,7 +88,7 @@ virt_start_ap(u_int id, phandle_t node, } void -platform_mp_start_ap(void) +virt_mp_start_ap(platform_t plat) { ofw_cpu_early_foreach(virt_start_ap, true); Added: head/sys/arm/qemu/virt_mp.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/qemu/virt_mp.h Sun Feb 28 13:43:58 2016 (r296158) @@ -0,0 +1,35 @@ +/*- + * Copyright (c) 2016 Andrew Turner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, 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. + * + * $FreeBSD$ + */ + +#ifndef _QEMU_VIRT_MP_H_ +#define _QEMU_VIRT_MP_H_ + +void virt_mp_start_ap(platform_t plat); +void virt_mp_setmaxid(platform_t plat); + +#endif /* _QEMU_VIRT_MP_H_ */ Modified: head/sys/conf/options.arm ============================================================================== --- head/sys/conf/options.arm Sun Feb 28 10:40:09 2016 (r296157) +++ head/sys/conf/options.arm Sun Feb 28 13:43:58 2016 (r296158) @@ -34,6 +34,7 @@ LINUX_BOOT_ABI opt_global.h LOADERRAMADDR opt_global.h PHYSADDR opt_global.h PLATFORM opt_global.h +PLATFORM_SMP opt_global.h SOCDEV_PA opt_global.h SOCDEV_VA opt_global.h PV_STATS opt_pmap.h From owner-svn-src-head@freebsd.org Sun Feb 28 17:42:28 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82137AB625F; Sun, 28 Feb 2016 17:42:28 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 59EA31D17; Sun, 28 Feb 2016 17:42:28 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SHgR6P007070; Sun, 28 Feb 2016 17:42:27 GMT (envelope-from jmcneill@FreeBSD.org) Received: (from jmcneill@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SHgRHf007068; Sun, 28 Feb 2016 17:42:27 GMT (envelope-from jmcneill@FreeBSD.org) Message-Id: <201602281742.u1SHgRHf007068@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmcneill set sender to jmcneill@FreeBSD.org using -f From: Jared McNeill Date: Sun, 28 Feb 2016 17:42:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296161 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 17:42:28 -0000 Author: jmcneill Date: Sun Feb 28 17:42:27 2016 New Revision: 296161 URL: https://svnweb.freebsd.org/changeset/base/296161 Log: Add Allwinner A10/A20 RTC driver. Submitted by: Vladimir Belian Reviewed by: andrew, imp, jmcneill Approved by: gonzo (mentor) Differential Revision: https://reviews.freebsd.org/D5414 Added: head/sys/arm/allwinner/aw_rtc.c (contents, props changed) Modified: head/sys/arm/allwinner/files.allwinner Added: head/sys/arm/allwinner/aw_rtc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/allwinner/aw_rtc.c Sun Feb 28 17:42:27 2016 (r296161) @@ -0,0 +1,272 @@ +/*- + * Copyright (c) 2016 Vladimir Belian + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include + +#include "clock_if.h" + +#define LOSC_CTRL_REG 0x00 +#define RTC_DATE_REG 0x04 +#define RTC_TIME_REG 0x08 + +#define TIME_MASK 0x001f3f3f + +#define LOSC_OSC_SRC 0x00000001 +#define LOSC_GSM 0x00000008 +#define LOSC_AUTO_SW_EN 0x00004000 +#define LOSC_MAGIC 0x16aa0000 +#define LOSC_BUSY_MASK 0x00000380 + +#define IS_SUN7I (allwinner_soc_family() == ALLWINNERSOC_SUN7I) + +#define YEAR_MIN (IS_SUN7I ? 1970 : 2010) +#define YEAR_MAX (IS_SUN7I ? 2100 : 2073) +#define YEAR_OFFSET (IS_SUN7I ? 1900 : 2010) +#define YEAR_MASK (IS_SUN7I ? 0xff : 0x3f) +#define LEAP_BIT (IS_SUN7I ? 24 : 22) + +#define GET_SEC_VALUE(x) ((x) & 0x0000003f) +#define GET_MIN_VALUE(x) (((x) & 0x00003f00) >> 8) +#define GET_HOUR_VALUE(x) (((x) & 0x001f0000) >> 16) +#define GET_DAY_VALUE(x) ((x) & 0x0000001f) +#define GET_MON_VALUE(x) (((x) & 0x00000f00) >> 8) +#define GET_YEAR_VALUE(x) (((x) >> 16) & YEAR_MASK) + +#define SET_DAY_VALUE(x) GET_DAY_VALUE(x) +#define SET_MON_VALUE(x) (((x) & 0x0000000f) << 8) +#define SET_YEAR_VALUE(x) (((x) & YEAR_MASK) << 16) +#define SET_LEAP_VALUE(x) (((x) & 0x00000001) << LEAP_BIT) +#define SET_SEC_VALUE(x) GET_SEC_VALUE(x) +#define SET_MIN_VALUE(x) (((x) & 0x0000003f) << 8) +#define SET_HOUR_VALUE(x) (((x) & 0x0000001f) << 16) + +#define HALF_OF_SEC_NS 500000000 +#define RTC_RES_US 1000000 +#define RTC_TIMEOUT 70 + +#define RTC_READ(sc, reg) bus_read_4((sc)->res, (reg)) +#define RTC_WRITE(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +#define IS_LEAP_YEAR(y) \ + (((y) % 400) == 0 || (((y) % 100) != 0 && ((y) % 4) == 0)) + + +static struct ofw_compat_data compat_data[] = { + { "allwinner,sun4i-a10-rtc", true }, + { "allwinner,sun7i-a20-rtc", true }, + { NULL, false } +}; + +struct aw_rtc_softc { + struct resource *res; +}; + +static int aw_rtc_probe(device_t dev); +static int aw_rtc_attach(device_t dev); +static int aw_rtc_detach(device_t dev); + +static int aw_rtc_gettime(device_t dev, struct timespec *ts); +static int aw_rtc_settime(device_t dev, struct timespec *ts); + +static device_method_t aw_rtc_methods[] = { + DEVMETHOD(device_probe, aw_rtc_probe), + DEVMETHOD(device_attach, aw_rtc_attach), + DEVMETHOD(device_detach, aw_rtc_detach), + + DEVMETHOD(clock_gettime, aw_rtc_gettime), + DEVMETHOD(clock_settime, aw_rtc_settime), + + DEVMETHOD_END +}; + +static driver_t aw_rtc_driver = { + "rtc", + aw_rtc_methods, + sizeof(struct aw_rtc_softc), +}; + +static devclass_t aw_rtc_devclass; + +EARLY_DRIVER_MODULE(aw_rtc, simplebus, aw_rtc_driver, aw_rtc_devclass, 0, 0, + BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); + + +static int +aw_rtc_probe(device_t dev) +{ + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) + return (ENXIO); + + device_set_desc(dev, "Allwinner RTC"); + + return (BUS_PROBE_DEFAULT); +} + +static int +aw_rtc_attach(device_t dev) +{ + struct aw_rtc_softc *sc = device_get_softc(dev); + uint32_t val; + int rid = 0; + + sc->res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); + if (!sc->res) { + device_printf(dev, "could not allocate resources\n"); + return (ENXIO); + } + + val = RTC_READ(sc, LOSC_CTRL_REG); + val &= ~LOSC_AUTO_SW_EN; + val |= LOSC_MAGIC | LOSC_GSM | LOSC_OSC_SRC; + RTC_WRITE(sc, LOSC_CTRL_REG, val); + + DELAY(100); + + val = RTC_READ(sc, LOSC_CTRL_REG); + if ((val & LOSC_OSC_SRC) == 0) { + bus_release_resource(dev, SYS_RES_MEMORY, rid, sc->res); + device_printf(dev, "set LOSC to external failed\n"); + return (ENXIO); + } + + clock_register(dev, RTC_RES_US); + + return (0); +} + +static int +aw_rtc_detach(device_t dev) +{ + /* can't support detach, since there's no clock_unregister function */ + return (EBUSY); +} + +static int +aw_rtc_gettime(device_t dev, struct timespec *ts) +{ + struct aw_rtc_softc *sc = device_get_softc(dev); + struct clocktime ct; + uint32_t rdate, rtime; + + rdate = RTC_READ(sc, RTC_DATE_REG); + rtime = RTC_READ(sc, RTC_TIME_REG); + + if ((rtime & TIME_MASK) == 0) + rdate = RTC_READ(sc, RTC_DATE_REG); + + ct.sec = GET_SEC_VALUE(rtime); + ct.min = GET_MIN_VALUE(rtime); + ct.hour = GET_HOUR_VALUE(rtime); + ct.day = GET_DAY_VALUE(rdate); + ct.mon = GET_MON_VALUE(rdate); + ct.year = GET_YEAR_VALUE(rdate) + YEAR_OFFSET; + ct.dow = -1; + /* RTC resolution is 1 sec */ + ct.nsec = 0; + + return (clock_ct_to_ts(&ct, ts)); +} + +static int +aw_rtc_settime(device_t dev, struct timespec *ts) +{ + struct aw_rtc_softc *sc = device_get_softc(dev); + struct clocktime ct; + uint32_t clk, rdate, rtime; + + /* RTC resolution is 1 sec */ + if (ts->tv_nsec >= HALF_OF_SEC_NS) + ts->tv_sec++; + ts->tv_nsec = 0; + + clock_ts_to_ct(ts, &ct); + + if ((ct.year < YEAR_MIN) || (ct.year > YEAR_MAX)) { + device_printf(dev, "could not set time, year out of range\n"); + return (EINVAL); + } + + for (clk = 0; RTC_READ(sc, LOSC_CTRL_REG) & LOSC_BUSY_MASK; clk++) { + if (clk > RTC_TIMEOUT) { + device_printf(dev, "could not set time, RTC busy\n"); + return (EINVAL); + } + DELAY(1); + } + /* reset time register to avoid unexpected date increment */ + RTC_WRITE(sc, RTC_TIME_REG, 0); + + rdate = SET_DAY_VALUE(ct.day) | SET_MON_VALUE(ct.mon) | + SET_YEAR_VALUE(ct.year - YEAR_OFFSET) | + SET_LEAP_VALUE(IS_LEAP_YEAR(ct.year)); + + rtime = SET_SEC_VALUE(ct.sec) | SET_MIN_VALUE(ct.min) | + SET_HOUR_VALUE(ct.hour); + + for (clk = 0; RTC_READ(sc, LOSC_CTRL_REG) & LOSC_BUSY_MASK; clk++) { + if (clk > RTC_TIMEOUT) { + device_printf(dev, "could not set date, RTC busy\n"); + return (EINVAL); + } + DELAY(1); + } + RTC_WRITE(sc, RTC_DATE_REG, rdate); + + for (clk = 0; RTC_READ(sc, LOSC_CTRL_REG) & LOSC_BUSY_MASK; clk++) { + if (clk > RTC_TIMEOUT) { + device_printf(dev, "could not set time, RTC busy\n"); + return (EINVAL); + } + DELAY(1); + } + RTC_WRITE(sc, RTC_TIME_REG, rtime); + + DELAY(RTC_TIMEOUT); + + return (0); +} Modified: head/sys/arm/allwinner/files.allwinner ============================================================================== --- head/sys/arm/allwinner/files.allwinner Sun Feb 28 16:21:53 2016 (r296160) +++ head/sys/arm/allwinner/files.allwinner Sun Feb 28 17:42:27 2016 (r296161) @@ -10,6 +10,7 @@ arm/allwinner/a10_ehci.c optional ehci arm/allwinner/a10_gpio.c optional gpio arm/allwinner/a10_mmc.c optional mmc arm/allwinner/a10_sramc.c standard +arm/allwinner/aw_rtc.c standard arm/allwinner/aw_wdog.c standard arm/allwinner/a20/a20_cpu_cfg.c standard arm/allwinner/allwinner_machdep.c standard From owner-svn-src-head@freebsd.org Sun Feb 28 17:52:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B562CAB66F3; Sun, 28 Feb 2016 17:52:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 7F698354; Sun, 28 Feb 2016 17:52:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SHqYmg010007; Sun, 28 Feb 2016 17:52:34 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SHqXrU009995; Sun, 28 Feb 2016 17:52:33 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201602281752.u1SHqXrU009995@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 28 Feb 2016 17:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296162 - in head: bin/sh include lib/libthr/thread sys/kern sys/sys sys/vm usr.bin/limits usr.bin/procstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 17:52:35 -0000 Author: kib Date: Sun Feb 28 17:52:33 2016 New Revision: 296162 URL: https://svnweb.freebsd.org/changeset/base/296162 Log: Implement process-shared locks support for libthr.so.3, without breaking the ABI. Special value is stored in the lock pointer to indicate shared lock, and offline page in the shared memory is allocated to store the actual lock. Reviewed by: vangyzen (previous version) Discussed with: deischen, emaste, jhb, rwatson, Martin Simmons Tested by: pho Sponsored by: The FreeBSD Foundation Added: head/lib/libthr/thread/thr_pshared.c (contents, props changed) Modified: head/bin/sh/miscbltin.c head/include/pthread.h head/include/unistd.h head/lib/libthr/thread/Makefile.inc head/lib/libthr/thread/thr_barrier.c head/lib/libthr/thread/thr_barrierattr.c head/lib/libthr/thread/thr_cond.c head/lib/libthr/thread/thr_condattr.c head/lib/libthr/thread/thr_create.c head/lib/libthr/thread/thr_init.c head/lib/libthr/thread/thr_mutex.c head/lib/libthr/thread/thr_mutexattr.c head/lib/libthr/thread/thr_private.h head/lib/libthr/thread/thr_rwlock.c head/lib/libthr/thread/thr_rwlockattr.c head/sys/kern/kern_resource.c head/sys/kern/kern_umtx.c head/sys/kern/uipc_shm.c head/sys/sys/mman.h head/sys/sys/resource.h head/sys/sys/resourcevar.h head/sys/sys/umtx.h head/sys/vm/vm_object.c head/sys/vm/vm_object.h head/usr.bin/limits/limits.c head/usr.bin/procstat/procstat_rlimit.c Modified: head/bin/sh/miscbltin.c ============================================================================== --- head/bin/sh/miscbltin.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/bin/sh/miscbltin.c Sun Feb 28 17:52:33 2016 (r296162) @@ -414,6 +414,9 @@ static const struct limits limits[] = { #ifdef RLIMIT_KQUEUES { "kqueues", (char *)0, RLIMIT_KQUEUES, 1, 'k' }, #endif +#ifdef RLIMIT_UMTXP + { "umtxp", (char *)0, RLIMIT_UMTXP, 1, 'o' }, +#endif { (char *) 0, (char *)0, 0, 0, '\0' } }; Modified: head/include/pthread.h ============================================================================== --- head/include/pthread.h Sun Feb 28 17:42:27 2016 (r296161) +++ head/include/pthread.h Sun Feb 28 17:52:33 2016 (r296162) @@ -69,7 +69,7 @@ #define PTHREAD_EXPLICIT_SCHED 0 /* - * Flags for read/write lock attributes + * Values for process shared/private attributes. */ #define PTHREAD_PROCESS_PRIVATE 0 #define PTHREAD_PROCESS_SHARED 1 Modified: head/include/unistd.h ============================================================================== --- head/include/unistd.h Sun Feb 28 17:42:27 2016 (r296161) +++ head/include/unistd.h Sun Feb 28 17:52:33 2016 (r296162) @@ -112,7 +112,7 @@ typedef __useconds_t useconds_t; #define _POSIX_THREAD_PRIO_INHERIT 200112L #define _POSIX_THREAD_PRIO_PROTECT 200112L #define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L -#define _POSIX_THREAD_PROCESS_SHARED -1 +#define _POSIX_THREAD_PROCESS_SHARED 200112L #define _POSIX_THREAD_SAFE_FUNCTIONS -1 #define _POSIX_THREAD_SPORADIC_SERVER -1 #define _POSIX_THREADS 200112L Modified: head/lib/libthr/thread/Makefile.inc ============================================================================== --- head/lib/libthr/thread/Makefile.inc Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/Makefile.inc Sun Feb 28 17:52:33 2016 (r296162) @@ -36,6 +36,7 @@ SRCS+= \ thr_mutexattr.c \ thr_once.c \ thr_printf.c \ + thr_pshared.c \ thr_pspinlock.c \ thr_resume_np.c \ thr_rtld.c \ Modified: head/lib/libthr/thread/thr_barrier.c ============================================================================== --- head/lib/libthr/thread/thr_barrier.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_barrier.c Sun Feb 28 17:52:33 2016 (r296162) @@ -41,14 +41,25 @@ __weak_reference(_pthread_barrier_destro int _pthread_barrier_destroy(pthread_barrier_t *barrier) { - pthread_barrier_t bar; - struct pthread *curthread; + pthread_barrier_t bar; + struct pthread *curthread; + int pshared; if (barrier == NULL || *barrier == NULL) return (EINVAL); + if (*barrier == THR_PSHARED_PTR) { + bar = __thr_pshared_offpage(barrier, 0); + if (bar == NULL) { + *barrier = NULL; + return (0); + } + pshared = 1; + } else { + bar = *barrier; + pshared = 0; + } curthread = _get_curthread(); - bar = *barrier; THR_UMUTEX_LOCK(curthread, &bar->b_lock); if (bar->b_destroying) { THR_UMUTEX_UNLOCK(curthread, &bar->b_lock); @@ -71,37 +82,52 @@ _pthread_barrier_destroy(pthread_barrier THR_UMUTEX_UNLOCK(curthread, &bar->b_lock); *barrier = NULL; - free(bar); + if (pshared) + __thr_pshared_destroy(barrier); + else + free(bar); return (0); } int _pthread_barrier_init(pthread_barrier_t *barrier, - const pthread_barrierattr_t *attr, unsigned count) + const pthread_barrierattr_t *attr, unsigned count) { - pthread_barrier_t bar; - - (void)attr; + pthread_barrier_t bar; + int pshared; if (barrier == NULL || count <= 0) return (EINVAL); - bar = calloc(1, sizeof(struct pthread_barrier)); - if (bar == NULL) - return (ENOMEM); + if (attr == NULL || *attr == NULL || + (*attr)->pshared == PTHREAD_PROCESS_PRIVATE) { + bar = calloc(1, sizeof(struct pthread_barrier)); + if (bar == NULL) + return (ENOMEM); + *barrier = bar; + pshared = 0; + } else { + bar = __thr_pshared_offpage(barrier, 1); + if (bar == NULL) + return (EFAULT); + *barrier = THR_PSHARED_PTR; + pshared = 1; + } _thr_umutex_init(&bar->b_lock); _thr_ucond_init(&bar->b_cv); - bar->b_count = count; - *barrier = bar; - + if (pshared) { + bar->b_lock.m_flags |= USYNC_PROCESS_SHARED; + bar->b_cv.c_flags |= USYNC_PROCESS_SHARED; + } + bar->b_count = count; return (0); } int _pthread_barrier_wait(pthread_barrier_t *barrier) { - struct pthread *curthread = _get_curthread(); + struct pthread *curthread; pthread_barrier_t bar; int64_t cycle; int ret; @@ -109,7 +135,14 @@ _pthread_barrier_wait(pthread_barrier_t if (barrier == NULL || *barrier == NULL) return (EINVAL); - bar = *barrier; + if (*barrier == THR_PSHARED_PTR) { + bar = __thr_pshared_offpage(barrier, 0); + if (bar == NULL) + return (EINVAL); + } else { + bar = *barrier; + } + curthread = _get_curthread(); THR_UMUTEX_LOCK(curthread, &bar->b_lock); if (++bar->b_waiters == bar->b_count) { /* Current thread is lastest thread */ Modified: head/lib/libthr/thread/thr_barrierattr.c ============================================================================== --- head/lib/libthr/thread/thr_barrierattr.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_barrierattr.c Sun Feb 28 17:52:33 2016 (r296162) @@ -56,7 +56,7 @@ _pthread_barrierattr_destroy(pthread_bar int _pthread_barrierattr_getpshared(const pthread_barrierattr_t *attr, - int *pshared) + int *pshared) { if (attr == NULL || *attr == NULL) @@ -84,11 +84,9 @@ int _pthread_barrierattr_setpshared(pthread_barrierattr_t *attr, int pshared) { - if (attr == NULL || *attr == NULL) - return (EINVAL); - - /* Only PTHREAD_PROCESS_PRIVATE is supported. */ - if (pshared != PTHREAD_PROCESS_PRIVATE) + if (attr == NULL || *attr == NULL || + (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED)) return (EINVAL); (*attr)->pshared = pshared; Modified: head/lib/libthr/thread/thr_cond.c ============================================================================== --- head/lib/libthr/thread/thr_cond.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_cond.c Sun Feb 28 17:52:33 2016 (r296162) @@ -1,7 +1,11 @@ /* * Copyright (c) 2005 David Xu + * Copyright (c) 2015 The FreeBSD Foundation * All rights reserved. * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -63,29 +67,45 @@ __weak_reference(_pthread_cond_broadcast #define CV_PSHARED(cvp) (((cvp)->__flags & USYNC_PROCESS_SHARED) != 0) +static void +cond_init_body(struct pthread_cond *cvp, const struct pthread_cond_attr *cattr) +{ + + if (cattr == NULL) { + cvp->__clock_id = CLOCK_REALTIME; + } else { + if (cattr->c_pshared) + cvp->__flags |= USYNC_PROCESS_SHARED; + cvp->__clock_id = cattr->c_clockid; + } +} + static int cond_init(pthread_cond_t *cond, const pthread_condattr_t *cond_attr) { - struct pthread_cond *cvp; - int error = 0; + struct pthread_cond *cvp; + const struct pthread_cond_attr *cattr; + int pshared; - if ((cvp = (pthread_cond_t) - calloc(1, sizeof(struct pthread_cond))) == NULL) { - error = ENOMEM; + cattr = cond_attr != NULL ? *cond_attr : NULL; + if (cattr == NULL || cattr->c_pshared == PTHREAD_PROCESS_PRIVATE) { + pshared = 0; + cvp = calloc(1, sizeof(struct pthread_cond)); + if (cvp == NULL) + return (ENOMEM); } else { - /* - * Initialise the condition variable structure: - */ - if (cond_attr == NULL || *cond_attr == NULL) { - cvp->__clock_id = CLOCK_REALTIME; - } else { - if ((*cond_attr)->c_pshared) - cvp->__flags |= USYNC_PROCESS_SHARED; - cvp->__clock_id = (*cond_attr)->c_clockid; - } - *cond = cvp; + pshared = 1; + cvp = __thr_pshared_offpage(cond, 1); + if (cvp == NULL) + return (EFAULT); } - return (error); + + /* + * Initialise the condition variable structure: + */ + cond_init_body(cvp, cattr); + *cond = pshared ? THR_PSHARED_PTR : cvp; + return (0); } static int @@ -106,7 +126,11 @@ init_static(struct pthread *thread, pthr } #define CHECK_AND_INIT_COND \ - if (__predict_false((cvp = (*cond)) <= THR_COND_DESTROYED)) { \ + if (*cond == THR_PSHARED_PTR) { \ + cvp = __thr_pshared_offpage(cond, 0); \ + if (cvp == NULL) \ + return (EINVAL); \ + } else if (__predict_false((cvp = (*cond)) <= THR_COND_DESTROYED)) { \ if (cvp == THR_COND_INITIALIZER) { \ int ret; \ ret = init_static(_get_curthread(), cond); \ @@ -129,21 +153,22 @@ _pthread_cond_init(pthread_cond_t *cond, int _pthread_cond_destroy(pthread_cond_t *cond) { - struct pthread_cond *cvp; - int error = 0; + struct pthread_cond *cvp; + int error; - if ((cvp = *cond) == THR_COND_INITIALIZER) - error = 0; - else if (cvp == THR_COND_DESTROYED) + error = 0; + if (*cond == THR_PSHARED_PTR) { + cvp = __thr_pshared_offpage(cond, 0); + if (cvp != NULL) + __thr_pshared_destroy(cond); + *cond = THR_COND_DESTROYED; + } else if ((cvp = *cond) == THR_COND_INITIALIZER) { + /* nothing */ + } else if (cvp == THR_COND_DESTROYED) { error = EINVAL; - else { + } else { cvp = *cond; *cond = THR_COND_DESTROYED; - - /* - * Free the memory allocated for the condition - * variable structure: - */ free(cvp); } return (error); @@ -297,7 +322,13 @@ cond_wait_common(pthread_cond_t *cond, p CHECK_AND_INIT_COND - mp = *mutex; + if (*mutex == THR_PSHARED_PTR) { + mp = __thr_pshared_offpage(mutex, 0); + if (mp == NULL) + return (EINVAL); + } else { + mp = *mutex; + } if ((error = _mutex_owned(curthread, mp)) != 0) return (error); @@ -385,7 +416,7 @@ cond_signal_common(pthread_cond_t *cond) td = _sleepq_first(sq); mp = td->mutex_obj; cvp->__has_user_waiters = _sleepq_remove(sq, td); - if (mp->m_owner == curthread) { + if (mp->m_owner == TID(curthread)) { if (curthread->nwaiter_defer >= MAX_DEFER_WAITERS) { _thr_wake_all(curthread->defer_waiters, curthread->nwaiter_defer); @@ -417,7 +448,7 @@ drop_cb(struct pthread *td, void *arg) struct pthread *curthread = ba->curthread; mp = td->mutex_obj; - if (mp->m_owner == curthread) { + if (mp->m_owner == TID(curthread)) { if (curthread->nwaiter_defer >= MAX_DEFER_WAITERS) { _thr_wake_all(curthread->defer_waiters, curthread->nwaiter_defer); Modified: head/lib/libthr/thread/thr_condattr.c ============================================================================== --- head/lib/libthr/thread/thr_condattr.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_condattr.c Sun Feb 28 17:52:33 2016 (r296162) @@ -105,20 +105,21 @@ _pthread_condattr_setclock(pthread_conda int _pthread_condattr_getpshared(const pthread_condattr_t *attr, int *pshared) { + if (attr == NULL || *attr == NULL) return (EINVAL); - - *pshared = PTHREAD_PROCESS_PRIVATE; + *pshared = (*attr)->c_pshared; return (0); } int _pthread_condattr_setpshared(pthread_condattr_t *attr, int pshared) { - if (attr == NULL || *attr == NULL) - return (EINVAL); - if (pshared != PTHREAD_PROCESS_PRIVATE) + if (attr == NULL || *attr == NULL || + (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED)) return (EINVAL); + (*attr)->c_pshared = pshared; return (0); } Modified: head/lib/libthr/thread/thr_create.c ============================================================================== --- head/lib/libthr/thread/thr_create.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_create.c Sun Feb 28 17:52:33 2016 (r296162) @@ -56,12 +56,12 @@ _pthread_create(pthread_t * thread, cons struct thr_param param; struct sched_param sched_param; struct rtprio rtp; - int ret = 0, locked, create_suspended; sigset_t set, oset; - cpuset_t *cpusetp = NULL; - int cpusetsize = 0; - int old_stack_prot; + cpuset_t *cpusetp; + int i, cpusetsize, create_suspended, locked, old_stack_prot, ret; + cpusetp = NULL; + ret = cpusetsize = 0; _thr_check_init(); /* @@ -118,8 +118,8 @@ _pthread_create(pthread_t * thread, cons new_thread->cancel_enable = 1; new_thread->cancel_async = 0; /* Initialize the mutex queue: */ - TAILQ_INIT(&new_thread->mutexq); - TAILQ_INIT(&new_thread->pp_mutexq); + for (i = 0; i < TMQ_NITEMS; i++) + TAILQ_INIT(&new_thread->mq[i]); /* Initialise hooks in the thread structure: */ if (new_thread->attr.suspend == THR_CREATE_SUSPENDED) { Modified: head/lib/libthr/thread/thr_init.c ============================================================================== --- head/lib/libthr/thread/thr_init.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_init.c Sun Feb 28 17:52:33 2016 (r296162) @@ -91,13 +91,15 @@ struct pthread_attr _pthread_attr_defaul struct pthread_mutex_attr _pthread_mutexattr_default = { .m_type = PTHREAD_MUTEX_DEFAULT, .m_protocol = PTHREAD_PRIO_NONE, - .m_ceiling = 0 + .m_ceiling = 0, + .m_pshared = PTHREAD_PROCESS_PRIVATE, }; struct pthread_mutex_attr _pthread_mutexattr_adaptive_default = { .m_type = PTHREAD_MUTEX_ADAPTIVE_NP, .m_protocol = PTHREAD_PRIO_NONE, - .m_ceiling = 0 + .m_ceiling = 0, + .m_pshared = PTHREAD_PROCESS_PRIVATE, }; /* Default condition variable attributes: */ @@ -387,6 +389,7 @@ static void init_main_thread(struct pthread *thread) { struct sched_param sched_param; + int i; /* Setup the thread attributes. */ thr_self(&thread->tid); @@ -428,9 +431,9 @@ init_main_thread(struct pthread *thread) thread->cancel_enable = 1; thread->cancel_async = 0; - /* Initialize the mutex queue: */ - TAILQ_INIT(&thread->mutexq); - TAILQ_INIT(&thread->pp_mutexq); + /* Initialize the mutex queues */ + for (i = 0; i < TMQ_NITEMS; i++) + TAILQ_INIT(&thread->mq[i]); thread->state = PS_RUNNING; @@ -463,6 +466,7 @@ init_private(void) _thr_once_init(); _thr_spinlock_init(); _thr_list_init(); + __thr_pshared_init(); _thr_wake_addr_init(); _sleepq_init(); _single_thread = NULL; Modified: head/lib/libthr/thread/thr_mutex.c ============================================================================== --- head/lib/libthr/thread/thr_mutex.c Sun Feb 28 17:42:27 2016 (r296161) +++ head/lib/libthr/thread/thr_mutex.c Sun Feb 28 17:52:33 2016 (r296162) @@ -1,8 +1,13 @@ /* * Copyright (c) 1995 John Birrell . * Copyright (c) 2006 David Xu . + * Copyright (c) 2015 The FreeBSD Foundation + * * All rights reserved. * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -45,26 +50,6 @@ #include "thr_private.h" -#if defined(_PTHREADS_INVARIANTS) -#define MUTEX_INIT_LINK(m) do { \ - (m)->m_qe.tqe_prev = NULL; \ - (m)->m_qe.tqe_next = NULL; \ -} while (0) -#define MUTEX_ASSERT_IS_OWNED(m) do { \ - if (__predict_false((m)->m_qe.tqe_prev == NULL))\ - PANIC("mutex is not on list"); \ -} while (0) -#define MUTEX_ASSERT_NOT_OWNED(m) do { \ - if (__predict_false((m)->m_qe.tqe_prev != NULL || \ - (m)->m_qe.tqe_next != NULL)) \ - PANIC("mutex is on list"); \ -} while (0) -#else -#define MUTEX_INIT_LINK(m) -#define MUTEX_ASSERT_IS_OWNED(m) -#define MUTEX_ASSERT_NOT_OWNED(m) -#endif - /* * For adaptive mutexes, how many times to spin doing trylock2 * before entering the kernel to block @@ -122,36 +107,71 @@ __strong_reference(__pthread_mutex_setyi __weak_reference(_pthread_mutex_getyieldloops_np, pthread_mutex_getyieldloops_np); __weak_reference(_pthread_mutex_isowned_np, pthread_mutex_isowned_np); +static void +mutex_init_link(struct pthread_mutex *m) +{ + +#if defined(_PTHREADS_INVARIANTS) + m->m_qe.tqe_prev = NULL; + m->m_qe.tqe_next = NULL; + m->m_pqe.tqe_prev = NULL; + m->m_pqe.tqe_next = NULL; +#endif +} + +static void +mutex_assert_is_owned(struct pthread_mutex *m) +{ + +#if defined(_PTHREADS_INVARIANTS) + if (__predict_false(m->m_qe.tqe_prev == NULL)) + PANIC("mutex is not on list"); +#endif +} + +static void +mutex_assert_not_owned(struct pthread_mutex *m) +{ + +#if defined(_PTHREADS_INVARIANTS) + if (__predict_false(m->m_qe.tqe_prev != NULL || + m->m_qe.tqe_next != NULL)) + PANIC("mutex is on list"); +#endif +} + static int -mutex_init(pthread_mutex_t *mutex, - const struct pthread_mutex_attr *mutex_attr, - void *(calloc_cb)(size_t, size_t)) +is_pshared_mutex(struct pthread_mutex *m) { - const struct pthread_mutex_attr *attr; - struct pthread_mutex *pmutex; - if (mutex_attr == NULL) { - attr = &_pthread_mutexattr_default; - } else { - attr = mutex_attr; - if (attr->m_type < PTHREAD_MUTEX_ERRORCHECK || - attr->m_type >= PTHREAD_MUTEX_TYPE_MAX) - return (EINVAL); - if (attr->m_protocol < PTHREAD_PRIO_NONE || - attr->m_protocol > PTHREAD_PRIO_PROTECT) - return (EINVAL); - } - if ((pmutex = (pthread_mutex_t) - calloc_cb(1, sizeof(struct pthread_mutex))) == NULL) - return (ENOMEM); + return ((m->m_lock.m_flags & USYNC_PROCESS_SHARED) != 0); +} + +static int +mutex_check_attr(const struct pthread_mutex_attr *attr) +{ + + if (attr->m_type < PTHREAD_MUTEX_ERRORCHECK || + attr->m_type >= PTHREAD_MUTEX_TYPE_MAX) + return (EINVAL); + if (attr->m_protocol < PTHREAD_PRIO_NONE || + attr->m_protocol > PTHREAD_PRIO_PROTECT) + return (EINVAL); + return (0); +} + +static void +mutex_init_body(struct pthread_mutex *pmutex, + const struct pthread_mutex_attr *attr) +{ pmutex->m_flags = attr->m_type; - pmutex->m_owner = NULL; + pmutex->m_owner = 0; pmutex->m_count = 0; pmutex->m_spinloops = 0; pmutex->m_yieldloops = 0; - MUTEX_INIT_LINK(pmutex); - switch(attr->m_protocol) { + mutex_init_link(pmutex); + switch (attr->m_protocol) { case PTHREAD_PRIO_NONE: pmutex->m_lock.m_owner = UMUTEX_UNOWNED; pmutex->m_lock.m_flags = 0; @@ -166,13 +186,37 @@ mutex_init(pthread_mutex_t *mutex, pmutex->m_lock.m_ceilings[0] = attr->m_ceiling; break; } + if (attr->m_pshared == PTHREAD_PROCESS_SHARED) + pmutex->m_lock.m_flags |= USYNC_PROCESS_SHARED; if (PMUTEX_TYPE(pmutex->m_flags) == PTHREAD_MUTEX_ADAPTIVE_NP) { pmutex->m_spinloops = _thr_spinloops ? _thr_spinloops: MUTEX_ADAPTIVE_SPINS; pmutex->m_yieldloops = _thr_yieldloops; } +} +static int +mutex_init(pthread_mutex_t *mutex, + const struct pthread_mutex_attr *mutex_attr, + void *(calloc_cb)(size_t, size_t)) +{ + const struct pthread_mutex_attr *attr; + struct pthread_mutex *pmutex; + int error; + + if (mutex_attr == NULL) { + attr = &_pthread_mutexattr_default; + } else { + attr = mutex_attr; + error = mutex_check_attr(attr); + if (error != 0) + return (error); + } + if ((pmutex = (pthread_mutex_t) + calloc_cb(1, sizeof(struct pthread_mutex))) == NULL) + return (ENOMEM); + mutex_init_body(pmutex, attr); *mutex = pmutex; return (0); } @@ -187,7 +231,8 @@ init_static(struct pthread *thread, pthr if (*mutex == THR_MUTEX_INITIALIZER) ret = mutex_init(mutex, &_pthread_mutexattr_default, calloc); else if (*mutex == THR_ADAPTIVE_MUTEX_INITIALIZER) - ret = mutex_init(mutex, &_pthread_mutexattr_adaptive_default, calloc); + ret = mutex_init(mutex, &_pthread_mutexattr_adaptive_default, + calloc); else ret = 0; THR_LOCK_RELEASE(thread, &_mutex_static_lock); @@ -200,7 +245,7 @@ set_inherited_priority(struct pthread *c { struct pthread_mutex *m2; - m2 = TAILQ_LAST(&curthread->pp_mutexq, mutex_queue); + m2 = TAILQ_LAST(&curthread->mq[TMQ_NORM_PP], mutex_queue); if (m2 != NULL) m->m_lock.m_ceilings[1] = m2->m_lock.m_ceilings[0]; else @@ -211,7 +256,25 @@ int __pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutex_attr) { - return mutex_init(mutex, mutex_attr ? *mutex_attr : NULL, calloc); + struct pthread_mutex *pmtx; + int ret; + + if (mutex_attr != NULL) { + ret = mutex_check_attr(*mutex_attr); + if (ret != 0) + return (ret); + } + if (mutex_attr == NULL || + (*mutex_attr)->m_pshared == PTHREAD_PROCESS_PRIVATE) { + return (mutex_init(mutex, mutex_attr ? *mutex_attr : NULL, + calloc)); + } + pmtx = __thr_pshared_offpage(mutex, 1); + if (pmtx == NULL) + return (EFAULT); + *mutex = THR_PSHARED_PTR; + mutex_init_body(pmtx, *mutex_attr); + return (0); } /* This function is used internally by malloc. */ @@ -222,7 +285,8 @@ _pthread_mutex_init_calloc_cb(pthread_mu static const struct pthread_mutex_attr attr = { .m_type = PTHREAD_MUTEX_NORMAL, .m_protocol = PTHREAD_PRIO_NONE, - .m_ceiling = 0 + .m_ceiling = 0, + .m_pshared = PTHREAD_PROCESS_PRIVATE, }; int ret; @@ -232,31 +296,44 @@ _pthread_mutex_init_calloc_cb(pthread_mu return (ret); } -void -_mutex_fork(struct pthread *curthread) +/* + * Fix mutex ownership for child process. + * + * Process private mutex ownership is transmitted from the forking + * thread to the child process. + * + * Process shared mutex should not be inherited because owner is + * forking thread which is in parent process, they are removed from + * the owned mutex list. + */ +static void +queue_fork(struct pthread *curthread, struct mutex_queue *q, + struct mutex_queue *qp, uint bit) { struct pthread_mutex *m; - /* - * Fix mutex ownership for child process. - * note that process shared mutex should not - * be inherited because owner is forking thread - * which is in parent process, they should be - * removed from the owned mutex list, current, - * process shared mutex is not supported, so I - * am not worried. - */ + TAILQ_INIT(q); + TAILQ_FOREACH(m, qp, m_pqe) { + TAILQ_INSERT_TAIL(q, m, m_qe); + m->m_lock.m_owner = TID(curthread) | bit; + m->m_owner = TID(curthread); + } +} + +void +_mutex_fork(struct pthread *curthread) +{ - TAILQ_FOREACH(m, &curthread->mutexq, m_qe) - m->m_lock.m_owner = TID(curthread); - TAILQ_FOREACH(m, &curthread->pp_mutexq, m_qe) - m->m_lock.m_owner = TID(curthread) | UMUTEX_CONTESTED; + queue_fork(curthread, &curthread->mq[TMQ_NORM], + &curthread->mq[TMQ_NORM_PRIV], 0); + queue_fork(curthread, &curthread->mq[TMQ_NORM_PP], + &curthread->mq[TMQ_NORM_PP_PRIV], UMUTEX_CONTESTED); } int _pthread_mutex_destroy(pthread_mutex_t *mutex) { - pthread_mutex_t m; + pthread_mutex_t m, m1; int ret; m = *mutex; @@ -265,11 +342,20 @@ _pthread_mutex_destroy(pthread_mutex_t * } else if (m == THR_MUTEX_DESTROYED) { ret = EINVAL; } else { - if (m->m_owner != NULL) { + if (m == THR_PSHARED_PTR) { + m1 = __thr_pshared_offpage(mutex, 0); + if (m1 != NULL) { + mutex_assert_not_owned(m1); + __thr_pshared_destroy(mutex); + } + *mutex = THR_MUTEX_DESTROYED; + return (0); + } + if (m->m_owner != 0) { ret = EBUSY; } else { *mutex = THR_MUTEX_DESTROYED; - MUTEX_ASSERT_NOT_OWNED(m); + mutex_assert_not_owned(m); free(m); ret = 0; } @@ -278,54 +364,87 @@ _pthread_mutex_destroy(pthread_mutex_t * return (ret); } -#define ENQUEUE_MUTEX(curthread, m) \ - do { \ - (m)->m_owner = curthread; \ - /* Add to the list of owned mutexes: */ \ - MUTEX_ASSERT_NOT_OWNED((m)); \ - if (((m)->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) \ - TAILQ_INSERT_TAIL(&curthread->mutexq, (m), m_qe);\ - else \ - TAILQ_INSERT_TAIL(&curthread->pp_mutexq, (m), m_qe);\ - } while (0) - -#define DEQUEUE_MUTEX(curthread, m) \ - (m)->m_owner = NULL; \ - MUTEX_ASSERT_IS_OWNED(m); \ - if (__predict_true(((m)->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0)) \ - TAILQ_REMOVE(&curthread->mutexq, (m), m_qe); \ - else { \ - TAILQ_REMOVE(&curthread->pp_mutexq, (m), m_qe); \ - set_inherited_priority(curthread, m); \ - } \ - MUTEX_INIT_LINK(m); - -#define CHECK_AND_INIT_MUTEX \ - if (__predict_false((m = *mutex) <= THR_MUTEX_DESTROYED)) { \ - if (m == THR_MUTEX_DESTROYED) \ - return (EINVAL); \ - int ret; \ - ret = init_static(_get_curthread(), mutex); \ - if (ret) \ - return (ret); \ - m = *mutex; \ - } +static int +mutex_qidx(struct pthread_mutex *m) +{ + + if ((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) + return (TMQ_NORM); + return (TMQ_NORM_PP); +} + +static void +enqueue_mutex(struct pthread *curthread, struct pthread_mutex *m) +{ + int qidx; + + m->m_owner = TID(curthread); + /* Add to the list of owned mutexes: */ + mutex_assert_not_owned(m); + qidx = mutex_qidx(m); + TAILQ_INSERT_TAIL(&curthread->mq[qidx], m, m_qe); + if (!is_pshared_mutex(m)) + TAILQ_INSERT_TAIL(&curthread->mq[qidx + 1], m, m_pqe); +} + +static void +dequeue_mutex(struct pthread *curthread, struct pthread_mutex *m) +{ + int qidx; + + m->m_owner = 0; + mutex_assert_is_owned(m); + qidx = mutex_qidx(m); + TAILQ_REMOVE(&curthread->mq[qidx], m, m_qe); + if (!is_pshared_mutex(m)) + TAILQ_REMOVE(&curthread->mq[qidx + 1], m, m_pqe); + if ((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) != 0) + set_inherited_priority(curthread, m); + mutex_init_link(m); +} static int -mutex_trylock_common(pthread_mutex_t *mutex) +check_and_init_mutex(pthread_mutex_t *mutex, struct pthread_mutex **m) { - struct pthread *curthread = _get_curthread(); - struct pthread_mutex *m = *mutex; + int ret; + + *m = *mutex; + ret = 0; + if (*m == THR_PSHARED_PTR) { + *m = __thr_pshared_offpage(mutex, 0); + if (*m == NULL) + ret = EINVAL; + } else if (__predict_false(*m <= THR_MUTEX_DESTROYED)) { + if (*m == THR_MUTEX_DESTROYED) { + ret = EINVAL; + } else { + ret = init_static(_get_curthread(), mutex); + if (ret == 0) + *m = *mutex; + } + } + return (ret); +} + +int +__pthread_mutex_trylock(pthread_mutex_t *mutex) +{ + struct pthread *curthread; + struct pthread_mutex *m; uint32_t id; int ret; + ret = check_and_init_mutex(mutex, &m); + if (ret != 0) + return (ret); + curthread = _get_curthread(); id = TID(curthread); if (m->m_flags & PMUTEX_FLAG_PRIVATE) THR_CRITICAL_ENTER(curthread); ret = _thr_umutex_trylock(&m->m_lock, id); if (__predict_true(ret == 0)) { - ENQUEUE_MUTEX(curthread, m); - } else if (m->m_owner == curthread) { + enqueue_mutex(curthread, m); + } else if (m->m_owner == id) { ret = mutex_self_trylock(m); } /* else {} */ if (ret && (m->m_flags & PMUTEX_FLAG_PRIVATE)) @@ -333,16 +452,6 @@ mutex_trylock_common(pthread_mutex_t *mu return (ret); } -int -__pthread_mutex_trylock(pthread_mutex_t *mutex) -{ - struct pthread_mutex *m; - - CHECK_AND_INIT_MUTEX - - return (mutex_trylock_common(mutex)); -} - static int mutex_lock_sleep(struct pthread *curthread, struct pthread_mutex *m, const struct timespec *abstime) @@ -351,10 +460,10 @@ mutex_lock_sleep(struct pthread *curthre int count; int ret; - if (m->m_owner == curthread) - return mutex_self_lock(m, abstime); - id = TID(curthread); + if (m->m_owner == id) + return (mutex_self_lock(m, abstime)); + /* * For adaptive mutexes, spin for a bit in the expectation * that if the application requests this mutex type then @@ -406,7 +515,7 @@ sleep_in_kernel: } done: if (ret == 0) - ENQUEUE_MUTEX(curthread, m); + enqueue_mutex(curthread, m); return (ret); } @@ -421,7 +530,7 @@ mutex_lock_common(struct pthread_mutex * if (!cvattach && m->m_flags & PMUTEX_FLAG_PRIVATE) THR_CRITICAL_ENTER(curthread); if (_thr_umutex_trylock2(&m->m_lock, TID(curthread)) == 0) { - ENQUEUE_MUTEX(curthread, m); + enqueue_mutex(curthread, m); ret = 0; } else { ret = mutex_lock_sleep(curthread, m, abstime); @@ -434,25 +543,28 @@ mutex_lock_common(struct pthread_mutex * int __pthread_mutex_lock(pthread_mutex_t *mutex) { - struct pthread_mutex *m; + struct pthread_mutex *m; + int ret; _thr_check_init(); - - CHECK_AND_INIT_MUTEX - - return (mutex_lock_common(m, NULL, 0)); + ret = check_and_init_mutex(mutex, &m); + if (ret == 0) + ret = mutex_lock_common(m, NULL, 0); + return (ret); } int -__pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime) +__pthread_mutex_timedlock(pthread_mutex_t *mutex, + const struct timespec *abstime) { - struct pthread_mutex *m; + struct pthread_mutex *m; + int ret; _thr_check_init(); - - CHECK_AND_INIT_MUTEX - - return (mutex_lock_common(m, abstime, 0)); + ret = check_and_init_mutex(mutex, &m); + if (ret == 0) + ret = mutex_lock_common(m, abstime, 0); + return (ret); } int @@ -460,7 +572,13 @@ _pthread_mutex_unlock(pthread_mutex_t *m { struct pthread_mutex *mp; - mp = *mutex; + if (*mutex == THR_PSHARED_PTR) { + mp = __thr_pshared_offpage(mutex, 0); + if (mp == NULL) + return (EINVAL); + } else { + mp = *mutex; + } return (mutex_unlock_common(mp, 0, NULL)); } @@ -493,7 +611,7 @@ _mutex_cv_attach(struct pthread_mutex *m { struct pthread *curthread = _get_curthread(); - ENQUEUE_MUTEX(curthread, m); + enqueue_mutex(curthread, m); m->m_count = count; return (0); } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sun Feb 28 19:39:01 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED934AB7C67; Sun, 28 Feb 2016 19:39:01 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 BAE4F69C; Sun, 28 Feb 2016 19:39:01 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SJd09d040309; Sun, 28 Feb 2016 19:39:00 GMT (envelope-from gonzo@FreeBSD.org) Received: (from gonzo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SJd0al040308; Sun, 28 Feb 2016 19:39:00 GMT (envelope-from gonzo@FreeBSD.org) Message-Id: <201602281939.u1SJd0al040308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gonzo set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko Date: Sun, 28 Feb 2016 19:39:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296163 - head/sys/arm/broadcom/bcm2835 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 19:39:02 -0000 Author: gonzo Date: Sun Feb 28 19:39:00 2016 New Revision: 296163 URL: https://svnweb.freebsd.org/changeset/base/296163 Log: Fix typo in device description Spotted by: jmcneill Modified: head/sys/arm/broadcom/bcm2835/bcm2835_audio.c Modified: head/sys/arm/broadcom/bcm2835/bcm2835_audio.c ============================================================================== --- head/sys/arm/broadcom/bcm2835/bcm2835_audio.c Sun Feb 28 17:52:33 2016 (r296162) +++ head/sys/arm/broadcom/bcm2835/bcm2835_audio.c Sun Feb 28 19:39:00 2016 (r296163) @@ -757,7 +757,7 @@ static int bcm2835_audio_probe(device_t dev) { - device_set_desc(dev, "VCHQI audio"); + device_set_desc(dev, "VCHIQ audio"); return (BUS_PROBE_DEFAULT); } From owner-svn-src-head@freebsd.org Sun Feb 28 21:04:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4AB6AB7ADC; Sun, 28 Feb 2016 21:04:05 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 6795B1E13; Sun, 28 Feb 2016 21:04:05 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SL44rf066505; Sun, 28 Feb 2016 21:04:04 GMT (envelope-from jgh@FreeBSD.org) Received: (from jgh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SL44kC066504; Sun, 28 Feb 2016 21:04:04 GMT (envelope-from jgh@FreeBSD.org) Message-Id: <201602282104.u1SL44kC066504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jgh set sender to jgh@FreeBSD.org using -f From: Jason Helfman Date: Sun, 28 Feb 2016 21:04:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296167 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 21:04:05 -0000 Author: jgh (doc,ports committer) Date: Sun Feb 28 21:04:04 2016 New Revision: 296167 URL: https://svnweb.freebsd.org/changeset/base/296167 Log: - address obsolete Kerberos options PR: 205168 Submitted by: kevin@bostoncrypto.com Reviewed by: bjk MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5430 Modified: head/share/man/man5/rc.conf.5 Modified: head/share/man/man5/rc.conf.5 ============================================================================== --- head/share/man/man5/rc.conf.5 Sun Feb 28 20:33:57 2016 (r296166) +++ head/share/man/man5/rc.conf.5 Sun Feb 28 21:04:04 2016 (r296167) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 12, 2016 +.Dd February 28, 2016 .Dt RC.CONF 5 .Os .Sh NAME @@ -2092,25 +2092,25 @@ If set to run the .Xr unbound 8 daemon as a local caching resolver. -.It Va kerberos5_server_enable +.It Va kdc_enable .Pq Vt bool Set to .Dq Li YES to start a Kerberos 5 authentication server at boot time. -.It Va kerberos5_server +.It Va kdc_program .Pq Vt str If -.Va kerberos5_server_enable +.Va kdc_enable is set to .Dq Li YES this is the path to Kerberos 5 Authentication Server. -.It Va kerberos5_server_flags +.It Va kdc_flags .Pq Vt str Empty by default. This variable contains additional flags to be passed to the Kerberos 5 authentication server. -.It Va kadmind5_server_enable +.It Va kadmind_enable .Pq Vt bool Set to .Dq Li YES @@ -2119,14 +2119,14 @@ to start the Kerberos 5 Administration Daemon; set to .Dq Li NO on a slave server. -.It Va kadmind5_server +.It Va kadmind_program .Pq Vt str If -.Va kadmind5_server_enable +.Va kadmind_enable is set to .Dq Li YES this is the path to Kerberos 5 Administration Daemon. -.It Va kpasswdd_server_enable +.It Va kpasswdd_enable .Pq Vt bool Set to .Dq Li YES @@ -2135,10 +2135,10 @@ to start the Kerberos 5 Password-Changing Daemon; set to .Dq Li NO on a slave server. -.It Va kpasswdd_server +.It Va kpasswdd_program .Pq Vt str If -.Va kpasswdd_server_enable +.Va kpasswdd_enable is set to .Dq Li YES this is the path to Kerberos 5 Password-Changing Daemon. From owner-svn-src-head@freebsd.org Sun Feb 28 23:35:04 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC5D5AB8D8D; Sun, 28 Feb 2016 23:35:04 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8DC0394A; Sun, 28 Feb 2016 23:35:04 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SNZ3qg012720; Sun, 28 Feb 2016 23:35:03 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SNZ3Dr012719; Sun, 28 Feb 2016 23:35:03 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602282335.u1SNZ3Dr012719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 28 Feb 2016 23:35:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296169 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 23:35:04 -0000 Author: avos Date: Sun Feb 28 23:35:03 2016 New Revision: 296169 URL: https://svnweb.freebsd.org/changeset/base/296169 Log: net80211: fix 'taskqueue_drain with non-sleepable locks held' warning Do not run ieee80211_waitfor_parent() when it's not needed. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5446 Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Feb 28 22:37:59 2016 (r296168) +++ head/sys/net80211/ieee80211_ioctl.c Sun Feb 28 23:35:03 2016 (r296169) @@ -3289,7 +3289,7 @@ ieee80211_ioctl(struct ifnet *ifp, u_lon { struct ieee80211vap *vap = ifp->if_softc; struct ieee80211com *ic = vap->iv_ic; - int error = 0; + int error = 0, wait = 0; struct ifreq *ifr; struct ifaddr *ifa; /* XXX */ @@ -3308,18 +3308,24 @@ ieee80211_ioctl(struct ifnet *ifp, u_lon * then it will automatically be brought up as a * side-effect of bringing ourself up. */ - if (vap->iv_state == IEEE80211_S_INIT) + if (vap->iv_state == IEEE80211_S_INIT) { + if (ic->ic_nrunning == 0) + wait = 1; ieee80211_start_locked(vap); + } } else if (ifp->if_drv_flags & IFF_DRV_RUNNING) { /* * Stop ourself. If we are the last vap to be * marked down the parent will also be taken down. */ + if (ic->ic_nrunning == 1) + wait = 1; ieee80211_stop_locked(vap); } IEEE80211_UNLOCK(ic); /* Wait for parent ioctl handler if it was queued */ - ieee80211_waitfor_parent(ic); + if (wait) + ieee80211_waitfor_parent(ic); break; case SIOCADDMULTI: case SIOCDELMULTI: From owner-svn-src-head@freebsd.org Sun Feb 28 23:48:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F83FAB754E; Sun, 28 Feb 2016 23:48:35 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 6E0A01243; Sun, 28 Feb 2016 23:48:35 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SNmYHR016134; Sun, 28 Feb 2016 23:48:34 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SNmYAS016133; Sun, 28 Feb 2016 23:48:34 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602282348.u1SNmYAS016133@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 28 Feb 2016 23:48:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296170 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 23:48:35 -0000 Author: avos Date: Sun Feb 28 23:48:34 2016 New Revision: 296170 URL: https://svnweb.freebsd.org/changeset/base/296170 Log: net80211: remove redundant locking. All callers of ieee80211_promisc()/ieee80211_allmulti() (ieee80211_vap_detach(), ieee80211_ioctl(), ap_start() and ap_end()) already hold the com_lock while calling them. Tested with RTL8188EU, STA mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5475 Modified: head/sys/net80211/ieee80211.c Modified: head/sys/net80211/ieee80211.c ============================================================================== --- head/sys/net80211/ieee80211.c Sun Feb 28 23:35:03 2016 (r296169) +++ head/sys/net80211/ieee80211.c Sun Feb 28 23:48:34 2016 (r296170) @@ -714,7 +714,8 @@ ieee80211_promisc(struct ieee80211vap *v (vap->iv_caps & IEEE80211_C_TDMA) == 0))) return; - IEEE80211_LOCK(ic); + IEEE80211_LOCK_ASSERT(ic); + if (on) { if (++ic->ic_promisc == 1) ieee80211_runtask(ic, &ic->ic_promisc_task); @@ -724,7 +725,6 @@ ieee80211_promisc(struct ieee80211vap *v if (--ic->ic_promisc == 0) ieee80211_runtask(ic, &ic->ic_promisc_task); } - IEEE80211_UNLOCK(ic); } /* @@ -736,7 +736,8 @@ ieee80211_allmulti(struct ieee80211vap * { struct ieee80211com *ic = vap->iv_ic; - IEEE80211_LOCK(ic); + IEEE80211_LOCK_ASSERT(ic); + if (on) { if (++ic->ic_allmulti == 1) ieee80211_runtask(ic, &ic->ic_mcast_task); @@ -746,7 +747,6 @@ ieee80211_allmulti(struct ieee80211vap * if (--ic->ic_allmulti == 0) ieee80211_runtask(ic, &ic->ic_mcast_task); } - IEEE80211_UNLOCK(ic); } /* From owner-svn-src-head@freebsd.org Sun Feb 28 23:52:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15CB7AB7870; Sun, 28 Feb 2016 23:52:35 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D910D1A2E; Sun, 28 Feb 2016 23:52:34 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SNqXu6019107; Sun, 28 Feb 2016 23:52:33 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SNqX1r019106; Sun, 28 Feb 2016 23:52:33 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602282352.u1SNqX1r019106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 28 Feb 2016 23:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296171 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 23:52:35 -0000 Author: avos Date: Sun Feb 28 23:52:33 2016 New Revision: 296171 URL: https://svnweb.freebsd.org/changeset/base/296171 Log: net80211: fix a comment for TX lock Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5476 Modified: head/sys/net80211/ieee80211_freebsd.h Modified: head/sys/net80211/ieee80211_freebsd.h ============================================================================== --- head/sys/net80211/ieee80211_freebsd.h Sun Feb 28 23:48:34 2016 (r296170) +++ head/sys/net80211/ieee80211_freebsd.h Sun Feb 28 23:52:33 2016 (r296171) @@ -65,7 +65,7 @@ typedef struct { * transmission operations throughout the stack. */ typedef struct { - char name[16]; /* e.g. "ath0_com_lock" */ + char name[16]; /* e.g. "ath0_tx_lock" */ struct mtx mtx; } ieee80211_tx_lock_t; #define IEEE80211_TX_LOCK_INIT(_ic, _name) do { \ From owner-svn-src-head@freebsd.org Sun Feb 28 23:57:27 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65BC5AB7C5D; Sun, 28 Feb 2016 23:57:27 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3787B1ED7; Sun, 28 Feb 2016 23:57:27 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1SNvQMO019483; Sun, 28 Feb 2016 23:57:26 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1SNvQYn019482; Sun, 28 Feb 2016 23:57:26 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602282357.u1SNvQYn019482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sun, 28 Feb 2016 23:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296173 - head/etc/defaults X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Feb 2016 23:57:27 -0000 Author: avos Date: Sun Feb 28 23:57:26 2016 New Revision: 296173 URL: https://svnweb.freebsd.org/changeset/base/296173 Log: etc/defaults/rc.conf: fix a typo (wlanddebug -> wlandebug) Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5480 Modified: head/etc/defaults/rc.conf Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Sun Feb 28 23:52:48 2016 (r296172) +++ head/etc/defaults/rc.conf Sun Feb 28 23:57:26 2016 (r296173) @@ -221,7 +221,7 @@ cloned_interfaces="" # List of cloned n #vlans_fxp0="101 vlan0" # vlan(4) interfaces for fxp0 device #create_args_vlan0="vlan 102" # vlan tag for vlan0 device #wlans_ath0="wlan0" # wlan(4) interfaces for ath0 device -#wlandebug_wlan0="scan+auth+assoc" # Set debug flags with wlanddebug(8) +#wlandebug_wlan0="scan+auth+assoc" # Set debug flags with wlandebug(8) #ipv4_addrs_fxp0="192.168.0.1/24 192.168.1.1-5/28" # example IPv4 address entry. # #autobridge_interfaces="bridge0" # List of bridges to check From owner-svn-src-head@freebsd.org Mon Feb 29 00:05:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78348AB60D6; Mon, 29 Feb 2016 00:05:38 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 45BB1147A; Mon, 29 Feb 2016 00:05:38 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T05b0E022572; Mon, 29 Feb 2016 00:05:37 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T05bZr022571; Mon, 29 Feb 2016 00:05:37 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602290005.u1T05bZr022571@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 00:05:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296174 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 00:05:38 -0000 Author: avos Date: Mon Feb 29 00:05:37 2016 New Revision: 296174 URL: https://svnweb.freebsd.org/changeset/base/296174 Log: urtwn: do not filter beacon frames in HOSTAP mode while scanning urtwn_set_rx_bssid_all() will allow to receive beacons only when they are not denied by filter. Revealed by D5474. Tested with RTL8188CUS, HOSTAP mode. Reviewed by: kevlo Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5477 Modified: head/sys/dev/usb/wlan/if_urtwn.c Modified: head/sys/dev/usb/wlan/if_urtwn.c ============================================================================== --- head/sys/dev/usb/wlan/if_urtwn.c Sun Feb 28 23:57:26 2016 (r296173) +++ head/sys/dev/usb/wlan/if_urtwn.c Mon Feb 29 00:05:37 2016 (r296174) @@ -4170,8 +4170,7 @@ urtwn_rxfilter_init(struct urtwn_softc * case IEEE80211_M_HOSTAP: filter &= ~( R92C_RXFLTMAP_SUBTYPE(IEEE80211_FC0_SUBTYPE_ASSOC_RESP) | - R92C_RXFLTMAP_SUBTYPE(IEEE80211_FC0_SUBTYPE_REASSOC_RESP) | - R92C_RXFLTMAP_SUBTYPE(IEEE80211_FC0_SUBTYPE_BEACON)); + R92C_RXFLTMAP_SUBTYPE(IEEE80211_FC0_SUBTYPE_REASSOC_RESP)); break; case IEEE80211_M_MONITOR: case IEEE80211_M_IBSS: From owner-svn-src-head@freebsd.org Mon Feb 29 00:15:28 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B030AB6548; Mon, 29 Feb 2016 00:15:28 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 EAB331CA8; Mon, 29 Feb 2016 00:15:27 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T0FRvF025665; Mon, 29 Feb 2016 00:15:27 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T0FPcs025653; Mon, 29 Feb 2016 00:15:25 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201602290015.u1T0FPcs025653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 29 Feb 2016 00:15:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296175 - in head/lib/libedit: . TEST edit/readline X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 00:15:28 -0000 Author: pfg Date: Mon Feb 29 00:15:25 2016 New Revision: 296175 URL: https://svnweb.freebsd.org/changeset/base/296175 Log: MFV r296159 Sync our libedit with NetBSD's libedit 2016-02-27. Obtained from: NetBSD Modified: head/lib/libedit/Makefile head/lib/libedit/TEST/tc1.c head/lib/libedit/TEST/wtc1.c head/lib/libedit/chared.c head/lib/libedit/chared.h head/lib/libedit/chartype.c head/lib/libedit/chartype.h head/lib/libedit/common.c head/lib/libedit/config.h head/lib/libedit/edit/readline/readline.h head/lib/libedit/editline.3 head/lib/libedit/el.c head/lib/libedit/el.h head/lib/libedit/eln.c head/lib/libedit/emacs.c head/lib/libedit/filecomplete.c head/lib/libedit/hist.c head/lib/libedit/hist.h head/lib/libedit/histedit.h head/lib/libedit/history.c head/lib/libedit/keymacro.c head/lib/libedit/makelist head/lib/libedit/map.c head/lib/libedit/parse.c head/lib/libedit/prompt.c head/lib/libedit/prompt.h head/lib/libedit/read.c head/lib/libedit/read.h head/lib/libedit/readline.c head/lib/libedit/refresh.c head/lib/libedit/refresh.h head/lib/libedit/search.c head/lib/libedit/search.h head/lib/libedit/sig.c head/lib/libedit/sig.h head/lib/libedit/sys.h head/lib/libedit/terminal.c head/lib/libedit/terminal.h head/lib/libedit/tokenizer.c head/lib/libedit/tty.c head/lib/libedit/tty.h head/lib/libedit/vi.c Directory Properties: head/lib/libedit/ (props changed) head/lib/libedit/edit/readline/ (props changed) Modified: head/lib/libedit/Makefile ============================================================================== --- head/lib/libedit/Makefile Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/Makefile Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.37 2009/01/18 12:17:49 lukem Exp $ +# $NetBSD: Makefile,v 1.55 2016/02/24 14:25:38 christos Exp $ # @(#)Makefile 8.1 (Berkeley) 6/4/93 # $FreeBSD$ @@ -6,7 +6,7 @@ LIB= edit SHLIB_MAJOR= 7 SHLIBDIR?= /lib -OSRCS= chared.c common.c el.c emacs.c fcns.c filecomplete.c help.c \ +OSRCS= chared.c common.c el.c eln.c emacs.c fcns.c filecomplete.c help.c \ hist.c keymacro.c map.c chartype.c \ parse.c prompt.c read.c refresh.c search.c sig.c terminal.c tty.c vi.c @@ -34,7 +34,6 @@ CLEANFILES+= common.h editline.c emacs.h INCS= histedit.h -OSRCS+= eln.c SRCS+= tokenizern.c historyn.c CLEANFILES+= tokenizern.c historyn.c CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/edit -DWIDECHAR Modified: head/lib/libedit/TEST/tc1.c ============================================================================== --- head/lib/libedit/TEST/tc1.c Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/TEST/tc1.c Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: tc1.c,v 1.6 2014/06/18 20:12:15 christos Exp $ */ +/* $NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1992, 19 #if 0 static char sccsid[] = "@(#)test.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: tc1.c,v 1.6 2014/06/18 20:12:15 christos Exp $"); +__RCSID("$NetBSD: tc1.c,v 1.7 2016/02/17 19:47:49 christos Exp $"); #endif #endif /* not lint && not SCCSID */ __FBSDID("$FreeBSD$"); @@ -50,15 +50,15 @@ __FBSDID("$FreeBSD$"); /* * test.c: A little test program */ -#include -#include -#include #include #include -#include -#include #include #include +#include +#include +#include +#include +#include #include "histedit.h" @@ -158,7 +158,7 @@ main(int argc, char *argv[]) /* Add a user-defined function */ el_set(el, EL_ADDFN, "ed-complete", "Complete argument", complete); - /* Bind tab to it */ + /* Bind tab to it */ el_set(el, EL_BIND, "^I", "ed-complete", NULL); /* Modified: head/lib/libedit/TEST/wtc1.c ============================================================================== --- head/lib/libedit/TEST/wtc1.c Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/TEST/wtc1.c Mon Feb 29 00:15:25 2016 (r296175) @@ -5,13 +5,16 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include -#include -#include #include +#include #include #include +#include +#include +#include +#include +#include #include "../histedit.h" Modified: head/lib/libedit/chared.c ============================================================================== --- head/lib/libedit/chared.c Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/chared.c Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: chared.c,v 1.40 2014/06/18 18:12:28 christos Exp $ */ +/* $NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)chared.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: chared.c,v 1.40 2014/06/18 18:12:28 christos Exp $"); +__RCSID("$NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $"); #endif #endif /* not lint && not SCCSID */ #include @@ -46,8 +46,12 @@ __FBSDID("$FreeBSD$"); /* * chared.c: Character editor utilities */ +#include #include +#include + #include "el.h" +#include "common.h" private void ch__clearmacro (EditLine *); @@ -201,7 +205,7 @@ c_delbefore1(EditLine *el) * Return if p is part of a word according to emacs */ protected int -ce__isword(Int p) +ce__isword(wint_t p) { return Isalnum(p) || Strchr(STR("*?_-.[]~="), p) != NULL; } @@ -211,7 +215,7 @@ ce__isword(Int p) * Return if p is part of a word according to vi */ protected int -cv__isword(Int p) +cv__isword(wint_t p) { if (Isalnum(p) || p == '_') return 1; @@ -225,7 +229,7 @@ cv__isword(Int p) * Return if p is part of a big word according to vi */ protected int -cv__isWord(Int p) +cv__isWord(wint_t p) { return !Isspace(p); } @@ -235,7 +239,7 @@ cv__isWord(Int p) * Find the previous word */ protected Char * -c__prev_word(Char *p, Char *low, int n, int (*wtest)(Int)) +c__prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t)) { p--; @@ -259,7 +263,7 @@ c__prev_word(Char *p, Char *low, int n, * Find the next word */ protected Char * -c__next_word(Char *p, Char *high, int n, int (*wtest)(Int)) +c__next_word(Char *p, Char *high, int n, int (*wtest)(wint_t)) { while (n--) { while ((p < high) && !(*wtest)(*p)) @@ -277,7 +281,7 @@ c__next_word(Char *p, Char *high, int n, * Find the next word vi style */ protected Char * -cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(Int)) +cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(wint_t)) { int test; @@ -306,7 +310,7 @@ cv_next_word(EditLine *el, Char *p, Char * Find the previous word vi style */ protected Char * -cv_prev_word(Char *p, Char *low, int n, int (*wtest)(Int)) +cv_prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t)) { int test; @@ -370,7 +374,7 @@ cv_delfini(EditLine *el) * Go to the end of this word according to vi */ protected Char * -cv__endword(Char *p, Char *high, int n, int (*wtest)(Int)) +cv__endword(Char *p, Char *high, int n, int (*wtest)(wint_t)) { int test; @@ -524,7 +528,7 @@ ch_enlargebufs(EditLine *el, size_t addl /* zero the newly added memory, leave old data in */ (void) memset(&newbuffer[sz], 0, (newsz - sz) * sizeof(*newbuffer)); - + oldbuf = el->el_line.buffer; el->el_line.buffer = newbuffer; @@ -573,7 +577,7 @@ ch_enlargebufs(EditLine *el, size_t addl el->el_chared.c_redo.lim = newbuffer + (el->el_chared.c_redo.lim - el->el_chared.c_redo.buf); el->el_chared.c_redo.buf = newbuffer; - + if (!hist_enlargebuf(el, sz, newsz)) return 0; @@ -673,9 +677,9 @@ out: protected int c_gets(EditLine *el, Char *buf, const Char *prompt) { - Char ch; + wchar_t wch; ssize_t len; - Char *cp = el->el_line.buffer; + Char *cp = el->el_line.buffer, ch; if (prompt) { len = (ssize_t)Strlen(prompt); @@ -690,26 +694,28 @@ c_gets(EditLine *el, Char *buf, const Ch el->el_line.lastchar = cp + 1; re_refresh(el); - if (FUN(el,getc)(el, &ch) != 1) { + if (el_wgetc(el, &wch) != 1) { ed_end_of_file(el, 0); len = -1; break; } + ch = (Char)wch; switch (ch) { - case 0010: /* Delete and backspace */ + case L'\b': /* Delete and backspace */ case 0177: if (len == 0) { len = -1; break; } + len--; cp--; continue; case 0033: /* ESC */ - case '\r': /* Newline */ - case '\n': + case L'\r': /* Newline */ + case L'\n': buf[len] = ch; break; Modified: head/lib/libedit/chared.h ============================================================================== --- head/lib/libedit/chared.h Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/chared.h Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: chared.h,v 1.22 2014/06/18 18:12:28 christos Exp $ */ +/* $NetBSD: chared.h,v 1.27 2016/02/16 22:53:14 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -41,11 +41,6 @@ #ifndef _h_el_chared #define _h_el_chared -#include -#include - -#include "histedit.h" - #define EL_MAXMACRO 10 /* @@ -140,24 +135,18 @@ typedef struct el_chared_t { #define MODE_REPLACE 1 #define MODE_REPLACE_1 2 -#include "common.h" -#include "vi.h" -#include "emacs.h" -#include "search.h" -#include "fcns.h" - -protected int cv__isword(Int); -protected int cv__isWord(Int); +protected int cv__isword(wint_t); +protected int cv__isWord(wint_t); protected void cv_delfini(EditLine *); -protected Char *cv__endword(Char *, Char *, int, int (*)(Int)); -protected int ce__isword(Int); +protected Char *cv__endword(Char *, Char *, int, int (*)(wint_t)); +protected int ce__isword(wint_t); protected void cv_undo(EditLine *); protected void cv_yank(EditLine *, const Char *, int); -protected Char *cv_next_word(EditLine*, Char *, Char *, int, int (*)(Int)); -protected Char *cv_prev_word(Char *, Char *, int, int (*)(Int)); -protected Char *c__next_word(Char *, Char *, int, int (*)(Int)); -protected Char *c__prev_word(Char *, Char *, int, int (*)(Int)); +protected Char *cv_next_word(EditLine*, Char *, Char *, int, int (*)(wint_t)); +protected Char *cv_prev_word(Char *, Char *, int, int (*)(wint_t)); +protected Char *c__next_word(Char *, Char *, int, int (*)(wint_t)); +protected Char *c__prev_word(Char *, Char *, int, int (*)(wint_t)); protected void c_insert(EditLine *, int); protected void c_delbefore(EditLine *, int); protected void c_delbefore1(EditLine *); Modified: head/lib/libedit/chartype.c ============================================================================== --- head/lib/libedit/chartype.c Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/chartype.c Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.c,v 1.12 2015/02/22 02:16:19 christos Exp $ */ +/* $NetBSD: chartype.c,v 1.23 2016/02/28 23:02:24 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -31,13 +31,16 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: chartype.c,v 1.12 2015/02/22 02:16:19 christos Exp $"); +__RCSID("$NetBSD: chartype.c,v 1.23 2016/02/28 23:02:24 christos Exp $"); #endif /* not lint && not SCCSID */ #include __FBSDID("$FreeBSD$"); -#include "el.h" +#include #include +#include + +#include "el.h" #define CT_BUFSIZ ((size_t)1024) @@ -68,7 +71,7 @@ ct_conv_wbuff_resize(ct_buffer_t *conv, { void *p; - if (wsize <= conv->wsize) + if (wsize <= conv->wsize) return 0; conv->wsize = wsize; @@ -206,6 +209,28 @@ ct_encode_char(char *dst, size_t len, Ch } return l; } + +size_t +ct_mbrtowc(wchar_t *wc, const char *s, size_t n) +{ + mbstate_t mbs; + /* This only works because UTF-8 is stateless */ + memset(&mbs, 0, sizeof(mbs)); + return mbrtowc(wc, s, n, &mbs); +} + +#else + +size_t +ct_mbrtowc(wchar_t *wc, const char *s, size_t n) + if (s == NULL) + return 0; + if (n == 0) + return (size_t)-2; + if (wc != NULL) + *wc = *s; + return *s != '\0'; +} #endif protected const Char * @@ -329,7 +354,7 @@ ct_visual_char(Char *dst, size_t len, Ch return c > 0xffff ? 8 : 7; #else *dst++ = '\\'; -#define tooctaldigit(v) ((v) + '0') +#define tooctaldigit(v) (Char)((v) + '0') *dst++ = tooctaldigit(((unsigned int) c >> 6) & 0x7); *dst++ = tooctaldigit(((unsigned int) c >> 3) & 0x7); *dst++ = tooctaldigit(((unsigned int) c ) & 0x7); Modified: head/lib/libedit/chartype.h ============================================================================== --- head/lib/libedit/chartype.h Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/chartype.h Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.h,v 1.15 2015/05/17 13:14:41 christos Exp $ */ +/* $NetBSD: chartype.h,v 1.23 2016/02/24 17:20:01 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -32,7 +32,6 @@ #define _h_chartype_f - #ifdef WIDECHAR /* Ideally we should also test the value of the define to see if it @@ -55,21 +54,18 @@ #warning Build environment does not support non-BMP characters #endif -#define ct_mbtowc mbtowc -#define ct_mbtowc_reset mbtowc(0,0,(size_t)0) +#define ct_wctob wctob #define ct_wctomb wctomb #define ct_wctomb_reset wctomb(0,0) #define ct_wcstombs wcstombs #define ct_mbstowcs mbstowcs #define Char wchar_t -#define Int wint_t #define FUN(prefix,rest) prefix ## _w ## rest #define FUNW(type) type ## _w #define TYPE(type) type ## W -#define FCHAR "%lc" #define FSTR "%ls" -#define STR(x) L ## x +#define STR(x) L ## x #define UC(c) c #define Isalpha(x) iswalpha(x) #define Isalnum(x) iswalnum(x) @@ -110,21 +106,18 @@ Width(wchar_t c) #else /* NARROW */ -#define ct_mbtowc error -#define ct_mbtowc_reset +#define ct_wctob(w) ((int)(w)) #define ct_wctomb error -#define ct_wctomb_reset +#define ct_wctomb_reset #define ct_wcstombs(a, b, c) (strncpy(a, b, c), strlen(a)) #define ct_mbstowcs(a, b, c) (strncpy(a, b, c), strlen(a)) #define Char char -#define Int int #define FUN(prefix,rest) prefix ## _ ## rest #define FUNW(type) type #define TYPE(type) type -#define FCHAR "%c" #define FSTR "%s" -#define STR(x) x +#define STR(x) x #define UC(c) (unsigned char)(c) #define Isalpha(x) isalpha((unsigned char)x) @@ -213,7 +206,7 @@ protected size_t ct_enc_width(Char); #define VISUAL_WIDTH_MAX ((size_t)8) /* The terminal is thought of in terms of X columns by Y lines. In the cases - * where a wide character takes up more than one column, the adjacent + * where a wide character takes up more than one column, the adjacent * occupied column entries will contain this faux character. */ #define MB_FILL_CHAR ((Char)-1) @@ -245,5 +238,7 @@ protected const Char *ct_visual_string(c protected int ct_chr_class(Char c); #endif +size_t ct_mbrtowc(wchar_t *, const char *, size_t); + #endif /* _chartype_f */ Modified: head/lib/libedit/common.c ============================================================================== --- head/lib/libedit/common.c Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/common.c Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: common.c,v 1.29 2012/03/24 20:08:43 christos Exp $ */ +/* $NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: common.c,v 1.29 2012/03/24 20:08:43 christos Exp $"); +__RCSID("$NetBSD: common.c,v 1.39 2016/02/24 14:25:38 christos Exp $"); #endif #endif /* not lint && not SCCSID */ #include @@ -46,7 +46,13 @@ __FBSDID("$FreeBSD$"); /* * common.c: Common Editor functions */ +#include +#include + #include "el.h" +#include "common.h" +#include "parse.h" +#include "vi.h" /* ed_end_of_file(): * Indicate end of file @@ -54,7 +60,7 @@ __FBSDID("$FreeBSD$"); */ protected el_action_t /*ARGSUSED*/ -ed_end_of_file(EditLine *el, Int c __attribute__((__unused__))) +ed_end_of_file(EditLine *el, wint_t c __attribute__((__unused__))) { re_goto_bottom(el); @@ -68,7 +74,7 @@ ed_end_of_file(EditLine *el, Int c __att * Insert a character [bound to all insert keys] */ protected el_action_t -ed_insert(EditLine *el, Int c) +ed_insert(EditLine *el, wint_t c) { int count = el->el_state.argument; @@ -87,14 +93,14 @@ ed_insert(EditLine *el, Int c) || el->el_line.cursor >= el->el_line.lastchar) c_insert(el, 1); - *el->el_line.cursor++ = c; + *el->el_line.cursor++ = (Char)c; re_fastaddc(el); /* fast refresh for one char. */ } else { if (el->el_state.inputmode != MODE_REPLACE_1) c_insert(el, el->el_state.argument); while (count-- && el->el_line.cursor < el->el_line.lastchar) - *el->el_line.cursor++ = c; + *el->el_line.cursor++ = (Char)c; re_refresh(el); } @@ -111,7 +117,7 @@ ed_insert(EditLine *el, Int c) */ protected el_action_t /*ARGSUSED*/ -ed_delete_prev_word(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_prev_word(EditLine *el, wint_t c __attribute__((__unused__))) { Char *cp, *p, *kp; @@ -139,7 +145,7 @@ ed_delete_prev_word(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_delete_next_char(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_next_char(EditLine *el, wint_t c __attribute__((__unused__))) { #ifdef DEBUG_EDIT #define EL el->el_line @@ -186,7 +192,7 @@ ed_delete_next_char(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_kill_line(EditLine *el, Int c __attribute__((__unused__))) +ed_kill_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *kp, *cp; @@ -207,7 +213,7 @@ ed_kill_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_move_to_end(EditLine *el, Int c __attribute__((__unused__))) +ed_move_to_end(EditLine *el, wint_t c __attribute__((__unused__))) { el->el_line.cursor = el->el_line.lastchar; @@ -230,7 +236,7 @@ ed_move_to_end(EditLine *el, Int c __att */ protected el_action_t /*ARGSUSED*/ -ed_move_to_beg(EditLine *el, Int c __attribute__((__unused__))) +ed_move_to_beg(EditLine *el, wint_t c __attribute__((__unused__))) { el->el_line.cursor = el->el_line.buffer; @@ -253,7 +259,7 @@ ed_move_to_beg(EditLine *el, Int c __att * [^T] [^T] */ protected el_action_t -ed_transpose_chars(EditLine *el, Int c) +ed_transpose_chars(EditLine *el, wint_t c) { if (el->el_line.cursor < el->el_line.lastchar) { @@ -266,7 +272,7 @@ ed_transpose_chars(EditLine *el, Int c) /* must have at least two chars entered */ c = el->el_line.cursor[-2]; el->el_line.cursor[-2] = el->el_line.cursor[-1]; - el->el_line.cursor[-1] = c; + el->el_line.cursor[-1] = (Char)c; return CC_REFRESH; } else return CC_ERROR; @@ -279,7 +285,7 @@ ed_transpose_chars(EditLine *el, Int c) */ protected el_action_t /*ARGSUSED*/ -ed_next_char(EditLine *el, Int c __attribute__((__unused__))) +ed_next_char(EditLine *el, wint_t c __attribute__((__unused__))) { Char *lim = el->el_line.lastchar; @@ -308,7 +314,7 @@ ed_next_char(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_word(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_word(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor == el->el_line.buffer) @@ -334,7 +340,7 @@ ed_prev_word(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_char(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_char(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor > el->el_line.buffer) { @@ -358,14 +364,12 @@ ed_prev_char(EditLine *el, Int c __attri * [^V] [^V] */ protected el_action_t -ed_quoted_insert(EditLine *el, Int c) +ed_quoted_insert(EditLine *el, wint_t c) { int num; - Char tc; tty_quotemode(el); - num = FUN(el,getc)(el, &tc); - c = tc; + num = el_wgetc(el, &c); tty_noquotemode(el); if (num == 1) return ed_insert(el, c); @@ -378,7 +382,7 @@ ed_quoted_insert(EditLine *el, Int c) * Adds to argument or enters a digit */ protected el_action_t -ed_digit(EditLine *el, Int c) +ed_digit(EditLine *el, wint_t c) { if (!Isdigit(c)) @@ -406,7 +410,7 @@ ed_digit(EditLine *el, Int c) * For ESC-n */ protected el_action_t -ed_argument_digit(EditLine *el, Int c) +ed_argument_digit(EditLine *el, wint_t c) { if (!Isdigit(c)) @@ -432,7 +436,7 @@ ed_argument_digit(EditLine *el, Int c) protected el_action_t /*ARGSUSED*/ ed_unassigned(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) + wint_t c __attribute__((__unused__))) { return CC_ERROR; @@ -449,8 +453,8 @@ ed_unassigned(EditLine *el __attribute__ */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigint(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigint(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -463,8 +467,8 @@ ed_tty_sigint(EditLine *el __attribute__ */ protected el_action_t /*ARGSUSED*/ -ed_tty_dsusp(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_dsusp(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -477,8 +481,8 @@ ed_tty_dsusp(EditLine *el __attribute__( */ protected el_action_t /*ARGSUSED*/ -ed_tty_flush_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_flush_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -491,8 +495,8 @@ ed_tty_flush_output(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigquit(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigquit(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -505,8 +509,8 @@ ed_tty_sigquit(EditLine *el __attribute_ */ protected el_action_t /*ARGSUSED*/ -ed_tty_sigtstp(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_sigtstp(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -519,8 +523,8 @@ ed_tty_sigtstp(EditLine *el __attribute_ */ protected el_action_t /*ARGSUSED*/ -ed_tty_stop_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_stop_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -533,8 +537,8 @@ ed_tty_stop_output(EditLine *el __attrib */ protected el_action_t /*ARGSUSED*/ -ed_tty_start_output(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_tty_start_output(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -547,7 +551,7 @@ ed_tty_start_output(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_newline(EditLine *el, Int c __attribute__((__unused__))) +ed_newline(EditLine *el, wint_t c __attribute__((__unused__))) { re_goto_bottom(el); @@ -563,7 +567,7 @@ ed_newline(EditLine *el, Int c __attribu */ protected el_action_t /*ARGSUSED*/ -ed_delete_prev_char(EditLine *el, Int c __attribute__((__unused__))) +ed_delete_prev_char(EditLine *el, wint_t c __attribute__((__unused__))) { if (el->el_line.cursor <= el->el_line.buffer) @@ -583,7 +587,7 @@ ed_delete_prev_char(EditLine *el, Int c */ protected el_action_t /*ARGSUSED*/ -ed_clear_screen(EditLine *el, Int c __attribute__((__unused__))) +ed_clear_screen(EditLine *el, wint_t c __attribute__((__unused__))) { terminal_clear_screen(el); /* clear the whole real screen */ @@ -598,8 +602,8 @@ ed_clear_screen(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_redisplay(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_redisplay(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_REDISPLAY; @@ -612,7 +616,7 @@ ed_redisplay(EditLine *el __attribute__( */ protected el_action_t /*ARGSUSED*/ -ed_start_over(EditLine *el, Int c __attribute__((__unused__))) +ed_start_over(EditLine *el, wint_t c __attribute__((__unused__))) { ch_reset(el, 0); @@ -626,8 +630,8 @@ ed_start_over(EditLine *el, Int c __attr */ protected el_action_t /*ARGSUSED*/ -ed_sequence_lead_in(EditLine *el __attribute__((__unused__)), - Int c __attribute__((__unused__))) +ed_sequence_lead_in(EditLine *el __attribute__((__unused__)), + wint_t c __attribute__((__unused__))) { return CC_NORM; @@ -640,7 +644,7 @@ ed_sequence_lead_in(EditLine *el __attri */ protected el_action_t /*ARGSUSED*/ -ed_prev_history(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_history(EditLine *el, wint_t c __attribute__((__unused__))) { char beep = 0; int sv_event = el->el_history.eventno; @@ -660,7 +664,6 @@ ed_prev_history(EditLine *el, Int c __at if (hist_get(el) == CC_ERROR) { if (el->el_map.type == MAP_VI) { el->el_history.eventno = sv_event; - } beep = 1; /* el->el_history.eventno was fixed by first call */ @@ -678,7 +681,7 @@ ed_prev_history(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_next_history(EditLine *el, Int c __attribute__((__unused__))) +ed_next_history(EditLine *el, wint_t c __attribute__((__unused__))) { el_action_t beep = CC_REFRESH, rval; @@ -705,11 +708,11 @@ ed_next_history(EditLine *el, Int c __at */ protected el_action_t /*ARGSUSED*/ -ed_search_prev_history(EditLine *el, Int c __attribute__((__unused__))) +ed_search_prev_history(EditLine *el, wint_t c __attribute__((__unused__))) { const Char *hp; int h; - bool_t found = 0; + int found = 0; el->el_chared.c_vcmd.action = NOP; el->el_chared.c_undo.len = -1; @@ -748,7 +751,7 @@ ed_search_prev_history(EditLine *el, Int (el->el_line.lastchar - el->el_line.buffer)) || hp[el->el_line.lastchar - el->el_line.buffer]) && c_hmatch(el, hp)) { - found++; + found = 1; break; } h++; @@ -773,11 +776,11 @@ ed_search_prev_history(EditLine *el, Int */ protected el_action_t /*ARGSUSED*/ -ed_search_next_history(EditLine *el, Int c __attribute__((__unused__))) +ed_search_next_history(EditLine *el, wint_t c __attribute__((__unused__))) { const Char *hp; int h; - bool_t found = 0; + int found = 0; el->el_chared.c_vcmd.action = NOP; el->el_chared.c_undo.len = -1; @@ -827,7 +830,7 @@ ed_search_next_history(EditLine *el, Int */ protected el_action_t /*ARGSUSED*/ -ed_prev_line(EditLine *el, Int c __attribute__((__unused__))) +ed_prev_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *ptr; int nchars = c_hpos(el); @@ -870,7 +873,7 @@ ed_prev_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_next_line(EditLine *el, Int c __attribute__((__unused__))) +ed_next_line(EditLine *el, wint_t c __attribute__((__unused__))) { Char *ptr; int nchars = c_hpos(el); @@ -904,7 +907,7 @@ ed_next_line(EditLine *el, Int c __attri */ protected el_action_t /*ARGSUSED*/ -ed_command(EditLine *el, Int c __attribute__((__unused__))) +ed_command(EditLine *el, wint_t c __attribute__((__unused__))) { Char tmpbuf[EL_BUFSIZ]; int tmplen; Modified: head/lib/libedit/config.h ============================================================================== --- head/lib/libedit/config.h Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/config.h Mon Feb 29 00:15:25 2016 (r296175) @@ -21,8 +21,8 @@ /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 -/* Define to 1 if you have the `fgetln' function. */ -#define HAVE_FGETLN 1 +/* Define to 1 if you have the `getline' function. */ +#define HAVE_GETLINE 1 /* Define to 1 if you have the `fork' function. */ #define HAVE_FORK 1 @@ -188,9 +188,6 @@ /* Define to 1 if you have the `vis' function. */ #define HAVE_VIS 1 -/* Define to 1 if you have the `wcsdup' function. */ -#define HAVE_WCSDUP 1 - /* Define to 1 if `fork' works. */ #define HAVE_WORKING_FORK 1 @@ -257,6 +254,9 @@ /* Version number of package */ #define VERSION "3.0" +/* Define to 1 if the system provides the SIZE_MAX constant */ +#define HAVE_SIZE_MAX 1 + /* Define to 1 if you want wide-character code */ /* #undef WIDECHAR */ Modified: head/lib/libedit/edit/readline/readline.h ============================================================================== --- head/lib/libedit/edit/readline/readline.h Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/edit/readline/readline.h Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -/* $NetBSD: readline.h,v 1.37 2015/06/02 15:36:45 christos Exp $ */ +/* $NetBSD: readline.h,v 1.39 2016/02/17 19:47:49 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -55,7 +55,7 @@ typedef void *histdata_t; typedef struct _hist_entry { const char *line; - histdata_t data; + histdata_t data; } HIST_ENTRY; typedef struct _keymap_entry { @@ -89,7 +89,7 @@ typedef KEYMAP_ENTRY *Keymap; #define RUBOUT 0x7f #define ABORT_CHAR CTRL('G') -#define RL_READLINE_VERSION 0x0402 +#define RL_READLINE_VERSION 0x0402 #define RL_PROMPT_START_IGNORE '\1' #define RL_PROMPT_END_IGNORE '\2' @@ -98,7 +98,7 @@ typedef KEYMAP_ENTRY *Keymap; extern "C" { #endif extern const char *rl_library_version; -extern int rl_readline_version; +extern int rl_readline_version; extern char *rl_readline_name; extern FILE *rl_instream; extern FILE *rl_outstream; @@ -199,10 +199,10 @@ int rl_add_defun(const char *, rl_comm HISTORY_STATE *history_get_history_state(void); void rl_get_screen_size(int *, int *); void rl_set_screen_size(int, int); -char *rl_filename_completion_function (const char *, int); +char *rl_filename_completion_function (const char *, int); int _rl_abort_internal(void); int _rl_qsort_string_compare(char **, char **); -char **rl_completion_matches(const char *, rl_compentry_func_t *); +char **rl_completion_matches(const char *, rl_compentry_func_t *); void rl_forced_update_display(void); int rl_set_prompt(const char *); int rl_on_new_line(void); @@ -218,6 +218,8 @@ int rl_generic_bind(int, const char *, int rl_bind_key_in_map(int, rl_command_func_t *, Keymap); void rl_cleanup_after_signal(void); void rl_free_line_state(void); +int rl_set_keyboard_input_timeout(int); + #ifdef __cplusplus } #endif Modified: head/lib/libedit/editline.3 ============================================================================== --- head/lib/libedit/editline.3 Mon Feb 29 00:05:37 2016 (r296174) +++ head/lib/libedit/editline.3 Mon Feb 29 00:15:25 2016 (r296175) @@ -1,4 +1,4 @@ -.\" $NetBSD: editline.3,v 1.85 2015/11/03 21:36:59 christos Exp $ +.\" $NetBSD: editline.3,v 1.88 2016/02/25 14:59:22 wiz Exp $ .\" .\" Copyright (c) 1997-2014 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 3, 2015 +.Dd February 24, 2016 .Dt EDITLINE 3 .Os .Sh NAME *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Feb 29 02:40:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D629CAB7F76; Mon, 29 Feb 2016 02:40:59 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AF20D1831; Mon, 29 Feb 2016 02:40:59 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T2ewuj066607; Mon, 29 Feb 2016 02:40:58 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T2ewYv066605; Mon, 29 Feb 2016 02:40:58 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201602290240.u1T2ewYv066605@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Mon, 29 Feb 2016 02:40:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296176 - in head/sys/dev/ath: . ath_hal X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 02:41:00 -0000 Author: adrian Date: Mon Feb 29 02:40:58 2016 New Revision: 296176 URL: https://svnweb.freebsd.org/changeset/base/296176 Log: Fix up the ath(4) device names for QCA chipsets. Submitted by: Tobias Kortkamp Modified: head/sys/dev/ath/ath_hal/ah.c head/sys/dev/ath/if_ath.c Modified: head/sys/dev/ath/ath_hal/ah.c ============================================================================== --- head/sys/dev/ath/ath_hal/ah.c Mon Feb 29 00:15:25 2016 (r296175) +++ head/sys/dev/ath/ath_hal/ah.c Mon Feb 29 02:40:58 2016 (r296176) @@ -91,63 +91,60 @@ ath_hal_mac_name(struct ath_hal *ah) switch (ah->ah_macVersion) { case AR_SREV_VERSION_CRETE: case AR_SREV_VERSION_MAUI_1: - return "5210"; + return "AR5210"; case AR_SREV_VERSION_MAUI_2: case AR_SREV_VERSION_OAHU: - return "5211"; + return "AR5211"; case AR_SREV_VERSION_VENICE: - return "5212"; + return "AR5212"; case AR_SREV_VERSION_GRIFFIN: - return "2413"; + return "AR2413"; case AR_SREV_VERSION_CONDOR: - return "5424"; + return "AR5424"; case AR_SREV_VERSION_EAGLE: - return "5413"; + return "AR5413"; case AR_SREV_VERSION_COBRA: - return "2415"; + return "AR2415"; case AR_SREV_2425: /* Swan */ - return "2425"; + return "AR2425"; case AR_SREV_2417: /* Nala */ - return "2417"; + return "AR2417"; case AR_XSREV_VERSION_OWL_PCI: - return "5416"; + return "AR5416"; case AR_XSREV_VERSION_OWL_PCIE: - return "5418"; + return "AR5418"; case AR_XSREV_VERSION_HOWL: - return "9130"; + return "AR9130"; case AR_XSREV_VERSION_SOWL: - return "9160"; + return "AR9160"; case AR_XSREV_VERSION_MERLIN: if (AH_PRIVATE(ah)->ah_ispcie) - return "9280"; - return "9220"; + return "AR9280"; + return "AR9220"; case AR_XSREV_VERSION_KITE: - return "9285"; + return "AR9285"; case AR_XSREV_VERSION_KIWI: if (AH_PRIVATE(ah)->ah_ispcie) - return "9287"; - return "9227"; + return "AR9287"; + return "AR9227"; case AR_SREV_VERSION_AR9380: if (ah->ah_macRev >= AR_SREV_REVISION_AR9580_10) - return "9580"; - return "9380"; + return "AR9580"; + return "AR9380"; case AR_SREV_VERSION_AR9460: - return "9460"; + return "AR9460"; case AR_SREV_VERSION_AR9330: - return "9330"; + return "AR9330"; case AR_SREV_VERSION_AR9340: - return "9340"; + return "AR9340"; case AR_SREV_VERSION_QCA9550: - /* XXX should say QCA, not AR */ - return "9550"; + return "QCA9550"; case AR_SREV_VERSION_AR9485: - return "9485"; + return "AR9485"; case AR_SREV_VERSION_QCA9565: - /* XXX should say QCA, not AR */ - return "9565"; + return "QCA9565"; case AR_SREV_VERSION_QCA9530: - /* XXX should say QCA, not AR */ - return "9530"; + return "QCA9530"; } return "????"; } Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Mon Feb 29 00:15:25 2016 (r296175) +++ head/sys/dev/ath/if_ath.c Mon Feb 29 02:40:58 2016 (r296176) @@ -6160,7 +6160,7 @@ ath_announce(struct ath_softc *sc) { struct ath_hal *ah = sc->sc_ah; - device_printf(sc->sc_dev, "AR%s mac %d.%d RF%s phy %d.%d\n", + device_printf(sc->sc_dev, "%s mac %d.%d RF%s phy %d.%d\n", ath_hal_mac_name(ah), ah->ah_macVersion, ah->ah_macRev, ath_hal_rf_name(ah), ah->ah_phyRev >> 4, ah->ah_phyRev & 0xf); device_printf(sc->sc_dev, "2GHz radio: 0x%.4x; 5GHz radio: 0x%.4x\n", From owner-svn-src-head@freebsd.org Mon Feb 29 03:38:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63C82AB6828; Mon, 29 Feb 2016 03:38:02 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1C2D911D8; Mon, 29 Feb 2016 03:38:02 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T3c1Cw084586; Mon, 29 Feb 2016 03:38:01 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T3c0x1084582; Mon, 29 Feb 2016 03:38:00 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201602290338.u1T3c0x1084582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 29 Feb 2016 03:38:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296177 - in head: share/man/man4/man4.powerpc sys/contrib/ncsw sys/contrib/ncsw/Peripherals sys/contrib/ncsw/Peripherals/BM sys/contrib/ncsw/Peripherals/FM sys/contrib/ncsw/Peripherals... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 03:38:02 -0000 Author: jhibbits Date: Mon Feb 29 03:38:00 2016 New Revision: 296177 URL: https://svnweb.freebsd.org/changeset/base/296177 Log: Add support for the Freescale dTSEC DPAA-based ethernet controller. Freescale's QorIQ line includes a new ethernet controller, based on their Datapath Acceleration Architecture (DPAA). This uses a combination of a Frame manager, Buffer manager, and Queue manager to improve performance across all interfaces by being able to pass data directly between hardware acceleration interfaces. As part of this import, Freescale's Netcomm Software (ncsw) driver is imported. This was an attempt by Freescale to create an OS-agnostic sub-driver for managing the hardware, using shims to interface to the OS-specific APIs. This work was abandoned, and Freescale's primary work is in the Linux driver (dual BSD/GPL license). Hence, this was imported directly to sys/contrib, rather than going through the vendor area. Going forward, FreeBSD-specific changes may be made to the ncsw code, diverging from the upstream in potentially incompatible ways. An alternative could be to import the Linux driver itself, using the linuxKPI layer, as that would maintain parity with the vendor-maintained driver. However, the Linux driver has not been evaluated for reliability yet, and may have issues with the import, whereas the ncsw-based driver in this commit was completed by Semihalf 4 years ago, and is very stable. Other SoC modules based on DPAA, which could be added in the future: * Security and Encryption engine (SEC4.x, SEC5.x) * RAID engine Additional work to be done: * Implement polling mode * Test vlan support * Add support for the Pattern Matching Engine, which can do regular expression matching on packets. This driver has been tested on the P5020 QorIQ SoC. Others listed in the dtsec(4) manual page are expected to work as the same DPAA engine is included in all. Obtained from: Semihalf Relnotes: Yes Sponsored by: Alex Perez/Inertial Computing Added: head/share/man/man4/man4.powerpc/dtsec.4 (contents, props changed) head/sys/contrib/ncsw/ head/sys/contrib/ncsw/Peripherals/ head/sys/contrib/ncsw/Peripherals/BM/ head/sys/contrib/ncsw/Peripherals/BM/bm.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bm.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bm_ipc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bm_pool.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bm_portal.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bman_low.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/bman_private.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/BM/fsl_bman.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/ head/sys/contrib/ncsw/Peripherals/FM/HC/ head/sys/contrib/ncsw/Peripherals/FM/HC/hc.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/ head/sys/contrib/ncsw/Peripherals/FM/MAC/dtsec.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/dtsec.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/dtsec_mii_acc.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/dtsec_mii_acc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/fm_mac.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/fm_mac.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/tgec.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/tgec.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/tgec_mii_acc.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/MAC/tgec_mii_acc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/ head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_kg.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_manip.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_manip.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_pcd.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_pcd.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_pcd_ipc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_plcr.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_prs.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Port/ head/sys/contrib/ncsw/Peripherals/FM/Port/fm_port.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Port/fm_port.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Port/fm_port_im.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Rtc/ head/sys/contrib/ncsw/Peripherals/FM/Rtc/fm_rtc.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/Rtc/fm_rtc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/fm.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/fm.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/fm_guest.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/fm_ipc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/fm_muram.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/inc/ head/sys/contrib/ncsw/Peripherals/FM/inc/fm_common.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/FM/inc/fm_hc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/ head/sys/contrib/ncsw/Peripherals/QM/fsl_qman.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qm.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qm.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qm_ipc.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qman_low.h (contents, props changed) head/sys/contrib/ncsw/Peripherals/QM/qman_private.h (contents, props changed) head/sys/contrib/ncsw/build/ head/sys/contrib/ncsw/build/dflags.h (contents, props changed) head/sys/contrib/ncsw/build/events_mapping.h (contents, props changed) head/sys/contrib/ncsw/etc/ head/sys/contrib/ncsw/etc/error.c (contents, props changed) head/sys/contrib/ncsw/etc/list.c (contents, props changed) head/sys/contrib/ncsw/etc/mem.h (contents, props changed) head/sys/contrib/ncsw/etc/memcpy.c (contents, props changed) head/sys/contrib/ncsw/etc/mm.c (contents, props changed) head/sys/contrib/ncsw/etc/mm.h (contents, props changed) head/sys/contrib/ncsw/etc/ncsw_mem.c (contents, props changed) head/sys/contrib/ncsw/etc/sprint.c (contents, props changed) head/sys/contrib/ncsw/inc/ head/sys/contrib/ncsw/inc/Peripherals/ head/sys/contrib/ncsw/inc/Peripherals/bm_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/crc_mac_addr_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_mac_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_muram_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_pcd_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_port_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/fm_rtc_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/Peripherals/qm_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/core_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/cores/ head/sys/contrib/ncsw/inc/cores/e500v2_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/cores/ppc_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/ctype_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/ddr_std_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/debug_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/endian_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/enet_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/error_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/etc/ head/sys/contrib/ncsw/inc/etc/list_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/etc/mem_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/etc/memcpy_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/etc/mm_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/etc/sprint_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/ head/sys/contrib/ncsw/inc/integrations/P2041/ head/sys/contrib/ncsw/inc/integrations/P2041/dpaa_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/P2041/part_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/P3041/ head/sys/contrib/ncsw/inc/integrations/P3041/dpaa_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/P3041/part_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/P5020/ head/sys/contrib/ncsw/inc/integrations/P5020/dpaa_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/P5020/part_integration_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/integrations/part_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/math_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/ncsw_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/net_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/std_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/stdarg_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/stdlib_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/string_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/types_ext.h (contents, props changed) head/sys/contrib/ncsw/inc/types_freebsd.h (contents, props changed) head/sys/contrib/ncsw/inc/xx_ext.h (contents, props changed) head/sys/contrib/ncsw/integrations/ head/sys/contrib/ncsw/integrations/P2041/ head/sys/contrib/ncsw/integrations/P2041/module_strings.c (contents, props changed) head/sys/contrib/ncsw/integrations/P3041/ head/sys/contrib/ncsw/integrations/P3041/fman_ctrl_code/ head/sys/contrib/ncsw/integrations/P3041/fman_ctrl_code/p3041_r1.0.h (contents, props changed) head/sys/contrib/ncsw/integrations/P3041/module_strings.c (contents, props changed) head/sys/contrib/ncsw/integrations/P5020/ head/sys/contrib/ncsw/integrations/P5020/module_strings.c (contents, props changed) head/sys/contrib/ncsw/integrations/fman_ucode.h (contents, props changed) head/sys/contrib/ncsw/user/ head/sys/contrib/ncsw/user/env/ head/sys/contrib/ncsw/user/env/core.c (contents, props changed) head/sys/contrib/ncsw/user/env/stdlib.c (contents, props changed) head/sys/contrib/ncsw/user/env/xx.c (contents, props changed) head/sys/dev/dpaa/ head/sys/dev/dpaa/bman.c (contents, props changed) head/sys/dev/dpaa/bman.h (contents, props changed) head/sys/dev/dpaa/bman_fdt.c (contents, props changed) head/sys/dev/dpaa/bman_portals.c (contents, props changed) head/sys/dev/dpaa/dpaa.c (contents, props changed) head/sys/dev/dpaa/fman.c (contents, props changed) head/sys/dev/dpaa/fman.h (contents, props changed) head/sys/dev/dpaa/fman_fdt.c (contents, props changed) head/sys/dev/dpaa/if_dtsec.c (contents, props changed) head/sys/dev/dpaa/if_dtsec.h (contents, props changed) head/sys/dev/dpaa/if_dtsec_fdt.c (contents, props changed) head/sys/dev/dpaa/if_dtsec_im.c (contents, props changed) head/sys/dev/dpaa/if_dtsec_im.h (contents, props changed) head/sys/dev/dpaa/if_dtsec_rm.c (contents, props changed) head/sys/dev/dpaa/if_dtsec_rm.h (contents, props changed) head/sys/dev/dpaa/portals.h (contents, props changed) head/sys/dev/dpaa/portals_common.c (contents, props changed) head/sys/dev/dpaa/qman.c (contents, props changed) head/sys/dev/dpaa/qman.h (contents, props changed) head/sys/dev/dpaa/qman_fdt.c (contents, props changed) head/sys/dev/dpaa/qman_portals.c (contents, props changed) head/sys/powerpc/conf/dpaa/ head/sys/powerpc/conf/dpaa/DPAA (contents, props changed) head/sys/powerpc/conf/dpaa/config.dpaa (contents, props changed) head/sys/powerpc/conf/dpaa/config.p2041 (contents, props changed) head/sys/powerpc/conf/dpaa/config.p3041 (contents, props changed) head/sys/powerpc/conf/dpaa/config.p5020 (contents, props changed) head/sys/powerpc/conf/dpaa/files.dpaa (contents, props changed) head/sys/powerpc/conf/dpaa/files.p2041 (contents, props changed) head/sys/powerpc/conf/dpaa/files.p3041 (contents, props changed) head/sys/powerpc/conf/dpaa/files.p5020 (contents, props changed) Modified: head/sys/powerpc/booke/pmap.c head/sys/powerpc/include/intr_machdep.h head/sys/powerpc/include/tlb.h head/sys/powerpc/powerpc/intr_machdep.c Added: head/share/man/man4/man4.powerpc/dtsec.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/man4.powerpc/dtsec.4 Mon Feb 29 03:38:00 2016 (r296177) @@ -0,0 +1,120 @@ +.\" +.\" Copyright (c) 2016 Justin Hibbits +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 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. +.\" +.\" $FreeBSD$ +.\" +.Dd February 28, 2016 +.Dt DTSEC 4 +.Os +.Sh NAME +.Nm dtsec +.Nd "Freescale Datapath Acceleration Architecture-based Three-Speed Ethernet Controller device driver" +.Sh SYNOPSIS +To compile this driver into the kernel, place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "include ""dpaa/DPAA"" +.Cd "options QORIQ_DPAA" +.Cd "device dpaa" +.Cd "device dtsec" +.Cd "device miibus" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for the DPAA-based gigabit Ethernet controller +integrated in some of the Freescale system-on-chip devices. +.Pp +The +.Nm +driver supports the following media types: +.Bl -tag -width xxxxxxxxxxxxxxxxxxxx +.It autoselect +Enable autoselection of the media type and options +.It 10baseT/UTP +Set 10Mbps operation +.It 100baseTX +Set 100Mbps operation +.It 1000baseT +Set 1000baseT operation +.El +.Pp +The +.Nm +driver supports the following media options: +.Bl -tag -width xxxxxxxxxxxxxxxxxxxx +.It full-duplex +Set full duplex operation +.El +.Pp +The +.Nm +driver supports two operating modes: +.Bl -tag -width xxxxxxxxxxxxxxxxxxxx +.It Regular +Normal mode, utilizing the full datapath acceleration, Buffer Manager, and Queue +Manager. +.It Independent +Runs disconnected from the Buffer Manager and Queue Manager. +.El +.Sh HARDWARE +Gigabit Ethernet controllers built into the following Freescale +system-on-chip devices are known to work with the +.Nm +driver: +.Pp +.Bl -bullet -compact +.It +P2041, P3041 +.It +P5010, P5020 +.El +.Sh SEE ALSO +.Xr altq 4 , +.Xr arp 4 , +.Xr miibus 4 , +.Xr netintro 4 , +.Xr ng_ether 4 , +.Xr ifconfig 8 +.Sh BUGS +The +.Nm +driver assumes that there is only one Frame Manager, and that dtsec0 controls +the MDIO interface. Though this is the case for the supported devices, other +SoCs with the DPAA controller may not work correctly. Particularly, the P5040 +and P4080 SoCs have two frame managers, which breaks this assumption. +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 11.0 . +.Sh AUTHORS +.An -nosplit +The base version of +.Nm +device driver was written by +.An Semihalf . +This manual page was written by +.An Justin Hibbits . Added: head/sys/contrib/ncsw/Peripherals/BM/bm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/ncsw/Peripherals/BM/bm.c Mon Feb 29 03:38:00 2016 (r296177) @@ -0,0 +1,815 @@ +/****************************************************************************** + + 1995-2003, 2004, 2005-2011 Freescale Semiconductor, Inc. + All rights reserved. + + This is proprietary source code of Freescale Semiconductor Inc., + and its use is subject to the NetComm Device Drivers EULA. + The copyright notice above does not evidence any actual or intended + publication of such source code. + + ALTERNATIVELY, redistribution and use in source and binary forms, with + or without modification, are permitted provided that the following + conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Freescale Semiconductor nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 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. + * + + + **************************************************************************/ +/****************************************************************************** + @File bm.c + + @Description BM +*//***************************************************************************/ +#include "error_ext.h" +#include "std_ext.h" +#include "string_ext.h" +#include "sprint_ext.h" +#include "debug_ext.h" +#include "mm_ext.h" + +#include "bm.h" + + +t_Error BM_ConfigException(t_Handle h_Bm, e_BmExceptions exception, bool enable); + + +/****************************************/ +/* static functions */ +/****************************************/ + +static volatile bool blockingFlag = FALSE; +static void BmIpcMsgCompletionCB(t_Handle h_Module, + uint8_t *p_Msg, + uint8_t *p_Reply, + uint32_t replyLength, + t_Error status) +{ + SANITY_CHECK_RETURN(h_Module, E_INVALID_HANDLE); + +#ifdef DISABLE_SANITY_CHECKS + UNUSED(h_Module); +#endif /* DISABLE_SANITY_CHECKS */ + UNUSED(p_Msg);UNUSED(p_Reply);UNUSED(replyLength);UNUSED(status); + + blockingFlag = FALSE; +} + +static t_Error BmHandleIpcMsgCB(t_Handle h_Bm, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + t_BmIpcMsg *p_IpcMsg = (t_BmIpcMsg*)p_Msg; + t_BmIpcReply *p_IpcReply = (t_BmIpcReply *)p_Reply; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((msgLength >= sizeof(uint32_t)), E_INVALID_VALUE); + +#ifdef DISABLE_SANITY_CHECKS + UNUSED(msgLength); +#endif /* DISABLE_SANITY_CHECKS */ + + ASSERT_COND(p_IpcMsg); + + memset(p_IpcReply, 0, (sizeof(uint8_t) * BM_IPC_MAX_REPLY_SIZE)); + *p_ReplyLength = 0; + + switch(p_IpcMsg->msgId) + { + case (BM_MASTER_IS_ALIVE): + *(uint8_t*)p_IpcReply->replyBody = 1; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + case (BM_SET_POOL_THRESH): + { + t_Error err; + t_BmIpcPoolThreshParams ipcPoolThresh; + + memcpy((uint8_t*)&ipcPoolThresh, p_IpcMsg->msgBody, sizeof(t_BmIpcPoolThreshParams)); + if ((err = BmSetPoolThresholds(p_Bm, + ipcPoolThresh.bpid, + ipcPoolThresh.thresholds)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (BM_UNSET_POOL_THRESH): + { + t_Error err; + t_BmIpcPoolThreshParams ipcPoolThresh; + + memcpy((uint8_t*)&ipcPoolThresh, p_IpcMsg->msgBody, sizeof(t_BmIpcPoolThreshParams)); + if ((err = BmUnSetPoolThresholds(p_Bm, + ipcPoolThresh.bpid)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (BM_GET_COUNTER): + { + t_BmIpcGetCounter ipcCounter; + uint32_t count; + + memcpy((uint8_t*)&ipcCounter, p_IpcMsg->msgBody, sizeof(t_BmIpcGetCounter)); + count = BmGetCounter(p_Bm, + (e_BmInterModuleCounters)ipcCounter.enumId, + ipcCounter.bpid); + memcpy(p_IpcReply->replyBody, (uint8_t*)&count, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (BM_GET_REVISION): + { + t_BmRevisionInfo revInfo; + t_BmIpcRevisionInfo ipcRevInfo; + + p_IpcReply->error = (uint32_t)BmGetRevision(h_Bm, &revInfo); + ipcRevInfo.majorRev = revInfo.majorRev; + ipcRevInfo.minorRev = revInfo.minorRev; + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcRevInfo, sizeof(t_BmIpcRevisionInfo)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(t_BmIpcRevisionInfo); + break; + } + case (BM_FORCE_BPID): + { + t_BmIpcBpidParams ipcBpid; + uint32_t tmp; + + memcpy((uint8_t*)&ipcBpid, p_IpcMsg->msgBody, sizeof(t_BmIpcBpidParams)); + tmp = BmBpidGet(p_Bm, TRUE, ipcBpid.bpid); + memcpy(p_IpcReply->replyBody, (uint8_t*)&tmp, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (BM_PUT_BPID): + { + t_Error err; + t_BmIpcBpidParams ipcBpid; + + memcpy((uint8_t*)&ipcBpid, p_IpcMsg->msgBody, sizeof(t_BmIpcBpidParams)); + if ((err = BmBpidPut(p_Bm, ipcBpid.bpid)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + default: + *p_ReplyLength = 0; + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("command not found!!!")); + } + + return E_OK; +} + +static t_Error CheckBmParameters(t_Bm *p_Bm) +{ + if ((p_Bm->p_BmDriverParams->partBpidBase + p_Bm->p_BmDriverParams->partNumOfPools) > BM_MAX_NUM_OF_POOLS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("partBpidBase+partNumOfPools out of range!!!")); + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + if (!p_Bm->p_BmDriverParams->totalNumOfBuffers) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("totalNumOfBuffers must be larger than '0'!!!")); + if (p_Bm->p_BmDriverParams->totalNumOfBuffers > (128*MEGABYTE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("totalNumOfBuffers must be equal or smaller than 128M!!!")); + if(!p_Bm->f_Exception) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exceptions callback not provided")); + } + + return E_OK; +} + +static __inline__ uint32_t GenerateThresh(uint32_t val, int roundup) +{ + uint32_t e = 0; /* co-efficient, exponent */ + uint32_t oddbit = 0; + while(val > 0xff) { + oddbit = val & 1; + val >>= 1; + e++; + if(roundup && oddbit) + val++; + } + return (val | (e << 8)); +} + +static t_Error BmSetPool(t_Handle h_Bm, + uint8_t bpid, + uint32_t swdet, + uint32_t swdxt, + uint32_t hwdet, + uint32_t hwdxt) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(bpid < BM_MAX_NUM_OF_POOLS, E_INVALID_VALUE); + + WRITE_UINT32(p_Bm->p_BmRegs->swdet[bpid], GenerateThresh(swdet, 0)); + WRITE_UINT32(p_Bm->p_BmRegs->swdxt[bpid], GenerateThresh(swdxt, 1)); + WRITE_UINT32(p_Bm->p_BmRegs->hwdet[bpid], GenerateThresh(hwdet, 0)); + WRITE_UINT32(p_Bm->p_BmRegs->hwdxt[bpid], GenerateThresh(hwdxt, 1)); + + return E_OK; +} + +/****************************************/ +/* Inter-Module functions */ +/****************************************/ + +t_Error BmSetPoolThresholds(t_Handle h_Bm, uint8_t bpid, const uint32_t *thresholds) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(bpid < BM_MAX_NUM_OF_POOLS, E_INVALID_VALUE); + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + return BmSetPool(h_Bm, + bpid, + thresholds[0], + thresholds[1], + thresholds[2], + thresholds[3]); + } + else if (p_Bm->h_Session) + { + t_BmIpcMsg msg; + t_BmIpcPoolThreshParams ipcPoolThresh; + t_Error errCode = E_OK; + + memset(&msg, 0, sizeof(t_BmIpcMsg)); + ipcPoolThresh.bpid = bpid; + memcpy(ipcPoolThresh.thresholds, thresholds, sizeof(uintptr_t) * MAX_DEPLETION_THRESHOLDS); + msg.msgId = BM_SET_POOL_THRESH; + memcpy(msg.msgBody, &ipcPoolThresh, sizeof(t_BmIpcPoolThreshParams)); + if ((errCode = XX_IpcSendMessage(p_Bm->h_Session, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(t_BmIpcPoolThreshParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, errCode, NO_MSG); + return E_OK; + } + else + RETURN_ERROR(WARNING, E_NOT_SUPPORTED, ("IPC")); +} + +t_Error BmUnSetPoolThresholds(t_Handle h_Bm, uint8_t bpid) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(bpid < BM_MAX_NUM_OF_POOLS, E_INVALID_VALUE); + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + return BmSetPool(h_Bm, + bpid, + 0, + 0, + 0, + 0); + } + else if (p_Bm->h_Session) + { + t_BmIpcMsg msg; + t_BmIpcPoolThreshParams ipcPoolThresh; + t_Error errCode = E_OK; + + memset(&msg, 0, sizeof(t_BmIpcMsg)); + memset(&ipcPoolThresh, 0, sizeof(t_BmIpcPoolThreshParams)); + ipcPoolThresh.bpid = bpid; + msg.msgId = BM_UNSET_POOL_THRESH; + memcpy(msg.msgBody, &ipcPoolThresh, sizeof(t_BmIpcPoolThreshParams)); + if ((errCode = XX_IpcSendMessage(p_Bm->h_Session, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(t_BmIpcPoolThreshParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, errCode, NO_MSG); + return E_OK; + } + else + RETURN_ERROR(WARNING, E_NOT_SUPPORTED, ("IPC")); +} + +uint32_t BmGetCounter(t_Handle h_Bm, e_BmInterModuleCounters counter, uint8_t bpid) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_VALUE(p_Bm, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(bpid < BM_MAX_NUM_OF_POOLS, E_INVALID_VALUE, 0); + SANITY_CHECK_RETURN_VALUE((((p_Bm->guestId == NCSW_MASTER_ID) && p_Bm->p_BmRegs) || + (p_Bm->guestId != NCSW_MASTER_ID)), E_INVALID_STATE, 0); + + if ((p_Bm->guestId == NCSW_MASTER_ID) || + (!p_Bm->h_Session && p_Bm->p_BmRegs)) + { + switch(counter) + { + case(e_BM_IM_COUNTERS_POOL_CONTENT): + return GET_UINT32(p_Bm->p_BmRegs->content[bpid]); + case(e_BM_IM_COUNTERS_POOL_SW_DEPLETION): + return GET_UINT32(p_Bm->p_BmRegs->sdcnt[bpid]); + case(e_BM_IM_COUNTERS_POOL_HW_DEPLETION): + return GET_UINT32(p_Bm->p_BmRegs->hdcnt[bpid]); + case(e_BM_IM_COUNTERS_FBPR): + return GET_UINT32(p_Bm->p_BmRegs->fbpr_fpc); + default: + break; + } + /* should never get here */ + ASSERT_COND(FALSE); + } + else if (p_Bm->h_Session) + { + t_BmIpcMsg msg; + t_BmIpcReply reply; + t_BmIpcGetCounter ipcCounter; + uint32_t replyLength; + uint32_t count; + t_Error errCode = E_OK; + + memset(&msg, 0, sizeof(t_BmIpcMsg)); + memset(&reply, 0, sizeof(t_BmIpcReply)); + ipcCounter.bpid = bpid; + ipcCounter.enumId = (uint32_t)counter; + msg.msgId = BM_GET_COUNTER; + memcpy(msg.msgBody, &ipcCounter, sizeof(t_BmIpcGetCounter)); + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((errCode = XX_IpcSendMessage(p_Bm->h_Session, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(t_BmIpcGetCounter), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MAJOR, errCode, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(uint32_t))) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + errCode = E_INVALID_VALUE; + } + if (errCode == E_OK) + { + memcpy((uint8_t*)&count, reply.replyBody, sizeof(uint32_t)); + return count; + } + } + else + REPORT_ERROR(WARNING, E_NOT_SUPPORTED, + ("In 'guest', either IPC or 'baseAddress' is required!")); + + return 0; +} + +t_Error BmGetRevision(t_Handle h_Bm, t_BmRevisionInfo *p_BmRevisionInfo) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_BmRevisionInfo, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR((((p_Bm->guestId == NCSW_MASTER_ID) && p_Bm->p_BmRegs) || + (p_Bm->guestId != NCSW_MASTER_ID)), E_INVALID_STATE); + + if ((p_Bm->guestId == NCSW_MASTER_ID) || + (!p_Bm->h_Session && p_Bm->p_BmRegs)) + { + /* read revision register 1 */ + tmpReg = GET_UINT32(p_Bm->p_BmRegs->ip_rev_1); + p_BmRevisionInfo->majorRev = (uint8_t)((tmpReg & REV1_MAJOR_MASK) >> REV1_MAJOR_SHIFT); + p_BmRevisionInfo->minorRev = (uint8_t)((tmpReg & REV1_MINOR_MASK) >> REV1_MINOR_SHIFT); + } + else if (p_Bm->h_Session) + { + t_BmIpcMsg msg; + t_BmIpcReply reply; + t_BmIpcRevisionInfo ipcRevInfo; + uint32_t replyLength; + t_Error errCode = E_OK; + + memset(&msg, 0, sizeof(t_BmIpcMsg)); + memset(&reply, 0, sizeof(t_BmIpcReply)); + msg.msgId = BM_GET_REVISION; + replyLength = sizeof(uint32_t) + sizeof(t_BmIpcRevisionInfo); + if ((errCode = XX_IpcSendMessage(p_Bm->h_Session, + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, errCode, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(t_BmIpcRevisionInfo))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + memcpy((uint8_t*)&ipcRevInfo, reply.replyBody, sizeof(t_BmIpcRevisionInfo)); + p_BmRevisionInfo->majorRev = ipcRevInfo.majorRev; + p_BmRevisionInfo->minorRev = ipcRevInfo.minorRev; + return (t_Error)(reply.error); + } + else + RETURN_ERROR(WARNING, E_NOT_SUPPORTED, + ("In 'guest', either IPC or 'baseAddress' is required!")); + + return E_OK; +} + +static void FreeInitResources(t_Bm *p_Bm) +{ + if (p_Bm->p_FbprBase) + XX_FreeSmart(p_Bm->p_FbprBase); + if (p_Bm->h_Session) + XX_IpcFreeSession(p_Bm->h_Session); + if (p_Bm->h_BpidMm) + MM_Free(p_Bm->h_BpidMm); +} + +/****************************************/ +/* API Init unit functions */ +/****************************************/ + +t_Handle BM_Config(t_BmParam *p_BmParam) +{ + t_Bm *p_Bm; + + SANITY_CHECK_RETURN_VALUE(p_BmParam, E_INVALID_HANDLE, NULL); + + p_Bm = (t_Bm *)XX_Malloc(sizeof(t_Bm)); + if (!p_Bm) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("BM obj!!!")); + return NULL; + } + memset(p_Bm, 0, sizeof(t_Bm)); + + p_Bm->p_BmDriverParams = (t_BmDriverParams *)XX_Malloc(sizeof(t_BmDriverParams)); + if (!p_Bm->p_BmDriverParams) + { + XX_Free(p_Bm); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("Bm driver parameters")); + return NULL; + } + memset(p_Bm->p_BmDriverParams, 0, sizeof(t_BmDriverParams)); + + p_Bm->guestId = p_BmParam->guestId; + p_Bm->p_BmDriverParams->partNumOfPools = p_BmParam->partNumOfPools; + p_Bm->p_BmDriverParams->partBpidBase = p_BmParam->partBpidBase; + p_Bm->p_BmRegs = (t_BmRegs *)UINT_TO_PTR(p_BmParam->baseAddress); + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + p_Bm->exceptions = DEFAULT_exceptions; + p_Bm->f_Exception = p_BmParam->f_Exception; + p_Bm->h_App = p_BmParam->h_App; + p_Bm->errIrq = p_BmParam->errIrq; + p_Bm->p_BmDriverParams->totalNumOfBuffers = p_BmParam->totalNumOfBuffers; + p_Bm->p_BmDriverParams->fbprMemPartitionId = p_BmParam->fbprMemPartitionId; + p_Bm->p_BmDriverParams->fbprThreshold = DEFAULT_fbprThreshold; + p_Bm->p_BmDriverParams->liodn = p_BmParam->liodn; + + } + /* build the BM partition IPC address */ + memset(p_Bm->moduleName, 0, MODULE_NAME_SIZE); + if(Sprint (p_Bm->moduleName, "BM_0_%d",p_Bm->guestId) != (p_Bm->guestId<10 ? 6:7)) + { + XX_Free(p_Bm->p_BmDriverParams); + XX_Free(p_Bm); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + return NULL; + } + return p_Bm; +} + +t_Error BM_Init(t_Handle h_Bm) +{ + t_Bm *p_Bm = (t_Bm *)h_Bm; + t_Error err; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Bm->p_BmDriverParams, E_INVALID_HANDLE); + + CHECK_INIT_PARAMETERS(p_Bm, CheckBmParameters); + + if (p_Bm->p_BmDriverParams->partNumOfPools) + if (MM_Init(&p_Bm->h_BpidMm, p_Bm->p_BmDriverParams->partBpidBase, p_Bm->p_BmDriverParams->partNumOfPools) != E_OK) + { + FreeInitResources(p_Bm); + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("BM-BPIDS-MEM partition!!!")); + } + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + uint64_t phyAddr; + t_BmRevisionInfo revInfo; + uint32_t dsSize, exp; + + BmGetRevision(p_Bm, &revInfo); + DBG(TRACE, ("Bman ver:%02x,%02x", revInfo.majorRev, revInfo.minorRev)); + + WRITE_UINT32(p_Bm->p_BmRegs->liodnr, (uint16_t)p_Bm->p_BmDriverParams->liodn); + + /* FBPR memory */ + dsSize = (uint32_t)(p_Bm->p_BmDriverParams->totalNumOfBuffers * (FBPR_ENTRY_SIZE / 8)); + LOG2(dsSize, exp); + if (!POWER_OF_2(dsSize)) (exp++); + dsSize = (uint32_t)(1 << exp); + if (dsSize < (4*KILOBYTE)) + { + dsSize = (4*KILOBYTE); + LOG2(dsSize, exp); + } + p_Bm->p_FbprBase = XX_MallocSmart(dsSize, (int)p_Bm->p_BmDriverParams->fbprMemPartitionId, dsSize); + if (!p_Bm->p_FbprBase) + { + FreeInitResources(p_Bm); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("FBPR obj!!!")); + } + phyAddr = XX_VirtToPhys(p_Bm->p_FbprBase); + WRITE_UINT32(p_Bm->p_BmRegs->fbpr_bare, ((uint32_t)(phyAddr >> 32) & 0xffff)); + WRITE_UINT32(p_Bm->p_BmRegs->fbpr_bar, (uint32_t)phyAddr); + WRITE_UINT32(p_Bm->p_BmRegs->fbpr_ar, (exp - 1)); + + WRITE_UINT32(p_Bm->p_BmRegs->fbpr_fp_lwit, p_Bm->p_BmDriverParams->fbprThreshold); + WRITE_UINT32(p_Bm->p_BmRegs->err_isr, p_Bm->exceptions); + WRITE_UINT32(p_Bm->p_BmRegs->err_ier, p_Bm->exceptions); + WRITE_UINT32(p_Bm->p_BmRegs->err_isdr, 0x0); + if (p_Bm->errIrq != NO_IRQ) + { + XX_SetIntr(p_Bm->errIrq, BM_ErrorIsr, p_Bm); + XX_EnableIntr(p_Bm->errIrq); + } + + if ((err = XX_IpcRegisterMsgHandler(p_Bm->moduleName, BmHandleIpcMsgCB, p_Bm, BM_IPC_MAX_REPLY_SIZE)) != E_OK) + { + FreeInitResources(p_Bm); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + else /* guest mode */ + { + char masterModuleName[MODULE_NAME_SIZE]; + + memset(masterModuleName, 0, MODULE_NAME_SIZE); + if(Sprint (masterModuleName, "BM_0_%d", NCSW_MASTER_ID) != (NCSW_MASTER_ID<10 ? 6:7)) + { + FreeInitResources(p_Bm); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + } + + p_Bm->h_Session = XX_IpcInitSession(masterModuleName, p_Bm->moduleName); + if (p_Bm->h_Session) + { + t_BmIpcMsg msg; + uint8_t isMasterAlive = 0; + t_BmIpcReply reply; + uint32_t replyLength; + + memset(&msg, 0, sizeof(t_BmIpcMsg)); + memset(&reply, 0, sizeof(t_BmIpcReply)); + msg.msgId = BM_MASTER_IS_ALIVE; + replyLength = sizeof(uint32_t) + sizeof(uint8_t); + do + { + blockingFlag = TRUE; + if ((err = XX_IpcSendMessage(p_Bm->h_Session, + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + BmIpcMsgCompletionCB, + p_Bm)) != E_OK) + REPORT_ERROR(MAJOR, err, NO_MSG); + while(blockingFlag) ; + if(replyLength != (sizeof(uint32_t) + sizeof(uint8_t))) + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + isMasterAlive = *(uint8_t*)(reply.replyBody); + } while (!isMasterAlive); + } + } + + XX_Free(p_Bm->p_BmDriverParams); + p_Bm->p_BmDriverParams = NULL; + + return E_OK; +} + +t_Error BM_Free(t_Handle h_Bm) +{ + t_Bm *p_Bm = (t_Bm *)h_Bm; + + if (!p_Bm) + return ERROR_CODE(E_INVALID_HANDLE); + + if (p_Bm->guestId == NCSW_MASTER_ID) + { + XX_IpcUnregisterMsgHandler(p_Bm->moduleName); + if (p_Bm->errIrq != NO_IRQ) + { + XX_DisableIntr(p_Bm->errIrq); + XX_FreeIntr(p_Bm->errIrq); + } + } + FreeInitResources(p_Bm); + + if(p_Bm->p_BmDriverParams) + XX_Free(p_Bm->p_BmDriverParams); + + XX_Free(p_Bm); + return E_OK; +} + +t_Error BM_ConfigException(t_Handle h_Bm, e_BmExceptions exception, bool enable) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + uint32_t bitMask = 0; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Bm->p_BmDriverParams, E_INVALID_HANDLE); + + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Bm->exceptions |= bitMask; + else + p_Bm->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +t_Error BM_ConfigFbprThreshold(t_Handle h_Bm, uint32_t threshold) +{ + t_Bm *p_Bm = (t_Bm *)h_Bm; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Bm->p_BmDriverParams, E_INVALID_HANDLE); + + p_Bm->p_BmDriverParams->fbprThreshold = threshold; + + return E_OK; +} + +void BM_ErrorIsr(t_Handle h_Bm) +{ + t_Bm *p_Bm = (t_Bm *)h_Bm; + uint32_t tmpReg; + + SANITY_CHECK_RETURN(p_Bm, E_INVALID_HANDLE); + + if (p_Bm->guestId != NCSW_MASTER_ID) + { + REPORT_ERROR(WARNING, E_INVALID_OPERATION, ("Master Only")); + return; + } + + tmpReg = GET_UINT32(p_Bm->p_BmRegs->err_isr); + tmpReg &= GET_UINT32(p_Bm->p_BmRegs->err_ier); + WRITE_UINT32(p_Bm->p_BmRegs->err_isr, tmpReg); + + if (tmpReg & BM_EX_INVALID_COMMAND) + p_Bm->f_Exception(p_Bm->h_App, e_BM_EX_INVALID_COMMAND); + if (tmpReg & BM_EX_FBPR_THRESHOLD) + p_Bm->f_Exception(p_Bm->h_App, e_BM_EX_FBPR_THRESHOLD); + if (tmpReg & BM_EX_MULTI_ECC) + p_Bm->f_Exception(p_Bm->h_App, e_BM_EX_MULTI_ECC); + if (tmpReg & BM_EX_SINGLE_ECC) + p_Bm->f_Exception(p_Bm->h_App, e_BM_EX_SINGLE_ECC); +} + +uint32_t BM_GetCounter(t_Handle h_Bm, e_BmCounters counter) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_VALUE(p_Bm, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_Bm->p_BmDriverParams, E_INVALID_STATE, 0); + + switch(counter) + { + case(e_BM_COUNTERS_FBPR): + return BmGetCounter(p_Bm, e_BM_IM_COUNTERS_FBPR, 0); + default: + break; + } + /* should never get here */ + ASSERT_COND(FALSE); + + return 0; +} + +t_Error BM_SetException(t_Handle h_Bm, e_BmExceptions exception, bool enable) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + uint32_t tmpReg, bitMask = 0; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + + if (p_Bm->guestId != NCSW_MASTER_ID) + RETURN_ERROR(WARNING, E_INVALID_OPERATION, ("Master Only")); + + BM_ConfigException(p_Bm, exception, enable); + + tmpReg = GET_UINT32(p_Bm->p_BmRegs->err_ier); + + if(enable) + tmpReg |= bitMask; + else + tmpReg &= ~bitMask; + WRITE_UINT32(p_Bm->p_BmRegs->err_ier, tmpReg); + + return E_OK; +} + +t_Error BM_GetRevision(t_Handle h_Bm, t_BmRevisionInfo *p_BmRevisionInfo) +{ + t_Bm *p_Bm = (t_Bm*)h_Bm; + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_BmRevisionInfo, E_NULL_POINTER); + + return BmGetRevision(p_Bm, p_BmRevisionInfo); +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error BM_DumpRegs(t_Handle h_Bm) +{ + t_Bm *p_Bm = (t_Bm *)h_Bm; + + DECLARE_DUMP; + + if (p_Bm->guestId != NCSW_MASTER_ID) + RETURN_ERROR(WARNING, E_INVALID_OPERATION, ("Master Only")); + + SANITY_CHECK_RETURN_ERROR(p_Bm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Bm->p_BmDriverParams, E_INVALID_STATE); + + DUMP_SUBTITLE(("\n")); + + DUMP_TITLE(p_Bm->p_BmRegs, ("BmRegs Regs")); + + DUMP_ARR(p_Bm->p_BmRegs, swdet); + DUMP_ARR(p_Bm->p_BmRegs, hwdet); + DUMP_ARR(p_Bm->p_BmRegs, swdxt); + DUMP_ARR(p_Bm->p_BmRegs, hwdxt); + DUMP_ARR(p_Bm->p_BmRegs, sdcnt); + DUMP_ARR(p_Bm->p_BmRegs, hdcnt); + DUMP_ARR(p_Bm->p_BmRegs, content); + DUMP_ARR(p_Bm->p_BmRegs, hdptr); + + DUMP_VAR(p_Bm->p_BmRegs,fbpr_fpc); + DUMP_VAR(p_Bm->p_BmRegs,fbpr_fp_lwit); + + DUMP_ARR(p_Bm->p_BmRegs, cmd_pm_cfg); + DUMP_ARR(p_Bm->p_BmRegs, fl_pm_cfg); + DUMP_VAR(p_Bm->p_BmRegs, ecsr); + DUMP_VAR(p_Bm->p_BmRegs, ecir); + DUMP_VAR(p_Bm->p_BmRegs, eadr); + DUMP_ARR(p_Bm->p_BmRegs, edata); + DUMP_VAR(p_Bm->p_BmRegs,sbet); + DUMP_VAR(p_Bm->p_BmRegs,efcr); + DUMP_VAR(p_Bm->p_BmRegs,efar); + DUMP_VAR(p_Bm->p_BmRegs,sbec0); + DUMP_VAR(p_Bm->p_BmRegs,sbec1); + DUMP_VAR(p_Bm->p_BmRegs,ip_rev_1); + DUMP_VAR(p_Bm->p_BmRegs,ip_rev_2); + DUMP_VAR(p_Bm->p_BmRegs,fbpr_bare); + DUMP_VAR(p_Bm->p_BmRegs,fbpr_bar); + DUMP_VAR(p_Bm->p_BmRegs,fbpr_ar); + DUMP_VAR(p_Bm->p_BmRegs,srcidr); + DUMP_VAR(p_Bm->p_BmRegs,liodnr); + DUMP_VAR(p_Bm->p_BmRegs,err_isr); + DUMP_VAR(p_Bm->p_BmRegs,err_ier); + DUMP_VAR(p_Bm->p_BmRegs,err_isdr); + DUMP_VAR(p_Bm->p_BmRegs,err_iir); + DUMP_VAR(p_Bm->p_BmRegs,err_ifr); + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ Added: head/sys/contrib/ncsw/Peripherals/BM/bm.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/ncsw/Peripherals/BM/bm.h Mon Feb 29 03:38:00 2016 (r296177) @@ -0,0 +1,453 @@ +/****************************************************************************** + + 1995-2003, 2004, 2005-2011 Freescale Semiconductor, Inc. + All rights reserved. + + This is proprietary source code of Freescale Semiconductor Inc., + and its use is subject to the NetComm Device Drivers EULA. + The copyright notice above does not evidence any actual or intended + publication of such source code. + + ALTERNATIVELY, redistribution and use in source and binary forms, with + or without modification, are permitted provided that the following + conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Freescale Semiconductor nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 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. + * + + **************************************************************************/ +/****************************************************************************** + @File bm.h + + @Description BM header +*//***************************************************************************/ +#ifndef __BM_H +#define __BM_H + +#include "bm_ext.h" +#include "mm_ext.h" + +#include "bman_private.h" +#include "bm_ipc.h" + + +#define __ERR_MODULE__ MODULE_BM + +#define BM_NUM_OF_POOLS 64 +#define BM_NUM_OF_PM 8 + +/**************************************************************************//** *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Feb 29 03:54:52 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6201AB6E56; Mon, 29 Feb 2016 03:54:52 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 94DA31A52; Mon, 29 Feb 2016 03:54:52 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T3spmh090158; Mon, 29 Feb 2016 03:54:51 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T3spSw090156; Mon, 29 Feb 2016 03:54:51 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290354.u1T3spSw090156@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 03:54:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296178 - in head/sys: net sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 03:54:53 -0000 Author: sephe Date: Mon Feb 29 03:54:51 2016 New Revision: 296178 URL: https://svnweb.freebsd.org/changeset/base/296178 Log: buf_ring/drbr: Add buf_ring_peek_clear_sc and use it in drbr_peek Unlike buf_ring_peek, it only supports single consumer mode, and it clears the cons_head if DEBUG_BUFRING/INVARIANTS is defined. The normal use case of drbr_peek for network drivers is: m = drbr_peek(br); err = hw_spec_encap(&m); /* could m_defrag/m_collapse */ (*) if (err) { if (m == NULL) drbr_advance(br); else drbr_putback(br, m); /* break the loop */ } drbr_advance(br); The race is: If hw_spec_encap() m_defrag or m_collapse the mbuf, i.e. the old mbuf was freed, or like the Hyper-V's network driver, that transmission- done does not even require the TX lock; then on the other CPU at the (*) time, the freed mbuf could be recycled and being drbr_enqueue even before the current CPU had the chance to call drbr_{advance,putback}. This triggers a panic in drbr_enqueue duplicated element check, if DEBUG_BUFRING/INVARIANTS is defined. Use buf_ring_peek_clear_sc() in drbr_peek() to fix the above race. This change is a NO-OP, if neither DEBUG_BUFRING nor INVARIANTS are defined. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5416 Modified: head/sys/net/ifq.h head/sys/sys/buf_ring.h Modified: head/sys/net/ifq.h ============================================================================== --- head/sys/net/ifq.h Mon Feb 29 03:38:00 2016 (r296177) +++ head/sys/net/ifq.h Mon Feb 29 03:54:51 2016 (r296178) @@ -369,7 +369,7 @@ drbr_peek(struct ifnet *ifp, struct buf_ return (m); } #endif - return(buf_ring_peek(br)); + return(buf_ring_peek_clear_sc(br)); } static __inline void Modified: head/sys/sys/buf_ring.h ============================================================================== --- head/sys/sys/buf_ring.h Mon Feb 29 03:38:00 2016 (r296177) +++ head/sys/sys/buf_ring.h Mon Feb 29 03:54:51 2016 (r296178) @@ -268,6 +268,37 @@ buf_ring_peek(struct buf_ring *br) return (br->br_ring[br->br_cons_head]); } +static __inline void * +buf_ring_peek_clear_sc(struct buf_ring *br) +{ +#ifdef DEBUG_BUFRING + void *ret; + + if (!mtx_owned(br->br_lock)) + panic("lock not held on single consumer dequeue"); +#endif + /* + * I believe it is safe to not have a memory barrier + * here because we control cons and tail is worst case + * a lagging indicator so we worst case we might + * return NULL immediately after a buffer has been enqueued + */ + if (br->br_cons_head == br->br_prod_tail) + return (NULL); + +#ifdef DEBUG_BUFRING + /* + * Single consumer, i.e. cons_head will not move while we are + * running, so atomic_swap_ptr() is not necessary here. + */ + ret = br->br_ring[br->br_cons_head]; + br->br_ring[br->br_cons_head] = NULL; + return (ret); +#else + return (br->br_ring[br->br_cons_head]); +#endif +} + static __inline int buf_ring_full(struct buf_ring *br) { From owner-svn-src-head@freebsd.org Mon Feb 29 04:50:25 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECE6BAB860C; Mon, 29 Feb 2016 04:50:25 +0000 (UTC) (envelope-from phil@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 BE3D21311; Mon, 29 Feb 2016 04:50:25 +0000 (UTC) (envelope-from phil@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T4oOfG005164; Mon, 29 Feb 2016 04:50:24 GMT (envelope-from phil@FreeBSD.org) Received: (from phil@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T4oOLP005163; Mon, 29 Feb 2016 04:50:24 GMT (envelope-from phil@FreeBSD.org) Message-Id: <201602290450.u1T4oOLP005163@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: phil set sender to phil@FreeBSD.org using -f From: Phil Shafer Date: Mon, 29 Feb 2016 04:50:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296179 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 04:50:26 -0000 Author: phil Date: Mon Feb 29 04:50:24 2016 New Revision: 296179 URL: https://svnweb.freebsd.org/changeset/base/296179 Log: Add entries for Phil Shafer (phil@) Differential Revision: https://reviews.freebsd.org/D5246 Approved by: sjg (mentor) Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Mon Feb 29 03:54:51 2016 (r296178) +++ head/share/misc/committers-src.dot Mon Feb 29 04:50:24 2016 (r296179) @@ -253,6 +253,7 @@ peadar [label="Peter Edwards\npeadar@Fre peter [label="Peter Wemm\npeter@FreeBSD.org\n1995/07/04"] peterj [label="Peter Jeremy\npeterj@FreeBSD.org\n2012/09/14"] pfg [label="Pedro Giffuni\npfg@FreeBSD.org\n2011/12/01"] +phil [label="Phil Shafer\nphil@FreeBSD.ogr\n2016/12/30"] philip [label="Philip Paeps\nphilip@FreeBSD.org\n2004/01/21"] phk [label="Poul-Henning Kamp\nphk@FreeBSD.org\n1994/02/21"] pho [label="Peter Holm\npho@FreeBSD.org\n2008/11/16"] @@ -741,8 +742,12 @@ shin -> ume simon -> benl +sjg -> phil + sos -> marcel +theraven -> phil + thompsa -> weongyo thompsa -> eri From owner-svn-src-head@freebsd.org Mon Feb 29 04:58:42 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F30DAAB8840; Mon, 29 Feb 2016 04:58:41 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C5DAE17D3; Mon, 29 Feb 2016 04:58:41 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T4weg1007966; Mon, 29 Feb 2016 04:58:40 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T4we0O007965; Mon, 29 Feb 2016 04:58:40 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290458.u1T4we0O007965@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 04:58:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296180 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 04:58:42 -0000 Author: sephe Date: Mon Feb 29 04:58:40 2016 New Revision: 296180 URL: https://svnweb.freebsd.org/changeset/base/296180 Log: hyperv: Use proper fence function to keep store-load order for msgs sfence only makes sure about the store-store order, which is not sufficient here. Use atomic_thread_fence_seq_cst() as suggested jhb and kib (a locked op in the nutshell, which should have the Reviewed by: jhb, kib, Jun Su MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5436 Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Mon Feb 29 04:50:24 2016 (r296179) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Mon Feb 29 04:58:40 2016 (r296180) @@ -117,7 +117,7 @@ handled: * not deliver any more messages * since there is no empty slot */ - wmb(); + atomic_thread_fence_seq_cst(); if (msg->header.message_flags.u.message_pending) { /* @@ -187,7 +187,7 @@ hv_vmbus_isr(struct trapframe *frame) * not deliver any more messages * since there is no empty slot */ - wmb(); + atomic_thread_fence_seq_cst(); if (msg->header.message_flags.u.message_pending) { /* From owner-svn-src-head@freebsd.org Mon Feb 29 05:24:31 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3622FAB71BE; Mon, 29 Feb 2016 05:24:31 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E8667A9F; Mon, 29 Feb 2016 05:24:30 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T5OT6R016553; Mon, 29 Feb 2016 05:24:29 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T5OTJ6016550; Mon, 29 Feb 2016 05:24:29 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290524.u1T5OTJ6016550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 05:24:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296181 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 05:24:31 -0000 Author: sephe Date: Mon Feb 29 05:24:29 2016 New Revision: 296181 URL: https://svnweb.freebsd.org/changeset/base/296181 Log: hyperv/channel: Add debug sysctl nodes for channel indices It would serve as a debug tool, if the shared buffer ring's indices stopped updating. Submitted by: HongJiang Zhang Reviewed by: sephe, Jun Su Modified by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5402 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c head/sys/dev/hyperv/vmbus/hv_ring_buffer.c head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Mon Feb 29 04:58:40 2016 (r296180) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Mon Feb 29 05:24:29 2016 (r296181) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -80,6 +81,68 @@ vmbus_channel_set_event(hv_vmbus_channel } +static void +hv_vmbus_channel_stat(hv_vmbus_channel* channel) +{ + device_t dev; + struct sysctl_oid *devch_sysctl; + struct sysctl_oid *devch_id_sysctl, *devch_sub_sysctl; + struct sysctl_oid *devch_id_in_sysctl, *devch_id_out_sysctl; + struct sysctl_ctx_list *ctx; + uint32_t ch_id; + uint16_t sub_ch_id; + char name[16]; + + hv_vmbus_channel* primary_ch = channel->primary_channel; + + if (primary_ch == NULL) { + dev = channel->device->device; + ch_id = channel->offer_msg.child_rel_id; + } else { + dev = primary_ch->device->device; + ch_id = primary_ch->offer_msg.child_rel_id; + sub_ch_id = channel->offer_msg.offer.sub_channel_index; + } + ctx = device_get_sysctl_ctx(dev); + /* This creates dev.DEVNAME.DEVUNIT.channel tree */ + devch_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "channel", CTLFLAG_RD, 0, ""); + /* This creates dev.DEVNAME.DEVUNIT.channel.CHANID tree */ + snprintf(name, sizeof(name), "%d", ch_id); + devch_id_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(devch_sysctl), + OID_AUTO, name, CTLFLAG_RD, 0, ""); + + if (primary_ch != NULL) { + devch_sub_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(devch_id_sysctl), + OID_AUTO, "sub", CTLFLAG_RD, 0, ""); + snprintf(name, sizeof(name), "%d", sub_ch_id); + devch_id_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(devch_sub_sysctl), + OID_AUTO, name, CTLFLAG_RD, 0, ""); + } + + devch_id_in_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(devch_id_sysctl), + OID_AUTO, + "in", + CTLFLAG_RD, 0, ""); + devch_id_out_sysctl = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(devch_id_sysctl), + OID_AUTO, + "out", + CTLFLAG_RD, 0, ""); + hv_ring_buffer_stat(ctx, + SYSCTL_CHILDREN(devch_id_in_sysctl), + &(channel->inbound), + "inbound ring buffer stats"); + hv_ring_buffer_stat(ctx, + SYSCTL_CHILDREN(devch_id_out_sysctl), + &(channel->outbound), + "outbound ring buffer stats"); +} /** * @brief Open the specified channel */ @@ -143,6 +206,9 @@ hv_vmbus_channel_open( in, recv_ring_buffer_size); + /* setup statistic tracking for this channel */ + hv_vmbus_channel_stat(new_channel); + /** * Establish the gpadl for the ring buffer */ Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Mon Feb 29 04:58:40 2016 (r296180) +++ head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Mon Feb 29 05:24:29 2016 (r296181) @@ -30,6 +30,7 @@ #include #include #include +#include #include "hv_vmbus_priv.h" @@ -37,6 +38,47 @@ #define HV_BYTES_AVAIL_TO_WRITE(r, w, z) ((w) >= (r))? \ ((z) - ((w) - (r))):((r) - (w)) +static int +hv_rbi_sysctl_stats(SYSCTL_HANDLER_ARGS) +{ + hv_vmbus_ring_buffer_info* rbi; + uint32_t read_index, write_index, interrupt_mask, sz; + uint32_t read_avail, write_avail; + char rbi_stats[256]; + + rbi = (hv_vmbus_ring_buffer_info*)arg1; + read_index = rbi->ring_buffer->read_index; + write_index = rbi->ring_buffer->write_index; + interrupt_mask = rbi->ring_buffer->interrupt_mask; + sz = rbi->ring_data_size; + write_avail = HV_BYTES_AVAIL_TO_WRITE(read_index, + write_index, sz); + read_avail = sz - write_avail; + snprintf(rbi_stats, sizeof(rbi_stats), + "r_idx:%d " + "w_idx:%d " + "int_mask:%d " + "r_avail:%d " + "w_avail:%d", + read_index, write_index, interrupt_mask, + read_avail, write_avail); + + return (sysctl_handle_string(oidp, rbi_stats, + sizeof(rbi_stats), req)); +} + +void +hv_ring_buffer_stat( + struct sysctl_ctx_list *ctx, + struct sysctl_oid_list *tree_node, + hv_vmbus_ring_buffer_info *rbi, + const char *desc) +{ + SYSCTL_ADD_PROC(ctx, tree_node, OID_AUTO, + "ring_buffer_stats", + CTLTYPE_STRING|CTLFLAG_RD, rbi, 0, + hv_rbi_sysctl_stats, "A", desc); +} /** * @brief Get number of bytes available to read and to write to * for the specified ring buffer Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Mon Feb 29 04:58:40 2016 (r296180) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Mon Feb 29 05:24:29 2016 (r296181) @@ -639,6 +639,14 @@ extern hv_vmbus_channel_msg_table_entry /* * Private, VM Bus functions */ +struct sysctl_ctx_list; +struct sysctl_oid_list; + +void hv_ring_buffer_stat( + struct sysctl_ctx_list *ctx, + struct sysctl_oid_list *tree_node, + hv_vmbus_ring_buffer_info *rbi, + const char *desc); int hv_vmbus_ring_buffer_init( hv_vmbus_ring_buffer_info *ring_info, From owner-svn-src-head@freebsd.org Mon Feb 29 07:27:51 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95DE6AB7D33; Mon, 29 Feb 2016 07:27:51 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 72B5219EE; Mon, 29 Feb 2016 07:27:51 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T7Ro0N051566; Mon, 29 Feb 2016 07:27:50 GMT (envelope-from sgalabov@FreeBSD.org) Received: (from sgalabov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T7RnO9051557; Mon, 29 Feb 2016 07:27:49 GMT (envelope-from sgalabov@FreeBSD.org) Message-Id: <201602290727.u1T7RnO9051557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sgalabov set sender to sgalabov@FreeBSD.org using -f From: Stanislav Galabov Date: Mon, 29 Feb 2016 07:27:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296182 - in head/sys/boot: common fdt uboot/common uboot/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 07:27:51 -0000 Author: sgalabov Date: Mon Feb 29 07:27:49 2016 New Revision: 296182 URL: https://svnweb.freebsd.org/changeset/base/296182 Log: These changes attempt to put things in order before the introduction of MIPS ubldr. The changes are mostly dealing with removing unnecessary casts from the U-Boot API (we're passing only pointers, no obvious reason to cast them to uint32_t), cleaning up some compiler warnings and using the proper printf format specifiers in order to be able to compile cleanly for both 32-bit and 64-bit MIPS targets. Reviewed by: imp Approved by: adrian (mentor) Sponsored by: Smartcom - Bulgaria AD Differential Revision: https://reviews.freebsd.org/D5312 Modified: head/sys/boot/common/Makefile.inc head/sys/boot/common/dev_net.c head/sys/boot/fdt/fdt_loader_cmd.c head/sys/boot/uboot/common/main.c head/sys/boot/uboot/lib/disk.c head/sys/boot/uboot/lib/elf_freebsd.c head/sys/boot/uboot/lib/glue.c head/sys/boot/uboot/lib/glue.h Modified: head/sys/boot/common/Makefile.inc ============================================================================== --- head/sys/boot/common/Makefile.inc Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/common/Makefile.inc Mon Feb 29 07:27:49 2016 (r296182) @@ -20,6 +20,8 @@ SRCS+= load_elf64.c reloc_elf64.c SRCS+= load_elf64.c reloc_elf64.c .elif ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el" SRCS+= load_elf64.c reloc_elf64.c +.elif ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "mipsel" +SRCS+= load_elf32.c reloc_elf32.c .endif .if defined(LOADER_NET_SUPPORT) Modified: head/sys/boot/common/dev_net.c ============================================================================== --- head/sys/boot/common/dev_net.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/common/dev_net.c Mon Feb 29 07:27:49 2016 (r296182) @@ -164,8 +164,7 @@ net_open(struct open_file *f, ...) * info from bootp or other sources. */ d = socktodesc(netdev_sock); - sprintf(temp, "%6D", d->myea, ":"); - setenv("boot.netif.hwaddr", temp, 1); + setenv("boot.netif.hwaddr", ether_sprintf(d->myea), 1); setenv("boot.netif.ip", inet_ntoa(myip), 1); setenv("boot.netif.netmask", intoa(netmask), 1); setenv("boot.netif.gateway", inet_ntoa(gateip), 1); Modified: head/sys/boot/fdt/fdt_loader_cmd.c ============================================================================== --- head/sys/boot/fdt/fdt_loader_cmd.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/fdt/fdt_loader_cmd.c Mon Feb 29 07:27:49 2016 (r296182) @@ -296,8 +296,8 @@ fdt_setup_fdtp() /* If we were given the address of a valid blob in memory, use it. */ if (fdt_to_load != NULL) { if (fdt_load_dtb_addr(fdt_to_load) == 0) { - printf("Using DTB from memory address 0x%08X.\n", - (unsigned int)fdt_to_load); + printf("Using DTB from memory address 0x%p.\n", + fdt_to_load); return (0); } } @@ -427,6 +427,7 @@ fdt_fixup_cpubusfreqs(unsigned long cpuf } } +#ifdef notyet static int fdt_reg_valid(uint32_t *reg, int len, int addr_cells, int size_cells) { @@ -458,6 +459,7 @@ fdt_reg_valid(uint32_t *reg, int len, in } return (0); } +#endif void fdt_fixup_memory(struct fdt_mem_region *region, size_t num) Modified: head/sys/boot/uboot/common/main.c ============================================================================== --- head/sys/boot/uboot/common/main.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/uboot/common/main.c Mon Feb 29 07:27:49 2016 (r296182) @@ -132,8 +132,8 @@ meminfo(void) for (i = 0; i < 3; i++) { size = memsize(si, t[i]); if (size > 0) - printf("%s: %lldMB\n", ub_mem_type(t[i]), - size / 1024 / 1024); + printf("%s: %juMB\n", ub_mem_type(t[i]), + (uintmax_t)(size / 1024 / 1024)); } } @@ -426,7 +426,7 @@ main(void) * Set up console. */ cons_probe(); - printf("Compatible U-Boot API signature found @%x\n", (uint32_t)sig); + printf("Compatible U-Boot API signature found @%p\n", sig); printf("\n"); printf("%s, Revision %s\n", bootprog_name, bootprog_rev); @@ -511,7 +511,7 @@ static int command_heap(int argc, char *argv[]) { - printf("heap base at %p, top at %p, used %d\n", end, sbrk(0), + printf("heap base at %p, top at %p, used %td\n", end, sbrk(0), sbrk(0) - end); return (CMD_OK); Modified: head/sys/boot/uboot/lib/disk.c ============================================================================== --- head/sys/boot/uboot/lib/disk.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/uboot/lib/disk.c Mon Feb 29 07:27:49 2016 (r296182) @@ -156,7 +156,8 @@ stor_strategy(void *devdata, int rw, dad } if (size % SI(dev).bsize) { - stor_printf("size=%d not multiple of device block size=%d\n", + stor_printf("size=%zu not multiple of device " + "block size=%d\n", size, SI(dev).bsize); return (EIO); } Modified: head/sys/boot/uboot/lib/elf_freebsd.c ============================================================================== --- head/sys/boot/uboot/lib/elf_freebsd.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/uboot/lib/elf_freebsd.c Mon Feb 29 07:27:49 2016 (r296182) @@ -31,6 +31,10 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef __mips__ +#include +#include +#endif #include #include #include @@ -81,7 +85,7 @@ __elfN(uboot_exec)(struct preloaded_file return (error); entry = (void *)e->e_entry; - printf("Kernel entry at 0x%x...\n", (unsigned)entry); + printf("Kernel entry at 0x%p...\n", entry); dev_cleanup(); printf("Kernel args: %s\n", fp->f_args); Modified: head/sys/boot/uboot/lib/glue.c ============================================================================== --- head/sys/boot/uboot/lib/glue.c Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/uboot/lib/glue.c Mon Feb 29 07:27:49 2016 (r296182) @@ -83,8 +83,9 @@ api_search_sig(struct api_signature **si if (uboot_address == 0) uboot_address = 255 * 1024 * 1024; - sp = (void *)(uboot_address & ~0x000fffff); - spend = sp + 0x00300000 - API_SIG_MAGLEN; + sp = (void *)(uboot_address & API_SIG_SEARCH_MASK); + spend = sp + API_SIG_SEARCH_LEN - API_SIG_MAGLEN; + while (sp < spend) { if (!bcmp(sp, API_SIG_MAGIC, API_SIG_MAGLEN)) { *sig = (struct api_signature *)sp; @@ -109,7 +110,7 @@ ub_getc(void) { int c; - if (!syscall(API_GETC, NULL, (uint32_t)&c)) + if (!syscall(API_GETC, NULL, &c)) return (-1); return (c); @@ -120,24 +121,24 @@ ub_tstc(void) { int t; - if (!syscall(API_TSTC, NULL, (uint32_t)&t)) + if (!syscall(API_TSTC, NULL, &t)) return (-1); return (t); } void -ub_putc(char c) +ub_putc(const char c) { - syscall(API_PUTC, NULL, (uint32_t)&c); + syscall(API_PUTC, NULL, &c); } void ub_puts(const char *s) { - syscall(API_PUTS, NULL, (uint32_t)s); + syscall(API_PUTS, NULL, s); } /**************************************** @@ -166,7 +167,7 @@ ub_get_sys_info(void) si.mr_no = UB_MAX_MR; memset(&mr, 0, sizeof(mr)); - if (!syscall(API_GET_SYS_INFO, &err, (u_int32_t)&si)) + if (!syscall(API_GET_SYS_INFO, &err, &si)) return (NULL); return ((err) ? NULL : &si); @@ -433,7 +434,7 @@ ub_dump_di(int handle) int i; printf("device info (%d):\n", handle); - printf(" cookie\t= 0x%08x\n", (uint32_t)di->cookie); + printf(" cookie\t= 0x%p\n", di->cookie); printf(" type\t\t= 0x%08x\n", di->type); if (di->type == DEV_TYP_NET) { @@ -483,7 +484,7 @@ ub_env_get(const char *name) { char *value; - if (!syscall(API_ENV_GET, NULL, (uint32_t)name, (uint32_t)&value)) + if (!syscall(API_ENV_GET, NULL, name, &value)) return (NULL); return (value); @@ -493,7 +494,7 @@ void ub_env_set(const char *name, char *value) { - syscall(API_ENV_SET, NULL, (uint32_t)name, (uint32_t)value); + syscall(API_ENV_SET, NULL, name, value); } static char env_name[256]; @@ -510,7 +511,7 @@ ub_env_enum(const char *last) * internally, which handles such case */ env = NULL; - if (!syscall(API_ENV_ENUM, NULL, (uint32_t)last, (uint32_t)&env)) + if (!syscall(API_ENV_ENUM, NULL, last, &env)) return (NULL); if (env == NULL || last == env) Modified: head/sys/boot/uboot/lib/glue.h ============================================================================== --- head/sys/boot/uboot/lib/glue.h Mon Feb 29 05:24:29 2016 (r296181) +++ head/sys/boot/uboot/lib/glue.h Mon Feb 29 07:27:49 2016 (r296182) @@ -35,6 +35,26 @@ #include "api_public.h" +/* + * Mask used to align the start address for API signature search to 1MiB + */ +#define API_SIG_SEARCH_MASK ~0x000fffff + +#ifdef __mips__ +/* + * On MIPS, U-Boot passes us a hint address, which is very close to the end of + * RAM (less than 1MiB), so searching for the API signature within more than + * that leads to exception. + */ +#define API_SIG_SEARCH_LEN 0x00100000 +#else +/* + * Search for the API signature within 3MiB of the 1MiB-aligned address that + * U-Boot has hinted us. + */ +#define API_SIG_SEARCH_LEN 0x00300000 +#endif + int syscall(int, int *, ...); void *syscall_ptr; From owner-svn-src-head@freebsd.org Mon Feb 29 07:47:06 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49BDDAB6919; Mon, 29 Feb 2016 07:47:06 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 175D5392; Mon, 29 Feb 2016 07:47:06 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T7l5vu057360; Mon, 29 Feb 2016 07:47:05 GMT (envelope-from sgalabov@FreeBSD.org) Received: (from sgalabov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T7l4GW057350; Mon, 29 Feb 2016 07:47:04 GMT (envelope-from sgalabov@FreeBSD.org) Message-Id: <201602290747.u1T7l4GW057350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sgalabov set sender to sgalabov@FreeBSD.org using -f From: Stanislav Galabov Date: Mon, 29 Feb 2016 07:47:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296183 - in head/sys/boot: . mips mips/uboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 07:47:06 -0000 Author: sgalabov Date: Mon Feb 29 07:47:04 2016 New Revision: 296183 URL: https://svnweb.freebsd.org/changeset/base/296183 Log: This review aims at introducing ubldr (loader with U-Boot interface) for MIPS (32 and 64-bit, LE and BE). The changes were tested with QEMU's 'mips' target. Most of the implementation was lifted from the ARM version, the appropriate MIPS-specific things were implemented. With these changes I am able to go all the way through the u-boot->ubldr->kernel boot chain in QEMU on all combinations of bit-ness and endian-ness. For the tests I've used FAT32 disk images (as FAT32 is supported by U-boot), which include /boot/kernel/kernel and /boot/kernel/ubldr.bin In U-boot I do: fatload ide 0 /boot/kernel/ubldr.bin; go where LOAD_ADDR is 80800000 for 32-bit and ffffffff80800000 for 64-bit Then it's the usual ubldr that takes over and loads and starts a kernel. Approved by: adrian (mentor) Sponsored by: Smartcom - Bulgaria AD Differential Revision: https://reviews.freebsd.org/D5313 Added: head/sys/boot/mips/uboot/ head/sys/boot/mips/uboot/Makefile (contents, props changed) head/sys/boot/mips/uboot/conf.c (contents, props changed) head/sys/boot/mips/uboot/help.uboot (contents, props changed) head/sys/boot/mips/uboot/ldscript.mips (contents, props changed) head/sys/boot/mips/uboot/loader.conf (contents, props changed) head/sys/boot/mips/uboot/start.S (contents, props changed) head/sys/boot/mips/uboot/version (contents, props changed) Modified: head/sys/boot/Makefile.mips head/sys/boot/mips/Makefile Modified: head/sys/boot/Makefile.mips ============================================================================== --- head/sys/boot/Makefile.mips Mon Feb 29 07:27:49 2016 (r296182) +++ head/sys/boot/Makefile.mips Mon Feb 29 07:47:04 2016 (r296183) @@ -3,3 +3,5 @@ .if ${MK_FDT} != "no" SUBDIR+= fdt .endif + +SUBDIR+= uboot Modified: head/sys/boot/mips/Makefile ============================================================================== --- head/sys/boot/mips/Makefile Mon Feb 29 07:27:49 2016 (r296182) +++ head/sys/boot/mips/Makefile Mon Feb 29 07:47:04 2016 (r296183) @@ -1,12 +1,14 @@ # $FreeBSD$ +SUBDIR= uboot + # # The BERI boot loader port works only on 64-bit MIPS; not a hard port to # 32-bit if someone is interested. Build on all 64-bit MIPS platforms to # ensure it gets adequate build-test coverage. # .if ${MACHINE_ARCH} == "mips64" -SUBDIR= beri +SUBDIR+= beri .endif .include Added: head/sys/boot/mips/uboot/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/Makefile Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,165 @@ +# $FreeBSD$ + +.include + +FILES= ubldr + +NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} +BINDIR?= /boot +INSTALLFLAGS= -b +WARNS?= 1 +# Address at which ubldr will be loaded. +# This varies for different boards and SOCs. +UBLDR_LOADADDR?= 0xffffffff80800000 + +# Architecture-specific loader code +SRCS= start.S conf.c vers.c + +.if !defined(LOADER_NO_DISK_SUPPORT) +LOADER_DISK_SUPPORT?= yes +.else +LOADER_DISK_SUPPORT= no +.endif +LOADER_MSDOS_SUPPORT?= yes +LOADER_UFS_SUPPORT?= yes +LOADER_CD9660_SUPPORT?= no +LOADER_EXT2FS_SUPPORT?= no +.if ${MK_NAND} != "no" +LOADER_NANDFS_SUPPORT?= yes +.else +LOADER_NANDFS_SUPPORT?= no +.endif +LOADER_NET_SUPPORT?= yes +LOADER_NFS_SUPPORT?= yes +LOADER_TFTP_SUPPORT?= no +LOADER_GZIP_SUPPORT?= no +LOADER_BZIP2_SUPPORT?= no +.if ${MK_FDT} != "no" +LOADER_FDT_SUPPORT= yes +.else +LOADER_FDT_SUPPORT= no +.endif + +.if ${LOADER_DISK_SUPPORT} == "yes" +CFLAGS+= -DLOADER_DISK_SUPPORT +.endif +.if ${LOADER_MSDOS_SUPPORT} == "yes" +CFLAGS+= -DLOADER_MSDOS_SUPPORT +.endif +.if ${LOADER_UFS_SUPPORT} == "yes" +CFLAGS+= -DLOADER_UFS_SUPPORT +.endif +.if ${LOADER_CD9660_SUPPORT} == "yes" +CFLAGS+= -DLOADER_CD9660_SUPPORT +.endif +.if ${LOADER_EXT2FS_SUPPORT} == "yes" +CFLAGS+= -DLOADER_EXT2FS_SUPPORT +.endif +.if ${LOADER_NANDFS_SUPPORT} == "yes" +CFLAGS+= -DLOADER_NANDFS_SUPPORT +.endif +.if ${LOADER_GZIP_SUPPORT} == "yes" +CFLAGS+= -DLOADER_GZIP_SUPPORT +.endif +.if ${LOADER_BZIP2_SUPPORT} == "yes" +CFLAGS+= -DLOADER_BZIP2_SUPPORT +.endif +.if ${LOADER_NET_SUPPORT} == "yes" +CFLAGS+= -DLOADER_NET_SUPPORT +.endif +.if ${LOADER_NFS_SUPPORT} == "yes" +CFLAGS+= -DLOADER_NFS_SUPPORT +.endif +.if ${LOADER_TFTP_SUPPORT} == "yes" +CFLAGS+= -DLOADER_TFTP_SUPPORT +.endif +.if ${LOADER_FDT_SUPPORT} == "yes" +CFLAGS+= -I${.CURDIR}/../../fdt +CFLAGS+= -I${.OBJDIR}/../../fdt +CFLAGS+= -DLOADER_FDT_SUPPORT +LIBUBOOT_FDT= ${.OBJDIR}/../../uboot/fdt/libuboot_fdt.a +LIBFDT= ${.OBJDIR}/../../fdt/libfdt.a +.endif + +CFLAGS+= -DNETIF_OPEN_CLOSE_ONCE + +.if ${MK_FORTH} != "no" +# Enable BootForth +BOOT_FORTH= yes +CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl +.if ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el" +CFLAGS+= -I${.CURDIR}/../../ficl/mips64 +.else +CFLAGS+= -I${.CURDIR}/../../ficl/mips +.endif +LIBFICL= ${.OBJDIR}/../../ficl/libficl.a +.endif + +# Always add MI sources +.PATH: ${.CURDIR}/../../common +.include "${.CURDIR}/../../common/Makefile.inc" +CFLAGS+= -I${.CURDIR}/../../common +CFLAGS+= -I. + +CLEANFILES+= vers.c loader.help + +CFLAGS+= -ffreestanding -msoft-float -g + +LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} + +# Pull in common loader code +.PATH: ${.CURDIR}/../../uboot/common +.include "${.CURDIR}/../../uboot/common/Makefile.inc" +CFLAGS+= -I${.CURDIR}/../../uboot/common + +# U-Boot standalone support library +LIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a +CFLAGS+= -I${.CURDIR}/../../uboot/lib +CFLAGS+= -I${.OBJDIR}/../../uboot/lib + +# where to get libstand from +CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ +LIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a + +# clang doesn't understand %D as a specifier to printf +#NO_WERROR.clang= +#NO_WERROR= + +DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND} +LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND} + +OBJS+= ${SRCS:N*.h:R:S/$/.o/g} + +vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version + sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} + +loader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt + cat ${.ALLSRC} | \ + awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} + +ldscript.abs: + echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET} + +ldscript.pie: + echo "UBLDR_LOADADDR = 0;" >${.TARGET} + +ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} + ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \ + -o ${.TARGET} ${OBJS} ${LDADD} + ${OBJCOPY} -S -O binary ubldr ubldr.bin + +CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin + +.if !defined(LOADER_ONLY) +.PATH: ${.CURDIR}/../../forth +.include "${.CURDIR}/../../forth/Makefile.inc" + +# Install loader.rc. +FILES+= loader.rc +# Put sample menu.rc on disk but don't enable it by default. +FILES+= menu.rc +FILESNAME_menu.rc= menu.rc.sample +.endif + +.include +.include Added: head/sys/boot/mips/uboot/conf.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/conf.c Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,115 @@ +/*- + * Copyright (c) 2008 Semihalf, Rafal Jaworowski + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, 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. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include "bootstrap.h" +#include "libuboot.h" + +#if defined(LOADER_NET_SUPPORT) +#include "dev_net.h" +#endif + +struct devsw *devsw[] = { +#if defined(LOADER_DISK_SUPPORT) || defined(LOADER_CD9660_SUPPORT) + &uboot_storage, +#endif +#if defined(LOADER_NET_SUPPORT) + &netdev, +#endif + NULL +}; + +struct fs_ops *file_system[] = { +#if defined(LOADER_MSDOS_SUPPORT) + &dosfs_fsops, +#endif +#if defined(LOADER_UFS_SUPPORT) + &ufs_fsops, +#endif +#if defined(LOADER_CD9660_SUPPORT) + &cd9660_fsops, +#endif +#if defined(LOADER_EXT2FS_SUPPORT) + &ext2fs_fsops, +#endif +#if defined(LOADER_NANDFS_SUPPORT) + &nandfs_fsops, +#endif +#if defined(LOADER_NFS_SUPPORT) + &nfs_fsops, +#endif +#if defined(LOADER_TFTP_SUPPORT) + &tftp_fsops, +#endif +#if defined(LOADER_GZIP_SUPPORT) + &gzipfs_fsops, +#endif +#if defined(LOADER_BZIP2_SUPPORT) + &bzipfs_fsops, +#endif + NULL +}; + +struct netif_driver *netif_drivers[] = { +#if defined(LOADER_NET_SUPPORT) + &uboot_net, +#endif + NULL, +}; + +struct file_format *file_formats[] = { + &uboot_elf, + NULL +}; + +extern struct console uboot_console; + +struct console *consoles[] = { + &uboot_console, + NULL +}; + +void +abort(void) +{ + + printf("error: loader abort\n"); + while (1); +} + +void +longjmperror(void) +{ + + printf("error: loader longjmp error\n"); + while (1); +} + +int debug = 1; Added: head/sys/boot/mips/uboot/help.uboot ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/help.uboot Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,27 @@ +$FreeBSD$ + +############################################################################### +# Tubenv DShow or import U-Boot environment variables + + ubenv [varname ...] + + Display U-Boot environment variables, or import them into the + loader environment (which makes them available in the kernel). + +############################################################################### +# Tubenv Simport DImport U-Boot env vars + + ubenv import [varname ...] + + If no variable names are specified, all U-Boot environment + variables are imported. Each variable is prefixed with "uboot." + to avoid any possible conflicts with loader or kernel variables. + +############################################################################### +# Tubenv Sshow DShow U-Boot env vars + + ubenv show [varname ...] + + If no variable names are specified, all U-Boot environment + variables are shown. + Added: head/sys/boot/mips/uboot/ldscript.mips ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/ldscript.mips Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,135 @@ +/* $FreeBSD$ */ + +OUTPUT_ARCH(mips) +ENTRY(_start) +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + /*. = UBLDR_LOADADDR + SIZEOF_HEADERS;*/ + . = UBLDR_LOADADDR; + .text : + { + start.o(.text*) + *(EXCLUDE_FILE (start.o) .text*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.gnu.linkonce.t*) + } =0 + _etext = .; + PROVIDE (etext = .); + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rela.text : + { *(.rela.text) *(.rela.gnu.linkonce.t*) } + .rela.data : + { *(.rela.data) *(.rela.gnu.linkonce.d*) } + .rela.rodata : + { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } + .rela.got : { *(.rela.got) } + .rela.got1 : { *(.rela.got1) } + .rela.got2 : { *(.rela.got2) } + .rela.ctors : { *(.rela.ctors) } + .rela.dtors : { *(.rela.dtors) } + .rela.init : { *(.rela.init) } + .rela.fini : { *(.rela.fini) } + .rela.bss : { *(.rela.bss) } + .rela.plt : { *(.rela.plt) } + .rela.sdata : { *(.rela.sdata) } + .rela.sbss : { *(.rela.sbss) } + .rela.sdata2 : { *(.rela.sdata2) } + .rela.sbss2 : { *(.rela.sbss2) } + .init : { *(.init) } =0 + .fini : { *(.fini) } =0 + .rodata : { *(.rodata) *(.gnu.linkonce.r*) } + .rodata1 : { *(.rodata1) } + .sdata2 : { *(.sdata2) } + .sbss2 : { *(.sbss2) } + /* Adjust the address for the data segment to the next page up. */ + . = ((. + 0x1000) & ~(0x1000 - 1)); + .data : + { + *(.data) + *(.gnu.linkonce.d*) + CONSTRUCTORS + } + .data1 : { *(.data1) } + .got1 : { *(.got1) } + .dynamic : { *(.dynamic) } + /* Put .ctors and .dtors next to the .got2 section, so that the pointers + get relocated with -mrelocatable. Also put in the .fixup pointers. + The current compiler no longer needs this, but keep it around for 2.7.2 */ + PROVIDE (_GOT2_START_ = .); + .got2 : { *(.got2) } + PROVIDE (__CTOR_LIST__ = .); + .ctors : { *(.ctors) } + PROVIDE (__CTOR_END__ = .); + PROVIDE (__DTOR_LIST__ = .); + .dtors : { *(.dtors) } + PROVIDE (__DTOR_END__ = .); + PROVIDE (_FIXUP_START_ = .); + .fixup : { *(.fixup) } + PROVIDE (_FIXUP_END_ = .); + PROVIDE (_GOT2_END_ = .); + PROVIDE (_GOT_START_ = .); + .got : { *(.got) } + .got.plt : { *(.got.plt) } + PROVIDE (_GOT_END_ = .); + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : { *(.sdata) } + _edata = .; + PROVIDE (edata = .); + .sbss : + { + PROVIDE (__sbss_start = .); + *(.sbss) + *(.scommon) + *(.dynsbss) + PROVIDE (__sbss_end = .); + } + .plt : { *(.plt) } + .bss : + { + PROVIDE (__bss_start = .); + *(.dynbss) + *(.bss) + *(COMMON) + } + _end = . ; + PROVIDE (end = .); + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + /* These must appear regardless of . */ +} Added: head/sys/boot/mips/uboot/loader.conf ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/loader.conf Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,13 @@ +# This is defaults/loader.conf for ARM, containing defaults for loader(8). +# Do not modify the contents of this file, instead put your customizations +# into /boot/loader.conf or /boot/loader.conf.local +# $FreeBSD$ + +autoboot_delay=10 +bootfile="kernel" # Kernel name (possibly absolute path) +kernel="kernel" # /boot sub-directory containing kernel and modules +loader_conf_files="/boot/loader.conf /boot/loader.conf.local" +module_path="/boot/kernel;/boot/modules;/boot/dtb" +nextboot_conf="/boot/nextboot.conf" +nextboot_enable="NO" +verbose_loading="NO" Added: head/sys/boot/mips/uboot/start.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/start.S Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2016 Stanislav Galabov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, 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. + * + * $FreeBSD$ + */ + +#include + + .text + .extern _C_LABEL(main) + .weak _DYNAMIC + +/* + * Entry point to the loader that U-Boot passes control to. + */ +ENTRY(_start) + PTR_S sp, uboot_address + j main + nop +END(_start) + +/* + * syscall() + */ +ENTRY(syscall) + PTR_S ra, ret_address + PTR_L t9, syscall_ptr + jalr t9 + nop + PTR_L ra, ret_address + jr ra + nop +END(syscall) + +/* + * Data section + */ + .data + .align 8 + .globl syscall_ptr +syscall_ptr: + .dword 0 + + .globl uboot_address +uboot_address: + .dword 0 + +ret_address: + .dword 0 Added: head/sys/boot/mips/uboot/version ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/boot/mips/uboot/version Mon Feb 29 07:47:04 2016 (r296183) @@ -0,0 +1,9 @@ +$FreeBSD$ + +NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this +file is important. Make sure the current version number is on line 6. + +1.2: Extended with NAND FS support. +1.1: Flattened Device Tree blob support. +1.0: Added storage support. Booting from HDD, USB, etc. is now possible. +0.5: Initial U-Boot/arm version (netbooting only). From owner-svn-src-head@freebsd.org Mon Feb 29 08:45:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED1C6AB1482; Mon, 29 Feb 2016 08:45:08 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 BADED1C86; Mon, 29 Feb 2016 08:45:08 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T8j7Eh074573; Mon, 29 Feb 2016 08:45:07 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T8j7sC074572; Mon, 29 Feb 2016 08:45:07 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290845.u1T8j7sC074572@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 08:45:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296184 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 08:45:09 -0000 Author: sephe Date: Mon Feb 29 08:45:07 2016 New Revision: 296184 URL: https://svnweb.freebsd.org/changeset/base/296184 Log: hyperv/hn: Switch to if_transmit by default after r296178 MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5485 Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 07:47:04 2016 (r296183) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 08:45:07 2016 (r296184) @@ -274,7 +274,7 @@ static int hn_bind_tx_taskq = -1; SYSCTL_INT(_hw_hn, OID_AUTO, bind_tx_taskq, CTLFLAG_RDTUN, &hn_bind_tx_taskq, 0, "Bind TX taskqueue to the specified cpu"); -static int hn_use_if_start = 1; +static int hn_use_if_start = 0; SYSCTL_INT(_hw_hn, OID_AUTO, use_if_start, CTLFLAG_RDTUN, &hn_use_if_start, 0, "Use if_start TX method"); From owner-svn-src-head@freebsd.org Mon Feb 29 08:53:54 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DEADAB195E; Mon, 29 Feb 2016 08:53:54 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 41F4F1D8; Mon, 29 Feb 2016 08:53:54 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T8rrmH077449; Mon, 29 Feb 2016 08:53:53 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T8rrFx077448; Mon, 29 Feb 2016 08:53:53 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290853.u1T8rrFx077448@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 08:53:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296185 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 08:53:54 -0000 Author: sephe Date: Mon Feb 29 08:53:53 2016 New Revision: 296185 URL: https://svnweb.freebsd.org/changeset/base/296185 Log: hyperv/hn: Put LRO aggregation limit settings under FreeBSD version check This simplifies MFC to 10-stable MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5487 Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 08:45:07 2016 (r296184) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 08:53:53 2016 (r296185) @@ -290,8 +290,10 @@ static void hn_start(struct ifnet *ifp); static void hn_start_txeof(struct hn_tx_ring *); static int hn_ifmedia_upd(struct ifnet *ifp); static void hn_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); +#if __FreeBSD_version >= 1100099 static int hn_lro_lenlim_sysctl(SYSCTL_HANDLER_ARGS); static int hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS); +#endif static int hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARGS); static int hn_tx_chimney_size_sysctl(SYSCTL_HANDLER_ARGS); static int hn_rx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS); @@ -1368,6 +1370,7 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, /* Obtain and record requested MTU */ ifp->if_mtu = ifr->ifr_mtu; +#if __FreeBSD_version >= 1100099 /* * Make sure that LRO aggregation length limit is still * valid, after the MTU change. @@ -1383,6 +1386,7 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, } } NV_UNLOCK(sc); +#endif do { NV_LOCK(sc); @@ -1705,6 +1709,8 @@ hn_watchdog(struct ifnet *ifp) } #endif +#if __FreeBSD_version >= 1100099 + static int hn_lro_lenlim_sysctl(SYSCTL_HANDLER_ARGS) { @@ -1758,6 +1764,8 @@ hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS return 0; } +#endif + static int hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARGS) { @@ -2040,8 +2048,10 @@ hn_create_rx_data(struct hn_softc *sc) tcp_lro_init(&rxr->hn_lro); rxr->hn_lro.ifp = sc->hn_ifp; #endif +#if __FreeBSD_version >= 1100099 rxr->hn_lro.lro_length_lim = HN_LRO_LENLIM_DEF; rxr->hn_lro.lro_ackcnt_lim = HN_LRO_ACKCNT_DEF; +#endif #endif /* INET || INET6 */ } @@ -2060,12 +2070,14 @@ hn_create_rx_data(struct hn_softc *sc) CTLTYPE_ULONG | CTLFLAG_RW, sc, __offsetof(struct hn_rx_ring, hn_lro_tried), hn_rx_stat_ulong_sysctl, "LU", "# of LRO tries"); +#if __FreeBSD_version >= 1100099 SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_length_lim", CTLTYPE_UINT | CTLFLAG_RW, sc, 0, hn_lro_lenlim_sysctl, "IU", "Max # of data bytes to be aggregated by LRO"); SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_ackcnt_lim", CTLTYPE_INT | CTLFLAG_RW, sc, 0, hn_lro_ackcnt_sysctl, "I", "Max # of ACKs to be aggregated by LRO"); +#endif SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "trust_hosttcp", CTLTYPE_INT | CTLFLAG_RW, sc, HN_TRUST_HCSUM_TCP, hn_trust_hcsum_sysctl, "I", From owner-svn-src-head@freebsd.org Mon Feb 29 09:03:09 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 023A2AB80FF; Mon, 29 Feb 2016 09:03:09 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C6DC790E; Mon, 29 Feb 2016 09:03:08 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T937tn080383; Mon, 29 Feb 2016 09:03:07 GMT (envelope-from sgalabov@FreeBSD.org) Received: (from sgalabov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T937Cb080382; Mon, 29 Feb 2016 09:03:07 GMT (envelope-from sgalabov@FreeBSD.org) Message-Id: <201602290903.u1T937Cb080382@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sgalabov set sender to sgalabov@FreeBSD.org using -f From: Stanislav Galabov Date: Mon, 29 Feb 2016 09:03:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296186 - head/sys/boot/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 09:03:09 -0000 Author: sgalabov Date: Mon Feb 29 09:03:07 2016 New Revision: 296186 URL: https://svnweb.freebsd.org/changeset/base/296186 Log: Fix build failure introduced by r296182 Approved by: adrian (mentor) Modified: head/sys/boot/common/dev_net.c Modified: head/sys/boot/common/dev_net.c ============================================================================== --- head/sys/boot/common/dev_net.c Mon Feb 29 08:53:53 2016 (r296185) +++ head/sys/boot/common/dev_net.c Mon Feb 29 09:03:07 2016 (r296186) @@ -111,7 +111,6 @@ net_init(void) static int net_open(struct open_file *f, ...) { - char temp[FNAME_SIZE]; struct iodesc *d; va_list args; char *devname; /* Device part of file name (or NULL). */ From owner-svn-src-head@freebsd.org Mon Feb 29 09:05:34 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9FC5AB82AD; Mon, 29 Feb 2016 09:05:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 72136BBE; Mon, 29 Feb 2016 09:05:34 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T95XFO080628; Mon, 29 Feb 2016 09:05:33 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T95Xns080626; Mon, 29 Feb 2016 09:05:33 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290905.u1T95Xns080626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 09:05:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296187 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 09:05:34 -0000 Author: sephe Date: Mon Feb 29 09:05:33 2016 New Revision: 296187 URL: https://svnweb.freebsd.org/changeset/base/296187 Log: hyperv/hn: Utilize mbuf flowid MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5488 Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Mon Feb 29 09:03:07 2016 (r296186) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Mon Feb 29 09:05:33 2016 (r296187) @@ -1000,10 +1000,11 @@ struct buf_ring; struct hn_rx_ring { struct ifnet *hn_ifp; - struct lro_ctrl hn_lro; + int hn_rx_idx; /* Trust csum verification on host side */ int hn_trust_hcsum; /* HN_TRUST_HCSUM_ */ + struct lro_ctrl hn_lro; u_long hn_csum_ip; u_long hn_csum_tcp; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 09:03:07 2016 (r296186) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Mon Feb 29 09:05:33 2016 (r296187) @@ -1287,6 +1287,9 @@ skip: m_new->m_flags |= M_VLANTAG; } + m_new->m_pkthdr.flowid = rxr->hn_rx_idx; + M_HASHTYPE_SET(m_new, M_HASHTYPE_OPAQUE); + /* * Note: Moved RX completion back to hv_nv_on_receive() so all * messages (not just data messages) will trigger a response. @@ -2037,6 +2040,7 @@ hn_create_rx_data(struct hn_softc *sc) if (hn_trust_hostip) rxr->hn_trust_hcsum |= HN_TRUST_HCSUM_IP; rxr->hn_ifp = sc->hn_ifp; + rxr->hn_rx_idx = i; /* * Initialize LRO. @@ -2567,10 +2571,14 @@ hn_transmit(struct ifnet *ifp, struct mb { struct hn_softc *sc = ifp->if_softc; struct hn_tx_ring *txr; - int error; + int error, idx = 0; - /* TODO: vRSS, TX ring selection */ - txr = &sc->hn_tx_ring[0]; + /* + * Select the TX ring based on flowid + */ + if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) + idx = m->m_pkthdr.flowid % sc->hn_tx_ring_cnt; + txr = &sc->hn_tx_ring[idx]; error = drbr_enqueue(ifp, txr->hn_mbuf_br, m); if (error) From owner-svn-src-head@freebsd.org Mon Feb 29 09:14:56 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 910AFAB86A3; Mon, 29 Feb 2016 09:14:56 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5DF2210D0; Mon, 29 Feb 2016 09:14:56 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T9EtpD083644; Mon, 29 Feb 2016 09:14:55 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T9EtQR083643; Mon, 29 Feb 2016 09:14:55 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201602290914.u1T9EtQR083643@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 29 Feb 2016 09:14:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296188 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 09:14:56 -0000 Author: sephe Date: Mon Feb 29 09:14:55 2016 New Revision: 296188 URL: https://svnweb.freebsd.org/changeset/base/296188 Log: hyperv/channel: Add sysctl node for channel owner cpu And add sysctl node for sub-channel's channel id. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5489 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Mon Feb 29 09:05:33 2016 (r296187) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Mon Feb 29 09:14:55 2016 (r296188) @@ -122,8 +122,14 @@ hv_vmbus_channel_stat(hv_vmbus_channel* devch_id_sysctl = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devch_sub_sysctl), OID_AUTO, name, CTLFLAG_RD, 0, ""); + + SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(devch_id_sysctl), + OID_AUTO, "chanid", CTLFLAG_RD, + &channel->offer_msg.child_rel_id, 0, "channel id"); } - + SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(devch_id_sysctl), OID_AUTO, + "cpu", CTLFLAG_RD, &channel->target_cpu, 0, "owner CPU id"); + devch_id_in_sysctl = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devch_id_sysctl), OID_AUTO, From owner-svn-src-head@freebsd.org Mon Feb 29 09:22:42 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CFFAAB8A15; Mon, 29 Feb 2016 09:22:42 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C2CA815ED; Mon, 29 Feb 2016 09:22:41 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1T9Me9l086420; Mon, 29 Feb 2016 09:22:40 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1T9Me0A086413; Mon, 29 Feb 2016 09:22:40 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201602290922.u1T9Me0A086413@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Mon, 29 Feb 2016 09:22:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296189 - in head/sys: arm/arm arm/mv dev/cesa dev/fdt mips/beri riscv/riscv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 09:22:42 -0000 Author: wma Date: Mon Feb 29 09:22:39 2016 New Revision: 296189 URL: https://svnweb.freebsd.org/changeset/base/296189 Log: Fix fdt_get_mem_regions() to work with 64-bit addresses Use u_long instead of uint32_t variables to avoid overflow in case of PA space bigger than 32-bit. Obtained from: Semihalf Submitted by: Michal Stanek Sponsored by: Annapurna Labs Approved by: cognet (mentor) Reviewed by: andrew, br, wma Differential revision: https://reviews.freebsd.org/D5393 Modified: head/sys/arm/arm/machdep.c head/sys/arm/mv/mv_common.c head/sys/dev/cesa/cesa.c head/sys/dev/fdt/fdt_common.c head/sys/dev/fdt/fdt_common.h head/sys/mips/beri/beri_machdep.c head/sys/riscv/riscv/machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/arm/arm/machdep.c Mon Feb 29 09:22:39 2016 (r296189) @@ -1445,7 +1445,8 @@ initarm(struct arm_boot_params *abp) struct pv_addr kernel_l1pt; struct pv_addr dpcpu; vm_offset_t dtbp, freemempos, l2_start, lastaddr; - uint32_t memsize, l2size; + u_long memsize; + uint32_t l2size; char *env; void *kmdp; u_int l1pagetable; @@ -1714,7 +1715,7 @@ initarm(struct arm_boot_params *abp) struct mem_region mem_regions[FDT_MEM_REGIONS]; vm_paddr_t lastaddr; vm_offset_t dtbp, kernelstack, dpcpu; - uint32_t memsize; + u_long memsize; char *env; void *kmdp; int err_devmap, mem_regions_sz; Modified: head/sys/arm/mv/mv_common.c ============================================================================== --- head/sys/arm/mv/mv_common.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/arm/mv/mv_common.c Mon Feb 29 09:22:39 2016 (r296189) @@ -917,7 +917,8 @@ decode_win_sdram_fixup(void) { struct mem_region mr[FDT_MEM_REGIONS]; uint8_t window_valid[MV_WIN_DDR_MAX]; - int mr_cnt, memsize, err, i, j; + int mr_cnt, err, i, j; + u_long memsize; uint32_t valid_win_num = 0; /* Grab physical memory regions information from device tree. */ Modified: head/sys/dev/cesa/cesa.c ============================================================================== --- head/sys/dev/cesa/cesa.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/dev/cesa/cesa.c Mon Feb 29 09:22:39 2016 (r296189) @@ -1641,7 +1641,8 @@ decode_win_cesa_setup(struct cesa_softc { struct mem_region availmem_regions[FDT_MEM_REGIONS]; int availmem_regions_sz; - uint32_t memsize, br, cr, i; + uint32_t br, cr, i; + u_long memsize; /* Grab physical memory regions information from DTS */ if (fdt_get_mem_regions(availmem_regions, &availmem_regions_sz, Modified: head/sys/dev/fdt/fdt_common.c ============================================================================== --- head/sys/dev/fdt/fdt_common.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/dev/fdt/fdt_common.c Mon Feb 29 09:22:39 2016 (r296189) @@ -647,12 +647,12 @@ out: } int -fdt_get_mem_regions(struct mem_region *mr, int *mrcnt, uint32_t *memsize) +fdt_get_mem_regions(struct mem_region *mr, int *mrcnt, u_long *memsize) { pcell_t reg[FDT_REG_CELLS * FDT_MEM_REGIONS]; pcell_t *regp; phandle_t memory; - uint32_t memory_size; + u_long memory_size; int addr_cells, size_cells; int i, max_size, reg_len, rv, tuple_size, tuples; Modified: head/sys/dev/fdt/fdt_common.h ============================================================================== --- head/sys/dev/fdt/fdt_common.h Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/dev/fdt/fdt_common.h Mon Feb 29 09:22:39 2016 (r296189) @@ -85,7 +85,7 @@ u_long fdt_data_get(void *, int); int fdt_data_to_res(pcell_t *, int, int, u_long *, u_long *); phandle_t fdt_find_compatible(phandle_t, const char *, int); phandle_t fdt_depth_search_compatible(phandle_t, const char *, int); -int fdt_get_mem_regions(struct mem_region *, int *, uint32_t *); +int fdt_get_mem_regions(struct mem_region *, int *, u_long *); int fdt_get_reserved_regions(struct mem_region *, int *); int fdt_get_phyaddr(phandle_t, device_t, int *, void **); int fdt_get_range(phandle_t, int, u_long *, u_long *); Modified: head/sys/mips/beri/beri_machdep.c ============================================================================== --- head/sys/mips/beri/beri_machdep.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/mips/beri/beri_machdep.c Mon Feb 29 09:22:39 2016 (r296189) @@ -90,7 +90,8 @@ mips_init(void) int i; #ifdef FDT struct mem_region mr[FDT_MEM_REGIONS]; - int mr_cnt, val; + int mr_cnt; + u_long val; int j; #endif Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Mon Feb 29 09:14:55 2016 (r296188) +++ head/sys/riscv/riscv/machdep.c Mon Feb 29 09:22:39 2016 (r296189) @@ -739,7 +739,7 @@ initriscv(struct riscv_bootparams *rvbp) vm_offset_t lastaddr; int mem_regions_sz; vm_size_t kernlen; - uint32_t memsize; + u_long memsize; caddr_t kmdp; int i; From owner-svn-src-head@freebsd.org Mon Feb 29 14:46:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F7B0AB7801; Mon, 29 Feb 2016 14:46:41 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 05AFFDB2; Mon, 29 Feb 2016 14:46:40 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TEkeDl079750; Mon, 29 Feb 2016 14:46:40 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TEkdL9079747; Mon, 29 Feb 2016 14:46:39 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201602291446.u1TEkdL9079747@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Mon, 29 Feb 2016 14:46:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296190 - head/contrib/openresolv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 14:46:41 -0000 Author: pfg Date: Mon Feb 29 14:46:39 2016 New Revision: 296190 URL: https://svnweb.freebsd.org/changeset/base/296190 Log: MFV r296164: Update openresolve to version 3.7.3 including: * Save the initial working directory and change to it just before running any scripts. This avoids scripts putting files accidently where they shouldn't. * Strip trailing dot from search and domain names. * man page improvements. Relnotes: yes Modified: head/contrib/openresolv/Makefile head/contrib/openresolv/resolvconf.conf.5.in head/contrib/openresolv/resolvconf.in Directory Properties: head/contrib/openresolv/ (props changed) Modified: head/contrib/openresolv/Makefile ============================================================================== --- head/contrib/openresolv/Makefile Mon Feb 29 09:22:39 2016 (r296189) +++ head/contrib/openresolv/Makefile Mon Feb 29 14:46:39 2016 (r296190) @@ -1,5 +1,5 @@ PKG= openresolv -VERSION= 3.7.1 +VERSION= 3.7.3 # Nasty hack so that make clean works without configure being run _CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk Modified: head/contrib/openresolv/resolvconf.conf.5.in ============================================================================== --- head/contrib/openresolv/resolvconf.conf.5.in Mon Feb 29 09:22:39 2016 (r296189) +++ head/contrib/openresolv/resolvconf.conf.5.in Mon Feb 29 14:46:39 2016 (r296190) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2009-2015 Roy Marples +.\" Copyright (c) 2009-2016 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 14, 2015 +.Dd February 21, 2016 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -42,8 +42,11 @@ must contain valid shell commands. Listed below are the standard .Nm variables that may be set. -If the values contain white space for special shell characters, +If the values contain whitespace, wildcards or other special shell characters, ensure they are quoted and escaped correctly. +See the +.Sy replace +variable for an example on quoting. .Pp After updating this file, you may wish to run .Nm resolvconf -u Modified: head/contrib/openresolv/resolvconf.in ============================================================================== --- head/contrib/openresolv/resolvconf.in Mon Feb 29 09:22:39 2016 (r296189) +++ head/contrib/openresolv/resolvconf.in Mon Feb 29 14:46:39 2016 (r296190) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2015 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # Redistribution and use in source and binary forms, with or without @@ -55,6 +55,7 @@ METRICDIR="$VARDIR/metrics" PRIVATEDIR="$VARDIR/private" EXCLUSIVEDIR="$VARDIR/exclusive" LOCKDIR="$VARDIR/lock" +_PWD="$PWD" warn() { @@ -119,6 +120,21 @@ echo_resolv() IFS="$OIFS" } +# Strip any trailing dot from each name as a FQDN does not belong +# in resolv.conf(5) +# If you think otherwise, capture a DNS trace and you'll see libc +# will strip it regardless. +# This also solves setting up duplicate zones in our subscribers. +strip_trailing_dots() +{ + local n= + + for n; do + printf "%s" "${n%.}" + done + printf "\n" +} + # Parse resolv.conf's and make variables # for domain name servers, search name servers and global nameservers parse_resolv() @@ -162,14 +178,14 @@ parse_resolv() $islocal || ns="$ns${line#* } " ;; "domain "*) + search="$(strip_trailing_dots ${line#* })" if [ -z "$domain" ]; then - domain="${line#* }" + domain="$search" echo "DOMAIN=\"$domain\"" fi - search="${line#* }" ;; "search "*) - search="${line#* }" + search="$(strip_trailing_dots ${line#* })" ;; *) [ -n "$line" ] && continue @@ -752,6 +768,10 @@ eval "$(make_vars)" export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS : ${list_resolv:=list_resolv -l} retval=0 + +# Run scripts in the same directory resolvconf is run from +# in case any scripts accidently dump files in the wrong place. +cd "$_PWD" for script in "$LIBEXECDIR"/*; do if [ -f "$script" ]; then eval script_enabled="\$${script##*/}" From owner-svn-src-head@freebsd.org Mon Feb 29 16:39:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1886AAB8EAB; Mon, 29 Feb 2016 16:39:29 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 DE8A294E; Mon, 29 Feb 2016 16:39:28 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TGdRdJ012150; Mon, 29 Feb 2016 16:39:27 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TGdRuj012149; Mon, 29 Feb 2016 16:39:27 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201602291639.u1TGdRuj012149@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 29 Feb 2016 16:39:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296192 - head/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 16:39:29 -0000 Author: andrew Date: Mon Feb 29 16:39:27 2016 New Revision: 296192 URL: https://svnweb.freebsd.org/changeset/base/296192 Log: Add riscv to the list of architectures for cscope. Modified: head/sys/Makefile Modified: head/sys/Makefile ============================================================================== --- head/sys/Makefile Mon Feb 29 15:45:43 2016 (r296191) +++ head/sys/Makefile Mon Feb 29 16:39:27 2016 (r296192) @@ -8,7 +8,7 @@ CSCOPEDIRS= boot bsm cam cddl compat con rpc security sys ufs vm xdr xen ${CSCOPE_ARCHDIR} .if !defined(CSCOPE_ARCHDIR) .if defined(ALL_ARCH) -CSCOPE_ARCHDIR = amd64 arm arm64 i386 mips pc98 powerpc sparc64 x86 +CSCOPE_ARCHDIR = amd64 arm arm64 i386 mips pc98 powerpc riscv sparc64 x86 .else CSCOPE_ARCHDIR = ${MACHINE} .if ${MACHINE} != ${MACHINE_CPUARCH} From owner-svn-src-head@freebsd.org Mon Feb 29 16:39:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 313F6AB8EE6; Mon, 29 Feb 2016 16:39:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 01FEBA8D; Mon, 29 Feb 2016 16:39:39 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TGddm5012200; Mon, 29 Feb 2016 16:39:39 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TGddd5012199; Mon, 29 Feb 2016 16:39:39 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201602291639.u1TGddd5012199@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Feb 2016 16:39:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296193 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 16:39:40 -0000 Author: emaste Date: Mon Feb 29 16:39:38 2016 New Revision: 296193 URL: https://svnweb.freebsd.org/changeset/base/296193 Log: Document that WITHOUT_ELFCOPY_AS_OBJCOPY will be removed In case ELF Tool Chain's elfcopy introduces any regressions this knob is available as a transition aid. It will be removed once we are confident that any regressions have been fixed. Modified: head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY Modified: head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY ============================================================================== --- head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY Mon Feb 29 16:39:27 2016 (r296192) +++ head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY Mon Feb 29 16:39:38 2016 (r296193) @@ -2,3 +2,4 @@ Set to build and install .Xr objcopy 1 from GNU Binutils, instead of the one from ELF Tool Chain. +This option is provided as a transition aid and will be removed in due time. From owner-svn-src-head@freebsd.org Mon Feb 29 16:45:12 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96884AB72C1; Mon, 29 Feb 2016 16:45:12 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 56FDF12F5; Mon, 29 Feb 2016 16:45:12 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TGjB0f015010; Mon, 29 Feb 2016 16:45:11 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TGjAAh015000; Mon, 29 Feb 2016 16:45:10 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291645.u1TGjAAh015000@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 16:45:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296194 - in head/contrib/amd: amd amq fixmount fsinfo hlfsd scripts wire-test X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 16:45:12 -0000 Author: trasz Date: Mon Feb 29 16:45:10 2016 New Revision: 296194 URL: https://svnweb.freebsd.org/changeset/base/296194 Log: Mark amd(8) and all related utilities as obsolete. Reviewed by: wblock@ MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5443 Modified: head/contrib/amd/amd/amd.8 head/contrib/amd/amq/amq.8 head/contrib/amd/amq/pawd.1 head/contrib/amd/fixmount/fixmount.8 head/contrib/amd/fsinfo/fsinfo.8 head/contrib/amd/hlfsd/hlfsd.8 head/contrib/amd/scripts/amd.conf.5 head/contrib/amd/wire-test/wire-test.8 Modified: head/contrib/amd/amd/amd.8 ============================================================================== --- head/contrib/amd/amd/amd.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/amd/amd.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: amd.8,v 1.14.2.1 2006/01/02 18:48:23 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt AMD 8 .Os .Sh NAME @@ -76,6 +76,13 @@ .Oc .Ar ... .Sh DESCRIPTION +.Bf -symbolic +This daemon is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility Modified: head/contrib/amd/amq/amq.8 ============================================================================== --- head/contrib/amd/amq/amq.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/amq/amq.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: amq.8,v 1.15.2.1 2006/01/02 18:48:24 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt AMQ 8 .Os .Sh NAME @@ -57,6 +57,13 @@ .Op Fl P Ar program_number .Op Oo Fl u Oc Ar directory ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility Modified: head/contrib/amd/amq/pawd.1 ============================================================================== --- head/contrib/amd/amq/pawd.1 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/amq/pawd.1 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: pawd.1,v 1.9.2.1 2006/01/02 18:48:24 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt PAWD 1 .Os .Sh NAME @@ -51,6 +51,13 @@ .Nm .Op Ar path ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility Modified: head/contrib/amd/fixmount/fixmount.8 ============================================================================== --- head/contrib/amd/fixmount/fixmount.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/fixmount/fixmount.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: fixmount.8,v 1.12.2.1 2006/01/02 18:48:25 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt FIXMOUNT 8 .Os .Sh NAME @@ -53,6 +53,13 @@ .Op Fl h Ar name .Ar host ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility Modified: head/contrib/amd/fsinfo/fsinfo.8 ============================================================================== --- head/contrib/amd/fsinfo/fsinfo.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/fsinfo/fsinfo.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -36,7 +36,7 @@ .\" $Id: fsinfo.8,v 1.13.2.1 2006/01/02 18:48:25 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt FSINFO 8 .Os .Sh NAME @@ -60,6 +60,13 @@ .Op Fl U Ar name .Ar config ... .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility takes a set of system configuration information, and generates Modified: head/contrib/amd/hlfsd/hlfsd.8 ============================================================================== --- head/contrib/amd/hlfsd/hlfsd.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/hlfsd/hlfsd.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -43,7 +43,7 @@ .\" Erez Zadok and Alexander Dupuy .\" It is distributed under the same terms and conditions as AMD. .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt HLFSD 8 .Os .Sh NAME @@ -63,6 +63,13 @@ .Op Fl P Ar password-file .Op Ar linkname Op Ar subdir .Sh DESCRIPTION +.Bf -symbolic +This daemon is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility Modified: head/contrib/amd/scripts/amd.conf.5 ============================================================================== --- head/contrib/amd/scripts/amd.conf.5 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/scripts/amd.conf.5 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: amd.conf.5,v 1.39.2.5 2006/04/21 01:12:04 ezk Exp $ .\" $FreeBSD$ .\" -.Dd April 21, 2006 +.Dd February 26, 2016 .Dt AMD.CONF 5 .Os .Sh NAME @@ -52,6 +52,13 @@ configuration file .Sh SYNOPSIS .Nm .Sh DESCRIPTION +.Bf -symbolic +This configuration file is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm file is the configuration file for Modified: head/contrib/amd/wire-test/wire-test.8 ============================================================================== --- head/contrib/amd/wire-test/wire-test.8 Mon Feb 29 16:39:38 2016 (r296193) +++ head/contrib/amd/wire-test/wire-test.8 Mon Feb 29 16:45:10 2016 (r296194) @@ -41,7 +41,7 @@ .\" $Id: wire-test.8,v 1.10.2.1 2006/01/02 18:48:26 ezk Exp $ .\" $FreeBSD$ .\" -.Dd January 2, 2006 +.Dd February 26, 2016 .Dt WIRE-TEST 8 .Os .Sh NAME @@ -51,6 +51,13 @@ .Nm .Op Ar host .Sh DESCRIPTION +.Bf -symbolic +This command is obsolete. +Users are advised to use +.Xr autofs 5 +instead. +.Ef +.Pp The .Nm utility From owner-svn-src-head@freebsd.org Mon Feb 29 16:50:30 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FB4DAB74DB; Mon, 29 Feb 2016 16:50:30 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 01CA715CA; Mon, 29 Feb 2016 16:50:29 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TGoT18015225; Mon, 29 Feb 2016 16:50:29 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TGoTCd015224; Mon, 29 Feb 2016 16:50:29 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291650.u1TGoTCd015224@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 16:50:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296195 - head/usr.sbin/ctladm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 16:50:30 -0000 Author: trasz Date: Mon Feb 29 16:50:28 2016 New Revision: 296195 URL: https://svnweb.freebsd.org/changeset/base/296195 Log: Fix typo. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/ctladm/ctladm.8 Modified: head/usr.sbin/ctladm/ctladm.8 ============================================================================== --- head/usr.sbin/ctladm/ctladm.8 Mon Feb 29 16:45:10 2016 (r296194) +++ head/usr.sbin/ctladm/ctladm.8 Mon Feb 29 16:50:28 2016 (r296195) @@ -560,7 +560,7 @@ If len is longer than 252 bytes (the max .Tn SCSI sense data length), it will be truncated to that length. The sense data format is described in -.Xr cam_cdparse 3 . +.Xr cam_cdbparse 3 . .It Fl c The error injection should be persistent, instead of happening once. Persistent errors must be deleted with the From owner-svn-src-head@freebsd.org Mon Feb 29 16:52:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F372AB76E7; Mon, 29 Feb 2016 16:52:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 205561AD7; Mon, 29 Feb 2016 16:52:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TGq7Da018029; Mon, 29 Feb 2016 16:52:07 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TGq78s018027; Mon, 29 Feb 2016 16:52:07 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291652.u1TGq78s018027@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 16:52:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296196 - head/lib/libc/posix1e X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 16:52:08 -0000 Author: trasz Date: Mon Feb 29 16:52:06 2016 New Revision: 296196 URL: https://svnweb.freebsd.org/changeset/base/296196 Log: Fix typos in .Xrs. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/posix1e/acl.3 head/lib/libc/posix1e/acl_delete_flag_np.3 Modified: head/lib/libc/posix1e/acl.3 ============================================================================== --- head/lib/libc/posix1e/acl.3 Mon Feb 29 16:50:28 2016 (r296195) +++ head/lib/libc/posix1e/acl.3 Mon Feb 29 16:52:06 2016 (r296196) @@ -209,7 +209,7 @@ This function is described in and may be used to set the tag type of an ACL. .It Fn acl_strip_np This function is described in -.Xr acl-strip_np 3 , +.Xr acl_strip_np 3 , and may be used to remove extended entries from an ACL. .It Xo .Fn acl_to_text , Modified: head/lib/libc/posix1e/acl_delete_flag_np.3 ============================================================================== --- head/lib/libc/posix1e/acl_delete_flag_np.3 Mon Feb 29 16:50:28 2016 (r296195) +++ head/lib/libc/posix1e/acl_delete_flag_np.3 Mon Feb 29 16:52:06 2016 (r296196) @@ -64,7 +64,7 @@ value. .Sh SEE ALSO .Xr acl 3 , .Xr acl_add_flag_np 3 , -.Xr acl_clear_flag_nps 3 , +.Xr acl_clear_flags_np 3 , .Xr acl_get_flagset_np 3 , .Xr acl_set_flagset_np 3 , .Xr posix1e 3 From owner-svn-src-head@freebsd.org Mon Feb 29 17:14:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2F2DAB87B7; Mon, 29 Feb 2016 17:14:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 74D71C6C; Mon, 29 Feb 2016 17:14:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THE4Sk024560; Mon, 29 Feb 2016 17:14:04 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THE4Xa024558; Mon, 29 Feb 2016 17:14:04 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291714.u1THE4Xa024558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:14:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296197 - in head: share/man/man5 usr.sbin/autofs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:14:05 -0000 Author: trasz Date: Mon Feb 29 17:14:04 2016 New Revision: 296197 URL: https://svnweb.freebsd.org/changeset/base/296197 Log: Autofs is section 5, not 4. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man5/src.conf.5 head/usr.sbin/autofs/automount.8 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Mon Feb 29 16:52:06 2016 (r296196) +++ head/share/man/man5/src.conf.5 Mon Feb 29 17:14:04 2016 (r296197) @@ -140,7 +140,7 @@ Set to not build .It Va WITHOUT_AUTOFS .\" from FreeBSD: head/tools/build/options/WITHOUT_AUTOFS 277728 2015-01-26 07:15:49Z ngie Set to not build -.Xr autofs 4 +.Xr autofs 5 related programs, libraries, and kernel modules. .It Va WITH_AUTO_OBJ .\" from FreeBSD: head/tools/build/options/WITH_AUTO_OBJ 284708 2015-06-22 20:21:57Z sjg Modified: head/usr.sbin/autofs/automount.8 ============================================================================== --- head/usr.sbin/autofs/automount.8 Mon Feb 29 16:52:06 2016 (r296196) +++ head/usr.sbin/autofs/automount.8 Mon Feb 29 17:14:04 2016 (r296197) @@ -49,7 +49,7 @@ command parses the .Xr auto_master 5 configuration file and any direct maps that it references, and mounts or unmounts -.Xr autofs 4 +.Xr autofs 5 filesystems to match. These options are available: .Bl -tag -width ".Fl v" From owner-svn-src-head@freebsd.org Mon Feb 29 17:16:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38A06AB88E3; Mon, 29 Feb 2016 17:16:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 0A203F04; Mon, 29 Feb 2016 17:16:07 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THG7pl024795; Mon, 29 Feb 2016 17:16:07 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THG6Ns024793; Mon, 29 Feb 2016 17:16:06 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291716.u1THG6Ns024793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296198 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:16:08 -0000 Author: trasz Date: Mon Feb 29 17:16:06 2016 New Revision: 296198 URL: https://svnweb.freebsd.org/changeset/base/296198 Log: The tcpdump is section 1, not 8. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man4/carp.4 head/share/man/man4/enc.4 Modified: head/share/man/man4/carp.4 ============================================================================== --- head/share/man/man4/carp.4 Mon Feb 29 17:14:04 2016 (r296197) +++ head/share/man/man4/carp.4 Mon Feb 29 17:16:06 2016 (r296198) @@ -291,23 +291,23 @@ notify 0 { To see .Nm packets decoded in -.Xr tcpdump 8 +.Xr tcpdump 1 output, one needs to specify .Fl T Ar carp option, otherwise -.Xr tcpdump 8 +.Xr tcpdump 1 tries to interpret them as VRRP packets: .Bd -literal -offset indent tcpdump -npi vlan0 -T carp .Ed .Sh SEE ALSO +.Xr tcpdump 1 , .Xr inet 4 , .Xr pfsync 4 , .Xr devd.conf 5 , .Xr rc.conf 5 , .Xr ifconfig 8 , -.Xr sysctl 8 , -.Xr tcpdump 8 +.Xr sysctl 8 .Sh HISTORY The .Nm Modified: head/share/man/man4/enc.4 ============================================================================== --- head/share/man/man4/enc.4 Mon Feb 29 17:14:04 2016 (r296197) +++ head/share/man/man4/enc.4 Mon Feb 29 17:16:06 2016 (r296198) @@ -129,5 +129,4 @@ variables according to your need and run .Xr ipf 4 , .Xr ipfw 4 , .Xr ipsec 4 , -.Xr pf 4 , -.Xr tcpdump 8 +.Xr pf 4 From owner-svn-src-head@freebsd.org Mon Feb 29 17:17:12 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21BAAAB8951; Mon, 29 Feb 2016 17:17:12 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E6694107E; Mon, 29 Feb 2016 17:17:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THHAvw024873; Mon, 29 Feb 2016 17:17:10 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THHAdb024872; Mon, 29 Feb 2016 17:17:10 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291717.u1THHAdb024872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:17:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296199 - head/bin/pax X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:17:12 -0000 Author: trasz Date: Mon Feb 29 17:17:10 2016 New Revision: 296199 URL: https://svnweb.freebsd.org/changeset/base/296199 Log: dump(1) -> dump(8). MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/bin/pax/pax.1 Modified: head/bin/pax/pax.1 ============================================================================== --- head/bin/pax/pax.1 Mon Feb 29 17:16:06 2016 (r296198) +++ head/bin/pax/pax.1 Mon Feb 29 17:17:10 2016 (r296199) @@ -595,7 +595,7 @@ are not understood by however .Xr tar 1 and -.Xr dump 1 +.Xr dump 8 will preserve these. .It Fl s Ar replstr Modify the file or archive member names specified by the From owner-svn-src-head@freebsd.org Mon Feb 29 17:19:16 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98EB9AB8DAA; Mon, 29 Feb 2016 17:19:16 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 69AF412E1; Mon, 29 Feb 2016 17:19:16 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THJFYN024985; Mon, 29 Feb 2016 17:19:15 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THJFCO024983; Mon, 29 Feb 2016 17:19:15 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291719.u1THJFCO024983@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:19:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296200 - head/lib/libc/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:19:16 -0000 Author: trasz Date: Mon Feb 29 17:19:15 2016 New Revision: 296200 URL: https://svnweb.freebsd.org/changeset/base/296200 Log: sendmsg(3) -> sendmsg(2) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/net/sctp_recvmsg.3 head/lib/libc/net/sctp_sendmsg.3 Modified: head/lib/libc/net/sctp_recvmsg.3 ============================================================================== --- head/lib/libc/net/sctp_recvmsg.3 Mon Feb 29 17:17:10 2016 (r296199) +++ head/lib/libc/net/sctp_recvmsg.3 Mon Feb 29 17:19:15 2016 (r296200) @@ -285,10 +285,10 @@ is not connected and is a one-to-one sty .Xr getsockopt 2 , .Xr recv 2 , .Xr select 2 , +.Xr sendmsg 2 , .Xr setsockopt 2 , .Xr socket 2 , .Xr write 2 , .Xr sctp_send 3 , .Xr sctp_sendmsg 3 , -.Xr sendmsg 3 , .Xr sctp 4 Modified: head/lib/libc/net/sctp_sendmsg.3 ============================================================================== --- head/lib/libc/net/sctp_sendmsg.3 Mon Feb 29 17:17:10 2016 (r296199) +++ head/lib/libc/net/sctp_sendmsg.3 Mon Feb 29 17:19:15 2016 (r296200) @@ -314,10 +314,10 @@ is not connected and is a one-to-one sty .Xr getsockopt 2 , .Xr recv 2 , .Xr select 2 , +.Xr sendmsg 2 , .Xr socket 2 , .Xr write 2 , .Xr sctp_connectx 3 , -.Xr sendmsg 3 , .Xr sctp 4 .Sh BUGS Because in the one-to-many style socket From owner-svn-src-head@freebsd.org Mon Feb 29 17:20:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC9D0AB8E8D; Mon, 29 Feb 2016 17:20:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8C80614D3; Mon, 29 Feb 2016 17:20:05 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THK4Wa025071; Mon, 29 Feb 2016 17:20:04 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THK4Nd025070; Mon, 29 Feb 2016 17:20:04 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291720.u1THK4Nd025070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296201 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:20:05 -0000 Author: trasz Date: Mon Feb 29 17:20:04 2016 New Revision: 296201 URL: https://svnweb.freebsd.org/changeset/base/296201 Log: sysconf(2) -> sysconf(3) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/sys/getdtablesize.2 Modified: head/lib/libc/sys/getdtablesize.2 ============================================================================== --- head/lib/libc/sys/getdtablesize.2 Mon Feb 29 17:19:15 2016 (r296200) +++ head/lib/libc/sys/getdtablesize.2 Mon Feb 29 17:20:04 2016 (r296201) @@ -54,7 +54,7 @@ if the limit was lowered after they were .Xr closefrom 2 , .Xr dup 2 , .Xr getrlimit 2 , -.Xr sysconf 2 +.Xr sysconf 3 .Sh HISTORY The .Fn getdtablesize From owner-svn-src-head@freebsd.org Mon Feb 29 17:20:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8883AB8FC3; Mon, 29 Feb 2016 17:20:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AA0C11778; Mon, 29 Feb 2016 17:20:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THKb1W025132; Mon, 29 Feb 2016 17:20:37 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THKbrY025131; Mon, 29 Feb 2016 17:20:37 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291720.u1THKbrY025131@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:20:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296202 - head/lib/libmt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:20:38 -0000 Author: trasz Date: Mon Feb 29 17:20:37 2016 New Revision: 296202 URL: https://svnweb.freebsd.org/changeset/base/296202 Log: Fix typo. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libmt/mt.3 Modified: head/lib/libmt/mt.3 ============================================================================== --- head/lib/libmt/mt.3 Mon Feb 29 17:20:04 2016 (r296201) +++ head/lib/libmt/mt.3 Mon Feb 29 17:20:37 2016 (r296202) @@ -183,7 +183,7 @@ The and .Fn mt_char_handler functions are designed to work with the -.Xr libbbsdxml 3 +.Xr libbsdxml 3 library, which is an XML parsing library. The user data for the XML parser should be set with .Fn XML_SetUserData From owner-svn-src-head@freebsd.org Mon Feb 29 17:22:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D9D7AB8288; Mon, 29 Feb 2016 17:22:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2CF951C78; Mon, 29 Feb 2016 17:22:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THMZPt027911; Mon, 29 Feb 2016 17:22:35 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THMZ43027909; Mon, 29 Feb 2016 17:22:35 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291722.u1THMZ43027909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:22:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296203 - in head: lib/libc/sys sbin/reboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:22:36 -0000 Author: trasz Date: Mon Feb 29 17:22:34 2016 New Revision: 296203 URL: https://svnweb.freebsd.org/changeset/base/296203 Log: kenv(8) -> kenv(1) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libc/sys/reboot.2 head/sbin/reboot/reboot.8 Modified: head/lib/libc/sys/reboot.2 ============================================================================== --- head/lib/libc/sys/reboot.2 Mon Feb 29 17:20:37 2016 (r296202) +++ head/lib/libc/sys/reboot.2 Mon Feb 29 17:22:34 2016 (r296203) @@ -118,7 +118,7 @@ Instead of rebooting, unmount all filesy currently-running executable, and mount root filesystem using the same mechanism which is used during normal boot, based on vfs.root.mountfrom -.Xr kenv 8 +.Xr kenv 1 variable. .It Dv RB_RDONLY Initially mount the root file system read-only. Modified: head/sbin/reboot/reboot.8 ============================================================================== --- head/sbin/reboot/reboot.8 Mon Feb 29 17:20:37 2016 (r296202) +++ head/sbin/reboot/reboot.8 Mon Feb 29 17:22:34 2016 (r296203) @@ -125,7 +125,7 @@ This option should probably not be used. The system kills all processes, unmounts all filesystems, mounts the new root filesystem, and begins the usual startup sequence. After changing vfs.root.mountfrom with -.Xr kenv 8 , +.Xr kenv 1 , .Nm Fl r can be used to change the root filesystem while preserving kernel state. .El @@ -153,6 +153,7 @@ kenv vfs.root.mountfrom=ufs:/dev/ada0s1a reboot -r .Ed .Sh SEE ALSO +.Xr kenv 1 , .Xr getutxent 3 , .Xr boot 8 , .Xr dumpon 8 , From owner-svn-src-head@freebsd.org Mon Feb 29 17:24:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D6BBAB85E5; Mon, 29 Feb 2016 17:24:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 343491E69; Mon, 29 Feb 2016 17:24:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THOZXo028019; Mon, 29 Feb 2016 17:24:35 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THOZIH028017; Mon, 29 Feb 2016 17:24:35 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291724.u1THOZIH028017@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:24:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296204 - head/usr.sbin/etcupdate X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:24:36 -0000 Author: trasz Date: Mon Feb 29 17:24:34 2016 New Revision: 296204 URL: https://svnweb.freebsd.org/changeset/base/296204 Log: tzsetup(1) -> tzsetup(8) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/etcupdate/etcupdate.8 head/usr.sbin/etcupdate/etcupdate.sh Modified: head/usr.sbin/etcupdate/etcupdate.8 ============================================================================== --- head/usr.sbin/etcupdate/etcupdate.8 Mon Feb 29 17:22:34 2016 (r296203) +++ head/usr.sbin/etcupdate/etcupdate.8 Mon Feb 29 17:24:34 2016 (r296204) @@ -757,7 +757,7 @@ has been removed from the tree, but it has been locally modified. The modified version of the file remains in the destination directory. -.It "Needs update: /etc/localtime (required manual update via tzsetup(1))" +.It "Needs update: /etc/localtime (required manual update via tzsetup(8))" The .Fa /var/db/zoneinfo file does not exist, @@ -768,7 +768,7 @@ was not able to refresh from its source file in .Fa /usr/share/zoneinfo . Running -.Xr tzsetup 1 +.Xr tzsetup 8 will both refresh .Fa /etc/localtime and generate Modified: head/usr.sbin/etcupdate/etcupdate.sh ============================================================================== --- head/usr.sbin/etcupdate/etcupdate.sh Mon Feb 29 17:22:34 2016 (r296203) +++ head/usr.sbin/etcupdate/etcupdate.sh Mon Feb 29 17:24:34 2016 (r296204) @@ -515,7 +515,7 @@ post_update() fi else warn "Needs update: /etc/localtime (required" \ - "manual update via tzsetup(1))" + "manual update via tzsetup(8))" fi fi } From owner-svn-src-head@freebsd.org Mon Feb 29 17:25:15 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D49BAB86C5; Mon, 29 Feb 2016 17:25:15 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D21571FD8; Mon, 29 Feb 2016 17:25:14 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THPDpD028089; Mon, 29 Feb 2016 17:25:13 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THPDCD028088; Mon, 29 Feb 2016 17:25:13 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291725.u1THPDCD028088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:25:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296205 - head/usr.sbin/portsnap/phttpget X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:25:15 -0000 Author: trasz Date: Mon Feb 29 17:25:13 2016 New Revision: 296205 URL: https://svnweb.freebsd.org/changeset/base/296205 Log: Fix typo. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/portsnap/phttpget/phttpget.8 Modified: head/usr.sbin/portsnap/phttpget/phttpget.8 ============================================================================== --- head/usr.sbin/portsnap/phttpget/phttpget.8 Mon Feb 29 17:24:34 2016 (r296204) +++ head/usr.sbin/portsnap/phttpget/phttpget.8 Mon Feb 29 17:25:13 2016 (r296205) @@ -53,7 +53,7 @@ small files need to be downloaded. The .Xr freebsd-update 8 and -.Xr portnap 8 +.Xr portsnap 8 tools use .Nm to download binary patch files. From owner-svn-src-head@freebsd.org Mon Feb 29 17:26:06 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9411AB878C; Mon, 29 Feb 2016 17:26:06 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A9861217; Mon, 29 Feb 2016 17:26:06 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THQ5K4028159; Mon, 29 Feb 2016 17:26:05 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THQ5Xp028158; Mon, 29 Feb 2016 17:26:05 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291726.u1THQ5Xp028158@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:26:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296206 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:26:06 -0000 Author: trasz Date: Mon Feb 29 17:26:05 2016 New Revision: 296206 URL: https://svnweb.freebsd.org/changeset/base/296206 Log: eventtimers(7) -> eventtimers(4) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man7/tuning.7 Modified: head/share/man/man7/tuning.7 ============================================================================== --- head/share/man/man7/tuning.7 Mon Feb 29 17:25:13 2016 (r296205) +++ head/share/man/man7/tuning.7 Mon Feb 29 17:26:05 2016 (r296206) @@ -743,11 +743,11 @@ over services you export from your box ( .Xr systat 1 , .Xr sendfile 2 , .Xr ata 4 , +.Xr eventtimers 4 , .Xr dummynet 4 , .Xr login.conf 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , -.Xr eventtimers 7 , .Xr firewall 7 , .Xr hier 7 , .Xr ports 7 , From owner-svn-src-head@freebsd.org Mon Feb 29 17:26:43 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BE14AB881F; Mon, 29 Feb 2016 17:26:43 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 08F9F652; Mon, 29 Feb 2016 17:26:42 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THQfoN028220; Mon, 29 Feb 2016 17:26:41 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THQfmG028219; Mon, 29 Feb 2016 17:26:41 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291726.u1THQfmG028219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:26:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296207 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:26:43 -0000 Author: trasz Date: Mon Feb 29 17:26:41 2016 New Revision: 296207 URL: https://svnweb.freebsd.org/changeset/base/296207 Log: ddb(9) -> ddb(4) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man9/ieee80211_node.9 Modified: head/share/man/man9/ieee80211_node.9 ============================================================================== --- head/share/man/man9/ieee80211_node.9 Mon Feb 29 17:26:05 2016 (r296206) +++ head/share/man/man9/ieee80211_node.9 Mon Feb 29 17:26:41 2016 (r296207) @@ -246,6 +246,6 @@ If the specified index is .Dv IEEE80211_KEYIX_NONE then a normal lookup is done without a table update. .Sh SEE ALSO -.Xr ddb 9 , +.Xr ddb 4 , .Xr ieee80211 9 , .Xr ieee80211_proto 9 From owner-svn-src-head@freebsd.org Mon Feb 29 17:28:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44A9CAB8922; Mon, 29 Feb 2016 17:28:07 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1642983F; Mon, 29 Feb 2016 17:28:07 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THS6b0028316; Mon, 29 Feb 2016 17:28:06 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THS6dY028315; Mon, 29 Feb 2016 17:28:06 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291728.u1THS6dY028315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:28:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296208 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:28:07 -0000 Author: trasz Date: Mon Feb 29 17:28:05 2016 New Revision: 296208 URL: https://svnweb.freebsd.org/changeset/base/296208 Log: carp(8) -> carp(4) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/sbin/devd/devd.conf.5 Modified: head/sbin/devd/devd.conf.5 ============================================================================== --- head/sbin/devd/devd.conf.5 Mon Feb 29 17:26:41 2016 (r296207) +++ head/sbin/devd/devd.conf.5 Mon Feb 29 17:28:05 2016 (r296208) @@ -342,7 +342,7 @@ Thermal zone events. .Pp .It Li CARP Events related to the -.Xr carp 8 +.Xr carp 4 protocol. .Bl -tag -width ".Sy Subsystem" -compact .It Sy Subsystem From owner-svn-src-head@freebsd.org Mon Feb 29 17:29:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4E400AB8A3E; Mon, 29 Feb 2016 17:29:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1F4A89DC; Mon, 29 Feb 2016 17:29:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THTZxN028403; Mon, 29 Feb 2016 17:29:35 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THTZ5w028402; Mon, 29 Feb 2016 17:29:35 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291729.u1THTZ5w028402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:29:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296209 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:29:36 -0000 Author: trasz Date: Mon Feb 29 17:29:34 2016 New Revision: 296209 URL: https://svnweb.freebsd.org/changeset/base/296209 Log: sha256(8) -> sha256(1) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man5/portsnap.conf.5 Modified: head/share/man/man5/portsnap.conf.5 ============================================================================== --- head/share/man/man5/portsnap.conf.5 Mon Feb 29 17:28:05 2016 (r296208) +++ head/share/man/man5/portsnap.conf.5 Mon Feb 29 17:29:34 2016 (r296209) @@ -141,7 +141,7 @@ Default location of the portsnap configu .Sh SEE ALSO .Xr egrep 1 , .Xr fetch 1 , -.Xr portsnap 8 , -.Xr sha256 8 +.Xr sha256 1 , +.Xr portsnap 8 .Sh AUTHORS .An Colin Percival Aq Mt cperciva@FreeBSD.org From owner-svn-src-head@freebsd.org Mon Feb 29 17:30:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEDB9AB8BD9; Mon, 29 Feb 2016 17:30:35 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AE6EEB7F; Mon, 29 Feb 2016 17:30:35 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THUYOK028496; Mon, 29 Feb 2016 17:30:34 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THUYPU028495; Mon, 29 Feb 2016 17:30:34 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291730.u1THUYPU028495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:30:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296210 - head/usr.sbin/sysrc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:30:36 -0000 Author: trasz Date: Mon Feb 29 17:30:34 2016 New Revision: 296210 URL: https://svnweb.freebsd.org/changeset/base/296210 Log: jls(1) -> jls(8) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/sysrc/sysrc.8 Modified: head/usr.sbin/sysrc/sysrc.8 ============================================================================== --- head/usr.sbin/sysrc/sysrc.8 Mon Feb 29 17:29:34 2016 (r296209) +++ head/usr.sbin/sysrc/sysrc.8 Mon Feb 29 17:30:34 2016 (r296210) @@ -387,14 +387,14 @@ The following standard commands are requ .Xr chmod 1 , .Xr env 1 , .Xr grep 1 , -.Xr jls 1 , .Xr mktemp 1 , .Xr mv 1 , .Xr rm 1 , .Xr sh 1 , .Xr stat 1 , .Xr tail 1 , -.Xr chown 8 +.Xr chown 8 , +.Xr jls 8 , and .Xr jexec 8 . .Sh FILES @@ -465,11 +465,11 @@ usbd_flags-"default" cloned_interfaces+"alternate" .Dl returns "alternate" if $cloned_interfaces is set . .Sh SEE ALSO -.Xr jls 1 , .Xr rc.conf 5 , .Xr rc.subr 8 , .Xr jail 8 , .Xr jexec 8 , +.Xr jls 8 , .Xr rc 8 , .Xr sysctl 8 .Sh HISTORY From owner-svn-src-head@freebsd.org Mon Feb 29 17:34:56 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F268AB8F37; Mon, 29 Feb 2016 17:34:56 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 4C47FF49; Mon, 29 Feb 2016 17:34:56 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THYtFQ031014; Mon, 29 Feb 2016 17:34:55 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THYt5f031012; Mon, 29 Feb 2016 17:34:55 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291734.u1THYt5f031012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296211 - in head/lib: libsysdecode libthr X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:34:56 -0000 Author: trasz Date: Mon Feb 29 17:34:54 2016 New Revision: 296211 URL: https://svnweb.freebsd.org/changeset/base/296211 Log: errno(3) -> errno(2) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libsysdecode/sysdecode_abi_to_freebsd_errno.3 head/lib/libthr/libthr.3 Modified: head/lib/libsysdecode/sysdecode_abi_to_freebsd_errno.3 ============================================================================== --- head/lib/libsysdecode/sysdecode_abi_to_freebsd_errno.3 Mon Feb 29 17:30:34 2016 (r296210) +++ head/lib/libsysdecode/sysdecode_abi_to_freebsd_errno.3 Mon Feb 29 17:34:54 2016 (r296211) @@ -43,7 +43,7 @@ The .Fn sysdecode_abi_to_freebsd_errno function returns the native -.Xr errno 3 +.Xr errno 2 value that corresponds to the error indicated by .Fa error for the process ABI @@ -60,19 +60,19 @@ The function the error value for the process ABI .Fa abi that corresponds to the native -.Xr errno 3 +.Xr errno 2 value .Fa error . If .Fa error does not identify a valid -.Xr errno 3 +.Xr errno 2 error, .Dv INT_MAX is returned. .Pp Note that the mappings between native -.Xr errno 3 +.Xr errno 2 values and errors for other ABIs are not exhaustive. If a mapping does not exist, these functions return Modified: head/lib/libthr/libthr.3 ============================================================================== --- head/lib/libthr/libthr.3 Mon Feb 29 17:30:34 2016 (r296210) +++ head/lib/libthr/libthr.3 Mon Feb 29 17:34:54 2016 (r296211) @@ -235,12 +235,11 @@ logs. .Xr ktrace 1 , .Xr ld-elf.so.1 1 , .Xr getrlimit 2 , +.Xr errno 2 , .Xr umtx 2 , .Xr dlclose 3 , .Xr dlopen 3 , -.Xr errno 3 , .Xr getenv 3 , -.Xr libc 3 , .Xr pthread_attr 3 , .Xr pthread_attr_setstacksize 3 , .Xr pthread_create 3 , From owner-svn-src-head@freebsd.org Mon Feb 29 17:36:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5197FAB806F; Mon, 29 Feb 2016 17:36:02 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 222231114; Mon, 29 Feb 2016 17:36:02 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THa1ju031108; Mon, 29 Feb 2016 17:36:01 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THa11b031107; Mon, 29 Feb 2016 17:36:01 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291736.u1THa11b031107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:36:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296212 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:36:02 -0000 Author: trasz Date: Mon Feb 29 17:36:00 2016 New Revision: 296212 URL: https://svnweb.freebsd.org/changeset/base/296212 Log: kbdmux(8) -> kbdmux(4) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man4/vt.4 Modified: head/share/man/man4/vt.4 ============================================================================== --- head/share/man/man4/vt.4 Mon Feb 29 17:34:54 2016 (r296211) +++ head/share/man/man4/vt.4 Mon Feb 29 17:36:00 2016 (r296212) @@ -303,6 +303,7 @@ The connector name was found in .Xr vidcontrol 1 , .Xr atkbd 4 , .Xr atkbdc 4 , +.Xr kbdmux 4 , .Xr keyboard 4 , .Xr screen 4 , .Xr splash 4 , @@ -313,7 +314,6 @@ The connector name was found in .Xr ttys 5 , .Xr config 8 , .Xr getty 8 , -.Xr kbdmux 8 , .Xr kldload 8 , .Xr moused 8 , .Xr vtfontcvt 8 From owner-svn-src-head@freebsd.org Mon Feb 29 17:37:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 77BF5AB8158; Mon, 29 Feb 2016 17:37:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 48A7012B3; Mon, 29 Feb 2016 17:37:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THbZPS031200; Mon, 29 Feb 2016 17:37:35 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THbZVJ031198; Mon, 29 Feb 2016 17:37:35 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291737.u1THbZVJ031198@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:37:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296213 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:37:36 -0000 Author: trasz Date: Mon Feb 29 17:37:35 2016 New Revision: 296213 URL: https://svnweb.freebsd.org/changeset/base/296213 Log: ioctl(8) -> ioctl(2) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man4/uart.4 head/share/man/man4/ucom.4 Modified: head/share/man/man4/uart.4 ============================================================================== --- head/share/man/man4/uart.4 Mon Feb 29 17:36:00 2016 (r296212) +++ head/share/man/man4/uart.4 Mon Feb 29 17:37:35 2016 (r296213) @@ -156,7 +156,7 @@ The .Nm driver can capture PPS timing information as defined in RFC 2783. The API, accessed via -.Xr ioctl 8 , +.Xr ioctl 2 , is available on the tty device. To use the PPS capture feature with .Xr ntpd 8 , Modified: head/share/man/man4/ucom.4 ============================================================================== --- head/share/man/man4/ucom.4 Mon Feb 29 17:36:00 2016 (r296212) +++ head/share/man/man4/ucom.4 Mon Feb 29 17:37:35 2016 (r296213) @@ -68,7 +68,7 @@ The .Nm driver can capture PPS timing information as defined in RFC 2783. The API, accessed via -.Xr ioctl 8 , +.Xr ioctl 2 , is available on the tty device. To use the PPS capture feature with .Xr ntpd 8 , From owner-svn-src-head@freebsd.org Mon Feb 29 17:40:04 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5409DAB824A; Mon, 29 Feb 2016 17:40:04 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 243951485; Mon, 29 Feb 2016 17:40:04 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THe3ZV031341; Mon, 29 Feb 2016 17:40:03 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THe3Rw031340; Mon, 29 Feb 2016 17:40:03 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291740.u1THe3Rw031340@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:40:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296214 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:40:04 -0000 Author: trasz Date: Mon Feb 29 17:40:02 2016 New Revision: 296214 URL: https://svnweb.freebsd.org/changeset/base/296214 Log: {kbdcontrol,vidcontrol,quota,telnet}(8) -> {kbdcontrol,vidcontrol,quota,telnet}(1) MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Mon Feb 29 17:37:35 2016 (r296213) +++ head/share/man/man5/src.conf.5 Mon Feb 29 17:40:02 2016 (r296214) @@ -949,9 +949,9 @@ and .It Va WITHOUT_LEGACY_CONSOLE .\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 249966 2013-04-27 04:09:09Z eadler Set to not build programs that support a legacy PC console; e.g., -.Xr kbdcontrol 8 +.Xr kbdcontrol 1 and -.Xr vidcontrol 8 . +.Xr vidcontrol 1 . .It Va WITHOUT_LIB32 .\" from FreeBSD: head/tools/build/options/WITHOUT_LIB32 274664 2014-11-18 17:06:48Z imp On 64-bit platforms, set to not build 32-bit library set and a @@ -1238,7 +1238,7 @@ Set to avoid compiling profiled librarie .It Va WITHOUT_QUOTAS .\" from FreeBSD: head/tools/build/options/WITHOUT_QUOTAS 183242 2008-09-21 22:02:26Z sam Set to not build -.Xr quota 8 +.Xr quota 1 and related programs. .It Va WITHOUT_RADIUS_SUPPORT .\" from FreeBSD: head/tools/build/options/WITHOUT_RADIUS_SUPPORT 278182 2015-02-04 06:53:45Z ngie @@ -1403,7 +1403,7 @@ Set to not build and install .It Va WITHOUT_TELNET .\" from FreeBSD: head/tools/build/options/WITHOUT_TELNET 183242 2008-09-21 22:02:26Z sam Set to not build -.Xr telnet 8 +.Xr telnet 1 and related programs. .It Va WITHOUT_TESTS .\" from FreeBSD: head/tools/build/options/WITHOUT_TESTS 268778 2014-07-16 21:40:11Z jmmv From owner-svn-src-head@freebsd.org Mon Feb 29 17:40:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9CEAAB82DC; Mon, 29 Feb 2016 17:40:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9BC061632; Mon, 29 Feb 2016 17:40:38 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THebLv031420; Mon, 29 Feb 2016 17:40:37 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THebCX031418; Mon, 29 Feb 2016 17:40:37 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201602291740.u1THebCX031418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Mon, 29 Feb 2016 17:40:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296215 - head/usr.sbin/watchdogd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:40:38 -0000 Author: trasz Date: Mon Feb 29 17:40:37 2016 New Revision: 296215 URL: https://svnweb.freebsd.org/changeset/base/296215 Log: Fix typo. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/watchdogd/watchdogd.8 Modified: head/usr.sbin/watchdogd/watchdogd.8 ============================================================================== --- head/usr.sbin/watchdogd/watchdogd.8 Mon Feb 29 17:40:02 2016 (r296214) +++ head/usr.sbin/watchdogd/watchdogd.8 Mon Feb 29 17:40:37 2016 (r296215) @@ -205,7 +205,7 @@ which will send messages both to and the kernel .Xr log 4 device for -.Xr syslog 8 . +.Xr syslogd 8 . .Sh FILES .Bl -tag -width ".Pa /var/run/watchdogd.pid" -compact .It Pa /var/run/watchdogd.pid From owner-svn-src-head@freebsd.org Mon Feb 29 17:54:57 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 37B6FAB88B9; Mon, 29 Feb 2016 17:54:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 050D1176; Mon, 29 Feb 2016 17:54:56 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THstD0037030; Mon, 29 Feb 2016 17:54:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THstX6037029; Mon, 29 Feb 2016 17:54:55 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201602291754.u1THstX6037029@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Feb 2016 17:54:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296216 - head/sys/boot/userboot/userboot X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:54:57 -0000 Author: emaste Date: Mon Feb 29 17:54:55 2016 New Revision: 296216 URL: https://svnweb.freebsd.org/changeset/base/296216 Log: userboot: use MK_CTF=no to disable CTF The NO_ form (e.g. NO_CTF) is deprecated. Modified: head/sys/boot/userboot/userboot/Makefile Modified: head/sys/boot/userboot/userboot/Makefile ============================================================================== --- head/sys/boot/userboot/userboot/Makefile Mon Feb 29 17:40:37 2016 (r296215) +++ head/sys/boot/userboot/userboot/Makefile Mon Feb 29 17:54:55 2016 (r296216) @@ -6,7 +6,7 @@ MAN= MK_SSP= no SHLIB_NAME= userboot.so -NO_CTF= yes +MK_CTF= no STRIP= LIBDIR= /boot From owner-svn-src-head@freebsd.org Mon Feb 29 17:57:12 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BD97AB89B5; Mon, 29 Feb 2016 17:57:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5C94C34A; Mon, 29 Feb 2016 17:57:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1THvBLE037164; Mon, 29 Feb 2016 17:57:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1THvBvu037163; Mon, 29 Feb 2016 17:57:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201602291757.u1THvBvu037163@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Feb 2016 17:57:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296217 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 17:57:12 -0000 Author: emaste Date: Mon Feb 29 17:57:11 2016 New Revision: 296217 URL: https://svnweb.freebsd.org/changeset/base/296217 Log: Enable NO_ make variable deprecation warning Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D5495 Modified: head/share/mk/bsd.opts.mk Modified: head/share/mk/bsd.opts.mk ============================================================================== --- head/share/mk/bsd.opts.mk Mon Feb 29 17:54:55 2016 (r296216) +++ head/share/mk/bsd.opts.mk Mon Feb 29 17:57:11 2016 (r296217) @@ -101,8 +101,7 @@ __DEFAULT_NO_OPTIONS:= ${__DEFAULT_NO_OP PROFILE \ WARNS .if defined(NO_${var}) -# This warning may be premature... -#.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no instead." +.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no instead." MK_${var}:=no .endif .endfor From owner-svn-src-head@freebsd.org Mon Feb 29 18:35:17 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90744AB800B; Mon, 29 Feb 2016 18:35:17 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 61ABD660; Mon, 29 Feb 2016 18:35:17 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TIZGJ4048763; Mon, 29 Feb 2016 18:35:16 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TIZGYK048762; Mon, 29 Feb 2016 18:35:16 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201602291835.u1TIZGYK048762@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 29 Feb 2016 18:35:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296218 - head/share/vt/fonts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 18:35:17 -0000 Author: emaste Date: Mon Feb 29 18:35:16 2016 New Revision: 296218 URL: https://svnweb.freebsd.org/changeset/base/296218 Log: Remove uudecode make rule for vt fonts vt(4) fonts are provided in either .bdf or .hex form, and the binary .fnt file is generated by vtfontcvt at build time. Modified: head/share/vt/fonts/Makefile Modified: head/share/vt/fonts/Makefile ============================================================================== --- head/share/vt/fonts/Makefile Mon Feb 29 17:57:11 2016 (r296217) +++ head/share/vt/fonts/Makefile Mon Feb 29 18:35:16 2016 (r296218) @@ -14,9 +14,6 @@ CLEANFILES+= ${FILES} .hex.fnt: vtfontcvt ${.IMPSRC} ${.TARGET} -.fnt.uu.fnt: - uudecode -p < ${.IMPSRC} > ${.TARGET} - FILESDIR= ${SHAREDIR}/vt/fonts .include From owner-svn-src-head@freebsd.org Mon Feb 29 18:48:56 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2A7EAB85CC; Mon, 29 Feb 2016 18:48:56 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8A1F8DD1; Mon, 29 Feb 2016 18:48:56 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x229.google.com with SMTP id z135so197335281iof.0; Mon, 29 Feb 2016 10:48:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=lXOQT6XPEdBBNN4s2AmgcBpPJJ64vwnS9jI0BpCF1aQ=; b=NTHlIhMr4fEBNRRg4d52qT32xWLzZxKYfxL0B40gME/pY5N61wIKB9cc/rckIatwot KLjaCA5bCS8qXTtGdO4NrhBH2G7AtIhfAL0wZYhbkEd18zibropul+922+DiiGvCvQ/y UZLhv22BD2mrWCGQv9SWkZxp4WSVeEcuzP9ceYZ4D+xyPN2/wYwdvyQ+5/eXzGRP3nGQ QXPicPb3MgdrVZhh/e8XgoR6mUV234aliwBQrbn45PKHzk1SJpW7aq92sG61FZeGzBDF sZNpopHrNg/E94E7wsli0jKyfX70tOTqku3oSRJraZQdmY3w9F5mufLLKhI6QPBy0NYx yyvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=lXOQT6XPEdBBNN4s2AmgcBpPJJ64vwnS9jI0BpCF1aQ=; b=Vg7HHM0HBQaSWYlGyMyOeGtsdtb47iDliOj3+RYcVfZYXZebR+V7sPoAB9FXkKA2o7 ZOAaalwvWQPM0+dxAhNFjys6NRLyp9qp2aH9St0l25B3A9fs5p/MaOvFtlJcbvgJNSA/ ZqI7FcbUA9ebeTEsy26C+Ebtb9xrBY1y4fbEKLSltaEoxJoKs0qpVSJwArsWu/Ymh/aK JSxnw3Q6JZIW9aZUcDAqlaOiAlJOJkR/f9I/1i6XDf9dhEXvSvD3Fgpj0q4NCBYoOpAP Gx+tsJGUFB1LsLX8Iu/vvqGVcsRub80eTC0knyl7TiSNWxUCeKKfRpyXkm/pyeo7+ru0 igMw== X-Gm-Message-State: AG10YOSryXScXU4fbBpxZmtT3QEkXkTMuEAU6vF07ilSW8r4aHWUC45PrP/F2jWAJV+xQ4k2Ru6sLKJ8mOvfKA== X-Received: by 10.107.62.195 with SMTP id l186mr20694401ioa.180.1456771735829; Mon, 29 Feb 2016 10:48:55 -0800 (PST) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.39.66 with HTTP; Mon, 29 Feb 2016 10:48:36 -0800 (PST) In-Reply-To: <201602291714.u1THE4Xa024558@repo.freebsd.org> References: <201602291714.u1THE4Xa024558@repo.freebsd.org> From: Ed Maste Date: Mon, 29 Feb 2016 13:48:36 -0500 X-Google-Sender-Auth: cyWJ2BcYYvf1usw0m9ygjpJwbac Message-ID: Subject: Re: svn commit: r296197 - in head: share/man/man5 usr.sbin/autofs To: Edward Tomasz Napierala Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 18:48:56 -0000 On 29 February 2016 at 12:14, Edward Tomasz Napierala wrote: > Author: trasz > Date: Mon Feb 29 17:14:04 2016 > New Revision: 296197 > URL: https://svnweb.freebsd.org/changeset/base/296197 > > Log: > Autofs is section 5, not 4. > > MFC after: 1 month > Sponsored by: The FreeBSD Foundation > > Modified: > head/share/man/man5/src.conf.5 > head/usr.sbin/autofs/automount.8 > > Modified: head/share/man/man5/src.conf.5 > ============================================================================== > --- head/share/man/man5/src.conf.5 Mon Feb 29 16:52:06 2016 (r296196) > +++ head/share/man/man5/src.conf.5 Mon Feb 29 17:14:04 2016 (r296197) > @@ -140,7 +140,7 @@ Set to not build > .It Va WITHOUT_AUTOFS > .\" from FreeBSD: head/tools/build/options/WITHOUT_AUTOFS 277728 2015-01-26 07:15:49Z ngie > Set to not build > -.Xr autofs 4 > +.Xr autofs 5 > related programs, libraries, and kernel modules. > .It Va WITH_AUTO_OBJ > .\" from FreeBSD: head/tools/build/options/WITH_AUTO_OBJ 284708 2015-06-22 20:21:57Z sjg This needs to be changed in tools/build/options/WITHOUT_AUTOFS, not in the generated file. From owner-svn-src-head@freebsd.org Mon Feb 29 19:10:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07D0DAB700E; Mon, 29 Feb 2016 19:10:35 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A409E1D58; Mon, 29 Feb 2016 19:10:34 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TJAX4Q057803; Mon, 29 Feb 2016 19:10:33 GMT (envelope-from jasone@FreeBSD.org) Received: (from jasone@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TJAX7t057795; Mon, 29 Feb 2016 19:10:33 GMT (envelope-from jasone@FreeBSD.org) Message-Id: <201602291910.u1TJAX7t057795@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jasone set sender to jasone@FreeBSD.org using -f From: Jason Evans Date: Mon, 29 Feb 2016 19:10:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296221 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src include lib/libc/stdlib/jemalloc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 19:10:35 -0000 Author: jasone Date: Mon Feb 29 19:10:32 2016 New Revision: 296221 URL: https://svnweb.freebsd.org/changeset/base/296221 Log: Update jemalloc to 4.1.0. Add missing Symbol.map entry for __aligned_alloc. Add weak-->strong symbol binding for {malloc_stats_print,mallctl,mallctlnametomib,mallctlbymib} --> {__malloc_stats_print,__mallctl,__mallctlnametomib,__mallctlbymib}. These bindings complete the set necessary to allow applications to replace all malloc-related symbols. Added: head/contrib/jemalloc/include/jemalloc/internal/assert.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/nstime.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/smoothstep.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/ticker.h (contents, props changed) head/contrib/jemalloc/src/nstime.c (contents, props changed) head/contrib/jemalloc/src/prng.c (contents, props changed) head/contrib/jemalloc/src/ticker.c (contents, props changed) Modified: head/contrib/jemalloc/COPYING head/contrib/jemalloc/ChangeLog head/contrib/jemalloc/FREEBSD-Xlist head/contrib/jemalloc/FREEBSD-diffs head/contrib/jemalloc/VERSION head/contrib/jemalloc/doc/jemalloc.3 head/contrib/jemalloc/include/jemalloc/internal/arena.h head/contrib/jemalloc/include/jemalloc/internal/atomic.h head/contrib/jemalloc/include/jemalloc/internal/bitmap.h head/contrib/jemalloc/include/jemalloc/internal/chunk_mmap.h head/contrib/jemalloc/include/jemalloc/internal/ckh.h head/contrib/jemalloc/include/jemalloc/internal/ctl.h head/contrib/jemalloc/include/jemalloc/internal/hash.h head/contrib/jemalloc/include/jemalloc/internal/huge.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h head/contrib/jemalloc/include/jemalloc/internal/private_namespace.h head/contrib/jemalloc/include/jemalloc/internal/prng.h head/contrib/jemalloc/include/jemalloc/internal/prof.h head/contrib/jemalloc/include/jemalloc/internal/rb.h head/contrib/jemalloc/include/jemalloc/internal/size_classes.h head/contrib/jemalloc/include/jemalloc/internal/stats.h head/contrib/jemalloc/include/jemalloc/internal/tcache.h head/contrib/jemalloc/include/jemalloc/internal/tsd.h head/contrib/jemalloc/include/jemalloc/internal/util.h head/contrib/jemalloc/include/jemalloc/jemalloc.h head/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h head/contrib/jemalloc/src/arena.c head/contrib/jemalloc/src/bitmap.c head/contrib/jemalloc/src/chunk.c head/contrib/jemalloc/src/chunk_mmap.c head/contrib/jemalloc/src/ckh.c head/contrib/jemalloc/src/ctl.c head/contrib/jemalloc/src/extent.c head/contrib/jemalloc/src/huge.c head/contrib/jemalloc/src/jemalloc.c head/contrib/jemalloc/src/prof.c head/contrib/jemalloc/src/quarantine.c head/contrib/jemalloc/src/stats.c head/contrib/jemalloc/src/tcache.c head/contrib/jemalloc/src/tsd.c head/contrib/jemalloc/src/util.c head/include/malloc_np.h head/lib/libc/stdlib/jemalloc/Makefile.inc head/lib/libc/stdlib/jemalloc/Symbol.map Modified: head/contrib/jemalloc/COPYING ============================================================================== --- head/contrib/jemalloc/COPYING Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/COPYING Mon Feb 29 19:10:32 2016 (r296221) @@ -1,10 +1,10 @@ Unless otherwise specified, files in the jemalloc source distribution are subject to the following license: -------------------------------------------------------------------------------- -Copyright (C) 2002-2015 Jason Evans . +Copyright (C) 2002-2016 Jason Evans . All rights reserved. Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved. -Copyright (C) 2009-2015 Facebook, Inc. All rights reserved. +Copyright (C) 2009-2016 Facebook, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Modified: head/contrib/jemalloc/ChangeLog ============================================================================== --- head/contrib/jemalloc/ChangeLog Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/ChangeLog Mon Feb 29 19:10:32 2016 (r296221) @@ -4,6 +4,79 @@ brevity. Much more detail can be found https://github.com/jemalloc/jemalloc +* 4.1.0 (February 28, 2016) + + This release is primarily about optimizations, but it also incorporates a lot + of portability-motivated refactoring and enhancements. Many people worked on + this release, to an extent that even with the omission here of minor changes + (see git revision history), and of the people who reported and diagnosed + issues, so much of the work was contributed that starting with this release, + changes are annotated with author credits to help reflect the collaborative + effort involved. + + New features: + - Implement decay-based unused dirty page purging, a major optimization with + mallctl API impact. This is an alternative to the existing ratio-based + unused dirty page purging, and is intended to eventually become the sole + purging mechanism. New mallctls: + + opt.purge + + opt.decay_time + + arena..decay + + arena..decay_time + + arenas.decay_time + + stats.arenas..decay_time + (@jasone, @cevans87) + - Add --with-malloc-conf, which makes it possible to embed a default + options string during configuration. This was motivated by the desire to + specify --with-malloc-conf=purge:decay , since the default must remain + purge:ratio until the 5.0.0 release. (@jasone) + - Add MS Visual Studio 2015 support. (@rustyx, @yuslepukhin) + - Make *allocx() size class overflow behavior defined. The maximum + size class is now less than PTRDIFF_MAX to protect applications against + numerical overflow, and all allocation functions are guaranteed to indicate + errors rather than potentially crashing if the request size exceeds the + maximum size class. (@jasone) + - jeprof: + + Add raw heap profile support. (@jasone) + + Add --retain and --exclude for backtrace symbol filtering. (@jasone) + + Optimizations: + - Optimize the fast path to combine various bootstrapping and configuration + checks and execute more streamlined code in the common case. (@interwq) + - Use linear scan for small bitmaps (used for small object tracking). In + addition to speeding up bitmap operations on 64-bit systems, this reduces + allocator metadata overhead by approximately 0.2%. (@djwatson) + - Separate arena_avail trees, which substantially speeds up run tree + operations. (@djwatson) + - Use memoization (boot-time-computed table) for run quantization. Separate + arena_avail trees reduced the importance of this optimization. (@jasone) + - Attempt mmap-based in-place huge reallocation. This can dramatically speed + up incremental huge reallocation. (@jasone) + + Incompatible changes: + - Make opt.narenas unsigned rather than size_t. (@jasone) + + Bug fixes: + - Fix stats.cactive accounting regression. (@rustyx, @jasone) + - Handle unaligned keys in hash(). This caused problems for some ARM systems. + (@jasone, Christopher Ferris) + - Refactor arenas array. In addition to fixing a fork-related deadlock, this + makes arena lookups faster and simpler. (@jasone) + - Move retained memory allocation out of the default chunk allocation + function, to a location that gets executed even if the application installs + a custom chunk allocation function. This resolves a virtual memory leak. + (@buchgr) + - Fix a potential tsd cleanup leak. (Christopher Ferris, @jasone) + - Fix run quantization. In practice this bug had no impact unless + applications requested memory with alignment exceeding one page. + (@jasone, @djwatson) + - Fix LinuxThreads-specific bootstrapping deadlock. (Cosmin Paraschiv) + - jeprof: + + Don't discard curl options if timeout is not defined. (@djwatson) + + Detect failed profile fetches. (@djwatson) + - Fix stats.arenas..{dss,lg_dirty_mult,decay_time,pactive,pdirty} for + --disable-stats case. (@jasone) + * 4.0.4 (October 24, 2015) This bugfix release fixes another xallocx() regression. No other regressions Modified: head/contrib/jemalloc/FREEBSD-Xlist ============================================================================== --- head/contrib/jemalloc/FREEBSD-Xlist Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/FREEBSD-Xlist Mon Feb 29 19:10:32 2016 (r296221) @@ -8,6 +8,7 @@ README autogen.sh autom4te.cache/ bin/ +build-aux/ config.* configure* coverage.sh @@ -26,6 +27,7 @@ include/jemalloc/internal/public_symbols include/jemalloc/internal/public_unnamespace.h include/jemalloc/internal/public_unnamespace.sh include/jemalloc/internal/size_classes.sh +include/jemalloc/internal/smoothstep.sh include/jemalloc/jemalloc.h.in include/jemalloc/jemalloc.sh include/jemalloc/jemalloc_defs.h @@ -44,6 +46,7 @@ include/jemalloc/jemalloc_typedefs.h.in include/msvc_compat/ install-sh jemalloc.pc* +msvc/ src/valgrind.c src/zone.c test/ Modified: head/contrib/jemalloc/FREEBSD-diffs ============================================================================== --- head/contrib/jemalloc/FREEBSD-diffs Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/FREEBSD-diffs Mon Feb 29 19:10:32 2016 (r296221) @@ -1,5 +1,5 @@ diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in -index 26a5e14..2a801b7 100644 +index bc5dbd1..ba182da 100644 --- a/doc/jemalloc.xml.in +++ b/doc/jemalloc.xml.in @@ -53,11 +53,23 @@ @@ -27,7 +27,7 @@ index 26a5e14..2a801b7 100644 Standard API -@@ -2759,4 +2771,18 @@ malloc_conf = "lg_chunk:24";]]> +@@ -2905,4 +2917,18 @@ malloc_conf = "lg_chunk:24";]]> The posix_memalign function conforms to IEEE Std 1003.1-2001 (“POSIX.1”). @@ -47,7 +47,7 @@ index 26a5e14..2a801b7 100644 + diff --git a/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in -index 654cd08..ad5382d 100644 +index 3f54391..d240256 100644 --- a/include/jemalloc/internal/jemalloc_internal.h.in +++ b/include/jemalloc/internal/jemalloc_internal.h.in @@ -8,6 +8,9 @@ @@ -72,11 +72,11 @@ index 654cd08..ad5382d 100644 -#endif - ; +static const bool config_lazy_lock = true; + static const char * const config_malloc_conf = JEMALLOC_CONFIG_MALLOC_CONF; static const bool config_prof = #ifdef JEMALLOC_PROF - true diff --git a/include/jemalloc/internal/jemalloc_internal_decls.h b/include/jemalloc/internal/jemalloc_internal_decls.h -index a601d6e..e7094b2 100644 +index 2b8ca5d..42d97f2 100644 --- a/include/jemalloc/internal/jemalloc_internal_decls.h +++ b/include/jemalloc/internal/jemalloc_internal_decls.h @@ -1,6 +1,9 @@ @@ -111,10 +111,10 @@ index f051f29..561378f 100644 #endif /* JEMALLOC_H_EXTERNS */ diff --git a/include/jemalloc/internal/private_symbols.txt b/include/jemalloc/internal/private_symbols.txt -index a90021a..34904bf 100644 +index 5880996..6e94e03 100644 --- a/include/jemalloc/internal/private_symbols.txt +++ b/include/jemalloc/internal/private_symbols.txt -@@ -280,7 +280,6 @@ iralloct_realign +@@ -296,7 +296,6 @@ iralloct_realign isalloc isdalloct isqalloc @@ -124,10 +124,10 @@ index a90021a..34904bf 100644 jemalloc_postfork_child diff --git a/include/jemalloc/jemalloc_FreeBSD.h b/include/jemalloc/jemalloc_FreeBSD.h new file mode 100644 -index 0000000..737542e +index 0000000..433dab5 --- /dev/null +++ b/include/jemalloc/jemalloc_FreeBSD.h -@@ -0,0 +1,142 @@ +@@ -0,0 +1,160 @@ +/* + * Override settings that were generated in jemalloc_defs.h as necessary. + */ @@ -182,6 +182,9 @@ index 0000000..737542e +#elif defined(__powerpc__) +# define LG_SIZEOF_PTR 2 +#endif ++#ifdef __riscv__ ++# define LG_SIZEOF_PTR 3 ++#endif + +#ifndef JEMALLOC_TLS_MODEL +# define JEMALLOC_TLS_MODEL /* Default. */ @@ -205,17 +208,22 @@ index 0000000..737542e +/* Mangle. */ +#undef je_malloc +#undef je_calloc -+#undef je_realloc -+#undef je_free +#undef je_posix_memalign +#undef je_aligned_alloc ++#undef je_realloc ++#undef je_free +#undef je_malloc_usable_size +#undef je_mallocx +#undef je_rallocx +#undef je_xallocx +#undef je_sallocx +#undef je_dallocx ++#undef je_sdallocx +#undef je_nallocx ++#undef je_mallctl ++#undef je_mallctlnametomib ++#undef je_mallctlbymib ++#undef je_malloc_stats_print +#undef je_allocm +#undef je_rallocm +#undef je_sallocm @@ -223,17 +231,22 @@ index 0000000..737542e +#undef je_nallocm +#define je_malloc __malloc +#define je_calloc __calloc -+#define je_realloc __realloc -+#define je_free __free +#define je_posix_memalign __posix_memalign +#define je_aligned_alloc __aligned_alloc ++#define je_realloc __realloc ++#define je_free __free +#define je_malloc_usable_size __malloc_usable_size +#define je_mallocx __mallocx +#define je_rallocx __rallocx +#define je_xallocx __xallocx +#define je_sallocx __sallocx +#define je_dallocx __dallocx ++#define je_sdallocx __sdallocx +#define je_nallocx __nallocx ++#define je_mallctl __mallctl ++#define je_mallctlnametomib __mallctlnametomib ++#define je_mallctlbymib __mallctlbymib ++#define je_malloc_stats_print __malloc_stats_print +#define je_allocm __allocm +#define je_rallocm __rallocm +#define je_sallocm __sallocm @@ -253,17 +266,22 @@ index 0000000..737542e + */ +__weak_reference(__malloc, malloc); +__weak_reference(__calloc, calloc); -+__weak_reference(__realloc, realloc); -+__weak_reference(__free, free); +__weak_reference(__posix_memalign, posix_memalign); +__weak_reference(__aligned_alloc, aligned_alloc); ++__weak_reference(__realloc, realloc); ++__weak_reference(__free, free); +__weak_reference(__malloc_usable_size, malloc_usable_size); +__weak_reference(__mallocx, mallocx); +__weak_reference(__rallocx, rallocx); +__weak_reference(__xallocx, xallocx); +__weak_reference(__sallocx, sallocx); +__weak_reference(__dallocx, dallocx); ++__weak_reference(__sdallocx, sdallocx); +__weak_reference(__nallocx, nallocx); ++__weak_reference(__mallctl, mallctl); ++__weak_reference(__mallctlnametomib, mallctlnametomib); ++__weak_reference(__mallctlbymib, mallctlbymib); ++__weak_reference(__malloc_stats_print, malloc_stats_print); +__weak_reference(__allocm, allocm); +__weak_reference(__rallocm, rallocm); +__weak_reference(__sallocm, sallocm); @@ -282,7 +300,7 @@ index f943891..47d032c 100755 +#include "jemalloc_FreeBSD.h" EOF diff --git a/src/jemalloc.c b/src/jemalloc.c -index 5a2d324..b6cbb79 100644 +index 0735376..a34b85c 100644 --- a/src/jemalloc.c +++ b/src/jemalloc.c @@ -4,6 +4,10 @@ @@ -296,7 +314,7 @@ index 5a2d324..b6cbb79 100644 /* Runtime configuration options. */ const char *je_malloc_conf JEMALLOC_ATTR(weak); bool opt_abort = -@@ -2490,6 +2494,107 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr) +@@ -2611,6 +2615,107 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr) */ /******************************************************************************/ /* @@ -404,7 +422,7 @@ index 5a2d324..b6cbb79 100644 * The following functions are used by threading libraries for protection of * malloc during fork(). */ -@@ -2590,4 +2695,11 @@ jemalloc_postfork_child(void) +@@ -2717,4 +2822,11 @@ jemalloc_postfork_child(void) ctl_postfork_child(); } @@ -463,10 +481,10 @@ index 2d47af9..934d5aa 100644 +#endif +} diff --git a/src/util.c b/src/util.c -index 4cb0d6c..25b61c2 100644 +index 02673c7..116e981 100644 --- a/src/util.c +++ b/src/util.c -@@ -58,6 +58,22 @@ wrtmessage(void *cbopaque, const char *s) +@@ -66,6 +66,22 @@ wrtmessage(void *cbopaque, const char *s) JEMALLOC_EXPORT void (*je_malloc_message)(void *, const char *s); Modified: head/contrib/jemalloc/VERSION ============================================================================== --- head/contrib/jemalloc/VERSION Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/VERSION Mon Feb 29 19:10:32 2016 (r296221) @@ -1 +1 @@ -4.0.4-0-g91010a9e2ebfc84b1ac1ed7fdde3bfed4f65f180 +4.1.0-1-g994da4232621dd1210fcf39bdf0d6454cefda473 Modified: head/contrib/jemalloc/doc/jemalloc.3 ============================================================================== --- head/contrib/jemalloc/doc/jemalloc.3 Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/doc/jemalloc.3 Mon Feb 29 19:10:32 2016 (r296221) @@ -2,12 +2,12 @@ .\" Title: JEMALLOC .\" Author: Jason Evans .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 10/24/2015 +.\" Date: 02/28/2016 .\" Manual: User Manual -.\" Source: jemalloc 4.0.4-0-g91010a9e2ebfc84b1ac1ed7fdde3bfed4f65f180 +.\" Source: jemalloc 4.1.0-1-g994da4232621dd1210fcf39bdf0d6454cefda473 .\" Language: English .\" -.TH "JEMALLOC" "3" "10/24/2015" "jemalloc 4.0.4-0-g91010a9e2ebf" "User Manual" +.TH "JEMALLOC" "3" "02/28/2016" "jemalloc 4.1.0-1-g994da4232621" "User Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -31,7 +31,7 @@ jemalloc \- general purpose memory allocation functions .SH "LIBRARY" .PP -This manual describes jemalloc 4\&.0\&.4\-0\-g91010a9e2ebfc84b1ac1ed7fdde3bfed4f65f180\&. More information can be found at the +This manual describes jemalloc 4\&.1\&.0\-1\-g994da4232621dd1210fcf39bdf0d6454cefda473\&. More information can be found at the \m[blue]\fBjemalloc website\fR\m[]\&\s-2\u[1]\d\s+2\&. .PP The following configuration options are enabled in libc\*(Aqs built\-in jemalloc: @@ -244,7 +244,7 @@ function allocates at least bytes of memory, and returns a pointer to the base address of the allocation\&. Behavior is undefined if \fIsize\fR is -\fB0\fR, or if request size overflows due to size class and/or alignment constraints\&. +\fB0\fR\&. .PP The \fBrallocx\fR\fB\fR @@ -255,7 +255,7 @@ to be at least bytes, and returns a pointer to the base address of the resulting allocation, which may or may not have moved from its original location\&. Behavior is undefined if \fIsize\fR is -\fB0\fR, or if request size overflows due to size class and/or alignment constraints\&. +\fB0\fR\&. .PP The \fBxallocx\fR\fB\fR @@ -301,10 +301,12 @@ function allocates no memory, but it per \fBmallocx\fR\fB\fR function, and returns the real size of the allocation that would result from the equivalent \fBmallocx\fR\fB\fR -function call\&. Behavior is undefined if +function call, or +\fB0\fR +if the inputs exceed the maximum supported size class and/or alignment\&. Behavior is undefined if \fIsize\fR is -\fB0\fR, or if request size overflows due to size class and/or alignment constraints\&. +\fB0\fR\&. .PP The \fBmallctl\fR\fB\fR @@ -404,7 +406,8 @@ should not be depended on, since such be .PP Once, when the first call is made to one of the memory allocation routines, the allocator initializes its internals based in part on various options that can be specified at compile\- or run\-time\&. .PP -The string pointed to by the global variable +The string specified via +\fB\-\-with\-malloc\-conf\fR, the string pointed to by the global variable \fImalloc_conf\fR, the \(lqname\(rq of the file referenced by the symbolic link named /etc/malloc\&.conf, and the value of the environment variable \fBMALLOC_CONF\fR, will be interpreted, in that order, from left to right as options\&. Note that @@ -414,8 +417,10 @@ may be read before is entered, so the declaration of \fImalloc_conf\fR should specify an initializer that contains the final value to be read by jemalloc\&. +\fB\-\-with\-malloc\-conf\fR +and \fImalloc_conf\fR -is a compile\-time setting, whereas +are compile\-time mechanisms, whereas /etc/malloc\&.conf and \fBMALLOC_CONF\fR @@ -451,11 +456,7 @@ In addition to multiple arenas, unless \fB\-\-disable\-tcache\fR is specified during configuration, this allocator supports thread\-specific caching for small and large objects, in order to make it possible to completely avoid synchronization for most allocation requests\&. Such caching allows very fast allocation in the common case, but it increases memory usage and fragmentation, since a bounded number of objects can remain allocated in each thread cache\&. .PP -Memory is conceptually broken into equal\-sized chunks, where the chunk size is a power of two that is greater than the page size\&. Chunks are always aligned to multiples of the chunk size\&. This alignment makes it possible to find metadata for user objects very quickly\&. -.PP -User objects are broken into three categories according to size: small, large, and huge\&. Small and large objects are managed entirely by arenas; huge objects are additionally aggregated in a single data structure that is shared by all threads\&. Huge objects are typically used by applications infrequently enough that this single data structure is not a scalability issue\&. -.PP -Each chunk that is managed by an arena tracks its contents as runs of contiguous pages (unused, backing a set of small objects, or backing one large object)\&. The combination of chunk alignment and chunk page maps makes it possible to determine all metadata regarding small and large allocations in constant time\&. +Memory is conceptually broken into equal\-sized chunks, where the chunk size is a power of two that is greater than the page size\&. Chunks are always aligned to multiples of the chunk size\&. This alignment makes it possible to find metadata for user objects very quickly\&. User objects are broken into three categories according to size: small, large, and huge\&. Multiple small and large objects can reside within a single chunk, whereas huge objects each have one or more chunks backing them\&. Each chunk that contains small and/or large objects tracks its contents as runs of contiguous pages (unused, backing a set of small objects, or backing one large object)\&. The combination of chunk alignment and chunk page maps makes it possible to determine all metadata regarding small and large allocations in constant time\&. .PP Small objects are managed in groups by page runs\&. Each run maintains a bitmap to track which regions are in use\&. Allocation requests that are no more than half the quantum (8 or 16, depending on architecture) are rounded up to the nearest power of two that is at least sizeof(\fBdouble\fR)\&. All other object size classes are multiples of the quantum, spaced such that there are four size classes for each doubling in size, which limits internal fragmentation to approximately 20% for all but the smallest size classes\&. Small size classes are smaller than four times the page size, large size classes are smaller than the chunk size (see the @@ -703,6 +704,13 @@ was specified during build configuration was specified during build configuration\&. .RE .PP +"config\&.malloc_conf" (\fBconst char *\fR) r\- +.RS 4 +Embedded configure\-time\-specified run\-time options string, empty unless +\fB\-\-with\-malloc\-conf\fR +was specified during build configuration\&. +.RE +.PP "config\&.munmap" (\fBbool\fR) r\- .RS 4 \fB\-\-enable\-munmap\fR @@ -788,11 +796,20 @@ is supported by the operating system; \( Virtual memory chunk size (log base 2)\&. If a chunk size outside the supported size range is specified, the size is silently clipped to the minimum/maximum supported size\&. The default chunk size is 2 MiB (2^21)\&. .RE .PP -"opt\&.narenas" (\fBsize_t\fR) r\- +"opt\&.narenas" (\fBunsigned\fR) r\- .RS 4 Maximum number of arenas to use for automatic multiplexing of threads and arenas\&. The default is four times the number of CPUs, or one if there is a single CPU\&. .RE .PP +"opt\&.purge" (\fBconst char *\fR) r\- +.RS 4 +Purge mode is \(lqratio\(rq (default) or \(lqdecay\(rq\&. See +"opt\&.lg_dirty_mult" +for details of the ratio mode\&. See +"opt\&.decay_time" +for details of the decay mode\&. +.RE +.PP "opt\&.lg_dirty_mult" (\fBssize_t\fR) r\- .RS 4 Per\-arena minimum ratio (log base 2) of active to dirty pages\&. Some dirty unused pages may be allowed to accumulate, within the limit set by the ratio (or one chunk worth of dirty pages, whichever is greater), before informing the kernel about some of those pages via @@ -804,6 +821,15 @@ and for related dynamic control options\&. .RE .PP +"opt\&.decay_time" (\fBssize_t\fR) r\- +.RS 4 +Approximate time in seconds from the creation of a set of unused dirty pages until an equivalent set of unused dirty pages is purged and/or reused\&. The pages are incrementally purged according to a sigmoidal decay curve that starts and ends with zero purge rate\&. A decay time of 0 causes all unused dirty pages to be purged immediately upon creation\&. A decay time of \-1 disables purging\&. The default decay time is 10 seconds\&. See +"arenas\&.decay_time" +and +"arena\&.\&.decay_time" +for related dynamic control options\&. +.RE +.PP "opt\&.stats_print" (\fBbool\fR) r\- .RS 4 Enable/disable statistics printing at exit\&. If enabled, the @@ -914,7 +940,9 @@ option for final profile dumping\&. Prof command, which is based on the \fBpprof\fR that is developed as part of the -\m[blue]\fBgperftools package\fR\m[]\&\s-2\u[3]\d\s+2\&. +\m[blue]\fBgperftools package\fR\m[]\&\s-2\u[3]\d\s+2\&. See +HEAP PROFILE FORMAT +for heap profile format documentation\&. .RE .PP "opt\&.prof_prefix" (\fBconst char *\fR) r\- [\fB\-\-enable\-prof\fR] @@ -1063,7 +1091,7 @@ macro to explicitly use the specified ca "tcache\&.flush" (\fBunsigned\fR) \-w [\fB\-\-enable\-tcache\fR] .RS 4 Flush the specified thread\-specific cache (tcache)\&. The same considerations apply to this interface as to -"thread\&.tcache\&.flush", except that the tcache will never be automatically be discarded\&. +"thread\&.tcache\&.flush", except that the tcache will never be automatically discarded\&. .RE .PP "tcache\&.destroy" (\fBunsigned\fR) \-w [\fB\-\-enable\-tcache\fR] @@ -1073,10 +1101,18 @@ Flush the specified thread\-specific cac .PP "arena\&.\&.purge" (\fBvoid\fR) \-\- .RS 4 -Purge unused dirty pages for arena , or for all arenas if equals +Purge all unused dirty pages for arena , or for all arenas if equals "arenas\&.narenas"\&. .RE .PP +"arena\&.\&.decay" (\fBvoid\fR) \-\- +.RS 4 +Trigger decay\-based purging of unused dirty pages for arena , or for all arenas if equals +"arenas\&.narenas"\&. The proportion of unused dirty pages to be purged depends on the current time; see +"opt\&.decay_time" +for details\&. +.RE +.PP "arena\&.\&.dss" (\fBconst char *\fR) rw .RS 4 Set the precedence of dss allocation as related to mmap allocation for arena , or for all arenas if equals @@ -1092,6 +1128,13 @@ Current per\-arena minimum ratio (log ba for additional information\&. .RE .PP +"arena\&.\&.decay_time" (\fBssize_t\fR) rw +.RS 4 +Current per\-arena approximate time in seconds from the creation of a set of unused dirty pages until an equivalent set of unused dirty pages is purged and/or reused\&. Each time this interface is set, all currently unused dirty pages are considered to have fully decayed, which causes immediate purging of all unused dirty pages unless the decay time is set to \-1 (i\&.e\&. purging disabled)\&. See +"opt\&.decay_time" +for additional information\&. +.RE +.PP "arena\&.\&.chunk_hooks" (\fBchunk_hooks_t\fR) rw .RS 4 Get or set the chunk management hook functions for arena \&. The functions must be capable of operating on all extant chunks associated with arena , usually by passing unknown chunks to the replaced functions\&. In practice, it is feasible to control allocation for arenas created via @@ -1332,6 +1375,15 @@ during arena creation\&. See for additional information\&. .RE .PP +"arenas\&.decay_time" (\fBssize_t\fR) rw +.RS 4 +Current default per\-arena approximate time in seconds from the creation of a set of unused dirty pages until an equivalent set of unused dirty pages is purged and/or reused, used to initialize +"arena\&.\&.decay_time" +during arena creation\&. See +"opt\&.decay_time" +for additional information\&. +.RE +.PP "arenas\&.quantum" (\fBsize_t\fR) r\- .RS 4 Quantum size\&. @@ -1511,6 +1563,13 @@ Minimum ratio (log base 2) of active to for details\&. .RE .PP +"stats\&.arenas\&.\&.decay_time" (\fBssize_t\fR) r\- +.RS 4 +Approximate time in seconds from the creation of a set of unused dirty pages until an equivalent set of unused dirty pages is purged and/or reused\&. See +"opt\&.decay_time" +for details\&. +.RE +.PP "stats\&.arenas\&.\&.nthreads" (\fBunsigned\fR) r\- .RS 4 Number of threads currently assigned to arena\&. @@ -1712,6 +1771,71 @@ Cumulative number of allocation requests .RS 4 Current number of huge allocations for this size class\&. .RE +.SH "HEAP PROFILE FORMAT" +.PP +Although the heap profiling functionality was originally designed to be compatible with the +\fBpprof\fR +command that is developed as part of the +\m[blue]\fBgperftools package\fR\m[]\&\s-2\u[3]\d\s+2, the addition of per thread heap profiling functionality required a different heap profile format\&. The +\fBjeprof\fR +command is derived from +\fBpprof\fR, with enhancements to support the heap profile format described here\&. +.PP +In the following hypothetical heap profile, +\fB[\&.\&.\&.]\fR +indicates elision for the sake of compactness\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +heap_v2/524288 + t*: 28106: 56637512 [0: 0] + [\&.\&.\&.] + t3: 352: 16777344 [0: 0] + [\&.\&.\&.] + t99: 17754: 29341640 [0: 0] + [\&.\&.\&.] +@ 0x5f86da8 0x5f5a1dc [\&.\&.\&.] 0x29e4d4e 0xa200316 0xabb2988 [\&.\&.\&.] + t*: 13: 6688 [0: 0] + t3: 12: 6496 [0: ] + t99: 1: 192 [0: 0] +[\&.\&.\&.] + +MAPPED_LIBRARIES: +[\&.\&.\&.] +.fi +.if n \{\ +.RE +.\} +.sp +The following matches the above heap profile, but most tokens are replaced with +\fB\fR +to indicate descriptions of the corresponding fields\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +/ + : : [: ] + [\&.\&.\&.] + : : [: ] + [\&.\&.\&.] + : : [: ] + [\&.\&.\&.] +@ [\&.\&.\&.] [\&.\&.\&.] + : : [: ] + : : [: ] + : : [: ] +[\&.\&.\&.] + +MAPPED_LIBRARIES: +/maps> +.fi +.if n \{\ +.RE +.\} .SH "DEBUGGING MALLOC PROBLEMS" .PP When debugging, it is a good idea to configure/build jemalloc with the Modified: head/contrib/jemalloc/include/jemalloc/internal/arena.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena.h Mon Feb 29 18:58:26 2016 (r296220) +++ head/contrib/jemalloc/include/jemalloc/internal/arena.h Mon Feb 29 19:10:32 2016 (r296221) @@ -23,6 +23,18 @@ */ #define LG_DIRTY_MULT_DEFAULT 3 +typedef enum { + purge_mode_ratio = 0, + purge_mode_decay = 1, + + purge_mode_limit = 2 +} purge_mode_t; +#define PURGE_DEFAULT purge_mode_ratio +/* Default decay time in seconds. */ +#define DECAY_TIME_DEFAULT 10 +/* Number of event ticks between time checks. */ +#define DECAY_NTICKS_PER_UPDATE 1000 + typedef struct arena_runs_dirty_link_s arena_runs_dirty_link_t; typedef struct arena_run_s arena_run_t; typedef struct arena_chunk_map_bits_s arena_chunk_map_bits_t; @@ -31,6 +43,7 @@ typedef struct arena_chunk_s arena_chunk typedef struct arena_bin_info_s arena_bin_info_t; typedef struct arena_bin_s arena_bin_t; typedef struct arena_s arena_t; +typedef struct arena_tdata_s arena_tdata_t; #endif /* JEMALLOC_H_TYPES */ /******************************************************************************/ @@ -154,15 +167,14 @@ struct arena_chunk_map_misc_s { /* Profile counters, used for large object runs. */ union { - void *prof_tctx_pun; - prof_tctx_t *prof_tctx; + void *prof_tctx_pun; + prof_tctx_t *prof_tctx; }; /* Small region run metadata. */ arena_run_t run; }; }; -typedef rb_tree(arena_chunk_map_misc_t) arena_avail_tree_t; typedef rb_tree(arena_chunk_map_misc_t) arena_run_tree_t; #endif /* JEMALLOC_ARENA_STRUCTS_A */ @@ -220,28 +232,28 @@ struct arena_chunk_s { */ struct arena_bin_info_s { /* Size of regions in a run for this bin's size class. */ - size_t reg_size; + size_t reg_size; /* Redzone size. */ - size_t redzone_size; + size_t redzone_size; /* Interval between regions (reg_size + (redzone_size << 1)). */ - size_t reg_interval; + size_t reg_interval; /* Total size of a run for this bin's size class. */ - size_t run_size; + size_t run_size; /* Total number of regions in a run for this bin's size class. */ - uint32_t nregs; + uint32_t nregs; /* * Metadata used to manipulate bitmaps for runs associated with this * bin. */ - bitmap_info_t bitmap_info; + bitmap_info_t bitmap_info; /* Offset of first region in a run for this bin's size class. */ - uint32_t reg0_offset; + uint32_t reg0_offset; }; struct arena_bin_s { @@ -251,13 +263,13 @@ struct arena_bin_s { * which may be acquired while holding one or more bin locks, but not * vise versa. */ - malloc_mutex_t lock; + malloc_mutex_t lock; /* * Current run being used to service allocations of this bin's size * class. */ - arena_run_t *runcur; + arena_run_t *runcur; /* * Tree of non-full runs. This tree is used when looking for an @@ -266,10 +278,10 @@ struct arena_bin_s { * objects packed well, and it can also help reduce the number of * almost-empty chunks. */ - arena_run_tree_t runs; + arena_run_tree_t runs; /* Bin statistics. */ - malloc_bin_stats_t stats; + malloc_bin_stats_t stats; }; struct arena_s { @@ -278,14 +290,14 @@ struct arena_s { /* * Number of threads currently assigned to this arena. This field is - * protected by arenas_lock. + * synchronized via atomic operations. */ unsigned nthreads; /* * There are three classes of arena operations from a locking * perspective: - * 1) Thread assignment (modifies nthreads) is protected by arenas_lock. + * 1) Thread assignment (modifies nthreads) is synchronized via atomics. * 2) Bin-related operations are protected by bin locks. * 3) Chunk- and run-related operations are protected by this mutex. */ @@ -324,7 +336,7 @@ struct arena_s { /* Minimum ratio (log base 2) of nactive:ndirty. */ ssize_t lg_dirty_mult; - /* True if a thread is currently executing arena_purge(). */ + /* True if a thread is currently executing arena_purge_to_limit(). */ bool purging; /* Number of pages in active runs and huge regions. */ @@ -339,12 +351,6 @@ struct arena_s { size_t ndirty; /* - * Size/address-ordered tree of this arena's available runs. The tree - * is used for first-best-fit run allocation. - */ - arena_avail_tree_t runs_avail; - - /* * Unused dirty memory this arena manages. Dirty memory is conceptually * tracked as an arbitrarily interleaved LRU of dirty runs and cached * chunks, but the list linkage is actually semi-duplicated in order to @@ -375,6 +381,53 @@ struct arena_s { arena_runs_dirty_link_t runs_dirty; extent_node_t chunks_cache; + /* + * Approximate time in seconds from the creation of a set of unused + * dirty pages until an equivalent set of unused dirty pages is purged + * and/or reused. + */ + ssize_t decay_time; + /* decay_time / SMOOTHSTEP_NSTEPS. */ + nstime_t decay_interval; + /* + * Time at which the current decay interval logically started. We do + * not actually advance to a new epoch until sometime after it starts + * because of scheduling and computation delays, and it is even possible + * to completely skip epochs. In all cases, during epoch advancement we + * merge all relevant activity into the most recently recorded epoch. + */ + nstime_t decay_epoch; + /* decay_deadline randomness generator. */ + uint64_t decay_jitter_state; + /* + * Deadline for current epoch. This is the sum of decay_interval and + * per epoch jitter which is a uniform random variable in + * [0..decay_interval). Epochs always advance by precise multiples of + * decay_interval, but we randomize the deadline to reduce the + * likelihood of arenas purging in lockstep. + */ + nstime_t decay_deadline; + /* + * Number of dirty pages at beginning of current epoch. During epoch + * advancement we use the delta between decay_ndirty and ndirty to + * determine how many dirty pages, if any, were generated, and record + * the result in decay_backlog. + */ + size_t decay_ndirty; + /* + * Memoized result of arena_decay_backlog_npages_limit() corresponding + * to the current contents of decay_backlog, i.e. the limit on how many + * pages are allowed to exist for the decay epochs. + */ + size_t decay_backlog_npages_limit; + /* + * Trailing log of how many unused dirty pages were generated during + * each of the past SMOOTHSTEP_NSTEPS decay epochs, where the last + * element is the most recent epoch. Corresponding epoch times are + * relative to decay_epoch. + */ + size_t decay_backlog[SMOOTHSTEP_NSTEPS]; + /* Extant huge allocations. */ ql_head(extent_node_t) huge; /* Synchronizes all huge allocation/update/deallocation. */ @@ -402,6 +455,17 @@ struct arena_s { /* bins is used to store trees of free regions. */ arena_bin_t bins[NBINS]; + + /* + * Quantized address-ordered trees of this arena's available runs. The + * trees are used for first-best-fit run allocation. + */ + arena_run_tree_t runs_avail[1]; /* Dynamically sized. */ +}; + +/* Used in conjunction with tsd for fast arena-related context lookup. */ +struct arena_tdata_s { + ticker_t decay_ticker; }; #endif /* JEMALLOC_ARENA_STRUCTS_B */ @@ -417,7 +481,10 @@ static const size_t large_pad = #endif ; +extern purge_mode_t opt_purge; +extern const char *purge_mode_names[]; extern ssize_t opt_lg_dirty_mult; +extern ssize_t opt_decay_time; extern arena_bin_info_t arena_bin_info[NBINS]; @@ -425,9 +492,15 @@ extern size_t map_bias; /* Number of ar extern size_t map_misc_offset; extern size_t arena_maxrun; /* Max run size for arenas. */ extern size_t large_maxclass; /* Max large size class. */ +extern size_t run_quantize_max; /* Max run_quantize_*() input. */ extern unsigned nlclasses; /* Number of large size classes. */ extern unsigned nhclasses; /* Number of huge size classes. */ +#ifdef JEMALLOC_JET +typedef size_t (run_quantize_t)(size_t); +extern run_quantize_t *run_quantize_floor; +extern run_quantize_t *run_quantize_ceil; +#endif void arena_chunk_cache_maybe_insert(arena_t *arena, extent_node_t *node, bool cache); void arena_chunk_cache_maybe_remove(arena_t *arena, extent_node_t *node, @@ -445,9 +518,11 @@ bool arena_chunk_ralloc_huge_expand(aren size_t oldsize, size_t usize, bool *zero); ssize_t arena_lg_dirty_mult_get(arena_t *arena); bool arena_lg_dirty_mult_set(arena_t *arena, ssize_t lg_dirty_mult); +ssize_t arena_decay_time_get(arena_t *arena); +bool arena_decay_time_set(arena_t *arena, ssize_t decay_time); void arena_maybe_purge(arena_t *arena); -void arena_purge_all(arena_t *arena); -void arena_tcache_fill_small(arena_t *arena, tcache_bin_t *tbin, +void arena_purge(arena_t *arena, bool all); +void arena_tcache_fill_small(tsd_t *tsd, arena_t *arena, tcache_bin_t *tbin, szind_t binind, uint64_t prof_accumbytes); void arena_alloc_junk_small(void *ptr, arena_bin_info_t *bin_info, bool zero); @@ -461,8 +536,9 @@ extern arena_dalloc_junk_small_t *arena_ void arena_dalloc_junk_small(void *ptr, arena_bin_info_t *bin_info); #endif void arena_quarantine_junk_small(void *ptr, size_t usize); -void *arena_malloc_small(arena_t *arena, size_t size, bool zero); -void *arena_malloc_large(arena_t *arena, size_t size, bool zero); +void *arena_malloc_large(tsd_t *tsd, arena_t *arena, szind_t ind, bool zero); +void *arena_malloc_hard(tsd_t *tsd, arena_t *arena, size_t size, szind_t ind, + bool zero, tcache_t *tcache); void *arena_palloc(tsd_t *tsd, arena_t *arena, size_t usize, size_t alignment, bool zero, tcache_t *tcache); void arena_prof_promoted(const void *ptr, size_t size); @@ -470,8 +546,8 @@ void arena_dalloc_bin_junked_locked(aren void *ptr, arena_chunk_map_bits_t *bitselm); void arena_dalloc_bin(arena_t *arena, arena_chunk_t *chunk, void *ptr, size_t pageind, arena_chunk_map_bits_t *bitselm); -void arena_dalloc_small(arena_t *arena, arena_chunk_t *chunk, void *ptr, - size_t pageind); +void arena_dalloc_small(tsd_t *tsd, arena_t *arena, arena_chunk_t *chunk, + void *ptr, size_t pageind); #ifdef JEMALLOC_JET typedef void (arena_dalloc_junk_large_t)(void *, size_t); extern arena_dalloc_junk_large_t *arena_dalloc_junk_large; @@ -480,12 +556,13 @@ void arena_dalloc_junk_large(void *ptr, #endif void arena_dalloc_large_junked_locked(arena_t *arena, arena_chunk_t *chunk, void *ptr); -void arena_dalloc_large(arena_t *arena, arena_chunk_t *chunk, void *ptr); +void arena_dalloc_large(tsd_t *tsd, arena_t *arena, arena_chunk_t *chunk, + void *ptr); #ifdef JEMALLOC_JET typedef void (arena_ralloc_junk_large_t)(void *, size_t, size_t); extern arena_ralloc_junk_large_t *arena_ralloc_junk_large; #endif -bool arena_ralloc_no_move(void *ptr, size_t oldsize, size_t size, +bool arena_ralloc_no_move(tsd_t *tsd, void *ptr, size_t oldsize, size_t size, size_t extra, bool zero); void *arena_ralloc(tsd_t *tsd, arena_t *arena, void *ptr, size_t oldsize, size_t size, size_t alignment, bool zero, tcache_t *tcache); @@ -493,10 +570,18 @@ dss_prec_t arena_dss_prec_get(arena_t *a bool arena_dss_prec_set(arena_t *arena, dss_prec_t dss_prec); ssize_t arena_lg_dirty_mult_default_get(void); bool arena_lg_dirty_mult_default_set(ssize_t lg_dirty_mult); -void arena_stats_merge(arena_t *arena, const char **dss, - ssize_t *lg_dirty_mult, size_t *nactive, size_t *ndirty, - arena_stats_t *astats, malloc_bin_stats_t *bstats, +ssize_t arena_decay_time_default_get(void); +bool arena_decay_time_default_set(ssize_t decay_time); +void arena_basic_stats_merge(arena_t *arena, unsigned *nthreads, + const char **dss, ssize_t *lg_dirty_mult, ssize_t *decay_time, + size_t *nactive, size_t *ndirty); +void arena_stats_merge(arena_t *arena, unsigned *nthreads, const char **dss, + ssize_t *lg_dirty_mult, ssize_t *decay_time, size_t *nactive, + size_t *ndirty, arena_stats_t *astats, malloc_bin_stats_t *bstats, malloc_large_stats_t *lstats, malloc_huge_stats_t *hstats); +unsigned arena_nthreads_get(arena_t *arena); +void arena_nthreads_inc(arena_t *arena); +void arena_nthreads_dec(arena_t *arena); arena_t *arena_new(unsigned ind); bool arena_boot(void); void arena_prefork(arena_t *arena); @@ -512,7 +597,7 @@ arena_chunk_map_bits_t *arena_bitselm_ge size_t pageind); arena_chunk_map_misc_t *arena_miscelm_get(arena_chunk_t *chunk, size_t pageind); -size_t arena_miscelm_to_pageind(arena_chunk_map_misc_t *miscelm); +size_t arena_miscelm_to_pageind(const arena_chunk_map_misc_t *miscelm); void *arena_miscelm_to_rpages(arena_chunk_map_misc_t *miscelm); arena_chunk_map_misc_t *arena_rd_to_miscelm(arena_runs_dirty_link_t *rd); arena_chunk_map_misc_t *arena_run_to_miscelm(arena_run_t *run); @@ -552,17 +637,19 @@ bool arena_prof_accum_locked(arena_t *ar bool arena_prof_accum(arena_t *arena, uint64_t accumbytes); szind_t arena_ptr_small_binind_get(const void *ptr, size_t mapbits); szind_t arena_bin_index(arena_t *arena, arena_bin_t *bin); -unsigned arena_run_regind(arena_run_t *run, arena_bin_info_t *bin_info, +size_t arena_run_regind(arena_run_t *run, arena_bin_info_t *bin_info, const void *ptr); prof_tctx_t *arena_prof_tctx_get(const void *ptr); void arena_prof_tctx_set(const void *ptr, size_t usize, prof_tctx_t *tctx); void arena_prof_tctx_reset(const void *ptr, size_t usize, const void *old_ptr, prof_tctx_t *old_tctx); -void *arena_malloc(tsd_t *tsd, arena_t *arena, size_t size, bool zero, - tcache_t *tcache); +void arena_decay_ticks(tsd_t *tsd, arena_t *arena, unsigned nticks); +void arena_decay_tick(tsd_t *tsd, arena_t *arena); +void *arena_malloc(tsd_t *tsd, arena_t *arena, size_t size, szind_t ind, + bool zero, tcache_t *tcache, bool slow_path); arena_t *arena_aalloc(const void *ptr); size_t arena_salloc(const void *ptr, bool demote); -void arena_dalloc(tsd_t *tsd, void *ptr, tcache_t *tcache); +void arena_dalloc(tsd_t *tsd, void *ptr, tcache_t *tcache, bool slow_path); void arena_sdalloc(tsd_t *tsd, void *ptr, size_t size, tcache_t *tcache); #endif @@ -590,7 +677,7 @@ arena_miscelm_get(arena_chunk_t *chunk, } JEMALLOC_ALWAYS_INLINE size_t -arena_miscelm_to_pageind(arena_chunk_map_misc_t *miscelm) +arena_miscelm_to_pageind(const arena_chunk_map_misc_t *miscelm) { arena_chunk_t *chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(miscelm); size_t pageind = ((uintptr_t)miscelm - ((uintptr_t)chunk + @@ -970,7 +1057,7 @@ arena_ptr_small_binind_get(const void *p run = &miscelm->run; run_binind = run->binind; bin = &arena->bins[run_binind]; - actual_binind = bin - arena->bins; + actual_binind = (szind_t)(bin - arena->bins); assert(run_binind == actual_binind); bin_info = &arena_bin_info[actual_binind]; rpages = arena_miscelm_to_rpages(miscelm); @@ -987,16 +1074,15 @@ arena_ptr_small_binind_get(const void *p *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Mon Feb 29 20:21:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB1EBAB9484; Mon, 29 Feb 2016 20:21:55 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 7B66F1CA3; Mon, 29 Feb 2016 20:21:55 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKLseM078877; Mon, 29 Feb 2016 20:21:54 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKLs4d078876; Mon, 29 Feb 2016 20:21:54 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292021.u1TKLs4d078876@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:21:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296226 - head/etc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:21:55 -0000 Author: avos Date: Mon Feb 29 20:21:54 2016 New Revision: 296226 URL: https://svnweb.freebsd.org/changeset/base/296226 Log: network.subr: avoid unnecessary reinitialization Do not start interface when wpa_supplicant or hostapd is used; they will restart it anyway Tested with: * Intel 3945BG, STA mode (wpa_supplicant) * RTL8188EU, HOSTAP mode (hostapd) Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5486 Modified: head/etc/network.subr Modified: head/etc/network.subr ============================================================================== --- head/etc/network.subr Mon Feb 29 19:41:40 2016 (r296225) +++ head/etc/network.subr Mon Feb 29 20:21:54 2016 (r296226) @@ -214,16 +214,14 @@ ifconfig_up() ifalias $1 link alias ifalias $1 ether alias - if [ ${_cfg} -eq 0 ]; then - ${IFCONFIG_CMD} $1 up - fi - if wpaif $1; then /etc/rc.d/wpa_supplicant start $1 _cfg=0 # XXX: not sure this should count elif hostapif $1; then /etc/rc.d/hostapd start $1 _cfg=0 + elif [ ${_cfg} -eq 0 ]; then + ${IFCONFIG_CMD} $1 up fi if dhcpif $1; then From owner-svn-src-head@freebsd.org Mon Feb 29 20:36:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E897BAB98CD; Mon, 29 Feb 2016 20:36:01 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AA6EF382; Mon, 29 Feb 2016 20:36:01 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKa02Y083903; Mon, 29 Feb 2016 20:36:00 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKa0O9083902; Mon, 29 Feb 2016 20:36:00 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292036.u1TKa0O9083902@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:36:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296227 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:36:02 -0000 Author: avos Date: Mon Feb 29 20:36:00 2016 New Revision: 296227 URL: https://svnweb.freebsd.org/changeset/base/296227 Log: net80211: reduce code duplication between ieee80211_swscan_cancel_scan() and ieee80211_swscan_cancel_anyscan() Tested with: * Intel 3945BG, STA mode. * RTL8188EU, HOSTAP mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5133 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:21:54 2016 (r296226) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:36:00 2016 (r296227) @@ -426,21 +426,18 @@ ieee80211_swscan_bg_scan(const struct ie return (ic->ic_flags & IEEE80211_F_SCAN); } -/* - * Cancel any scan currently going on for the specified vap. - */ static void -ieee80211_swscan_cancel_scan(struct ieee80211vap *vap) +cancel_scan(struct ieee80211vap *vap, int any, const char *func) { struct ieee80211com *ic = vap->iv_ic; struct ieee80211_scan_state *ss = ic->ic_scan; IEEE80211_LOCK(ic); if ((ic->ic_flags & IEEE80211_F_SCAN) && - ss->ss_vap == vap && + (any || ss->ss_vap == vap) && (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) == 0) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: cancel %s scan\n", __func__, + "%s: cancel %s scan\n", func, ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"); @@ -452,7 +449,7 @@ ieee80211_swscan_cancel_scan(struct ieee } else { IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called; F_SCAN=%d, vap=%s, CANCEL=%d\n", - __func__, + func, !! (ic->ic_flags & IEEE80211_F_SCAN), (ss->ss_vap == vap ? "match" : "nomatch"), !! (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL)); @@ -461,36 +458,21 @@ ieee80211_swscan_cancel_scan(struct ieee } /* + * Cancel any scan currently going on for the specified vap. + */ +static void +ieee80211_swscan_cancel_scan(struct ieee80211vap *vap) +{ + cancel_scan(vap, 0, __func__); +} + +/* * Cancel any scan currently going on. */ static void ieee80211_swscan_cancel_anyscan(struct ieee80211vap *vap) { - struct ieee80211com *ic = vap->iv_ic; - struct ieee80211_scan_state *ss = ic->ic_scan; - - IEEE80211_LOCK(ic); - if ((ic->ic_flags & IEEE80211_F_SCAN) && - (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) == 0) { - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: cancel %s scan\n", __func__, - ss->ss_flags & IEEE80211_SCAN_ACTIVE ? - "active" : "passive"); - - /* clear bg scan NOPICK and mark cancel request */ - ss->ss_flags &= ~IEEE80211_SCAN_NOPICK; - SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_CANCEL; - /* wake up the scan task */ - scan_signal(ss); - } else { - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: called; F_SCAN=%d, vap=%s, CANCEL=%d\n", - __func__, - !! (ic->ic_flags & IEEE80211_F_SCAN), - (ss->ss_vap == vap ? "match" : "nomatch"), - !! (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL)); - } - IEEE80211_UNLOCK(ic); + cancel_scan(vap, 1, __func__); } /* From owner-svn-src-head@freebsd.org Mon Feb 29 20:39:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1617AB9981; Mon, 29 Feb 2016 20:39:05 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B15B3775; Mon, 29 Feb 2016 20:39:05 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKd4SH084052; Mon, 29 Feb 2016 20:39:04 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKd4b6084051; Mon, 29 Feb 2016 20:39:04 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292039.u1TKd4b6084051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:39:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296228 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:39:06 -0000 Author: avos Date: Mon Feb 29 20:39:04 2016 New Revision: 296228 URL: https://svnweb.freebsd.org/changeset/base/296228 Log: net80211: reduce code verbosity in scan_task() (ieee80211_scan_sw.c) Add local *ss_priv variable (no functional changes) Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5139 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:36:00 2016 (r296227) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:39:04 2016 (r296228) @@ -593,6 +593,7 @@ scan_task(void *arg, int pending) { #define ISCAN_REP (ISCAN_MINDWELL | ISCAN_DISCARD) struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg; + struct scan_state *ss_priv = SCAN_PRIVATE(ss); struct ieee80211vap *vap = ss->ss_vap; struct ieee80211com *ic = ss->ss_ic; struct ieee80211_channel *chan; @@ -601,7 +602,7 @@ scan_task(void *arg, int pending) IEEE80211_LOCK(ic); if (vap == NULL || (ic->ic_flags & IEEE80211_F_SCAN) == 0 || - (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { + (ss_priv->ss_iflags & ISCAN_ABORT)) { /* Cancelled before we started */ goto done; } @@ -623,14 +624,14 @@ scan_task(void *arg, int pending) * to go out. * XXX Should use M_TXCB mechanism to eliminate this. */ - cv_timedwait(&SCAN_PRIVATE(ss)->ss_scan_cv, + cv_timedwait(&ss_priv->ss_scan_cv, IEEE80211_LOCK_OBJ(ic), msecs_to_ticks(1)); - if (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT) + if (ss_priv->ss_iflags & ISCAN_ABORT) goto done; } } - scanend = ticks + SCAN_PRIVATE(ss)->ss_duration; + scanend = ticks + ss_priv->ss_duration; /* XXX scan state can change! Re-validate scan state! */ @@ -641,7 +642,7 @@ scan_task(void *arg, int pending) for (;;) { scandone = (ss->ss_next >= ss->ss_last) || - (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) != 0; + (ss_priv->ss_iflags & ISCAN_CANCEL) != 0; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: loop start; scandone=%d\n", @@ -649,7 +650,7 @@ scan_task(void *arg, int pending) scandone); if (scandone || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || - (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT) || + (ss_priv->ss_iflags & ISCAN_ABORT) || time_after(ticks + ss->ss_mindwell, scanend)) break; @@ -706,21 +707,21 @@ scan_task(void *arg, int pending) /* XXX scan state can change! Re-validate scan state! */ - SCAN_PRIVATE(ss)->ss_chanmindwell = ticks + ss->ss_mindwell; + ss_priv->ss_chanmindwell = ticks + ss->ss_mindwell; /* clear mindwell lock and initial channel change flush */ - SCAN_PRIVATE(ss)->ss_iflags &= ~ISCAN_REP; + ss_priv->ss_iflags &= ~ISCAN_REP; - if ((SCAN_PRIVATE(ss)->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT))) + if (ss_priv->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT)) continue; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: waiting\n", __func__); /* Wait to be signalled to scan the next channel */ - cv_wait(&SCAN_PRIVATE(ss)->ss_scan_cv, IEEE80211_LOCK_OBJ(ic)); + cv_wait(&ss_priv->ss_scan_cv, IEEE80211_LOCK_OBJ(ic)); } IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: out\n", __func__); - if (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT) + if (ss_priv->ss_iflags & ISCAN_ABORT) goto done; IEEE80211_UNLOCK(ic); @@ -732,8 +733,7 @@ scan_task(void *arg, int pending) * Since a cancellation may have occured during one of the * driver calls (whilst unlocked), update scandone. */ - if (scandone == 0 && - ((SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) != 0)) { + if (scandone == 0 && (ss_priv->ss_iflags & ISCAN_CANCEL) != 0) { /* XXX printf? */ if_printf(vap->iv_ifp, "%s: OOPS! scan cancelled during driver call (1)!\n", @@ -758,7 +758,7 @@ scan_task(void *arg, int pending) IEEE80211_LOCK(ic); } /* clear internal flags and any indication of a pick */ - SCAN_PRIVATE(ss)->ss_iflags &= ~ISCAN_REP; + ss_priv->ss_iflags &= ~ISCAN_REP; ss->ss_flags &= ~IEEE80211_SCAN_GOTPICK; /* @@ -768,7 +768,7 @@ scan_task(void *arg, int pending) * notify the driver to end the scan above to avoid having * rx frames alter the scan candidate list. */ - if ((SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) == 0 && + if ((ss_priv->ss_iflags & ISCAN_CANCEL) == 0 && !ss->ss_ops->scan_end(ss, vap) && (ss->ss_flags & IEEE80211_SCAN_ONCE) == 0 && time_before(ticks + ss->ss_mindwell, scanend)) { @@ -784,7 +784,7 @@ scan_task(void *arg, int pending) vap->iv_stats.is_scan_passive++; ss->ss_ops->scan_restart(ss, vap); /* XXX? */ - ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); + ieee80211_runtask(ic, &ss_priv->ss_scan_task); IEEE80211_UNLOCK(ic); return; } @@ -802,8 +802,7 @@ scan_task(void *arg, int pending) * Since a cancellation may have occured during one of the * driver calls (whilst unlocked), update scandone. */ - if (scandone == 0 && - ((SCAN_PRIVATE(ss)->ss_iflags & ISCAN_CANCEL) != 0)) { + if (scandone == 0 && (ss_priv->ss_iflags & ISCAN_CANCEL) != 0) { /* XXX printf? */ if_printf(vap->iv_ifp, "%s: OOPS! scan cancelled during driver call (2)!\n", @@ -835,7 +834,7 @@ done: ic->ic_flags_ext &= ~IEEE80211_FEXT_BGSCAN; } } - SCAN_PRIVATE(ss)->ss_iflags &= ~(ISCAN_CANCEL|ISCAN_ABORT); + ss_priv->ss_iflags &= ~(ISCAN_CANCEL|ISCAN_ABORT); ss->ss_flags &= ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); IEEE80211_UNLOCK(ic); #undef ISCAN_REP From owner-svn-src-head@freebsd.org Mon Feb 29 20:41:11 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1947AB9A1D; Mon, 29 Feb 2016 20:41:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 62EAEA14; Mon, 29 Feb 2016 20:41:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKfAxi086120; Mon, 29 Feb 2016 20:41:10 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKfAWp086119; Mon, 29 Feb 2016 20:41:10 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292041.u1TKfAWp086119@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:41:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296229 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:41:11 -0000 Author: avos Date: Mon Feb 29 20:41:10 2016 New Revision: 296229 URL: https://svnweb.freebsd.org/changeset/base/296229 Log: net80211: utilize ss_scanend variable from scan_state structure Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5140 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:39:04 2016 (r296228) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:41:10 2016 (r296229) @@ -597,7 +597,7 @@ scan_task(void *arg, int pending) struct ieee80211vap *vap = ss->ss_vap; struct ieee80211com *ic = ss->ss_ic; struct ieee80211_channel *chan; - unsigned long maxdwell, scanend; + unsigned long maxdwell; int scandone = 0; IEEE80211_LOCK(ic); @@ -631,7 +631,7 @@ scan_task(void *arg, int pending) } } - scanend = ticks + ss_priv->ss_duration; + ss_priv->ss_scanend = ticks + ss_priv->ss_duration; /* XXX scan state can change! Re-validate scan state! */ @@ -651,7 +651,7 @@ scan_task(void *arg, int pending) if (scandone || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || (ss_priv->ss_iflags & ISCAN_ABORT) || - time_after(ticks + ss->ss_mindwell, scanend)) + time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) break; chan = ss->ss_chans[ss->ss_next++]; @@ -659,8 +659,8 @@ scan_task(void *arg, int pending) /* * Watch for truncation due to the scan end time. */ - if (time_after(ticks + ss->ss_maxdwell, scanend)) - maxdwell = scanend - ticks; + if (time_after(ticks + ss->ss_maxdwell, ss_priv->ss_scanend)) + maxdwell = ss_priv->ss_scanend - ticks; else maxdwell = ss->ss_maxdwell; @@ -771,12 +771,12 @@ scan_task(void *arg, int pending) if ((ss_priv->ss_iflags & ISCAN_CANCEL) == 0 && !ss->ss_ops->scan_end(ss, vap) && (ss->ss_flags & IEEE80211_SCAN_ONCE) == 0 && - time_before(ticks + ss->ss_mindwell, scanend)) { + time_before(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: done, restart " "[ticks %u, dwell min %lu scanend %lu]\n", __func__, - ticks, ss->ss_mindwell, scanend); + ticks, ss->ss_mindwell, ss_priv->ss_scanend); ss->ss_next = 0; /* reset to begining */ if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) vap->iv_stats.is_scan_active++; @@ -796,7 +796,7 @@ scan_task(void *arg, int pending) IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: %s, [ticks %u, dwell min %lu scanend %lu]\n", __func__, scandone ? "done" : "stopped", - ticks, ss->ss_mindwell, scanend); + ticks, ss->ss_mindwell, ss_priv->ss_scanend); /* * Since a cancellation may have occured during one of the @@ -835,6 +835,7 @@ done: } } ss_priv->ss_iflags &= ~(ISCAN_CANCEL|ISCAN_ABORT); + ss_priv->ss_scanend = 0; ss->ss_flags &= ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); IEEE80211_UNLOCK(ic); #undef ISCAN_REP From owner-svn-src-head@freebsd.org Mon Feb 29 20:45:00 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5E78AB9BB3; Mon, 29 Feb 2016 20:45:00 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 87D9CD0D; Mon, 29 Feb 2016 20:45:00 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKixY8086903; Mon, 29 Feb 2016 20:44:59 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKixRr086902; Mon, 29 Feb 2016 20:44:59 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292044.u1TKixRr086902@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:44:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296230 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:45:01 -0000 Author: avos Date: Mon Feb 29 20:44:59 2016 New Revision: 296230 URL: https://svnweb.freebsd.org/changeset/base/296230 Log: net80211: split scan_task() (#1) (replace 'done' label with scan_done() function) Tested with: * Intel 3945BG, STA mode. * RTL8188EU, IBSS mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5142 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:41:10 2016 (r296229) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:44:59 2016 (r296230) @@ -100,6 +100,7 @@ static void scan_curchan(struct ieee8021 static void scan_mindwell(struct ieee80211_scan_state *); static void scan_signal(void *); static void scan_task(void *, int); +static void scan_done(struct ieee80211_scan_state *, int); MALLOC_DEFINE(M_80211_SCAN, "80211scan", "802.11 scan state"); @@ -604,14 +605,15 @@ scan_task(void *arg, int pending) if (vap == NULL || (ic->ic_flags & IEEE80211_F_SCAN) == 0 || (ss_priv->ss_iflags & ISCAN_ABORT)) { /* Cancelled before we started */ - goto done; + scan_done(ss, 0); + return; } if (ss->ss_next == ss->ss_last) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: no channels to scan\n", __func__); - scandone = 1; - goto done; + scan_done(ss, 1); + return; } if (vap->iv_opmode == IEEE80211_M_STA && @@ -626,8 +628,10 @@ scan_task(void *arg, int pending) */ cv_timedwait(&ss_priv->ss_scan_cv, IEEE80211_LOCK_OBJ(ic), msecs_to_ticks(1)); - if (ss_priv->ss_iflags & ISCAN_ABORT) - goto done; + if (ss_priv->ss_iflags & ISCAN_ABORT) { + scan_done(ss, 0); + return; + } } } @@ -721,8 +725,10 @@ scan_task(void *arg, int pending) IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: out\n", __func__); - if (ss_priv->ss_iflags & ISCAN_ABORT) - goto done; + if (ss_priv->ss_iflags & ISCAN_ABORT) { + scan_done(ss, scandone); + return; + } IEEE80211_UNLOCK(ic); ic->ic_scan_end(ic); /* notify driver */ @@ -810,14 +816,26 @@ scan_task(void *arg, int pending) scandone = 1; } + scan_done(ss, scandone); +} + +static void +scan_done(struct ieee80211_scan_state *ss, int scandone) +{ + struct scan_state *ss_priv = SCAN_PRIVATE(ss); + struct ieee80211com *ic = ss->ss_ic; + struct ieee80211vap *vap = ss->ss_vap; + + IEEE80211_LOCK_ASSERT(ic); + /* * Clear the SCAN bit first in case frames are * pending on the station power save queue. If * we defer this then the dispatch of the frames * may generate a request to cancel scanning. */ -done: ic->ic_flags &= ~IEEE80211_F_SCAN; + /* * Drop out of power save mode when a scan has * completed. If this scan was prematurely terminated From owner-svn-src-head@freebsd.org Mon Feb 29 20:47:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6EE5AB9C5C; Mon, 29 Feb 2016 20:47:08 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8FA5AE92; Mon, 29 Feb 2016 20:47:08 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKl7ge087018; Mon, 29 Feb 2016 20:47:07 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKl7Hb087017; Mon, 29 Feb 2016 20:47:07 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292047.u1TKl7Hb087017@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:47:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296231 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:47:08 -0000 Author: avos Date: Mon Feb 29 20:47:07 2016 New Revision: 296231 URL: https://svnweb.freebsd.org/changeset/base/296231 Log: net80211: split scan_task() (#2) (add scan_end() function) Tested with: * Intel 3945BG, STA mode. * RTL8188EU, IBSS mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5143 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:44:59 2016 (r296230) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:47:07 2016 (r296231) @@ -100,6 +100,7 @@ static void scan_curchan(struct ieee8021 static void scan_mindwell(struct ieee80211_scan_state *); static void scan_signal(void *); static void scan_task(void *, int); +static void scan_end(struct ieee80211_scan_state *, int); static void scan_done(struct ieee80211_scan_state *, int); MALLOC_DEFINE(M_80211_SCAN, "80211scan", "802.11 scan state"); @@ -655,8 +656,10 @@ scan_task(void *arg, int pending) if (scandone || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || (ss_priv->ss_iflags & ISCAN_ABORT) || - time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) - break; + time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { + scan_end(ss, scandone); + return; + } chan = ss->ss_chans[ss->ss_next++]; @@ -722,6 +725,16 @@ scan_task(void *arg, int pending) /* Wait to be signalled to scan the next channel */ cv_wait(&ss_priv->ss_scan_cv, IEEE80211_LOCK_OBJ(ic)); } +} + +static void +scan_end(struct ieee80211_scan_state *ss, int scandone) +{ + struct scan_state *ss_priv = SCAN_PRIVATE(ss); + struct ieee80211vap *vap = ss->ss_vap; + struct ieee80211com *ic = ss->ss_ic; + + IEEE80211_LOCK_ASSERT(ic); IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: out\n", __func__); From owner-svn-src-head@freebsd.org Mon Feb 29 20:53:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54345AB9F91; Mon, 29 Feb 2016 20:53:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2BDAD134D; Mon, 29 Feb 2016 20:53:29 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKrScA089858; Mon, 29 Feb 2016 20:53:28 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKrSL7089857; Mon, 29 Feb 2016 20:53:28 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292053.u1TKrSL7089857@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:53:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296232 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:53:29 -0000 Author: avos Date: Mon Feb 29 20:53:27 2016 New Revision: 296232 URL: https://svnweb.freebsd.org/changeset/base/296232 Log: net80211: split scan_task() (#3) (into scan_start() and scan_curchan_task() functions) (This part should fix the problem, described in https://lists.freebsd.org/pipermail/freebsd-wireless/2016-January/006420.html) - Rename ss_scan_task into ss_scan_start (better describes it's current purpose) - Utilize taskqueue_*_timeout() functions instead of current mechanism: * reschedule scan_curchan_task() via taskqueue_enqueue_timeout() for every 'maxdwell' msecs (will replace infinite loop + sleeping for 'maxdwell' period via cv_wait()); * rerun the task immediately when an external event occurs (instead of waking it up via cv_signal()) Also, use mtx_sleep() to wait for null frame transmission (allows to drop conditional variable). Tested with: * Intel 3945BG, STA mode; * RTL8188EU, STA mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5145 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:47:07 2016 (r296231) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:53:27 2016 (r296232) @@ -59,12 +59,12 @@ struct scan_state { #define ISCAN_DISCARD 0x0002 /* discard rx'd frames */ #define ISCAN_CANCEL 0x0004 /* cancel current scan */ #define ISCAN_ABORT 0x0008 /* end the scan immediately */ +#define ISCAN_RUNNING 0x0010 /* scan was started */ unsigned long ss_chanmindwell; /* min dwell on curchan */ unsigned long ss_scanend; /* time scan must stop */ u_int ss_duration; /* duration for next scan */ - struct task ss_scan_task; /* scan execution */ - struct cv ss_scan_cv; /* scan signal */ - struct callout ss_scan_timer; /* scan timer */ + struct task ss_scan_start; /* scan start */ + struct timeout_task ss_scan_curchan; /* scan execution */ }; #define SCAN_PRIVATE(ss) ((struct scan_state *) ss) @@ -99,7 +99,8 @@ struct scan_state { static void scan_curchan(struct ieee80211_scan_state *, unsigned long); static void scan_mindwell(struct ieee80211_scan_state *); static void scan_signal(void *); -static void scan_task(void *, int); +static void scan_start(void *, int); +static void scan_curchan_task(void *, int); static void scan_end(struct ieee80211_scan_state *, int); static void scan_done(struct ieee80211_scan_state *, int); @@ -115,8 +116,9 @@ ieee80211_swscan_detach(struct ieee80211 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_ABORT; scan_signal(ss); IEEE80211_UNLOCK(ic); - ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); - callout_drain(&SCAN_PRIVATE(ss)->ss_scan_timer); + ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); + taskqueue_drain_timeout(ic->ic_tq, + &SCAN_PRIVATE(ss)->ss_scan_curchan); KASSERT((ic->ic_flags & IEEE80211_F_SCAN) == 0, ("scan still running")); @@ -238,7 +240,7 @@ ieee80211_swscan_start_scan_locked(const ic->ic_flags |= IEEE80211_F_SCAN; /* Start scan task */ - ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); + ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); } return 1; } else { @@ -413,7 +415,8 @@ ieee80211_swscan_bg_scan(const struct ie ss->ss_maxdwell = duration; ic->ic_flags |= IEEE80211_F_SCAN; ic->ic_flags_ext |= IEEE80211_FEXT_BGSCAN; - ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); + ieee80211_runtask(ic, + &SCAN_PRIVATE(ss)->ss_scan_start); } else { /* XXX msg+stat */ } @@ -560,8 +563,8 @@ scan_curchan(struct ieee80211_scan_state IEEE80211_LOCK(vap->iv_ic); if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) ieee80211_probe_curchan(vap, 0); - callout_reset(&SCAN_PRIVATE(ss)->ss_scan_timer, - maxdwell, scan_signal, ss); + taskqueue_enqueue_timeout(vap->iv_ic->ic_tq, + &SCAN_PRIVATE(ss)->ss_scan_curchan, maxdwell); IEEE80211_UNLOCK(vap->iv_ic); } @@ -569,9 +572,16 @@ static void scan_signal(void *arg) { struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg; + struct scan_state *ss_priv = SCAN_PRIVATE(ss); + struct timeout_task *scan_task = &ss_priv->ss_scan_curchan; + struct ieee80211com *ic = ss->ss_ic; + + IEEE80211_LOCK_ASSERT(ic); - IEEE80211_LOCK_ASSERT(ss->ss_ic); - cv_signal(&SCAN_PRIVATE(ss)->ss_scan_cv); + if (ss_priv->ss_iflags & ISCAN_RUNNING) { + if (taskqueue_cancel_timeout(ic->ic_tq, scan_task, NULL) == 0) + taskqueue_enqueue_timeout(ic->ic_tq, scan_task, 0); + } } /* @@ -591,16 +601,13 @@ scan_mindwell(struct ieee80211_scan_stat } static void -scan_task(void *arg, int pending) +scan_start(void *arg, int pending) { #define ISCAN_REP (ISCAN_MINDWELL | ISCAN_DISCARD) struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg; struct scan_state *ss_priv = SCAN_PRIVATE(ss); struct ieee80211vap *vap = ss->ss_vap; struct ieee80211com *ic = ss->ss_ic; - struct ieee80211_channel *chan; - unsigned long maxdwell; - int scandone = 0; IEEE80211_LOCK(ic); if (vap == NULL || (ic->ic_flags & IEEE80211_F_SCAN) == 0 || @@ -627,8 +634,8 @@ scan_task(void *arg, int pending) * to go out. * XXX Should use M_TXCB mechanism to eliminate this. */ - cv_timedwait(&ss_priv->ss_scan_cv, - IEEE80211_LOCK_OBJ(ic), msecs_to_ticks(1)); + mtx_sleep(vap, IEEE80211_LOCK_OBJ(ic), PCATCH, + "sta_ps", msecs_to_ticks(1)); if (ss_priv->ss_iflags & ISCAN_ABORT) { scan_done(ss, 0); return; @@ -641,90 +648,102 @@ scan_task(void *arg, int pending) /* XXX scan state can change! Re-validate scan state! */ IEEE80211_UNLOCK(ic); + ic->ic_scan_start(ic); /* notify driver */ + + scan_curchan_task(ss, 0); +} + +static void +scan_curchan_task(void *arg, int pending) +{ + struct ieee80211_scan_state *ss = arg; + struct scan_state *ss_priv = SCAN_PRIVATE(ss); + struct ieee80211vap *vap = ss->ss_vap; + struct ieee80211com *ic = ss->ss_ic; + struct ieee80211_channel *chan; + unsigned long maxdwell; + int scandone; + IEEE80211_LOCK(ic); +end: + scandone = (ss->ss_next >= ss->ss_last) || + (ss_priv->ss_iflags & ISCAN_CANCEL) != 0; - for (;;) { + IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, + "%s: loop start; scandone=%d\n", + __func__, + scandone); - scandone = (ss->ss_next >= ss->ss_last) || - (ss_priv->ss_iflags & ISCAN_CANCEL) != 0; + if (scandone || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || + (ss_priv->ss_iflags & ISCAN_ABORT) || + time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { + ss_priv->ss_iflags &= ~ISCAN_RUNNING; + scan_end(ss, scandone); + return; + } else + ss_priv->ss_iflags |= ISCAN_RUNNING; - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: loop start; scandone=%d\n", - __func__, - scandone); + chan = ss->ss_chans[ss->ss_next++]; - if (scandone || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || - (ss_priv->ss_iflags & ISCAN_ABORT) || - time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { - scan_end(ss, scandone); - return; - } + /* + * Watch for truncation due to the scan end time. + */ + if (time_after(ticks + ss->ss_maxdwell, ss_priv->ss_scanend)) + maxdwell = ss_priv->ss_scanend - ticks; + else + maxdwell = ss->ss_maxdwell; - chan = ss->ss_chans[ss->ss_next++]; + IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, + "%s: chan %3d%c -> %3d%c [%s, dwell min %lums max %lums]\n", + __func__, + ieee80211_chan2ieee(ic, ic->ic_curchan), + ieee80211_channel_type_char(ic->ic_curchan), + ieee80211_chan2ieee(ic, chan), + ieee80211_channel_type_char(chan), + (ss->ss_flags & IEEE80211_SCAN_ACTIVE) && + (chan->ic_flags & IEEE80211_CHAN_PASSIVE) == 0 ? + "active" : "passive", + ticks_to_msecs(ss->ss_mindwell), ticks_to_msecs(maxdwell)); - /* - * Watch for truncation due to the scan end time. - */ - if (time_after(ticks + ss->ss_maxdwell, ss_priv->ss_scanend)) - maxdwell = ss_priv->ss_scanend - ticks; - else - maxdwell = ss->ss_maxdwell; + /* + * Potentially change channel and phy mode. + */ + ic->ic_curchan = chan; + ic->ic_rt = ieee80211_get_ratetable(chan); + IEEE80211_UNLOCK(ic); + /* + * Perform the channel change and scan unlocked so the driver + * may sleep. Once set_channel returns the hardware has + * completed the channel change. + */ + ic->ic_set_channel(ic); + ieee80211_radiotap_chan_change(ic); - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: chan %3d%c -> %3d%c [%s, dwell min %lums max %lums]\n", - __func__, - ieee80211_chan2ieee(ic, ic->ic_curchan), - ieee80211_channel_type_char(ic->ic_curchan), - ieee80211_chan2ieee(ic, chan), - ieee80211_channel_type_char(chan), - (ss->ss_flags & IEEE80211_SCAN_ACTIVE) && - (chan->ic_flags & IEEE80211_CHAN_PASSIVE) == 0 ? - "active" : "passive", - ticks_to_msecs(ss->ss_mindwell), ticks_to_msecs(maxdwell)); + /* + * Scan curchan. Drivers for "intelligent hardware" + * override ic_scan_curchan to tell the device to do + * the work. Otherwise we manage the work ourselves; + * sending a probe request (as needed), and arming the + * timeout to switch channels after maxdwell ticks. + * + * scan_curchan should only pause for the time required to + * prepare/initiate the hardware for the scan (if at all). + */ + ic->ic_scan_curchan(ss, maxdwell); + IEEE80211_LOCK(ic); - /* - * Potentially change channel and phy mode. - */ - ic->ic_curchan = chan; - ic->ic_rt = ieee80211_get_ratetable(chan); - IEEE80211_UNLOCK(ic); - /* - * Perform the channel change and scan unlocked so the driver - * may sleep. Once set_channel returns the hardware has - * completed the channel change. - */ - ic->ic_set_channel(ic); - ieee80211_radiotap_chan_change(ic); + /* XXX scan state can change! Re-validate scan state! */ - /* - * Scan curchan. Drivers for "intelligent hardware" - * override ic_scan_curchan to tell the device to do - * the work. Otherwise we manage the work outselves; - * sending a probe request (as needed), and arming the - * timeout to switch channels after maxdwell ticks. - * - * scan_curchan should only pause for the time required to - * prepare/initiate the hardware for the scan (if at all), the - * below condvar is used to sleep for the channels dwell time - * and allows it to be signalled for abort. - */ - ic->ic_scan_curchan(ss, maxdwell); - IEEE80211_LOCK(ic); + ss_priv->ss_chanmindwell = ticks + ss->ss_mindwell; + /* clear mindwell lock and initial channel change flush */ + ss_priv->ss_iflags &= ~ISCAN_REP; - /* XXX scan state can change! Re-validate scan state! */ + if (ss_priv->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT)) + goto end; - ss_priv->ss_chanmindwell = ticks + ss->ss_mindwell; - /* clear mindwell lock and initial channel change flush */ - ss_priv->ss_iflags &= ~ISCAN_REP; - - if (ss_priv->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT)) - continue; - - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: waiting\n", __func__); - /* Wait to be signalled to scan the next channel */ - cv_wait(&ss_priv->ss_scan_cv, IEEE80211_LOCK_OBJ(ic)); - } + IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: waiting\n", __func__); + IEEE80211_UNLOCK(ic); } static void @@ -803,7 +822,7 @@ scan_end(struct ieee80211_scan_state *ss vap->iv_stats.is_scan_passive++; ss->ss_ops->scan_restart(ss, vap); /* XXX? */ - ieee80211_runtask(ic, &ss_priv->ss_scan_task); + ieee80211_runtask(ic, &ss_priv->ss_scan_start); IEEE80211_UNLOCK(ic); return; } @@ -960,9 +979,9 @@ ieee80211_swscan_attach(struct ieee80211 ic->ic_scan = NULL; return; } - callout_init_mtx(&ss->ss_scan_timer, IEEE80211_LOCK_OBJ(ic), 0); - cv_init(&ss->ss_scan_cv, "scan"); - TASK_INIT(&ss->ss_scan_task, 0, scan_task, ss); + TASK_INIT(&ss->ss_scan_start, 0, scan_start, ss); + TIMEOUT_TASK_INIT(ic->ic_tq, &ss->ss_scan_curchan, 0, + scan_curchan_task, ss); ic->ic_scan = &ss->base; ss->base.ss_ic = ic; From owner-svn-src-head@freebsd.org Mon Feb 29 20:56:04 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3413AAB70E2; Mon, 29 Feb 2016 20:56:04 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 DFFDF15CB; Mon, 29 Feb 2016 20:56:03 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TKu2la090001; Mon, 29 Feb 2016 20:56:02 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TKu22m089999; Mon, 29 Feb 2016 20:56:02 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292056.u1TKu22m089999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 20:56:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296233 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 20:56:04 -0000 Author: avos Date: Mon Feb 29 20:56:02 2016 New Revision: 296233 URL: https://svnweb.freebsd.org/changeset/base/296233 Log: net80211: wakeup scan_start() task when null data frame was actually transmitted - Use M_TXCB mechanism to report about null data frame transmission. - Increase timeout from 1 to 10 ms (the previous one may be not enough for non-empty queue). Tested with: * Intel 3945BG, STA mode. * RTL8188CUS, STA mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5147 Modified: head/sys/net80211/ieee80211_output.c head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Mon Feb 29 20:53:27 2016 (r296232) +++ head/sys/net80211/ieee80211_output.c Mon Feb 29 20:56:02 2016 (r296233) @@ -849,6 +849,15 @@ ieee80211_mgmt_output(struct ieee80211_n return (ret); } +static void +ieee80211_nulldata_transmitted(struct ieee80211_node *ni, void *arg, + int status) +{ + struct ieee80211vap *vap = ni->ni_vap; + + wakeup(vap); +} + /* * Send a null data frame to the specified node. If the station * is setup for QoS then a QoS Null Data frame is constructed. @@ -937,6 +946,11 @@ ieee80211_send_nulldata(struct ieee80211 vap->iv_opmode != IEEE80211_M_HOSTAP) wh->i_fc[1] |= IEEE80211_FC1_PWR_MGT; } + if ((ic->ic_flags & IEEE80211_F_SCAN) && + (ni->ni_flags & IEEE80211_NODE_PWR_MGT)) { + ieee80211_add_callback(m, ieee80211_nulldata_transmitted, + NULL); + } m->m_len = m->m_pkthdr.len = hdrlen; m->m_flags |= M_ENCAP; /* mark encapsulated */ Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:53:27 2016 (r296232) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:56:02 2016 (r296233) @@ -629,13 +629,9 @@ scan_start(void *arg, int pending) if ((vap->iv_bss->ni_flags & IEEE80211_NODE_PWR_MGT) == 0) { /* Enable station power save mode */ vap->iv_sta_ps(vap, 1); - /* - * Use an 1ms delay so the null data frame has a chance - * to go out. - * XXX Should use M_TXCB mechanism to eliminate this. - */ + /* Wait until null data frame will be ACK'ed */ mtx_sleep(vap, IEEE80211_LOCK_OBJ(ic), PCATCH, - "sta_ps", msecs_to_ticks(1)); + "sta_ps", msecs_to_ticks(10)); if (ss_priv->ss_iflags & ISCAN_ABORT) { scan_done(ss, 0); return; From owner-svn-src-head@freebsd.org Mon Feb 29 21:00:11 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 606F0AB7288; Mon, 29 Feb 2016 21:00:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3C45E18B9; Mon, 29 Feb 2016 21:00:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TL0ATG090204; Mon, 29 Feb 2016 21:00:10 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TL0Ap4090203; Mon, 29 Feb 2016 21:00:10 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292100.u1TL0Ap4090203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 21:00:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296234 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:00:11 -0000 Author: avos Date: Mon Feb 29 21:00:10 2016 New Revision: 296234 URL: https://svnweb.freebsd.org/changeset/base/296234 Log: net80211: refactor scan_signal() - Pass scan state and additional internal flags as a parameters. - Add locked version. Tested with: * Intel 3945BG, STA mode. * RTL8188EU, STA mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5148 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 20:56:02 2016 (r296233) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 21:00:10 2016 (r296234) @@ -98,7 +98,8 @@ struct scan_state { static void scan_curchan(struct ieee80211_scan_state *, unsigned long); static void scan_mindwell(struct ieee80211_scan_state *); -static void scan_signal(void *); +static void scan_signal(struct ieee80211_scan_state *, int); +static void scan_signal_locked(struct ieee80211_scan_state *, int); static void scan_start(void *, int); static void scan_curchan_task(void *, int); static void scan_end(struct ieee80211_scan_state *, int); @@ -112,10 +113,7 @@ ieee80211_swscan_detach(struct ieee80211 struct ieee80211_scan_state *ss = ic->ic_scan; if (ss != NULL) { - IEEE80211_LOCK(ic); - SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_ABORT; - scan_signal(ss); - IEEE80211_UNLOCK(ic); + scan_signal(ss, ISCAN_ABORT); ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); taskqueue_drain_timeout(ic->ic_tq, &SCAN_PRIVATE(ss)->ss_scan_curchan); @@ -157,10 +155,8 @@ ieee80211_swscan_vdetach(struct ieee8021 IEEE80211_LOCK_ASSERT(ic); ss = ic->ic_scan; if (ss != NULL && ss->ss_vap == vap) { - if (ic->ic_flags & IEEE80211_F_SCAN) { - SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_ABORT; - scan_signal(ss); - } + if (ic->ic_flags & IEEE80211_F_SCAN) + scan_signal_locked(ss, ISCAN_ABORT); } } @@ -446,11 +442,10 @@ cancel_scan(struct ieee80211vap *vap, in ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"); - /* clear bg scan NOPICK and mark cancel request */ + /* clear bg scan NOPICK */ ss->ss_flags &= ~IEEE80211_SCAN_NOPICK; - SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_CANCEL; - /* wake up the scan task */ - scan_signal(ss); + /* mark cancel request and wake up the scan task */ + scan_signal_locked(ss, ISCAN_CANCEL); } else { IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called; F_SCAN=%d, vap=%s, CANCEL=%d\n", @@ -487,15 +482,12 @@ ieee80211_swscan_cancel_anyscan(struct i static void ieee80211_swscan_scan_next(struct ieee80211vap *vap) { - struct ieee80211com *ic = vap->iv_ic; - struct ieee80211_scan_state *ss = ic->ic_scan; + struct ieee80211_scan_state *ss = vap->iv_ic->ic_scan; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called\n", __func__); /* wake up the scan task */ - IEEE80211_LOCK(ic); - scan_signal(ss); - IEEE80211_UNLOCK(ic); + scan_signal(ss, 0); } /* @@ -511,7 +503,7 @@ ieee80211_swscan_scan_done(struct ieee80 IEEE80211_LOCK_ASSERT(ic); ss = ic->ic_scan; - scan_signal(ss); + scan_signal_locked(ss, 0); } /* @@ -569,15 +561,27 @@ scan_curchan(struct ieee80211_scan_state } static void -scan_signal(void *arg) +scan_signal(struct ieee80211_scan_state *ss, int iflags) +{ + struct ieee80211com *ic = ss->ss_ic; + + IEEE80211_UNLOCK_ASSERT(ic); + + IEEE80211_LOCK(ic); + scan_signal_locked(ss, iflags); + IEEE80211_UNLOCK(ic); +} + +static void +scan_signal_locked(struct ieee80211_scan_state *ss, int iflags) { - struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg; struct scan_state *ss_priv = SCAN_PRIVATE(ss); struct timeout_task *scan_task = &ss_priv->ss_scan_curchan; struct ieee80211com *ic = ss->ss_ic; IEEE80211_LOCK_ASSERT(ic); + ss_priv->ss_iflags |= iflags; if (ss_priv->ss_iflags & ISCAN_RUNNING) { if (taskqueue_cancel_timeout(ic->ic_tq, scan_task, NULL) == 0) taskqueue_enqueue_timeout(ic->ic_tq, scan_task, 0); @@ -591,13 +595,11 @@ scan_signal(void *arg) static void scan_mindwell(struct ieee80211_scan_state *ss) { - struct ieee80211com *ic = ss->ss_ic; + struct ieee80211vap *vap = ss->ss_vap; - IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: called\n", __func__); + IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called\n", __func__); - IEEE80211_LOCK(ic); - scan_signal(ss); - IEEE80211_UNLOCK(ic); + scan_signal(ss, 0); } static void From owner-svn-src-head@freebsd.org Mon Feb 29 21:03:56 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06228AB7560; Mon, 29 Feb 2016 21:03:56 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D4B761E05; Mon, 29 Feb 2016 21:03:55 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TL3sYA092935; Mon, 29 Feb 2016 21:03:54 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TL3sjW092934; Mon, 29 Feb 2016 21:03:54 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292103.u1TL3sjW092934@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 21:03:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296235 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:03:56 -0000 Author: avos Date: Mon Feb 29 21:03:54 2016 New Revision: 296235 URL: https://svnweb.freebsd.org/changeset/base/296235 Log: net80211: cleanup ieee80211_scan_sw.c Make it look more consistently. No functional changes. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5152 Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 21:00:10 2016 (r296234) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 21:03:54 2016 (r296235) @@ -54,17 +54,18 @@ __FBSDID("$FreeBSD$"); struct scan_state { struct ieee80211_scan_state base; /* public state */ - u_int ss_iflags; /* flags used internally */ -#define ISCAN_MINDWELL 0x0001 /* min dwell time reached */ -#define ISCAN_DISCARD 0x0002 /* discard rx'd frames */ -#define ISCAN_CANCEL 0x0004 /* cancel current scan */ -#define ISCAN_ABORT 0x0008 /* end the scan immediately */ -#define ISCAN_RUNNING 0x0010 /* scan was started */ - unsigned long ss_chanmindwell; /* min dwell on curchan */ - unsigned long ss_scanend; /* time scan must stop */ - u_int ss_duration; /* duration for next scan */ - struct task ss_scan_start; /* scan start */ - struct timeout_task ss_scan_curchan; /* scan execution */ + u_int ss_iflags; /* flags used internally */ +#define ISCAN_MINDWELL 0x0001 /* min dwell time reached */ +#define ISCAN_DISCARD 0x0002 /* discard rx'd frames */ +#define ISCAN_CANCEL 0x0004 /* cancel current scan */ +#define ISCAN_ABORT 0x0008 /* end the scan immediately */ +#define ISCAN_RUNNING 0x0010 /* scan was started */ + + unsigned long ss_chanmindwell; /* min dwell on curchan */ + unsigned long ss_scanend; /* time scan must stop */ + u_int ss_duration; /* duration for next scan */ + struct task ss_scan_start; /* scan start */ + struct timeout_task ss_scan_curchan; /* scan execution */ }; #define SCAN_PRIVATE(ss) ((struct scan_state *) ss) @@ -150,14 +151,13 @@ static void ieee80211_swscan_vdetach(struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; - struct ieee80211_scan_state *ss; + struct ieee80211_scan_state *ss = ic->ic_scan; IEEE80211_LOCK_ASSERT(ic); - ss = ic->ic_scan; - if (ss != NULL && ss->ss_vap == vap) { - if (ic->ic_flags & IEEE80211_F_SCAN) - scan_signal_locked(ss, ISCAN_ABORT); - } + + if (ss != NULL && ss->ss_vap == vap && + (ic->ic_flags & IEEE80211_F_SCAN)) + scan_signal_locked(ss, ISCAN_ABORT); } static void @@ -498,11 +498,10 @@ static void ieee80211_swscan_scan_done(struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; - struct ieee80211_scan_state *ss; + struct ieee80211_scan_state *ss = ic->ic_scan; IEEE80211_LOCK_ASSERT(ic); - ss = ic->ic_scan; scan_signal_locked(ss, 0); } @@ -547,17 +546,18 @@ static void scan_curchan(struct ieee80211_scan_state *ss, unsigned long maxdwell) { struct ieee80211vap *vap = ss->ss_vap; + struct ieee80211com *ic = ss->ss_ic; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: calling; maxdwell=%lu\n", __func__, maxdwell); - IEEE80211_LOCK(vap->iv_ic); + IEEE80211_LOCK(ic); if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) ieee80211_probe_curchan(vap, 0); - taskqueue_enqueue_timeout(vap->iv_ic->ic_tq, + taskqueue_enqueue_timeout(ic->ic_tq, &SCAN_PRIVATE(ss)->ss_scan_curchan, maxdwell); - IEEE80211_UNLOCK(vap->iv_ic); + IEEE80211_UNLOCK(ic); } static void From owner-svn-src-head@freebsd.org Mon Feb 29 21:04:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B8F7AB75A5; Mon, 29 Feb 2016 21:04:08 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 09C751F4C; Mon, 29 Feb 2016 21:04:07 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TL46su092987; Mon, 29 Feb 2016 21:04:06 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TL46I3092986; Mon, 29 Feb 2016 21:04:06 GMT (envelope-from np@FreeBSD.org) Message-Id: <201602292104.u1TL46I3092986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Mon, 29 Feb 2016 21:04:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296236 - head/tools/tools/cxgbetool X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:04:08 -0000 Author: np Date: Mon Feb 29 21:04:06 2016 New Revision: 296236 URL: https://svnweb.freebsd.org/changeset/base/296236 Log: Fix some whitespace nits in cxgbetool.c. No functional change. Modified: head/tools/tools/cxgbetool/cxgbetool.c Modified: head/tools/tools/cxgbetool/cxgbetool.c ============================================================================== --- head/tools/tools/cxgbetool/cxgbetool.c Mon Feb 29 21:03:54 2016 (r296235) +++ head/tools/tools/cxgbetool/cxgbetool.c Mon Feb 29 21:04:06 2016 (r296236) @@ -446,47 +446,47 @@ do_show_info_header(uint32_t mode) { uint32_t i; - printf ("%4s %8s", "Idx", "Hits"); + printf("%4s %8s", "Idx", "Hits"); for (i = T4_FILTER_FCoE; i <= T4_FILTER_IP_FRAGMENT; i <<= 1) { switch (mode & i) { case T4_FILTER_FCoE: - printf (" FCoE"); + printf(" FCoE"); break; case T4_FILTER_PORT: - printf (" Port"); + printf(" Port"); break; case T4_FILTER_VNIC: - printf (" vld:VNIC"); + printf(" vld:VNIC"); break; case T4_FILTER_VLAN: - printf (" vld:VLAN"); + printf(" vld:VLAN"); break; case T4_FILTER_IP_TOS: - printf (" TOS"); + printf(" TOS"); break; case T4_FILTER_IP_PROTO: - printf (" Prot"); + printf(" Prot"); break; case T4_FILTER_ETH_TYPE: - printf (" EthType"); + printf(" EthType"); break; case T4_FILTER_MAC_IDX: - printf (" MACIdx"); + printf(" MACIdx"); break; case T4_FILTER_MPS_HIT_TYPE: - printf (" MPS"); + printf(" MPS"); break; case T4_FILTER_IP_FRAGMENT: - printf (" Frag"); + printf(" Frag"); break; default: @@ -866,7 +866,7 @@ get_filter_mode(void) if (mode & T4_FILTER_IP_SADDR) printf("sip "); - + if (mode & T4_FILTER_IP_DADDR) printf("dip "); From owner-svn-src-head@freebsd.org Mon Feb 29 21:09:11 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63FB7AB7824; Mon, 29 Feb 2016 21:09:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2325235E; Mon, 29 Feb 2016 21:09:11 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TL9A7f093192; Mon, 29 Feb 2016 21:09:10 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TL9AL3093191; Mon, 29 Feb 2016 21:09:10 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292109.u1TL9AL3093191@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 21:09:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296237 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:09:11 -0000 Author: avos Date: Mon Feb 29 21:09:09 2016 New Revision: 296237 URL: https://svnweb.freebsd.org/changeset/base/296237 Log: net80211: fix scanning after D5145 (PR 197498 related) - In case, when we are doing -> INIT (FEXT_REINIT) -> state transition, cancel_scan() may be called in the first transition. Reenqueue second state transition, so things will be executed in order. - Discard any AUTH+ state transition request when INIT -> SCAN transition is not done. - Allow to track discarded state transitions via 'state' debugging category. Tested with: * RTL8188EU, HOSTAP mode. * RTL8188CUS, STA mode. * Intel 3945BG, IBSS and STA modes. PR: 197498 Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5482 Modified: head/sys/net80211/ieee80211_proto.c Modified: head/sys/net80211/ieee80211_proto.c ============================================================================== --- head/sys/net80211/ieee80211_proto.c Mon Feb 29 21:04:06 2016 (r296236) +++ head/sys/net80211/ieee80211_proto.c Mon Feb 29 21:09:09 2016 (r296237) @@ -1800,13 +1800,19 @@ ieee80211_newstate_cb(void *xvap, int np * We have been requested to drop back to the INIT before * proceeding to the new state. */ + /* Deny any state changes while we are here. */ + vap->iv_nstate = IEEE80211_S_INIT; IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, "%s: %s -> %s arg %d\n", __func__, ieee80211_state_name[vap->iv_state], - ieee80211_state_name[IEEE80211_S_INIT], arg); - vap->iv_newstate(vap, IEEE80211_S_INIT, arg); + ieee80211_state_name[vap->iv_nstate], arg); + vap->iv_newstate(vap, vap->iv_nstate, 0); IEEE80211_LOCK_ASSERT(ic); - vap->iv_flags_ext &= ~IEEE80211_FEXT_REINIT; + vap->iv_flags_ext &= ~(IEEE80211_FEXT_REINIT | + IEEE80211_FEXT_STATEWAIT); + /* enqueue new state transition after cancel_scan() task */ + ieee80211_new_state_locked(vap, nstate, arg); + goto done; } ostate = vap->iv_state; @@ -1917,11 +1923,22 @@ ieee80211_new_state_locked(struct ieee80 IEEE80211_LOCK_ASSERT(ic); if (vap->iv_flags_ext & IEEE80211_FEXT_STATEWAIT) { - if (vap->iv_nstate == IEEE80211_S_INIT) { + if (vap->iv_nstate == IEEE80211_S_INIT || + ((vap->iv_state == IEEE80211_S_INIT || + (vap->iv_flags_ext & IEEE80211_FEXT_REINIT)) && + vap->iv_nstate == IEEE80211_S_SCAN && + nstate > IEEE80211_S_SCAN)) { /* - * XXX The vap is being stopped, do no allow any other - * state changes until this is completed. + * XXX The vap is being stopped/started, + * do not allow any other state changes + * until this is completed. */ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, + "%s: %s -> %s (%s) transition discarded\n", + __func__, + ieee80211_state_name[vap->iv_state], + ieee80211_state_name[nstate], + ieee80211_state_name[vap->iv_nstate]); return -1; } else if (vap->iv_state != vap->iv_nstate) { #if 0 From owner-svn-src-head@freebsd.org Mon Feb 29 21:10:49 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06456AB7947; Mon, 29 Feb 2016 21:10:49 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CC2A6886; Mon, 29 Feb 2016 21:10:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TLAlB9093318; Mon, 29 Feb 2016 21:10:47 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TLAlKB093316; Mon, 29 Feb 2016 21:10:47 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201602292110.u1TLAlKB093316@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 29 Feb 2016 21:10:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296238 - in head: share/mk sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:10:49 -0000 Author: bdrewery Date: Mon Feb 29 21:10:47 2016 New Revision: 296238 URL: https://svnweb.freebsd.org/changeset/base/296238 Log: FAST_DEPEND: Prefer .OBJDIR depend files. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.dep.mk head/sys/conf/kern.post.mk Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Mon Feb 29 21:09:09 2016 (r296237) +++ head/share/mk/bsd.dep.mk Mon Feb 29 21:10:47 2016 (r296238) @@ -200,7 +200,7 @@ CFLAGS+= ${DEPEND_CFLAGS} .endif .if !defined(_SKIP_READ_DEPEND) .for __depend_obj in ${DEPENDFILES_OBJS} -.sinclude "${__depend_obj}" +.sinclude "${.OBJDIR}/${__depend_obj}" .endfor .endif # !defined(_SKIP_READ_DEPEND) .endif # !defined(_meta_filemon) Modified: head/sys/conf/kern.post.mk ============================================================================== --- head/sys/conf/kern.post.mk Mon Feb 29 21:09:09 2016 (r296237) +++ head/sys/conf/kern.post.mk Mon Feb 29 21:10:47 2016 (r296238) @@ -244,7 +244,7 @@ CFLAGS+= ${DEPEND_CFLAGS} .endif .if !defined(_SKIP_READ_DEPEND) .for __depend_obj in ${DEPENDFILES_OBJS} -.sinclude "${__depend_obj}" +.sinclude "${.OBJDIR}/${__depend_obj}" .endfor .endif # !defined(_SKIP_READ_DEPEND) .endif # !defined(_meta_filemon) From owner-svn-src-head@freebsd.org Mon Feb 29 21:17:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECB15AB7BA9; Mon, 29 Feb 2016 21:17:40 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B869BB92; Mon, 29 Feb 2016 21:17:40 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TLHda3096148; Mon, 29 Feb 2016 21:17:39 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TLHdYc096147; Mon, 29 Feb 2016 21:17:39 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201602292117.u1TLHdYc096147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 29 Feb 2016 21:17:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296239 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:17:41 -0000 Author: avos Date: Mon Feb 29 21:17:39 2016 New Revision: 296239 URL: https://svnweb.freebsd.org/changeset/base/296239 Log: net80211: do not enforce promiscuous mode for AP scan Drivers should set their own filters via ic_scan_start()/ic_scan_end() callbacks; and we don't need frames other than beacons or probe responses. (Note: this was a noop since r287197 due to promiscuous mode with bridge workaround) Tested with Intel 3945BG, RTL8188EU and WUSB54GC in HOSTAP mode. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5474 Modified: head/sys/net80211/ieee80211_scan_sta.c Modified: head/sys/net80211/ieee80211_scan_sta.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sta.c Mon Feb 29 21:10:47 2016 (r296238) +++ head/sys/net80211/ieee80211_scan_sta.c Mon Feb 29 21:17:39 2016 (r296239) @@ -1714,7 +1714,6 @@ ap_start(struct ieee80211_scan_state *ss st->st_scangen++; st->st_newscan = 1; - ieee80211_promisc(vap, true); return 0; } @@ -1724,7 +1723,6 @@ ap_start(struct ieee80211_scan_state *ss static int ap_cancel(struct ieee80211_scan_state *ss, struct ieee80211vap *vap) { - ieee80211_promisc(vap, false); return 0; } @@ -1798,7 +1796,6 @@ ap_end(struct ieee80211_scan_state *ss, return 0; } } - ieee80211_promisc(vap, false); if (ss->ss_flags & (IEEE80211_SCAN_NOPICK | IEEE80211_SCAN_NOJOIN)) { /* * Manual/background scan, don't select+join the From owner-svn-src-head@freebsd.org Mon Feb 29 21:39:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F28CAB8457; Mon, 29 Feb 2016 21:39:02 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 6BB701644; Mon, 29 Feb 2016 21:39:02 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TLd1DA002364; Mon, 29 Feb 2016 21:39:01 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TLd1an002357; Mon, 29 Feb 2016 21:39:01 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201602292139.u1TLd1an002357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 29 Feb 2016 21:39:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296240 - in head/contrib/byacc: . package package/debian package/pkgsrc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 21:39:02 -0000 Author: jkim Date: Mon Feb 29 21:39:00 2016 New Revision: 296240 URL: https://svnweb.freebsd.org/changeset/base/296240 Log: Merge byacc 20150711. Modified: head/contrib/byacc/CHANGES head/contrib/byacc/MANIFEST head/contrib/byacc/VERSION head/contrib/byacc/aclocal.m4 head/contrib/byacc/config.guess head/contrib/byacc/config.sub head/contrib/byacc/configure head/contrib/byacc/configure.in head/contrib/byacc/descrip.mms head/contrib/byacc/lr0.c head/contrib/byacc/main.c head/contrib/byacc/makefile.in head/contrib/byacc/package/byacc.spec head/contrib/byacc/package/debian/changelog head/contrib/byacc/package/debian/copyright head/contrib/byacc/package/mingw-byacc.spec head/contrib/byacc/package/pkgsrc/Makefile head/contrib/byacc/reader.c Directory Properties: head/contrib/byacc/ (props changed) Modified: head/contrib/byacc/CHANGES ============================================================================== --- head/contrib/byacc/CHANGES Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/CHANGES Mon Feb 29 21:39:00 2016 (r296240) @@ -1,3 +1,60 @@ +2015-07-10 Thomas E. Dickey + + * lr0.c: fix a duplicate-free in the leak-checking + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + + * reader.c: + make cache-size clearer (prompted by discussion with Pedro Giffuni, + Oliver Pinter) + + * main.c: + make relationship with format/size clearer (prompted by discussion + with Pedro Giffuni, Oliver Pinter) + +2015-07-05 Thomas E. Dickey + + * configure: regen + + * package/pkgsrc/Makefile, package/mingw-byacc.spec, package/debian/copyright, package/debian/changelog, package/byacc.spec, VERSION: + bump + + * aclocal.m4: resync with my-autoconf + add configure option --with-man2html + + * makefile.in: add configure options --with-man2html + + * configure.in: add configure option --with-man2html + +2015-05-02 Thomas E. Dickey + + * config.guess: 2015-03-04 + + * config.sub: 2015-03-08 + +2014-11-28 Thomas E. Dickey + + * lr0.c: coverity #39181: memory leak + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + +2014-11-13 Jouk.Jansen + + * descrip.mms: + I sucessfully compiled byacc on my OpenVMS systems. However, I had to update + the descrip.mms to include some extra c-source files and some dependenxcies + so that it also works when the distribution is located on an ODS5 disk. + + The patched descrip.mms file can be found at: + http://nchrem.tnw.tudelft.nl/openvms/software2.html#BYACC + + Please feel free to insert the file in your distribution. + + Regards + Jouk. + 2014-10-06 Thomas E. Dickey * package/debian/source/format: Modified: head/contrib/byacc/MANIFEST ============================================================================== --- head/contrib/byacc/MANIFEST Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/MANIFEST Mon Feb 29 21:39:00 2016 (r296240) @@ -1,4 +1,4 @@ -MANIFEST for byacc-20141006, version t20141006 +MANIFEST for byacc-20150711, version t20150711 -------------------------------------------------------------------------------- MANIFEST this file ACKNOWLEDGEMENTS original version of byacc - 1993 Modified: head/contrib/byacc/VERSION ============================================================================== --- head/contrib/byacc/VERSION Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/VERSION Mon Feb 29 21:39:00 2016 (r296240) @@ -1 +1 @@ -20141006 +20150711 Modified: head/contrib/byacc/aclocal.m4 ============================================================================== --- head/contrib/byacc/aclocal.m4 Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/aclocal.m4 Mon Feb 29 21:39:00 2016 (r296240) @@ -1,7 +1,7 @@ -dnl $Id: aclocal.m4,v 1.37 2014/10/04 16:40:06 tom Exp $ +dnl $Id: aclocal.m4,v 1.38 2015/07/05 22:16:23 tom Exp $ dnl Macros for byacc configure script (Thomas E. Dickey) dnl --------------------------------------------------------------------------- -dnl Copyright 2004-2013,2014 Thomas E. Dickey +dnl Copyright 2004-2014,2015 Thomas E. Dickey dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the @@ -54,7 +54,7 @@ define([CF_ACVERSION_COMPARE], [ifelse([$8], , ,[$8])], [ifelse([$9], , ,[$9])])])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_CFLAGS version: 11 updated: 2014/07/22 05:32:57 +dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00 dnl ------------- dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS dnl The second parameter if given makes this macro verbose. @@ -72,11 +72,11 @@ cf_new_extra_cppflags= for cf_add_cflags in $1 do case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi +(no) + case $cf_add_cflags in + (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) case $cf_add_cflags in - -D*) + (-D*) cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ @@ -93,11 +93,11 @@ no) ;; esac case "$CPPFLAGS" in - *$cf_add_cflags) #(vi + (*$cf_add_cflags) ;; - *) #(vi - case $cf_add_cflags in #(vi - -D*) + (*) + case $cf_add_cflags in + (-D*) cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags) ;; @@ -106,12 +106,12 @@ no) ;; esac ;; - *) + (*) cf_new_cflags="$cf_new_cflags $cf_add_cflags" ;; esac ;; -yes) +(yes) cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'` @@ -148,7 +148,7 @@ dnl Allow user to disable a normally-on AC_DEFUN([CF_ARG_DISABLE], [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl dnl --------------------------------------------------------------------------- -dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42 +dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14 dnl ------------- dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus dnl values. @@ -161,17 +161,17 @@ dnl $4 = action if perform if option is dnl $5 = default option value (either 'yes' or 'no') AC_DEFUN([CF_ARG_OPTION], [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes) - if test "$enableval" != "$5" ; then + if test "$enableval" != "$5" ; then ifelse([$3],,[ :]dnl ,[ $3]) ifelse([$4],,,[ - else - $4]) - fi],[enableval=$5 ifelse([$4],,,[ - $4 + else + $4]) + fi],[enableval=$5 ifelse([$4],,,[ + $4 ])dnl - ])])dnl +])])dnl dnl --------------------------------------------------------------------------- -dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49 +dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00 dnl --------------- dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content dnl into CC. This will not help with broken scripts that wrap the compiler with @@ -182,8 +182,8 @@ AC_DEFUN([CF_CC_ENV_FLAGS], : ${CC:=cc} AC_MSG_CHECKING(\$CC variable) -case "$CC" in #(vi -*[[\ \ ]]-[[IUD]]*) +case "$CC" in +(*[[\ \ ]]-[[IUD]]*) AC_MSG_RESULT(broken) AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) # humor him... @@ -191,7 +191,7 @@ case "$CC" in #(vi CC=`echo "$CC" | sed -e 's/[[ ]].*//'` CF_ADD_CFLAGS($cf_flags) ;; -*) +(*) AC_MSG_RESULT(ok) ;; esac @@ -265,7 +265,7 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused fi ]) dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28 +dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57 dnl --------------- dnl You can always use "make -n" to see the actual options, but it's hard to dnl pick out/analyze warning messages when the compile-line is long. @@ -282,17 +282,17 @@ AC_MSG_CHECKING(if you want to see long CF_ARG_DISABLE(echo, [ --disable-echo do not display "compiling" commands], [ - ECHO_LT='--silent' - ECHO_LD='@echo linking [$]@;' - RULE_CC='@echo compiling [$]<' - SHOW_CC='@echo compiling [$]@' - ECHO_CC='@' + ECHO_LT='--silent' + ECHO_LD='@echo linking [$]@;' + RULE_CC='@echo compiling [$]<' + SHOW_CC='@echo compiling [$]@' + ECHO_CC='@' ],[ - ECHO_LT='' - ECHO_LD='' - RULE_CC='' - SHOW_CC='' - ECHO_CC='' + ECHO_LT='' + ECHO_LD='' + RULE_CC='' + SHOW_CC='' + ECHO_CC='' ]) AC_MSG_RESULT($enableval) AC_SUBST(ECHO_LT) @@ -325,7 +325,7 @@ if test "$with_no_leaks" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03 +dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00 dnl ----------------- dnl Test for availability of useful gcc __attribute__ directives to quiet dnl compiler warnings. Though useful, not all are supported -- and contrary @@ -379,20 +379,20 @@ EOF cf_directive="__attribute__(($cf_attribute))" echo "checking for $CC $cf_directive" 1>&AC_FD_CC - case $cf_attribute in #(vi - printf) #(vi + case $cf_attribute in + (printf) cf_printf_attribute=yes cat >conftest.h <conftest.h <conftest.h <>confdefs.h - case $cf_attribute in #(vi - noreturn) #(vi + case $cf_attribute in + (noreturn) AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) ;; - printf) #(vi + (printf) cf_value='/* nothing */' if test "$cf_printf_attribute" != no ; then cf_value='__attribute__((format(printf,fmt,var)))' @@ -414,7 +414,7 @@ EOF fi AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc]) ;; - scanf) #(vi + (scanf) cf_value='/* nothing */' if test "$cf_scanf_attribute" != no ; then cf_value='__attribute__((format(scanf,fmt,var)))' @@ -422,7 +422,7 @@ EOF fi AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc]) ;; - unused) #(vi + (unused) AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc]) ;; esac @@ -449,7 +449,7 @@ if test "$GCC" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35 +dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00 dnl --------------- dnl Check if the compiler supports useful warning options. There's a few that dnl we don't use, simply because they're too noisy: @@ -541,20 +541,20 @@ then CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" if AC_TRY_EVAL(ac_compile); then test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) - case $cf_opt in #(vi - Wcast-qual) #(vi + case $cf_opt in + (Wcast-qual) CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" ;; - Winline) #(vi + (Winline) case $GCC_VERSION in - [[34]].*) + ([[34]].*) CF_VERBOSE(feature is broken in gcc $GCC_VERSION) continue;; esac ;; - Wpointer-arith) #(vi + (Wpointer-arith) case $GCC_VERSION in - [[12]].*) + ([[12]].*) CF_VERBOSE(feature is broken in gcc $GCC_VERSION) continue;; esac @@ -600,7 +600,7 @@ make an error test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07 +dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00 dnl ----------------- dnl Check if the given compiler is really the Intel compiler for Linux. It dnl tries to imitate gcc, but does not return an error when it finds a mismatch @@ -619,7 +619,7 @@ ifelse([$2],,INTEL_COMPILER,[$2])=no if test "$ifelse([$1],,[$1],GCC)" = yes ; then case $host_os in - linux*|gnu*) + (linux*|gnu*) AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler) cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc" @@ -638,10 +638,12 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147" fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MAKE_DOCS version: 3 updated: 2014/01/05 13:21:25 +dnl CF_MAKE_DOCS version: 4 updated: 2015/07/04 21:43:03 dnl ------------ dnl $1 = name(s) to generate rules for dnl $2 = suffix of corresponding manpages used as input. +dnl +dnl This works best if called at the end of configure.in, following CF_WITH_MAN2HTML define([CF_MAKE_DOCS],[ test -z "$cf_make_docs" && cf_make_docs=0 @@ -650,21 +652,25 @@ test -f "$cf_output" || cf_output=Makefi if test "$cf_make_docs" = 0 then -cat >>$cf_output <<"CF_EOF" +cat >>$cf_output <[$]@ - -.$2.ps : - [$](SHELL) -c "tbl [$]*.$2 | groff -man" >[$]@ +${NROFF_NOTE}.$2.txt : +${NROFF_NOTE} [\$](SHELL) -c "tbl [\$]*.$2 | nroff -man | col -bx" >[\$]@ -.$2.txt : - GROFF_NO_SGR=stupid [$](SHELL) -c "tbl [$]*.$2 | nroff -Tascii -man | col -bx" >[$]@ +${GROFF_NOTE}.ps.pdf : +${GROFF_NOTE} ps2pdf [\$]*.ps +${GROFF_NOTE} +${GROFF_NOTE}.$2.ps : +${GROFF_NOTE} [\$](SHELL) -c "tbl [\$]*.$2 | groff -man" >[\$]@ +${GROFF_NOTE} +${GROFF_NOTE}.$2.txt : +${GROFF_NOTE} GROFF_NO_SGR=stupid [\$](SHELL) -c "tbl [\$]*.$2 | nroff -Tascii -man | col -bx" >[\$]@ -.ps.pdf : - ps2pdf [$]*.ps +${MAN2HTML_NOTE}.$2.html : +${MAN2HTML_NOTE} ./${MAN2HTML_TEMP} [\$]* $2 man >[\$]@ CF_EOF cf_make_docs=1 @@ -674,20 +680,25 @@ for cf_name in $1 do cat >>$cf_output <&AC_FD_CC ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03 +dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00 dnl ------------------ dnl see CF_WITH_NO_LEAKS AC_DEFUN([CF_NO_LEAKS_OPTION],[ @@ -835,12 +846,12 @@ AC_ARG_WITH($1, [with_$1=]) AC_MSG_RESULT(${with_$1:-no}) -case .$with_cflags in #(vi -.*-g*) - case .$CFLAGS in #(vi - .*-g*) #(vi +case .$with_cflags in +(.*-g*) + case .$CFLAGS in + (.*-g*) ;; - *) + (*) CF_ADD_CFLAGS([-g]) ;; esac @@ -848,7 +859,44 @@ case .$with_cflags in #(vi esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42 +dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57 +dnl -------------- +dnl Check the argument to see that it looks like a pathname. Rewrite it if it +dnl begins with one of the prefix/exec_prefix variables, and then again if the +dnl result begins with 'NONE'. This is necessary to work around autoconf's +dnl delayed evaluation of those symbols. +AC_DEFUN([CF_PATH_SYNTAX],[ +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + +case ".[$]$1" in +(.\[$]\(*\)*|.\'*\'*) + ;; +(..|./*|.\\*) + ;; +(.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX + ;; +(.\[$]{*prefix}*|.\[$]{*dir}*) + eval $1="[$]$1" + case ".[$]$1" in + (.NONE/*) + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` + ;; + esac + ;; +(.no|.NONE/*) + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` + ;; +(*) + ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2) + ;; +esac +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00 dnl ----------------- dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed. dnl @@ -880,15 +928,15 @@ make an error #endif], [cf_cv_posix_c_source=no], [cf_want_posix_source=no - case .$cf_POSIX_C_SOURCE in #(vi - .[[12]]??*) #(vi + case .$cf_POSIX_C_SOURCE in + (.[[12]]??*) cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" ;; - .2) #(vi + (.2) cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" cf_want_posix_source=yes ;; - .*) + (.*) cf_want_posix_source=yes ;; esac @@ -943,6 +991,25 @@ CF_ACVERSION_CHECK(2.52, CF_CC_ENV_FLAGS ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27 +dnl ------------- +dnl Check if groff is available, for cases (such as html output) where nroff +dnl is not enough. +AC_DEFUN([CF_PROG_GROFF],[ +AC_PATH_PROG(GROFF_PATH,groff,no) +AC_PATH_PROG(NROFF_PATH,nroff,no) +if test "x$GROFF_PATH" = xno +then + NROFF_NOTE= + GROFF_NOTE="#" +else + NROFF_NOTE="#" + GROFF_NOTE= +fi +AC_SUBST(GROFF_NOTE) +AC_SUBST(NROFF_NOTE) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14 dnl ------------ AC_DEFUN([CF_PROG_LINT], @@ -1054,6 +1121,141 @@ if test "$with_dmalloc" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_WITH_MAN2HTML version: 4 updated: 2015/05/03 19:10:48 +dnl ---------------- +dnl Check for man2html and groff. Optionally prefer man2html over groff. +dnl Generate a shell script which hides the differences between the two. +dnl +dnl We name that "man2html.tmp". +dnl +dnl The shell script can be removed later, e.g., using "make distclean". +AC_DEFUN([CF_WITH_MAN2HTML],[ +AC_REQUIRE([CF_PROG_GROFF]) + +AC_MSG_CHECKING(for program to convert manpage to html) +AC_ARG_WITH(man2html, + [ --with-man2html=XXX use XXX rather than groff], + [cf_man2html=$withval], + [cf_man2html=$GROFF_PATH]) + +cf_with_groff=no + +case $cf_man2html in +(yes) + AC_MSG_RESULT(man2html) + AC_PATH_PROG(cf_man2html,man2html,no) + ;; +(no|groff|*/groff*) + cf_with_groff=yes + cf_man2html=$GROFF_PATH + AC_MSG_RESULT($cf_man2html) + ;; +(*) + AC_MSG_RESULT($cf_man2html) + ;; +esac + +MAN2HTML_TEMP="man2html.tmp" + cat >$MAN2HTML_TEMP <>$MAN2HTML_TEMP <conftest.in <conftest.out + + cf_man2html_1st=`fgrep -n MARKER conftest.out |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'` + cf_man2html_top=`expr $cf_man2html_1st - 2` + cf_man2html_bot=`wc -l conftest.out |sed -e 's/[[^0-9]]//g'` + cf_man2html_bot=`expr $cf_man2html_bot - 2 - $cf_man2html_top` + cf_man2html_top_bot="-topm=$cf_man2html_top -botm=$cf_man2html_bot" + + AC_MSG_RESULT($cf_man2html_top_bot) + + AC_MSG_CHECKING(for pagesize to use) + for cf_block in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do + cat >>conftest.in <conftest.out + cf_man2html_page=`fgrep -n HEAD1 conftest.out |tail -n 1 |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'` + test -z "$cf_man2html_page" && cf_man2html_page=99999 + test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999 + + rm -rf conftest* + AC_MSG_RESULT($cf_man2html_page) + + cat >>$MAN2HTML_TEMP < and other headers which use u_int / u_short types cf_XOPEN_SOURCE= CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; -netbsd*) #(vi +(netbsd*) cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw ;; -openbsd[[4-9]]*) #(vi +(openbsd[[4-9]]*) # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw cf_xopen_source="-D_BSD_SOURCE" cf_XOPEN_SOURCE=600 ;; -openbsd*) #(vi +(openbsd*) # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw ;; -osf[[45]]*) #(vi +(osf[[45]]*) cf_xopen_source="-D_OSF_SOURCE" ;; -nto-qnx*) #(vi +(nto-qnx*) cf_xopen_source="-D_QNX_SOURCE" ;; -sco*) #(vi +(sco*) # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer ;; -solaris2.*) #(vi +(solaris2.*) cf_xopen_source="-D__EXTENSIONS__" cf_cv_xopen_source=broken ;; -sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2) +(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2) cf_XOPEN_SOURCE= cf_POSIX_C_SOURCE= ;; -*) +(*) CF_TRY_XOPEN_SOURCE CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) ;; Modified: head/contrib/byacc/config.guess ============================================================================== --- head/contrib/byacc/config.guess Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/config.guess Mon Feb 29 21:39:00 2016 (r296240) @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2015-03-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,20 +168,27 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -197,6 +204,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -213,7 +227,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -579,8 +593,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -932,6 +947,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; Modified: head/contrib/byacc/config.sub ============================================================================== --- head/contrib/byacc/config.sub Mon Feb 29 21:17:39 2016 (r296239) +++ head/contrib/byacc/config.sub Mon Feb 29 21:39:00 2016 (r296240) @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-07-28' +timestamp='2015-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2014-07-28' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -68,7 +68,7 @@ Report bugs and patches to Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFE40AB8813; Mon, 29 Feb 2016 23:09:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 69511F18; Mon, 29 Feb 2016 23:09:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1TN9VGF028774; Mon, 29 Feb 2016 23:09:31 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1TN9VUG028773; Mon, 29 Feb 2016 23:09:31 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201602292309.u1TN9VUG028773@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 29 Feb 2016 23:09:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296241 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Feb 2016 23:09:32 -0000 Author: glebius Date: Mon Feb 29 23:09:31 2016 New Revision: 296241 URL: https://svnweb.freebsd.org/changeset/base/296241 Log: Fix !IEEE80211_DEBUG build. Modified: head/sys/net80211/ieee80211_scan_sw.c Modified: head/sys/net80211/ieee80211_scan_sw.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 21:39:00 2016 (r296240) +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 23:09:31 2016 (r296241) @@ -595,9 +595,9 @@ scan_signal_locked(struct ieee80211_scan static void scan_mindwell(struct ieee80211_scan_state *ss) { - struct ieee80211vap *vap = ss->ss_vap; - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called\n", __func__); + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: called\n", + __func__); scan_signal(ss, 0); } @@ -657,7 +657,6 @@ scan_curchan_task(void *arg, int pending { struct ieee80211_scan_state *ss = arg; struct scan_state *ss_priv = SCAN_PRIVATE(ss); - struct ieee80211vap *vap = ss->ss_vap; struct ieee80211com *ic = ss->ss_ic; struct ieee80211_channel *chan; unsigned long maxdwell; @@ -668,7 +667,7 @@ end: scandone = (ss->ss_next >= ss->ss_last) || (ss_priv->ss_iflags & ISCAN_CANCEL) != 0; - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: loop start; scandone=%d\n", __func__, scandone); @@ -692,7 +691,7 @@ end: else maxdwell = ss->ss_maxdwell; - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: chan %3d%c -> %3d%c [%s, dwell min %lums max %lums]\n", __func__, ieee80211_chan2ieee(ic, ic->ic_curchan), @@ -740,7 +739,8 @@ end: if (ss_priv->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT)) goto end; - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: waiting\n", __func__); + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: waiting\n", + __func__); IEEE80211_UNLOCK(ic); } From owner-svn-src-head@freebsd.org Tue Mar 1 00:12:43 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C9F5AB79F6; Tue, 1 Mar 2016 00:12:43 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-lb0-x230.google.com (mail-lb0-x230.google.com [IPv6:2a00:1450:4010:c04::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EC2A91A8A; Tue, 1 Mar 2016 00:12:42 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-lb0-x230.google.com with SMTP id bc4so89814879lbc.2; Mon, 29 Feb 2016 16:12:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=QyD1ZCNPeeWj/MztPU29ZyV1gxMI6DXqWkemmPMxIxs=; b=AM4z2VVud67lVZiZfSLzUFb3UqRGsKd82/bjAzdf9aJMjAj4RKxQr0Wi79ms3erGOS 8NBbs3wcPTRt2Pj7fQ4sVJTb0NtemX1s6fdbW1yYDiyaUlKe+ub+wZym8q9oXchLbzvj 88rc8qOskdcZjV56BQlqPSWOow/qBs9mSkqqKSx8+rtxMR24PDSrh4jTOunnsc0JPBem +vtTbbnD5QKcG4AxgTpusNqAOJc6uIdhFFmToPXCrUDkDDSGxr8F2IeDYNlJqDYhiSqP XmWDGds9WOarrGG/s30k/NDGbVD0PJSDNdIJFJck+SxzYngttWn1F5FtTiAv+r/5qmGq zynw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=QyD1ZCNPeeWj/MztPU29ZyV1gxMI6DXqWkemmPMxIxs=; b=j+r1h2rD/dcCG+Vd72H39uxCpbjeSx/68FtEV1JbgQxbOqeoHn2vd9nwouPITtQwdl zL76M6w7N7kiTsaijmDcGKFH0719squJM+EM1wDXeyH1DgoIes3s9UyKma++QSP7v18O wFy6kYC7weV351OG082o4Ba4mQN3DZs7pznz8dzaPoYQkKe7vsaDkbziHOIREkSShlN2 TGFlh4reF8OSXWO3hgZ2/wb3N9G2Fal1U2gT/BaYnRMd5C1TStCIPrcQ6v7cwhMzXm0l QT7zzlNSfPAR6w2yn70VficxdVlvn0Xd/JY28eXhxJUN+p/tRRq0hp/PwhZ510TCd2UK 1V5A== X-Gm-Message-State: AD7BkJKpU+o71/7Kf8NoVkRSyoaXVuQm0EMgi5CzP6BFKegwo/gIEPc3pCiA3oAB5kYJGOD/EmZacMTXF4jcNg== MIME-Version: 1.0 X-Received: by 10.112.134.70 with SMTP id pi6mr5519070lbb.59.1456791160360; Mon, 29 Feb 2016 16:12:40 -0800 (PST) Received: by 10.112.190.101 with HTTP; Mon, 29 Feb 2016 16:12:40 -0800 (PST) In-Reply-To: <201602262213.u1QMDVjX033086@repo.freebsd.org> References: <201602262213.u1QMDVjX033086@repo.freebsd.org> Date: Mon, 29 Feb 2016 16:12:40 -0800 Message-ID: Subject: Re: svn commit: r296116 - head/share/mk From: Ngie Cooper To: Bryan Drewery Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:12:43 -0000 On Fri, Feb 26, 2016 at 2:13 PM, Bryan Drewery wrote: > Author: bdrewery > Date: Fri Feb 26 22:13:31 2016 > New Revision: 296116 > URL: https://svnweb.freebsd.org/changeset/base/296116 > > Log: > Remove _manpages and _maninstall targets as they are no longer needed. > > r96164 added them to avoid recursing twice with _SUBDIR. That issue was > fixed in bsd.subdir.mk in r291635 for all targets. > > Sponsored by: EMC / Isilon Storage Division This probably deserves release notes. I know that we've used some of these targets internally at least... someone might have implemented their own targets based on this (not so) documented info. From owner-svn-src-head@freebsd.org Tue Mar 1 00:17:16 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDE9DAB7B6B; Tue, 1 Mar 2016 00:17:16 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 83F0D1CC8; Tue, 1 Mar 2016 00:17:16 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u210HFwq049320; Tue, 1 Mar 2016 00:17:15 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u210HEBE049312; Tue, 1 Mar 2016 00:17:14 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201603010017.u210HEBE049312@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 1 Mar 2016 00:17:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296242 - in head/sys: dev/xen/netback kern netinet6 sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:17:16 -0000 Author: glebius Date: Tue Mar 1 00:17:14 2016 New Revision: 296242 URL: https://svnweb.freebsd.org/changeset/base/296242 Log: New way to manage reference counting of mbuf external storage. The m_ext.ext_cnt pointer becomes a union. It can now hold the refcount value itself. To tell that m_ext.ext_flags flag EXT_FLAG_EMBREF is used. The first mbuf to attach a cluster stores the refcount. The further mbufs to reference the cluster point at refcount in the first mbuf. The first mbuf is freed only when the last reference is freed. The benefit over refcounts stored in separate slabs is that now refcounts of different, unrelated mbufs do not share a cache line. For EXT_EXTREF mbufs the zone_ext_refcnt is no longer needed, and m_extadd() becomes void, making widely used M_EXTADD macro safe. For EXT_SFBUF mbufs the sf_ext_ref() is removed, which was an optimization exactly against the cache aliasing problem with regular refcounting. Discussed with: rrs, rwatson, gnn, hiren, sbruno, np Reviewed by: rrs Differential Revision: https://reviews.freebsd.org/D5396 Sponsored by: Netflix Modified: head/sys/dev/xen/netback/netback.c head/sys/kern/kern_mbuf.c head/sys/kern/kern_sendfile.c head/sys/kern/uipc_mbuf.c head/sys/netinet6/ip6_output.c head/sys/netinet6/ip6_var.h head/sys/sys/mbuf.h Modified: head/sys/dev/xen/netback/netback.c ============================================================================== --- head/sys/dev/xen/netback/netback.c Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/dev/xen/netback/netback.c Tue Mar 1 00:17:14 2016 (r296242) @@ -164,7 +164,7 @@ static void xnb_txpkt2rsp(const struct x netif_tx_back_ring_t *ring, int error); static struct mbuf *xnb_pkt2mbufc(const struct xnb_pkt *pkt, struct ifnet *ifp); static int xnb_txpkt2gnttab(const struct xnb_pkt *pkt, - const struct mbuf *mbufc, + struct mbuf *mbufc, gnttab_copy_table gnttab, const netif_tx_back_ring_t *txb, domid_t otherend_id); @@ -1709,12 +1709,12 @@ xnb_pkt2mbufc(const struct xnb_pkt *pkt, * \return The number of gnttab entries filled */ static int -xnb_txpkt2gnttab(const struct xnb_pkt *pkt, const struct mbuf *mbufc, +xnb_txpkt2gnttab(const struct xnb_pkt *pkt, struct mbuf *mbufc, gnttab_copy_table gnttab, const netif_tx_back_ring_t *txb, domid_t otherend_id) { - const struct mbuf *mbuf = mbufc;/* current mbuf within the chain */ + struct mbuf *mbuf = mbufc;/* current mbuf within the chain */ int gnt_idx = 0; /* index into grant table */ RING_IDX r_idx = pkt->car; /* index into tx ring buffer */ int r_ofs = 0; /* offset of next data within tx request's data area */ Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/kern/kern_mbuf.c Tue Mar 1 00:17:14 2016 (r296242) @@ -269,7 +269,6 @@ uma_zone_t zone_pack; uma_zone_t zone_jumbop; uma_zone_t zone_jumbo9; uma_zone_t zone_jumbo16; -uma_zone_t zone_ext_refcnt; /* * Local prototypes. @@ -278,7 +277,6 @@ static int mb_ctor_mbuf(void *, int, voi static int mb_ctor_clust(void *, int, void *, int); static int mb_ctor_pack(void *, int, void *, int); static void mb_dtor_mbuf(void *, int, void *); -static void mb_dtor_clust(void *, int, void *); static void mb_dtor_pack(void *, int, void *); static int mb_zinit_pack(void *, int, int); static void mb_zfini_pack(void *, int); @@ -312,13 +310,13 @@ mbuf_init(void *dummy) uma_zone_set_maxaction(zone_mbuf, mb_reclaim); zone_clust = uma_zcreate(MBUF_CLUSTER_MEM_NAME, MCLBYTES, - mb_ctor_clust, mb_dtor_clust, + mb_ctor_clust, #ifdef INVARIANTS - trash_init, trash_fini, + trash_dtor, trash_init, trash_fini, #else - NULL, NULL, + NULL, NULL, NULL, #endif - UMA_ALIGN_PTR, UMA_ZONE_REFCNT); + UMA_ALIGN_PTR, 0); if (nmbclusters > 0) nmbclusters = uma_zone_set_max(zone_clust, nmbclusters); uma_zone_set_warning(zone_clust, "kern.ipc.nmbclusters limit reached"); @@ -329,26 +327,26 @@ mbuf_init(void *dummy) /* Make jumbo frame zone too. Page size, 9k and 16k. */ zone_jumbop = uma_zcreate(MBUF_JUMBOP_MEM_NAME, MJUMPAGESIZE, - mb_ctor_clust, mb_dtor_clust, + mb_ctor_clust, #ifdef INVARIANTS - trash_init, trash_fini, + trash_dtor, trash_init, trash_fini, #else - NULL, NULL, + NULL, NULL, NULL, #endif - UMA_ALIGN_PTR, UMA_ZONE_REFCNT); + UMA_ALIGN_PTR, 0); if (nmbjumbop > 0) nmbjumbop = uma_zone_set_max(zone_jumbop, nmbjumbop); uma_zone_set_warning(zone_jumbop, "kern.ipc.nmbjumbop limit reached"); uma_zone_set_maxaction(zone_jumbop, mb_reclaim); zone_jumbo9 = uma_zcreate(MBUF_JUMBO9_MEM_NAME, MJUM9BYTES, - mb_ctor_clust, mb_dtor_clust, + mb_ctor_clust, #ifdef INVARIANTS - trash_init, trash_fini, + trash_dtor, trash_init, trash_fini, #else - NULL, NULL, + NULL, NULL, NULL, #endif - UMA_ALIGN_PTR, UMA_ZONE_REFCNT); + UMA_ALIGN_PTR, 0); uma_zone_set_allocf(zone_jumbo9, mbuf_jumbo_alloc); if (nmbjumbo9 > 0) nmbjumbo9 = uma_zone_set_max(zone_jumbo9, nmbjumbo9); @@ -356,24 +354,19 @@ mbuf_init(void *dummy) uma_zone_set_maxaction(zone_jumbo9, mb_reclaim); zone_jumbo16 = uma_zcreate(MBUF_JUMBO16_MEM_NAME, MJUM16BYTES, - mb_ctor_clust, mb_dtor_clust, + mb_ctor_clust, #ifdef INVARIANTS - trash_init, trash_fini, + trash_dtor, trash_init, trash_fini, #else - NULL, NULL, + NULL, NULL, NULL, #endif - UMA_ALIGN_PTR, UMA_ZONE_REFCNT); + UMA_ALIGN_PTR, 0); uma_zone_set_allocf(zone_jumbo16, mbuf_jumbo_alloc); if (nmbjumbo16 > 0) nmbjumbo16 = uma_zone_set_max(zone_jumbo16, nmbjumbo16); uma_zone_set_warning(zone_jumbo16, "kern.ipc.nmbjumbo16 limit reached"); uma_zone_set_maxaction(zone_jumbo16, mb_reclaim); - zone_ext_refcnt = uma_zcreate(MBUF_EXTREFCNT_MEM_NAME, sizeof(u_int), - NULL, NULL, - NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_ZINIT); - /* * Hook event handler for low-memory situation, used to * drain protocols and push data back to the caches (UMA @@ -477,7 +470,6 @@ mb_dtor_pack(void *mem, int size, void * KASSERT(m->m_ext.ext_arg2 == NULL, ("%s: ext_arg2 != NULL", __func__)); KASSERT(m->m_ext.ext_size == MCLBYTES, ("%s: ext_size != MCLBYTES", __func__)); KASSERT(m->m_ext.ext_type == EXT_PACKET, ("%s: ext_type != EXT_PACKET", __func__)); - KASSERT(*m->m_ext.ext_cnt == 1, ("%s: ext_cnt != 1", __func__)); #ifdef INVARIANTS trash_dtor(m->m_ext.ext_buf, MCLBYTES, arg); #endif @@ -505,40 +497,11 @@ static int mb_ctor_clust(void *mem, int size, void *arg, int how) { struct mbuf *m; - u_int *refcnt; - int type; - uma_zone_t zone; #ifdef INVARIANTS trash_ctor(mem, size, arg, how); #endif - switch (size) { - case MCLBYTES: - type = EXT_CLUSTER; - zone = zone_clust; - break; -#if MJUMPAGESIZE != MCLBYTES - case MJUMPAGESIZE: - type = EXT_JUMBOP; - zone = zone_jumbop; - break; -#endif - case MJUM9BYTES: - type = EXT_JUMBO9; - zone = zone_jumbo9; - break; - case MJUM16BYTES: - type = EXT_JUMBO16; - zone = zone_jumbo16; - break; - default: - panic("unknown cluster size"); - break; - } - m = (struct mbuf *)arg; - refcnt = uma_find_refcnt(zone, mem); - *refcnt = 1; if (m != NULL) { m->m_ext.ext_buf = (caddr_t)mem; m->m_data = m->m_ext.ext_buf; @@ -547,33 +510,15 @@ mb_ctor_clust(void *mem, int size, void m->m_ext.ext_arg1 = NULL; m->m_ext.ext_arg2 = NULL; m->m_ext.ext_size = size; - m->m_ext.ext_type = type; - m->m_ext.ext_flags = 0; - m->m_ext.ext_cnt = refcnt; + m->m_ext.ext_type = m_gettype(size); + m->m_ext.ext_flags = EXT_FLAG_EMBREF; + m->m_ext.ext_count = 1; } return (0); } /* - * The Mbuf Cluster zone destructor. - */ -static void -mb_dtor_clust(void *mem, int size, void *arg) -{ -#ifdef INVARIANTS - uma_zone_t zone; - - zone = m_getzone(size); - KASSERT(*(uma_find_refcnt(zone, mem)) <= 1, - ("%s: refcnt incorrect %u", __func__, - *(uma_find_refcnt(zone, mem))) ); - - trash_dtor(mem, size, arg); -#endif -} - -/* * The Packet secondary zone's init routine, executed on the * object's transition from mbuf keg slab to zone cache. */ @@ -670,58 +615,69 @@ mb_reclaim(uma_zone_t zone __unused, int void mb_free_ext(struct mbuf *m) { + volatile u_int *refcnt; + struct mbuf *mref; int freembuf; KASSERT(m->m_flags & M_EXT, ("%s: M_EXT not set on %p", __func__, m)); + /* See if this is the mbuf that holds the embedded refcount. */ + if (m->m_ext.ext_flags & EXT_FLAG_EMBREF) { + refcnt = &m->m_ext.ext_count; + mref = m; + } else { + KASSERT(m->m_ext.ext_cnt != NULL, + ("%s: no refcounting pointer on %p", __func__, m)); + refcnt = m->m_ext.ext_cnt; + mref = __containerof(refcnt, struct mbuf, m_ext.ext_count); + } + /* - * Check if the header is embedded in the cluster. + * Check if the header is embedded in the cluster. It is + * important that we can't touch any of the mbuf fields + * after we have freed the external storage, since mbuf + * could have been embedded in it. */ freembuf = (m->m_flags & M_NOFREE) ? 0 : 1; - switch (m->m_ext.ext_type) { - case EXT_SFBUF: - sf_ext_free(m->m_ext.ext_arg1, m->m_ext.ext_arg2); - break; - case EXT_SFBUF_NOCACHE: - sf_ext_free_nocache(m->m_ext.ext_arg1, m->m_ext.ext_arg2); - break; - default: - KASSERT(m->m_ext.ext_cnt != NULL, - ("%s: no refcounting pointer on %p", __func__, m)); - /* - * Free attached storage if this mbuf is the only - * reference to it. - */ - if (*(m->m_ext.ext_cnt) != 1) { - if (atomic_fetchadd_int(m->m_ext.ext_cnt, -1) != 1) - break; - } - + /* Free attached storage if this mbuf is the only reference to it. */ + if (*refcnt == 1 || atomic_fetchadd_int(refcnt, -1) == 1) { switch (m->m_ext.ext_type) { - case EXT_PACKET: /* The packet zone is special. */ - if (*(m->m_ext.ext_cnt) == 0) - *(m->m_ext.ext_cnt) = 1; - uma_zfree(zone_pack, m); - return; /* Job done. */ + case EXT_PACKET: + /* The packet zone is special. */ + if (*refcnt == 0) + *refcnt = 1; + uma_zfree(zone_pack, mref); + break; case EXT_CLUSTER: uma_zfree(zone_clust, m->m_ext.ext_buf); + uma_zfree(zone_mbuf, mref); break; case EXT_JUMBOP: uma_zfree(zone_jumbop, m->m_ext.ext_buf); + uma_zfree(zone_mbuf, mref); break; case EXT_JUMBO9: uma_zfree(zone_jumbo9, m->m_ext.ext_buf); + uma_zfree(zone_mbuf, mref); break; case EXT_JUMBO16: uma_zfree(zone_jumbo16, m->m_ext.ext_buf); + uma_zfree(zone_mbuf, mref); + break; + case EXT_SFBUF: + sf_ext_free(m->m_ext.ext_arg1, m->m_ext.ext_arg2); + uma_zfree(zone_mbuf, mref); + break; + case EXT_SFBUF_NOCACHE: + sf_ext_free_nocache(m->m_ext.ext_arg1, + m->m_ext.ext_arg2); + uma_zfree(zone_mbuf, mref); break; case EXT_NET_DRV: case EXT_MOD_TYPE: case EXT_DISPOSABLE: - *(m->m_ext.ext_cnt) = 0; - uma_zfree(zone_ext_refcnt, __DEVOLATILE(u_int *, - m->m_ext.ext_cnt)); + uma_zfree(zone_mbuf, mref); /* FALLTHROUGH */ case EXT_EXTREF: KASSERT(m->m_ext.ext_free != NULL, @@ -735,7 +691,7 @@ mb_free_ext(struct mbuf *m) } } - if (freembuf) + if (freembuf && m != mref) uma_zfree(zone_mbuf, m); } @@ -925,9 +881,7 @@ m_getm2(struct mbuf *m, int len, int how /*- * Configure a provided mbuf to refer to the provided external storage - * buffer and setup a reference count for said buffer. If the setting - * up of the reference count fails, the M_EXT bit will not be set. If - * successfull, the M_EXT bit is set in the mbuf's flags. + * buffer and setup a reference count for said buffer. * * Arguments: * mb The existing mbuf to which to attach the provided buffer. @@ -944,20 +898,14 @@ m_getm2(struct mbuf *m, int len, int how * Returns: * Nothing. */ -int +void m_extadd(struct mbuf *mb, caddr_t buf, u_int size, void (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2, - int flags, int type, int wait) + int flags, int type) { - KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__)); - if (type != EXT_EXTREF) - mb->m_ext.ext_cnt = uma_zalloc(zone_ext_refcnt, wait); - - if (mb->m_ext.ext_cnt == NULL) - return (ENOMEM); + KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__)); - *(mb->m_ext.ext_cnt) = 1; mb->m_flags |= (M_EXT | flags); mb->m_ext.ext_buf = buf; mb->m_data = mb->m_ext.ext_buf; @@ -966,9 +914,12 @@ m_extadd(struct mbuf *mb, caddr_t buf, u mb->m_ext.ext_arg1 = arg1; mb->m_ext.ext_arg2 = arg2; mb->m_ext.ext_type = type; - mb->m_ext.ext_flags = 0; - return (0); + if (type != EXT_EXTREF) { + mb->m_ext.ext_count = 1; + mb->m_ext.ext_flags = EXT_FLAG_EMBREF; + } else + mb->m_ext.ext_flags = 0; } /* Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/kern/kern_sendfile.c Tue Mar 1 00:17:14 2016 (r296242) @@ -119,31 +119,6 @@ SYSCTL_PROC(_kern_ipc, OID_AUTO, sfstat, NULL, 0, sfstat_sysctl, "I", "sendfile statistics"); /* - * Add more references to a vm_page + sf_buf + sendfile_sync. Called - * by mbuf(9) code to add extra references to a page. - */ -void -sf_ext_ref(void *arg1, void *arg2) -{ - struct sf_buf *sf = arg1; - struct sendfile_sync *sfs = arg2; - vm_page_t pg = sf_buf_page(sf); - - sf_buf_ref(sf); - - vm_page_lock(pg); - vm_page_wire(pg); - vm_page_unlock(pg); - - if (sfs != NULL) { - mtx_lock(&sfs->mtx); - KASSERT(sfs->count > 0, ("Sendfile sync botchup count == 0")); - sfs->count++; - mtx_unlock(&sfs->mtx); - } -} - -/* * Detach mapped page and release resources back to the system. Called * by mbuf(9) code when last reference to a page is freed. */ @@ -807,7 +782,8 @@ retry_space: m0->m_ext.ext_type = EXT_SFBUF; else m0->m_ext.ext_type = EXT_SFBUF_NOCACHE; - m0->m_ext.ext_flags = 0; + m0->m_ext.ext_flags = EXT_FLAG_EMBREF; + m0->m_ext.ext_count = 1; m0->m_flags |= (M_EXT | M_RDONLY); if (nios) m0->m_flags |= M_NOTREADY; Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/kern/uipc_mbuf.c Tue Mar 1 00:17:14 2016 (r296242) @@ -138,29 +138,31 @@ CTASSERT(sizeof(m_assertbuf.m_stailqpkt) * and bump the refcount of the cluster. */ void -mb_dupcl(struct mbuf *n, const struct mbuf *m) +mb_dupcl(struct mbuf *n, struct mbuf *m) { + volatile u_int *refcnt; KASSERT(m->m_flags & M_EXT, ("%s: M_EXT not set on %p", __func__, m)); KASSERT(!(n->m_flags & M_EXT), ("%s: M_EXT set on %p", __func__, n)); - switch (m->m_ext.ext_type) { - case EXT_SFBUF: - case EXT_SFBUF_NOCACHE: - sf_ext_ref(m->m_ext.ext_arg1, m->m_ext.ext_arg2); - break; - default: + n->m_ext = m->m_ext; + n->m_flags |= M_EXT; + n->m_flags |= m->m_flags & M_RDONLY; + + /* See if this is the mbuf that holds the embedded refcount. */ + if (m->m_ext.ext_flags & EXT_FLAG_EMBREF) { + refcnt = n->m_ext.ext_cnt = &m->m_ext.ext_count; + n->m_ext.ext_flags &= ~EXT_FLAG_EMBREF; + } else { KASSERT(m->m_ext.ext_cnt != NULL, ("%s: no refcounting pointer on %p", __func__, m)); - if (*(m->m_ext.ext_cnt) == 1) - *(m->m_ext.ext_cnt) += 1; - else - atomic_add_int(m->m_ext.ext_cnt, 1); + refcnt = m->m_ext.ext_cnt; } - n->m_ext = m->m_ext; - n->m_flags |= M_EXT; - n->m_flags |= m->m_flags & M_RDONLY; + if (*refcnt == 1) + *refcnt += 1; + else + atomic_add_int(refcnt, 1); } void @@ -394,7 +396,7 @@ m_prepend(struct mbuf *m, int len, int h * only their reference counts are incremented. */ struct mbuf * -m_copym(const struct mbuf *m, int off0, int len, int wait) +m_copym(struct mbuf *m, int off0, int len, int wait) { struct mbuf *n, **np; int off = off0; Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/netinet6/ip6_output.c Tue Mar 1 00:17:14 2016 (r296242) @@ -2972,7 +2972,7 @@ ip6_setpktopt(int optname, u_char *buf, * pointer that might NOT be &loif -- easier than replicating that code here. */ void -ip6_mloopback(struct ifnet *ifp, const struct mbuf *m) +ip6_mloopback(struct ifnet *ifp, struct mbuf *m) { struct mbuf *copym; struct ip6_hdr *ip6; Modified: head/sys/netinet6/ip6_var.h ============================================================================== --- head/sys/netinet6/ip6_var.h Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/netinet6/ip6_var.h Tue Mar 1 00:17:14 2016 (r296242) @@ -382,7 +382,7 @@ int ip6_sysctl(int *, u_int, void *, siz void ip6_forward(struct mbuf *, int); -void ip6_mloopback(struct ifnet *, const struct mbuf *); +void ip6_mloopback(struct ifnet *, struct mbuf *); int ip6_output(struct mbuf *, struct ip6_pktopts *, struct route_in6 *, int, Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Mon Feb 29 23:09:31 2016 (r296241) +++ head/sys/sys/mbuf.h Tue Mar 1 00:17:14 2016 (r296242) @@ -160,7 +160,10 @@ struct pkthdr { * they are correct. */ struct m_ext { - volatile u_int *ext_cnt; /* pointer to ref count info */ + union { + volatile u_int ext_count; /* value of ref count info */ + volatile u_int *ext_cnt; /* pointer to ref count info */ + }; caddr_t ext_buf; /* start of buffer */ uint32_t ext_size; /* size of buffer, for ext_free */ uint32_t ext_type:8, /* type of external storage */ @@ -370,7 +373,7 @@ struct mbuf { * Flags for external mbuf buffer types. * NB: limited to the lower 24 bits. */ -#define EXT_FLAG_EMBREF 0x000001 /* embedded ext_cnt, notyet */ +#define EXT_FLAG_EMBREF 0x000001 /* embedded ext_count */ #define EXT_FLAG_EXTREF 0x000002 /* external ext_cnt, notyet */ #define EXT_FLAG_NOFREE 0x000010 /* don't free mbuf to pool, notyet */ @@ -396,7 +399,6 @@ struct mbuf { /* * External reference/free functions. */ -void sf_ext_ref(void *, void *); void sf_ext_free(void *, void *); void sf_ext_free_nocache(void *, void *); @@ -524,9 +526,8 @@ extern uma_zone_t zone_pack; extern uma_zone_t zone_jumbop; extern uma_zone_t zone_jumbo9; extern uma_zone_t zone_jumbo16; -extern uma_zone_t zone_ext_refcnt; -void mb_dupcl(struct mbuf *, const struct mbuf *); +void mb_dupcl(struct mbuf *, struct mbuf *); void mb_free_ext(struct mbuf *); void m_adj(struct mbuf *, int); int m_apply(struct mbuf *, int, int, @@ -539,7 +540,7 @@ void *m_cljget(struct mbuf *m, int how struct mbuf *m_collapse(struct mbuf *, int, int); void m_copyback(struct mbuf *, int, int, c_caddr_t); void m_copydata(const struct mbuf *, int, int, caddr_t); -struct mbuf *m_copym(const struct mbuf *, int, int, int); +struct mbuf *m_copym(struct mbuf *, int, int, int); struct mbuf *m_copypacket(struct mbuf *, int); void m_copy_pkthdr(struct mbuf *, struct mbuf *); struct mbuf *m_copyup(struct mbuf *, int, int); @@ -550,9 +551,9 @@ struct mbuf *m_devget(char *, int, int, void (*)(char *, caddr_t, u_int)); struct mbuf *m_dup(const struct mbuf *, int); int m_dup_pkthdr(struct mbuf *, const struct mbuf *, int); -int m_extadd(struct mbuf *, caddr_t, u_int, +void m_extadd(struct mbuf *, caddr_t, u_int, void (*)(struct mbuf *, void *, void *), void *, void *, - int, int, int); + int, int); u_int m_fixhdr(struct mbuf *); struct mbuf *m_fragment(struct mbuf *, int, int); void m_freem(struct mbuf *); @@ -709,30 +710,30 @@ m_getcl(int how, short type, int flags) return (uma_zalloc_arg(zone_pack, &args, how)); } +/* + * XXX: m_cljset() is a dangerous API. One must attach only a new, + * unreferenced cluster to an mbuf(9). It is not possible to assert + * that, so care can be taken only by users of the API. + */ static __inline void m_cljset(struct mbuf *m, void *cl, int type) { - uma_zone_t zone; int size; switch (type) { case EXT_CLUSTER: size = MCLBYTES; - zone = zone_clust; break; #if MJUMPAGESIZE != MCLBYTES case EXT_JUMBOP: size = MJUMPAGESIZE; - zone = zone_jumbop; break; #endif case EXT_JUMBO9: size = MJUM9BYTES; - zone = zone_jumbo9; break; case EXT_JUMBO16: size = MJUM16BYTES; - zone = zone_jumbo16; break; default: panic("%s: unknown cluster type %d", __func__, type); @@ -743,10 +744,9 @@ m_cljset(struct mbuf *m, void *cl, int t m->m_ext.ext_free = m->m_ext.ext_arg1 = m->m_ext.ext_arg2 = NULL; m->m_ext.ext_size = size; m->m_ext.ext_type = type; - m->m_ext.ext_flags = 0; - m->m_ext.ext_cnt = uma_find_refcnt(zone, cl); + m->m_ext.ext_flags = EXT_FLAG_EMBREF; + m->m_ext.ext_count = 1; m->m_flags |= M_EXT; - } static __inline void @@ -775,6 +775,16 @@ m_last(struct mbuf *m) return (m); } +static inline u_int +m_extrefcnt(struct mbuf *m) +{ + + KASSERT(m->m_flags & M_EXT, ("%s: M_EXT missing", __func__)); + + return ((m->m_ext.ext_flags & EXT_FLAG_EMBREF) ? m->m_ext.ext_count : + *m->m_ext.ext_cnt); +} + /* * mbuf, cluster, and external object allocation macros (for compatibility * purposes). @@ -784,8 +794,8 @@ m_last(struct mbuf *m) #define MGETHDR(m, how, type) ((m) = m_gethdr((how), (type))) #define MCLGET(m, how) m_clget((m), (how)) #define MEXTADD(m, buf, size, free, arg1, arg2, flags, type) \ - (void )m_extadd((m), (caddr_t)(buf), (size), (free), (arg1), (arg2),\ - (flags), (type), M_NOWAIT) + m_extadd((m), (caddr_t)(buf), (size), (free), (arg1), (arg2), \ + (flags), (type)) #define m_getm(m, len, how, type) \ m_getm2((m), (len), (how), (type), M_PKTHDR) @@ -796,7 +806,7 @@ m_last(struct mbuf *m) */ #define M_WRITABLE(m) (!((m)->m_flags & M_RDONLY) && \ (!(((m)->m_flags & M_EXT)) || \ - (*((m)->m_ext.ext_cnt) == 1)) ) \ + (m_extrefcnt(m) == 1))) /* Check if the supplied mbuf has a packet header, or else panic. */ #define M_ASSERTPKTHDR(m) \ From owner-svn-src-head@freebsd.org Tue Mar 1 00:26:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B192AB8069; Tue, 1 Mar 2016 00:26:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4C6E6697; Tue, 1 Mar 2016 00:26:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 43F79160C; Tue, 1 Mar 2016 00:26:40 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 018ED1C862; Tue, 1 Mar 2016 00:26:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id LU7zS6NpYq1I; Tue, 1 Mar 2016 00:26:37 +0000 (UTC) Subject: Re: svn commit: r296116 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 16B281C858 To: Ngie Cooper References: <201602262213.u1QMDVjX033086@repo.freebsd.org> Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Bryan Drewery Organization: FreeBSD Message-ID: <56D4E1BC.1070508@FreeBSD.org> Date: Mon, 29 Feb 2016 16:26:36 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:26:40 -0000 On 2/29/16 4:12 PM, Ngie Cooper wrote: > On Fri, Feb 26, 2016 at 2:13 PM, Bryan Drewery wrote: >> Author: bdrewery >> Date: Fri Feb 26 22:13:31 2016 >> New Revision: 296116 >> URL: https://svnweb.freebsd.org/changeset/base/296116 >> >> Log: >> Remove _manpages and _maninstall targets as they are no longer needed. >> >> r96164 added them to avoid recursing twice with _SUBDIR. That issue was >> fixed in bsd.subdir.mk in r291635 for all targets. >> >> Sponsored by: EMC / Isilon Storage Division > > This probably deserves release notes. I know that we've used some of > these targets internally at least... someone might have implemented > their own targets based on this (not so) documented info. > "We" being Isilon haven't used these. These were very much internal only, committed as such and not documented. I don't think we need to document it anywhere. Either someone hits an error with it due to abuse and fixes it or they don't hit an error on it. It would just be noise in release notes, like removing any other private API (like static functions). -- Regards, Bryan Drewery From owner-svn-src-head@freebsd.org Tue Mar 1 00:33:34 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00308AB83F6; Tue, 1 Mar 2016 00:33:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CD61FA8C; Tue, 1 Mar 2016 00:33:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u210XWAC055101; Tue, 1 Mar 2016 00:33:32 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u210XWvQ055098; Tue, 1 Mar 2016 00:33:32 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201603010033.u210XWvQ055098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 1 Mar 2016 00:33:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296243 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:33:34 -0000 Author: glebius Date: Tue Mar 1 00:33:32 2016 New Revision: 296243 URL: https://svnweb.freebsd.org/changeset/base/296243 Log: Remove UMA_ZONE_REFCNT feature, now unused. Blessed by: jeff Modified: head/sys/vm/uma.h head/sys/vm/uma_core.c head/sys/vm/uma_int.h Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Tue Mar 1 00:17:14 2016 (r296242) +++ head/sys/vm/uma.h Tue Mar 1 00:33:32 2016 (r296243) @@ -262,7 +262,7 @@ uma_zone_t uma_zcache_create(char *name, * information in the vm_page. */ #define UMA_ZONE_SECONDARY 0x0200 /* Zone is a Secondary Zone */ -#define UMA_ZONE_REFCNT 0x0400 /* Allocate refcnts in slabs */ +/* 0x0400 Unused */ #define UMA_ZONE_MAXBUCKET 0x0800 /* Use largest buckets */ #define UMA_ZONE_CACHESPREAD 0x1000 /* * Spread memory start locations across @@ -287,7 +287,7 @@ uma_zone_t uma_zcache_create(char *name, */ #define UMA_ZONE_INHERIT \ (UMA_ZONE_OFFPAGE | UMA_ZONE_MALLOC | UMA_ZONE_NOFREE | \ - UMA_ZONE_HASH | UMA_ZONE_REFCNT | UMA_ZONE_VTOSLAB | UMA_ZONE_PCPU) + UMA_ZONE_HASH | UMA_ZONE_VTOSLAB | UMA_ZONE_PCPU) /* Definitions for align */ #define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */ @@ -623,21 +623,6 @@ void uma_zone_set_freef(uma_zone_t zone, void uma_prealloc(uma_zone_t zone, int itemcnt); /* - * Used to lookup the reference counter allocated for an item - * from a UMA_ZONE_REFCNT zone. For UMA_ZONE_REFCNT zones, - * reference counters are allocated for items and stored in - * the underlying slab header. - * - * Arguments: - * zone The UMA_ZONE_REFCNT zone to which the item belongs. - * item The address of the item for which we want a refcnt. - * - * Returns: - * A pointer to a uint32_t reference counter. - */ -uint32_t *uma_find_refcnt(uma_zone_t zone, void *item); - -/* * Used to determine if a fixed-size zone is exhausted. * * Arguments: Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Tue Mar 1 00:17:14 2016 (r296242) +++ head/sys/vm/uma_core.c Tue Mar 1 00:33:32 2016 (r296243) @@ -112,7 +112,6 @@ static uma_zone_t zones = &masterzone_z; /* This is the zone from which all of uma_slab_t's are allocated. */ static uma_zone_t slabzone; -static uma_zone_t slabrefzone; /* With refcounters (for UMA_ZONE_REFCNT) */ /* * The initial hash tables come out of this zone so they can be allocated @@ -155,12 +154,6 @@ static int booted = 0; #define UMA_STARTUP2 2 /* - * Only mbuf clusters use ref zones. Just provide enough references - * to support the one user. New code should not use the ref facility. - */ -static const u_int uma_max_ipers_ref = PAGE_SIZE / MCLBYTES; - -/* * This is the handle used to schedule events that need to happen * outside of the allocation fast path. */ @@ -951,7 +944,6 @@ zone_drain(uma_zone_t zone) static uma_slab_t keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int wait) { - uma_slabrefcnt_t slabref; uma_alloc allocf; uma_slab_t slab; uint8_t *mem; @@ -1014,11 +1006,6 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t #ifdef INVARIANTS BIT_ZERO(SLAB_SETSIZE, &slab->us_debugfree); #endif - if (keg->uk_flags & UMA_ZONE_REFCNT) { - slabref = (uma_slabrefcnt_t)slab; - for (i = 0; i < keg->uk_ipers; i++) - slabref->us_refcnt[i] = 0; - } if (keg->uk_init != NULL) { for (i = 0; i < keg->uk_ipers; i++) @@ -1266,9 +1253,6 @@ keg_small_init(uma_keg_t keg) keg->uk_rsize < sizeof(struct pcpu), ("%s: size %u too large", __func__, keg->uk_rsize)); - if (keg->uk_flags & UMA_ZONE_REFCNT) - rsize += sizeof(uint32_t); - if (keg->uk_flags & UMA_ZONE_OFFPAGE) shsize = 0; else @@ -1356,8 +1340,6 @@ keg_large_init(uma_keg_t keg) /* Check whether we have enough space to not do OFFPAGE. */ if ((keg->uk_flags & UMA_ZONE_OFFPAGE) == 0) { shsize = sizeof(struct uma_slab); - if (keg->uk_flags & UMA_ZONE_REFCNT) - shsize += keg->uk_ipers * sizeof(uint32_t); if (shsize & UMA_ALIGN_PTR) shsize = (shsize & ~UMA_ALIGN_PTR) + (UMA_ALIGN_PTR + 1); @@ -1446,7 +1428,7 @@ keg_ctor(void *mem, int size, void *udat if (arg->flags & UMA_ZONE_ZINIT) keg->uk_init = zero_init; - if (arg->flags & UMA_ZONE_REFCNT || arg->flags & UMA_ZONE_MALLOC) + if (arg->flags & UMA_ZONE_MALLOC) keg->uk_flags |= UMA_ZONE_VTOSLAB; if (arg->flags & UMA_ZONE_PCPU) @@ -1458,13 +1440,6 @@ keg_ctor(void *mem, int size, void *udat if (keg->uk_flags & UMA_ZONE_CACHESPREAD) { keg_cachespread_init(keg); - } else if (keg->uk_flags & UMA_ZONE_REFCNT) { - if (keg->uk_size > - (UMA_SLAB_SIZE - sizeof(struct uma_slab_refcnt) - - sizeof(uint32_t))) - keg_large_init(keg); - else - keg_small_init(keg); } else { if (keg->uk_size > (UMA_SLAB_SIZE - sizeof(struct uma_slab))) keg_large_init(keg); @@ -1472,15 +1447,8 @@ keg_ctor(void *mem, int size, void *udat keg_small_init(keg); } - if (keg->uk_flags & UMA_ZONE_OFFPAGE) { - if (keg->uk_flags & UMA_ZONE_REFCNT) { - if (keg->uk_ipers > uma_max_ipers_ref) - panic("Too many ref items per zone: %d > %d\n", - keg->uk_ipers, uma_max_ipers_ref); - keg->uk_slabzone = slabrefzone; - } else - keg->uk_slabzone = slabzone; - } + if (keg->uk_flags & UMA_ZONE_OFFPAGE) + keg->uk_slabzone = slabzone; /* * If we haven't booted yet we need allocations to go through the @@ -1517,10 +1485,6 @@ keg_ctor(void *mem, int size, void *udat /* Size of the slab struct and free list */ totsize = sizeof(struct uma_slab); - /* Size of the reference counts. */ - if (keg->uk_flags & UMA_ZONE_REFCNT) - totsize += keg->uk_ipers * sizeof(uint32_t); - if (totsize & UMA_ALIGN_PTR) totsize = (totsize & ~UMA_ALIGN_PTR) + (UMA_ALIGN_PTR + 1); @@ -1534,8 +1498,6 @@ keg_ctor(void *mem, int size, void *udat * sure here anyway. */ totsize = keg->uk_pgoff + sizeof(struct uma_slab); - if (keg->uk_flags & UMA_ZONE_REFCNT) - totsize += keg->uk_ipers * sizeof(uint32_t); if (totsize > PAGE_SIZE * keg->uk_ppera) { printf("zone %s ipers %d rsize %d size %d\n", zone->uz_name, keg->uk_ipers, keg->uk_rsize, @@ -1797,7 +1759,6 @@ uma_startup(void *bootmem, int boot_page { struct uma_zctor_args args; uma_slab_t slab; - u_int slabsize; int i; #ifdef UMA_DEBUG @@ -1856,18 +1817,6 @@ uma_startup(void *bootmem, int boot_page NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZFLAG_INTERNAL); - /* - * We also create a zone for the bigger slabs with reference - * counts in them, to accomodate UMA_ZONE_REFCNT zones. - */ - slabsize = sizeof(struct uma_slab_refcnt); - slabsize += uma_max_ipers_ref * sizeof(uint32_t); - slabrefzone = uma_zcreate("UMA RCntSlabs", - slabsize, - NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, - UMA_ZFLAG_INTERNAL); - hashzone = uma_zcreate("UMA Hash", sizeof(struct slabhead *) * UMA_HASH_SIZE_INIT, NULL, NULL, NULL, NULL, @@ -2090,14 +2039,7 @@ uma_zsecond_add(uma_zone_t zone, uma_zon error = EINVAL; goto out; } - /* - * Both must either be refcnt, or not be refcnt. - */ - if ((zone->uz_flags & UMA_ZONE_REFCNT) != - (master->uz_flags & UMA_ZONE_REFCNT)) { - error = EINVAL; - goto out; - } + /* * The underlying object must be the same size. rsize * may be different. @@ -3220,26 +3162,6 @@ uma_prealloc(uma_zone_t zone, int items) } /* See uma.h */ -uint32_t * -uma_find_refcnt(uma_zone_t zone, void *item) -{ - uma_slabrefcnt_t slabref; - uma_slab_t slab; - uma_keg_t keg; - uint32_t *refcnt; - int idx; - - slab = vtoslab((vm_offset_t)item & (~UMA_SLAB_MASK)); - slabref = (uma_slabrefcnt_t)slab; - keg = slab->us_keg; - KASSERT(keg->uk_flags & UMA_ZONE_REFCNT, - ("uma_find_refcnt(): zone possibly not UMA_ZONE_REFCNT")); - idx = ((uintptr_t)item - (uintptr_t)slab->us_data) / keg->uk_rsize; - refcnt = &slabref->us_refcnt[idx]; - return refcnt; -} - -/* See uma.h */ static void uma_reclaim_locked(bool kmem_danger) { @@ -3260,7 +3182,6 @@ uma_reclaim_locked(bool kmem_danger) * zones are drained. We have to do the same for buckets. */ zone_drain(slabzone); - zone_drain(slabrefzone); bucket_zone_drain(); } Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Tue Mar 1 00:17:14 2016 (r296242) +++ head/sys/vm/uma_int.h Tue Mar 1 00:33:32 2016 (r296243) @@ -250,17 +250,7 @@ struct uma_slab { #define us_link us_type._us_link #define us_size us_type._us_size -/* - * The slab structure for UMA_ZONE_REFCNT zones for whose items we - * maintain reference counters in the slab for. - */ -struct uma_slab_refcnt { - struct uma_slab us_head; /* slab header data */ - uint32_t us_refcnt[0]; /* Actually larger. */ -}; - typedef struct uma_slab * uma_slab_t; -typedef struct uma_slab_refcnt * uma_slabrefcnt_t; typedef uma_slab_t (*uma_slaballoc)(uma_zone_t, uma_keg_t, int); struct uma_klink { From owner-svn-src-head@freebsd.org Tue Mar 1 00:50:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30F3BAB8B32; Tue, 1 Mar 2016 00:50:41 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 02EA111F2; Tue, 1 Mar 2016 00:50:40 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u210oe1C058525; Tue, 1 Mar 2016 00:50:40 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u210od1x058523; Tue, 1 Mar 2016 00:50:39 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603010050.u210od1x058523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 1 Mar 2016 00:50:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296245 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 00:50:41 -0000 Author: jhibbits Date: Tue Mar 1 00:50:39 2016 New Revision: 296245 URL: https://svnweb.freebsd.org/changeset/base/296245 Log: Add VM_MEMATTR_CACHEABLE support for AIM, for parity with Book-E. Not used right now, but may be in the future anyway. Modified: head/sys/powerpc/aim/mmu_oea.c head/sys/powerpc/aim/mmu_oea64.c Modified: head/sys/powerpc/aim/mmu_oea.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea.c Tue Mar 1 00:45:12 2016 (r296244) +++ head/sys/powerpc/aim/mmu_oea.c Tue Mar 1 00:50:39 2016 (r296245) @@ -384,6 +384,8 @@ moea_calc_wimg(vm_paddr_t pa, vm_memattr switch (ma) { case VM_MEMATTR_UNCACHEABLE: return (PTE_I | PTE_G); + case VM_MEMATTR_CACHEABLE: + return (PTE_M); case VM_MEMATTR_WRITE_COMBINING: case VM_MEMATTR_WRITE_BACK: case VM_MEMATTR_PREFETCHABLE: Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Tue Mar 1 00:45:12 2016 (r296244) +++ head/sys/powerpc/aim/mmu_oea64.c Tue Mar 1 00:50:39 2016 (r296245) @@ -434,6 +434,8 @@ moea64_calc_wimg(vm_paddr_t pa, vm_memat switch (ma) { case VM_MEMATTR_UNCACHEABLE: return (LPTE_I | LPTE_G); + case VM_MEMATTR_CACHEABLE: + return (LPTE_M); case VM_MEMATTR_WRITE_COMBINING: case VM_MEMATTR_WRITE_BACK: case VM_MEMATTR_PREFETCHABLE: From owner-svn-src-head@freebsd.org Tue Mar 1 02:36:52 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2206AAB8508; Tue, 1 Mar 2016 02:36:52 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 AA80A1281; Tue, 1 Mar 2016 02:36:51 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u212aoPm090991; Tue, 1 Mar 2016 02:36:50 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u212aocJ090987; Tue, 1 Mar 2016 02:36:50 GMT (envelope-from np@FreeBSD.org) Message-Id: <201603010236.u212aocJ090987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Tue, 1 Mar 2016 02:36:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296249 - in head/sys: conf dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 02:36:52 -0000 Author: np Date: Tue Mar 1 02:36:50 2016 New Revision: 296249 URL: https://svnweb.freebsd.org/changeset/base/296249 Log: cxgbe(4): Update T5 and T4 firmwares to 1.15.28.0. These firmwares were obtained from the beta "Chelsio T5/T4 Unified Wire v2.12.0.2 for Linux" release. Changes since last release are listed in the "Release Notes" accompanying the beta release and are copy-pasted here as well. The plan is to have only GA'd firmwares in any -STABLE FreeBSD branch so I'll MFC this (after 2 months) only if it ends up in a GA release. ================================================================================ ================================================================================ 22.1. T5 Firmware +++++++++++++++++++++++++++++++++ Version : 1.15.28.0 Date : 02/29/2016 ================================================================================ FIXES ----- BASE: - Fixed an issue in FW_RSS_VI_CONFIG_CMD handling where the default ingress queue was ignored. - Fixed an issue where adapter failed to load fw by adjusting DRAM frequency. - Fixed an issue in watchdog which was causing VM bring-up failure after reboot. - Fixed 40G link failures with some switches when auto-negotiation enabled. - Fixed to improve on link bring-up time. - Per port buffer groups size doubled to improve performance. - Fixed an issue where bogus d3hot bits were set causing traffic stall. - Fixed an issue where sometimes adapter was not seen after reboot. - Fixed an issue where iWARP was crashing in conjunction with traffic management. - Fixed an issue where link failed to come up after removing twinax cable and inserting optical module. OFLD - Fixed a potential iSCSI data corruption issue by disabling RxFragEn flag. FOiSCSI - Fixed an issue in recovery path where connection was getting closed before recovery processing was done. - Fixed an issue in TCP port reuse. - Fixed an issue in recovery path when large number (>64) of iSCSI connections were in use. - Returned ENETUNREACH if IP was not been provisioned yet and driver tried to use given inerface. ENHANCEMENTS ------------ BASE: - Added new interface to program DCA settings in SGE contexts; allow 32-byte IQE size - Added PTP interface fw_ptp_ts to support PTP Frequeny and Offset adjustment. - Added MPS raw interface. ETH: - New mailbox command FW_DCB_IEEE_CMD api added for IEEE dcbx. OFLD: - WR opcode is returned to host in cqe error response. ================================================================================ ================================================================================ 22.2. T4 Firmware +++++++++++++++++ Version : 1.15.28.0 Date : 02/29/2016 ================================================================================ FIXES ----- BASE: - Fixed an issue in FW_RSS_VI_CONFIG_CMD handling where default ingress queue was ignored. - Fixed an issue in watchdog which was causing VM bring-up failure after reboot. - Per port buffer groups size doubled to improve performance. - Fixed an issue where iWARP was crashing in conjunction with traffic management. FOiSCSI: - Fixed an issue in recovery path where connection was getting closed before recovery processing was done. - Fixed an issue in TCP port reuse. - Fixed an issue in recovery path when large number (>64) of iSCSI connections were in use. - Returned ENETUNREACH if IP had not been provisioned yet and driver tried to use given inerface. ENHANCEMENTS ------------ BASE: - Added MPS raw interface. ETH: - New mailbox command FW_DCB_IEEE_CMD api added for IEEE dcbx. ================================================================================ Obtained from: Chelsio Communications MFC after: 2 months Sponsored by: Chelsio Communications Added: head/sys/dev/cxgbe/firmware/t4fw-1.15.28.0.bin.uu (contents, props changed) head/sys/dev/cxgbe/firmware/t5fw-1.15.28.0.bin.uu (contents, props changed) Deleted: head/sys/dev/cxgbe/firmware/t4fw-1.14.4.0.bin.uu head/sys/dev/cxgbe/firmware/t5fw-1.14.4.0.bin.uu Modified: head/sys/conf/files head/sys/dev/cxgbe/common/t4_hw.c head/sys/dev/cxgbe/firmware/t4fw_cfg.txt head/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt head/sys/dev/cxgbe/firmware/t4fw_interface.h head/sys/dev/cxgbe/firmware/t5fw_cfg.txt head/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt head/sys/modules/cxgbe/t4_firmware/Makefile head/sys/modules/cxgbe/t5_firmware/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue Mar 1 02:07:14 2016 (r296248) +++ head/sys/conf/files Tue Mar 1 02:36:50 2016 (r296249) @@ -1212,7 +1212,7 @@ t4fw.fwo optional cxgbe \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t4fw-1.14.4.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t4fw-1.15.28.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" @@ -1236,7 +1236,7 @@ t5fw.fwo optional cxgbe \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t5fw-1.14.4.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t5fw-1.15.28.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" Modified: head/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.c Tue Mar 1 02:07:14 2016 (r296248) +++ head/sys/dev/cxgbe/common/t4_hw.c Tue Mar 1 02:36:50 2016 (r296249) @@ -5218,13 +5218,14 @@ int t4_set_addr_hash(struct adapter *ada bool ucast, u64 vec, bool sleep_ok) { struct fw_vi_mac_cmd c; + u32 val; memset(&c, 0, sizeof(c)); c.op_to_viid = htonl(V_FW_CMD_OP(FW_VI_MAC_CMD) | F_FW_CMD_REQUEST | F_FW_CMD_WRITE | V_FW_VI_ENABLE_CMD_VIID(viid)); - c.freemacs_to_len16 = htonl(F_FW_VI_MAC_CMD_HASHVECEN | - V_FW_VI_MAC_CMD_HASHUNIEN(ucast) | - V_FW_CMD_LEN16(1)); + val = V_FW_VI_MAC_CMD_ENTRY_TYPE(FW_VI_MAC_TYPE_HASHVEC) | + V_FW_VI_MAC_CMD_HASHUNIEN(ucast) | V_FW_CMD_LEN16(1); + c.freemacs_to_len16 = cpu_to_be32(val); c.u.hash.hashvec = cpu_to_be64(vec); return t4_wr_mbox_meat(adap, mbox, &c, sizeof(c), NULL, sleep_ok); } Added: head/sys/dev/cxgbe/firmware/t4fw-1.15.28.0.bin.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/firmware/t4fw-1.15.28.0.bin.uu Tue Mar 1 02:36:50 2016 (r296249) @@ -0,0 +1,9540 @@ +/*- + * Copyright (c) 2016 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, 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. + */ +begin-base64 644 t4fw +AAAEIwEPHAAAAQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAABAYEFQQdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IEZyaSBGZWIgMjYgMDk6 +NTk6NDMgUFNUIDIwMTYgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j +dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDR4eCAwMS4wZi4xYy4wMAAAAAAAAAAAAAAAAJfa4oVg +AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//2c4QGUcCAAAADhAZwE4QB5AAAC +AEDhAHmAAAYAQAACAAoABgAK4QB5BAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA +AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//kvAAAAAA +H/+S9AAAAAAf/5L4AAAAAB//kvwf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/ +zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC +EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT +Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/ +uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ +JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA +MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtEv+VwDAnNwAnNxAn +NyAnNzAjPQFyM+0S/5AV/5AW/5HAMNcgBWYBYAAZAAAAAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH +BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF +IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 +AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m +lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA +H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+KUOMACfgf/4pQH/+KUOMAFEgf +/4pQH/+KUOMAFEgf/4pQH/+L7OMAFEgf/4vsH/+S8OMAFeQf/5LwH/+0vOMAHOgf/7S8H/+0vOMA +PrQf/8AAH//+ieMAPrQgAAAAIAABauMAfUAgAAF4IAABfOMAfqwgAAF8IAABheMAfrAgAAGYIAAB +nOMAfrwgAAGcIAABpeMAfsAgAAG4IAABvOMAfswgAAG8IAABxeMAftAgAAHYIAAB2OMAftwgAAHc +IAAB4uMAftwgAAH4IAAB+OMAfuQgAAH8IAAB/OMAfuQgAAIYIAACGOMAfuQgAAIcIAACHOMAfuQg +AAI4IAACOOMAfuQgAAI8IAACPOMAfuQgAAJYIAACWOMAfuQgAAJcIAACYuMAfuQgAAJ4IAACeOMA +fuwgAAJ8IAACguMAfuwgAAKYIAHxuuMAfvQgAwAAIAMU4OMCbhggAxTgIAMU4OMCgvggAxTgIAbT +pOMCgvggBtOwIAbXIOMGQcggCAAAIAgOUOMGRTggCA5QIAkl/uMGU4ggCSYAIAkmzOMHazggCwAA +IAsAAOMHbAQgCwAAIAsAAOMHbAQgCwAAIAufeOMHbAQAAAAAAAAAAAAAAAAgABGGIAAReCAAFWIg +ABF4IAAU3SAAEXggABIqIAAUdSAAE/ogABF4IAATqSAAE2IgABL1IAARZSAAEp8gABF4IAAReCAA +EXggABJKAAAAAAEQGAEABAAAAAAAAAAAAAD///////8P/P//8P///wD8IACrmyAArQIgAK0yIACs ++CAArLkgAKyvIACseSAArG8gAKxeIACsCiAArTAgAKwAIACr0yAArTIgAKvJAAAAAAAAAAoAAAAK +AAAAFAAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEA +AQACAAMABAAFAAYABwAIAAkACgAOABEAFQAZAB4AIwAtADwAUABkAMgBLAGQAfQAAAAAAAAAAAAA +AAAAAAAAAAAAAQABAAIAAgADAAMAAwADAAQABAAEAAQABAAFAAUABQAFAAUABQAGAAYABwAHAAAA +AgAAAAYAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKA +AAADgAAABQEAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAAAcAAAAKAAAADgAAABQAAA +AcAAAAKAAAADgAD/AAECAgAAAAAAAAAAAAAAECBAAAAAAAAAAAAAAAAAAAQAAgABAACAAEAAIAAQ +AAggQIAAAAAAAAAAAAAAAAAAIAiocCAIqHAgCKgpIAin+CAIp8ogCKeeIAinniAIqU4gCKlOIAin +niAIqU4gCKlOIAinniAIp54gCKdSIAipTiAIqU4gCKlOIAipTiAIqU4gCKlOIAipTiAIqU4gCKlO +IAipTiAIqU4gCKlOIAipTiAIqU4gCKlOIAipTiAIp4EgAwpQAAAAASADClgAAAACIAMOeAAAAP8g +AwfwAAAA/yADCjwAAAACIAMKQAAAAAMgAwpIAAAABwAAAAAAAAAAIAMKIAAAAAEgAwokAAAAAiAD +CiwAAAAEIAMOeAAAAP8gAwfwAAAA/wAAAAAAAAAAIAMH8AAAAAAgAw54AAAAACADCQAAAAABIAMJ +CAAAAAQgAwkQAAAACCADCRwAAAAgIAMJLAAAAEAgAwk0AAAAgCADCTwAAAEAIAMJRAAAAgAgAwlY +AAAEACADCWwAAAgAIAMJhAAAEAAgAwmYAAAgACADCagAAEAAIAMJtAAAgAAgAwnIAAEAACADCdgA +AgAAIAMJ6AAQAAAgAwoAACAAACADChgAQAAAAAAAAAAAAAAgAwjsAAAAECADCPQAAAARIAMI1AAA +AAAgAwjYAAAAASADCNwAAAACIAMI5AAAAAMAAAAAAAD//wAAAAAAAP//IAMIVAAAAQAgAwhgAAAA +gCADCHAAAABAIAMIgAAAACAgAwiQAAAAECADCKAAAAAIIAMIrAAAAAQgAwi4AAAAAiADCMQAAAAB +AAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEA +AAABAAAAAQAAAAEAAAABAAAABwAAAAcAAAAGAAAABgAMNQAAEEaqABRYVQAYagAAACtoAAAjgwAA +GGoAAA0GAAALKgAAAAAAAAAAAAAAAAAAaCsAAGgrAABsggAAb5wAAEpoAABKaAAATSkAAEpoAABO +6gAATJgAAFI9AABPuAABhqAAAYagAAII1gACCNYAAgjVAAII1QACiwsAAosLAAII1QACtnIAArZy +AAMNQAAEBgcAAAAAAAAAAAAAAAAAAgIFBQgICwsODhERFBQXFxoaHR0gICMjJiYpKSwsLy8yMjU1 +ODg7OwAAAAAAAAABAxERCAgQCQMBAAAAAAAAIATQSCABq4wgADVAIAF7GCABp9ggAaJMIAFYGCAD +4tQf/+o8IACXaCAArfAf/90QIABmXCAAV8gAAAAAAAAAACABfMggAIYgAAAAAAAAAAAf/9X0H//F +fB//wpQf/8AwIABSyCAASuwgAEcoIACjDB//4/AgBqbIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAACABsuQgAZMIIAC3mCAAtswf//EYH//QoB//zDggAIOYIAU8GCABLcgg +AQ3UIAD1ACAA6XAgANzsIADPZCAAunAgBNM4IAQUXCABItAgBDgwIAHfYCAAZhwAAAAAIAC39CAF +tFAgAKsIIAGFbCAAApggAJzIAAAAAAAAAAAf//RgIAC3tCAEFwwAAAAAAAAAACADW4wgACWEIAAc +1CAAJIAAAAAAIAAweCAALhAgACtAAAAAACAANQAgASaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAIAAynCAEz+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAANEAg +A2RwIAAzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAICwAAACADEjQIAAAAIAMS +QAgAAAAgAxJMCgAAACADElgMAAAAIAMSZBIAAAAgAxJ0DQAAACADEogOAAAAIAMSmBMAAAAgAxKo +CgAAACADErwOAAAAIAMSyBgAAAAgAxLYDQAAACADEvQOAAAAIAMTBBAAAAAgAxMUEgAAACADEygO +AAAAIAMTPBAAAAAgAxNMEQAAACADE2AKAAAAIAMTdAsAAAAgAxOADQAAACADE4wUAAAAIAMTnAoA +AAAgAxO0DwAAACADE8AGAAAAIAMT0AYAAAAgAxPYBgAAACADE+AGAAAAIAMT6AYAAAAgAxPwCQAA +ACADE/gGAAAAIAMUBAQAAAAgAxQMBgAAACADFBQLAAAAIAMUHAsAAAAgAxQoBAAAACADFAwEAAAA +IAMUNAkAAAAgAxQ8CQAAACADFEgAAAAAAAAAAA0AAAAgAxRUCgAAACADFGQGAAAAIAMUcAIAAAAg +AxR4AwAAACADDkwBAAAAIAMUfAAAAAAAAAAA12qkeOjHt1YkIHDbwb3O7vV8D69Hh8YqqDBGE/1G +lQFpgJjYi0T3r///W7GJXNe+a5ARIv2YcZOmeUOOSbQIIfYeJWLAQLNAJl5aUem2x6rWLxBdAkQU +U9ih5oHn0/vIIeHN5sM3B9b01Q2HRVoU7anj6QX876P4Z28C2Y0qTIr/+jlCh3H2gW2dYSL95TgM +pL7qREvez6n2u0tgvr+8cCibfsbqoSf61O8whQSIHQXZ1NA55tuZ5R+ifPjErFZl9CkiREMq/5er +lCOn/JOgOWVbWcOPDMyS/+/0fYWEXdFvqH5P/izm4KMBQxROCBGh91N+gr068jUq19K764bTkQcM +ERYHDBEWBwwRFgcMERYFCQ4UBQkOFAUJDhQFCQ4UBAsQFwQLEBcECxAXBAsQFwYKDxUGCg8VBgoP +FQYKDxUf/8AAAAQAICAG1yAgBtrgH/zeACAG12Af/6vUH/+s5B//sFADgAAAgQAAAB//sEAA//gA +AQAAAAAQAACBBAEAgQQAAAEEAAABBAEAgAAAAAAF//8f/4VABgAAACoAAAAf/8/4IARSZAIAAACA +EAAAQUAAAEFAAQCDAAAB//+//7////8f/5isBAAACCADDGiBgAAADAAAAB//k0D//wAA//8A/wAB +AAAAAP//H/+xQB//qKQP///////QJP//0yAf/2ZsH/zg6CAG1Pz//8EgH/9mYB//ZuQf/62cH/+e +tB/84gAAAAh44P/+AOEBkgAf/5kgAP///x//rbAf/51QBEEACAQBAAilAAAAwAAAAMAEAAAwAAAA +H/+uQAAA/4AgBtOwIAtgkOEALgAf/640AAAc4B//qfwf/67wH/+qYAAAFyDgAACg4QAwuAAAgADh +AGAQAABAAOECEADhAjAA4QJQAOECcADhABAIH/zhQOEAe3Af/7R8H/+0dB/84Agf/7R4H/+0lB// +tIwf/7SQH/+0rB//tKQf/7SoIAbXYB//sUAf/6vUH/zeAB//rOQf/61AH/+dYB//rwwAAP+AAAAd +wB//k0Af/68YH/+vFB//r3ggCwVgBAAACAUAAACD/wAAgQAAAAAQAAAqAAAAIAAHrCADC4gf/4mQ +H/+FQB//h0Qf/7BQZ0UjAe/Nq4mYutz+EDJUdh//gAAAAD8oIAMOTM////8gCwZQEAAAAD////8C +AAAAQAAAAP//f/8gCwdwH/+wQCAAIbggCwegIAsIEAgAAAAA////IAsIgPf///8gCwpwIAAeYP/+ +//8gCxVQgAAAACADDGAMAAAAAABAAAAA//8AAIAA//v//w/2gAAgCxjAIAsY8AABAAAABAAAIAtx +wCAAMHggADJYIAAuECALGYAgACtAIAsaECALGmAgCxrwBAEACOAAAAAgCxtwIAsbMFMAAAAgCxuQ +UgAAACALG9BRAAAAIAHolB//qmAgCx5gIAsewCALHpAgCyFAH/+tsCALIZAf/51YH/+tXCALI4AU +AAAAgAAAAngAAACAAAAGgACwAAAACgAA4zCS///wAIAAsQDhAZoAAAIAACALI0Af/5rUAAB+QB// +rZQA/8AAH/+TxAEAAAAoAAAAJgAAACALI7Af/6/0H/+p8CALJgAf/7EYOwAACA4AAADAAAAA0AAA +AB//gFAAAB/aAACJFB/84HQAAAhQH/+UAAYAAAAFgAAAIAt3MB//qbQrAAAAIABNsB//q0w1AAAA +A4AAAAMAAAAH////AD///4BAAAAID///H////yAAAAAAAMAAH/+teD0AAAAf/5lMBwAAAIEEAQCB +BAAAH/+rtAAAOpjDAAAAAAAP/wBDAAAAAAgABAAAACALd5Af/7PwH/+xYB//mKwABgAA4QB6AB// +mRwgoAAAH/+r5B//nWgf/51UIAt3wAADB4AgC3gwH/+bNAAgAAAAQAAAAAAJAAAAMAL//Ph/o/+7 +AKP/ugANAAAA4AMAAIP/tgAP////D//4AP8AAAAgC3hwIAsm8CALJyAgC3kAAA8AAAAKAAD//wAP +H/+tgAP/wACD/8AAIAt5gCALefAf/65gH/+x0P9g8AAf/7GwH/+TAASAAAgf/4BgAEQAAP8f//8A +wAAAAYDCAAAAgQDwAAAAgYAAAP9///8f/6ik/7//////AAAAgAAAAACG3R//nqwf/OIAH/+T8O4A +AAAAAAl8H/ziDA8AAAAgCydgH/+uAAAACHwf/68EH/+fKB//mUgf/4BwIAbVUAAAMAAAACcQH//c +gCALgdAf/65kAAD//h//nUjerb7vIAMHoDQAAAA/AAAAH/+uzAAAiQYAmQAAEAAHAgHAgACZAAAA +H/+x1ACIAAiCgAABH/+xaB//sHQDFQAAAxEAAAAPA/8gCyuQH/+tZCALgiAgCyvwIAssQCALLNAg +CyvAIADkFCALLKAgCy5wIAsuoCALLvAgCy9QIADpuCkAAAAgAPAcIAuCkCALgvAgAPoQ8PDw8P8A +/wCqqqqqzMzMzB//s+AAACCgH/+x6AAD//8AACf/IAECkCALg2AAD0JAIAQ9aB//reQf/640AAkA +AAAASACCAAAAIAEmmCALg9AAAB9AIAs4oCALOMAgCzjgAAkACB//sNwwAAAAH/+x3B//rqQgCzsQ +IAs68P//9/8gCztwIARDrAAAg/8gBtkoFaAAACAG2iAf/6wAAAAIBgAAiMx/AAAAAAAP/gAMAAAf +/7EoIAuIMCALiHAgC4dQIAuH4AAA4AAgC4Zw//wAACALh7Af/5roAAQD/woAAAAf/7AEH/+ukB// +sMQf/55Ag/+3AIP/tiAgCzug4QAAADMAAAAf/7EwH/+yJAP/4AB///8AAD/2kAAAH+gD//AAIAt2 +gCALdkAgC3agH/+zMCALPCAaAAAAIAs8cCABcSgf/7EsAA///x//q/Af/7DgH/+rzB//rpQgC4jw +H/+diB//rUgf/6oIH/+r/CAAaoAgBtTYIAAFiB//qEAf/5poH/+Y6CALiTAf/6pcIAs/YMAEAAAf +/6wIH/+xFB//saAgC4pQIAs/oCADDRAgAGtg4AEAAB//nrAgC4uQIAs/4CAAp+Af/56oIACk4CAL +ixAgC4tgH/+tmB//mwggC0Gw4P/+ACALZdAf/560IAtMwB//lTwgC1fgIAtYcB//sOQgC1uQIAtb +4CALWyAgC1tQSAAAACABu0gf/6tcIAG9TB//mZwf/6n8H/+o9B//qTwAABfwAAAV/B//rCQgBtdU +H/+pxB//mSDhAC4AH/+sMOEAXgDhAg4A//+//+EADgDhAY4A//++/x//nVAf/6o4IAHCYCABzojg +BQAAA/8AAB//qYQgAwxoH/y//zwAAAAABf//gwAAAB//qPwgAeQgIAtkUB//rnQAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAACBgAAAAAAAAP////////////////////8f//yQH//8kB///Fgf//xYH//8WB///Fgf//XY +H//5CB//91wf//dcH//3XCAGqLgAAAAAAAAAAAAAAAAAAAAAIAasACAGrAAAAAAAAAAAAAAAAAAA +AAAAIAaouCAGqLgf//n8H//5/B//+fwf//n8H//5/B//+fwAAAAAIAHDeAAAAAAAAAAAAAAAAAAA +AAACAQAAAAAAAAAAAAAAAAAABAAAAAAAAACBgAAAAAAAEAUAAAAAAAAEAAAAAAAAAAAAAAAAAAAA +AIEAAAAAAAAYBQAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCgAR8pMT8pPTDwPmMQECABbykRfy +kndrBpBgtGZ3Y/hUDzVVxLIPFABj//kAAABsEAgoIAUnIAcpMQX4IIYV4BlFAPkADoVhdwEAiiIW +8oT95QgF4AyVAPFXvA3gD6UA6vKBG8cCgACmiCuCngp5CimSv/1gDYOiAJ0AKIKdCYgB6BYFJA1R +gAAo0gj3AA2okgCdACtiruzydRWKuYAAKmKtLMJ/7KsBBHP9AAD9QAoeIgCdAC7WCP1ACh4iAJ0A +LyAUpP8PD0cvJBT14Axd0gCdABnyZy4iFiwhKYgVH/JlrsyfgOoiHi5nwoAA/QBmFaANJQD9AEYV +4AtlAO3yXh1WAoAAC6oCixSagekAFQRAQQAAiRUIAIooPBD9IMYV4EwFAP0g5hWgDEUA7Ls2BMiB +AABtuQUIAIYJAmHu8k8VoIeAAIgV7gAFDc8CgACpiOiMICWkNQAAC8kMbZkCCAJhLSEp0w/qISgm +6AUAAA0NTy0lKf1AB3RiAJ0A/+SABeAMFQD6IKgV4B7lAOoiHi7NQoAA+CAmFeAIBQD4IAYVoA0F +AOgWAiXZgQAAWISM/uAAFzfFAQD3wABHMA2VAO3mnSgECoAA+YAFWVIAnQDAINEPAAAA6iQACdgE +gADsRAAK6ASAAFiGddKg0Q8AAAAAwLAPiTTp1ggt9i4AAPpAaB2gG8UA/AACHaANFQBYiyNj/8EA +AOokAArYBIAAWIf20qDRDwD/+VgNoAgFAOokAAPYYQAA/AACHaANlQBYixdj/5HAoFm+MB3yBojY ++R/yCJAPpQBj/6TaIFgLjmP+cAAAAAAA/AACHeAKBQD6RSQdr/wqAIon60QACmgEgAD7RAAVoAwF +AFiABdKg0Q8AAABsEAYuIhCUEeUhGirQBIAAJiAH9kEoFeAfxQDqFgAqx8KAAP8CUg3hZgEABwlC +8SBwDeKFAQBkgfLU8CkgBfxASBWgG4UA/p4ADbAaRQD7IA+VIgCdAOfx3x4L1gAA5fHbG08CgAD0 +wAwSEgCdAKWZLZKeB2oKKqK/96ARu1IAnQApkp0KmQHulAAEjkmAAIwpiyoMBz4Muwz3YAkD4gCd +ACogTi0gTLGo+6AN7CALFQAoJE4qMAEpIhjzQA32kgCdACsgBy0hJPhgJBWgDFUA/UAEBTC7EQDg +qhEN2oKAAAuqAhvxwwqIAiohBywhCQvdAvsGAAx6qgEA6/G+HVMCgAAKzAIqISKY4IggnOOd5Auq +Apri/QAAFDAKZQAKiAKY4S0iEJ3lLCA4G/Gz+AAiHaBNFQD5wSYVoMwZAAzYOR3xr5ToDL05+aYA +DrALBQCb5xjxop3m7fGjFOAFAAAsJhib65nq6AAVB0jBAAAJAIrt5g4hyEEAAO/mDyd5AQAACSCG +DwJjCQCGDwJhDG4Rpe7q5p0jgLGAAIgpLyA4p4goJgnz4AgXkgCdAIkQCQlH+SAHAVIAnQDAINEP +nhLqJAAL2ASAAFiIzo4S/00QDeAfxQDsEgEpUASAAO0SACnYBIAAWIXR0qDRDwAe8XmK6PdABjiS +AJ0ADGkRpZkrkp73YAaLUgCdACmSnQdrCiuyvwuZAWSQv7CsnOjulAAM834AAGAALAAAAAAA89/w +SFIAnQAJVAz0nQAVr/gCAAAAAAAA6xIAKVAEgABYh0bSoNEPAOokAANYYQAA/AAiHaANZQBYimlj +/2mNIsDkDt0C/EBGFe/9fgAAAAD4Q6gVpNkBAADRBAC8GgyIAvhDphWv+MYAiieNEcDA6qwgLtgE +gABYf1rSoNEP2iBYhWdj/vkAAP/3PA2gCQUAwKBZvW4e8UOK6Plf+XiQH8UA//0oDaAJBQDAkMC6 +C6s0+8EGFe/87gAAAABsEA6VHCgiEC4iCSchNSkgByMWDioyAv5giBXgDRUA/GBoHae1AQDjIRol +2/kAAAvbOfohphXhmQEA5/82CbfCgAD+wlIN46oBAA4OQvHAcA3i0wEAZNRjJiAFwej5/gAPMBdF +APbAJB1iAJ0AhyKLHvTl/A3gDoUAK7ABnxHzYCEnEgCdAJkQmRqaFBjxFu3xFxIwDQAA5hYLLK8C +gADoVQgM34KAAK276xYJInAFAACJGp4YjRv1IAaqEgCdACtSnoYZ/WAKI+IAnQAvUp0mYr8G/wFk +9DkZ8QSJmPcgCZiSAJ0AKoKuZKFSGvEBI4KtKqJ/HfD9CjsB6xYFJNv9AAD6YAnmIgCdAJvY+mAf +ZiIAnQCHKYYqDAM+B2YM8sAJq+IAnQApGgDzIjIN4Pr1ACsgFpwT+2AJ/SIAnQCLEYbDKiA49+Dm +FaAGBQD34SYVoEcFAPvhBhXgqhkACnY5F/DvlhYtIhcW8Oyd+i0iG537icQKdjmWF/lgEUriAJ0A +hh2eH+wWAyMN2YAAYAEIGfDWiZhqkS6LGypSno8Ze6NLLVKdL/K/D90BnRWGFevwzhTT/QAA72QA +AwHpgACauGX/E2ADSp4f/CBmFaAKBQBZvO8Z8MWJmBjwwowT7hIPJI7bAAD//1wNoA8FAMCg+iCm +Fa/+5gAd8LzAugubNPuhBhXv/vYAAAAAAP/7FA2gDwUAnh8vFhD8IGYVoAoFAFm82xnwsYwTLxIQ +iZiOHxjwrfk/9XCSAJ0AYAK9wKCaFYsVFvCpwNoNnTTtZggt9iYAAGACpJ4fLxYQnBPqJAAJ2ASA +AFiH7IwTLxIQ7hIPJXWhgABgAlqeHy8WEPpA8BWgDAUAWIfEjBMvEhDuEg8tdWYAAGADx44XixOI +FIwR9iDIFa+KBQAqJDsMmQwIZgKZtKzYBu4CLSIQ6CYbKVAEgABYhnCOH4wTGPCG+rOmFaEJBQBz +mw0rIBYqCv/7YARNIgCdAIopKyA4DwIAo6rqJgkoBAqAAPNgBD+SAJ0AJiE1L8IEKyEaKSIQ5v82 +De/CgAB/2wsKCkJkoAULDUJk0HP+ICYV4B2FAPn+AA7wChUA+iGmFaAGNQD2IYYVr/XGAIonLxYQ +ix7qrCAqYASAAFiDGC8SEJoTLSIb+UCIFe/83gAAAAAAAADqIAcp4ASAAFiHXRjwW4wT/iHoFa/9 +ngDaIFiEdxjwVowTjh/6QSgVr/22AHGeiAq/DP/9ABXv/goAixSKFi0iEBnwXAuqAhvwXApoAoYd +GvBTCYgC6fBSGws+AAAjFhElFhImIAeFwCMhB/ZBJBXgZhEA61UBCzKCgAD2pgAKujMBAOYhIimb +AoAAA3cCClUCIyEkCWYClfCFIJfzlvL94KYV45gBAOj2BizKAoAACTkC4xIRIlP5AADp9gQqrgKA +AOXlAgZAgQAA5fYBJ8jBAADlEhIiFDUAAG2pBQgAhgkCYSYgFKRmBgZHJiQU9MAINdIAnQCIGPiz +phWhBwUA8uHyDeD59QArIBb5YAjNYgCdACoiF7Gq6iYXIYCpgACMKSsgOKPMnCnzYAefkgCdAI0d +ZdDPwCDRDy8gTmT72Q54AvhARhWgAIYAAAAAAADzH9zAUgCdAA4/DP/9ABXv7jYAAAAAAADrEg4p +UASAAO0SDCpgBIAAWIRX0qDRDwDrEgwpUASAAFiF4tKg0Q8A+kBoHaAbxQD8ACIdoA0VAFiJBWP/ +wYsQ+kBoHaAMFQDtEgsl2GEAAFiI/2P/qQAAJiA7ZGBx6iQADlgEgAD8ICgVr4kFAOkkOyxwBIAA +WIXP+iEGFaALBQArJhv6R2Yd7/vOAAAAAADrEgUpUASAAFgJa2P+74on60QACmgEgAD7RAAVoAwF +AFh959Kg0Q8A2iBYg/Vj/wjqIAcp4ASAAFiG02P+3AAAJyEJJRYSIxYRJBYTJiAHhMAjIST0QOQV +4GYRAOtEAQsygoAABkQCCkQC9kREFaq1AQDrIgct0wKAAAp3AglmAiqxFZoSlPCFIJfzlvL94KYV +40gBAOj2BioiAoAABDMC4/YEJdiBAAD0ImgVr8MFAAO7ASMSEeupCAquAoAABeUC5fYBJmCBAADl +EhIkyQEAAOnLQ35ABIAALUz+DNYRpobmkzt34MEAAPSf7/ESAJ0AbdkFCACGDAJhY/3tixD6QGgd +oAwVAPtiQBXgDQUAWIisY/5aAAAA+48ADD/+9gAInQwNSRRtmQUIIIYMAmPv2ggFwQEAAOlMDAVI +wQAA9Z/tQRIAnQArzP5tuQUIQIYJAmVj/ZQAAGwQBiggBRzvifffDgXgGkUA+wAKnSIAnQArIE6J +yLC7KyRO9yAIyJIAnQAucq7t74EXEXGAACtyrS3Sfw27Aea0AAWRKYAAsJ7uxggliDmAAC8gFLP/ +Dw9HLyQU9eAQxdIAnQAuIHP4Q6gV7/r1APvABADQCxUA4LgaB2gFAAD7FwANNN0BAC0kcwmIAQi4 +OQqZAekmHSwHDgAAiiJ8pwQoIE7Jj32nCCsgTCkgTnuTFMxsLCAU7SICLlgcAABk0cnAINEPAI4n +x/MPrwHvJgInUMEAAFh0yuPvZRUBOYAAKKAA0w/TDwOICiiCEOygBy1YBIAA+kBoHaANRQALgABl +r9yJJ9MPZJ+mKpkUyqeKmWSvnCigAAOICiiCEOygBy1YBIAA+kBoHaANNQALgABlr+Bj/3oAAP// +VA2gCgUAwKBZu2Qc7zmJyPk/9uiSAJ0AwGApIBSzmfhChh3v/B4AAAAAAAAAAOokAArYBIAAWIUU +0qDRDwAqIAUrIAfB1P1ADmVhuwEABQVH+KAOeVIAnQCTEI02nRLt7yUdmASAAPVgCYoSAJ0ADLoR +p6ouop73wA2c0gCdACqinQ28CizCvwyqAWShPfpACBXgDBUAWCHhHe8ZKSEJGO8ZKyEiLyAHHu8j +LCEk+WYADbD/EQDoEgIv+oKAAA/MAg7MAiymAI4gm6L5QKYVoA8lAOmmAy92AoAAD+4C/0AmFaAJ +BQDtABUFUGEAALGZ6oMeDI/oAAAMORH3IABE8AilACiWnfS/8rkSAJ0AiifrRAAKaASAAPtEABWg +DAUAWH0DY/46//dsDaALBQDAugubNOvGCCtvBgAAY/7b6iQAC1gEgABYCHf93dQFr/d2AIonwLD7 +RAAVoAwVAFiFmBnu9pmg/kAIFaAbxQD53egFoAwVAPlARhWgDRUA/cAAFzAIFQDo7gINeASAAO72 +ASlQBIAAWIfmwCDRD4nI9yAEoJIAnQAMOhGnqi6invfABVTSAJ0AKqKdDT4KLuK/DqoBZKCYsJ+f +yGWuwYgi6xYBJAThgAD4v+w5UgCdAIonKwoA+0QAFaAMFQBYgXSLEB7u0p6gjCAd7tKdov2AABYw +DRUADcwCnKGLtvtAZhXv9UoAAAAA61QACVAEgABYhJpj/TyPM/4gRhXv+NYA//lkDaAKBQD6ICYV +4AoFAFm61hzurInIixEd7qv5P/q4kgCdAP/9yA2gCgUAAMCgwIoImDT5gQYVr/2KAAAAAOokAAXY +YQAA/AAiHaANpQBYh6tj/1EAAGwQBCggFO+LHmoYBIAAiif6YGgd4AwFAOqsICnoBIAAWHyh0qDR +DwCLInO+SxTuj4pIaqFHG+6MLLKuyscd7o0ssq0t0n8NywF9wBuwrp5IfcAhLyAU7yQUL9rQAADa +IFgID2P/p8CwwIoIqDToRggt/xYAAIkiyZXAINEPwKBZuqWKSGuhrWP/6gAAAAAAAPpAaB2gG8UA +/AAiHaANFQBYh4HAINEPAGwQCCwiDy8gByghNCcyB/5DRBWn1QEA+b/AFeALFQDpuTkJsASAAOsi +CSpQBIAA+CCGFeAEFQDodzYPT8KAAPciUg3h/wEACwlC8SBwDeKOAQBkgnLBtOx7Hw6UdAAALCBP +6SBNJmAFAAAMDEcsJE/9IBSjogCdACwgBfuAEv1iAJ0AjSL6IAYVr/s1AP1gDljiAJ0AKCIZjjL5 +wBTVIgCdAIk4GO5LHO5I5JJib9+CgACaEJgRrLvo7kIVSA0AAJkT6xYCL6cCgACoRPXgDSISAJ0A +ixMqQp77QBsb4gCdAIoSKUKd0w8qor8KmQHulAAEknGAAIwpiyoMBT7TDwy7DPVgCdviAJ0ALRoA +9aHyDeD49QArIBb5YBl1IgCdACwhIhnuPSghByohJCshCfxA8BXqiAEA6aoCDEMCgAAIuwIZ7jYY +7icNLUDpzAIO6oKAAAjdAp3giSCc4prk+8BmFeAKVQDr7i4czgKAAAqZApnhiC+Y5SwgOPfBBhXg +DQUA/cDmFeAKJQD93EwF4EklAPjAiBWgzBkADJo5mOkM2zmNZZ3qHe4g/MDIFaAJBQDs5gsjh+GA +AAqcEA3MApzsjBGJaJfvme6IaSjmEI1qLeYR7AAVB0khAAAJAIqIZ/jgC6OiAJ0AH+4FCr0CD90C +nebAxfyTphWhCQUA9SHyDeD49QArIBb5YBOlIgCdACwiGYopKyBPKSA45aoIBmAFAADsJhkl2/0A +ACskT5op8yAPj5IAnQCLFGWx78Ag0Q+fFZ8WnhfqJAAK2ASAAFiFKY4X7xIFJXWRgACMFGXP24on +2zDsEgAlUMEAAFiATsAg0Q8a7dSKqPdAEIiSAJ0AjBMrQp79YBFDogCdAIsSKUKdK7K/He3LC5kB +5JIUZWP9AACc2O6UAAzyZgAAYACOKCA58R/4DhIAnQD/++QNoAkVAAAAAADzn+xIUgCdAAnnDPb9 +gBXv9foAAAAAwbN7yRQpIDqaEP4gxhXgDPUA/SAQ/SIAnQDqJAAK2ASAAFiDltKg0Q8A8AAYDaAa +1QDAoYw3KyEJjTiOMuuvEQ3dAoAAD7sC5LsCCVAEgABYg3rAINEPAAAA//9YDaAahQDqJAAH2GEA +APwgaBXgDBUAWIarY/8FAAAKuAKY5sDV/JOmFeEMBQB1yw0rIBYpCv/5YA41YgCdAIoUZKFdi2qM +Z4ppq3sHzAycZ/dg0g3gDgUAsaqMZZtqi2aaaazqq3t3uwGxqo4pm2aaZS0gOKXuninzoAo3kgCd +AIknKJkUyoKLmcm+Ge2PKLAAnxWfFgmICiiCECywB/pAaB2gDTUAC4AAjxWLIsej+1/ygOIAnQAo +ITSHZy4hGooviynodzYPZ8KAAHfLCgsJQsiUDgtCZLC0wdT6/gAOsAwVAPwghhWv8q4A2iBYgYZj +/gqKJ+qsMCtYBIAAWGub0qDRDwAA//KoDaAJBQAAAJ8VnxaeF/pA8BWgDAUAWISGjhfvEgUtZf4A +AOokAAfYSQAA/AAiHaANBQBYhmJj/eAAAAAAAOogByrgBIAAWIRPY/2BnxX+IMYV4AoFAFm5dBrt +SoqojxX5X+7YkgCdAP/34A2gCQUAwJAc7UTAugurNPuBBhXv95oAAAAAAPNf+jhSAJ0ACecM9v2A +Fe/88gCKJ58V7xYGKdgEgADsEgAlUMEAAFh/rtag/iCoFe/6FgCfFe8WBilQBIAAWIFO/iCoFe/6 +tgAAAMFT+kBoHaALBQD8AAIdoA01AFh54SsgBY8WihD1f9qFYgCdAGP9IZ8VnxbqIAcq4ASAAFiE +IP4gqBXv+K4AAAAAbBAOkxyVGogviikuIRonITQvMgT4QPAV57UBAPt/wBXgDRUAC9s56xYLKeAE +gAD34QAP8ZkBAOcgBS83woAA/sHyDeKqAQDxQHAN4m4BAGRkQcGkCPqN+uAjTSIAnQCOIosc9cRc +DeAKhQArsAGfEvNgIFcSAJ0AmRGZGBjs/Ovs/RJoDQAA7RYJLK8CgADoVQgM14KAAKuq6hYHInAF +AACGGJ4Wixn0wAXqEgCdACpSnoYX+0AJY+IAnQAvUp0mYr8G/wFk9CEZ7OqJmPcgCOCSAJ0AKoKu +ZKE5GuznI4KtKqJ/HezjCjsB6xYDJNv9AAD6YAkeIgCdAJvY+mAepiIAnQCHKYYqDAM+B2YM8sAI +4+IAnQApGgDzIjIN4Pr1ACsgFpwQ+2AJJSIAnQAb7OgpIDj72cwFoAYFAPfg5hWgRwUA/YCIFeCZ +GQAJdjkJujmLEpoUlhX9YBHS4gCdAIYbZGHTYAEDGezCiZhqkS6LGSpSno8Xe6NLLVKdL/K/D90B +nROGE+vsuhTT/QAA72QAAwHpgACauGX/K2ADSp4d/CAGFaAKBQBZuNsZ7LGJmIwQGOyu7hINJI7b +AAD//1wNoA8FAMCg+iBmFa/+5gAd7KjAugubNPuhBhXv/vYAAAAAAP/7dA2gDwUAAJ4dnx78IAYV +oAoFAFm4xxnsnYwQjx6JmI4dGOyZ+T/2OJIAnQBgAr7AoJoTixMW7JXA2g2dNO1mCC327gAAYAKl +nh2fHpwQ6iQACdgEgABYg9iMEI8e7hINJXZ5gABgAl2eHZ8e+kDwFaAMBQBYg7GMEI8e7hINLXZO +AABgA8ScEP4hphWviQUA6SQ7JjhBAAAHAIbnEgInsIEAAAYCYY3Hl/iKxInGrX0HqgyaxHfbCZ4d +7BYAJMgFAACMEosQhhWOFJm2nbcG7gLtIg8pUASAAFiCVI4dGOxqjBD6s6YVoQcFAHN7CCsgFikK +/3m5foopKyA4o6rqJgkoBAqAAPNgBCeSAJ0AJiE0j8QrIRqJL+b/Ng3vwoAAf9sKCgpCyKQLDUJk +0HP+IEYV4B1FAPn+AA7wChUA+iFmFaAGNQD2IUYVr/XGAAAAAAAAnh2KJ58eixzqrCAqYASAAFh+ +/O8SDi1gBIAA/iGoFa/8UgDqIAcp4ASAAFiDQ4wQGOxA/iGoFa/9tgDaIFiAXYwQGOw8jh36QSgV +r/3CAHGeiAq/DP/9gBXv/goAF+w+G+w+HexDBqkChhsa7ELtmQIGQEEAAOVhVGfogQAAJRYQkx8l +IAeDwAUlQOozAQqqgoAABTMCBzMCJyEHKiEiJiEJ9EHoFep3AQDrqgILuwKAAAdmAichJJPwgyCW +85n2mvL14KYV46kBAOUSEC1SAoAACncC5/YEKZ4CgAAD4wLj9gEiU/0AAOMSDyIMNQAAbakFCACG +DQJhJiAUpGYGBkcmJBT0wAgd0gCdAIgW+LOmFaEHBQDy4fIN4Pn1ACsgFvlgCLViAJ0AyD+LKSog +OKO7mynzQAffkgCdAIwbZcDXwCDRDy0gTmTb8wroAvhARhWgAIYAAAAAAADzH93QUgCdAArvDP/9 +gBXv7r4AAAAAAADrEgwpUASAAO0SCipgBIAAWIBD0qDRDwDrEgopUASAAFiBztKg0Q8A+kBoHaAb +xQD8ACIdoA0VAFiE8WP/wYsR+kBoHaAMFQDtEgkl2GEAAFiE62P/qQAAAAAAJiA7ZGB3K/qAKyQ7 +7BICLlgEgAAIIIYNAmPs9ggs8ASAAO0iDylQBIAAWIG3+iDGFaAMBQD8R2Ydr/vKAOsSAylQBIAA +WAVVY/7yiifrRAAKaASAAPtEABWgDAUAWHnR0qDRDwDaIFh/32P/AOogByngBIAAWIK9Y/7fAAAA +JyEHJBYRJiAHhMCTH/JERBXgZhEA6kQBCzKCgAAGRAIW67osISSKJwZEAiYhCfpmAAn6dwEA66EV +K7sCgAAHZgKHL5TwhCCX9ZPy9+BmFaM5AQDp9gYpmgKAAAPMAuMSDyomAoAABOQC7PYEJVCBAAD1 +4CYVr8wFAAyqAaq85BIRJmEBAADsiz18SASAALBIDIYRppZ2wzb0n/CIkgCdAG2JBQlAhg0CZWP+ +AIsR+kBoHaAMFQD7YkAV4A0FAFiEmmP+YgAAAPsPAAz//w4ACcwMDEgUbYkFCWCGDQJn780IBUkB +AADoTAwGwIEAAPWf7diSAJ0AsM5t6QUJgIYIAmlj/agAAABsEAYoIAUjIAckCgP9D0BEUTMBACgg +ImSAbwIqAlh3mv1MwIDQDRUALCAhGOttDwIA7DMRBn1WgACoMykyng8CAG6TRSsynWSwP/pACBWg +/uUADs4B/cYADvAPBQD8RCYd4AkFAPggBhXgDAUA+CAmFeAOlQD4IEYV4A0FAFh9uPRzphWgAgUA +0Q/AINEPAABsEAoqIAX4QPAV4AwVAPhgaB2ntQEA6BYAJdv5AADryzkKGASAAOsWBSwgBIAA/UHA +BFGZAQDBw/1AICUiAJ0AjSLv60UenBYAAOvrQRGwEQAA5hYELPeCgACv7u4WAyzXAoAAq6rqFgcs +wASAAIcX9QAEIhIAnQCKFCdynoYTjxf64AdbogCdACZivy/ynQb/Ae8WBieaEYAAJSEbikKHKYYq +BaU29U8ADnELBQB8swHVoJgaB2YM9MAF4+IAnQAqGgD1QjIN4Pz1ACsgFpga/WAF/SIAnQCKQvqg +DnqiAJ0AjBUb6zaHQ5ga63cBBgj5gABgALYAABrrF4qo6BYKJQzfgACLF4wUhhMrsp6PFyZiv3yz +Qy/ynRzrDgb/AeTwOWVb/QAAm8jvFgYv+24AAGACowAAAAD4IWYV4AoFAFm3LhrrBIqoiRvoEgol +Dt8AAP//TA2gDwUAwPAc6v7AugurNPuBBhXv/wYAAAAAAP/8eA2gDwUAmRvqJAAK2ASAAFiCQIkb +6BIKJXmpgABgAjUAmRv6QPAVoAwFAFiCGYkb6BIKLXmWAABgAxrw4ASIUgCdAC0hGowplxj4IUYV +ou0BAOkWCy8EFgAAlxj4IUYVouwBAOkWCycDgYAAmBrpFgsu/8KAAHX7Xg7VDPnV6AWgt+kA5kID +LdyCgAALeQKZGAhmAfaAZhWgAQIAiieZGysSAOqsICngBIAAWH2AiRv4IUgVoAslAOukAi0gBIAA +6qICKAQKgADy//u4UgCdAIwplxiYGpkbjhiPFuWtDApYBIAA5cwICVAEgADtRgIq6ASAAOwmCSng +BIAAWH2biBqJG48X+/OmFaEOBQB16wgrIBYmCv92uQzAofogphWv93YAAAAA6iAHKuAEgABYga2J +G/ghSBWv/4oAjykY6sWJFqX/nymMQ4tAjRXnxAAEyIEAAPwOAAU36wEA7hYBLojmAAAnIAcHB0EI +dwoncp/urRANU8KAAO2qAgJAQQAA6ncBAdP9AADnxwIBjD0AAG2pBQgAhgkCYYtAwICYEhnqsBrq +ry8hGoYWHuqsJCEHGOqp/CAoFaHXMQD/oABGukQBAO3QgConAoAA7MwPJnBBAAD4hgAKNMwdAORm +ACZgBQAADDwMFOqEDV0M6CIAL/oCgACfZpdnnmOdZQykOQmJAulmBCxGAoAA5GYCIdAFAAAIqAKY +YSYgFONmCA0gBIAA5iQUKAQKgADzYAQakgCdAIgX9ROmFaEHBQD04fIN4Pn1ACsgFvlgBR1iAJ0A +iBLSgNEPAIoVZKCjwCDRDwAAAAAAAADqJAAE2GEAAPwgiBXgDBUAWINpY//Ziif8ISYVp9tBAOqs +ICgECoAA9aAEYdIAnQCMFisKAezMICnoBIAAWHhemhL6gAgV7/vOAACLFuxNEQlQBIAA/WAARfAM +FQBYdkL0gGAVr/2iAGW7/Plf38jSAJ0ALyAg8f/fd5IAnQBj/3MAAAAAAAAA6iAHKuAEgABYgTuI +EtKA0Q+KJ9ww6xIAJVCBAABYfOjAsvtARh3gAgUA0Q8AAAAA6zQADjgEgAD8YGgd4AwFAFh4O9tA +7DQACugEgADqFgIr8ASAAO8SBilQBIAAWH0H+oAIFe/7FgDqJAAE2EkAAPwAIh2gDQUAWIMtY/7p +AABsEAiSFJMVGeoriED4IEYVr8sFAOsqAQJwIQAA+iBmFaeIQQDkgcBiUBEAAI8TLSEFqYwswACv +3wTMC+/8QC5YBIAA/4ANiuIAnQD6ICYVoGgBAP4AIh3gDQUABv04C98L690KB9ghAACCFZ4Q+QAA +RXAMJQDyQQAV4A8FAPJAgBWgAg4AjRQOVQz/4CAVoAMFAO/kAARABQAA8Q5gDeB+AQCGEyKgAC3R +BQQiC+bWCAlYBIAA4hYGIzEBAAD2QAZ6ogCdAAgGQPIAIh2gDQUABi04C9IL690KAVghAAD3IBAV +oAIVAAcjOIcVB2YLF+oCpzcncKAGMgoGMwvsfAgBmCEAAI7QCwCJBe42LiYAAwCLItIA6qwBJMgF +AAD0X/sj4gCdAAUpDA4qDPugBhWgBxUA9WAoFeAGBQAJdjgIaAgisgAF5QgltgF+WwIiLAHitgAm +fRKAABbp6YsSHuno5rYBB5AFAAAGIgKGFe67AQxuAoAADbsCkmD6gAYV4SwdANEPixD8ICgV7/1S +AAAA/E8ADf/8xgCFFRnpuQXFC/gAChXgAgUAsSLlgx4JD+gAAB3p0oYSGunS7W0BB9gFAAANuwKN +FepmAQxOAoAACWYC69YAJhAFAAD2gAYVoSIdANEPAAAAAOoWAS1oBIAA+8BoHe/51gD9jwAN//k+ +AGwQDPhASBWgCgUA6yAHKcgEgADygGgd58UBAP2fwBWgBBUA7Ew5DLgEgAD8ISYVobsBAPMbXA3g +DAUAmhacFZkTmxSbGx3psC4gFhXpixjpregWCC3/goAApf8V6YUY6YXvFgotpwKAAPSAAEJw//UA +f+ETAioCWCygGOl+Hemi6hYIJSoRgABgABcAAGZjy/jAHyiQ+vUAKSAW+yAZTSIAnQCJiPcgBhCS +AJ0AK1KuHOlzZLDRLMJ/K1KtDLsBZLDHsJmZiBzpkWSzSyzAgCzMN/4haBWkzB0ArDzrFgImYB0A +APXABYISAJ0ALkKe/cAIK6IAnQCMGitCnSzCvwy7AesWACWZUYAAKnEMiXeZEf1ADqxiAJ0ALHAQ +63IDJglBgAD5n/so0gCdAC5yA2Tg0I8WZfGwhhGPGI0U7hIAKVAEgADm/zYL2ASAAO8WASngBIAA +WCpWGOlHHelr568ubTAEgABgAvIAAMCgWbVrGOlBiYgd6WT5P/mIkgCdAP/9CA2gCwUAwLDAqgqZ +NPkBBhXv/M4AAGqRJCtCnnyzQYwaK0KdLMK/DLsB5LA1ZPP9AAD/AQYVr/0qAAAAAAD8IaYVoAoF +AFm1VBjpKomIHelO7BINJI8TAAD//IwNoAsFAMCwwPoPnzT/AQYV7/xSAAAAAAAAAP/8GA2gCwUA +AAAAihjAsZsW+V/5KuIAnQDA4J4W+V/4yuIAnQDrdAAJUASAAO0SCSngBIAAWCqS/gAiHeAHFQDn +FgktOASAAP9AZhXv+7oAZLBJjxX+ACIdoAwFAA/sOGTAjIgRhhjqJAAL2ASAAO0SBCngBIAA6GY2 +CPAEgADmFgEg+BEAAFgrHujo/B0wBIAA/dI+Be/3/gAAAACLGA8CAA8CAPlhNg3gDAUAeaMBwMH4 +ACId4A4FAAyeOOwWBSd8kYAA63QACVAEgADtEgkp4ASAAFgrvPdAaB3gCxUA+iEmFeAKFQD64GYV +r/2eAIsQFekBKiEHiXAc6P3/0cgF6qoBAP9AABU4mQEA7KoCBMA9AAD8ISgVpIgdAOq2ACRACQAA +CDgMjiCZs+hfOQGz/QAA77YCL3YCgADubgIFqEEAAO62AS4O5gAAiBPojCAhlFUAAOo8/irIBIAA +bakFCACGCQJhKzz+DLsRq1ubECggFCwgBKOI9YAImRIAnQAICUcpJBT1IAouUgCdAIhyKCYciXHo +FgctqASAAPMgCjBSAJ0A8TX4DeAHBQCnZiZGnSogFisK/3uhCusSASlQBIAAWC6KjBllwOPAINEP +6xIBKVAEgABYLoUuIBYY6Kf90ZYF4P/1AP/f5RxiAJ0AY/yHiBllj9IqcBDbcPxgaB2gCRUA+1/g +FaANBQDqnTgJUASAAFgpSMAg0Q8AAAD6QGgdoBvFAPwAIh2gDRUAWIGhY/+9AAAd6Lct0IDrEgQm +6N0AAPpAaB2k3R0A/GAARvAMFQDt3Acl2GEAAFiBlmP/jy4gFi8K///f+vRiAJ0A6xIBKVAEgABY +Ll3AINEPixAMbBGsu/ogBhXv+5YAKCQUjXDxv/i6kgCdAPpAaB2gDAUAWHRw9sBgFa/8EgCKJ+s0 +AAnoBIAA+0QAFaAMBQBYdn3SoNEPAAAAAAAAAOsSAilQBIAAWAH1+iAIFe/6wgAAAAAAAOokAAxg +BIAAWAN4iBeJcZoc56QADV8CgADrVQgE9U2AAOtUAAlQBIAA/QBoHeAMBQBYAz33QABD//o6AIon +/KBoHaALJQDqrCAp6ASAAFgpOitwEPl/8TjSAJ0AKXAVCQhFZI4ZK3EJHOhwKnEML3ARjicMqgyr +/w+ICf3CpBWvzQUA7uwgJHiJAADt7gEEQEkAAAr4Oah9rs7u7EAm6IEAAO7bWn7QBIAADuowG+hg +LaEB/UAEFaH5MQAL/worIhfv8p8uZAKAAAzdAgvuDA/uLK7dqF79wCQd792BAP3ABB3v9nYAixT6 +QGgdoAwVAPtiQBXgDQUAWIE1Y/4NAAD9rwANP/6aAGwQBCMgACQK7XQxBiIhA7wi0Q+EIYYg8kBo +FaAIJQD3ZAACsJRxAPkPAAxzNgEA9GAAQfNmgQDl6D0cAQqAAABmGvZgAQG9RAEA5SIBAag5AADl +IgwBmGkAAAQkLAQzKKMi0Q9sEAiKIicgB4kwlRX4QtAVoXcBAPFdTA3omQEA+CAmFeD89QB8gR0F +C0f7f8AV4AkVAOubOQlQBIAAWC4E81MwDeD89QAa5/iIqBbn9vcADZiSAJ0ALmKuGef2ZOHbKZJ/ +JWKtCVUBZFHRKIz/KKYI6VQAAo2BgAAb6BIlsIDt5+sSqN0AAPggBhXkVR0A5UUIC88CgADmmQgC +qA0AAPTgCJISAJ0AKJKe9QATO+IAnQAlkp0NeAoogr8IVQFkUYgpIBb9IyYNoOvVACowEPtAElRi +AJ0AKzELvLvaIFgtryggFCwgBKSI9YAMQReYAQApJBT1IA4uUgCdAIoVHufpjREoIQcc580Z5+X/ +oeAV6ogBAP8AABQ0/x0A6YgCB/gFAAAPTwyYUIsgD+w5/KBmFeeqAQDsVgIt3gKAAOtLAgLIQQAA +61YBIcBBAAD5QAlxUgCdAOhBDWJT/QAAbakFCACGCQJhwICYFOkgBCJb/QAADLsRq1v1IAkJEgCd +AIgyKCYc6TIBJdhBAACbEygWAvMgCbhQBQUAZpFQpUyIFAx9Eabd7NadLBAEgADRDwAAAAAA9wAO +kJIAnQAMeRGmmS6SnvXADvviAJ0AJZKdDXsKK7K/C1UBZFHNsI2dqGVe3WAAYwAAAAAAAADqJAAJ +2ASAAO0SBSpgBIAAWHvh0qDRDwDAoFmzshrnh4io+R/yGJD89QD/+VgNoAUFAAAAAAAAAPpAaB2g +G8UA/AAiHaANFQBYgItj/7HAUMDqDog0+UEGFa/4rgAd550t0IAt3Df64wAV5N0dAO1NCAlQBIAA +/aBgFeAMFQBYgH5j/3sAAAAA+EKGHa/6DgAAAACKJ/0gaB2gCxUA6qwgKmgEgABYdXT6IIYVr/tK +AIsw82AIopIAnQDiEgQr5wKAAKbMJMad0Q8AAAAAAAAA6xIAKVAEgABYAOVj/jAAAOokAAxgBIAA +WAJqiTGLE4gS7KwRDSgEgADsuwgE9Z2AANog/QBoHeAMBQBYAjGIFKWlpUwMfRGm3ezWnSwQBIAA +0Q8AAAAAAP/2lA2gBQUAjTWMNB7navpg6BXgCSUA/HAAB7CtcQD7LwAMu4whAPsgBADTzAEA6MwI +D/gKgAD/gAEGfd0BAO67AQZwOQAA7rsMBmBpAAANvSwNzCj9YABFv/W6AAAAAOokAAPYSQAA/AAi +HaANBQBYgDdj/mHAoFmzUBrnJoioHecm+R/xCJD89QD/+PANoAUFAMBQwLoLizT7QQYV7/i2ALBL +DLsR61sICVAEgAD7YgAV4AwFAFhzErNM4hIEK+8CgACm3SzWndEPAGwQBIk3F+c5KzAW+c5gBaMq +BQAKKigLtgnoqAgLNwKAAKhmGOczp2fkcr8pAQqAAP74CBWgDBUA6GYIDmgKgADmQRh0wCEAAIsy +mOCek5aSDbsCKHbAmzLRDwAAH+cmr68p8r0AsQTt8sEucAqAAA6ZAvn3phXv/vUADt0DDZkBHuce +5XLAKW8CgACu3ZnQjzKYUOaGACkBCoAA5YYBLiAKgAAE/wIodsCfMtEPAAAAbBAKGecSCSkKKJJ/ +4hYIKWgEgAD7AAQA0AYVAOYWCisoCoAA+CCGFeBVTQAS5wkb5wkc5voY5tf1zhAFoyoFAOraKA6/ +AoAA6ZJ/Juu5AACdFaSkqHesrJwWKHK5JEKf66oIBMv9AAD6IOYVo5kBAPghJhXgYwUA+IAEAjAA +bgAAihrAsP3/4h2gYwUA7FUDBQLxgACbGi1yuAReAQ7dAZ0QAQCHAzZgaD7VihiLF40ViBbjOQkB +8oEAAO4WCSzPAoAA+QAARH//9QDijAgEQv8AAODhBARC0QAA6IKfK0gKgAAPmQMJRAELgABj/6eK +GYsUsaoKCkMqtn/RDwAAAGwQBBvm1ioiAA8CACuyfx7m1PtPAA1zLwUAD68oDv4IKeK/KOK+/c2e +Be/79QALmQPpiwENZwKAAP2AAEZ/9PUA/YAIFaADFQD5DuAd4A0FABnmxRjmsvkAAEZ/LAEA7PwI +Bf1EgADLKQjqMCnCvy/iwAmIDOj7E36BCoAAL+K+ADgaBIgDCP8BL+a+/aAgFeG7HQDksCxmYMEA +AH+3FGP/xAAACeow+ZfmFe//hgAAAAAAAP2gIBXhux0A5b/cZmDBAABYLlzAINEPAGwQBCYhCfhC +kBXv+AUAJyAV6JgBCzYCgADomQwLuQKAAAdmAvhChh3gBwUAJzQA+GBmHaAEFQAEZgKWMRXmYyRW +rdEPAAAAAGwQBBbmlRXmbdMPpiIFNQIlJoAkIoBnQAttCAUoIoBngAJj//PRDwBsEAQT5owiNopj +//wAAAAAbBAEKCAFJSAH+mCoFa/01QD6QEgV4AMlAP0BIBHRVQEAwCDRDwCIKZorDwIA+wAIPCIA +nQAa5nwKWgnpofwlUAsAACqhAPsgBLOiAJ0A82AEcBIAnQACKgJYclYrIgIPAgADugFkr7iKJwS7 +AesmAiVQwQAAWGuq4+ZFFQE5gAAooADTD9MPA4gKKIIQ7KAHLVgEgAD6QGgdoA1FAAuAAGWv3Ikn +0w9kn3YqmRTKp4qZZK9sKKAAA4gKKIIQ7KAHLVgEgAD6QGgdoA01AAuAAGWv4GP/SgAA//9UDaAK +BQDaIFhyQysgIuq7DAlQBIAAWHON2lD6ACId4AwFAFh1OosiA7oB83/65mIAnQAvIAfaIPwAIh2g +DQUA9WAEBzG/AQDuJgIl2H0AAFh/F8Ag0Q8AAAAAAAAA6yAiKVAEgABYc3kqIAXBg3ihDGioKYsi +82AEBX/8RgApIDrAv3uZ6vpAaB2gCwUA/AACHaANJQBYcrBj/9cAAPpAaB2gCwUA/AACHaANJQBY +cilj/78AAGwQCogrHeYVLiAhizf8YMgVoP/lAA/uAS4kIQ3MAQy7DOuJCHjIBIAAwCDRDwMAhgkC +YZsVKCAFJSAH+CEGFe/01QD8QEgV4AMlAP0bQEHRVQEAiikc5hCbK/tACBRiAJ0ADFwJ68H8JmAL +AAAswQD9YASjogCdAPOgBGASAJ0A2iBYceiLIgO6AWSvm4onBLsB6yYCJVDBAABYaz0KqwLj5dcV +ASmAACiwANMPA4gKKIIQLLAH+kBoHaANRQALgADrpAANfx4AAIknZJ9aKpkUK5IJyqhkv08osAAD +iAooghAssAf6QGgdoA01AAuAAOukAA1/LgAAY/8tAAAAAAD//0gNoAsFANogWHHVKyAi6rsMCVAE +gABYcx/aUPoAIh3gDAUAWHTMiyIDugHzf/rOYgCdAC8gB9og/AAiHaANBQD1YAQHMb8BAO4mAiXY +fQAAWH6pwCDRDwAAAAAAAADrICIpUASAAFhzCyogBcGDeKEMaKgpiyLzYAQFf/w6ACkgOsC/e5nq ++kBoHaALBQD8AAIdoA0lAFhyQmP/1wAA+kBoHaALBQD8AAIdoA0lAFhxu2P/vwAAbBAEHOW4izQp +MBb9YAQFtZkdAPUgCAiSAJ0A7uWzFIiJgAD7y2QFr/3lAOTlhhSkuQAAaZUiLKF+7LMMdlARAAD7 +YAibogCdACsgBrC7CwtH6yQGJYLJgADAINEPLKF+0w/sswx2eBEAAP9gB9PiAJ0AKCAGsIgICEfo +JAYsft4AAIkniyIqmRQNuwGbIouZZKC0KLAABIgKKIIQ2iD9YPAVoA01AAuAAMAg0Q8AiyKKJw8C +AA27AesmAiVQwQAAWGrFya0ooAAEiAooghDsoActWASAAPpAaB2gDUUAC4AAZa/giSdkn28qmRRk +oGCKmWSvZCigAASICiiCEOygBy1YBIAA+kBoHaANNQALgABlr+Bj/0IAAOokAAnYBIAA7EQACugE +gABYcsPAINEPAOokAAnYBIAA7EQACugEgABb/0HAINEPAP/9HA2gCwUA//50DaAKBQCINyLifwmI +EfhAAEE/+5YAiDci4n8JiBH4QABBP/v6AGwQBBrlQyiiy2SACwnqMCuizAuZDGeQAdEPWHTi0Q8A +bBAEHeVVJyAHHOVU/kEEFeDnEQAO3DmcMIgg+8oyBeAKJQD6YEYV4BkFAOk2AyxGAoAACokC+GAm +FeF3AQDmIHkrvAKAAPfmAA9wDQUA/AQCHaALNQDp5UITAjmAAJ01nDMLigIW5T+aMRrlPwbuAiYh +CZ40mjYEZgIiIAedOZU7+MYAC3EiAQDmNgopFAKAAAL/Agn/Au82CC2QBIAA0Q8sIQgrIQmdNZU3 +B8wCBLsCCbsCCcwCnDTrNgYtEASAANEPAGwQBBjlDx7lIywgBx3lIxnlJvpBBBXg/BEA/80ADvHM +AQDtNgAuZAKAAAy7Agm7AuOAgCmwBIAAHeTh/EAIFaAOBQCeZe1mAiG43QAA+sCGFeR3HQDqfP8u +ZgKAAOx8Ag1XAoAA7GYBJVPhAACaYwIEiZlmI2YHBiCLJSEJ9MFmFaQzHQDlZgorkASAAOiABQMo +wQAAbTkCBQJh0Q8AAABsEAYd5QILKxGtsyoyf/lACBWgBAUA+aBAJeAGFQDn3eUky4EAAOm5CAQB +qYAALDJ4LzJ7+YAFjGIAnQBl8RYsNnwrMnkrNnvdQA3kFgECAJSgDeQWwMn8QAXsIgCdAC8ye8HA +7eTrF4OhgAAiMnwqIQSOIPPh/g2mugEAJDZ89G9mFaAAHgAuNnztrwEFw/0AAAj/Au8lBCWMWQAA +IjJ8sMzvMnshAPGAAMnGY/+/2iBYdPtloMQqIQT/QSAMFpoBAMiZ0Q8A2iBYdO7RDwDaIFh0sNEP +AAAAAAAA+kBoHaALBQBYdX7RDy4s+OrSiC8BCoAA/MABBd/89QAMuwMLqgEq1ohZts4kNnwkNnv6 +b+gVr/zaAAAAFeR8L1BhZPBqWawpWHRnKHLL0w/IgVh0PClQYWSfJ1h0NsiuFeS2LFJrsMzsVmsm +AsmAAFhzvWP/DAAAAAAc5LD+b4gVoApVAPxvSBXgC0UA7RYAIWvlAABZtP76b+gVr/sqAC4ye+I2 +fC96DgAAIjZ70Q8f5KQv8q5x9ov2rCYdr/4iAAAAAABZq/D6rWYVr/6SAGwQBBTknBnknOjkdRle +woAApLQjQn+piOi4CAGCIYAAKjIAeKkCKkJ7HOSOKzEEKkZ/DLoB6jUEKdAEgABYdK3OqSkxBP8h +AAwW2QEAyNfRD9owWHSh0Q/aMFh0Y9EPAPpAaB2gCwUAWHUy0Q8jRn/RDwAAbBAE8GDgDe/59QCI +Igk5AwmIAZgiiicqrDBYaajj5EIVARmAACigAAOICiiCEOygBy1YBIAA+kBoHaANRQALgABlr+CJ +J8uSKpkUyqWKmcmtKKAAA4gKKIIQ7KAHLVgEgAD6QGgdoA01AAuAAGWv4NEPAAD//1wNoAoFANEP +AABsEAgW5GEb5GEU5Bb9yHAF4BjFAOMs6CXTgQAA+EANzCczAQAMNRGkVehSnilmwoAApsQpQH/5 +ABCT4gCdAChSnWSCB5sR6gseDUgEgACZEAoghgsCZQsCYw0AhwkCYQkCYRbkTB/kSu3DCAkBCoAA +8iCmFeAOFQDj5AwfcAqAAJ4Tr8/+IIYV7//1AP/XAA9wB0UA/iBGFaAAugAAipnJrSigAAOICiiC +EOygBy1YBIAA+kBoHaANNQALgABlr+ApQiBkkOstQHwe5CiMFQ3bCa7eDLsKLEB9pruKsi7ggGSh +OP3Hvg2gCBUAwPANjziIFQ//CQj/Ci/9Fy/8vC/yG/HhcA3gDAUAwLEL2wMLC0crRHwLuwkIuwqm +u/yPph2gDAUAjbDvUp4m8/8AAC7g///gBHuiAJ0AL1Kd9v/gFeD49QDx58AN53cBAHhxdOoSBCZA +BQAA6ER9JuPhAABYdDKJE9Kg6xICJIBhgACKoguqASomAoonKqwwWGkwya0ooAADiAooghDsoAct +WASAAPpAaB2gDUUAC4AAZa/giSdknxsqmRRlrvL/+8QNoAoFAIwRixAMgIYMYIYLAmkLAmfRD48R +jRAuRH8PwIYPoIYNAm0NAmvRD5sR6gceDUAEgACYEAoAhgsCYwsCYQ3ghwgCb+jsAAnQBIAAWatT +ZK+v7eO6Ga8CgADkVQgJZsKAAPeAAEI/+TIAAAD+IKgVoAsVAPu3AA3wDAUA/I+mHae7AQArRHwL +uwn/YAEFsAwFAPdgAEW/+3oAAAALYIYLQIYKAmcKAmXRDwAAbBAEGOOBAgNHDDMRqDMrMoQZ444o +sACKsQmICgohjAIKPiiCEAMCPvxAaB2gDSUAC4AAIjaE0Q9sEAQU43MCA0cMMxEEMwgkMoQqQgEm +QAAoQAj6mGgdoKklAAIFPgMCPnmBIxjjeghoCiiCEOpUAApYBIAA/EBoHaANJQALgAAiNoTRDwAA +AOskAApQBIAAWHP380BoHa//NgAAAAAAAGwQBFmusRLjWBPjeQwCACkiggkajgOoCoiEC4AAY//r +EuOfA+gwBO4wBbEwkyCUIZUiEuObE+NbhCAEMwKTIBLjmcAwKDdAKDdEKDdIKDdMIz0BcjPtEuOU +wDCTIMcvE+OTAyMDEuOShCAENAGUIBLjkYQgBDQBlCAS44+EIAQ0AZQgEuOOhCAENAGUIMcvwDED +IwMS44uEIAQ0AZQgY//8AAAAEuOIgyADExQPMxGTIBLjhcAwIyYAV//ZEOOEkQCSAZMClAMR44KC +EAHqMKIRAfAxwEAE5BYAAgAR436CECMaAAMiApIQEeN7wCGSEATkMYQDgwKCAYEAANIwASMAAAAA +EON2kQCSAZMClAMR43SCEAHqMKIRAfExwEAE5BYAAgAR42yCECMqAAMiApIQEeNswCGSEATkMYQD +gwKCAYEAANMwATMAAAAAEONnkQCSAZMClAMR42WCEAHqMKIRAfIxwEAE5BYAAgAR41qCECNKAAMi +ApIQEeNdwCGSEATkMYQDgwKCAYEAANQwAUMAAAAAAFyUAV2UAl6UA1+UAEMAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABckAFdkAJekANfkABTAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJQAHZABnZQCnpQD +n5QECJQFCZQGCpQHC5QAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyQAZ2Q +Ap6QBx2QA5+QBHiQBXmQBnqQB3uQAFMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AADclAAdkAHdlALelAPflAQElAUFlAYGlAcHlAgIlAkJlAoKlAsLlABDAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAA3JAB3ZAC3pALHZAD35AEtJAFtZAGtpAHt5AIuJAJuZAKupALu5AAUwAAAB///bQA +0jEQ//4KAAAAAAAf//38ANMxEP/+CgAAAAAAH//+RADUMRD//goAAAAAAAD0MAoAAAAAAPQwCgAA +AAAA9DAKAAAAAGwQCCcgB4giFuJW/cSkBeF3AQDlgPFr1wKAABjiTy6AgOaqCAdw3QAA/VPIFaTu +HQCuTuviShdwCQAA/4AIS6AJpQAqop0LfAoswr8MqgHqFgIlB/mAAIjY9wAI8JIAnQAvYq7s4kAX +hcGAACpirSzCf+yrAQRz/QAA/UAFJiIAnQCe2P1ABS4iAJ0ALyAUpP8PD0cvJBT14AeuUgCdAPgg +SBXnhQEA+QAHcVIAnQDoPBAiDD0AALBKbakFCACGCQJhwFCIEo0y7SYcIkv9AADrMgEszwKAAKmI +mBPzYApAUAoFAOoWAC2LSgAAixDrSwgL5wKAAObMCAXb/QAA68adKpAEgADRD+okAAnYBIAA7EQA +CugEgABYdgPSoNEPAMCwCYw07NYILfseAACNImXf1fpAaB2gG8UA/AAiHaANFQBYerFj/7///AwN +oAoFAAAAjiJl77AtgIAt3Df64wAV5N0dAO1NCAlQBIAA/aBAFeAMFQBYeqRj/4zAoFmtvR3h9YjY ++R/2wJAJpQBj/5zaIFv7G2P/BgCOJ54RiOn7wqQV78kFAOXpFCdggQAACckB6b0IClcCgADqVQwE +QEEAAJjpCFUy5eUUJukBAAD9AAg64gCdAGirPairK7zw+6AE0+IAnQDvEgIiDHUAALBObekFCACG +DwJhK8IBC6sI5ckEJdvBAAD9YAbMYgCdAOvGAS3ABIAAZFCp9QBoHe/6lgAAAAAAAOokAA7gBIAA +7BYELFgEgABb/HqLMYgTjRTqFgAtZwKAAOyICAX0/YAA2iD7AGgd4AwFAFv8QY0Q7a0ICpAEgADt +TQgL9wKAAObuCAbr/QAALead0Q8I3Qz6IEgV5P0dANMPbfkFCCCGCwJjKxIC708MBMEBAADtuwgH +jEEAAC78/23pBQhAhgsCZS/JBA2oDKiYKIww6MYBL/rWAAAqnECawfuABhWgCAUA+YCEHa/9FgAL +iAz5wSYVr/vaACicQPmAJhWv/LIAbBAEHOGdGuGdDwIALcJ/KqF+LMKbo93qOgwO7kKAAP2AAEZw +CwUAK8QEK8QFWRR6+kBoHaALBQBb/O7RDwAAAGwQBIUjgyAU4Y74QIQVoVUBAOrhjBquwoAA5FQI +AYC5gAD7AAQENpg5AAmIAiglBCJCf9EPHeGDE+GEH+GEJkJ+KyEELkJ/kmCWIaP//WAEBfbLOQAM +uwKvX+8mACcoBQAAJUZ/IkZ+6yUEKpAEgADRDwAAbBAEgiMCAkHRDwAAbBAEiiBloFAd4XLqIgMp +9sKAAK7d/a/oFeAMFQD8gEAGMaoBAAaqAg3ILAjdKCclBe3MDARYBQAA/W0ADD/7xQDrqgEMTkKA +AAlZAgOqApojCYgCKCUE0Q+PIxvhXg8PQQv+EavrLbJ/GeFYLLJ+ctkb2cDzJB4NoAwFAMDALLZ/ +LLZ++kAIFaAATgAAANjA8wyGDaAMBQBy0R2NIZrQjiApsn2d4Zwg7CYBJMv9AAD5b6YV7/1SAAAZ +4UMY4USpiKjoeKEh6rZ/L4E2AADNriqyfWqiGS2ye/1v5hXgAE4AAAAAAAAAAOy2fyf/IYAA+kAI +Fa/+ngAc4TSIIayZqen5DwAM8AwFAAnIOPlvxhWv/iIAbBAE9cJgBeAGFQD0QGgdoAI1APaAQAMw +AB4AALAiKFJ/6GP3cquBAADRDwBsEAT0QkgVpCNBAPJaAAk/U4EABCIKhCaCIQVEKApEEaQi0Q9s +EAQqIhIjIAf6PgAEMAY1APUACRCRMwEACshR9QAJKJIAnQD6KAAGsDsFAP3CJgWgClUAWbE5F+EF +5OEDGc8CgAD0YAYSEgCdAKeZKpKe90AIidIAnQAqkp0EOworsr8LqgHxTuAN50UBACghBxnhA//C +BgWqiAEA6+ECHEcCgAAJiAKYoBjhAPxACBXgPAUAnKf7QKYV4BmFAJmj+UBGFaAIBQCYpu7dAg7+ +AoAAnaQG/wKfoS8iEg+PQeimCC//AoAAn6nt4PEZ9wKAAKfuJuadLCISKiIQDcwC7CYSKVgEgABY +0d1oQhmKJ/oAIh3gDAUA+0QAFaANFQBYbn3SoNEPAMAg0Q8c4M6LyGqxWww5EaeZLZKebtNmKpKd +BD0KLdK/DaoB5KBZZfP9AAD/gQYVr/zCAC8aAA+qAvpCRhWv+2IAKCoACKoC+kJGFa/7VgAAAIki +y5loQk3AINEPAAAAAP/77A2gCgUAwKBZrHwc4LOLyGuxlv/7mA2gCgUAAMCgwNoNvTT9gQYV7/ta +AAAAAOokAAHYYQAA/AACHaANNQBYeVNpQrGMJy/JFIrJ/4QAFa/IBQDo7gEH+EEAAO/FFCVTwQAA +6sYJJ3EBAAB+qyopwRUd4K6qmprJnaCMIPvBWAXgDRUA66YCLmYCgAANzAL9QCYVoAIFANEPHeCk +naCMIPvBRgXgDRUA66YCLmYCgAANzAL9QCYVoAIFANEPAGwQGBTgnZIQjiAZ4JqLIy0iASwiAiwW +Ii0WJCsWI/ggxhXgCBUA+CDmFaAPNQD+ISYV4AoFAPogphWgD7UA/iImFeAKdQD6IaYVoAiVAPgh +5hWgCYUA+CHGFeALZQD6IYYV4A1FAPwhRhXgDFUA/CFmFaANxQD8IkYV4AzVAPwiZhWgC+UA+iKG +FeAJ9QD4IqYV4AhFAJgUGuB6+iSmFaACJQDyIQYVoAKlACIWEBLgc4UWKxIkKRIFJlF+LBIiJ1F/ +BpkoL0CAqXn4XogVo5kBAAOZCu6SAC9QBIAAJVI+LRIjCO4IC1AAjhcsEiQtEiIG7igvQIGufvhe +qBWj7gEAA+4KjuAqFhbqEiMtWASAAKjuC1AAjhgsEhYtEiQG7igvQIKufvheyBWj7gEAA+4KjuAq +FhfqEiItWASAAAjuCAtQAI4ZLBIXLRIWBu4oL0CDrn74XugVo+4BAAPuCo7gKhYY6hIkLVgEgACo +7gtQAI4aLBIYLRIXBu4oL0CErn74XwgVo+4BAAPuCo7gKhYZ6hIWLVgEgACo7gtQAI4bLBIZLRIY +Bu4oL0CFrn74XygVo+4BAAPuCo7gKhYa6hIXLVgEgAAI7ggLUACOHCwSGi0SGQbuKC9Ahq5++F9I +FaPuAQAD7gqO4CoWG+oSGC1YBIAAqO4LUACOHSwSGy0SGgbuKC9Ah65++F9oFaPuAQAD7gqO4CoW +HOoSGS1YBIAAqO4LUACOHiwSHC0SGwbuKC9AiA5+CPhfiBWj7gEAA+4KLuIAKhYd6hIaLVgEgACo +7gtQAI4fLBIdLRIcBu4oL0CJDn4I+F+oFaPuAQAD7gou4gAqFh7qEhstWASAAAjuCAtQAC4SECwS +Hi0SHQbuKC9Aiq5++F/IFaPuAQAD7gqO4CoWH+oSHC1YBIAAqO4LUAAuEhEsEh8tEh4G7igvQIuu +fvhf6BWj7gEAA+4KjuAqFiDqEh0tWASAAKjuC1AALBIgLhISLRIfKBIlBu4oL0CMrn75D+gVo+4B +AAPuCi7iACoWIeoSHi1YBIAACO4IC1AALBIhLRIgLhITL0CNKBIlBu4omhOufvkQCBWj7gEAA+4K +juDqEh8tWASAAJsRqO4LUACMES0SIS4SFC9AjigSJQbuKJoSrn75ECgVo+4BAAPuCo7g6hIgLVgE +gAArFiOo7gtQACwSIy4SFY0TKBIlBu4oL0CPrn75EEgVo+4BAAPuCo7g6hIhLTAEgAAmFiLo7ggL +WASAAAtQAI4RKhYkKRISKxITKBIlLRIVjxXsEhQkQQEAAOgWJSboQQAA7RYVJ/hBAADvFgUmYEEA +AOwWFCXYQQAA6xYTJMhBAAApFhKLHYkcjB4vEhCNH+gSESZgQQAA7BYOJ/hBAADvFhAm6EEAAO0W +DyRAQQAA6BYRJMhBAADpFgwl2EEAAJsdiRaLF4gbjRnvEgohEQEAAOwSCCRAQQAA6BYLJuhBAADt +Fgkn+EEAAO8WCiIgQQAA7xIEJmBBAADsFggl2EEAAOsWByTIIQAA6RYGJ/v9AADvFgQv4WYAAIsQ +iBOMEo+wibONso6xrJmm3aruqP+fsJ6xnbKZs9EPAAAAbBAEKSIV+KAABPA4dQDpjAwBIEEAAPMg +AEU/iwUA66QQJVBFAAD5AAXTYgCdACsKAFmoOywiFSsiFO3NEQlABIAA/EJGFe6APQD9awANsAk1 +APpCZhXgCiUAbaoMjoQODo7uhgQkQBEAAA8CANMP0w9tmiHpggQkQEEAAIqBi4KMgwkJjgoKjgsL +jgwMjpmAmoGbgpyD60QACVAEgABb/q2KIIgiiSGPIwgIjgkJjg8PjgoKjpognyMpJgHoJgIpQASA +ABnfRQIAhgMCYfgAChXgCbUAbZoCCACK0Q8AAAAAAAAA/YEAFaALBQBZqAz4QGgdoAlFANMPbZoh +6YIEJEBBAACKgYuCjIMJCY4KCo4LC44MDI6ZgJqBm4Kcg+okAApYBIAAW/6L2kD/+/wNoDyFAABs +EAYpIhX4QogVoEYFANMP+IAARXWZAQAJZgx0qwGxiComFQYqDOgmFCVRQQAA9oAHs6IAnQDrNAAL +YASAAFmn4PhAaB2gCUUA0w/TD22aIemCBCRAQQAAioGLgoyDCQmOCgqOCwuODAyOmYCagZuCnIMl +LBDqJAAK2ASAAFv+aAZHDPbgBY7SAJ0A5jQICtAEgAD24GgdoAMFAOQWACpABIAA+MhoHaAJRQAK +AmcIQIYKAmUIIIYKAmMIAIbqDAAJQASAAG2aIemCBCRAQQAAioGLgoyDCQmOCgqOCwuODAyOmYCa +gZuCnIPqJAAK2ASAAFv+S+pUAAGYBQAA5mzAIiEBAADvbZpqQASAAIsQCjwRC8sI7HwMCtAEgABZ +p6jRDwAAAAAAAOs0AApgBIAAWaej0Q8AAAD2YABGMAMFAPwgBhWv/yYAbBAEGN7ZGd7XGt7VE97Y +kyOYIpkh+kAGFaALBQArJhUrJhTRDwAAAGwQBt4g5OIQKmAEgADnQgcr0ASAAPu9igXgGDUA40IV +KZAEgADncg4i++kAAHj7Jxjexgj4CoiAmhOcEu4WASwAIoAAAJMQKrKl7FQACVgEgABZqWFkpcfy +gqYV4AIFANEPAAAAACviEgubUu4WASX/QYAAGt6u4xYAKVgEgADqoscq4ASAAFmpVGSlehrep9sg +6qLJKuAEgABZqU8jfQXkps9hmgEAABreodsg6qLLKuAEgABZqUj3R+AN44YFABrem9sg6qLNKuAE +gABZqUJkpsQa3pbbIOqizyrgBIAAWak9+0BCiBIAnQArMOXBWPVgK+BiAJ0AabchJTTlixD6gqYV +4AIFANEPkxAqsp3sVAAJWASAAFmpMGSnAosQ+oKmFeACBQDRDwCTECqyq+xUAAlYBIAAWakoZa8a ++iBoHaALtQBYzeH6ACId4AMFAOqzOAUA4YAA6hICK1gEgABZp6zIqRzeeY0RDKw2LNYXZTMljRD8 +gqYV4AIFANEPLkBuZO7SkxAqssHsVAAJWASAAFmpEWWuv/ogaB2gG2UAWM3K+gAiHeACBQDqsjgF +AKmAAOoSAitYBIAAWaeWLH0DKsUoZSLRjRD8gqYV4AIFANEPAACTECqys+xUAAlYBIAAWaj9ZKK3 +Gt5R2yDTD+qinyrgBIAAWaj4Za5a+iBoHaALVQBYzbH6ACId4AIFAOqyOAUn6YAA6hICK1gEgABZ +p3wsQG/xgCc+0gCdAGSk34oT+gCiHeAM1QBYzY7SoNEPkxAqsrnsVAAJWASAAFmo4mWux/ogaB2g +GyUAWM2bZKI1K0BuZLdv6hICK1gEgABZp2gsQhYKzDYsRhaLEPqCphXgAgUA0Q+TECqyt+xUAAlY +BIAAWajQZKIzGt4k2yDqorEq4ASAAFmoy2WubfogaB2gC+UAWM2FZKHb6hICK1gEgABZp1MrfQIq +tRSLEPqCphXgAgUA0Q+TECqyqexUAAlYBIAAWai8ZKIqGt4P2yDqorUq4ASAAFmot2SjhxreC9sg +0w/qoqMq4ASAAFmosmWuB/ogaB2gC3UAWM1rZKF1K0BuZLbjGt4AixLqou8rYASAAFmoqGWmRitA +b8DIDLsCK0RvixD6gqYV4AIFANEPAACTECqyv+xUAAlYBIAAWaidZKHvGt3x2yDTD+qioSrgBIAA +WaiYZa2f+iBoHaALZQBYzVFkoQ0rQG5ktmoa3eaLEuqi7ytgBIAAWaiOZKZ5K0BvLAr9DLsBK0Rv +ixD6gqYV4AIFANEPAJMQKrKn7FQACVgEgABZqINkobca3dfbINMP6qKbKuAEgABZqH5kotoa3dHb +IOqiuyrgBIAAWah5ZKxfGt3N2yDqosMq4ASAAFmodGWsTBrdyIsS6qLdK2AEgABZqG9lpFKLESuy +EguZUsiZaJIH+SAPYdIAnQCMESvGEvKCphXgAgUA0Q+TECqyl+xUAAlYBIAAWahiZKF6Gt212yDq +opkq4ASAAFmoXWWstPogaB2gCyUAWM0WyqIa3a2LEuqi7ytgBIAAWahVZayUihP6AEId4AzVAFjM ++NKg0Q/AINEPAAAA+iBoHaAL9QBYzQhkr+rqEgIrWASAAFmm1+sSACPgCwAAKsUV+oKmFeACBQDR +DwAA+iBoHaAbFQBYzPxkr7otQG5k1QYpQG/xP+GXkgCdAPE/4VfSAJ0A6hICK1gEgABZpsUuQhcK +7jYuRheLEPqCphXgAgUA0Q8A+iBoHaALpQBYzOpkr3IvQG7TD2T0duoSAitYBIAAWaa3KEE0+wAP +AqIAnQCKE/oBQh3gDNUAWMzJ0qDRDwAAAPogaB2gG1UAWMzaZK8y6hIBKlgEgADsEgIraASAAFjM +YosQ+oKmFeACBQDRDwAAAPogaB2gC5UAWMzOZK8CKUBuZJQZGt1kixLqou8rYASAAFmoC2WiXCtA +b40Q/IKmFeAMFQAMuwL6jeYd4AIFANEPAAAAAAAAAPogaB2gCxUAWMy8ZK66Gt1TixLTD+qi7ytg +BIAAWaf6ZaspihP6ACId4AzVAFjMndKg0Q8AAAAA6hICK1gEgABZpoD1QBXykgCdAMcv0Q8A+iBo +HaALhQBYzKj6ACId4AIFAOqyOAUBSYAALEBuDwIAZMODGt1D6xICK2AEgABZp+Jlom4tQG/A6A7d +Ai1Eb2UuNY8Q/oKmFeACBQDRDwDqEgEqWASAAFjMnWWvnCsw5WP6cwAAAAD6IGgdoBsFAFjMjmSu +AihAbtMPZIL16hICK1gEgABZplspQhiLECtGFQqZNviDBhXgAgUA0Q8AAPogaB2gCzUAWMyAZK3K +Gt0XixLTD+qi1StgBIAAWae+490dHQcuAACLESuyEgvJUciZaJIH+T/5EdIAnQCOEYwQA70BLeYS +/IKmFaACBQDRD2UthI8Q/oKmFeACBQDRD+oSAitYBIAAWaY6KkU0ghDygqYVoAIFANEPJX0E9LAA +FeALBQD6oGgdoIwFAFmly+oSAirYBIAAWMy1KzDlwMQMuwL6fCYdp7sBAPp8ph3v5f4ALTDl+iBI +FaAOJQAO3QLtNOUrWASAAFmmIisw5fp8hh2v5W4AAIoSWZptLzDif6kUihJZmmrcoOoSAiPYEwAA +WaeJZKG3wKL9uc4FoDsFAFms+ccv0Q8a3NiLEuqi1ytgBIAAWaeAZa4+ixErshILyVFokQpokgf5 +P/Fp0gCdAB7c2gO9AQ7dAo4RjBAt5hL8gqYVoAIFANEPihP6ASId4AzVAFjMF9Kg0Q8AAAD6IGgd +oAtFAFjMKGSsahrcv4sS0w/qotUrYASAAFmnZuPcyB0FZgAAixErshIL6VHImWiSB/k/7hHSAJ0A +jhGMEAO9AS3mEvyCphWgAgUA0Q8a3K6LEuqi3ytgBIAAWadWZa2WixErshILmVJokQpokgf5P+wp +0gCdAB/csoIR778CA+gXAADvJhIm6gEAACzQ5cDhDswCLNTl8oKmFeACBQDRD4oT+gECHeAM1QBY +y+nSoNEPI30FIzyAKzDlwMEMuwILC0f6fKYd7+ASAAAAGtyPixLqotcrYASAAFmnNmWtF4sRK7IS +C+lRaJEKaJIH+T/oMdIAnQAd3JMDvAENzAKNESzWEosQ+oKmFeACBQDRDwAAAAAA9uAAQzALBQD6 +wGgdoIwFAFmlTMFQ6hICK1gEgABYzDYrMOUFuwL6fCYdp7sBAPp8ph3v3hIAAAArMOXAyAy7AgsL +R/p8ph3v3b4AihP6AOId4AzVAFjLudKg0Q+KE/oCAh3gDMUAWMu10qDRD4oT+gFCHeAMxQBYy7HS +oNEPihP6ASId4AzFAFjLrNKg0Q8AihP6AQId4AzFAFjLqNKg0Q+KE/oCQh3gDMUAWMuk0qDRDwCK +E/oCIh3gDMUAWMuf0qDRD4oT+gDCHeAMxQBYy5vSoNEPihP6AOId4AzFAFjLl9Kg0Q+KE/oAwh3g +DNUAWMuS0qDRDwBsEAQkIhBkQGwpMBAqMBEsMBrrMBIszgKAAAqZAuowEyzOAoAAC5kC6zAZLM4C +gAAKmQLqMBgkhREAAAiqEQuqAuswGy1WAoAADKoCCKoRC6oCsarqJhYkhI0AACkiEuvcNxTAKIAA +C5sBKyYSLEAFLQqVfcFJwCDRDwAuMBQvMBXoMBYvdgKAAA/uAu8wFy92AoAACO4CCO4RD+4C/ddg +AFCNBQAvIhJ49yTApf24SAWgOwUAWawwwCDRDwAAAAD6gGgdoAtlAFjmbMAg0Q8AjCcpyRSLyfmE +ABWvygUA6ogBBMkBAADpxRQl2wEAAOvGCSRBAQAAeLsGLsEVq+ubyRjcENmw+AAIHaAPRQBt+gIJ +AmEc2/acsIog/UAAFTAMRQAMqgKasSkwFCowFR7cBu8wFizOAoAACpkC6jAXLM4CgAAPmQLutgIs +zgKAAAqZAum2BCHAIQAA6AYABfhhAAAPAIoqIhKJIg2qAuomEiz35gAA+kBoHaANNQAL4ABj/ukA +bBAGKCAEKQoYeYEDwCDRDyoiEiQiENMP80AKR9IAnQAvQG7TDw8CAP3nAIDQnFUAK0AFfLHVHNvk +/EAIFeAKJQD+gAgVoDsFAFmr6vqAaB2gDSUA/EymHeALFQBY5ibAINEPABzb2o0gjjYvMQv4Y/AV +oApVAPggBhWgOwUAWavdGtvTJCIYLDELiCyJSoVH/QAARDALBQD4QYYVoA0FAOVSDiSQSoAALUYe +Cp4C/oFGFaAAHgArQh7rWggB2IEAAFmkdi9CHi4xC41Ar+4uRh4qUAQsUAUY27/rUAYtVgKAAAyq +AulQBy1WAoAAC6oC7Nu6HS4CgAAJVQIIVQH0oGAV7/jFAPigBAKwOwUA/qBoHeAKVQBZq7cqIhMp +MQsrQh4PAgAKmQjpJhMiwMEAAPl/9sUiAJ0AHdupLEIKDcwB7EYKKVAEgABY4zP6QGgdoAsFAPwA +Ah2gDSUAWDb3wCDRDwAvIhMuMQv6QGgdoAsFAP/AAEdwDAUA/kJmFaANJQBYNu7AINEPAAAAbBAG +HNuULSIALjIF9EDoFadVAQD+v8AV4AgVAA+POfSCghWgClUA9CAGFaA7RQBZq46JImWQmCYgBxfb +VwYGQeoyBStHAoAAp4grgp4krB/5tqIF5EQdAHSzfCiCnQlrCiuyvwuIAe2EAAQDqYAAHNtxDACH +bUkCCAJhiDQe21Ke0IkgHNtU6tYDJthBAADs1gIszgKAAOlJAgHggQAA6dYBKVAEgAALgAAMbxGn +/+T2nSKUdQAAiif6AUId4AwFAPtEABWgDaUAWGjd0qDRD8Ag0Q8AAAAA//4sDaAIBQDqJAAKaASA +APrDABXgDAUAWHPTwCDRDwBsEASHJyp5FB/bTfjipBXvzQUA6HIIJVAHAADscgslUoEAAOqTd3PY +gQAADbsBq5nowXR0yQEAAC6NAep1FCdSgQAA6pNxfDAEgAB5oX2aeO8ABQs4BIAABwJhBwJhBwJh +BwJhBwJhBwJhBwJhBwJhBwJhBwJhF9sbl2CFIJNllGTztm4FoAelAOJmAiquAoAAB1UC5WYBKxAE +gADRD8Ag0Q8AAAAAAAD3gGgdoAgFAPjhZhWv/nIACJoMCroMKq0BKqzg+uEGFa/+IgAsvED84QYV +r/32AABsEATHjwhYAwg4AghIA6ho6CIIC4EKgAACIhiiMtEPAGwQBAQ4AwhYA6ho6CIIC4EKgAAC +IhiiMtEPAABsEAQEOAMIWAEISAOoaOgiCAuBCoAAAiIYojLRDwAAAGwQBAVIAwg4AQhYA6ho6CII +C4EKgAACIhiiMtEPAAAAbBAEIyIQKDAF+EJIFeCUJQB0iUj/KKADEI0FAHifPXCfGera+xS9WIAA +CpoB+kJGFaACBQDRDwAAAAAA/bXsBaAKVQD8YAgV4DsFAFmq8yswbtMPabEFLDAFdMEGwCDRDwAA +APpgaB2gDSUA/EymHeALFQBY5SrAINEPAIwnL8kUi8n/hAAVr8gFAOjuAQf5AQAA78UUJdsBAADr +xgkncQEAAH67BinBFaubm8kc2s7ZsPwACB2gCkUAbaoCCQJhHNq0nLCJIB7ayfv/4h2gDEUA6rYE +LM4CgAAMmQKZsSgiEo8inrINiALoJhIv+4YAAPpAaB2gDTUAC+AAwCDRD2wQBBPaxQMiAtEPAGwQ +BiYgB4giHNqO9EIIFeFmAQDlgntrTwKAAKyZKJKeGtqH9wATitIAnQAkkp0KaAoogr8IRAHo2pcS +EumAACciEoop+EFIFeB3QQCXEAh3CidykOqZDAPYwQAA+yAPs+IAnQArIBYoCv94sRL6QPAVoAwF +AFhxOezachURoYAAKyEHHdp7+bVEBeq7AQDv2nsd3wKAAA27AptAiCD7tTwF4EoFAPqAZhWgBlUA +70YCLHYCgAAG7gKeQS0iEo4QLyEa+7UoBaLdUQDq7hEO7YKAAA3uAgvuAvsGAAwx3jEAqd0t0IDo +RgQv+gKAAJ9GDX0M7kYHJujBAACdRSoiFYsp90AARX/pBQDnuwgFUMEAAOomFSXYwQAA6yYJIlCB +AAD4gAtsYgCdABvabMSQ+gAIHeANBQAKAmEKAmEKAmEpRCAtRCQtRCctRCb8hKYd74oFACpEIS9S +Ef6HZh3o/x0A/odGHej/HQD+hyYd6P8dAC9EOC4iFv6H5h2o7h0A/ofGHajuHQD+h6YdqO4dAC5E +PIo0GNpi79pWEfBhAAD1QAYYEPn1AO4GAAJQoQAACgCKKUQwKEQx/oZGHe/+9QAuRDOKNC1EI/qG +5h2o/R0A/oRGHejqHQD+hsYdqO4dAP6Gph2o7h0ALkQ06wAFAkkBAAAJAmEoIAcICEEMiBGsiCaG +nSsgFi8K/3+xCvpA8BWgPAUAWHCmiDRogCeKJ/oAgh3gDAUA+0QAFaANRQBYZ64rIhIs+n8MuwH6 +QkYV4AIFANEPHto2LSISDt0C/EJGFe//LgDaIFhw4OzZ+RVwKYAAYAAriF4Z2imxiJheCYgC+IZm +Haj4HQD+hkYd6P8dAP6GJh3o/x0A/oYGHe/83gDAINEPAADrbBgpUASAAPwAIh2gDVUAWHKPwCDR +DwDrbBIpUASAAPwAIh2gDQUAWHKJwCDRDwBsEAYkIhIqCo7pIhMifGyAACgxC6mI+EJmFaAJBQDp +JhEskASAANEPLyIYL/B0evFUKCAFGtoK6doKFAJZgAArMQsKRAEkJhKNOSwiE32YPy4iEavM7CYT +ImWegABk4JKN7H3XIIjr+8BoHaALBQD8AAIdoA0lAAuAAMCQ6SYRLJAEgADRD8Ag0Q8AAAAAAAD9 +s+oFoAolAP5ACBWgOwUAWanpKiIQKaAFKwqVe5HWwML8TKYdoAsVAFjkJMAg0Q8c2eqN4P/AsBWg +ClUA9CAGFaA7BQBZqdwtIhLAkPhCJhXvvvUADt0B7SYSLJAEgADRDwDaIFjhXcCQ6SYRLJAEgADR +D2wQCCoiEg8CAPNADyfQiOUALSIYK9B0+WAOtCIAnQApIAUc2dHv2dEUjkGAAAyqAiomEvNAJztS +AJ0AjiwoMgYkMCD8YUQVr/XFAP8AJ60lRAEADAxO/ZtgFaAmVQD1gAQGcIW1APVgEtRgJxUAD6gC +rOn4QYYV4DsVAPhCRhWgLCUA9oJGDeAKBQB2QQp7QQf8gCg9IgCdAC0wMCoiEC4wMS8wMuqgcC7u +AoAADt0C7jAzLu4CgAAP3QLo3REFeBkAAO7dAg+CCoAADQ4Z9cAj11X9AQAK5REF9QKVEfogBhWg +OwUA/bNEBaAKVQBZqZUb2WIssogvIhgrspulzO/wdC5mQoAArLv6QiYV4Ii1AOqwBS3oBIAA+eAY +TSCcpQD9QBgMIJ61AP9AF8wiAJ0A9UAXiJIAnQAvCpn/QCClYgCdAPaABXxgD0UA9oAFPCIAnQAp +MEEsMEAuMDwqMD3oMD4uZgKAAOnMAg92AoAACu4CKTA/6jBCL3YCgAAI7gLoMEMuZgKAAOrMAg92 +AoAA6e4CDmYCgAAIzAIOyAzqIhAkBIuAACWiEn5RCAXoDGaAAi6mEi6iE3zhCA7JDGaQAiymE4q8 +D6oCmrx2QT3DwfyACXwiAJ0A9oAPjGIAnQDC4v6AF3QiAJ0ALxAQZfMSwCDRDwAAKDAjwJEImDko +tEEoFBD2n/pdIgCdACowIX+nuykwQSwwQC4wPCowPegwPi5mAoAA6cwCD3YCgAAK7gIpMD/qMEIv +dgKAAAjuAugwQy5mAoAA6swCD3YCgADp7gIOZgKAAAjMAg7IDOoiECQEi4AAJKISfkEIBOgMZoAC +LqYSLqITfOEIDskMZpACLKYTLjA4KDA5jLzpMDovdgKAAAjuAugwOy92AoAACe4C6tk0H3YCgAAI +7gLvzAIHcAUAAC4mFpy8+2FmFa/8tgAAAPgAYh2jmuEA+R/s9mIAnQAoMCQpMCXrMCYsRgKAAAmI +AukwJyxGAoAAC4gCCIgR6YgCBlgRAAD5bQAOP/W+AAApMCHxIAfOEgCdACowJCwwJe4wJi1WAoAA +DKoC7DAnLVYCgAAOqgIIqhEMqgJloM8sMEwuME3vME4uZgKAAA7MAu4wTy5mAoAAD8wCCMwRDswC +6iIQJgVpgAAuohj9wAUTogCdACy2EiowSC4wSe8wSi1WAoAADqoC7jBLLVYCgAAPqgIIqhEOqgIq +thQpMDQuMDXqMDYszgKAAA6ZAujY9RzOAoAACpkC+mbwFaAOBQAuthUuthPotgsszgKAAAqZAvlh +phXv+IYALjA4LzA56DA6L3YCgAAP7gLvMDsvdgKAAAjuAgjuEQ/uAuzY4xdwBQAALiYW/WFmFa/3 +sgAAKiIQL6AFKAqV+f/vBCIAnQDAkvhMph3gCxUAWOMKwCDRDxzY1u2yAC1wBIAA+kJIFaA7BQD6 +IAYVoApVAFmowC0iEvpCCBWgTgUADt0CLSYSLjBBKzBALDA8LzA97TA+Ld4CgADuuwIOZgKAAA/M +Ai4wP+8wQi5mAoAADcwC7TBDLd4CgADvuwIOZgKAAO7MAg3eAoAADbsCDL0M97/qaBIAnQAtohJ8 +0QgNzwxm8AIsphIsohP7n+mcYgCdAAy4DGaNKPtCZhXgAgUA0Q8AAAAqMDgsMDnuMDotVgKAAAyq +AuwwOy1WAoAADqoCCKoRDKoC6dijFVAFAAAqJhaZu4rXKTwg+0HIFaALNQBtugUJAIYKAmHAINEP +KSIRZJB/iZeJnvkmABXgC2UAKjwg0w9tuQUKIIYJAmPAINEPAAAqIhBj/rwAAP/uMA2v9fUAHNiN +LzAwKTAxjrDoMDIv/gKAAAn/AukwMy/+AoAA6P8CDWgEgADoMCAv/gKAAPnmAA/wCiUA+CAGFaA7 +BQBZqGzAINEPAAAA+kImFa/9kgCJ1ysxC4mev7sLS0vlv3xkyMEAAGP8NQBsEAYrIgcmIAcPAgAo +uRQFDUf1YcgVoWYBAOOyCSQOUYAA+aAQUVIAnQAc2GkoIgD/YEgVoApVAP2/wBXgCRUA7Z05CXgE +gAD4IAYVoDsFAFmoTRzYYPxgEBXgClUA/koQFaA7BQBZqEgX2BPl2BIbTwKAAPTAC8ISAJ0Ap5kq +kp73QA9aUgCdACqSnQVrCiuyvwuqAWShpSshBykgQC8gB/WwKAXquwEA7dhLHd8CgAD1IAuYke8B +APUgCRkSAJ0A9YAI2pIAnQDAwPmwiAWg/xEA6SEIL/qCgAAPuwLtuwIPdAKAAA6ZAgiZApugjiCY +pvVARhXgPwUA+UCGFeANRQD/QGYV4AkFAOmmBSVYgQAA6aYHL3YCgAD9xgAPcA8lAO6mAS52AoAA +7+4CBUkBAAADIIYLAmMDAIYLAmH/QSYVr5V1AASAhgkCaQRghgkCZwRAhgkCZegiEitPAoAAp5nt +lp0hISEAAPUMRg2vZ4UAFtgbIyISDwIABzkIKpInJZR9LJImLKYAK5Im+2AmFaAIBQDoliYhm4EA +AOiWJynQBIAAWaX3+gCiHaA7BQDsZAAJ6ASAAFmn8y8iEsDh0w/17wAPsA0FAA/tOGTfpOUkBSlQ +BIAAWaXqwCDRDwD8gFAVr/ueAP/42A2gAwUAHNevi8hqsX8MaRGnmSiSnvcABHJSAJ0AKpKdBW0K +LdK/DaoBZKB8sL6eyGWueWAAHAAAAAAAAAD8EEIdr/p+AC8gQAj/EP5gBhXv98IAjyJk8F8c1+ju +IgApaASAAPngaB2gCRUA/y0ADHAKVQD4IAYVoDsFAFmnyMAg0Q8AAAD/+IQNoAoFAMCgWaNUHNeL +i8j5f/uQkgCdAP/+NA2gCgUAwKDA2g29NP2BBhXv/foAAACPMOokAANYYQAA/6+cBaf/wQD+SAYd +4AwVAP5gBhWgDUUAWHAm/kBIFe/93gBsEAiJJysgByiZFPTgAAZxuwEA5pIJJAgJgAD5gAnhUgCd +AC0gQRzXb+TXbx2YBIAA8bNMDeAFRQD2AAId4A0FAPVgBtoSAJ0ADLoRpKouop71wA0b4gCdACmi +nQy+Ci7ivw6ZAeqUAASJ6YAALyBBZfFmHNdsGdekKCEHLSAHHtej/kEEFeqIAQD8IAAF8N0RAOrd +EAxHAoAA7YgCDdwCgAAL/wIO/wIJiAKYoIggn6T/QMYVoA0FAJ2l/UDmFeA7BQD9QEYVoAlFAOum +AyxGAoAACYgC6KYBJUiBAAAGIIYJAmMGAIYJAmH84AAVsAwlAAy7ApupDDoRBKoI9VOmFe+ZdQDp +JAUpUASAAFmlacAg0Q8AAAAA//v8DaAGBQAf1y+O+PfABriSAJ0ADDoRpKooop71AAeD4gCdACqi +nQw4CiiCvwiqAeSg3mdL/QAAmfj5QGgd7/w6ACogQAiqEPrABhWv+voAj54t8AQn8AUe10nl8AYu +7gKAAAfdAu/wBy7uAoAABd0CCN0RD90CDt0BJdxn9I4ACvCHlQD0oIAV7/p+AI8i6xYEJ4R5gAAc +11vuIgApaASAAPngaB2gCRUA/y0ADHAKVQD4IAYVoDsFAFmnOcAg0Q8s3Ejr3GcpcASAAP7AaB3k +ux0AWaYgY/5/AAAAAAD/+aQNoAkFAJsU/CCmFeAKBQBZorwf1vONFY74ixQc1vP53/iAkgCdAP/8 +uA2gCgUAwKDAygzsNP3hBhWv/H4AAAAAjWDqJAAF2GEAAP2ubAWn3cEA7SRAKugEgAD8wAYVoAwV +AFhvjP5ASBXv/TIAbBAGiScjIAcomRQDA0HmkgkkBzGAABTW2vWtsAXnhQEA+QAIoVIAnQD0YAaa +EgCdAAw5EaSZKpKeBTsKK7K/90AJ6lIAnQAqkp0LqgFkoPcpIAcrIQcc1xL7QAAF8NkRAOrdEA3f +AoAADbsCDLsCm6COIPmtpAWgPwUA/0BmFeANRQDopgIvdgKAAA3uAp6hLCBB+gACHeAPBQD5RAAV +4ekBAOXA0W90AoAALCEIn6UOzAIe1vyfp56mDswCnKQGIIYJAmMGAIYJAmH9YAAVsAwlAAy7Apup +DDkRpJn9M6YV75h1AOgkBSlQBIAAWaTXwCDRDwAAAAD//GgNoAYFABfWnYt4arF/DDkRpJktkp4F +PArswr8oBAqAAPegBApSAJ0AKpKdDKoB5KB1Zev9AACdeGWvGWAADi4gQAjuEP7ABhWv+5oAAI8i +ZPBlHNbb7iIAKWgEgAD54GgdoAkVAP8tAAxwClUA+CAGFaA7BQBZprfAINEPAPoRIh3v/L4A//sk +DaAKBQDAoFmiQot4+X/7qJIAnQD//mANoAoFAADAoMDKDLw0/OEGFa/+IgAAAAAAj2DqJAAB2GEA +AP+tgAWn/8EA/kgGHeAMFQD+wAYVoA1FAFhvFP5ASBXv/cYAbBAEiiqOrxjWt+gmCyFIgQAA6eYA +JXjhAADvJggpWASAAP5BJhWgDAUA+UHmFe+YhQD4QKYdoA0lAFhtgMAg0Q8AAABsEAQb1qgqMQzT +DyuyfxzWivhiEBXgFGUA+0P2DeAFBQB8oRfqJAAK2ASAAOw0AApoBIAAWOAcwCDRDwBokUFokiFo +lAnAQP//ZA2gBQUAfKHRe6vO2jBY4EnVoP//EA2gBAUA/UDmDaAUZQB7owJgAAHAQNowWOBf//6c +DaAFBQDaMFjgceWkAAUBEYAA/a0MBaAKVQD8YCgV4DsFAFmmY//9/A2gBAUAAAAA//3QDaAExQBs +EAQpMBPxJgAN4PWFAGiRA8Ag0Q+EJ4ROHNZ37TARIkAXAAAthGL+YlAVoApVAP8MZh2gOwUAWaZQ +Kk0E7DARIdhhAABY4ILlOwgCUBcAAOwwEiVTgQAAWOB96iQAClgEgABY4dPAINEPhCcPAgAPAgCE +ThzWYi0wES1EAv5iUBWgClUA/oBmHaA7BQBZpjrrPBgiUAsAAOwwESVTIQAAWOBr5TsIAlAPAADs +MBIlUqEAAFjgZ8Ag0Q8AAGwQBPRAYCXosx0AI1RX+qrGHeBENQD0qqYdoAh1APiqhh2gCQUA+Kpm +HeBKBQAqVFLRDwBsEASPOP2shAWgClUA/GIQFeA7BQD/4Ggdof/xAFmmGikwEOrWPBSMkQAAaJJZ +aZQSiDYion8JiBGoIiggBSkKlXmBXsAg0Q8AAADaMFjiqP9fAA3gCXUAi6eLviyyjgydVv0jQB3o +7LkAwNN+0BD7YEAl4AwFAFjidMAg0Q8AAFjhj8Ag0Q8AizYqon8JuxH7QABFcAsFAFjhHMAg0Q8A +AAAAwKX9rDgFoDsFAFml9vpAaB2gCyUAWOA0wCDRDwBsEASILiMsOHOJBcAg0Q8AAIsuiLPsRAAK +6ASAAOu84ClQBIAAC4AAjCLtIAUufu4AAGTf1Y4uc+nWY//NAAAAbBAWKyAHhzUjFhqINOUWFypI +BIAAmRzqEhcp+ASAAP/h5BXgAxUA8iHmFeDIWQD8I2YVobsBACsWFvwjSBWgv3kA+iJmFeeqAQAq +FhUb1fMuwT0twh/8IgYV4/b1APtvxBXgd/kA/iJGFaBIUQD9g7AVrDgdAOs7DARUPoAADwhJ+CHG +FaAAGgCWHvwgBh2vuwEAKxYU9UA8IRIAnQCPIvvgQaCSAJ0A8OVwDeAKBQDqFhEjgEmAANowWOrz +9AACHeAGBQAtEhvacPoAYh3gDCUA7bw5ClgEgABY6tv3QABDMA71AHbgVPQhZhWk9h0A4xYKJ/gF +AAD+IwYV4AE6AAAAACgSEmSHYikSGomVfZaeKxISLBIQ/CBoHeAKFQDqFhEp0ASAAFjrCWankvoA +Yh3gBQUACrU6ZFd8w2CUG/IhRhXkxh0ALBYYLRIWHNVXHtVZ49VZHqAEgAD1oAk6EgCdAOkSGC63 +AoAAo2YoYp75AEEj4gCdACZinQ7YCiiCvwhmAdtg5rQABb2BgACPyJsV9+A96JIAnQApMq7q1aAU +u4GAAC4yrS2iYe3rAQfT/QAA/cA65mIAnQCayP3AOv5iAJ0AjRwsIBQPAgCtzAwMRywkFPWAPH5S +AJ0ALhIbKRIU8cDADeAINQD5AD2I4gCdAGRQzoobDwIAyKFkUGPrZAAJUASAAPwAYh2gHYUAWOr8 +7hIOLXgEgADmEgoir5mAABzVgC0SE/mqYAXgCgUAmvKa85r0mvXpaQIPRAKAAOn2AC7ogoAA6N0C +CvbCgAD/pgAOsBvFAP3gJhXgClUAWaVJKxIV+WA4KVIAnQDAIOwSGCpvAoAAo90s1p3RDwAAAAAA +AI/I9+A44JIAnQDpEhgqNwKAAKNmKGKe+QA5O+IAnQArYp0OTQot0r8NuwHmtAAFuNmAALD+nsj6 +wGgd7/sWAC8SEdMPZPB36xIFKVAEgAD8AGIdoB2FAFjqyRnVUhbVT44aKBAAJmKdCe4CGdUkCB8U +5oYLD/sCgADp/wIEfKCAACwSEO0SEiNb/wAAKLI/K7F9nqCfoZ2inKObpPlAphWgAHIAACwSEC0S +EithBYhjnqCfoZuimKOdpJylJqwYLRITjB4C3RDtFgcuZAKAAOwWCCum/gAAGtTj+CFIFaAPBQD+ +IMYV4A8lAJ8dCogCKBYJ62QACVAEgAD8AGIdoB2FAFjqno0ZLxIaiRYrEhqP9fE10A3j/vUAHNUj +i7T/QEYVoI+ZAP1ABhXgb4kA/UAmFaDfoQDw0AATMM+RAO7VGx7pQoAA7qYDLEECgAD9BgAMebsB +AOumBC5gwoAADGYCCGYCJqYFLBIN6ZwBJTBhAADpFgYmY/0AAOwWDS57pgAA62QACVAEgAD8AGId +oB2FAFjqehbVBokXjxj6ISgV4A0FAJ0RnRKdE50UnaT9QKYV7/71AJ6inqOboC4SGun/AgrGwoAA +6P8CAOAxAADm/wIA2CEAAO0cECUwYQAA76YBINARAABY6Ur5QGgd4AwVAOrJOQ0oBIAA6RYeJSAJ +gAAkFh/+ACIdoA0FAAntOOUWICbq4YAAE9TmiBiMFxrU5SsSG4QaFdS18XgAFLAOFQDr6zkKJ4KA +APSGAAp2DwUAC685/SYADLANNQD5JgAMMAwlAAvcOSwWHQn5AikWGfnmAA+wBQUA/iOGFeADCgAA +D1ZQ/hgABfDPyQD8ISgV4I+xAP1ABhXg73kA7O4RDEQCgADrzBAN2oKAAOy7AgszwoAA+MYACzDP +gQD9iAAWMY9pAOzuAgxFAoAACO4CHNSPnKEoEAAG7gL7xgAPcG+5APTIABM7vwEA98YADzAGJQDm +7gIN3QKAAO6mBCxCAoAAC4gCmKUb1LCbohjUsPlAZhWv+Y4AmaGUoJ6inqOepJ6lnaadp52onakv +Eh3lXAElMKEAAP6gEZxiAJ0A62QACVAEgAD8AIIdoC2FAFjqD+RQUWrOwoAA9KAKYJIAnQArEhzH +7/smAAzwDQUA45kCC/0uAACNEywSGo4SjxGLzCzCEJmhm6n1QAYVoAgFAJiimKafo56knaecpYwU +/UEGFa/+JgAtEhssEhkb1IkMmQLrmQIGhBmAAPDiQA3v/vUAmaGUoJ6inqOepP9AphWgDQUAnaad +p52o/UEmFe/9NgAvEhoiFiEr8hYm8Tgi8Tos8hXo8TkrNAKAAAYiAibxOy3yG+7yGixEAoAACGYC +KPIXL/IZn6Keo52knKabp5iolqWZoZSgkqnyJCgVr/v2AAAAAAAAAADw4kAN7/v1AJmhlKCbopuj +m6T7QKYV4AgFAJimmKeYqPlBJhWv+zoALBIajRIvwTsmwTkowTguwTrrwhgrNAKAAOb/AgxEAoAA +CO4CJsIUiMwswhCbpJinlqiZoZ2ilKCco5+lnqmMFP1AxhWv+hoAKxIb7BIZJYNRgAAb1EfH7/0m +AAywDQUA65kCA4DxgACZoZSgnqKeo56knqWdpp2nnaj9QSYV7/kyAC4SGiIWIS3iEiziEyviGIjt +hu4v4hSC7y7iEZ6inaOcpJulmKaWp5+pmaGUoJKo8iQoFa/4VgArEhzH3/smAAzwDAUA45kCA4Dx +gACZoZSgnaKdo52knaWcppynnKj9QSYVr/eaAJmhlKCOE/4gKBXgCAUAmKKYo5ikmKaYp5ion6X/ +QSYVr/cKACoSGhnUGYqlE9OzJRIg5BIfJUwwgADj068Tg7mAABzUE4saDLsC+z9GFe/nogCFH8DS +960ACv/oJgDApf2oGgWgG8UA7j4RCegEgABZo9Vj+GcAAPoiiBWgDgUAnhGeEp4TnhRY6E4kFh/l +FiAlYmGAAPoiiBWgCwUAWOhBJBYf9CQGFe/w2gAvEhBl+JZj+Doa082IGgqIAvk/RhWv5dYAwKBZ +XZjIpxvT8yuwgGSwWioSFFjoOukSHi1fTgAA+iKIFaALFQBY6C74I8gV7+9aAAAA/+AkDaA2BQDr +EhIp0ASAAOwSECjoBIAAWOj9Y/hWAAArEhqMHO0SFylQBIAAWGdm0qDRDwAAAAD7p7YFoUsVAFmN +kiwaAAysAvunrAWhSxUAWY2SY/+FAADAsMDaDf007cYILcVOAAD6QGgdoBvFAPwAAh2gDRUAWGwL +Y/+hAAAAACsSFvpAaB2gDAUA7RIYJdhhAABYbARj/4TAoFmfHRzTVY/I+f/ByJIAnQBj/7faIFvs +e2P4bIonjRzAwOqsIC7YBIAAWGD40qDrEhgqZwKAAKPMK8ad0Q8AAAAAAAD/36ANoAYFAP/hSA2g +BUUAwKBZnwgc0z+PyB7TQPn/xriSAJ0A/+PwDaAGBQAAAAD/45QNoAsFAMDaDf00/YEGFe/jkgAA +AABsEAQU05+CICRCfxPTngQiDAMiAtEPAABsEAwa0zEY05opopsqopEogH0JqhHqmQgEfECAACSd +AfSQABWgAC4AACSdAyRMgBnTWyhBKfkACCxiAJ0AGtNH6gAFCMgEgAAJAmEJAmEJAmEJAmEZ04kY +02Mf04aOIJ8S+CDGFaAKRQDpFgAvdgKAAArqApoRKUAHL0Ep/acABaGZAQDj7gIMzAKAAAn/Agj/ +Ap8UKyA5/iFmFaANJQCdGQy7AusWCCgECoAA9GAE0ZIAnQCJRyqZFOSgg2TggQAAjZmLwP/4Ah2g +JYUA7s4BBoI5gABtCC59sTwv0AAp0Ad18TMvwQXu+AgMzwKAAOndCARBAQAA6NsVftAEgADtpAAF +AKmAAGP/ygAAAAAAAP+vAA1//64A/W8ADXAJBQAKnTjm1AAOgaYAAOpEAAjYBIAA/ACCHaANJQBY +XJzRD//9/A2gDQUAAAAqHDr6R0AV4AxlAFmbuGP/WMJ2jmj6AKIdoDtFAOzTRhtoBIAA/kcwFePu +AQBZowaKaAqPV3fxbYpHLqEV+0QAFa/LBQALqwGr6+tqcHNpAQAA76IAJoGBgAB98Sgs0ADTDw8C +AHXBHSnQBwyZEendCAXBAQAA6NskftAEgADtpAANfsYAAP3vAA3wCgUAC6045tQABvphgABj/3YA +AP+vAA0//3IALCA5Cg1DfcmIjiAI7hEOPgKea9EPAAAA/68ADr/+QgBsEAQY0xwpgn8qMActkQIu +kQT9IKQVoA8FAOuSACaJKYAA7uz/JpP9AADilQIvdwKAAO67CA5nAoAA/W8ADbAAxgArkQUtkQSx +u/+/4BWvuwEA65UFL3cCgAD9YAbUYgCdAIyQ7swIDd8CgAALywwLAIcP32DrAAcG8yeAAB7S/imR +BSvifwmZEanZ7eJ9JYYpgACM0YvQm8CL0Jyxn9Cf0Svif7C7K+Z/9aAGNB+5AQCM2fmjABWvyQUA ++QAEBH8SBQAC0ggrJjr/ogQd5UkFAOnVESQhAQAA5NYHLS8CgADk1gYqWASAAPWABNwiAJ0AJdUQ +6FgIBHgbAADsjEAn+gEAAP3gBFuiAJ0AyTLpRAAFAIGAAG2pBQMAhgkCYSsiQqtY/wAFhGIAnQDo +JkImk+EAANEPAAAvlQX//IwNoAsFAMCl/aWaBaA7JQBZoozAINEPLeKAjNGL0JvAi9CcsZ/Qn9Er +4oKwu/vQRhXv/O4AAMDA+w/oFaANFQBYX3zAINEPAAAAAO/WCSaT4QAA0Q8AyzD6YGgd4FzFAOys +NgpwBIAAbckFCyCGDgJj+GAARfBeRQB+oQ0vrKzTD235BQtAhgQCZSmN++kmQiaT4QAA0Q8AAAAA +5CZCJpPhAADRDwAAbBAMKCAEjCfkIAcqUASAAOoWCikwBIAA/YHIFaAZxQD5ABoEYUQBAIgi6tKc +HAOeAAArIFMtIBYLuwnsFggt3wKAAKuqKqJ/KhYJ9GAX6ZD+9QD0YBeqEFcFAH7RGAULR/t/wBXg +DxUA6/s5CVAEgABY/R5ko2LaIOt8HyvgBIAA9iFmFaS7HQDrFg0qaASAAFj84uakAA0CbgAAjCJk +wyKNGh/Sf44gkxKfEP3AABcwDyUAD+4C7hYBJoCJgADb0PohgBWgDGUAWZre6iQACNgEgAD8oGgd +4AwlAFhl7dKg0Q8AAIobjBn7pNwF4A8FAPtE0BWg3DkA/sFEHeLsQQDo7hEO7UKAAP+mAA62zAEA +7cwCDVQCgAAMqgILqgKaZPRgEjmSAJ0A9GAR+hIAnQDEsCtlCx3SXCkhGRjSXJ1m+yAAF7vJAQDo +/wIGAHmAAAneFATuEQ6uAp5kn2b0YBJpEgCdAPRgEioSAJ0AHtJQ6eECIOhhAADp1QIjUIEAAP/A +CBWgDGUA7tYALtgEgABZmqwe0kgc0dTqbCYheQEAAO8WDCms0AAALyBBLSBALWQmL2QnKyBDKiBC +KmQoK2QpKCBFKSBEKWQq+MVmHaAAvgAAAAAAAAAAjBsswCYb0cIMzAkMzBGsuyu9IPt7QBXgDGUA +WZqTHtIvHNG7I2QzGtIt+sWmHaCJlQD4xYYd4BgFAPjFxh2gDwUA/sYGHeANVQAtZDH0YAmJkgCd +APRgCUoSAJ0AwKoqZDX6IWgV4A8lAC9kOP7HJh3gDQUA/MbmHeANBQD8xsYd6PodAC9kNCuwJgu7 +CQy7EevLCANQ6QAA/2AARbAMZQBZmnIqbET6RwAV4Ak1APjIJh3gCEUA+MgGHaAMhQBZmmrAtfrJ +ph3gCrUA+smGHaAMZQDrEgwjUTkAAFmaYypsWPpJABXgDIUAWZpfKmxV+k0AFeAMNQBZmlzqEg0o +BAqAAPRgBLGSAJ0A9GAEchIAnQAf0fMMThEP7gia4CwgFi0K/33BCut88ClQBIAAWPw/ihiLoYmg +BQhH55kIBdgFAADrpgEky9EAAOmmACQUrQAAiif6AEId4AwFAPtEABWgDSUAWF8N0qDRDwAAAAAA +APYfAh3v9C4AwCDRDwAAAAD/+2QNoDpFAPZBCBWv8wIAKwro+sFkHe/3DgAe0dL8wCAl4An1APjM +Bh3gK5UA+swmHeAPZQD/oIYd4AgVACjUBf+g5h2gDIUA/aDGHa/9EgAAAIsa+sQAFaAMZQBZmiJj +/dQAAAAAAOokAAJYYQAA/CGoFeAMFQBYaedj/MaMImXMwSsgU/pAaB2gDBUA+2JAFeANBQBYaeBj +/KgAAAAAbBAGKCAFLCAHwZQPAgD5ABB1YcwBACkiAmWRwy0wARvRK+bRKx44BIAA/6FABtAPpQAu +IE5l4lfu0SMeTwKAAPWACtISAJ0Appkokp6cEAvLCvcAEZTSAJ0AK7K/KpKdC6sB6xYBJY5JgACK +6PdADriSAJ0AKGKu7dEXFAv5gAAsYq0t0n/tywEFQ/0AAP2AC15iAJ0AmOj9gAtmYgCdACkgFKSZ +CQlHKSQU9SANddIAnQAe0RQb0Q2MIPggKBXgCgUAKrYy7swCDm4CgAD9ZwYVoA5FAA7dAi22MRvR +e9yQ6w8eDdAEgAAMAmcLQIYMAmULIIYMAmMLAIbsDAAE2QEAAArghgsCbwrAhgsCbQqghgsCawqA +hgsCaS4xASghCS0gBywwARvRaSohJPwgAAYw3REA6t0QDmQCgAANzAIMqgId0WMsISILqgIqliAN +zAKLIB3Q9iiWIy6WJCyWIv1gABWwDCUADLsCK5YhijPqliUkyAcAAO0AFQTKYQAACQCKDHgRpoj/ +E6YV5+UBAPnABrlSAJ0AwCDRDwAAiuj3QAfgkgCdAAx5EaaZLZKeC3sKK7K/96AIZNIAnQAtkp0L +2wFksQCwrZ3o6xYBLfTmAAD8IAYVoAFmAAAAAAAA6iQACdgEgADsRAAK6ASAAFhkqdKg0Q8AAAAA +wLAPqTTp5ggt9OYAAPpAaB2gG8UA/AAiHaANFQBYaVdj/8EAAOokAArYBIAAWGYq0qDRDwCLEPpA +aB2gDBUA+2MAFeANpQBYaU1j/5fAoFmcZh7QnYro+V/w+JAPpQBj/6raIFvpxP/5NA2gD6UAAIon +60QACmgEgAD7RAAVoAwFAFhePtKg0Q8AAAAA//dcDaALBQDAuAubAvpARhXv/R4AAAAA/CAGFaAK +BQBZnE4e0IaK6IwQG9CG+V/3eJAPpQD//CgNoAsFAADAsA+tNP3BBhXv+/IAAGwQBhLQfhfQ/vWh +BgWgE5UA+FDIFaCmJQAqIoJ/pyArIoJ/txgqIoQsoAgloAd2wTeIRMCgC4AABTMMZT/a0Q8tIoQp +IocqIof5YAAE+6qBAHqZLwrqMCtCQcPCDLsoq6r6mYYVr/7qAC6hCy7s+A4OQ+7s/CLr/QAA/6IA +Cr/+zgAAAAwCAC8ign//xiXQB25bwNxw+gCiHaALBQD+oAAXMP8FAFmgiSVc8cpbKApxmBHAoVmU +5fogKBXgCfUACVk2mRAJuwz6ICYV4AoFAFl8EooQClUMZV/XwKFZlNv6DiId4AoFAFl8DGP/ZgAA +AGwQBiggBSYgB+c0AArYBIAA+AKCHeAFNQD5AA+dYWYBAAsIR2iCFIoiGNA3F9A45GQABQPJgADA +INEPACsiHWWx4Ygng4j7AqQV78wFAOmCCyRwgQAADOwB7LsICn8CgADsFgAl2QEAAPMgDfxiAJ0A +LYkUo/qv3S2FFPtgDeuiAJ0AyXXJQ9kwbUkFBwCGCQJhiuAPAgAPAgCvqvtAEKxiAJ0A+8AGFa/9 +/gDsahEDJPEAAAeqCCuing8CAPdgCtnSAJ0AKqKdCGsKK7K/C6oBZaBP62wYKVAEgAD8ACIdoA01 +AFhos8Ag0Q8AG9AFibj3IAygkgCdAAxKEQeqCCyinveADQHSAJ0AKqKdCEwKLMK/DKoB5KGOZOv9 +AAAttghkr68Z0B2ZoIgg/6D0BeALFQDrpgIsRgKAAAWIApihiDMv8n//oBAFqIgdAKj/n6PuABUF +SEEAAP+f9gXgCAUAsYjpgx4MD+gAAJ+mGdBq+UEGFeAYBQCYp44gCO4RBe4CnqkMTRGn3SXWnY4i +LCAGiScL7gLr0GEWYAUAAOwkBiTIgQAAiJH9IIIV78wFAAycAe4mAiRDQQAA6JYBJujBAADtlQQm +YQEAAHyLIiqRBR3P36iomJGdgIwg64YCLmYCgAAFzAL9ACYVoAIFANEPHc/XnYCMIBvQSeuGAi5m +AoAABcwC/QAmFaACBQDRD9ogWGU/0qDRDwAAAP/6xA2gCgUAW/86Y/4XAADzIGgd4A4FAP8BZhWv +974A47oMA4G5gAAKSxTsvAgrwASAAOxMNgnIBIAA0w9tyQUIAIYJAmGJEKp4600MBMkBAABt2QUI +IIYJAmOLEAr8DKy7K7xA+8AGFe/2igDAoFmbZRvPnIm4GM+d+T/y+JIAnQD/+fwNoAoFAMCgwNoN +nTT9YQYV7/nCAI8QL/xA/8AGFe/1pgAAAGwQDIgn+EBIFe/KBQDrgRUqZwKAAOw8CARAgQAACogB +qLjojEAueASAAPmAJBKiAJ0ALfAHKyAHFs+E7Nz+L6gEgAD7oGAV4fsBAOSQCW/HAoAAwCDRDwDm +jQgGyBkAACjSnh7PdusWAS/QBIAA+QAiM+IAnQAbz3Mp0p0L+worsr8LmQHnlAAEobmAAC3iCCoW +DPegIkiSAJ0AL2Ku68/vF57hgAAuYq0vsuUP6AHoFgkmy/0AAP/AHj5iAJ0AGM9fmYj/wB5mYgCd +AC0gFClQB62Z+iGGFaeZAQApJBT1ICDt0gCdABnPoB/P3eoiAC1vAoAAiDQez2Pm3QgNVgKAAPEA +BQJSAJ0AKCAHKyEk/KAkFaAUhQCUc/7gRhWgBDUABKMC+57eBaCIEQDjdgEsQoKAAPkGAAxwAwUA ++OAGFaAIJQDqAAUD0EEAAG2KAgoCYS4hCSkgB/LgphXgOKUA7HYJL3UCgAD5xgAPMckBAO52Bi5k +AoAADLwCD8wCnHQrIQnaIP6gJBWgDAUA5NadLd0CgAD5ZgANsA0FAFhkmsAg0Q8AhicoYRXoFgMj +MIEAAPYgxhWvyQUACWYBpojvXCAkQQEAAHjzBIgTCP8M6fIAJkAFAAAIqAKYF/j4AATwiBUAeJkc +H8+fiBfodgEmS/0AAP7gBhXhmR0A+OBGFeAAUgCJFxjPmJhwmXGJ8QlZFJlyjxaJNhvPlJYQ+eCk +FaKZHQALmQEbz4yYFKaIK7Ib7/IBJEEBAAAoFgoJuwjrdgMiSAkAAOvPhBzPAoAACf8IKRYIDEkI +5hIIJMgJAADo8wp8zwKAACgSBAj/DOaZDAPAQQAA5JBMbjcCgACYFYgaD2kI+QAO6uIAnQApEgUP +igz6IEYVpKodAG2pBQ8AhgkCYYgSKRIACs8MB4gI6ZxAJFBBAABt+QUJIIYKAmMqIgAIqhEYz2f2 +4ABEsA8VAP8gxhXgDEUADKoCmpWYlIhTL7IZFs9i/Z3cBaiIHQCo/5+X/AAKFaAKBQDsz14U2IEA +ALGq64MeDQ/oAAD/IUYVoCgFAJibjzSIU4o1Bv8BFs9U7KoBDEJCgAAI/wIG/wKfnChQCStQCy9Q +CiZQCOzPTh3ZAoAA5v8QDEMCgAD7BgAMMKYxAOv/Ag1RwoAACv8CCP8CijYYzuOfnf5hSBXlth0A +7KoBDdhCgAALqgL7IcYVpGYBAOj/AQsyAoAABv8CiFWYn4ZWJpYQjFcvlhIslhGLVCuWEypQAS9R +AevO7RgECoAA8UAEN9IAnQAqIAcKKkDsISQtUoKAAAuqAiqWFIgg+gMCHeAKNQDrlhcsRgKAAAqI +AhrOvv8ixhWgCwUA+SKmFaAIJQDqAAUE0YEAAG2KAgoCYSghCS4gB/sAABQwGqUACogCKJYa+Z4g +BaHuAQAA7hEOzgII7gKIESuWGS+WHe6WGCRADQAAKBYBjhEu1p0tUAeKJ/WgAEawDAUA69QABVCB +AABYXCTSoNEPAAAAAOkSBSZy4YAA0w9tyQUPQIYJAmVj/kPA8J8ZiBkfzm7AmgnZNOn2CCxh5gAA ++kBoHaAbxQD8ACIdoA0VAFhnEsAg0Q8AAAAAAPuPAA//7foA/+8kDaAJBQCNEev8GClQBIAA/aBg +FeAMFQBYZwfAINEPAAAAAAAAAPwhZhWgCgUAWZocHs5UjeiKHIwb+b/dGJIAnQBj/5QAnBvrEgkp +UASAAFvnd4oc/CFoFa/vUgAAbBAGKSAFJiAH2DD2AGId4BpFAPsgD80hZgEABQlH/SMAAV/FBQCL *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Mar 1 02:59:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3602AAB8E9A; Tue, 1 Mar 2016 02:59:08 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 EC3651065; Tue, 1 Mar 2016 02:59:07 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u212x70W097140; Tue, 1 Mar 2016 02:59:07 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u212x6fZ097134; Tue, 1 Mar 2016 02:59:06 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603010259.u212x6fZ097134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 1 Mar 2016 02:59:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296250 - in head/sys: arm/arm arm64/arm64 mips/mips riscv/riscv sparc64/sparc64 x86/x86 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 02:59:08 -0000 Author: jhibbits Date: Tue Mar 1 02:59:06 2016 New Revision: 296250 URL: https://svnweb.freebsd.org/changeset/base/296250 Log: Correct the memory rman ranges to be to BUS_SPACE_MAXADDR Summary: As part of the migration of rman_res_t to be typed to uintmax_t, memory ranges must be clamped appropriately for the bus, to prevent completely bogus addresses from being used. This is extracted from D4544. Reviewed By: cem Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5134 Modified: head/sys/arm/arm/nexus.c head/sys/arm64/arm64/nexus.c head/sys/mips/mips/nexus.c head/sys/riscv/riscv/nexus.c head/sys/sparc64/sparc64/nexus.c head/sys/x86/x86/nexus.c Modified: head/sys/arm/arm/nexus.c ============================================================================== --- head/sys/arm/arm/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/arm/arm/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -161,10 +161,11 @@ nexus_attach(device_t dev) { mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; + mem_rman.rm_end = BUS_SPACE_MAXADDR; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; - if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) + if (rman_init(&mem_rman) || + rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR)) panic("nexus_probe mem_rman"); /* Modified: head/sys/arm64/arm64/nexus.c ============================================================================== --- head/sys/arm64/arm64/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/arm64/arm64/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -153,13 +153,14 @@ nexus_attach(device_t dev) { mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; + mem_rman.rm_end = BUS_SPACE_MAXADDR; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; - if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) + if (rman_init(&mem_rman) || + rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR)) panic("nexus_attach mem_rman"); irq_rman.rm_start = 0; - irq_rman.rm_end = ~0ul; + irq_rman.rm_end = ~0; irq_rman.rm_type = RMAN_ARRAY; irq_rman.rm_descr = "Interrupts"; if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0)) Modified: head/sys/mips/mips/nexus.c ============================================================================== --- head/sys/mips/mips/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/mips/mips/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -185,11 +185,11 @@ nexus_probe(device_t dev) } mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; + mem_rman.rm_end = BUS_SPACE_MAXADDR; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "Memory addresses"; if (rman_init(&mem_rman) != 0 || - rman_manage_region(&mem_rman, 0, ~0) != 0) { + rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR) != 0) { panic("%s: mem_rman", __func__); } Modified: head/sys/riscv/riscv/nexus.c ============================================================================== --- head/sys/riscv/riscv/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/riscv/riscv/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -143,13 +143,14 @@ nexus_attach(device_t dev) { mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; + mem_rman.rm_end = BUS_SPACE_MAXADDR; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; - if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) + if (rman_init(&mem_rman) || + rman_manage_region(&mem_rman, 0, BUS_SPACE_MAXADDR)) panic("nexus_attach mem_rman"); irq_rman.rm_start = 0; - irq_rman.rm_end = ~0ul; + irq_rman.rm_end = ~0; irq_rman.rm_type = RMAN_ARRAY; irq_rman.rm_descr = "Interrupts"; if (rman_init(&irq_rman) || rman_manage_region(&irq_rman, 0, ~0)) Modified: head/sys/sparc64/sparc64/nexus.c ============================================================================== --- head/sys/sparc64/sparc64/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/sparc64/sparc64/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -233,7 +233,7 @@ nexus_attach(device_t dev) rman_init(&sc->sc_mem_rman) != 0 || rman_manage_region(&sc->sc_intr_rman, 0, IV_MAX - 1) != 0 || - rman_manage_region(&sc->sc_mem_rman, 0ULL, ~0ULL) != 0) + rman_manage_region(&sc->sc_mem_rman, 0, BUS_SPACE_MAXADDR) != 0) panic("%s: failed to set up rmans.", __func__); } else node = ofw_bus_get_node(dev); Modified: head/sys/x86/x86/nexus.c ============================================================================== --- head/sys/x86/x86/nexus.c Tue Mar 1 02:36:50 2016 (r296249) +++ head/sys/x86/x86/nexus.c Tue Mar 1 02:59:06 2016 (r296250) @@ -261,11 +261,15 @@ nexus_init_resources(void) panic("nexus_init_resources port_rman"); mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; +#ifndef PAE + mem_rman.rm_end = BUS_SPACE_MAXADDR; +#else + mem_rman.rm_end = ((1ULL << cpu_maxphyaddr) - 1); +#endif mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; if (rman_init(&mem_rman) - || rman_manage_region(&mem_rman, 0, ~0)) + || rman_manage_region(&mem_rman, 0, mem_rman.rm_end)) panic("nexus_init_resources mem_rman"); } From owner-svn-src-head@freebsd.org Tue Mar 1 03:41:50 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F497AB85E6; Tue, 1 Mar 2016 03:41:50 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D2FAD2EB; Tue, 1 Mar 2016 03:41:49 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u213fmJX010803; Tue, 1 Mar 2016 03:41:48 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u213fmOW010802; Tue, 1 Mar 2016 03:41:48 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603010341.u213fmOW010802@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 1 Mar 2016 03:41:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296251 - head/sys/powerpc/mpc85xx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 03:41:50 -0000 Author: jhibbits Date: Tue Mar 1 03:41:48 2016 New Revision: 296251 URL: https://svnweb.freebsd.org/changeset/base/296251 Log: Add another compatibility check for QorIQ GPIO driver. Some MPC85xx GPIO controllers are compatible with QorIQ. It may make more sense in the future to rename this and mpc85xx_gpio.c, as mpc85xx_gpio.c appears to only be compatible with a few mpc85xx SoCs. All other MPC85xx SoCs use the same controller as QorIQ. Modified: head/sys/powerpc/mpc85xx/qoriq_gpio.c Modified: head/sys/powerpc/mpc85xx/qoriq_gpio.c ============================================================================== --- head/sys/powerpc/mpc85xx/qoriq_gpio.c Tue Mar 1 02:59:06 2016 (r296250) +++ head/sys/powerpc/mpc85xx/qoriq_gpio.c Tue Mar 1 03:41:48 2016 (r296251) @@ -219,7 +219,8 @@ static int qoriq_gpio_probe(device_t dev) { - if (!ofw_bus_is_compatible(dev, "fsl,qoriq-gpio")) + if (!ofw_bus_is_compatible(dev, "fsl,qoriq-gpio") && + !ofw_bus_is_compatible(dev, "fsl,mpc8572-gpio")) return (ENXIO); device_set_desc(dev, "Freescale QorIQ GPIO driver"); From owner-svn-src-head@freebsd.org Tue Mar 1 04:59:20 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49167AB98E1; Tue, 1 Mar 2016 04:59:20 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 24C5AC7D; Tue, 1 Mar 2016 04:59:20 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u214xJ9b033857; Tue, 1 Mar 2016 04:59:19 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u214xIRL033854; Tue, 1 Mar 2016 04:59:18 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603010459.u214xIRL033854@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 1 Mar 2016 04:59:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296252 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 04:59:20 -0000 Author: sephe Date: Tue Mar 1 04:59:18 2016 New Revision: 296252 URL: https://svnweb.freebsd.org/changeset/base/296252 Log: hyperv/hn: Set hash per-packet-info for each packet transmission So that the host could dispatch the TX done back to this TX ring's owner channel MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5498 Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis.h Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Mar 1 03:41:48 2016 (r296251) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Tue Mar 1 04:59:18 2016 (r296252) @@ -1039,6 +1039,7 @@ struct hn_tx_ring { struct buf_ring *hn_mbuf_br; int hn_oactive; + int hn_tx_idx; struct mtx hn_tx_lock; struct hn_softc *hn_sc; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Mar 1 03:41:48 2016 (r296251) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Mar 1 04:59:18 2016 (r296252) @@ -138,6 +138,7 @@ __FBSDID("$FreeBSD$"); #define HN_RNDIS_MSG_LEN \ (sizeof(rndis_msg) + \ + RNDIS_HASH_PPI_SIZE + \ RNDIS_VLAN_PPI_SIZE + \ RNDIS_TSO_PPI_SIZE + \ RNDIS_CSUM_PPI_SIZE) @@ -737,6 +738,7 @@ hn_encap(struct hn_tx_ring *txr, struct rndis_msg *rndis_mesg; rndis_packet *rndis_pkt; rndis_per_packet_info *rppi; + struct ndis_hash_info *hash_info; uint32_t rndis_msg_size; packet = &txd->netvsc_pkt; @@ -761,6 +763,18 @@ hn_encap(struct hn_tx_ring *txr, struct rndis_msg_size = RNDIS_MESSAGE_SIZE(rndis_packet); + /* + * Set the hash info for this packet, so that the host could + * dispatch the TX done event for this packet back to this TX + * ring's channel. + */ + rndis_msg_size += RNDIS_HASH_PPI_SIZE; + rppi = hv_set_rppi_data(rndis_mesg, RNDIS_HASH_PPI_SIZE, + nbl_hash_value); + hash_info = (struct ndis_hash_info *)((uint8_t *)rppi + + rppi->per_packet_info_offset); + hash_info->hash = txr->hn_tx_idx; + if (m_head->m_flags & M_VLANTAG) { ndis_8021q_info *rppi_vlan_info; @@ -2148,6 +2162,7 @@ hn_create_tx_ring(struct hn_softc *sc, i int error, i; txr->hn_sc = sc; + txr->hn_tx_idx = id; #ifndef HN_USE_TXDESC_BUFRING mtx_init(&txr->hn_txlist_spin, "hn txlist", NULL, MTX_SPIN); Modified: head/sys/dev/hyperv/netvsc/hv_rndis.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis.h Tue Mar 1 03:41:48 2016 (r296251) +++ head/sys/dev/hyperv/netvsc/hv_rndis.h Tue Mar 1 04:59:18 2016 (r296252) @@ -608,6 +608,8 @@ typedef enum ndis_per_pkt_infotype_ { max_perpkt_info } ndis_per_pkt_infotype; +#define nbl_hash_value pkt_cancel_id + typedef struct ndis_8021q_info_ { union { struct { @@ -620,6 +622,10 @@ typedef struct ndis_8021q_info_ { } u1; } ndis_8021q_info; +struct ndis_hash_info { + uint32_t hash; +} __packed; + struct rndis_object_header { uint8_t type; uint8_t revision; @@ -713,6 +719,9 @@ typedef struct rndis_tcp_tso_info_ { }; } rndis_tcp_tso_info; +#define RNDIS_HASH_PPI_SIZE (sizeof(rndis_per_packet_info) + \ + sizeof(struct ndis_hash_info)) + #define RNDIS_VLAN_PPI_SIZE (sizeof(rndis_per_packet_info) + \ sizeof(ndis_8021q_info)) From owner-svn-src-head@freebsd.org Tue Mar 1 05:15:30 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 466AAABBED5; Tue, 1 Mar 2016 05:15:30 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E7B371E81; Tue, 1 Mar 2016 05:15:27 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u215FQLH039623; Tue, 1 Mar 2016 05:15:26 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u215FQJ6039622; Tue, 1 Mar 2016 05:15:26 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603010515.u215FQJ6039622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 1 Mar 2016 05:15:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296253 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 05:15:30 -0000 Author: sephe Date: Tue Mar 1 05:15:26 2016 New Revision: 296253 URL: https://svnweb.freebsd.org/changeset/base/296253 Log: hyperv/channel: Nuke useless stack variable MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5499 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Tue Mar 1 04:59:18 2016 (r296252) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Tue Mar 1 05:15:26 2016 (r296253) @@ -928,7 +928,6 @@ hv_vmbus_channel_recv_packet_raw( { int ret; uint32_t packetLen; - uint32_t userLen; hv_vm_packet_descriptor desc; *buffer_actual_len = 0; @@ -942,8 +941,6 @@ hv_vmbus_channel_recv_packet_raw( return (0); packetLen = desc.length8 << 3; - userLen = packetLen - (desc.data_offset8 << 3); - *buffer_actual_len = packetLen; if (packetLen > buffer_len) From owner-svn-src-head@freebsd.org Tue Mar 1 06:39:32 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9EA7ABAF2E; Tue, 1 Mar 2016 06:39:31 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8033810C8; Tue, 1 Mar 2016 06:39:31 +0000 (UTC) (envelope-from andriyvos@gmail.com) Received: by mail-lb0-f179.google.com with SMTP id of3so93238956lbc.1; Mon, 29 Feb 2016 22:39:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:subject:references:date:cc:mime-version :content-transfer-encoding:from:message-id:in-reply-to:user-agent; bh=1MdauVe8owAnwcg5Rsf5tTyz3XqdutE8e0sCTOKjQHA=; b=OGjR4ixK/2a3iqyEKE3W/Ji5Y01SirrgCYVFvxK8SEKLWLGxQC89Oxe/S4SpkNzG10 FqDSRp2YuiOxundNXNr0064J/DhUkkYauZ+9SOavtQKLUgw3ZfaXAWRooofgubarBtlM 0xFVow+gzZhlU4W8EYyz78IsDn322S+LFp80cuWIgMJD7BvXwsKvX/2ERzk6yX3Th7dL slOAsTBlrYXvsITmW4G9isXFbNMeMDLy9L2sPRY3vxZZF5vMLboREYnlMoZEQLdeLOfE SNG+mFSs28UU5JuzRhK5DDwe3e9N6B+2BsWvCFq7WzKj7hORKBGfisoeNvK3Q4Ncz1kY z0TA== X-Gm-Message-State: AD7BkJK+/jO5gQyzkUBvzZGz3zX2sVWZo6chlfjxMScCgBYo3oJyrEC6f2GDOpocOzoL5Q== X-Received: by 10.112.139.164 with SMTP id qz4mr6978382lbb.41.1456814001168; Mon, 29 Feb 2016 22:33:21 -0800 (PST) Received: from localhost (host-176-37-109-22.la.net.ua. [176.37.109.22]) by smtp.gmail.com with ESMTPSA id l129sm4591085lfl.18.2016.02.29.22.33.20 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 29 Feb 2016 22:33:20 -0800 (PST) Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Gleb Smirnoff" Subject: Re: svn commit: r296241 - head/sys/net80211 References: <201602292309.u1TN9VUG028773@repo.freebsd.org> Date: Tue, 01 Mar 2016 08:33:20 +0200 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" MIME-Version: 1.0 Content-Transfer-Encoding: Quoted-Printable From: "Andriy Voskoboinyk" Message-ID: In-Reply-To: <201602292309.u1TN9VUG028773@repo.freebsd.org> User-Agent: Opera Mail/12.16 (FreeBSD) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 06:39:32 -0000 Tue, 01 Mar 2016 01:09:31 +0200 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=D0= =BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Gleb Smirnoff = : Thanks! > Author: glebius > Date: Mon Feb 29 23:09:31 2016 > New Revision: 296241 > URL: https://svnweb.freebsd.org/changeset/base/296241 > > Log: > Fix !IEEE80211_DEBUG build. > > Modified: > head/sys/net80211/ieee80211_scan_sw.c > > Modified: head/sys/net80211/ieee80211_scan_sw.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > --- head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 21:39:00 = > 2016 (r296240) > +++ head/sys/net80211/ieee80211_scan_sw.c Mon Feb 29 23:09:31 = > 2016 (r296241) > @@ -595,9 +595,9 @@ scan_signal_locked(struct ieee80211_scan > static void > scan_mindwell(struct ieee80211_scan_state *ss) > { > - struct ieee80211vap *vap =3D ss->ss_vap; > - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: called\n", __func__)= ; > + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: called\n", > + __func__); > scan_signal(ss, 0); > } > @@ -657,7 +657,6 @@ scan_curchan_task(void *arg, int pending > { > struct ieee80211_scan_state *ss =3D arg; > struct scan_state *ss_priv =3D SCAN_PRIVATE(ss); > - struct ieee80211vap *vap =3D ss->ss_vap; > struct ieee80211com *ic =3D ss->ss_ic; > struct ieee80211_channel *chan; > unsigned long maxdwell; > @@ -668,7 +667,7 @@ end: > scandone =3D (ss->ss_next >=3D ss->ss_last) || > (ss_priv->ss_iflags & ISCAN_CANCEL) !=3D 0; > - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, > + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, > "%s: loop start; scandone=3D%d\n", > __func__, > scandone); > @@ -692,7 +691,7 @@ end: > else > maxdwell =3D ss->ss_maxdwell; > - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, > + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, > "%s: chan %3d%c -> %3d%c [%s, dwell min %lums max %lums]\n", > __func__, > ieee80211_chan2ieee(ic, ic->ic_curchan), > @@ -740,7 +739,8 @@ end: > if (ss_priv->ss_iflags & (ISCAN_CANCEL|ISCAN_ABORT)) > goto end; > - IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, "%s: waiting\n", __func__= ); > + IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: waiting\n", > + __func__); > IEEE80211_UNLOCK(ic); > } From owner-svn-src-head@freebsd.org Tue Mar 1 07:06:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51FFBABBA16; Tue, 1 Mar 2016 07:06:38 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 242EB1D22; Tue, 1 Mar 2016 07:06:38 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2176bRR071639; Tue, 1 Mar 2016 07:06:37 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2176b0e071638; Tue, 1 Mar 2016 07:06:37 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201603010706.u2176b0e071638@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Tue, 1 Mar 2016 07:06:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296255 - head/sys/arm64/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 07:06:38 -0000 Author: wma Date: Tue Mar 1 07:06:36 2016 New Revision: 296255 URL: https://svnweb.freebsd.org/changeset/base/296255 Log: Add uart 8250 device to GENERIC arm64 configuration Obtained from: Semihalf Submitted by: Michal Stanek Sponsored by: Annapurna Labs Approved by: cognet (mentor) Reviewed by: zbb, wma Differential revision: https://reviews.freebsd.org/D5406 Modified: head/sys/arm64/conf/GENERIC Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Tue Mar 1 06:47:21 2016 (r296254) +++ head/sys/arm64/conf/GENERIC Tue Mar 1 07:06:36 2016 (r296255) @@ -122,6 +122,7 @@ device dwmmc # Serial (COM) ports device uart # Generic UART driver +device uart_ns8250 # ns8250-type UART driver device pl011 # USB support From owner-svn-src-head@freebsd.org Tue Mar 1 08:15:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53268ABF91E; Tue, 1 Mar 2016 08:15:02 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 23FD21976; Tue, 1 Mar 2016 08:15:02 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u218F17Q092336; Tue, 1 Mar 2016 08:15:01 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u218F1fX092334; Tue, 1 Mar 2016 08:15:01 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201603010815.u218F1fX092334@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Tue, 1 Mar 2016 08:15:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296256 - in head/sys/arm64: arm64 include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 08:15:02 -0000 Author: wma Date: Tue Mar 1 08:15:00 2016 New Revision: 296256 URL: https://svnweb.freebsd.org/changeset/base/296256 Log: Enable SRE_EL2 on ARM64 Enable system register access for EL2. Alpine-V2 is the first device requiring this to be enabled. It is also in-sync with Linux initialization code, and compatible with Alpine-V2 uboot requirements. Obtained from: Semihalf Submitted by: Michal Stanek Sponsored by: Annapurna Labs Approved by: cognet (mentor) Reviewed by: wma Differential revision: https://reviews.freebsd.org/D5394 Modified: head/sys/arm64/arm64/locore.S head/sys/arm64/include/armreg.h Modified: head/sys/arm64/arm64/locore.S ============================================================================== --- head/sys/arm64/arm64/locore.S Tue Mar 1 07:06:36 2016 (r296255) +++ head/sys/arm64/arm64/locore.S Tue Mar 1 08:15:00 2016 (r296256) @@ -265,6 +265,7 @@ drop_to_el1: mrs x2, icc_sre_el2 orr x2, x2, #ICC_SRE_EL2_EN /* Enable access from insecure EL1 */ + orr x2, x2, #ICC_SRE_EL2_SRE /* Enable system registers */ msr icc_sre_el2, x2 2: Modified: head/sys/arm64/include/armreg.h ============================================================================== --- head/sys/arm64/include/armreg.h Tue Mar 1 07:06:36 2016 (r296255) +++ head/sys/arm64/include/armreg.h Tue Mar 1 08:15:00 2016 (r296256) @@ -131,6 +131,7 @@ #define ICC_SRE_EL1_SRE (1U << 0) /* ICC_SRE_EL2 */ +#define ICC_SRE_EL2_SRE (1U << 0) #define ICC_SRE_EL2_EN (1U << 3) /* ID_AA64DFR0_EL1 */ From owner-svn-src-head@freebsd.org Tue Mar 1 06:47:23 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1EED5ABD8F2; Tue, 1 Mar 2016 06:47:23 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 F043F1593; Tue, 1 Mar 2016 06:47:22 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u216lMvi065911; Tue, 1 Mar 2016 06:47:22 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u216lLKg065904; Tue, 1 Mar 2016 06:47:21 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201603010647.u216lLKg065904@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Tue, 1 Mar 2016 06:47:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296254 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 06:47:23 -0000 Author: avos Date: Tue Mar 1 06:47:21 2016 New Revision: 296254 URL: https://svnweb.freebsd.org/changeset/base/296254 Log: net80211: eliminate copy-paste nearby ieee80211_check_rxseq() Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D4043 Modified: head/sys/net80211/ieee80211_adhoc.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_input.h head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_sta.c head/sys/net80211/ieee80211_wds.c Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_adhoc.c Tue Mar 1 06:47:21 2016 (r296254) @@ -302,7 +302,6 @@ adhoc_input(struct ieee80211_node *ni, s int hdrspace, need_tap = 1; /* mbuf need to be tapped. */ uint8_t dir, type, subtype, qos; uint8_t *bssid; - uint16_t rxseq; if (m->m_flags & M_AMPDU_MPDU) { /* @@ -421,24 +420,8 @@ adhoc_input(struct ieee80211_node *ni, s if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; - rxseq = le16toh(*(uint16_t *)wh->i_seq); - if (! ieee80211_check_rxseq(ni, wh)) { - /* duplicate, discard */ - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - bssid, "duplicate", - "seqno <%u,%u> fragno <%u,%u> tid %u", - rxseq >> IEEE80211_SEQ_SEQ_SHIFT, - ni->ni_rxseqs[tid] >> - IEEE80211_SEQ_SEQ_SHIFT, - rxseq & IEEE80211_SEQ_FRAG_MASK, - ni->ni_rxseqs[tid] & - IEEE80211_SEQ_FRAG_MASK, - tid); - vap->iv_stats.is_rx_dup++; - IEEE80211_NODE_STAT(ni, rx_dup); + if (! ieee80211_check_rxseq(ni, wh, bssid)) goto out; - } - ni->ni_rxseqs[tid] = rxseq; } } Modified: head/sys/net80211/ieee80211_hostap.c ============================================================================== --- head/sys/net80211/ieee80211_hostap.c Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_hostap.c Tue Mar 1 06:47:21 2016 (r296254) @@ -485,7 +485,6 @@ hostap_input(struct ieee80211_node *ni, int hdrspace, need_tap = 1; /* mbuf need to be tapped. */ uint8_t dir, type, subtype, qos; uint8_t *bssid; - uint16_t rxseq; if (m->m_flags & M_AMPDU_MPDU) { /* @@ -573,24 +572,8 @@ hostap_input(struct ieee80211_node *ni, if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; - rxseq = le16toh(*(uint16_t *)wh->i_seq); - if (! ieee80211_check_rxseq(ni, wh)) { - /* duplicate, discard */ - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - bssid, "duplicate", - "seqno <%u,%u> fragno <%u,%u> tid %u", - rxseq >> IEEE80211_SEQ_SEQ_SHIFT, - ni->ni_rxseqs[tid] >> - IEEE80211_SEQ_SEQ_SHIFT, - rxseq & IEEE80211_SEQ_FRAG_MASK, - ni->ni_rxseqs[tid] & - IEEE80211_SEQ_FRAG_MASK, - tid); - vap->iv_stats.is_rx_dup++; - IEEE80211_NODE_STAT(ni, rx_dup); + if (! ieee80211_check_rxseq(ni, wh, bssid)) goto out; - } - ni->ni_rxseqs[tid] = rxseq; } } Modified: head/sys/net80211/ieee80211_input.h ============================================================================== --- head/sys/net80211/ieee80211_input.h Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_input.h Tue Mar 1 06:47:21 2016 (r296254) @@ -164,12 +164,14 @@ ishtinfooui(const uint8_t *frm) * but a retransmit since the initial packet didn't make it. */ static __inline int -ieee80211_check_rxseq(struct ieee80211_node *ni, struct ieee80211_frame *wh) +ieee80211_check_rxseq(struct ieee80211_node *ni, struct ieee80211_frame *wh, + uint8_t *bssid) { #define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define SEQ_EQ(a,b) ((int)((a)-(b)) == 0) #define SEQNO(a) ((a) >> IEEE80211_SEQ_SEQ_SHIFT) #define FRAGNO(a) ((a) & IEEE80211_SEQ_FRAG_MASK) + struct ieee80211vap *vap = ni->ni_vap; uint16_t rxseq; uint8_t type, subtype; uint8_t tid; @@ -198,7 +200,7 @@ ieee80211_check_rxseq(struct ieee80211_n /* HT nodes currently doing RX AMPDU are always valid */ if ((ni->ni_flags & IEEE80211_NODE_HT) && (rap->rxa_flags & IEEE80211_AGGR_RUNNING)) - return 1; + goto ok; } /* @@ -216,7 +218,7 @@ ieee80211_check_rxseq(struct ieee80211_n */ if (SEQ_EQ(rxseq, ni->ni_rxseqs[tid]) && (wh->i_fc[1] & IEEE80211_FC1_RETRY)) - return 0; + goto fail; /* * Treat any subsequent frame as fine if the last seen frame * is 4095 and it's not a retransmit for the same sequence @@ -224,7 +226,7 @@ ieee80211_check_rxseq(struct ieee80211_n * fragments w/ sequence number 4095. It shouldn't be seen * in practice, but see the comment above for further info. */ - return 1; + goto ok; } /* @@ -233,9 +235,23 @@ ieee80211_check_rxseq(struct ieee80211_n */ if ((wh->i_fc[1] & IEEE80211_FC1_RETRY) && SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) - return 0; + goto fail; + +ok: + ni->ni_rxseqs[tid] = rxseq; return 1; + +fail: + /* duplicate, discard */ + IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, "duplicate", + "seqno <%u,%u> fragno <%u,%u> tid %u", + SEQNO(rxseq), SEQNO(ni->ni_rxseqs[tid]), + FRAGNO(rxseq), FRAGNO(ni->ni_rxseqs[tid]), tid); + vap->iv_stats.is_rx_dup++; + IEEE80211_NODE_STAT(ni, rx_dup); + + return 0; #undef SEQ_LEQ #undef SEQ_EQ #undef SEQNO Modified: head/sys/net80211/ieee80211_mesh.c ============================================================================== --- head/sys/net80211/ieee80211_mesh.c Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_mesh.c Tue Mar 1 06:47:21 2016 (r296254) @@ -1537,7 +1537,6 @@ mesh_input(struct ieee80211_node *ni, st uint32_t seq; const uint8_t *addr; uint8_t qos[2]; - ieee80211_seq rxseq; KASSERT(ni != NULL, ("null node")); ni->ni_inact = ni->ni_inact_reload; @@ -1582,24 +1581,8 @@ mesh_input(struct ieee80211_node *ni, st if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; - rxseq = le16toh(*(uint16_t *)wh->i_seq); - if (! ieee80211_check_rxseq(ni, wh)) { - /* duplicate, discard */ - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - wh->i_addr1, "duplicate", - "seqno <%u,%u> fragno <%u,%u> tid %u", - rxseq >> IEEE80211_SEQ_SEQ_SHIFT, - ni->ni_rxseqs[tid] >> - IEEE80211_SEQ_SEQ_SHIFT, - rxseq & IEEE80211_SEQ_FRAG_MASK, - ni->ni_rxseqs[tid] & - IEEE80211_SEQ_FRAG_MASK, - tid); - vap->iv_stats.is_rx_dup++; - IEEE80211_NODE_STAT(ni, rx_dup); + if (! ieee80211_check_rxseq(ni, wh, wh->i_addr1)) goto out; - } - ni->ni_rxseqs[tid] = rxseq; } } #ifdef IEEE80211_DEBUG Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_sta.c Tue Mar 1 06:47:21 2016 (r296254) @@ -538,7 +538,6 @@ sta_input(struct ieee80211_node *ni, str int hdrspace, need_tap = 1; /* mbuf need to be tapped. */ uint8_t dir, type, subtype, qos; uint8_t *bssid; - uint16_t rxseq; if (m->m_flags & M_AMPDU_MPDU) { /* @@ -630,24 +629,8 @@ sta_input(struct ieee80211_node *ni, str if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; - rxseq = le16toh(*(uint16_t *)wh->i_seq); - if (! ieee80211_check_rxseq(ni, wh)) { - /* duplicate, discard */ - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - bssid, "duplicate", - "seqno <%u,%u> fragno <%u,%u> tid %u", - rxseq >> IEEE80211_SEQ_SEQ_SHIFT, - ni->ni_rxseqs[tid] >> - IEEE80211_SEQ_SEQ_SHIFT, - rxseq & IEEE80211_SEQ_FRAG_MASK, - ni->ni_rxseqs[tid] & - IEEE80211_SEQ_FRAG_MASK, - tid); - vap->iv_stats.is_rx_dup++; - IEEE80211_NODE_STAT(ni, rx_dup); + if (! ieee80211_check_rxseq(ni, wh, bssid)) goto out; - } - ni->ni_rxseqs[tid] = rxseq; } } Modified: head/sys/net80211/ieee80211_wds.c ============================================================================== --- head/sys/net80211/ieee80211_wds.c Tue Mar 1 05:15:26 2016 (r296253) +++ head/sys/net80211/ieee80211_wds.c Tue Mar 1 06:47:21 2016 (r296254) @@ -416,7 +416,6 @@ wds_input(struct ieee80211_node *ni, str struct ether_header *eh; int hdrspace, need_tap = 1; /* mbuf need to be tapped. */ uint8_t dir, type, subtype, qos; - uint16_t rxseq; if (m->m_flags & M_AMPDU_MPDU) { /* @@ -494,22 +493,8 @@ wds_input(struct ieee80211_node *ni, str if (IEEE80211_QOS_HAS_SEQ(wh) && TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; - rxseq = le16toh(*(uint16_t *)wh->i_seq); - if (! ieee80211_check_rxseq(ni, wh)) { - /* duplicate, discard */ - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - wh->i_addr1, "duplicate", - "seqno <%u,%u> fragno <%u,%u> tid %u", - rxseq >> IEEE80211_SEQ_SEQ_SHIFT, - ni->ni_rxseqs[tid] >> IEEE80211_SEQ_SEQ_SHIFT, - rxseq & IEEE80211_SEQ_FRAG_MASK, - ni->ni_rxseqs[tid] & IEEE80211_SEQ_FRAG_MASK, - tid); - vap->iv_stats.is_rx_dup++; - IEEE80211_NODE_STAT(ni, rx_dup); + if (! ieee80211_check_rxseq(ni, wh, wh->i_addr1)) goto out; - } - ni->ni_rxseqs[tid] = rxseq; } switch (type) { case IEEE80211_FC0_TYPE_DATA: From owner-svn-src-head@freebsd.org Tue Mar 1 09:45:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 864ABABD439; Tue, 1 Mar 2016 09:45:29 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 47E6C150E; Tue, 1 Mar 2016 09:45:29 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u219jSFU018922; Tue, 1 Mar 2016 09:45:28 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u219jSGH018918; Tue, 1 Mar 2016 09:45:28 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201603010945.u219jSGH018918@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 1 Mar 2016 09:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296257 - in head/sys: arm/mv dev/cesa dev/fdt riscv/riscv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 09:45:29 -0000 Author: andrew Date: Tue Mar 1 09:45:27 2016 New Revision: 296257 URL: https://svnweb.freebsd.org/changeset/base/296257 Log: Make the fdt_get_mem_regions memsize argument optional. It's only used in by a few callers. Sponsored by: ABT Systems Ltd Modified: head/sys/arm/mv/mv_common.c head/sys/dev/cesa/cesa.c head/sys/dev/fdt/fdt_common.c head/sys/riscv/riscv/machdep.c Modified: head/sys/arm/mv/mv_common.c ============================================================================== --- head/sys/arm/mv/mv_common.c Tue Mar 1 08:15:00 2016 (r296256) +++ head/sys/arm/mv/mv_common.c Tue Mar 1 09:45:27 2016 (r296257) @@ -918,11 +918,10 @@ decode_win_sdram_fixup(void) struct mem_region mr[FDT_MEM_REGIONS]; uint8_t window_valid[MV_WIN_DDR_MAX]; int mr_cnt, err, i, j; - u_long memsize; uint32_t valid_win_num = 0; /* Grab physical memory regions information from device tree. */ - err = fdt_get_mem_regions(mr, &mr_cnt, &memsize); + err = fdt_get_mem_regions(mr, &mr_cnt, NULL); if (err != 0) return (err); Modified: head/sys/dev/cesa/cesa.c ============================================================================== --- head/sys/dev/cesa/cesa.c Tue Mar 1 08:15:00 2016 (r296256) +++ head/sys/dev/cesa/cesa.c Tue Mar 1 09:45:27 2016 (r296257) @@ -1642,11 +1642,10 @@ decode_win_cesa_setup(struct cesa_softc struct mem_region availmem_regions[FDT_MEM_REGIONS]; int availmem_regions_sz; uint32_t br, cr, i; - u_long memsize; /* Grab physical memory regions information from DTS */ if (fdt_get_mem_regions(availmem_regions, &availmem_regions_sz, - &memsize) != 0) + NULL) != 0) return (ENXIO); if (availmem_regions_sz > MV_WIN_CESA_MAX) { Modified: head/sys/dev/fdt/fdt_common.c ============================================================================== --- head/sys/dev/fdt/fdt_common.c Tue Mar 1 08:15:00 2016 (r296256) +++ head/sys/dev/fdt/fdt_common.c Tue Mar 1 09:45:27 2016 (r296257) @@ -705,7 +705,8 @@ fdt_get_mem_regions(struct mem_region *m } *mrcnt = i; - *memsize = memory_size; + if (memsize != NULL) + *memsize = memory_size; rv = 0; out: return (rv); Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Tue Mar 1 08:15:00 2016 (r296256) +++ head/sys/riscv/riscv/machdep.c Tue Mar 1 09:45:27 2016 (r296257) @@ -739,7 +739,6 @@ initriscv(struct riscv_bootparams *rvbp) vm_offset_t lastaddr; int mem_regions_sz; vm_size_t kernlen; - u_long memsize; caddr_t kmdp; int i; @@ -763,7 +762,7 @@ initriscv(struct riscv_bootparams *rvbp) physmap_idx = 0; /* Grab physical memory regions information from device tree. */ - if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, &memsize) != 0) + if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, NULL) != 0) panic("Cannot get physical memory regions"); for (i = 0; i < mem_regions_sz; i++) add_physmap_entry(mem_regions[i].mr_start, From owner-svn-src-head@freebsd.org Tue Mar 1 09:51:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BF79ABDA05; Tue, 1 Mar 2016 09:51:38 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 139BD19A2; Tue, 1 Mar 2016 09:51:38 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u219pbbe021633; Tue, 1 Mar 2016 09:51:37 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u219pbSX021632; Tue, 1 Mar 2016 09:51:37 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201603010951.u219pbSX021632@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 1 Mar 2016 09:51:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296258 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 09:51:38 -0000 Author: andrew Date: Tue Mar 1 09:51:36 2016 New Revision: 296258 URL: https://svnweb.freebsd.org/changeset/base/296258 Log: Stop setting the memory size in the arm EFI and FDT code, we don't use it. Sponsored by: ABT Systems Ltd Modified: head/sys/arm/arm/machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Tue Mar 1 09:45:27 2016 (r296257) +++ head/sys/arm/arm/machdep.c Tue Mar 1 09:51:36 2016 (r296258) @@ -1305,7 +1305,7 @@ set_stackptrs(int cpu) static void add_efi_map_entries(struct efi_map_header *efihdr, struct mem_region *mr, - int *mrcnt, uint32_t *memsize) + int *mrcnt) { struct efi_md *map, *p; const char *type; @@ -1330,7 +1330,6 @@ add_efi_map_entries(struct efi_map_heade }; *mrcnt = 0; - *memsize = 0; /* * Memory map data provided by UEFI via the GetMemoryMap @@ -1402,7 +1401,6 @@ add_efi_map_entries(struct efi_map_heade } *mrcnt = j; - *memsize = memory_size; } #endif /* EFI */ @@ -1715,7 +1713,6 @@ initarm(struct arm_boot_params *abp) struct mem_region mem_regions[FDT_MEM_REGIONS]; vm_paddr_t lastaddr; vm_offset_t dtbp, kernelstack, dpcpu; - u_long memsize; char *env; void *kmdp; int err_devmap, mem_regions_sz; @@ -1727,7 +1724,6 @@ initarm(struct arm_boot_params *abp) arm_physmem_kernaddr = abp->abp_physaddr; lastaddr = parse_boot_param(abp) - KERNVIRTADDR + arm_physmem_kernaddr; - memsize = 0; set_cpufuncs(); cpuinfo_init(); @@ -1755,14 +1751,12 @@ initarm(struct arm_boot_params *abp) efihdr = (struct efi_map_header *)preload_search_info(kmdp, MODINFO_METADATA | MODINFOMD_EFI_MAP); if (efihdr != NULL) { - add_efi_map_entries(efihdr, mem_regions, &mem_regions_sz, - &memsize); + add_efi_map_entries(efihdr, mem_regions, &mem_regions_sz); } else #endif { /* Grab physical memory regions information from device tree. */ - if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, - &memsize) != 0) + if (fdt_get_mem_regions(mem_regions, &mem_regions_sz,NULL) != 0) panic("Cannot get physical memory regions"); } arm_physmem_hardware_regions(mem_regions, mem_regions_sz); From owner-svn-src-head@freebsd.org Tue Mar 1 10:57:31 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57091ABD555; Tue, 1 Mar 2016 10:57:31 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1824A1497; Tue, 1 Mar 2016 10:57:31 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21AvU4K040989; Tue, 1 Mar 2016 10:57:30 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21AvU1a040987; Tue, 1 Mar 2016 10:57:30 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201603011057.u21AvU1a040987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Tue, 1 Mar 2016 10:57:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296261 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 10:57:31 -0000 Author: skra Date: Tue Mar 1 10:57:29 2016 New Revision: 296261 URL: https://svnweb.freebsd.org/changeset/base/296261 Log: Mark other parts of interrupt framework as INTR_SOLO option specific. Note that isrc_arg member of struct intr_irqsrc is used only for INTR_SOLO and IPI filter. This should be remembered if IPI filters and their arguments will be stored on another place. This option could be unusable very soon, if interrupt controllers implementations will not be implemented considering it. Modified: head/sys/kern/subr_intr.c head/sys/sys/intr.h Modified: head/sys/kern/subr_intr.c ============================================================================== --- head/sys/kern/subr_intr.c Tue Mar 1 10:39:19 2016 (r296260) +++ head/sys/kern/subr_intr.c Tue Mar 1 10:57:29 2016 (r296261) @@ -713,7 +713,11 @@ isrc_event_create(struct intr_irqsrc *is * Make sure that we do not mix the two ways * how we handle interrupt sources. Let contested event wins. */ +#ifdef INTR_SOLO if (isrc->isrc_filter != NULL || isrc->isrc_event != NULL) { +#else + if (isrc->isrc_event != NULL) { +#endif mtx_unlock(&isrc_table_lock); intr_event_destroy(ie); return (isrc->isrc_event != NULL ? EBUSY : 0); @@ -1013,7 +1017,7 @@ intr_irq_remove_handler(device_t dev, u_ isrc = isrc_lookup(irq); if (isrc == NULL || isrc->isrc_handlers == 0) return (EINVAL); - +#ifdef INTR_SOLO if (isrc->isrc_filter != NULL) { if (isrc != cookie) return (EINVAL); @@ -1028,7 +1032,7 @@ intr_irq_remove_handler(device_t dev, u_ mtx_unlock(&isrc_table_lock); return (0); } - +#endif if (isrc != intr_handler_source(cookie)) return (EINVAL); @@ -1079,7 +1083,7 @@ intr_irq_describe(u_int irq, void *cooki isrc = isrc_lookup(irq); if (isrc == NULL || isrc->isrc_handlers == 0) return (EINVAL); - +#ifdef INTR_SOLO if (isrc->isrc_filter != NULL) { if (isrc != cookie) return (EINVAL); @@ -1089,7 +1093,7 @@ intr_irq_describe(u_int irq, void *cooki mtx_unlock(&isrc_table_lock); return (0); } - +#endif error = intr_event_describe_handler(isrc->isrc_event, cookie, descr); if (error == 0) { mtx_lock(&isrc_table_lock); @@ -1108,10 +1112,10 @@ intr_irq_bind(u_int irq, int cpu) isrc = isrc_lookup(irq); if (isrc == NULL || isrc->isrc_handlers == 0) return (EINVAL); - +#ifdef INTR_SOLO if (isrc->isrc_filter != NULL) return (intr_isrc_assign_cpu(isrc, cpu)); - +#endif return (intr_event_bind(isrc->isrc_event, cpu)); } Modified: head/sys/sys/intr.h ============================================================================== --- head/sys/sys/intr.h Tue Mar 1 10:39:19 2016 (r296260) +++ head/sys/sys/intr.h Tue Mar 1 10:57:29 2016 (r296261) @@ -79,7 +79,9 @@ struct intr_irqsrc { u_long * isrc_count; u_int isrc_handlers; struct intr_event * isrc_event; +#ifdef INTR_SOLO intr_irq_filter_t * isrc_filter; +#endif intr_ipi_filter_t * isrc_ipifilter; void * isrc_arg; #ifdef FDT From owner-svn-src-head@freebsd.org Tue Mar 1 11:27:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC957ABE4F9; Tue, 1 Mar 2016 11:27:59 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 78BCC13AC; Tue, 1 Mar 2016 11:27:59 +0000 (UTC) (envelope-from skra@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21BRwdb050102; Tue, 1 Mar 2016 11:27:58 GMT (envelope-from skra@FreeBSD.org) Received: (from skra@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21BRwhJ050101; Tue, 1 Mar 2016 11:27:58 GMT (envelope-from skra@FreeBSD.org) Message-Id: <201603011127.u21BRwhJ050101@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: skra set sender to skra@FreeBSD.org using -f From: Svatopluk Kraus Date: Tue, 1 Mar 2016 11:27:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296262 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 11:27:59 -0000 Author: skra Date: Tue Mar 1 11:27:58 2016 New Revision: 296262 URL: https://svnweb.freebsd.org/changeset/base/296262 Log: Remove an alternative way for dealing with root interrupt controller which is not complete. Likely, it was forgotten and not removed before committing. Modified: head/sys/kern/subr_intr.c Modified: head/sys/kern/subr_intr.c ============================================================================== --- head/sys/kern/subr_intr.c Tue Mar 1 10:57:29 2016 (r296261) +++ head/sys/kern/subr_intr.c Tue Mar 1 11:27:58 2016 (r296262) @@ -88,7 +88,6 @@ MALLOC_DEFINE(M_INTRNG, "intr", "intr in void intr_irq_handler(struct trapframe *tf); /* Root interrupt controller stuff. */ -static struct intr_irqsrc *irq_root_isrc; device_t intr_irq_root_dev; static intr_irq_filter_t *irq_root_filter; static void *irq_root_arg; @@ -894,8 +893,6 @@ int intr_pic_claim_root(device_t dev, intptr_t xref, intr_irq_filter_t *filter, void *arg, u_int ipicount) { - int error; - u_int rootirq; if (pic_lookup(dev, xref) == NULL) { device_printf(dev, "not registered\n"); @@ -916,24 +913,6 @@ intr_pic_claim_root(device_t dev, intptr return (EBUSY); } - rootirq = intr_namespace_map_irq(device_get_parent(dev), 0, 0); - if (rootirq == IRQ_INVALID) { - device_printf(dev, "failed to map an irq for the root pic\n"); - return (ENOMEM); - } - - /* Create the isrc. */ - irq_root_isrc = isrc_lookup(rootirq); - - /* XXX "register" with the PIC. We are the "pic" here, so fake it. */ - irq_root_isrc->isrc_flags |= INTR_ISRCF_REGISTERED; - - error = intr_irq_add_handler(device_get_parent(dev), - (void*)filter, NULL, arg, rootirq, INTR_TYPE_CLK, NULL); - if (error != 0) { - device_printf(dev, "failed to install root pic handler\n"); - return (error); - } intr_irq_root_dev = dev; irq_root_filter = filter; irq_root_arg = arg; From owner-svn-src-head@freebsd.org Tue Mar 1 11:34:46 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 059CBABE838; Tue, 1 Mar 2016 11:34:46 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C1D451953; Tue, 1 Mar 2016 11:34:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21BYiih052987; Tue, 1 Mar 2016 11:34:44 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21BYiSP052986; Tue, 1 Mar 2016 11:34:44 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201603011134.u21BYiSP052986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 1 Mar 2016 11:34:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296263 - head/lib/libpmc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 11:34:46 -0000 Author: trasz Date: Tue Mar 1 11:34:44 2016 New Revision: 296263 URL: https://svnweb.freebsd.org/changeset/base/296263 Log: Connect pmc.haswellxeon(3) to the build; looks like it was missed in r279829. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/lib/libpmc/Makefile Modified: head/lib/libpmc/Makefile ============================================================================== --- head/lib/libpmc/Makefile Tue Mar 1 11:27:58 2016 (r296262) +++ head/lib/libpmc/Makefile Tue Mar 1 11:34:44 2016 (r296263) @@ -31,6 +31,7 @@ MAN+= pmc.corei7.3 MAN+= pmc.corei7uc.3 MAN+= pmc.haswell.3 MAN+= pmc.haswelluc.3 +MAN+= pmc.haswellxeon.3 MAN+= pmc.iaf.3 MAN+= pmc.ivybridge.3 MAN+= pmc.ivybridgexeon.3 From owner-svn-src-head@freebsd.org Tue Mar 1 11:36:11 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2CF9ABE8E4; Tue, 1 Mar 2016 11:36:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A43ED1ACA; Tue, 1 Mar 2016 11:36:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21BaAoC053085; Tue, 1 Mar 2016 11:36:10 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21BaA4M053081; Tue, 1 Mar 2016 11:36:10 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201603011136.u21BaA4M053081@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 1 Mar 2016 11:36:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296264 - head/tools/build/options X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 11:36:12 -0000 Author: trasz Date: Tue Mar 1 11:36:10 2016 New Revision: 296264 URL: https://svnweb.freebsd.org/changeset/base/296264 Log: Fix section numbers for autofs(5), kbdcontrol(1), vidcontrol(1), quota(1), and telnet(1) in the right place. MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/tools/build/options/WITHOUT_AUTOFS head/tools/build/options/WITHOUT_LEGACY_CONSOLE head/tools/build/options/WITHOUT_QUOTAS head/tools/build/options/WITHOUT_TELNET Modified: head/tools/build/options/WITHOUT_AUTOFS ============================================================================== --- head/tools/build/options/WITHOUT_AUTOFS Tue Mar 1 11:34:44 2016 (r296263) +++ head/tools/build/options/WITHOUT_AUTOFS Tue Mar 1 11:36:10 2016 (r296264) @@ -1,4 +1,4 @@ .\" $FreeBSD$ Set to not build -.Xr autofs 4 +.Xr autofs 5 related programs, libraries, and kernel modules. Modified: head/tools/build/options/WITHOUT_LEGACY_CONSOLE ============================================================================== --- head/tools/build/options/WITHOUT_LEGACY_CONSOLE Tue Mar 1 11:34:44 2016 (r296263) +++ head/tools/build/options/WITHOUT_LEGACY_CONSOLE Tue Mar 1 11:36:10 2016 (r296264) @@ -1,5 +1,5 @@ .\" $FreeBSD$ Set to not build programs that support a legacy PC console; e.g., -.Xr kbdcontrol 8 +.Xr kbdcontrol 1 and -.Xr vidcontrol 8 . +.Xr vidcontrol 1 . Modified: head/tools/build/options/WITHOUT_QUOTAS ============================================================================== --- head/tools/build/options/WITHOUT_QUOTAS Tue Mar 1 11:34:44 2016 (r296263) +++ head/tools/build/options/WITHOUT_QUOTAS Tue Mar 1 11:36:10 2016 (r296264) @@ -1,4 +1,4 @@ .\" $FreeBSD$ Set to not build -.Xr quota 8 +.Xr quota 1 and related programs. Modified: head/tools/build/options/WITHOUT_TELNET ============================================================================== --- head/tools/build/options/WITHOUT_TELNET Tue Mar 1 11:34:44 2016 (r296263) +++ head/tools/build/options/WITHOUT_TELNET Tue Mar 1 11:36:10 2016 (r296264) @@ -1,4 +1,4 @@ .\" $FreeBSD$ Set to not build -.Xr telnet 8 +.Xr telnet 1 and related programs. From owner-svn-src-head@freebsd.org Tue Mar 1 11:37:54 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CDE5ABEA14; Tue, 1 Mar 2016 11:37:54 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-wm0-x230.google.com (mail-wm0-x230.google.com [IPv6:2a00:1450:400c:c09::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 411C51D78; Tue, 1 Mar 2016 11:37:54 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-wm0-x230.google.com with SMTP id l68so31238872wml.0; Tue, 01 Mar 2016 03:37:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=RdQ+/2hFqbI+6jpCcs/RFxyVS3NW0Z0qiAPaYdiGf7g=; b=uWyhNTUxAWQx/o+0YGaPp1ahFBXPySei6U8mtLBCXHTtsw6y7anLiB4QG09X5hSw8n 8D79FhggQadgCXevwO2ZPVNUq3g2ufUVrV8AFlho9SnEFbrL/d8l+nMP2WMYh+4HYNUY 9yFouxZlOFiwZAWYQErz3E47Di6LlZrBvvvMa4lIaYcaCQWcHq5Q2AQKhwE6RaKWuPeJ nq/JdQpKuVyIcpu4vpdiEl1SnBgKzSchP6q9DIYZ1tocnZTFEsf17p4ncPWqgzV3N5rt peU2bE+YaN0PQHR/C1Icy2iX6+9dIjyCBhit6pFIiruehNOStWnlm7fQHQ83vLzDDZ4U F1lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=RdQ+/2hFqbI+6jpCcs/RFxyVS3NW0Z0qiAPaYdiGf7g=; b=HdoYcoU7iUPuIGpFxl4n4eHqxLUH+TY/cEfPE2BEqFNaKdd62i7jwnELCSw+9EP1Ih yPx7LfBFQxGTPohbEJo7WL8yTP6I6KqpEelEYk7N+XUFVXPoC3yGhKAvifc4k4ka8ZjC q12FisbGc6+Q9DyEC4DwNiM01IyB88eLMS1OAK7UgXEWzX6LSUuRjRazvLsdzJoA4X+i qJyCNsiBm7aNLiVBCniWnAOAJlhqKJa92kXy3BI+zVFSAHIBawFq+HfI/Lo4KMvTaaii SMvgISX5vr8HcI2brK7rFphKpkfiQfMI+jFiHLL2KTZ9Sm4mUYlnZucP5Te2P5CnCH9p Tu0g== X-Gm-Message-State: AD7BkJKHSe7jAgRVSE11jJSwdIZk582XLleHswVkjYiH/NMNkWLF3h/ep0VKKHT1cyAVFg== X-Received: by 10.194.201.130 with SMTP id ka2mr19256581wjc.34.1456832271115; Tue, 01 Mar 2016 03:37:51 -0800 (PST) Received: from brick.home (euk112.neoplus.adsl.tpnet.pl. [83.20.182.112]) by smtp.gmail.com with ESMTPSA id v68sm14332225wmv.10.2016.03.01.03.37.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Mar 2016 03:37:49 -0800 (PST) Sender: =?UTF-8?Q?Edward_Tomasz_Napiera=C5=82a?= Date: Tue, 1 Mar 2016 12:37:45 +0100 From: Edward Tomasz Napierala To: Ed Maste Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r296197 - in head: share/man/man5 usr.sbin/autofs Message-ID: <20160301113745.GA2312@brick.home> Mail-Followup-To: Ed Maste , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" References: <201602291714.u1THE4Xa024558@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 11:37:54 -0000 On 0229T1348, Ed Maste wrote: > On 29 February 2016 at 12:14, Edward Tomasz Napierala wrote: > > Author: trasz > > Date: Mon Feb 29 17:14:04 2016 > > New Revision: 296197 > > URL: https://svnweb.freebsd.org/changeset/base/296197 > > > > Log: > > Autofs is section 5, not 4. > > > > MFC after: 1 month > > Sponsored by: The FreeBSD Foundation > > > > Modified: > > head/share/man/man5/src.conf.5 > > head/usr.sbin/autofs/automount.8 > > > > Modified: head/share/man/man5/src.conf.5 > > ============================================================================== > > --- head/share/man/man5/src.conf.5 Mon Feb 29 16:52:06 2016 (r296196) > > +++ head/share/man/man5/src.conf.5 Mon Feb 29 17:14:04 2016 (r296197) > > @@ -140,7 +140,7 @@ Set to not build > > .It Va WITHOUT_AUTOFS > > .\" from FreeBSD: head/tools/build/options/WITHOUT_AUTOFS 277728 2015-01-26 07:15:49Z ngie > > Set to not build > > -.Xr autofs 4 > > +.Xr autofs 5 > > related programs, libraries, and kernel modules. > > .It Va WITH_AUTO_OBJ > > .\" from FreeBSD: head/tools/build/options/WITH_AUTO_OBJ 284708 2015-06-22 20:21:57Z sjg > > This needs to be changed in tools/build/options/WITHOUT_AUTOFS, not in > the generated file. D'oh, you're right, thanks! I've fixed it; I'll regenerate the file when I figure out why the diff ends up being so big instead of changing by only a few lines. From owner-svn-src-head@freebsd.org Tue Mar 1 11:39:09 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94010ABEB37; Tue, 1 Mar 2016 11:39:09 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 52CBD1F12; Tue, 1 Mar 2016 11:39:09 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21Bd8BB053222; Tue, 1 Mar 2016 11:39:08 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21Bd8Xo053217; Tue, 1 Mar 2016 11:39:08 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201603011139.u21Bd8Xo053217@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 1 Mar 2016 11:39:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296265 - in head/sys: arm/arm dev/fdt mips/beri X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 11:39:09 -0000 Author: andrew Date: Tue Mar 1 11:39:07 2016 New Revision: 296265 URL: https://svnweb.freebsd.org/changeset/base/296265 Log: Make the memory size returned from fdt_get_mem_regions a 64-bit type. This is the physical memory size so may be larger than a u_long can hold, e.g. on ARM with LPAE we could see an address space of up to 40 bits. On ARM u_long is only 32 bits so the memory size will be truncated, possibly to zero. Reported by: bz Sponsored by: ABT Systems Ltd Modified: head/sys/arm/arm/machdep.c head/sys/dev/fdt/fdt_common.c head/sys/dev/fdt/fdt_common.h head/sys/mips/beri/beri_machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Tue Mar 1 11:36:10 2016 (r296264) +++ head/sys/arm/arm/machdep.c Tue Mar 1 11:39:07 2016 (r296265) @@ -1443,7 +1443,7 @@ initarm(struct arm_boot_params *abp) struct pv_addr kernel_l1pt; struct pv_addr dpcpu; vm_offset_t dtbp, freemempos, l2_start, lastaddr; - u_long memsize; + uint64_t memsize; uint32_t l2size; char *env; void *kmdp; Modified: head/sys/dev/fdt/fdt_common.c ============================================================================== --- head/sys/dev/fdt/fdt_common.c Tue Mar 1 11:36:10 2016 (r296264) +++ head/sys/dev/fdt/fdt_common.c Tue Mar 1 11:39:07 2016 (r296265) @@ -647,12 +647,12 @@ out: } int -fdt_get_mem_regions(struct mem_region *mr, int *mrcnt, u_long *memsize) +fdt_get_mem_regions(struct mem_region *mr, int *mrcnt, uint64_t *memsize) { pcell_t reg[FDT_REG_CELLS * FDT_MEM_REGIONS]; pcell_t *regp; phandle_t memory; - u_long memory_size; + uint64_t memory_size; int addr_cells, size_cells; int i, max_size, reg_len, rv, tuple_size, tuples; Modified: head/sys/dev/fdt/fdt_common.h ============================================================================== --- head/sys/dev/fdt/fdt_common.h Tue Mar 1 11:36:10 2016 (r296264) +++ head/sys/dev/fdt/fdt_common.h Tue Mar 1 11:39:07 2016 (r296265) @@ -85,7 +85,7 @@ u_long fdt_data_get(void *, int); int fdt_data_to_res(pcell_t *, int, int, u_long *, u_long *); phandle_t fdt_find_compatible(phandle_t, const char *, int); phandle_t fdt_depth_search_compatible(phandle_t, const char *, int); -int fdt_get_mem_regions(struct mem_region *, int *, u_long *); +int fdt_get_mem_regions(struct mem_region *, int *, uint64_t *); int fdt_get_reserved_regions(struct mem_region *, int *); int fdt_get_phyaddr(phandle_t, device_t, int *, void **); int fdt_get_range(phandle_t, int, u_long *, u_long *); Modified: head/sys/mips/beri/beri_machdep.c ============================================================================== --- head/sys/mips/beri/beri_machdep.c Tue Mar 1 11:36:10 2016 (r296264) +++ head/sys/mips/beri/beri_machdep.c Tue Mar 1 11:39:07 2016 (r296265) @@ -90,8 +90,8 @@ mips_init(void) int i; #ifdef FDT struct mem_region mr[FDT_MEM_REGIONS]; + uint64_t val; int mr_cnt; - u_long val; int j; #endif From owner-svn-src-head@freebsd.org Tue Mar 1 12:50:25 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E210ABD454; Tue, 1 Mar 2016 12:50:25 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 50192153F; Tue, 1 Mar 2016 12:50:25 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21CoO3U073378; Tue, 1 Mar 2016 12:50:24 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21CoOo4073377; Tue, 1 Mar 2016 12:50:24 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201603011250.u21CoOo4073377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Tue, 1 Mar 2016 12:50:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296266 - head/sys/arm64/arm64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 12:50:25 -0000 Author: wma Date: Tue Mar 1 12:50:24 2016 New Revision: 296266 URL: https://svnweb.freebsd.org/changeset/base/296266 Log: Get memory ranges from FDT if no EFI API is available on ARM64 Obtained from: Semihalf Submitted by: Michal Stanek Sponsored by: Annapurna Labs Approved by: cognet (mentor) Reviewed by: andrew, wma Differential revision: https://reviews.freebsd.org/D5408 Modified: head/sys/arm64/arm64/machdep.c Modified: head/sys/arm64/arm64/machdep.c ============================================================================== --- head/sys/arm64/arm64/machdep.c Tue Mar 1 11:39:07 2016 (r296265) +++ head/sys/arm64/arm64/machdep.c Tue Mar 1 12:50:24 2016 (r296266) @@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$"); #endif #ifdef FDT +#include #include #endif @@ -668,6 +669,20 @@ add_physmap_entry(uint64_t base, uint64_ return (1); } +#ifdef FDT +static void +add_fdt_mem_regions(struct mem_region *mr, int mrcnt, vm_paddr_t *physmap, + u_int *physmap_idxp) +{ + + for (int i = 0; i < mrcnt; i++) { + if (!add_physmap_entry(mr[i].mr_start, mr[i].mr_size, physmap, + physmap_idxp)) + break; + } +} +#endif + #define efi_next_descriptor(ptr, size) \ ((struct efi_md *)(((uint8_t *) ptr) + size)) @@ -807,6 +822,10 @@ initarm(struct arm64_bootparams *abp) { struct efi_map_header *efihdr; struct pcpu *pcpup; +#ifdef FDT + struct mem_region mem_regions[FDT_MEM_REGIONS]; + int mem_regions_sz; +#endif vm_offset_t lastaddr; caddr_t kmdp; vm_paddr_t mem_len; @@ -834,7 +853,18 @@ initarm(struct arm64_bootparams *abp) physmap_idx = 0; efihdr = (struct efi_map_header *)preload_search_info(kmdp, MODINFO_METADATA | MODINFOMD_EFI_MAP); - add_efi_map_entries(efihdr, physmap, &physmap_idx); + if (efihdr != NULL) + add_efi_map_entries(efihdr, physmap, &physmap_idx); +#ifdef FDT + else { + /* Grab physical memory regions information from device tree. */ + if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, + NULL) != 0) + panic("Cannot get physical memory regions"); + add_fdt_mem_regions(mem_regions, mem_regions_sz, physmap, + &physmap_idx); + } +#endif /* Print the memory map */ mem_len = 0; From owner-svn-src-head@freebsd.org Tue Mar 1 14:30:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4111ABD21D; Tue, 1 Mar 2016 14:30:36 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8FA941951; Tue, 1 Mar 2016 14:30:36 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21EUZYr004599; Tue, 1 Mar 2016 14:30:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21EUZ59004598; Tue, 1 Mar 2016 14:30:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201603011430.u21EUZ59004598@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 1 Mar 2016 14:30:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296267 - head/share/man/man5 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 14:30:36 -0000 Author: emaste Date: Tue Mar 1 14:30:35 2016 New Revision: 296267 URL: https://svnweb.freebsd.org/changeset/base/296267 Log: Regenerate src.conf.5 after r296193 and r296264 Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Tue Mar 1 12:50:24 2016 (r296266) +++ head/share/man/man5/src.conf.5 Tue Mar 1 14:30:35 2016 (r296267) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 292283 2015-12-15 18:42:30Z bdrewery .\" $FreeBSD$ -.Dd February 24, 2016 +.Dd March 1, 2016 .Dt SRC.CONF 5 .Os .Sh NAME @@ -138,7 +138,7 @@ Set to not build audit support into syst Set to not build .Xr authpf 8 . .It Va WITHOUT_AUTOFS -.\" from FreeBSD: head/tools/build/options/WITHOUT_AUTOFS 277728 2015-01-26 07:15:49Z ngie +.\" from FreeBSD: head/tools/build/options/WITHOUT_AUTOFS 296264 2016-03-01 11:36:10Z trasz Set to not build .Xr autofs 5 related programs, libraries, and kernel modules. @@ -601,21 +601,11 @@ and related programs. .\" from FreeBSD: head/tools/build/options/WITH_EISA 264654 2014-04-18 16:53:06Z imp Set to build EISA kernel modules. .It Va WITHOUT_ELFCOPY_AS_OBJCOPY -.\" from FreeBSD: head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY 286030 2015-07-29 18:45:38Z emaste +.\" from FreeBSD: head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY 296193 2016-02-29 16:39:38Z emaste Set to build and install .Xr objcopy 1 from GNU Binutils, instead of the one from ELF Tool Chain. -.Pp -It is a default setting on -amd64/amd64, arm/arm, arm/armeb, arm/armv6, arm/armv6hf, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, pc98/i386, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. -.It Va WITH_ELFCOPY_AS_OBJCOPY -.\" from FreeBSD: head/tools/build/options/WITH_ELFCOPY_AS_OBJCOPY 286030 2015-07-29 18:45:38Z emaste -Set to build and install ELF Tool Chain's elfcopy as -.Xr objcopy 1 , -instead of the one from GNU Binutils. -.Pp -It is a default setting on -arm64/aarch64. +This option is provided as a transition aid and will be removed in due time. .It Va WITHOUT_ELFTOOLCHAIN_BOOTSTRAP .\" from FreeBSD: head/tools/build/options/WITHOUT_ELFTOOLCHAIN_BOOTSTRAP 295491 2016-02-11 00:14:00Z emaste Set to not build ELF Tool Chain tools @@ -947,7 +937,7 @@ Setting this variable will prevent build and .Xr host 1 . .It Va WITHOUT_LEGACY_CONSOLE -.\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 249966 2013-04-27 04:09:09Z eadler +.\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 296264 2016-03-01 11:36:10Z trasz Set to not build programs that support a legacy PC console; e.g., .Xr kbdcontrol 1 and @@ -1236,7 +1226,7 @@ and related programs. .\" from FreeBSD: head/tools/build/options/WITHOUT_PROFILE 228196 2011-12-02 09:09:54Z fjoe Set to avoid compiling profiled libraries. .It Va WITHOUT_QUOTAS -.\" from FreeBSD: head/tools/build/options/WITHOUT_QUOTAS 183242 2008-09-21 22:02:26Z sam +.\" from FreeBSD: head/tools/build/options/WITHOUT_QUOTAS 296264 2016-03-01 11:36:10Z trasz Set to not build .Xr quota 1 and related programs. @@ -1401,7 +1391,7 @@ Set to not build and install (which is .Xr tcsh 1 ) . .It Va WITHOUT_TELNET -.\" from FreeBSD: head/tools/build/options/WITHOUT_TELNET 183242 2008-09-21 22:02:26Z sam +.\" from FreeBSD: head/tools/build/options/WITHOUT_TELNET 296264 2016-03-01 11:36:10Z trasz Set to not build .Xr telnet 1 and related programs. From owner-svn-src-head@freebsd.org Tue Mar 1 15:21:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA734ABEAFD; Tue, 1 Mar 2016 15:21:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 90B9C1AA4; Tue, 1 Mar 2016 15:21:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21FL16X018353; Tue, 1 Mar 2016 15:21:01 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21FL1F5018352; Tue, 1 Mar 2016 15:21:01 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201603011521.u21FL1F5018352@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 1 Mar 2016 15:21:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296268 - head/lib/libthr/thread X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 15:21:03 -0000 Author: kib Date: Tue Mar 1 15:21:01 2016 New Revision: 296268 URL: https://svnweb.freebsd.org/changeset/base/296268 Log: Add two comments explaining the fine points of the hash implementation. Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D5490 Modified: head/lib/libthr/thread/thr_pshared.c Modified: head/lib/libthr/thread/thr_pshared.c ============================================================================== --- head/lib/libthr/thread/thr_pshared.c Tue Mar 1 14:30:35 2016 (r296267) +++ head/lib/libthr/thread/thr_pshared.c Tue Mar 1 15:21:01 2016 (r296268) @@ -86,6 +86,16 @@ pshared_unlock(struct pthread *curthread _thr_ast(curthread); } +/* + * Among all processes sharing a lock only one executes + * pthread_lock_destroy(). Other processes still have the hash and + * mapped off-page. + * + * Mitigate the problem by checking the liveness of all hashed keys + * periodically. Right now this is executed on each + * pthread_lock_destroy(), but may be done less often if found to be + * too time-consuming. + */ static void pshared_gc(struct pthread *curthread) { @@ -131,6 +141,27 @@ pshared_insert(void *key, void **val) hd = &pshared_hash[PSHARED_KEY_HASH(key)]; LIST_FOREACH(h, hd, link) { + /* + * When the key already exists in the hash, we should + * return either the new (just mapped) or old (hashed) + * val, and the other val should be unmapped to avoid + * address space leak. + * + * If two threads perform lock of the same object + * which is not yet stored in the pshared_hash, then + * the val already inserted by the first thread should + * be returned, and the second val freed (order is by + * the pshared_lock()). Otherwise, if we unmap the + * value obtained from the hash, the first thread + * might operate on an unmapped off-page object. + * + * There is still an issue: if hashed key was unmapped + * and then other page is mapped at the same key + * address, the hash would return the old val. I + * decided to handle the race of simultaneous hash + * insertion, leaving the unlikely remap problem + * unaddressed. + */ if (h->key == key) { if (h->val != *val) { munmap(*val, PAGE_SIZE); From owner-svn-src-head@freebsd.org Tue Mar 1 16:10:17 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E556ABFEBB; Tue, 1 Mar 2016 16:10:17 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 589AE150E; Tue, 1 Mar 2016 16:10:17 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21GAGCk032539; Tue, 1 Mar 2016 16:10:16 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21GAGdC032537; Tue, 1 Mar 2016 16:10:16 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201603011610.u21GAGdC032537@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Tue, 1 Mar 2016 16:10:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296269 - head/sys/dev/gpio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 16:10:17 -0000 Author: mmel Date: Tue Mar 1 16:10:15 2016 New Revision: 296269 URL: https://svnweb.freebsd.org/changeset/base/296269 Log: OFW_GPIOBUS: Add utility functions for easier handling of OFW GPIO pins. Reviewed by: ian, loos (paritaly) Modified: head/sys/dev/gpio/gpiobusvar.h head/sys/dev/gpio/ofw_gpiobus.c Modified: head/sys/dev/gpio/gpiobusvar.h ============================================================================== --- head/sys/dev/gpio/gpiobusvar.h Tue Mar 1 15:21:01 2016 (r296268) +++ head/sys/dev/gpio/gpiobusvar.h Tue Mar 1 16:10:15 2016 (r296269) @@ -38,6 +38,7 @@ #ifdef FDT #include +#include #endif #include "gpio_if.h" @@ -83,6 +84,7 @@ struct gpiobus_pin uint32_t flags; /* pin flags */ uint32_t pin; /* pin number */ }; +typedef struct gpiobus_pin *gpio_pin_t; struct gpiobus_ivar { @@ -109,6 +111,16 @@ device_t ofw_gpiobus_add_fdt_child(devic int ofw_gpiobus_parse_gpios(device_t, char *, struct gpiobus_pin **); void ofw_gpiobus_register_provider(device_t); void ofw_gpiobus_unregister_provider(device_t); + +/* Consumers interface. */ +int gpio_pin_get_by_ofw_name(device_t consumer, char *name, gpio_pin_t *gpio); +int gpio_pin_get_by_ofw_idx(device_t consumer, int idx, gpio_pin_t *gpio); +int gpio_pin_get_by_ofw_property(device_t consumer, char *name, + gpio_pin_t *gpio); +void gpio_pin_release(gpio_pin_t gpio); +int gpio_pin_is_active(gpio_pin_t pin, bool *active); +int gpio_pin_set_active(gpio_pin_t pin, bool active); +int gpio_pin_setflags(gpio_pin_t pin, uint32_t flags); #endif int gpio_check_flags(uint32_t, uint32_t); device_t gpiobus_attach_bus(device_t); Modified: head/sys/dev/gpio/ofw_gpiobus.c ============================================================================== --- head/sys/dev/gpio/ofw_gpiobus.c Tue Mar 1 15:21:01 2016 (r296268) +++ head/sys/dev/gpio/ofw_gpiobus.c Tue Mar 1 16:10:15 2016 (r296269) @@ -47,6 +47,166 @@ static void ofw_gpiobus_destroy_devinfo( static int ofw_gpiobus_parse_gpios_impl(device_t, phandle_t, char *, struct gpiobus_softc *, struct gpiobus_pin **); +/* + * Utility functions for easier handling of OFW GPIO pins. + * + * !!! BEWARE !!! + * GPIOBUS uses children's IVARs, so we cannot use this interface for cross + * tree consumers. + * + */ +static int +gpio_pin_get_by_ofw_impl(device_t consumer_dev, char *prop_name, int idx, + gpio_pin_t *out_pin) +{ + phandle_t cnode, xref; + pcell_t *cells; + device_t busdev; + struct gpiobus_pin pin; + int ncells, rv; + + cnode = ofw_bus_get_node(consumer_dev); + if (cnode <= 0) { + device_printf(consumer_dev, + "%s called on not ofw based device\n", __func__); + return (ENXIO); + } + + rv = ofw_bus_parse_xref_list_alloc(cnode, prop_name, "#gpio-cells", + idx, &xref, &ncells, &cells); + if (rv != 0) + return (rv); + + /* Translate provider to device. */ + pin.dev = OF_device_from_xref(xref); + if (pin.dev == NULL) { + free(cells, M_OFWPROP); + return (ENODEV); + } + + /* Test if GPIO bus already exist. */ + busdev = GPIO_GET_BUS(pin.dev); + if (busdev == NULL) { + free(cells, M_OFWPROP); + return (ENODEV); + } + + /* Map GPIO pin. */ + rv = gpio_map_gpios(pin.dev, cnode, OF_node_from_xref(xref), ncells, + cells, &pin.pin, &pin.flags); + free(cells, M_OFWPROP); + if (rv != 0) { + device_printf(consumer_dev, "Cannot map the gpio property.\n"); + return (ENXIO); + } + + /* Reserve GPIO pin. */ + rv = gpiobus_map_pin(busdev, pin.pin); + if (rv != 0) { + device_printf(consumer_dev, "Cannot reserve gpio pin.\n"); + return (EBUSY); + } + + *out_pin = malloc(sizeof(struct gpiobus_pin), M_DEVBUF, + M_WAITOK | M_ZERO); + **out_pin = pin; + return (0); +} + +int +gpio_pin_get_by_ofw_idx(device_t consumer_dev, int idx, gpio_pin_t *pin) +{ + + return (gpio_pin_get_by_ofw_impl(consumer_dev, "gpios", idx, pin)); +} + +int +gpio_pin_get_by_ofw_property(device_t consumer_dev, char *name, gpio_pin_t *pin) +{ + + return (gpio_pin_get_by_ofw_impl(consumer_dev, name, 0, pin)); +} + +int +gpio_pin_get_by_ofw_name(device_t consumer_dev, char *name, gpio_pin_t *pin) +{ + int rv, idx; + phandle_t cnode; + + cnode = ofw_bus_get_node(consumer_dev); + if (cnode <= 0) { + device_printf(consumer_dev, + "%s called on not ofw based device\n", __func__); + return (ENXIO); + } + rv = ofw_bus_find_string_index(cnode, "gpio-names", name, &idx); + if (rv != 0) + return (rv); + return (gpio_pin_get_by_ofw_idx(consumer_dev, idx, pin)); +} + +void +gpio_pin_release(gpio_pin_t gpio) +{ + + if (gpio == NULL) + return; + + /* XXXX Unreserve pin. */ + free(gpio, M_DEVBUF); +} + +int +gpio_pin_is_active(gpio_pin_t pin, bool *active) +{ + int rv; + uint32_t tmp; + + KASSERT(pin != NULL, ("GPIO pin is NULL.")); + KASSERT(pin->dev != NULL, ("GPIO pin device is NULL.")); + rv = GPIO_PIN_GET(pin->dev, pin->pin, &tmp); + if (rv != 0) { + return (rv); + } + + *active = tmp != 0; + if (pin->flags & GPIO_ACTIVE_LOW) + *active = !(*active); + return (0); +} + +int +gpio_pin_set_active(gpio_pin_t pin, bool active) +{ + int rv; + uint32_t tmp; + + if (pin->flags & GPIO_ACTIVE_LOW) + tmp = active ? 0 : 1; + else + tmp = active ? 1 : 0; + + KASSERT(pin != NULL, ("GPIO pin is NULL.")); + KASSERT(pin->dev != NULL, ("GPIO pin device is NULL.")); + rv = GPIO_PIN_SET(pin->dev, pin->pin, tmp); + return (rv); +} + +int +gpio_pin_setflags(gpio_pin_t pin, uint32_t flags) +{ + int rv; + + KASSERT(pin != NULL, ("GPIO pin is NULL.")); + KASSERT(pin->dev != NULL, ("GPIO pin device is NULL.")); + + rv = GPIO_PIN_SETFLAGS(pin->dev, pin->pin, flags); + return (rv); +} + +/* + * OFW_GPIOBUS driver. + */ device_t ofw_gpiobus_add_fdt_child(device_t bus, const char *drvname, phandle_t child) { From owner-svn-src-head@freebsd.org Tue Mar 1 17:43:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2E28ABE783; Tue, 1 Mar 2016 17:43:07 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A3D5F13B7; Tue, 1 Mar 2016 17:43:07 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21Hh6tm062791; Tue, 1 Mar 2016 17:43:06 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21Hh6wP062790; Tue, 1 Mar 2016 17:43:06 GMT (envelope-from br@FreeBSD.org) Message-Id: <201603011743.u21Hh6wP062790@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Tue, 1 Mar 2016 17:43:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296271 - head/contrib/jemalloc/include/jemalloc/internal X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 17:43:07 -0000 Author: br Date: Tue Mar 1 17:43:06 2016 New Revision: 296271 URL: https://svnweb.freebsd.org/changeset/base/296271 Log: Restore configuration for RISC-V. Modified: head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h Modified: head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h Tue Mar 1 17:33:27 2016 (r296270) +++ head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h Tue Mar 1 17:43:06 2016 (r296271) @@ -254,6 +254,9 @@ typedef unsigned szind_t; # ifdef __powerpc__ # define LG_QUANTUM 4 # endif +# ifdef __riscv__ +# define LG_QUANTUM 4 +# endif # ifdef __s390__ # define LG_QUANTUM 4 # endif From owner-svn-src-head@freebsd.org Tue Mar 1 17:47:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD517ABEA25; Tue, 1 Mar 2016 17:47:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 97D601809; Tue, 1 Mar 2016 17:47:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21HlYgE063005; Tue, 1 Mar 2016 17:47:34 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21HlWIt062981; Tue, 1 Mar 2016 17:47:32 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201603011747.u21HlWIt062981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 1 Mar 2016 17:47:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296272 - in head: . share/man/man9 sys/arm/ti/am335x sys/dev/aac sys/dev/ath sys/dev/bwn sys/dev/bxe sys/dev/drm2 sys/dev/hyperv/vmbus sys/dev/malo sys/dev/nfe sys/dev/oce sys/dev/re s... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 17:47:35 -0000 Author: jhb Date: Tue Mar 1 17:47:32 2016 New Revision: 296272 URL: https://svnweb.freebsd.org/changeset/base/296272 Log: Remove taskqueue_enqueue_fast(). taskqueue_enqueue() was changed to support both fast and non-fast taskqueues 10 years ago in r154167. It has been a compat shim ever since. It's time for the compat shim to go. Submitted by: Howard Su Reviewed by: sephe Differential Revision: https://reviews.freebsd.org/D5131 Modified: head/ObsoleteFiles.inc head/share/man/man9/Makefile head/share/man/man9/taskqueue.9 head/sys/arm/ti/am335x/am335x_dmtpps.c head/sys/dev/aac/aac.c head/sys/dev/ath/if_ath_sysctl.c head/sys/dev/bwn/if_bwn.c head/sys/dev/bxe/bxe.c head/sys/dev/drm2/drm_fb_helper.c head/sys/dev/hyperv/vmbus/hv_connection.c head/sys/dev/malo/if_malo.c head/sys/dev/nfe/if_nfe.c head/sys/dev/oce/oce_if.c head/sys/dev/re/if_re.c head/sys/dev/smc/if_smc.c head/sys/dev/vr/if_vr.c head/sys/dev/xen/netfront/netfront.c head/sys/kern/subr_taskqueue.c head/sys/netpfil/ipfw/ip_dummynet.c head/sys/sys/taskqueue.h head/sys/x86/iommu/intel_fault.c head/sys/x86/iommu/intel_qi.c head/sys/x86/x86/mca.c Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Tue Mar 1 17:43:06 2016 (r296271) +++ head/ObsoleteFiles.inc Tue Mar 1 17:47:32 2016 (r296272) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20160301: Remove taskqueue_enqueue_fast +OLD_FILES+=usr/share/man/man9/taskqueue_enqueue_fast.9.gz # 20160225: Remove casperd and libcapsicum. OLD_FILES+=sbin/casperd OLD_FILES+=etc/rc.d/casperd Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Tue Mar 1 17:43:06 2016 (r296271) +++ head/share/man/man9/Makefile Tue Mar 1 17:47:32 2016 (r296272) @@ -1705,7 +1705,6 @@ MLINKS+=taskqueue.9 TASK_INIT.9 \ taskqueue.9 taskqueue_drain_all.9 \ taskqueue.9 taskqueue_drain_timeout.9 \ taskqueue.9 taskqueue_enqueue.9 \ - taskqueue.9 taskqueue_enqueue_fast.9 \ taskqueue.9 taskqueue_enqueue_timeout.9 \ taskqueue.9 TASKQUEUE_FAST_DEFINE.9 \ taskqueue.9 TASKQUEUE_FAST_DEFINE_THREAD.9 \ Modified: head/share/man/man9/taskqueue.9 ============================================================================== --- head/share/man/man9/taskqueue.9 Tue Mar 1 17:43:06 2016 (r296271) +++ head/share/man/man9/taskqueue.9 Tue Mar 1 17:47:32 2016 (r296272) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 4, 2015 +.Dd March 1, 2016 .Dt TASKQUEUE 9 .Os .Sh NAME @@ -80,8 +80,6 @@ struct timeout_task; .Ft int .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" .Ft int -.Fn taskqueue_enqueue_fast "struct taskqueue *queue" "struct task *task" -.Ft int .Fn taskqueue_enqueue_timeout "struct taskqueue *queue" "struct timeout_task *timeout_task" "int ticks" .Ft int .Fn taskqueue_cancel "struct taskqueue *queue" "struct task *task" "u_int *pendp" @@ -191,14 +189,6 @@ This function will return .Er EPIPE if the queue is being freed. .Pp -The function -.Fn taskqueue_enqueue_fast -should be used in place of -.Fn taskqueue_enqueue -when the enqueuing must happen from a fast interrupt handler. -This method uses spin locks to avoid the possibility of sleeping in the fast -interrupt context. -.Pp When a task is executed, first it is removed from the queue, the value of @@ -467,15 +457,7 @@ To use these queues, call .Fn taskqueue_enqueue with the value of the global taskqueue variable for the queue you wish to -use -.Va ( taskqueue_swi , -.Va taskqueue_swi_giant , -or -.Va taskqueue_thread ) . -Use -.Fn taskqueue_enqueue_fast -for the global taskqueue variable -.Va taskqueue_fast . +use. .Pp The software interrupt queues can be used, for instance, for implementing interrupt handlers which must perform a Modified: head/sys/arm/ti/am335x/am335x_dmtpps.c ============================================================================== --- head/sys/arm/ti/am335x/am335x_dmtpps.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/arm/ti/am335x/am335x_dmtpps.c Tue Mar 1 17:47:32 2016 (r296272) @@ -300,7 +300,7 @@ dmtpps_poll(struct timecounter *tc) pps_capture(&sc->pps_state); sc->pps_state.capcount = DMTIMER_READ4(sc, DMT_TCAR1); DMTIMER_WRITE4(sc, DMT_IRQSTATUS, DMT_IRQ_TCAR); - taskqueue_enqueue_fast(taskqueue_fast, &sc->pps_task); + taskqueue_enqueue(taskqueue_fast, &sc->pps_task); } } Modified: head/sys/dev/aac/aac.c ============================================================================== --- head/sys/dev/aac/aac.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/aac/aac.c Tue Mar 1 17:47:32 2016 (r296272) @@ -915,7 +915,7 @@ aac_filter(void *arg) /* handle completion processing */ if (reason & AAC_DB_RESPONSE_READY) - taskqueue_enqueue_fast(taskqueue_fast, &sc->aac_task_complete); + taskqueue_enqueue(taskqueue_fast, &sc->aac_task_complete); /* controller wants to talk to us */ if (reason & (AAC_DB_PRINTF | AAC_DB_COMMAND_READY)) { Modified: head/sys/dev/ath/if_ath_sysctl.c ============================================================================== --- head/sys/dev/ath/if_ath_sysctl.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/ath/if_ath_sysctl.c Tue Mar 1 17:47:32 2016 (r296272) @@ -709,7 +709,7 @@ ath_sysctl_forcebstuck(SYSCTL_HANDLER_AR if (val == 0) return 0; - taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_bstucktask); + taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask); val = 0; return 0; } Modified: head/sys/dev/bwn/if_bwn.c ============================================================================== --- head/sys/dev/bwn/if_bwn.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/bwn/if_bwn.c Tue Mar 1 17:47:32 2016 (r296272) @@ -8328,7 +8328,7 @@ bwn_intr(void *arg) BWN_BARRIER(mac, BUS_SPACE_BARRIER_READ); BWN_BARRIER(mac, BUS_SPACE_BARRIER_WRITE); - taskqueue_enqueue_fast(sc->sc_tq, &mac->mac_intrtask); + taskqueue_enqueue(sc->sc_tq, &mac->mac_intrtask); return (FILTER_HANDLED); } Modified: head/sys/dev/bxe/bxe.c ============================================================================== --- head/sys/dev/bxe/bxe.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/bxe/bxe.c Tue Mar 1 17:47:32 2016 (r296272) @@ -8737,7 +8737,7 @@ bxe_handle_fp_tq(void *context, if (more_rx /*|| more_tx*/) { /* still more work to do */ - taskqueue_enqueue_fast(fp->tq, &fp->tq_task); + taskqueue_enqueue(fp->tq, &fp->tq_task); return; } @@ -8771,7 +8771,7 @@ bxe_task_fp(struct bxe_fastpath *fp) if (more_rx /*|| more_tx*/) { /* still more work to do, bail out if this ISR and process later */ - taskqueue_enqueue_fast(fp->tq, &fp->tq_task); + taskqueue_enqueue(fp->tq, &fp->tq_task); return; } @@ -8838,7 +8838,7 @@ bxe_intr_legacy(void *xsc) bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); /* schedule slowpath handler */ - taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task); + taskqueue_enqueue(sc->sp_tq, &sc->sp_tq_task); status &= ~0x1; } @@ -8860,7 +8860,7 @@ bxe_intr_sp(void *xsc) bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); /* schedule slowpath handler */ - taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task); + taskqueue_enqueue(sc->sp_tq, &sc->sp_tq_task); } /* fastpath interrupt entry point */ Modified: head/sys/dev/drm2/drm_fb_helper.c ============================================================================== --- head/sys/dev/drm2/drm_fb_helper.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/drm2/drm_fb_helper.c Tue Mar 1 17:47:32 2016 (r296272) @@ -75,7 +75,7 @@ vt_kms_postswitch(void *arg) sc = (struct vt_kms_softc *)arg; if (!kdb_active && panicstr == NULL) - taskqueue_enqueue_fast(taskqueue_thread, &sc->fb_mode_task); + taskqueue_enqueue(taskqueue_thread, &sc->fb_mode_task); else drm_fb_helper_restore_fbdev_mode(sc->fb_helper); Modified: head/sys/dev/hyperv/vmbus/hv_connection.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_connection.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/hyperv/vmbus/hv_connection.c Tue Mar 1 17:47:32 2016 (r296272) @@ -350,7 +350,7 @@ hv_vmbus_on_events(int cpu) if (channel->batched_reading) hv_ring_buffer_read_begin(&channel->inbound); - taskqueue_enqueue_fast(channel->rxq, &channel->channel_task); + taskqueue_enqueue(channel->rxq, &channel->channel_task); } } } Modified: head/sys/dev/malo/if_malo.c ============================================================================== --- head/sys/dev/malo/if_malo.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/malo/if_malo.c Tue Mar 1 17:47:32 2016 (r296272) @@ -397,9 +397,9 @@ malo_intr(void *arg) __func__, status, sc->malo_imask); if (status & MALO_A2HRIC_BIT_RX_RDY) - taskqueue_enqueue_fast(sc->malo_tq, &sc->malo_rxtask); + taskqueue_enqueue(sc->malo_tq, &sc->malo_rxtask); if (status & MALO_A2HRIC_BIT_TX_DONE) - taskqueue_enqueue_fast(sc->malo_tq, &sc->malo_txtask); + taskqueue_enqueue(sc->malo_tq, &sc->malo_txtask); if (status & MALO_A2HRIC_BIT_OPC_DONE) malo_hal_cmddone(mh); if (status & MALO_A2HRIC_BIT_MAC_EVENT) Modified: head/sys/dev/nfe/if_nfe.c ============================================================================== --- head/sys/dev/nfe/if_nfe.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/nfe/if_nfe.c Tue Mar 1 17:47:32 2016 (r296272) @@ -1873,7 +1873,7 @@ nfe_intr(void *arg) if (status == 0 || status == 0xffffffff) return (FILTER_STRAY); nfe_disable_intr(sc); - taskqueue_enqueue_fast(sc->nfe_tq, &sc->nfe_int_task); + taskqueue_enqueue(sc->nfe_tq, &sc->nfe_int_task); return (FILTER_HANDLED); } @@ -1932,7 +1932,7 @@ nfe_int_task(void *arg, int pending) NFE_UNLOCK(sc); if (domore || (NFE_READ(sc, sc->nfe_irq_status) != 0)) { - taskqueue_enqueue_fast(sc->nfe_tq, &sc->nfe_int_task); + taskqueue_enqueue(sc->nfe_tq, &sc->nfe_int_task); return; } Modified: head/sys/dev/oce/oce_if.c ============================================================================== --- head/sys/dev/oce/oce_if.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/oce/oce_if.c Tue Mar 1 17:47:32 2016 (r296272) @@ -707,7 +707,7 @@ oce_fast_isr(void *arg) oce_arm_eq(sc, ii->eq->eq_id, 0, FALSE, TRUE); - taskqueue_enqueue_fast(ii->tq, &ii->task); + taskqueue_enqueue(ii->tq, &ii->task); ii->eq->intr++; @@ -1065,7 +1065,7 @@ oce_tx_restart(POCE_SOFTC sc, struct oce #else if (!IFQ_DRV_IS_EMPTY(&sc->ifp->if_snd)) #endif - taskqueue_enqueue_fast(taskqueue_swi, &wq->txtask); + taskqueue_enqueue(taskqueue_swi, &wq->txtask); } Modified: head/sys/dev/re/if_re.c ============================================================================== --- head/sys/dev/re/if_re.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/re/if_re.c Tue Mar 1 17:47:32 2016 (r296272) @@ -2553,7 +2553,7 @@ re_intr(void *arg) return (FILTER_STRAY); CSR_WRITE_2(sc, RL_IMR, 0); - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); return (FILTER_HANDLED); } @@ -2621,7 +2621,7 @@ re_int_task(void *arg, int npending) RL_UNLOCK(sc); if ((CSR_READ_2(sc, RL_ISR) & RL_INTRS_CPLUS) || rval) { - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); return; } Modified: head/sys/dev/smc/if_smc.c ============================================================================== --- head/sys/dev/smc/if_smc.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/smc/if_smc.c Tue Mar 1 17:47:32 2016 (r296272) @@ -560,7 +560,7 @@ smc_start_locked(struct ifnet *ifp) return; } - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } static void @@ -797,7 +797,7 @@ smc_poll(struct ifnet *ifp, enum poll_cm SMC_UNLOCK(sc); if (cmd == POLL_AND_CHECK_STATUS) - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); } #endif @@ -823,7 +823,7 @@ smc_intr(void *context) /* Restore bank */ smc_select_bank(sc, curbank); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); return (FILTER_HANDLED); } @@ -877,7 +877,7 @@ smc_task_intr(void *context, int pending tcr |= TCR_TXENA | TCR_PAD_EN; smc_write_2(sc, TCR, tcr); smc_select_bank(sc, 2); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -892,7 +892,7 @@ smc_task_intr(void *context, int pending if (status & RCV_INT) { smc_write_1(sc, ACK, RCV_INT); sc->smc_mask &= ~RCV_INT; - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_rx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_rx); } /* @@ -901,7 +901,7 @@ smc_task_intr(void *context, int pending if (status & ALLOC_INT) { smc_write_1(sc, ACK, ALLOC_INT); sc->smc_mask &= ~ALLOC_INT; - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -933,7 +933,7 @@ smc_task_intr(void *context, int pending /* * See if there are any packets to transmit. */ - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -1233,7 +1233,7 @@ smc_watchdog(void *arg) sc = (struct smc_softc *)arg; device_printf(sc->smc_dev, "watchdog timeout\n"); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); } static void Modified: head/sys/dev/vr/if_vr.c ============================================================================== --- head/sys/dev/vr/if_vr.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/vr/if_vr.c Tue Mar 1 17:47:32 2016 (r296272) @@ -1671,7 +1671,7 @@ vr_intr(void *arg) /* Disable interrupts. */ CSR_WRITE_2(sc, VR_IMR, 0x0000); - taskqueue_enqueue_fast(taskqueue_fast, &sc->vr_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->vr_inttask); return (FILTER_HANDLED); } Modified: head/sys/dev/xen/netfront/netfront.c ============================================================================== --- head/sys/dev/xen/netfront/netfront.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/dev/xen/netfront/netfront.c Tue Mar 1 17:47:32 2016 (r296272) @@ -1400,7 +1400,7 @@ xn_rxq_intr(void *xrxq) { struct netfront_rxq *rxq = xrxq; - taskqueue_enqueue_fast(rxq->tq, &rxq->intrtask); + taskqueue_enqueue(rxq->tq, &rxq->intrtask); } static void @@ -1408,7 +1408,7 @@ xn_txq_intr(void *xtxq) { struct netfront_txq *txq = xtxq; - taskqueue_enqueue_fast(txq->tq, &txq->intrtask); + taskqueue_enqueue(txq->tq, &txq->intrtask); } static int Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/kern/subr_taskqueue.c Tue Mar 1 17:47:32 2016 (r296272) @@ -737,13 +737,6 @@ taskqueue_create_fast(const char *name, MTX_SPIN, "fast_taskqueue"); } -/* NB: for backwards compatibility */ -int -taskqueue_enqueue_fast(struct taskqueue *queue, struct task *task) -{ - return taskqueue_enqueue(queue, task); -} - static void *taskqueue_fast_ih; static void Modified: head/sys/netpfil/ipfw/ip_dummynet.c ============================================================================== --- head/sys/netpfil/ipfw/ip_dummynet.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/netpfil/ipfw/ip_dummynet.c Tue Mar 1 17:47:32 2016 (r296272) @@ -84,7 +84,7 @@ dummynet(void *arg) { (void)arg; /* UNUSED */ - taskqueue_enqueue_fast(dn_tq, &dn_task); + taskqueue_enqueue(dn_tq, &dn_task); } void Modified: head/sys/sys/taskqueue.h ============================================================================== --- head/sys/sys/taskqueue.h Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/sys/taskqueue.h Tue Mar 1 17:47:32 2016 (r296272) @@ -198,7 +198,6 @@ TASKQUEUE_DECLARE(thread); * from a fast interrupt handler context. */ TASKQUEUE_DECLARE(fast); -int taskqueue_enqueue_fast(struct taskqueue *queue, struct task *task); struct taskqueue *taskqueue_create_fast(const char *name, int mflags, taskqueue_enqueue_fn enqueue, void *context); Modified: head/sys/x86/iommu/intel_fault.c ============================================================================== --- head/sys/x86/iommu/intel_fault.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/x86/iommu/intel_fault.c Tue Mar 1 17:47:32 2016 (r296272) @@ -179,7 +179,7 @@ done: } if (enqueue) { - taskqueue_enqueue_fast(unit->fault_taskqueue, + taskqueue_enqueue(unit->fault_taskqueue, &unit->fault_task); } return (FILTER_HANDLED); Modified: head/sys/x86/iommu/intel_qi.c ============================================================================== --- head/sys/x86/iommu/intel_qi.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/x86/iommu/intel_qi.c Tue Mar 1 17:47:32 2016 (r296272) @@ -325,7 +325,7 @@ dmar_qi_intr(void *arg) unit = arg; KASSERT(unit->qi_enabled, ("dmar%d: QI is not enabled", unit->unit)); - taskqueue_enqueue_fast(unit->qi_taskqueue, &unit->qi_task); + taskqueue_enqueue(unit->qi_taskqueue, &unit->qi_task); return (FILTER_HANDLED); } Modified: head/sys/x86/x86/mca.c ============================================================================== --- head/sys/x86/x86/mca.c Tue Mar 1 17:43:06 2016 (r296271) +++ head/sys/x86/x86/mca.c Tue Mar 1 17:47:32 2016 (r296272) @@ -508,7 +508,7 @@ mca_record_entry(enum scan_mode mode, co mca_count++; mtx_unlock_spin(&mca_lock); if (mode == CMCI) - taskqueue_enqueue_fast(mca_tq, &mca_refill_task); + taskqueue_enqueue(mca_tq, &mca_refill_task); } #ifdef DEV_APIC @@ -686,7 +686,7 @@ static void mca_periodic_scan(void *arg) { - taskqueue_enqueue_fast(mca_tq, &mca_scan_task); + taskqueue_enqueue(mca_tq, &mca_scan_task); callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, NULL); } @@ -700,7 +700,7 @@ sysctl_mca_scan(SYSCTL_HANDLER_ARGS) if (error) return (error); if (i) - taskqueue_enqueue_fast(mca_tq, &mca_scan_task); + taskqueue_enqueue(mca_tq, &mca_scan_task); return (0); } From owner-svn-src-head@freebsd.org Tue Mar 1 18:12:17 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1029DABF77C; Tue, 1 Mar 2016 18:12:17 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9B2921D94; Tue, 1 Mar 2016 18:12:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21ICFaG071157; Tue, 1 Mar 2016 18:12:15 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21ICEqt071147; Tue, 1 Mar 2016 18:12:14 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201603011812.u21ICEqt071147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 1 Mar 2016 18:12:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296277 - in head: share/man/man4 sys/conf sys/kern sys/modules sys/modules/aio sys/sys tests/sys/aio X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 18:12:17 -0000 Author: jhb Date: Tue Mar 1 18:12:14 2016 New Revision: 296277 URL: https://svnweb.freebsd.org/changeset/base/296277 Log: Refactor the AIO subsystem to permit file-type-specific handling and improve cancellation robustness. Introduce a new file operation, fo_aio_queue, which is responsible for queueing and completing an asynchronous I/O request for a given file. The AIO subystem now exports library of routines to manipulate AIO requests as well as the ability to run a handler function in the "default" pool of AIO daemons to service a request. A default implementation for file types which do not include an fo_aio_queue method queues requests to the "default" pool invoking the fo_read or fo_write methods as before. The AIO subsystem permits file types to install a private "cancel" routine when a request is queued to permit safe dequeueing and cleanup of cancelled requests. Sockets now use their own pool of AIO daemons and service per-socket requests in FIFO order. Socket requests will not block indefinitely permitting timely cancellation of all requests. Due to the now-tight coupling of the AIO subsystem with file types, the AIO subsystem is now a standard part of all kernels. The VFS_AIO kernel option and aio.ko module are gone. Many file types may block indefinitely in their fo_read or fo_write callbacks resulting in a hung AIO daemon. This can result in hung user processes (when processes attempt to cancel all outstanding requests during exit) or a hung system. To protect against this, AIO requests are only permitted for known "safe" files by default. AIO requests for all file types can be enabled by setting the new vfs.aio.enable_usafe sysctl to a non-zero value. The AIO tests have been updated to skip operations on unsafe file types if the sysctl is zero. Currently, AIO requests on sockets and raw disks are considered safe and are enabled by default. aio_mlock() is also enabled by default. Reviewed by: cem, jilles Discussed with: kib (earlier version) Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D5289 Added: head/tests/sys/aio/local.h (contents, props changed) Deleted: head/sys/modules/aio/Makefile Modified: head/share/man/man4/aio.4 head/sys/conf/NOTES head/sys/conf/files head/sys/conf/options head/sys/kern/sys_socket.c head/sys/kern/uipc_debug.c head/sys/kern/uipc_sockbuf.c head/sys/kern/uipc_socket.c head/sys/kern/vfs_aio.c head/sys/modules/Makefile head/sys/sys/aio.h head/sys/sys/file.h head/sys/sys/sockbuf.h head/sys/sys/socketvar.h head/tests/sys/aio/aio_kqueue_test.c head/tests/sys/aio/aio_test.c head/tests/sys/aio/lio_kqueue_test.c Modified: head/share/man/man4/aio.4 ============================================================================== --- head/share/man/man4/aio.4 Tue Mar 1 18:05:11 2016 (r296276) +++ head/share/man/man4/aio.4 Tue Mar 1 18:12:14 2016 (r296277) @@ -27,24 +27,116 @@ .\" .\" $FreeBSD$ .\" -.Dd October 24, 2002 +.Dd March 1, 2016 .Dt AIO 4 .Os .Sh NAME .Nm aio .Nd asynchronous I/O -.Sh SYNOPSIS -To link into the kernel: -.Cd "options VFS_AIO" -.Pp -To load as a kernel loadable module: -.Dl kldload aio .Sh DESCRIPTION The .Nm facility provides system calls for asynchronous I/O. -It is available both as a kernel option for static inclusion and as a -dynamic kernel module. +However, asynchronous I/O operations are only enabled for certain file +types by default. +Asynchronous I/O operations for other file types may block an AIO daemon +indefinitely resulting in process and/or system hangs. +Asynchronous I/O operations can be enabled for all file types by setting +the +.Va vfs.aio.enable_unsafe +sysctl node to a non-zero value. +.Pp +Asynchronous I/O operations on sockets and raw disk devices do not block +indefinitely and are enabled by default. +.Pp +The +.Nm +facility uses kernel processes +(also known as AIO daemons) +to service most asynchronous I/O requests. +These processes are grouped into pools containing a variable number of +processes. +Each pool will add or remove processes to the pool based on load. +Pools can be configured by sysctl nodes that define the minimum +and maximum number of processes as well as the amount of time an idle +process will wait before exiting. +.Pp +One pool of AIO daemons is used to service asynchronous I/O requests for +sockets. +These processes are named +.Dq soaiod . +The following sysctl nodes are used with this pool: +.Bl -tag -width indent +.It Va kern.ipc.aio.num_procs +The current number of processes in the pool. +.It Va kern.ipc.aio.target_procs +The minimum number of processes that should be present in the pool. +.It Va kern.ipc.aio.max_procs +The maximum number of processes permitted in the pool. +.It Va kern.ipc.aio.lifetime +The amount of time a process is permitted to idle in clock ticks. +If a process is idle for this amount of time and there are more processes +in the pool than the target minimum, +the process will exit. +.El +.Pp +A second pool of AIO daemons is used to service all other asynchronous I/O +requests except for I/O requests to raw disks. +These processes are named +.Dq aiod . +The following sysctl nodes are used with this pool: +.Bl -tag -width indent +.It Va vfs.aio.num_aio_procs +The current number of processes in the pool. +.It Va vfs.aio.target_aio_procs +The minimum number of processes that should be present in the pool. +.It Va vfs.aio.max_aio_procs +The maximum number of processes permitted in the pool. +.It Va vfs.aio.aiod_lifetime +The amount of time a process is permitted to idle in clock ticks. +If a process is idle for this amount of time and there are more processes +in the pool than the target minimum, +the process will exit. +.El +.Pp +Asynchronous I/O requests for raw disks are queued directly to the disk +device layer after temporarily wiring the user pages associated with the +request. +These requests are not serviced by any of the AIO daemon pools. +.Pp +Several limits on the number of asynchronous I/O requests are imposed both +system-wide and per-process. +These limits are configured via the following sysctls: +.Bl -tag -width indent +.It Va vfs.aio.max_buf_aio +The maximum number of queued asynchronous I/O requests for raw disks permitted +for a single process. +Asynchronous I/O requests that have completed but whose status has not been +retrieved via +.Xr aio_return 2 +or +.Xr aio_waitcomplete 2 +are not counted against this limit. +.It Va vfs.aio.num_buf_aio +The number of queued asynchronous I/O requests for raw disks system-wide. +.It Va vfs.aio.max_aio_queue_per_proc +The maximum number of asynchronous I/O requests for a single process +serviced concurrently by the default AIO daemon pool. +.It Va vfs.aio.max_aio_per_proc +The maximum number of outstanding asynchronous I/O requests permitted for a +single process. +This includes requests that have not been serviced, +requests currently being serviced, +and requests that have completed but whose status has not been retrieved via +.Xr aio_return 2 +or +.Xr aio_waitcomplete 2 . +.It Va vfs.aio.num_queue_count +The number of outstanding asynchronous I/O requests system-wide. +.It Va vfs.aio.max_aio_queue +The maximum number of outstanding asynchronous I/O requests permitted +system-wide. +.El .Sh SEE ALSO .Xr aio_cancel 2 , .Xr aio_error 2 , @@ -54,9 +146,7 @@ dynamic kernel module. .Xr aio_waitcomplete 2 , .Xr aio_write 2 , .Xr lio_listio 2 , -.Xr config 8 , -.Xr kldload 8 , -.Xr kldunload 8 +.Xr sysctl 8 .Sh HISTORY The .Nm @@ -66,3 +156,7 @@ The .Nm kernel module appeared in .Fx 5.0 . +The +.Nm +facility was integrated into all kernels in +.Fx 11.0 . Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/conf/NOTES Tue Mar 1 18:12:14 2016 (r296277) @@ -1130,11 +1130,6 @@ options EXT2FS # options REISERFS -# Use real implementations of the aio_* system calls. There are numerous -# stability and security issues in the current aio code that make it -# unsuitable for inclusion on machines with untrusted local users. -options VFS_AIO - # Cryptographically secure random number generator; /dev/random device random Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/conf/files Tue Mar 1 18:12:14 2016 (r296277) @@ -3332,7 +3332,7 @@ kern/uipc_socket.c standard kern/uipc_syscalls.c standard kern/uipc_usrreq.c standard kern/vfs_acl.c standard -kern/vfs_aio.c optional vfs_aio +kern/vfs_aio.c standard kern/vfs_bio.c standard kern/vfs_cache.c standard kern/vfs_cluster.c standard Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/conf/options Tue Mar 1 18:12:14 2016 (r296277) @@ -213,7 +213,6 @@ SYSVSHM opt_sysvipc.h SW_WATCHDOG opt_watchdog.h TURNSTILE_PROFILING UMTX_PROFILING -VFS_AIO VERBOSE_SYSINIT WLCACHE opt_wavelan.h WLDEBUG opt_wavelan.h Modified: head/sys/kern/sys_socket.c ============================================================================== --- head/sys/kern/sys_socket.c Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/kern/sys_socket.c Tue Mar 1 18:12:14 2016 (r296277) @@ -34,9 +34,12 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include +#include +#include #include #include #include @@ -48,6 +51,9 @@ __FBSDID("$FreeBSD$"); #include /* XXX */ #include #include +#include +#include +#include #include #include #include @@ -64,6 +70,22 @@ __FBSDID("$FreeBSD$"); #include +#include +#include +#include +#include + +static SYSCTL_NODE(_kern_ipc, OID_AUTO, aio, CTLFLAG_RD, NULL, + "socket AIO stats"); + +static int empty_results; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, empty_results, CTLFLAG_RD, &empty_results, + 0, "socket operation returned EAGAIN"); + +static int empty_retries; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, empty_retries, CTLFLAG_RD, &empty_retries, + 0, "socket operation retries"); + static fo_rdwr_t soo_read; static fo_rdwr_t soo_write; static fo_ioctl_t soo_ioctl; @@ -72,6 +94,9 @@ extern fo_kqfilter_t soo_kqfilter; static fo_stat_t soo_stat; static fo_close_t soo_close; static fo_fill_kinfo_t soo_fill_kinfo; +static fo_aio_queue_t soo_aio_queue; + +static void soo_aio_cancel(struct kaiocb *job); struct fileops socketops = { .fo_read = soo_read, @@ -86,6 +111,7 @@ struct fileops socketops = { .fo_chown = invfo_chown, .fo_sendfile = invfo_sendfile, .fo_fill_kinfo = soo_fill_kinfo, + .fo_aio_queue = soo_aio_queue, .fo_flags = DFLAG_PASSABLE }; @@ -363,3 +389,374 @@ soo_fill_kinfo(struct file *fp, struct k sizeof(kif->kf_path)); return (0); } + +static STAILQ_HEAD(, task) soaio_jobs; +static struct mtx soaio_jobs_lock; +static struct task soaio_kproc_task; +static int soaio_starting, soaio_idle, soaio_queued; +static struct unrhdr *soaio_kproc_unr; + +static int soaio_max_procs = MAX_AIO_PROCS; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, max_procs, CTLFLAG_RW, &soaio_max_procs, 0, + "Maximum number of kernel processes to use for async socket IO"); + +static int soaio_num_procs; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, num_procs, CTLFLAG_RD, &soaio_num_procs, 0, + "Number of active kernel processes for async socket IO"); + +static int soaio_target_procs = TARGET_AIO_PROCS; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, target_procs, CTLFLAG_RD, + &soaio_target_procs, 0, + "Preferred number of ready kernel processes for async socket IO"); + +static int soaio_lifetime; +SYSCTL_INT(_kern_ipc_aio, OID_AUTO, lifetime, CTLFLAG_RW, &soaio_lifetime, 0, + "Maximum lifetime for idle aiod"); + +static void +soaio_kproc_loop(void *arg) +{ + struct proc *p; + struct vmspace *myvm; + struct task *task; + int error, id, pending; + + id = (intptr_t)arg; + + /* + * Grab an extra reference on the daemon's vmspace so that it + * doesn't get freed by jobs that switch to a different + * vmspace. + */ + p = curproc; + myvm = vmspace_acquire_ref(p); + + mtx_lock(&soaio_jobs_lock); + MPASS(soaio_starting > 0); + soaio_starting--; + for (;;) { + while (!STAILQ_EMPTY(&soaio_jobs)) { + task = STAILQ_FIRST(&soaio_jobs); + STAILQ_REMOVE_HEAD(&soaio_jobs, ta_link); + soaio_queued--; + pending = task->ta_pending; + task->ta_pending = 0; + mtx_unlock(&soaio_jobs_lock); + + task->ta_func(task->ta_context, pending); + + mtx_lock(&soaio_jobs_lock); + } + MPASS(soaio_queued == 0); + + if (p->p_vmspace != myvm) { + mtx_unlock(&soaio_jobs_lock); + vmspace_switch_aio(myvm); + mtx_lock(&soaio_jobs_lock); + continue; + } + + soaio_idle++; + error = mtx_sleep(&soaio_idle, &soaio_jobs_lock, 0, "-", + soaio_lifetime); + soaio_idle--; + if (error == EWOULDBLOCK && STAILQ_EMPTY(&soaio_jobs) && + soaio_num_procs > soaio_target_procs) + break; + } + soaio_num_procs--; + mtx_unlock(&soaio_jobs_lock); + free_unr(soaio_kproc_unr, id); + kproc_exit(0); +} + +static void +soaio_kproc_create(void *context, int pending) +{ + struct proc *p; + int error, id; + + mtx_lock(&soaio_jobs_lock); + for (;;) { + if (soaio_num_procs < soaio_target_procs) { + /* Must create */ + } else if (soaio_num_procs >= soaio_max_procs) { + /* + * Hit the limit on kernel processes, don't + * create another one. + */ + break; + } else if (soaio_queued <= soaio_idle + soaio_starting) { + /* + * No more AIO jobs waiting for a process to be + * created, so stop. + */ + break; + } + soaio_starting++; + mtx_unlock(&soaio_jobs_lock); + + id = alloc_unr(soaio_kproc_unr); + error = kproc_create(soaio_kproc_loop, (void *)(intptr_t)id, + &p, 0, 0, "soaiod%d", id); + if (error != 0) { + free_unr(soaio_kproc_unr, id); + mtx_lock(&soaio_jobs_lock); + soaio_starting--; + break; + } + + mtx_lock(&soaio_jobs_lock); + soaio_num_procs++; + } + mtx_unlock(&soaio_jobs_lock); +} + +static void +soaio_enqueue(struct task *task) +{ + + mtx_lock(&soaio_jobs_lock); + MPASS(task->ta_pending == 0); + task->ta_pending++; + STAILQ_INSERT_TAIL(&soaio_jobs, task, ta_link); + soaio_queued++; + if (soaio_queued <= soaio_idle) + wakeup_one(&soaio_idle); + else if (soaio_num_procs < soaio_max_procs) + taskqueue_enqueue(taskqueue_thread, &soaio_kproc_task); + mtx_unlock(&soaio_jobs_lock); +} + +static void +soaio_init(void) +{ + + soaio_lifetime = AIOD_LIFETIME_DEFAULT; + STAILQ_INIT(&soaio_jobs); + mtx_init(&soaio_jobs_lock, "soaio jobs", NULL, MTX_DEF); + soaio_kproc_unr = new_unrhdr(1, INT_MAX, NULL); + TASK_INIT(&soaio_kproc_task, 0, soaio_kproc_create, NULL); + if (soaio_target_procs > 0) + taskqueue_enqueue(taskqueue_thread, &soaio_kproc_task); +} +SYSINIT(soaio, SI_SUB_VFS, SI_ORDER_ANY, soaio_init, NULL); + +static __inline int +soaio_ready(struct socket *so, struct sockbuf *sb) +{ + return (sb == &so->so_rcv ? soreadable(so) : sowriteable(so)); +} + +static void +soaio_process_job(struct socket *so, struct sockbuf *sb, struct kaiocb *job) +{ + struct ucred *td_savedcred; + struct thread *td; + struct file *fp; + struct uio uio; + struct iovec iov; + size_t cnt; + int error, flags; + + SOCKBUF_UNLOCK(sb); + aio_switch_vmspace(job); + td = curthread; + fp = job->fd_file; +retry: + td_savedcred = td->td_ucred; + td->td_ucred = job->cred; + + cnt = job->uaiocb.aio_nbytes; + iov.iov_base = (void *)(uintptr_t)job->uaiocb.aio_buf; + iov.iov_len = cnt; + uio.uio_iov = &iov; + uio.uio_iovcnt = 1; + uio.uio_offset = 0; + uio.uio_resid = cnt; + uio.uio_segflg = UIO_USERSPACE; + uio.uio_td = td; + flags = MSG_NBIO; + + /* TODO: Charge ru_msg* to job. */ + + if (sb == &so->so_rcv) { + uio.uio_rw = UIO_READ; +#ifdef MAC + error = mac_socket_check_receive(fp->f_cred, so); + if (error == 0) + +#endif + error = soreceive(so, NULL, &uio, NULL, NULL, &flags); + } else { + uio.uio_rw = UIO_WRITE; +#ifdef MAC + error = mac_socket_check_send(fp->f_cred, so); + if (error == 0) +#endif + error = sosend(so, NULL, &uio, NULL, NULL, flags, td); + if (error == EPIPE && (so->so_options & SO_NOSIGPIPE) == 0) { + PROC_LOCK(job->userproc); + kern_psignal(job->userproc, SIGPIPE); + PROC_UNLOCK(job->userproc); + } + } + + cnt -= uio.uio_resid; + td->td_ucred = td_savedcred; + + /* XXX: Not sure if this is needed? */ + if (cnt != 0 && (error == ERESTART || error == EINTR || + error == EWOULDBLOCK)) + error = 0; + if (error == EWOULDBLOCK) { + /* + * A read() or write() on the socket raced with this + * request. If the socket is now ready, try again. + * If it is not, place this request at the head of the + * queue to try again when the socket is ready. + */ + SOCKBUF_LOCK(sb); + empty_results++; + if (soaio_ready(so, sb)) { + empty_retries++; + SOCKBUF_UNLOCK(sb); + goto retry; + } + + if (!aio_set_cancel_function(job, soo_aio_cancel)) { + MPASS(cnt == 0); + SOCKBUF_UNLOCK(sb); + aio_cancel(job); + SOCKBUF_LOCK(sb); + } else { + TAILQ_INSERT_HEAD(&sb->sb_aiojobq, job, list); + } + } else { + aio_complete(job, cnt, error); + SOCKBUF_LOCK(sb); + } +} + +static void +soaio_process_sb(struct socket *so, struct sockbuf *sb) +{ + struct kaiocb *job; + + SOCKBUF_LOCK(sb); + while (!TAILQ_EMPTY(&sb->sb_aiojobq) && soaio_ready(so, sb)) { + job = TAILQ_FIRST(&sb->sb_aiojobq); + TAILQ_REMOVE(&sb->sb_aiojobq, job, list); + if (!aio_clear_cancel_function(job)) + continue; + + soaio_process_job(so, sb, job); + } + + /* + * If there are still pending requests, the socket must not be + * ready so set SB_AIO to request a wakeup when the socket + * becomes ready. + */ + if (!TAILQ_EMPTY(&sb->sb_aiojobq)) + sb->sb_flags |= SB_AIO; + sb->sb_flags &= ~SB_AIO_RUNNING; + SOCKBUF_UNLOCK(sb); + + ACCEPT_LOCK(); + SOCK_LOCK(so); + sorele(so); +} + +void +soaio_rcv(void *context, int pending) +{ + struct socket *so; + + so = context; + soaio_process_sb(so, &so->so_rcv); +} + +void +soaio_snd(void *context, int pending) +{ + struct socket *so; + + so = context; + soaio_process_sb(so, &so->so_snd); +} + +void +sowakeup_aio(struct socket *so, struct sockbuf *sb) +{ + + SOCKBUF_LOCK_ASSERT(sb); + sb->sb_flags &= ~SB_AIO; + if (sb->sb_flags & SB_AIO_RUNNING) + return; + sb->sb_flags |= SB_AIO_RUNNING; + if (sb == &so->so_snd) + SOCK_LOCK(so); + soref(so); + if (sb == &so->so_snd) + SOCK_UNLOCK(so); + soaio_enqueue(&sb->sb_aiotask); +} + +static void +soo_aio_cancel(struct kaiocb *job) +{ + struct socket *so; + struct sockbuf *sb; + int opcode; + + so = job->fd_file->f_data; + opcode = job->uaiocb.aio_lio_opcode; + if (opcode == LIO_READ) + sb = &so->so_rcv; + else { + MPASS(opcode == LIO_WRITE); + sb = &so->so_snd; + } + + SOCKBUF_LOCK(sb); + if (!aio_cancel_cleared(job)) + TAILQ_REMOVE(&sb->sb_aiojobq, job, list); + if (TAILQ_EMPTY(&sb->sb_aiojobq)) + sb->sb_flags &= ~SB_AIO; + SOCKBUF_UNLOCK(sb); + + aio_cancel(job); +} + +static int +soo_aio_queue(struct file *fp, struct kaiocb *job) +{ + struct socket *so; + struct sockbuf *sb; + + so = fp->f_data; + switch (job->uaiocb.aio_lio_opcode) { + case LIO_READ: + sb = &so->so_rcv; + break; + case LIO_WRITE: + sb = &so->so_snd; + break; + default: + return (EINVAL); + } + + SOCKBUF_LOCK(sb); + if (!aio_set_cancel_function(job, soo_aio_cancel)) + panic("new job was cancelled"); + TAILQ_INSERT_TAIL(&sb->sb_aiojobq, job, list); + if (!(sb->sb_flags & SB_AIO_RUNNING)) { + if (soaio_ready(so, sb)) + sowakeup_aio(so, sb); + else + sb->sb_flags |= SB_AIO; + } + SOCKBUF_UNLOCK(sb); + return (0); +} Modified: head/sys/kern/uipc_debug.c ============================================================================== --- head/sys/kern/uipc_debug.c Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/kern/uipc_debug.c Tue Mar 1 18:12:14 2016 (r296277) @@ -416,6 +416,9 @@ db_print_sockbuf(struct sockbuf *sb, con db_printf("sb_flags: 0x%x (", sb->sb_flags); db_print_sbflags(sb->sb_flags); db_printf(")\n"); + + db_print_indent(indent); + db_printf("sb_aiojobq first: %p\n", TAILQ_FIRST(&sb->sb_aiojobq)); } static void @@ -470,7 +473,6 @@ db_print_socket(struct socket *so, const db_print_indent(indent); db_printf("so_sigio: %p ", so->so_sigio); db_printf("so_oobmark: %lu ", so->so_oobmark); - db_printf("so_aiojobq first: %p\n", TAILQ_FIRST(&so->so_aiojobq)); db_print_sockbuf(&so->so_rcv, "so_rcv", indent); db_print_sockbuf(&so->so_snd, "so_snd", indent); Modified: head/sys/kern/uipc_sockbuf.c ============================================================================== --- head/sys/kern/uipc_sockbuf.c Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/kern/uipc_sockbuf.c Tue Mar 1 18:12:14 2016 (r296277) @@ -332,7 +332,7 @@ sowakeup(struct socket *so, struct sockb } else ret = SU_OK; if (sb->sb_flags & SB_AIO) - aio_swake(so, sb); + sowakeup_aio(so, sb); SOCKBUF_UNLOCK(sb); if (ret == SU_ISCONNECTED) soisconnected(so); Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/kern/uipc_socket.c Tue Mar 1 18:12:14 2016 (r296277) @@ -134,6 +134,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -396,7 +397,10 @@ soalloc(struct vnet *vnet) SOCKBUF_LOCK_INIT(&so->so_rcv, "so_rcv"); sx_init(&so->so_snd.sb_sx, "so_snd_sx"); sx_init(&so->so_rcv.sb_sx, "so_rcv_sx"); - TAILQ_INIT(&so->so_aiojobq); + TAILQ_INIT(&so->so_snd.sb_aiojobq); + TAILQ_INIT(&so->so_rcv.sb_aiojobq); + TASK_INIT(&so->so_snd.sb_aiotask, 0, soaio_snd, so); + TASK_INIT(&so->so_rcv.sb_aiotask, 0, soaio_rcv, so); #ifdef VIMAGE VNET_ASSERT(vnet != NULL, ("%s:%d vnet is NULL, so=%p", __func__, __LINE__, so)); Modified: head/sys/kern/vfs_aio.c ============================================================================== --- head/sys/kern/vfs_aio.c Tue Mar 1 18:05:11 2016 (r296276) +++ head/sys/kern/vfs_aio.c Tue Mar 1 18:12:14 2016 (r296277) @@ -72,8 +72,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "opt_vfs_aio.h" - /* * Counter for allocating reference ids to new jobs. Wrapped to 1 on * overflow. (XXX will be removed soon.) @@ -85,14 +83,6 @@ static u_long jobrefid; */ static uint64_t jobseqno; -#define JOBST_NULL 0 -#define JOBST_JOBQSOCK 1 -#define JOBST_JOBQGLOBAL 2 -#define JOBST_JOBRUNNING 3 -#define JOBST_JOBFINISHED 4 -#define JOBST_JOBQBUF 5 -#define JOBST_JOBQSYNC 6 - #ifndef MAX_AIO_PER_PROC #define MAX_AIO_PER_PROC 32 #endif @@ -101,26 +91,14 @@ static uint64_t jobseqno; #define MAX_AIO_QUEUE_PER_PROC 256 /* Bigger than AIO_LISTIO_MAX */ #endif -#ifndef MAX_AIO_PROCS -#define MAX_AIO_PROCS 32 -#endif - #ifndef MAX_AIO_QUEUE #define MAX_AIO_QUEUE 1024 /* Bigger than AIO_LISTIO_MAX */ #endif -#ifndef TARGET_AIO_PROCS -#define TARGET_AIO_PROCS 4 -#endif - #ifndef MAX_BUF_AIO #define MAX_BUF_AIO 16 #endif -#ifndef AIOD_LIFETIME_DEFAULT -#define AIOD_LIFETIME_DEFAULT (30 * hz) -#endif - FEATURE(aio, "Asynchronous I/O"); static MALLOC_DEFINE(M_LIO, "lio", "listio aio control block list"); @@ -128,6 +106,10 @@ static MALLOC_DEFINE(M_LIO, "lio", "list static SYSCTL_NODE(_vfs, OID_AUTO, aio, CTLFLAG_RW, 0, "Async IO management"); +static int enable_aio_unsafe = 0; +SYSCTL_INT(_vfs_aio, OID_AUTO, enable_unsafe, CTLFLAG_RW, &enable_aio_unsafe, 0, + "Permit asynchronous IO on all file types, not just known-safe types"); + static int max_aio_procs = MAX_AIO_PROCS; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_procs, CTLFLAG_RW, &max_aio_procs, 0, "Maximum number of kernel processes to use for handling async IO "); @@ -165,11 +147,6 @@ static int aiod_lifetime; SYSCTL_INT(_vfs_aio, OID_AUTO, aiod_lifetime, CTLFLAG_RW, &aiod_lifetime, 0, "Maximum lifetime for idle aiod"); -static int unloadable = 0; -SYSCTL_INT(_vfs_aio, OID_AUTO, unloadable, CTLFLAG_RW, &unloadable, 0, - "Allow unload of aio (not recommended)"); - - static int max_aio_per_proc = MAX_AIO_PER_PROC; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_per_proc, CTLFLAG_RW, &max_aio_per_proc, 0, @@ -208,46 +185,27 @@ typedef struct oaiocb { */ /* - * Current, there is only two backends: BIO and generic file I/O. - * socket I/O is served by generic file I/O, this is not a good idea, since - * disk file I/O and any other types without O_NONBLOCK flag can block daemon - * processes, if there is no thread to serve socket I/O, the socket I/O will be - * delayed too long or starved, we should create some processes dedicated to - * sockets to do non-blocking I/O, same for pipe and fifo, for these I/O - * systems we really need non-blocking interface, fiddling O_NONBLOCK in file - * structure is not safe because there is race between userland and aio - * daemons. - */ - -struct kaiocb { - TAILQ_ENTRY(kaiocb) list; /* (b) internal list of for backend */ - TAILQ_ENTRY(kaiocb) plist; /* (a) list of jobs for each backend */ - TAILQ_ENTRY(kaiocb) allist; /* (a) list of all jobs in proc */ - int jobflags; /* (a) job flags */ - int jobstate; /* (b) job state */ - int inputcharge; /* (*) input blockes */ - int outputcharge; /* (*) output blockes */ - struct bio *bp; /* (*) BIO backend BIO pointer */ - struct buf *pbuf; /* (*) BIO backend buffer pointer */ - struct vm_page *pages[btoc(MAXPHYS)+1]; /* BIO backend pages */ - int npages; /* BIO backend number of pages */ - struct proc *userproc; /* (*) user process */ - struct ucred *cred; /* (*) active credential when created */ - struct file *fd_file; /* (*) pointer to file structure */ - struct aioliojob *lio; /* (*) optional lio job */ - struct aiocb *ujob; /* (*) pointer in userspace of aiocb */ - struct knlist klist; /* (a) list of knotes */ - struct aiocb uaiocb; /* (*) kernel I/O control block */ - ksiginfo_t ksi; /* (a) realtime signal info */ - uint64_t seqno; /* (*) job number */ - int pending; /* (a) number of pending I/O, aio_fsync only */ -}; + * If the routine that services an AIO request blocks while running in an + * AIO kernel process it can starve other I/O requests. BIO requests + * queued via aio_qphysio() complete in GEOM and do not use AIO kernel + * processes at all. Socket I/O requests use a separate pool of + * kprocs and also force non-blocking I/O. Other file I/O requests + * use the generic fo_read/fo_write operations which can block. The + * fsync and mlock operations can also block while executing. Ideally + * none of these requests would block while executing. + * + * Note that the service routines cannot toggle O_NONBLOCK in the file + * structure directly while handling a request due to races with + * userland threads. + */ /* jobflags */ -#define KAIOCB_DONE 0x01 -#define KAIOCB_BUFDONE 0x02 -#define KAIOCB_RUNDOWN 0x04 +#define KAIOCB_QUEUEING 0x01 +#define KAIOCB_CANCELLED 0x02 +#define KAIOCB_CANCELLING 0x04 #define KAIOCB_CHECKSYNC 0x08 +#define KAIOCB_CLEARED 0x10 +#define KAIOCB_FINISHED 0x20 /* * AIO process info @@ -293,9 +251,10 @@ struct kaioinfo { TAILQ_HEAD(,kaiocb) kaio_done; /* (a) done queue for process */ TAILQ_HEAD(,aioliojob) kaio_liojoblist; /* (a) list of lio jobs */ TAILQ_HEAD(,kaiocb) kaio_jobqueue; /* (a) job queue for process */ - TAILQ_HEAD(,kaiocb) kaio_bufqueue; /* (a) buffer job queue */ TAILQ_HEAD(,kaiocb) kaio_syncqueue; /* (a) queue for aio_fsync */ + TAILQ_HEAD(,kaiocb) kaio_syncready; /* (a) second q for aio_fsync */ struct task kaio_task; /* (*) task to kick aio processes */ + struct task kaio_sync_task; /* (*) task to schedule fsync jobs */ }; #define AIO_LOCK(ki) mtx_lock(&(ki)->kaio_mtx) @@ -332,21 +291,18 @@ static int aio_free_entry(struct kaiocb static void aio_process_rw(struct kaiocb *job); static void aio_process_sync(struct kaiocb *job); static void aio_process_mlock(struct kaiocb *job); +static void aio_schedule_fsync(void *context, int pending); static int aio_newproc(int *); int aio_aqueue(struct thread *td, struct aiocb *ujob, struct aioliojob *lio, int type, struct aiocb_ops *ops); +static int aio_queue_file(struct file *fp, struct kaiocb *job); static void aio_physwakeup(struct bio *bp); static void aio_proc_rundown(void *arg, struct proc *p); static void aio_proc_rundown_exec(void *arg, struct proc *p, struct image_params *imgp); static int aio_qphysio(struct proc *p, struct kaiocb *job); static void aio_daemon(void *param); -static void aio_swake_cb(struct socket *, struct sockbuf *); -static int aio_unload(void); -static void aio_bio_done_notify(struct proc *userp, struct kaiocb *job, - int type); -#define DONE_BUF 1 -#define DONE_QUEUE 2 +static void aio_bio_done_notify(struct proc *userp, struct kaiocb *job); static int aio_kick(struct proc *userp); static void aio_kick_nowait(struct proc *userp); static void aio_kick_helper(void *context, int pending); @@ -397,13 +353,10 @@ aio_modload(struct module *module, int c case MOD_LOAD: aio_onceonly(); break; - case MOD_UNLOAD: - error = aio_unload(); - break; case MOD_SHUTDOWN: break; default: - error = EINVAL; + error = EOPNOTSUPP; break; } return (error); @@ -471,8 +424,6 @@ aio_onceonly(void) { int error; - /* XXX: should probably just use so->callback */ - aio_swake = &aio_swake_cb; exit_tag = EVENTHANDLER_REGISTER(process_exit, aio_proc_rundown, NULL, EVENTHANDLER_PRI_ANY); exec_tag = EVENTHANDLER_REGISTER(process_exec, aio_proc_rundown_exec, @@ -513,55 +464,6 @@ aio_onceonly(void) } /* - * Callback for unload of AIO when used as a module. - */ -static int -aio_unload(void) -{ - int error; - - /* - * XXX: no unloads by default, it's too dangerous. - * perhaps we could do it if locked out callers and then - * did an aio_proc_rundown() on each process. - * - * jhb: aio_proc_rundown() needs to run on curproc though, - * so I don't think that would fly. - */ - if (!unloadable) - return (EOPNOTSUPP); - -#ifdef COMPAT_FREEBSD32 - syscall32_helper_unregister(aio32_syscalls); -#endif - syscall_helper_unregister(aio_syscalls); - - error = kqueue_del_filteropts(EVFILT_AIO); - if (error) - return error; - error = kqueue_del_filteropts(EVFILT_LIO); - if (error) - return error; - async_io_version = 0; - aio_swake = NULL; - taskqueue_free(taskqueue_aiod_kick); - delete_unrhdr(aiod_unr); - uma_zdestroy(kaio_zone); - uma_zdestroy(aiop_zone); - uma_zdestroy(aiocb_zone); - uma_zdestroy(aiol_zone); - uma_zdestroy(aiolio_zone); - EVENTHANDLER_DEREGISTER(process_exit, exit_tag); - EVENTHANDLER_DEREGISTER(process_exec, exec_tag); - mtx_destroy(&aio_job_mtx); - sema_destroy(&aio_newproc_sem); - p31b_setcfg(CTL_P1003_1B_AIO_LISTIO_MAX, -1); - p31b_setcfg(CTL_P1003_1B_AIO_MAX, -1); - p31b_setcfg(CTL_P1003_1B_AIO_PRIO_DELTA_MAX, -1); - return (0); -} - -/* * Init the per-process aioinfo structure. The aioinfo limits are set * per-process for user limit (resource) management. */ @@ -582,10 +484,11 @@ aio_init_aioinfo(struct proc *p) TAILQ_INIT(&ki->kaio_all); TAILQ_INIT(&ki->kaio_done); TAILQ_INIT(&ki->kaio_jobqueue); - TAILQ_INIT(&ki->kaio_bufqueue); TAILQ_INIT(&ki->kaio_liojoblist); TAILQ_INIT(&ki->kaio_syncqueue); + TAILQ_INIT(&ki->kaio_syncready); TASK_INIT(&ki->kaio_task, 0, aio_kick_helper, p); + TASK_INIT(&ki->kaio_sync_task, 0, aio_schedule_fsync, ki); PROC_LOCK(p); if (p->p_aioinfo == NULL) { p->p_aioinfo = ki; @@ -637,7 +540,7 @@ aio_free_entry(struct kaiocb *job) MPASS(ki != NULL); AIO_LOCK_ASSERT(ki, MA_OWNED); - MPASS(job->jobstate == JOBST_JOBFINISHED); + MPASS(job->jobflags & KAIOCB_FINISHED); atomic_subtract_int(&num_queue_count, 1); @@ -670,7 +573,6 @@ aio_free_entry(struct kaiocb *job) PROC_UNLOCK(p); MPASS(job->bp == NULL); - job->jobstate = JOBST_NULL; AIO_UNLOCK(ki); /* @@ -709,6 +611,57 @@ aio_proc_rundown_exec(void *arg, struct aio_proc_rundown(arg, p); } +static int +aio_cancel_job(struct proc *p, struct kaioinfo *ki, struct kaiocb *job) +{ + aio_cancel_fn_t *func; + int cancelled; + + AIO_LOCK_ASSERT(ki, MA_OWNED); + if (job->jobflags & (KAIOCB_CANCELLED | KAIOCB_FINISHED)) + return (0); + MPASS((job->jobflags & KAIOCB_CANCELLING) == 0); + job->jobflags |= KAIOCB_CANCELLED; + + func = job->cancel_fn; + + /* + * If there is no cancel routine, just leave the job marked as + * cancelled. The job should be in active use by a caller who + * should complete it normally or when it fails to install a + * cancel routine. + */ + if (func == NULL) + return (0); + + /* + * Set the CANCELLING flag so that aio_complete() will defer + * completions of this job. This prevents the job from being + * freed out from under the cancel callback. After the + * callback any deferred completion (whether from the callback + * or any other source) will be completed. + */ + job->jobflags |= KAIOCB_CANCELLING; + AIO_UNLOCK(ki); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Mar 1 19:15:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83B53AC0E67; Tue, 1 Mar 2016 19:15:35 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 54D8110C0; Tue, 1 Mar 2016 19:15:35 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21JFYUB090140; Tue, 1 Mar 2016 19:15:34 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21JFY2W090139; Tue, 1 Mar 2016 19:15:34 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603011915.u21JFY2W090139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 1 Mar 2016 19:15:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296278 - head/lib/libc/locale X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 19:15:35 -0000 Author: pfg Date: Tue Mar 1 19:15:34 2016 New Revision: 296278 URL: https://svnweb.freebsd.org/changeset/base/296278 Log: mbtowc(3): set errno to EILSEQ if an incomplete character is passed. According to POSIX, The mbtowc() function shall fail if: [EILSEQ] An invalid character sequence is detected. Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D5496 Obtained from: OpenBSD (Ingo Schwarze) MFC after: 1 month Modified: head/lib/libc/locale/mbtowc.c Modified: head/lib/libc/locale/mbtowc.c ============================================================================== --- head/lib/libc/locale/mbtowc.c Tue Mar 1 18:12:14 2016 (r296277) +++ head/lib/libc/locale/mbtowc.c Tue Mar 1 19:15:34 2016 (r296278) @@ -32,6 +32,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include "mblocal.h" @@ -49,9 +50,15 @@ mbtowc_l(wchar_t * __restrict pwc, const return (0); } rval = XLOCALE_CTYPE(locale)->__mbrtowc(pwc, s, n, &locale->mbtowc); - if (rval == (size_t)-1 || rval == (size_t)-2) + switch (rval) { + case (size_t)-2: + errno = EILSEQ; + /* FALLTHROUGH */ + case (size_t)-1: return (-1); - return ((int)rval); + default: + return ((int)rval); + } } int mbtowc(wchar_t * __restrict pwc, const char * __restrict s, size_t n) From owner-svn-src-head@freebsd.org Tue Mar 1 22:08:31 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C4F4AC0FBB; Tue, 1 Mar 2016 22:08:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 221E71996; Tue, 1 Mar 2016 22:08:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21M8UL8041569; Tue, 1 Mar 2016 22:08:30 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21M8Sk2041551; Tue, 1 Mar 2016 22:08:28 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201603012208.u21M8Sk2041551@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 1 Mar 2016 22:08:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296279 - in head: crypto/openssl crypto/openssl/apps crypto/openssl/crypto crypto/openssl/crypto/asn1 crypto/openssl/crypto/bio crypto/openssl/crypto/bn crypto/openssl/crypto/bn/asm cr... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:08:31 -0000 Author: jkim Date: Tue Mar 1 22:08:28 2016 New Revision: 296279 URL: https://svnweb.freebsd.org/changeset/base/296279 Log: Merge OpenSSL 1.0.2g. Relnotes: yes Added: head/crypto/openssl/ssl/sslv2conftest.c - copied unchanged from r296273, vendor-crypto/openssl/dist/ssl/sslv2conftest.c Modified: head/crypto/openssl/CHANGES head/crypto/openssl/Configure head/crypto/openssl/Makefile head/crypto/openssl/Makefile.shared head/crypto/openssl/NEWS head/crypto/openssl/README head/crypto/openssl/apps/apps.c head/crypto/openssl/apps/apps.h head/crypto/openssl/apps/pkeyutl.c head/crypto/openssl/apps/req.c head/crypto/openssl/apps/rsautl.c head/crypto/openssl/apps/s_client.c head/crypto/openssl/apps/s_server.c head/crypto/openssl/config head/crypto/openssl/crypto/asn1/tasn_dec.c head/crypto/openssl/crypto/bio/b_print.c head/crypto/openssl/crypto/bio/bio.h head/crypto/openssl/crypto/bio/bss_mem.c head/crypto/openssl/crypto/bn/Makefile head/crypto/openssl/crypto/bn/asm/rsaz-avx2.pl head/crypto/openssl/crypto/bn/asm/rsaz-x86_64.pl head/crypto/openssl/crypto/bn/asm/x86_64-mont.pl head/crypto/openssl/crypto/bn/asm/x86_64-mont5.pl head/crypto/openssl/crypto/bn/bn.h head/crypto/openssl/crypto/bn/bn_exp.c head/crypto/openssl/crypto/bn/bn_print.c head/crypto/openssl/crypto/bn/bn_recp.c head/crypto/openssl/crypto/cmac/cmac.c head/crypto/openssl/crypto/cryptlib.c head/crypto/openssl/crypto/crypto.h head/crypto/openssl/crypto/dh/dh.h head/crypto/openssl/crypto/dh/dh_check.c head/crypto/openssl/crypto/dsa/dsa_ameth.c head/crypto/openssl/crypto/dso/dso_lib.c head/crypto/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl head/crypto/openssl/crypto/ec/ecp_nistp224.c head/crypto/openssl/crypto/ec/ecp_nistp256.c head/crypto/openssl/crypto/ec/ecp_nistp521.c head/crypto/openssl/crypto/ec/ectest.c head/crypto/openssl/crypto/engine/eng_dyn.c head/crypto/openssl/crypto/evp/e_des.c head/crypto/openssl/crypto/evp/e_des3.c head/crypto/openssl/crypto/modes/asm/aesni-gcm-x86_64.pl head/crypto/openssl/crypto/modes/asm/ghash-x86_64.pl head/crypto/openssl/crypto/modes/ctr128.c head/crypto/openssl/crypto/opensslconf.h head/crypto/openssl/crypto/opensslv.h head/crypto/openssl/crypto/perlasm/x86_64-xlate.pl head/crypto/openssl/crypto/pkcs7/pk7_smime.c head/crypto/openssl/crypto/rsa/rsa_sign.c head/crypto/openssl/crypto/srp/srp.h head/crypto/openssl/crypto/srp/srp_vfy.c head/crypto/openssl/crypto/stack/stack.c head/crypto/openssl/crypto/x509/x509_vfy.c head/crypto/openssl/doc/apps/ciphers.pod head/crypto/openssl/doc/apps/pkeyutl.pod head/crypto/openssl/doc/apps/req.pod head/crypto/openssl/doc/apps/s_client.pod head/crypto/openssl/doc/apps/s_server.pod head/crypto/openssl/doc/crypto/BIO_s_mem.pod head/crypto/openssl/doc/ssl/SSL_CONF_cmd.pod head/crypto/openssl/doc/ssl/SSL_CTX_new.pod head/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod head/crypto/openssl/doc/ssl/ssl.pod head/crypto/openssl/engines/e_capi.c head/crypto/openssl/ssl/Makefile head/crypto/openssl/ssl/s2_lib.c head/crypto/openssl/ssl/s3_lib.c head/crypto/openssl/ssl/ssl.h head/crypto/openssl/ssl/ssl_conf.c head/crypto/openssl/ssl/ssl_err.c head/crypto/openssl/ssl/ssl_lib.c head/crypto/openssl/util/libeay.num head/crypto/openssl/util/mk1mf.pl head/crypto/openssl/util/pl/BC-32.pl head/crypto/openssl/util/pl/Mingw32.pl head/crypto/openssl/util/pl/OS2-EMX.pl head/crypto/openssl/util/pl/VC-32.pl head/crypto/openssl/util/pl/linux.pl head/crypto/openssl/util/pl/netware.pl head/crypto/openssl/util/pl/ultrix.pl head/crypto/openssl/util/pl/unix.pl head/secure/lib/libcrypto/Makefile.inc head/secure/lib/libcrypto/amd64/aes-x86_64.S head/secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S head/secure/lib/libcrypto/amd64/aesni-x86_64.S head/secure/lib/libcrypto/amd64/bsaes-x86_64.S head/secure/lib/libcrypto/amd64/cmll-x86_64.S head/secure/lib/libcrypto/amd64/ecp_nistz256-x86_64.S head/secure/lib/libcrypto/amd64/ghash-x86_64.S head/secure/lib/libcrypto/amd64/md5-x86_64.S head/secure/lib/libcrypto/amd64/rsaz-x86_64.S head/secure/lib/libcrypto/amd64/sha1-mb-x86_64.S head/secure/lib/libcrypto/amd64/sha1-x86_64.S head/secure/lib/libcrypto/amd64/sha256-mb-x86_64.S head/secure/lib/libcrypto/amd64/sha256-x86_64.S head/secure/lib/libcrypto/amd64/vpaes-x86_64.S head/secure/lib/libcrypto/amd64/x86_64-gf2m.S head/secure/lib/libcrypto/amd64/x86_64-mont.S head/secure/lib/libcrypto/amd64/x86_64-mont5.S head/secure/lib/libcrypto/amd64/x86_64cpuid.S head/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 head/secure/lib/libcrypto/man/ASN1_STRING_length.3 head/secure/lib/libcrypto/man/ASN1_STRING_new.3 head/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 head/secure/lib/libcrypto/man/ASN1_TIME_set.3 head/secure/lib/libcrypto/man/ASN1_generate_nconf.3 head/secure/lib/libcrypto/man/BIO_ctrl.3 head/secure/lib/libcrypto/man/BIO_f_base64.3 head/secure/lib/libcrypto/man/BIO_f_buffer.3 head/secure/lib/libcrypto/man/BIO_f_cipher.3 head/secure/lib/libcrypto/man/BIO_f_md.3 head/secure/lib/libcrypto/man/BIO_f_null.3 head/secure/lib/libcrypto/man/BIO_f_ssl.3 head/secure/lib/libcrypto/man/BIO_find_type.3 head/secure/lib/libcrypto/man/BIO_new.3 head/secure/lib/libcrypto/man/BIO_new_CMS.3 head/secure/lib/libcrypto/man/BIO_push.3 head/secure/lib/libcrypto/man/BIO_read.3 head/secure/lib/libcrypto/man/BIO_s_accept.3 head/secure/lib/libcrypto/man/BIO_s_bio.3 head/secure/lib/libcrypto/man/BIO_s_connect.3 head/secure/lib/libcrypto/man/BIO_s_fd.3 head/secure/lib/libcrypto/man/BIO_s_file.3 head/secure/lib/libcrypto/man/BIO_s_mem.3 head/secure/lib/libcrypto/man/BIO_s_null.3 head/secure/lib/libcrypto/man/BIO_s_socket.3 head/secure/lib/libcrypto/man/BIO_set_callback.3 head/secure/lib/libcrypto/man/BIO_should_retry.3 head/secure/lib/libcrypto/man/BN_BLINDING_new.3 head/secure/lib/libcrypto/man/BN_CTX_new.3 head/secure/lib/libcrypto/man/BN_CTX_start.3 head/secure/lib/libcrypto/man/BN_add.3 head/secure/lib/libcrypto/man/BN_add_word.3 head/secure/lib/libcrypto/man/BN_bn2bin.3 head/secure/lib/libcrypto/man/BN_cmp.3 head/secure/lib/libcrypto/man/BN_copy.3 head/secure/lib/libcrypto/man/BN_generate_prime.3 head/secure/lib/libcrypto/man/BN_mod_inverse.3 head/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 head/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 head/secure/lib/libcrypto/man/BN_new.3 head/secure/lib/libcrypto/man/BN_num_bytes.3 head/secure/lib/libcrypto/man/BN_rand.3 head/secure/lib/libcrypto/man/BN_set_bit.3 head/secure/lib/libcrypto/man/BN_swap.3 head/secure/lib/libcrypto/man/BN_zero.3 head/secure/lib/libcrypto/man/CMS_add0_cert.3 head/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 head/secure/lib/libcrypto/man/CMS_add1_signer.3 head/secure/lib/libcrypto/man/CMS_compress.3 head/secure/lib/libcrypto/man/CMS_decrypt.3 head/secure/lib/libcrypto/man/CMS_encrypt.3 head/secure/lib/libcrypto/man/CMS_final.3 head/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 head/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 head/secure/lib/libcrypto/man/CMS_get0_type.3 head/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 head/secure/lib/libcrypto/man/CMS_sign.3 head/secure/lib/libcrypto/man/CMS_sign_receipt.3 head/secure/lib/libcrypto/man/CMS_uncompress.3 head/secure/lib/libcrypto/man/CMS_verify.3 head/secure/lib/libcrypto/man/CMS_verify_receipt.3 head/secure/lib/libcrypto/man/CONF_modules_free.3 head/secure/lib/libcrypto/man/CONF_modules_load_file.3 head/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 head/secure/lib/libcrypto/man/DH_generate_key.3 head/secure/lib/libcrypto/man/DH_generate_parameters.3 head/secure/lib/libcrypto/man/DH_get_ex_new_index.3 head/secure/lib/libcrypto/man/DH_new.3 head/secure/lib/libcrypto/man/DH_set_method.3 head/secure/lib/libcrypto/man/DH_size.3 head/secure/lib/libcrypto/man/DSA_SIG_new.3 head/secure/lib/libcrypto/man/DSA_do_sign.3 head/secure/lib/libcrypto/man/DSA_dup_DH.3 head/secure/lib/libcrypto/man/DSA_generate_key.3 head/secure/lib/libcrypto/man/DSA_generate_parameters.3 head/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 head/secure/lib/libcrypto/man/DSA_new.3 head/secure/lib/libcrypto/man/DSA_set_method.3 head/secure/lib/libcrypto/man/DSA_sign.3 head/secure/lib/libcrypto/man/DSA_size.3 head/secure/lib/libcrypto/man/EC_GFp_simple_method.3 head/secure/lib/libcrypto/man/EC_GROUP_copy.3 head/secure/lib/libcrypto/man/EC_GROUP_new.3 head/secure/lib/libcrypto/man/EC_KEY_new.3 head/secure/lib/libcrypto/man/EC_POINT_add.3 head/secure/lib/libcrypto/man/EC_POINT_new.3 head/secure/lib/libcrypto/man/ERR_GET_LIB.3 head/secure/lib/libcrypto/man/ERR_clear_error.3 head/secure/lib/libcrypto/man/ERR_error_string.3 head/secure/lib/libcrypto/man/ERR_get_error.3 head/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 head/secure/lib/libcrypto/man/ERR_load_strings.3 head/secure/lib/libcrypto/man/ERR_print_errors.3 head/secure/lib/libcrypto/man/ERR_put_error.3 head/secure/lib/libcrypto/man/ERR_remove_state.3 head/secure/lib/libcrypto/man/ERR_set_mark.3 head/secure/lib/libcrypto/man/EVP_BytesToKey.3 head/secure/lib/libcrypto/man/EVP_DigestInit.3 head/secure/lib/libcrypto/man/EVP_DigestSignInit.3 head/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 head/secure/lib/libcrypto/man/EVP_EncryptInit.3 head/secure/lib/libcrypto/man/EVP_OpenInit.3 head/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 head/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 head/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 head/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 head/secure/lib/libcrypto/man/EVP_PKEY_derive.3 head/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 head/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3 head/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 head/secure/lib/libcrypto/man/EVP_PKEY_new.3 head/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 head/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 head/secure/lib/libcrypto/man/EVP_PKEY_sign.3 head/secure/lib/libcrypto/man/EVP_PKEY_verify.3 head/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3 head/secure/lib/libcrypto/man/EVP_SealInit.3 head/secure/lib/libcrypto/man/EVP_SignInit.3 head/secure/lib/libcrypto/man/EVP_VerifyInit.3 head/secure/lib/libcrypto/man/OBJ_nid2obj.3 head/secure/lib/libcrypto/man/OPENSSL_Applink.3 head/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 head/secure/lib/libcrypto/man/OPENSSL_config.3 head/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 head/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3 head/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 head/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 head/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 head/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 head/secure/lib/libcrypto/man/PKCS12_create.3 head/secure/lib/libcrypto/man/PKCS12_parse.3 head/secure/lib/libcrypto/man/PKCS7_decrypt.3 head/secure/lib/libcrypto/man/PKCS7_encrypt.3 head/secure/lib/libcrypto/man/PKCS7_sign.3 head/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 head/secure/lib/libcrypto/man/PKCS7_verify.3 head/secure/lib/libcrypto/man/RAND_add.3 head/secure/lib/libcrypto/man/RAND_bytes.3 head/secure/lib/libcrypto/man/RAND_cleanup.3 head/secure/lib/libcrypto/man/RAND_egd.3 head/secure/lib/libcrypto/man/RAND_load_file.3 head/secure/lib/libcrypto/man/RAND_set_rand_method.3 head/secure/lib/libcrypto/man/RSA_blinding_on.3 head/secure/lib/libcrypto/man/RSA_check_key.3 head/secure/lib/libcrypto/man/RSA_generate_key.3 head/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 head/secure/lib/libcrypto/man/RSA_new.3 head/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 head/secure/lib/libcrypto/man/RSA_print.3 head/secure/lib/libcrypto/man/RSA_private_encrypt.3 head/secure/lib/libcrypto/man/RSA_public_encrypt.3 head/secure/lib/libcrypto/man/RSA_set_method.3 head/secure/lib/libcrypto/man/RSA_sign.3 head/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 head/secure/lib/libcrypto/man/RSA_size.3 head/secure/lib/libcrypto/man/SMIME_read_CMS.3 head/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 head/secure/lib/libcrypto/man/SMIME_write_CMS.3 head/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 head/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 head/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 head/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 head/secure/lib/libcrypto/man/X509_NAME_print_ex.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 head/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 head/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 head/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 head/secure/lib/libcrypto/man/X509_check_host.3 head/secure/lib/libcrypto/man/X509_new.3 head/secure/lib/libcrypto/man/X509_verify_cert.3 head/secure/lib/libcrypto/man/bio.3 head/secure/lib/libcrypto/man/blowfish.3 head/secure/lib/libcrypto/man/bn.3 head/secure/lib/libcrypto/man/bn_internal.3 head/secure/lib/libcrypto/man/buffer.3 head/secure/lib/libcrypto/man/crypto.3 head/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 head/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3 head/secure/lib/libcrypto/man/d2i_DHparams.3 head/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 head/secure/lib/libcrypto/man/d2i_ECPKParameters.3 head/secure/lib/libcrypto/man/d2i_ECPrivateKey.3 head/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 head/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 head/secure/lib/libcrypto/man/d2i_X509.3 head/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 head/secure/lib/libcrypto/man/d2i_X509_CRL.3 head/secure/lib/libcrypto/man/d2i_X509_NAME.3 head/secure/lib/libcrypto/man/d2i_X509_REQ.3 head/secure/lib/libcrypto/man/d2i_X509_SIG.3 head/secure/lib/libcrypto/man/des.3 head/secure/lib/libcrypto/man/dh.3 head/secure/lib/libcrypto/man/dsa.3 head/secure/lib/libcrypto/man/ec.3 head/secure/lib/libcrypto/man/ecdsa.3 head/secure/lib/libcrypto/man/engine.3 head/secure/lib/libcrypto/man/err.3 head/secure/lib/libcrypto/man/evp.3 head/secure/lib/libcrypto/man/hmac.3 head/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 head/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 head/secure/lib/libcrypto/man/lh_stats.3 head/secure/lib/libcrypto/man/lhash.3 head/secure/lib/libcrypto/man/md5.3 head/secure/lib/libcrypto/man/mdc2.3 head/secure/lib/libcrypto/man/pem.3 head/secure/lib/libcrypto/man/rand.3 head/secure/lib/libcrypto/man/rc4.3 head/secure/lib/libcrypto/man/ripemd.3 head/secure/lib/libcrypto/man/rsa.3 head/secure/lib/libcrypto/man/sha.3 head/secure/lib/libcrypto/man/threads.3 head/secure/lib/libcrypto/man/ui.3 head/secure/lib/libcrypto/man/ui_compat.3 head/secure/lib/libcrypto/man/x509.3 head/secure/lib/libcrypto/opensslconf-aarch64.h head/secure/lib/libcrypto/opensslconf-arm.h head/secure/lib/libcrypto/opensslconf-mips.h head/secure/lib/libcrypto/opensslconf-powerpc.h head/secure/lib/libcrypto/opensslconf-riscv.h head/secure/lib/libcrypto/opensslconf-sparc64.h head/secure/lib/libcrypto/opensslconf-x86.h head/secure/lib/libssl/Makefile.man head/secure/lib/libssl/man/SSL_CIPHER_get_name.3 head/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 head/secure/lib/libssl/man/SSL_CONF_CTX_new.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set1_prefix.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set_flags.3 head/secure/lib/libssl/man/SSL_CONF_CTX_set_ssl_ctx.3 head/secure/lib/libssl/man/SSL_CONF_cmd.3 head/secure/lib/libssl/man/SSL_CONF_cmd_argv.3 head/secure/lib/libssl/man/SSL_CTX_add1_chain_cert.3 head/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 head/secure/lib/libssl/man/SSL_CTX_add_session.3 head/secure/lib/libssl/man/SSL_CTX_ctrl.3 head/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 head/secure/lib/libssl/man/SSL_CTX_free.3 head/secure/lib/libssl/man/SSL_CTX_get0_param.3 head/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 head/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 head/secure/lib/libssl/man/SSL_CTX_new.3 head/secure/lib/libssl/man/SSL_CTX_sess_number.3 head/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 head/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 head/secure/lib/libssl/man/SSL_CTX_sessions.3 head/secure/lib/libssl/man/SSL_CTX_set1_curves.3 head/secure/lib/libssl/man/SSL_CTX_set1_verify_cert_store.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 head/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 head/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 head/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_custom_cli_ext.3 head/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 head/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 head/secure/lib/libssl/man/SSL_CTX_set_mode.3 head/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_options.3 head/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 head/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3 head/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 head/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 head/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 head/secure/lib/libssl/man/SSL_CTX_set_timeout.3 head/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3 head/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 head/secure/lib/libssl/man/SSL_CTX_set_verify.3 head/secure/lib/libssl/man/SSL_CTX_use_certificate.3 head/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3 head/secure/lib/libssl/man/SSL_CTX_use_serverinfo.3 head/secure/lib/libssl/man/SSL_SESSION_free.3 head/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_SESSION_get_time.3 head/secure/lib/libssl/man/SSL_accept.3 head/secure/lib/libssl/man/SSL_alert_type_string.3 head/secure/lib/libssl/man/SSL_check_chain.3 head/secure/lib/libssl/man/SSL_clear.3 head/secure/lib/libssl/man/SSL_connect.3 head/secure/lib/libssl/man/SSL_do_handshake.3 head/secure/lib/libssl/man/SSL_free.3 head/secure/lib/libssl/man/SSL_get_SSL_CTX.3 head/secure/lib/libssl/man/SSL_get_ciphers.3 head/secure/lib/libssl/man/SSL_get_client_CA_list.3 head/secure/lib/libssl/man/SSL_get_current_cipher.3 head/secure/lib/libssl/man/SSL_get_default_timeout.3 head/secure/lib/libssl/man/SSL_get_error.3 head/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 head/secure/lib/libssl/man/SSL_get_ex_new_index.3 head/secure/lib/libssl/man/SSL_get_fd.3 head/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 head/secure/lib/libssl/man/SSL_get_peer_certificate.3 head/secure/lib/libssl/man/SSL_get_psk_identity.3 head/secure/lib/libssl/man/SSL_get_rbio.3 head/secure/lib/libssl/man/SSL_get_session.3 head/secure/lib/libssl/man/SSL_get_verify_result.3 head/secure/lib/libssl/man/SSL_get_version.3 head/secure/lib/libssl/man/SSL_library_init.3 head/secure/lib/libssl/man/SSL_load_client_CA_file.3 head/secure/lib/libssl/man/SSL_new.3 head/secure/lib/libssl/man/SSL_pending.3 head/secure/lib/libssl/man/SSL_read.3 head/secure/lib/libssl/man/SSL_rstate_string.3 head/secure/lib/libssl/man/SSL_session_reused.3 head/secure/lib/libssl/man/SSL_set_bio.3 head/secure/lib/libssl/man/SSL_set_connect_state.3 head/secure/lib/libssl/man/SSL_set_fd.3 head/secure/lib/libssl/man/SSL_set_session.3 head/secure/lib/libssl/man/SSL_set_shutdown.3 head/secure/lib/libssl/man/SSL_set_verify_result.3 head/secure/lib/libssl/man/SSL_shutdown.3 head/secure/lib/libssl/man/SSL_state_string.3 head/secure/lib/libssl/man/SSL_want.3 head/secure/lib/libssl/man/SSL_write.3 head/secure/lib/libssl/man/d2i_SSL_SESSION.3 head/secure/lib/libssl/man/ssl.3 head/secure/usr.bin/openssl/man/CA.pl.1 head/secure/usr.bin/openssl/man/asn1parse.1 head/secure/usr.bin/openssl/man/c_rehash.1 head/secure/usr.bin/openssl/man/ca.1 head/secure/usr.bin/openssl/man/ciphers.1 head/secure/usr.bin/openssl/man/cms.1 head/secure/usr.bin/openssl/man/crl.1 head/secure/usr.bin/openssl/man/crl2pkcs7.1 head/secure/usr.bin/openssl/man/dgst.1 head/secure/usr.bin/openssl/man/dhparam.1 head/secure/usr.bin/openssl/man/dsa.1 head/secure/usr.bin/openssl/man/dsaparam.1 head/secure/usr.bin/openssl/man/ec.1 head/secure/usr.bin/openssl/man/ecparam.1 head/secure/usr.bin/openssl/man/enc.1 head/secure/usr.bin/openssl/man/errstr.1 head/secure/usr.bin/openssl/man/gendsa.1 head/secure/usr.bin/openssl/man/genpkey.1 head/secure/usr.bin/openssl/man/genrsa.1 head/secure/usr.bin/openssl/man/nseq.1 head/secure/usr.bin/openssl/man/ocsp.1 head/secure/usr.bin/openssl/man/openssl.1 head/secure/usr.bin/openssl/man/passwd.1 head/secure/usr.bin/openssl/man/pkcs12.1 head/secure/usr.bin/openssl/man/pkcs7.1 head/secure/usr.bin/openssl/man/pkcs8.1 head/secure/usr.bin/openssl/man/pkey.1 head/secure/usr.bin/openssl/man/pkeyparam.1 head/secure/usr.bin/openssl/man/pkeyutl.1 head/secure/usr.bin/openssl/man/rand.1 head/secure/usr.bin/openssl/man/req.1 head/secure/usr.bin/openssl/man/rsa.1 head/secure/usr.bin/openssl/man/rsautl.1 head/secure/usr.bin/openssl/man/s_client.1 head/secure/usr.bin/openssl/man/s_server.1 head/secure/usr.bin/openssl/man/s_time.1 head/secure/usr.bin/openssl/man/sess_id.1 head/secure/usr.bin/openssl/man/smime.1 head/secure/usr.bin/openssl/man/speed.1 head/secure/usr.bin/openssl/man/spkac.1 head/secure/usr.bin/openssl/man/ts.1 head/secure/usr.bin/openssl/man/tsget.1 head/secure/usr.bin/openssl/man/verify.1 head/secure/usr.bin/openssl/man/version.1 head/secure/usr.bin/openssl/man/x509.1 head/secure/usr.bin/openssl/man/x509v3_config.1 Directory Properties: head/crypto/openssl/ (props changed) Modified: head/crypto/openssl/CHANGES ============================================================================== --- head/crypto/openssl/CHANGES Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/CHANGES Tue Mar 1 22:08:28 2016 (r296279) @@ -2,6 +2,138 @@ OpenSSL CHANGES _______________ + Changes between 1.0.2f and 1.0.2g [1 Mar 2016] + + * Disable weak ciphers in SSLv3 and up in default builds of OpenSSL. + Builds that are not configured with "enable-weak-ssl-ciphers" will not + provide any "EXPORT" or "LOW" strength ciphers. + [Viktor Dukhovni] + + * Disable SSLv2 default build, default negotiation and weak ciphers. SSLv2 + is by default disabled at build-time. Builds that are not configured with + "enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used, + users who want to negotiate SSLv2 via the version-flexible SSLv23_method() + will need to explicitly call either of: + + SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2); + or + SSL_clear_options(ssl, SSL_OP_NO_SSLv2); + + as appropriate. Even if either of those is used, or the application + explicitly uses the version-specific SSLv2_method() or its client and + server variants, SSLv2 ciphers vulnerable to exhaustive search key + recovery have been removed. Specifically, the SSLv2 40-bit EXPORT + ciphers, and SSLv2 56-bit DES are no longer available. + (CVE-2016-0800) + [Viktor Dukhovni] + + *) Fix a double-free in DSA code + + A double free bug was discovered when OpenSSL parses malformed DSA private + keys and could lead to a DoS attack or memory corruption for applications + that receive DSA private keys from untrusted sources. This scenario is + considered rare. + + This issue was reported to OpenSSL by Adam Langley(Google/BoringSSL) using + libFuzzer. + (CVE-2016-0705) + [Stephen Henson] + + *) Disable SRP fake user seed to address a server memory leak. + + Add a new method SRP_VBASE_get1_by_user that handles the seed properly. + + SRP_VBASE_get_by_user had inconsistent memory management behaviour. + In order to fix an unavoidable memory leak, SRP_VBASE_get_by_user + was changed to ignore the "fake user" SRP seed, even if the seed + is configured. + + Users should use SRP_VBASE_get1_by_user instead. Note that in + SRP_VBASE_get1_by_user, caller must free the returned value. Note + also that even though configuring the SRP seed attempts to hide + invalid usernames by continuing the handshake with fake + credentials, this behaviour is not constant time and no strong + guarantees are made that the handshake is indistinguishable from + that of a valid user. + (CVE-2016-0798) + [Emilia Käsper] + + *) Fix BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption + + In the BN_hex2bn function the number of hex digits is calculated using an + int value |i|. Later |bn_expand| is called with a value of |i * 4|. For + large values of |i| this can result in |bn_expand| not allocating any + memory because |i * 4| is negative. This can leave the internal BIGNUM data + field as NULL leading to a subsequent NULL ptr deref. For very large values + of |i|, the calculation |i * 4| could be a positive value smaller than |i|. + In this case memory is allocated to the internal BIGNUM data field, but it + is insufficiently sized leading to heap corruption. A similar issue exists + in BN_dec2bn. This could have security consequences if BN_hex2bn/BN_dec2bn + is ever called by user applications with very large untrusted hex/dec data. + This is anticipated to be a rare occurrence. + + All OpenSSL internal usage of these functions use data that is not expected + to be untrusted, e.g. config file data or application command line + arguments. If user developed applications generate config file data based + on untrusted data then it is possible that this could also lead to security + consequences. This is also anticipated to be rare. + + This issue was reported to OpenSSL by Guido Vranken. + (CVE-2016-0797) + [Matt Caswell] + + *) Fix memory issues in BIO_*printf functions + + The internal |fmtstr| function used in processing a "%s" format string in + the BIO_*printf functions could overflow while calculating the length of a + string and cause an OOB read when printing very long strings. + + Additionally the internal |doapr_outch| function can attempt to write to an + OOB memory location (at an offset from the NULL pointer) in the event of a + memory allocation failure. In 1.0.2 and below this could be caused where + the size of a buffer to be allocated is greater than INT_MAX. E.g. this + could be in processing a very long "%s" format string. Memory leaks can + also occur. + + The first issue may mask the second issue dependent on compiler behaviour. + These problems could enable attacks where large amounts of untrusted data + is passed to the BIO_*printf functions. If applications use these functions + in this way then they could be vulnerable. OpenSSL itself uses these + functions when printing out human-readable dumps of ASN.1 data. Therefore + applications that print this data could be vulnerable if the data is from + untrusted sources. OpenSSL command line applications could also be + vulnerable where they print out ASN.1 data, or if untrusted data is passed + as command line arguments. + + Libssl is not considered directly vulnerable. Additionally certificates etc + received via remote connections via libssl are also unlikely to be able to + trigger these issues because of message size limits enforced within libssl. + + This issue was reported to OpenSSL Guido Vranken. + (CVE-2016-0799) + [Matt Caswell] + + *) Side channel attack on modular exponentiation + + A side-channel attack was found which makes use of cache-bank conflicts on + the Intel Sandy-Bridge microarchitecture which could lead to the recovery + of RSA keys. The ability to exploit this issue is limited as it relies on + an attacker who has control of code in a thread running on the same + hyper-threaded core as the victim thread which is performing decryptions. + + This issue was reported to OpenSSL by Yuval Yarom, The University of + Adelaide and NICTA, Daniel Genkin, Technion and Tel Aviv University, and + Nadia Heninger, University of Pennsylvania with more information at + http://cachebleed.info. + (CVE-2016-0702) + [Andy Polyakov] + + *) Change the req app to generate a 2048-bit RSA/DSA key by default, + if no keysize is specified with default_bits. This fixes an + omission in an earlier change that changed all RSA/DSA key generation + apps to use 2048 bits by default. + [Emilia Käsper] + Changes between 1.0.2e and 1.0.2f [28 Jan 2016] *) DH small subgroups @@ -105,7 +237,7 @@ [Emilia Käsper] *) In DSA_generate_parameters_ex, if the provided seed is too short, - return an error + use a random seed, as already documented. [Rich Salz and Ismo Puustinen ] Changes between 1.0.2c and 1.0.2d [9 Jul 2015] Modified: head/crypto/openssl/Configure ============================================================================== --- head/crypto/openssl/Configure Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/Configure Tue Mar 1 22:08:28 2016 (r296279) @@ -58,6 +58,10 @@ my $usage="Usage: Configure [no- # library and will be loaded in run-time by the OpenSSL library. # sctp include SCTP support # 386 generate 80386 code +# enable-weak-ssl-ciphers +# Enable EXPORT and LOW SSLv3 ciphers that are disabled by +# default. Note, weak SSLv2 ciphers are unconditionally +# disabled. # no-sse2 disables IA-32 SSE2 code, above option implies no-sse2 # no- build without specified algorithm (rsa, idea, rc5, ...) # - + compiler options are passed through @@ -781,11 +785,13 @@ my %disabled = ( # "what" => "co "md2" => "default", "rc5" => "default", "rfc3779" => "default", - "sctp" => "default", + "sctp" => "default", "shared" => "default", "ssl-trace" => "default", + "ssl2" => "default", "store" => "experimental", "unit-test" => "default", + "weak-ssl-ciphers" => "default", "zlib" => "default", "zlib-dynamic" => "default" ); Modified: head/crypto/openssl/Makefile ============================================================================== --- head/crypto/openssl/Makefile Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/Makefile Tue Mar 1 22:08:28 2016 (r296279) @@ -4,7 +4,7 @@ ## Makefile for OpenSSL ## -VERSION=1.0.2f +VERSION=1.0.2g MAJOR=1 MINOR=0.2 SHLIB_VERSION_NUMBER=1.0.0 @@ -13,7 +13,7 @@ SHLIB_MAJOR=1 SHLIB_MINOR=0.0 SHLIB_EXT= PLATFORM=dist -OPTIONS= no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-libunbound no-md2 no-rc5 no-rfc3779 no-sctp no-shared no-ssl-trace no-store no-unit-test no-zlib no-zlib-dynamic static-engine +OPTIONS= no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-libunbound no-md2 no-rc5 no-rfc3779 no-sctp no-shared no-ssl-trace no-ssl2 no-store no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic static-engine CONFIGURE_ARGS=dist SHLIB_TARGET= @@ -61,7 +61,7 @@ OPENSSLDIR=/usr/local/ssl CC= cc CFLAG= -O -DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST +DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS PEX_LIBS= EX_LIBS= EXE_EXT= Modified: head/crypto/openssl/Makefile.shared ============================================================================== --- head/crypto/openssl/Makefile.shared Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/Makefile.shared Tue Mar 1 22:08:28 2016 (r296279) @@ -272,7 +272,7 @@ link_o.cygwin: SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ ALLSYMSFLAGS='-Wl,--whole-archive'; \ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-s,-Bsymbolic"; \ + SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-Bsymbolic"; \ $(LINK_SO_O) #for mingw target if def-file is in use dll-name should match library-name link_a.cygwin: @@ -289,7 +289,7 @@ link_a.cygwin: SHLIB_SOVER=32; \ extras="$(LIBNAME).def"; \ $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \ - base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \ + base=; [ $(LIBNAME) = "crypto" -a -n "$(FIPSCANLIB)" ] && base=-Wl,--image-base,0x63000000; \ fi; \ dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ $(PERL) util/mkrc.pl $$dll_name | \ @@ -297,7 +297,7 @@ link_a.cygwin: extras="$$extras rc.o"; \ ALLSYMSFLAGS='-Wl,--whole-archive'; \ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \ + SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \ [ -f apps/$$dll_name ] && rm apps/$$dll_name; \ [ -f test/$$dll_name ] && rm test/$$dll_name; \ $(LINK_SO_A) || exit 1; \ Modified: head/crypto/openssl/NEWS ============================================================================== --- head/crypto/openssl/NEWS Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/NEWS Tue Mar 1 22:08:28 2016 (r296279) @@ -5,6 +5,19 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.0.2f and OpenSSL 1.0.2g [1 Mar 2016] + + o Disable weak ciphers in SSLv3 and up in default builds of OpenSSL. + o Disable SSLv2 default build, default negotiation and weak ciphers + (CVE-2016-0800) + o Fix a double-free in DSA code (CVE-2016-0705) + o Disable SRP fake user seed to address a server memory leak + (CVE-2016-0798) + o Fix BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption + (CVE-2016-0797) + o Fix memory issues in BIO_*printf functions (CVE-2016-0799) + o Fix side channel attack on modular exponentiation (CVE-2016-0702) + Major changes between OpenSSL 1.0.2e and OpenSSL 1.0.2f [28 Jan 2016] o DH small subgroups (CVE-2016-0701) Modified: head/crypto/openssl/README ============================================================================== --- head/crypto/openssl/README Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/README Tue Mar 1 22:08:28 2016 (r296279) @@ -1,5 +1,5 @@ - OpenSSL 1.0.2f 28 Jan 2016 + OpenSSL 1.0.2g 1 Mar 2016 Copyright (c) 1998-2015 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Modified: head/crypto/openssl/apps/apps.c ============================================================================== --- head/crypto/openssl/apps/apps.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/apps.c Tue Mar 1 22:08:28 2016 (r296279) @@ -2442,7 +2442,11 @@ int bio_to_mem(unsigned char **out, int else len = 1024; len = BIO_read(in, tbuf, len); - if (len <= 0) + if (len < 0) { + BIO_free(mem); + return -1; + } + if (len == 0) break; if (BIO_write(mem, tbuf, len) != len) { BIO_free(mem); @@ -2459,7 +2463,7 @@ int bio_to_mem(unsigned char **out, int return ret; } -int pkey_ctrl_string(EVP_PKEY_CTX *ctx, char *value) +int pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value) { int rv; char *stmp, *vtmp = NULL; Modified: head/crypto/openssl/apps/apps.h ============================================================================== --- head/crypto/openssl/apps/apps.h Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/apps.h Tue Mar 1 22:08:28 2016 (r296279) @@ -321,7 +321,7 @@ int args_verify(char ***pargs, int *parg int *badarg, BIO *err, X509_VERIFY_PARAM **pm); void policies_print(BIO *out, X509_STORE_CTX *ctx); int bio_to_mem(unsigned char **out, int maxlen, BIO *in); -int pkey_ctrl_string(EVP_PKEY_CTX *ctx, char *value); +int pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value); int init_gen_str(BIO *err, EVP_PKEY_CTX **pctx, const char *algname, ENGINE *e, int do_param); int do_X509_sign(BIO *err, X509 *x, EVP_PKEY *pkey, const EVP_MD *md, Modified: head/crypto/openssl/apps/pkeyutl.c ============================================================================== --- head/crypto/openssl/apps/pkeyutl.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/pkeyutl.c Tue Mar 1 22:08:28 2016 (r296279) @@ -73,7 +73,7 @@ static void usage(void); #define PROG pkeyutl_main static EVP_PKEY_CTX *init_ctx(int *pkeysize, - char *keyfile, int keyform, int key_type, + const char *keyfile, int keyform, int key_type, char *passargin, int pkey_op, ENGINE *e, int impl); @@ -99,10 +99,12 @@ int MAIN(int argc, char **argv) char *passargin = NULL; int keysize = -1; int engine_impl = 0; - unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL; - size_t buf_outlen; + size_t buf_outlen = 0; int buf_inlen = 0, siglen = -1; + const char *inkey = NULL; + const char *peerkey = NULL; + STACK_OF(OPENSSL_STRING) *pkeyopts = NULL; int ret = 1, rv = -1; @@ -136,21 +138,13 @@ int MAIN(int argc, char **argv) } else if (!strcmp(*argv, "-inkey")) { if (--argc < 1) badarg = 1; - else { - ctx = init_ctx(&keysize, - *(++argv), keyform, key_type, - passargin, pkey_op, e, engine_impl); - if (!ctx) { - BIO_puts(bio_err, "Error initializing context\n"); - ERR_print_errors(bio_err); - badarg = 1; - } - } + else + inkey = *++argv; } else if (!strcmp(*argv, "-peerkey")) { if (--argc < 1) badarg = 1; - else if (!setup_peer(bio_err, ctx, peerform, *(++argv), e)) - badarg = 1; + else + peerkey = *++argv; } else if (!strcmp(*argv, "-passin")) { if (--argc < 1) badarg = 1; @@ -191,23 +185,21 @@ int MAIN(int argc, char **argv) pkey_op = EVP_PKEY_OP_VERIFY; else if (!strcmp(*argv, "-verifyrecover")) pkey_op = EVP_PKEY_OP_VERIFYRECOVER; - else if (!strcmp(*argv, "-rev")) - rev = 1; else if (!strcmp(*argv, "-encrypt")) pkey_op = EVP_PKEY_OP_ENCRYPT; else if (!strcmp(*argv, "-decrypt")) pkey_op = EVP_PKEY_OP_DECRYPT; else if (!strcmp(*argv, "-derive")) pkey_op = EVP_PKEY_OP_DERIVE; + else if (!strcmp(*argv, "-rev")) + rev = 1; else if (strcmp(*argv, "-pkeyopt") == 0) { if (--argc < 1) badarg = 1; - else if (!ctx) { - BIO_puts(bio_err, "-pkeyopt command before -inkey\n"); - badarg = 1; - } else if (pkey_ctrl_string(ctx, *(++argv)) <= 0) { - BIO_puts(bio_err, "parameter setting error\n"); - ERR_print_errors(bio_err); + else if ((pkeyopts == NULL && + (pkeyopts = sk_OPENSSL_STRING_new_null()) == NULL) || + sk_OPENSSL_STRING_push(pkeyopts, *++argv) == 0) { + BIO_puts(bio_err, "out of memory\n"); goto end; } } else @@ -220,10 +212,37 @@ int MAIN(int argc, char **argv) argv++; } - if (!ctx) { + if (inkey == NULL || + (peerkey != NULL && pkey_op != EVP_PKEY_OP_DERIVE)) { usage(); goto end; } + ctx = init_ctx(&keysize, inkey, keyform, key_type, + passargin, pkey_op, e, engine_impl); + if (!ctx) { + BIO_puts(bio_err, "Error initializing context\n"); + ERR_print_errors(bio_err); + goto end; + } + if (peerkey != NULL && !setup_peer(bio_err, ctx, peerform, peerkey, e)) { + BIO_puts(bio_err, "Error setting up peer key\n"); + ERR_print_errors(bio_err); + goto end; + } + if (pkeyopts != NULL) { + int num = sk_OPENSSL_STRING_num(pkeyopts); + int i; + + for (i = 0; i < num; ++i) { + const char *opt = sk_OPENSSL_STRING_value(pkeyopts, i); + + if (pkey_ctrl_string(ctx, opt) <= 0) { + BIO_puts(bio_err, "parameter setting error\n"); + ERR_print_errors(bio_err); + goto end; + } + } + } if (sigfile && (pkey_op != EVP_PKEY_OP_VERIFY)) { BIO_puts(bio_err, "Signature file specified for non verify\n"); @@ -273,7 +292,7 @@ int MAIN(int argc, char **argv) } siglen = bio_to_mem(&sig, keysize * 10, sigbio); BIO_free(sigbio); - if (siglen <= 0) { + if (siglen < 0) { BIO_printf(bio_err, "Error reading signature data\n"); goto end; } @@ -282,7 +301,7 @@ int MAIN(int argc, char **argv) if (in) { /* Read the input data */ buf_inlen = bio_to_mem(&buf_in, keysize * 10, in); - if (buf_inlen <= 0) { + if (buf_inlen < 0) { BIO_printf(bio_err, "Error reading input Data\n"); exit(1); } @@ -310,7 +329,7 @@ int MAIN(int argc, char **argv) } else { rv = do_keyop(ctx, pkey_op, NULL, (size_t *)&buf_outlen, buf_in, (size_t)buf_inlen); - if (rv > 0) { + if (rv > 0 && buf_outlen != 0) { buf_out = OPENSSL_malloc(buf_outlen); if (!buf_out) rv = -1; @@ -340,12 +359,14 @@ int MAIN(int argc, char **argv) EVP_PKEY_CTX_free(ctx); BIO_free(in); BIO_free_all(out); - if (buf_in) + if (buf_in != NULL) OPENSSL_free(buf_in); - if (buf_out) + if (buf_out != NULL) OPENSSL_free(buf_out); - if (sig) + if (sig != NULL) OPENSSL_free(sig); + if (pkeyopts != NULL) + sk_OPENSSL_STRING_free(pkeyopts); return ret; } @@ -380,7 +401,7 @@ static void usage() } static EVP_PKEY_CTX *init_ctx(int *pkeysize, - char *keyfile, int keyform, int key_type, + const char *keyfile, int keyform, int key_type, char *passargin, int pkey_op, ENGINE *e, int engine_impl) { @@ -484,14 +505,9 @@ static int setup_peer(BIO *err, EVP_PKEY EVP_PKEY *peer = NULL; ENGINE* engine = NULL; int ret; - if (!ctx) { - BIO_puts(err, "-peerkey command before -inkey\n"); - return 0; - } if (peerform == FORMAT_ENGINE) - engine = e; - + engine = e; peer = load_pubkey(bio_err, file, peerform, 0, NULL, engine, "Peer Key"); if (!peer) { Modified: head/crypto/openssl/apps/req.c ============================================================================== --- head/crypto/openssl/apps/req.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/req.c Tue Mar 1 22:08:28 2016 (r296279) @@ -101,8 +101,8 @@ #define STRING_MASK "string_mask" #define UTF8_IN "utf8" -#define DEFAULT_KEY_LENGTH 512 -#define MIN_KEY_LENGTH 384 +#define DEFAULT_KEY_LENGTH 2048 +#define MIN_KEY_LENGTH 512 #undef PROG #define PROG req_main Modified: head/crypto/openssl/apps/rsautl.c ============================================================================== --- head/crypto/openssl/apps/rsautl.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/rsautl.c Tue Mar 1 22:08:28 2016 (r296279) @@ -250,7 +250,7 @@ int MAIN(int argc, char **argv) if (outfile) { if (!(out = BIO_new_file(outfile, "wb"))) { - BIO_printf(bio_err, "Error Reading Output File\n"); + BIO_printf(bio_err, "Error Writing Output File\n"); ERR_print_errors(bio_err); goto end; } @@ -276,7 +276,7 @@ int MAIN(int argc, char **argv) /* Read the input data */ rsa_inlen = BIO_read(in, rsa_in, keysize * 2); - if (rsa_inlen <= 0) { + if (rsa_inlen < 0) { BIO_printf(bio_err, "Error reading input Data\n"); exit(1); } @@ -311,7 +311,7 @@ int MAIN(int argc, char **argv) } - if (rsa_outlen <= 0) { + if (rsa_outlen < 0) { BIO_printf(bio_err, "RSA operation error\n"); ERR_print_errors(bio_err); goto end; Modified: head/crypto/openssl/apps/s_client.c ============================================================================== --- head/crypto/openssl/apps/s_client.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/s_client.c Tue Mar 1 22:08:28 2016 (r296279) @@ -391,8 +391,6 @@ static void sc_usage(void) BIO_printf(bio_err, " -bugs - Switch on all SSL implementation bug workarounds\n"); BIO_printf(bio_err, - " -serverpref - Use server's cipher preferences (only SSLv2)\n"); - BIO_printf(bio_err, " -cipher - preferred cipher to use, use the 'openssl ciphers'\n"); BIO_printf(bio_err, " command to see what is available\n"); Modified: head/crypto/openssl/apps/s_server.c ============================================================================== --- head/crypto/openssl/apps/s_server.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/apps/s_server.c Tue Mar 1 22:08:28 2016 (r296279) @@ -429,6 +429,8 @@ typedef struct srpsrvparm_st { static int MS_CALLBACK ssl_srp_server_param_cb(SSL *s, int *ad, void *arg) { srpsrvparm *p = (srpsrvparm *) arg; + int ret = SSL3_AL_FATAL; + if (p->login == NULL && p->user == NULL) { p->login = SSL_get_srp_username(s); BIO_printf(bio_err, "SRP username = \"%s\"\n", p->login); @@ -437,21 +439,25 @@ static int MS_CALLBACK ssl_srp_server_pa if (p->user == NULL) { BIO_printf(bio_err, "User %s doesn't exist\n", p->login); - return SSL3_AL_FATAL; + goto err; } + if (SSL_set_srp_server_param (s, p->user->N, p->user->g, p->user->s, p->user->v, p->user->info) < 0) { *ad = SSL_AD_INTERNAL_ERROR; - return SSL3_AL_FATAL; + goto err; } BIO_printf(bio_err, "SRP parameters set: username = \"%s\" info=\"%s\" \n", p->login, p->user->info); - /* need to check whether there are memory leaks */ + ret = SSL_ERROR_NONE; + +err: + SRP_user_pwd_free(p->user); p->user = NULL; p->login = NULL; - return SSL_ERROR_NONE; + return ret; } #endif @@ -2452,9 +2458,10 @@ static int sv_body(char *hostname, int s #ifndef OPENSSL_NO_SRP while (SSL_get_error(con, k) == SSL_ERROR_WANT_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP renego during write\n"); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -2508,9 +2515,10 @@ static int sv_body(char *hostname, int s #ifndef OPENSSL_NO_SRP while (SSL_get_error(con, i) == SSL_ERROR_WANT_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP renego during read\n"); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -2605,9 +2613,10 @@ static int init_ssl_connection(SSL *con) while (i <= 0 && SSL_get_error(con, i) == SSL_ERROR_WANT_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP during accept %s\n", srp_callback_parm.login); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -2849,9 +2858,10 @@ static int www_body(char *hostname, int && SSL_get_error(con, i) == SSL_ERROR_WANT_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP during accept %s\n", srp_callback_parm.login); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -2891,9 +2901,10 @@ static int www_body(char *hostname, int if (BIO_should_io_special(io) && BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP renego during read\n"); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -3236,9 +3247,10 @@ static int rev_body(char *hostname, int if (BIO_should_io_special(io) && BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP renego during accept\n"); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); @@ -3264,9 +3276,10 @@ static int rev_body(char *hostname, int if (BIO_should_io_special(io) && BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) { BIO_printf(bio_s_out, "LOOKUP renego during read\n"); + SRP_user_pwd_free(srp_callback_parm.user); srp_callback_parm.user = - SRP_VBASE_get_by_user(srp_callback_parm.vb, - srp_callback_parm.login); + SRP_VBASE_get1_by_user(srp_callback_parm.vb, + srp_callback_parm.login); if (srp_callback_parm.user) BIO_printf(bio_s_out, "LOOKUP done %s\n", srp_callback_parm.user->info); Modified: head/crypto/openssl/config ============================================================================== --- head/crypto/openssl/config Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/config Tue Mar 1 22:08:28 2016 (r296279) @@ -852,7 +852,8 @@ case "$GUESSOS" in # *-dgux) OUT="dgux" ;; mips-sony-newsos4) OUT="newsos4-gcc" ;; *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;; - *-*-cygwin) OUT="Cygwin" ;; + i[3456]86-*-cygwin) OUT="Cygwin" ;; + *-*-cygwin) OUT="Cygwin-${MACHINE}" ;; t3e-cray-unicosmk) OUT="cray-t3e" ;; j90-cray-unicos) OUT="cray-j90" ;; nsr-tandem-nsk) OUT="tandem-c89" ;; Modified: head/crypto/openssl/crypto/asn1/tasn_dec.c ============================================================================== --- head/crypto/openssl/crypto/asn1/tasn_dec.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/crypto/asn1/tasn_dec.c Tue Mar 1 22:08:28 2016 (r296279) @@ -717,7 +717,7 @@ static int asn1_d2i_ex_primitive(ASN1_VA long plen; char cst, inf, free_cont = 0; const unsigned char *p; - BUF_MEM buf; + BUF_MEM buf = { 0, NULL, 0 }; const unsigned char *cont = NULL; long len; if (!pval) { @@ -793,7 +793,6 @@ static int asn1_d2i_ex_primitive(ASN1_VA } else { len = p - cont + plen; p += plen; - buf.data = NULL; } } else if (cst) { if (utype == V_ASN1_NULL || utype == V_ASN1_BOOLEAN @@ -802,9 +801,9 @@ static int asn1_d2i_ex_primitive(ASN1_VA ASN1err(ASN1_F_ASN1_D2I_EX_PRIMITIVE, ASN1_R_TYPE_NOT_PRIMITIVE); return 0; } - buf.length = 0; - buf.max = 0; - buf.data = NULL; + + /* Free any returned 'buf' content */ + free_cont = 1; /* * Should really check the internal tags are correct but some things * may get this wrong. The relevant specs say that constructed string @@ -812,18 +811,16 @@ static int asn1_d2i_ex_primitive(ASN1_VA * So instead just check for UNIVERSAL class and ignore the tag. */ if (!asn1_collect(&buf, &p, plen, inf, -1, V_ASN1_UNIVERSAL, 0)) { - free_cont = 1; goto err; } len = buf.length; /* Append a final null to string */ if (!BUF_MEM_grow_clean(&buf, len + 1)) { ASN1err(ASN1_F_ASN1_D2I_EX_PRIMITIVE, ERR_R_MALLOC_FAILURE); - return 0; + goto err; } buf.data[len] = 0; cont = (const unsigned char *)buf.data; - free_cont = 1; } else { cont = p; len = plen; @@ -831,6 +828,7 @@ static int asn1_d2i_ex_primitive(ASN1_VA } /* We now have content length and type: translate into a structure */ + /* asn1_ex_c2i may reuse allocated buffer, and so sets free_cont to 0 */ if (!asn1_ex_c2i(pval, cont, len, utype, &free_cont, it)) goto err; Modified: head/crypto/openssl/crypto/bio/b_print.c ============================================================================== --- head/crypto/openssl/crypto/bio/b_print.c Tue Mar 1 19:15:34 2016 (r296278) +++ head/crypto/openssl/crypto/bio/b_print.c Tue Mar 1 22:08:28 2016 (r296279) @@ -125,16 +125,16 @@ # define LLONG long #endif -static void fmtstr(char **, char **, size_t *, size_t *, - const char *, int, int, int); -static void fmtint(char **, char **, size_t *, size_t *, - LLONG, int, int, int, int); -static void fmtfp(char **, char **, size_t *, size_t *, - LDOUBLE, int, int, int); -static void doapr_outch(char **, char **, size_t *, size_t *, int); -static void _dopr(char **sbuffer, char **buffer, - size_t *maxlen, size_t *retlen, int *truncated, - const char *format, va_list args); +static int fmtstr(char **, char **, size_t *, size_t *, + const char *, int, int, int); +static int fmtint(char **, char **, size_t *, size_t *, + LLONG, int, int, int, int); +static int fmtfp(char **, char **, size_t *, size_t *, + LDOUBLE, int, int, int); +static int doapr_outch(char **, char **, size_t *, size_t *, int); +static int _dopr(char **sbuffer, char **buffer, + size_t *maxlen, size_t *retlen, int *truncated, + const char *format, va_list args); /* format read states */ #define DP_S_DEFAULT 0 @@ -165,7 +165,7 @@ static void _dopr(char **sbuffer, char * #define char_to_int(p) (p - '0') #define OSSL_MAX(p,q) ((p >= q) ? p : q) -static void +static int _dopr(char **sbuffer, char **buffer, size_t *maxlen, @@ -196,7 +196,8 @@ _dopr(char **sbuffer, if (ch == '%') state = DP_S_FLAGS; else - doapr_outch(sbuffer, buffer, &currlen, maxlen, ch); + if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, ch)) + return 0; ch = *format++; break; case DP_S_FLAGS: @@ -302,8 +303,9 @@ _dopr(char **sbuffer, value = va_arg(args, int); break; } - fmtint(sbuffer, buffer, &currlen, maxlen, - value, 10, min, max, flags); + if (!fmtint(sbuffer, buffer, &currlen, maxlen, value, 10, min, + max, flags)) + return 0; break; case 'X': flags |= DP_F_UP; @@ -326,17 +328,19 @@ _dopr(char **sbuffer, value = (LLONG) va_arg(args, unsigned int); break; } - fmtint(sbuffer, buffer, &currlen, maxlen, value, - ch == 'o' ? 8 : (ch == 'u' ? 10 : 16), - min, max, flags); + if (!fmtint(sbuffer, buffer, &currlen, maxlen, value, + ch == 'o' ? 8 : (ch == 'u' ? 10 : 16), + min, max, flags)) + return 0; break; case 'f': if (cflags == DP_C_LDOUBLE) fvalue = va_arg(args, LDOUBLE); else fvalue = va_arg(args, double); - fmtfp(sbuffer, buffer, &currlen, maxlen, - fvalue, min, max, flags); + if (!fmtfp(sbuffer, buffer, &currlen, maxlen, fvalue, min, max, + flags)) + return 0; break; case 'E': flags |= DP_F_UP; @@ -355,8 +359,9 @@ _dopr(char **sbuffer, fvalue = va_arg(args, double); break; case 'c': - doapr_outch(sbuffer, buffer, &currlen, maxlen, - va_arg(args, int)); + if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, + va_arg(args, int))) + return 0; break; case 's': strvalue = va_arg(args, char *); @@ -366,13 +371,15 @@ _dopr(char **sbuffer, else max = *maxlen; } - fmtstr(sbuffer, buffer, &currlen, maxlen, strvalue, - flags, min, max); + if (!fmtstr(sbuffer, buffer, &currlen, maxlen, strvalue, + flags, min, max)) + return 0; break; case 'p': value = (long)va_arg(args, void *); - fmtint(sbuffer, buffer, &currlen, maxlen, - value, 16, min, max, flags | DP_F_NUM); + if (!fmtint(sbuffer, buffer, &currlen, maxlen, + value, 16, min, max, flags | DP_F_NUM)) + return 0; break; case 'n': /* XXX */ if (cflags == DP_C_SHORT) { @@ -394,7 +401,8 @@ _dopr(char **sbuffer, } break; case '%': - doapr_outch(sbuffer, buffer, &currlen, maxlen, ch); + if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, ch)) + return 0; break; case 'w': /* not supported yet, treat as next char */ @@ -418,46 +426,56 @@ _dopr(char **sbuffer, *truncated = (currlen > *maxlen - 1); if (*truncated) currlen = *maxlen - 1; - doapr_outch(sbuffer, buffer, &currlen, maxlen, '\0'); + if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, '\0')) + return 0; *retlen = currlen - 1; - return; + return 1; } -static void +static int fmtstr(char **sbuffer, char **buffer, size_t *currlen, size_t *maxlen, const char *value, int flags, int min, int max) { - int padlen, strln; + int padlen; + size_t strln; int cnt = 0; if (value == 0) value = ""; - for (strln = 0; value[strln]; ++strln) ; + + strln = strlen(value); + if (strln > INT_MAX) + strln = INT_MAX; + padlen = min - strln; - if (padlen < 0) + if (min < 0 || padlen < 0) padlen = 0; if (flags & DP_F_MINUS) padlen = -padlen; while ((padlen > 0) && (cnt < max)) { - doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) + return 0; --padlen; ++cnt; } while (*value && (cnt < max)) { - doapr_outch(sbuffer, buffer, currlen, maxlen, *value++); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, *value++)) + return 0; ++cnt; } while ((padlen < 0) && (cnt < max)) { - doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) + return 0; ++padlen; ++cnt; } + return 1; } -static void +static int fmtint(char **sbuffer, char **buffer, size_t *currlen, @@ -517,37 +535,44 @@ fmtint(char **sbuffer, /* spaces */ while (spadlen > 0) { - doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) + return 0; --spadlen; } /* sign */ if (signvalue) - doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue)) + return 0; /* prefix */ while (*prefix) { - doapr_outch(sbuffer, buffer, currlen, maxlen, *prefix); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, *prefix)) + return 0; prefix++; } /* zeros */ if (zpadlen > 0) { while (zpadlen > 0) { - doapr_outch(sbuffer, buffer, currlen, maxlen, '0'); + if(!doapr_outch(sbuffer, buffer, currlen, maxlen, '0')) + return 0; --zpadlen; } } /* digits */ - while (place > 0) - doapr_outch(sbuffer, buffer, currlen, maxlen, convert[--place]); + while (place > 0) { + if (!doapr_outch(sbuffer, buffer, currlen, maxlen, convert[--place])) + return 0; + } /* left justified spaces */ while (spadlen < 0) { - doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); + if (!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) + return 0; ++spadlen; } - return; + return 1; } static LDOUBLE abs_val(LDOUBLE value) @@ -578,7 +603,7 @@ static long roundv(LDOUBLE value) return intpart; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Mar 1 22:13:22 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03EEBABF25F; Tue, 1 Mar 2016 22:13:22 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C9E5C1DFA; Tue, 1 Mar 2016 22:13:21 +0000 (UTC) (envelope-from jgh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21MDKqJ044375; Tue, 1 Mar 2016 22:13:20 GMT (envelope-from jgh@FreeBSD.org) Received: (from jgh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21MDKkF044374; Tue, 1 Mar 2016 22:13:20 GMT (envelope-from jgh@FreeBSD.org) Message-Id: <201603012213.u21MDKkF044374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jgh set sender to jgh@FreeBSD.org using -f From: Jason Helfman Date: Tue, 1 Mar 2016 22:13:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296280 - head/usr.sbin/portsnap/portsnap X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:13:22 -0000 Author: jgh (doc,ports committer) Date: Tue Mar 1 22:13:20 2016 New Revision: 296280 URL: https://svnweb.freebsd.org/changeset/base/296280 Log: - update portsnap(8) to direct users to pkg-version PR: 202971 Submitted by: adamw@FreeBSD.org Reviewed by: bdrewery@ Approved by: wblock@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5429 Modified: head/usr.sbin/portsnap/portsnap/portsnap.8 Modified: head/usr.sbin/portsnap/portsnap/portsnap.8 ============================================================================== --- head/usr.sbin/portsnap/portsnap/portsnap.8 Tue Mar 1 22:08:28 2016 (r296279) +++ head/usr.sbin/portsnap/portsnap/portsnap.8 Tue Mar 1 22:13:20 2016 (r296280) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 22, 2013 +.Dd March 1, 2016 .Dt PORTSNAP 8 .Os FreeBSD .Sh NAME @@ -224,7 +224,7 @@ However, running .Fl I .Cm update is probably safe, and can be used together with -.Xr portversion 1 +.Xr pkg-version 8 to identify installed software which is out of date. .It If you wish to use @@ -272,6 +272,8 @@ Default location where the ports tree is .Xr fetch 1 , .Xr sha256 1 , .Xr fetch 3 , -.Xr portsnap.conf 5 +.Xr portsnap.conf 5 , +.Xr pkg 7 , +.Xr pkg-version 8 .Sh AUTHORS .An Colin Percival Aq Mt cperciva@FreeBSD.org From owner-svn-src-head@freebsd.org Tue Mar 1 22:25:50 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E09A1ABF926; Tue, 1 Mar 2016 22:25:50 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B3D151861; Tue, 1 Mar 2016 22:25:50 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21MPnS6047422; Tue, 1 Mar 2016 22:25:49 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21MPnH4047419; Tue, 1 Mar 2016 22:25:49 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603012225.u21MPnH4047419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 1 Mar 2016 22:25:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296281 - in head/share/i18n: csmapper esdb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:25:51 -0000 Author: bdrewery Date: Tue Mar 1 22:25:49 2016 New Revision: 296281 URL: https://svnweb.freebsd.org/changeset/base/296281 Log: DIRDEPS_BUILD: Fix mapper files building during dirdeps. Sponsored by: EMC / Isilon Storage Division Modified: head/share/i18n/csmapper/Makefile head/share/i18n/csmapper/Makefile.part head/share/i18n/esdb/Makefile Modified: head/share/i18n/csmapper/Makefile ============================================================================== --- head/share/i18n/csmapper/Makefile Tue Mar 1 22:13:20 2016 (r296280) +++ head/share/i18n/csmapper/Makefile Tue Mar 1 22:25:49 2016 (r296281) @@ -31,7 +31,5 @@ charset.pivot.pvdb: charset.pivot FILES+= charset.pivot charset.pivot.pvdb CLEANFILES+= charset.pivot charset.pivot.pvdb -all: ${FILES} - .include "./Makefile.inc" .include Modified: head/share/i18n/csmapper/Makefile.part ============================================================================== --- head/share/i18n/csmapper/Makefile.part Tue Mar 1 22:13:20 2016 (r296280) +++ head/share/i18n/csmapper/Makefile.part Tue Mar 1 22:25:49 2016 (r296281) @@ -73,7 +73,9 @@ FILES+= ${MAPS} CLEANFILES+= ${MAPS} .endif -all: ${FILES} mapper.dir.${ESUBDIR} charset.pivot.${ESUBDIR} - .include "./Makefile.inc" .include + +.if !defined(_SKIP_BUILD) +all: mapper.dir.${ESUBDIR} charset.pivot.${ESUBDIR} +.endif Modified: head/share/i18n/esdb/Makefile ============================================================================== --- head/share/i18n/esdb/Makefile Tue Mar 1 22:13:20 2016 (r296280) +++ head/share/i18n/esdb/Makefile Tue Mar 1 22:25:49 2016 (r296281) @@ -28,7 +28,5 @@ esdb.alias: ${SUBDIR} esdb.alias.db: esdb.alias ${MKESDB} -m -o ${.TARGET} ${.ALLSRC} -all: ${FILES} - .include "./Makefile.inc" .include From owner-svn-src-head@freebsd.org Tue Mar 1 22:25:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA47FABF93A; Tue, 1 Mar 2016 22:25:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 7CB891889; Tue, 1 Mar 2016 22:25:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21MPsON047469; Tue, 1 Mar 2016 22:25:54 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21MPsbW047468; Tue, 1 Mar 2016 22:25:54 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603012225.u21MPsbW047468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 1 Mar 2016 22:25:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296282 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:25:55 -0000 Author: bdrewery Date: Tue Mar 1 22:25:54 2016 New Revision: 296282 URL: https://svnweb.freebsd.org/changeset/base/296282 Log: CCACHE_BUILD+META_MODE: Lookup and canonicalize the default CCACHE_DIR. This is done to prevent not having CCACHE_DIR causing meta mode with filemon to see stat changes in the ccache dir and cause rebuilds. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.compiler.mk Modified: head/share/mk/bsd.compiler.mk ============================================================================== --- head/share/mk/bsd.compiler.mk Tue Mar 1 22:25:49 2016 (r296281) +++ head/share/mk/bsd.compiler.mk Tue Mar 1 22:25:54 2016 (r296282) @@ -83,7 +83,11 @@ CCACHE_NOCPP2= 1 .export CCACHE_NOCPP2 .endif # Canonicalize CCACHE_DIR for meta mode usage. -.if defined(CCACHE_DIR) && empty(.MAKE.META.IGNORE_PATHS:M${CCACHE_DIR}) +.if !defined(CCACHE_DIR) +CCACHE_DIR!= ${CCACHE_BIN} -p | awk '$$2 == "cache_dir" {print $$4}' +.export CCACHE_DIR +.endif +.if !empty(CCACHE_DIR) && empty(.MAKE.META.IGNORE_PATHS:M${CCACHE_DIR}) CCACHE_DIR:= ${CCACHE_DIR:tA} .MAKE.META.IGNORE_PATHS+= ${CCACHE_DIR} .export CCACHE_DIR From owner-svn-src-head@freebsd.org Tue Mar 1 22:51:46 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D3FAAC0A46; Tue, 1 Mar 2016 22:51:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 16E421BC6; Tue, 1 Mar 2016 22:51:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21Mpjg9055250; Tue, 1 Mar 2016 22:51:45 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21MpjCt055249; Tue, 1 Mar 2016 22:51:45 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201603012251.u21MpjCt055249@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 1 Mar 2016 22:51:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296283 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:51:46 -0000 Author: jhb Date: Tue Mar 1 22:51:44 2016 New Revision: 296283 URL: https://svnweb.freebsd.org/changeset/base/296283 Log: Use SCHEDULER_STOPPED() in cv_*wait*() instead of checking panicstr. Reviewed by: kib MFC after: 1 month Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D5516 Modified: head/sys/kern/kern_condvar.c Modified: head/sys/kern/kern_condvar.c ============================================================================== --- head/sys/kern/kern_condvar.c Tue Mar 1 22:25:54 2016 (r296282) +++ head/sys/kern/kern_condvar.c Tue Mar 1 22:51:44 2016 (r296283) @@ -122,7 +122,7 @@ _cv_wait(struct cv *cvp, struct lock_obj "Waiting on \"%s\"", cvp->cv_description); class = LOCK_CLASS(lock); - if (cold || panicstr) { + if (cold || SCHEDULER_STOPPED()) { /* * During autoconfiguration, just give interrupts * a chance, then just return. Don't run any other @@ -183,7 +183,7 @@ _cv_wait_unlock(struct cv *cvp, struct l ("cv_wait_unlock cannot be used with Giant")); class = LOCK_CLASS(lock); - if (cold || panicstr) { + if (cold || SCHEDULER_STOPPED()) { /* * During autoconfiguration, just give interrupts * a chance, then just return. Don't run any other @@ -240,7 +240,7 @@ _cv_wait_sig(struct cv *cvp, struct lock "Waiting on \"%s\"", cvp->cv_description); class = LOCK_CLASS(lock); - if (cold || panicstr) { + if (cold || SCHEDULER_STOPPED()) { /* * After a panic, or during autoconfiguration, just give * interrupts a chance, then just return; don't run any other @@ -307,7 +307,7 @@ _cv_timedwait_sbt(struct cv *cvp, struct "Waiting on \"%s\"", cvp->cv_description); class = LOCK_CLASS(lock); - if (cold || panicstr) { + if (cold || SCHEDULER_STOPPED()) { /* * After a panic, or during autoconfiguration, just give * interrupts a chance, then just return; don't run any other @@ -376,7 +376,7 @@ _cv_timedwait_sig_sbt(struct cv *cvp, st "Waiting on \"%s\"", cvp->cv_description); class = LOCK_CLASS(lock); - if (cold || panicstr) { + if (cold || SCHEDULER_STOPPED()) { /* * After a panic, or during autoconfiguration, just give * interrupts a chance, then just return; don't run any other From owner-svn-src-head@freebsd.org Tue Mar 1 22:54:32 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73D31AC0BD0; Tue, 1 Mar 2016 22:54:32 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 42F571E98; Tue, 1 Mar 2016 22:54:32 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21MsV0o056013; Tue, 1 Mar 2016 22:54:31 GMT (envelope-from jmcneill@FreeBSD.org) Received: (from jmcneill@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21MsUld056008; Tue, 1 Mar 2016 22:54:30 GMT (envelope-from jmcneill@FreeBSD.org) Message-Id: <201603012254.u21MsUld056008@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmcneill set sender to jmcneill@FreeBSD.org using -f From: Jared McNeill Date: Tue, 1 Mar 2016 22:54:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296284 - in head/sys/arm/allwinner: . a31 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 22:54:32 -0000 Author: jmcneill Date: Tue Mar 1 22:54:30 2016 New Revision: 296284 URL: https://svnweb.freebsd.org/changeset/base/296284 Log: Add support for Allwinner A31/A31s EHCI controller and USB PHY. Reviewed by: andrew, Emmanuel Vadot Approved by: gonzo (mentor) Differential Revision: https://reviews.freebsd.org/D5467 Added: head/sys/arm/allwinner/aw_usbphy.c (contents, props changed) Modified: head/sys/arm/allwinner/a10_ehci.c head/sys/arm/allwinner/a31/a31_clk.c head/sys/arm/allwinner/a31/a31_clk.h head/sys/arm/allwinner/files.allwinner Modified: head/sys/arm/allwinner/a10_ehci.c ============================================================================== --- head/sys/arm/allwinner/a10_ehci.c Tue Mar 1 22:51:44 2016 (r296283) +++ head/sys/arm/allwinner/a10_ehci.c Tue Mar 1 22:54:30 2016 (r296284) @@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include @@ -59,9 +58,9 @@ __FBSDID("$FreeBSD$"); #include #include -#include "gpio_if.h" - -#include "a10_clk.h" +#include +#include +#include #define EHCI_HC_DEVSTR "Allwinner Integrated USB 2.0 controller" @@ -75,8 +74,9 @@ __FBSDID("$FreeBSD$"); #define SW_AHB_INCRX_ALIGN (1 << 8) #define SW_AHB_INCR4 (1 << 9) #define SW_AHB_INCR8 (1 << 10) -#define GPIO_USB1_PWR 230 -#define GPIO_USB2_PWR 227 + +#define USB_CONF(d) \ + (void *)ofw_bus_search_compatible((d), compat_data)->ocd_data #define A10_READ_4(sc, reg) \ bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg) @@ -90,10 +90,32 @@ static device_detach_t a10_ehci_detach; bs_r_1_proto(reversed); bs_w_1_proto(reversed); +struct aw_ehci_conf { + int (*clk_activate)(void); + int (*clk_deactivate)(void); + bool sdram_init; +}; + +static const struct aw_ehci_conf a10_ehci_conf = { +#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20) + .clk_activate = a10_clk_usb_activate, + .clk_deactivate = a10_clk_usb_deactivate, +#endif + .sdram_init = true, +}; + +static const struct aw_ehci_conf a31_ehci_conf = { +#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S) + .clk_activate = a31_clk_ehci_activate, + .clk_deactivate = a31_clk_ehci_deactivate, +#endif +}; + static struct ofw_compat_data compat_data[] = { - {"allwinner,sun4i-a10-ehci", 1}, - {"allwinner,sun7i-a20-ehci", 1}, - {NULL, 0} + { "allwinner,sun4i-a10-ehci", (uintptr_t)&a10_ehci_conf }, + { "allwinner,sun6i-a31-ehci", (uintptr_t)&a31_ehci_conf }, + { "allwinner,sun7i-a20-ehci", (uintptr_t)&a10_ehci_conf }, + { NULL, (uintptr_t)NULL } }; static int @@ -115,12 +137,18 @@ static int a10_ehci_attach(device_t self) { ehci_softc_t *sc = device_get_softc(self); + const struct aw_ehci_conf *conf; bus_space_handle_t bsh; - device_t sc_gpio_dev; int err; int rid; uint32_t reg_value = 0; + conf = USB_CONF(self); + if (conf->clk_activate == NULL) { + device_printf(self, "clock not supported\n"); + return (ENXIO); + } + /* initialise some bus fields */ sc->sc_bus.parent = self; sc->sc_bus.devices = sc->sc_devices; @@ -170,13 +198,6 @@ a10_ehci_attach(device_t self) sprintf(sc->sc_vendor, "Allwinner"); - /* Get the GPIO device, we need this to give power to USB */ - sc_gpio_dev = devclass_get_device(devclass_find("gpio"), 0); - if (sc_gpio_dev == NULL) { - device_printf(self, "Error: failed to get the GPIO device\n"); - goto error; - } - err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, NULL, (driver_intr_t *)ehci_interrupt, sc, &sc->sc_intr_hdl); if (err) { @@ -188,15 +209,10 @@ a10_ehci_attach(device_t self) sc->sc_flags |= EHCI_SCFLG_DONTRESET; /* Enable clock for USB */ - a10_clk_usb_activate(); - - /* Give power to USB */ - GPIO_PIN_SETFLAGS(sc_gpio_dev, GPIO_USB2_PWR, GPIO_PIN_OUTPUT); - GPIO_PIN_SET(sc_gpio_dev, GPIO_USB2_PWR, GPIO_PIN_HIGH); - - /* Give power to USB */ - GPIO_PIN_SETFLAGS(sc_gpio_dev, GPIO_USB1_PWR, GPIO_PIN_OUTPUT); - GPIO_PIN_SET(sc_gpio_dev, GPIO_USB1_PWR, GPIO_PIN_HIGH); + if (conf->clk_activate() != 0) { + device_printf(self, "Could not activate clock\n"); + goto error; + } /* Enable passby */ reg_value = A10_READ_4(sc, SW_USB_PMU_IRQ_ENABLE); @@ -207,9 +223,11 @@ a10_ehci_attach(device_t self) A10_WRITE_4(sc, SW_USB_PMU_IRQ_ENABLE, reg_value); /* Configure port */ - reg_value = A10_READ_4(sc, SW_SDRAM_REG_HPCR_USB2); - reg_value |= SW_SDRAM_BP_HPCR_ACCESS; - A10_WRITE_4(sc, SW_SDRAM_REG_HPCR_USB2, reg_value); + if (conf->sdram_init) { + reg_value = A10_READ_4(sc, SW_SDRAM_REG_HPCR_USB2); + reg_value |= SW_SDRAM_BP_HPCR_ACCESS; + A10_WRITE_4(sc, SW_SDRAM_REG_HPCR_USB2, reg_value); + } err = ehci_init(sc); if (!err) { @@ -230,10 +248,13 @@ static int a10_ehci_detach(device_t self) { ehci_softc_t *sc = device_get_softc(self); + const struct aw_ehci_conf *conf; device_t bdev; int err; uint32_t reg_value = 0; + conf = USB_CONF(self); + if (sc->sc_bus.bdev) { bdev = sc->sc_bus.bdev; device_detach(bdev); @@ -269,9 +290,11 @@ a10_ehci_detach(device_t self) usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc); /* Disable configure port */ - reg_value = A10_READ_4(sc, SW_SDRAM_REG_HPCR_USB2); - reg_value &= ~SW_SDRAM_BP_HPCR_ACCESS; - A10_WRITE_4(sc, SW_SDRAM_REG_HPCR_USB2, reg_value); + if (conf->sdram_init) { + reg_value = A10_READ_4(sc, SW_SDRAM_REG_HPCR_USB2); + reg_value &= ~SW_SDRAM_BP_HPCR_ACCESS; + A10_WRITE_4(sc, SW_SDRAM_REG_HPCR_USB2, reg_value); + } /* Disable passby */ reg_value = A10_READ_4(sc, SW_USB_PMU_IRQ_ENABLE); @@ -282,7 +305,7 @@ a10_ehci_detach(device_t self) A10_WRITE_4(sc, SW_USB_PMU_IRQ_ENABLE, reg_value); /* Disable clock for USB */ - a10_clk_usb_deactivate(); + conf->clk_deactivate(); return (0); } Modified: head/sys/arm/allwinner/a31/a31_clk.c ============================================================================== --- head/sys/arm/allwinner/a31/a31_clk.c Tue Mar 1 22:51:44 2016 (r296283) +++ head/sys/arm/allwinner/a31/a31_clk.c Tue Mar 1 22:54:30 2016 (r296284) @@ -48,7 +48,9 @@ __FBSDID("$FreeBSD$"); struct a31_ccm_softc { struct resource *res; + struct mtx mtx; int pll6_enabled; + int ehci_refcnt; }; static struct a31_ccm_softc *a31_ccm_sc = NULL; @@ -58,6 +60,9 @@ static struct a31_ccm_softc *a31_ccm_sc #define ccm_write_4(sc, reg, val) \ bus_write_4((sc)->res, (reg), (val)) +#define CCM_LOCK(sc) mtx_lock(&(sc)->mtx) +#define CCM_UNLOCK(sc) mtx_unlock(&(sc)->mtx) + #define PLL6_TIMEOUT 10 static int @@ -90,6 +95,8 @@ a31_ccm_attach(device_t dev) return (ENXIO); } + mtx_init(&sc->mtx, "a31 ccm", NULL, MTX_DEF); + a31_ccm_sc = sc; return (0); @@ -293,3 +300,79 @@ a31_clk_i2c_activate(int devid) return (0); } + +int +a31_clk_ehci_activate(void) +{ + struct a31_ccm_softc *sc; + uint32_t reg_value; + + sc = a31_ccm_sc; + if (sc == NULL) + return (ENXIO); + + CCM_LOCK(sc); + if (++sc->ehci_refcnt == 1) { + /* Enable USB PHY */ + reg_value = ccm_read_4(sc, A31_CCM_USBPHY_CLK); + reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY0; + reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY1; + reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY2; + reg_value |= A31_CCM_USBPHY_CLK_USBPHY1_RST; + reg_value |= A31_CCM_USBPHY_CLK_USBPHY2_RST; + ccm_write_4(sc, A31_CCM_USBPHY_CLK, reg_value); + + /* Gating AHB clock for EHCI */ + reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0); + reg_value |= A31_CCM_AHB_GATING_EHCI0; + reg_value |= A31_CCM_AHB_GATING_EHCI1; + ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value); + + /* De-assert reset */ + reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0); + reg_value |= A31_CCM_AHB1_RST_REG0_EHCI0; + reg_value |= A31_CCM_AHB1_RST_REG0_EHCI1; + ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value); + } + CCM_UNLOCK(sc); + + return (0); +} + +int +a31_clk_ehci_deactivate(void) +{ + struct a31_ccm_softc *sc; + uint32_t reg_value; + + sc = a31_ccm_sc; + if (sc == NULL) + return (ENXIO); + + CCM_LOCK(sc); + if (--sc->ehci_refcnt == 0) { + /* Disable USB PHY */ + reg_value = ccm_read_4(sc, A31_CCM_USBPHY_CLK); + reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY0; + reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY1; + reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY2; + reg_value &= ~A31_CCM_USBPHY_CLK_USBPHY1_RST; + reg_value &= ~A31_CCM_USBPHY_CLK_USBPHY2_RST; + ccm_write_4(sc, A31_CCM_USBPHY_CLK, reg_value); + + /* Gating AHB clock for EHCI */ + reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0); + reg_value &= ~A31_CCM_AHB_GATING_EHCI0; + reg_value &= ~A31_CCM_AHB_GATING_EHCI1; + ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value); + + /* Assert reset */ + reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0); + reg_value &= ~A31_CCM_AHB1_RST_REG0_EHCI0; + reg_value &= ~A31_CCM_AHB1_RST_REG0_EHCI1; + ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value); + } + CCM_UNLOCK(sc); + + return (0); +} Modified: head/sys/arm/allwinner/a31/a31_clk.h ============================================================================== --- head/sys/arm/allwinner/a31/a31_clk.h Tue Mar 1 22:51:44 2016 (r296283) +++ head/sys/arm/allwinner/a31/a31_clk.h Tue Mar 1 22:54:30 2016 (r296284) @@ -134,8 +134,14 @@ #define A31_CCM_PLL6_CFG_REG_LOCK (1 << 28) /* AHB_GATING_REG0 */ -#define A31_CCM_AHB_GATING_SDMMC0 (1 << 8) +#define A31_CCM_AHB_GATING_OHCI2 (1 << 31) +#define A31_CCM_AHB_GATING_OHCI1 (1 << 30) +#define A31_CCM_AHB_GATING_OHCI0 (1 << 29) +#define A31_CCM_AHB_GATING_EHCI1 (1 << 27) +#define A31_CCM_AHB_GATING_EHCI0 (1 << 26) +#define A31_CCM_AHB_GATING_USBDRD (1 << 24) #define A31_CCM_AHB_GATING_GMAC (1 << 17) +#define A31_CCM_AHB_GATING_SDMMC0 (1 << 8) #define A31_CCM_PLL_CFG_ENABLE (1U << 31) #define A31_CCM_PLL_CFG_BYPASS (1U << 30) @@ -151,6 +157,11 @@ #define A31_CCM_APB2_GATING_TWI (1 << 0) /* AHB1_RST_REG0 */ +#define A31_CCM_AHB1_RST_REG0_OHCI2 (1 << 31) +#define A31_CCM_AHB1_RST_REG0_OHCI1 (1 << 30) +#define A31_CCM_AHB1_RST_REG0_OHCI0 (1 << 29) +#define A31_CCM_AHB1_RST_REG0_EHCI1 (1 << 27) +#define A31_CCM_AHB1_RST_REG0_EHCI0 (1 << 26) #define A31_CCM_AHB1_RST_REG0_GMAC (1 << 17) #define A31_CCM_AHB1_RST_REG0_SDMMC (1 << 8) @@ -179,11 +190,24 @@ #define A31_CCM_SD_CLK_OPHASE_CTR_SHIFT 8 #define A31_CCM_SD_CLK_DIV_RATIO_M 0xf +/* USB */ +#define A31_CCM_USBPHY_CLK_GATING_OHCI2 (1 << 18) +#define A31_CCM_USBPHY_CLK_GATING_OHCI1 (1 << 17) +#define A31_CCM_USBPHY_CLK_GATING_OHCI0 (1 << 16) +#define A31_CCM_USBPHY_CLK_GATING_USBPHY2 (1 << 10) +#define A31_CCM_USBPHY_CLK_GATING_USBPHY1 (1 << 9) +#define A31_CCM_USBPHY_CLK_GATING_USBPHY0 (1 << 8) +#define A31_CCM_USBPHY_CLK_USBPHY2_RST (1 << 2) +#define A31_CCM_USBPHY_CLK_USBPHY1_RST (1 << 1) +#define A31_CCM_USBPHY_CLK_USBPHY0_RST (1 << 0) + #define A31_CCM_CLK_REF_FREQ 24000000U int a31_clk_gmac_activate(phandle_t); int a31_clk_mmc_activate(int); int a31_clk_mmc_cfg(int, int); int a31_clk_i2c_activate(int); +int a31_clk_ehci_activate(void); +int a31_clk_ehci_deactivate(void); #endif /* _A31_CLK_H_ */ Added: head/sys/arm/allwinner/aw_usbphy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/allwinner/aw_usbphy.c Tue Mar 1 22:54:30 2016 (r296284) @@ -0,0 +1,192 @@ +/*- + * Copyright (c) 2016 Jared McNeill + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * 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. + * + * $FreeBSD$ + */ + +/* + * Allwinner USB PHY + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "gpio_if.h" + +#define USBPHY_NUMOFF 3 +#define GPIO_POLARITY(flags) (((flags) & 1) ? GPIO_PIN_LOW : GPIO_PIN_HIGH) + +static struct ofw_compat_data compat_data[] = { + { "allwinner,sun4i-a10-usb-phy", 1 }, + { "allwinner,sun5i-a13-usb-phy", 1 }, + { "allwinner,sun6i-a31-usb-phy", 1 }, + { "allwinner,sun7i-a20-usb-phy", 1 }, + { NULL, 0 } +}; + +static int +awusbphy_gpio_set(device_t dev, phandle_t node, const char *pname) +{ + pcell_t gpio_prop[4]; + phandle_t gpio_node; + device_t gpio_dev; + uint32_t pin, flags; + ssize_t len; + int val; + + len = OF_getencprop(node, pname, gpio_prop, sizeof(gpio_prop)); + if (len == -1) + return (0); + + if (len != sizeof(gpio_prop)) { + device_printf(dev, "property %s length was %d, expected %d\n", + pname, len, sizeof(gpio_prop)); + return (ENXIO); + } + + gpio_node = OF_node_from_xref(gpio_prop[0]); + gpio_dev = OF_device_from_xref(gpio_prop[0]); + if (gpio_dev == NULL) { + device_printf(dev, "failed to get the GPIO device for %s\n", + pname); + return (ENOENT); + } + + if (GPIO_MAP_GPIOS(gpio_dev, node, gpio_node, + sizeof(gpio_prop) / sizeof(gpio_prop[0]) - 1, gpio_prop + 1, + &pin, &flags) != 0) { + device_printf(dev, "failed to map the GPIO pin for %s\n", + pname); + return (ENXIO); + } + + val = GPIO_POLARITY(flags); + + GPIO_PIN_SETFLAGS(gpio_dev, pin, GPIO_PIN_OUTPUT); + GPIO_PIN_SET(gpio_dev, pin, val); + + return (0); +} + +static int +awusbphy_supply_set(device_t dev, const char *pname) +{ + phandle_t node, reg_node; + pcell_t reg_xref; + + node = ofw_bus_get_node(dev); + + if (OF_getencprop(node, pname, ®_xref, sizeof(reg_xref)) == -1) + return (0); + + reg_node = OF_node_from_xref(reg_xref); + + return (awusbphy_gpio_set(dev, reg_node, "gpio")); +} + +static int +awusbphy_init(device_t dev) +{ + char pname[20]; + phandle_t node; + int error, off; + + node = ofw_bus_get_node(dev); + + for (off = 0; off < USBPHY_NUMOFF; off++) { + snprintf(pname, sizeof(pname), "usb%d_id_det-gpio", off); + error = awusbphy_gpio_set(dev, node, pname); + if (error) + return (error); + + snprintf(pname, sizeof(pname), "usb%d_vbus_det-gpio", off); + error = awusbphy_gpio_set(dev, node, pname); + if (error) + return (error); + + snprintf(pname, sizeof(pname), "usb%d_vbus-supply", off); + error = awusbphy_supply_set(dev, pname); + if (error) + return (error); + } + + return (0); +} + +static int +awusbphy_probe(device_t dev) +{ + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Allwinner USB PHY"); + return (BUS_PROBE_DEFAULT); +} + +static int +awusbphy_attach(device_t dev) +{ + int error; + + error = awusbphy_init(dev); + if (error) + device_printf(dev, "failed to initialize USB PHY, error %d\n", + error); + + return (error); +} + +static device_method_t awusbphy_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, awusbphy_probe), + DEVMETHOD(device_attach, awusbphy_attach), + + DEVMETHOD_END +}; + +static driver_t awusbphy_driver = { + "awusbphy", + awusbphy_methods, + 0, +}; + +static devclass_t awusbphy_devclass; + +DRIVER_MODULE(awusbphy, simplebus, awusbphy_driver, awusbphy_devclass, 0, 0); +MODULE_VERSION(awusbphy, 1); Modified: head/sys/arm/allwinner/files.allwinner ============================================================================== --- head/sys/arm/allwinner/files.allwinner Tue Mar 1 22:51:44 2016 (r296283) +++ head/sys/arm/allwinner/files.allwinner Tue Mar 1 22:54:30 2016 (r296284) @@ -7,6 +7,7 @@ arm/allwinner/a10_codec.c optional soun arm/allwinner/a10_common.c standard arm/allwinner/a10_dmac.c standard arm/allwinner/a10_ehci.c optional ehci +arm/allwinner/aw_usbphy.c optional ehci arm/allwinner/a10_gpio.c optional gpio arm/allwinner/a10_mmc.c optional mmc arm/allwinner/a10_sramc.c standard From owner-svn-src-head@freebsd.org Tue Mar 1 23:58:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2171DABFA3E; Tue, 1 Mar 2016 23:58:55 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E78051C46; Tue, 1 Mar 2016 23:58:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u21NwrIg073559; Tue, 1 Mar 2016 23:58:53 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u21NwrWc073558; Tue, 1 Mar 2016 23:58:53 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603012358.u21NwrWc073558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Tue, 1 Mar 2016 23:58:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296285 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 23:58:55 -0000 Author: bdrewery Date: Tue Mar 1 23:58:53 2016 New Revision: 296285 URL: https://svnweb.freebsd.org/changeset/base/296285 Log: Correct a comment. Modified: head/sys/kern/kern_exec.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Tue Mar 1 22:54:30 2016 (r296284) +++ head/sys/kern/kern_exec.c Tue Mar 1 23:58:53 2016 (r296285) @@ -676,7 +676,7 @@ interpret: * Don't honor setuid/setgid if the filesystem prohibits it or if * the process is being traced. * - * We disable setuid/setgid/etc in compatibility mode on the basis + * We disable setuid/setgid/etc in capability mode on the basis * that most setugid applications are not written with that * environment in mind, and will therefore almost certainly operate * incorrectly. In principle there's no reason that setugid From owner-svn-src-head@freebsd.org Wed Mar 2 00:13:15 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E5C6ABD264; Wed, 2 Mar 2016 00:13:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2FB9D1518; Wed, 2 Mar 2016 00:13:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u220DEXR079268; Wed, 2 Mar 2016 00:13:14 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u220DE0b079265; Wed, 2 Mar 2016 00:13:14 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603020013.u220DE0b079265@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 2 Mar 2016 00:13:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296286 - head/sys/dev/filemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 00:13:15 -0000 Author: bdrewery Date: Wed Mar 2 00:13:13 2016 New Revision: 296286 URL: https://svnweb.freebsd.org/changeset/base/296286 Log: Remove filemon->lock wrappers. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/sys/dev/filemon/filemon.c head/sys/dev/filemon/filemon_lock.c head/sys/dev/filemon/filemon_wrapper.c Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Tue Mar 1 23:58:53 2016 (r296285) +++ head/sys/dev/filemon/filemon.c Wed Mar 2 00:13:13 2016 (r296286) @@ -127,7 +127,7 @@ filemon_dtr(void *data) /* Follow same locking order as filemon_pid_check. */ filemon_lock_write(); - filemon_filemon_lock(filemon); + sx_xlock(&filemon->lock); /* Remove from the in-use list. */ TAILQ_REMOVE(&filemons_inuse, filemon, link); @@ -140,7 +140,7 @@ filemon_dtr(void *data) TAILQ_INSERT_TAIL(&filemons_free, filemon, link); /* Give up write access. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); filemon_unlock_write(); if (fp != NULL) @@ -160,7 +160,7 @@ filemon_ioctl(struct cdev *dev, u_long c if ((error = devfs_get_cdevpriv((void **) &filemon)) != 0) return (error); - filemon_filemon_lock(filemon); + sx_xlock(&filemon->lock); switch (cmd) { /* Set the output file descriptor. */ @@ -191,7 +191,7 @@ filemon_ioctl(struct cdev *dev, u_long c break; } - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); return (error); } Modified: head/sys/dev/filemon/filemon_lock.c ============================================================================== --- head/sys/dev/filemon/filemon_lock.c Tue Mar 1 23:58:53 2016 (r296285) +++ head/sys/dev/filemon/filemon_lock.c Wed Mar 2 00:13:13 2016 (r296286) @@ -29,20 +29,6 @@ __FBSDID("$FreeBSD$"); static __inline void -filemon_filemon_lock(struct filemon *filemon) -{ - - sx_xlock(&filemon->lock); -} - -static __inline void -filemon_filemon_unlock(struct filemon *filemon) -{ - - sx_xunlock(&filemon->lock); -} - -static __inline void filemon_lock_read(void) { Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Tue Mar 1 23:58:53 2016 (r296285) +++ head/sys/dev/filemon/filemon_wrapper.c Wed Mar 2 00:13:13 2016 (r296286) @@ -79,7 +79,7 @@ filemon_pid_check(struct proc *p) TAILQ_FOREACH(filemon, &filemons_inuse, link) { if (p == filemon->p) { sx_sunlock(&proctree_lock); - filemon_filemon_lock(filemon); + sx_xlock(&filemon->lock); filemon_unlock_read(); return (filemon); } @@ -110,8 +110,7 @@ filemon_wrapper_chdir(struct thread *td, filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -139,8 +138,7 @@ filemon_event_process_exec(void *arg __u filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); free(freepath, M_TEMP); } @@ -178,8 +176,7 @@ filemon_wrapper_open(struct thread *td, curproc->p_pid, filemon->fname1); filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -231,8 +228,7 @@ filemon_wrapper_openat(struct thread *td curproc->p_pid, filemon->fname2, filemon->fname1); filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -260,8 +256,7 @@ filemon_wrapper_rename(struct thread *td filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -289,8 +284,7 @@ filemon_wrapper_link(struct thread *td, filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -318,8 +312,7 @@ filemon_wrapper_symlink(struct thread *t filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -347,8 +340,7 @@ filemon_wrapper_linkat(struct thread *td filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -374,8 +366,7 @@ filemon_wrapper_stat(struct thread *td, filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -403,8 +394,7 @@ filemon_wrapper_freebsd32_stat(struct th filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -439,8 +429,7 @@ filemon_event_process_exit(void *arg __u filemon->p = NULL; } - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -463,8 +452,7 @@ filemon_wrapper_unlink(struct thread *td filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } @@ -485,8 +473,7 @@ filemon_event_process_fork(void *arg __u filemon_output(filemon, filemon->msgbufr, len); - /* Unlock the found filemon structure. */ - filemon_filemon_unlock(filemon); + sx_xunlock(&filemon->lock); } } From owner-svn-src-head@freebsd.org Wed Mar 2 00:18:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A42ABD3C6; Wed, 2 Mar 2016 00:18:07 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 DAF641828; Wed, 2 Mar 2016 00:18:06 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u220I5kF079457; Wed, 2 Mar 2016 00:18:05 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u220I5If079456; Wed, 2 Mar 2016 00:18:05 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603020018.u220I5If079456@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 2 Mar 2016 00:18:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296287 - head/sys/powerpc/mpc85xx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 00:18:07 -0000 Author: jhibbits Date: Wed Mar 2 00:18:05 2016 New Revision: 296287 URL: https://svnweb.freebsd.org/changeset/base/296287 Log: Fix 2 bugs in the mpc85xx local bus controller driver. 1) Include opt_platform.h to get QORIQ_DPAA. Otherwise the definition of OCP85XX_TGTIF_LBC is incorrect. 2) The child resources are already allocated, just activate them, instead of incorrectly remapping the memory regions (resource lists for lbc consist of the virtual address of the child's resources, not the physical address). Sponsored by: Alex Perez/Inertial Computing Modified: head/sys/powerpc/mpc85xx/lbc.c Modified: head/sys/powerpc/mpc85xx/lbc.c ============================================================================== --- head/sys/powerpc/mpc85xx/lbc.c Wed Mar 2 00:13:13 2016 (r296286) +++ head/sys/powerpc/mpc85xx/lbc.c Wed Mar 2 00:18:05 2016 (r296287) @@ -31,6 +31,8 @@ * SUCH DAMAGE. */ +#include "opt_platform.h" + #include __FBSDID("$FreeBSD$"); @@ -68,6 +70,11 @@ static MALLOC_DEFINE(M_LBC, "localbus", static int lbc_probe(device_t); static int lbc_attach(device_t); static int lbc_shutdown(device_t); +static int lbc_activate_resource(device_t bus __unused, device_t child __unused, + int type, int rid __unused, struct resource *r); +static int lbc_deactivate_resource(device_t bus __unused, + device_t child __unused, int type __unused, int rid __unused, + struct resource *r); static struct resource *lbc_alloc_resource(device_t, device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int lbc_print_child(device_t, device_t); @@ -91,8 +98,8 @@ static device_method_t lbc_methods[] = { DEVMETHOD(bus_alloc_resource, lbc_alloc_resource), DEVMETHOD(bus_release_resource, lbc_release_resource), - DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_activate_resource, lbc_activate_resource), + DEVMETHOD(bus_deactivate_resource, lbc_deactivate_resource), /* OFW bus interface */ DEVMETHOD(ofw_bus_get_devinfo, lbc_get_devinfo), @@ -766,6 +773,23 @@ lbc_release_resource(device_t dev, devic return (rman_release_resource(res)); } +static int +lbc_activate_resource(device_t bus __unused, device_t child __unused, + int type __unused, int rid __unused, struct resource *r) +{ + + /* Child resources were already mapped, just activate. */ + return (rman_activate_resource(r)); +} + +static int +lbc_deactivate_resource(device_t bus __unused, device_t child __unused, + int type __unused, int rid __unused, struct resource *r) +{ + + return (rman_deactivate_resource(r)); +} + static const struct ofw_bus_devinfo * lbc_get_devinfo(device_t bus, device_t child) { From owner-svn-src-head@freebsd.org Wed Mar 2 01:26:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E7E9AC0169; Wed, 2 Mar 2016 01:26:07 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 F30181629; Wed, 2 Mar 2016 01:26:06 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u221Q6C7099917; Wed, 2 Mar 2016 01:26:06 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u221Q6rO099916; Wed, 2 Mar 2016 01:26:06 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020126.u221Q6rO099916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 01:26:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296289 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 01:26:07 -0000 Author: sephe Date: Wed Mar 2 01:26:05 2016 New Revision: 296289 URL: https://svnweb.freebsd.org/changeset/base/296289 Log: hyperv/chan: Add sysctl node to check whether monitor is allocated or not MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5502 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Wed Mar 2 01:24:41 2016 (r296288) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Wed Mar 2 01:26:05 2016 (r296289) @@ -81,6 +81,17 @@ vmbus_channel_set_event(hv_vmbus_channel } +static int +vmbus_channel_sysctl_monalloc(SYSCTL_HANDLER_ARGS) +{ + struct hv_vmbus_channel *chan = arg1; + int alloc = 0; + + if (chan->offer_msg.monitor_allocated) + alloc = 1; + return sysctl_handle_int(oidp, &alloc, 0, req); +} + static void hv_vmbus_channel_stat(hv_vmbus_channel* channel) { @@ -129,6 +140,10 @@ hv_vmbus_channel_stat(hv_vmbus_channel* } SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(devch_id_sysctl), OID_AUTO, "cpu", CTLFLAG_RD, &channel->target_cpu, 0, "owner CPU id"); + SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(devch_id_sysctl), OID_AUTO, + "monitor_allocated", CTLTYPE_INT | CTLFLAG_RD, channel, 0, + vmbus_channel_sysctl_monalloc, "I", + "is monitor allocated to this channel"); devch_id_in_sysctl = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devch_id_sysctl), From owner-svn-src-head@freebsd.org Wed Mar 2 01:33:31 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3003AC055C; Wed, 2 Mar 2016 01:33:31 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B470D1FC5; Wed, 2 Mar 2016 01:33:31 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u221XUrk002793; Wed, 2 Mar 2016 01:33:30 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u221XUga002792; Wed, 2 Mar 2016 01:33:30 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020133.u221XUga002792@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 01:33:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296290 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 01:33:32 -0000 Author: sephe Date: Wed Mar 2 01:33:30 2016 New Revision: 296290 URL: https://svnweb.freebsd.org/changeset/base/296290 Log: hyperv/chan: Function renaming; no functional change The renamed function create a sysctl tree for channel, and many non-statistics nodes exists, so don't claim it only adds sysctl nodes for statistics. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5503 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Wed Mar 2 01:26:05 2016 (r296289) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Wed Mar 2 01:33:30 2016 (r296290) @@ -93,7 +93,7 @@ vmbus_channel_sysctl_monalloc(SYSCTL_HAN } static void -hv_vmbus_channel_stat(hv_vmbus_channel* channel) +vmbus_channel_sysctl_create(hv_vmbus_channel* channel) { device_t dev; struct sysctl_oid *devch_sysctl; @@ -164,6 +164,7 @@ hv_vmbus_channel_stat(hv_vmbus_channel* &(channel->outbound), "outbound ring buffer stats"); } + /** * @brief Open the specified channel */ @@ -227,8 +228,8 @@ hv_vmbus_channel_open( in, recv_ring_buffer_size); - /* setup statistic tracking for this channel */ - hv_vmbus_channel_stat(new_channel); + /* Create sysctl tree for this channel */ + vmbus_channel_sysctl_create(new_channel); /** * Establish the gpadl for the ring buffer From owner-svn-src-head@freebsd.org Wed Mar 2 01:40:49 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14197AC072E; Wed, 2 Mar 2016 01:40:49 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 DEBC912DD; Wed, 2 Mar 2016 01:40:48 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u221elJI003070; Wed, 2 Mar 2016 01:40:47 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u221els4003069; Wed, 2 Mar 2016 01:40:47 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020140.u221els4003069@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 01:40:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296291 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 01:40:49 -0000 Author: sephe Date: Wed Mar 2 01:40:47 2016 New Revision: 296291 URL: https://svnweb.freebsd.org/changeset/base/296291 Log: hyperv/chan: Factor out the vcpu setting And use it for cpu0 assignment; it does not sound right to assume that cpu0 maps to vcpu0. And this factored out function will be exposed to drivers, if driver specific CPU binding is needed, e.g. hn(4). Move default cpu select after saving channel offer message. This makes sure that all useful information of the channel has been setup. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5504 Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Wed Mar 2 01:33:30 2016 (r296290) +++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Wed Mar 2 01:40:47 2016 (r296291) @@ -274,6 +274,21 @@ vmbus_channel_process_offer(hv_vmbus_cha } } +static void +vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu) +{ + KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpu %d", cpu)); + + chan->target_cpu = cpu; + chan->target_vcpu = hv_vmbus_g_context.hv_vcpu_index[cpu]; + + if (bootverbose) { + printf("vmbus_chan%u: assigned to cpu%u [vcpu%u]\n", + chan->offer_msg.child_rel_id, + chan->target_cpu, chan->target_vcpu); + } +} + /** * Array of device guids that are performance critical. We try to distribute * the interrupt load for these devices across all online cpus. @@ -306,11 +321,12 @@ static uint32_t next_vcpu; * distributed across all available CPUs. */ static void -vmbus_channel_select_cpu(hv_vmbus_channel *channel, hv_guid *guid) +vmbus_channel_select_defcpu(struct hv_vmbus_channel *channel) { uint32_t current_cpu; int i; boolean_t is_perf_channel = FALSE; + const hv_guid *guid = &channel->offer_msg.offer.interface_type; for (i = PERF_CHN_NIC; i < MAX_PERF_CHN; i++) { if (memcmp(guid->data, high_perf_devices[i].data, @@ -323,21 +339,13 @@ vmbus_channel_select_cpu(hv_vmbus_channe if ((hv_vmbus_protocal_version == HV_VMBUS_VERSION_WS2008) || (hv_vmbus_protocal_version == HV_VMBUS_VERSION_WIN7) || (!is_perf_channel)) { - /* Host's view of guest cpu */ - channel->target_vcpu = 0; - /* Guest's own view of cpu */ - channel->target_cpu = 0; + /* Stick to cpu0 */ + vmbus_channel_cpu_set(channel, 0); return; } /* mp_ncpus should have the number cpus currently online */ current_cpu = (++next_vcpu % mp_ncpus); - channel->target_cpu = current_cpu; - channel->target_vcpu = - hv_vmbus_g_context.hv_vcpu_index[current_cpu]; - if (bootverbose) - printf("VMBUS: Total online cpus %d, assign perf channel %d " - "to vcpu %d, cpu %d\n", mp_ncpus, i, channel->target_vcpu, - current_cpu); + vmbus_channel_cpu_set(channel, current_cpu); } /** @@ -408,17 +416,14 @@ vmbus_channel_on_offer_internal(void* co offer->connection_id; } - /* - * Bind the channel to a chosen cpu. - */ - vmbus_channel_select_cpu(new_channel, - &offer->offer.interface_type); - memcpy(&new_channel->offer_msg, offer, sizeof(hv_vmbus_channel_offer_channel)); new_channel->monitor_group = (uint8_t) offer->monitor_id / 32; new_channel->monitor_bit = (uint8_t) offer->monitor_id % 32; + /* Select default cpu for this channel. */ + vmbus_channel_select_defcpu(new_channel); + vmbus_channel_process_offer(new_channel); free(offer, M_DEVBUF); From owner-svn-src-head@freebsd.org Wed Mar 2 02:12:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D972CAC021D; Wed, 2 Mar 2016 02:12:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A9F8715B5; Wed, 2 Mar 2016 02:12:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u222C1kB014432; Wed, 2 Mar 2016 02:12:01 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u222C1Gt014431; Wed, 2 Mar 2016 02:12:01 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201603020212.u222C1Gt014431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 2 Mar 2016 02:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296292 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 02:12:02 -0000 Author: glebius Date: Wed Mar 2 02:12:01 2016 New Revision: 296292 URL: https://svnweb.freebsd.org/changeset/base/296292 Log: Fix regression in r296242 affecting several drivers. For EXT_NET_DRV, EXT_MOD_TYPE, EXT_DISPOSABLE types we should first execute the free callback, then free the mbuf, otherwise we will derefernce memory that was just freed. Reported and tested: jhibbits Modified: head/sys/kern/kern_mbuf.c Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Wed Mar 2 01:40:47 2016 (r296291) +++ head/sys/kern/kern_mbuf.c Wed Mar 2 02:12:01 2016 (r296292) @@ -677,8 +677,12 @@ mb_free_ext(struct mbuf *m) case EXT_NET_DRV: case EXT_MOD_TYPE: case EXT_DISPOSABLE: + KASSERT(m->m_ext.ext_free != NULL, + ("%s: ext_free not set", __func__)); + (*(m->m_ext.ext_free))(m, m->m_ext.ext_arg1, + m->m_ext.ext_arg2); uma_zfree(zone_mbuf, mref); - /* FALLTHROUGH */ + break; case EXT_EXTREF: KASSERT(m->m_ext.ext_free != NULL, ("%s: ext_free not set", __func__)); From owner-svn-src-head@freebsd.org Wed Mar 2 02:27:15 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D2F1AC0762; Wed, 2 Mar 2016 02:27:15 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 2E32F1CFA; Wed, 2 Mar 2016 02:27:15 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u222REWJ017594; Wed, 2 Mar 2016 02:27:14 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u222RE0Q017592; Wed, 2 Mar 2016 02:27:14 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020227.u222RE0Q017592@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 02:27:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296293 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 02:27:15 -0000 Author: sephe Date: Wed Mar 2 02:27:13 2016 New Revision: 296293 URL: https://svnweb.freebsd.org/changeset/base/296293 Log: hyperv/hn: Pass channel to hv_nv_on_receive_completion() While I'm here, staticize this function. Submitted by: Hongjiang Zhang Modified by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 02:12:01 2016 (r296292) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 02:27:13 2016 (r296293) @@ -62,6 +62,8 @@ static int hv_nv_destroy_rx_buffer(netv static int hv_nv_connect_to_vsp(struct hv_device *device); static void hv_nv_on_send_completion(netvsc_dev *net_dev, struct hv_device *device, hv_vm_packet_descriptor *pkt); +static void hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, + uint64_t tid, uint32_t status); static void hv_nv_on_receive(netvsc_dev *net_dev, struct hv_device *device, struct hv_vmbus_channel *chan, hv_vm_packet_descriptor *pkt); @@ -911,7 +913,7 @@ hv_nv_on_receive(netvsc_dev *net_dev, st * messages (not just data messages) will trigger a response * message back to the host. */ - hv_nv_on_receive_completion(device, vm_xfer_page_pkt->d.transaction_id, + hv_nv_on_receive_completion(chan, vm_xfer_page_pkt->d.transaction_id, status); } @@ -920,8 +922,8 @@ hv_nv_on_receive(netvsc_dev *net_dev, st * * Send a receive completion packet to RNDIS device (ie NetVsp) */ -void -hv_nv_on_receive_completion(struct hv_device *device, uint64_t tid, +static void +hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, uint64_t tid, uint32_t status) { nvsp_msg rx_comp_msg; @@ -936,7 +938,7 @@ hv_nv_on_receive_completion(struct hv_de retry_send_cmplt: /* Send the completion */ - ret = hv_vmbus_channel_send_packet(device->channel, &rx_comp_msg, + ret = hv_vmbus_channel_send_packet(chan, &rx_comp_msg, sizeof(nvsp_msg), tid, HV_VMBUS_PACKET_TYPE_COMPLETION, 0); if (ret == 0) { /* success */ Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 02:12:01 2016 (r296292) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 02:27:13 2016 (r296293) @@ -1095,8 +1095,6 @@ typedef struct hn_softc { extern int hv_promisc_mode; void netvsc_linkstatus_callback(struct hv_device *device_obj, uint32_t status); -void hv_nv_on_receive_completion(struct hv_device *device, - uint64_t tid, uint32_t status); netvsc_dev *hv_nv_on_device_add(struct hv_device *device, void *additional_info); int hv_nv_on_device_remove(struct hv_device *device, From owner-svn-src-head@freebsd.org Wed Mar 2 02:27:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54983AC07CE; Wed, 2 Mar 2016 02:27:55 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 247BD1E5E; Wed, 2 Mar 2016 02:27:55 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u222Rs99017661; Wed, 2 Mar 2016 02:27:54 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u222Rs6r017660; Wed, 2 Mar 2016 02:27:54 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603020227.u222Rs6r017660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 2 Mar 2016 02:27:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296294 - head/sys/dev/dpaa X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 02:27:55 -0000 Author: jhibbits Date: Wed Mar 2 02:27:53 2016 New Revision: 296294 URL: https://svnweb.freebsd.org/changeset/base/296294 Log: Remove some debug printfs Modified: head/sys/dev/dpaa/bman_fdt.c Modified: head/sys/dev/dpaa/bman_fdt.c ============================================================================== --- head/sys/dev/dpaa/bman_fdt.c Wed Mar 2 02:27:13 2016 (r296293) +++ head/sys/dev/dpaa/bman_fdt.c Wed Mar 2 02:27:53 2016 (r296294) @@ -203,16 +203,12 @@ bman_portals_fdt_attach(device_t dev) portal_size = rle->end + 1; rle = resource_list_find(&di.di_res, SYS_RES_MEMORY, 1); - device_printf(dev, "portal size 1: %jx\n", (uintmax_t)portal_size); - device_printf(dev, "portal size 2: %jx\n", (uintmax_t)rle->end + 1); portal_size = ulmax(rle->end + 1, portal_size); sc->sc_dp_size = ulmax(sc->sc_dp_size, portal_size); - device_printf(dev, "winner: %jx\n", (uintmax_t)sc->sc_dp_size); if (dpaa_portal_alloc_res(dev, &di, cpu_num)) goto err; } - device_printf(dev, "portal start: %jx, size: %jx\n", (uintmax_t)sc->sc_dp_pa, (uintmax_t)sc->sc_dp_size); ofw_bus_gen_destroy_devinfo(&ofw_di); From owner-svn-src-head@freebsd.org Wed Mar 2 02:29:37 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07D74AC0892; Wed, 2 Mar 2016 02:29:37 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CCF1F10D3; Wed, 2 Mar 2016 02:29:36 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u222TZSn017872; Wed, 2 Mar 2016 02:29:35 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u222TZep017871; Wed, 2 Mar 2016 02:29:35 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603020229.u222TZep017871@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 2 Mar 2016 02:29:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296295 - head/sys/dev/dpaa X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 02:29:37 -0000 Author: jhibbits Date: Wed Mar 2 02:29:35 2016 New Revision: 296295 URL: https://svnweb.freebsd.org/changeset/base/296295 Log: Use the m_extadd() function instead of deprecated MEXTADD(). Suggested by: glebius Modified: head/sys/dev/dpaa/if_dtsec_rm.c Modified: head/sys/dev/dpaa/if_dtsec_rm.c ============================================================================== --- head/sys/dev/dpaa/if_dtsec_rm.c Wed Mar 2 02:27:53 2016 (r296294) +++ head/sys/dev/dpaa/if_dtsec_rm.c Wed Mar 2 02:29:35 2016 (r296295) @@ -375,7 +375,7 @@ dtsec_rm_fqr_rx_callback(t_Handle app, t if (m == NULL) goto err; - MEXTADD(m, DPAA_FD_GET_ADDR(frame), FM_PORT_BUFFER_SIZE, + m_extadd(m, DPAA_FD_GET_ADDR(frame), FM_PORT_BUFFER_SIZE, dtsec_rm_fqr_mext_free, DPAA_FD_GET_ADDR(frame), sc, 0, EXT_NET_DRV); From owner-svn-src-head@freebsd.org Wed Mar 2 03:07:33 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 247E4AC06A4; Wed, 2 Mar 2016 03:07:33 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 EFA99183C; Wed, 2 Mar 2016 03:07:32 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2237VWw030494; Wed, 2 Mar 2016 03:07:31 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2237VJq030491; Wed, 2 Mar 2016 03:07:31 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020307.u2237VJq030491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 03:07:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296296 - in head/sys/dev/hyperv: include netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:07:33 -0000 Author: sephe Date: Wed Mar 2 03:07:31 2016 New Revision: 296296 URL: https://svnweb.freebsd.org/changeset/base/296296 Log: hyperv/hn: Make read buffer per-channel Submitted by: Hongjiang Zhang Reorganized by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Mar 2 02:29:35 2016 (r296295) +++ head/sys/dev/hyperv/include/hyperv.h Wed Mar 2 03:07:31 2016 (r296296) @@ -828,6 +828,7 @@ typedef struct hv_vmbus_channel { */ void *hv_chan_priv1; void *hv_chan_priv2; + void *hv_chan_priv3; } hv_vmbus_channel; #define HV_VMBUS_CHAN_ISPRIMARY(chan) ((chan)->primary_channel == NULL) Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 02:29:35 2016 (r296295) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 03:07:31 2016 (r296296) @@ -49,6 +49,9 @@ #include "hv_rndis.h" #include "hv_rndis_filter.h" +/* priv1 and priv1 are consumed by the main driver */ +#define hv_chan_rdbuf hv_chan_priv3 + MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver"); /* @@ -666,25 +669,30 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne netvsc_dev * hv_nv_on_device_add(struct hv_device *device, void *additional_info) { + struct hv_vmbus_channel *chan = device->channel; netvsc_dev *net_dev; int ret = 0; net_dev = hv_nv_alloc_net_device(device); - if (!net_dev) - goto cleanup; + if (net_dev == NULL) + return NULL; /* Initialize the NetVSC channel extension */ sema_init(&net_dev->channel_init_sema, 0, "netdev_sema"); + chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); + /* * Open the channel */ - ret = hv_vmbus_channel_open(device->channel, + ret = hv_vmbus_channel_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, - NULL, 0, hv_nv_on_channel_callback, device->channel); - if (ret != 0) + NULL, 0, hv_nv_on_channel_callback, chan); + if (ret != 0) { + free(chan->hv_chan_rdbuf, M_NETVSC); goto cleanup; + } /* * Connect with the NetVsp @@ -697,8 +705,8 @@ hv_nv_on_device_add(struct hv_device *de close: /* Now, we can close the channel safely */ - - hv_vmbus_channel_close(device->channel); + free(chan->hv_chan_rdbuf, M_NETVSC); + hv_vmbus_channel_close(chan); cleanup: /* @@ -736,6 +744,7 @@ hv_nv_on_device_remove(struct hv_device HV_CHANNEL_CLOSING_NONDESTRUCTIVE_STATE; } + free(device->channel->hv_chan_rdbuf, M_NETVSC); hv_vmbus_channel_close(device->channel); sema_destroy(&net_dev->channel_init_sema); @@ -975,7 +984,7 @@ hv_nv_on_channel_callback(void *xchan) if (net_dev == NULL) return; - buffer = net_dev->callback_buf; + buffer = chan->hv_chan_rdbuf; do { ret = hv_vmbus_channel_recv_packet_raw(chan, Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 02:29:35 2016 (r296295) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 03:07:31 2016 (r296296) @@ -923,8 +923,6 @@ typedef struct netvsc_dev_ { hv_bool_uint8_t destroy; /* Negotiated NVSP version */ uint32_t nvsp_version; - - uint8_t callback_buf[NETVSC_PACKET_SIZE]; } netvsc_dev; From owner-svn-src-head@freebsd.org Wed Mar 2 03:20:01 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53064AC0A6A; Wed, 2 Mar 2016 03:20:01 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1CD871D01; Wed, 2 Mar 2016 03:20:01 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u223K02S033416; Wed, 2 Mar 2016 03:20:00 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u223K0VC033415; Wed, 2 Mar 2016 03:20:00 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020320.u223K0VC033415@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 03:20:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296297 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:20:01 -0000 Author: sephe Date: Wed Mar 2 03:19:59 2016 New Revision: 296297 URL: https://svnweb.freebsd.org/changeset/base/296297 Log: hyperv/hn: Fix typo in comment MFC after: 1 week Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 03:07:31 2016 (r296296) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Mar 2 03:19:59 2016 (r296297) @@ -49,7 +49,7 @@ #include "hv_rndis.h" #include "hv_rndis_filter.h" -/* priv1 and priv1 are consumed by the main driver */ +/* priv1 and priv2 are consumed by the main driver */ #define hv_chan_rdbuf hv_chan_priv3 MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver"); From owner-svn-src-head@freebsd.org Wed Mar 2 03:26:58 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2B05AC0CC3; Wed, 2 Mar 2016 03:26:58 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5F99710A6; Wed, 2 Mar 2016 03:26:58 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u223Qv6e036167; Wed, 2 Mar 2016 03:26:57 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u223QuOv036162; Wed, 2 Mar 2016 03:26:56 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603020326.u223QuOv036162@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 2 Mar 2016 03:26:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296298 - in head/sys/dev: bhnd pci puc quicc scc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:26:58 -0000 Author: jhibbits Date: Wed Mar 2 03:26:56 2016 New Revision: 296298 URL: https://svnweb.freebsd.org/changeset/base/296298 Log: Replace some more default range checks with RMAN_IS_DEFAULT_RANGE(). This is a follow-on to r295832. Modified: head/sys/dev/bhnd/bhnd.c head/sys/dev/pci/pci_host_generic.c head/sys/dev/puc/puc.c head/sys/dev/quicc/quicc_core.c head/sys/dev/scc/scc_core.c Modified: head/sys/dev/bhnd/bhnd.c ============================================================================== --- head/sys/dev/bhnd/bhnd.c Wed Mar 2 03:19:59 2016 (r296297) +++ head/sys/dev/bhnd/bhnd.c Wed Mar 2 03:26:56 2016 (r296298) @@ -654,7 +654,7 @@ bhnd_generic_alloc_bhnd_resource(device_ bool passthrough; passthrough = (device_get_parent(child) != dev); - isdefault = (start == 0UL && end == ~0UL); + isdefault = RMAN_IS_DEFAULT_RANGE(start, end); /* the default RID must always be the first device port/region. */ if (!passthrough && *rid == 0) { Modified: head/sys/dev/pci/pci_host_generic.c ============================================================================== --- head/sys/dev/pci/pci_host_generic.c Wed Mar 2 03:19:59 2016 (r296297) +++ head/sys/dev/pci/pci_host_generic.c Wed Mar 2 03:26:56 2016 (r296298) @@ -710,7 +710,7 @@ generic_pcie_alloc_resource_ofw(device_t sc = device_get_softc(bus); - if ((start == 0UL) && (end == ~0UL)) { + if (RMAN_IS_DEFAULT_RANGE(start, end)) { if ((di = device_get_ivars(child)) == NULL) return (NULL); if (type == SYS_RES_IOPORT) Modified: head/sys/dev/puc/puc.c ============================================================================== --- head/sys/dev/puc/puc.c Wed Mar 2 03:19:59 2016 (r296297) +++ head/sys/dev/puc/puc.c Wed Mar 2 03:26:56 2016 (r296298) @@ -495,7 +495,7 @@ puc_bus_alloc_resource(device_t dev, dev return (NULL); /* We only support default allocations. */ - if (start != 0UL || end != ~0UL) + if (!RMAN_IS_DEFAULT_RANGE(start, end)) return (NULL); if (type == port->p_bar->b_type) Modified: head/sys/dev/quicc/quicc_core.c ============================================================================== --- head/sys/dev/quicc/quicc_core.c Wed Mar 2 03:19:59 2016 (r296297) +++ head/sys/dev/quicc/quicc_core.c Wed Mar 2 03:26:56 2016 (r296298) @@ -263,7 +263,7 @@ quicc_bus_alloc_resource(device_t dev, d return (NULL); /* We only support default allocations. */ - if (start != 0UL || end != ~0UL) + if (!RMAN_IS_DEFAULT_RANGE(start, end)) return (NULL); qd = device_get_ivars(child); Modified: head/sys/dev/scc/scc_core.c ============================================================================== --- head/sys/dev/scc/scc_core.c Wed Mar 2 03:19:59 2016 (r296297) +++ head/sys/dev/scc/scc_core.c Wed Mar 2 03:26:56 2016 (r296298) @@ -417,7 +417,7 @@ scc_bus_alloc_resource(device_t dev, dev return (NULL); /* We only support default allocations. */ - if (start != 0UL || end != ~0UL) + if (!RMAN_IS_DEFAULT_RANGE(start, end)) return (NULL); m = device_get_ivars(child); From owner-svn-src-head@freebsd.org Wed Mar 2 03:28:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 533FCAC0D64; Wed, 2 Mar 2016 03:28:59 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 24B36121F; Wed, 2 Mar 2016 03:28:59 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u223SwKr036268; Wed, 2 Mar 2016 03:28:58 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u223SwLU036267; Wed, 2 Mar 2016 03:28:58 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201603020328.u223SwLU036267@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 2 Mar 2016 03:28:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296299 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:28:59 -0000 Author: cy Date: Wed Mar 2 03:28:57 2016 New Revision: 296299 URL: https://svnweb.freebsd.org/changeset/base/296299 Log: Remove redundant NULL pointer comparison. Reported by: PVS-Studio (V595) in D5245 Differential Revision: D5245 Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:26:56 2016 (r296298) +++ head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:28:57 2016 (r296299) @@ -1951,10 +1951,6 @@ ipf_p_ftp_epsv(softf, fin, ip, nat, ftp, ap += *s++ - '0'; } - if (!s) { - return 0; -} - if (*s == '|') s++; if (*s == ')') From owner-svn-src-head@freebsd.org Wed Mar 2 03:40:27 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 417EBAC01E1; Wed, 2 Mar 2016 03:40:27 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (unknown [IPv6:2602:304:b010:ef20::f2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2840A1965; Wed, 2 Mar 2016 03:40:27 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id u223eHI1055157; Tue, 1 Mar 2016 19:40:21 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <201603020340.u223eHI1055157@gw.catspoiler.org> Date: Tue, 1 Mar 2016 19:40:16 -0800 (PST) From: Don Lewis Subject: Re: svn commit: r296299 - head/sys/contrib/ipfilter/netinet To: cy@FreeBSD.org cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org In-Reply-To: <201603020328.u223SwLU036267@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:40:27 -0000 On 2 Mar, Cy Schubert wrote: > Author: cy > Date: Wed Mar 2 03:28:57 2016 > New Revision: 296299 > URL: https://svnweb.freebsd.org/changeset/base/296299 > > Log: > Remove redundant NULL pointer comparison. > > Reported by: PVS-Studio (V595) in D5245 > Differential Revision: D5245 > > Modified: > head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > ============================================================================== > --- head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:26:56 2016 (r296298) > +++ head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:28:57 2016 (r296299) > @@ -1951,10 +1951,6 @@ ipf_p_ftp_epsv(softf, fin, ip, nat, ftp, > ap += *s++ - '0'; > } > > - if (!s) { > - return 0; > -} > - > if (*s == '|') > s++; > if (*s == ')') > I wonder if that test was meant to be: if (!*s) { especially since hitting the end of the string terminates the preceeding loop? From owner-svn-src-head@freebsd.org Wed Mar 2 03:41:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11CDCAC0361; Wed, 2 Mar 2016 03:41:55 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: from mail-oi0-x22e.google.com (mail-oi0-x22e.google.com [IPv6:2607:f8b0:4003:c06::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CBD921C6A; Wed, 2 Mar 2016 03:41:54 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: by mail-oi0-x22e.google.com with SMTP id m82so144634927oif.1; Tue, 01 Mar 2016 19:41:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc; bh=4Lc67emTl/NE/WamBRK5XgFgHXvqp5m6u40BChhfd58=; b=wlWj244t2AnHbld15JkP0Oxy9XY+YdY42JE5oSRDR/ssBCnNXfILgP5NTOIbzYGzzF opuCapUt7SfjosNgyeUGAn4HUiURd2fS2M8hRWzHLW7GMtUljI7d3HKj4oNbr0rsBdKf 7n+4o+s13oHKXfAP6dNdGZTmMda84gq/xfJYsSL73InbR4oUPeqcosZCh8TtilajTaGf GCmaXFd/yYKVuBIbmEmTmYwyM61+7+JiYZGnp3MXjMan7EmYzrGQsauJ9OXjD8aZGc/c bvenoBaBpnAqcFCDyhmC3ix2jcjFNvr0g+orLUVU7fXfakmdi6JJh7JCjkKEYRjg9Fyk xB6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc; bh=4Lc67emTl/NE/WamBRK5XgFgHXvqp5m6u40BChhfd58=; b=LVcYx5ei+eGIk2NECjfihe8R7nKPcZa8A1yaCqzfP7LLt6mSNJ2Y9DrTRk78jXPu2b vIyhat6ocwl6RXsKIWmTsw0Ew6GGXuHhJ4Ifynqif/cIU0+T5QFg5nrUg4IXePMiPd6N YRES0vvbFkWidyMfIdP835hrYTubEZXllB9gRdnfcUX0ZkGob2APl+6aTH9lycPjmhro vp9YZ+5OF/ZTScUj2LDry6lqB8ciDccW8X8cdHzLWes2M4P/TQ1Iai7mmOMODh1YizJw ZU5qjoH8JizA4S5ewMKN+lxy6XSSO7JlihSOZqVa1oZ73xFSzbb6eP5O0PXX6FPdr0fC e4xg== X-Gm-Message-State: AD7BkJI+xqflkvN9Xnga0yw44grFQGhXNK/Y/BvGiMek0I/nq4MOHLnIbeWKsGe+8D8ArqpTieyEt59n2V5R+g== MIME-Version: 1.0 X-Received: by 10.202.170.70 with SMTP id t67mr4113161oie.60.1456890114054; Tue, 01 Mar 2016 19:41:54 -0800 (PST) Received: by 10.182.72.67 with HTTP; Tue, 1 Mar 2016 19:41:53 -0800 (PST) Reply-To: araujo@FreeBSD.org In-Reply-To: <201603020340.u223eHI1055157@gw.catspoiler.org> References: <201603020328.u223SwLU036267@repo.freebsd.org> <201603020340.u223eHI1055157@gw.catspoiler.org> Date: Wed, 2 Mar 2016 11:41:53 +0800 Message-ID: Subject: Re: svn commit: r296299 - head/sys/contrib/ipfilter/netinet From: Marcelo Araujo To: Don Lewis Cc: Cy Schubert , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 03:41:55 -0000 2016-03-02 11:40 GMT+08:00 Don Lewis : > On 2 Mar, Cy Schubert wrote: > > Author: cy > > Date: Wed Mar 2 03:28:57 2016 > > New Revision: 296299 > > URL: https://svnweb.freebsd.org/changeset/base/296299 > > > > Log: > > Remove redundant NULL pointer comparison. > > > > Reported by: PVS-Studio (V595) in D5245 > > Differential Revision: D5245 > > > > Modified: > > head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > > > Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > > ============================================================================== > > --- head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 > 03:26:56 2016 (r296298) > > +++ head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 > 03:28:57 2016 (r296299) > > @@ -1951,10 +1951,6 @@ ipf_p_ftp_epsv(softf, fin, ip, nat, ftp, > > ap += *s++ - '0'; > > } > > > > - if (!s) { > > - return 0; > > -} > > - > > if (*s == '|') > > s++; > > if (*s == ')') > > > > I wonder if that test was meant to be: > if (!*s) { > especially since hitting the end of the string terminates the preceeding > loop? > > > +1 here, looks like it meant to be !*s. Best, -- -- Marcelo Araujo (__)araujo@FreeBSD.org \\\'',)http://www.FreeBSD.org \/ \ ^ Power To Server. .\. /_) From owner-svn-src-head@freebsd.org Wed Mar 2 04:12:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1E48AC0C3E; Wed, 2 Mar 2016 04:12:13 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B440182A; Wed, 2 Mar 2016 04:12:13 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id ay8uaj7vPKTIZay8vawR9n; Tue, 01 Mar 2016 21:12:11 -0700 X-Authority-Analysis: v=2.1 cv=WIDfJiYR c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=7OsogOcEt9IA:10 a=pkK9A6EYAAAA:8 a=6I5d2MoRAAAA:8 a=BWvPGDcYAAAA:8 a=YxBL1-UpAAAA:8 a=FL7cRUw1dwXGNDBT_f0A:9 a=CjuIK1q_8ugA:10 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTP id E4E0B13777; Tue, 1 Mar 2016 20:12:07 -0800 (PST) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id u224BnPk005135; Tue, 1 Mar 2016 20:11:49 -0800 (PST) (envelope-from Cy.Schubert@komquats.com) Message-Id: <201603020411.u224BnPk005135@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.komquats.com/ To: Don Lewis cc: cy@FreeBSD.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296299 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from Don Lewis of "Tue, 01 Mar 2016 19:40:16 -0800." <201603020340.u223eHI1055157@gw.catspoiler.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 01 Mar 2016 20:11:49 -0800 X-CMAE-Envelope: MS4wfO2LgSQPjdL7Ikcae6hXMZaEeD4eTncCwZ0MpYlTJQXdr3sbsbF3QKzv+ljlw9AzCyETEYm8jSaCNOPo7Cbzu7VuywEmlhEnraliJoUWpqluPLmW4M+7 aXXtseitjmVGhBCmaeTNNKkeDiFsC7u7q1xIF92Wn92zZ4gHJIr05sThbnihSrpTlECRcx8VJK2120V85q7Jzt8sEkoh9gOqw93tkL2nd1iuvuEfJ5/q+gMO 0vc6+yIg7J64WSd5UCyZCF5Zmfp8+S3GOQfA+2enyjLhY360UlREGsgluVYytRJDFSjALOk2NL9Z3N7LieTqNQ== X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 04:12:14 -0000 In message <201603020340.u223eHI1055157@gw.catspoiler.org>, Don Lewis writes: > On 2 Mar, Cy Schubert wrote: > > Author: cy > > Date: Wed Mar 2 03:28:57 2016 > > New Revision: 296299 > > URL: https://svnweb.freebsd.org/changeset/base/296299 > > > > Log: > > Remove redundant NULL pointer comparison. > > > > Reported by: PVS-Studio (V595) in D5245 > > Differential Revision: D5245 > > > > Modified: > > head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > > > Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > =========================================================================== > === > > --- head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:26:56 201 > 6 (r296298) > > +++ head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 03:28:57 201 > 6 (r296299) > > @@ -1951,10 +1951,6 @@ ipf_p_ftp_epsv(softf, fin, ip, nat, ftp, > > ap += *s++ - '0'; > > } > > > > - if (!s) { > > - return 0; > > -} > > - > > if (*s == '|') > > s++; > > if (*s == ')') > > > > I wonder if that test was meant to be: > if (!*s) { > especially since hitting the end of the string terminates the preceeding > loop? > The string is terminated by, if ((*s != '\r') || (*(s + 1) != '\n')) { return 0; } at line 1963. -- Cheers, Cy Schubert or FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Wed Mar 2 04:17:26 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67CEAAC0E28; Wed, 2 Mar 2016 04:17:26 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 08B801AE7; Wed, 2 Mar 2016 04:17:25 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id ay96aD4RN0h8Nay97aylWo; Tue, 01 Mar 2016 21:12:22 -0700 X-Authority-Analysis: v=2.1 cv=VIR9547X c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=7OsogOcEt9IA:10 a=6I5d2MoRAAAA:8 a=BWvPGDcYAAAA:8 a=YxBL1-UpAAAA:8 a=FXTuGqRcememwQUxFMwA:9 a=CjuIK1q_8ugA:10 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTP id A174013B1F; Tue, 1 Mar 2016 20:12:20 -0800 (PST) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id u224C4g6005145; Tue, 1 Mar 2016 20:12:04 -0800 (PST) (envelope-from Cy.Schubert@komquats.com) Message-Id: <201603020412.u224C4g6005145@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.komquats.com/ To: araujo@FreeBSD.org cc: Don Lewis , Cy Schubert , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Subject: Re: svn commit: r296299 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from Marcelo Araujo of "Wed, 02 Mar 2016 11:41:53 +0800." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 01 Mar 2016 20:12:04 -0800 X-CMAE-Envelope: MS4wfBUKmEiLdUUrjO5d3ZrIB8o9YfrgDaT7pK2Ousr4drfaiDkssQ9pb/w5ErcI7/VQszD3ojTpIHW7MSqW/2olfC27cNOmB+TEFXn2CFTfnHCioiwqyOh7 unBwSRTFhFFZmXEPrUA5Mdm3kl11yxQxsRVL/gSwwbj+PVmbqdQ2KDd2LFruP0kpkuSEOGp0yyaTk87z1bhuLeQ1/ofjIXt+In/gQdfbo983pmbC867p1/pj EZ5bVTXjM9+7XsrrPnJBVLmqNG0OgyjrUUSHnXdSWMwxybYQZ2/0MItnE1GUdQiXOHh/w2WRGMmlsHyRROOgUANc3bzM/4On+8y7nnqrswM= X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 04:17:26 -0000 In message , Marcelo Araujo writes: > --001a113c48b0b9a687052d08a983 > 2016-03-02 11:40 GMT+08:00 Don Lewis : > > > On 2 Mar, Cy Schubert wrote: > > > Author: cy > > > Date: Wed Mar 2 03:28:57 2016 > > > New Revision: 296299 > > > URL: https://svnweb.freebsd.org/changeset/base/296299 > > > > > > Log: > > > Remove redundant NULL pointer comparison. > > > > > > Reported by: PVS-Studio (V595) in D5245 > > > Differential Revision: D5245 > > > > > > Modified: > > > head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > > > > > Modified: head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c > > > > > =========================================================================== > === > > > --- head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 > > 03:26:56 2016 (r296298) > > > +++ head/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c Wed Mar 2 > > 03:28:57 2016 (r296299) > > > @@ -1951,10 +1951,6 @@ ipf_p_ftp_epsv(softf, fin, ip, nat, ftp, > > > ap += *s++ - '0'; > > > } > > > > > > - if (!s) { > > > - return 0; > > > -} > > > - > > > if (*s == '|') > > > s++; > > > if (*s == ')') > > > > > > > I wonder if that test was meant to be: > > if (!*s) { > > especially since hitting the end of the string terminates the preceeding > > loop? > > > > > > > +1 here, looks like it meant to be !*s. The preceding is terminated by a linefeed at line 1963. -- Cheers, Cy Schubert or FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Wed Mar 2 04:56:37 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67F6AAC0A7B; Wed, 2 Mar 2016 04:56:37 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3B4DF1940; Wed, 2 Mar 2016 04:56:37 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u224uaZU062794; Wed, 2 Mar 2016 04:56:36 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u224uauH062793; Wed, 2 Mar 2016 04:56:36 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201603020456.u224uauH062793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 2 Mar 2016 04:56:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296300 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 04:56:37 -0000 Author: markj Date: Wed Mar 2 04:56:36 2016 New Revision: 296300 URL: https://svnweb.freebsd.org/changeset/base/296300 Log: Fix a typo that prevented pw(8) from setting a user's UID to 0. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Modified: head/usr.sbin/pw/pw_user.c Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Wed Mar 2 03:28:57 2016 (r296299) +++ head/usr.sbin/pw/pw_user.c Wed Mar 2 04:56:36 2016 (r296300) @@ -1654,7 +1654,7 @@ pw_user_mod(int argc, char **argv, char } } - if (id > 0 && pwd->pw_uid != id) { + if (id >= 0 && pwd->pw_uid != id) { pwd->pw_uid = id; edited = true; if (pwd->pw_uid != 0 && strcmp(pwd->pw_name, "root") == 0) From owner-svn-src-head@freebsd.org Wed Mar 2 04:58:52 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 987D5AC0B2B; Wed, 2 Mar 2016 04:58:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 50C511AB3; Wed, 2 Mar 2016 04:58:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u224wpeS062906; Wed, 2 Mar 2016 04:58:51 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u224wpEQ062904; Wed, 2 Mar 2016 04:58:51 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201603020458.u224wpEQ062904@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 2 Mar 2016 04:58:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296301 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 04:58:52 -0000 Author: markj Date: Wed Mar 2 04:58:51 2016 New Revision: 296301 URL: https://svnweb.freebsd.org/changeset/base/296301 Log: Document m_catpkt(), and remove misinformation about m_cat(9). Since m_cat() may copy data from the second mbuf chain into the last mbuf of the first chain, it may free the first mbuf of the second chain. Thus, the second chain is not guaranteed to be valid after m_cat() returns. Reviewed by: glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5497 Modified: head/share/man/man9/Makefile head/share/man/man9/mbuf.9 Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Wed Mar 2 04:56:36 2016 (r296300) +++ head/share/man/man9/Makefile Wed Mar 2 04:58:51 2016 (r296301) @@ -1053,6 +1053,7 @@ MLINKS+=\ mbuf.9 m_append.9 \ mbuf.9 m_apply.9 \ mbuf.9 m_cat.9 \ + mbuf.9 m_catpkt.9 \ mbuf.9 MCHTYPE.9 \ mbuf.9 MCLGET.9 \ mbuf.9 m_collapse.9 \ Modified: head/share/man/man9/mbuf.9 ============================================================================== --- head/share/man/man9/mbuf.9 Wed Mar 2 04:56:36 2016 (r296300) +++ head/share/man/man9/mbuf.9 Wed Mar 2 04:58:51 2016 (r296301) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 11, 2015 +.Dd February 29, 2016 .Dt MBUF 9 .Os .\" @@ -122,6 +122,8 @@ .Fc .Ft void .Fn m_cat "struct mbuf *m" "struct mbuf *n" +.Ft void +.Fn m_catpkt "struct mbuf *m" "struct mbuf *n" .Ft u_int .Fn m_fixhdr "struct mbuf *mbuf" .Ft void @@ -907,12 +909,26 @@ to Both .Vt mbuf chains must be of the same type. -.Fa N -is still valid after the function returned. -.Sy Note : -It does not handle -.Dv M_PKTHDR -and friends. +.Fa n +is not guaranteed to be valid after +.Fn m_cat +returns. +.Fn m_cat +does not update any packet header fields or free mbuf tags. +.\" +.It Fn m_catpkt m n +A variant of +.Fn m_cat +that operates on packets. +Both +.Fa m +and +.Fa n +must contain packet headers. +.Fa n +is not guaranteed to be valid after +.Fn m_catpkt +returns. .\" .It Fn m_split mbuf len how Partition an From owner-svn-src-head@freebsd.org Wed Mar 2 05:01:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3AD0AC0C24; Wed, 2 Mar 2016 05:01:59 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 81F5D1D5D; Wed, 2 Mar 2016 05:01:59 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2251wie065669; Wed, 2 Mar 2016 05:01:58 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2251w8n065668; Wed, 2 Mar 2016 05:01:58 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201603020501.u2251w8n065668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 2 Mar 2016 05:01:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296302 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 05:01:59 -0000 Author: markj Date: Wed Mar 2 05:01:58 2016 New Revision: 296302 URL: https://svnweb.freebsd.org/changeset/base/296302 Log: Use m_catpkt(9) to avoid a possible use-after-free in ieee80211_defrag(). m is not guaranteed to be valid after m_cat() returns. The effects of this are most noticeable when INVARIANTS is enabled, since m's header length field is given a value of 0xdeadc0de by the trash dtor. Reviewed by: glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5497 Modified: head/sys/net80211/ieee80211_input.c Modified: head/sys/net80211/ieee80211_input.c ============================================================================== --- head/sys/net80211/ieee80211_input.c Wed Mar 2 04:58:51 2016 (r296301) +++ head/sys/net80211/ieee80211_input.c Wed Mar 2 05:01:58 2016 (r296302) @@ -249,9 +249,7 @@ ieee80211_defrag(struct ieee80211_node * mfrag = m; } else { /* concatenate */ m_adj(m, hdrspace); /* strip header */ - m_cat(mfrag, m); - /* NB: m_cat doesn't update the packet header */ - mfrag->m_pkthdr.len += m->m_pkthdr.len; + m_catpkt(mfrag, m); /* track last seqnum and fragno */ lwh = mtod(mfrag, struct ieee80211_frame *); *(uint16_t *) lwh->i_seq = *(uint16_t *) wh->i_seq; From owner-svn-src-head@freebsd.org Wed Mar 2 05:04:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEC6BAC0EC7; Wed, 2 Mar 2016 05:04:05 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 7B62511BA; Wed, 2 Mar 2016 05:04:05 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u225440o065781; Wed, 2 Mar 2016 05:04:04 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22544dS065780; Wed, 2 Mar 2016 05:04:04 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201603020504.u22544dS065780@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 2 Mar 2016 05:04:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296303 - head/sys/netipsec X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 05:04:05 -0000 Author: markj Date: Wed Mar 2 05:04:04 2016 New Revision: 296303 URL: https://svnweb.freebsd.org/changeset/base/296303 Log: Set tres to NULL to avoid a double free if the m_pullup() below fails. Reviewed by: glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5497 Modified: head/sys/netipsec/key.c Modified: head/sys/netipsec/key.c ============================================================================== --- head/sys/netipsec/key.c Wed Mar 2 05:01:58 2016 (r296302) +++ head/sys/netipsec/key.c Wed Mar 2 05:04:04 2016 (r296303) @@ -3490,6 +3490,7 @@ key_setdumpsa(struct secasvar *sav, u_in } m_cat(result, tres); + tres = NULL; if (result->m_len < sizeof(struct sadb_msg)) { result = m_pullup(result, sizeof(struct sadb_msg)); if (result == NULL) From owner-svn-src-head@freebsd.org Wed Mar 2 05:05:03 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1C34AC0F26; Wed, 2 Mar 2016 05:05:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C50081326; Wed, 2 Mar 2016 05:05:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22552BY065861; Wed, 2 Mar 2016 05:05:02 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22552Ud065860; Wed, 2 Mar 2016 05:05:02 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201603020505.u22552Ud065860@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 2 Mar 2016 05:05:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296304 - head/sys/dev/usb/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 05:05:04 -0000 Author: markj Date: Wed Mar 2 05:05:02 2016 New Revision: 296304 URL: https://svnweb.freebsd.org/changeset/base/296304 Log: Use m_catpkt(9) to ensure that pkthdr fields are updated properly. Reviewed by: glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5497 Modified: head/sys/dev/usb/net/uhso.c Modified: head/sys/dev/usb/net/uhso.c ============================================================================== --- head/sys/dev/usb/net/uhso.c Wed Mar 2 05:04:04 2016 (r296303) +++ head/sys/dev/usb/net/uhso.c Wed Mar 2 05:05:02 2016 (r296304) @@ -1666,7 +1666,7 @@ uhso_if_rxflush(void *arg) struct ip6_hdr *ip6; #endif uint16_t iplen; - int len, isr; + int isr; m = NULL; mwait = sc->sc_mwait; @@ -1686,13 +1686,8 @@ uhso_if_rxflush(void *arg) UHSO_DPRINTF(3, "partial m0=%p(%d), concat w/ m=%p(%d)\n", m0, m0->m_len, m, m->m_len); - len = m->m_len + m0->m_len; - - /* Concat mbufs and fix headers */ - m_cat(m0, m); - m0->m_pkthdr.len = len; - m->m_flags &= ~M_PKTHDR; + m_catpkt(m0, m); m = m_pullup(m0, sizeof(struct ip)); if (m == NULL) { if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); From owner-svn-src-head@freebsd.org Wed Mar 2 05:24:57 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9050BAC06C2; Wed, 2 Mar 2016 05:24:57 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 61B861C38; Wed, 2 Mar 2016 05:24:57 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u225Ouer071617; Wed, 2 Mar 2016 05:24:56 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u225Ouc4071613; Wed, 2 Mar 2016 05:24:56 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603020524.u225Ouc4071613@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 2 Mar 2016 05:24:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296305 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 05:24:57 -0000 Author: sephe Date: Wed Mar 2 05:24:55 2016 New Revision: 296305 URL: https://svnweb.freebsd.org/changeset/base/296305 Log: hyperv/hn: Make # of rings configurable And since the host may not being able to allocate the # of rings requested by us, save the # of rings allocated by the host in the ring_inuse counters; use ring_inuse counters for run time operation. This paves the way for the upcoming vRSS support. MFC after: 1 week Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 05:05:02 2016 (r296304) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Mar 2 05:24:55 2016 (r296305) @@ -1078,9 +1078,11 @@ typedef struct hn_softc { netvsc_dev *net_dev; int hn_rx_ring_cnt; + int hn_rx_ring_inuse; struct hn_rx_ring *hn_rx_ring; int hn_tx_ring_cnt; + int hn_tx_ring_inuse; struct hn_tx_ring *hn_tx_ring; int hn_tx_chimney_max; struct taskqueue *hn_tx_taskq; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Mar 2 05:05:02 2016 (r296304) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Mar 2 05:24:55 2016 (r296305) @@ -279,6 +279,14 @@ static int hn_use_if_start = 0; SYSCTL_INT(_hw_hn, OID_AUTO, use_if_start, CTLFLAG_RDTUN, &hn_use_if_start, 0, "Use if_start TX method"); +static int hn_ring_cnt = 1; +SYSCTL_INT(_hw_hn, OID_AUTO, ring_cnt, CTLFLAG_RDTUN, + &hn_ring_cnt, 0, "# of TX/RX rings to used"); + +static int hn_single_tx_ring = 1; +SYSCTL_INT(_hw_hn, OID_AUTO, single_tx_ring, CTLFLAG_RDTUN, + &hn_single_tx_ring, 0, "Use one TX ring"); + /* * Forward declarations */ @@ -304,13 +312,13 @@ static int hn_tx_conf_int_sysctl(SYSCTL_ static int hn_check_iplen(const struct mbuf *, int); static int hn_create_tx_ring(struct hn_softc *, int); static void hn_destroy_tx_ring(struct hn_tx_ring *); -static int hn_create_tx_data(struct hn_softc *); +static int hn_create_tx_data(struct hn_softc *, int); static void hn_destroy_tx_data(struct hn_softc *); static void hn_start_taskfunc(void *, int); static void hn_start_txeof_taskfunc(void *, int); static void hn_stop_tx_tasks(struct hn_softc *); static int hn_encap(struct hn_tx_ring *, struct hn_txdesc *, struct mbuf **); -static void hn_create_rx_data(struct hn_softc *sc); +static void hn_create_rx_data(struct hn_softc *sc, int); static void hn_destroy_rx_data(struct hn_softc *sc); static void hn_set_tx_chimney_size(struct hn_softc *, int); @@ -386,7 +394,7 @@ netvsc_attach(device_t dev) hn_softc_t *sc; int unit = device_get_unit(dev); struct ifnet *ifp = NULL; - int error; + int error, ring_cnt, tx_ring_cnt; #if __FreeBSD_version >= 1100045 int tso_maxlen; #endif @@ -427,11 +435,24 @@ netvsc_attach(device_t dev) ifp = sc->hn_ifp = if_alloc(IFT_ETHER); ifp->if_softc = sc; - error = hn_create_tx_data(sc); + ring_cnt = hn_ring_cnt; + if (ring_cnt <= 0 || ring_cnt >= mp_ncpus) + ring_cnt = mp_ncpus; + + tx_ring_cnt = ring_cnt; + if (hn_single_tx_ring || hn_use_if_start) { + /* + * - Explicitly asked to use single TX ring. + * - ifnet.if_start is used; ifnet.if_start only needs + * one TX ring. + */ + tx_ring_cnt = 1; + } + error = hn_create_tx_data(sc, tx_ring_cnt); if (error) goto failed; - hn_create_rx_data(sc); + hn_create_rx_data(sc, ring_cnt); /* * Associate the first TX/RX ring w/ the primary channel. @@ -478,10 +499,16 @@ netvsc_attach(device_t dev) IFCAP_LRO; ifp->if_hwassist = sc->hn_tx_ring[0].hn_csum_assist | CSUM_TSO; - error = hv_rf_on_device_add(device_ctx, &device_info); + error = hv_rf_on_device_add(device_ctx, &device_info, ring_cnt); if (error) goto failed; + /* TODO: vRSS */ + sc->hn_tx_ring_inuse = 1; + sc->hn_rx_ring_inuse = 1; + device_printf(dev, "%d TX ring, %d RX ring\n", + sc->hn_tx_ring_inuse, sc->hn_rx_ring_inuse); + if (device_info.link_state == 0) { sc->hn_carrier = 1; } @@ -1397,7 +1424,7 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, HN_LRO_LENLIM_MIN(ifp)) { int i; - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { sc->hn_rx_ring[i].hn_lro.lro_length_lim = HN_LRO_LENLIM_MIN(ifp); } @@ -1434,7 +1461,8 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, NV_UNLOCK(sc); break; } - error = hv_rf_on_device_add(hn_dev, &device_info); + error = hv_rf_on_device_add(hn_dev, &device_info, + sc->hn_rx_ring_inuse); if (error) { NV_LOCK(sc); sc->temp_unusable = FALSE; @@ -1587,7 +1615,7 @@ hn_stop(hn_softc_t *sc) atomic_clear_int(&ifp->if_drv_flags, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)); - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) sc->hn_tx_ring[i].hn_oactive = 0; if_link_state_change(ifp, LINK_STATE_DOWN); @@ -1680,7 +1708,7 @@ hn_ifinit_locked(hn_softc_t *sc) } atomic_clear_int(&ifp->if_drv_flags, IFF_DRV_OACTIVE); - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) sc->hn_tx_ring[i].hn_oactive = 0; atomic_set_int(&ifp->if_drv_flags, IFF_DRV_RUNNING); @@ -1745,7 +1773,7 @@ hn_lro_lenlim_sysctl(SYSCTL_HANDLER_ARGS return EINVAL; NV_LOCK(sc); - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) sc->hn_rx_ring[i].hn_lro.lro_length_lim = lenlim; NV_UNLOCK(sc); return 0; @@ -1775,7 +1803,7 @@ hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS */ --ackcnt; NV_LOCK(sc); - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) sc->hn_rx_ring[i].hn_lro.lro_ackcnt_lim = ackcnt; NV_UNLOCK(sc); return 0; @@ -1799,7 +1827,7 @@ hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARG return error; NV_LOCK(sc); - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { struct hn_rx_ring *rxr = &sc->hn_rx_ring[i]; if (on) @@ -1838,7 +1866,7 @@ hn_rx_stat_ulong_sysctl(SYSCTL_HANDLER_A u_long stat; stat = 0; - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { rxr = &sc->hn_rx_ring[i]; stat += *((u_long *)((uint8_t *)rxr + ofs)); } @@ -1848,7 +1876,7 @@ hn_rx_stat_ulong_sysctl(SYSCTL_HANDLER_A return error; /* Zero out this stat. */ - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { rxr = &sc->hn_rx_ring[i]; *((u_long *)((uint8_t *)rxr + ofs)) = 0; } @@ -1864,7 +1892,7 @@ hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARG uint64_t stat; stat = 0; - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { rxr = &sc->hn_rx_ring[i]; stat += *((uint64_t *)((uint8_t *)rxr + ofs)); } @@ -1874,7 +1902,7 @@ hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARG return error; /* Zero out this stat. */ - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_rx_ring_inuse; ++i) { rxr = &sc->hn_rx_ring[i]; *((uint64_t *)((uint8_t *)rxr + ofs)) = 0; } @@ -1890,7 +1918,7 @@ hn_tx_stat_ulong_sysctl(SYSCTL_HANDLER_A u_long stat; stat = 0; - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { txr = &sc->hn_tx_ring[i]; stat += *((u_long *)((uint8_t *)txr + ofs)); } @@ -1900,7 +1928,7 @@ hn_tx_stat_ulong_sysctl(SYSCTL_HANDLER_A return error; /* Zero out this stat. */ - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { txr = &sc->hn_tx_ring[i]; *((u_long *)((uint8_t *)txr + ofs)) = 0; } @@ -1922,7 +1950,7 @@ hn_tx_conf_int_sysctl(SYSCTL_HANDLER_ARG return error; NV_LOCK(sc); - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { txr = &sc->hn_tx_ring[i]; *((int *)((uint8_t *)txr + ofs)) = conf; } @@ -2019,7 +2047,7 @@ hn_dma_map_paddr(void *arg, bus_dma_segm } static void -hn_create_rx_data(struct hn_softc *sc) +hn_create_rx_data(struct hn_softc *sc, int ring_cnt) { struct sysctl_oid_list *child; struct sysctl_ctx_list *ctx; @@ -2031,7 +2059,9 @@ hn_create_rx_data(struct hn_softc *sc) #endif int i; - sc->hn_rx_ring_cnt = 1; /* TODO: vRSS */ + sc->hn_rx_ring_cnt = ring_cnt; + sc->hn_rx_ring_inuse = sc->hn_rx_ring_cnt; + sc->hn_rx_ring = malloc(sizeof(struct hn_rx_ring) * sc->hn_rx_ring_cnt, M_NETVSC, M_WAITOK | M_ZERO); @@ -2132,6 +2162,10 @@ hn_create_rx_data(struct hn_softc *sc) CTLTYPE_ULONG | CTLFLAG_RW, sc, __offsetof(struct hn_rx_ring, hn_small_pkts), hn_rx_stat_ulong_sysctl, "LU", "# of small packets received"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "rx_ring_cnt", + CTLFLAG_RD, &sc->hn_rx_ring_cnt, 0, "# created RX rings"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "rx_ring_inuse", + CTLFLAG_RD, &sc->hn_rx_ring_inuse, 0, "# used RX rings"); } static void @@ -2152,6 +2186,7 @@ hn_destroy_rx_data(struct hn_softc *sc) sc->hn_rx_ring = NULL; sc->hn_rx_ring_cnt = 0; + sc->hn_rx_ring_inuse = 0; } static int @@ -2388,18 +2423,15 @@ hn_destroy_tx_ring(struct hn_tx_ring *tx } static int -hn_create_tx_data(struct hn_softc *sc) +hn_create_tx_data(struct hn_softc *sc, int ring_cnt) { struct sysctl_oid_list *child; struct sysctl_ctx_list *ctx; int i; - if (hn_use_if_start) { - /* ifnet.if_start only needs one TX ring */ - sc->hn_tx_ring_cnt = 1; - } else { - sc->hn_tx_ring_cnt = 1; /* TODO: vRSS */ - } + sc->hn_tx_ring_cnt = ring_cnt; + sc->hn_tx_ring_inuse = sc->hn_tx_ring_cnt; + sc->hn_tx_ring = malloc(sizeof(struct hn_tx_ring) * sc->hn_tx_ring_cnt, M_NETVSC, M_WAITOK | M_ZERO); @@ -2458,6 +2490,10 @@ hn_create_tx_data(struct hn_softc *sc) hn_tx_conf_int_sysctl, "I", "Always schedule transmission " "instead of doing direct transmission"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "tx_ring_cnt", + CTLFLAG_RD, &sc->hn_tx_ring_cnt, 0, "# created TX rings"); + SYSCTL_ADD_INT(ctx, child, OID_AUTO, "tx_ring_inuse", + CTLFLAG_RD, &sc->hn_tx_ring_inuse, 0, "# used TX rings"); return 0; } @@ -2468,7 +2504,7 @@ hn_set_tx_chimney_size(struct hn_softc * int i; NV_LOCK(sc); - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) sc->hn_tx_ring[i].hn_tx_chimney_size = chimney_size; NV_UNLOCK(sc); } @@ -2488,6 +2524,7 @@ hn_destroy_tx_data(struct hn_softc *sc) sc->hn_tx_ring = NULL; sc->hn_tx_ring_cnt = 0; + sc->hn_tx_ring_inuse = 0; } static void @@ -2516,7 +2553,7 @@ hn_stop_tx_tasks(struct hn_softc *sc) { int i; - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { struct hn_tx_ring *txr = &sc->hn_tx_ring[i]; taskqueue_drain(txr->hn_tx_taskq, &txr->hn_tx_task); @@ -2592,7 +2629,7 @@ hn_transmit(struct ifnet *ifp, struct mb * Select the TX ring based on flowid */ if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) - idx = m->m_pkthdr.flowid % sc->hn_tx_ring_cnt; + idx = m->m_pkthdr.flowid % sc->hn_tx_ring_inuse; txr = &sc->hn_tx_ring[idx]; error = drbr_enqueue(ifp, txr->hn_mbuf_br, m); @@ -2624,7 +2661,7 @@ hn_xmit_qflush(struct ifnet *ifp) struct hn_softc *sc = ifp->if_softc; int i; - for (i = 0; i < sc->hn_tx_ring_cnt; ++i) { + for (i = 0; i < sc->hn_tx_ring_inuse; ++i) { struct hn_tx_ring *txr = &sc->hn_tx_ring[i]; struct mbuf *m; Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Mar 2 05:05:02 2016 (r296304) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Mar 2 05:24:55 2016 (r296305) @@ -815,7 +815,8 @@ hv_rf_close_device(rndis_device *device) * RNDIS filter on device add */ int -hv_rf_on_device_add(struct hv_device *device, void *additl_info) +hv_rf_on_device_add(struct hv_device *device, void *additl_info, + int nchan __unused) { int ret; netvsc_dev *net_dev; Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Mar 2 05:05:02 2016 (r296304) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Mar 2 05:24:55 2016 (r296305) @@ -101,7 +101,7 @@ int hv_rf_on_receive(netvsc_dev *net_dev struct hv_vmbus_channel *chan, netvsc_packet *pkt); void hv_rf_receive_rollup(netvsc_dev *net_dev); void hv_rf_channel_rollup(struct hv_vmbus_channel *chan); -int hv_rf_on_device_add(struct hv_device *device, void *additl_info); +int hv_rf_on_device_add(struct hv_device *device, void *additl_info, int nchan); int hv_rf_on_device_remove(struct hv_device *device, boolean_t destroy_channel); int hv_rf_on_open(struct hv_device *device); int hv_rf_on_close(struct hv_device *device); From owner-svn-src-head@freebsd.org Wed Mar 2 08:40:01 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BC45ABFD61; Wed, 2 Mar 2016 08:40:01 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E1CE21E88; Wed, 2 Mar 2016 08:40:00 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u228dxiM028788; Wed, 2 Mar 2016 08:39:59 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u228dxvG028785; Wed, 2 Mar 2016 08:39:59 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201603020839.u228dxvG028785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Wed, 2 Mar 2016 08:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296307 - head/sys/arm64/cavium X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 08:40:01 -0000 Author: wma Date: Wed Mar 2 08:39:59 2016 New Revision: 296307 URL: https://svnweb.freebsd.org/changeset/base/296307 Log: Improve ThunderX PEM driver to work on pass2 revision Things changed: * do not allocate 4GB of SLI space, because it's the waste of system resources. Allocate only small portions when needed. * provide own implementation of activate_resource which performs address translation between PCI bus and host PA address space. This is temporary solution, should be replaced by bus_map_resource once implemented. Obtained from: Semihalf Sponsored by: Cavium Approved by: cognet (mentor) Reviewed by: jhb Differential revision: https://reviews.freebsd.org/D5294 Modified: head/sys/arm64/cavium/thunder_pcie_common.c head/sys/arm64/cavium/thunder_pcie_common.h head/sys/arm64/cavium/thunder_pcie_pem.c Modified: head/sys/arm64/cavium/thunder_pcie_common.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.c Wed Mar 2 05:43:16 2016 (r296306) +++ head/sys/arm64/cavium/thunder_pcie_common.c Wed Mar 2 08:39:59 2016 (r296307) @@ -106,6 +106,28 @@ range_addr_is_phys(struct pcie_range *ra } uint64_t +range_addr_phys_to_pci(struct pcie_range *ranges, uint64_t phys_addr) +{ + struct pcie_range *r; + uint64_t offset; + int tuple; + + /* Find physical address corresponding to given bus address */ + for (tuple = 0; tuple < MAX_RANGES_TUPLES; tuple++) { + r = &ranges[tuple]; + if (phys_addr >= r->phys_base && + phys_addr < (r->phys_base + r->size)) { + /* Given phys addr is in this range. + * Translate phys addr to bus addr. + */ + offset = phys_addr - r->phys_base; + return (r->pci_base + offset); + } + } + return (0); +} + +uint64_t range_addr_pci_to_phys(struct pcie_range *ranges, uint64_t pci_addr) { struct pcie_range *r; Modified: head/sys/arm64/cavium/thunder_pcie_common.h ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_common.h Wed Mar 2 05:43:16 2016 (r296306) +++ head/sys/arm64/cavium/thunder_pcie_common.h Wed Mar 2 08:39:59 2016 (r296307) @@ -36,6 +36,7 @@ MALLOC_DECLARE(M_THUNDER_PCIE); uint32_t range_addr_is_pci(struct pcie_range *, uint64_t, uint64_t); uint32_t range_addr_is_phys(struct pcie_range *, uint64_t, uint64_t); +uint64_t range_addr_phys_to_pci(struct pcie_range *, uint64_t); uint64_t range_addr_pci_to_phys(struct pcie_range *, uint64_t); int thunder_pcie_identify_ecam(device_t, int *); Modified: head/sys/arm64/cavium/thunder_pcie_pem.c ============================================================================== --- head/sys/arm64/cavium/thunder_pcie_pem.c Wed Mar 2 05:43:16 2016 (r296306) +++ head/sys/arm64/cavium/thunder_pcie_pem.c Wed Mar 2 08:39:59 2016 (r296307) @@ -93,7 +93,6 @@ __FBSDID("$FreeBSD$"); #define SLIX_S2M_REGX_ACC_SPACING 0x001000000000UL #define SLI_BASE 0x880000000000UL #define SLI_WINDOW_SPACING 0x004000000000UL -#define SLI_WINDOW_SIZE 0x0000FF000000UL #define SLI_PCI_OFFSET 0x001000000000UL #define SLI_NODE_SHIFT (44) #define SLI_NODE_MASK (3) @@ -121,9 +120,15 @@ __FBSDID("$FreeBSD$"); #define RID_PEM_SPACE 1 +static int thunder_pem_activate_resource(device_t, device_t, int, int, + struct resource *); +static int thunder_pem_adjust_resource(device_t, device_t, int, + struct resource *, rman_res_t, rman_res_t); static struct resource * thunder_pem_alloc_resource(device_t, device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); static int thunder_pem_attach(device_t); +static int thunder_pem_deactivate_resource(device_t, device_t, int, int, + struct resource *); static int thunder_pem_detach(device_t); static uint64_t thunder_pem_config_reg_read(struct thunder_pem_softc *, int); static int thunder_pem_link_init(struct thunder_pem_softc *); @@ -135,6 +140,7 @@ static int thunder_pem_read_ivar(device_ static void thunder_pem_release_all(device_t); static int thunder_pem_release_resource(device_t, device_t, int, int, struct resource *); +static struct rman * thunder_pem_rman(struct thunder_pem_softc *, int); static void thunder_pem_slix_s2m_regx_acc_modify(struct thunder_pem_softc *, int, int); static void thunder_pem_write_config(device_t, u_int, u_int, u_int, u_int, @@ -157,8 +163,9 @@ static device_method_t thunder_pem_metho DEVMETHOD(bus_write_ivar, thunder_pem_write_ivar), DEVMETHOD(bus_alloc_resource, thunder_pem_alloc_resource), DEVMETHOD(bus_release_resource, thunder_pem_release_resource), - DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_adjust_resource, thunder_pem_adjust_resource), + DEVMETHOD(bus_activate_resource, thunder_pem_activate_resource), + DEVMETHOD(bus_deactivate_resource, thunder_pem_deactivate_resource), DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), @@ -174,6 +181,7 @@ DEFINE_CLASS_0(pcib, thunder_pem_driver, sizeof(struct thunder_pem_softc)); static devclass_t thunder_pem_devclass; +extern struct bus_space memmap_bus; DRIVER_MODULE(thunder_pem, pci, thunder_pem_driver, thunder_pem_devclass, 0, 0); MODULE_DEPEND(thunder_pem, pci, 1, 1, 1); @@ -225,6 +233,88 @@ thunder_pem_write_ivar(device_t dev, dev } static int +thunder_pem_activate_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + int err; + bus_addr_t paddr; + bus_size_t psize; + bus_space_handle_t vaddr; + struct thunder_pem_softc *sc; + + if ((err = rman_activate_resource(r)) != 0) + return (err); + + sc = device_get_softc(dev); + + /* + * If this is a memory resource, map it into the kernel. + */ + if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) { + paddr = (bus_addr_t)rman_get_start(r); + psize = (bus_size_t)rman_get_size(r); + + paddr = range_addr_pci_to_phys(sc->ranges, paddr); + + err = bus_space_map(&memmap_bus, paddr, psize, 0, &vaddr); + if (err != 0) { + rman_deactivate_resource(r); + return (err); + } + rman_set_bustag(r, &memmap_bus); + rman_set_virtual(r, (void *)vaddr); + rman_set_bushandle(r, vaddr); + } + return (0); +} + +/* + * This function is an exact copy of nexus_deactivate_resource() + * Keep it up-to-date with all changes in nexus. To be removed + * once bus-mapping interface is developed. + */ +static int +thunder_pem_deactivate_resource(device_t bus, device_t child, int type, int rid, + struct resource *r) +{ + bus_size_t psize; + bus_space_handle_t vaddr; + + psize = (bus_size_t)rman_get_size(r); + vaddr = rman_get_bushandle(r); + + if (vaddr != 0) { + bus_space_unmap(&memmap_bus, vaddr, psize); + rman_set_virtual(r, NULL); + rman_set_bushandle(r, 0); + } + + return (rman_deactivate_resource(r)); +} + +static int +thunder_pem_adjust_resource(device_t dev, device_t child, int type, + struct resource *res, rman_res_t start, rman_res_t end) +{ + struct thunder_pem_softc *sc; + struct rman *rm; + + sc = device_get_softc(dev); + + rm = thunder_pem_rman(sc, type); + if (rm == NULL) + return (bus_generic_adjust_resource(dev, child, type, res, + start, end)); + if (!rman_is_region_manager(res, rm)) + /* + * This means a child device has a memory or I/O + * resource not from you which shouldn't happen. + */ + return (EINVAL); + return (rman_adjust_resource(res, start, end)); +} + +static int thunder_pem_identify(device_t dev) { struct thunder_pem_softc *sc; @@ -314,14 +404,6 @@ thunder_pem_init(struct thunder_pem_soft return retval; } - retval = bus_space_map(sc->reg_bst, sc->sli_window_base, - SLI_WINDOW_SIZE, 0, &sc->pem_sli_base); - if (retval) { - device_printf(sc->dev, - "Unable to map RC%d pem_addr base address", sc->id); - return (ENOMEM); - } - /* To support 32-bit PCIe devices, set S2M_REGx_ACC[BA]=0x0 */ for (i = 0; i < SLI_ACC_REG_CNT; i++) { thunder_pem_slix_s2m_regx_acc_modify(sc, sc->sli_group, i); @@ -365,24 +447,30 @@ thunder_pem_read_config(device_t dev, u_ /* Calculate offset */ offset = (bus << PEM_BUS_SHIFT) | (slot << PEM_SLOT_SHIFT) | - (func << PEM_FUNC_SHIFT) | reg; + (func << PEM_FUNC_SHIFT); t = sc->reg_bst; h = sc->pem_sli_base; + bus_space_map(sc->reg_bst, sc->sli_window_base + offset, + PCIE_REGMAX, 0, &h); + switch (bytes) { case 1: - data = bus_space_read_1(t, h, offset); + data = bus_space_read_1(t, h, reg); break; case 2: - data = le16toh(bus_space_read_2(t, h, offset)); + data = le16toh(bus_space_read_2(t, h, reg)); break; case 4: - data = le32toh(bus_space_read_4(t, h, offset)); + data = le32toh(bus_space_read_4(t, h, reg)); break; default: - return (~0U); + data = ~0U; + break; } + bus_space_unmap(sc->reg_bst, h, PCIE_REGMAX); + return (data); } @@ -403,23 +491,28 @@ thunder_pem_write_config(device_t dev, u /* Calculate offset */ offset = (bus << PEM_BUS_SHIFT) | (slot << PEM_SLOT_SHIFT) | - (func << PEM_FUNC_SHIFT) | reg; + (func << PEM_FUNC_SHIFT); t = sc->reg_bst; h = sc->pem_sli_base; + bus_space_map(sc->reg_bst, sc->sli_window_base + offset, + PCIE_REGMAX, 0, &h); + switch (bytes) { case 1: - bus_space_write_1(t, h, offset, val); + bus_space_write_1(t, h, reg, val); break; case 2: - bus_space_write_2(t, h, offset, htole16(val)); + bus_space_write_2(t, h, reg, htole16(val)); break; case 4: - bus_space_write_4(t, h, offset, htole32(val)); + bus_space_write_4(t, h, reg, htole32(val)); break; default: - return; + break; } + + bus_space_unmap(sc->reg_bst, h, PCIE_REGMAX); } static struct resource * @@ -431,35 +524,30 @@ thunder_pem_alloc_resource(device_t dev, struct resource *res; device_t parent_dev; - switch (type) { - case SYS_RES_IOPORT: - rm = &sc->io_rman; - break; - case SYS_RES_MEMORY: - rm = &sc->mem_rman; - break; - default: + rm = thunder_pem_rman(sc, type); + if (rm == NULL) { /* Find parent device. On ThunderX we know an exact path. */ parent_dev = device_get_parent(device_get_parent(dev)); return (BUS_ALLOC_RESOURCE(parent_dev, dev, type, rid, start, end, count, flags)); }; - if (RMAN_IS_DEFAULT_RANGE(start, end)) { - device_printf(dev, - "Cannot allocate resource with unspecified range\n"); - goto fail; - } - /* Translate PCI address to host PHYS */ - if (range_addr_is_pci(sc->ranges, start, count) == 0) - goto fail; - start = range_addr_pci_to_phys(sc->ranges, start); - end = start + count - 1; + if (!RMAN_IS_DEFAULT_RANGE(start, end)) { + /* + * We might get PHYS addresses here inherited from EFI. + * Convert to PCI if necessary. + */ + if (range_addr_is_phys(sc->ranges, start, count)) { + start = range_addr_phys_to_pci(sc->ranges, start); + end = start + count - 1; + } + + } if (bootverbose) { device_printf(dev, - "rman_reserve_resource: start=%#lx, end=%#lx, count=%#lx\n", + "thunder_pem_alloc_resource: start=%#lx, end=%#lx, count=%#lx\n", start, end, count); } @@ -503,6 +591,22 @@ thunder_pem_release_resource(device_t de return (rman_release_resource(res)); } +static struct rman * +thunder_pem_rman(struct thunder_pem_softc *sc, int type) +{ + + switch (type) { + case SYS_RES_IOPORT: + return (&sc->io_rman); + case SYS_RES_MEMORY: + return (&sc->mem_rman); + default: + break; + } + + return (NULL); +} + static int thunder_pem_probe(device_t dev) { @@ -529,6 +633,9 @@ thunder_pem_attach(device_t dev) struct thunder_pem_softc *sc; int error; int rid; + int tuple; + uint64_t base, size; + struct rman *rman; sc = device_get_softc(dev); sc->dev = dev; @@ -601,16 +708,42 @@ thunder_pem_attach(device_t dev) sc->ranges[0].size = PCI_MEMORY_SIZE; sc->ranges[0].phys_base = sc->sli_window_base + SLI_PCI_OFFSET + sc->ranges[0].pci_base; - rman_manage_region(&sc->mem_rman, sc->ranges[0].phys_base, - sc->ranges[0].phys_base + sc->ranges[0].size - 1); + sc->ranges[0].flags = SYS_RES_MEMORY; /* Fill IO window */ sc->ranges[1].pci_base = PCI_IO_BASE; sc->ranges[1].size = PCI_IO_SIZE; sc->ranges[1].phys_base = sc->sli_window_base + SLI_PCI_OFFSET + sc->ranges[1].pci_base; - rman_manage_region(&sc->io_rman, sc->ranges[1].phys_base, - sc->ranges[1].phys_base + sc->ranges[1].size - 1); + sc->ranges[1].flags = SYS_RES_IOPORT; + + for (tuple = 0; tuple < MAX_RANGES_TUPLES; tuple++) { + base = sc->ranges[tuple].pci_base; + size = sc->ranges[tuple].size; + if (size == 0) + continue; /* empty range element */ + + rman = thunder_pem_rman(sc, sc->ranges[tuple].flags); + if (rman != NULL) + error = rman_manage_region(rman, base, + base + size - 1); + else + error = EINVAL; + if (error) { + device_printf(dev, + "rman_manage_region() failed. error = %d\n", error); + rman_fini(&sc->mem_rman); + return (error); + } + if (bootverbose) { + device_printf(dev, + "\tPCI addr: 0x%jx, CPU addr: 0x%jx, Size: 0x%jx, Flags:0x%jx\n", + sc->ranges[tuple].pci_base, + sc->ranges[tuple].phys_base, + sc->ranges[tuple].size, + sc->ranges[tuple].flags); + } + } if (thunder_pem_init(sc)) { device_printf(dev, "Failure during PEM init\n"); From owner-svn-src-head@freebsd.org Wed Mar 2 08:48:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3422AC0112; Wed, 2 Mar 2016 08:48:05 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from mail.nginx.com (mail.nginx.com [206.251.255.65]) (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 90E721336; Wed, 2 Mar 2016 08:48:05 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from [192.168.33.64] (unknown [178.23.225.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.nginx.com (Postfix) with ESMTPSA id 46AD42C5107C; Wed, 2 Mar 2016 08:48:02 +0000 (UTC) Subject: Re: svn commit: r296277 - in head: share/man/man4 sys/conf sys/kern sys/modules sys/modules/aio sys/sys tests/sys/aio To: John Baldwin References: <201603011812.u21ICEqt071147@repo.freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Maxim Konovalov Message-ID: <56D6A8D0.9030705@gmail.com> Date: Wed, 2 Mar 2016 11:48:16 +0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201603011812.u21ICEqt071147@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 08:48:05 -0000 Hi John, On 3/1/16 9:12 PM, John Baldwin wrote: > Author: jhb > Date: Tue Mar 1 18:12:14 2016 > New Revision: 296277 > URL: https://svnweb.freebsd.org/changeset/base/296277 > > Log: > Refactor the AIO subsystem to permit file-type-specific handling and > improve cancellation robustness. [...] Nice work! It deserves its own entry in UPDATING. What do you think? -- Maxim Konovalov From owner-svn-src-head@freebsd.org Wed Mar 2 09:54:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB4F7AC0291; Wed, 2 Mar 2016 09:54:59 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B51BD1C16; Wed, 2 Mar 2016 09:54:59 +0000 (UTC) (envelope-from wma@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u229sw8E052473; Wed, 2 Mar 2016 09:54:58 GMT (envelope-from wma@FreeBSD.org) Received: (from wma@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u229swNY052469; Wed, 2 Mar 2016 09:54:58 GMT (envelope-from wma@FreeBSD.org) Message-Id: <201603020954.u229swNY052469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wma set sender to wma@FreeBSD.org using -f From: Wojciech Macek Date: Wed, 2 Mar 2016 09:54:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296308 - head/sys/dev/pci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 09:55:00 -0000 Author: wma Date: Wed Mar 2 09:54:58 2016 New Revision: 296308 URL: https://svnweb.freebsd.org/changeset/base/296308 Log: Support for Enhanced Allocation in PCI On some platforms, BAR entries are hardcoded and must not be accessed using standard method. Add functionality to identify this situation and configure the bus based on Enhanced Allocation structure. Obtained from: Semihalf Sponsored by: Cavium Approved by: cognet (mentor) Reviewed by: jhb Differential revision: https://reviews.freebsd.org/D5242 Modified: head/sys/dev/pci/pci.c head/sys/dev/pci/pci_iov.c head/sys/dev/pci/pci_private.h head/sys/dev/pci/pcivar.h Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Wed Mar 2 08:39:59 2016 (r296307) +++ head/sys/dev/pci/pci.c Wed Mar 2 09:54:58 2016 (r296308) @@ -63,6 +63,11 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef PCI_IOV +#include +#include +#endif + #include #include #include @@ -694,6 +699,81 @@ pci_fill_devinfo(device_t pcib, int d, i #undef REG static void +pci_ea_fill_info(device_t pcib, pcicfgregs *cfg) +{ +#define REG(n, w) PCIB_READ_CONFIG(pcib, cfg->bus, cfg->slot, cfg->func, \ + cfg->ea.ea_location + (n), w) + int num_ent; + int ptr; + int a, b; + uint32_t val; + int ent_size; + uint32_t dw[4]; + uint64_t base, max_offset; + struct pci_ea_entry *eae; + + if (cfg->ea.ea_location == 0) + return; + + STAILQ_INIT(&cfg->ea.ea_entries); + + /* Determine the number of entries */ + num_ent = REG(PCIR_EA_NUM_ENT, 2); + num_ent &= PCIM_EA_NUM_ENT_MASK; + + /* Find the first entry to care of */ + ptr = PCIR_EA_FIRST_ENT; + + /* Skip DWORD 2 for type 1 functions */ + if ((cfg->hdrtype & PCIM_HDRTYPE) == PCIM_HDRTYPE_BRIDGE) + ptr += 4; + + for (a = 0; a < num_ent; a++) { + + eae = malloc(sizeof(*eae), M_DEVBUF, M_WAITOK | M_ZERO); + eae->eae_cfg_offset = cfg->ea.ea_location + ptr; + + /* Read a number of dwords in the entry */ + val = REG(ptr, 4); + ptr += 4; + ent_size = (val & PCIM_EA_ES); + + for (b = 0; b < ent_size; b++) { + dw[b] = REG(ptr, 4); + ptr += 4; + } + + eae->eae_flags = val; + eae->eae_bei = (PCIM_EA_BEI & val) >> PCIM_EA_BEI_OFFSET; + + base = dw[0] & PCIM_EA_FIELD_MASK; + max_offset = dw[1] | ~PCIM_EA_FIELD_MASK; + b = 2; + if (((dw[0] & PCIM_EA_IS_64) != 0) && (b < ent_size)) { + base |= (uint64_t)dw[b] << 32UL; + b++; + } + if (((dw[1] & PCIM_EA_IS_64) != 0) + && (b < ent_size)) { + max_offset |= (uint64_t)dw[b] << 32UL; + b++; + } + + eae->eae_base = base; + eae->eae_max_offset = max_offset; + + STAILQ_INSERT_TAIL(&cfg->ea.ea_entries, eae, eae_link); + + if (bootverbose) { + printf("PCI(EA) dev %04x:%04x, bei %d, flags #%x, base #%jx, max_offset #%jx\n", + cfg->vendor, cfg->device, eae->eae_bei, eae->eae_flags, + (uintmax_t)eae->eae_base, (uintmax_t)eae->eae_max_offset); + } + } +} +#undef REG + +static void pci_read_cap(device_t pcib, pcicfgregs *cfg) { #define REG(n, w) PCIB_READ_CONFIG(pcib, cfg->bus, cfg->slot, cfg->func, n, w) @@ -830,6 +910,10 @@ pci_read_cap(device_t pcib, pcicfgregs * val = REG(ptr + PCIER_FLAGS, 2); cfg->pcie.pcie_type = val & PCIEM_FLAGS_TYPE; break; + case PCIY_EA: /* Enhanced Allocation */ + cfg->ea.ea_location = ptr; + pci_ea_fill_info(pcib, cfg); + break; default: break; } @@ -3504,6 +3588,176 @@ pci_alloc_secbus(device_t dev, device_t } #endif +static int +pci_ea_bei_to_rid(device_t dev, int bei) +{ +#ifdef PCI_IOV + struct pci_devinfo *dinfo; + int iov_pos; + struct pcicfg_iov *iov; + + dinfo = device_get_ivars(dev); + iov = dinfo->cfg.iov; + if (iov != NULL) + iov_pos = iov->iov_pos; + else + iov_pos = 0; +#endif + + /* Check if matches BAR */ + if ((bei >= PCIM_EA_BEI_BAR_0) && + (bei <= PCIM_EA_BEI_BAR_5)) + return (PCIR_BAR(bei)); + + /* Check ROM */ + if (bei == PCIM_EA_BEI_ROM) + return (PCIR_BIOS); + +#ifdef PCI_IOV + /* Check if matches VF_BAR */ + if ((iov != NULL) && (bei >= PCIM_EA_BEI_VF_BAR_0) && + (bei <= PCIM_EA_BEI_VF_BAR_5)) + return (PCIR_SRIOV_BAR(bei - PCIM_EA_BEI_VF_BAR_0) + + iov_pos); +#endif + + return (-1); +} + +int +pci_ea_is_enabled(device_t dev, int rid) +{ + struct pci_ea_entry *ea; + struct pci_devinfo *dinfo; + + dinfo = device_get_ivars(dev); + + STAILQ_FOREACH(ea, &dinfo->cfg.ea.ea_entries, eae_link) { + if (pci_ea_bei_to_rid(dev, ea->eae_bei) == rid) + return ((ea->eae_flags & PCIM_EA_ENABLE) > 0); + } + + return (0); +} + +void +pci_add_resources_ea(device_t bus, device_t dev, int alloc_iov) +{ + struct pci_ea_entry *ea; + struct pci_devinfo *dinfo; + pci_addr_t start, end, count; + struct resource_list *rl; + int type, flags, rid; + struct resource *res; + uint32_t tmp; +#ifdef PCI_IOV + struct pcicfg_iov *iov; +#endif + + dinfo = device_get_ivars(dev); + rl = &dinfo->resources; + flags = 0; + +#ifdef PCI_IOV + iov = dinfo->cfg.iov; +#endif + + if (dinfo->cfg.ea.ea_location == 0) + return; + + STAILQ_FOREACH(ea, &dinfo->cfg.ea.ea_entries, eae_link) { + + /* + * TODO: Ignore EA-BAR if is not enabled. + * Currently the EA implementation supports + * only situation, where EA structure contains + * predefined entries. In case they are not enabled + * leave them unallocated and proceed with + * a legacy-BAR mechanism. + */ + if ((ea->eae_flags & PCIM_EA_ENABLE) == 0) + continue; + + switch ((ea->eae_flags & PCIM_EA_PP) >> PCIM_EA_PP_OFFSET) { + case PCIM_EA_P_MEM_PREFETCH: + case PCIM_EA_P_VF_MEM_PREFETCH: + flags = RF_PREFETCHABLE; + case PCIM_EA_P_VF_MEM: + case PCIM_EA_P_MEM: + type = SYS_RES_MEMORY; + break; + case PCIM_EA_P_IO: + type = SYS_RES_IOPORT; + break; + default: + continue; + } + + if (alloc_iov != 0) { +#ifdef PCI_IOV + /* Allocating IOV, confirm BEI matches */ + if ((ea->eae_bei < PCIM_EA_BEI_VF_BAR_0) || + (ea->eae_bei > PCIM_EA_BEI_VF_BAR_5)) + continue; +#else + continue; +#endif + } else { + /* Allocating BAR, confirm BEI matches */ + if (((ea->eae_bei < PCIM_EA_BEI_BAR_0) || + (ea->eae_bei > PCIM_EA_BEI_BAR_5)) && + (ea->eae_bei != PCIM_EA_BEI_ROM)) + continue; + } + + rid = pci_ea_bei_to_rid(dev, ea->eae_bei); + if (rid < 0) + continue; + + /* Skip resources already allocated by EA */ + if ((resource_list_find(rl, SYS_RES_MEMORY, rid) != NULL) || + (resource_list_find(rl, SYS_RES_IOPORT, rid) != NULL)) + continue; + + start = ea->eae_base; + count = ea->eae_max_offset + 1; +#ifdef PCI_IOV + if (iov != NULL) + count = count * iov->iov_num_vfs; +#endif + end = start + count - 1; + if (count == 0) + continue; + + resource_list_add(rl, type, rid, start, end, count); + res = resource_list_reserve(rl, bus, dev, type, &rid, start, end, count, + flags); + if (res == NULL) { + resource_list_delete(rl, type, rid); + + /* + * Failed to allocate using EA, disable entry. + * Another attempt to allocation will be performed + * further, but this time using legacy BAR registers + */ + tmp = pci_read_config(dev, ea->eae_cfg_offset, 4); + tmp &= ~PCIM_EA_ENABLE; + pci_write_config(dev, ea->eae_cfg_offset, tmp, 4); + + /* + * Disabling entry might fail in case it is hardwired. + * Read flags again to match current status. + */ + ea->eae_flags = pci_read_config(dev, ea->eae_cfg_offset, 4); + + continue; + } + + /* As per specification, fill BAR with zeros */ + pci_write_config(dev, rid, 0, 4); + } +} + void pci_add_resources(device_t bus, device_t dev, int force, uint32_t prefetchmask) { @@ -3519,6 +3773,9 @@ pci_add_resources(device_t bus, device_t rl = &dinfo->resources; devid = (cfg->device << 16) | cfg->vendor; + /* Allocate resources using Enhanced Allocation */ + pci_add_resources_ea(bus, dev, 0); + /* ATA devices needs special map treatment */ if ((pci_get_class(dev) == PCIC_STORAGE) && (pci_get_subclass(dev) == PCIS_STORAGE_IDE) && @@ -3528,6 +3785,14 @@ pci_add_resources(device_t bus, device_t pci_ata_maps(bus, dev, rl, force, prefetchmask); else for (i = 0; i < cfg->nummaps;) { + /* Skip resources already managed by EA */ + if ((resource_list_find(rl, SYS_RES_MEMORY, PCIR_BAR(i)) != NULL) || + (resource_list_find(rl, SYS_RES_IOPORT, PCIR_BAR(i)) != NULL) || + pci_ea_is_enabled(dev, PCIR_BAR(i))) { + i++; + continue; + } + /* * Skip quirked resources. */ @@ -4629,6 +4894,11 @@ pci_reserve_map(device_t dev, device_t c int mapsize; res = NULL; + + /* If rid is managed by EA, ignore it */ + if (pci_ea_is_enabled(child, *rid)) + goto out; + pm = pci_find_bar(child, *rid); if (pm != NULL) { /* This is a BAR that we failed to allocate earlier. */ Modified: head/sys/dev/pci/pci_iov.c ============================================================================== --- head/sys/dev/pci/pci_iov.c Wed Mar 2 08:39:59 2016 (r296307) +++ head/sys/dev/pci/pci_iov.c Wed Mar 2 09:54:58 2016 (r296308) @@ -513,6 +513,37 @@ pci_iov_init_rman(device_t pf, struct pc } static int +pci_iov_alloc_bar_ea(struct pci_devinfo *dinfo, int bar) +{ + struct pcicfg_iov *iov; + rman_res_t start, end; + struct resource *res; + struct resource_list *rl; + struct resource_list_entry *rle; + + rl = &dinfo->resources; + iov = dinfo->cfg.iov; + + rle = resource_list_find(rl, SYS_RES_MEMORY, + iov->iov_pos + PCIR_SRIOV_BAR(bar)); + if (rle == NULL) + rle = resource_list_find(rl, SYS_RES_IOPORT, + iov->iov_pos + PCIR_SRIOV_BAR(bar)); + if (rle == NULL) + return (ENXIO); + res = rle->res; + + iov->iov_bar[bar].res = res; + iov->iov_bar[bar].bar_size = rman_get_size(res) / iov->iov_num_vfs; + iov->iov_bar[bar].bar_shift = pci_mapsize(iov->iov_bar[bar].bar_size); + + start = rman_get_start(res); + end = rman_get_end(res); + + return (rman_manage_region(&iov->rman, start, end)); +} + +static int pci_iov_setup_bars(struct pci_devinfo *dinfo) { device_t dev; @@ -524,7 +555,18 @@ pci_iov_setup_bars(struct pci_devinfo *d dev = dinfo->cfg.dev; last_64 = 0; + pci_add_resources_ea(device_get_parent(dev), dev, 1); + for (i = 0; i <= PCIR_MAX_BAR_0; i++) { + /* First, try to use BARs allocated with EA */ + error = pci_iov_alloc_bar_ea(dinfo, i); + if (error == 0) + continue; + + /* Allocate legacy-BAR only if EA is not enabled */ + if (pci_ea_is_enabled(dev, iov->iov_pos + PCIR_SRIOV_BAR(i))) + continue; + /* * If a PCI BAR is a 64-bit wide BAR, then it spans two * consecutive registers. Therefore if the last BAR that Modified: head/sys/dev/pci/pci_private.h ============================================================================== --- head/sys/dev/pci/pci_private.h Wed Mar 2 08:39:59 2016 (r296307) +++ head/sys/dev/pci/pci_private.h Wed Mar 2 09:54:58 2016 (r296308) @@ -55,9 +55,11 @@ device_t pci_add_iov_child(device_t bus, uint16_t rid, uint16_t vid, uint16_t did); void pci_add_resources(device_t bus, device_t dev, int force, uint32_t prefetchmask); +void pci_add_resources_ea(device_t bus, device_t dev, int alloc_iov); int pci_attach_common(device_t dev); void pci_delete_child(device_t dev, device_t child); void pci_driver_added(device_t dev, driver_t *driver); +int pci_ea_is_enabled(device_t dev, int rid); int pci_print_child(device_t dev, device_t child); void pci_probe_nomatch(device_t dev, device_t child); int pci_read_ivar(device_t dev, device_t child, int which, Modified: head/sys/dev/pci/pcivar.h ============================================================================== --- head/sys/dev/pci/pcivar.h Wed Mar 2 08:39:59 2016 (r296307) +++ head/sys/dev/pci/pcivar.h Wed Mar 2 09:54:58 2016 (r296308) @@ -156,6 +156,20 @@ struct pcicfg_vf { int index; }; +struct pci_ea_entry { + int eae_bei; + uint32_t eae_flags; + uint64_t eae_base; + uint64_t eae_max_offset; + uint32_t eae_cfg_offset; + STAILQ_ENTRY(pci_ea_entry) eae_link; +}; + +struct pcicfg_ea { + int ea_location; /* Structure offset in Configuration Header */ + STAILQ_HEAD(, pci_ea_entry) ea_entries; /* EA entries */ +}; + #define PCICFG_VF 0x0001 /* Device is an SR-IOV Virtual Function */ /* config header information common to all header types */ @@ -207,6 +221,7 @@ typedef struct pcicfg { struct pcicfg_pcix pcix; /* PCI-X */ struct pcicfg_iov *iov; /* SR-IOV */ struct pcicfg_vf vf; /* SR-IOV Virtual Function */ + struct pcicfg_ea ea; /* Enhanced Allocation */ } pcicfgregs; /* additional type 1 device config header information (PCI to PCI bridge) */ From owner-svn-src-head@freebsd.org Wed Mar 2 14:33:48 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04EE0AC0BC9; Wed, 2 Mar 2016 14:33:48 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CBC471E10; Wed, 2 Mar 2016 14:33:47 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22EXkAJ036756; Wed, 2 Mar 2016 14:33:46 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22EXk66036755; Wed, 2 Mar 2016 14:33:46 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201603021433.u22EXk66036755@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 2 Mar 2016 14:33:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296313 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 14:33:48 -0000 Author: andrew Date: Wed Mar 2 14:33:46 2016 New Revision: 296313 URL: https://svnweb.freebsd.org/changeset/base/296313 Log: The cpu_reset_needs_v4_MMU_disable variable is only used in locore-v4.S, only define it when building for ARMv5 or prior. Sponsored by: ABT Systems Ltd Modified: head/sys/arm/arm/cpufunc.c Modified: head/sys/arm/arm/cpufunc.c ============================================================================== --- head/sys/arm/arm/cpufunc.c Wed Mar 2 13:54:43 2016 (r296312) +++ head/sys/arm/arm/cpufunc.c Wed Mar 2 14:33:46 2016 (r296313) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -559,7 +560,9 @@ struct cpu_functions cortexa_cpufuncs = struct cpu_functions cpufuncs; u_int cputype; -u_int cpu_reset_needs_v4_MMU_disable; /* flag used in locore.s */ +#if __ARM_ARCH <= 5 +u_int cpu_reset_needs_v4_MMU_disable; /* flag used in locore-v4.s */ +#endif #if defined(CPU_ARM9) || \ defined (CPU_ARM9E) || \ @@ -754,7 +757,6 @@ set_cpufuncs() #if defined(CPU_ARM1176) if (cputype == CPU_ID_ARM1176JZS) { cpufuncs = arm1176_cpufuncs; - cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */ get_cachetype_cp15(); goto out; } @@ -777,7 +779,6 @@ set_cpufuncs() cputype == CPU_ID_KRAIT300R0 || cputype == CPU_ID_KRAIT300R1 ) { cpufuncs = cortexa_cpufuncs; - cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */ get_cachetype_cp15(); goto out; } From owner-svn-src-head@freebsd.org Wed Mar 2 15:20:44 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04F02AC1CA1; Wed, 2 Mar 2016 15:20:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CC5B01A01; Wed, 2 Mar 2016 15:20:43 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22FKgkY049175; Wed, 2 Mar 2016 15:20:42 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22FKgoO049174; Wed, 2 Mar 2016 15:20:42 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201603021520.u22FKgoO049174@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 2 Mar 2016 15:20:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296315 - head/sys/arm64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 15:20:44 -0000 Author: bz Date: Wed Mar 2 15:20:42 2016 New Revision: 296315 URL: https://svnweb.freebsd.org/changeset/base/296315 Log: Force re-routing PCI interrupts (this is for legacy INTx not MSI). Need this for gem5, but was not needed on real hadrware (yet) as it was always MSI. Reviewed by: andrew, jhb Discovered by: andrew Sponsored by: DARPA/AFRL Differential Revision: https://reviews.freebsd.org/D5494 Modified: head/sys/arm64/include/param.h Modified: head/sys/arm64/include/param.h ============================================================================== --- head/sys/arm64/include/param.h Wed Mar 2 14:51:22 2016 (r296314) +++ head/sys/arm64/include/param.h Wed Mar 2 15:20:42 2016 (r296315) @@ -42,6 +42,8 @@ #define STACKALIGNBYTES (16 - 1) #define STACKALIGN(p) ((uint64_t)(p) & ~STACKALIGNBYTES) +#define __PCI_REROUTE_INTERRUPT + #ifndef MACHINE #define MACHINE "arm64" #endif From owner-svn-src-head@freebsd.org Wed Mar 2 15:25:19 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 053CEAC1E46 for ; Wed, 2 Mar 2016 15:25:19 +0000 (UTC) (envelope-from bms@fastmail.net) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (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 CE88B1DB4 for ; Wed, 2 Mar 2016 15:25:18 +0000 (UTC) (envelope-from bms@fastmail.net) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 2EDAC20C1F for ; Wed, 2 Mar 2016 10:25:07 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Wed, 02 Mar 2016 10:25:07 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.net; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=/Brd13UR5jlwi0ama9XDGO08s0E=; b=Uh2il0 oatuT3vGdQfDdYIw4U3XXwRcUbOfFn/POTyE8+8iyZaHppWk5b+77s1gFKUBgEsH nKIJ6v9uqiyoeXGZ3oCWzhfFGMgpKUvITmpf9PHi8AIcmcG6SyjI52j+/d9wjbPr Zz1lDSVac6nYKCPL2RcbrAreE3+ln/8JB68k0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=/Brd13UR5jlwi0a ma9XDGO08s0E=; b=PWh8ATzYXwDMgTuSAkynp7nlRT2fd7Ukq8NGkpa80w18u6m bw96D0ivW5oRv9k9nuvf24XQ2mzdSwj5c55547DSP7dO4a9aERh/sQw+xitmFFc2 BS6Sxu02kmYGG5NXIzckLxc+ptW69lkQFJnSXNV/4fdH+v6m5arFnhAS58ZE= X-Sasl-enc: iaFu6upZQ5bSIYW2f+YQQPauk4TtHAkwKToPFwOM6jYI 1456932306 Received: from pion.local (cpc95050-newt40-2-0-cust433.19-3.cable.virginm.net [94.175.27.178]) by mail.messagingengine.com (Postfix) with ESMTPA id 83361680119; Wed, 2 Mar 2016 10:25:06 -0500 (EST) Subject: Re: svn commit: r296261 - in head/sys: kern sys To: Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603011057.u21AvU1a040987@repo.freebsd.org> From: Bruce Simpson Message-ID: <56D705D1.504@fastmail.net> Date: Wed, 2 Mar 2016 15:25:05 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <201603011057.u21AvU1a040987@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 15:25:19 -0000 All, On 01/03/16 10:57, Svatopluk Kraus wrote: > Author: skra Date: Tue Mar 1 10:57:29 2016 New Revision: 296261 URL: > https://svnweb.freebsd.org/changeset/base/296261 > > Log: Mark other parts of interrupt framework as INTR_SOLO option > specific. IMHO... The general rationalisation of the FreeBSD kernel-mode driver API surface probably warrants updating this document: https://www.freebsd.org/doc/en/books/arch-handbook/ Describing the general case in terms of ISA device drivers is probably confusing these days, although it reflects how the code has evolved. cheers Bruce From owner-svn-src-head@freebsd.org Wed Mar 2 15:26:56 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EEF9AC1F0B; Wed, 2 Mar 2016 15:26:56 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 52C441F53; Wed, 2 Mar 2016 15:26:56 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22FQt5j052018; Wed, 2 Mar 2016 15:26:55 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22FQttf052017; Wed, 2 Mar 2016 15:26:55 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201603021526.u22FQttf052017@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 2 Mar 2016 15:26:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296316 - head/sys/dev/pci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 15:26:56 -0000 Author: bz Date: Wed Mar 2 15:26:55 2016 New Revision: 296316 URL: https://svnweb.freebsd.org/changeset/base/296316 Log: Add gem5 support, so we attach there as well. Fix the boundary limit to end at the end of the region and not one beyond (1). Diagnosed by: andrew (1) Reviewed by: andrew, br Sponsored by: DARPA/AFRL Differential Revision: https://reviews.freebsd.org/D5493 Modified: head/sys/dev/pci/pci_host_generic.c Modified: head/sys/dev/pci/pci_host_generic.c ============================================================================== --- head/sys/dev/pci/pci_host_generic.c Wed Mar 2 15:20:42 2016 (r296315) +++ head/sys/dev/pci/pci_host_generic.c Wed Mar 2 15:26:55 2016 (r296316) @@ -143,6 +143,10 @@ generic_pcie_probe(device_t dev) device_set_desc(dev, "Generic PCI host controller"); return (BUS_PROBE_GENERIC); } + if (ofw_bus_is_compatible(dev, "arm,gem5_pcie")) { + device_set_desc(dev, "GEM5 PCIe host controller"); + return (BUS_PROBE_DEFAULT); + } return (ENXIO); } @@ -208,12 +212,11 @@ pci_host_generic_attach(device_t dev) continue; /* empty range element */ if (sc->ranges[tuple].flags & FLAG_MEM) { error = rman_manage_region(&sc->mem_rman, - phys_base, - phys_base + size); + phys_base, phys_base + size - 1); } else if (sc->ranges[tuple].flags & FLAG_IO) { error = rman_manage_region(&sc->io_rman, - pci_base + PCI_IO_WINDOW_OFFSET, - pci_base + PCI_IO_WINDOW_OFFSET + size); + pci_base + PCI_IO_WINDOW_OFFSET, + pci_base + PCI_IO_WINDOW_OFFSET + size - 1); } else continue; if (error) { From owner-svn-src-head@freebsd.org Wed Mar 2 16:36:26 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CA43AC1B49; Wed, 2 Mar 2016 16:36:26 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 450281A2B; Wed, 2 Mar 2016 16:36:26 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22GaPwl072796; Wed, 2 Mar 2016 16:36:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22GaOBc072793; Wed, 2 Mar 2016 16:36:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201603021636.u22GaOBc072793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 2 Mar 2016 16:36:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296319 - head/libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 16:36:26 -0000 Author: kib Date: Wed Mar 2 16:36:24 2016 New Revision: 296319 URL: https://svnweb.freebsd.org/changeset/base/296319 Log: Fix handling of DT_TEXTREL for an object with more than one read-only segment. According to gABI spec, presence of the tag indicates that dynamic linker must be prepared to handle relocations against any read-only segment, not only the segment which we, somewhat arbitrary, declared the text. For each read-only segment, add write permission before relocs are processed, and return to the mapping mode requested by the phdr, after relocs are done. Reported, tested, and reviewed by: emaste PR: 207631 Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/libexec/rtld-elf/map_object.c head/libexec/rtld-elf/rtld.c head/libexec/rtld-elf/rtld.h Modified: head/libexec/rtld-elf/map_object.c ============================================================================== --- head/libexec/rtld-elf/map_object.c Wed Mar 2 16:14:46 2016 (r296318) +++ head/libexec/rtld-elf/map_object.c Wed Mar 2 16:36:24 2016 (r296319) @@ -39,7 +39,6 @@ #include "rtld.h" static Elf_Ehdr *get_elf_header(int, const char *, const struct stat *); -static int convert_prot(int); /* Elf flags -> mmap protection */ static int convert_flags(int); /* Elf flags -> mmap flags */ /* @@ -445,7 +444,7 @@ obj_new(void) * Given a set of ELF protection flags, return the corresponding protection * flags for MMAP. */ -static int +int convert_prot(int elfflags) { int prot = 0; Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Wed Mar 2 16:14:46 2016 (r296318) +++ head/libexec/rtld-elf/rtld.c Wed Mar 2 16:36:24 2016 (r296319) @@ -2627,6 +2627,40 @@ relocate_object_dag(Obj_Entry *root, boo } /* + * Prepare for, or clean after, relocating an object marked with + * DT_TEXTREL or DF_TEXTREL. Before relocating, all read-only + * segments are remapped read-write. After relocations are done, the + * segment's permissions are returned back to the modes specified in + * the phdrs. If any relocation happened, or always for wired + * program, COW is triggered. + */ +static int +reloc_textrel_prot(Obj_Entry *obj, bool before) +{ + const Elf_Phdr *ph; + void *base; + size_t l, sz; + int prot; + + for (l = obj->phsize / sizeof(*ph), ph = obj->phdr; l > 0; + l--, ph++) { + if (ph->p_type != PT_LOAD || (ph->p_flags & PF_W) != 0) + continue; + base = obj->relocbase + trunc_page(ph->p_vaddr); + sz = round_page(ph->p_vaddr + ph->p_filesz) - + trunc_page(ph->p_vaddr); + prot = convert_prot(ph->p_flags) | (before ? PROT_WRITE : 0); + if (mprotect(base, sz, prot) == -1) { + _rtld_error("%s: Cannot write-%sable text segment: %s", + obj->path, before ? "en" : "dis", + rtld_strerror(errno)); + return (-1); + } + } + return (0); +} + +/* * Relocate single object. * Returns 0 on success, or -1 on failure. */ @@ -2648,28 +2682,17 @@ relocate_object(Obj_Entry *obj, bool bin return (-1); } - if (obj->textrel) { - /* There are relocations to the write-protected text segment. */ - if (mprotect(obj->mapbase, obj->textsize, - PROT_READ|PROT_WRITE|PROT_EXEC) == -1) { - _rtld_error("%s: Cannot write-enable text segment: %s", - obj->path, rtld_strerror(errno)); - return (-1); - } - } + /* There are relocations to the write-protected text segment. */ + if (obj->textrel && reloc_textrel_prot(obj, true) != 0) + return (-1); /* Process the non-PLT non-IFUNC relocations. */ if (reloc_non_plt(obj, rtldobj, flags, lockstate)) return (-1); - if (obj->textrel) { /* Re-protected the text segment. */ - if (mprotect(obj->mapbase, obj->textsize, - PROT_READ|PROT_EXEC) == -1) { - _rtld_error("%s: Cannot write-protect text segment: %s", - obj->path, rtld_strerror(errno)); - return (-1); - } - } + /* Re-protected the text segment. */ + if (obj->textrel && reloc_textrel_prot(obj, false) != 0) + return (-1); /* Set the special PLT or GOT entries. */ init_pltgot(obj); Modified: head/libexec/rtld-elf/rtld.h ============================================================================== --- head/libexec/rtld-elf/rtld.h Wed Mar 2 16:14:46 2016 (r296318) +++ head/libexec/rtld-elf/rtld.h Wed Mar 2 16:36:24 2016 (r296319) @@ -385,6 +385,7 @@ void *allocate_module_tls(int index); bool allocate_tls_offset(Obj_Entry *obj); void free_tls_offset(Obj_Entry *obj); const Ver_Entry *fetch_ventry(const Obj_Entry *obj, unsigned long); +int convert_prot(int elfflags); /* * MD function declarations. From owner-svn-src-head@freebsd.org Wed Mar 2 18:46:19 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 429E9AC2E01; Wed, 2 Mar 2016 18:46:19 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1D7E71EA1; Wed, 2 Mar 2016 18:46:19 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22IkIEL010864; Wed, 2 Mar 2016 18:46:18 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22IkHWM010861; Wed, 2 Mar 2016 18:46:17 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201603021846.u22IkHWM010861@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 2 Mar 2016 18:46:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296320 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 18:46:19 -0000 Author: kib Date: Wed Mar 2 18:46:17 2016 New Revision: 296320 URL: https://svnweb.freebsd.org/changeset/base/296320 Log: If callout_stop_safe() noted that the callout is currently executing, but next invocation is cancelled while migrating, sleepq_check_timeout() needs to be informed that the callout is stopped. Otherwise the thread switches off CPU and never become runnable, since running callout could have already raced with us, while the migrating and cancelled callout could be one which is expected to set TDP_TIMOFAIL flag for us. This contradicts with the expected behaviour of callout_stop() for other callers, which e.g. decrement references from the callout callbacks. Add a new flag CS_MIGRBLOCK requesting report of the situation as 'successfully stopped'. Reviewed by: jhb (previous version) Tested by: cognet, pho PR: 200992 Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D5221 Modified: head/sys/kern/kern_timeout.c head/sys/kern/subr_sleepqueue.c head/sys/sys/callout.h Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Wed Mar 2 16:36:24 2016 (r296319) +++ head/sys/kern/kern_timeout.c Wed Mar 2 18:46:17 2016 (r296320) @@ -1155,14 +1155,14 @@ callout_schedule(struct callout *c, int } int -_callout_stop_safe(struct callout *c, int safe, void (*drain)(void *)) +_callout_stop_safe(struct callout *c, int flags, void (*drain)(void *)) { struct callout_cpu *cc, *old_cc; struct lock_class *class; int direct, sq_locked, use_lock; int not_on_a_list; - if (safe) + if ((flags & CS_DRAIN) != 0) WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock, "calling %s", __func__); @@ -1170,7 +1170,7 @@ _callout_stop_safe(struct callout *c, in * Some old subsystems don't hold Giant while running a callout_stop(), * so just discard this check for the moment. */ - if (!safe && c->c_lock != NULL) { + if ((flags & CS_DRAIN) == 0 && c->c_lock != NULL) { if (c->c_lock == &Giant.lock_object) use_lock = mtx_owned(&Giant); else { @@ -1253,7 +1253,7 @@ again: return (-1); } - if (safe) { + if ((flags & CS_DRAIN) != 0) { /* * The current callout is running (or just * about to run) and blocking is allowed, so @@ -1370,7 +1370,7 @@ again: cc_exec_drain(cc, direct) = drain; } CC_UNLOCK(cc); - return (0); + return ((flags & CS_MIGRBLOCK) != 0); } CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); Modified: head/sys/kern/subr_sleepqueue.c ============================================================================== --- head/sys/kern/subr_sleepqueue.c Wed Mar 2 16:36:24 2016 (r296319) +++ head/sys/kern/subr_sleepqueue.c Wed Mar 2 18:46:17 2016 (r296320) @@ -586,7 +586,8 @@ sleepq_check_timeout(void) * another CPU, so synchronize with it to avoid having it * accidentally wake up a subsequent sleep. */ - else if (callout_stop(&td->td_slpcallout) == 0) { + else if (_callout_stop_safe(&td->td_slpcallout, CS_MIGRBLOCK, NULL) + == 0) { td->td_flags |= TDF_TIMEOUT; TD_SET_SLEEPING(td); mi_switch(SW_INVOL | SWT_SLEEPQTIMO, NULL); Modified: head/sys/sys/callout.h ============================================================================== --- head/sys/sys/callout.h Wed Mar 2 16:36:24 2016 (r296319) +++ head/sys/sys/callout.h Wed Mar 2 18:46:17 2016 (r296320) @@ -62,6 +62,12 @@ struct callout_handle { struct callout *callout; }; +/* Flags for callout_stop_safe() */ +#define CS_DRAIN 0x0001 /* callout_drain(), wait allowed */ +#define CS_MIGRBLOCK 0x0002 /* Block migration, return value + indicates that the callout was + executing */ + #ifdef _KERNEL /* * Note the flags field is actually *two* fields. The c_flags @@ -81,7 +87,7 @@ struct callout_handle { */ #define callout_active(c) ((c)->c_flags & CALLOUT_ACTIVE) #define callout_deactivate(c) ((c)->c_flags &= ~CALLOUT_ACTIVE) -#define callout_drain(c) _callout_stop_safe(c, 1, NULL) +#define callout_drain(c) _callout_stop_safe(c, CS_DRAIN, NULL) void callout_init(struct callout *, int); void _callout_init_lock(struct callout *, struct lock_object *, int); #define callout_init_mtx(c, mtx, flags) \ From owner-svn-src-head@freebsd.org Wed Mar 2 19:10:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86F97AC0DEA; Wed, 2 Mar 2016 19:10:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 48BF313D7; Wed, 2 Mar 2016 19:10:41 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22JAenb016956; Wed, 2 Mar 2016 19:10:40 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22JAe6F016954; Wed, 2 Mar 2016 19:10:40 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201603021910.u22JAe6F016954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 2 Mar 2016 19:10:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296321 - head/usr.sbin/daemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:10:41 -0000 Author: cem Date: Wed Mar 2 19:10:39 2016 New Revision: 296321 URL: https://svnweb.freebsd.org/changeset/base/296321 Log: daemon(8): Add -t option to set process title The default process title is taken from the argv[0] value (any particular hardlink name). Add a -t option to override the default. PR: 205016 Submitted by: Yuri No objection from: freebsd-current@ Sponsored by: EMC / Isilon Storage Division Modified: head/usr.sbin/daemon/daemon.8 head/usr.sbin/daemon/daemon.c Modified: head/usr.sbin/daemon/daemon.8 ============================================================================== --- head/usr.sbin/daemon/daemon.8 Wed Mar 2 18:46:17 2016 (r296320) +++ head/usr.sbin/daemon/daemon.8 Wed Mar 2 19:10:39 2016 (r296321) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 13, 2013 +.Dd March 2, 2016 .Dt DAEMON 8 .Os .Sh NAME @@ -37,6 +37,7 @@ .Op Fl cfr .Op Fl p Ar child_pidfile .Op Fl P Ar supervisor_pidfile +.Op Fl t Ar title .Op Fl u Ar user .Ar command arguments ... .Sh DESCRIPTION @@ -94,6 +95,8 @@ regardless of whether the option is used or not. .It Fl r Supervise and restart the program if it has been terminated. +.It Fl t Ar title +Process title for the daemon to make it easily identifiable. .It Fl u Ar user Login name of the user to execute the program under. Requires adequate superuser privileges. @@ -123,7 +126,8 @@ option is useful combined with the option as .Ar supervisor_pidfile contains the ID of the supervisor -not the child. This is especially important if you use +not the child. +This is especially important if you use .Fl r in an rc script as the .Fl p Modified: head/usr.sbin/daemon/daemon.c ============================================================================== --- head/usr.sbin/daemon/daemon.c Wed Mar 2 18:46:17 2016 (r296320) +++ head/usr.sbin/daemon/daemon.c Wed Mar 2 19:10:39 2016 (r296321) @@ -56,13 +56,13 @@ main(int argc, char *argv[]) struct pidfh *ppfh, *pfh; sigset_t mask, oldmask; int ch, nochdir, noclose, restart, serrno; - const char *pidfile, *ppidfile, *user; + const char *pidfile, *ppidfile, *title, *user; pid_t otherpid, pid; nochdir = noclose = 1; restart = 0; - ppidfile = pidfile = user = NULL; - while ((ch = getopt(argc, argv, "cfp:P:ru:")) != -1) { + ppidfile = pidfile = title = user = NULL; + while ((ch = getopt(argc, argv, "cfp:P:rt:u:")) != -1) { switch (ch) { case 'c': nochdir = 0; @@ -79,6 +79,9 @@ main(int argc, char *argv[]) case 'r': restart = 1; break; + case 't': + title = optarg; + break; case 'u': user = optarg; break; @@ -204,7 +207,10 @@ restart: err(1, "%s", argv[0]); } - setproctitle("%s[%d]", argv[0], pid); + if (title != NULL) + setproctitle("%s[%d]", title, pid); + else + setproctitle("%s[%d]", argv[0], pid); if (wait_child(pid, &mask) == 0 && restart) { sleep(1); goto restart; From owner-svn-src-head@freebsd.org Wed Mar 2 19:22:25 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E368FAC14B6; Wed, 2 Mar 2016 19:22:25 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B52841F50; Wed, 2 Mar 2016 19:22:25 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22JMO6K022520; Wed, 2 Mar 2016 19:22:24 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22JMOWi022519; Wed, 2 Mar 2016 19:22:24 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603021922.u22JMOWi022519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 2 Mar 2016 19:22:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296322 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:22:26 -0000 Author: bdrewery Date: Wed Mar 2 19:22:24 2016 New Revision: 296322 URL: https://svnweb.freebsd.org/changeset/base/296322 Log: Remove self-reference to destroy_dev_drain(9). MFC after: 1 week Modified: head/share/man/man9/make_dev.9 Modified: head/share/man/man9/make_dev.9 ============================================================================== --- head/share/man/man9/make_dev.9 Wed Mar 2 19:10:39 2016 (r296321) +++ head/share/man/man9/make_dev.9 Wed Mar 2 19:22:24 2016 (r296322) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Jan 3, 2016 +.Dd March 2, 2016 .Dt MAKE_DEV 9 .Os .Sh NAME @@ -460,7 +460,6 @@ flag was specified and the provided devi .Sh SEE ALSO .Xr devctl 4 , .Xr devfs 5 , -.Xr destroy_dev_drain 9 , .Xr dev_clone 9 .Sh HISTORY The From owner-svn-src-head@freebsd.org Wed Mar 2 19:58:51 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D869AC2217; Wed, 2 Mar 2016 19:58:51 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-io0-x233.google.com (mail-io0-x233.google.com [IPv6:2607:f8b0:4001:c06::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 08F3D12EB; Wed, 2 Mar 2016 19:58:51 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-io0-x233.google.com with SMTP id g203so3828281iof.2; Wed, 02 Mar 2016 11:58:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=noNSYMiyibP+/sDiIOl/qURXgxb8a3dGAvFduao9/mM=; b=FlckEQ2DgtmtEBVwZ/Aljg397wEFCExSwbahrwY9K5RjpYPQc6E1VxfUo9Tj7klF5c neHcKTHvci//Msz5KGVAq9fNNDc+9i0KX4uH+cqIWNRMpj7Dfd56koZuF0mduBcyZtCV 9g8tNKo3m6DL6tOpouBP6yjP5EM4RQZF/s84n3XAdgPz7ogwrsbm5iUwLkWiTvq4+k4D vYYKQRLGKHMP1hL6WlnbOZxAp288gUhjZ6ntN726ZM3rOpIMcyFSl6axGunnU2nt2lno gAJZhihM4/gAScoxPobBKK5cTA4T8gTtPIWVAP3tej5OuXDymqCREMf1YS2UftwSVqvQ apBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=noNSYMiyibP+/sDiIOl/qURXgxb8a3dGAvFduao9/mM=; b=Mo+Rjqm1EUlYi7Hctrt4ck/BJBRChVErHfuD5KvfuduE3aYrEHn0Zp+9OjqNeEHY8K jiWsiA3I1czyd28wz80ajOlqoJWiIhZ19Xk+EUTp/7zUXwHggaNW8E4jTD85KXLpxSUI rzYnPWZ3WLdn9XD+V443wmupNFIjL9vi0Hh3nZJ/eD0L4ifgtYBXrdngvptjRvjRmzrr Wq8hsWdN7UEeL70AEo3NihSv0qHq4unrdqkifYkKCNyGuz+SlL5+cvJD2+f/TqHpA+J2 eRUvLluyv0Rbk50Qy3ob9sZodGdcbMACDfHQ/hWhOfg6QxJHY8s4iuMCMRdXnas87CdM CG5Q== X-Gm-Message-State: AG10YORBzpQta/GdGY2p4n6ewuNRTqKJsbyIOxugjKfRF1KSgdQYpH5HUmjPMfFjI23EXBrcdidvK2B7WT/CRg== MIME-Version: 1.0 X-Received: by 10.107.11.231 with SMTP id 100mr30471826iol.165.1456948730422; Wed, 02 Mar 2016 11:58:50 -0800 (PST) Received: by 10.36.14.19 with HTTP; Wed, 2 Mar 2016 11:58:50 -0800 (PST) In-Reply-To: <201602291910.u1TJAX7t057795@repo.freebsd.org> References: <201602291910.u1TJAX7t057795@repo.freebsd.org> Date: Wed, 2 Mar 2016 11:58:50 -0800 Message-ID: Subject: Re: svn commit: r296221 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src include lib/libc/stdlib/jemalloc From: Adrian Chadd To: Jason Evans Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 19:58:51 -0000 Hi, jemalloc doesn't compile on mips + gcc-4.2 now. 14:56 < adrian> cc1: warnings being treated as errors 14:56 < adrian> jemalloc_arena.c: In function 'arena_decay_time_valid': 14:56 < adrian> jemalloc_arena.c:1355: warning: comparison is always true due to limited range of data type 14:56 < adrian> --- jemalloc_arena.o --- 14:56 < adrian> *** [jemalloc_arena.o] Error code 1 Did you test your import with 'make universe' ? Thanks, -adrian From owner-svn-src-head@freebsd.org Wed Mar 2 20:06:26 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F32CAC256E; Wed, 2 Mar 2016 20:06:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1A7441AFA; Wed, 2 Mar 2016 20:06:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22K6PCe034625; Wed, 2 Mar 2016 20:06:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22K6PP3034624; Wed, 2 Mar 2016 20:06:25 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603022006.u22K6PP3034624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 2 Mar 2016 20:06:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296323 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 20:06:26 -0000 Author: bdrewery Date: Wed Mar 2 20:06:24 2016 New Revision: 296323 URL: https://svnweb.freebsd.org/changeset/base/296323 Log: Fix meta2deps.sh tracking of dependencies inside .CURDIR. An example of this is in share/i18n/csmapper. Reviewed by: sjg Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/meta2deps.sh Modified: head/share/mk/meta2deps.sh ============================================================================== --- head/share/mk/meta2deps.sh Wed Mar 2 19:22:24 2016 (r296322) +++ head/share/mk/meta2deps.sh Wed Mar 2 20:06:24 2016 (r296323) @@ -310,7 +310,7 @@ meta2deps() { *) seen=$dir;; esac case "$dir" in - ${CURDIR:-.}|${CURDIR:-.}/*|"") continue;; + ${CURDIR:-.}|"") continue;; $src_re) # avoid repeating ourselves... case "$DPDEPS,$seensrc," in From owner-svn-src-head@freebsd.org Wed Mar 2 20:08:20 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58B19AC2629; Wed, 2 Mar 2016 20:08:20 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 23CF71CC8; Wed, 2 Mar 2016 20:08:20 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-io0-x22a.google.com with SMTP id l127so4079134iof.3; Wed, 02 Mar 2016 12:08:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=cjT676g3qsMFprPTCJLQN60Y7Jq2Tmdd5fYASE/VaqE=; b=KQN7BessoyqV3drlAUFo0pm86Qg6r22qeTypmMyP+3Lm4ivVFLP18PF6RjZhTPM0a5 ts2+9GXkTY5ThtIzPuUxZ4bYJWbFnC3DAY8o/I+9L3CT0RdnFzhG94jGBomGsaoZ9sHK kJDvRdy0aEq3xNQuMBwN4iVniy5b1Mf70qHuhkIOQgJvV78SuaNWom6u8mR8wRvAyHs5 6P6J6NyN0HuKWQsIUks8UO7ABbufjJAc6iT7hDxB8tLWOGPcJOk7ipwTjVbZVGnlEM1f FwHRZHn2flKYF8aALPFDzLJzDlyIezK4D3KrkrKK0IMJLEq++oTYUZ46Dp9lEI9vkyuL MSpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=cjT676g3qsMFprPTCJLQN60Y7Jq2Tmdd5fYASE/VaqE=; b=KFUZxvcTS2l7r2L44Xl/u0QA50tR458yWkGXNzF6IAtFk3aBsdyvoO7G2R6O+qBmrw J5ST69hdxZDzFOEhMOHQr55Kng1yVKw/AyGNn8DC76UiljHTSFFmzp7kIQ+gd4Bdhoin BelV8/vZXBQHKhYVgy8nYU1zbG1ygpO3lJzZQMan2NpbJI77AOPNs3QBiEkO+8zDA+4h yL3NlUpKZtKcjpKeaTSRfjELyBIX4mlCoknuuhG2W6tNZkclRTAC9r/bYD5sXAzjSvhX lsljebsgmfjEOqMSG2Lb4ESA5SswWQ6J0y7+yvcRFkP65jzMf8fcoenaYrp5d7IIN3fl JVRw== X-Gm-Message-State: AG10YOQcEqGhj42jkxgBLIdKJb28+dhWP9YRmnMqyxqKobriAiq9qtwZjzEiY6hjpPCTqqkpFZZx8zZVM5pkpA== MIME-Version: 1.0 X-Received: by 10.107.162.144 with SMTP id l138mr30152741ioe.123.1456949299432; Wed, 02 Mar 2016 12:08:19 -0800 (PST) Received: by 10.36.14.19 with HTTP; Wed, 2 Mar 2016 12:08:19 -0800 (PST) In-Reply-To: References: <201602291910.u1TJAX7t057795@repo.freebsd.org> Date: Wed, 2 Mar 2016 12:08:19 -0800 Message-ID: Subject: Re: svn commit: r296221 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src include lib/libc/stdlib/jemalloc From: Adrian Chadd To: Jason Evans Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 20:08:20 -0000 Hi, So apparently it's comparing a very large value (#define NSTIME_SEC_MAX 18446744072) against a 32 bit ssize_t on mips32. i386 also has a 32 bit ssize_t. I'd like this resolved and tested on 32 bit platforms or I'm going to revert the commit in 24 hours. Sorry, but that's kinda broken on all 32 bit platforms. Sorry, but this is above even my "wtf" threshold. :( -a From owner-svn-src-head@freebsd.org Wed Mar 2 21:03:43 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1D91AC01FA; Wed, 2 Mar 2016 21:03:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9A5481DC5; Wed, 2 Mar 2016 21:03:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22L3geh052110; Wed, 2 Mar 2016 21:03:42 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22L3giq052107; Wed, 2 Mar 2016 21:03:42 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603022103.u22L3giq052107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 2 Mar 2016 21:03:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296324 - in head: share/mk sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 21:03:44 -0000 Author: bdrewery Date: Wed Mar 2 21:03:42 2016 New Revision: 296324 URL: https://svnweb.freebsd.org/changeset/base/296324 Log: Add guessed dependencies to OBJS after bsd.dep.mk in case of it adding to SRCS. This was a regression in r295985. bsd.dep.mk adds to SRCS for dtrace probes, yacc grammars and some others. The code that is moving is planned to be removed once FAST_DEPEND is default (and the only option) though since FAST_DEPEND doesn't use this. Pointyhat to: bdrewery Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.lib.mk head/share/mk/bsd.prog.mk head/sys/conf/kmod.mk Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Wed Mar 2 20:06:24 2016 (r296323) +++ head/share/mk/bsd.lib.mk Wed Mar 2 21:03:42 2016 (r296324) @@ -417,30 +417,35 @@ lint: ${SRCS:M*.c} .if defined(LIB) && !empty(LIB) OBJS_DEPEND_GUESS+= ${SRCS:M*.h} -.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) -${OBJS} ${STATICOBJS} ${POBJS}: ${OBJS_DEPEND_GUESS} -.endif .for _S in ${SRCS:N*.[hly]} OBJS_DEPEND_GUESS.${_S:R}.po= ${_S} -.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) -${_S:R}.po: ${OBJS_DEPEND_GUESS.${_S:R}.po} -.endif .endfor .endif .if defined(SHLIB_NAME) || \ defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) -.if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) -${SOBJS}: ${OBJS_DEPEND_GUESS} -.endif .for _S in ${SRCS:N*.[hly]} OBJS_DEPEND_GUESS.${_S:R}.So= ${_S} +.endfor +.endif + +.include + +.if defined(LIB) && !empty(LIB) .if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) +${OBJS} ${STATICOBJS} ${POBJS}: ${OBJS_DEPEND_GUESS} +.for _S in ${SRCS:N*.[hly]} +${_S:R}.po: ${OBJS_DEPEND_GUESS.${_S:R}.po} +.endfor +.if defined(SHLIB_NAME) || \ + defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) +${SOBJS}: ${OBJS_DEPEND_GUESS} +.for _S in ${SRCS:N*.[hly]} ${_S:R}.So: ${OBJS_DEPEND_GUESS.${_S:R}.So} -.endif .endfor .endif +.endif +.endif -.include .include .include .include Modified: head/share/mk/bsd.prog.mk ============================================================================== --- head/share/mk/bsd.prog.mk Wed Mar 2 20:06:24 2016 (r296323) +++ head/share/mk/bsd.prog.mk Wed Mar 2 21:03:42 2016 (r296324) @@ -277,12 +277,16 @@ lint: ${SRCS:M*.c} .if defined(PROG) OBJS_DEPEND_GUESS+= ${SRCS:M*.h} +.endif + +.include + +.if defined(PROG) .if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) ${OBJS}: ${OBJS_DEPEND_GUESS} .endif .endif -.include .include .include .include Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Wed Mar 2 20:06:24 2016 (r296323) +++ head/sys/conf/kmod.mk Wed Mar 2 21:03:42 2016 (r296324) @@ -456,11 +456,13 @@ cleanilinks: rm -f ${_ILINKS} OBJS_DEPEND_GUESS+= ${SRCS:M*.h} + +.include + .if ${MK_FAST_DEPEND} == "no" && !exists(${.OBJDIR}/${DEPENDFILE}) ${OBJS}: ${OBJS_DEPEND_GUESS} .endif -.include .include .include .include "kern.mk" From owner-svn-src-head@freebsd.org Wed Mar 2 21:24:48 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4425CAC0A3D; Wed, 2 Mar 2016 21:24:48 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 ECFB71CC8; Wed, 2 Mar 2016 21:24:47 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22LOkXk058230; Wed, 2 Mar 2016 21:24:46 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22LOkbP058229; Wed, 2 Mar 2016 21:24:46 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201603022124.u22LOkbP058229@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Wed, 2 Mar 2016 21:24:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296326 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 21:24:48 -0000 Author: jilles Date: Wed Mar 2 21:24:46 2016 New Revision: 296326 URL: https://svnweb.freebsd.org/changeset/base/296326 Log: sh: Don't trust that signal descriptions fit within 49 bytes. Modified: head/bin/sh/jobs.c Modified: head/bin/sh/jobs.c ============================================================================== --- head/bin/sh/jobs.c Wed Mar 2 21:04:17 2016 (r296325) +++ head/bin/sh/jobs.c Wed Mar 2 21:24:46 2016 (r296326) @@ -322,8 +322,8 @@ static void showjob(struct job *jp, int mode) { char s[64]; - char statestr[64]; - const char *sigstr; + char statebuf[16]; + const char *statestr, *coredump; struct procstat *ps; struct job *j; int col, curr, i, jobno, prev, procno; @@ -339,9 +339,10 @@ showjob(struct job *jp, int mode) prev = j - jobtab + 1; } #endif + coredump = ""; ps = jp->ps + jp->nprocs - 1; if (jp->state == 0) { - strcpy(statestr, "Running"); + statestr = "Running"; #if JOBS } else if (jp->state == JOBSTOPPED) { while (!WIFSTOPPED(ps->status) && ps > jp->ps) @@ -350,27 +351,25 @@ showjob(struct job *jp, int mode) i = WSTOPSIG(ps->status); else i = -1; - sigstr = strsignal(i); - if (sigstr != NULL) - strcpy(statestr, sigstr); - else - strcpy(statestr, "Suspended"); + statestr = strsignal(i); + if (statestr == NULL) + statestr = "Suspended"; #endif } else if (WIFEXITED(ps->status)) { if (WEXITSTATUS(ps->status) == 0) - strcpy(statestr, "Done"); - else - fmtstr(statestr, 64, "Done(%d)", + statestr = "Done"; + else { + fmtstr(statebuf, sizeof(statebuf), "Done(%d)", WEXITSTATUS(ps->status)); + statestr = statebuf; + } } else { i = WTERMSIG(ps->status); - sigstr = strsignal(i); - if (sigstr != NULL) - strcpy(statestr, sigstr); - else - strcpy(statestr, "Unknown signal"); + statestr = strsignal(i); + if (statestr == NULL) + statestr = "Unknown signal"; if (WCOREDUMP(ps->status)) - strcat(statestr, " (core dumped)"); + coredump = " (core dumped)"; } for (ps = jp->ps ; procno > 0 ; ps++, procno--) { /* for each process */ @@ -399,7 +398,8 @@ showjob(struct job *jp, int mode) } if (ps == jp->ps) { out1str(statestr); - col += strlen(statestr); + out1str(coredump); + col += strlen(statestr) + strlen(coredump); } do { out1c(' '); From owner-svn-src-head@freebsd.org Wed Mar 2 22:52:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98722AC11B6; Wed, 2 Mar 2016 22:52:55 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 6A7601CDD; Wed, 2 Mar 2016 22:52:55 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u22MqsKp086951; Wed, 2 Mar 2016 22:52:54 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u22MqslI086950; Wed, 2 Mar 2016 22:52:54 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201603022252.u22MqslI086950@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Wed, 2 Mar 2016 22:52:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296327 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Mar 2016 22:52:55 -0000 Author: jilles Date: Wed Mar 2 22:52:54 2016 New Revision: 296327 URL: https://svnweb.freebsd.org/changeset/base/296327 Log: sh: Remove a redundant STPUTC check. Modified: head/bin/sh/parser.c Modified: head/bin/sh/parser.c ============================================================================== --- head/bin/sh/parser.c Wed Mar 2 21:24:46 2016 (r296326) +++ head/bin/sh/parser.c Wed Mar 2 22:52:54 2016 (r296327) @@ -1671,7 +1671,7 @@ varname: c = pgetc_linecont(); } while (is_digit(c)); } else { - STPUTC(c, out); + USTPUTC(c, out); c = pgetc_linecont(); } } else if (is_special(c)) { From owner-svn-src-head@freebsd.org Thu Mar 3 01:07:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2283AC10D1; Thu, 3 Mar 2016 01:07:18 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A3FD71C0C; Thu, 3 Mar 2016 01:07:18 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2317HB2026507; Thu, 3 Mar 2016 01:07:17 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2317HJU026506; Thu, 3 Mar 2016 01:07:17 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603030107.u2317HJU026506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 3 Mar 2016 01:07:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296329 - head/sys/dev/sbni X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:07:18 -0000 Author: jhibbits Date: Thu Mar 3 01:07:17 2016 New Revision: 296329 URL: https://svnweb.freebsd.org/changeset/base/296329 Log: Allocate the PCI BAR resource with bus_alloc_resource_any() We don't support allocating any other range with PCI BARs. Modified: head/sys/dev/sbni/if_sbni_pci.c Modified: head/sys/dev/sbni/if_sbni_pci.c ============================================================================== --- head/sys/dev/sbni/if_sbni_pci.c Wed Mar 2 23:53:08 2016 (r296328) +++ head/sys/dev/sbni/if_sbni_pci.c Thu Mar 3 01:07:17 2016 (r296329) @@ -95,8 +95,8 @@ sbni_pci_probe(device_t dev) device_set_desc(dev, "Granch SBNI12/PCI adapter"); sc->io_rid = PCIR_BAR(0); - sc->io_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->io_rid, - 0ul, ~0ul, ports, RF_ACTIVE); + sc->io_res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, + &sc->io_rid, RF_ACTIVE); if (!sc->io_res) { device_printf(dev, "cannot allocate io ports!\n"); if (sc->slave_sc) From owner-svn-src-head@freebsd.org Thu Mar 3 01:09:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E7E0AC1195; Thu, 3 Mar 2016 01:09:02 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 102F91D89; Thu, 3 Mar 2016 01:09:01 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23191Kw026607; Thu, 3 Mar 2016 01:09:01 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2319148026606; Thu, 3 Mar 2016 01:09:01 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603030109.u2319148026606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 3 Mar 2016 01:09:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296330 - head/sys/pc98/cbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:09:02 -0000 Author: jhibbits Date: Thu Mar 3 01:09:00 2016 New Revision: 296330 URL: https://svnweb.freebsd.org/changeset/base/296330 Log: Another convert to bus_alloc_resource_anywhere(). Depending on how cbus hands out resources, this could actually be bus_alloc_resource_any() instead. Modified: head/sys/pc98/cbus/pmc.c Modified: head/sys/pc98/cbus/pmc.c ============================================================================== --- head/sys/pc98/cbus/pmc.c Thu Mar 3 01:07:17 2016 (r296329) +++ head/sys/pc98/cbus/pmc.c Thu Mar 3 01:09:00 2016 (r296330) @@ -100,9 +100,8 @@ pmc_isa_alloc_resources(device_t dev) bzero(sc, sizeof(*sc)); rid = 0; - sc->port_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, - 0ul, ~0ul, PMC_ISA_PORTSIZE, - RF_ACTIVE); + sc->port_res = bus_alloc_resource_anywhere(dev, SYS_RES_IOPORT, &rid, + PMC_ISA_PORTSIZE, RF_ACTIVE); if (sc->port_res == NULL) { return (ENOMEM); } From owner-svn-src-head@freebsd.org Thu Mar 3 01:12:15 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99BFEAC1504; Thu, 3 Mar 2016 01:12:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5B5201158; Thu, 3 Mar 2016 01:12:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u231CEQD029367; Thu, 3 Mar 2016 01:12:14 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u231CEVt029364; Thu, 3 Mar 2016 01:12:14 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603030112.u231CEVt029364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 3 Mar 2016 01:12:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296331 - in head/sys: mips/nlm mips/rmi powerpc/mpc85xx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:12:15 -0000 Author: jhibbits Date: Thu Mar 3 01:12:13 2016 New Revision: 296331 URL: https://svnweb.freebsd.org/changeset/base/296331 Log: Let rman_init() initialize the default rman range. If rm_start and rm_end are both 0 on input to rman_init(), rman_init() pre-initializes them to the default range. No need to set it before. Modified: head/sys/mips/nlm/xlp_simplebus.c head/sys/mips/rmi/xlr_pci.c head/sys/powerpc/mpc85xx/lbc.c Modified: head/sys/mips/nlm/xlp_simplebus.c ============================================================================== --- head/sys/mips/nlm/xlp_simplebus.c Thu Mar 3 01:09:00 2016 (r296330) +++ head/sys/mips/nlm/xlp_simplebus.c Thu Mar 3 01:12:13 2016 (r296331) @@ -114,32 +114,24 @@ xlp_simplebus_init_resources(void) || rman_manage_region(&irq_rman, 0, 255)) panic("xlp_simplebus_init_resources irq_rman"); - port_rman.rm_start = 0; - port_rman.rm_end = ~0ul; port_rman.rm_type = RMAN_ARRAY; port_rman.rm_descr = "I/O ports"; if (rman_init(&port_rman) || rman_manage_region(&port_rman, PCIE_IO_BASE, PCIE_IO_LIMIT)) panic("xlp_simplebus_init_resources port_rman"); - mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory"; if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, PCIE_MEM_BASE, PCIE_MEM_LIMIT)) panic("xlp_simplebus_init_resources mem_rman"); - pci_ecfg_rman.rm_start = 0; - pci_ecfg_rman.rm_end = ~0ul; pci_ecfg_rman.rm_type = RMAN_ARRAY; pci_ecfg_rman.rm_descr = "PCI ECFG IO"; if (rman_init(&pci_ecfg_rman) || rman_manage_region(&pci_ecfg_rman, PCI_ECFG_BASE, PCI_ECFG_LIMIT)) panic("xlp_simplebus_init_resources pci_ecfg_rman"); - gbu_rman.rm_start = 0; - gbu_rman.rm_end = ~0ul; gbu_rman.rm_type = RMAN_ARRAY; gbu_rman.rm_descr = "Flash region"; if (rman_init(&gbu_rman) Modified: head/sys/mips/rmi/xlr_pci.c ============================================================================== --- head/sys/mips/rmi/xlr_pci.c Thu Mar 3 01:09:00 2016 (r296330) +++ head/sys/mips/rmi/xlr_pci.c Thu Mar 3 01:12:13 2016 (r296331) @@ -125,16 +125,12 @@ xlr_pci_init_resources(void) || rman_manage_region(&irq_rman, 0, 255)) panic("pci_init_resources irq_rman"); - port_rman.rm_start = 0; - port_rman.rm_end = ~0ul; port_rman.rm_type = RMAN_ARRAY; port_rman.rm_descr = "I/O ports"; if (rman_init(&port_rman) || rman_manage_region(&port_rman, 0x10000000, 0x1fffffff)) panic("pci_init_resources port_rman"); - mem_rman.rm_start = 0; - mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory"; if (rman_init(&mem_rman) Modified: head/sys/powerpc/mpc85xx/lbc.c ============================================================================== --- head/sys/powerpc/mpc85xx/lbc.c Thu Mar 3 01:09:00 2016 (r296330) +++ head/sys/powerpc/mpc85xx/lbc.c Thu Mar 3 01:12:13 2016 (r296331) @@ -511,8 +511,6 @@ lbc_attach(device_t dev) rm = &sc->sc_rman; rm->rm_type = RMAN_ARRAY; rm->rm_descr = "Local Bus Space"; - rm->rm_start = 0UL; - rm->rm_end = ~0UL; error = rman_init(rm); if (error) goto fail; From owner-svn-src-head@freebsd.org Thu Mar 3 01:30:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF047AC1BB7; Thu, 3 Mar 2016 01:30:29 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8FCB41BD5; Thu, 3 Mar 2016 01:30:29 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u231US11032853; Thu, 3 Mar 2016 01:30:28 GMT (envelope-from jasone@FreeBSD.org) Received: (from jasone@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u231US5w032851; Thu, 3 Mar 2016 01:30:28 GMT (envelope-from jasone@FreeBSD.org) Message-Id: <201603030130.u231US5w032851@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jasone set sender to jasone@FreeBSD.org using -f From: Jason Evans Date: Thu, 3 Mar 2016 01:30:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296332 - in head/contrib/jemalloc: include/jemalloc/internal src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:30:29 -0000 Author: jasone Date: Thu Mar 3 01:30:28 2016 New Revision: 296332 URL: https://svnweb.freebsd.org/changeset/base/296332 Log: Add a cast to prevent a compiler warning. Modified: head/contrib/jemalloc/include/jemalloc/internal/nstime.h head/contrib/jemalloc/src/arena.c Modified: head/contrib/jemalloc/include/jemalloc/internal/nstime.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/nstime.h Thu Mar 3 01:12:13 2016 (r296331) +++ head/contrib/jemalloc/include/jemalloc/internal/nstime.h Thu Mar 3 01:30:28 2016 (r296332) @@ -7,7 +7,7 @@ typedef struct nstime_s nstime_t; /* Maximum supported number of seconds (~584 years). */ -#define NSTIME_SEC_MAX 18446744072 +#define NSTIME_SEC_MAX KQU(18446744072) #endif /* JEMALLOC_H_TYPES */ /******************************************************************************/ Modified: head/contrib/jemalloc/src/arena.c ============================================================================== --- head/contrib/jemalloc/src/arena.c Thu Mar 3 01:12:13 2016 (r296331) +++ head/contrib/jemalloc/src/arena.c Thu Mar 3 01:30:28 2016 (r296332) @@ -1352,7 +1352,7 @@ static bool arena_decay_time_valid(ssize_t decay_time) { - return (decay_time >= -1 && decay_time <= NSTIME_SEC_MAX); + return (decay_time >= -1 && (uint64_t)decay_time <= NSTIME_SEC_MAX); } ssize_t From owner-svn-src-head@freebsd.org Thu Mar 3 01:41:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2AF85AC2083; Thu, 3 Mar 2016 01:41:55 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E93D612C9; Thu, 3 Mar 2016 01:41:54 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u231fsBG038593; Thu, 3 Mar 2016 01:41:54 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u231frUO038590; Thu, 3 Mar 2016 01:41:53 GMT (envelope-from np@FreeBSD.org) Message-Id: <201603030141.u231frUO038590@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 3 Mar 2016 01:41:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296333 - in head/sys/dev/cxgbe: . common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:41:55 -0000 Author: np Date: Thu Mar 3 01:41:53 2016 New Revision: 296333 URL: https://svnweb.freebsd.org/changeset/base/296333 Log: cxgbe(4): First of many changes to reduce diffs with internal shared code: - Rename some CamelCase variables. - s/t4_link_start/t4_link_l1cfg/g - Pull in t4_get_port_type_description. - Move t4_wait_op_done to t4_hw.c. - Flip the order of the RDMA stats. - Remove unsused function t4_iq_start_stop. - Move t4_wait_op_done and t4_wait_op_done_val to t4_hw.c Obtained from: Chelsio Communications Modified: head/sys/dev/cxgbe/common/common.h head/sys/dev/cxgbe/common/t4_hw.c head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/common/common.h ============================================================================== --- head/sys/dev/cxgbe/common/common.h Thu Mar 3 01:30:28 2016 (r296332) +++ head/sys/dev/cxgbe/common/common.h Thu Mar 3 01:41:53 2016 (r296333) @@ -169,10 +169,10 @@ struct lb_port_stats { }; struct tp_tcp_stats { - u32 tcpOutRsts; - u64 tcpInSegs; - u64 tcpOutSegs; - u64 tcpRetransSegs; + u32 tcp_out_rsts; + u64 tcp_in_segs; + u64 tcp_out_segs; + u64 tcp_retrans_segs; }; struct tp_usm_stats { @@ -182,22 +182,22 @@ struct tp_usm_stats { }; struct tp_fcoe_stats { - u32 framesDDP; - u32 framesDrop; - u64 octetsDDP; + u32 frames_ddp; + u32 frames_drop; + u64 octets_ddp; }; struct tp_err_stats { - u32 macInErrs[4]; - u32 hdrInErrs[4]; - u32 tcpInErrs[4]; - u32 tnlCongDrops[4]; - u32 ofldChanDrops[4]; - u32 tnlTxDrops[4]; - u32 ofldVlanDrops[4]; - u32 tcp6InErrs[4]; - u32 ofldNoNeigh; - u32 ofldCongDefer; + u32 mac_in_errs[4]; + u32 hdr_in_errs[4]; + u32 tcp_in_errs[4]; + u32 tnl_cong_drops[4]; + u32 ofld_chan_drops[4]; + u32 tnl_tx_drops[4]; + u32 ofld_vlan_drops[4]; + u32 tcp6_in_errs[4]; + u32 ofld_no_neigh; + u32 ofld_cong_defer; }; struct tp_proxy_stats { @@ -210,8 +210,8 @@ struct tp_cpl_stats { }; struct tp_rdma_stats { - u32 rqe_dfr_mod; u32 rqe_dfr_pkt; + u32 rqe_dfr_mod; }; struct tp_params { @@ -389,15 +389,6 @@ static inline unsigned int dack_ticks_to } void t4_set_reg_field(struct adapter *adap, unsigned int addr, u32 mask, u32 val); -int t4_wait_op_done_val(struct adapter *adapter, int reg, u32 mask, int polarity, - int attempts, int delay, u32 *valp); - -static inline int t4_wait_op_done(struct adapter *adapter, int reg, u32 mask, - int polarity, int attempts, int delay) -{ - return t4_wait_op_done_val(adapter, reg, mask, polarity, attempts, - delay, NULL); -} int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size, void *rpl, bool sleep_ok); @@ -431,7 +422,7 @@ void t4_intr_clear(struct adapter *adapt int t4_slow_intr_handler(struct adapter *adapter); int t4_hash_mac_addr(const u8 *addr); -int t4_link_start(struct adapter *adap, unsigned int mbox, unsigned int port, +int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, struct link_config *lc); int t4_restart_aneg(struct adapter *adap, unsigned int mbox, unsigned int port); int t4_seeprom_read(struct adapter *adapter, u32 addr, u32 *data); @@ -500,6 +491,7 @@ int t4_edc_read(struct adapter *adap, in int t4_mem_read(struct adapter *adap, int mtype, u32 addr, u32 size, __be32 *data); +const char *t4_get_port_type_description(enum fw_port_type port_type); void t4_get_port_stats(struct adapter *adap, int idx, struct port_stats *p); void t4_get_port_stats_offset(struct adapter *adap, int idx, struct port_stats *stats, @@ -597,9 +589,6 @@ int t4_i2c_wr(struct adapter *adap, unsi int port, unsigned int devid, unsigned int offset, unsigned int len, u8 *buf); -int t4_iq_start_stop(struct adapter *adap, unsigned int mbox, bool start, - unsigned int pf, unsigned int vf, unsigned int iqid, - unsigned int fl0id, unsigned int fl1id); int t4_iq_free(struct adapter *adap, unsigned int mbox, unsigned int pf, unsigned int vf, unsigned int iqtype, unsigned int iqid, unsigned int fl0id, unsigned int fl1id); Modified: head/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.c Thu Mar 3 01:30:28 2016 (r296332) +++ head/sys/dev/cxgbe/common/t4_hw.c Thu Mar 3 01:41:53 2016 (r296333) @@ -60,8 +60,8 @@ __FBSDID("$FreeBSD$"); * at the time it indicated completion is stored there. Returns 0 if the * operation completes and -EAGAIN otherwise. */ -int t4_wait_op_done_val(struct adapter *adapter, int reg, u32 mask, - int polarity, int attempts, int delay, u32 *valp) +static int t4_wait_op_done_val(struct adapter *adapter, int reg, u32 mask, + int polarity, int attempts, int delay, u32 *valp) { while (1) { u32 val = t4_read_reg(adapter, reg); @@ -78,6 +78,13 @@ int t4_wait_op_done_val(struct adapter * } } +static inline int t4_wait_op_done(struct adapter *adapter, int reg, u32 mask, + int polarity, int attempts, int delay) +{ + return t4_wait_op_done_val(adapter, reg, mask, polarity, attempts, + delay, NULL); +} + /** * t4_set_reg_field - set a register field to a value * @adapter: the adapter to program @@ -1870,7 +1877,7 @@ void t4_ulprx_read_la(struct adapter *ad FW_PORT_CAP_SPEED_100G | FW_PORT_CAP_ANEG) /** - * t4_link_start - apply link configuration to MAC/PHY + * t4_link_l1cfg - apply link configuration to MAC/PHY * @phy: the PHY to setup * @mac: the MAC to setup * @lc: the requested link configuration @@ -1882,7 +1889,7 @@ void t4_ulprx_read_la(struct adapter *ad * - If auto-negotiation is off set the MAC to the proper speed/duplex/FC, * otherwise do it later based on the outcome of auto-negotiation. */ -int t4_link_start(struct adapter *adap, unsigned int mbox, unsigned int port, +int t4_link_l1cfg(struct adapter *adap, unsigned int mbox, unsigned int port, struct link_config *lc) { struct fw_port_cmd c; @@ -2909,7 +2916,7 @@ static int rd_rss_row(struct adapter *ad return t4_wait_op_done_val(adap, A_TP_RSS_LKP_TABLE, F_LKPTBLROWVLD, 1, 5, 0, val); } - + /** * t4_read_rss - read the contents of the RSS mapping table * @adapter: the adapter @@ -3189,18 +3196,18 @@ void t4_tp_get_tcp_stats(struct adapter if (v4) { t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, val, ARRAY_SIZE(val), A_TP_MIB_TCP_OUT_RST); - v4->tcpOutRsts = STAT(OUT_RST); - v4->tcpInSegs = STAT64(IN_SEG); - v4->tcpOutSegs = STAT64(OUT_SEG); - v4->tcpRetransSegs = STAT64(RXT_SEG); + v4->tcp_out_rsts = STAT(OUT_RST); + v4->tcp_in_segs = STAT64(IN_SEG); + v4->tcp_out_segs = STAT64(OUT_SEG); + v4->tcp_retrans_segs = STAT64(RXT_SEG); } if (v6) { t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, val, ARRAY_SIZE(val), A_TP_MIB_TCP_V6OUT_RST); - v6->tcpOutRsts = STAT(OUT_RST); - v6->tcpInSegs = STAT64(IN_SEG); - v6->tcpOutSegs = STAT64(OUT_SEG); - v6->tcpRetransSegs = STAT64(RXT_SEG); + v6->tcp_out_rsts = STAT(OUT_RST); + v6->tcp_in_segs = STAT64(IN_SEG); + v6->tcp_out_segs = STAT64(OUT_SEG); + v6->tcp_retrans_segs = STAT64(RXT_SEG); } #undef STAT64 #undef STAT @@ -3216,18 +3223,27 @@ void t4_tp_get_tcp_stats(struct adapter */ void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st) { - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->macInErrs, - 12, A_TP_MIB_MAC_IN_ERR_0); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->tnlCongDrops, - 8, A_TP_MIB_TNL_CNG_DROP_0); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->tnlTxDrops, - 4, A_TP_MIB_TNL_DROP_0); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->ofldVlanDrops, - 4, A_TP_MIB_OFD_VLN_DROP_0); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->tcp6InErrs, - 4, A_TP_MIB_TCP_V6IN_ERR_0); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->ofldNoNeigh, - 2, A_TP_MIB_OFD_ARP_DROP); + int nchan = NCHAN; + + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->mac_in_errs, nchan, A_TP_MIB_MAC_IN_ERR_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->hdr_in_errs, nchan, A_TP_MIB_HDR_IN_ERR_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->tcp_in_errs, nchan, A_TP_MIB_TCP_IN_ERR_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->tnl_cong_drops, nchan, A_TP_MIB_TNL_CNG_DROP_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->ofld_chan_drops, nchan, A_TP_MIB_OFD_CHN_DROP_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->tnl_tx_drops, nchan, A_TP_MIB_TNL_DROP_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->ofld_vlan_drops, nchan, A_TP_MIB_OFD_VLN_DROP_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + st->tcp6_in_errs, nchan, A_TP_MIB_TCP_V6IN_ERR_0); + + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, + &st->ofld_no_neigh, 2, A_TP_MIB_OFD_ARP_DROP); } /** @@ -3266,7 +3282,7 @@ void t4_tp_get_cpl_stats(struct adapter void t4_tp_get_rdma_stats(struct adapter *adap, struct tp_rdma_stats *st) { t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->rqe_dfr_mod, - 2, A_TP_MIB_RQE_DFR_MOD); + 2, A_TP_MIB_RQE_DFR_PKT); } /** @@ -3282,13 +3298,13 @@ void t4_get_fcoe_stats(struct adapter *a { u32 val[2]; - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->framesDDP, + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->frames_ddp, 1, A_TP_MIB_FCOE_DDP_0 + idx); - t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->framesDrop, + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, &st->frames_drop, 1, A_TP_MIB_FCOE_DROP_0 + idx); t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, val, 2, A_TP_MIB_FCOE_BYTE_0_HI + 2 * idx); - st->octetsDDP = ((u64)val[0] << 32) | val[1]; + st->octets_ddp = ((u64)val[0] << 32) | val[1]; } /** @@ -3868,6 +3884,36 @@ static unsigned int get_mps_bg_map(struc } /** + * t4_get_port_type_description - return Port Type string description + * @port_type: firmware Port Type enumeration + */ +const char *t4_get_port_type_description(enum fw_port_type port_type) +{ + static const char *port_type_description[] = { + "Fiber_XFI", + "Fiber_XAUI", + "BT_SGMII", + "BT_XFI", + "BT_XAUI", + "KX4", + "CX4", + "KX", + "KR", + "SFP", + "BP_AP", + "BP4_AP", + "QSFP_10G", + "", + "QSFP", + "BP40_BA", + }; + + if (port_type < ARRAY_SIZE(port_type_description)) + return port_type_description[port_type]; + return "UNKNOWN"; +} + +/** * t4_get_port_stats_offset - collect port stats relative to a previous * snapshot * @adap: The adapter @@ -5276,37 +5322,6 @@ int t4_identify_port(struct adapter *ada } /** - * t4_iq_start_stop - enable/disable an ingress queue and its FLs - * @adap: the adapter - * @mbox: mailbox to use for the FW command - * @start: %true to enable the queues, %false to disable them - * @pf: the PF owning the queues - * @vf: the VF owning the queues - * @iqid: ingress queue id - * @fl0id: FL0 queue id or 0xffff if no attached FL0 - * @fl1id: FL1 queue id or 0xffff if no attached FL1 - * - * Starts or stops an ingress queue and its associated FLs, if any. - */ -int t4_iq_start_stop(struct adapter *adap, unsigned int mbox, bool start, - unsigned int pf, unsigned int vf, unsigned int iqid, - unsigned int fl0id, unsigned int fl1id) -{ - struct fw_iq_cmd c; - - memset(&c, 0, sizeof(c)); - c.op_to_vfn = htonl(V_FW_CMD_OP(FW_IQ_CMD) | F_FW_CMD_REQUEST | - F_FW_CMD_EXEC | V_FW_IQ_CMD_PFN(pf) | - V_FW_IQ_CMD_VFN(vf)); - c.alloc_to_len16 = htonl(V_FW_IQ_CMD_IQSTART(start) | - V_FW_IQ_CMD_IQSTOP(!start) | FW_LEN16(c)); - c.iqid = htons(iqid); - c.fl0id = htons(fl0id); - c.fl1id = htons(fl1id); - return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL); -} - -/** * t4_iq_free - free an ingress queue and its FLs * @adap: the adapter * @mbox: mailbox to use for the FW command Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Thu Mar 3 01:30:28 2016 (r296332) +++ head/sys/dev/cxgbe/t4_main.c Thu Mar 3 01:41:53 2016 (r296333) @@ -828,7 +828,7 @@ t4_attach(device_t dev) pi->link_cfg.fc &= ~(PAUSE_TX | PAUSE_RX); pi->link_cfg.fc |= t4_pause_settings; - rc = -t4_link_start(sc, sc->mbox, pi->tx_chan, &pi->link_cfg); + rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, &pi->link_cfg); if (rc != 0) { device_printf(dev, "port %d l1cfg failed: %d\n", i, rc); free(pi->vi, M_CXGBE); @@ -5935,7 +5935,7 @@ sysctl_pause_settings(SYSCTL_HANDLER_ARG lc->requested_fc &= ~(PAUSE_TX | PAUSE_RX); lc->requested_fc |= n; - rc = -t4_link_start(sc, sc->mbox, pi->tx_chan, lc); + rc = -t4_link_l1cfg(sc, sc->mbox, pi->tx_chan, lc); lc->link_ok = link_ok; /* restore */ } end_synchronized_op(sc, 0); @@ -6494,13 +6494,14 @@ sysctl_fcoe_stats(SYSCTL_HANDLER_ARGS) sbuf_printf(sb, " channel 0 channel 1 " "channel 2 channel 3\n"); sbuf_printf(sb, "octetsDDP: %16ju %16ju %16ju %16ju\n", - stats[0].octetsDDP, stats[1].octetsDDP, stats[2].octetsDDP, - stats[3].octetsDDP); - sbuf_printf(sb, "framesDDP: %16u %16u %16u %16u\n", stats[0].framesDDP, - stats[1].framesDDP, stats[2].framesDDP, stats[3].framesDDP); + stats[0].octets_ddp, stats[1].octets_ddp, stats[2].octets_ddp, + stats[3].octets_ddp); + sbuf_printf(sb, "framesDDP: %16u %16u %16u %16u\n", + stats[0].frames_ddp, stats[1].frames_ddp, stats[2].frames_ddp, + stats[3].frames_ddp); sbuf_printf(sb, "framesDrop: %16u %16u %16u %16u", - stats[0].framesDrop, stats[1].framesDrop, stats[2].framesDrop, - stats[3].framesDrop); + stats[0].frames_drop, stats[1].frames_drop, stats[2].frames_drop, + stats[3].frames_drop); rc = sbuf_finish(sb); sbuf_delete(sb); @@ -7099,13 +7100,13 @@ sysctl_tcp_stats(SYSCTL_HANDLER_ARGS) sbuf_printf(sb, " IP IPv6\n"); sbuf_printf(sb, "OutRsts: %20u %20u\n", - v4.tcpOutRsts, v6.tcpOutRsts); + v4.tcp_out_rsts, v6.tcp_out_rsts); sbuf_printf(sb, "InSegs: %20ju %20ju\n", - v4.tcpInSegs, v6.tcpInSegs); + v4.tcp_in_segs, v6.tcp_in_segs); sbuf_printf(sb, "OutSegs: %20ju %20ju\n", - v4.tcpOutSegs, v6.tcpOutSegs); + v4.tcp_out_segs, v6.tcp_out_segs); sbuf_printf(sb, "RetransSegs: %20ju %20ju", - v4.tcpRetransSegs, v6.tcpRetransSegs); + v4.tcp_retrans_segs, v6.tcp_retrans_segs); rc = sbuf_finish(sb); sbuf_delete(sb); @@ -7199,31 +7200,31 @@ sysctl_tp_err_stats(SYSCTL_HANDLER_ARGS) sbuf_printf(sb, " channel 0 channel 1 channel 2 " "channel 3\n"); sbuf_printf(sb, "macInErrs: %10u %10u %10u %10u\n", - stats.macInErrs[0], stats.macInErrs[1], stats.macInErrs[2], - stats.macInErrs[3]); + stats.mac_in_errs[0], stats.mac_in_errs[1], stats.mac_in_errs[2], + stats.mac_in_errs[3]); sbuf_printf(sb, "hdrInErrs: %10u %10u %10u %10u\n", - stats.hdrInErrs[0], stats.hdrInErrs[1], stats.hdrInErrs[2], - stats.hdrInErrs[3]); + stats.hdr_in_errs[0], stats.hdr_in_errs[1], stats.hdr_in_errs[2], + stats.hdr_in_errs[3]); sbuf_printf(sb, "tcpInErrs: %10u %10u %10u %10u\n", - stats.tcpInErrs[0], stats.tcpInErrs[1], stats.tcpInErrs[2], - stats.tcpInErrs[3]); + stats.tcp_in_errs[0], stats.tcp_in_errs[1], stats.tcp_in_errs[2], + stats.tcp_in_errs[3]); sbuf_printf(sb, "tcp6InErrs: %10u %10u %10u %10u\n", - stats.tcp6InErrs[0], stats.tcp6InErrs[1], stats.tcp6InErrs[2], - stats.tcp6InErrs[3]); + stats.tcp6_in_errs[0], stats.tcp6_in_errs[1], stats.tcp6_in_errs[2], + stats.tcp6_in_errs[3]); sbuf_printf(sb, "tnlCongDrops: %10u %10u %10u %10u\n", - stats.tnlCongDrops[0], stats.tnlCongDrops[1], stats.tnlCongDrops[2], - stats.tnlCongDrops[3]); + stats.tnl_cong_drops[0], stats.tnl_cong_drops[1], + stats.tnl_cong_drops[2], stats.tnl_cong_drops[3]); sbuf_printf(sb, "tnlTxDrops: %10u %10u %10u %10u\n", - stats.tnlTxDrops[0], stats.tnlTxDrops[1], stats.tnlTxDrops[2], - stats.tnlTxDrops[3]); + stats.tnl_tx_drops[0], stats.tnl_tx_drops[1], stats.tnl_tx_drops[2], + stats.tnl_tx_drops[3]); sbuf_printf(sb, "ofldVlanDrops: %10u %10u %10u %10u\n", - stats.ofldVlanDrops[0], stats.ofldVlanDrops[1], - stats.ofldVlanDrops[2], stats.ofldVlanDrops[3]); + stats.ofld_vlan_drops[0], stats.ofld_vlan_drops[1], + stats.ofld_vlan_drops[2], stats.ofld_vlan_drops[3]); sbuf_printf(sb, "ofldChanDrops: %10u %10u %10u %10u\n\n", - stats.ofldChanDrops[0], stats.ofldChanDrops[1], - stats.ofldChanDrops[2], stats.ofldChanDrops[3]); + stats.ofld_chan_drops[0], stats.ofld_chan_drops[1], + stats.ofld_chan_drops[2], stats.ofld_chan_drops[3]); sbuf_printf(sb, "ofldNoNeigh: %u\nofldCongDefer: %u", - stats.ofldNoNeigh, stats.ofldCongDefer); + stats.ofld_no_neigh, stats.ofld_cong_defer); rc = sbuf_finish(sb); sbuf_delete(sb); From owner-svn-src-head@freebsd.org Thu Mar 3 01:43:37 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C3C32AC2111; Thu, 3 Mar 2016 01:43:37 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9441814E5; Thu, 3 Mar 2016 01:43:37 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u231haiR038689; Thu, 3 Mar 2016 01:43:36 GMT (envelope-from jasone@FreeBSD.org) Received: (from jasone@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u231ha5V038688; Thu, 3 Mar 2016 01:43:36 GMT (envelope-from jasone@FreeBSD.org) Message-Id: <201603030143.u231ha5V038688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jasone set sender to jasone@FreeBSD.org using -f From: Jason Evans Date: Thu, 3 Mar 2016 01:43:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296334 - head/contrib/jemalloc/src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 01:43:37 -0000 Author: jasone Date: Thu Mar 3 01:43:36 2016 New Revision: 296334 URL: https://svnweb.freebsd.org/changeset/base/296334 Log: Restore support for decay time of -1 (no decay). Modified: head/contrib/jemalloc/src/arena.c Modified: head/contrib/jemalloc/src/arena.c ============================================================================== --- head/contrib/jemalloc/src/arena.c Thu Mar 3 01:41:53 2016 (r296333) +++ head/contrib/jemalloc/src/arena.c Thu Mar 3 01:43:36 2016 (r296334) @@ -1352,7 +1352,11 @@ static bool arena_decay_time_valid(ssize_t decay_time) { - return (decay_time >= -1 && (uint64_t)decay_time <= NSTIME_SEC_MAX); + if (decay_time < -1) + return (false); + if (decay_time == -1 || (uint64_t)decay_time <= NSTIME_SEC_MAX) + return (true); + return (false); } ssize_t From owner-svn-src-head@freebsd.org Thu Mar 3 02:46:14 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26081AC1A66; Thu, 3 Mar 2016 02:46:14 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D8EE819AA; Thu, 3 Mar 2016 02:46:13 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u232kC2E056433; Thu, 3 Mar 2016 02:46:12 GMT (envelope-from gnn@FreeBSD.org) Received: (from gnn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u232kCbs056430; Thu, 3 Mar 2016 02:46:12 GMT (envelope-from gnn@FreeBSD.org) Message-Id: <201603030246.u232kCbs056430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gnn set sender to gnn@FreeBSD.org using -f From: "George V. Neville-Neil" Date: Thu, 3 Mar 2016 02:46:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296335 - in head: cddl/lib/libdtrace share/dtrace X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 02:46:14 -0000 Author: gnn Date: Thu Mar 3 02:46:12 2016 New Revision: 296335 URL: https://svnweb.freebsd.org/changeset/base/296335 Log: fix tcpdebug: - assign to "flags" in each probe, not only debug-input compute "len" in the same way in each probe Submitted by: Hannes Mehnert MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D5524 Modified: head/cddl/lib/libdtrace/tcp.d head/share/dtrace/Makefile head/share/dtrace/tcpdebug Modified: head/cddl/lib/libdtrace/tcp.d ============================================================================== --- head/cddl/lib/libdtrace/tcp.d Thu Mar 3 01:43:36 2016 (r296334) +++ head/cddl/lib/libdtrace/tcp.d Thu Mar 3 02:46:12 2016 (r296335) @@ -102,6 +102,7 @@ typedef struct tcpsinfo { string tcps_raddr; /* remote address, as a string */ int32_t tcps_state; /* TCP state */ uint32_t tcps_iss; /* Initial sequence # sent */ + uint32_t tcps_irs; /* Initial sequence # received */ uint32_t tcps_suna; /* sequence # sent but unacked */ uint32_t tcps_smax; /* highest sequence number sent */ uint32_t tcps_snxt; /* next sequence # to send */ @@ -112,10 +113,12 @@ typedef struct tcpsinfo { uint32_t tcps_swl1; /* window update seg seq number */ uint32_t tcps_swl2; /* window update seg ack number */ uint32_t tcps_rup; /* receive urgent pointer */ + uint32_t tcps_radv; /* advertised window */ uint32_t tcps_rwnd; /* receive window size */ int32_t tcps_rcv_ws; /* receive window scaling */ uint32_t tcps_cwnd; /* congestion window */ uint32_t tcps_cwnd_ssthresh; /* threshold for congestion avoidance */ + uint32_t tcps_srecover; /* for use in NewReno Fast Recovery */ uint32_t tcps_sack_fack; /* SACK sequence # we have acked */ uint32_t tcps_sack_snxt; /* next SACK seq # for retransmission */ uint32_t tcps_rto; /* round-trip timeout, msec */ @@ -123,6 +126,10 @@ typedef struct tcpsinfo { int tcps_retransmit; /* retransmit send event, boolean */ int tcps_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ int tcps_debug; /* socket has SO_DEBUG set */ + int32_t tcps_dupacks; /* consecutive dup acks received */ + uint32_t tcps_rtttime; /* RTT measurement start time */ + uint32_t tcps_rtseq; /* sequence # being timed */ + uint32_t tcps_ts_recent; /* timestamp echo data */ } tcpsinfo_t; /* @@ -192,6 +199,7 @@ translator tcpsinfo_t < struct tcpcb *p inet_ntoa6(&p->t_inpcb->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign); tcps_state = p == NULL ? -1 : p->t_state; tcps_iss = p == NULL ? 0 : p->iss; + tcps_irs = p == NULL ? 0 : p->irs; tcps_suna = p == NULL ? 0 : p->snd_una; tcps_smax = p == NULL ? 0 : p->snd_max; tcps_snxt = p == NULL ? 0 : p->snd_nxt; @@ -201,11 +209,13 @@ translator tcpsinfo_t < struct tcpcb *p tcps_snd_ws = p == NULL ? -1 : p->snd_scale; tcps_swl1 = p == NULL ? -1 : p->snd_wl1; tcps_swl2 = p == NULL ? -1 : p->snd_wl2; + tcps_radv = p == NULL ? -1 : p->rcv_adv; tcps_rwnd = p == NULL ? -1 : p->rcv_wnd; tcps_rup = p == NULL ? -1 : p->rcv_up; tcps_rcv_ws = p == NULL ? -1 : p->rcv_scale; tcps_cwnd = p == NULL ? -1 : p->snd_cwnd; tcps_cwnd_ssthresh = p == NULL ? -1 : p->snd_ssthresh; + tcps_srecover = p == NULL ? -1 : p->snd_recover; tcps_sack_fack = p == NULL ? 0 : p->snd_fack; tcps_sack_snxt = p == NULL ? 0 : p->sack_newdata; tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / `hz; @@ -214,6 +224,10 @@ translator tcpsinfo_t < struct tcpcb *p tcps_srtt = p == NULL ? -1 : p->t_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ tcps_debug = p == NULL ? 0 : p->t_inpcb->inp_socket->so_options & 1; + tcps_dupacks = p == NULL ? -1 : p->t_dupacks; + tcps_rtttime = p == NULL ? -1 : p->t_rtttime; + tcps_rtseq = p == NULL ? -1 : p->t_rtseq; + tcps_ts_recent = p == NULL ? -1 : p->ts_recent; }; #pragma D binding "1.6.3" translator Modified: head/share/dtrace/Makefile ============================================================================== --- head/share/dtrace/Makefile Thu Mar 3 01:43:36 2016 (r296334) +++ head/share/dtrace/Makefile Thu Mar 3 02:46:12 2016 (r296335) @@ -20,6 +20,7 @@ SCRIPTS= blocking \ nfsclienttime \ siftr \ tcpconn \ + tcpdebug \ tcpstate \ tcptrack \ udptrack \ Modified: head/share/dtrace/tcpdebug ============================================================================== --- head/share/dtrace/tcpdebug Thu Mar 3 01:43:36 2016 (r296334) +++ head/share/dtrace/tcpdebug Thu Mar 3 02:46:12 2016 (r296335) @@ -83,7 +83,8 @@ tcp:kernel::debug-output { seq = args[1]->tcp_seq; ack = args[1]->tcp_ack; - len = args[2]->ip_plength - 20; + len = args[2]->ip_plength - sizeof(struct tcphdr); + flags = args[1]->tcp_flags; printf("%p %s: output [%x..%x]", arg0, tcp_state_string[args[0]->tcps_state], seq, seq + len); @@ -120,7 +121,8 @@ tcp:kernel::debug-drop seq = args[1]->tcp_seq; ack = args[1]->tcp_ack; - len = args[2]->ip_plength; + len = args[2]->ip_plength - sizeof(struct tcphdr); + flags = args[1]->tcp_flags; printf("%p %s: drop [%x..%x]", arg0, tcp_state_string[args[0]->tcps_state], seq, seq + len); From owner-svn-src-head@freebsd.org Thu Mar 3 04:42:54 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E8EBAC267A; Thu, 3 Mar 2016 04:42:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1A9D011FB; Thu, 3 Mar 2016 04:42:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 0EA011BC8; Thu, 3 Mar 2016 04:42:54 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id BFE27D130; Thu, 3 Mar 2016 04:42:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id TBwefNZsFGmb; Thu, 3 Mar 2016 04:42:46 +0000 (UTC) Subject: Re: svn commit: r295757 - in head: lib/libc/tests/gen/posix_spawn lib/libc/tests/sys sys/boot/efi/boot1 sys/boot/i386/boot2 sys/boot/i386/pxeldr sys/boot/i386/zfsboot DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 240D9D12A To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201602181417.u1IEHSRU079616@repo.freebsd.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: <56D7C0C6.3050908@FreeBSD.org> Date: Wed, 2 Mar 2016 20:42:46 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201602181417.u1IEHSRU079616@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="s33KhU03OUfo5TTPbNnPTh5jsOsrvGPp0" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 04:42:54 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --s33KhU03OUfo5TTPbNnPTh5jsOsrvGPp0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2/18/2016 6:17 AM, Ed Maste wrote: > Author: emaste > Date: Thu Feb 18 14:17:28 2016 > New Revision: 295757 > URL: https://svnweb.freebsd.org/changeset/base/295757 >=20 > Log: > Remove dd xfer stats emitted during buildworld > =20 > They result in gratuitous differences when comparing build log output= =2E >=20 > Modified: > head/lib/libc/tests/gen/posix_spawn/Makefile > head/lib/libc/tests/sys/Makefile > head/sys/boot/efi/boot1/Makefile > head/sys/boot/i386/boot2/Makefile > head/sys/boot/i386/pxeldr/Makefile > head/sys/boot/i386/zfsboot/Makefile >=20 > Modified: head/lib/libc/tests/gen/posix_spawn/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/tests/gen/posix_spawn/Makefile Thu Feb 18 13:07:21 20= 16 (r295756) > +++ head/lib/libc/tests/gen/posix_spawn/Makefile Thu Feb 18 14:17:28 20= 16 (r295757) > @@ -20,7 +20,7 @@ CLEANFILES+=3D h_nonexec > .include "../../Makefile.netbsd-tests" > =20 > h_zero: > - dd if=3D/dev/zero of=3Dh_zero bs=3D1k count=3D2 > + dd if=3D/dev/zero of=3Dh_zero bs=3D1k count=3D2 status=3Dnone > chmod a+x h_zero > =20 > CLEANFILES+=3D h_zero >=20 > Modified: head/lib/libc/tests/sys/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/tests/sys/Makefile Thu Feb 18 13:07:21 2016 (r295756)= > +++ head/lib/libc/tests/sys/Makefile Thu Feb 18 14:17:28 2016 (r295757)= > @@ -78,6 +78,6 @@ truncate_test_FILESGRP=3D wheel > =20 > CLEANFILES=3D truncate_test.root_owned > truncate_test.root_owned: > - dd if=3D/dev/null bs=3D1 count=3D1 of=3D${.TARGET} > + dd if=3D/dev/null bs=3D1 count=3D1 of=3D${.TARGET} status=3Dnone > =20 > .include >=20 > Modified: head/sys/boot/efi/boot1/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/boot/efi/boot1/Makefile Thu Feb 18 13:07:21 2016 (r295756)= > +++ head/sys/boot/efi/boot1/Makefile Thu Feb 18 14:17:28 2016 (r295757)= > @@ -113,7 +113,8 @@ boot1.efifat: boot1.efi > uudecode ${.CURDIR}/fat-${MACHINE}.tmpl.bz2.uu > mv fat-${MACHINE}.tmpl.bz2 ${.TARGET}.bz2 > bzip2 -f -d ${.TARGET}.bz2 > - dd if=3Dboot1.efi of=3D${.TARGET} seek=3D${BOOT1_OFFSET} conv=3Dnotru= nc > + dd if=3Dboot1.efi of=3D${.TARGET} seek=3D${BOOT1_OFFSET} conv=3Dnotru= nc \ > + status=3Dnone > =20 > CLEANFILES=3D boot1.efi boot1.efifat > =20 >=20 > Modified: head/sys/boot/i386/boot2/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/boot/i386/boot2/Makefile Thu Feb 18 13:07:21 2016 (r295756= ) > +++ head/sys/boot/i386/boot2/Makefile Thu Feb 18 14:17:28 2016 (r295757= ) > @@ -72,14 +72,14 @@ CLEANFILES+=3D boot2 boot2.ld boot2.ldr bo > boot2: boot2.ld > @set -- `ls -l boot2.ld`; x=3D$$((7680-$$5)); \ > echo "$$x bytes available"; test $$x -ge 0 > - dd if=3Dboot2.ld of=3D${.TARGET} obs=3D7680 conv=3Dosync > + dd if=3Dboot2.ld of=3D${.TARGET} obs=3D7680 conv=3Dosync status=3Dnon= e > =20 > boot2.ld: boot2.ldr boot2.bin ${BTXKERN} > btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l boot2.ldr \ > -o ${.TARGET} -P 1 boot2.bin > =20 > boot2.ldr: > - dd if=3D/dev/zero of=3D${.TARGET} bs=3D512 count=3D1 > + dd if=3D/dev/zero of=3D${.TARGET} bs=3D512 count=3D1 status=3Dnone > =20 > boot2.bin: boot2.out > ${OBJCOPY} -S -O binary boot2.out ${.TARGET} >=20 > Modified: head/sys/boot/i386/pxeldr/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/boot/i386/pxeldr/Makefile Thu Feb 18 13:07:21 2016 (r29575= 6) > +++ head/sys/boot/i386/pxeldr/Makefile Thu Feb 18 14:17:28 2016 (r29575= 7) > @@ -31,7 +31,7 @@ CLEANFILES+=3D ${BOOT}.tmp > =20 > ${BOOT}: ${LDR} ${LOADER} > cat ${LDR} ${LOADER} > ${.TARGET}.tmp > - dd if=3D${.TARGET}.tmp of=3D${.TARGET} obs=3D2k conv=3Dosync > + dd if=3D${.TARGET}.tmp of=3D${.TARGET} obs=3D2k conv=3Dosync status=3D= none > rm ${.TARGET}.tmp > =20 > LDFLAGS+=3D-e start -Ttext ${ORG} -Wl,-N,-S,--oformat,binary >=20 > Modified: head/sys/boot/i386/zfsboot/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/boot/i386/zfsboot/Makefile Thu Feb 18 13:07:21 2016 (r2957= 56) > +++ head/sys/boot/i386/zfsboot/Makefile Thu Feb 18 14:17:28 2016 (r2957= 57) > @@ -65,7 +65,7 @@ BOOT2SIZE=3D 65536 > zfsboot2: zfsboot.ld > @set -- `ls -l zfsboot.ld`; x=3D$$((${BOOT2SIZE}-$$5)); \ > echo "$$x bytes available"; test $$x -ge 0 > - dd if=3Dzfsboot.ld of=3D${.TARGET} obs=3D${BOOT2SIZE} conv=3Dosync > + dd if=3Dzfsboot.ld of=3D${.TARGET} obs=3D${BOOT2SIZE} conv=3Dosync st= atus=3Dnone > =20 > zfsboot.ld: zfsboot.ldr zfsboot.bin ${BTXKERN} > btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l zfsboot.ldr \ >=20 (From Peter) You'll need to add bin/dd to bootstrap-tools now. It only learned status=3D support in 2014 in r264059. --=20 Regards, Bryan Drewery --s33KhU03OUfo5TTPbNnPTh5jsOsrvGPp0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJW18DGAAoJEDXXcbtuRpfPlSgH/iyELBGcFUq8RMXUamajPCpE Om9VJ6qz3tE0TBSvpED51j2Bl8kwdXhpCcJizvoZ2sGzdxfkbyIwh1JjbIvj2kDk 9yCdcWMPGBAuRF83TiEYZs/+Awfw5XtPWv/Q4kmS04oKHIZYTDTCMKtRtuEeUxOw q0uY7qgLyTK9O44s+mMJhkDn1Y1HO6pHamf0/zOZFakzk73cfs/WaEoLWouOadEs M+HsnMbgcDIamtCz+fn+dKBXYgJNvY8Gj4FqnsqHla/VxD/mKrzxWIvQxUAA1jkL mZcVfutilEkEXlPKkAYb1a0FwcpL49onQxEhc55dybnGaxFnJzCT2Ct7Xa4V4+A= =Du5K -----END PGP SIGNATURE----- --s33KhU03OUfo5TTPbNnPTh5jsOsrvGPp0-- From owner-svn-src-head@freebsd.org Thu Mar 3 05:07:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9590AAC2E95; Thu, 3 Mar 2016 05:07:38 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 58FDF1D97; Thu, 3 Mar 2016 05:07:38 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2357bAr098588; Thu, 3 Mar 2016 05:07:37 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2357ae2098576; Thu, 3 Mar 2016 05:07:36 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603030507.u2357ae2098576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 3 Mar 2016 05:07:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 05:07:38 -0000 Author: jhibbits Date: Thu Mar 3 05:07:35 2016 New Revision: 296336 URL: https://svnweb.freebsd.org/changeset/base/296336 Log: Replace all resource occurrences of '0UL/~0UL' with '0/~0'. Summary: The idea behind this is '~0ul' is well-defined, and casting to uintmax_t, on a 32-bit platform, will leave the upper 32 bits as 0. The maximum range of a resource is 0xFFF.... (all bits of the full type set). By dropping the 'ul' suffix, C type promotion rules apply, and the sign extension of ~0 on 32 bit platforms gets it to a type-independent 'unsigned max'. Reviewed By: cem Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5255 Modified: head/sys/dev/bhnd/bhnd.h head/sys/dev/pccard/pccard.c head/sys/dev/pci/pci.c head/sys/dev/pci/pci_iov.c head/sys/dev/pci/pci_pci.c head/sys/dev/pci/vga_pci.c head/sys/isa/isa_common.c head/sys/kern/bus_if.m head/sys/kern/subr_bus.c head/sys/kern/subr_rman.c head/sys/sys/bus.h head/sys/x86/xen/xenpv.c Modified: head/sys/dev/bhnd/bhnd.h ============================================================================== --- head/sys/dev/bhnd/bhnd.h Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/bhnd/bhnd.h Thu Mar 3 05:07:35 2016 (r296336) @@ -334,7 +334,7 @@ bhnd_is_hw_disabled(device_t dev) { * values supported by the standard bus APIs. * * To request the resource's default addresses, pass @p start and - * @p end values of @c 0UL and @c ~0UL, respectively, and + * @p end values of @c 0 and @c ~0, respectively, and * a @p count of @c 1. * * @retval NULL The resource could not be allocated. @@ -366,7 +366,7 @@ bhnd_alloc_resource(device_t dev, int ty static inline struct bhnd_resource * bhnd_alloc_resource_any(device_t dev, int type, int *rid, u_int flags) { - return bhnd_alloc_resource(dev, type, rid, 0UL, ~0UL, 1, flags); + return bhnd_alloc_resource(dev, type, rid, 0, ~0, 1, flags); } /** Modified: head/sys/dev/pccard/pccard.c ============================================================================== --- head/sys/dev/pccard/pccard.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/pccard/pccard.c Thu Mar 3 05:07:35 2016 (r296336) @@ -506,7 +506,7 @@ pccard_function_init(struct pccard_funct if (start) end = start + ios->length - 1; else - end = ~0UL; + end = ~0; DEVPRINTF((bus, "I/O rid %d start %#lx end %#lx\n", i, start, end)); rid = i; @@ -530,7 +530,7 @@ pccard_function_init(struct pccard_funct if (start) end = start + mems->length - 1; else - end = ~0UL; + end = ~0; DEVPRINTF((bus, "Memory rid %d start %#lx end %#lx\ncardaddr %#lx hostaddr %#lx length %#lx\n", i, start, end, mems->cardaddr, mems->hostaddr, mems->length)); Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/pci/pci.c Thu Mar 3 05:07:35 2016 (r296336) @@ -3092,7 +3092,7 @@ pci_add_map(device_t bus, device_t dev, flags |= RF_PREFETCHABLE; if (basezero || base == pci_mapbase(testval) || pci_clear_bars) { start = 0; /* Let the parent decide. */ - end = ~0ul; + end = ~0; } else { start = base; end = base + count - 1; @@ -3107,7 +3107,7 @@ pci_add_map(device_t bus, device_t dev, */ res = resource_list_reserve(rl, bus, dev, type, ®, start, end, count, flags); - if (pci_do_realloc_bars && res == NULL && (start != 0 || end != ~0ul)) { + if (pci_do_realloc_bars && res == NULL && (start != 0 || end != ~0)) { /* * If the allocation fails, try to allocate a resource for * this BAR using any available range. The firmware felt @@ -3115,8 +3115,8 @@ pci_add_map(device_t bus, device_t dev, * disable decoding if we can help it. */ resource_list_delete(rl, type, reg); - resource_list_add(rl, type, reg, 0, ~0ul, count); - res = resource_list_reserve(rl, bus, dev, type, ®, 0, ~0ul, + resource_list_add(rl, type, reg, 0, ~0, count); + res = resource_list_reserve(rl, bus, dev, type, ®, 0, ~0, count, flags); } if (res == NULL) { @@ -3507,7 +3507,7 @@ pci_reserve_secbus(device_t bus, device_ end = sub_bus; count = end - start + 1; - resource_list_add(rl, PCI_RES_BUS, 0, 0ul, ~0ul, count); + resource_list_add(rl, PCI_RES_BUS, 0, 0, ~0, count); /* * If requested, clear secondary bus registers in Modified: head/sys/dev/pci/pci_iov.c ============================================================================== --- head/sys/dev/pci/pci_iov.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/pci/pci_iov.c Thu Mar 3 05:07:35 2016 (r296336) @@ -330,8 +330,8 @@ pci_iov_alloc_bar(struct pci_devinfo *di rid = iov->iov_pos + PCIR_SRIOV_BAR(bar); bar_size = 1 << bar_shift; - res = pci_alloc_multi_resource(bus, dev, SYS_RES_MEMORY, &rid, 0ul, - ~0ul, 1, iov->iov_num_vfs, RF_ACTIVE); + res = pci_alloc_multi_resource(bus, dev, SYS_RES_MEMORY, &rid, 0, + ~0, 1, iov->iov_num_vfs, RF_ACTIVE); if (res == NULL) return (ENXIO); @@ -498,7 +498,7 @@ pci_iov_init_rman(device_t pf, struct pc int error; iov->rman.rm_start = 0; - iov->rman.rm_end = ~0ul; + iov->rman.rm_end = ~0; iov->rman.rm_type = RMAN_ARRAY; snprintf(iov->rman_name, sizeof(iov->rman_name), "%s VF I/O memory", device_get_nameunit(pf)); Modified: head/sys/dev/pci/pci_pci.c ============================================================================== --- head/sys/dev/pci/pci_pci.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/pci/pci_pci.c Thu Mar 3 05:07:35 2016 (r296336) @@ -389,7 +389,7 @@ pcib_alloc_window(struct pcib_softc *sc, int error, rid; if (max_address != (rman_res_t)max_address) - max_address = ~0ul; + max_address = ~0; w->rman.rm_start = 0; w->rman.rm_end = max_address; w->rman.rm_type = RMAN_ARRAY; Modified: head/sys/dev/pci/vga_pci.c ============================================================================== --- head/sys/dev/pci/vga_pci.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/dev/pci/vga_pci.c Thu Mar 3 05:07:35 2016 (r296336) @@ -164,8 +164,8 @@ vga_pci_map_bios(device_t dev, size_t *s #endif rid = PCIR_BIOS; - res = vga_pci_alloc_resource(dev, NULL, SYS_RES_MEMORY, &rid, 0ul, - ~0ul, 1, RF_ACTIVE); + res = vga_pci_alloc_resource(dev, NULL, SYS_RES_MEMORY, &rid, 0, + ~0, 1, RF_ACTIVE); if (res == NULL) { return (NULL); } Modified: head/sys/isa/isa_common.c ============================================================================== --- head/sys/isa/isa_common.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/isa/isa_common.c Thu Mar 3 05:07:35 2016 (r296336) @@ -483,7 +483,7 @@ isa_claim_resources(device_t dev, device if (!rle->res) { rid = rle->rid; resource_list_alloc(rl, dev, child, rle->type, &rid, - 0ul, ~0ul, 1, 0); + 0, ~0, 1, 0); } } } Modified: head/sys/kern/bus_if.m ============================================================================== --- head/sys/kern/bus_if.m Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/kern/bus_if.m Thu Mar 3 05:07:35 2016 (r296336) @@ -247,9 +247,9 @@ METHOD device_t add_child { * @param _type the type of resource to allocate * @param _rid a pointer to the resource identifier * @param _start hint at the start of the resource range - pass - * @c 0UL for any start address + * @c 0 for any start address * @param _end hint at the end of the resource range - pass - * @c ~0UL for any end address + * @c ~0 for any end address * @param _count hint at the size of range required - pass @c 1 * for any size * @param _flags any extra flags to control the resource Modified: head/sys/kern/subr_bus.c ============================================================================== --- head/sys/kern/subr_bus.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/kern/subr_bus.c Thu Mar 3 05:07:35 2016 (r296336) @@ -3236,9 +3236,9 @@ resource_list_delete(struct resource_lis * @param type the type of resource to allocate * @param rid a pointer to the resource identifier * @param start hint at the start of the resource range - pass - * @c 0UL for any start address + * @c 0 for any start address * @param end hint at the end of the resource range - pass - * @c ~0UL for any end address + * @c ~0 for any end address * @param count hint at the size of range required - pass @c 1 * for any size * @param flags any extra flags to control the resource @@ -3293,9 +3293,9 @@ resource_list_reserve(struct resource_li * @param type the type of resource to allocate * @param rid a pointer to the resource identifier * @param start hint at the start of the resource range - pass - * @c 0UL for any start address + * @c 0 for any start address * @param end hint at the end of the resource range - pass - * @c ~0UL for any end address + * @c ~0 for any end address * @param count hint at the size of range required - pass @c 1 * for any size * @param flags any extra flags to control the resource Modified: head/sys/kern/subr_rman.c ============================================================================== --- head/sys/kern/subr_rman.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/kern/subr_rman.c Thu Mar 3 05:07:35 2016 (r296336) @@ -135,7 +135,7 @@ rman_init(struct rman *rm) } if (rm->rm_start == 0 && rm->rm_end == 0) - rm->rm_end = ~0ul; + rm->rm_end = ~0; if (rm->rm_type == RMAN_UNINIT) panic("rman_init"); if (rm->rm_type == RMAN_GAUGE) Modified: head/sys/sys/bus.h ============================================================================== --- head/sys/sys/bus.h Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/sys/bus.h Thu Mar 3 05:07:35 2016 (r296336) @@ -478,14 +478,14 @@ void bus_enumerate_hinted_children(devic static __inline struct resource * bus_alloc_resource_any(device_t dev, int type, int *rid, u_int flags) { - return (bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags)); + return (bus_alloc_resource(dev, type, rid, 0, ~0, 1, flags)); } static __inline struct resource * bus_alloc_resource_anywhere(device_t dev, int type, int *rid, rman_res_t count, u_int flags) { - return (bus_alloc_resource(dev, type, rid, 0ul, ~0ul, count, flags)); + return (bus_alloc_resource(dev, type, rid, 0, ~0, count, flags)); } /* Modified: head/sys/x86/xen/xenpv.c ============================================================================== --- head/sys/x86/xen/xenpv.c Thu Mar 3 02:46:12 2016 (r296335) +++ head/sys/x86/xen/xenpv.c Thu Mar 3 05:07:35 2016 (r296336) @@ -120,7 +120,7 @@ xenpv_alloc_physmem(device_t dev, device int error; res = bus_alloc_resource(child, SYS_RES_MEMORY, res_id, LOW_MEM_LIMIT, - ~0ul, size, RF_ACTIVE); + ~0, size, RF_ACTIVE); if (res == NULL) return (NULL); From owner-svn-src-head@freebsd.org Thu Mar 3 06:18:47 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF5D5AC19C9; Thu, 3 Mar 2016 06:18:47 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id AB4221D2D; Thu, 3 Mar 2016 06:18:47 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c110-21-41-193.carlnfd1.nsw.optusnet.com.au (c110-21-41-193.carlnfd1.nsw.optusnet.com.au [110.21.41.193]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 4F2AF1048396; Thu, 3 Mar 2016 17:18:38 +1100 (AEDT) Date: Thu, 3 Mar 2016 17:18:38 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Justin Hibbits cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen In-Reply-To: <201603030507.u2357ae2098576@repo.freebsd.org> Message-ID: <20160303164728.W1928@besplex.bde.org> References: <201603030507.u2357ae2098576@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=KvuwojiN c=1 sm=1 tr=0 a=73JWPhLeruqQCjN69UNZtQ==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=9s81ovKKm4cCIyKOtWwA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 06:18:48 -0000 On Thu, 3 Mar 2016, Justin Hibbits wrote: > Log: > Replace all resource occurrences of '0UL/~0UL' with '0/~0'. > > Summary: > The idea behind this is '~0ul' is well-defined, and casting to uintmax_t, on a > 32-bit platform, will leave the upper 32 bits as 0. The maximum range of a > resource is 0xFFF.... (all bits of the full type set). By dropping the 'ul' > suffix, C type promotion rules apply, and the sign extension of ~0 on 32 bit > platforms gets it to a type-independent 'unsigned max'. Why not use the correct signed value? This value is -1, not the value, if any, with all bits 1. All bits 1 might be a trap representation, but it is unclear if ~0 can give a trap representation or a trap since it is unclear if the '~' operation acts on padding bits. It is clear that all bits 1 gives has value -0 in 1's complement if there are no no padding bits. But -0 has the same value as +0. When converted to an unsigned type, it loses all traces of its sign, and becomes plain (ufoo_t)0. I don't like the plan to change the resource range type to uintmax_t. 64 bits is just bloat for most 32-bit systems. After fixing all the hard-coded u_longs, you can just use a typdefed type which should be uint32_t if possible. Bruce From owner-svn-src-head@freebsd.org Thu Mar 3 06:22:52 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6022AC1BEB; Thu, 3 Mar 2016 06:22:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 798D81099; Thu, 3 Mar 2016 06:22:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u236Mp9F022060; Thu, 3 Mar 2016 06:22:51 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u236MpLq022058; Thu, 3 Mar 2016 06:22:51 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603030622.u236MpLq022058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 3 Mar 2016 06:22:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296337 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 06:22:52 -0000 Author: bdrewery Date: Thu Mar 3 06:22:51 2016 New Revision: 296337 URL: https://svnweb.freebsd.org/changeset/base/296337 Log: Move casper library entries to proper places. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.libnames.mk head/share/mk/src.libnames.mk Modified: head/share/mk/bsd.libnames.mk ============================================================================== --- head/share/mk/bsd.libnames.mk Thu Mar 3 05:07:35 2016 (r296336) +++ head/share/mk/bsd.libnames.mk Thu Mar 3 06:22:51 2016 (r296337) @@ -30,6 +30,11 @@ LIBBZ2?= ${DESTDIR}${LIBDIR}/libbz2.a LIBC?= ${DESTDIR}${LIBDIR}/libc.a LIBCALENDAR?= ${DESTDIR}${LIBDIR}/libcalendar.a LIBCAM?= ${DESTDIR}${LIBDIR}/libcam.a +LIBCAP_DNS?= ${DESTDIR}${LIBDIR}/libcap_dns.a +LIBCAP_GRP?= ${DESTDIR}${LIBDIR}/libcap_grp.a +LIBCAP_PWD?= ${DESTDIR}${LIBDIR}/libcap_pwd.a +LIBCAP_RANDOM?= ${DESTDIR}${LIBDIR}/libcap_random.a +LIBCAP_SYSCTL?= ${DESTDIR}${LIBDIR}/libcap_sysctl.a LIBCASPER?= ${DESTDIR}${LIBDIR}/libcasper.a LIBCOMPAT?= ${DESTDIR}${LIBDIR}/libcompat.a LIBCOMPILER_RT?=${DESTDIR}${LIBDIR}/libcompiler_rt.a Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Thu Mar 3 05:07:35 2016 (r296336) +++ head/share/mk/src.libnames.mk Thu Mar 3 06:22:51 2016 (r296337) @@ -488,6 +488,12 @@ LIBWINDDIR= ${OBJTOP}/kerberos5/lib/libw LIBALIASDIR= ${OBJTOP}/lib/libalias/libalias LIBBLOCKSRUNTIMEDIR= ${OBJTOP}/lib/libblocksruntime LIBBSNMPDIR= ${OBJTOP}/lib/libbsnmp/libbsnmp +LIBCAP_CASPERDIR= ${OBJTOP}/lib/libcasper/libcasper +LIBCAP_DNSDIR= ${OBJTOP}/lib/libcasper/services/cap_dns +LIBCAP_GRPDIR= ${OBJTOP}/lib/libcasper/services/cap_grp +LIBCAP_PWDDIR= ${OBJTOP}/lib/libcasper/services/cap_pwd +LIBCAP_RANDOMDIR= ${OBJTOP}/lib/libcasper/services/cap_random +LIBCAP_SYSCTLDIR= ${OBJTOP}/lib/libcasper/services/cap_sysctl LIBBSDXMLDIR= ${OBJTOP}/lib/libexpat LIBKVMDIR= ${OBJTOP}/lib/libkvm LIBPTHREADDIR= ${OBJTOP}/lib/libthr @@ -515,25 +521,6 @@ LIBTERMCAPWDIR= ${LIBNCURSESWDIR} LIB${lib:tu}DIR?= ${OBJTOP}/lib/lib${lib} .endfor -# Casper exception. -LIBCAP_CASPERDIR= ${OBJTOP}/lib/libcasper/libcasper -LIBCAP_CASPER= ${DESTDIR}${LIBDIR}/libcasper.a - -LIBCAP_DNSDIR= ${OBJTOP}/lib/libcasper/services/cap_dns -LIBCAP_DNS?= ${DESTDIR}${LIBDIR}/libcap_dns.a - -LIBCAP_GRPDIR= ${OBJTOP}/lib/libcasper/services/cap_grp -LIBCAP_GRP?= ${DESTDIR}${LIBDIR}/libcap_grp.a - -LIBCAP_PWDDIR= ${OBJTOP}/lib/libcasper/services/cap_pwd -LIBCAP_PWD?= ${DESTDIR}${LIBDIR}/libcap_pwd.a - -LIBCAP_RANDOMDIR= ${OBJTOP}/lib/libcasper/services/cap_random -LIBCAP_RANDOM?= ${DESTDIR}${LIBDIR}/libcap_random.a - -LIBCAP_SYSCTLDIR= ${OBJTOP}/lib/libcasper/services/cap_sysctl -LIBCAP_SYSCTL?= ${DESTDIR}${LIBDIR}/libcap_sysctl.a - # Validate that listed LIBADD are valid. .for _l in ${LIBADD} .if empty(_LIBRARIES:M${_l}) From owner-svn-src-head@freebsd.org Thu Mar 3 06:37:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFCBAAC21B2; Thu, 3 Mar 2016 06:37:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C14451731; Thu, 3 Mar 2016 06:37:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u236bHPj025184; Thu, 3 Mar 2016 06:37:17 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u236bHsF025183; Thu, 3 Mar 2016 06:37:17 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603030637.u236bHsF025183@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 3 Mar 2016 06:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296338 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 06:37:19 -0000 Author: bdrewery Date: Thu Mar 3 06:37:17 2016 New Revision: 296338 URL: https://svnweb.freebsd.org/changeset/base/296338 Log: Add missing atf dirs. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/src.libnames.mk Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Thu Mar 3 06:22:51 2016 (r296337) +++ head/share/mk/src.libnames.mk Thu Mar 3 06:37:17 2016 (r296338) @@ -485,6 +485,8 @@ LIBKDCDIR= ${OBJTOP}/kerberos5/lib/libkd LIBKRB5DIR= ${OBJTOP}/kerberos5/lib/libkrb5 LIBROKENDIR= ${OBJTOP}/kerberos5/lib/libroken LIBWINDDIR= ${OBJTOP}/kerberos5/lib/libwind +LIBATF_CDIR= ${OBJTOP}/lib/atf/libatf-c +LIBATF_CXXDIR= ${OBJTOP}/lib/atf/libatf-c++ LIBALIASDIR= ${OBJTOP}/lib/libalias/libalias LIBBLOCKSRUNTIMEDIR= ${OBJTOP}/lib/libblocksruntime LIBBSNMPDIR= ${OBJTOP}/lib/libbsnmp/libbsnmp From owner-svn-src-head@freebsd.org Thu Mar 3 07:07:45 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BFA0AC2D6D; Thu, 3 Mar 2016 07:07:45 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5ACBB18E7; Thu, 3 Mar 2016 07:07:45 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2377iBu033787; Thu, 3 Mar 2016 07:07:44 GMT (envelope-from maxim@FreeBSD.org) Received: (from maxim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2377ifY033786; Thu, 3 Mar 2016 07:07:44 GMT (envelope-from maxim@FreeBSD.org) Message-Id: <201603030707.u2377ifY033786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: maxim set sender to maxim@FreeBSD.org using -f From: Maxim Konovalov Date: Thu, 3 Mar 2016 07:07:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296339 - head/usr.sbin/daemon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 07:07:45 -0000 Author: maxim Date: Thu Mar 3 07:07:44 2016 New Revision: 296339 URL: https://svnweb.freebsd.org/changeset/base/296339 Log: o -t comman line option added to the usage(). Modified: head/usr.sbin/daemon/daemon.c Modified: head/usr.sbin/daemon/daemon.c ============================================================================== --- head/usr.sbin/daemon/daemon.c Thu Mar 3 06:37:17 2016 (r296338) +++ head/usr.sbin/daemon/daemon.c Thu Mar 3 07:07:44 2016 (r296339) @@ -275,8 +275,8 @@ wait_child(pid_t pid, sigset_t *mask) static void usage(void) { - (void)fprintf(stderr, - "usage: daemon [-cfr] [-p child_pidfile] [-P supervisor_pidfile] " - "[-u user]\n command arguments ...\n"); + (void)fprintf(stderr, "%s\n\t%s\n", + "usage: daemon [-cfr] [-p child_pidfile] [-P supervisor_pidfile]", + "[-t title] [-u user] command arguments ..."); exit(1); } From owner-svn-src-head@freebsd.org Thu Mar 3 08:47:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09C2FA92F1F; Thu, 3 Mar 2016 08:47:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CF9A9391; Thu, 3 Mar 2016 08:47:28 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u238lRPZ063819; Thu, 3 Mar 2016 08:47:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u238lRUY063818; Thu, 3 Mar 2016 08:47:27 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201603030847.u238lRUY063818@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 3 Mar 2016 08:47:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296342 - head/sys/dev/usb/quirk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 08:47:29 -0000 Author: hselasky Date: Thu Mar 3 08:47:27 2016 New Revision: 296342 URL: https://svnweb.freebsd.org/changeset/base/296342 Log: Allow for overlapping quirk device ranges. Prior to this patch only the first device entry matching the USB vendor, product and revision would be searched for quirks. After this patch all device entries will be searched for quirks. MFC after: 1 week Modified: head/sys/dev/usb/quirk/usb_quirk.c Modified: head/sys/dev/usb/quirk/usb_quirk.c ============================================================================== --- head/sys/dev/usb/quirk/usb_quirk.c Thu Mar 3 07:30:55 2016 (r296341) +++ head/sys/dev/usb/quirk/usb_quirk.c Thu Mar 3 08:47:27 2016 (r296342) @@ -682,8 +682,6 @@ usb_test_quirk_by_info(const struct usbd return (1); } } - /* no quirk found */ - break; } mtx_unlock(&usb_quirk_mtx); done: From owner-svn-src-head@freebsd.org Thu Mar 3 09:56:06 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A90AA932D2; Thu, 3 Mar 2016 09:56:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3367E6F1; Thu, 3 Mar 2016 09:56:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u239u5kW085170; Thu, 3 Mar 2016 09:56:05 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u239u4te085166; Thu, 3 Mar 2016 09:56:04 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201603030956.u239u4te085166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 3 Mar 2016 09:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296344 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 09:56:06 -0000 Author: hselasky Date: Thu Mar 3 09:56:04 2016 New Revision: 296344 URL: https://svnweb.freebsd.org/changeset/base/296344 Log: Add more functions to the LinuxKPI. Define strnicmp as a function macro instead of a regular macro while at it. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/linux/etherdevice.h head/sys/compat/linuxkpi/common/include/linux/kernel.h head/sys/compat/linuxkpi/common/include/linux/slab.h head/sys/compat/linuxkpi/common/include/linux/string.h Modified: head/sys/compat/linuxkpi/common/include/linux/etherdevice.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/etherdevice.h Thu Mar 3 09:01:00 2016 (r296343) +++ head/sys/compat/linuxkpi/common/include/linux/etherdevice.h Thu Mar 3 09:56:04 2016 (r296344) @@ -94,6 +94,12 @@ ether_addr_equal_64bits(const u8 *pa, co } static inline void +eth_broadcast_addr(u8 *pa) +{ + memset(pa, 0xff, 6); +} + +static inline void random_ether_addr(u8 * dst) { read_random(dst, 6); Modified: head/sys/compat/linuxkpi/common/include/linux/kernel.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kernel.h Thu Mar 3 09:01:00 2016 (r296343) +++ head/sys/compat/linuxkpi/common/include/linux/kernel.h Thu Mar 3 09:56:04 2016 (r296344) @@ -163,6 +163,7 @@ #define simple_strtol(...) strtol(__VA_ARGS__) #define kstrtol(a,b,c) ({*(c) = strtol(a,0,b); 0;}) #define kstrtoint(a,b,c) ({*(c) = strtol(a,0,b); 0;}) +#define kstrtouint(a,b,c) ({*(c) = strtol(a,0,b); 0;}) #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) Modified: head/sys/compat/linuxkpi/common/include/linux/slab.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/slab.h Thu Mar 3 09:01:00 2016 (r296343) +++ head/sys/compat/linuxkpi/common/include/linux/slab.h Thu Mar 3 09:56:04 2016 (r296344) @@ -46,6 +46,7 @@ MALLOC_DECLARE(M_KMALLOC); #define kzalloc(size, flags) kmalloc((size), (flags) | M_ZERO) #define kzalloc_node(size, flags, node) kzalloc(size, flags) #define kfree(ptr) free(__DECONST(void *, (ptr)), M_KMALLOC) +#define kfree_const(ptr) kfree(ptr) #define krealloc(ptr, size, flags) realloc((ptr), (size), M_KMALLOC, (flags)) #define kcalloc(n, size, flags) kmalloc((n) * (size), flags | M_ZERO) #define vzalloc(size) kzalloc(size, GFP_KERNEL | __GFP_NOWARN) Modified: head/sys/compat/linuxkpi/common/include/linux/string.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/string.h Thu Mar 3 09:01:00 2016 (r296343) +++ head/sys/compat/linuxkpi/common/include/linux/string.h Thu Mar 3 09:56:04 2016 (r296344) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,8 +37,7 @@ #include -#define strnicmp strncasecmp - +#define strnicmp(...) strncasecmp(__VA_ARGS__) static inline void * kmemdup(const void *src, size_t len, gfp_t gfp) @@ -51,4 +50,10 @@ kmemdup(const void *src, size_t len, gfp return (dst); } +static inline const char * +kstrdup_const(const char *src, gfp_t gfp) +{ + return (kmemdup(src, strlen(src) + 1, gfp)); +} + #endif /* _LINUX_STRING_H_ */ From owner-svn-src-head@freebsd.org Thu Mar 3 11:33:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F255A93DDE; Thu, 3 Mar 2016 11:33:36 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 EEE2A71; Thu, 3 Mar 2016 11:33:35 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 4933B1FE022; Thu, 3 Mar 2016 12:33:29 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <20160303112716.GO67250@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56D821A7.2020105@selasky.org> Date: Thu, 3 Mar 2016 12:36:07 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160303112716.GO67250@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:33:36 -0000 On 03/03/16 12:27, Konstantin Belousov wrote: >> >BTW: The FreeBSD kernel version should have been bumped because >> >_callout_stop_safe() is a public callout API, used by all external >> >kernel modules, which now will have undefined behaviour until recompiled. > The change was done in a way which is compatible with the pre-commit > callout_stop_safe(9) users. I even consider it mergeable into the > stable/10 without requiring any shims. > > Yes, your change is compatible if you compile the code, but not binary compatible. See the following macros, and how they use _callout_stop_safe(): #define callout_stop(c) _callout_stop_safe(c, 0, NULL) #define callout_async_drain(c, d) \ _callout_stop_safe(c, 0, d) Because callout_stop(c) is a macro, you've now change the API for callout_stop() aswell. This is what I think will break binary compatibility in 10.x. That's why the need to bump __FreeBSD_version__ --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 10:57:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 355E6A93369; Thu, 3 Mar 2016 10:57:02 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 D76F3C63; Thu, 3 Mar 2016 10:57:01 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 6E0E71FE022; Thu, 3 Mar 2016 11:56:59 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603021846.u22IkHWM010861@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <56D81918.6020403@selasky.org> Date: Thu, 3 Mar 2016 11:59:36 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <201603021846.u22IkHWM010861@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 10:57:02 -0000 On 03/02/16 19:46, Konstantin Belousov wrote: > Author: kib > Date: Wed Mar 2 18:46:17 2016 > New Revision: 296320 > URL: https://svnweb.freebsd.org/changeset/base/296320 > > Log: > If callout_stop_safe() noted that the callout is currently executing, > but next invocation is cancelled while migrating, > sleepq_check_timeout() needs to be informed that the callout is > stopped. Otherwise the thread switches off CPU and never become > runnable, since running callout could have already raced with us, > while the migrating and cancelled callout could be one which is > expected to set TDP_TIMOFAIL flag for us. This contradicts with the > expected behaviour of callout_stop() for other callers, which > e.g. decrement references from the callout callbacks. > > Add a new flag CS_MIGRBLOCK requesting report of the situation as > 'successfully stopped'. > > Reviewed by: jhb (previous version) > Tested by: cognet, pho > PR: 200992 > Sponsored by: The FreeBSD Foundation > MFC after: 2 weeks > Differential revision: https://reviews.freebsd.org/D5221 > > Modified: > head/sys/kern/kern_timeout.c > head/sys/kern/subr_sleepqueue.c > head/sys/sys/callout.h > > Modified: head/sys/kern/kern_timeout.c > ============================================================================== > --- head/sys/kern/kern_timeout.c Wed Mar 2 16:36:24 2016 (r296319) > +++ head/sys/kern/kern_timeout.c Wed Mar 2 18:46:17 2016 (r296320) > @@ -1155,14 +1155,14 @@ callout_schedule(struct callout *c, int > } > > int > -_callout_stop_safe(struct callout *c, int safe, void (*drain)(void *)) > +_callout_stop_safe(struct callout *c, int flags, void (*drain)(void *)) > { > struct callout_cpu *cc, *old_cc; > struct lock_class *class; > int direct, sq_locked, use_lock; > int not_on_a_list; > > - if (safe) > + if ((flags & CS_DRAIN) != 0) > WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock, > "calling %s", __func__); > > @@ -1170,7 +1170,7 @@ _callout_stop_safe(struct callout *c, in > * Some old subsystems don't hold Giant while running a callout_stop(), > * so just discard this check for the moment. > */ > - if (!safe && c->c_lock != NULL) { > + if ((flags & CS_DRAIN) == 0 && c->c_lock != NULL) { > if (c->c_lock == &Giant.lock_object) > use_lock = mtx_owned(&Giant); > else { > @@ -1253,7 +1253,7 @@ again: > return (-1); > } > > - if (safe) { > + if ((flags & CS_DRAIN) != 0) { > /* > * The current callout is running (or just > * about to run) and blocking is allowed, so > @@ -1370,7 +1370,7 @@ again: > cc_exec_drain(cc, direct) = drain; > } > CC_UNLOCK(cc); > - return (0); > + return ((flags & CS_MIGRBLOCK) != 0); > } > CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", > c, c->c_func, c->c_arg); > > Modified: head/sys/kern/subr_sleepqueue.c > ============================================================================== > --- head/sys/kern/subr_sleepqueue.c Wed Mar 2 16:36:24 2016 (r296319) > +++ head/sys/kern/subr_sleepqueue.c Wed Mar 2 18:46:17 2016 (r296320) > @@ -586,7 +586,8 @@ sleepq_check_timeout(void) > * another CPU, so synchronize with it to avoid having it > * accidentally wake up a subsequent sleep. > */ > - else if (callout_stop(&td->td_slpcallout) == 0) { > + else if (_callout_stop_safe(&td->td_slpcallout, CS_MIGRBLOCK, NULL) > + == 0) { > td->td_flags |= TDF_TIMEOUT; > TD_SET_SLEEPING(td); > mi_switch(SW_INVOL | SWT_SLEEPQTIMO, NULL); > > Modified: head/sys/sys/callout.h > ============================================================================== > --- head/sys/sys/callout.h Wed Mar 2 16:36:24 2016 (r296319) > +++ head/sys/sys/callout.h Wed Mar 2 18:46:17 2016 (r296320) > @@ -62,6 +62,12 @@ struct callout_handle { > struct callout *callout; > }; > > +/* Flags for callout_stop_safe() */ > +#define CS_DRAIN 0x0001 /* callout_drain(), wait allowed */ > +#define CS_MIGRBLOCK 0x0002 /* Block migration, return value > + indicates that the callout was > + executing */ > + > #ifdef _KERNEL > /* > * Note the flags field is actually *two* fields. The c_flags > @@ -81,7 +87,7 @@ struct callout_handle { > */ > #define callout_active(c) ((c)->c_flags & CALLOUT_ACTIVE) > #define callout_deactivate(c) ((c)->c_flags &= ~CALLOUT_ACTIVE) > -#define callout_drain(c) _callout_stop_safe(c, 1, NULL) > +#define callout_drain(c) _callout_stop_safe(c, CS_DRAIN, NULL) > void callout_init(struct callout *, int); > void _callout_init_lock(struct callout *, struct lock_object *, int); > #define callout_init_mtx(c, mtx, flags) \ > > Hi, I believe all of these callout quirks can be avoided by using a spinlock to proctect the thread callout like done in projects/hps_head. Has anyone tried to reproduce the issue with projects/hps_head, before making this patch? BTW: The FreeBSD kernel version should have been bumped because _callout_stop_safe() is a public callout API, used by all external kernel modules, which now will have undefined behaviour until recompiled. --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 12:09:30 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DC01A93E7C; Thu, 3 Mar 2016 12:09:30 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 385FDB67; Thu, 3 Mar 2016 12:09:29 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 218261FE022; Thu, 3 Mar 2016 13:09:28 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <20160303112716.GO67250@kib.kiev.ua> <56D821A7.2020105@selasky.org> <20160303115823.GQ67250@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56D82A15.3050804@selasky.org> Date: Thu, 3 Mar 2016 13:12:05 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160303115823.GQ67250@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 12:09:30 -0000 On 03/03/16 12:58, Konstantin Belousov wrote: >> > >> >Yes, your change is compatible if you compile the code, but not binary >> >compatible. See the following macros, and how they use _callout_stop_safe(): > My change is binary compatible. > >> > >> >#define callout_stop(c) _callout_stop_safe(c, 0, NULL) >> >#define callout_async_drain(c, d) \ >> > _callout_stop_safe(c, 0, d) >> > >> >Because callout_stop(c) is a macro, you've now change the API for >> >callout_stop() aswell. This is what I think will break binary >> >compatibility in 10.x. > How my commit changes anything for either callout_stop(), or for > callout_async_drain(), or for callout_drain() ? > Hi, It looked like you added another argument to _callout_stop_safe(). After a closer look I see the patch is binary compatible. --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 11:29:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96CEDA93C5D; Thu, 3 Mar 2016 11:29:13 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 31508CD2; Thu, 3 Mar 2016 11:29:13 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u23BT8nZ080122 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 3 Mar 2016 13:29:09 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u23BT8nZ080122 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u23BT8aJ080121; Thu, 3 Mar 2016 13:29:08 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 3 Mar 2016 13:29:08 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296320 - in head/sys: kern sys Message-ID: <20160303112908.GP67250@kib.kiev.ua> References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <56D81A70.2070508@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D81A70.2070508@selasky.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:29:13 -0000 On Thu, Mar 03, 2016 at 12:05:20PM +0100, Hans Petter Selasky wrote: > On 03/03/16 11:59, Hans Petter Selasky wrote: > > +/* Flags for callout_stop_safe() */ > > +#define CS_DRAIN 0x0001 /* callout_drain(), wait allowed */ > > +#define CS_MIGRBLOCK 0x0002 /* Block migration, return value > > + indicates that the callout was > > + executing */ > > + > > #ifdef _KERNEL > > Should these defines be under #ifdef _KERNEL ? Why do they need the braces ? Other bits in the callout.h header are not restricted for kernel only, and I do not see a difference between CALLOUT_* and CS_*. From owner-svn-src-head@freebsd.org Thu Mar 3 12:27:16 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C834476AA; Thu, 3 Mar 2016 12:27:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 4993D6B7; Thu, 3 Mar 2016 12:27:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u23CRBNE000764 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 3 Mar 2016 14:27:11 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u23CRBNE000764 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u23CRBlh000763; Thu, 3 Mar 2016 14:27:11 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 3 Mar 2016 14:27:11 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296320 - in head/sys: kern sys Message-ID: <20160303122711.GR67250@kib.kiev.ua> References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <20160303112716.GO67250@kib.kiev.ua> <56D821A7.2020105@selasky.org> <20160303115823.GQ67250@kib.kiev.ua> <56D82A15.3050804@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D82A15.3050804@selasky.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 12:27:16 -0000 On Thu, Mar 03, 2016 at 01:12:05PM +0100, Hans Petter Selasky wrote: > On 03/03/16 12:58, Konstantin Belousov wrote: > >> > > >> >Yes, your change is compatible if you compile the code, but not binary > >> >compatible. See the following macros, and how they use _callout_stop_safe(): > > My change is binary compatible. > > > >> > > >> >#define callout_stop(c) _callout_stop_safe(c, 0, NULL) > >> >#define callout_async_drain(c, d) \ > >> > _callout_stop_safe(c, 0, d) > >> > > >> >Because callout_stop(c) is a macro, you've now change the API for > >> >callout_stop() aswell. This is what I think will break binary > >> >compatibility in 10.x. > > How my commit changes anything for either callout_stop(), or for > > callout_async_drain(), or for callout_drain() ? > > > > Hi, > > It looked like you added another argument to _callout_stop_safe(). After > a closer look I see the patch is binary compatible. Right, and CS_DRAIN value was selected so that callout_drain() arguments to _callout_stop_safe() would be same with or without the change. The only case where the issue could exists, is for some code which called _callout_stop_safe() directly, and passed arbitrary (not "1") non-zero value as the second argument to indicate drain. I believe there is no such code, and tend to consider it as bug, if demostrated. be not different with From owner-svn-src-head@freebsd.org Thu Mar 3 15:20:23 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A46AA93B6A; Thu, 3 Mar 2016 15:20:23 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0CDA0F51; Thu, 3 Mar 2016 15:20:23 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-oi0-x22f.google.com with SMTP id c203so17165668oia.2; Thu, 03 Mar 2016 07:20:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc; bh=2D2Yq4YUhoDLIrKU12Xc+I5/eXFKNjg7M0L6BGniCf8=; b=ePfCbiCggvJrU8VQdsed1DSMFYxl/XKmJOcKT3zXs7QqVGS9tmsK9+rpoKcTBPXzxu agYs0/WV93pGAr7HgFp/9sw43A+pf8JS1/eg7njNga7HQUyhqpLm6OCkbfqXcfgj0x2H CrSlVYlcDIE521YE8+BP8ouOY02miyUsVXOrHwzTdw6mne3B3pZXtd2UGDfHpJDOrRgQ J7Lr8EshRmK70X3//z8ewEkO5vHqqZrg7fkR6NuBaWhDWPxjRhl9v5P0UVpCKq3spQwy p/q/7JSn7atvK+DpsHosY3Q3W12CBcq9eWfn5CLo61jlCj/ZsGEwepQEGiMJUFBD719b tk2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc; bh=2D2Yq4YUhoDLIrKU12Xc+I5/eXFKNjg7M0L6BGniCf8=; b=duWswKhVUOe7kM6iTW4ujemDjJt22nQf5nwE0mELrV8rWBXvduLfp1vOFT4mvARQNX aIwI5zR/YZwT8hv+Q83DpUu4dZQ2DHw3yt2hnnUspSlq+aXVKtda5Ql3oxscbsCbVHa2 jeXQN1no5rh7qpua0SRf8+gPRmdlC0+rXauFvMdiUcTa6AdXSYLgKfDAzEcXq1shxGNb LmSkW2ipqtd4D2Gp8F7h54M5QBzGgYdgncTuDZJAqGohyL44Q61VW3AWo3X9dC0DsFPi RDaztr+PCusSEzIf22u6nWMJVscsnvstbaUkJEzQkGiv+nBwpFN41rTujZBlFGni1NMW fYpA== X-Gm-Message-State: AD7BkJKk8JbeKeQw6yv/vNml/WV9b1k/1tphmLuJvM/Ilranop1Z479qCt+gchJqRWR1VFNqOITlkFz+ZFRj0g== MIME-Version: 1.0 X-Received: by 10.202.203.77 with SMTP id b74mr2139518oig.56.1457018422340; Thu, 03 Mar 2016 07:20:22 -0800 (PST) Sender: chmeeedalf@gmail.com Received: by 10.182.33.8 with HTTP; Thu, 3 Mar 2016 07:20:22 -0800 (PST) In-Reply-To: <20160303164728.W1928@besplex.bde.org> References: <201603030507.u2357ae2098576@repo.freebsd.org> <20160303164728.W1928@besplex.bde.org> Date: Thu, 3 Mar 2016 09:20:22 -0600 X-Google-Sender-Auth: YqGSnFETOX-nDfSG0mC55Dzya4I Message-ID: Subject: Re: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen From: Justin Hibbits To: Bruce Evans Cc: src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 15:20:23 -0000 On Thu, Mar 3, 2016 at 12:18 AM, Bruce Evans wrote: > On Thu, 3 Mar 2016, Justin Hibbits wrote: > >> Log: >> Replace all resource occurrences of '0UL/~0UL' with '0/~0'. >> >> Summary: >> The idea behind this is '~0ul' is well-defined, and casting to uintmax_t, >> on a >> 32-bit platform, will leave the upper 32 bits as 0. The maximum range of >> a >> resource is 0xFFF.... (all bits of the full type set). By dropping the >> 'ul' >> suffix, C type promotion rules apply, and the sign extension of ~0 on 32 >> bit >> platforms gets it to a type-independent 'unsigned max'. > > > Why not use the correct signed value? This value is -1, not the value, if > any, with all bits 1. All bits 1 might be a trap representation, but it > is unclear if ~0 can give a trap representation or a trap since it is > unclear if the '~' operation acts on padding bits. It is clear that all > bits 1 gives has value -0 in 1's complement if there are no no padding > bits. But -0 has the same value as +0. When converted to an unsigned > type, it loses all traces of its sign, and becomes plain (ufoo_t)0. > > I don't like the plan to change the resource range type to uintmax_t. > 64 bits is just bloat for most 32-bit systems. After fixing all the > hard-coded u_longs, you can just use a typdefed type which should be > uint32_t if possible. > > Bruce The change to uintmax_t has been on the horizon since rman was first introduced in 1998. There is a comment (was in sys/sys/rman.h, now in sys/kern/subr_rman.c) regarding switching to unsigned long long to support 36-bit addressing on IA32. My selfish reasoning for taking on the work now is supporting 36-bit addressing for PowerPC, where device resources are located at physical addresses >4GB. Yes, it could be a machine dependent typedef, but what does that buy us in the grand scheme? The data overhead is not large -- an extra 8 bytes per resource (resource_i), plus 12 (maybe up to 20 depending on how much padding is added) per resource_list_entry. The code penalty is the added code to deal with using 2 registers (on RISC architectures) for each argument in resource related calls, plus the added math. But much of this will get lost in the noise anyway. Any runtime performance penalty is negligible, and only incurred at startup. After resource provisioning it's business as usual. ARMv7, PowerPC, i386, and MIPS32 all support 36-bit addresses. New PowerPC Book-E (e6500 core) supports 40-bit physical address, as does MIPS with XPA. uint32_t typedef would be relevant in only 2 cases: i386 non-PAE, and armv4 (3, if armv7 becomes a separate arch from armv6, but I doubt that'll happen). - Justin From owner-svn-src-head@freebsd.org Thu Mar 3 13:08:00 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D66DFA933C1; Thu, 3 Mar 2016 13:08:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A8002CB6; Thu, 3 Mar 2016 13:08:00 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23D7xxU045372; Thu, 3 Mar 2016 13:07:59 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23D7xH6045371; Thu, 3 Mar 2016 13:07:59 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201603031307.u23D7xH6045371@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 3 Mar 2016 13:07:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296348 - head/sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 13:08:00 -0000 Author: ae Date: Thu Mar 3 13:07:59 2016 New Revision: 296348 URL: https://svnweb.freebsd.org/changeset/base/296348 Log: Use correct size for malloc. Obtained from: Yandex LLC MFC after: 1 week Modified: head/sys/netpfil/ipfw/ip_fw_dynamic.c Modified: head/sys/netpfil/ipfw/ip_fw_dynamic.c ============================================================================== --- head/sys/netpfil/ipfw/ip_fw_dynamic.c Thu Mar 3 11:46:41 2016 (r296347) +++ head/sys/netpfil/ipfw/ip_fw_dynamic.c Thu Mar 3 13:07:59 2016 (r296348) @@ -505,7 +505,7 @@ resize_dynamic_table(struct ip_fw_chain V_curr_dyn_buckets, nbuckets); /* Allocate and initialize new hash */ - dyn_v = malloc(nbuckets * sizeof(ipfw_dyn_rule), M_IPFW, + dyn_v = malloc(nbuckets * sizeof(*dyn_v), M_IPFW, M_WAITOK | M_ZERO); for (i = 0 ; i < nbuckets; i++) From owner-svn-src-head@freebsd.org Thu Mar 3 12:44:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C218F7DC5; Thu, 3 Mar 2016 12:44:18 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 8D3BD27B; Thu, 3 Mar 2016 12:44:18 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 868F61FE022; Thu, 3 Mar 2016 13:44:14 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D82E45.3090205@selasky.org> <20160303124138.GS67250@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56D8323B.8070407@selasky.org> Date: Thu, 3 Mar 2016 13:46:51 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160303124138.GS67250@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 12:44:18 -0000 On 03/03/16 13:41, Konstantin Belousov wrote: >> The "td_slpcallout" is not drained anywhere, last time I checked. Does >> >this change require draining of the td_slpcallout in case the thread >> >immediately is exited/destroyed? > callout_stop_safe(CS_MIGRBLOCK) is enough in this case. td_slpcallout > is only reset from the sleepq code, and the fragment you cited is enough > to guarantee that no spurious wakeup of the unrelated time-bound sleep > happens, because TDF_TIMOFAIL flag cannot be cleared after that. > > Struct thread memory is type-stable, so callout subsystem never operates > on the freed memory from td_slpcallout. > > Thank you. --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 11:02:45 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A67BA93535; Thu, 3 Mar 2016 11:02:45 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 55F52E5; Thu, 3 Mar 2016 11:02:45 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 3AADB1FE022; Thu, 3 Mar 2016 12:02:42 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> From: Hans Petter Selasky Message-ID: <56D81A70.2070508@selasky.org> Date: Thu, 3 Mar 2016 12:05:20 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <56D81918.6020403@selasky.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:02:45 -0000 On 03/03/16 11:59, Hans Petter Selasky wrote: > +/* Flags for callout_stop_safe() */ > +#define CS_DRAIN 0x0001 /* callout_drain(), wait allowed */ > +#define CS_MIGRBLOCK 0x0002 /* Block migration, return value > + indicates that the callout was > + executing */ > + > #ifdef _KERNEL Should these defines be under #ifdef _KERNEL ? --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 11:38:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78BF2A93F23; Thu, 3 Mar 2016 11:38:40 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (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 4436E24E; Thu, 3 Mar 2016 11:38:40 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 5378F1FE022; Thu, 3 Mar 2016 12:38:36 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <20160303112716.GO67250@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56D822DA.2080309@selasky.org> Date: Thu, 3 Mar 2016 12:41:14 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160303112716.GO67250@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:38:40 -0000 On 03/03/16 12:27, Konstantin Belousov wrote: > On Thu, Mar 03, 2016 at 11:59:36AM +0100, Hans Petter Selasky wrote: >> >I believe all of these callout quirks can be avoided by using a spinlock >> >to proctect the thread callout like done in projects/hps_head. Has >> >anyone tried to reproduce the issue with projects/hps_head, before >> >making this patch? > I did not looked at your branch, but I do not like this coupling between > callbacks and thread locks. Even more, this probably cannot make work > since thread lock is not some fixed lock at all, and introducing one > more spinlock for the coupling is excessive. > Hi, My thought about this is that the condition in question is rather rare, and we can trade the addition thread sleep state with a spin lock. My good feeling is that a spin-lock will be better off than the task-switch for this rare case. To implement my approach it requires some minor updating that callout_init_mtx() will accept a spin-lock type mutex. --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 11:22:47 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4922A93B6B for ; Thu, 3 Mar 2016 11:22:47 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-158.reflexion.net [208.70.211.158]) (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 AA53DB20 for ; Thu, 3 Mar 2016 11:22:46 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 31459 invoked from network); 3 Mar 2016 11:23:03 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 3 Mar 2016 11:23:03 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v7.80.0) with SMTP; Thu, 03 Mar 2016 06:22:49 -0500 (EST) Received: (qmail 15966 invoked from network); 3 Mar 2016 11:22:49 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with SMTP; 3 Mar 2016 11:22:49 -0000 X-No-Relay: not in my network X-No-Relay: not in my network Received: from [192.168.1.8] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 4DAB11C43D2; Thu, 3 Mar 2016 03:22:44 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen From: Mark Millard In-Reply-To: <42B9FE2E-95D7-4292-9A27-7E4F24BCEDCD@dsl-only.net> Date: Thu, 3 Mar 2016 03:22:44 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <54D250A4-C855-4B37-8D3E-F4EFE975B7B2@dsl-only.net> References: <42B9FE2E-95D7-4292-9A27-7E4F24BCEDCD@dsl-only.net> To: Justin Hibbits , svn-src-head@freebsd.org X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:22:48 -0000 [Trying again with a corrected E-mail address.] What does FreeBSD support of the the possible implementation-defined = aspects for signed-integral value representations for C? C++? I ask = because of 1's complement and signed magnitude as reported on below. . . [I'm not covering signed conversion to less precision in the below = wording.] [First a note: conversion vs. promotion Promotions and conversions do not have equivalent rules if I remember = right, which can make the distinction important. 0 is of type int already and does not get promoted before the value is = used by ~. ~0 is also of type int and is only later subject to possible conversion, = not promotion. (As worded this presumes any "negative zero" that might result is not a = trap representation. See below.) ] As I understand the modern rules from reading the C11 and C99 standards: One's complement: If "negative zero" is a trap representation then ~0 is undefined. (Also = true for &, |, ^, <<, and >> use with operands that would otherwise = produce such a trap representation.) Otherwise ~0 is represented as -0 ("negative zero"). That -0 compares as = -0 =3D=3D 0 and the like. "Sign extension" (conversion) of signed = integral types to no-less precision (still signed) is value preserving = when no trap representation is involved, so the overall result is then = some value representation of zero: possibly "negative zero" but = alternately just zero: "if the value can be represented by the new type, = it is unchanged". (The mathematical-value is unchanged, not necessarily = the representation.) Later conversion to an unsigned integral type would not convert to a = non-zero value: "if the value can be represented by the new type, it is = unchanged". (That is a mathematical-value preserving statement, not a = representation statement.) So in this context the unsigned result has = the zero value-representation for its precision even if the conversion = starts with a "negative zero". signed magnitude:=20 signed magnitude ~0 has value representation all-ones with value = -INT_MAX. "Sign extension" (conversion) of signed integral types to = no-less precision (still signed) is value preserving when no trap = representation is involved. All-ones would not be value preserving for = greater precision. Instead zeros fill the "new" magnitude = value-representation bits and the sign bit and the old "magnitude bits" = are preserved. Later conversion to an unsigned integral value of an unsigned integral = type with, say, IVMAX as its maximum value then (effectively) = mathematically adds the mathematical value (IVMAX+1) to bring the signed = value into into the range of the unsigned integral type. So = mathematically: (-INT_MAX)+(IVMAX+1) =3D IVMAX - (INT_MAX-1). Two's complement: I'll not cover this (common and familiar). C++11's fit with the above: There are notes in C++11 about "if the underlying type as padding bits, = trap bits, or alternate representations of the same value" (such as for = compare-and-exchange). So the concepts are involved. C++11 allows 2's complement, 1's complement, and signed magnitude as = examples. But its wording allows more: "integral types shall define = values by use of a pure binary numeration system" (with a foot note = giving more detail). For conversions: "If the destination type is unsigned, the resulting = value is the least unsigned integer congruent to the source integer" = (modulo 2**precision). (I'm using ** for "raised to the power".) Also: = "If the destination type is signed, the value is unchanged if it can be = represented in the destination type (and bit-field width); otherwise the = value is implementation defined." [Unfortunately there is no definition given of "congruent". It is likely = intended as a modular arithmetic congruence relation: "a congruent_to b = (mode n)" meaning (a-b) is an integral multiple of n. So: least = non-negative m such that (source_integer - m) is a integral multiple of = (2**precision). I do not expect that this would contradict the above = C11/C99 material for the 3 value representations that C11/C99 allow.] =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-svn-src-head@freebsd.org Thu Mar 3 11:27:22 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7FC0A93C2C; Thu, 3 Mar 2016 11:27:22 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 6C1D3BA2; Thu, 3 Mar 2016 11:27:22 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u23BRGGQ080101 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 3 Mar 2016 13:27:17 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u23BRGGQ080101 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u23BRGOa080100; Thu, 3 Mar 2016 13:27:16 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 3 Mar 2016 13:27:16 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296320 - in head/sys: kern sys Message-ID: <20160303112716.GO67250@kib.kiev.ua> References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D81918.6020403@selasky.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:27:23 -0000 On Thu, Mar 03, 2016 at 11:59:36AM +0100, Hans Petter Selasky wrote: > I believe all of these callout quirks can be avoided by using a spinlock > to proctect the thread callout like done in projects/hps_head. Has > anyone tried to reproduce the issue with projects/hps_head, before > making this patch? I did not looked at your branch, but I do not like this coupling between callbacks and thread locks. Even more, this probably cannot make work since thread lock is not some fixed lock at all, and introducing one more spinlock for the coupling is excessive. > > BTW: The FreeBSD kernel version should have been bumped because > _callout_stop_safe() is a public callout API, used by all external > kernel modules, which now will have undefined behaviour until recompiled. The change was done in a way which is compatible with the pre-commit callout_stop_safe(9) users. I even consider it mergeable into the stable/10 without requiring any shims. From owner-svn-src-head@freebsd.org Thu Mar 3 12:27:23 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B97976B7; Thu, 3 Mar 2016 12:27:23 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (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 F2E8E7A9; Thu, 3 Mar 2016 12:27:22 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id A38DB1FE022; Thu, 3 Mar 2016 13:27:20 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603021846.u22IkHWM010861@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <56D82E45.3090205@selasky.org> Date: Thu, 3 Mar 2016 13:29:57 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <201603021846.u22IkHWM010861@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 12:27:23 -0000 On 03/02/16 19:46, Konstantin Belousov wrote: > Modified: head/sys/kern/subr_sleepqueue.c > ============================================================================== > --- head/sys/kern/subr_sleepqueue.c Wed Mar 2 16:36:24 2016 (r296319) > +++ head/sys/kern/subr_sleepqueue.c Wed Mar 2 18:46:17 2016 (r296320) > @@ -586,7 +586,8 @@ sleepq_check_timeout(void) > * another CPU, so synchronize with it to avoid having it > * accidentally wake up a subsequent sleep. > */ > - else if (callout_stop(&td->td_slpcallout) == 0) { > + else if (_callout_stop_safe(&td->td_slpcallout, CS_MIGRBLOCK, NULL) > + == 0) { > td->td_flags |= TDF_TIMEOUT; > TD_SET_SLEEPING(td); > mi_switch(SW_INVOL | SWT_SLEEPQTIMO, NULL); The "td_slpcallout" is not drained anywhere, last time I checked. Does this change require draining of the td_slpcallout in case the thread immediately is exited/destroyed? --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 12:41:45 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78B5B7D24; Thu, 3 Mar 2016 12:41:45 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 EE1C3EA4; Thu, 3 Mar 2016 12:41:44 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u23Cfc3T069890 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 3 Mar 2016 14:41:39 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u23Cfc3T069890 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u23Cfcph069888; Thu, 3 Mar 2016 14:41:38 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 3 Mar 2016 14:41:38 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296320 - in head/sys: kern sys Message-ID: <20160303124138.GS67250@kib.kiev.ua> References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D82E45.3090205@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D82E45.3090205@selasky.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 12:41:45 -0000 On Thu, Mar 03, 2016 at 01:29:57PM +0100, Hans Petter Selasky wrote: > On 03/02/16 19:46, Konstantin Belousov wrote: > > Modified: head/sys/kern/subr_sleepqueue.c > > ============================================================================== > > --- head/sys/kern/subr_sleepqueue.c Wed Mar 2 16:36:24 2016 (r296319) > > +++ head/sys/kern/subr_sleepqueue.c Wed Mar 2 18:46:17 2016 (r296320) > > @@ -586,7 +586,8 @@ sleepq_check_timeout(void) > > * another CPU, so synchronize with it to avoid having it > > * accidentally wake up a subsequent sleep. > > */ > > - else if (callout_stop(&td->td_slpcallout) == 0) { > > + else if (_callout_stop_safe(&td->td_slpcallout, CS_MIGRBLOCK, NULL) > > + == 0) { > > td->td_flags |= TDF_TIMEOUT; > > TD_SET_SLEEPING(td); > > mi_switch(SW_INVOL | SWT_SLEEPQTIMO, NULL); > > The "td_slpcallout" is not drained anywhere, last time I checked. Does > this change require draining of the td_slpcallout in case the thread > immediately is exited/destroyed? callout_stop_safe(CS_MIGRBLOCK) is enough in this case. td_slpcallout is only reset from the sleepq code, and the fragment you cited is enough to guarantee that no spurious wakeup of the unrelated time-bound sleep happens, because TDF_TIMOFAIL flag cannot be cleared after that. Struct thread memory is type-stable, so callout subsystem never operates on the freed memory from td_slpcallout. From owner-svn-src-head@freebsd.org Thu Mar 3 15:22:17 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59890A93C95 for ; Thu, 3 Mar 2016 15:22:17 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm24-vm0.bullet.mail.bf1.yahoo.com (nm24-vm0.bullet.mail.bf1.yahoo.com [98.139.213.161]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 13D3531E for ; Thu, 3 Mar 2016 15:22:16 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1457018530; bh=a58V3HVtCmOIc4kZjhoANVgoXmAiGC1BYdI0mlYFLPs=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=kUJFMOHI1bKlHIFPC47Z3QTjAReJgRDkYWQOwS+VaXE0a8yoHoV43IWCbTMuBXLbNqP70zhgkOTVDMCp81LnTUw3ZK2hRTllgoFqPcXBUR7AHphkfEKpvz0SwE7mrlSQVVwThk5k/d2YvTaqsRfA63rIsYXmOw88Oo1Kqz19dm9TnY70MVq4n1PCcAqLKrOxuVx24Q9pkgeCTPrM+jzbGswT6SCbgflM0vFDkut7bXrOa2SUov0/6RHziI6x+Xw9g1nvDnUTreqAgUHuXNmetpZp3PV+6wXp7yMQRtApG24W5WLz9HA5ymi2pADqnTv4w2AuzRrTzVNFumra2sH+Eg== Received: from [66.196.81.173] by nm24.bullet.mail.bf1.yahoo.com with NNFMP; 03 Mar 2016 15:22:10 -0000 Received: from [98.139.211.199] by tm19.bullet.mail.bf1.yahoo.com with NNFMP; 03 Mar 2016 15:22:10 -0000 Received: from [127.0.0.1] by smtp208.mail.bf1.yahoo.com with NNFMP; 03 Mar 2016 15:22:10 -0000 X-Yahoo-Newman-Id: 498554.30967.bm@smtp208.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: GfSRN0MVM1n_fvLlCJJSnQbIzZhN2DBN7h_n1bUkQTG7_kS 8vsPSlCTqVMfXxA3rTur2JbWLK8GW1W8qVRkkG.j_AytPnSBKMTjOMdIfI.2 XiorTaQAL5Jd4LaUxu_Iu7dEKSCJX6h0LZZPw_y70zxiuzCqqZkWcwXw1_25 _DByNTMcaBzpHaCgaUAqBkmfCc9xwWJ8ZsPnopILkgKK5zQazwZYB84XKyiS czNRXytjsw74mIp.rj46aA61jOrN_9N46QVige5nK.H_8q1tDgcWJhzMwHTF zNdpaIoAipdavTK7JTxgDgNW9WaYKT6vJ0d7gs9fFvSgJrV9CXqGA1lAKlPD jhFMyNJLbMGwjpAVM.Gt5kJR0gI.WNKeTx7hLu8zOn_S0ShWTY.d_ds.jYdC 54NwMK_GXeHBAIC9zd5OeZ_vyLncih91SuThLD6dwcjgIRilLUPDbgu79k8t jRQWXJ..cJhCV3m_y5u2IGgcwtK9ANcYai2CkY2z679fpq46nayfnUQQMwNJ Mfm.6daYevVcHXGPzyqSBYv1SsxG_J5Q6 X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r296190 - head/contrib/openresolv To: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= , svn-src-head@freebsd.org References: <201602291446.u1TEkdL9079747@repo.freebsd.org> <56D84C57.60101@dumbbell.fr> From: Pedro Giffuni Message-ID: <56D856D0.6010203@FreeBSD.org> Date: Thu, 3 Mar 2016 10:22:56 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56D84C57.60101@dumbbell.fr> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 15:22:17 -0000 On 03/03/16 09:38, Jean-Sébastien Pédron wrote: > Hi! > >> +# Strip any trailing dot from each name as a FQDN does not belong >> +# in resolv.conf(5) >> +# If you think otherwise, capture a DNS trace and you'll see libc >> +# will strip it regardless. >> +# This also solves setting up duplicate zones in our subscribers. >> +strip_trailing_dots() >> +{ >> + local n= >> + >> + for n; do >> + printf "%s" "${n%.}" >> + done >> + printf "\n" >> +} > > This specific change in openresolv removes all spaces separating names > in the "search" or "domain" lines, because it doesn't print any > whitespaces before/after stripped names. > > The result is: > search domain1.tlddomain2.tlddomain3.tld > > It was fixed upstream: > http://roy.marples.name/projects/openresolv/info/1e6ac67eb3c586a5 > http://roy.marples.name/projects/openresolv/ci/53416cf1b434dbc1?sbs=0 > > However, it was not published in any release so far. > OK, I will bring it through the vendor area. Thank you! Pedro. From owner-svn-src-head@freebsd.org Thu Mar 3 11:58:32 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F225DA93432; Thu, 3 Mar 2016 11:58:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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 7414010F; Thu, 3 Mar 2016 11:58:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u23BwQkN087250 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 3 Mar 2016 13:58:27 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u23BwQkN087250 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u23BwNuR087247; Thu, 3 Mar 2016 13:58:23 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 3 Mar 2016 13:58:23 +0200 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296320 - in head/sys: kern sys Message-ID: <20160303115823.GQ67250@kib.kiev.ua> References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <20160303112716.GO67250@kib.kiev.ua> <56D821A7.2020105@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56D821A7.2020105@selasky.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:58:32 -0000 On Thu, Mar 03, 2016 at 12:36:07PM +0100, Hans Petter Selasky wrote: > On 03/03/16 12:27, Konstantin Belousov wrote: > >> >BTW: The FreeBSD kernel version should have been bumped because > >> >_callout_stop_safe() is a public callout API, used by all external > >> >kernel modules, which now will have undefined behaviour until recompiled. > > The change was done in a way which is compatible with the pre-commit > > callout_stop_safe(9) users. I even consider it mergeable into the > > stable/10 without requiring any shims. > > > > > > Yes, your change is compatible if you compile the code, but not binary > compatible. See the following macros, and how they use _callout_stop_safe(): My change is binary compatible. > > #define callout_stop(c) _callout_stop_safe(c, 0, NULL) > #define callout_async_drain(c, d) \ > _callout_stop_safe(c, 0, d) > > Because callout_stop(c) is a macro, you've now change the API for > callout_stop() aswell. This is what I think will break binary > compatibility in 10.x. How my commit changes anything for either callout_stop(), or for callout_async_drain(), or for callout_drain() ? > > That's why the need to bump __FreeBSD_version__ > > --HPS From owner-svn-src-head@freebsd.org Thu Mar 3 15:36:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4641CA93073; Thu, 3 Mar 2016 15:36:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 18C7CBB2; Thu, 3 Mar 2016 15:36:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23Fa1Is092707; Thu, 3 Mar 2016 15:36:01 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23Fa1kX092706; Thu, 3 Mar 2016 15:36:01 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603031536.u23Fa1kX092706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 3 Mar 2016 15:36:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296351 - head/contrib/openresolv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 15:36:02 -0000 Author: pfg Date: Thu Mar 3 15:36:00 2016 New Revision: 296351 URL: https://svnweb.freebsd.org/changeset/base/296351 Log: MFV r296350: Split each domain again after striping any trailing dot. Reported by: dumbbell Obtained from: openresolv (53416cf1b4) Modified: head/contrib/openresolv/resolvconf.in Directory Properties: head/contrib/openresolv/ (props changed) Modified: head/contrib/openresolv/resolvconf.in ============================================================================== --- head/contrib/openresolv/resolvconf.in Thu Mar 3 15:32:50 2016 (r296350) +++ head/contrib/openresolv/resolvconf.in Thu Mar 3 15:36:00 2016 (r296351) @@ -127,10 +127,11 @@ echo_resolv() # This also solves setting up duplicate zones in our subscribers. strip_trailing_dots() { - local n= + local n= d= for n; do - printf "%s" "${n%.}" + printf "$d%s" "${n%.}" + d=" " done printf "\n" } From owner-svn-src-head@freebsd.org Thu Mar 3 18:53:22 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61D4AA939B3; Thu, 3 Mar 2016 18:53:22 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ig0-x22c.google.com (mail-ig0-x22c.google.com [IPv6:2607:f8b0:4001:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2F2A033A; Thu, 3 Mar 2016 18:53:22 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-ig0-x22c.google.com with SMTP id y8so26617802igp.0; Thu, 03 Mar 2016 10:53:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=Ile9uxeqixWV8U/Xj2xltmHBAm/v1+mEfmdDTuZW7wc=; b=KK9rEjLaMu68E08ksROqG3dg/x5nsDu8xyLiokijsoQhULJKmWRxaCVM8IkuQul011 /5QJMyw4DsSXFCJ35nXfOt1qzNl/uUvhBMbS1xWU8O2FKK3uN3t6SlVYJhO76cdI6fSv kp5zyPQSks3DvwwaTBjdhFRpVBTOHzeLguVhEdu3Mx73oaVL+858BbG9FofjBPQmd5h7 RvAqfDhgakMIg3yOKxvxD0jXvhUVUKO/f6LPlwsRodWUwzUIhFf9QKMHDAg6ceJ385Im EnM2wGAZDOWZk4lPOQqqXuDBfEL+K/vlNS+WK0GnnEbT1UAUsuHrOnqck2kwTc2xXMoZ yyGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=Ile9uxeqixWV8U/Xj2xltmHBAm/v1+mEfmdDTuZW7wc=; b=VGA7GA6ht8vwglQ2YdgJ9tHt1IJr90DmjjhxdePvoBSHU7kcChxGvnBTqax480Ts4P +9drgxUjiMAWZk34K4vMNJNgdIbJrOXTPfwCdLC4S5U1Dil4XxTGVhFXDBGUbIMQlPsM an6XH2WwYHdwmQAP9xB9qbkdN8658DwvcwYxAjmAhutt7NOvOT6AhKopcxj1xLy8JpQa RJ2Vfbm1I7Qax1bD7w9L6UNHZxRdZ13oekSvNSiwEfyOPPhpxPA/SigSAqco5BK8ZB+y ZyPcUhNwrQFHjmQAl6gl3UHNilFJbuzHjfEBoq+qGyebwDY3pvTq5L4FgVU0U8UOr3Gp NwHQ== X-Gm-Message-State: AD7BkJJ94+pYaxViNQXrflwwYdz4n8TaOwYIA/FYxmxqIqwEhMcw0trlE43foZRebNn0u1c1/56TyQNGiqKQxQ== MIME-Version: 1.0 X-Received: by 10.50.36.105 with SMTP id p9mr634156igj.22.1457031201592; Thu, 03 Mar 2016 10:53:21 -0800 (PST) Received: by 10.36.14.19 with HTTP; Thu, 3 Mar 2016 10:53:21 -0800 (PST) In-Reply-To: <201603030143.u231ha5V038688@repo.freebsd.org> References: <201603030143.u231ha5V038688@repo.freebsd.org> Date: Thu, 3 Mar 2016 10:53:21 -0800 Message-ID: Subject: Re: svn commit: r296334 - head/contrib/jemalloc/src From: Adrian Chadd To: Jason Evans Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 18:53:22 -0000 Hi! Thanks for your quick fix. I'm sorry for being terse/grumpy with you. It wasn't deserved. I'll try to be less grumpy in the future. -adrian On 2 March 2016 at 17:43, Jason Evans wrote: > Author: jasone > Date: Thu Mar 3 01:43:36 2016 > New Revision: 296334 > URL: https://svnweb.freebsd.org/changeset/base/296334 > > Log: > Restore support for decay time of -1 (no decay). > > Modified: > head/contrib/jemalloc/src/arena.c > > Modified: head/contrib/jemalloc/src/arena.c > ============================================================================== > --- head/contrib/jemalloc/src/arena.c Thu Mar 3 01:41:53 2016 (r296333) > +++ head/contrib/jemalloc/src/arena.c Thu Mar 3 01:43:36 2016 (r296334) > @@ -1352,7 +1352,11 @@ static bool > arena_decay_time_valid(ssize_t decay_time) > { > > - return (decay_time >= -1 && (uint64_t)decay_time <= NSTIME_SEC_MAX); > + if (decay_time < -1) > + return (false); > + if (decay_time == -1 || (uint64_t)decay_time <= NSTIME_SEC_MAX) > + return (true); > + return (false); > } > > ssize_t > From owner-svn-src-head@freebsd.org Thu Mar 3 11:40:03 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2FC9A93F4B; Thu, 3 Mar 2016 11:40:03 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (mail.turbocat.net [IPv6:2a01:4f8:d16:4514::2]) (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 9E134381; Thu, 3 Mar 2016 11:40:03 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id CC7731FE022; Thu, 3 Mar 2016 12:40:01 +0100 (CET) Subject: Re: svn commit: r296320 - in head/sys: kern sys To: Konstantin Belousov References: <201603021846.u22IkHWM010861@repo.freebsd.org> <56D81918.6020403@selasky.org> <56D81A70.2070508@selasky.org> <20160303112908.GP67250@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <56D8232F.4050106@selasky.org> Date: Thu, 3 Mar 2016 12:42:39 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160303112908.GP67250@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 11:40:03 -0000 On 03/03/16 12:29, Konstantin Belousov wrote: > Why do they need the braces ? Other bits in the callout.h header are > not restricted for kernel only, and I do not see a difference between > CALLOUT_* and CS_*. Because the function that use the new flags are under #ifdef _KERNEL too. --HPS From owner-svn-src-head@freebsd.org Fri Mar 4 01:25:47 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48D07A936EE; Fri, 4 Mar 2016 01:25:47 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1A5438DA; Fri, 4 Mar 2016 01:25:47 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u241PkPt059827; Fri, 4 Mar 2016 01:25:46 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u241Pk0Q059826; Fri, 4 Mar 2016 01:25:46 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201603040125.u241Pk0Q059826@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 4 Mar 2016 01:25:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296372 - head/sys/dev/acpica X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 01:25:47 -0000 Author: jhibbits Date: Fri Mar 4 01:25:45 2016 New Revision: 296372 URL: https://svnweb.freebsd.org/changeset/base/296372 Log: Remove default initializations for rman, a'la r296331 Modified: head/sys/dev/acpica/acpi.c Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Fri Mar 4 00:40:15 2016 (r296371) +++ head/sys/dev/acpica/acpi.c Fri Mar 4 01:25:45 2016 (r296372) @@ -459,8 +459,6 @@ acpi_attach(device_t dev) if (rman_init(&acpi_rman_io) != 0) panic("acpi rman_init IO ports failed"); acpi_rman_mem.rm_type = RMAN_ARRAY; - acpi_rman_mem.rm_start = 0; - acpi_rman_mem.rm_end = ~0ul; acpi_rman_mem.rm_descr = "ACPI I/O memory addresses"; if (rman_init(&acpi_rman_mem) != 0) panic("acpi rman_init memory failed"); From owner-svn-src-head@freebsd.org Thu Mar 3 16:19:50 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BD09A93D89; Thu, 3 Mar 2016 16:19:50 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 32AFBBD; Thu, 3 Mar 2016 16:19:49 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c110-21-41-193.carlnfd1.nsw.optusnet.com.au (c110-21-41-193.carlnfd1.nsw.optusnet.com.au [110.21.41.193]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id 89FDB3C3ADF; Fri, 4 Mar 2016 03:19:38 +1100 (AEDT) Date: Fri, 4 Mar 2016 03:19:37 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Justin Hibbits cc: Bruce Evans , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen In-Reply-To: Message-ID: <20160304022526.U3716@besplex.bde.org> References: <201603030507.u2357ae2098576@repo.freebsd.org> <20160303164728.W1928@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=73JWPhLeruqQCjN69UNZtQ==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=xEAJJWtkQC7W6ZD91H4A:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 16:19:50 -0000 On Thu, 3 Mar 2016, Justin Hibbits wrote: > On Thu, Mar 3, 2016 at 12:18 AM, Bruce Evans wrote: >> On Thu, 3 Mar 2016, Justin Hibbits wrote: >> >>> Log: >>> Replace all resource occurrences of '0UL/~0UL' with '0/~0'. >>> >>> Summary: >>> The idea behind this is '~0ul' is well-defined, and casting to uintmax_t, >>> on a >>> 32-bit platform, will leave the upper 32 bits as 0. The maximum range of >>> a >>> resource is 0xFFF.... (all bits of the full type set). By dropping the >>> 'ul' >>> suffix, C type promotion rules apply, and the sign extension of ~0 on 32 >>> bit >>> platforms gets it to a type-independent 'unsigned max'. >> >> Why not use the correct signed value? This value is -1, not the value, if >> any, with all bits 1. All bits 1 might be a trap representation, but it >> ... >> I don't like the plan to change the resource range type to uintmax_t. >> 64 bits is just bloat for most 32-bit systems. After fixing all the >> hard-coded u_longs, you can just use a typdefed type which should be >> uint32_t if possible. > > The change to uintmax_t has been on the horizon since rman was first > introduced in 1998. There is a comment (was in sys/sys/rman.h, now in > sys/kern/subr_rman.c) regarding switching to unsigned long long to > support 36-bit addressing on IA32. Hmm, I almost wrote a bit about u_long being correct in 1998, but the impending breakage in C99 was known then and unsigned long long was already de-facto breakage. > My selfish reasoning for taking on > the work now is supporting 36-bit addressing for PowerPC, where device > resources are located at physical addresses >4GB. Yes, it could be a > machine dependent typedef, but what does that buy us in the grand > scheme? The data overhead is not large -- an extra 8 bytes per > resource (resource_i), plus 12 (maybe up to 20 depending on how much > padding is added) per resource_list_entry. The code penalty is the > added code to deal with using 2 registers (on RISC architectures) for > each argument in resource related calls, plus the added math. But > much of this will get lost in the noise anyway. Any runtime > performance penalty is negligible, and only incurred at startup. > After resource provisioning it's business as usual. The initialization code is already quite large. > ARMv7, PowerPC, i386, and MIPS32 all support 36-bit addresses. New > PowerPC Book-E (e6500 core) supports 40-bit physical address, as does > MIPS with XPA. uint32_t typedef would be relevant in only 2 cases: > i386 non-PAE, and armv4 (3, if armv7 becomes a separate arch from > armv6, but I doubt that'll happen). i386 non-PAE is perhaps 99% of i386 arches and 90% of all 32-bit arches. i386 PAE is careful with most other typedefs to use uint64_t only when needed. It never uses uintmax_t for system types. Using uintmax_t will give automatic bloat to uint128_t and beyond when uintmax_t is expanded. Of course, uintmax_t is too hard to expand because expanding it would mainly give bloat and break ABIs. This is the same problem that led to adding the long long abomination and breaking long and adding uintmax_t. uintmax_t is already broken on at least amd64 since __int128_t exists there. Just to avoid this problem, the type should not be uintmax_t. Then it is just as easy to make it the smallest or fastest type that works as some larger type. Almost any MD choice of type except uintmax_t prevents the ABI changing. Bruce From owner-svn-src-head@freebsd.org Thu Mar 3 14:38:23 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB5E4A93DCC for ; Thu, 3 Mar 2016 14:38:23 +0000 (UTC) (envelope-from jean-sebastien.pedron@dumbbell.fr) Received: from mail.made4.biz (mail.made4.biz [IPv6:2001:41d0:2:c018::1:3]) (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 766B39AA; Thu, 3 Mar 2016 14:38:23 +0000 (UTC) (envelope-from jean-sebastien.pedron@dumbbell.fr) Received: from [176.158.145.63] (helo=magellan.dumbbell.fr) by mail.made4.biz with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abUOS-0001FM-PQ; Thu, 03 Mar 2016 15:38:20 +0100 To: svn-src-head@freebsd.org References: <201602291446.u1TEkdL9079747@repo.freebsd.org> Subject: Re: svn commit: r296190 - head/contrib/openresolv Cc: "Pedro F. Giffuni" From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Message-ID: <56D84C57.60101@dumbbell.fr> Date: Thu, 3 Mar 2016 15:38:15 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201602291446.u1TEkdL9079747@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="nSrWTdtMPxIT74HDa7aq0DVu0gBo0qlQd" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 14:38:23 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --nSrWTdtMPxIT74HDa7aq0DVu0gBo0qlQd Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! > +# Strip any trailing dot from each name as a FQDN does not belong > +# in resolv.conf(5) > +# If you think otherwise, capture a DNS trace and you'll see libc > +# will strip it regardless. > +# This also solves setting up duplicate zones in our subscribers. > +strip_trailing_dots() > +{ > + local n=3D > + > + for n; do > + printf "%s" "${n%.}" > + done > + printf "\n" > +} This specific change in openresolv removes all spaces separating names in the "search" or "domain" lines, because it doesn't print any whitespaces before/after stripped names. The result is: search domain1.tlddomain2.tlddomain3.tld It was fixed upstream: http://roy.marples.name/projects/openresolv/info/1e6ac67eb3c586a5 http://roy.marples.name/projects/openresolv/ci/53416cf1b434dbc1?sbs=3D0= However, it was not published in any release so far. --=20 Jean-S=C3=A9bastien P=C3=A9dron --nSrWTdtMPxIT74HDa7aq0DVu0gBo0qlQd Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJW2ExcXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NzA4N0ZEMUFFQUUwRTEyREJDNkE2RjAz OUU5OTc2MUE1RkQ5NENDAAoJEDnpl2Gl/ZTMjTQP/04vs4zEnfa650n6POfg2CTV TpigxXjhrHBZg3lubIycwBggg14Hwuu4UBtfLLgJP+sU8CgJ+63Z9We1FdruOMAB hevrH561bzJMWe7nxy+BpA/N+B9RqnZqe5tjcSQ9MmM6EJ9vAoXAur8tskXS4Vy5 XACr5X0eN+CeRoAk/FbArp5miqgTR1AM0jVsfpZtfwY3MHhiYIrpV0ns2geTXTMg erExwVEgjdrzPakU1to2aidpd/t0eaYsOLtIh3WOVRiyIrfcLhfzUvoWl54IcRhV HROJZrypAQ3iZhR+uWUnD2+38FvwbrQZzY6CbaYjrAuqwWEr3CfoZenH/+nqs7l6 JmsagJ9xt6R7Ww7WqUn2Z3z3gmDplRPuIX6FSu85CUeMK2SJ9XB8KeRPtleh/zOF m2cz7AGKUqUek/L5Kw/54aCf1mvToHyTxIuGGJ9h+DSKWDJFr/swyFbMYNPUX6/S AgHeuPf7rpL7WsW+2uvBcVXCTtaQEzMsiPgrZsY9qKnaFeENIimCcAyJPRn/FAG6 g4E+d3Znx9DV0VVqn8hJWldPBilM6bWF/N+8yGSnJxnzN/WPzWT833Plx0Rk3jAH MtZAqgcHL8Me7yI8XZ5oIVFwXC8IPn3dktt9Zs59gCrpuvsHSL9nhazeSvbU3rsh w8xV6Xn4va2CTk6CLP5J =sDK6 -----END PGP SIGNATURE----- --nSrWTdtMPxIT74HDa7aq0DVu0gBo0qlQd-- From owner-svn-src-head@freebsd.org Thu Mar 3 14:44:32 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AF3CA93093; Thu, 3 Mar 2016 14:44:32 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 191B0D12; Thu, 3 Mar 2016 14:44:32 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23EiVdv076304; Thu, 3 Mar 2016 14:44:31 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23EiVcd076303; Thu, 3 Mar 2016 14:44:31 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603031444.u23EiVcd076303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 3 Mar 2016 14:44:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296349 - head/include/rpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 14:44:32 -0000 Author: pfg Date: Thu Mar 3 14:44:30 2016 New Revision: 296349 URL: https://svnweb.freebsd.org/changeset/base/296349 Log: Add sunrpc compat define for xp_sock. SunRPC is using xp_sock in SVCXPRT, while TI-RPC is using xp_fd. Add a compatibility define. Illumos has something similar for the non-kernel case. Obtained from: linux-nfs project (git 0d94036c3a0d4c24d22bf6a8c40ac6625d972c29) Modified: head/include/rpc/svc.h Modified: head/include/rpc/svc.h ============================================================================== --- head/include/rpc/svc.h Thu Mar 3 13:07:59 2016 (r296348) +++ head/include/rpc/svc.h Thu Mar 3 14:44:30 2016 (r296349) @@ -89,6 +89,7 @@ enum xprt_stat { */ typedef struct __rpc_svcxprt { int xp_fd; +#define xp_sock xp_fd u_short xp_port; /* associated port number */ const struct xp_ops { /* receive incoming requests */ From owner-svn-src-head@freebsd.org Thu Mar 3 17:46:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F652A947AA; Thu, 3 Mar 2016 17:46:40 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 3A9EC66E; Thu, 3 Mar 2016 17:46:40 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23HkdqT021348; Thu, 3 Mar 2016 17:46:39 GMT (envelope-from gnn@FreeBSD.org) Received: (from gnn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23Hkckg021344; Thu, 3 Mar 2016 17:46:38 GMT (envelope-from gnn@FreeBSD.org) Message-Id: <201603031746.u23Hkckg021344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gnn set sender to gnn@FreeBSD.org using -f From: "George V. Neville-Neil" Date: Thu, 3 Mar 2016 17:46:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296352 - in head/sys/netinet: . tcp_stacks X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 17:46:40 -0000 Author: gnn Date: Thu Mar 3 17:46:38 2016 New Revision: 296352 URL: https://svnweb.freebsd.org/changeset/base/296352 Log: Fix dtrace probes (introduced in 287759): debug__input was used for output and drop; connect didn't always fire a user probe some probes were missing in fastpath Submitted by: Hannes Mehnert Sponsored by: REMS, EPSRC Differential Revision: https://reviews.freebsd.org/D5525 Modified: head/sys/netinet/tcp_output.c head/sys/netinet/tcp_stacks/fastpath.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_usrreq.c Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Thu Mar 3 15:36:00 2016 (r296351) +++ head/sys/netinet/tcp_output.c Thu Mar 3 17:46:38 2016 (r296352) @@ -1317,7 +1317,7 @@ send: ipov->ih_len = save; } #endif /* TCPDEBUG */ - TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + TCP_PROBE3(debug__output, tp, th, mtod(m, const char *)); /* * Fill in IP length and desired time to live and Modified: head/sys/netinet/tcp_stacks/fastpath.c ============================================================================== --- head/sys/netinet/tcp_stacks/fastpath.c Thu Mar 3 15:36:00 2016 (r296351) +++ head/sys/netinet/tcp_stacks/fastpath.c Thu Mar 3 17:46:38 2016 (r296352) @@ -291,7 +291,6 @@ tcp_do_fastack(struct mbuf *m, struct tc */ tp->snd_wl2 = th->th_ack; tp->t_dupacks = 0; - m_freem(m); /* * If all outstanding data are acked, stop @@ -308,6 +307,8 @@ tcp_do_fastack(struct mbuf *m, struct tc (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif + TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + m_freem(m); if (tp->snd_una == tp->snd_max) tcp_timer_activate(tp, TT_REXMT, 0); else if (!tcp_timer_active(tp, TT_PERSIST)) @@ -398,6 +399,7 @@ tcp_do_fastnewdata(struct mbuf *m, struc tcp_trace(TA_INPUT, ostate, tp, (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif + TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); /* * Automatic sizing of receive socket buffer. Often the send * buffer size is not optimally adjusted to the actual network @@ -1695,7 +1697,7 @@ dropafterack: tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif - TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + TCP_PROBE3(debug__drop, tp, th, mtod(m, const char *)); if (ti_locked == TI_RLOCKED) { INP_INFO_RUNLOCK(&V_tcbinfo); } @@ -1738,7 +1740,7 @@ drop: tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif - TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + TCP_PROBE3(debug__drop, tp, th, mtod(m, const char *)); if (tp != NULL) INP_WUNLOCK(tp->t_inpcb); m_freem(m); @@ -2134,7 +2136,6 @@ tcp_fastack(struct mbuf *m, struct tcphd tp->snd_una = th->th_ack; tp->t_dupacks = 0; - m_freem(m); /* * If all outstanding data are acked, stop @@ -2151,6 +2152,8 @@ tcp_fastack(struct mbuf *m, struct tcphd (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif + TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + m_freem(m); if (tp->snd_una == tp->snd_max) tcp_timer_activate(tp, TT_REXMT, 0); else if (!tcp_timer_active(tp, TT_PERSIST)) Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Thu Mar 3 15:36:00 2016 (r296351) +++ head/sys/netinet/tcp_subr.c Thu Mar 3 17:46:38 2016 (r296352) @@ -1026,7 +1026,7 @@ tcp_respond(struct tcpcb *tp, void *ipge if (tp == NULL || (inp->inp_socket->so_options & SO_DEBUG)) tcp_trace(TA_OUTPUT, 0, tp, mtod(m, void *), th, 0); #endif - TCP_PROBE3(debug__input, tp, th, mtod(m, const char *)); + TCP_PROBE3(debug__output, tp, th, mtod(m, const char *)); if (flags & TH_RST) TCP_PROBE5(accept__refused, NULL, NULL, mtod(m, const char *), tp, nth); Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Thu Mar 3 15:36:00 2016 (r296351) +++ head/sys/netinet/tcp_usrreq.c Thu Mar 3 17:46:38 2016 (r296352) @@ -525,6 +525,7 @@ tcp_usr_connect(struct socket *so, struc error = tp->t_fb->tfb_tcp_output(tp); out: TCPDEBUG2(PRU_CONNECT); + TCP_PROBE2(debug__user, tp, PRU_CONNECT); INP_WUNLOCK(inp); return (error); } From owner-svn-src-head@freebsd.org Thu Mar 3 18:54:09 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BD03A939C5 for ; Thu, 3 Mar 2016 18:54:09 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-159.reflexion.net [208.70.211.159]) (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 6132B65B for ; Thu, 3 Mar 2016 18:54:08 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 10082 invoked from network); 3 Mar 2016 18:54:05 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 3 Mar 2016 18:54:05 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v7.80.0) with SMTP; Thu, 03 Mar 2016 13:54:00 -0500 (EST) Received: (qmail 28547 invoked from network); 3 Mar 2016 18:54:00 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with SMTP; 3 Mar 2016 18:54:00 -0000 X-No-Relay: not in my network X-No-Relay: not in my network X-No-Relay: not in my network Received: from [192.168.1.8] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 89BD71C43E5; Thu, 3 Mar 2016 10:54:03 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r296336 - in head/sys: dev/bhnd dev/pccard dev/pci isa kern sys x86/xen From: Mark Millard In-Reply-To: <54D250A4-C855-4B37-8D3E-F4EFE975B7B2@dsl-only.net> Date: Thu, 3 Mar 2016 10:54:06 -0800 Cc: svn-src-head@freebsd.org, Justin Hibbits Content-Transfer-Encoding: quoted-printable Message-Id: <3B2E571A-C682-4BAD-8DEE-12DE29AAD33C@dsl-only.net> References: <42B9FE2E-95D7-4292-9A27-7E4F24BCEDCD@dsl-only.net> <54D250A4-C855-4B37-8D3E-F4EFE975B7B2@dsl-only.net> To: Bruce Evans X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 18:54:09 -0000 On Thu Mar 3 06:18:48 UTC 2016 Bruce Evans wrote: > On Thu, 3 Mar 2016, Justin Hibbits wrote: >=20 > > Log: > > Replace all resource occurrences of '0UL/~0UL' with '0/~0'. > > > > Summary: > > The idea behind this is '~0ul' is well-defined, and casting to = uintmax_t, on a > > 32-bit platform, will leave the upper 32 bits as 0. The maximum = range of a > > resource is 0xFFF.... (all bits of the full type set). By dropping = the 'ul' > > suffix, C type promotion rules apply, and the sign extension of ~0 = on 32 bit > > platforms gets it to a type-independent 'unsigned max'. >=20 >=20 > Why not use the correct signed value? This value is -1, not the = value, if > any, with all bits 1. All bits 1 might be a trap representation, but = it > is unclear if ~0 can give a trap representation or a trap since it is > unclear if the '~' operation acts on padding bits. It is clear that = all > bits 1 gives has value -0 in 1's complement if there are no no padding > bits. But -0 has the same value as +0. When converted to an unsigned > type, it loses all traces of its sign, and becomes plain (ufoo_t)0. >=20 > I don't like the plan to change the resource range type to uintmax_t. > 64 bits is just bloat for most 32-bit systems. After fixing all the > hard-coded u_longs, you can just use a typdefed type which should be > uint32_t if possible. >=20 > Bruce My original attempt to send svn-src-head a note on this did not seem to = go through. I tried to interpret C11, C99, and part of C++11 on the point for = C11/C99's allowed value representations, other than the familiar/common = 2's complement. As usual for me this is based on just the language = standards. Other standards may have other rules. I'm including it below. May be it will make it though this time? =3D=3D=3D Mark Millard markmi at dsl-only.net On 2016-Mar-3, at 3:22 AM, Mark Millard wrote: [Trying again with a corrected E-mail address.] What does FreeBSD support of the the possible implementation-defined = aspects for signed-integral value representations for C? C++? I ask = because of 1's complement and signed magnitude as reported on below. . . [I'm not covering signed conversion to less precision in the below = wording.] [First a note: conversion vs. promotion Promotions and conversions do not have equivalent rules if I remember = right, which can make the distinction important. 0 is of type int already and does not get promoted before the value is = used by ~. ~0 is also of type int and is only later subject to possible conversion, = not promotion. (As worded this presumes any "negative zero" that might result is not a = trap representation. See below.) ] As I understand the modern rules from reading the C11 and C99 standards: One's complement: If "negative zero" is a trap representation then ~0 is undefined. (Also = true for &, |, ^, <<, and >> use with operands that would otherwise = produce such a trap representation.) Otherwise ~0 is represented as -0 ("negative zero"). That -0 compares as = -0 =3D=3D 0 and the like. "Sign extension" (conversion) of signed = integral types to no-less precision (still signed) is value preserving = when no trap representation is involved, so the overall result is then = some value representation of zero: possibly "negative zero" but = alternately just zero: "if the value can be represented by the new type, = it is unchanged". (The mathematical-value is unchanged, not necessarily = the representation.) Later conversion to an unsigned integral type would not convert to a = non-zero value: "if the value can be represented by the new type, it is = unchanged". (That is a mathematical-value preserving statement, not a = representation statement.) So in this context the unsigned result has = the zero value-representation for its precision even if the conversion = starts with a "negative zero". signed magnitude:=20 signed magnitude ~0 has value representation all-ones with value = -INT_MAX. "Sign extension" (conversion) of signed integral types to = no-less precision (still signed) is value preserving when no trap = representation is involved. All-ones would not be value preserving for = greater precision. Instead zeros fill the "new" magnitude = value-representation bits and the sign bit and the old "magnitude bits" = are preserved. Later conversion to an unsigned integral value of an unsigned integral = type with, say, IVMAX as its maximum value then (effectively) = mathematically adds the mathematical value (IVMAX+1) to bring the signed = value into into the range of the unsigned integral type. So = mathematically: (-INT_MAX)+(IVMAX+1) =3D IVMAX - (INT_MAX-1). Two's complement: I'll not cover this (common and familiar). C++11's fit with the above: There are notes in C++11 about "if the underlying type as padding bits, = trap bits, or alternate representations of the same value" (such as for = compare-and-exchange). So the concepts are involved. C++11 allows 2's complement, 1's complement, and signed magnitude as = examples. But its wording allows more: "integral types shall define = values by use of a pure binary numeration system" (with a foot note = giving more detail). For conversions: "If the destination type is unsigned, the resulting = value is the least unsigned integer congruent to the source integer" = (modulo 2**precision). (I'm using ** for "raised to the power".) Also: = "If the destination type is signed, the value is unchanged if it can be = represented in the destination type (and bit-field width); otherwise the = value is implementation defined." [Unfortunately there is no definition given of "congruent". It is likely = intended as a modular arithmetic congruence relation: "a congruent_to b = (mode n)" meaning (a-b) is an integral multiple of n. So: least = non-negative m such that (source_integer - m) is a integral multiple of = (2**precision). I do not expect that this would contradict the above = C11/C99 material for the 3 value representations that C11/C99 allow.] =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-svn-src-head@freebsd.org Thu Mar 3 19:49:39 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20AA1A93965; Thu, 3 Mar 2016 19:49:39 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 F1365DCF; Thu, 3 Mar 2016 19:49:38 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23JnbWZ056722; Thu, 3 Mar 2016 19:49:37 GMT (envelope-from smh@FreeBSD.org) Received: (from smh@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23Jnb6j056721; Thu, 3 Mar 2016 19:49:37 GMT (envelope-from smh@FreeBSD.org) Message-Id: <201603031949.u23Jnb6j056721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org using -f From: Steven Hartland Date: Thu, 3 Mar 2016 19:49:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296354 - head/sys/dev/ixl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 19:49:39 -0000 Author: smh Date: Thu Mar 3 19:49:37 2016 New Revision: 296354 URL: https://svnweb.freebsd.org/changeset/base/296354 Log: Fix ixl with RSS Fix compilation of ixl when RSS option is set, broken by r295946 MFC after: 3 weeks X-MFC-With: r295946 Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5428 Modified: head/sys/dev/ixl/if_ixl.c Modified: head/sys/dev/ixl/if_ixl.c ============================================================================== --- head/sys/dev/ixl/if_ixl.c Thu Mar 3 18:08:58 2016 (r296353) +++ head/sys/dev/ixl/if_ixl.c Thu Mar 3 19:49:37 2016 (r296354) @@ -1991,54 +1991,58 @@ ixl_assign_vsi_legacy(struct ixl_pf *pf) static void ixl_init_taskqueues(struct ixl_pf *pf) { - struct ixl_vsi *vsi = &pf->vsi; - struct ixl_queue *que = vsi->queues; - device_t dev = pf->dev; + struct ixl_vsi *vsi = &pf->vsi; + struct ixl_queue *que = vsi->queues; + device_t dev = pf->dev; +#ifdef RSS + int cpu_id; + cpuset_t cpu_mask; +#endif - /* Tasklet for Admin Queue */ - TASK_INIT(&pf->adminq, 0, ixl_do_adminq, pf); + /* Tasklet for Admin Queue */ + TASK_INIT(&pf->adminq, 0, ixl_do_adminq, pf); #ifdef PCI_IOV - /* VFLR Tasklet */ - TASK_INIT(&pf->vflr_task, 0, ixl_handle_vflr, pf); + /* VFLR Tasklet */ + TASK_INIT(&pf->vflr_task, 0, ixl_handle_vflr, pf); #endif - /* Create and start PF taskqueue */ - pf->tq = taskqueue_create_fast("ixl_adm", M_NOWAIT, - taskqueue_thread_enqueue, &pf->tq); - taskqueue_start_threads(&pf->tq, 1, PI_NET, "%s adminq", - device_get_nameunit(dev)); - - /* Create queue tasks and start queue taskqueues */ - for (int i = 0; i < vsi->num_queues; i++, que++) { - TASK_INIT(&que->tx_task, 0, ixl_deferred_mq_start, que); - TASK_INIT(&que->task, 0, ixl_handle_que, que); - que->tq = taskqueue_create_fast("ixl_que", M_NOWAIT, - taskqueue_thread_enqueue, &que->tq); + /* Create and start PF taskqueue */ + pf->tq = taskqueue_create_fast("ixl_adm", M_NOWAIT, + taskqueue_thread_enqueue, &pf->tq); + taskqueue_start_threads(&pf->tq, 1, PI_NET, "%s adminq", + device_get_nameunit(dev)); + + /* Create queue tasks and start queue taskqueues */ + for (int i = 0; i < vsi->num_queues; i++, que++) { + TASK_INIT(&que->tx_task, 0, ixl_deferred_mq_start, que); + TASK_INIT(&que->task, 0, ixl_handle_que, que); + que->tq = taskqueue_create_fast("ixl_que", M_NOWAIT, + taskqueue_thread_enqueue, &que->tq); #ifdef RSS - CPU_SETOF(cpu_id, &cpu_mask); - taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET, - &cpu_mask, "%s (bucket %d)", - device_get_nameunit(dev), cpu_id); + cpu_id = rss_getcpu(i % rss_getnumbuckets()); + CPU_SETOF(cpu_id, &cpu_mask); + taskqueue_start_threads_cpuset(&que->tq, 1, PI_NET, + &cpu_mask, "%s (bucket %d)", + device_get_nameunit(dev), cpu_id); #else - taskqueue_start_threads(&que->tq, 1, PI_NET, - "%s (que %d)", device_get_nameunit(dev), que->me); + taskqueue_start_threads(&que->tq, 1, PI_NET, + "%s (que %d)", device_get_nameunit(dev), que->me); #endif - } - + } } static void ixl_free_taskqueues(struct ixl_pf *pf) { - struct ixl_vsi *vsi = &pf->vsi; - struct ixl_queue *que = vsi->queues; + struct ixl_vsi *vsi = &pf->vsi; + struct ixl_queue *que = vsi->queues; - if (pf->tq) - taskqueue_free(pf->tq); - for (int i = 0; i < vsi->num_queues; i++, que++) { - if (que->tq) - taskqueue_free(que->tq); - } + if (pf->tq) + taskqueue_free(pf->tq); + for (int i = 0; i < vsi->num_queues; i++, que++) { + if (que->tq) + taskqueue_free(que->tq); + } } /********************************************************************* @@ -2054,9 +2058,6 @@ ixl_assign_vsi_msix(struct ixl_pf *pf) struct ixl_queue *que = vsi->queues; struct tx_ring *txr; int error, rid, vector = 0; -#ifdef RSS - cpuset_t cpu_mask; -#endif /* Admin Que is vector 0*/ rid = vector + 1; From owner-svn-src-head@freebsd.org Fri Mar 4 03:10:09 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC96FA93494; Fri, 4 Mar 2016 03:10:09 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 BE99CAA5; Fri, 4 Mar 2016 03:10:09 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u243A8Ot091097; Fri, 4 Mar 2016 03:10:08 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u243A80N091096; Fri, 4 Mar 2016 03:10:08 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201603040310.u243A80N091096@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Fri, 4 Mar 2016 03:10:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296377 - head/usr.sbin/ypldap X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 03:10:10 -0000 Author: araujo Date: Fri Mar 4 03:10:08 2016 New Revision: 296377 URL: https://svnweb.freebsd.org/changeset/base/296377 Log: Set argument encode/result decode call backs for 'maplist' and 'all'. Note: Listing a map is still not fully implemented. Obtained from: OpenBSD (r1.16, r1.17) Modified: head/usr.sbin/ypldap/yp.c Modified: head/usr.sbin/ypldap/yp.c ============================================================================== --- head/usr.sbin/ypldap/yp.c Fri Mar 4 02:14:32 2016 (r296376) +++ head/usr.sbin/ypldap/yp.c Fri Mar 4 03:10:08 2016 (r296377) @@ -216,6 +216,8 @@ yp_dispatch(struct svc_req *req, SVCXPRT return; case YPPROC_ALL: log_debug("ypproc_all"); + xdr_argument = (xdrproc_t) xdr_ypreq_nokey; + xdr_result = (xdrproc_t) xdr_ypresp_all; if (yp_check(req) == -1) return; cb = (void *)ypproc_all_2_svc; @@ -236,6 +238,8 @@ yp_dispatch(struct svc_req *req, SVCXPRT return; case YPPROC_MAPLIST: log_debug("ypproc_maplist"); + xdr_argument = (xdrproc_t) xdr_domainname; + xdr_result = (xdrproc_t) xdr_ypresp_maplist; if (yp_check(req) == -1) return; cb = (void *)ypproc_maplist_2_svc; From owner-svn-src-head@freebsd.org Thu Mar 3 18:08:59 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1DEFA94C42; Thu, 3 Mar 2016 18:08:59 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A313FEDD; Thu, 3 Mar 2016 18:08:59 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23I8wfg026673; Thu, 3 Mar 2016 18:08:58 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23I8ws0026671; Thu, 3 Mar 2016 18:08:58 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603031808.u23I8ws0026671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 3 Mar 2016 18:08:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296353 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 18:08:59 -0000 Author: bdrewery Date: Thu Mar 3 18:08:58 2016 New Revision: 296353 URL: https://svnweb.freebsd.org/changeset/base/296353 Log: DEBUG_FILES: Create the DEBUGFILEDIR if it doesn't exist on install. Currently the base.txz distribution does not get the BSD.debug.dist mtree extracted into it. So if you start from that and then try to build a 3rd-party application outside of buildworld it will by-default try installing the debug files into a missing directory if they are being installed into /usr/lib. Check for the existence before forcing the directory to be created rather than the older way of running a shell command with test -d || mkdir -p always. Reported by: HardenedBSD (https://github.com/HardenedBSD/secadm/issues/23) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D5411 Modified: head/share/mk/bsd.lib.mk head/share/mk/bsd.prog.mk Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Thu Mar 3 17:46:38 2016 (r296352) +++ head/share/mk/bsd.lib.mk Thu Mar 3 18:08:58 2016 (r296353) @@ -141,6 +141,8 @@ SHLIB_NAME_FULL=${SHLIB_NAME}.full DEBUGFILEDIR=${DEBUGDIR}${_SHLIBDIR} .else DEBUGFILEDIR=${_SHLIBDIR}/.debug +.endif +.if !exists(${DESTDIR}${DEBUGFILEDIR}) DEBUGMKDIR= .endif .else Modified: head/share/mk/bsd.prog.mk ============================================================================== --- head/share/mk/bsd.prog.mk Thu Mar 3 17:46:38 2016 (r296352) +++ head/share/mk/bsd.prog.mk Thu Mar 3 18:08:58 2016 (r296353) @@ -63,6 +63,8 @@ PROG_FULL=${PROG}.full DEBUGFILEDIR= ${DEBUGDIR}${BINDIR} .else DEBUGFILEDIR?= ${BINDIR}/.debug +.endif +.if !exists(${DESTDIR}${DEBUGFILEDIR}) DEBUGMKDIR= .endif .else From owner-svn-src-head@freebsd.org Thu Mar 3 20:06:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27609A93EAC; Thu, 3 Mar 2016 20:06:18 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 DF50E8CF; Thu, 3 Mar 2016 20:06:17 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23K6GFc062559; Thu, 3 Mar 2016 20:06:16 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23K6Grd062553; Thu, 3 Mar 2016 20:06:16 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201603032006.u23K6Grd062553@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Thu, 3 Mar 2016 20:06:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296356 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 20:06:18 -0000 Author: avos Date: Thu Mar 3 20:06:16 2016 New Revision: 296356 URL: https://svnweb.freebsd.org/changeset/base/296356 Log: zyd, run, ural: do not corrupt MAC address Do not use ic_macaddr as a storage for current BSSID; it may be reused in vap creation procedure; similar to r288619. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5513 Modified: head/sys/dev/usb/wlan/if_run.c head/sys/dev/usb/wlan/if_runvar.h head/sys/dev/usb/wlan/if_ural.c head/sys/dev/usb/wlan/if_uralvar.h head/sys/dev/usb/wlan/if_zyd.c head/sys/dev/usb/wlan/if_zydreg.h Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_run.c Thu Mar 3 20:06:16 2016 (r296356) @@ -2141,8 +2141,8 @@ run_newstate(struct ieee80211vap *vap, e run_set_txpreamble(sc); run_set_basicrates(sc); ni = ieee80211_ref_node(vap->iv_bss); - IEEE80211_ADDR_COPY(ic->ic_macaddr, ni->ni_bssid); - run_set_bssid(sc, ni->ni_bssid); + IEEE80211_ADDR_COPY(sc->sc_bssid, ni->ni_bssid); + run_set_bssid(sc, sc->sc_bssid); ieee80211_free_node(ni); run_enable_tsf_sync(sc); @@ -4811,8 +4811,7 @@ run_scan_end(struct ieee80211com *ic) RUN_LOCK(sc); run_enable_tsf_sync(sc); - /* XXX keep local copy */ - run_set_bssid(sc, ic->ic_macaddr); + run_set_bssid(sc, sc->sc_bssid); RUN_UNLOCK(sc); Modified: head/sys/dev/usb/wlan/if_runvar.h ============================================================================== --- head/sys/dev/usb/wlan/if_runvar.h Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_runvar.h Thu Mar 3 20:06:16 2016 (r296356) @@ -248,6 +248,8 @@ struct run_softc { uint8_t rvp_bmap; uint8_t sc_detached; + uint8_t sc_bssid[IEEE80211_ADDR_LEN]; + union { struct run_rx_radiotap_header th; uint8_t pad[64]; Modified: head/sys/dev/usb/wlan/if_ural.c ============================================================================== --- head/sys/dev/usb/wlan/if_ural.c Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_ural.c Thu Mar 3 20:06:16 2016 (r296356) @@ -706,8 +706,8 @@ ural_newstate(struct ieee80211vap *vap, ural_update_slot(sc); ural_set_txpreamble(sc); ural_set_basicrates(sc, ic->ic_bsschan); - IEEE80211_ADDR_COPY(ic->ic_macaddr, ni->ni_bssid); - ural_set_bssid(sc, ic->ic_macaddr); + IEEE80211_ADDR_COPY(sc->sc_bssid, ni->ni_bssid); + ural_set_bssid(sc, sc->sc_bssid); } if (vap->iv_opmode == IEEE80211_M_HOSTAP || @@ -1582,7 +1582,7 @@ ural_scan_end(struct ieee80211com *ic) RAL_LOCK(sc); ural_enable_tsf_sync(sc); - ural_set_bssid(sc, ic->ic_macaddr); + ural_set_bssid(sc, sc->sc_bssid); RAL_UNLOCK(sc); } Modified: head/sys/dev/usb/wlan/if_uralvar.h ============================================================================== --- head/sys/dev/usb/wlan/if_uralvar.h Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_uralvar.h Thu Mar 3 20:06:16 2016 (r296356) @@ -97,7 +97,7 @@ struct ural_softc { uint32_t asic_rev; uint8_t rf_rev; - struct usb_xfer *sc_xfer[URAL_N_TRANSFER]; + struct usb_xfer *sc_xfer[URAL_N_TRANSFER]; struct ural_tx_data tx_data[RAL_TX_LIST_COUNT]; ural_txdhead tx_q; @@ -113,6 +113,8 @@ struct ural_softc { u_int sc_detached:1, sc_running:1; + uint8_t sc_bssid[IEEE80211_ADDR_LEN]; + struct { uint8_t val; uint8_t reg; Modified: head/sys/dev/usb/wlan/if_zyd.c ============================================================================== --- head/sys/dev/usb/wlan/if_zyd.c Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_zyd.c Thu Mar 3 20:06:16 2016 (r296356) @@ -609,8 +609,8 @@ zyd_newstate(struct ieee80211vap *vap, e /* make data LED blink upon Tx */ zyd_write32_m(sc, sc->sc_fwbase + ZYD_FW_LINK_STATUS, 1); - IEEE80211_ADDR_COPY(ic->ic_macaddr, vap->iv_bss->ni_bssid); - zyd_set_bssid(sc, ic->ic_macaddr); + IEEE80211_ADDR_COPY(sc->sc_bssid, vap->iv_bss->ni_bssid); + zyd_set_bssid(sc, sc->sc_bssid); break; default: break; @@ -2860,7 +2860,7 @@ zyd_scan_end(struct ieee80211com *ic) ZYD_LOCK(sc); /* restore previous bssid */ - zyd_set_bssid(sc, ic->ic_macaddr); + zyd_set_bssid(sc, sc->sc_bssid); ZYD_UNLOCK(sc); } Modified: head/sys/dev/usb/wlan/if_zydreg.h ============================================================================== --- head/sys/dev/usb/wlan/if_zydreg.h Thu Mar 3 19:53:46 2016 (r296355) +++ head/sys/dev/usb/wlan/if_zydreg.h Thu Mar 3 20:06:16 2016 (r296356) @@ -1291,6 +1291,7 @@ struct zyd_softc { uint8_t sc_ofdm36_cal[14]; uint8_t sc_ofdm48_cal[14]; uint8_t sc_ofdm54_cal[14]; + uint8_t sc_bssid[IEEE80211_ADDR_LEN]; struct mtx sc_mtx; struct zyd_tx_data tx_data[ZYD_TX_LIST_CNT]; From owner-svn-src-head@freebsd.org Thu Mar 3 22:19:40 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8C7E0A9429A; Thu, 3 Mar 2016 22:19:40 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 64CCCDE7; Thu, 3 Mar 2016 22:19:40 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23MJd1O002305; Thu, 3 Mar 2016 22:19:39 GMT (envelope-from jmcneill@FreeBSD.org) Received: (from jmcneill@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23MJdS3002304; Thu, 3 Mar 2016 22:19:39 GMT (envelope-from jmcneill@FreeBSD.org) Message-Id: <201603032219.u23MJdS3002304@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmcneill set sender to jmcneill@FreeBSD.org using -f From: Jared McNeill Date: Thu, 3 Mar 2016 22:19:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296357 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 22:19:40 -0000 Author: jmcneill Date: Thu Mar 3 22:19:39 2016 New Revision: 296357 URL: https://svnweb.freebsd.org/changeset/base/296357 Log: Add support for Allwinner A31 RTC controller. Very similar to the A10 RTC controller with a few register offsets changed and a different location for the LOSC switch status. Submitted by: Emmanuel Vadot Reviewed by: jmcneill Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5500 Modified: head/sys/arm/allwinner/aw_rtc.c Modified: head/sys/arm/allwinner/aw_rtc.c ============================================================================== --- head/sys/arm/allwinner/aw_rtc.c Thu Mar 3 20:06:16 2016 (r296356) +++ head/sys/arm/allwinner/aw_rtc.c Thu Mar 3 22:19:39 2016 (r296357) @@ -48,14 +48,17 @@ __FBSDID("$FreeBSD$"); #include "clock_if.h" #define LOSC_CTRL_REG 0x00 -#define RTC_DATE_REG 0x04 -#define RTC_TIME_REG 0x08 +#define A10_RTC_DATE_REG 0x04 +#define A10_RTC_TIME_REG 0x08 +#define A31_LOSC_AUTO_SWT_STA 0x04 +#define A31_RTC_DATE_REG 0x10 +#define A31_RTC_TIME_REG 0x14 #define TIME_MASK 0x001f3f3f -#define LOSC_OSC_SRC 0x00000001 -#define LOSC_GSM 0x00000008 -#define LOSC_AUTO_SW_EN 0x00004000 +#define LOSC_OSC_SRC (1 << 0) +#define LOSC_GSM (1 << 3) +#define LOSC_AUTO_SW_EN (1 << 14) #define LOSC_MAGIC 0x16aa0000 #define LOSC_BUSY_MASK 0x00000380 @@ -92,15 +95,21 @@ __FBSDID("$FreeBSD$"); #define IS_LEAP_YEAR(y) \ (((y) % 400) == 0 || (((y) % 100) != 0 && ((y) % 4) == 0)) +#define A10_RTC 1 +#define A20_RTC 2 +#define A31_RTC 3 static struct ofw_compat_data compat_data[] = { - { "allwinner,sun4i-a10-rtc", true }, - { "allwinner,sun7i-a20-rtc", true }, - { NULL, false } + { "allwinner,sun4i-a10-rtc", A10_RTC }, + { "allwinner,sun7i-a20-rtc", A20_RTC }, + { "allwinner,sun6i-a31-rtc", A31_RTC }, + { NULL, 0 } }; struct aw_rtc_softc { - struct resource *res; + struct resource *res; + bus_size_t rtc_date; + bus_size_t rtc_time; }; static int aw_rtc_probe(device_t dev); @@ -151,6 +160,7 @@ static int aw_rtc_attach(device_t dev) { struct aw_rtc_softc *sc = device_get_softc(dev); + bus_size_t rtc_losc_sta; uint32_t val; int rid = 0; @@ -160,20 +170,34 @@ aw_rtc_attach(device_t dev) return (ENXIO); } + switch (ofw_bus_search_compatible(dev, compat_data)->ocd_data) { + case A10_RTC: + case A20_RTC: + sc->rtc_date = A10_RTC_DATE_REG; + sc->rtc_time = A10_RTC_TIME_REG; + rtc_losc_sta = LOSC_CTRL_REG; + break; + case A31_RTC: + sc->rtc_date = A31_RTC_DATE_REG; + sc->rtc_time = A31_RTC_TIME_REG; + rtc_losc_sta = A31_LOSC_AUTO_SWT_STA; + break; + } val = RTC_READ(sc, LOSC_CTRL_REG); - val &= ~LOSC_AUTO_SW_EN; + val |= LOSC_AUTO_SW_EN; val |= LOSC_MAGIC | LOSC_GSM | LOSC_OSC_SRC; RTC_WRITE(sc, LOSC_CTRL_REG, val); - + DELAY(100); - - val = RTC_READ(sc, LOSC_CTRL_REG); - if ((val & LOSC_OSC_SRC) == 0) { - bus_release_resource(dev, SYS_RES_MEMORY, rid, sc->res); - device_printf(dev, "set LOSC to external failed\n"); - return (ENXIO); + + if (bootverbose) { + val = RTC_READ(sc, rtc_losc_sta); + if ((val & LOSC_OSC_SRC) == 0) + device_printf(dev, "Using internal oscillator\n"); + else + device_printf(dev, "Using external oscillator\n"); } - + clock_register(dev, RTC_RES_US); return (0); @@ -193,11 +217,11 @@ aw_rtc_gettime(device_t dev, struct time struct clocktime ct; uint32_t rdate, rtime; - rdate = RTC_READ(sc, RTC_DATE_REG); - rtime = RTC_READ(sc, RTC_TIME_REG); + rdate = RTC_READ(sc, sc->rtc_date); + rtime = RTC_READ(sc, sc->rtc_time); if ((rtime & TIME_MASK) == 0) - rdate = RTC_READ(sc, RTC_DATE_REG); + rdate = RTC_READ(sc, sc->rtc_date); ct.sec = GET_SEC_VALUE(rtime); ct.min = GET_MIN_VALUE(rtime); @@ -239,7 +263,7 @@ aw_rtc_settime(device_t dev, struct time DELAY(1); } /* reset time register to avoid unexpected date increment */ - RTC_WRITE(sc, RTC_TIME_REG, 0); + RTC_WRITE(sc, sc->rtc_time, 0); rdate = SET_DAY_VALUE(ct.day) | SET_MON_VALUE(ct.mon) | SET_YEAR_VALUE(ct.year - YEAR_OFFSET) | @@ -255,7 +279,7 @@ aw_rtc_settime(device_t dev, struct time } DELAY(1); } - RTC_WRITE(sc, RTC_DATE_REG, rdate); + RTC_WRITE(sc, sc->rtc_date, rdate); for (clk = 0; RTC_READ(sc, LOSC_CTRL_REG) & LOSC_BUSY_MASK; clk++) { if (clk > RTC_TIMEOUT) { @@ -264,7 +288,7 @@ aw_rtc_settime(device_t dev, struct time } DELAY(1); } - RTC_WRITE(sc, RTC_TIME_REG, rtime); + RTC_WRITE(sc, sc->rtc_time, rtime); DELAY(RTC_TIMEOUT); From owner-svn-src-head@freebsd.org Fri Mar 4 02:14:34 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5252BA9461A; Fri, 4 Mar 2016 02:14:34 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 215BC1F9; Fri, 4 Mar 2016 02:14:34 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u242EXjt075304; Fri, 4 Mar 2016 02:14:33 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u242EXwu075303; Fri, 4 Mar 2016 02:14:33 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201603040214.u242EXwu075303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Fri, 4 Mar 2016 02:14:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296376 - head/usr.sbin/ypldap X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 02:14:34 -0000 Author: araujo Date: Fri Mar 4 02:14:32 2016 New Revision: 296376 URL: https://svnweb.freebsd.org/changeset/base/296376 Log: Implement the 'master' request. Obtained from: OpenBSD (r1.15) Modified: head/usr.sbin/ypldap/yp.c Modified: head/usr.sbin/ypldap/yp.c ============================================================================== --- head/usr.sbin/ypldap/yp.c Fri Mar 4 01:31:13 2016 (r296375) +++ head/usr.sbin/ypldap/yp.c Fri Mar 4 02:14:32 2016 (r296376) @@ -222,6 +222,8 @@ yp_dispatch(struct svc_req *req, SVCXPRT break; case YPPROC_MASTER: log_debug("ypproc_master"); + xdr_argument = (xdrproc_t) xdr_ypreq_nokey; + xdr_result = (xdrproc_t) xdr_ypresp_master; if (yp_check(req) == -1) return; cb = (void *)ypproc_master_2_svc; @@ -559,11 +561,18 @@ ypresp_master * ypproc_master_2_svc(ypreq_nokey *arg, struct svc_req *req) { static struct ypresp_master res; + static char master[YPMAXPEER + 1]; + bzero(&res, sizeof(res)); if (yp_valid_domain(arg->domain, (struct ypresp_val *)&res) == -1) return (&res); + + if (gethostname(master, sizeof(master)) == 0) { + res.peer = (peername)master; + res.stat = YP_TRUE; + } else + res.stat = YP_NOKEY; - res.stat = YP_YPERR; return (&res); } From owner-svn-src-head@freebsd.org Thu Mar 3 19:53:47 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF09EA93B31; Thu, 3 Mar 2016 19:53:47 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A2BA01B6; Thu, 3 Mar 2016 19:53:47 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23JrkbV059492; Thu, 3 Mar 2016 19:53:46 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23JrkD0059491; Thu, 3 Mar 2016 19:53:46 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201603031953.u23JrkD0059491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Thu, 3 Mar 2016 19:53:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296355 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 19:53:47 -0000 Author: avos Date: Thu Mar 3 19:53:46 2016 New Revision: 296355 URL: https://svnweb.freebsd.org/changeset/base/296355 Log: net80211: drop -> INIT state transition warning (STA mode only) This warning is irrelevant, since user can execute 'ifconfig wlan0 down' (or turn off card via rfkill switch) at any time. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5511 Modified: head/sys/net80211/ieee80211_sta.c Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Thu Mar 3 19:49:37 2016 (r296354) +++ head/sys/net80211/ieee80211_sta.c Thu Mar 3 19:53:46 2016 (r296355) @@ -251,7 +251,7 @@ sta_newstate(struct ieee80211vap *vap, e ieee80211_cancel_scan(vap); break; default: - goto invalid; + break; } if (ostate != IEEE80211_S_INIT) { /* NB: optimize INIT -> INIT case */ From owner-svn-src-head@freebsd.org Thu Mar 3 22:26:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49A0AA944C5; Thu, 3 Mar 2016 22:26:38 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 0B7C6B59; Thu, 3 Mar 2016 22:26:37 +0000 (UTC) (envelope-from jmcneill@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u23MQbvp005503; Thu, 3 Mar 2016 22:26:37 GMT (envelope-from jmcneill@FreeBSD.org) Received: (from jmcneill@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u23MQbfO005502; Thu, 3 Mar 2016 22:26:37 GMT (envelope-from jmcneill@FreeBSD.org) Message-Id: <201603032226.u23MQbfO005502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmcneill set sender to jmcneill@FreeBSD.org using -f From: Jared McNeill Date: Thu, 3 Mar 2016 22:26:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296365 - head/sys/dev/dwc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2016 22:26:38 -0000 Author: jmcneill Date: Thu Mar 3 22:26:36 2016 New Revision: 296365 URL: https://svnweb.freebsd.org/changeset/base/296365 Log: Add support for resetting the PHY via GPIO. Submitted by: Emmanuel Vadot Reviewed by: andrew, jmcneill Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5505 Modified: head/sys/dev/dwc/if_dwc.c Modified: head/sys/dev/dwc/if_dwc.c ============================================================================== --- head/sys/dev/dwc/if_dwc.c Thu Mar 3 22:25:28 2016 (r296364) +++ head/sys/dev/dwc/if_dwc.c Thu Mar 3 22:26:36 2016 (r296365) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -70,6 +71,7 @@ __FBSDID("$FreeBSD$"); #include #include "if_dwc_if.h" +#include "gpio_if.h" #include "miibus_if.h" #define READ4(_sc, _reg) \ @@ -1010,6 +1012,62 @@ dwc_get_hwaddr(struct dwc_softc *sc, uin return (0); } +#define GPIO_ACTIVE_LOW 1 + +static int +dwc_reset(device_t dev) +{ + pcell_t gpio_prop[4]; + pcell_t delay_prop[3]; + phandle_t node, gpio_node; + device_t gpio; + uint32_t pin, flags; + uint32_t pin_value; + + node = ofw_bus_get_node(dev); + if (OF_getencprop(node, "snps,reset-gpio", + gpio_prop, sizeof(gpio_prop)) <= 0) + return (0); + + if (OF_getencprop(node, "snps,reset-delays-us", + delay_prop, sizeof(delay_prop)) <= 0) { + device_printf(dev, + "Wrong property for snps,reset-delays-us"); + return (ENXIO); + } + + gpio_node = OF_node_from_xref(gpio_prop[0]); + if ((gpio = OF_device_from_xref(gpio_prop[0])) == NULL) { + device_printf(dev, + "Can't find gpio controller for phy reset\n"); + return (ENXIO); + } + + if (GPIO_MAP_GPIOS(gpio, node, gpio_node, + sizeof(gpio_prop) / sizeof(gpio_prop[0]) - 1, + gpio_prop + 1, &pin, &flags) != 0) { + device_printf(dev, "Can't map gpio for phy reset\n"); + return (ENXIO); + } + + pin_value = GPIO_PIN_LOW; + if (OF_hasprop(node, "snps,reset-active-low")) + pin_value = GPIO_PIN_HIGH; + + if (flags & GPIO_ACTIVE_LOW) + pin_value = !pin_value; + + GPIO_PIN_SETFLAGS(gpio, pin, GPIO_PIN_OUTPUT); + GPIO_PIN_SET(gpio, pin, pin_value); + DELAY(delay_prop[0]); + GPIO_PIN_SET(gpio, pin, !pin_value); + DELAY(delay_prop[1]); + GPIO_PIN_SET(gpio, pin, pin_value); + DELAY(delay_prop[2]); + + return (0); +} + static int dwc_probe(device_t dev) { @@ -1058,6 +1116,12 @@ dwc_attach(device_t dev) return (ENXIO); } + /* Reset the PHY if needed */ + if (dwc_reset(dev) != 0) { + device_printf(dev, "Can't reset the PHY\n"); + return (ENXIO); + } + /* Reset */ reg = READ4(sc, BUS_MODE); reg |= (BUS_MODE_SWR); From owner-svn-src-head@freebsd.org Fri Mar 4 05:36:54 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EB2B19D980E; Fri, 4 Mar 2016 05:36:54 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 BD0708DF; Fri, 4 Mar 2016 05:36:54 +0000 (UTC) (envelope-from sgalabov@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u245ar08036623; Fri, 4 Mar 2016 05:36:53 GMT (envelope-from sgalabov@FreeBSD.org) Received: (from sgalabov@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u245ar0j036622; Fri, 4 Mar 2016 05:36:53 GMT (envelope-from sgalabov@FreeBSD.org) Message-Id: <201603040536.u245ar0j036622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sgalabov set sender to sgalabov@FreeBSD.org using -f From: Stanislav Galabov Date: Fri, 4 Mar 2016 05:36:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296378 - head/sys/boot/common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 05:36:55 -0000 Author: sgalabov Date: Fri Mar 4 05:36:53 2016 New Revision: 296378 URL: https://svnweb.freebsd.org/changeset/base/296378 Log: Fix ubldr build failure on mipsn32 and mipsn32el targets. Approved by: adrian (mentor) Modified: head/sys/boot/common/Makefile.inc Modified: head/sys/boot/common/Makefile.inc ============================================================================== --- head/sys/boot/common/Makefile.inc Fri Mar 4 03:10:08 2016 (r296377) +++ head/sys/boot/common/Makefile.inc Fri Mar 4 05:36:53 2016 (r296378) @@ -20,7 +20,7 @@ SRCS+= load_elf64.c reloc_elf64.c SRCS+= load_elf64.c reloc_elf64.c .elif ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el" SRCS+= load_elf64.c reloc_elf64.c -.elif ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "mipsel" +.elif ${MACHINE} == "mips" SRCS+= load_elf32.c reloc_elf32.c .endif From owner-svn-src-head@freebsd.org Fri Mar 4 06:52:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A20A29D923C; Fri, 4 Mar 2016 06:52:13 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 6C700DC6; Fri, 4 Mar 2016 06:52:13 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u246qCdt061031; Fri, 4 Mar 2016 06:52:12 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u246qBZL061023; Fri, 4 Mar 2016 06:52:11 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603040652.u246qBZL061023@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 4 Mar 2016 06:52:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296379 - in head/sys/dev/hyperv: include netvsc vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 06:52:13 -0000 Author: sephe Date: Fri Mar 4 06:52:11 2016 New Revision: 296379 URL: https://svnweb.freebsd.org/changeset/base/296379 Log: hyperv/hn: Add multiple channel support, a.k.a. vRSS Each channel contains one RX ring and one TX ring. And we try to distribute the channels to different evenly. Note: Currently we don't have enough information to extract the RSS type and RSS hash value from the received packets. This greatly improves the TX/RX performance for 8 virtual CPU Hyper-V over 10Ge: it can max out 10Ge for TCP when multiple RX/TX rings are enabled. This almost doubles the TX/RX performance for locally connected Hyper-Vs: was 6Gbps w/ 128 TCP streams, now 11Gbps w/ multiple RX/TX rings enabled. It is not enabled by default; it will be switched on after more tests. Collaborated with: Hongjiang Zhang MFC after: 2 week Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis.h head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/include/hyperv.h Fri Mar 4 06:52:11 2016 (r296379) @@ -911,6 +911,8 @@ int hv_vmbus_channel_teardown_gpdal( struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); +void vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu); + /** * @brief Get physical address from virtual */ Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Fri Mar 4 06:52:11 2016 (r296379) @@ -57,7 +57,7 @@ MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper /* * Forward declarations */ -static void hv_nv_on_channel_callback(void *context); +static void hv_nv_on_channel_callback(void *xchan); static int hv_nv_init_send_buffer_with_net_vsp(struct hv_device *device); static int hv_nv_init_rx_buffer_with_net_vsp(struct hv_device *device); static int hv_nv_destroy_send_buffer(netvsc_dev *net_dev); @@ -662,6 +662,34 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne } /* + * Callback handler for subchannel offer + * @@param context new subchannel + */ +static void +hv_nv_subchan_callback(void *xchan) +{ + struct hv_vmbus_channel *chan = xchan; + netvsc_dev *net_dev; + uint16_t chn_index = chan->offer_msg.offer.sub_channel_index; + struct hv_device *device = chan->device; + hn_softc_t *sc = device_get_softc(device->device); + int ret; + + net_dev = sc->net_dev; + + if (chn_index >= net_dev->num_channel) { + /* Would this ever happen? */ + return; + } + netvsc_subchan_callback(sc, chan); + + chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); + ret = hv_vmbus_channel_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, + NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, + hv_nv_on_channel_callback, chan); +} + +/* * Net VSC on device add * * Callback when the device belonging to this driver is added @@ -693,6 +721,7 @@ hv_nv_on_device_add(struct hv_device *de free(chan->hv_chan_rdbuf, M_NETVSC); goto cleanup; } + chan->sc_creation_callback = hv_nv_subchan_callback; /* * Connect with the NetVsp @@ -770,7 +799,9 @@ hv_nv_on_send_completion(netvsc_dev *net || nvsp_msg_pkt->hdr.msg_type == nvsp_msg_1_type_send_rx_buf_complete || nvsp_msg_pkt->hdr.msg_type - == nvsp_msg_1_type_send_send_buf_complete) { + == nvsp_msg_1_type_send_send_buf_complete + || nvsp_msg_pkt->hdr.msg_type + == nvsp_msg5_type_subchannel) { /* Copy the response back */ memcpy(&net_dev->channel_init_packet, nvsp_msg_pkt, sizeof(nvsp_msg)); @@ -964,6 +995,46 @@ retry_send_cmplt: } /* + * Net VSC receiving vRSS send table from VSP + */ +static void +hv_nv_send_table(struct hv_device *device, hv_vm_packet_descriptor *pkt) +{ + netvsc_dev *net_dev; + nvsp_msg *nvsp_msg_pkt; + int i; + uint32_t count, *table; + + net_dev = hv_nv_get_inbound_net_device(device); + if (!net_dev) + return; + + nvsp_msg_pkt = + (nvsp_msg *)((unsigned long)pkt + (pkt->data_offset8 << 3)); + + if (nvsp_msg_pkt->hdr.msg_type != + nvsp_msg5_type_send_indirection_table) { + printf("Netvsc: !Warning! receive msg type not " + "send_indirection_table. type = %d\n", + nvsp_msg_pkt->hdr.msg_type); + return; + } + + count = nvsp_msg_pkt->msgs.vers_5_msgs.send_table.count; + if (count != VRSS_SEND_TABLE_SIZE) { + printf("Netvsc: Received wrong send table size: %u\n", count); + return; + } + + table = (uint32_t *) + ((unsigned long)&nvsp_msg_pkt->msgs.vers_5_msgs.send_table + + nvsp_msg_pkt->msgs.vers_5_msgs.send_table.offset); + + for (i = 0; i < count; i++) + net_dev->vrss_send_table[i] = table[i]; +} + +/* * Net VSC on channel callback */ static void @@ -999,6 +1070,9 @@ hv_nv_on_channel_callback(void *xchan) case HV_VMBUS_PACKET_TYPE_DATA_USING_TRANSFER_PAGES: hv_nv_on_receive(net_dev, device, chan, desc); break; + case HV_VMBUS_PACKET_TYPE_DATA_IN_BAND: + hv_nv_send_table(device, desc); + break; default: device_printf(dev, "hv_cb recv unknow type %d " Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 06:52:11 2016 (r296379) @@ -86,6 +86,92 @@ MALLOC_DECLARE(M_NETVSC); */ #define NVSP_MAX_PACKETS_PER_RECEIVE 375 +/* vRSS stuff */ +#define RNDIS_OBJECT_TYPE_RSS_CAPABILITIES 0x88 +#define RNDIS_OBJECT_TYPE_RSS_PARAMETERS 0x89 + +#define RNDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 2 +#define RNDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 2 + +struct rndis_obj_header { + uint8_t type; + uint8_t rev; + uint16_t size; +} __packed; + +/* rndis_recv_scale_cap/cap_flag */ +#define RNDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS 0x01000000 +#define RNDIS_RSS_CAPS_CLASSIFICATION_AT_ISR 0x02000000 +#define RNDIS_RSS_CAPS_CLASSIFICATION_AT_DPC 0x04000000 +#define RNDIS_RSS_CAPS_USING_MSI_X 0x08000000 +#define RNDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS 0x10000000 +#define RNDIS_RSS_CAPS_SUPPORTS_MSI_X 0x20000000 +#define RNDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4 0x00000100 +#define RNDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6 0x00000200 +#define RNDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX 0x00000400 + +/* RNDIS_RECEIVE_SCALE_CAPABILITIES */ +struct rndis_recv_scale_cap { + struct rndis_obj_header hdr; + uint32_t cap_flag; + uint32_t num_int_msg; + uint32_t num_recv_que; + uint16_t num_indirect_tabent; +} __packed; + +/* rndis_recv_scale_param flags */ +#define RNDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED 0x0001 +#define RNDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED 0x0002 +#define RNDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED 0x0004 +#define RNDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED 0x0008 +#define RNDIS_RSS_PARAM_FLAG_DISABLE_RSS 0x0010 + +/* Hash info bits */ +#define RNDIS_HASH_FUNC_TOEPLITZ 0x00000001 +#define RNDIS_HASH_IPV4 0x00000100 +#define RNDIS_HASH_TCP_IPV4 0x00000200 +#define RNDIS_HASH_IPV6 0x00000400 +#define RNDIS_HASH_IPV6_EX 0x00000800 +#define RNDIS_HASH_TCP_IPV6 0x00001000 +#define RNDIS_HASH_TCP_IPV6_EX 0x00002000 + +#define RNDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 (128 * 4) +#define RNDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 40 + +#define ITAB_NUM 128 +#define HASH_KEYLEN RNDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2 + +/* RNDIS_RECEIVE_SCALE_PARAMETERS */ +typedef struct rndis_recv_scale_param_ { + struct rndis_obj_header hdr; + + /* Qualifies the rest of the information */ + uint16_t flag; + + /* The base CPU number to do receive processing. not used */ + uint16_t base_cpu_number; + + /* This describes the hash function and type being enabled */ + uint32_t hashinfo; + + /* The size of indirection table array */ + uint16_t indirect_tabsize; + + /* The offset of the indirection table from the beginning of this + * structure + */ + uint32_t indirect_taboffset; + + /* The size of the hash secret key */ + uint16_t hashkey_size; + + /* The offset of the secret key from the beginning of this structure */ + uint32_t hashkey_offset; + + uint32_t processor_masks_offset; + uint32_t num_processor_masks; + uint32_t processor_masks_entry_size; +} rndis_recv_scale_param; typedef enum nvsp_msg_type_ { nvsp_msg_type_none = 0, @@ -146,6 +232,27 @@ typedef enum nvsp_msg_type_ { nvsp_msg_2_type_alloc_chimney_handle, nvsp_msg_2_type_alloc_chimney_handle_complete, + + nvsp_msg2_max = nvsp_msg_2_type_alloc_chimney_handle_complete, + + /* + * Version 4 Messages + */ + nvsp_msg4_type_send_vf_association, + nvsp_msg4_type_switch_data_path, + nvsp_msg4_type_uplink_connect_state_deprecated, + + nvsp_msg4_max = nvsp_msg4_type_uplink_connect_state_deprecated, + + /* + * Version 5 Messages + */ + nvsp_msg5_type_oid_query_ex, + nvsp_msg5_type_oid_query_ex_comp, + nvsp_msg5_type_subchannel, + nvsp_msg5_type_send_indirection_table, + + nvsp_msg5_max = nvsp_msg5_type_send_indirection_table, } nvsp_msg_type; typedef enum nvsp_status_ { @@ -793,6 +900,39 @@ typedef struct nvsp_2_msg_send_vmq_rndis uint32_t status; } __packed nvsp_2_msg_send_vmq_rndis_pkt_complete; +/* + * Version 5 messages + */ +enum nvsp_subchannel_operation { + NVSP_SUBCHANNEL_NONE = 0, + NVSP_SUBCHANNE_ALLOCATE, + NVSP_SUBCHANNE_MAX +}; + +typedef struct nvsp_5_subchannel_request_ +{ + uint32_t op; + uint32_t num_subchannels; +} __packed nvsp_5_subchannel_request; + +typedef struct nvsp_5_subchannel_complete_ +{ + uint32_t status; + /* Actual number of subchannels allocated */ + uint32_t num_subchannels; +} __packed nvsp_5_subchannel_complete; + +typedef struct nvsp_5_send_indirect_table_ +{ + /* The number of entries in the send indirection table */ + uint32_t count; + /* + * The offset of the send indireciton table from top of + * this struct. The send indirection table tells which channel + * to put the send traffic on. Each entry is a channel number. + */ + uint32_t offset; +} __packed nvsp_5_send_indirect_table; typedef union nvsp_1_msg_uber_ { nvsp_1_msg_send_ndis_version send_ndis_vers; @@ -838,11 +978,18 @@ typedef union nvsp_2_msg_uber_ { nvsp_2_msg_alloc_chimney_handle_complete alloc_chimney_handle_complete; } __packed nvsp_2_msg_uber; +typedef union nvsp_5_msg_uber_ +{ + nvsp_5_subchannel_request subchannel_request; + nvsp_5_subchannel_complete subchn_complete; + nvsp_5_send_indirect_table send_table; +} __packed nvsp_5_msg_uber; typedef union nvsp_all_msgs_ { nvsp_msg_init_uber init_msgs; nvsp_1_msg_uber vers_1_msgs; nvsp_2_msg_uber vers_2_msgs; + nvsp_5_msg_uber vers_5_msgs; } __packed nvsp_all_msgs; /* @@ -883,6 +1030,7 @@ typedef struct nvsp_msg_ { #define NETVSC_MAX_CONFIGURABLE_MTU (9 * 1024) #define NETVSC_PACKET_SIZE PAGE_SIZE +#define VRSS_SEND_TABLE_SIZE 16 /* * Data types @@ -923,6 +1071,10 @@ typedef struct netvsc_dev_ { hv_bool_uint8_t destroy; /* Negotiated NVSP version */ uint32_t nvsp_version; + + uint32_t num_channel; + + uint32_t vrss_send_table[VRSS_SEND_TABLE_SIZE]; } netvsc_dev; @@ -1010,6 +1162,10 @@ struct hn_rx_ring { u_long hn_csum_trusted; u_long hn_lro_tried; u_long hn_small_pkts; + u_long hn_pkts; + + /* Rarely used stuffs */ + struct sysctl_oid *hn_rx_sysctl_tree; } __aligned(CACHE_LINE_SIZE); #define HN_TRUST_HCSUM_IP 0x0001 @@ -1084,9 +1240,12 @@ typedef struct hn_softc { int hn_tx_ring_cnt; int hn_tx_ring_inuse; struct hn_tx_ring *hn_tx_ring; + + int hn_cpu; int hn_tx_chimney_max; struct taskqueue *hn_tx_taskq; struct sysctl_oid *hn_tx_sysctl_tree; + struct sysctl_oid *hn_rx_sysctl_tree; } hn_softc_t; /* Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 06:52:11 2016 (r296379) @@ -287,6 +287,8 @@ static int hn_single_tx_ring = 1; SYSCTL_INT(_hw_hn, OID_AUTO, single_tx_ring, CTLFLAG_RDTUN, &hn_single_tx_ring, 0, "Use one TX ring"); +static u_int hn_cpu_index; + /* * Forward declarations */ @@ -438,6 +440,7 @@ netvsc_attach(device_t dev) ring_cnt = hn_ring_cnt; if (ring_cnt <= 0 || ring_cnt >= mp_ncpus) ring_cnt = mp_ncpus; + sc->hn_cpu = atomic_fetchadd_int(&hn_cpu_index, ring_cnt) % mp_ncpus; tx_ring_cnt = ring_cnt; if (hn_single_tx_ring || hn_use_if_start) { @@ -461,6 +464,7 @@ netvsc_attach(device_t dev) chan->hv_chan_rxr = &sc->hn_rx_ring[0]; chan->hv_chan_txr = &sc->hn_tx_ring[0]; sc->hn_tx_ring[0].hn_chan = chan; + vmbus_channel_cpu_set(chan, sc->hn_cpu); if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_dunit = unit; @@ -502,10 +506,17 @@ netvsc_attach(device_t dev) error = hv_rf_on_device_add(device_ctx, &device_info, ring_cnt); if (error) goto failed; + KASSERT(sc->net_dev->num_channel <= ring_cnt, + ("invalid channel count %u, should be less than %d", + sc->net_dev->num_channel, ring_cnt)); - /* TODO: vRSS */ - sc->hn_tx_ring_inuse = 1; - sc->hn_rx_ring_inuse = 1; + /* + * Set # of TX/RX rings that could be used according to + * the # of channels that host offered. + */ + if (sc->hn_tx_ring_inuse > sc->net_dev->num_channel) + sc->hn_tx_ring_inuse = sc->net_dev->num_channel; + sc->hn_rx_ring_inuse = sc->net_dev->num_channel; device_printf(dev, "%d TX ring, %d RX ring\n", sc->hn_tx_ring_inuse, sc->hn_rx_ring_inuse); @@ -1337,6 +1348,7 @@ skip: */ if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); + rxr->hn_pkts++; if ((ifp->if_capenable & IFCAP_LRO) && do_lro) { #if defined(INET) || defined(INET6) @@ -2074,6 +2086,13 @@ hn_create_rx_data(struct hn_softc *sc, i #endif #endif /* INET || INET6 */ + ctx = device_get_sysctl_ctx(dev); + child = SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); + + /* Create dev.hn.UNIT.rx sysctl tree */ + sc->hn_rx_sysctl_tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "rx", + CTLFLAG_RD, 0, ""); + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { struct hn_rx_ring *rxr = &sc->hn_rx_ring[i]; @@ -2101,10 +2120,27 @@ hn_create_rx_data(struct hn_softc *sc, i rxr->hn_lro.lro_ackcnt_lim = HN_LRO_ACKCNT_DEF; #endif #endif /* INET || INET6 */ - } - ctx = device_get_sysctl_ctx(dev); - child = SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); + if (sc->hn_rx_sysctl_tree != NULL) { + char name[16]; + + /* + * Create per RX ring sysctl tree: + * dev.hn.UNIT.rx.RINGID + */ + snprintf(name, sizeof(name), "%d", i); + rxr->hn_rx_sysctl_tree = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(sc->hn_rx_sysctl_tree), + OID_AUTO, name, CTLFLAG_RD, 0, ""); + + if (rxr->hn_rx_sysctl_tree != NULL) { + SYSCTL_ADD_ULONG(ctx, + SYSCTL_CHILDREN(rxr->hn_rx_sysctl_tree), + OID_AUTO, "packets", CTLFLAG_RW, + &rxr->hn_pkts, "# of packets received"); + } + } + } SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_queued", CTLTYPE_U64 | CTLFLAG_RW, sc, @@ -2724,6 +2760,32 @@ hn_xmit_txeof_taskfunc(void *xtxr, int p mtx_unlock(&txr->hn_tx_lock); } +void +netvsc_subchan_callback(struct hn_softc *sc, struct hv_vmbus_channel *chan) +{ + int idx; + + KASSERT(!HV_VMBUS_CHAN_ISPRIMARY(chan), + ("subchannel callback on primary channel")); + + idx = chan->offer_msg.offer.sub_channel_index; + KASSERT(idx > 0 && idx < sc->hn_rx_ring_inuse, + ("invalid channel index %d, should > 0 && < %d", + idx, sc->hn_rx_ring_inuse)); + vmbus_channel_cpu_set(chan, (sc->hn_cpu + idx) % mp_ncpus); + + chan->hv_chan_rxr = &sc->hn_rx_ring[idx]; + if_printf(sc->hn_ifp, "link RX ring %d to channel%u\n", + idx, chan->offer_msg.child_rel_id); + + if (idx < sc->hn_tx_ring_inuse) { + chan->hv_chan_txr = &sc->hn_tx_ring[idx]; + sc->hn_tx_ring[idx].hn_chan = chan; + if_printf(sc->hn_ifp, "link TX ring %d to channel%u\n", + idx, chan->offer_msg.child_rel_id); + } +} + static void hn_tx_taskq_create(void *arg __unused) { Modified: head/sys/dev/hyperv/netvsc/hv_rndis.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis.h Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_rndis.h Fri Mar 4 06:52:11 2016 (r296379) @@ -167,6 +167,14 @@ #define RNDIS_OID_GEN_MACHINE_NAME 0x0001021A #define RNDIS_OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B +/* + * For receive side scale + */ +/* Query only */ +#define RNDIS_OID_GEN_RSS_CAPABILITIES 0x00010203 +/* Query and set */ +#define RNDIS_OID_GEN_RSS_PARAMETERS 0x00010204 + #define RNDIS_OID_GEN_XMIT_OK 0x00020101 #define RNDIS_OID_GEN_RCV_OK 0x00020102 #define RNDIS_OID_GEN_XMIT_ERROR 0x00020103 @@ -1060,6 +1068,8 @@ struct hv_vmbus_channel; int netvsc_recv(struct hv_vmbus_channel *chan, netvsc_packet *packet, rndis_tcp_ip_csum_info *csum_info); void netvsc_channel_rollup(struct hv_vmbus_channel *chan); +void netvsc_subchan_callback(struct hn_softc *sc, + struct hv_vmbus_channel *chan); void* hv_set_rppi_data(rndis_msg *rndis_mesg, uint32_t rppi_size, Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Fri Mar 4 06:52:11 2016 (r296379) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "hv_net_vsc.h" #include "hv_rndis.h" #include "hv_rndis_filter.h" @@ -223,6 +224,8 @@ hv_rf_send_request(rndis_device *device, { int ret; netvsc_packet *packet; + netvsc_dev *net_dev = device->net_dev; + int send_buf_section_idx; /* Set up the packet to send it */ packet = &request->pkt; @@ -237,6 +240,20 @@ hv_rf_send_request(rndis_device *device, packet->page_buffers[0].offset = (unsigned long)&request->request_msg & (PAGE_SIZE - 1); + if (packet->page_buffers[0].offset + + packet->page_buffers[0].length > PAGE_SIZE) { + packet->page_buf_count = 2; + packet->page_buffers[0].length = + PAGE_SIZE - packet->page_buffers[0].offset; + packet->page_buffers[1].pfn = + hv_get_phys_addr((char*)&request->request_msg + + packet->page_buffers[0].length) >> PAGE_SHIFT; + packet->page_buffers[1].offset = 0; + packet->page_buffers[1].length = + request->request_msg.msg_len - + packet->page_buffers[0].length; + } + packet->compl.send.send_completion_context = request; /* packet */ if (message_type != REMOTE_NDIS_HALT_MSG) { packet->compl.send.on_send_completion = @@ -246,10 +263,25 @@ hv_rf_send_request(rndis_device *device, hv_rf_on_send_request_halt_completion; } packet->compl.send.send_completion_tid = (unsigned long)device; - packet->send_buf_section_idx = - NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX; + if (packet->tot_data_buf_len < net_dev->send_section_size) { + send_buf_section_idx = hv_nv_get_next_send_section(net_dev); + if (send_buf_section_idx != + NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX) { + char *dest = ((char *)net_dev->send_buf + + send_buf_section_idx * net_dev->send_section_size); + + memcpy(dest, &request->request_msg, request->request_msg.msg_len); + packet->send_buf_section_idx = send_buf_section_idx; + packet->send_buf_section_size = packet->tot_data_buf_len; + packet->page_buf_count = 0; + goto sendit; + } + /* Failed to allocate chimney send buffer; move on */ + } + packet->send_buf_section_idx = NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX; packet->send_buf_section_size = 0; +sendit: ret = hv_nv_on_send(device->net_dev->dev->channel, packet); return (ret); @@ -527,6 +559,19 @@ hv_rf_query_device(rndis_device *device, query->info_buffer_length = 0; query->device_vc_handle = 0; + if (oid == RNDIS_OID_GEN_RSS_CAPABILITIES) { + struct rndis_recv_scale_cap *cap; + + request->request_msg.msg_len += + sizeof(struct rndis_recv_scale_cap); + query->info_buffer_length = sizeof(struct rndis_recv_scale_cap); + cap = (struct rndis_recv_scale_cap *)((unsigned long)query + + query->info_buffer_offset); + cap->hdr.type = RNDIS_OBJECT_TYPE_RSS_CAPABILITIES; + cap->hdr.rev = RNDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2; + cap->hdr.size = sizeof(struct rndis_recv_scale_cap); + } + ret = hv_rf_send_request(device, request, REMOTE_NDIS_QUERY_MSG); if (ret != 0) { /* Fixme: printf added */ @@ -581,6 +626,114 @@ hv_rf_query_device_link_status(rndis_dev RNDIS_OID_GEN_MEDIA_CONNECT_STATUS, &device->link_status, &size)); } +static uint8_t netvsc_hash_key[HASH_KEYLEN] = { + 0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2, + 0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0, + 0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4, + 0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c, + 0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa +}; + +/* + * RNDIS set vRSS parameters + */ +static int +hv_rf_set_rss_param(rndis_device *device, int num_queue) +{ + rndis_request *request; + rndis_set_request *set; + rndis_set_complete *set_complete; + rndis_recv_scale_param *rssp; + uint32_t extlen = sizeof(rndis_recv_scale_param) + + (4 * ITAB_NUM) + HASH_KEYLEN; + uint32_t *itab, status; + uint8_t *keyp; + int i, ret; + + + request = hv_rndis_request(device, REMOTE_NDIS_SET_MSG, + RNDIS_MESSAGE_SIZE(rndis_set_request) + extlen); + if (request == NULL) { + if (bootverbose) + printf("Netvsc: No memory to set vRSS parameters.\n"); + ret = -1; + goto cleanup; + } + + set = &request->request_msg.msg.set_request; + set->oid = RNDIS_OID_GEN_RSS_PARAMETERS; + set->info_buffer_length = extlen; + set->info_buffer_offset = sizeof(rndis_set_request); + set->device_vc_handle = 0; + + /* Fill out the rssp parameter structure */ + rssp = (rndis_recv_scale_param *)(set + 1); + rssp->hdr.type = RNDIS_OBJECT_TYPE_RSS_PARAMETERS; + rssp->hdr.rev = RNDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2; + rssp->hdr.size = sizeof(rndis_recv_scale_param); + rssp->flag = 0; + rssp->hashinfo = RNDIS_HASH_FUNC_TOEPLITZ | RNDIS_HASH_IPV4 | + RNDIS_HASH_TCP_IPV4 | RNDIS_HASH_IPV6 | RNDIS_HASH_TCP_IPV6; + rssp->indirect_tabsize = 4 * ITAB_NUM; + rssp->indirect_taboffset = sizeof(rndis_recv_scale_param); + rssp->hashkey_size = HASH_KEYLEN; + rssp->hashkey_offset = rssp->indirect_taboffset + + rssp->indirect_tabsize; + + /* Set indirection table entries */ + itab = (uint32_t *)(rssp + 1); + for (i = 0; i < ITAB_NUM; i++) + itab[i] = i % num_queue; + + /* Set hash key values */ + keyp = (uint8_t *)((unsigned long)rssp + rssp->hashkey_offset); + for (i = 0; i < HASH_KEYLEN; i++) + keyp[i] = netvsc_hash_key[i]; + + ret = hv_rf_send_request(device, request, REMOTE_NDIS_SET_MSG); + if (ret != 0) { + goto cleanup; + } + + /* + * Wait for the response from the host. Another thread will signal + * us when the response has arrived. In the failure case, + * sema_timedwait() returns a non-zero status after waiting 5 seconds. + */ + ret = sema_timedwait(&request->wait_sema, 5 * hz); + if (ret == 0) { + /* Response received, check status */ + set_complete = &request->response_msg.msg.set_complete; + status = set_complete->status; + if (status != RNDIS_STATUS_SUCCESS) { + /* Bad response status, return error */ + if (bootverbose) + printf("Netvsc: Failed to set vRSS " + "parameters.\n"); + ret = -2; + } else { + if (bootverbose) + printf("Netvsc: Successfully set vRSS " + "parameters.\n"); + } + } else { + /* + * We cannot deallocate the request since we may still + * receive a send completion for it. + */ + printf("Netvsc: vRSS set timeout, id = %u, ret = %d\n", + request->request_msg.msg.init_request.request_id, ret); + goto exit; + } + +cleanup: + if (request != NULL) { + hv_put_rndis_request(device, request); + } +exit: + return (ret); +} + /* * RNDIS filter set packet filter * Sends an rndis request with the new filter, then waits for a response @@ -816,12 +969,15 @@ hv_rf_close_device(rndis_device *device) */ int hv_rf_on_device_add(struct hv_device *device, void *additl_info, - int nchan __unused) + int nchan) { int ret; netvsc_dev *net_dev; rndis_device *rndis_dev; + nvsp_msg *init_pkt; rndis_offload_params offloads; + struct rndis_recv_scale_cap rsscaps; + uint32_t rsscaps_size = sizeof(struct rndis_recv_scale_cap); netvsc_device_info *dev_info = (netvsc_device_info *)additl_info; device_t dev = device->device; @@ -887,6 +1043,67 @@ hv_rf_on_device_add(struct hv_device *de dev_info->link_state = rndis_dev->link_status; + net_dev->num_channel = 1; + if (net_dev->nvsp_version < NVSP_PROTOCOL_VERSION_5 || nchan == 1) + return (0); + + memset(&rsscaps, 0, rsscaps_size); + ret = hv_rf_query_device(rndis_dev, + RNDIS_OID_GEN_RSS_CAPABILITIES, + &rsscaps, &rsscaps_size); + if ((ret != 0) || (rsscaps.num_recv_que < 2)) { + device_printf(dev, "hv_rf_query_device failed or " + "rsscaps.num_recv_que < 2 \n"); + goto out; + } + device_printf(dev, "channel, offered %u, requested %d\n", + rsscaps.num_recv_que, nchan); + if (nchan > rsscaps.num_recv_que) + nchan = rsscaps.num_recv_que; + net_dev->num_channel = nchan; + + if (net_dev->num_channel == 1) { + device_printf(dev, "net_dev->num_channel == 1 under VRSS\n"); + goto out; + } + + /* request host to create sub channels */ + init_pkt = &net_dev->channel_init_packet; + memset(init_pkt, 0, sizeof(nvsp_msg)); + + init_pkt->hdr.msg_type = nvsp_msg5_type_subchannel; + init_pkt->msgs.vers_5_msgs.subchannel_request.op = + NVSP_SUBCHANNE_ALLOCATE; + init_pkt->msgs.vers_5_msgs.subchannel_request.num_subchannels = + net_dev->num_channel - 1; + + ret = hv_vmbus_channel_send_packet(device->channel, init_pkt, + sizeof(nvsp_msg), (uint64_t)(uintptr_t)init_pkt, + HV_VMBUS_PACKET_TYPE_DATA_IN_BAND, + HV_VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + if (ret != 0) { + device_printf(dev, "Fail to allocate subchannel\n"); + goto out; + } + + sema_wait(&net_dev->channel_init_sema); + + if (init_pkt->msgs.vers_5_msgs.subchn_complete.status != + nvsp_status_success) { + ret = ENODEV; + device_printf(dev, "sub channel complete error\n"); + goto out; + } + + net_dev->num_channel = 1 + + init_pkt->msgs.vers_5_msgs.subchn_complete.num_subchannels; + + ret = hv_rf_set_rss_param(rndis_dev, net_dev->num_channel); + +out: + if (ret) + net_dev->num_channel = 1; + return (ret); } Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Fri Mar 4 06:52:11 2016 (r296379) @@ -63,17 +63,32 @@ typedef struct rndis_request_ { struct sema wait_sema; /* - * Fixme: We assumed a fixed size response here. If we do ever - * need to handle a bigger response, we can either define a max - * response message or add a response buffer variable above this field + * The max response size is sizeof(rndis_msg) + PAGE_SIZE. + * + * XXX + * This is ugly and should be cleaned up once we busdma-fy + * RNDIS request bits. */ rndis_msg response_msg; + uint8_t buf_resp[PAGE_SIZE]; /* Simplify allocation by having a netvsc packet inline */ netvsc_packet pkt; hv_vmbus_page_buffer buffer; - /* Fixme: We assumed a fixed size request here. */ + + /* + * The max request size is sizeof(rndis_msg) + PAGE_SIZE. + * + * NOTE: + * This is required for the large request like RSS settings. + * + * XXX + * This is ugly and should be cleaned up once we busdma-fy + * RNDIS request bits. + */ rndis_msg request_msg; + uint8_t buf_req[PAGE_SIZE]; + /* Fixme: Poor man's semaphore. */ uint32_t halt_complete_flag; } rndis_request; Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Fri Mar 4 05:36:53 2016 (r296378) +++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c Fri Mar 4 06:52:11 2016 (r296379) @@ -274,7 +274,7 @@ vmbus_channel_process_offer(hv_vmbus_cha } } -static void +void vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu) { KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpu %d", cpu)); From owner-svn-src-head@freebsd.org Fri Mar 4 07:00:39 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94ECB9D9652; Fri, 4 Mar 2016 07:00:39 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 59352120C; Fri, 4 Mar 2016 07:00:39 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2470cFA061487; Fri, 4 Mar 2016 07:00:38 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2470c7j061483; Fri, 4 Mar 2016 07:00:38 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603040700.u2470c7j061483@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 4 Mar 2016 07:00:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296380 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 07:00:39 -0000 Author: sephe Date: Fri Mar 4 07:00:37 2016 New Revision: 296380 URL: https://svnweb.freebsd.org/changeset/base/296380 Log: hyperv/hn: Pass channel to send done callbacks. Mainly to strigent the data packet send done check. MFC after: 2 weeks Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Fri Mar 4 06:52:11 2016 (r296379) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Fri Mar 4 07:00:37 2016 (r296380) @@ -64,7 +64,7 @@ static int hv_nv_destroy_send_buffer(ne static int hv_nv_destroy_rx_buffer(netvsc_dev *net_dev); static int hv_nv_connect_to_vsp(struct hv_device *device); static void hv_nv_on_send_completion(netvsc_dev *net_dev, - struct hv_device *device, hv_vm_packet_descriptor *pkt); + struct hv_device *device, struct hv_vmbus_channel *, hv_vm_packet_descriptor *pkt); static void hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, uint64_t tid, uint32_t status); static void hv_nv_on_receive(netvsc_dev *net_dev, @@ -787,7 +787,8 @@ hv_nv_on_device_remove(struct hv_device */ static void hv_nv_on_send_completion(netvsc_dev *net_dev, - struct hv_device *device, hv_vm_packet_descriptor *pkt) + struct hv_device *device, struct hv_vmbus_channel *chan, + hv_vm_packet_descriptor *pkt) { nvsp_msg *nvsp_msg_pkt; netvsc_packet *net_vsc_pkt; @@ -838,7 +839,7 @@ hv_nv_on_send_completion(netvsc_dev *net } /* Notify the layer above us */ - net_vsc_pkt->compl.send.on_send_completion( + net_vsc_pkt->compl.send.on_send_completion(chan, net_vsc_pkt->compl.send.send_completion_context); } @@ -1065,7 +1066,8 @@ hv_nv_on_channel_callback(void *xchan) desc = (hv_vm_packet_descriptor *)buffer; switch (desc->type) { case HV_VMBUS_PACKET_TYPE_COMPLETION: - hv_nv_on_send_completion(net_dev, device, desc); + hv_nv_on_send_completion(net_dev, device, + chan, desc); break; case HV_VMBUS_PACKET_TYPE_DATA_USING_TRANSFER_PAGES: hv_nv_on_receive(net_dev, device, chan, desc); Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 06:52:11 2016 (r296379) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 07:00:37 2016 (r296380) @@ -1077,8 +1077,9 @@ typedef struct netvsc_dev_ { uint32_t vrss_send_table[VRSS_SEND_TABLE_SIZE]; } netvsc_dev; +struct hv_vmbus_channel; -typedef void (*pfn_on_send_rx_completion)(void *); +typedef void (*pfn_on_send_rx_completion)(struct hv_vmbus_channel *, void *); #define NETVSC_DEVICE_RING_BUFFER_SIZE (128 * PAGE_SIZE) #define NETVSC_PACKET_MAXPAGE 32 @@ -1172,8 +1173,6 @@ struct hn_rx_ring { #define HN_TRUST_HCSUM_TCP 0x0002 #define HN_TRUST_HCSUM_UDP 0x0004 -struct hv_vmbus_channel; - struct hn_tx_ring { #ifndef HN_USE_TXDESC_BUFRING struct mtx hn_txlist_spin; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 06:52:11 2016 (r296379) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 07:00:37 2016 (r296380) @@ -721,7 +721,7 @@ hn_txdesc_hold(struct hn_txdesc *txd) } static void -hn_tx_done(void *xpkt) +hn_tx_done(struct hv_vmbus_channel *chan, void *xpkt) { netvsc_packet *packet = xpkt; struct hn_txdesc *txd; @@ -731,6 +731,11 @@ hn_tx_done(void *xpkt) packet->compl.send.send_completion_tid; txr = txd->txr; + KASSERT(txr->hn_chan == chan, + ("channel mismatch, on channel%u, should be channel%u", + chan->offer_msg.offer.sub_channel_index, + txr->hn_chan->offer_msg.offer.sub_channel_index)); + txr->hn_has_txeof = 1; hn_txdesc_put(txr, txd); } Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Fri Mar 4 06:52:11 2016 (r296379) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Fri Mar 4 07:00:37 2016 (r296380) @@ -69,8 +69,8 @@ static int hv_rf_set_packet_filter(rndi static int hv_rf_init_device(rndis_device *device); static int hv_rf_open_device(rndis_device *device); static int hv_rf_close_device(rndis_device *device); -static void hv_rf_on_send_request_completion(void *context); -static void hv_rf_on_send_request_halt_completion(void *context); +static void hv_rf_on_send_request_completion(struct hv_vmbus_channel *, void *context); +static void hv_rf_on_send_request_halt_completion(struct hv_vmbus_channel *, void *context); int hv_rf_send_offload_request(struct hv_device *device, rndis_offload_params *offloads); @@ -1158,7 +1158,8 @@ hv_rf_on_close(struct hv_device *device) * RNDIS filter on send request completion callback */ static void -hv_rf_on_send_request_completion(void *context) +hv_rf_on_send_request_completion(struct hv_vmbus_channel *chan __unused, + void *context __unused) { } @@ -1166,7 +1167,8 @@ hv_rf_on_send_request_completion(void *c * RNDIS filter on send request (halt only) completion callback */ static void -hv_rf_on_send_request_halt_completion(void *context) +hv_rf_on_send_request_halt_completion(struct hv_vmbus_channel *chan __unused, + void *context) { rndis_request *request = context; From owner-svn-src-head@freebsd.org Fri Mar 4 07:07:43 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B40E99D9960; Fri, 4 Mar 2016 07:07:43 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 836D0176D; Fri, 4 Mar 2016 07:07:43 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2477gHI064329; Fri, 4 Mar 2016 07:07:42 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2477gJW064327; Fri, 4 Mar 2016 07:07:42 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201603040707.u2477gJW064327@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 4 Mar 2016 07:07:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296381 - head/sys/dev/hyperv/netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 07:07:43 -0000 Author: sephe Date: Fri Mar 4 07:07:42 2016 New Revision: 296381 URL: https://svnweb.freebsd.org/changeset/base/296381 Log: hyperv/hn: Add per-TX ring stats for # of transmitted packets MFC after: 2 weeks Sponsored by: Microsoft OSTC Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 07:00:37 2016 (r296380) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Fri Mar 4 07:07:42 2016 (r296381) @@ -1208,6 +1208,7 @@ struct hn_tx_ring { u_long hn_txdma_failed; u_long hn_tx_collapsed; u_long hn_tx_chimney; + u_long hn_pkts; /* Rarely used stuffs */ struct hn_txdesc *hn_txdesc; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 07:00:37 2016 (r296380) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Fri Mar 4 07:07:42 2016 (r296381) @@ -1021,6 +1021,7 @@ again: if (txd->m->m_flags & M_MCAST) if_inc_counter(ifp, IFCOUNTER_OMCASTS, 1); } + txr->hn_pkts++; } hn_txdesc_put(txr, txd); @@ -2402,6 +2403,9 @@ hn_create_tx_ring(struct hn_softc *sc, i CTLFLAG_RD, &txr->hn_oactive, 0, "over active"); } + SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "packets", + CTLFLAG_RW, &txr->hn_pkts, + "# of packets transmitted"); } } From owner-svn-src-head@freebsd.org Fri Mar 4 09:07:32 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB6FF9DA03A; Fri, 4 Mar 2016 09:07:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9AECEFF3; Fri, 4 Mar 2016 09:07:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2497V74001305; Fri, 4 Mar 2016 09:07:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2497URl001295; Fri, 4 Mar 2016 09:07:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201603040907.u2497URl001295@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 4 Mar 2016 09:07:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296382 - in head/sys/ofed/drivers/infiniband: hw/mlx4 ulp/ipoib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 09:07:33 -0000 Author: hselasky Date: Fri Mar 4 09:07:30 2016 New Revision: 296382 URL: https://svnweb.freebsd.org/changeset/base/296382 Log: Whitespace fixes. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/cm.c head/sys/ofed/drivers/infiniband/hw/mlx4/cq.c head/sys/ofed/drivers/infiniband/hw/mlx4/mad.c head/sys/ofed/drivers/infiniband/hw/mlx4/main.c head/sys/ofed/drivers/infiniband/hw/mlx4/mcg.c head/sys/ofed/drivers/infiniband/hw/mlx4/mlx4_ib.h head/sys/ofed/drivers/infiniband/hw/mlx4/mr.c head/sys/ofed/drivers/infiniband/hw/mlx4/qp.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/cm.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/cm.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/cm.c Fri Mar 4 09:07:30 2016 (r296382) @@ -82,8 +82,8 @@ static void set_local_comm_id(struct ib_ pr_err("trying to set local_comm_id in SIDR_REP\n"); return; } else { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - msg->local_comm_id = cpu_to_be32(cm_id); + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + msg->local_comm_id = cpu_to_be32(cm_id); } } @@ -97,8 +97,8 @@ static u32 get_local_comm_id(struct ib_m pr_err("trying to set local_comm_id in SIDR_REP\n"); return -1; } else { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - return be32_to_cpu(msg->local_comm_id); + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + return be32_to_cpu(msg->local_comm_id); } } @@ -112,8 +112,8 @@ static void set_remote_comm_id(struct ib pr_err("trying to set remote_comm_id in SIDR_REQ\n"); return; } else { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - msg->remote_comm_id = cpu_to_be32(cm_id); + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + msg->remote_comm_id = cpu_to_be32(cm_id); } } @@ -127,8 +127,8 @@ static u32 get_remote_comm_id(struct ib_ pr_err("trying to set remote_comm_id in SIDR_REQ\n"); return -1; } else { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - return be32_to_cpu(msg->remote_comm_id); + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + return be32_to_cpu(msg->remote_comm_id); } } Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/cq.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/cq.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/cq.c Fri Mar 4 09:07:30 2016 (r296382) @@ -873,10 +873,10 @@ repoll: + !cqe->timestamp_0_15) << 16) | be16_to_cpu(cqe->timestamp_0_15); wc->wc_flags |= IB_WC_WITH_TIMESTAMP; - } + } } else { wc->wc_flags |= IB_WC_WITH_SLID; - wc->slid = be16_to_cpu(cqe->rlid); + wc->slid = be16_to_cpu(cqe->rlid); } g_mlpath_rqpn = be32_to_cpu(cqe->g_mlpath_rqpn); wc->src_qp = g_mlpath_rqpn & 0xffffff; @@ -886,12 +886,12 @@ repoll: wc->wc_flags |= mlx4_ib_ipoib_csum_ok(cqe->status, cqe->checksum) ? IB_WC_IP_CSUM_OK : 0; if (!timestamp_en) { - if (rdma_port_get_link_layer(wc->qp->device, + if (rdma_port_get_link_layer(wc->qp->device, (*cur_qp)->port) == IB_LINK_LAYER_ETHERNET) - wc->sl = be16_to_cpu(cqe->sl_vid) >> 13; - else - wc->sl = be16_to_cpu(cqe->sl_vid) >> 12; + wc->sl = be16_to_cpu(cqe->sl_vid) >> 13; + else + wc->sl = be16_to_cpu(cqe->sl_vid) >> 12; wc->wc_flags |= IB_WC_WITH_SL; } if ((be32_to_cpu(cqe->vlan_my_qpn) & Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/mad.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/mad.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/mad.c Fri Mar 4 09:07:30 2016 (r296382) @@ -1813,8 +1813,8 @@ static int create_pv_sqp(struct mlx4_ib_ ret = find_slave_port_pkey_ix(to_mdev(ctx->ib_dev), ctx->slave, ctx->port, 0xFFFF, &attr.pkey_index); if (ret || !create_tun) - attr.pkey_index = - to_mdev(ctx->ib_dev)->pkeys.virt2phys_pkey[ctx->slave][ctx->port - 1][0]; + attr.pkey_index = + to_mdev(ctx->ib_dev)->pkeys.virt2phys_pkey[ctx->slave][ctx->port - 1][0]; attr.qkey = IB_QP1_QKEY; attr.port_num = ctx->port; ret = ib_modify_qp(tun_qp->qp, &attr, qp_attr_mask_INIT); Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/main.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/main.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/main.c Fri Mar 4 09:07:30 2016 (r296382) @@ -1119,7 +1119,7 @@ static int __mlx4_ib_create_flow(struct if (flow_attr->priority > MLX4_IB_FLOW_MAX_PRIO) { pr_err("Invalid priority value.\n"); return -EINVAL; - } + } if (domain >= IB_FLOW_DOMAIN_NUM) { pr_err("Invalid domain value.\n"); return -EINVAL; @@ -1198,7 +1198,7 @@ static struct ib_flow *mlx4_ib_create_fl switch (flow_attr->type) { case IB_FLOW_ATTR_NORMAL: type[0] = MLX4_FS_REGULAR; - break; + break; case IB_FLOW_ATTR_ALL_DEFAULT: type[0] = MLX4_FS_ALL_DEFAULT; @@ -1221,7 +1221,7 @@ static struct ib_flow *mlx4_ib_create_fl while (i < ARRAY_SIZE(type) && type[i]) { err = __mlx4_ib_create_flow(qp, flow_attr, domain, type[i], &mflow->reg_id[i]); - if (err) + if (err) goto err_free; i++; } @@ -1605,11 +1605,11 @@ static void update_gids_task(struct work IB_LINK_LAYER_ETHERNET) { err = mlx4_cmd(dev, mailbox->dma, MLX4_SET_PORT_GID_TABLE << 8 | gw->port, - 1, MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B, - MLX4_CMD_WRAPPED); + 1, MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B, + MLX4_CMD_WRAPPED); - if (err) - pr_warn("set port command failed\n"); + if (err) + pr_warn("set port command failed\n"); else mlx4_ib_dispatch_event(gw->dev, gw->port, IB_EVENT_GID_CHANGE); @@ -1686,8 +1686,8 @@ static int update_gid_table(struct mlx4_ if (found >= 0) { need_update = 1; dev->iboe.gid_table[port - 1][found] = zgid; - break; - } + break; + } } else { if (found >= 0) break; @@ -1696,22 +1696,22 @@ static int update_gid_table(struct mlx4_ !memcmp(&dev->iboe.gid_table[port - 1][i], &zgid, sizeof(*gid))) free = i; - } - } + } + } if (found == -1 && !clear && free < 0) { pr_err("GID table of port %d is full. Can't add "GID_PRINT_FMT"\n", port, GID_PRINT_ARGS(gid)); return -ENOMEM; - } + } if (found == -1 && clear) { pr_err(GID_PRINT_FMT" is not in GID table of port %d\n", GID_PRINT_ARGS(gid), port); return -EINVAL; - } + } if (found == -1 && !clear && free >= 0) { dev->iboe.gid_table[port - 1][free] = *gid; need_update = 1; - } + } if (!need_update) return 0; @@ -1721,10 +1721,10 @@ static int update_gid_table(struct mlx4_ return -ENOMEM; memcpy(work->gids, dev->iboe.gid_table[port - 1], sizeof(work->gids)); - INIT_WORK(&work->work, update_gids_task); - work->port = port; - work->dev = dev; - queue_work(wq, &work->work); + INIT_WORK(&work->work, update_gids_task); + work->port = port; + work->dev = dev; + queue_work(wq, &work->work); return 0; } @@ -1773,7 +1773,7 @@ static u8 mlx4_ib_get_dev_port(struct ne for (port = 1; port <= MLX4_MAX_PORTS; ++port) if ((netif_is_bond_master(real_dev) && (real_dev == iboe->masters[port - 1])) || (!netif_is_bond_master(real_dev) && (real_dev == iboe->netdevs[port - 1]))) - break; + break; return port > MLX4_MAX_PORTS ? 0 : port; } @@ -1809,11 +1809,11 @@ static void mlx4_ib_get_dev_addr(struct read_lock_bh(&in6_dev->lock); list_for_each_entry(ifp, &in6_dev->addr_list, if_list) { pgid = (union ib_gid *)&ifp->addr; - update_gid_table(ibdev, port, pgid, 0, 0); - } + update_gid_table(ibdev, port, pgid, 0, 0); + } read_unlock_bh(&in6_dev->lock); in6_dev_put(in6_dev); - } + } #endif } @@ -2002,10 +2002,10 @@ static void mlx4_ib_alloc_eqs(struct mlx mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) { for (j = 0; j < eq_per_port; j++) { sprintf(name, "mlx4-ib-%d-%d@%d:%d:%d:%d", i, j, - pci_get_domain(dev->pdev->dev.bsddev), - pci_get_bus(dev->pdev->dev.bsddev), - PCI_SLOT(dev->pdev->devfn), - PCI_FUNC(dev->pdev->devfn)); + pci_get_domain(dev->pdev->dev.bsddev), + pci_get_bus(dev->pdev->dev.bsddev), + PCI_SLOT(dev->pdev->devfn), + PCI_FUNC(dev->pdev->devfn)); /* Set IRQ for specific name (per ring) */ if (mlx4_assign_eq(dev, name, @@ -2168,7 +2168,7 @@ static struct attribute_group diag_count static void init_dev_assign(void) { int i = 1; - + spin_lock_init(&dev_num_str_lock); if (mlx4_fill_dbdf2val_tbl(&dev_assign_str)) return; @@ -2268,7 +2268,7 @@ static void *mlx4_ib_add(struct mlx4_dev if (dev_idx >= 0) sprintf(ibdev->ib_dev.name, "mlx4_%d", dev_idx); else - strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX); + strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX); ibdev->ib_dev.owner = THIS_MODULE; ibdev->ib_dev.node_type = RDMA_NODE_IB_CA; @@ -2471,8 +2471,8 @@ static void *mlx4_ib_add(struct mlx4_dev if (dev->caps.flags & MLX4_DEV_CAP_FLAG_IBOE) { if (!iboe->nb.notifier_call) { - iboe->nb.notifier_call = mlx4_ib_netdev_event; - err = register_netdevice_notifier(&iboe->nb); + iboe->nb.notifier_call = mlx4_ib_netdev_event; + err = register_netdevice_notifier(&iboe->nb); if (err) { iboe->nb.notifier_call = NULL; goto err_notify; @@ -2519,8 +2519,8 @@ err_notify: } if (ibdev->iboe.nb.notifier_call) { - if (unregister_netdevice_notifier(&ibdev->iboe.nb)) - pr_warn("failure unregistering notifier\n"); + if (unregister_netdevice_notifier(&ibdev->iboe.nb)) + pr_warn("failure unregistering notifier\n"); ibdev->iboe.nb.notifier_call = NULL; } if (ibdev->iboe.nb_inet.notifier_call) { @@ -2873,12 +2873,12 @@ module_exit(mlx4_ib_cleanup); static int mlx4ib_evhand(module_t mod, int event, void *arg) { - return (0); + return (0); } static moduledata_t mlx4ib_mod = { - .name = "mlx4ib", - .evhand = mlx4ib_evhand, + .name = "mlx4ib", + .evhand = mlx4ib_evhand, }; DECLARE_MODULE(mlx4ib, mlx4ib_mod, SI_SUB_SMP, SI_ORDER_ANY); Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/mcg.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/mcg.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/mcg.c Fri Mar 4 09:07:30 2016 (r296382) @@ -135,8 +135,8 @@ struct mcast_req { #define safe_atomic_dec(ref) \ - do {\ - if (atomic_dec_and_test(ref)) \ + do {\ + if (atomic_dec_and_test(ref)) \ mcg_warn_group(group, "did not expect to reach zero\n"); \ } while (0) @@ -570,7 +570,7 @@ static void mlx4_ib_mcg_timeout_handler( group->state = MCAST_IDLE; atomic_inc(&group->refcount); if (!queue_work(group->demux->mcg_wq, &group->work)) - safe_atomic_dec(&group->refcount); + safe_atomic_dec(&group->refcount); mutex_unlock(&group->lock); } @@ -877,7 +877,7 @@ static void queue_req(struct mcast_req * list_add_tail(&req->func_list, &group->func[req->func].pending); /* calls mlx4_ib_mcg_work_handler */ if (!queue_work(group->demux->mcg_wq, &group->work)) - safe_atomic_dec(&group->refcount); + safe_atomic_dec(&group->refcount); } int mlx4_ib_mcg_demux_handler(struct ib_device *ibdev, int port, int slave, @@ -913,7 +913,7 @@ int mlx4_ib_mcg_demux_handler(struct ib_ /* calls mlx4_ib_mcg_work_handler */ atomic_inc(&group->refcount); if (!queue_work(ctx->mcg_wq, &group->work)) - safe_atomic_dec(&group->refcount); + safe_atomic_dec(&group->refcount); mutex_unlock(&group->lock); release_group(group, 0); return 1; /* consumed */ Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/mlx4_ib.h ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/mlx4_ib.h Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/mlx4_ib.h Fri Mar 4 09:07:30 2016 (r296382) @@ -507,7 +507,7 @@ struct mlx4_ib_iboe { spinlock_t lock; struct net_device *netdevs[MLX4_MAX_PORTS]; struct net_device *masters[MLX4_MAX_PORTS]; - struct notifier_block nb; + struct notifier_block nb; struct notifier_block nb_inet; union ib_gid gid_table[MLX4_MAX_PORTS][128]; }; Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/mr.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/mr.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/mr.c Fri Mar 4 09:07:30 2016 (r296382) @@ -240,7 +240,7 @@ int mlx4_ib_umem_write_mtt(struct mlx4_i cur_start_addr = sg_dma_address(sg); len = sg_dma_len(sg); - } + } /* Handle the last block */ if (len > 0) { @@ -365,40 +365,40 @@ int mlx4_ib_umem_calc_optimal_mtt_size(s next_block_start = sg_dma_address(sg); current_block_end = current_block_start - + current_block_len; - /* If we have a split (non-contig.) between two block*/ - if (current_block_end != next_block_start) { - block_shift = mlx4_ib_umem_calc_block_mtt( - next_block_start, - current_block_end, - block_shift); - - /* If we reached the minimum shift for 4k - page we stop the loop. - */ - if (block_shift <= min_shift) - goto end; - - /* If not saved yet we are in first block - - we save the length of first block to - calculate the non_aligned_pages number at - * the end. - */ - total_len += current_block_len; - - /* Start a new block */ - current_block_start = next_block_start; - current_block_len = - sg_dma_len(sg); - continue; - } - /* The scatter entry is another part of - the current block, increase the block size - * An entry in the scatter can be larger than - 4k (page) as of dma mapping - which merge some blocks together. + + current_block_len; + /* If we have a split (non-contig.) between two block*/ + if (current_block_end != next_block_start) { + block_shift = mlx4_ib_umem_calc_block_mtt( + next_block_start, + current_block_end, + block_shift); + + /* If we reached the minimum shift for 4k + page we stop the loop. + */ + if (block_shift <= min_shift) + goto end; + + /* If not saved yet we are in first block - + we save the length of first block to + calculate the non_aligned_pages number at + * the end. */ - current_block_len += + total_len += current_block_len; + + /* Start a new block */ + current_block_start = next_block_start; + current_block_len = + sg_dma_len(sg); + continue; + } + /* The scatter entry is another part of + the current block, increase the block size + * An entry in the scatter can be larger than + 4k (page) as of dma mapping + which merge some blocks together. + */ + current_block_len += sg_dma_len(sg); } @@ -641,7 +641,7 @@ int mlx4_ib_dereg_mr(struct ib_mr *ibmr) if (!umem) goto end; - ib_umem_release(mr->umem); + ib_umem_release(mr->umem); end: kfree(mr); Modified: head/sys/ofed/drivers/infiniband/hw/mlx4/qp.c ============================================================================== --- head/sys/ofed/drivers/infiniband/hw/mlx4/qp.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/hw/mlx4/qp.c Fri Mar 4 09:07:30 2016 (r296382) @@ -1691,7 +1691,7 @@ static int mlx4_set_path(struct mlx4_ib_ * If one was already assigned, but the new mac differs, * unregister the old one and register the new one. */ - u64_mac = mlx4_mac_to_u64(smac); + u64_mac = mlx4_mac_to_u64(smac); if (!smac_info->smac || smac_info->smac != u64_mac) { /* register candidate now, unreg if needed, after success */ @@ -2746,7 +2746,7 @@ static __be32 convert_access(int acc) cpu_to_be32(MLX4_WQE_FMR_AND_BIND_PERM_REMOTE_WRITE) : 0) | (acc & IB_ACCESS_REMOTE_READ ? cpu_to_be32(MLX4_WQE_FMR_AND_BIND_PERM_REMOTE_READ) : 0) | - (acc & IB_ACCESS_LOCAL_WRITE ? cpu_to_be32(MLX4_WQE_FMR_PERM_LOCAL_WRITE) : 0) | + (acc & IB_ACCESS_LOCAL_WRITE ? cpu_to_be32(MLX4_WQE_FMR_PERM_LOCAL_WRITE) : 0) | cpu_to_be32(MLX4_WQE_FMR_PERM_LOCAL_READ); } Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c ============================================================================== --- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c Fri Mar 4 09:07:30 2016 (r296382) @@ -386,7 +386,6 @@ poll_more: spin_lock(&priv->drain_lock); for (;;) { n = ib_poll_cq(priv->recv_cq, IPOIB_NUM_WC, priv->ibwc); - for (i = 0; i < n; i++) { struct ib_wc *wc = priv->ibwc + i; Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c ============================================================================== --- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c Fri Mar 4 07:07:42 2016 (r296381) +++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c Fri Mar 4 09:07:30 2016 (r296382) @@ -89,6 +89,7 @@ int ipoib_init_qp(struct ipoib_dev_priv IB_QP_PORT | IB_QP_PKEY_INDEX | IB_QP_STATE; + ret = ib_modify_qp(priv->qp, &qp_attr, attr_mask); if (ret) { ipoib_warn(priv, "failed to modify QP to init, ret = %d\n", ret); From owner-svn-src-head@freebsd.org Fri Mar 4 13:11:15 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B244F9DB4A6; Fri, 4 Mar 2016 13:11:15 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 4FAFDA3C; Fri, 4 Mar 2016 13:11:15 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24DBEIX076892; Fri, 4 Mar 2016 13:11:14 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24DBEog076885; Fri, 4 Mar 2016 13:11:14 GMT (envelope-from np@FreeBSD.org) Message-Id: <201603041311.u24DBEog076885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 4 Mar 2016 13:11:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296383 - in head/sys/dev/cxgbe: . common X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 13:11:15 -0000 Author: np Date: Fri Mar 4 13:11:13 2016 New Revision: 296383 URL: https://svnweb.freebsd.org/changeset/base/296383 Log: cxgbe(4): Very basic T6 awareness. This is part of ongoing work to update to the latest internal shared code. - Add a chip_params structure to keep track of hardware constants for all generations of Terminators handled by cxgbe. - Update t4_hw_pci_read_cfg4 to work with T6. - Update the hardware debug sysctls (hidden within dev...misc.*) to work with T6. Most of the changes are in the decoders for the CIM logic analyzer and the MPS TCAM. - Acquire the regwin lock around indirect register accesses. Obtained from: Chelsio Communications Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/common/common.h head/sys/dev/cxgbe/common/t4_hw.c head/sys/dev/cxgbe/common/t4_hw.h head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/t4_netmap.c head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Fri Mar 4 09:07:30 2016 (r296382) +++ head/sys/dev/cxgbe/adapter.h Fri Mar 4 13:11:13 2016 (r296383) @@ -758,9 +758,9 @@ struct adapter { struct sge sge; int lro_timeout; - struct taskqueue *tq[NCHAN]; /* General purpose taskqueues */ + struct taskqueue *tq[MAX_NCHAN]; /* General purpose taskqueues */ struct port_info *port[MAX_NPORTS]; - uint8_t chan_map[NCHAN]; + uint8_t chan_map[MAX_NCHAN]; #ifdef TCP_OFFLOAD void *tom_softc; /* (struct tom_data *) */ @@ -791,6 +791,7 @@ struct adapter { char cfg_file[32]; u_int cfcsum; struct adapter_params params; + const struct chip_params *chip_params; struct t4_virt_res vres; uint16_t linkcaps; Modified: head/sys/dev/cxgbe/common/common.h ============================================================================== --- head/sys/dev/cxgbe/common/common.h Fri Mar 4 09:07:30 2016 (r296382) +++ head/sys/dev/cxgbe/common/common.h Fri Mar 4 13:11:13 2016 (r296383) @@ -188,25 +188,25 @@ struct tp_fcoe_stats { }; struct tp_err_stats { - u32 mac_in_errs[4]; - u32 hdr_in_errs[4]; - u32 tcp_in_errs[4]; - u32 tnl_cong_drops[4]; - u32 ofld_chan_drops[4]; - u32 tnl_tx_drops[4]; - u32 ofld_vlan_drops[4]; - u32 tcp6_in_errs[4]; + u32 mac_in_errs[MAX_NCHAN]; + u32 hdr_in_errs[MAX_NCHAN]; + u32 tcp_in_errs[MAX_NCHAN]; + u32 tnl_cong_drops[MAX_NCHAN]; + u32 ofld_chan_drops[MAX_NCHAN]; + u32 tnl_tx_drops[MAX_NCHAN]; + u32 ofld_vlan_drops[MAX_NCHAN]; + u32 tcp6_in_errs[MAX_NCHAN]; u32 ofld_no_neigh; u32 ofld_cong_defer; }; struct tp_proxy_stats { - u32 proxy[4]; + u32 proxy[MAX_NCHAN]; }; struct tp_cpl_stats { - u32 req[4]; - u32 rsp[4]; + u32 req[MAX_NCHAN]; + u32 rsp[MAX_NCHAN]; }; struct tp_rdma_stats { @@ -219,7 +219,7 @@ struct tp_params { unsigned int tre; /* log2 of core clocks per TP tick */ unsigned int dack_re; /* DACK timer resolution */ unsigned int la_mask; /* what events are recorded by TP LA */ - unsigned short tx_modq[NCHAN]; /* channel to modulation queue map */ + unsigned short tx_modq[MAX_NCHAN]; /* channel to modulation queue map */ uint32_t vlan_pri_map; uint32_t ingress_config; int8_t vlan_shift; @@ -253,6 +253,19 @@ struct devlog_params { u32 size; /* size of log */ }; +/* Stores chip specific parameters */ +struct chip_params { + u8 nchan; + u8 pm_stats_cnt; + u8 cng_ch_bits_log; /* congestion channel map bits width */ + u8 nsched_cls; + u8 cim_num_obq; + u16 mps_rplc_size; + u16 vfcount; + u32 sge_fl_db; + u16 mps_tcam_size; +}; + struct adapter_params { struct tp_params tp; struct vpd_params vpd; @@ -292,6 +305,7 @@ struct adapter_params { #define CHELSIO_T4 0x4 #define CHELSIO_T5 0x5 +#define CHELSIO_T6 0x6 struct trace_params { u32 data[TRACE_LEN / 4]; @@ -366,6 +380,11 @@ static inline int is_t5(struct adapter * return adap->params.chipid == CHELSIO_T5; } +static inline int is_t6(struct adapter *adap) +{ + return adap->params.chipid == CHELSIO_T6; +} + static inline int is_fpga(struct adapter *adap) { return adap->params.fpga; Modified: head/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.c Fri Mar 4 09:07:30 2016 (r296382) +++ head/sys/dev/cxgbe/common/t4_hw.c Fri Mar 4 13:11:13 2016 (r296383) @@ -154,26 +154,49 @@ void t4_write_indirect(struct adapter *a * mechanism. This guarantees that we get the real value even if we're * operating within a Virtual Machine and the Hypervisor is trapping our * Configuration Space accesses. + * + * N.B. This routine should only be used as a last resort: the firmware uses + * the backdoor registers on a regular basis and we can end up + * conflicting with it's uses! */ u32 t4_hw_pci_read_cfg4(adapter_t *adap, int reg) { - t4_write_reg(adap, A_PCIE_CFG_SPACE_REQ, - F_ENABLE | F_LOCALCFG | V_FUNCTION(adap->pf) | - V_REGISTER(reg)); - return t4_read_reg(adap, A_PCIE_CFG_SPACE_DATA); + u32 req = V_FUNCTION(adap->pf) | V_REGISTER(reg); + u32 val; + + if (chip_id(adap) <= CHELSIO_T5) + req |= F_ENABLE; + else + req |= F_T6_ENABLE; + + if (is_t4(adap)) + req |= F_LOCALCFG; + + t4_write_reg(adap, A_PCIE_CFG_SPACE_REQ, req); + val = t4_read_reg(adap, A_PCIE_CFG_SPACE_DATA); + + /* + * Reset F_ENABLE to 0 so reads of PCIE_CFG_SPACE_DATA won't cause a + * Configuration Space read. (None of the other fields matter when + * F_ENABLE is 0 so a simple register write is easier than a + * read-modify-write via t4_set_reg_field().) + */ + t4_write_reg(adap, A_PCIE_CFG_SPACE_REQ, 0); + + return val; } /* - * t4_report_fw_error - report firmware error - * @adap: the adapter + * t4_report_fw_error - report firmware error + * @adap: the adapter * - * The adapter firmware can indicate error conditions to the host. - * This routine prints out the reason for the firmware error (as - * reported by the firmware). + * The adapter firmware can indicate error conditions to the host. + * If the firmware has indicated an error, print out the reason for + * the firmware error. */ static void t4_report_fw_error(struct adapter *adap) { - static const char *reason[] = { + static const char *const reason[] = { "Crash", /* PCIE_FW_EVAL_CRASH */ "During Device Preparation", /* PCIE_FW_EVAL_PREP */ "During Device Configuration", /* PCIE_FW_EVAL_CONF */ @@ -1512,7 +1535,6 @@ out: void t4_read_cimq_cfg(struct adapter *adap, u16 *base, u16 *size, u16 *thres) { unsigned int i, v; - int cim_num_obq = is_t4(adap) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5; for (i = 0; i < CIM_NUM_IBQ; i++) { t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_IBQSELECT | @@ -1522,7 +1544,7 @@ void t4_read_cimq_cfg(struct adapter *ad *size++ = G_CIMQSIZE(v) * 256; /* value is in 256-byte units */ *thres++ = G_QUEFULLTHRSH(v) * 8; /* 8-byte unit */ } - for (i = 0; i < cim_num_obq; i++) { + for (i = 0; i < adap->chip_params->cim_num_obq; i++) { t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_OBQSELECT | V_QUENUMSELECT(i)); v = t4_read_reg(adap, A_CIM_QUEUE_CONFIG_CTRL); @@ -1587,9 +1609,8 @@ int t4_read_cim_obq(struct adapter *adap { int i, err; unsigned int addr, v, nwords; - int cim_num_obq = is_t4(adap) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5; - if (qid >= cim_num_obq || (n & 3)) + if (qid >= adap->chip_params->cim_num_obq || (n & 3)) return -EINVAL; t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_OBQSELECT | @@ -1743,7 +1764,15 @@ int t4_cim_read_la(struct adapter *adap, ret = t4_cim_read(adap, A_UP_UP_DBG_LA_DATA, 1, &la_buf[i]); if (ret) break; + /* address can't exceed 0xfff (UpDbgLaRdPtr is of 12-bits) */ idx = (idx + 1) & M_UPDBGLARDPTR; + /* + * Bits 0-3 of UpDbgLaRdPtr can be between 0000 to 1001 to + * identify the 32-bit portion of the full 312-bit data + */ + if (is_t6(adap)) + while ((idx & 0xf) > 9) + idx = (idx + 1) % M_UPDBGLARDPTR; } restart: if (cfg & F_UPDBGLAEN) { @@ -3223,7 +3252,7 @@ void t4_tp_get_tcp_stats(struct adapter */ void t4_tp_get_err_stats(struct adapter *adap, struct tp_err_stats *st) { - int nchan = NCHAN; + int nchan = adap->chip_params->nchan; t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->mac_in_errs, nchan, A_TP_MIB_MAC_IN_ERR_0); @@ -3255,8 +3284,10 @@ void t4_tp_get_err_stats(struct adapter */ void t4_tp_get_proxy_stats(struct adapter *adap, struct tp_proxy_stats *st) { + int nchan = adap->chip_params->nchan; + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->proxy, - 4, A_TP_MIB_TNL_LPBK_0); + nchan, A_TP_MIB_TNL_LPBK_0); } /** @@ -3268,8 +3299,12 @@ void t4_tp_get_proxy_stats(struct adapte */ void t4_tp_get_cpl_stats(struct adapter *adap, struct tp_cpl_stats *st) { + int nchan = adap->chip_params->nchan; + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->req, - 8, A_TP_MIB_CPL_IN_REQ_0); + nchan, A_TP_MIB_CPL_IN_REQ_0); + t4_read_indirect(adap, A_TP_MIB_INDEX, A_TP_MIB_DATA, st->rsp, + nchan, A_TP_MIB_CPL_OUT_RSP_0); } /** @@ -3672,14 +3707,18 @@ void t4_get_chan_txrate(struct adapter * v = t4_read_reg(adap, A_TP_TX_TRATE); nic_rate[0] = chan_rate(adap, G_TNLRATE0(v)); nic_rate[1] = chan_rate(adap, G_TNLRATE1(v)); - nic_rate[2] = chan_rate(adap, G_TNLRATE2(v)); - nic_rate[3] = chan_rate(adap, G_TNLRATE3(v)); + if (adap->chip_params->nchan > 2) { + nic_rate[2] = chan_rate(adap, G_TNLRATE2(v)); + nic_rate[3] = chan_rate(adap, G_TNLRATE3(v)); + } v = t4_read_reg(adap, A_TP_TX_ORATE); ofld_rate[0] = chan_rate(adap, G_OFDRATE0(v)); ofld_rate[1] = chan_rate(adap, G_OFDRATE1(v)); - ofld_rate[2] = chan_rate(adap, G_OFDRATE2(v)); - ofld_rate[3] = chan_rate(adap, G_OFDRATE3(v)); + if (adap->chip_params->nchan > 2) { + ofld_rate[2] = chan_rate(adap, G_OFDRATE2(v)); + ofld_rate[3] = chan_rate(adap, G_OFDRATE3(v)); + } } /** @@ -3822,7 +3861,7 @@ void t4_pmtx_get_stats(struct adapter *a int i; u32 data[2]; - for (i = 0; i < PM_NSTATS; i++) { + for (i = 0; i < adap->chip_params->pm_stats_cnt; i++) { t4_write_reg(adap, A_PM_TX_STAT_CONFIG, i + 1); cnt[i] = t4_read_reg(adap, A_PM_TX_STAT_COUNT); if (is_t4(adap)) @@ -3849,7 +3888,7 @@ void t4_pmrx_get_stats(struct adapter *a int i; u32 data[2]; - for (i = 0; i < PM_NSTATS; i++) { + for (i = 0; i < adap->chip_params->pm_stats_cnt; i++) { t4_write_reg(adap, A_PM_RX_STAT_CONFIG, i + 1); cnt[i] = t4_read_reg(adap, A_PM_RX_STAT_COUNT); if (is_t4(adap)) @@ -3878,7 +3917,7 @@ static unsigned int get_mps_bg_map(struc if (n == 0) return idx == 0 ? 0xf : 0; - if (n == 1) + if (n == 1 && chip_id(adap) <= CHELSIO_T5) return idx < 2 ? (3 << (2 * idx)) : 0; return 1 << idx; } @@ -5130,9 +5169,7 @@ int t4_alloc_mac_filt(struct adapter *ad int offset, ret = 0; struct fw_vi_mac_cmd c; unsigned int nfilters = 0; - unsigned int max_naddr = is_t4(adap) ? - NUM_MPS_CLS_SRAM_L_INSTANCES : - NUM_MPS_T5_CLS_SRAM_L_INSTANCES; + unsigned int max_naddr = adap->chip_params->mps_tcam_size; unsigned int rem = naddr; if (naddr > max_naddr) @@ -5223,9 +5260,7 @@ int t4_change_mac(struct adapter *adap, int ret, mode; struct fw_vi_mac_cmd c; struct fw_vi_mac_exact *p = c.u.exact; - unsigned int max_mac_addr = is_t4(adap) ? - NUM_MPS_CLS_SRAM_L_INSTANCES : - NUM_MPS_T5_CLS_SRAM_L_INSTANCES; + unsigned int max_mac_addr = adap->chip_params->mps_tcam_size; if (idx < 0) /* new allocation */ idx = persist ? FW_VI_MAC_ADD_PERSIST_MAC : FW_VI_MAC_ADD_MAC; @@ -5581,6 +5616,54 @@ static void __devinit set_pcie_completio } } +static const struct chip_params *get_chip_params(int chipid) +{ + static const struct chip_params chip_params[] = { + { + /* T4 */ + .nchan = NCHAN, + .pm_stats_cnt = PM_NSTATS, + .cng_ch_bits_log = 2, + .nsched_cls = 15, + .cim_num_obq = CIM_NUM_OBQ, + .mps_rplc_size = 128, + .vfcount = 128, + .sge_fl_db = F_DBPRIO, + .mps_tcam_size = NUM_MPS_CLS_SRAM_L_INSTANCES, + }, + { + /* T5 */ + .nchan = NCHAN, + .pm_stats_cnt = PM_NSTATS, + .cng_ch_bits_log = 2, + .nsched_cls = 16, + .cim_num_obq = CIM_NUM_OBQ_T5, + .mps_rplc_size = 128, + .vfcount = 128, + .sge_fl_db = F_DBPRIO | F_DBTYPE, + .mps_tcam_size = NUM_MPS_T5_CLS_SRAM_L_INSTANCES, + }, + { + /* T6 */ + .nchan = T6_NCHAN, + .pm_stats_cnt = T6_PM_NSTATS, + .cng_ch_bits_log = 3, + .nsched_cls = 16, + .cim_num_obq = CIM_NUM_OBQ_T5, + .mps_rplc_size = 256, + .vfcount = 256, + .sge_fl_db = 0, + .mps_tcam_size = NUM_MPS_T5_CLS_SRAM_L_INSTANCES, + }, + }; + + chipid -= CHELSIO_T4; + if (chipid < 0 || chipid >= ARRAY_SIZE(chip_params)) + return NULL; + + return &chip_params[chipid]; +} + /** * t4_prep_adapter - prepare SW and HW for operation * @adapter: the adapter @@ -5611,6 +5694,11 @@ int __devinit t4_prep_adapter(struct ada return -EINVAL; } } + + adapter->chip_params = get_chip_params(chip_id(adapter)); + if (adapter->chip_params == NULL) + return -EINVAL; + adapter->params.pci.vpd_cap_addr = t4_os_find_pci_capability(adapter, PCI_CAP_ID_VPD); @@ -5624,7 +5712,7 @@ int __devinit t4_prep_adapter(struct ada /* Cards with real ASICs have the chipid in the PCIe device id */ t4_os_pci_read_cfg2(adapter, PCI_DEVICE_ID, &device_id); - if (device_id >> 12 == adapter->params.chipid) + if (device_id >> 12 == chip_id(adapter)) adapter->params.cim_la_size = CIMLA_SIZE; else { /* FPGA */ @@ -5662,7 +5750,7 @@ int __devinit t4_init_tp_params(struct a adap->params.tp.dack_re = G_DELAYEDACKRESOLUTION(v); /* MODQ_REQ_MAP defaults to setting queues 0-3 to chan 0-3 */ - for (chan = 0; chan < NCHAN; chan++) + for (chan = 0; chan < MAX_NCHAN; chan++) adap->params.tp.tx_modq[chan] = chan; t4_read_indirect(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA, Modified: head/sys/dev/cxgbe/common/t4_hw.h ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.h Fri Mar 4 09:07:30 2016 (r296382) +++ head/sys/dev/cxgbe/common/t4_hw.h Fri Mar 4 13:11:13 2016 (r296383) @@ -34,6 +34,8 @@ enum { NCHAN = 4, /* # of HW channels */ + T6_NCHAN = 2, + MAX_NCHAN = 4, MAX_MTU = 9600, /* max MAC MTU, excluding header + FCS */ EEPROMSIZE = 17408, /* Serial EEPROM physical size */ EEPROMVSIZE = 32768, /* Serial EEPROM virtual address space size */ @@ -44,6 +46,8 @@ enum { NCCTRL_WIN = 32, /* # of congestion control windows */ NTX_SCHED = 8, /* # of HW Tx scheduling queues */ PM_NSTATS = 5, /* # of PM stats */ + T6_PM_NSTATS = 7, + MAX_PM_NSTATS = 7, MBOX_LEN = 64, /* mailbox size in bytes */ NTRACE = 4, /* # of tracing filters */ TRACE_LEN = 112, /* length of trace data and mask */ Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Fri Mar 4 09:07:30 2016 (r296382) +++ head/sys/dev/cxgbe/t4_main.c Fri Mar 4 13:11:13 2016 (r296383) @@ -453,6 +453,7 @@ static int sysctl_temperature(SYSCTL_HAN static int sysctl_cctrl(SYSCTL_HANDLER_ARGS); static int sysctl_cim_ibq_obq(SYSCTL_HANDLER_ARGS); static int sysctl_cim_la(SYSCTL_HANDLER_ARGS); +static int sysctl_cim_la_t6(SYSCTL_HANDLER_ARGS); static int sysctl_cim_ma_la(SYSCTL_HANDLER_ARGS); static int sysctl_cim_pif_la(SYSCTL_HANDLER_ARGS); static int sysctl_cim_qcfg(SYSCTL_HANDLER_ARGS); @@ -465,6 +466,7 @@ static int sysctl_lb_stats(SYSCTL_HANDLE static int sysctl_linkdnrc(SYSCTL_HANDLER_ARGS); static int sysctl_meminfo(SYSCTL_HANDLER_ARGS); static int sysctl_mps_tcam(SYSCTL_HANDLER_ARGS); +static int sysctl_mps_tcam_t6(SYSCTL_HANDLER_ARGS); static int sysctl_path_mtus(SYSCTL_HANDLER_ARGS); static int sysctl_pm_stats(SYSCTL_HANDLER_ARGS); static int sysctl_rdma_stats(SYSCTL_HANDLER_ARGS); @@ -4956,7 +4958,7 @@ cxgbe_refresh_stats(struct adapter *sc, tnl_cong_drops = 0; t4_get_port_stats(sc, pi->tx_chan, &pi->stats); - for (i = 0; i < NCHAN; i++) { + for (i = 0; i < sc->chip_params->nchan; i++) { if (pi->rx_chan_map & (1 << i)) { mtx_lock(&sc->regwin_lock); t4_read_indirect(sc, A_TP_MIB_INDEX, A_TP_MIB_DATA, &v, @@ -5239,7 +5241,8 @@ t4_sysctls(struct adapter *sc) SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_la", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, - sysctl_cim_la, "A", "CIM logic analyzer"); + chip_id(sc) <= CHELSIO_T5 ? sysctl_cim_la : sysctl_cim_la_t6, + "A", "CIM logic analyzer"); SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_ma_la", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, @@ -5269,7 +5272,7 @@ t4_sysctls(struct adapter *sc) CTLTYPE_STRING | CTLFLAG_RD, sc, 5 + CIM_NUM_IBQ, sysctl_cim_ibq_obq, "A", "CIM OBQ 5 (NCSI)"); - if (is_t5(sc)) { + if (chip_id(sc) > CHELSIO_T4) { SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_obq_sge0_rx", CTLTYPE_STRING | CTLFLAG_RD, sc, 6 + CIM_NUM_IBQ, sysctl_cim_ibq_obq, "A", "CIM OBQ 6 (SGE0-RX)"); @@ -5321,7 +5324,8 @@ t4_sysctls(struct adapter *sc) SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "mps_tcam", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, - sysctl_mps_tcam, "A", "MPS TCAM entries"); + chip_id(sc) <= CHELSIO_T5 ? sysctl_mps_tcam : sysctl_mps_tcam_t6, + "A", "MPS TCAM entries"); SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "path_mtus", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, @@ -6034,7 +6038,7 @@ sysctl_cim_ibq_obq(SYSCTL_HANDLER_ARGS) int rc, i, n, qid = arg2; uint32_t *buf, *p; char *qtype; - u_int cim_num_obq = is_t4(sc) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5; + u_int cim_num_obq = sc->chip_params->cim_num_obq; KASSERT(qid >= 0 && qid < CIM_NUM_IBQ + cim_num_obq, ("%s: bad qid %d\n", __func__, qid)); @@ -6091,6 +6095,8 @@ sysctl_cim_la(SYSCTL_HANDLER_ARGS) uint32_t *buf, *p; int rc; + MPASS(chip_id(sc) <= CHELSIO_T5); + rc = -t4_cim_read(sc, A_UP_UP_DBG_LA_CFG, 1, &cfg); if (rc != 0) return (rc); @@ -6114,10 +6120,7 @@ sysctl_cim_la(SYSCTL_HANDLER_ARGS) cfg & F_UPDBGLACAPTPCONLY ? "" : " LS0Stat LS0Addr LS0Data"); - KASSERT((sc->params.cim_la_size & 7) == 0, - ("%s: p will walk off the end of buf", __func__)); - - for (p = buf; p < &buf[sc->params.cim_la_size]; p += 8) { + for (p = buf; p <= &buf[sc->params.cim_la_size - 8]; p += 8) { if (cfg & F_UPDBGLACAPTPCONLY) { sbuf_printf(sb, "\n %02x %08x %08x", p[5] & 0xff, p[6], p[7]); @@ -6145,6 +6148,69 @@ done: } static int +sysctl_cim_la_t6(SYSCTL_HANDLER_ARGS) +{ + struct adapter *sc = arg1; + u_int cfg; + struct sbuf *sb; + uint32_t *buf, *p; + int rc; + + MPASS(chip_id(sc) > CHELSIO_T5); + + rc = -t4_cim_read(sc, A_UP_UP_DBG_LA_CFG, 1, &cfg); + if (rc != 0) + return (rc); + + rc = sysctl_wire_old_buffer(req, 0); + if (rc != 0) + return (rc); + + sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req); + if (sb == NULL) + return (ENOMEM); + + buf = malloc(sc->params.cim_la_size * sizeof(uint32_t), M_CXGBE, + M_ZERO | M_WAITOK); + + rc = -t4_cim_read_la(sc, buf, NULL); + if (rc != 0) + goto done; + + sbuf_printf(sb, "Status Inst Data PC%s", + cfg & F_UPDBGLACAPTPCONLY ? "" : + " LS0Stat LS0Addr LS0Data LS1Stat LS1Addr LS1Data"); + + for (p = buf; p <= &buf[sc->params.cim_la_size - 10]; p += 10) { + if (cfg & F_UPDBGLACAPTPCONLY) { + sbuf_printf(sb, "\n %02x %08x %08x %08x", + p[3] & 0xff, p[2], p[1], p[0]); + sbuf_printf(sb, "\n %02x %02x%06x %02x%06x %02x%06x", + (p[6] >> 8) & 0xff, p[6] & 0xff, p[5] >> 8, + p[5] & 0xff, p[4] >> 8, p[4] & 0xff, p[3] >> 8); + sbuf_printf(sb, "\n %02x %04x%04x %04x%04x %04x%04x", + (p[9] >> 16) & 0xff, p[9] & 0xffff, p[8] >> 16, + p[8] & 0xffff, p[7] >> 16, p[7] & 0xffff, + p[6] >> 16); + } else { + sbuf_printf(sb, "\n %02x %04x%04x %04x%04x %04x%04x " + "%08x %08x %08x %08x %08x %08x", + (p[9] >> 16) & 0xff, + p[9] & 0xffff, p[8] >> 16, + p[8] & 0xffff, p[7] >> 16, + p[7] & 0xffff, p[6] >> 16, + p[2], p[1], p[0], p[5], p[4], p[3]); + } + } + + rc = sbuf_finish(sb); + sbuf_delete(sb); +done: + free(buf, M_CXGBE); + return (rc); +} + +static int sysctl_cim_ma_la(SYSCTL_HANDLER_ARGS) { struct adapter *sc = arg1; @@ -6212,14 +6278,14 @@ sysctl_cim_pif_la(SYSCTL_HANDLER_ARGS) p = buf; sbuf_printf(sb, "Cntl ID DataBE Addr Data"); - for (i = 0; i < CIM_MALA_SIZE; i++, p += 6) { + for (i = 0; i < CIM_PIFLA_SIZE; i++, p += 6) { sbuf_printf(sb, "\n %02x %02x %04x %08x %08x%08x%08x%08x", (p[5] >> 22) & 0xff, (p[5] >> 16) & 0x3f, p[5] & 0xffff, p[4], p[3], p[2], p[1], p[0]); } sbuf_printf(sb, "\n\nCntl ID Data"); - for (i = 0; i < CIM_MALA_SIZE; i++, p += 6) { + for (i = 0; i < CIM_PIFLA_SIZE; i++, p += 6) { sbuf_printf(sb, "\n %02x %02x %08x%08x%08x%08x", (p[4] >> 6) & 0xff, p[4] & 0x3f, p[3], p[2], p[1], p[0]); } @@ -6243,12 +6309,11 @@ sysctl_cim_qcfg(SYSCTL_HANDLER_ARGS) uint32_t stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ_T5)], *p = stat; u_int cim_num_obq, ibq_rdaddr, obq_rdaddr, nq; + cim_num_obq = sc->chip_params->cim_num_obq; if (is_t4(sc)) { - cim_num_obq = CIM_NUM_OBQ; ibq_rdaddr = A_UP_IBQ_0_RDADDR; obq_rdaddr = A_UP_OBQ_0_REALADDR; } else { - cim_num_obq = CIM_NUM_OBQ_T5; ibq_rdaddr = A_UP_IBQ_0_SHADOW_RDADDR; obq_rdaddr = A_UP_OBQ_0_SHADOW_REALADDR; } @@ -6305,14 +6370,24 @@ sysctl_cpl_stats(SYSCTL_HANDLER_ARGS) if (sb == NULL) return (ENOMEM); + mtx_lock(&sc->regwin_lock); t4_tp_get_cpl_stats(sc, &stats); + mtx_unlock(&sc->regwin_lock); - sbuf_printf(sb, " channel 0 channel 1 channel 2 " - "channel 3\n"); - sbuf_printf(sb, "CPL requests: %10u %10u %10u %10u\n", - stats.req[0], stats.req[1], stats.req[2], stats.req[3]); - sbuf_printf(sb, "CPL responses: %10u %10u %10u %10u", - stats.rsp[0], stats.rsp[1], stats.rsp[2], stats.rsp[3]); + if (sc->chip_params->nchan > 2) { + sbuf_printf(sb, " channel 0 channel 1" + " channel 2 channel 3"); + sbuf_printf(sb, "\nCPL requests: %10u %10u %10u %10u", + stats.req[0], stats.req[1], stats.req[2], stats.req[3]); + sbuf_printf(sb, "\nCPL responses: %10u %10u %10u %10u", + stats.rsp[0], stats.rsp[1], stats.rsp[2], stats.rsp[3]); + } else { + sbuf_printf(sb, " channel 0 channel 1"); + sbuf_printf(sb, "\nCPL requests: %10u %10u", + stats.req[0], stats.req[1]); + sbuf_printf(sb, "\nCPL responses: %10u %10u", + stats.rsp[0], stats.rsp[1]); + } rc = sbuf_finish(sb); sbuf_delete(sb); @@ -6476,7 +6551,8 @@ sysctl_fcoe_stats(SYSCTL_HANDLER_ARGS) struct adapter *sc = arg1; struct sbuf *sb; int rc; - struct tp_fcoe_stats stats[4]; + struct tp_fcoe_stats stats[MAX_NCHAN]; + int i, nchan = sc->chip_params->nchan; rc = sysctl_wire_old_buffer(req, 0); if (rc != 0) @@ -6486,22 +6562,30 @@ sysctl_fcoe_stats(SYSCTL_HANDLER_ARGS) if (sb == NULL) return (ENOMEM); - t4_get_fcoe_stats(sc, 0, &stats[0]); - t4_get_fcoe_stats(sc, 1, &stats[1]); - t4_get_fcoe_stats(sc, 2, &stats[2]); - t4_get_fcoe_stats(sc, 3, &stats[3]); - - sbuf_printf(sb, " channel 0 channel 1 " - "channel 2 channel 3\n"); - sbuf_printf(sb, "octetsDDP: %16ju %16ju %16ju %16ju\n", - stats[0].octets_ddp, stats[1].octets_ddp, stats[2].octets_ddp, - stats[3].octets_ddp); - sbuf_printf(sb, "framesDDP: %16u %16u %16u %16u\n", - stats[0].frames_ddp, stats[1].frames_ddp, stats[2].frames_ddp, - stats[3].frames_ddp); - sbuf_printf(sb, "framesDrop: %16u %16u %16u %16u", - stats[0].frames_drop, stats[1].frames_drop, stats[2].frames_drop, - stats[3].frames_drop); + for (i = 0; i < nchan; i++) + t4_get_fcoe_stats(sc, i, &stats[i]); + + if (nchan > 2) { + sbuf_printf(sb, " channel 0 channel 1" + " channel 2 channel 3"); + sbuf_printf(sb, "\noctetsDDP: %16ju %16ju %16ju %16ju", + stats[0].octets_ddp, stats[1].octets_ddp, + stats[2].octets_ddp, stats[3].octets_ddp); + sbuf_printf(sb, "\nframesDDP: %16u %16u %16u %16u", + stats[0].frames_ddp, stats[1].frames_ddp, + stats[2].frames_ddp, stats[3].frames_ddp); + sbuf_printf(sb, "\nframesDrop: %16u %16u %16u %16u", + stats[0].frames_drop, stats[1].frames_drop, + stats[2].frames_drop, stats[3].frames_drop); + } else { + sbuf_printf(sb, " channel 0 channel 1"); + sbuf_printf(sb, "\noctetsDDP: %16ju %16ju", + stats[0].octets_ddp, stats[1].octets_ddp); + sbuf_printf(sb, "\nframesDDP: %16u %16u", + stats[0].frames_ddp, stats[1].frames_ddp); + sbuf_printf(sb, "\nframesDrop: %16u %16u", + stats[0].frames_drop, stats[1].frames_drop); + } rc = sbuf_finish(sb); sbuf_delete(sb); @@ -6587,7 +6671,7 @@ sysctl_lb_stats(SYSCTL_HANDLER_ARGS) memset(s, 0, sizeof(s)); - for (i = 0; i < 4; i += 2) { + for (i = 0; i < sc->chip_params->nchan; i += 2) { t4_get_lb_stats(sc, i, &s[0]); t4_get_lb_stats(sc, i + 1, &s[1]); @@ -6721,10 +6805,10 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) avail[i].base = G_EXT_MEM_BASE(hi) << 20; avail[i].limit = avail[i].base + (G_EXT_MEM_SIZE(hi) << 20); - avail[i].idx = is_t4(sc) ? 2 : 3; /* Call it MC for T4 */ + avail[i].idx = is_t5(sc) ? 3 : 2; /* Call it MC0 for T5 */ i++; } - if (!is_t4(sc) && lo & F_EXT_MEM1_ENABLE) { + if (is_t5(sc) && lo & F_EXT_MEM1_ENABLE) { hi = t4_read_reg(sc, A_MA_EXT_MEMORY1_BAR); avail[i].base = G_EXT_MEM1_BASE(hi) << 20; avail[i].limit = avail[i].base + @@ -6760,9 +6844,14 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) md++; if (t4_read_reg(sc, A_LE_DB_CONFIG) & F_HASHEN) { - hi = t4_read_reg(sc, A_LE_DB_TID_HASHBASE) / 4; - md->base = t4_read_reg(sc, A_LE_DB_HASH_TID_BASE); - md->limit = (sc->tids.ntids - hi) * 16 + md->base - 1; + if (chip_id(sc) <= CHELSIO_T5) { + hi = t4_read_reg(sc, A_LE_DB_TID_HASHBASE) / 4; + md->base = t4_read_reg(sc, A_LE_DB_HASH_TID_BASE); + } else { + hi = t4_read_reg(sc, A_LE_DB_HASH_TID_BASE); + md->base = t4_read_reg(sc, A_LE_DB_HASH_TBL_BASE_ADDR); + } + md->limit = 0; } else { md->base = 0; md->idx = nitems(region); /* hide it */ @@ -6785,18 +6874,30 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) md->base = 0; md->idx = nitems(region); - if (!is_t4(sc) && t4_read_reg(sc, A_SGE_CONTROL2) & F_VFIFO_ENABLE) { - md->base = G_BASEADDR(t4_read_reg(sc, A_SGE_DBVFIFO_BADDR)); - md->limit = md->base + (G_DBVFIFO_SIZE((t4_read_reg(sc, - A_SGE_DBVFIFO_SIZE))) << 2) - 1; + if (!is_t4(sc)) { + uint32_t size = 0; + uint32_t sge_ctrl = t4_read_reg(sc, A_SGE_CONTROL2); + uint32_t fifo_size = t4_read_reg(sc, A_SGE_DBVFIFO_SIZE); + + if (is_t5(sc)) { + if (sge_ctrl & F_VFIFO_ENABLE) + size = G_DBVFIFO_SIZE(fifo_size); + } else + size = G_T6_DBVFIFO_SIZE(fifo_size); + + if (size) { + md->base = G_BASEADDR(t4_read_reg(sc, + A_SGE_DBVFIFO_BADDR)); + md->limit = md->base + (size << 2) - 1; + } } md++; md->base = t4_read_reg(sc, A_ULP_RX_CTX_BASE); - md->limit = md->base + sc->tids.ntids - 1; + md->limit = 0; md++; md->base = t4_read_reg(sc, A_ULP_TX_ERR_TABLE_BASE); - md->limit = md->base + sc->tids.ntids - 1; + md->limit = 0; md++; md->base = sc->vres.ocq.start; @@ -6855,29 +6956,37 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) t4_read_reg(sc, A_TP_CMM_MM_MAX_PSTRUCT)); for (i = 0; i < 4; i++) { - lo = t4_read_reg(sc, A_MPS_RX_PG_RSV0 + i * 4); - if (is_t4(sc)) { - used = G_USED(lo); - alloc = G_ALLOC(lo); - } else { + if (chip_id(sc) > CHELSIO_T5) + lo = t4_read_reg(sc, A_MPS_RX_MAC_BG_PG_CNT0 + i * 4); + else + lo = t4_read_reg(sc, A_MPS_RX_PG_RSV0 + i * 4); + if (is_t5(sc)) { used = G_T5_USED(lo); alloc = G_T5_ALLOC(lo); + } else { + used = G_USED(lo); + alloc = G_ALLOC(lo); } + /* For T6 these are MAC buffer groups */ sbuf_printf(sb, "\nPort %d using %u pages out of %u allocated", - i, used, alloc); + i, used, alloc); } - for (i = 0; i < 4; i++) { - lo = t4_read_reg(sc, A_MPS_RX_PG_RSV4 + i * 4); - if (is_t4(sc)) { - used = G_USED(lo); - alloc = G_ALLOC(lo); - } else { + for (i = 0; i < sc->chip_params->nchan; i++) { + if (chip_id(sc) > CHELSIO_T5) + lo = t4_read_reg(sc, A_MPS_RX_LPBK_BG_PG_CNT0 + i * 4); + else + lo = t4_read_reg(sc, A_MPS_RX_PG_RSV4 + i * 4); + if (is_t5(sc)) { used = G_T5_USED(lo); alloc = G_T5_ALLOC(lo); + } else { + used = G_USED(lo); + alloc = G_ALLOC(lo); } + /* For T6 these are MAC buffer groups */ sbuf_printf(sb, - "\nLoopback %d using %u pages out of %u allocated", - i, used, alloc); + "\nLoopback %d using %u pages out of %u allocated", + i, used, alloc); } rc = sbuf_finish(sb); @@ -6899,7 +7008,9 @@ sysctl_mps_tcam(SYSCTL_HANDLER_ARGS) { struct adapter *sc = arg1; struct sbuf *sb; - int rc, i, n; + int rc, i; + + MPASS(chip_id(sc) <= CHELSIO_T5); rc = sysctl_wire_old_buffer(req, 0); if (rc != 0) @@ -6912,22 +7023,18 @@ sysctl_mps_tcam(SYSCTL_HANDLER_ARGS) sbuf_printf(sb, "Idx Ethernet address Mask Vld Ports PF" " VF Replication P0 P1 P2 P3 ML"); - n = is_t4(sc) ? NUM_MPS_CLS_SRAM_L_INSTANCES : - NUM_MPS_T5_CLS_SRAM_L_INSTANCES; - for (i = 0; i < n; i++) { + for (i = 0; i < sc->chip_params->mps_tcam_size; i++) { uint64_t tcamx, tcamy, mask; uint32_t cls_lo, cls_hi; uint8_t addr[ETHER_ADDR_LEN]; tcamy = t4_read_reg64(sc, MPS_CLS_TCAM_Y_L(i)); tcamx = t4_read_reg64(sc, MPS_CLS_TCAM_X_L(i)); - cls_lo = t4_read_reg(sc, MPS_CLS_SRAM_L(i)); - cls_hi = t4_read_reg(sc, MPS_CLS_SRAM_H(i)); - if (tcamx & tcamy) continue; - tcamxy2valmask(tcamx, tcamy, addr, &mask); + cls_lo = t4_read_reg(sc, MPS_CLS_SRAM_L(i)); + cls_hi = t4_read_reg(sc, MPS_CLS_SRAM_H(i)); sbuf_printf(sb, "\n%3u %02x:%02x:%02x:%02x:%02x:%02x %012jx" " %c %#x%4u%4d", i, addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], (uintmax_t)mask, @@ -6957,8 +7064,7 @@ sysctl_mps_tcam(SYSCTL_HANDLER_ARGS) end_synchronized_op(sc, 0); if (rc != 0) { - sbuf_printf(sb, - " ------------ error %3u ------------", rc); + sbuf_printf(sb, "%36d", rc); rc = 0; } else { sbuf_printf(sb, " %08x %08x %08x %08x", @@ -6985,6 +7091,162 @@ sysctl_mps_tcam(SYSCTL_HANDLER_ARGS) } static int +sysctl_mps_tcam_t6(SYSCTL_HANDLER_ARGS) +{ + struct adapter *sc = arg1; + struct sbuf *sb; + int rc, i; + + MPASS(chip_id(sc) > CHELSIO_T5); + + rc = sysctl_wire_old_buffer(req, 0); + if (rc != 0) + return (rc); + + sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req); + if (sb == NULL) + return (ENOMEM); + + sbuf_printf(sb, "Idx Ethernet address Mask VNI Mask" + " IVLAN Vld DIP_Hit Lookup Port Vld Ports PF VF" + " Replication" + " P0 P1 P2 P3 ML\n"); + + for (i = 0; i < sc->chip_params->mps_tcam_size; i++) { + uint8_t dip_hit, vlan_vld, lookup_type, port_num; + uint16_t ivlan; + uint64_t tcamx, tcamy, val, mask; + uint32_t cls_lo, cls_hi, ctl, data2, vnix, vniy; + uint8_t addr[ETHER_ADDR_LEN]; + + ctl = V_CTLREQID(1) | V_CTLCMDTYPE(0) | V_CTLXYBITSEL(0); + if (i < 256) + ctl |= V_CTLTCAMINDEX(i) | V_CTLTCAMSEL(0); + else + ctl |= V_CTLTCAMINDEX(i - 256) | V_CTLTCAMSEL(1); + t4_write_reg(sc, A_MPS_CLS_TCAM_DATA2_CTL, ctl); + val = t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA1_REQ_ID1); + tcamy = G_DMACH(val) << 32; + tcamy |= t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA0_REQ_ID1); + data2 = t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA2_REQ_ID1); + lookup_type = G_DATALKPTYPE(data2); + port_num = G_DATAPORTNUM(data2); + if (lookup_type && lookup_type != M_DATALKPTYPE) { + /* Inner header VNI */ + vniy = ((data2 & F_DATAVIDH2) << 23) | + (G_DATAVIDH1(data2) << 16) | G_VIDL(val); + dip_hit = data2 & F_DATADIPHIT; + vlan_vld = 0; + } else { + vniy = 0; + dip_hit = 0; + vlan_vld = data2 & F_DATAVIDH2; + ivlan = G_VIDL(val); + } + + ctl |= V_CTLXYBITSEL(1); + t4_write_reg(sc, A_MPS_CLS_TCAM_DATA2_CTL, ctl); + val = t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA1_REQ_ID1); + tcamx = G_DMACH(val) << 32; + tcamx |= t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA0_REQ_ID1); + data2 = t4_read_reg(sc, A_MPS_CLS_TCAM_RDATA2_REQ_ID1); + if (lookup_type && lookup_type != M_DATALKPTYPE) { + /* Inner header VNI mask */ + vnix = ((data2 & F_DATAVIDH2) << 23) | + (G_DATAVIDH1(data2) << 16) | G_VIDL(val); + } else + vnix = 0; + + if (tcamx & tcamy) + continue; + tcamxy2valmask(tcamx, tcamy, addr, &mask); + + cls_lo = t4_read_reg(sc, MPS_CLS_SRAM_L(i)); + cls_hi = t4_read_reg(sc, MPS_CLS_SRAM_H(i)); + + if (lookup_type && lookup_type != M_DATALKPTYPE) { + sbuf_printf(sb, "\n%3u %02x:%02x:%02x:%02x:%02x:%02x " + "%012jx %06x %06x - - %3c" + " 'I' %4x %3c %#x%4u%4d", i, addr[0], + addr[1], addr[2], addr[3], addr[4], addr[5], + (uintmax_t)mask, vniy, vnix, dip_hit ? 'Y' : 'N', + port_num, cls_lo & F_T6_SRAM_VLD ? 'Y' : 'N', + G_PORTMAP(cls_hi), G_T6_PF(cls_lo), + cls_lo & F_T6_VF_VALID ? G_T6_VF(cls_lo) : -1); + } else { + sbuf_printf(sb, "\n%3u %02x:%02x:%02x:%02x:%02x:%02x " + "%012jx - - ", i, addr[0], addr[1], + addr[2], addr[3], addr[4], addr[5], + (uintmax_t)mask); + + if (vlan_vld) + sbuf_printf(sb, "%4u Y ", ivlan); + else + sbuf_printf(sb, " - N "); + + sbuf_printf(sb, "- %3c %4x %3c %#x%4u%4d", + lookup_type ? 'I' : 'O', port_num, + cls_lo & F_T6_SRAM_VLD ? 'Y' : 'N', + G_PORTMAP(cls_hi), G_T6_PF(cls_lo), + cls_lo & F_T6_VF_VALID ? G_T6_VF(cls_lo) : -1); + } + + + if (cls_lo & F_T6_REPLICATE) { + struct fw_ldst_cmd ldst_cmd; + + memset(&ldst_cmd, 0, sizeof(ldst_cmd)); + ldst_cmd.op_to_addrspace = + htobe32(V_FW_CMD_OP(FW_LDST_CMD) | + F_FW_CMD_REQUEST | F_FW_CMD_READ | + V_FW_LDST_CMD_ADDRSPACE(FW_LDST_ADDRSPC_MPS)); + ldst_cmd.cycles_to_len16 = htobe32(FW_LEN16(ldst_cmd)); + ldst_cmd.u.mps.rplc.fid_idx = + htobe16(V_FW_LDST_CMD_FID(FW_LDST_MPS_RPLC) | + V_FW_LDST_CMD_IDX(i)); + + rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK, + "t6mps"); + if (rc) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri Mar 4 13:58:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D1BE9DA4CA; Fri, 4 Mar 2016 13:58:41 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 E2F4F3E4; Fri, 4 Mar 2016 13:58:40 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24Dwdbr092919; Fri, 4 Mar 2016 13:58:39 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24DwdAu092918; Fri, 4 Mar 2016 13:58:39 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201603041358.u24DwdAu092918@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 4 Mar 2016 13:58:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296384 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 13:58:41 -0000 Author: bapt Date: Fri Mar 4 13:58:39 2016 New Revision: 296384 URL: https://svnweb.freebsd.org/changeset/base/296384 Log: Also remove libcapsicum and libexec/casper after the casper changes Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Fri Mar 4 13:11:13 2016 (r296383) +++ head/ObsoleteFiles.inc Fri Mar 4 13:58:39 2016 (r296384) @@ -59,6 +59,15 @@ OLD_FILES+=libexec/casper/grp OLD_FILES+=libexec/casper/pwd OLD_FILES+=libexec/casper/random OLD_FILES+=libexec/casper/sysctl +OLD_DIRS+=libexec/casper +OLD_FILES+=usr/lib/libcapsicum.a +OLD_FILES+=usr/lib/libcapsicum.so +OLD_LIBS+=lib/libcapsicum.so.0 +OLD_FILES+=usr/lib/libcapsicum_p.a +OLD_FILES+=usr/lib32/libcapsicum.a +OLD_FILES+=usr/lib32/libcapsicum.so +OLD_LIBS+=usr/lib32/libcapsicum.so.0 +OLD_FILES+=usr/lib32/libcapsicum_p.a # 20160223: functionality from mkulzma(1) merged into mkuzip(1) OLD_FILES+=usr/bin/mkulzma # 20160211: Remove obsolete unbound-control-setup From owner-svn-src-head@freebsd.org Fri Mar 4 14:23:35 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5C2E9DAD96; Fri, 4 Mar 2016 14:23:35 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 781B633C; Fri, 4 Mar 2016 14:23:35 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24ENYAl002154; Fri, 4 Mar 2016 14:23:34 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24ENYTq002153; Fri, 4 Mar 2016 14:23:34 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201603041423.u24ENYTq002153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 4 Mar 2016 14:23:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296385 - head/sys/dev/e1000 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 14:23:35 -0000 Author: sbruno Date: Fri Mar 4 14:23:34 2016 New Revision: 296385 URL: https://svnweb.freebsd.org/changeset/base/296385 Log: The register read/write mphy functions have misleading whitespace around the locked check. This cleanup merely preserves the existing functionality while improving the ready check. Submitted by: Jim Thompson Reviewed by: gnn erj Obtained from: Netgate MFC after: 2 weeks Sponsored by: Netgate Differential Revision: https://reviews.freebsd.org/D5448 Modified: head/sys/dev/e1000/e1000_phy.c Modified: head/sys/dev/e1000/e1000_phy.c ============================================================================== --- head/sys/dev/e1000/e1000_phy.c Fri Mar 4 13:58:39 2016 (r296384) +++ head/sys/dev/e1000/e1000_phy.c Fri Mar 4 14:23:34 2016 (r296385) @@ -4146,13 +4146,12 @@ s32 e1000_read_phy_reg_mphy(struct e1000 *data = E1000_READ_REG(hw, E1000_MPHY_DATA); /* Disable access to mPHY if it was originally disabled */ - if (locked) + if (locked) { ready = e1000_is_mphy_ready(hw); if (!ready) return -E1000_ERR_PHY; - E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, - E1000_MPHY_DIS_ACCESS); - + } + E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, E1000_MPHY_DIS_ACCESS); return E1000_SUCCESS; } @@ -4211,13 +4210,12 @@ s32 e1000_write_phy_reg_mphy(struct e100 E1000_WRITE_REG(hw, E1000_MPHY_DATA, data); /* Disable access to mPHY if it was originally disabled */ - if (locked) + if (locked) { ready = e1000_is_mphy_ready(hw); if (!ready) return -E1000_ERR_PHY; - E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, - E1000_MPHY_DIS_ACCESS); - + } + E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, E1000_MPHY_DIS_ACCESS); return E1000_SUCCESS; } From owner-svn-src-head@freebsd.org Fri Mar 4 15:30:42 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DADBB9DB9CE; Fri, 4 Mar 2016 15:30:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 8EFFCE4D; Fri, 4 Mar 2016 15:30:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24FUfYx021610; Fri, 4 Mar 2016 15:30:41 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24FUfu5021609; Fri, 4 Mar 2016 15:30:41 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603041530.u24FUfu5021609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Fri, 4 Mar 2016 15:30:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296386 - head/lib/libc/rpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 15:30:43 -0000 Author: pfg Date: Fri Mar 4 15:30:41 2016 New Revision: 296386 URL: https://svnweb.freebsd.org/changeset/base/296386 Log: Work around aliasing issues detected in modern GCC. Avoid casting gymnastics that lead to pointer aliasing by introducing an inline function as done in NetBSD (but without #if0'd WIP code). Obtained from: NetBSD (CVS Rev. 1.24, 1.25) Modified: head/lib/libc/rpc/clnt_vc.c Modified: head/lib/libc/rpc/clnt_vc.c ============================================================================== --- head/lib/libc/rpc/clnt_vc.c Fri Mar 4 14:23:34 2016 (r296385) +++ head/lib/libc/rpc/clnt_vc.c Fri Mar 4 15:30:41 2016 (r296386) @@ -502,6 +502,20 @@ clnt_vc_abort(CLIENT *cl) { } +static __inline void +htonlp(void *dst, const void *src, uint32_t incr) +{ + /* We are aligned, so we think */ + *(uint32_t *)dst = htonl(*(const uint32_t *)src + incr); +} + +static __inline void +ntohlp(void *dst, const void *src) +{ + /* We are aligned, so we think */ + *(uint32_t *)dst = htonl(*(const uint32_t *)src); +} + static bool_t clnt_vc_control(CLIENT *cl, u_int request, void *info) { @@ -576,14 +590,12 @@ clnt_vc_control(CLIENT *cl, u_int reques * first element in the call structure * This will get the xid of the PREVIOUS call */ - *(u_int32_t *)info = - ntohl(*(u_int32_t *)(void *)&ct->ct_u.ct_mcalli); + ntohlp(info, &ct->ct_u.ct_mcalli); break; case CLSET_XID: /* This will set the xid of the NEXT call */ - *(u_int32_t *)(void *)&ct->ct_u.ct_mcalli = - htonl(*((u_int32_t *)info) + 1); /* increment by 1 as clnt_vc_call() decrements once */ + htonlp(&ct->ct_u.ct_mcalli, info, 1); break; case CLGET_VERS: /* @@ -592,15 +604,11 @@ clnt_vc_control(CLIENT *cl, u_int reques * begining of the RPC header. MUST be changed if the * call_struct is changed */ - *(u_int32_t *)info = - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + - 4 * BYTES_PER_XDR_UNIT)); + ntohlp(info, ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT); break; case CLSET_VERS: - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + - 4 * BYTES_PER_XDR_UNIT) = - htonl(*(u_int32_t *)info); + htonlp(ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT, info, 0); break; case CLGET_PROG: @@ -610,15 +618,11 @@ clnt_vc_control(CLIENT *cl, u_int reques * begining of the RPC header. MUST be changed if the * call_struct is changed */ - *(u_int32_t *)info = - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + - 3 * BYTES_PER_XDR_UNIT)); + ntohlp(info, ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT); break; case CLSET_PROG: - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + - 3 * BYTES_PER_XDR_UNIT) = - htonl(*(u_int32_t *)info); + htonlp(ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT, info, 0); break; default: From owner-svn-src-head@freebsd.org Fri Mar 4 16:03:17 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0ECFA9DA6E7; Fri, 4 Mar 2016 16:03:17 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 D45E9627; Fri, 4 Mar 2016 16:03:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24G3FTH033039; Fri, 4 Mar 2016 16:03:15 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24G3F3V033038; Fri, 4 Mar 2016 16:03:15 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201603041603.u24G3F3V033038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 4 Mar 2016 16:03:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296387 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 16:03:17 -0000 Author: emaste Date: Fri Mar 4 16:03:15 2016 New Revision: 296387 URL: https://svnweb.freebsd.org/changeset/base/296387 Log: Add dd as a bootstrap tool, for status= support In r295757 I added status=none to buildworld's use of dd, but FreeBSD versions before April 2014 lack support. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Fri Mar 4 15:30:41 2016 (r296386) +++ head/Makefile.inc1 Fri Mar 4 16:03:15 2016 (r296387) @@ -1471,6 +1471,11 @@ ${_bt}-usr.sbin/nmtree: ${_bt}-lib/libne _cat= bin/cat .endif +# r264059 support for status= +.if ${BOOTSTRAPPING} < 1100017 +_dd= bin/dd +.endif + # r277259 crunchide: Correct 64-bit section header offset # r281674 crunchide: always include both 32- and 64-bit ELF support # r285986 crunchen: use STRIPBIN rather than STRIP @@ -1546,6 +1551,7 @@ bootstrap-tools: .PHONY ${_dtc} \ ${_awk} \ ${_cat} \ + ${_dd} \ usr.bin/lorder \ ${_libopenbsd} \ ${_makewhatis} \ From owner-svn-src-head@freebsd.org Fri Mar 4 16:37:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E27D9DA509 for ; Fri, 4 Mar 2016 16:37:55 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (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 01A91C7C for ; Fri, 4 Mar 2016 16:37:54 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 8612721f-e227-11e5-8dfb-c75234cc769e X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.34.117.227 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Fri, 4 Mar 2016 16:38:28 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.14.9) with ESMTP id u24GbkDW003861; Fri, 4 Mar 2016 09:37:46 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1457109466.13785.140.camel@freebsd.org> Subject: Re: svn commit: r296387 - head From: Ian Lepore To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Fri, 04 Mar 2016 09:37:46 -0700 In-Reply-To: <201603041603.u24G3F3V033038@repo.freebsd.org> References: <201603041603.u24G3F3V033038@repo.freebsd.org> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 16:37:55 -0000 On Fri, 2016-03-04 at 16:03 +0000, Ed Maste wrote: > Author: emaste > Date: Fri Mar 4 16:03:15 2016 > New Revision: 296387 > URL: https://svnweb.freebsd.org/changeset/base/296387 > > Log: > Add dd as a bootstrap tool, for status= support > > In r295757 I added status=none to buildworld's use of dd, but > FreeBSD > versions before April 2014 lack support. > > Modified: > head/Makefile.inc1 It seems like at this point the amount of base NOT being built as a bootstrap tool is becoming pretty small. Couldn't a >/dev/null at the point of use have gotten rid of the progress/status output? -- Ian From owner-svn-src-head@freebsd.org Fri Mar 4 16:43:16 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 599BC9DA7FB; Fri, 4 Mar 2016 16:43:16 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4BB301FF; Fri, 4 Mar 2016 16:43:16 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 4556F1EA6; Fri, 4 Mar 2016 16:43:16 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id EE2C1D460; Fri, 4 Mar 2016 16:43:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id Gk1D4FlZu8V0; Fri, 4 Mar 2016 16:43:13 +0000 (UTC) Subject: Re: svn commit: r296387 - head DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com C5D94D459 To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603041603.u24G3F3V033038@repo.freebsd.org> From: Bryan Drewery Organization: FreeBSD Message-ID: <56D9BB1D.7040300@FreeBSD.org> Date: Fri, 4 Mar 2016 08:43:09 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201603041603.u24G3F3V033038@repo.freebsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 16:43:16 -0000 On 3/4/16 8:03 AM, Ed Maste wrote: > Author: emaste > Date: Fri Mar 4 16:03:15 2016 > New Revision: 296387 > URL: https://svnweb.freebsd.org/changeset/base/296387 > > Log: > Add dd as a bootstrap tool, for status= support > > In r295757 I added status=none to buildworld's use of dd, but FreeBSD > versions before April 2014 lack support. > > Modified: > head/Makefile.inc1 > > Modified: head/Makefile.inc1 > ============================================================================== > --- head/Makefile.inc1 Fri Mar 4 15:30:41 2016 (r296386) > +++ head/Makefile.inc1 Fri Mar 4 16:03:15 2016 (r296387) > @@ -1471,6 +1471,11 @@ ${_bt}-usr.sbin/nmtree: ${_bt}-lib/libne > _cat= bin/cat > .endif > > +# r264059 support for status= > +.if ${BOOTSTRAPPING} < 1100017 > +_dd= bin/dd > +.endif > + > # r277259 crunchide: Correct 64-bit section header offset > # r281674 crunchide: always include both 32- and 64-bit ELF support > # r285986 crunchen: use STRIPBIN rather than STRIP > @@ -1546,6 +1551,7 @@ bootstrap-tools: .PHONY > ${_dtc} \ > ${_awk} \ > ${_cat} \ > + ${_dd} \ > usr.bin/lorder \ > ${_libopenbsd} \ > ${_makewhatis} \ > Thanks! It's trivial so worth having. We should discuss what our "oldest supported upgrade" release should be as currently it is 8.1. -- Regards, Bryan Drewery From owner-svn-src-head@freebsd.org Fri Mar 4 17:15:54 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C27C99DB76B; Fri, 4 Mar 2016 17:15:54 +0000 (UTC) (envelope-from jean-sebastien.pedron@dumbbell.fr) Received: from mail.made4.biz (mail.made4.biz [IPv6:2001:41d0:2:c018::1:3]) (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 8ED99A36; Fri, 4 Mar 2016 17:15:54 +0000 (UTC) (envelope-from jean-sebastien.pedron@dumbbell.fr) Received: from [176.158.145.63] (helo=magellan.dumbbell.fr) by mail.made4.biz with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86 (FreeBSD)) (envelope-from ) id 1abtKS-0004zs-IW; Fri, 04 Mar 2016 18:15:52 +0100 Subject: Re: svn commit: r296351 - head/contrib/openresolv To: "Pedro F. Giffuni" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603031536.u23Fa1kX092706@repo.freebsd.org> From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Message-ID: <56D9C2C3.2070604@dumbbell.fr> Date: Fri, 4 Mar 2016 18:15:47 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201603031536.u23Fa1kX092706@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="bLtaBR4OC7U78X7Nxxh2Kh4KAs467g05N" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 17:15:54 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --bLtaBR4OC7U78X7Nxxh2Kh4KAs467g05N Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 03/03/2016 16:36, Pedro F. Giffuni wrote: > Author: pfg > Date: Thu Mar 3 15:36:00 2016 > New Revision: 296351 > URL: https://svnweb.freebsd.org/changeset/base/296351 >=20 > Log: > MFV r296350: > Split each domain again after striping any trailing dot. Thank you very much! That was fast :) --=20 Jean-S=C3=A9bastien P=C3=A9dron --bLtaBR4OC7U78X7Nxxh2Kh4KAs467g05N Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJW2cLDXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NzA4N0ZEMUFFQUUwRTEyREJDNkE2RjAz OUU5OTc2MUE1RkQ5NENDAAoJEDnpl2Gl/ZTMFJ8QAJRlqDB+xgaBMvpCqONfrI3g ENtIejXI9m1BJzWN/0M1HcaIjUawmlUjMFAueySKarM7Sg2GeHnK4h0gPGBiad8d 3LFJv4HfPAh/IDPpmooeVSr4qYO6rKTtkhTOEKwNXjzTmCpUB6g4KXvG4S0I72f1 197neqajpOS+vYwcx4lIm+IwAHiPeuJFyJSbIhxtxdtI51KTLpfUlq+esyLLrmfr uhBMMQ3/y4fEYbE9XcPUfrorBFzOtFUqKfSXWodPfcqfhBbbPfhjALliZqHz5tUn nlG9iISrvMvHRZEw4oKdgeo0ut0eDqfNO6enlPDqpJcsu/j5ZsjsTsmS4YJZBiWl Y2Nbp1oLFivLKppsMA5a3luLYnD7B8IZd3sgxfbA/Iwh7xwcs6g5PBwxII3R1xWw zwje0qKzSK2aUmuMgtTySUv1ict8CmT4AHd49ljbhKDjaNX7H9R+rQQnOBT8eUcl tFF07SxiGZEJVttekB9CPvaEnLiy2Tik6GlntpcRYYbxarvPtACmJd7XLJXoWpdT r1d4WQl4Y8rRr9PaumNpBZX76SPivPkVLMmMPjJGiAiA7Nra3+TFoc3Ny9yOtzwX iG/HgW4/+J2H6zfwMjtY5BGwocSaoackKRUPA6uepj3gM6K6ca1iMfVRc3mZzG4M 4JkAU7Qvuhi0wyIasZzf =gKjY -----END PGP SIGNATURE----- --bLtaBR4OC7U78X7Nxxh2Kh4KAs467g05N-- From owner-svn-src-head@freebsd.org Fri Mar 4 17:24:29 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E93F99DBB4C; Fri, 4 Mar 2016 17:24:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B73F41DA; Fri, 4 Mar 2016 17:24:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24HOSdj058190; Fri, 4 Mar 2016 17:24:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24HOSUs058189; Fri, 4 Mar 2016 17:24:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201603041724.u24HOSUs058189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 4 Mar 2016 17:24:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296388 - head/sys/fs/nullfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 17:24:30 -0000 Author: kib Date: Fri Mar 4 17:24:28 2016 New Revision: 296388 URL: https://svnweb.freebsd.org/changeset/base/296388 Log: Pass MNTK_NO_IOPF and MNTK_UNMAPPED_BUFS flags from the lower filesystem to the nullfs mount. MNTK_NO_IOPF must be present on the nullfs struct mount so that struct file fo_read and fo_write fops operate in the mode requested by the lower mount. MNTK_UNMAPPED_BUFS allows VOP_GETPAGES() to use unmapped buffers. It does not matter for VOP_GETPAGES() calls from vm_fault() since handle of the vm_object always points to the lower vnode. But it may be useful for other situations where VOP_GETPAGES() is used. Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/fs/nullfs/null_vfsops.c Modified: head/sys/fs/nullfs/null_vfsops.c ============================================================================== --- head/sys/fs/nullfs/null_vfsops.c Fri Mar 4 16:03:15 2016 (r296387) +++ head/sys/fs/nullfs/null_vfsops.c Fri Mar 4 17:24:28 2016 (r296388) @@ -199,7 +199,7 @@ nullfs_mount(struct mount *mp) } mp->mnt_kern_flag |= MNTK_LOOKUP_EXCL_DOTDOT; mp->mnt_kern_flag |= lowerrootvp->v_mount->mnt_kern_flag & - MNTK_USES_BCACHE; + (MNTK_USES_BCACHE | MNTK_NO_IOPF | MNTK_UNMAPPED_BUFS); MNT_IUNLOCK(mp); mp->mnt_data = xmp; vfs_getnewfsid(mp); From owner-svn-src-head@freebsd.org Fri Mar 4 17:41:27 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7194B9DA1AA; Fri, 4 Mar 2016 17:41:27 +0000 (UTC) (envelope-from jhb@freebsd.org) 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 52D38DDB; Fri, 4 Mar 2016 17:41:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id EE53BB93A; Fri, 4 Mar 2016 12:41:25 -0500 (EST) From: John Baldwin To: Maxim Konovalov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296277 - in head: share/man/man4 sys/conf sys/kern sys/modules sys/modules/aio sys/sys tests/sys/aio Date: Fri, 04 Mar 2016 09:17:15 -0800 Message-ID: <4270767.V503NG6MJz@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <56D6A8D0.9030705@gmail.com> References: <201603011812.u21ICEqt071147@repo.freebsd.org> <56D6A8D0.9030705@gmail.com> 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); Fri, 04 Mar 2016 12:41:26 -0500 (EST) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 17:41:27 -0000 On Wednesday, March 02, 2016 11:48:16 AM Maxim Konovalov wrote: > Hi John, > > On 3/1/16 9:12 PM, John Baldwin wrote: > > Author: jhb > > Date: Tue Mar 1 18:12:14 2016 > > New Revision: 296277 > > URL: https://svnweb.freebsd.org/changeset/base/296277 > > > > Log: > > Refactor the AIO subsystem to permit file-type-specific handling and > > improve cancellation robustness. > [...] > > Nice work! > > It deserves its own entry in UPDATING. What do you think? Yes, it certainly does. It probably should have had Relnotes: yes as well. -- John Baldwin From owner-svn-src-head@freebsd.org Fri Mar 4 17:43:01 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31A649DA2EB; Fri, 4 Mar 2016 17:43:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 04E10172; Fri, 4 Mar 2016 17:43:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24Hh0hC064499; Fri, 4 Mar 2016 17:43:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24Hh0UT064495; Fri, 4 Mar 2016 17:43:00 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201603041743.u24Hh0UT064495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 4 Mar 2016 17:43:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296389 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 17:43:01 -0000 Author: jhb Date: Fri Mar 4 17:42:59 2016 New Revision: 296389 URL: https://svnweb.freebsd.org/changeset/base/296389 Log: Add an UPDATING entry for the recent AIO changes. Suggested by: maxim Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Fri Mar 4 17:24:28 2016 (r296388) +++ head/UPDATING Fri Mar 4 17:42:59 2016 (r296389) @@ -31,6 +31,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160301: + The AIO subsystem is now a standard part of the kernel. The + VFS_AIO kernel option and aio.ko kernel module have been removed. + Due to stability concerns, asynchronous I/O requests are only + permitted on sockets and raw disks by default. To enable + asynchronous I/O requests on all file types, set the + vfs.aio.enable_unsafe sysctl to a non-zero value. + 20160226: The ELF object manipulation tool objcopy is now provided by the ELF Tool Chain project rather than by GNU binutils. It should be a From owner-svn-src-head@freebsd.org Fri Mar 4 17:49:12 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1741C9DA577 for ; Fri, 4 Mar 2016 17:49:12 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com [IPv6:2607:f8b0:400d:c09::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D90D4635 for ; Fri, 4 Mar 2016 17:49:11 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk0-x229.google.com with SMTP id s68so23783423qkh.3 for ; Fri, 04 Mar 2016 09:49:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc; bh=jkhCnoP0qqGuOyiCS3I9sWvImUlCIvNvY6mBAaBni1w=; b=SAAjKBgTYmbTqpOI3N9o64hOQ9waNvaQACQOVFYHV9mojhQk0hlIa4AvHT+5zjNwQM lHTdpyBK+AJgoN6UxMexSNcZXVHqNJNTvG8cMMZwbN6a7CH3gL3DGnaHVkOWn30frR4G HgnvwGzYRI3OCX5FU9eTuJ7p3hfdDUlsPTqWpRK8gLXAop7snTf7mN04Hc7Bv4H2rYTS Co9PHCVeHUg059YqXmi1SacSwoWQ3/+N+T+stSGOl4SOmZMtTaCych+iBzG5zExMWHGk Xh8tPbAwFMWyXzXckqrn7kF48srB6tqoQGi3pkl0b0nJTq0l/TcWJqjQORfqjA9gcLGR gMzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc; bh=jkhCnoP0qqGuOyiCS3I9sWvImUlCIvNvY6mBAaBni1w=; b=AxFyrljLzONn8xnh2r/ozjeRRvqWjB33b8gt/wtvFPsNNAGDnoqZqC6YiqOww255Rc wpY6rlf+OwgCarT8/BBk5W3CSK1+y/UXybjCeYjR7SXe0/99HjqH6VyqDLghXqkIWSbg /7czHJL5LxgpHTcNE82pshYj4Msj4GsfmWH3p0YioigiRYs1pOCgvI8Eg9uhfAs9Kg2X q0UCSGnrguItxYYmz/exhy7ljfszhT7dYnxqVNmPGF2YaF8a9AfNzIGksg5LIEke4+LG zB31MbjM7f5FIKiD+Dpvw0I9vzId86Aq/KwD4CpoelpCGI8cOCZFw1cu5HGOzBNUb1QB t5RQ== X-Gm-Message-State: AD7BkJLh/mpHdKTn02CTyU+8DL32lIowmr4N6wiTDIqsCx4J6hmxo6LXZP+p59hYszTsw3PIANdFUOmRqGXAsA== MIME-Version: 1.0 X-Received: by 10.55.81.87 with SMTP id f84mr11652494qkb.10.1457113750452; Fri, 04 Mar 2016 09:49:10 -0800 (PST) Sender: wlosh@bsdimp.com Received: by 10.140.30.166 with HTTP; Fri, 4 Mar 2016 09:49:10 -0800 (PST) X-Originating-IP: [50.253.99.174] In-Reply-To: <56D9BB1D.7040300@FreeBSD.org> References: <201603041603.u24G3F3V033038@repo.freebsd.org> <56D9BB1D.7040300@FreeBSD.org> Date: Fri, 4 Mar 2016 10:49:10 -0700 X-Google-Sender-Auth: iPVHyGEMRGzMy8IGbNPqTl8D960 Message-ID: Subject: Re: svn commit: r296387 - head From: Warner Losh To: Bryan Drewery Cc: Ed Maste , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 17:49:12 -0000 On Fri, Mar 4, 2016 at 9:43 AM, Bryan Drewery wrote: > On 3/4/16 8:03 AM, Ed Maste wrote: > > Author: emaste > > Date: Fri Mar 4 16:03:15 2016 > > New Revision: 296387 > > URL: https://svnweb.freebsd.org/changeset/base/296387 > > > > Log: > > Add dd as a bootstrap tool, for status= support > > > > In r295757 I added status=none to buildworld's use of dd, but FreeBSD > > versions before April 2014 lack support. > > > > Modified: > > head/Makefile.inc1 > > > > Modified: head/Makefile.inc1 > > > ============================================================================== > > --- head/Makefile.inc1 Fri Mar 4 15:30:41 2016 (r296386) > > +++ head/Makefile.inc1 Fri Mar 4 16:03:15 2016 (r296387) > > @@ -1471,6 +1471,11 @@ ${_bt}-usr.sbin/nmtree: ${_bt}-lib/libne > > _cat= bin/cat > > .endif > > > > +# r264059 support for status= > > +.if ${BOOTSTRAPPING} < 1100017 > > +_dd= bin/dd > > +.endif > > + > > # r277259 crunchide: Correct 64-bit section header offset > > # r281674 crunchide: always include both 32- and 64-bit ELF support > > # r285986 crunchen: use STRIPBIN rather than STRIP > > @@ -1546,6 +1551,7 @@ bootstrap-tools: .PHONY > > ${_dtc} \ > > ${_awk} \ > > ${_cat} \ > > + ${_dd} \ > > usr.bin/lorder \ > > ${_libopenbsd} \ > > ${_makewhatis} \ > > > > Thanks! > > It's trivial so worth having. We should discuss what our "oldest > supported upgrade" release should be as currently it is 8.1. > We put it to 8.1 based on Juniper wanted it for their operations. Normally we'd set this closer to 9.0 or something. If Juniper no longer needs it, we should move up to 9.0 since that's typically what we've done in the past at this point in the release cycle. Warner From owner-svn-src-head@freebsd.org Fri Mar 4 18:28:21 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5851FA0972F; Fri, 4 Mar 2016 18:28:21 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 25C3EF66; Fri, 4 Mar 2016 18:28:21 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24ISKRd076871; Fri, 4 Mar 2016 18:28:20 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24ISKl8076870; Fri, 4 Mar 2016 18:28:20 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201603041828.u24ISKl8076870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 4 Mar 2016 18:28:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296391 - head/contrib/elftoolchain/elfcopy X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 18:28:21 -0000 Author: emaste Date: Fri Mar 4 18:28:19 2016 New Revision: 296391 URL: https://svnweb.freebsd.org/changeset/base/296391 Log: elfcopy: fail if debug link target is empty An empty debug link target previously returned a confusing and incorrect error like "objcopy: fread failed: No error: 0". Now, return an explicit error. GNU objcopy allows an empty file as the debug link target. However, that case is nonsensical so diverging from GNU behaviour is fine. Reviewed by: bdrewery Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5541 Modified: head/contrib/elftoolchain/elfcopy/sections.c Modified: head/contrib/elftoolchain/elfcopy/sections.c ============================================================================== --- head/contrib/elftoolchain/elfcopy/sections.c Fri Mar 4 18:17:53 2016 (r296390) +++ head/contrib/elftoolchain/elfcopy/sections.c Fri Mar 4 18:28:19 2016 (r296391) @@ -1522,6 +1522,9 @@ add_gnu_debuglink(struct elfcopy *ecp) err(EXIT_FAILURE, "strdup failed"); if (stat(ecp->debuglink, &sb) == -1) err(EXIT_FAILURE, "stat failed"); + if (sb.st_size == 0) + errx(EXIT_FAILURE, "empty debug link target %s", + ecp->debuglink); if ((buf = malloc(sb.st_size)) == NULL) err(EXIT_FAILURE, "malloc failed"); if ((fp = fopen(ecp->debuglink, "r")) == NULL) From owner-svn-src-head@freebsd.org Fri Mar 4 19:12:41 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 091949DA922; Fri, 4 Mar 2016 19:12:41 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CA378D17; Fri, 4 Mar 2016 19:12:40 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x22b.google.com with SMTP id m184so72493797iof.1; Fri, 04 Mar 2016 11:12:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=oQLblOLfBV0ydd1Yx0y5RlrhuDvGvznbMhLVsXdrc8g=; b=Ee6o3oO9Ab+qSev8QgrDIx3NlUtXV/hI6DlE7EiZ0bjRpwRByND0X59Zdxgzy9q9i9 tco5bsrAtnVUsjkGC1YqKnmYWXb1NJuL97xOvMTYmP5s5y0iTJ0vRqYMhpTYMV/rqi7G DSmbH6yQKcyB50OC6nH+QuYQf9EBECUoLf1cYKn2gdWSoKVyGF6w3xLk+cNGV6mX8jqL cUKYtwihArfdROKkkbGbnFrIaaBUvX3iGzBpTfeCki6S5kgw6CxRWRqPnWHzo2iW3aS9 xHX/qdhW+sxntFqUlBjRMN8t/22cygMs6cn2o4dyOMYn1rrT7Y+EqjzZ78+Xmj4ZqYDT 5Hpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=oQLblOLfBV0ydd1Yx0y5RlrhuDvGvznbMhLVsXdrc8g=; b=WEAdYo1+/yWGAMS3HRrORYgBXCMiOz/cKOFQbveQ8XhgvupI99v12RYzsr2jb5EEp+ hzlkZDr/lYu5RYz+vqTZ3jbX6O94uB3lApuwdYremU3PSU+0MrXmt9p8hySScE0QHHJY 1fKyrGlnSgn5+S1aDd4uWxLe4MBePFiKsQS510Lcp23GYtQx613VlrUSm8+GnDEWu5gu J5rBWy4bPNVgEk9oM26jYDCjikzcefrMPT9UrK6Bb2N02zR/gcagigT0U/xYE0+ehiIw oul8/SSk8YMuf0iQAEJyrRuSGdpLj9aW/RIoWaaSGv0tFjA+IR/gNwOJF1aTuDNY0aXm mvSw== X-Gm-Message-State: AD7BkJIeGkuLiXyZk9S+kJsVrzrl6hRkDVtewsxnbPF6s1FBbyFBlaF4BNJqbzKjdsANtyG0D7rO15u0nO/2gQ== X-Received: by 10.107.159.148 with SMTP id i142mr9164323ioe.29.1457118760098; Fri, 04 Mar 2016 11:12:40 -0800 (PST) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.39.66 with HTTP; Fri, 4 Mar 2016 11:12:20 -0800 (PST) In-Reply-To: <1457109466.13785.140.camel@freebsd.org> References: <201603041603.u24G3F3V033038@repo.freebsd.org> <1457109466.13785.140.camel@freebsd.org> From: Ed Maste Date: Fri, 4 Mar 2016 14:12:20 -0500 X-Google-Sender-Auth: Nv_HjEWYQWAnn0EiK3xnmjgnN-o Message-ID: Subject: Re: svn commit: r296387 - head To: Ian Lepore Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 19:12:41 -0000 On 4 March 2016 at 11:37, Ian Lepore wrote: > On Fri, 2016-03-04 at 16:03 +0000, Ed Maste wrote: >> Author: emaste >> Date: Fri Mar 4 16:03:15 2016 >> New Revision: 296387 >> URL: https://svnweb.freebsd.org/changeset/base/296387 >> >> Log: >> Add dd as a bootstrap tool, for status= support >> >> In r295757 I added status=none to buildworld's use of dd, but >> FreeBSD >> versions before April 2014 lack support. >> >> Modified: >> head/Makefile.inc1 > > It seems like at this point the amount of base NOT being built as a > bootstrap tool is becoming pretty small. I'm sympathetic to the desire to avoid bloating bootstrap tools. But we're really not building all of base twice. > Couldn't a >/dev/null at the > point of use have gotten rid of the progress/status output? No, because the stats are written to stderr. I wouldn't want to redirect stderr to /dev/null because we'd lose any error that might be emitted. From owner-svn-src-head@freebsd.org Fri Mar 4 19:57:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43CFA9DBA64; Fri, 4 Mar 2016 19:57:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 06EF88B2; Fri, 4 Mar 2016 19:57:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24JvBTf004578; Fri, 4 Mar 2016 19:57:11 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24JvBJY004577; Fri, 4 Mar 2016 19:57:11 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201603041957.u24JvBJY004577@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 4 Mar 2016 19:57:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296392 - head/sys/cam/ctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 19:57:13 -0000 Author: mav Date: Fri Mar 4 19:57:11 2016 New Revision: 296392 URL: https://svnweb.freebsd.org/changeset/base/296392 Log: Set bhsdi_target_transfer_tag to reserved value, which is 0xffffffff. This should be a purely cosmetic change. Modified: head/sys/cam/ctl/ctl_frontend_iscsi.c Modified: head/sys/cam/ctl/ctl_frontend_iscsi.c ============================================================================== --- head/sys/cam/ctl/ctl_frontend_iscsi.c Fri Mar 4 18:28:19 2016 (r296391) +++ head/sys/cam/ctl/ctl_frontend_iscsi.c Fri Mar 4 19:57:11 2016 (r296392) @@ -2441,6 +2441,7 @@ cfiscsi_datamove_in(union ctl_io *io) bhsdi->bhsdi_opcode = ISCSI_BHS_OPCODE_SCSI_DATA_IN; bhsdi->bhsdi_initiator_task_tag = bhssc->bhssc_initiator_task_tag; + bhsdi->bhsdi_target_transfer_tag = 0xffffffff; bhsdi->bhsdi_datasn = htonl(PDU_EXPDATASN(request)); PDU_EXPDATASN(request)++; bhsdi->bhsdi_buffer_offset = htonl(buffer_offset); From owner-svn-src-head@freebsd.org Fri Mar 4 21:22:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3401A9DA79E; Fri, 4 Mar 2016 21:22:13 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 F2E85DE; Fri, 4 Mar 2016 21:22:12 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24LMCBL031387; Fri, 4 Mar 2016 21:22:12 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24LMCvv031386; Fri, 4 Mar 2016 21:22:12 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201603042122.u24LMCvv031386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Fri, 4 Mar 2016 21:22:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296393 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 21:22:13 -0000 Author: avos Date: Fri Mar 4 21:22:11 2016 New Revision: 296393 URL: https://svnweb.freebsd.org/changeset/base/296393 Log: net80211: fix possible overflow in IEEE80211_TU_TO_TICKS() For hz=1000 any number, greater than 4194 causes integer overflow; this change casts the number to uint64_t before operating with it. Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5268 Modified: head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Fri Mar 4 19:57:11 2016 (r296392) +++ head/sys/net80211/ieee80211_var.h Fri Mar 4 21:22:11 2016 (r296393) @@ -85,7 +85,7 @@ #define IEEE80211_MS_TO_TU(x) (((x) * 1000) / 1024) #define IEEE80211_TU_TO_MS(x) (((x) * 1024) / 1000) /* XXX TODO: cap this at 1, in case hz is not 1000 */ -#define IEEE80211_TU_TO_TICKS(x)(((x) * 1024 * hz) / (1000 * 1000)) +#define IEEE80211_TU_TO_TICKS(x)(((uint64_t)(x) * 1024 * hz) / (1000 * 1000)) /* * 802.11 control state is split into a common portion that maps From owner-svn-src-head@freebsd.org Fri Mar 4 22:03:39 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D33A4A0979E; Fri, 4 Mar 2016 22:03:39 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A44B5A38; Fri, 4 Mar 2016 22:03:39 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24M3cOO043682; Fri, 4 Mar 2016 22:03:38 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24M3c7t043681; Fri, 4 Mar 2016 22:03:38 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603042203.u24M3c7t043681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Fri, 4 Mar 2016 22:03:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296394 - head/include/rpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:03:39 -0000 Author: pfg Date: Fri Mar 4 22:03:38 2016 New Revision: 296394 URL: https://svnweb.freebsd.org/changeset/base/296394 Log: xdr: Fix xdr_rpc* defines. The defines for xdr_rpc* in xdr.h are wrong. It could be very well that Solaris did strip the '_t' from xdr_u_int32_t, but Solaris has a xdr_u_int32 function, we don't have this. So all of this defines will lead to an unresolved symbol. This explains why we do not use these functions in FreeBSD while they are used in Illumos/Solaris. Obtained from: linux libtirpc (git 7864122e61ffe4db1aa8ace89117358a1e3a391b) MFC after: 3 weeks Modified: head/include/rpc/xdr.h Modified: head/include/rpc/xdr.h ============================================================================== --- head/include/rpc/xdr.h Fri Mar 4 21:22:11 2016 (r296393) +++ head/include/rpc/xdr.h Fri Mar 4 22:03:38 2016 (r296394) @@ -219,15 +219,11 @@ xdr_putint32(XDR *xdrs, int32_t *ip) (*(xdrs)->x_ops->x_control)(xdrs, req, op) #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op) -/* - * Solaris strips the '_t' from these types -- not sure why. - * But, let's be compatible. - */ -#define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) -#define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) -#define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) -#define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) -#define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) +#define xdr_rpcvers(xdrs, versp) xdr_u_int32_t(xdrs, versp) +#define xdr_rpcprog(xdrs, progp) xdr_u_int32_t(xdrs, progp) +#define xdr_rpcproc(xdrs, procp) xdr_u_int32_t(xdrs, procp) +#define xdr_rpcprot(xdrs, protp) xdr_u_int32_t(xdrs, protp) +#define xdr_rpcport(xdrs, portp) xdr_u_int32_t(xdrs, portp) /* * Support struct for discriminated unions. From owner-svn-src-head@freebsd.org Fri Mar 4 22:11:50 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D460A09B31 for ; Fri, 4 Mar 2016 22:11:50 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm4.bullet.mail.bf1.yahoo.com (nm4.bullet.mail.bf1.yahoo.com [98.139.212.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 28064E10 for ; Fri, 4 Mar 2016 22:11:50 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1457129508; bh=D8CehB0DyT5QaiVYkgmBTfievU5lCzUCINpPxTd68NY=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=KbNmWoILssdHfaCVMz/NRLIXG5WD8CtmXWFeiOTzBjnMuT5Y4bH2sEUYViLW0i4icBwHQbiv0v7SMg0WInAR6XAhELPlnvA75XKjbWfq42n9/zAtVCvRo8hT51cVrPYcaRz+3ZqDEhHsqhDiQEm88UzCOybOsMBIzDrLT7rvbRZ32Bohn7zOseGcfYk4XkLEe6xBayBdjYk5rrEbCtH+5LW99OUDfNJ0AsMlRPwnCm7ODnghZq2N3e/qQOqdDsrltqj/jBdaBcv7haSVy0eKizsq17323QFWAwN/M5FFPK7cSXDsiLBQaMECQIRbJDm18WRIpG220Kw55kU7gPaWKg== Received: from [98.139.215.143] by nm4.bullet.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 22:11:48 -0000 Received: from [98.139.211.199] by tm14.bullet.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 22:11:48 -0000 Received: from [127.0.0.1] by smtp208.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 22:11:48 -0000 X-Yahoo-Newman-Id: 10926.97935.bm@smtp208.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: UWyaD9kVM1lHx0MvgELcwjAUS3fIMF4d.l51BLyBBeG41iM Y3YgBkcG_.M0ZGFy81b.Xzb.nfDpNtfxUABufkhcnNlGz7eXRcG7t.npDe3L XpyQ1KE8nFnD2eoqGtWYHmR0wqDyyEYAjYJYev9IlQvIN4M9yYQ8zX00oEYc XJcMCuZ0EKplcRXgfZITHP8AtbVhDtEWYsFi5ou8AN1ttWFddvf31ZpZcYXV 2JdnRFAET4hh8yo8N.0CcAYMQQbmBlZKb4kv2CF9sZft0GObSoIXjXxBgo3j fIXCozNvCIQyLnwx37h1rNrOSUU6YnxRr6ujvIckjwf.61psxyX4z2EaSoLj si5JL4o3Dxfu0BQ5igor4hugY2D1Rqn9v2kXoeZ8XPOm.ggsagtui96qkG8. OOqh7FgXWkCICmzSyziws1ygEKdPN0mRSy2XkrrvjzEpAyjCPXRaRNEhlQMS Qi_TZgb2sSJBcO9mD5WQHf76.RUqEgN4agcmsXb4EELHhHi0Rpm2jdBnLETP OYt0ollaWmghmYAbkAklUnW5yWA4IsfX1 X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r296394 - head/include/rpc To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603042203.u24M3c7t043681@repo.freebsd.org> From: Pedro Giffuni Message-ID: <56DA0854.3020708@FreeBSD.org> Date: Fri, 4 Mar 2016 17:12:36 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201603042203.u24M3c7t043681@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:11:50 -0000 On 03/04/16 17:03, Pedro F. Giffuni wrote: > Author: pfg > Date: Fri Mar 4 22:03:38 2016 > New Revision: 296394 > URL: https://svnweb.freebsd.org/changeset/base/296394 > > Log: > xdr: Fix xdr_rpc* defines. > > The defines for xdr_rpc* in xdr.h are wrong. It could be > very well that Solaris did strip the '_t' from xdr_u_int32_t, > but Solaris has a xdr_u_int32 function, we don't have this. > So all of this defines will lead to an unresolved symbol. > > This explains why we do not use these functions in FreeBSD > while they are used in Illumos/Solaris. > > Obtained from: linux libtirpc (git 7864122e61ffe4db1aa8ace89117358a1e3a391b) > MFC after: 3 weeks > > Modified: > head/include/rpc/xdr.h > > Modified: head/include/rpc/xdr.h > ============================================================================== > --- head/include/rpc/xdr.h Fri Mar 4 21:22:11 2016 (r296393) > +++ head/include/rpc/xdr.h Fri Mar 4 22:03:38 2016 (r296394) > @@ -219,15 +219,11 @@ xdr_putint32(XDR *xdrs, int32_t *ip) > (*(xdrs)->x_ops->x_control)(xdrs, req, op) > #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op) > > -/* > - * Solaris strips the '_t' from these types -- not sure why. > - * But, let's be compatible. > - */ > -#define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) > -#define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) > -#define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) > -#define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) > -#define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) > +#define xdr_rpcvers(xdrs, versp) xdr_u_int32_t(xdrs, versp) > +#define xdr_rpcprog(xdrs, progp) xdr_u_int32_t(xdrs, progp) > +#define xdr_rpcproc(xdrs, procp) xdr_u_int32_t(xdrs, procp) > +#define xdr_rpcprot(xdrs, protp) xdr_u_int32_t(xdrs, protp) > +#define xdr_rpcport(xdrs, portp) xdr_u_int32_t(xdrs, portp) > > /* > * Support struct for discriminated unions. > For the record, it's still wrong for 64 bit platforms: we should probably add an ifdef there. Pedro. Pedro. From owner-svn-src-head@freebsd.org Fri Mar 4 22:32:36 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16EC79DA12B; Fri, 4 Mar 2016 22:32:36 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailhost.stack.nl", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id A4DEE1887; Fri, 4 Mar 2016 22:32:35 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from toad2.stack.nl (toad2.stack.nl [IPv6:2001:610:1108:5010::161]) by mx1.stack.nl (Postfix) with ESMTP id D26843592E5; Fri, 4 Mar 2016 23:32:31 +0100 (CET) Received: by toad2.stack.nl (Postfix, from userid 1677) id A4565892B9; Fri, 4 Mar 2016 23:32:31 +0100 (CET) Date: Fri, 4 Mar 2016 23:32:31 +0100 From: Jilles Tjoelker To: "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r296386 - head/lib/libc/rpc Message-ID: <20160304223231.GA47504@stack.nl> References: <201603041530.u24FUfu5021609@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201603041530.u24FUfu5021609@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:32:36 -0000 On Fri, Mar 04, 2016 at 03:30:41PM +0000, Pedro F. Giffuni wrote: > Author: pfg > Date: Fri Mar 4 15:30:41 2016 > New Revision: 296386 > URL: https://svnweb.freebsd.org/changeset/base/296386 > Log: > Work around aliasing issues detected in modern GCC. > Avoid casting gymnastics that lead to pointer aliasing by introducing an > inline function as done in NetBSD (but without #if0'd WIP code). > Obtained from: NetBSD (CVS Rev. 1.24, 1.25) > Modified: > head/lib/libc/rpc/clnt_vc.c > Modified: head/lib/libc/rpc/clnt_vc.c > ============================================================================== > --- head/lib/libc/rpc/clnt_vc.c Fri Mar 4 14:23:34 2016 (r296385) > +++ head/lib/libc/rpc/clnt_vc.c Fri Mar 4 15:30:41 2016 (r296386) > @@ -502,6 +502,20 @@ clnt_vc_abort(CLIENT *cl) > { > } > > +static __inline void > +htonlp(void *dst, const void *src, uint32_t incr) > +{ > + /* We are aligned, so we think */ > + *(uint32_t *)dst = htonl(*(const uint32_t *)src + incr); > +} > + > +static __inline void > +ntohlp(void *dst, const void *src) > +{ > + /* We are aligned, so we think */ > + *(uint32_t *)dst = htonl(*(const uint32_t *)src); > +} > + > static bool_t > clnt_vc_control(CLIENT *cl, u_int request, void *info) > { > @@ -576,14 +590,12 @@ clnt_vc_control(CLIENT *cl, u_int reques > * first element in the call structure > * This will get the xid of the PREVIOUS call > */ > - *(u_int32_t *)info = > - ntohl(*(u_int32_t *)(void *)&ct->ct_u.ct_mcalli); > + ntohlp(info, &ct->ct_u.ct_mcalli); > break; > case CLSET_XID: > /* This will set the xid of the NEXT call */ > - *(u_int32_t *)(void *)&ct->ct_u.ct_mcalli = > - htonl(*((u_int32_t *)info) + 1); > /* increment by 1 as clnt_vc_call() decrements once */ > + htonlp(&ct->ct_u.ct_mcalli, info, 1); > break; > case CLGET_VERS: > /* > @@ -592,15 +604,11 @@ clnt_vc_control(CLIENT *cl, u_int reques > * begining of the RPC header. MUST be changed if the > * call_struct is changed > */ > - *(u_int32_t *)info = > - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + > - 4 * BYTES_PER_XDR_UNIT)); > + ntohlp(info, ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT); > break; > > case CLSET_VERS: > - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + > - 4 * BYTES_PER_XDR_UNIT) = > - htonl(*(u_int32_t *)info); > + htonlp(ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT, info, 0); > break; > > case CLGET_PROG: > @@ -610,15 +618,11 @@ clnt_vc_control(CLIENT *cl, u_int reques > * begining of the RPC header. MUST be changed if the > * call_struct is changed > */ > - *(u_int32_t *)info = > - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + > - 3 * BYTES_PER_XDR_UNIT)); > + ntohlp(info, ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT); > break; > > case CLSET_PROG: > - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + > - 3 * BYTES_PER_XDR_UNIT) = > - htonl(*(u_int32_t *)info); > + htonlp(ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT, info, 0); > break; > > default: This change just deceives GCC's warning logic without changing whether there is an aliasing violation or not (I don't think there is any when clnt_vc.c is compiled separately, since *ct does not have an effective type in that case). To avoid casts, ct_mcalli could be changed to an array (of MCALL_MSG_SIZE / 4 elements) and used. This also avoids depending on the unspecified value of the elements 4 to 23 of ct_mcallc after storing to ct_mcalli. Note that C89 did not permit type punning via a union. NetBSD might care but we do not. C89 compilers are unlikely to be cunning enough for this to be a problem anyway. It may be that this code is too old for this kind of change. -- Jilles Tjoelker From owner-svn-src-head@freebsd.org Fri Mar 4 22:36:43 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB32E9DA2E8; Fri, 4 Mar 2016 22:36:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 ADCC81B0B; Fri, 4 Mar 2016 22:36:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24Magkj052666; Fri, 4 Mar 2016 22:36:42 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24Mag6c052665; Fri, 4 Mar 2016 22:36:42 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042236.u24Mag6c052665@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:36:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296395 - head/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:36:44 -0000 Author: bdrewery Date: Fri Mar 4 22:36:42 2016 New Revision: 296395 URL: https://svnweb.freebsd.org/changeset/base/296395 Log: Parallel installation has been safe here since r267511 added SUBDIR_DEPEND. Sponsored by: EMC / Isilon Storage Division Modified: head/lib/Makefile Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Fri Mar 4 22:03:38 2016 (r296394) +++ head/lib/Makefile Fri Mar 4 22:36:42 2016 (r296395) @@ -308,8 +308,4 @@ _libusbhid= libusbhid _libusb= libusb .endif -.if !make(install) -SUBDIR_PARALLEL= -.endif - .include From owner-svn-src-head@freebsd.org Fri Mar 4 22:36:57 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C52DA9DA35C; Fri, 4 Mar 2016 22:36:57 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 970001C84; Fri, 4 Mar 2016 22:36:57 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24Maukr052715; Fri, 4 Mar 2016 22:36:56 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24Maura052714; Fri, 4 Mar 2016 22:36:56 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042236.u24Maura052714@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:36:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296396 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:36:57 -0000 Author: bdrewery Date: Fri Mar 4 22:36:56 2016 New Revision: 296396 URL: https://svnweb.freebsd.org/changeset/base/296396 Log: NO_ROOT: Create the METALOG directory on installworld/distributeworld. When not using NO_ROOT the DESTDIR is implicitly created by the distrib-dirs call. However with NO_ROOT it is trying to write to the METALOG right away before running distrib-dirs which may fail. Sponsored by: EMC / Isilon Storage Division Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Fri Mar 4 22:36:42 2016 (r296395) +++ head/Makefile.inc1 Fri Mar 4 22:36:56 2016 (r296396) @@ -959,6 +959,7 @@ distributeworld installworld: _installch cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale .if defined(NO_ROOT) + -mkdir -p ${METALOG:H} echo "#${MTREE_MAGIC}" > ${METALOG} .endif .if make(distributeworld) From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:02 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 327FA9DA393; Fri, 4 Mar 2016 22:37:02 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 F1B2A1CD2; Fri, 4 Mar 2016 22:37:01 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24Mb0Wq052766; Fri, 4 Mar 2016 22:37:00 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24Mb09E052765; Fri, 4 Mar 2016 22:37:00 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24Mb09E052765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296397 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:02 -0000 Author: bdrewery Date: Fri Mar 4 22:37:00 2016 New Revision: 296397 URL: https://svnweb.freebsd.org/changeset/base/296397 Log: Allow adding to SOLINKOPTS. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/bsd.lib.mk Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Fri Mar 4 22:36:56 2016 (r296396) +++ head/share/mk/bsd.lib.mk Fri Mar 4 22:37:00 2016 (r296397) @@ -199,7 +199,7 @@ CLEANFILES+= ${SOBJS} .if defined(SHLIB_NAME) _LIBS+= ${SHLIB_NAME} -SOLINKOPTS= -shared -Wl,-x +SOLINKOPTS+= -shared -Wl,-x .if !defined(ALLOW_SHARED_TEXTREL) .if defined(LD_FATAL_WARNINGS) && ${LD_FATAL_WARNINGS} == "no" SOLINKOPTS+= -Wl,--no-fatal-warnings From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:13 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A96519DA3D6; Fri, 4 Mar 2016 22:37:13 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 748E91F20; Fri, 4 Mar 2016 22:37:13 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbCE1052838; Fri, 4 Mar 2016 22:37:12 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24MbA8S052813; Fri, 4 Mar 2016 22:37:10 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24MbA8S052813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296398 - in head: . contrib/ofed/usr.bin/ibaddr contrib/ofed/usr.bin/ibnetdiscover contrib/ofed/usr.bin/ibroute contrib/ofed/usr.bin/ibsendtrap contrib/ofed/usr.bin/ibtracert contrib/o... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:13 -0000 Author: bdrewery Date: Fri Mar 4 22:37:09 2016 New Revision: 296398 URL: https://svnweb.freebsd.org/changeset/base/296398 Log: Fix over/under-linking in contrib/ofed. Sponsored by: EMC / Isilon Storage Division Modified: head/Makefile.inc1 head/contrib/ofed/usr.bin/ibaddr/Makefile head/contrib/ofed/usr.bin/ibnetdiscover/Makefile head/contrib/ofed/usr.bin/ibroute/Makefile head/contrib/ofed/usr.bin/ibsendtrap/Makefile head/contrib/ofed/usr.bin/ibtracert/Makefile head/contrib/ofed/usr.bin/opensm/Makefile head/contrib/ofed/usr.bin/saquery/Makefile head/contrib/ofed/usr.bin/sminfo/Makefile head/contrib/ofed/usr.bin/smpquery/Makefile head/contrib/ofed/usr.bin/vendstat/Makefile head/contrib/ofed/usr.lib/Makefile head/contrib/ofed/usr.lib/libcxgb4/Makefile head/contrib/ofed/usr.lib/libibcm/Makefile head/contrib/ofed/usr.lib/libibmad/Makefile head/contrib/ofed/usr.lib/libibumad/Makefile head/contrib/ofed/usr.lib/libmlx4/Makefile head/contrib/ofed/usr.lib/libmthca/Makefile head/contrib/ofed/usr.lib/libopensm/Makefile head/contrib/ofed/usr.lib/libosmcomp/Makefile head/contrib/ofed/usr.lib/libosmvendor/Makefile head/contrib/ofed/usr.lib/librdmacm/Makefile head/share/mk/src.libnames.mk Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Fri Mar 4 22:37:00 2016 (r296397) +++ head/Makefile.inc1 Fri Mar 4 22:37:09 2016 (r296398) @@ -1913,7 +1913,16 @@ _lib_libradius= lib/libradius .endif .if ${MK_OFED} != "no" -_ofed_lib= contrib/ofed/usr.lib/ +_ofed_lib= contrib/ofed/usr.lib +_prebuild_libs+= contrib/ofed/usr.lib/libosmcomp +_prebuild_libs+= contrib/ofed/usr.lib/libopensm +_prebuild_libs+= contrib/ofed/usr.lib/libibcommon +_prebuild_libs+= contrib/ofed/usr.lib/libibverbs +_prebuild_libs+= contrib/ofed/usr.lib/libibumad + +contrib/ofed/usr.lib/libopensm__L: lib/libthr__L +contrib/ofed/usr.lib/libosmcomp__L: lib/libthr__L +contrib/ofed/usr.lib/libibumad__L: contrib/ofed/usr.lib/libibcommon__L .endif .if ${MK_CASPER} != "no" Modified: head/contrib/ofed/usr.bin/ibaddr/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/ibaddr/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/ibaddr/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= ibaddr SRCS= ibaddr.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad +LIBADD= ibmad CFLAGS+= -I${DIAGPATH}/include MAN= ibaddr.8 Modified: head/contrib/ofed/usr.bin/ibnetdiscover/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/ibnetdiscover/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/ibnetdiscover/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= ibnetdiscover SRCS= ibnetdiscover.c grouping.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad osmcomp pthread +LIBADD= ibumad ibcommon ibmad osmcomp CFLAGS+= -I${DIAGPATH}/include MAN= ibnetdiscover.8 Modified: head/contrib/ofed/usr.bin/ibroute/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/ibroute/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/ibroute/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= ibroute SRCS= ibroute.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad osmcomp pthread +LIBADD= ibcommon ibmad osmcomp CFLAGS+= -I${DIAGPATH}/include MAN= ibroute.8 Modified: head/contrib/ofed/usr.bin/ibsendtrap/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/ibsendtrap/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/ibsendtrap/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= ibsendtrap SRCS= ibsendtrap.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad +LIBADD= ibmad CFLAGS+= -I${DIAGPATH}/include MAN= Modified: head/contrib/ofed/usr.bin/ibtracert/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/ibtracert/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/ibtracert/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= ibtracert SRCS= ibtracert.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad osmcomp pthread +LIBADD= ibumad ibcommon ibmad osmcomp CFLAGS+= -I${DIAGPATH}/include MAN= ibtracert.8 Modified: head/contrib/ofed/usr.bin/opensm/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/opensm/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/opensm/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -29,7 +29,7 @@ SRCS+= osm_vl_arb_rcv.c st.c osm_perfmgr SRCS+= osm_dump.c osm_ucast_cache.c osm_qos_parser_y.y osm_qos_parser_l.l SRCS+= osm_qos_policy.c -LIBADD= opensm osmvendor osmcomp ibmad ibumad ibcommon pthread +LIBADD= opensm osmvendor osmcomp pthread CFLAGS+= -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP MAN= opensm.8 Modified: head/contrib/ofed/usr.bin/saquery/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/saquery/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/saquery/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= saquery SRCS= saquery.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad osmcomp osmvendor opensm pthread +LIBADD= ibmad osmcomp osmvendor opensm CFLAGS+= -I${DIAGPATH}/include CFLAGS+= -DOSM_VENDOR_INTF_OPENIB -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP MAN= saquery.8 Modified: head/contrib/ofed/usr.bin/sminfo/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/sminfo/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/sminfo/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= sminfo SRCS= sminfo.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad +LIBADD= ibumad ibmad CFLAGS+= -I${DIAGPATH}/include MAN= sminfo.8 Modified: head/contrib/ofed/usr.bin/smpquery/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/smpquery/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/smpquery/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= smpquery SRCS= smpquery.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad osmcomp pthread +LIBADD= ibumad ibmad osmcomp CFLAGS+= -I${DIAGPATH}/include MAN= smpquery.8 Modified: head/contrib/ofed/usr.bin/vendstat/Makefile ============================================================================== --- head/contrib/ofed/usr.bin/vendstat/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.bin/vendstat/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -5,7 +5,7 @@ PROG= vendstat SRCS= vendstat.c ibdiag_common.c -LIBADD= ibumad ibcommon ibmad +LIBADD= ibumad ibmad CFLAGS+= -I${DIAGPATH}/include MAN= vendstat.8 Modified: head/contrib/ofed/usr.lib/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -1,6 +1,14 @@ SUBDIR= libibcommon libibmad libibumad libibverbs libmlx4 libmthca \ libopensm libosmcomp libosmvendor libibcm librdmacm libsdp libcxgb4 +SUBDIR_DEPEND_libcxgb4= libibverbs +SUBDIR_DEPEND_libibcm= libibverbs +SUBDIR_DEPEND_libibmad= libibcommon libibumad +SUBDIR_DEPEND_libibumad= libibcommon +SUBDIR_DEPEND_libmlx4= libibverbs +SUBDIR_DEPEND_libmthca= libibverbs +SUBDIR_DEPEND_libosmvendor= libibumad libopensm libosmcomp +SUBDIR_DEPEND_librdmacm= libibverbs SUBDIR_PARALLEL= .include Modified: head/contrib/ofed/usr.lib/libcxgb4/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libcxgb4/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libcxgb4/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -16,6 +16,7 @@ MK_PROFILE= no SRCS= dev.c cq.c qp.c verbs.c +LIBADD= ibverbs pthread CFLAGS+= -g -DHAVE_CONFIG_H -DDEBUG CFLAGS+= -I${.CURDIR} -I${CXGBSRCDIR} -I${IBVERBSDIR}/include Modified: head/contrib/ofed/usr.lib/libibcm/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libibcm/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libibcm/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -15,6 +15,7 @@ SHLIB_MAJOR= 1 MK_PROFILE= no SRCS= cm.c +LIBADD= ibverbs CFLAGS+= -I${IBCMDIR}/include MAN= Modified: head/contrib/ofed/usr.lib/libibmad/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libibmad/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libibmad/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -16,6 +16,7 @@ MK_PROFILE= no SRCS= dump.c fields.c gs.c mad.c portid.c register.c resolve.c rpc.c sa.c \ serv.c smp.c vendor.c +LIBADD= ibcommon ibumad CFLAGS+= -DHAVE_CONFIG_H VERSION_MAP= ${IBSRCDIR}/libibmad.map Modified: head/contrib/ofed/usr.lib/libibumad/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libibumad/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libibumad/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -15,6 +15,7 @@ MK_PROFILE= no SRCS= umad.c +LIBADD= ibcommon CFLAGS+= -DHAVE_CONFIG_H VERSION_MAP= ${IBSRCDIR}/libibumad.map Modified: head/contrib/ofed/usr.lib/libmlx4/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libmlx4/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libmlx4/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -16,6 +16,7 @@ MK_PROFILE= no SRCS= buf.c cq.c dbrec.c mlx4.c qp.c srq.c verbs.c +LIBADD= ibverbs pthread CFLAGS+= -DHAVE_CONFIG_H CFLAGS+= -I${.CURDIR} -I${MLXSRCDIR} -I${IBVERBSDIR}/include Modified: head/contrib/ofed/usr.lib/libmthca/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libmthca/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libmthca/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -16,7 +16,7 @@ MK_PROFILE= no SRCS= ah.c buf.c cq.c memfree.c mthca.c qp.c srq.c verbs.c - +LIBADD= ibverbs pthread CFLAGS+= -DHAVE_CONFIG_H CFLAGS+= -I${.CURDIR} -I${MTHCASRCDIR} -I${IBVERBSDIR}/include Modified: head/contrib/ofed/usr.lib/libopensm/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libopensm/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libopensm/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -13,6 +13,8 @@ MK_PROFILE= no SRCS= osm_log.c osm_mad_pool.c osm_helper.c +LIBADD= pthread + VERSION_MAP= ${OPENSMDIR}/opensm/libopensm.map .include Modified: head/contrib/ofed/usr.lib/libosmcomp/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libosmcomp/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libosmcomp/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -16,6 +16,8 @@ SRCS+= cl_log.c cl_map.c cl_pool.c cl_pt SRCS+= cl_statustext.c cl_thread.c cl_threadpool.c cl_timer.c cl_vector.c SRCS+= ib_statustext.c cl_nodenamemap.c +LIBADD= pthread + VERSION_MAP= ${COMPLIBDIR}/libosmcomp.map .include Modified: head/contrib/ofed/usr.lib/libosmvendor/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/libosmvendor/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/libosmvendor/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -13,6 +13,7 @@ MK_PROFILE= no SRCS= osm_vendor_ibumad.c osm_vendor_ibumad_sa.c +LIBADD= ibumad opensm osmcomp pthread CFLAGS+= -DOSM_VENDOR_INTF_OPENIB VERSION_MAP= ${VENDORLIBDIR}/libosmvendor.map Modified: head/contrib/ofed/usr.lib/librdmacm/Makefile ============================================================================== --- head/contrib/ofed/usr.lib/librdmacm/Makefile Fri Mar 4 22:37:00 2016 (r296397) +++ head/contrib/ofed/usr.lib/librdmacm/Makefile Fri Mar 4 22:37:09 2016 (r296398) @@ -27,6 +27,7 @@ MAN+= rdma_resolve_route.3 rdma_disconne MAN+= rdma_event_str.3 rping.1 rdma_free_devices.3 ucmatose.1 MAN+= rdma_get_cm_event.3 udaddy.1 +LIBADD= ibverbs VERSION_MAP= ${RDMASRCDIR}/librdmacm.map Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Fri Mar 4 22:37:00 2016 (r296397) +++ head/share/mk/src.libnames.mk Fri Mar 4 22:37:09 2016 (r296398) @@ -312,6 +312,18 @@ _DP_zfs= md pthread umem util uutil m nv zfs_core _DP_zfs_core= nvpair _DP_zpool= md pthread z nvpair avl umem +.if ${MK_OFED} != "no" +_DP_cxgb4= ibverbs pthread +_DP_ibcm= ibverbs +_DP_ibmad= ibcommon ibumad +_DP_ibumad= ibcommon +_DP_mlx4= ibverbs pthread +_DP_mthca= ibverbs pthread +_DP_opensm= pthread +_DP_osmcomp= pthread +_DP_osmvendor= ibumad opensm osmcomp pthread +_DP_rdmacm= ibverbs +.endif # Define special cases LDADD_supcplusplus= -lsupc++ From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57CC39DA405; Fri, 4 Mar 2016 22:37:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 25C3A1F41; Fri, 4 Mar 2016 22:37:18 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbHHE052884; Fri, 4 Mar 2016 22:37:17 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24MbHPl052883; Fri, 4 Mar 2016 22:37:17 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24MbHPl052883@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296399 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:18 -0000 Author: bdrewery Date: Fri Mar 4 22:37:16 2016 New Revision: 296399 URL: https://svnweb.freebsd.org/changeset/base/296399 Log: Don't add duplicates from LOCAL_LIB_DIRS. This causes parallel failures. Sponsored by: EMC / Isilon Storage Division Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Fri Mar 4 22:37:09 2016 (r296398) +++ head/Makefile.inc1 Fri Mar 4 22:37:16 2016 (r296399) @@ -1935,7 +1935,7 @@ lib/liblzma__L: lib/libthr__L _generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ${_ofed_lib} .for _DIR in ${LOCAL_LIB_DIRS} -.if exists(${.CURDIR}/${_DIR}/Makefile) +.if exists(${.CURDIR}/${_DIR}/Makefile) && empty(_generic_libs:M${_DIR}) _generic_libs+= ${_DIR} .endif .endfor From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:22 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A56329DA445; Fri, 4 Mar 2016 22:37:22 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 77CCECF; Fri, 4 Mar 2016 22:37:22 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbLbC052932; Fri, 4 Mar 2016 22:37:21 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24MbLu1052931; Fri, 4 Mar 2016 22:37:21 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24MbLu1052931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296400 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:22 -0000 Author: bdrewery Date: Fri Mar 4 22:37:21 2016 New Revision: 296400 URL: https://svnweb.freebsd.org/changeset/base/296400 Log: DIRDEPS_BUILD: For bootstrapping always install all headers. There is no good way to guess if any of these will be needed but they commonly are and add no extra overhead so just stage them. Sponsored by: EMC / Isilon Storage Division Modified: head/share/mk/local.dirdeps.mk Modified: head/share/mk/local.dirdeps.mk ============================================================================== --- head/share/mk/local.dirdeps.mk Fri Mar 4 22:37:16 2016 (r296399) +++ head/share/mk/local.dirdeps.mk Fri Mar 4 22:37:21 2016 (r296400) @@ -104,11 +104,20 @@ C_DIRDEPS= \ gnu/lib/csu \ gnu/lib/libgcc \ include \ + include/arpa \ + include/protocols \ + include/rpc \ + include/rpcsvc \ include/xlocale \ lib/${CSU_DIR} \ lib/libc \ lib/libcompiler_rt \ + +.if ${MK_GSSAPI} != "no" +C_DIRDEPS+= include/gssapi +.endif + .if !empty(SRCS:M*.c) DIRDEPS+= ${C_DIRDEPS} .endif From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:27 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E48C9DA484; Fri, 4 Mar 2016 22:37:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 CC6842BD; Fri, 4 Mar 2016 22:37:26 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbP5P052977; Fri, 4 Mar 2016 22:37:25 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24MbPHY052976; Fri, 4 Mar 2016 22:37:25 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24MbPHY052976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296401 - head/contrib/ofed/libsdp/src X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:27 -0000 Author: bdrewery Date: Fri Mar 4 22:37:25 2016 New Revision: 296401 URL: https://svnweb.freebsd.org/changeset/base/296401 Log: Fix missing symbol program_invocation_short_name. This fixes runtime when logging is enabled. Sponsored by: EMC / Isilon Storage Division Modified: head/contrib/ofed/libsdp/src/port.c Modified: head/contrib/ofed/libsdp/src/port.c ============================================================================== --- head/contrib/ofed/libsdp/src/port.c Fri Mar 4 22:37:21 2016 (r296400) +++ head/contrib/ofed/libsdp/src/port.c Fri Mar 4 22:37:25 2016 (r296401) @@ -40,6 +40,9 @@ #define FASYNC 0 #include #endif +#ifdef __FreeBSD__ +#include +#endif #include #include #include @@ -217,7 +220,7 @@ volatile static int init_status = 0; /* /* glibc provides these symbols - for Solaris builds we fake them * until _init is called, at which point we quiz libdl.. */ -#ifdef SOLARIS_BUILD +#if defined(SOLARIS_BUILD) || defined(__FreeBSD__) char *program_invocation_name = "[progname]", *program_invocation_short_name = "[short_progname]"; #else @@ -2583,6 +2586,10 @@ void __sdp_init(void) program_invocation_short_name = basename(args_info.dla_argv[0]); } #endif +#ifdef __FreeBSD__ + program_invocation_short_name = (char *)getprogname(); + program_invocation_name = program_invocation_short_name; +#endif if (getenv("SIMPLE_LIBSDP") != NULL) { simple_sdp_library = 1; From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:33 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE8349DA4BC; Fri, 4 Mar 2016 22:37:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 5B6E1777; Fri, 4 Mar 2016 22:37:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbWWl053033; Fri, 4 Mar 2016 22:37:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24MbVHk053024; Fri, 4 Mar 2016 22:37:31 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24MbVHk053024@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296402 - in head/contrib/ofed: libsdp libsdp/scripts libsdp/src usr.lib/libsdp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:33 -0000 Author: bdrewery Date: Fri Mar 4 22:37:31 2016 New Revision: 296402 URL: https://svnweb.freebsd.org/changeset/base/296402 Log: Update libsdp to the latest 1.1.108-0.17.ga6958ef. The only relevant change here is the support for IPv6 in the config file. The previous version of this supported IPv6 but not in the config. The change for that ended up removing __sdp_sockaddr_to_sdp which the IPV4 config code required; the IPv6 fix resolved the lack of that symbol. Note that the ChangeLog was lacking entries for which we already had the changes for, which itself was an upstream bug. Obtained from: https://www.openfabrics.org/downloads/libsdp/libsdp-1.1.108-0.17.ga6958ef.tar.gz Sponsored by: EMC / Isilon Storage Division Added: head/contrib/ofed/libsdp/scripts/ head/contrib/ofed/libsdp/scripts/libsdp.logrotate head/contrib/ofed/libsdp/src/config_parser.y head/contrib/ofed/libsdp/src/config_scanner.l Modified: head/contrib/ofed/libsdp/ChangeLog head/contrib/ofed/libsdp/Makefile.am head/contrib/ofed/libsdp/libsdp.conf head/contrib/ofed/libsdp/libsdp.spec.in head/contrib/ofed/libsdp/src/config_parser.c head/contrib/ofed/libsdp/src/config_parser.h head/contrib/ofed/libsdp/src/config_scanner.c head/contrib/ofed/libsdp/src/libsdp.h head/contrib/ofed/libsdp/src/match.c head/contrib/ofed/libsdp/src/port.c head/contrib/ofed/usr.lib/libsdp/Makefile Modified: head/contrib/ofed/libsdp/ChangeLog ============================================================================== --- head/contrib/ofed/libsdp/ChangeLog Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/ChangeLog Fri Mar 4 22:37:31 2016 (r296402) @@ -1,3 +1,24 @@ +2011-04-28 10:25:22 +0300 Amir Vadai + * 8cc6058 libsdp: Use logroate on /var/log/libsdp.log + +2011-01-17 15:44:30 +0200 Amir Vadai + * d7fdb72 libsdp: removed a debug print + +2011-01-12 11:24:57 +0200 Amir Vadai + * 63e0cf1 libsdp: recompiled yacc files + +2011-01-10 17:29:14 +0200 Amir Vadai + * 54de044 libsdp: Add IPv6 support to configuration file + +2011-01-05 09:52:05 +0200 Amir Vadai + * e57ee9c libsdp: Do not set-user-ID on default. + +2011-01-03 11:33:44 +0200 Amir Vadai + * 18447bb libsdp: Do not block other socket types + +2011-01-02 12:29:13 +0200 Amir Vadai + * e9d2c10 libsdp: Fix bad errno value + 2010-12-26 18:14:02 +0200 Amir Vadai * 9c2ad15 libsdp: full ipv6 support Modified: head/contrib/ofed/libsdp/Makefile.am ============================================================================== --- head/contrib/ofed/libsdp/Makefile.am Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/Makefile.am Fri Mar 4 22:37:31 2016 (r296402) @@ -1,6 +1,6 @@ SUBDIRS = src -EXTRA_DIST = libsdp.spec.in libsdp.conf +EXTRA_DIST = libsdp.spec.in libsdp.conf scripts/libsdp.logrotate dist-hook: libsdp.spec cp libsdp.spec $(distdir) Modified: head/contrib/ofed/libsdp/libsdp.conf ============================================================================== --- head/contrib/ofed/libsdp/libsdp.conf Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/libsdp.conf Fri Mar 4 22:37:31 2016 (r296402) @@ -99,11 +99,13 @@ use both client * *:* # means: # Either the local address the server is bind to or the remote server # address the client connects to. Syntax for address matching is: -# [/]|* -# IPv4 address = [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ each sub number < 255 -# prefix_length = [0-9]+ and with value <= 32. A prefix_length of 24 -# matches the subnet mask 255.255.255.0 . A prefix_length of 32 -# requires matching of the exact IP. +# [/]|* +# IP address = IPv4 in dotted-quad format, "ddd.ddd.ddd.ddd" or IPv6 network +# address in any allowed IPv6 address format. +# prefix_length = Number of bits to match. A prefix_length of 16 matches the +# subnet mask 255.255.0.0 in IPv4, or ffff::0 in IPv6. +# A prefix_length of 32 for IPv4 or 128 for IPv6 requires +# matching of the exact IP. # # is: # start-port[-end-port] where port numbers are >0 and < 65536 @@ -117,6 +119,10 @@ use both client * *:* # family role program address:port[-range] # use sdp connect * 192.168.1.0/24:* # +# Use SDP by clients connecting to machines that belongs to subnet 1234:5678::* +# family role program address:port[-range] +# use sdp connect * 1234:5678::0/64:* +# # Use SDP by ttcp when it connects to port 5001 of any machine # family role program address:port[-range] # use sdp listen ttcp *:5001 Modified: head/contrib/ofed/libsdp/libsdp.spec.in ============================================================================== --- head/contrib/ofed/libsdp/libsdp.spec.in Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/libsdp.spec.in Fri Mar 4 22:37:31 2016 (r296402) @@ -17,7 +17,7 @@ and without recompiling the application. %package devel Summary: Development files for the libsdp Group: System Environment/Libraries -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version}-%{release}, logrotate %description devel Development files of libsdp that may be linked directly to an @@ -31,23 +31,29 @@ application, which may be useful for deb make %install +etc=$RPM_BUILD_ROOT%{_sysconfdir} make DESTDIR=${RPM_BUILD_ROOT} install # remove unpackaged files from the buildroot rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +mkdir -p $etc/logrotate.d +install -m 644 scripts/libsdp.logrotate $etc/logrotate.d/libsdp %clean rm -rf $RPM_BUILD_ROOT %files -%defattr(6644,root,root) +# For set-user-ID/set-group-ID ELF binaries, only libraries in the standard search directories that are also set-user-ID +# To do so, change line below to: %defattr(6644,root,root) +%defattr(0644,root,root) %{_libdir}/libsdp*.so* %defattr(0644,root,root) %config(noreplace) %{_sysconfdir}/libsdp.conf %config(noreplace) %{_includedir}/linux/sdp_inet.h %doc README NEWS ChangeLog COPYING +%config(noreplace) %{_sysconfdir}/logrotate.d/libsdp %files devel -%defattr(6644,root,root,-) +%defattr(0644,root,root,-) %{_libdir}/libsdp*.so %changelog Added: head/contrib/ofed/libsdp/scripts/libsdp.logrotate ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/libsdp/scripts/libsdp.logrotate Fri Mar 4 22:37:31 2016 (r296402) @@ -0,0 +1,6 @@ +/var/log/libsdp.log { + missingok + notifempty + copytruncate + compress +} Modified: head/contrib/ofed/libsdp/src/config_parser.c ============================================================================== --- head/contrib/ofed/libsdp/src/config_parser.c Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/src/config_parser.c Fri Mar 4 22:37:31 2016 (r296402) @@ -88,7 +88,8 @@ FILENAME = 269, NAME = 270, LEVEL = 271, - LINE = 272 + LINE = 272, + SUBNET = 273 }; #endif /* Tokens. */ @@ -107,6 +108,7 @@ #define NAME 270 #define LEVEL 271 #define LINE 272 +#define SUBNET 273 @@ -147,16 +149,49 @@ int __sdp_config_empty( (__sdp_servers_family_rules_head == NULL) ); } -/* define the address by 4 integers */ -static void __sdp_set_ipv4_addr(short a0, short a1, short a2, short a3) +static void __sdp_set_ip_addr(char *addr) { - char buf[16]; - sprintf(buf,"%d.%d.%d.%d", a0, a1, a2, a3); - if (!inet_aton(buf, &( __sdp_rule.ipv4 ))) - { - parse_err = 1; - yyerror("provided address is not legal"); - } + int rc; + char *addrlen; + struct sockaddr_in *addr4 = (struct sockaddr_in *)(&__sdp_rule.ip); + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)(&__sdp_rule.ip); + int prefixlen = 0; + + addrlen = strrchr(addr, '/'); + if (addrlen) { + prefixlen = atoi(addrlen + 1); + *addrlen = '\0'; + } + + rc = inet_pton(AF_INET, addr, &addr4->sin_addr); + if (rc > 0) { + addr4->sin_family = AF_INET; + __sdp_rule.prefixlen = prefixlen ?: 32; + return; + } + + rc = inet_pton(AF_INET6, addr, &addr6->sin6_addr); + if (rc > 0) { + addr6->sin6_family = AF_INET6; + __sdp_rule.prefixlen = prefixlen ?: 128; + return; + } + + parse_err = 1; + yyerror("provided address is not legal"); +} + +static const char *addr2str(struct sockaddr_storage *src) +{ + static char dst[INET6_ADDRSTRLEN]; + int af = src->ss_family; + const struct sockaddr_in *addr4 = (const struct sockaddr_in *)src; + const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6 *)src; + + if (af == AF_INET6) + return inet_ntop(af, &addr6->sin6_addr, dst, INET6_ADDRSTRLEN); + + return inet_ntop(af, &addr4->sin_addr, dst, INET6_ADDRSTRLEN); } static void __sdp_set_prog_name_expr(char *prog_name_expr) @@ -184,11 +219,8 @@ static void __sdp_dump_config_state() { __sdp_get_role_str( current_role ), __sdp_rule.prog_name_expr); if (__sdp_rule.match_by_addr) { - if ( __sdp_rule.prefixlen != 32 ) sprintf(buf+strlen(buf), " %s/%d", - inet_ntoa( __sdp_rule.ipv4 ), __sdp_rule.prefixlen); - else - sprintf(buf+strlen(buf), " %s", inet_ntoa( __sdp_rule.ipv4 )); + addr2str(&__sdp_rule.ip), __sdp_rule.prefixlen); } else { sprintf(buf+strlen(buf), " *"); } @@ -260,13 +292,13 @@ static void __sdp_add_rule() { #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 167 "./config_parser.y" +#line 197 "./config_parser.y" { int ival; char *sval; } /* Line 193 of yacc.c. */ -#line 270 "y.tab.c" +#line 302 "y.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -276,13 +308,13 @@ typedef union YYSTYPE /* Copy the second part of user declarations. */ -#line 192 "./config_parser.y" +#line 223 "./config_parser.y" long __sdp_config_line_num; /* Line 216 of yacc.c. */ -#line 286 "y.tab.c" +#line 318 "y.tab.c" #ifdef short # undef short @@ -497,20 +529,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 7 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 36 +#define YYLAST 31 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 23 +#define YYNTOKENS 22 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 17 +#define YYNNTS 16 /* YYNRULES -- Number of rules. */ -#define YYNRULES 33 +#define YYNRULES 31 /* YYNRULES -- Number of states. */ -#define YYNSTATES 53 +#define YYNSTATES 44 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 272 +#define YYMAXUTOK 273 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -522,8 +554,8 @@ static const yytype_uint8 yytranslate[] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 19, 2, 2, 22, 21, 20, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 18, 2, + 2, 2, 20, 2, 2, 21, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -545,7 +577,7 @@ static const yytype_uint8 yytranslate[] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17 + 15, 16, 17, 18 }; #if YYDEBUG @@ -555,32 +587,31 @@ static const yytype_uint8 yyprhs[] = { 0, 0, 3, 5, 8, 9, 11, 14, 15, 18, 20, 22, 26, 27, 30, 33, 36, 39, 43, 46, - 55, 57, 59, 61, 63, 65, 67, 69, 71, 75, - 77, 85, 87, 91 + 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, + 75, 79 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 26, 0, -1, 17, -1, 24, 17, -1, -1, 24, - -1, 25, 27, -1, -1, 27, 28, -1, 29, -1, - 33, -1, 10, 30, 24, -1, -1, 30, 31, -1, - 30, 32, -1, 11, 12, -1, 11, 13, -1, 11, - 14, 15, -1, 16, 9, -1, 3, 34, 35, 36, - 37, 18, 39, 24, -1, 6, -1, 7, -1, 8, - -1, 5, -1, 4, -1, 15, -1, 19, -1, 38, - -1, 38, 20, 9, -1, 19, -1, 9, 21, 9, - 21, 9, 21, 9, -1, 9, -1, 9, 22, 9, - -1, 19, -1 + 25, 0, -1, 17, -1, 23, 17, -1, -1, 23, + -1, 24, 26, -1, -1, 26, 27, -1, 28, -1, + 32, -1, 10, 29, 23, -1, -1, 29, 30, -1, + 29, 31, -1, 11, 12, -1, 11, 13, -1, 11, + 14, 15, -1, 16, 9, -1, 3, 33, 34, 35, + 36, 19, 37, 23, -1, 6, -1, 7, -1, 8, + -1, 5, -1, 4, -1, 15, -1, 20, -1, 18, + -1, 20, -1, 9, -1, 9, 21, 9, -1, 20, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 198, 198, 199, 201, 202, 205, 208, 209, 213, - 214, 218, 221, 222, 223, 227, 228, 229, 233, 237, - 241, 242, 243, 247, 248, 252, 253, 257, 258, 259, - 263, 267, 268, 269 + 0, 229, 229, 230, 232, 233, 236, 239, 240, 244, + 245, 249, 252, 253, 254, 258, 259, 260, 264, 268, + 272, 273, 274, 278, 279, 283, 284, 288, 289, 293, + 294, 295 }; #endif @@ -593,10 +624,10 @@ static const char *const yytname[] = "\"server or listen\"", "\"tcp\"", "\"sdp\"", "\"both\"", "\"integer value\"", "\"log statement\"", "\"destination\"", "\"stderr\"", "\"syslog\"", "\"file\"", "\"a name\"", "\"min-level\"", - "\"new line\"", "':'", "'*'", "'/'", "'.'", "'-'", "$accept", "NL", + "\"new line\"", "\"ip address\"", "':'", "'*'", "'-'", "$accept", "NL", "ONL", "config", "statements", "statement", "log_statement", "log_opts", "log_dest", "verbosity", "socket_statement", "family", "role", "program", - "address", "ipv4", "ports", 0 + "address", "ports", 0 }; #endif @@ -606,18 +637,18 @@ static const char *const yytname[] = static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 58, 42, - 47, 46, 45 + 265, 266, 267, 268, 269, 270, 271, 272, 273, 58, + 42, 45 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 23, 24, 24, 25, 25, 26, 27, 27, 28, - 28, 29, 30, 30, 30, 31, 31, 31, 32, 33, - 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, - 38, 39, 39, 39 + 0, 22, 23, 23, 24, 24, 25, 26, 26, 27, + 27, 28, 29, 29, 29, 30, 30, 30, 31, 32, + 33, 33, 33, 34, 34, 35, 35, 36, 36, 37, + 37, 37 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -625,8 +656,8 @@ static const yytype_uint8 yyr2[] = { 0, 2, 1, 2, 0, 1, 2, 0, 2, 1, 1, 3, 0, 2, 2, 2, 2, 3, 2, 8, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 7, 1, 3, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -637,16 +668,15 @@ static const yytype_uint8 yydefact[] = 4, 2, 5, 7, 0, 3, 6, 1, 0, 12, 8, 9, 10, 20, 21, 22, 0, 0, 24, 23, 0, 0, 0, 11, 13, 14, 25, 26, 0, 15, - 16, 0, 18, 0, 29, 0, 27, 17, 0, 0, - 0, 0, 31, 33, 0, 28, 0, 0, 19, 0, - 32, 0, 30 + 16, 0, 18, 27, 28, 0, 17, 0, 29, 31, + 0, 0, 19, 30 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 2, 3, 4, 6, 10, 11, 17, 24, 25, - 12, 16, 20, 28, 35, 36, 44 + 12, 16, 20, 28, 35, 40 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -654,19 +684,18 @@ static const yytype_int8 yydefgoto[] = #define YYPACT_NINF -18 static const yytype_int8 yypact[] = { - -13, -18, 4, -18, 22, -18, 0, -18, 9, -18, - -18, -18, -18, -18, -18, -18, 2, -3, -18, -18, - -10, 6, 14, 4, -18, -18, -18, -18, -8, -18, - -18, 10, -18, 3, -18, 8, 11, -18, 19, -7, - 20, 12, 13, -18, -13, -18, 21, 23, 4, 15, - -18, 25, -18 + -10, -18, 5, -18, 21, -18, -1, -18, 7, -18, + -18, -18, -18, -18, -18, -18, 15, -6, -18, -18, + -12, 4, 16, 5, -18, -18, -18, -18, -14, -18, + -18, 9, -18, -18, -18, 8, -18, -8, 10, -18, + -10, 17, 5, -18 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -18, -17, -18, -18, -18, -18, -18, -18, -18, -18, - -18, -18, -18, -18, -18, -18, -18 + -18, -18, -18, -18, -18, -18 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -676,30 +705,29 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 23, 33, 42, 8, 1, 26, 18, 19, 21, 27, - 9, 34, 43, 22, 1, 13, 14, 15, 29, 30, - 31, 5, 7, 32, 38, 37, 39, 48, 41, 45, - 49, 40, 50, 46, 52, 47, 51 + 23, 38, 8, 26, 33, 21, 34, 1, 27, 9, + 22, 1, 39, 13, 14, 15, 29, 30, 31, 18, + 19, 7, 5, 42, 36, 32, 43, 37, 0, 0, + 0, 41 }; -static const yytype_uint8 yycheck[] = +static const yytype_int8 yycheck[] = { - 17, 9, 9, 3, 17, 15, 4, 5, 11, 19, - 10, 19, 19, 16, 17, 6, 7, 8, 12, 13, - 14, 17, 0, 9, 21, 15, 18, 44, 9, 9, - 9, 20, 9, 21, 9, 22, 21 + 17, 9, 3, 15, 18, 11, 20, 17, 20, 10, + 16, 17, 20, 6, 7, 8, 12, 13, 14, 4, + 5, 0, 17, 40, 15, 9, 9, 19, -1, -1, + -1, 21 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 17, 24, 25, 26, 17, 27, 0, 3, 10, - 28, 29, 33, 6, 7, 8, 34, 30, 4, 5, - 35, 11, 16, 24, 31, 32, 15, 19, 36, 12, - 13, 14, 9, 9, 19, 37, 38, 15, 21, 18, - 20, 9, 9, 19, 39, 9, 21, 22, 24, 9, - 9, 21, 9 + 0, 17, 23, 24, 25, 17, 26, 0, 3, 10, + 27, 28, 32, 6, 7, 8, 33, 29, 4, 5, + 34, 11, 16, 23, 30, 31, 15, 20, 35, 12, + 13, 14, 9, 18, 20, 36, 15, 19, 9, 20, + 37, 21, 23, 9 }; #define yyerrok (yyerrstatus = 0) @@ -1514,103 +1542,93 @@ yyreduce: switch (yyn) { case 15: -#line 227 "./config_parser.y" +#line 258 "./config_parser.y" { __sdp_log_set_log_stderr(); } break; case 16: -#line 228 "./config_parser.y" +#line 259 "./config_parser.y" { __sdp_log_set_log_syslog(); } break; case 17: -#line 229 "./config_parser.y" +#line 260 "./config_parser.y" { __sdp_log_set_log_file((yyvsp[(3) - (3)].sval)); } break; case 18: -#line 233 "./config_parser.y" +#line 264 "./config_parser.y" { __sdp_log_set_min_level((yyvsp[(2) - (2)].ival)); } break; case 19: -#line 237 "./config_parser.y" +#line 268 "./config_parser.y" { __sdp_add_rule(); } break; case 20: -#line 241 "./config_parser.y" +#line 272 "./config_parser.y" { __sdp_rule.target_family = USE_TCP; } break; case 21: -#line 242 "./config_parser.y" +#line 273 "./config_parser.y" { __sdp_rule.target_family = USE_SDP; } break; case 22: -#line 243 "./config_parser.y" +#line 274 "./config_parser.y" { __sdp_rule.target_family = USE_BOTH; } break; case 23: -#line 247 "./config_parser.y" +#line 278 "./config_parser.y" { current_role = 1; } break; case 24: -#line 248 "./config_parser.y" +#line 279 "./config_parser.y" { current_role = 2; } break; case 25: -#line 252 "./config_parser.y" +#line 283 "./config_parser.y" { __sdp_set_prog_name_expr((yyvsp[(1) - (1)].sval)); } break; case 26: -#line 253 "./config_parser.y" +#line 284 "./config_parser.y" { __sdp_set_prog_name_expr("*"); } break; case 27: -#line 257 "./config_parser.y" - { __sdp_rule.match_by_addr = 1; __sdp_rule.prefixlen = 32; } +#line 288 "./config_parser.y" + { __sdp_rule.match_by_addr = 1; __sdp_set_ip_addr((yyvsp[(1) - (1)].sval)); } break; case 28: -#line 258 "./config_parser.y" - { __sdp_rule.match_by_addr = 1; __sdp_rule.prefixlen = (yyvsp[(3) - (3)].ival); } - break; - - case 29: -#line 259 "./config_parser.y" +#line 289 "./config_parser.y" { __sdp_rule.match_by_addr = 0; __sdp_rule.prefixlen = 32; } break; - case 30: -#line 263 "./config_parser.y" - { __sdp_set_ipv4_addr((yyvsp[(1) - (7)].ival),(yyvsp[(3) - (7)].ival),(yyvsp[(5) - (7)].ival),(yyvsp[(7) - (7)].ival)); } - break; - - case 31: -#line 267 "./config_parser.y" + case 29: +#line 293 "./config_parser.y" { __sdp_rule.match_by_port = 1; __sdp_rule.sport= (yyvsp[(1) - (1)].ival); __sdp_rule.eport= (yyvsp[(1) - (1)].ival); } break; - case 32: -#line 268 "./config_parser.y" + case 30: +#line 294 "./config_parser.y" { __sdp_rule.match_by_port = 1; __sdp_rule.sport= (yyvsp[(1) - (3)].ival); __sdp_rule.eport= (yyvsp[(3) - (3)].ival); } break; - case 33: -#line 269 "./config_parser.y" + case 31: +#line 295 "./config_parser.y" { __sdp_rule.match_by_port = 0; __sdp_rule.sport= 0 ; __sdp_rule.eport= 0; } break; /* Line 1267 of yacc.c. */ -#line 1614 "y.tab.c" +#line 1632 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -1824,7 +1842,7 @@ yyreturn: } -#line 272 "./config_parser.y" +#line 298 "./config_parser.y" int yyerror(char *msg) Modified: head/contrib/ofed/libsdp/src/config_parser.h ============================================================================== --- head/contrib/ofed/libsdp/src/config_parser.h Fri Mar 4 22:37:25 2016 (r296401) +++ head/contrib/ofed/libsdp/src/config_parser.h Fri Mar 4 22:37:31 2016 (r296402) @@ -53,7 +53,8 @@ FILENAME = 269, NAME = 270, LEVEL = 271, - LINE = 272 + LINE = 272, + SUBNET = 273 }; #endif /* Tokens. */ @@ -72,19 +73,20 @@ #define NAME 270 #define LEVEL 271 #define LINE 272 +#define SUBNET 273 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 167 "./config_parser.y" +#line 197 "./config_parser.y" { int ival; char *sval; } /* Line 1529 of yacc.c. */ -#line 88 "y.tab.h" +#line 90 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 Added: head/contrib/ofed/libsdp/src/config_parser.y ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/libsdp/src/config_parser.y Fri Mar 4 22:37:31 2016 (r296402) @@ -0,0 +1,359 @@ +/* + * Copyright (c) 2006 Mellanox Technologies Ltd. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * $Id: config_parser.y 1.5 2005/06/29 11:39:27 eitan Exp $ + */ + + +/* + +*/ +%{ + +/* header section */ +#include +#include +#include +#include "libsdp.h" +#include +#include +#include + +#define YYERROR_VERBOSE 1 + +extern int yyerror(char *msg); +extern int yylex(void); +static int parse_err = 0; + +struct use_family_rule *__sdp_clients_family_rules_head = NULL; +struct use_family_rule *__sdp_clients_family_rules_tail = NULL; +struct use_family_rule *__sdp_servers_family_rules_head = NULL; +struct use_family_rule *__sdp_servers_family_rules_tail = NULL; + +/* some globals to store intermidiate parser state */ +static struct use_family_rule __sdp_rule; +static int current_role = 0; + +int __sdp_config_empty( + void + ) +{ + return ( (__sdp_clients_family_rules_head == NULL) && + (__sdp_servers_family_rules_head == NULL) ); +} + +static void __sdp_set_ip_addr(char *addr) +{ + int rc; + char *addrlen; + struct sockaddr_in *addr4 = (struct sockaddr_in *)(&__sdp_rule.ip); + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)(&__sdp_rule.ip); + int prefixlen = 0; + + addrlen = strrchr(addr, '/'); + if (addrlen) { + prefixlen = atoi(addrlen + 1); + *addrlen = '\0'; + } + + rc = inet_pton(AF_INET, addr, &addr4->sin_addr); + if (rc > 0) { + addr4->sin_family = AF_INET; + __sdp_rule.prefixlen = prefixlen ?: 32; + return; + } + + rc = inet_pton(AF_INET6, addr, &addr6->sin6_addr); + if (rc > 0) { + addr6->sin6_family = AF_INET6; + __sdp_rule.prefixlen = prefixlen ?: 128; + return; + } + + parse_err = 1; + yyerror("provided address is not legal"); +} + +static const char *addr2str(struct sockaddr_storage *src) +{ + static char dst[INET6_ADDRSTRLEN]; + int af = src->ss_family; + const struct sockaddr_in *addr4 = (const struct sockaddr_in *)src; + const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6 *)src; + + if (af == AF_INET6) + return inet_ntop(af, &addr6->sin6_addr, dst, INET6_ADDRSTRLEN); + + return inet_ntop(af, &addr4->sin_addr, dst, INET6_ADDRSTRLEN); +} + +static void __sdp_set_prog_name_expr(char *prog_name_expr) +{ + __sdp_rule.prog_name_expr = strdup(prog_name_expr); + if (!__sdp_rule.prog_name_expr) { + yyerror("fail to allocate program name expression"); + } +} + +static char *__sdp_get_role_str(int role) +{ + if (role == 1) return("server"); + if (role == 2) return("client"); + return("unknown role"); +} + +extern int __sdp_min_level; + +/* dump the current state in readable format */ +static void __sdp_dump_config_state() { + char buf[1024]; + sprintf(buf, "CONFIG: use %s %s %s", + __sdp_get_family_str(__sdp_rule.target_family), + __sdp_get_role_str( current_role ), + __sdp_rule.prog_name_expr); + if (__sdp_rule.match_by_addr) { + sprintf(buf+strlen(buf), " %s/%d", + addr2str(&__sdp_rule.ip), __sdp_rule.prefixlen); + } else { + sprintf(buf+strlen(buf), " *"); + } + if (__sdp_rule.match_by_port) { + sprintf(buf+strlen(buf), ":%d",__sdp_rule.sport); + if (__sdp_rule.eport > __sdp_rule.sport) + sprintf(buf+strlen(buf), "-%d",__sdp_rule.eport); + } + else + sprintf(buf+strlen(buf), ":*"); + sprintf(buf+strlen(buf), "\n"); + __sdp_log(1, buf); +} + +/* use the above state for making a new rule */ +static void __sdp_add_rule() { + struct use_family_rule **p_tail, **p_head, *rule; + + if (__sdp_min_level <= 1) __sdp_dump_config_state(); + if ( current_role == 1 ) { + p_tail = &__sdp_servers_family_rules_tail; + p_head = &__sdp_servers_family_rules_head; + } else if ( current_role == 2 ) { + p_tail = &__sdp_clients_family_rules_tail; + p_head = &__sdp_clients_family_rules_head; + } else { + yyerror("ignoring unknown role"); + parse_err = 1; + return; + } + + rule = (struct use_family_rule *)malloc(sizeof(*rule)); + if (!rule) { + yyerror("fail to allocate new rule"); + parse_err = 1; + return; + } + + memset(rule, 0, sizeof(*rule)); + *rule = __sdp_rule; + rule->prev = *p_tail; + if (!(*p_head)) { + *p_head = rule; + } else { + (*p_tail)->next = rule; + } /* if */ + *p_tail = rule; +} + +%} + + +%union { + int ival; + char *sval; +} +%token USE "use" +%token CLIENT "client or connect" +%token SERVER "server or listen" +%token TCP "tcp" +%token SDP "sdp" +%token BOTH "both" +%token INT "integer value" +%token LOG "log statement" +%token DEST "destination" +%token STDERR "stderr" +%token SYSLOG "syslog" +%token FILENAME "file" +%token NAME "a name" +%token LEVEL "min-level" +%token LINE "new line" +%token SUBNET "ip address" +%type NAME SUBNET +%type INT LOG DEST STDERR SYSLOG FILENAME USE TCP SDP BOTH CLIENT SERVER LEVEL LINE +%debug +%error-verbose +%start config + +%{ + long __sdp_config_line_num; +%} +%% + +NL: + LINE + | NL LINE; + +ONL: + | NL; + +config: + ONL statements + ; + +statements: + | statements statement + ; + +statement: + log_statement + | socket_statement + ; + +log_statement: + LOG log_opts NL + ; + +log_opts: + | log_opts log_dest + | log_opts verbosity + ; + +log_dest: + DEST STDERR { __sdp_log_set_log_stderr(); } + | DEST SYSLOG { __sdp_log_set_log_syslog(); } + | DEST FILENAME NAME { __sdp_log_set_log_file($3); } + ; + +verbosity: + LEVEL INT { __sdp_log_set_min_level($2); } + ; + +socket_statement: + USE family role program address ':' ports NL { __sdp_add_rule(); } + ; + +family: + TCP { __sdp_rule.target_family = USE_TCP; } + | SDP { __sdp_rule.target_family = USE_SDP; } + | BOTH { __sdp_rule.target_family = USE_BOTH; } + ; + +role: + SERVER { current_role = 1; } + | CLIENT { current_role = 2; } + ; + +program: + NAME { __sdp_set_prog_name_expr($1); } + | '*' { __sdp_set_prog_name_expr("*"); } + ; + +address: + SUBNET { __sdp_rule.match_by_addr = 1; __sdp_set_ip_addr($1); } + | '*' { __sdp_rule.match_by_addr = 0; __sdp_rule.prefixlen = 32; } + ; + +ports: + INT { __sdp_rule.match_by_port = 1; __sdp_rule.sport= $1; __sdp_rule.eport= $1; } + | INT '-' INT { __sdp_rule.match_by_port = 1; __sdp_rule.sport= $1; __sdp_rule.eport= $3; } + | '*' { __sdp_rule.match_by_port = 0; __sdp_rule.sport= 0 ; __sdp_rule.eport= 0; } + ; + +%% + +int yyerror(char *msg) +{ + /* replace the $undefined and $end if exists */ + char *orig_msg = (char*)malloc(strlen(msg)+25); + char *final_msg = (char*)malloc(strlen(msg)+25); + + strcpy(orig_msg, msg); + + char *word = strtok(orig_msg, " "); + final_msg[0] = '\0'; + while (word != NULL) { + if (!strncmp(word, "$undefined", 10)) { + strcat(final_msg, "unrecognized-token "); + } else if (!strncmp(word, "$end",4)) { + strcat(final_msg, "end-of-file "); + } else { + strcat(final_msg, word); + strcat(final_msg, " "); + } + word = strtok(NULL, " "); + } + + __sdp_log(9, "Error (line:%ld) : %s\n", __sdp_config_line_num, final_msg); + parse_err = 1; + + free(orig_msg); + free(final_msg); + return 1; +} + +#include +#include + +/* parse apollo route dump file */ +int __sdp_parse_config (const char *fileName) { + extern FILE * libsdp_yyin; + + /* open the file */ + if (access(fileName, R_OK)) { + printf("libsdp Error: No access to open File:%s %s\n", + fileName, strerror(errno)); + return(1); + } + + libsdp_yyin = fopen(fileName,"r"); + if (!libsdp_yyin) { + printf("libsdp Error: Fail to open File:%s\n", fileName); + return(1); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri Mar 4 22:37:48 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C0EC9DA556; Fri, 4 Mar 2016 22:37:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 667D3951; Fri, 4 Mar 2016 22:37:48 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u24MbltQ053115; Fri, 4 Mar 2016 22:37:47 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u24Mbi8I053083; Fri, 4 Mar 2016 22:37:44 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603042237.u24Mbi8I053083@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 4 Mar 2016 22:37:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296403 - in head: contrib/ofed/usr.bin/ibaddr contrib/ofed/usr.bin/ibnetdiscover contrib/ofed/usr.bin/ibping contrib/ofed/usr.bin/ibportstate contrib/ofed/usr.bin/ibroute contrib/ofed/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 22:37:48 -0000 Author: bdrewery Date: Fri Mar 4 22:37:44 2016 New Revision: 296403 URL: https://svnweb.freebsd.org/changeset/base/296403 Log: DIRDEPS_BUILD: Connect ofed. Sponsored by: EMC / Isilon Storage Division Added: head/contrib/ofed/usr.bin/ibaddr/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibnetdiscover/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibping/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibportstate/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibroute/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibsendtrap/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibstat/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibsysstat/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/ibtracert/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/opensm/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/osmtest/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/perfquery/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/saquery/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/sminfo/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/smpdump/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/smpquery/Makefile.depend (contents, props changed) head/contrib/ofed/usr.bin/vendstat/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libcxgb4/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libibcm/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libibcommon/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libibmad/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libibumad/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libibverbs/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libmlx4/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libmthca/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libopensm/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libosmcomp/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libosmvendor/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/librdmacm/Makefile.depend (contents, props changed) head/contrib/ofed/usr.lib/libsdp/Makefile.depend (contents, props changed) Modified: head/targets/pseudo/userland/Makefile.depend head/targets/pseudo/userland/lib/Makefile.depend Added: head/contrib/ofed/usr.bin/ibaddr/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibaddr/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,22 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibnetdiscover/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibnetdiscover/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,23 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libosmcomp \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibping/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibping/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibportstate/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibportstate/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibroute/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibroute/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,23 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libosmcomp \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibsendtrap/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibsendtrap/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibstat/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibstat/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,20 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibsysstat/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibsysstat/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/ibtracert/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/ibtracert/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,23 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libosmcomp \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/opensm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/opensm/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,26 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libopensm \ + contrib/ofed/usr.lib/libosmcomp \ + contrib/ofed/usr.lib/libosmvendor \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + usr.bin/yacc.host \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/osmtest/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/osmtest/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,26 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libopensm \ + contrib/ofed/usr.lib/libosmcomp \ + contrib/ofed/usr.lib/libosmvendor \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/perfquery/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/perfquery/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/saquery/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/saquery/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,26 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libopensm \ + contrib/ofed/usr.lib/libosmcomp \ + contrib/ofed/usr.lib/libosmvendor \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/sminfo/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/sminfo/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/smpdump/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/smpdump/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/smpquery/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/smpquery/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,23 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libosmcomp \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.bin/vendstat/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.bin/vendstat/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libcxgb4/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libcxgb4/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibverbs \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libibcm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libibcm/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibverbs \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libibcommon/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libibcommon/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,18 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libibmad/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libibmad/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,21 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibumad \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libibumad/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libibumad/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibcommon \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libibverbs/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libibverbs/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,18 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libmlx4/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libmlx4/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,20 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibverbs \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libmthca/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libmthca/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,20 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibverbs \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libopensm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libopensm/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,20 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libosmcomp/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libosmcomp/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,20 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + lib/msun \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libosmvendor/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libosmvendor/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,22 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libopensm \ + contrib/ofed/usr.lib/libosmcomp \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libthr \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/librdmacm/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/librdmacm/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + contrib/ofed/usr.lib/libibverbs \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Added: head/contrib/ofed/usr.lib/libsdp/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/ofed/usr.lib/libsdp/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -0,0 +1,19 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif Modified: head/targets/pseudo/userland/Makefile.depend ============================================================================== --- head/targets/pseudo/userland/Makefile.depend Fri Mar 4 22:37:31 2016 (r296402) +++ head/targets/pseudo/userland/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -894,6 +894,27 @@ DIRDEPS.powerpc= \ DIRDEPS+= usr.bin/dtc .endif +.if ${MK_OFED} != "no" +DIRDEPS+= \ + contrib/ofed/usr.bin/ibaddr \ + contrib/ofed/usr.bin/ibnetdiscover \ + contrib/ofed/usr.bin/ibping \ + contrib/ofed/usr.bin/ibportstate \ + contrib/ofed/usr.bin/ibroute \ + contrib/ofed/usr.bin/ibsendtrap \ + contrib/ofed/usr.bin/ibstat \ + contrib/ofed/usr.bin/ibsysstat \ + contrib/ofed/usr.bin/ibtracert \ + contrib/ofed/usr.bin/opensm \ + contrib/ofed/usr.bin/osmtest \ + contrib/ofed/usr.bin/perfquery \ + contrib/ofed/usr.bin/saquery \ + contrib/ofed/usr.bin/sminfo \ + contrib/ofed/usr.bin/smpdump \ + contrib/ofed/usr.bin/smpquery \ + contrib/ofed/usr.bin/vendstat +.endif + DIRDEPS+= ${DIRDEPS.${MACHINE}:U} Modified: head/targets/pseudo/userland/lib/Makefile.depend ============================================================================== --- head/targets/pseudo/userland/lib/Makefile.depend Fri Mar 4 22:37:31 2016 (r296402) +++ head/targets/pseudo/userland/lib/Makefile.depend Fri Mar 4 22:37:44 2016 (r296403) @@ -197,4 +197,21 @@ DIRDEPS+= \ .endif +.if ${MK_OFED} != "no" +DIRDEPS+= \ + contrib/ofed/usr.lib/libcxgb4 \ + contrib/ofed/usr.lib/libibcm \ + contrib/ofed/usr.lib/libibcommon \ + contrib/ofed/usr.lib/libibmad \ + contrib/ofed/usr.lib/libibumad \ + contrib/ofed/usr.lib/libibverbs \ + contrib/ofed/usr.lib/libmlx4 \ + contrib/ofed/usr.lib/libmthca \ + contrib/ofed/usr.lib/libopensm \ + contrib/ofed/usr.lib/libosmcomp \ + contrib/ofed/usr.lib/libosmvendor \ + contrib/ofed/usr.lib/librdmacm \ + contrib/ofed/usr.lib/libsdp +.endif + .include From owner-svn-src-head@freebsd.org Fri Mar 4 23:10:53 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C38AA9DB2B3 for ; Fri, 4 Mar 2016 23:10:53 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm14-vm0.bullet.mail.bf1.yahoo.com (nm14-vm0.bullet.mail.bf1.yahoo.com [98.139.213.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D2D6BD7 for ; Fri, 4 Mar 2016 23:10:53 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1457133046; bh=YHLhaozoPhe/D5YNkVmqx6czjmhXfZcpm/8Ega/chhA=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From:Subject; b=kYucctfJM1ldHStfK8GWOdVNBXevgG4RKTshtarb8Ahsa/wBznwMzynVIWNoV1izkqK9WvKcPGJUhDYUDazGOgRju2o0HDJpj1SVU/dArs5JzFSbacAFLpk9oWY0S59IBJyUSoAadjzDSZfQhsS1kupWGkSx4U32SJEi6vgAhO0Cxif/gvW9T5o2/j/OQPoUKsbEec3MSWWETB0MlIhEzTO1PZnVkuIZb1nfkY/QSU+yB0UkNhFzWEMi1mVftOn0CRieuWHlx/PgQzpYyU0soA/W/cp3rDn3dOz6EkuzA2Y8N18/PycszE6v10DIqjyb9oCveVMlzJ+ZKYA4vzMMGA== Received: from [66.196.81.172] by nm14.bullet.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 23:10:46 -0000 Received: from [98.139.213.8] by tm18.bullet.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 23:10:46 -0000 Received: from [127.0.0.1] by smtp108.mail.bf1.yahoo.com with NNFMP; 04 Mar 2016 23:10:46 -0000 X-Yahoo-Newman-Id: 185989.19196.bm@smtp108.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: 9VQkafUVM1kgpYoGSdMPyr..A5qYe5TW6XQNLbcNUEXiy8M zMG1eWOmt8SUXM8ifOOtuLj3aX7Yn_GnZRwGzExyJEqQQeUV5UkL7f6hgso8 Pcqd.ilSpz9FoCzFkJHDmhWtHmeP9NXcRwQYHqykb5vKpTPx3zqS94BNeeAS f49naYqDRWCgxwqZsOHO.A_WR08QgEBT.koID2sYTvndY2VpjsxlrHhHRvnd 4w1UusvQk7gm76YfRsoGJG72G.wDv.FkjDS4tZDU4lb9IEhyGpcK_ec0nvl2 2AJNzzHl7UHa3Oy5j1zxxPJLY4Slb64Fb4kyZHyEPfAd5BSjV3Owyxn0xlbH Dho3kWuhUIMX7ykLs5CF.YWU9vfFUUs9aYJ328D5o3LUmthuyJBn9s1G0qwZ SXz7MZmQX20z5l30LnpW3TM8OER0LhEWSZaBOU0dghkRzEej53KDjBjhYi9Y b8Neozy94zAA_e8CIvi3YL0jmZ8rZQ.iIru5_tgwj6e9c8Nu0mna2ocTgjUQ b5o.2dtLN7ZNRQdfH1._qX8XdxRlxlvxY X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r296386 - head/lib/libc/rpc To: Jilles Tjoelker References: <201603041530.u24FUfu5021609@repo.freebsd.org> <20160304223231.GA47504@stack.nl> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Pedro Giffuni Message-ID: <56DA1620.30800@FreeBSD.org> Date: Fri, 4 Mar 2016 18:11:28 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160304223231.GA47504@stack.nl> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Mar 2016 23:10:54 -0000 On 03/04/16 17:32, Jilles Tjoelker wrote: > On Fri, Mar 04, 2016 at 03:30:41PM +0000, Pedro F. Giffuni wrote: >> Author: pfg >> Date: Fri Mar 4 15:30:41 2016 >> New Revision: 296386 >> URL: https://svnweb.freebsd.org/changeset/base/296386 > >> Log: >> Work around aliasing issues detected in modern GCC. > >> Avoid casting gymnastics that lead to pointer aliasing by introducing an >> inline function as done in NetBSD (but without #if0'd WIP code). > >> Obtained from: NetBSD (CVS Rev. 1.24, 1.25) > >> Modified: >> head/lib/libc/rpc/clnt_vc.c > >> Modified: head/lib/libc/rpc/clnt_vc.c >> ============================================================================== >> --- head/lib/libc/rpc/clnt_vc.c Fri Mar 4 14:23:34 2016 (r296385) >> +++ head/lib/libc/rpc/clnt_vc.c Fri Mar 4 15:30:41 2016 (r296386) >> @@ -502,6 +502,20 @@ clnt_vc_abort(CLIENT *cl) >> { >> } >> >> +static __inline void >> +htonlp(void *dst, const void *src, uint32_t incr) >> +{ >> + /* We are aligned, so we think */ >> + *(uint32_t *)dst = htonl(*(const uint32_t *)src + incr); >> +} >> + >> +static __inline void >> +ntohlp(void *dst, const void *src) >> +{ >> + /* We are aligned, so we think */ >> + *(uint32_t *)dst = htonl(*(const uint32_t *)src); >> +} >> + >> static bool_t >> clnt_vc_control(CLIENT *cl, u_int request, void *info) >> { >> @@ -576,14 +590,12 @@ clnt_vc_control(CLIENT *cl, u_int reques >> * first element in the call structure >> * This will get the xid of the PREVIOUS call >> */ >> - *(u_int32_t *)info = >> - ntohl(*(u_int32_t *)(void *)&ct->ct_u.ct_mcalli); >> + ntohlp(info, &ct->ct_u.ct_mcalli); >> break; >> case CLSET_XID: >> /* This will set the xid of the NEXT call */ >> - *(u_int32_t *)(void *)&ct->ct_u.ct_mcalli = >> - htonl(*((u_int32_t *)info) + 1); >> /* increment by 1 as clnt_vc_call() decrements once */ >> + htonlp(&ct->ct_u.ct_mcalli, info, 1); >> break; >> case CLGET_VERS: >> /* >> @@ -592,15 +604,11 @@ clnt_vc_control(CLIENT *cl, u_int reques >> * begining of the RPC header. MUST be changed if the >> * call_struct is changed >> */ >> - *(u_int32_t *)info = >> - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + >> - 4 * BYTES_PER_XDR_UNIT)); >> + ntohlp(info, ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT); >> break; >> >> case CLSET_VERS: >> - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + >> - 4 * BYTES_PER_XDR_UNIT) = >> - htonl(*(u_int32_t *)info); >> + htonlp(ct->ct_u.ct_mcallc + 4 * BYTES_PER_XDR_UNIT, info, 0); >> break; >> >> case CLGET_PROG: >> @@ -610,15 +618,11 @@ clnt_vc_control(CLIENT *cl, u_int reques >> * begining of the RPC header. MUST be changed if the >> * call_struct is changed >> */ >> - *(u_int32_t *)info = >> - ntohl(*(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + >> - 3 * BYTES_PER_XDR_UNIT)); >> + ntohlp(info, ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT); >> break; >> >> case CLSET_PROG: >> - *(u_int32_t *)(void *)(ct->ct_u.ct_mcallc + >> - 3 * BYTES_PER_XDR_UNIT) = >> - htonl(*(u_int32_t *)info); >> + htonlp(ct->ct_u.ct_mcallc + 3 * BYTES_PER_XDR_UNIT, info, 0); >> break; >> >> default: > > This change just deceives GCC's warning logic without changing whether > there is an aliasing violation or not (I don't think there is any when > clnt_vc.c is compiled separately, since *ct does not have an effective > type in that case). > Yes, I am trying to keep some changes in sync with NetBSD. They have some #ifdef 0'd code with memsets but the code is already ugly to worry about code that apparently is not ready yet. > To avoid casts, ct_mcalli could be changed to an array (of > MCALL_MSG_SIZE / 4 elements) and used. This also avoids depending on the > unspecified value of the elements 4 to 23 of ct_mcallc after storing to > ct_mcalli. > > Note that C89 did not permit type punning via a union. NetBSD might care > but we do not. C89 compilers are unlikely to be cunning enough for this > to be a problem anyway. > Hmm.. so C89 is probably the reason the linux guys are also doing the same, or uglier, workarounds. :(. > It may be that this code is too old for this kind of change. > I am just trying to put the forks in somewhat more consistent shape, and finding surprises in the way. I will probably put the more controversial changes in phabricator over the weekend. Pedro. From owner-svn-src-head@freebsd.org Sat Mar 5 01:17:25 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36883A092C1; Sat, 5 Mar 2016 01:17:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 06774379; Sat, 5 Mar 2016 01:17:24 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u251HOQa001565; Sat, 5 Mar 2016 01:17:24 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u251HOqC001564; Sat, 5 Mar 2016 01:17:24 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201603050117.u251HOqC001564@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sat, 5 Mar 2016 01:17:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296404 - head/lib/libc/rpc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 01:17:25 -0000 Author: pfg Date: Sat Mar 5 01:17:23 2016 New Revision: 296404 URL: https://svnweb.freebsd.org/changeset/base/296404 Log: Stray tabs and spaces. No functional change. Modified: head/lib/libc/rpc/rtime.c Modified: head/lib/libc/rpc/rtime.c ============================================================================== --- head/lib/libc/rpc/rtime.c Fri Mar 4 22:37:44 2016 (r296403) +++ head/lib/libc/rpc/rtime.c Sat Mar 5 01:17:23 2016 (r296404) @@ -61,8 +61,8 @@ __FBSDID("$FreeBSD$"); extern int _rpc_dtablesize( void ); -#define NYEARS (unsigned long)(1970 - 1900) -#define TOFFSET (unsigned long)(60*60*24*(365*NYEARS + (NYEARS/4))) +#define NYEARS (unsigned long)(1970 - 1900) +#define TOFFSET (unsigned long)(60*60*24*(365*NYEARS + (NYEARS/4))) static void do_close( int ); @@ -98,11 +98,11 @@ rtime(struct sockaddr_in *addrp, struct addrp->sin_port = serv->s_port; if (type == SOCK_DGRAM) { - res = _sendto(s, (char *)&thetime, sizeof(thetime), 0, + res = _sendto(s, (char *)&thetime, sizeof(thetime), 0, (struct sockaddr *)addrp, sizeof(*addrp)); if (res < 0) { do_close(s); - return(-1); + return(-1); } do { FD_ZERO(&readfds); @@ -115,14 +115,14 @@ rtime(struct sockaddr_in *addrp, struct errno = ETIMEDOUT; } do_close(s); - return(-1); + return(-1); } fromlen = sizeof(from); - res = _recvfrom(s, (char *)&thetime, sizeof(thetime), 0, + res = _recvfrom(s, (char *)&thetime, sizeof(thetime), 0, (struct sockaddr *)&from, &fromlen); do_close(s); if (res < 0) { - return(-1); + return(-1); } } else { if (_connect(s, (struct sockaddr *)addrp, sizeof(*addrp)) < 0) { @@ -137,7 +137,7 @@ rtime(struct sockaddr_in *addrp, struct } if (res != sizeof(thetime)) { errno = EIO; - return(-1); + return(-1); } thetime = ntohl(thetime); timep->tv_sec = thetime - TOFFSET; From owner-svn-src-head@freebsd.org Sat Mar 5 01:18:08 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0730A0933F; Sat, 5 Mar 2016 01:18:08 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id B2308750; Sat, 5 Mar 2016 01:18:08 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id A8FD21EF9; Sat, 5 Mar 2016 01:18:08 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 61F7B1617C; Sat, 5 Mar 2016 01:18:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id c5hRr34id-Sj; Sat, 5 Mar 2016 01:18:06 +0000 (UTC) From: Bryan Drewery DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com D2C0F16176 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (1.0) Subject: Re: svn commit: r296395 - head/lib Message-Id: Date: Fri, 4 Mar 2016 17:18:04 -0800 References: <201603042236.u24Mag6c052665@repo.freebsd.org> In-Reply-To: <201603042236.u24Mag6c052665@repo.freebsd.org> To: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" X-Mailer: iPhone Mail (12H143) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 01:18:08 -0000 > On Mar 4, 2016, at 14:36, Bryan Drewery wrote: >=20 > Author: bdrewery > Date: Fri Mar 4 22:36:42 2016 > New Revision: 296395 > URL: https://svnweb.freebsd.org/changeset/base/296395 >=20 > Log: > Parallel installation has been safe here since r267511 added SUBDIR_DEPEN= D. >=20 > Sponsored by: EMC / Isilon Storage Division >=20 > Modified: > head/lib/Makefile >=20 > Modified: head/lib/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > --- head/lib/Makefile Fri Mar 4 22:03:38 2016 (r296394) > +++ head/lib/Makefile Fri Mar 4 22:36:42 2016 (r296395) > @@ -308,8 +308,4 @@ _libusbhid=3D libusbhid > _libusb=3D libusb > .endif >=20 > -.if !make(install) > -SUBDIR_PARALLEL=3D > -.endif > - > .include >=20 This is obviously wrong. Got a little excited on the removal. I will test th= e correct version and get it in soon.= From owner-svn-src-head@freebsd.org Sat Mar 5 05:08:58 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCB7C9DA186; Sat, 5 Mar 2016 05:08:58 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 9E01A75B; Sat, 5 Mar 2016 05:08:58 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2558vqw071387; Sat, 5 Mar 2016 05:08:57 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2558voj071386; Sat, 5 Mar 2016 05:08:57 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603050508.u2558voj071386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Sat, 5 Mar 2016 05:08:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296405 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 05:08:58 -0000 Author: bdrewery Date: Sat Mar 5 05:08:57 2016 New Revision: 296405 URL: https://svnweb.freebsd.org/changeset/base/296405 Log: Conditionalize building makewhatis(1) for upgrades that need it. Remove building of the legacy makewhatis(1) since it was only needed for 6.0 upgrades. On my 2.2 GHz system libsqlite3 takes 60-100 seconds to build, which due to its serialized nature can hold up the build waiting on it to finish in bootstrap-tools. makewhatis(1) was only required to be a build tool to support upgrades from 6.0 which was properly removed in r208324 but later reverted due to installworld using it. The installworld issue was fixed in r275622 when it was added to ITOOLS. A BOOTSTRAPPING check was missed when makewhatis(1) was replaced with mandoc in r283777. Sponsored by: EMC / Isilon Storage Division Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sat Mar 5 01:17:23 2016 (r296404) +++ head/Makefile.inc1 Sat Mar 5 05:08:57 2016 (r296405) @@ -1529,13 +1529,12 @@ _kerberos5_bootstrap_tools= \ .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g} .endif -.if ${MK_MANDOCDB} != "no" +# r283777 makewhatis(1) replaced with mandoc version which builds a database. +.if ${MK_MANDOCDB} != "no" && ${BOOTSTRAPPING} < 1100075 _libopenbsd?= lib/libopenbsd _makewhatis= lib/libsqlite3 \ usr.bin/mandoc ${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd ${_bt}-lib/libsqlite3 -.else -_makewhatis=usr.bin/makewhatis .endif bootstrap-tools: .PHONY From owner-svn-src-head@freebsd.org Sat Mar 5 05:40:00 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF3679DAD20; Sat, 5 Mar 2016 05:40:00 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 B0A521A8; Sat, 5 Mar 2016 05:40:00 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u255dxqL080459; Sat, 5 Mar 2016 05:39:59 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u255dxQl080458; Sat, 5 Mar 2016 05:39:59 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201603050539.u255dxQl080458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Sat, 5 Mar 2016 05:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296406 - head/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 05:40:01 -0000 Author: bdrewery Date: Sat Mar 5 05:39:59 2016 New Revision: 296406 URL: https://svnweb.freebsd.org/changeset/base/296406 Log: Revert r296395. This mistakenly removed the SUBDIR_PARALLEL but even worse is that the install (and build) order is not correct due to the lack of SUBDIR_DEPEND on the most critical libraries. The only reason they build correctly now is because buildworld's 'make libraries' orders them properly. Pointyhat to: bdrewery Sponsored by: EMC / Isilon Storage Division Modified: head/lib/Makefile Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Sat Mar 5 05:08:57 2016 (r296405) +++ head/lib/Makefile Sat Mar 5 05:39:59 2016 (r296406) @@ -308,4 +308,8 @@ _libusbhid= libusbhid _libusb= libusb .endif +.if !make(install) +SUBDIR_PARALLEL= +.endif + .include From owner-svn-src-head@freebsd.org Sat Mar 5 06:13:53 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF88DA09914; Sat, 5 Mar 2016 06:13:53 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id AA19919A; Sat, 5 Mar 2016 06:13:53 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id A407E14B0; Sat, 5 Mar 2016 06:13:53 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 5E574164B4; Sat, 5 Mar 2016 06:13:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id I6XDTGgZHnss; Sat, 5 Mar 2016 06:13:50 +0000 (UTC) Subject: Re: svn commit: r296406 - head/lib DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 096E0164AA To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201603050539.u255dxQl080458@repo.freebsd.org> From: Bryan Drewery Organization: FreeBSD Message-ID: <56DA791B.2030205@FreeBSD.org> Date: Fri, 4 Mar 2016 22:13:47 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <201603050539.u255dxQl080458@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 06:13:53 -0000 On 3/4/16 9:39 PM, Bryan Drewery wrote: > Author: bdrewery > Date: Sat Mar 5 05:39:59 2016 > New Revision: 296406 > URL: https://svnweb.freebsd.org/changeset/base/296406 > > Log: > Revert r296395. > > This mistakenly removed the SUBDIR_PARALLEL but even worse is that the install > (and build) order is not correct due to the lack of SUBDIR_DEPEND on the > most critical libraries. The only reason they build correctly now is because > buildworld's 'make libraries' orders them properly. Bonus, the addition of SUBDIR_DEPEND in lib/Makefile in r267511 technically breaks non-parallel builds since it de-ordered everything and has relied on the ordering in Makefile.inc1 even more. I had tried to make bsd.subdir.mk create targets for each subdir even without -j before mostly as an attempt to simplify it some. If I can pull that off though then we can use the SUBDIR_DEPEND for non-parallel builds as well. -- Regards, Bryan Drewery From owner-svn-src-head@freebsd.org Sat Mar 5 11:20:03 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B416CA09A68; Sat, 5 Mar 2016 11:20:03 +0000 (UTC) (envelope-from cmt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 82CD29FD; Sat, 5 Mar 2016 11:20:03 +0000 (UTC) (envelope-from cmt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25BK2Mo083039; Sat, 5 Mar 2016 11:20:02 GMT (envelope-from cmt@FreeBSD.org) Received: (from cmt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25BK2Dm083038; Sat, 5 Mar 2016 11:20:02 GMT (envelope-from cmt@FreeBSD.org) Message-Id: <201603051120.u25BK2Dm083038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cmt set sender to cmt@FreeBSD.org using -f From: Christoph Moench-Tegeder Date: Sat, 5 Mar 2016 11:20:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296407 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 11:20:03 -0000 Author: cmt (ports committer) Date: Sat Mar 5 11:20:02 2016 New Revision: 296407 URL: https://svnweb.freebsd.org/changeset/base/296407 Log: Add myself as a ports committer Mentors are miwi@ and rene@ Approved by: rene (mentor) Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Sat Mar 5 05:39:59 2016 (r296406) +++ head/share/misc/committers-ports.dot Sat Mar 5 11:20:02 2016 (r296407) @@ -75,6 +75,7 @@ bsam [label="Boris Samorodov\nbsam@FreeB chinsan [label="Chinsan Huang\nchinsan@FreeBSD.org\n2007/06/12"] clement [label="Clement Laforet\nclement@FreeBSD.org\n2003/12/17"] clsung [label="Cheng-Lung Sung\nclsung@FreeBSD.org\n2004/8/18"] +cmt [label="Christoph Moench-Tegeder\ncmt@FreeBSD.org\n2016/03/01"] cperciva [label="Colin Percival\ncperciva@FreeBSD.org\n2006/01/31"] crees [label="Chris Rees\ncrees@FreeBSD.org\n2011/06/11"] cs [label="Carlo Strub\ncs@FreeBSD.org\n2011/09/13"] @@ -464,6 +465,7 @@ miwi -> antoine miwi -> avilla miwi -> beat miwi -> bf +miwi -> cmt miwi -> decke miwi -> dhn miwi -> farrokhi @@ -526,6 +528,7 @@ rafan -> chinsan rakuco -> alonso rene -> bar +rene -> cmt rene -> crees rene -> jgh rene -> olivierd From owner-svn-src-head@freebsd.org Sat Mar 5 13:17:55 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82B07A096DD; Sat, 5 Mar 2016 13:17:55 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 451213DD; Sat, 5 Mar 2016 13:17:55 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25DHstT020814; Sat, 5 Mar 2016 13:17:54 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25DHsje020811; Sat, 5 Mar 2016 13:17:54 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201603051317.u25DHsje020811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sat, 5 Mar 2016 13:17:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296408 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 13:17:55 -0000 Author: andrew Date: Sat Mar 5 13:17:53 2016 New Revision: 296408 URL: https://svnweb.freebsd.org/changeset/base/296408 Log: Add support to enable/disable both the EHCI and OHCI Allwinner clocks. This adds a lock to ensure only a single device is accessing the hardware. A reference count is added to only enable when we start to use the clock, and to disable after we have finished needing the clock. This was extracted from a larger review to add OHCI support to the Allwinner SoCs. Submitted by: Emmanuel Vadot Reviewed by: jmcneill X-Differential Revision: https://reviews.freebsd.org/D5481 Modified: head/sys/arm/allwinner/a10_clk.c head/sys/arm/allwinner/a10_clk.h head/sys/arm/allwinner/a10_ehci.c Modified: head/sys/arm/allwinner/a10_clk.c ============================================================================== --- head/sys/arm/allwinner/a10_clk.c Sat Mar 5 11:20:02 2016 (r296407) +++ head/sys/arm/allwinner/a10_clk.c Sat Mar 5 13:17:53 2016 (r296408) @@ -59,14 +59,27 @@ struct a10_ccm_softc { struct resource *res; bus_space_tag_t bst; bus_space_handle_t bsh; + struct mtx mtx; int pll6_enabled; + int ehci_cnt; + int ohci_cnt; + int usbphy_cnt; + int usb_cnt; }; static struct a10_ccm_softc *a10_ccm_sc = NULL; -#define ccm_read_4(sc, reg) \ +static int a10_clk_usbphy_activate(struct a10_ccm_softc *sc); +static int a10_clk_usbphy_deactivate(struct a10_ccm_softc *sc); +static int a10_clk_usb_activate(struct a10_ccm_softc *sc); +static int a10_clk_usb_deactivate(struct a10_ccm_softc *sc); + +#define CCM_LOCK(sc) mtx_lock(&(sc)->mtx); +#define CCM_UNLOCK(sc) mtx_unlock(&(sc)->mtx); +#define CCM_LOCK_ASSERT(sc) mtx_assert(&(sc)->mtx, MA_OWNED) +#define ccm_read_4(sc, reg) \ bus_space_read_4((sc)->bst, (sc)->bsh, (reg)) -#define ccm_write_4(sc, reg, val) \ +#define ccm_write_4(sc, reg, val) \ bus_space_write_4((sc)->bst, (sc)->bsh, (reg), (val)) static int @@ -102,6 +115,8 @@ a10_ccm_attach(device_t dev) sc->bst = rman_get_bustag(sc->res); sc->bsh = rman_get_bushandle(sc->res); + mtx_init(&sc->mtx, "a10_ccm", NULL, MTX_DEF); + a10_ccm_sc = sc; return (0); @@ -125,7 +140,7 @@ EARLY_DRIVER_MODULE(a10_ccm, simplebus, BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); int -a10_clk_usb_activate(void) +a10_clk_ehci_activate(void) { struct a10_ccm_softc *sc = a10_ccm_sc; uint32_t reg_value; @@ -133,26 +148,26 @@ a10_clk_usb_activate(void) if (sc == NULL) return (ENXIO); - /* Gating AHB clock for USB */ - reg_value = ccm_read_4(sc, CCM_AHB_GATING0); - reg_value |= CCM_AHB_GATING_USB0; /* AHB clock gate usb0 */ - reg_value |= CCM_AHB_GATING_EHCI0; /* AHB clock gate ehci0 */ - reg_value |= CCM_AHB_GATING_EHCI1; /* AHB clock gate ehci1 */ - ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + CCM_LOCK(sc); + + if (++sc->ehci_cnt == 1) { + /* Gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value |= CCM_AHB_GATING_EHCI0; /* AHB clock gate ehci0 */ + reg_value |= CCM_AHB_GATING_EHCI1; /* AHB clock gate ehci1 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + } + + a10_clk_usb_activate(sc); + a10_clk_usbphy_activate(sc); - /* Enable clock for USB */ - reg_value = ccm_read_4(sc, CCM_USB_CLK); - reg_value |= CCM_USB_PHY; /* USBPHY */ - reg_value |= CCM_USB0_RESET; /* disable reset for USB0 */ - reg_value |= CCM_USB1_RESET; /* disable reset for USB1 */ - reg_value |= CCM_USB2_RESET; /* disable reset for USB2 */ - ccm_write_4(sc, CCM_USB_CLK, reg_value); + CCM_UNLOCK(sc); return (0); } int -a10_clk_usb_deactivate(void) +a10_clk_ehci_deactivate(void) { struct a10_ccm_softc *sc = a10_ccm_sc; uint32_t reg_value; @@ -160,20 +175,160 @@ a10_clk_usb_deactivate(void) if (sc == NULL) return (ENXIO); - /* Disable clock for USB */ - reg_value = ccm_read_4(sc, CCM_USB_CLK); - reg_value &= ~CCM_USB_PHY; /* USBPHY */ - reg_value &= ~CCM_USB0_RESET; /* reset for USB0 */ - reg_value &= ~CCM_USB1_RESET; /* reset for USB1 */ - reg_value &= ~CCM_USB2_RESET; /* reset for USB2 */ - ccm_write_4(sc, CCM_USB_CLK, reg_value); + CCM_LOCK(sc); - /* Disable gating AHB clock for USB */ - reg_value = ccm_read_4(sc, CCM_AHB_GATING0); - reg_value &= ~CCM_AHB_GATING_USB0; /* disable AHB clock gate usb0 */ - reg_value &= ~CCM_AHB_GATING_EHCI0; /* disable AHB clock gate ehci0 */ - reg_value &= ~CCM_AHB_GATING_EHCI1; /* disable AHB clock gate ehci1 */ - ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + if (--sc->ehci_cnt == 0) { + /* Disable gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value &= ~CCM_AHB_GATING_EHCI0; /* disable AHB clock gate ehci0 */ + reg_value &= ~CCM_AHB_GATING_EHCI1; /* disable AHB clock gate ehci1 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + } + + a10_clk_usb_deactivate(sc); + a10_clk_usbphy_deactivate(sc); + + CCM_UNLOCK(sc); + + return (0); +} + +int +a10_clk_ohci_activate(void) +{ + struct a10_ccm_softc *sc = a10_ccm_sc; + uint32_t reg_value; + + if (sc == NULL) + return (ENXIO); + + CCM_LOCK(sc); + + if (++sc->ohci_cnt == 1) { + /* Gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value |= CCM_AHB_GATING_OHCI0; /* AHB clock gate ohci0 */ + reg_value |= CCM_AHB_GATING_OHCI1; /* AHB clock gate ohci1 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + + /* Enable clock for USB */ + reg_value = ccm_read_4(sc, CCM_USB_CLK); + reg_value |= CCM_SCLK_GATING_OHCI0; + reg_value |= CCM_SCLK_GATING_OHCI1; + ccm_write_4(sc, CCM_USB_CLK, reg_value); + } + + a10_clk_usb_activate(sc); + a10_clk_usbphy_activate(sc); + + CCM_UNLOCK(sc); + + return (0); +} + +int +a10_clk_ohci_deactivate(void) +{ + struct a10_ccm_softc *sc = a10_ccm_sc; + uint32_t reg_value; + + if (sc == NULL) + return (ENXIO); + + CCM_LOCK(sc); + + if (--sc->ohci_cnt == 0) { + /* Disable clock for USB */ + reg_value = ccm_read_4(sc, CCM_USB_CLK); + reg_value &= ~CCM_SCLK_GATING_OHCI0; + reg_value &= ~CCM_SCLK_GATING_OHCI1; + ccm_write_4(sc, CCM_USB_CLK, reg_value); + + /* Disable gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value &= ~CCM_AHB_GATING_OHCI0; /* disable AHB clock gate ohci0 */ + reg_value &= ~CCM_AHB_GATING_OHCI1; /* disable AHB clock gate ohci1 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + } + + a10_clk_usb_deactivate(sc); + a10_clk_usbphy_deactivate(sc); + + CCM_UNLOCK(sc); + + return (0); +} + +static int +a10_clk_usb_activate(struct a10_ccm_softc *sc) +{ + uint32_t reg_value; + + CCM_LOCK_ASSERT(sc); + + if (++sc->usb_cnt == 1) { + /* Gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value |= CCM_AHB_GATING_USB0; /* AHB clock gate usb0 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + } + + return (0); +} + +static int +a10_clk_usb_deactivate(struct a10_ccm_softc *sc) +{ + uint32_t reg_value; + + CCM_LOCK_ASSERT(sc); + + if (--sc->usb_cnt == 0) { + /* Disable gating AHB clock for USB */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value &= ~CCM_AHB_GATING_USB0; /* disable AHB clock gate usb0 */ + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + } + + return (0); +} + +static int +a10_clk_usbphy_activate(struct a10_ccm_softc *sc) +{ + uint32_t reg_value; + + CCM_LOCK_ASSERT(sc); + + if (++sc->usbphy_cnt == 1) { + /* Enable clock for USB */ + reg_value = ccm_read_4(sc, CCM_USB_CLK); + reg_value |= CCM_USB_PHY; /* USBPHY */ + reg_value |= CCM_USBPHY0_RESET; /* disable reset for USBPHY0 */ + reg_value |= CCM_USBPHY1_RESET; /* disable reset for USBPHY1 */ + reg_value |= CCM_USBPHY2_RESET; /* disable reset for USBPHY2 */ + ccm_write_4(sc, CCM_USB_CLK, reg_value); + } + + return (0); +} + +static int +a10_clk_usbphy_deactivate(struct a10_ccm_softc *sc) +{ + uint32_t reg_value; + + CCM_LOCK_ASSERT(sc); + + if (--sc->usbphy_cnt == 0) { + /* Disable clock for USB */ + reg_value = ccm_read_4(sc, CCM_USB_CLK); + reg_value &= ~CCM_USB_PHY; /* USBPHY */ + reg_value &= ~CCM_USBPHY0_RESET; /* reset for USBPHY0 */ + reg_value &= ~CCM_USBPHY1_RESET; /* reset for USBPHY1 */ + reg_value &= ~CCM_USBPHY2_RESET; /* reset for USBPHY2 */ + ccm_write_4(sc, CCM_USB_CLK, reg_value); + } return (0); } Modified: head/sys/arm/allwinner/a10_clk.h ============================================================================== --- head/sys/arm/allwinner/a10_clk.h Sat Mar 5 11:20:02 2016 (r296407) +++ head/sys/arm/allwinner/a10_clk.h Sat Mar 5 13:17:53 2016 (r296408) @@ -112,7 +112,9 @@ /* AHB_GATING_REG0 */ #define CCM_AHB_GATING_USB0 (1 << 0) #define CCM_AHB_GATING_EHCI0 (1 << 1) +#define CCM_AHB_GATING_OHCI0 (1 << 2) #define CCM_AHB_GATING_EHCI1 (1 << 3) +#define CCM_AHB_GATING_OHCI1 (1 << 4) #define CCM_AHB_GATING_DMA (1 << 6) #define CCM_AHB_GATING_SDMMC0 (1 << 8) #define CCM_AHB_GATING_EMAC (1 << 17) @@ -129,10 +131,13 @@ /* APB1_GATING_REG */ #define CCM_APB1_GATING_TWI (1 << 0) +/* USB */ #define CCM_USB_PHY (1 << 8) -#define CCM_USB0_RESET (1 << 0) -#define CCM_USB1_RESET (1 << 1) -#define CCM_USB2_RESET (1 << 2) +#define CCM_SCLK_GATING_OHCI1 (1 << 7) +#define CCM_SCLK_GATING_OHCI0 (1 << 6) +#define CCM_USBPHY2_RESET (1 << 2) +#define CCM_USBPHY1_RESET (1 << 1) +#define CCM_USBPHY0_RESET (1 << 0) #define CCM_PLL_CFG_ENABLE (1U << 31) #define CCM_PLL_CFG_BYPASS (1U << 30) @@ -221,8 +226,10 @@ #define CCM_CLK_REF_FREQ 24000000U -int a10_clk_usb_activate(void); -int a10_clk_usb_deactivate(void); +int a10_clk_ehci_activate(void); +int a10_clk_ehci_deactivate(void); +int a10_clk_ohci_activate(void); +int a10_clk_ohci_deactivate(void); int a10_clk_emac_activate(void); int a10_clk_gmac_activate(phandle_t); int a10_clk_ahci_activate(void); Modified: head/sys/arm/allwinner/a10_ehci.c ============================================================================== --- head/sys/arm/allwinner/a10_ehci.c Sat Mar 5 11:20:02 2016 (r296407) +++ head/sys/arm/allwinner/a10_ehci.c Sat Mar 5 13:17:53 2016 (r296408) @@ -98,8 +98,8 @@ struct aw_ehci_conf { static const struct aw_ehci_conf a10_ehci_conf = { #if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20) - .clk_activate = a10_clk_usb_activate, - .clk_deactivate = a10_clk_usb_deactivate, + .clk_activate = a10_clk_ehci_activate, + .clk_deactivate = a10_clk_ehci_deactivate, #endif .sdram_init = true, }; From owner-svn-src-head@freebsd.org Sat Mar 5 15:53:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F043C9DB6E8; Sat, 5 Mar 2016 15:53:07 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 A72C2E78; Sat, 5 Mar 2016 15:53:07 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25Fr6xh070199; Sat, 5 Mar 2016 15:53:06 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25Fr61j070198; Sat, 5 Mar 2016 15:53:06 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201603051553.u25Fr61j070198@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 5 Mar 2016 15:53:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296411 - head/usr.bin/ident X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 15:53:08 -0000 Author: bapt Date: Sat Mar 5 15:53:06 2016 New Revision: 296411 URL: https://svnweb.freebsd.org/changeset/base/296411 Log: Fix "files" arguments Modified: head/usr.bin/ident/ident.1 Modified: head/usr.bin/ident/ident.1 ============================================================================== --- head/usr.bin/ident/ident.1 Sat Mar 5 15:34:54 2016 (r296410) +++ head/usr.bin/ident/ident.1 Sat Mar 5 15:53:06 2016 (r296411) @@ -34,7 +34,7 @@ .Nm .Op Fl q .Op Fl V -.Op Ar File Ns s +.Op Ar .Sh DESCRIPTION The .Nm From owner-svn-src-head@freebsd.org Sat Mar 5 19:29:20 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15CD99DB225; Sat, 5 Mar 2016 19:29:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 C315AD51; Sat, 5 Mar 2016 19:29:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25JTIqi035303; Sat, 5 Mar 2016 19:29:18 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25JTILd035300; Sat, 5 Mar 2016 19:29:18 GMT (envelope-from des@FreeBSD.org) Message-Id: <201603051929.u25JTILd035300@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 5 Mar 2016 19:29:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296415 - in head/contrib/unbound: . daemon dnstap doc libunbound services sldns smallapp util util/data validator X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 19:29:20 -0000 Author: des Date: Sat Mar 5 19:29:18 2016 New Revision: 296415 URL: https://svnweb.freebsd.org/changeset/base/296415 Log: Upgrade to Unbound 1.5.8. Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/aclocal.m4 head/contrib/unbound/acx_nlnetlabs.m4 head/contrib/unbound/ax_pthread.m4 head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/dnstap/dnstap.c head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/install-sh head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/ubsyms.def head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/ltmain.sh head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/listen_dnsport.h head/contrib/unbound/services/localzone.c head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/sldns/rrdef.c head/contrib/unbound/sldns/rrdef.h head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/smallapp/unbound-control-setup.sh head/contrib/unbound/smallapp/unbound-control-setup.sh.in head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/packed_rrset.c head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/mini_event.c head/contrib/unbound/util/netevent.c head/contrib/unbound/util/random.c head/contrib/unbound/util/tube.c head/contrib/unbound/util/winsock_event.c head/contrib/unbound/validator/val_neg.c head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_utils.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat Mar 5 19:18:40 2016 (r296414) +++ head/contrib/unbound/Makefile.in Sat Mar 5 19:29:18 2016 (r296415) @@ -54,6 +54,7 @@ LEX=@LEX@ STRIP=@STRIP@ CC=@CC@ CPPFLAGS=-I. @CPPFLAGS@ +PYTHON_CPPFLAGS=-I. @PYTHON_CPPFLAGS@ CFLAGS=@CFLAGS@ LDFLAGS=@LDFLAGS@ LIBS=@LIBS@ @@ -216,14 +217,14 @@ WINAPPS=@WINAPPS@ WIN_DAEMON_THE_SRC=winrc/win_svc.c winrc/w_inst.c SVCINST_SRC=winrc/unbound-service-install.c SVCINST_OBJ=unbound-service-install.lo -SVCINST_OBJ_LINK=$(SVCINST_OBJ) w_inst.lo rsrc_svcinst.o $(COMPAT_OBJ_WITHOUT_CTIME) +SVCINST_OBJ_LINK=$(SVCINST_OBJ) w_inst.lo rsrc_svcinst.o $(COMPAT_OBJ_WITHOUT_CTIMEARC4) SVCUNINST_SRC=winrc/unbound-service-remove.c SVCUNINST_OBJ=unbound-service-remove.lo SVCUNINST_OBJ_LINK=$(SVCUNINST_OBJ) w_inst.lo rsrc_svcuninst.o \ -$(COMPAT_OBJ_WITHOUT_CTIME) +$(COMPAT_OBJ_WITHOUT_CTIMEARC4) ANCHORUPD_SRC=winrc/anchor-update.c ANCHORUPD_OBJ=anchor-update.lo -ANCHORUPD_OBJ_LINK=$(ANCHORUPD_OBJ) rsrc_anchorupd.o $(COMPAT_OBJ_WITHOUT_CTIME) +ANCHORUPD_OBJ_LINK=$(ANCHORUPD_OBJ) rsrc_anchorupd.o $(COMPAT_OBJ_WITHOUT_CTIMEARC4) RSRC_OBJ=rsrc_svcinst.o rsrc_svcuninst.o rsrc_anchorupd.o rsrc_unbound.o \ rsrc_unbound_host.o rsrc_unbound_anchor.o rsrc_unbound_control.o \ rsrc_unbound_checkconf.o @@ -243,7 +244,7 @@ ALL_OBJ=$(COMMON_OBJ) $(UNITTEST_OBJ) $( $(COMPAT_OBJ) $(PYUNBOUND_OBJ) \ $(SVCINST_OBJ) $(SVCUNINST_OBJ) $(ANCHORUPD_OBJ) $(SLDNS_OBJ) -COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) +COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) @PTHREAD_CFLAGS_ONLY@ LINK=$(LIBTOOL) --tag=CC --mode=link $(CC) $(staticexe) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(staticexe) -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined @@ -353,7 +354,7 @@ delayer$(EXEEXT): $(DELAYER_OBJ_LINK) $(LINK) -o $@ $(DELAYER_OBJ_LINK) $(SSLLIB) $(LIBS) signit$(EXEEXT): testcode/signit.c - $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ testcode/signit.c $(LDFLAGS) -lldns $(SSLLIB) $(LIBS) + $(CC) $(CPPFLAGS) $(CFLAGS) @PTHREAD_CFLAGS_ONLY@ -o $@ testcode/signit.c $(LDFLAGS) -lldns $(SSLLIB) $(LIBS) unbound.h: $(srcdir)/libunbound/unbound.h sed -e 's/@''UNBOUND_VERSION_MAJOR@/$(UNBOUND_VERSION_MAJOR)/' -e 's/@''UNBOUND_VERSION_MINOR@/$(UNBOUND_VERSION_MINOR)/' -e 's/@''UNBOUND_VERSION_MICRO@/$(UNBOUND_VERSION_MICRO)/' < $(srcdir)/libunbound/unbound.h > $@ @@ -389,13 +390,13 @@ pythonmod.lo pythonmod.o: $(srcdir)/pyth pythonmod/interface.h: $(srcdir)/pythonmod/interface.i config.h @-if test ! -d pythonmod; then $(INSTALL) -d pythonmod; fi - $(SWIG) $(CPPFLAGS) -o $@ -python $(srcdir)/pythonmod/interface.i + $(SWIG) $(PYTHON_CPPFLAGS) -o $@ -python $(srcdir)/pythonmod/interface.i libunbound_wrap.lo libunbound_wrap.o: libunbound/python/libunbound_wrap.c \ unbound.h libunbound/python/libunbound_wrap.c: $(srcdir)/libunbound/python/libunbound.i unbound.h @-if test ! -d libunbound/python; then $(INSTALL) -d libunbound/python; fi - $(SWIG) -python -o $@ $(CPPFLAGS) -DPY_MAJOR_VERSION=$(PY_MAJOR_VERSION) $(srcdir)/libunbound/python/libunbound.i + $(SWIG) -python -o $@ $(PYTHON_CPPFLAGS) -DPY_MAJOR_VERSION=$(PY_MAJOR_VERSION) $(srcdir)/libunbound/python/libunbound.i # Pyunbound python unbound wrapper _unbound.la: libunbound_wrap.lo libunbound.la @@ -506,11 +507,11 @@ install-all: all $(PYTHONMOD_INSTALL) $( $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man5 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 - $(LIBTOOL) --mode=install cp unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound$(EXEEXT) - $(LIBTOOL) --mode=install cp unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) - $(LIBTOOL) --mode=install cp unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) - $(LIBTOOL) --mode=install cp unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) - $(LIBTOOL) --mode=install cp unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT) + $(LIBTOOL) --mode=install cp -f unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound$(EXEEXT) + $(LIBTOOL) --mode=install cp -f unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) + $(LIBTOOL) --mode=install cp -f unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) + $(LIBTOOL) --mode=install cp -f unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) + $(LIBTOOL) --mode=install cp -f unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT) $(INSTALL) -c -m 644 doc/unbound.8 $(DESTDIR)$(mandir)/man8 $(INSTALL) -c -m 644 doc/unbound-checkconf.8 $(DESTDIR)$(mandir)/man8 $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8 @@ -567,7 +568,7 @@ DEPEND_TARGET2=Makefile.in # then, remove srcdir from the (generated) parser and lexer. # and mention the .lo depend: - (cd $(srcdir) ; $(CC) $(DEPFLAG) $(CPPFLAGS) $(CFLAGS) $(ALL_SRC) $(COMPAT_SRC)) | \ + (cd $(srcdir) ; $(CC) $(DEPFLAG) $(CPPFLAGS) $(CFLAGS) @PTHREAD_CFLAGS_ONLY@ $(ALL_SRC) $(COMPAT_SRC)) | \ sed -e 's!'$$HOME'[^ ]* !!g' -e 's!'$$HOME'[^ ]*$$!!g' \ -e 's!/usr[^ ]* !!g' -e 's!/usr[^ ]*$$!!g' \ -e 's!/opt[^ ]* !!g' -e 's!/opt[^ ]*$$!!g' | \ Modified: head/contrib/unbound/aclocal.m4 ============================================================================== --- head/contrib/unbound/aclocal.m4 Sat Mar 5 19:18:40 2016 (r296414) +++ head/contrib/unbound/aclocal.m4 Sat Mar 5 19:29:18 2016 (r296415) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.13.4 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,9 +14,7 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -24,36 +22,30 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_de # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. # -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . ]) -# serial 57 LT_INIT +# serial 58 LT_INIT # LT_PREREQ(VERSION) @@ -81,7 +73,7 @@ esac # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl @@ -105,7 +97,7 @@ dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" +LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -125,26 +117,43 @@ dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + # _LT_CC_BASENAME(CC) # ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} @@ -191,15 +200,16 @@ m4_require([_LT_CHECK_SHAREDLIB_FROM_LIN m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our +# See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then +if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) -if test -n "${ZSH_VERSION+set}" ; then +if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi @@ -212,7 +222,7 @@ aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then + if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -223,14 +233,14 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a -with_gnu_ld="$lt_cv_prog_gnu_ld" +with_gnu_ld=$lt_cv_prog_gnu_ld -old_CC="$CC" -old_CFLAGS="$CFLAGS" +old_CC=$CC +old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc @@ -283,21 +293,21 @@ no_glob_subst='s/\*/\\\*/g' # _LT_PROG_LTMAIN # --------------- -# Note that this code is called both from `configure', and `config.status' +# Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' +# in macros and then make a single call at the end using the 'libtool' # label. @@ -429,8 +439,8 @@ m4_define([_lt_decl_all_varnames], # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) @@ -454,7 +464,7 @@ m4_defun([_LT_CONFIG_STATUS_DECLARATIONS # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl +available_tags='_LT_TAGS'dnl ]) @@ -482,7 +492,7 @@ m4_ifval([$2], [_$2])[]m4_popdef([_libto # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], @@ -508,8 +518,8 @@ m4_define([_LT_TAGVAR], [m4_ifval([$2], # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], @@ -555,7 +565,7 @@ for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -568,7 +578,7 @@ for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -584,7 +594,7 @@ _LT_OUTPUT_LIBTOOL_INIT # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this +# '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). @@ -606,7 +616,7 @@ AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl +test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT @@ -629,7 +639,7 @@ exec AS_MESSAGE_LOG_FD>>config.log } >&AS_MESSAGE_LOG_FD lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, +'$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. @@ -651,7 +661,7 @@ Copyright (C) 2011 Free Software Foundat This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." -while test $[#] != 0 +while test 0 != $[#] do case $[1] in --version | --v* | -V ) @@ -664,10 +674,10 @@ do lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; +Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; +Try '$[0] --help' for more information.]) ;; esac shift done @@ -693,7 +703,7 @@ chmod +x "$CONFIG_LT" # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: -test "$silent" = yes && +test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false @@ -713,27 +723,31 @@ m4_defun([_LT_CONFIG], _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our + # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then + if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi - cfgfile="${ofile}T" + cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. -# + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + _LT_COPYING _LT_LIBTOOL_TAGS +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS @@ -741,13 +755,24 @@ _LT_LIBTOOL_TAG_VARS _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then +if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -764,8 +789,6 @@ _LT_EOF sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) - _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -783,7 +806,6 @@ _LT_EOF [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS @@ -980,7 +1002,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECK AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then + if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the @@ -998,7 +1020,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECK cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1016,7 +1038,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECK AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], @@ -1038,7 +1060,7 @@ _LT_EOF _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1048,32 +1070,32 @@ _LT_EOF ]) case $host_os in rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then + if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -1093,29 +1115,29 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else @@ -1135,7 +1157,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then +if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], @@ -1153,7 +1175,7 @@ else _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) @@ -1173,8 +1195,8 @@ m4_define([_LT_SHELL_INIT], # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO @@ -1202,10 +1224,10 @@ fi # Invoke $ECHO with all args, space-separated. func_echo_all () { - $ECHO "$*" + $ECHO "$*" } -case "$ECHO" in +case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; @@ -1231,16 +1253,17 @@ _LT_DECL([], [ECHO], [1], [An echo progr AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= -case ${with_sysroot} in #( +case $with_sysroot in #( yes) - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( @@ -1250,14 +1273,14 @@ case ${with_sysroot} in #( no|'') ;; #( *) - AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) +[dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- @@ -1265,31 +1288,33 @@ m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) - HPUX_IA64_MODE="32" + HPUX_IA64_MODE=32 ;; *ELF-64*) - HPUX_IA64_MODE="64" + HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" @@ -1318,9 +1343,46 @@ ia64-*-hpux*) rm -rf conftest* ;; +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in @@ -1330,7 +1392,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" @@ -1375,19 +1444,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" + SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then + if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" + CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in @@ -1395,7 +1465,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* case $lt_cv_prog_gnu_ld in yes*) case $host in - i?86-*-solaris*) + i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) @@ -1404,7 +1474,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" + LD=${LD-ld}_sol2 fi ;; *) @@ -1420,7 +1490,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK @@ -1439,11 +1509,11 @@ AC_CACHE_CHECK([for archiver @FILE suppo [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then + if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then + if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi @@ -1451,7 +1521,7 @@ AC_CACHE_CHECK([for archiver @FILE suppo ]) ]) -if test "x$lt_cv_ar_at_file" = xno; then +if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file @@ -1482,7 +1552,7 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in - openbsd*) + bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) @@ -1518,7 +1588,7 @@ AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -1545,7 +1615,7 @@ AC_CACHE_CHECK([$1], [$2], $RM conftest* ]) -if test x"[$]$2" = xyes; then +if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) @@ -1567,7 +1637,7 @@ AC_DEFUN([_LT_LINKER_OPTION], m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -1586,10 +1656,10 @@ AC_CACHE_CHECK([$1], [$2], fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS ]) -if test x"[$]$2" = xyes; then +if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) @@ -1610,7 +1680,7 @@ AC_DEFUN([LT_CMD_MAX_LEN], AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 - teststring="ABCD" + teststring=ABCD case $build_os in msdosdjgpp*) @@ -1650,7 +1720,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d lt_cv_sys_max_cmd_len=8192; ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -1700,22 +1770,23 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do + for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough + test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring @@ -1731,7 +1802,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d ;; esac ]) -if test -n $lt_cv_sys_max_cmd_len ; then +if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) @@ -1759,7 +1830,7 @@ m4_defun([_LT_HEADER_DLFCN], # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : +if test yes = "$cross_compiling"; then : *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat Mar 5 19:55:44 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CBFB9DBB6B; Sat, 5 Mar 2016 19:55:44 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 1F452C38; Sat, 5 Mar 2016 19:55:44 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25Jthac044290; Sat, 5 Mar 2016 19:55:43 GMT (envelope-from mp@FreeBSD.org) Received: (from mp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25JthsW044289; Sat, 5 Mar 2016 19:55:43 GMT (envelope-from mp@FreeBSD.org) Message-Id: <201603051955.u25JthsW044289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mp set sender to mp@FreeBSD.org using -f From: Mark Peek Date: Sat, 5 Mar 2016 19:55:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296416 - head/bin/csh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 19:55:44 -0000 Author: mp Date: Sat Mar 5 19:55:42 2016 New Revision: 296416 URL: https://svnweb.freebsd.org/changeset/base/296416 Log: Signal handling within tcsh vfork code path will conflict with some system libraries (such as libthr) which maintain their own signal state. This change adds the tcsh SAVESIGVEC option to save and restore the sigvecs for the signals the child modifies before it execs. Reviewed by: kib, rwatson Reported by: kib Modified: head/bin/csh/config_p.h Modified: head/bin/csh/config_p.h ============================================================================== --- head/bin/csh/config_p.h Sat Mar 5 19:29:18 2016 (r296415) +++ head/bin/csh/config_p.h Sat Mar 5 19:55:42 2016 (r296416) @@ -80,6 +80,7 @@ /****************** local defines *********************/ #if defined(__FreeBSD__) +#define SAVESIGVEC #define NLS_BUGS #define BSD_STYLE_COLORLS /* Use LC_MESSAGES locale category to open the message catalog */ From owner-svn-src-head@freebsd.org Sat Mar 5 20:24:39 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50FDAA098C9; Sat, 5 Mar 2016 20:24:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::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 335DA232; Sat, 5 Mar 2016 20:24:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u25KObkl053912; Sat, 5 Mar 2016 20:24:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u25KOYNr053886; Sat, 5 Mar 2016 20:24:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201603052024.u25KOYNr053886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 5 Mar 2016 20:24:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296417 - in head: . contrib/compiler-rt/include/sanitizer contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/asan/scripts contrib/compiler-rt/lib/asan/tests contrib/compiler-rt/lib/b... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2016 20:24:39 -0000 Author: dim Date: Sat Mar 5 20:24:31 2016 New Revision: 296417 URL: https://svnweb.freebsd.org/changeset/base/296417 Log: Upgrade our copies of clang, llvm, lldb and compiler-rt to 3.8.0 release. Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information. Release notes for llvm and clang will soon be available here: Thanks to Ed Maste, Roman Divacky, Davide Italiano and Antoine Brodin for their help. Relnotes: yes Added: head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c head/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c head/contrib/compiler-rt/lib/builtins/divtc3.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/divtc3.c head/contrib/compiler-rt/lib/builtins/emutls.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/emutls.c head/contrib/compiler-rt/lib/builtins/i386/chkstk2.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/i386/chkstk2.S head/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S head/contrib/compiler-rt/lib/cfi/ - copied from r296412, projects/clang380-import/contrib/compiler-rt/lib/cfi/ head/contrib/compiler-rt/lib/dfsan/dfsan_platform.h - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/dfsan/dfsan_platform.h head/contrib/compiler-rt/lib/profile/InstrProfData.inc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/InstrProfData.inc head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c head/contrib/compiler-rt/lib/profile/InstrProfilingPort.h - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/InstrProfilingPort.h head/contrib/compiler-rt/lib/profile/InstrProfilingValue.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/InstrProfilingValue.c head/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c head/contrib/compiler-rt/lib/profile/WindowsMMap.c - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/WindowsMMap.c head/contrib/compiler-rt/lib/profile/WindowsMMap.h - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/profile/WindowsMMap.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_ppc_regs.h - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_ppc_regs.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_ppc64.S - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_ppc64.S head/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc - copied unchanged from r296412, projects/clang380-import/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc head/contrib/llvm/include/llvm-c/ErrorHandling.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm-c/ErrorHandling.h head/contrib/llvm/include/llvm-c/OrcBindings.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm-c/OrcBindings.h head/contrib/llvm/include/llvm-c/Types.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm-c/Types.h head/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h head/contrib/llvm/include/llvm/ADT/PointerSumType.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ADT/PointerSumType.h head/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/DemandedBits.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/DemandedBits.h head/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/EHPersonalities.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/EHPersonalities.h head/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h head/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h head/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h head/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h head/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h head/contrib/llvm/include/llvm/CodeGen/ParallelCG.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/CodeGen/ParallelCG.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/ - copied from r296412, projects/clang380-import/contrib/llvm/include/llvm/DebugInfo/CodeView/ head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h head/contrib/llvm/include/llvm/DebugInfo/Symbolize/ - copied from r296412, projects/clang380-import/contrib/llvm/include/llvm/DebugInfo/Symbolize/ head/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCChannel.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCChannel.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h head/contrib/llvm/include/llvm/IR/Attributes.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/IR/Attributes.td head/contrib/llvm/include/llvm/IR/FunctionInfo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/IR/FunctionInfo.h head/contrib/llvm/include/llvm/Linker/IRMover.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Linker/IRMover.h head/contrib/llvm/include/llvm/MC/MCFragment.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/MC/MCFragment.h head/contrib/llvm/include/llvm/Object/COFFImportFile.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Object/COFFImportFile.h head/contrib/llvm/include/llvm/Object/FunctionIndexObjectFile.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Object/FunctionIndexObjectFile.h head/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc head/contrib/llvm/include/llvm/Support/ARMTargetParser.def - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/ARMTargetParser.def head/contrib/llvm/include/llvm/Support/ELFRelocs/AVR.def - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/ELFRelocs/AVR.def head/contrib/llvm/include/llvm/Support/ELFRelocs/WebAssembly.def - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/ELFRelocs/WebAssembly.def head/contrib/llvm/include/llvm/Support/JamCRC.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/JamCRC.h head/contrib/llvm/include/llvm/Support/Printable.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/Printable.h head/contrib/llvm/include/llvm/Support/ThreadPool.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/ThreadPool.h head/contrib/llvm/include/llvm/Support/TrailingObjects.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/TrailingObjects.h head/contrib/llvm/include/llvm/Support/thread.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Support/thread.h head/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h head/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h head/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h head/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h head/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h head/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h head/contrib/llvm/lib/Analysis/CallGraph.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/CallGraph.cpp head/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp head/contrib/llvm/lib/Analysis/CallPrinter.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/CallPrinter.cpp head/contrib/llvm/lib/Analysis/DemandedBits.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/DemandedBits.cpp head/contrib/llvm/lib/Analysis/EHPersonalities.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/EHPersonalities.cpp head/contrib/llvm/lib/Analysis/GlobalsModRef.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/InlineCost.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/InlineCost.cpp head/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp head/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp head/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp head/contrib/llvm/lib/CodeGen/FuncletLayout.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/CodeGen/FuncletLayout.cpp head/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp head/contrib/llvm/lib/CodeGen/ParallelCG.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/CodeGen/ParallelCG.cpp head/contrib/llvm/lib/DebugInfo/CodeView/ - copied from r296412, projects/clang380-import/contrib/llvm/lib/DebugInfo/CodeView/ head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp head/contrib/llvm/lib/DebugInfo/Symbolize/ - copied from r296412, projects/clang380-import/contrib/llvm/lib/DebugInfo/Symbolize/ head/contrib/llvm/lib/ExecutionEngine/Orc/OrcArchitectureSupport.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcArchitectureSupport.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h head/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h head/contrib/llvm/lib/IR/AttributesCompatFunc.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/IR/AttributesCompatFunc.td head/contrib/llvm/lib/IR/FunctionInfo.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/IR/FunctionInfo.cpp head/contrib/llvm/lib/Linker/IRMover.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Linker/IRMover.cpp head/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h head/contrib/llvm/lib/MC/MCFragment.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/MC/MCFragment.cpp head/contrib/llvm/lib/Object/FunctionIndexObjectFile.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Object/FunctionIndexObjectFile.cpp head/contrib/llvm/lib/Support/JamCRC.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Support/JamCRC.cpp head/contrib/llvm/lib/Support/ThreadPool.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Support/ThreadPool.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h head/contrib/llvm/lib/Target/AVR/ - copied from r296412, projects/clang380-import/contrib/llvm/lib/Target/AVR/ head/contrib/llvm/lib/Target/Hexagon/AsmParser/ - copied from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/AsmParser/ head/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrAlias.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrAlias.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrEnc.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrEnc.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV60.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRDF.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonRDF.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRDF.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonRDF.h head/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV55.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV55.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSystemInst.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonSystemInst.td head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h head/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp head/contrib/llvm/lib/Target/Hexagon/RDFCopy.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFCopy.h head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h head/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp head/contrib/llvm/lib/Target/Hexagon/RDFGraph.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFGraph.h head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h head/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrFormats.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td head/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp head/contrib/llvm/lib/Target/WebAssembly/Disassembler/ - copied from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/Disassembler/ head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h head/contrib/llvm/lib/Target/WebAssembly/Relooper.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/Relooper.cpp head/contrib/llvm/lib/Target/WebAssembly/Relooper.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/Relooper.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPEI.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPEI.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp head/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt head/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h head/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp head/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp head/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp head/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h head/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp head/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp head/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h head/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp head/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp head/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp head/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp head/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/Address.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/CodeGen/Address.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h head/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h head/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp head/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp head/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h head/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h head/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/GetOptInc.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Host/common/GetOptInc.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h head/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/ head/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h head/contrib/llvm/tools/lldb/include/lldb/Target/Language.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Target/Language.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Either.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Utility/Either.h head/contrib/llvm/tools/lldb/include/lldb/Utility/TaskPool.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/include/lldb/Utility/TaskPool.h head/contrib/llvm/tools/lldb/source/API/liblldb.exports - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/API/liblldb.exports head/contrib/llvm/tools/lldb/source/API/liblldb.xcode.exports - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/API/liblldb.xcode.exports head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp head/contrib/llvm/tools/lldb/source/Expression/Expression.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/Expression.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp head/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp head/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/REPL.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/REPL.cpp head/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp head/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp head/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp head/contrib/llvm/tools/lldb/source/Host/netbsd/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Host/netbsd/ head/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/ head/contrib/llvm/tools/lldb/source/Plugins/Language/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Language/ head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/ head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/ head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h head/contrib/llvm/tools/lldb/source/Plugins/Process/win-minidump/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/Process/win-minidump/ head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/ - copied from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/ head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h head/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp head/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp head/contrib/llvm/tools/lldb/source/Symbol/GoASTContext.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/GoASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp head/contrib/llvm/tools/lldb/source/Target/Language.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Target/Language.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h head/contrib/llvm/tools/lldb/source/Utility/TaskPool.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/source/Utility/TaskPool.cpp head/contrib/llvm/tools/lldb/tools/argdumper/argdumper.exports - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/argdumper/argdumper.exports head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.h head/contrib/llvm/tools/lldb/tools/lldb-mi/lldb-mi.exports - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-mi/lldb-mi.exports head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.exports - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.exports head/contrib/llvm/tools/lli/RemoteJITUtils.h - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/lli/RemoteJITUtils.h head/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp head/contrib/llvm/utils/TableGen/Attributes.cpp - copied unchanged from r296412, projects/clang380-import/contrib/llvm/utils/TableGen/Attributes.cpp head/lib/clang/include/AttributesCompatFunc.inc - copied unchanged from r296412, projects/clang380-import/lib/clang/include/AttributesCompatFunc.inc head/lib/clang/include/llvm/IR/Attributes.inc - copied unchanged from r296412, projects/clang380-import/lib/clang/include/llvm/IR/Attributes.inc head/lib/clang/liblldbPluginExpressionParserClang/ - copied from r296412, projects/clang380-import/lib/clang/liblldbPluginExpressionParserClang/ head/lib/clang/liblldbPluginExpressionParserGo/ - copied from r296412, projects/clang380-import/lib/clang/liblldbPluginExpressionParserGo/ head/lib/clang/liblldbPluginLanguageCPlusPlus/ - copied from r296412, projects/clang380-import/lib/clang/liblldbPluginLanguageCPlusPlus/ head/lib/clang/liblldbPluginLanguageObjC/ - copied from r296412, projects/clang380-import/lib/clang/liblldbPluginLanguageObjC/ head/lib/clang/liblldbPluginScriptInterpreterNone/ - copied from r296412, projects/clang380-import/lib/clang/liblldbPluginScriptInterpreterNone/ head/lib/clang/libllvmaarch64asmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmaarch64asmprinter/ head/lib/clang/libllvmarmasmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmarmasmprinter/ head/lib/clang/libllvmmipsasmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmmipsasmprinter/ head/lib/clang/libllvmpowerpcasmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmpowerpcasmprinter/ head/lib/clang/libllvmsparcasmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmsparcasmprinter/ head/lib/clang/libllvmsymbolize/ - copied from r296412, projects/clang380-import/lib/clang/libllvmsymbolize/ head/lib/clang/libllvmx86asmprinter/ - copied from r296412, projects/clang380-import/lib/clang/libllvmx86asmprinter/ head/lib/libclang_rt/asan_dynamic/ - copied from r296412, projects/clang380-import/lib/libclang_rt/asan_dynamic/ head/usr.bin/clang/llvm-tblgen/ - copied from r296412, projects/clang380-import/usr.bin/clang/llvm-tblgen/ Deleted: head/contrib/compiler-rt/lib/asan/scripts/ head/contrib/compiler-rt/lib/asan/tests/ head/contrib/compiler-rt/lib/dfsan/scripts/ head/contrib/compiler-rt/lib/msan/tests/ head/contrib/compiler-rt/lib/safestack/CMakeLists.txt head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_process_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.h head/contrib/compiler-rt/lib/sanitizer_common/scripts/ head/contrib/compiler-rt/lib/sanitizer_common/tests/ head/contrib/compiler-rt/lib/tsan/analyze_libtsan.sh head/contrib/compiler-rt/lib/tsan/check_analyze.sh head/contrib/compiler-rt/lib/tsan/check_cmake.sh head/contrib/compiler-rt/lib/tsan/check_memcpy.sh head/contrib/compiler-rt/lib/tsan/go/build.bat head/contrib/compiler-rt/lib/tsan/go/buildgo.sh head/contrib/compiler-rt/lib/tsan/tests/ head/contrib/llvm/include/llvm/Analysis/LibCallAliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/LibCallSemantics.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h head/contrib/llvm/include/llvm/IR/MetadataTracking.h head/contrib/llvm/include/llvm/Support/OutputBuffer.h head/contrib/llvm/lib/Analysis/AliasAnalysisCounter.cpp head/contrib/llvm/lib/Analysis/AliasDebugger.cpp head/contrib/llvm/lib/Analysis/IPA/ head/contrib/llvm/lib/Analysis/LibCallAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/LibCallSemantics.cpp head/contrib/llvm/lib/Analysis/NoAliasAnalysis.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp head/contrib/llvm/lib/IR/MetadataTracking.cpp head/contrib/llvm/lib/ProfileData/InstrProfIndexed.h head/contrib/llvm/lib/Target/AArch64/AArch64MachineCombinerPattern.h head/contrib/llvm/lib/Target/AMDGPU/SIPrepareScratchRegs.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ARCInstKind.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ARCInstKind.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h head/contrib/llvm/lib/Transforms/Scalar/SampleProfile.cpp head/contrib/llvm/patches/patch-01-clang-vendor-suffix.diff head/contrib/llvm/patches/patch-03-enable-armv6-clrex.diff head/contrib/llvm/patches/patch-04-clang-add-mips-triples.diff head/contrib/llvm/patches/patch-05-clang-r244063-missing-atomic-libcall.diff head/contrib/llvm/patches/patch-06-llvm-r248439-fdiv-hoisting.diff head/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff head/contrib/llvm/patches/patch-08-clang-cc1as-dwarf2.diff head/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h head/contrib/llvm/tools/lldb/include/lldb/Core/Language.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFormatterFunctions.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ASTDumper.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ASTResultSynthesizer.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ASTStructExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangASTSource.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionDeclMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionParser.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangExpressionVariable.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangFunction.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangModulesDeclVendor.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangPersistentVariables.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ClangUtilityFunction.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRForTarget.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRToDWARF.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/PythonDataObjects.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreterNone.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangNamespaceDecl.h head/contrib/llvm/tools/lldb/include/lldb/Utility/PythonPointer.h head/contrib/llvm/tools/lldb/include/lldb/lldb-python.h head/contrib/llvm/tools/lldb/source/Core/Language.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CF.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFormatterFunctions.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/Cocoa.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/CoreMedia.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxx.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxInitializerList.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxList.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxUnorderedMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibCxxVector.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/LibStdcpp.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSArray.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSDictionary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSIndexPath.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/NSSet.cpp head/contrib/llvm/tools/lldb/source/Expression/ASTDumper.cpp head/contrib/llvm/tools/lldb/source/Expression/ASTResultSynthesizer.cpp head/contrib/llvm/tools/lldb/source/Expression/ASTStructExtractor.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangASTSource.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionDeclMap.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangExpressionVariable.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangFunction.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangModulesDeclVendor.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangPersistentVariables.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/ClangUtilityFunction.cpp head/contrib/llvm/tools/lldb/source/Expression/IRForTarget.cpp head/contrib/llvm/tools/lldb/source/Interpreter/PythonDataObjects.cpp head/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreterNone.cpp head/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreterPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFLocationDescription.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFLocationDescription.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFLocationList.h head/contrib/llvm/tools/lldb/source/Symbol/ClangASTType.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangNamespaceDecl.cpp head/contrib/llvm/tools/lldb/source/Utility/ARM64_GCC_Registers.h head/contrib/llvm/tools/lldb/source/Utility/ARM_GCC_Registers.h head/contrib/llvm/tools/lldb/tools/argdumper/exports head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemLinux.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemLinux.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemOsx.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemOsx.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemWindows.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSystemWindows.h head/contrib/llvm/tools/lldb/tools/lldb-server/exports head/contrib/llvm/tools/lli/RPCChannel.h head/contrib/llvm/tools/lli/RemoteMemoryManager.cpp head/contrib/llvm/tools/lli/RemoteMemoryManager.h head/contrib/llvm/tools/lli/RemoteTarget.cpp head/contrib/llvm/tools/lli/RemoteTarget.h head/contrib/llvm/tools/lli/RemoteTargetExternal.cpp head/contrib/llvm/tools/lli/RemoteTargetExternal.h head/contrib/llvm/tools/lli/RemoteTargetMessage.h head/contrib/llvm/tools/lli/Unix/ head/contrib/llvm/tools/lli/Windows/ head/contrib/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp head/contrib/llvm/tools/llvm-symbolizer/LLVMSymbolize.h head/contrib/llvm/tools/macho-dump/ head/lib/clang/libllvmaarch64instprinter/ head/lib/clang/libllvmarminstprinter/ head/lib/clang/libllvmipa/ head/lib/clang/libllvmmipsinstprinter/ head/lib/clang/libllvmpowerpcinstprinter/ head/lib/clang/libllvmsparcinstprinter/ head/lib/clang/libllvmx86instprinter/ head/usr.bin/clang/macho-dump/ head/usr.bin/clang/tblgen/ Modified: head/Makefile.inc1 head/ObsoleteFiles.inc head/UPDATING head/contrib/compiler-rt/include/sanitizer/asan_interface.h head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h head/contrib/compiler-rt/include/sanitizer/coverage_interface.h head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h head/contrib/compiler-rt/include/sanitizer/lsan_interface.h head/contrib/compiler-rt/include/sanitizer/msan_interface.h head/contrib/compiler-rt/lib/asan/README.txt head/contrib/compiler-rt/lib/asan/asan_activation.cc head/contrib/compiler-rt/lib/asan/asan_allocator.cc head/contrib/compiler-rt/lib/asan/asan_allocator.h head/contrib/compiler-rt/lib/asan/asan_debugging.cc head/contrib/compiler-rt/lib/asan/asan_fake_stack.cc head/contrib/compiler-rt/lib/asan/asan_flags.cc head/contrib/compiler-rt/lib/asan/asan_flags.inc head/contrib/compiler-rt/lib/asan/asan_globals.cc head/contrib/compiler-rt/lib/asan/asan_init_version.h head/contrib/compiler-rt/lib/asan/asan_interceptors.cc head/contrib/compiler-rt/lib/asan/asan_interceptors.h head/contrib/compiler-rt/lib/asan/asan_interface_internal.h head/contrib/compiler-rt/lib/asan/asan_internal.h head/contrib/compiler-rt/lib/asan/asan_linux.cc head/contrib/compiler-rt/lib/asan/asan_mac.cc head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc head/contrib/compiler-rt/lib/asan/asan_mapping.h head/contrib/compiler-rt/lib/asan/asan_new_delete.cc head/contrib/compiler-rt/lib/asan/asan_poisoning.cc head/contrib/compiler-rt/lib/asan/asan_posix.cc head/contrib/compiler-rt/lib/asan/asan_report.cc head/contrib/compiler-rt/lib/asan/asan_report.h head/contrib/compiler-rt/lib/asan/asan_rtl.cc head/contrib/compiler-rt/lib/asan/asan_stack.h head/contrib/compiler-rt/lib/asan/asan_thread.cc head/contrib/compiler-rt/lib/asan/asan_thread.h head/contrib/compiler-rt/lib/asan/asan_win.cc head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc head/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc head/contrib/compiler-rt/lib/builtins/README.txt head/contrib/compiler-rt/lib/builtins/assembly.h head/contrib/compiler-rt/lib/builtins/atomic.c head/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c head/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c head/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c head/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c head/contrib/compiler-rt/lib/builtins/comparedf2.c head/contrib/compiler-rt/lib/builtins/comparesf2.c head/contrib/compiler-rt/lib/builtins/comparetf2.c head/contrib/compiler-rt/lib/builtins/divdc3.c head/contrib/compiler-rt/lib/builtins/divsc3.c head/contrib/compiler-rt/lib/builtins/divxc3.c head/contrib/compiler-rt/lib/builtins/enable_execute_stack.c head/contrib/compiler-rt/lib/builtins/extendhfsf2.c head/contrib/compiler-rt/lib/builtins/fixunsdfdi.c head/contrib/compiler-rt/lib/builtins/fixunssfdi.c head/contrib/compiler-rt/lib/builtins/floatdidf.c head/contrib/compiler-rt/lib/builtins/floatditf.c head/contrib/compiler-rt/lib/builtins/floatsitf.c head/contrib/compiler-rt/lib/builtins/floatundidf.c head/contrib/compiler-rt/lib/builtins/fp_add_impl.inc head/contrib/compiler-rt/lib/builtins/fp_extend.h head/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc head/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc head/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc head/contrib/compiler-rt/lib/builtins/fp_lib.h head/contrib/compiler-rt/lib/builtins/fp_mul_impl.inc head/contrib/compiler-rt/lib/builtins/fp_trunc.h head/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc head/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c head/contrib/compiler-rt/lib/builtins/i386/chkstk.S head/contrib/compiler-rt/lib/builtins/int_lib.h head/contrib/compiler-rt/lib/builtins/int_math.h head/contrib/compiler-rt/lib/builtins/int_types.h head/contrib/compiler-rt/lib/builtins/int_util.c head/contrib/compiler-rt/lib/builtins/int_util.h head/contrib/compiler-rt/lib/builtins/muldc3.c head/contrib/compiler-rt/lib/builtins/mulsc3.c head/contrib/compiler-rt/lib/builtins/mulxc3.c head/contrib/compiler-rt/lib/builtins/ppc/DD.h head/contrib/compiler-rt/lib/builtins/ppc/divtc3.c head/contrib/compiler-rt/lib/builtins/ppc/multc3.c head/contrib/compiler-rt/lib/builtins/subdf3.c head/contrib/compiler-rt/lib/builtins/subsf3.c head/contrib/compiler-rt/lib/builtins/truncdfhf2.c head/contrib/compiler-rt/lib/builtins/truncsfhf2.c head/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S head/contrib/compiler-rt/lib/dfsan/dfsan.cc head/contrib/compiler-rt/lib/dfsan/dfsan.h head/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc head/contrib/compiler-rt/lib/dfsan/done_abilist.txt head/contrib/compiler-rt/lib/interception/interception_linux.h head/contrib/compiler-rt/lib/interception/interception_win.cc head/contrib/compiler-rt/lib/interception/interception_win.h head/contrib/compiler-rt/lib/lsan/lsan.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.cc head/contrib/compiler-rt/lib/lsan/lsan_common.cc head/contrib/compiler-rt/lib/lsan/lsan_common.h head/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc head/contrib/compiler-rt/lib/lsan/lsan_flags.inc head/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc head/contrib/compiler-rt/lib/lsan/lsan_thread.cc head/contrib/compiler-rt/lib/msan/msan.cc head/contrib/compiler-rt/lib/msan/msan.h head/contrib/compiler-rt/lib/msan/msan_allocator.cc head/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.cc head/contrib/compiler-rt/lib/msan/msan_flags.inc head/contrib/compiler-rt/lib/msan/msan_interceptors.cc head/contrib/compiler-rt/lib/msan/msan_interface_internal.h head/contrib/compiler-rt/lib/msan/msan_linux.cc head/contrib/compiler-rt/lib/msan/msan_new_delete.cc head/contrib/compiler-rt/lib/msan/msan_thread.h head/contrib/compiler-rt/lib/profile/GCDAProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfiling.h head/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c head/contrib/compiler-rt/lib/profile/InstrProfilingFile.c head/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c head/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc head/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c head/contrib/compiler-rt/lib/safestack/safestack.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_lfstack.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_list.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h head/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc head/contrib/compiler-rt/lib/ubsan/ubsan_diag.h head/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc head/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h head/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc head/contrib/llvm/include/llvm-c/Analysis.h head/contrib/llvm/include/llvm-c/BitReader.h head/contrib/llvm/include/llvm-c/BitWriter.h head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/ExecutionEngine.h head/contrib/llvm/include/llvm-c/IRReader.h head/contrib/llvm/include/llvm-c/Initialization.h head/contrib/llvm/include/llvm-c/Linker.h head/contrib/llvm/include/llvm-c/Object.h head/contrib/llvm/include/llvm-c/Support.h head/contrib/llvm/include/llvm-c/Target.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/IPO.h head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/APSInt.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h head/contrib/llvm/include/llvm/ADT/DenseSet.h head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h head/contrib/llvm/include/llvm/ADT/FoldingSet.h head/contrib/llvm/include/llvm/ADT/ImmutableList.h head/contrib/llvm/include/llvm/ADT/ImmutableMap.h head/contrib/llvm/include/llvm/ADT/IntEqClasses.h head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/PackedVector.h head/contrib/llvm/include/llvm/ADT/PointerIntPair.h head/contrib/llvm/include/llvm/ADT/PointerUnion.h head/contrib/llvm/include/llvm/ADT/PostOrderIterator.h head/contrib/llvm/include/llvm/ADT/STLExtras.h head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h head/contrib/llvm/include/llvm/ADT/SetOperations.h head/contrib/llvm/include/llvm/ADT/SetVector.h head/contrib/llvm/include/llvm/ADT/SmallBitVector.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/SmallSet.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseBitVector.h head/contrib/llvm/include/llvm/ADT/Statistic.h head/contrib/llvm/include/llvm/ADT/StringMap.h head/contrib/llvm/include/llvm/ADT/StringRef.h head/contrib/llvm/include/llvm/ADT/StringSet.h head/contrib/llvm/include/llvm/ADT/StringSwitch.h head/contrib/llvm/include/llvm/ADT/TinyPtrVector.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/Twine.h head/contrib/llvm/include/llvm/ADT/UniqueVector.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/ADT/ilist_node.h head/contrib/llvm/include/llvm/ADT/iterator_range.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/AssumptionCache.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/CFG.h head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h head/contrib/llvm/include/llvm/Analysis/CallGraph.h head/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/IVUsers.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h head/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h head/contrib/llvm/include/llvm/Analysis/Loads.h head/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/LoopPass.h head/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/PHITransAddr.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h head/contrib/llvm/include/llvm/Analysis/RegionPrinter.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Analysis/VectorUtils.h head/contrib/llvm/include/llvm/AsmParser/Parser.h head/contrib/llvm/include/llvm/AsmParser/SlotMapping.h head/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h head/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h head/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/Bitcode/ReaderWriter.h head/contrib/llvm/include/llvm/CodeGen/Analysis.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h head/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.h head/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h head/contrib/llvm/include/llvm/CodeGen/DIE.h head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/GCMetadata.h head/contrib/llvm/include/llvm/CodeGen/GCStrategy.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h head/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h head/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h head/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h head/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h head/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/MachineValueType.h head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h head/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h head/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/StackMaps.h head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.td head/contrib/llvm/include/llvm/CodeGen/WinEHFuncInfo.h head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/Interpreter.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LogicalDylib.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h head/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h head/contrib/llvm/include/llvm/IR/Argument.h head/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h head/contrib/llvm/include/llvm/IR/Attributes.h head/contrib/llvm/include/llvm/IR/BasicBlock.h head/contrib/llvm/include/llvm/IR/CFG.h head/contrib/llvm/include/llvm/IR/CallSite.h head/contrib/llvm/include/llvm/IR/CallingConv.h head/contrib/llvm/include/llvm/IR/Comdat.h head/contrib/llvm/include/llvm/IR/Constant.h head/contrib/llvm/include/llvm/IR/ConstantRange.h head/contrib/llvm/include/llvm/IR/Constants.h head/contrib/llvm/include/llvm/IR/DIBuilder.h head/contrib/llvm/include/llvm/IR/DataLayout.h head/contrib/llvm/include/llvm/IR/DebugInfo.h head/contrib/llvm/include/llvm/IR/DebugInfoFlags.def head/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h head/contrib/llvm/include/llvm/IR/DerivedTypes.h head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h head/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h head/contrib/llvm/include/llvm/IR/Dominators.h head/contrib/llvm/include/llvm/IR/Function.h head/contrib/llvm/include/llvm/IR/GVMaterializer.h head/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h head/contrib/llvm/include/llvm/IR/GlobalAlias.h head/contrib/llvm/include/llvm/IR/GlobalObject.h head/contrib/llvm/include/llvm/IR/GlobalValue.h head/contrib/llvm/include/llvm/IR/GlobalVariable.h head/contrib/llvm/include/llvm/IR/IRBuilder.h head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h head/contrib/llvm/include/llvm/IR/InlineAsm.h head/contrib/llvm/include/llvm/IR/InstIterator.h head/contrib/llvm/include/llvm/IR/InstVisitor.h head/contrib/llvm/include/llvm/IR/InstrTypes.h head/contrib/llvm/include/llvm/IR/Instruction.def head/contrib/llvm/include/llvm/IR/Instruction.h head/contrib/llvm/include/llvm/IR/Instructions.h head/contrib/llvm/include/llvm/IR/IntrinsicInst.h head/contrib/llvm/include/llvm/IR/Intrinsics.h head/contrib/llvm/include/llvm/IR/Intrinsics.td head/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td head/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td head/contrib/llvm/include/llvm/IR/IntrinsicsARM.td head/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td head/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td head/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td head/contrib/llvm/include/llvm/IR/IntrinsicsX86.td head/contrib/llvm/include/llvm/IR/LLVMContext.h head/contrib/llvm/include/llvm/IR/LegacyPassManagers.h head/contrib/llvm/include/llvm/IR/MDBuilder.h head/contrib/llvm/include/llvm/IR/Mangler.h head/contrib/llvm/include/llvm/IR/Metadata.def head/contrib/llvm/include/llvm/IR/Metadata.h head/contrib/llvm/include/llvm/IR/Module.h head/contrib/llvm/include/llvm/IR/ModuleSlotTracker.h head/contrib/llvm/include/llvm/IR/PassManager.h head/contrib/llvm/include/llvm/IR/PatternMatch.h head/contrib/llvm/include/llvm/IR/Statepoint.h head/contrib/llvm/include/llvm/IR/SymbolTableListTraits.h head/contrib/llvm/include/llvm/IR/TrackingMDRef.h head/contrib/llvm/include/llvm/IR/Type.h head/contrib/llvm/include/llvm/IR/TypeFinder.h head/contrib/llvm/include/llvm/IR/Use.h head/contrib/llvm/include/llvm/IR/UseListOrder.h head/contrib/llvm/include/llvm/IR/User.h head/contrib/llvm/include/llvm/IR/Value.def head/contrib/llvm/include/llvm/IR/Value.h head/contrib/llvm/include/llvm/IR/ValueHandle.h head/contrib/llvm/include/llvm/IR/ValueMap.h head/contrib/llvm/include/llvm/IR/ValueSymbolTable.h head/contrib/llvm/include/llvm/IRReader/IRReader.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/LTO/LTOCodeGenerator.h head/contrib/llvm/include/llvm/LTO/LTOModule.h head/contrib/llvm/include/llvm/LibDriver/LibDriver.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/Linker/Linker.h head/contrib/llvm/include/llvm/MC/ConstantPools.h head/contrib/llvm/include/llvm/MC/MCAsmBackend.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDirectives.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCELFStreamer.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCFixedLenDisassembler.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCInstrItineraries.h head/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h head/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCObjectWriter.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h head/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCSectionCOFF.h head/contrib/llvm/include/llvm/MC/MCSectionELF.h head/contrib/llvm/include/llvm/MC/MCSectionMachO.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/MC/MCTargetAsmParser.h head/contrib/llvm/include/llvm/MC/MCTargetOptions.h head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h head/contrib/llvm/include/llvm/MC/MCValue.h head/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h head/contrib/llvm/include/llvm/MC/MachineLocation.h head/contrib/llvm/include/llvm/MC/SectionKind.h head/contrib/llvm/include/llvm/MC/StringTableBuilder.h head/contrib/llvm/include/llvm/MC/SubtargetFeature.h head/contrib/llvm/include/llvm/Object/Archive.h head/contrib/llvm/include/llvm/Object/ArchiveWriter.h head/contrib/llvm/include/llvm/Object/Binary.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/ELFObjectFile.h head/contrib/llvm/include/llvm/Object/ELFTypes.h head/contrib/llvm/include/llvm/Object/Error.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Object/SymbolicFile.h head/contrib/llvm/include/llvm/Option/Arg.h head/contrib/llvm/include/llvm/Option/ArgList.h head/contrib/llvm/include/llvm/Option/OptTable.h head/contrib/llvm/include/llvm/Option/Option.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/PassInfo.h head/contrib/llvm/include/llvm/PassRegistry.h head/contrib/llvm/include/llvm/PassSupport.h head/contrib/llvm/include/llvm/ProfileData/CoverageMapping.h head/contrib/llvm/include/llvm/ProfileData/InstrProf.h head/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h head/contrib/llvm/include/llvm/ProfileData/InstrProfWriter.h head/contrib/llvm/include/llvm/ProfileData/SampleProf.h head/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h head/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h head/contrib/llvm/include/llvm/Support/AlignOf.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/BlockFrequency.h head/contrib/llvm/include/llvm/Support/BranchProbability.h head/contrib/llvm/include/llvm/Support/CBindingWrapping.h head/contrib/llvm/include/llvm/Support/COFF.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h head/contrib/llvm/include/llvm/Support/DOTGraphTraits.h head/contrib/llvm/include/llvm/Support/Debug.h head/contrib/llvm/include/llvm/Support/Dwarf.def head/contrib/llvm/include/llvm/Support/Dwarf.h head/contrib/llvm/include/llvm/Support/ELF.h head/contrib/llvm/include/llvm/Support/ELFRelocs/PowerPC.def head/contrib/llvm/include/llvm/Support/ELFRelocs/PowerPC64.def head/contrib/llvm/include/llvm/Support/Endian.h head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/ErrorOr.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/Format.h head/contrib/llvm/include/llvm/Support/GCOV.h head/contrib/llvm/include/llvm/Support/GenericDomTree.h head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/MachO.h head/contrib/llvm/include/llvm/Support/ManagedStatic.h head/contrib/llvm/include/llvm/Support/MathExtras.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/OnDiskHashTable.h head/contrib/llvm/include/llvm/Support/Options.h head/contrib/llvm/include/llvm/Support/Path.h head/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h head/contrib/llvm/include/llvm/Support/PrettyStackTrace.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/Recycler.h head/contrib/llvm/include/llvm/Support/Registry.h head/contrib/llvm/include/llvm/Support/SMLoc.h head/contrib/llvm/include/llvm/Support/ScaledNumber.h head/contrib/llvm/include/llvm/Support/Signals.h head/contrib/llvm/include/llvm/Support/StreamingMemoryObject.h head/contrib/llvm/include/llvm/Support/StringSaver.h head/contrib/llvm/include/llvm/Support/TargetParser.h head/contrib/llvm/include/llvm/Support/TargetRegistry.h head/contrib/llvm/include/llvm/Support/TargetSelect.h head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h head/contrib/llvm/include/llvm/Support/Valgrind.h head/contrib/llvm/include/llvm/Support/YAMLParser.h head/contrib/llvm/include/llvm/Support/YAMLTraits.h head/contrib/llvm/include/llvm/Support/circular_raw_ostream.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/TableGen/Record.h head/contrib/llvm/include/llvm/Target/CostTable.h head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetCallingConv.h head/contrib/llvm/include/llvm/Target/TargetFrameLowering.h head/contrib/llvm/include/llvm/Target/TargetInstrInfo.h head/contrib/llvm/include/llvm/Target/TargetItinerary.td head/contrib/llvm/include/llvm/Target/TargetLowering.h head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOpcodes.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetRecip.h head/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAGInfo.h head/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/InlinerPass.h head/contrib/llvm/include/llvm/Transforms/IPO/LowerBitSets.h head/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h head/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopVersioning.h head/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h head/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h head/contrib/llvm/include/llvm/module.modulemap head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CFG.cpp head/contrib/llvm/lib/Analysis/CFLAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CodeMetrics.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/CostModel.cpp head/contrib/llvm/lib/Analysis/Delinearization.cpp head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/MemDepPrinter.cpp head/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPrinter.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp head/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp head/contrib/llvm/lib/Analysis/SparsePropagation.cpp head/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp head/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Analysis/VectorUtils.cpp head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/AsmParser/Parser.cpp head/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.h head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h head/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp head/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.h head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp head/contrib/llvm/lib/CodeGen/CoreCLRGC.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp head/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp head/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp head/contrib/llvm/lib/CodeGen/GCRootLowering.cpp head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.cpp head/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp head/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.h head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.h head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.h head/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp head/contrib/llvm/lib/CodeGen/MIRPrinter.cpp head/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCombiner.cpp head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/PHIEliminationUtils.cpp head/contrib/llvm/lib/CodeGen/Passes.cpp head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp head/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.cpp head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/StackMaps.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/StatepointExampleGC.cpp head/contrib/llvm/lib/CodeGen/TailDuplication.cpp head/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/TargetSchedule.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp head/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h head/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp head/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h head/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp head/contrib/llvm/lib/IR/AsmWriter.cpp head/contrib/llvm/lib/IR/AttributeImpl.h head/contrib/llvm/lib/IR/Attributes.cpp head/contrib/llvm/lib/IR/AutoUpgrade.cpp head/contrib/llvm/lib/IR/BasicBlock.cpp head/contrib/llvm/lib/IR/ConstantFold.cpp head/contrib/llvm/lib/IR/ConstantRange.cpp head/contrib/llvm/lib/IR/Constants.cpp head/contrib/llvm/lib/IR/ConstantsContext.h head/contrib/llvm/lib/IR/Core.cpp head/contrib/llvm/lib/IR/DIBuilder.cpp head/contrib/llvm/lib/IR/DataLayout.cpp head/contrib/llvm/lib/IR/DebugInfo.cpp head/contrib/llvm/lib/IR/DebugInfoMetadata.cpp head/contrib/llvm/lib/IR/DiagnosticInfo.cpp head/contrib/llvm/lib/IR/Dominators.cpp head/contrib/llvm/lib/IR/Function.cpp head/contrib/llvm/lib/IR/GCOV.cpp head/contrib/llvm/lib/IR/Globals.cpp head/contrib/llvm/lib/IR/IRBuilder.cpp head/contrib/llvm/lib/IR/IRPrintingPasses.cpp head/contrib/llvm/lib/IR/InlineAsm.cpp head/contrib/llvm/lib/IR/Instruction.cpp head/contrib/llvm/lib/IR/Instructions.cpp head/contrib/llvm/lib/IR/LLVMContext.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.h head/contrib/llvm/lib/IR/LegacyPassManager.cpp head/contrib/llvm/lib/IR/MDBuilder.cpp head/contrib/llvm/lib/IR/Metadata.cpp head/contrib/llvm/lib/IR/MetadataImpl.h head/contrib/llvm/lib/IR/Module.cpp head/contrib/llvm/lib/IR/Statepoint.cpp head/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h head/contrib/llvm/lib/IR/Type.cpp head/contrib/llvm/lib/IR/TypeFinder.cpp head/contrib/llvm/lib/IR/User.cpp head/contrib/llvm/lib/IR/Value.cpp head/contrib/llvm/lib/IR/ValueSymbolTable.cpp head/contrib/llvm/lib/IR/ValueTypes.cpp head/contrib/llvm/lib/IR/Verifier.cpp head/contrib/llvm/lib/IRReader/IRReader.cpp head/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/LTOModule.cpp head/contrib/llvm/lib/LibDriver/LibDriver.cpp head/contrib/llvm/lib/LibDriver/Options.td head/contrib/llvm/lib/Linker/LinkModules.cpp head/contrib/llvm/lib/MC/ConstantPools.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmBackend.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCInstrDesc.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCObjectWriter.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp head/contrib/llvm/lib/MC/MCSection.cpp head/contrib/llvm/lib/MC/MCSectionCOFF.cpp head/contrib/llvm/lib/MC/MCSectionELF.cpp head/contrib/llvm/lib/MC/MCSectionMachO.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSubtargetInfo.cpp head/contrib/llvm/lib/MC/MCSymbol.cpp head/contrib/llvm/lib/MC/MCTargetOptions.cpp head/contrib/llvm/lib/MC/MCWinEH.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/StringTableBuilder.cpp head/contrib/llvm/lib/MC/SubtargetFeature.cpp head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/MC/WinCOFFStreamer.cpp head/contrib/llvm/lib/Object/Archive.cpp head/contrib/llvm/lib/Object/ArchiveWriter.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/COFFYAML.cpp head/contrib/llvm/lib/Object/ELF.cpp head/contrib/llvm/lib/Object/ELFYAML.cpp head/contrib/llvm/lib/Object/Error.cpp head/contrib/llvm/lib/Object/IRObjectFile.cpp head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/MachOUniversal.cpp head/contrib/llvm/lib/Object/Object.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Object/SymbolicFile.cpp head/contrib/llvm/lib/Option/Arg.cpp head/contrib/llvm/lib/Option/ArgList.cpp head/contrib/llvm/lib/Option/OptTable.cpp head/contrib/llvm/lib/Option/Option.cpp head/contrib/llvm/lib/Passes/PassBuilder.cpp head/contrib/llvm/lib/Passes/PassRegistry.def head/contrib/llvm/lib/ProfileData/CoverageMapping.cpp head/contrib/llvm/lib/ProfileData/CoverageMappingReader.cpp head/contrib/llvm/lib/ProfileData/InstrProf.cpp head/contrib/llvm/lib/ProfileData/InstrProfReader.cpp head/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp head/contrib/llvm/lib/ProfileData/SampleProf.cpp head/contrib/llvm/lib/ProfileData/SampleProfReader.cpp head/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/BlockFrequency.cpp head/contrib/llvm/lib/Support/BranchProbability.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp head/contrib/llvm/lib/Support/Debug.cpp head/contrib/llvm/lib/Support/Dwarf.cpp head/contrib/llvm/lib/Support/ErrorHandling.cpp head/contrib/llvm/lib/Support/FileOutputBuffer.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/GraphWriter.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/IntEqClasses.cpp head/contrib/llvm/lib/Support/Locale.cpp head/contrib/llvm/lib/Support/ManagedStatic.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/PrettyStackTrace.cpp head/contrib/llvm/lib/Support/Signals.cpp head/contrib/llvm/lib/Support/Statistic.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/StringSaver.cpp head/contrib/llvm/lib/Support/TargetParser.cpp head/contrib/llvm/lib/Support/TimeValue.cpp head/contrib/llvm/lib/Support/Timer.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Process.inc head/contrib/llvm/lib/Support/Unix/Program.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Unix/Unix.h head/contrib/llvm/lib/Support/Valgrind.cpp head/contrib/llvm/lib/Support/Windows/COM.inc head/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc head/contrib/llvm/lib/Support/Windows/Memory.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/Process.inc head/contrib/llvm/lib/Support/Windows/Program.inc head/contrib/llvm/lib/Support/Windows/Signals.inc head/contrib/llvm/lib/Support/Windows/WindowsSupport.h head/contrib/llvm/lib/Support/YAMLParser.cpp head/contrib/llvm/lib/Support/YAMLTraits.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/SetTheory.cpp head/contrib/llvm/lib/TableGen/TGParser.cpp head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/Target/AArch64/AArch64.td head/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp head/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td head/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp head/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h head/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsics.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp head/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp head/contrib/llvm/lib/Target/AMDGPU/CIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td head/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp head/contrib/llvm/lib/Target/AMDGPU/Processors.td head/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td head/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp head/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SIDefines.h head/contrib/llvm/lib/Target/AMDGPU/SIFixControlFlowLiveIntervals.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRLiveRanges.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h head/contrib/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp head/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/SISchedule.td head/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp head/contrib/llvm/lib/Target/AMDGPU/SITypeRewriter.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/VIInstructions.td head/contrib/llvm/lib/Target/ARM/ARM.h head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/BPF/BPF.td head/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp head/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.h head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h head/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp head/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp head/contrib/llvm/lib/Target/Hexagon/BitTracker.h head/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp head/contrib/llvm/lib/Target/Hexagon/Hexagon.h head/contrib/llvm/lib/Target/Hexagon/Hexagon.td head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonExpandPredSpillCode.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfoVector.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td head/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td head/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp head/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsCCState.cpp head/contrib/llvm/lib/Target/Mips/MipsCallingConv.td head/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp head/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp head/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h head/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h head/contrib/llvm/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTX.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h head/contrib/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.h head/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSection.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.h head/contrib/llvm/lib/Target/NVPTX/NVPTXVector.td head/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp head/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp head/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h head/contrib/llvm/lib/Target/PowerPC/PPC.h head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp head/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td head/contrib/llvm/lib/Target/PowerPC/PPCLoopDataPrefetch.cpp head/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp head/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp head/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp head/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp head/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h head/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp head/contrib/llvm/lib/Target/Sparc/SparcCallingConv.td head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h head/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h head/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h head/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp head/contrib/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp head/contrib/llvm/lib/Target/SystemZ/README.txt head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h head/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/TargetRecip.cpp head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h head/contrib/llvm/lib/Target/WebAssembly/README.txt head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h head/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp head/contrib/llvm/lib/Target/X86/X86CallingConv.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.h head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86InstrAVX512.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrBuilder.h head/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrExtension.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFPStack.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrMPX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrSystem.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp head/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h head/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h head/contrib/llvm/lib/Target/X86/X86WinEHState.cpp head/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp head/contrib/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h head/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.h head/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/InlineAlways.cpp head/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/LowerBitSets.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp head/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp head/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/SafeStack.cpp head/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h head/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp head/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp head/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Float2Int.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoadCombine.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp head/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp head/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp head/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp head/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp head/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Sink.cpp head/contrib/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp head/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp head/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp head/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp head/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LoopVersioning.cpp head/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp head/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp head/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp head/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp head/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp head/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp head/contrib/llvm/patches/README.TXT head/contrib/llvm/tools/bugpoint/BugDriver.cpp head/contrib/llvm/tools/bugpoint/BugDriver.h head/contrib/llvm/tools/bugpoint/CrashDebugger.cpp head/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp head/contrib/llvm/tools/bugpoint/ExtractFunction.cpp head/contrib/llvm/tools/bugpoint/ListReducer.h head/contrib/llvm/tools/bugpoint/Miscompilation.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.h head/contrib/llvm/tools/bugpoint/bugpoint.cpp head/contrib/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang-c/CXString.h head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/Mangle.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h head/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Module.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.h head/contrib/llvm/tools/clang/include/clang/Edit/Commit.h head/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h head/contrib/llvm/tools/clang/include/clang/Format/Format.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h head/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/include/clang/module.modulemap head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/CXXABI.h head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp head/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp head/contrib/llvm/tools/clang/lib/Basic/Attributes.cpp head/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h head/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h head/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h head/contrib/llvm/tools/clang/lib/Driver/Action.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/CrossWindowsToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp head/contrib/llvm/tools/clang/lib/Driver/InputInfo.h head/contrib/llvm/tools/clang/lib/Driver/Job.cpp head/contrib/llvm/tools/clang/lib/Driver/MSVCToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.h head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp head/contrib/llvm/tools/clang/lib/Driver/Tools.h head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Edit/Commit.cpp head/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp head/contrib/llvm/tools/clang/lib/Format/Encoding.h head/contrib/llvm/tools/clang/lib/Format/Format.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.h head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CodeGenOptions.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp head/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/Headers/Intrin.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h head/contrib/llvm/tools/clang/lib/Headers/adxintrin.h head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/ammintrin.h head/contrib/llvm/tools/clang/lib/Headers/arm_acle.h head/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h head/contrib/llvm/tools/clang/lib/Headers/bmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h head/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h head/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h head/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h head/contrib/llvm/tools/clang/lib/Headers/fxsrintrin.h head/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h head/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h head/contrib/llvm/tools/clang/lib/Headers/mmintrin.h head/contrib/llvm/tools/clang/lib/Headers/module.modulemap head/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/prfchwintrin.h head/contrib/llvm/tools/clang/lib/Headers/rdseedintrin.h head/contrib/llvm/tools/clang/lib/Headers/rtmintrin.h head/contrib/llvm/tools/clang/lib/Headers/shaintrin.h head/contrib/llvm/tools/clang/lib/Headers/smmintrin.h head/contrib/llvm/tools/clang/lib/Headers/stdint.h head/contrib/llvm/tools/clang/lib/Headers/tbmintrin.h head/contrib/llvm/tools/clang/lib/Headers/tgmath.h head/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/xopintrin.h head/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp head/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h head/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp head/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp head/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/llc/llc.cpp head/contrib/llvm/tools/lldb/docs/lldb.1 head/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h head/contrib/llvm/tools/lldb/include/lldb/API/SBAttachInfo.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInstruction.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h head/contrib/llvm/tools/lldb/include/lldb/API/SBType.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h head/contrib/llvm/tools/lldb/include/lldb/API/SystemInitializerFull.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Core/Address.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/Broadcaster.h head/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h head/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h head/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h head/contrib/llvm/tools/lldb/include/lldb/Core/ConnectionSharedMemory.h head/contrib/llvm/tools/lldb/include/lldb/Core/ConstString.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataBufferHeap.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataBufferMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataEncoder.h head/contrib/llvm/tools/lldb/include/lldb/Core/DataExtractor.h head/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h head/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h head/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Core/Event.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Core/History.h head/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h head/contrib/llvm/tools/lldb/include/lldb/Core/Listener.h head/contrib/llvm/tools/lldb/include/lldb/Core/Log.h head/contrib/llvm/tools/lldb/include/lldb/Core/Logging.h head/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h head/contrib/llvm/tools/lldb/include/lldb/Core/Module.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegularExpression.h head/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h head/contrib/llvm/tools/lldb/include/lldb/Core/Scalar.h head/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/Section.h head/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/Stream.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamCallback.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamString.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamTee.h head/contrib/llvm/tools/lldb/include/lldb/Core/StringList.h head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h head/contrib/llvm/tools/lldb/include/lldb/Core/Timer.h head/contrib/llvm/tools/lldb/include/lldb/Core/UUID.h head/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/Value.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h head/contrib/llvm/tools/lldb/include/lldb/Core/dwarf.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRDynamicChecks.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h head/contrib/llvm/tools/lldb/include/lldb/Host/Condition.h head/contrib/llvm/tools/lldb/include/lldb/Host/Config.h head/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h head/contrib/llvm/tools/lldb/include/lldb/Host/Endian.h head/contrib/llvm/tools/lldb/include/lldb/Host/File.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h head/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h head/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h head/contrib/llvm/tools/lldb/include/lldb/Host/Mutex.h head/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h head/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h head/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h head/contrib/llvm/tools/lldb/include/lldb/Host/XML.h head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/LockFilePosix.h head/contrib/llvm/tools/lldb/include/lldb/Host/posix/MainLoopPosix.h head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TaggedASTType.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeList.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h head/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h head/contrib/llvm/tools/lldb/include/lldb/Target/Process.h head/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h head/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Target.h head/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h head/contrib/llvm/tools/lldb/include/lldb/Utility/AnsiTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h head/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessStructReader.h head/contrib/llvm/tools/lldb/include/lldb/Utility/PseudoTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h head/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-types.h head/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp head/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp head/contrib/llvm/tools/lldb/source/API/SBFrame.cpp head/contrib/llvm/tools/lldb/source/API/SBFunction.cpp head/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp head/contrib/llvm/tools/lldb/source/API/SBLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/API/SBModule.cpp head/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp head/contrib/llvm/tools/lldb/source/API/SBProcess.cpp head/contrib/llvm/tools/lldb/source/API/SBStream.cpp head/contrib/llvm/tools/lldb/source/API/SBTarget.cpp head/contrib/llvm/tools/lldb/source/API/SBThread.cpp head/contrib/llvm/tools/lldb/source/API/SBType.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp head/contrib/llvm/tools/lldb/source/API/SBValue.cpp head/contrib/llvm/tools/lldb/source/API/SBValueList.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectArgs.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectArgs.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSyntax.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h head/contrib/llvm/tools/lldb/source/Core/Address.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp head/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp head/contrib/llvm/tools/lldb/source/Core/ConnectionSharedMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ConstString.cpp head/contrib/llvm/tools/lldb/source/Core/CxaDemangle.cpp head/contrib/llvm/tools/lldb/source/Core/DataEncoder.cpp head/contrib/llvm/tools/lldb/source/Core/DataExtractor.cpp head/contrib/llvm/tools/lldb/source/Core/Debugger.cpp head/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp head/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp head/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp head/contrib/llvm/tools/lldb/source/Core/Event.cpp head/contrib/llvm/tools/lldb/source/Core/FastDemangle.cpp head/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp head/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp head/contrib/llvm/tools/lldb/source/Core/Log.cpp head/contrib/llvm/tools/lldb/source/Core/Logging.cpp head/contrib/llvm/tools/lldb/source/Core/Mangled.cpp head/contrib/llvm/tools/lldb/source/Core/Module.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp head/contrib/llvm/tools/lldb/source/Core/Opcode.cpp head/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp head/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp head/contrib/llvm/tools/lldb/source/Core/RegularExpression.cpp head/contrib/llvm/tools/lldb/source/Core/Scalar.cpp head/contrib/llvm/tools/lldb/source/Core/Section.cpp head/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp head/contrib/llvm/tools/lldb/source/Core/Stream.cpp head/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp head/contrib/llvm/tools/lldb/source/Core/StreamString.cpp head/contrib/llvm/tools/lldb/source/Core/StringList.cpp head/contrib/llvm/tools/lldb/source/Core/Timer.cpp head/contrib/llvm/tools/lldb/source/Core/Value.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp head/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp head/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp head/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp head/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp head/contrib/llvm/tools/lldb/source/Host/common/File.cpp head/contrib/llvm/tools/lldb/source/Host/common/FileSpec.cpp head/contrib/llvm/tools/lldb/source/Host/common/Host.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp head/contrib/llvm/tools/lldb/source/Host/common/Mutex.cpp head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp head/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp head/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp head/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp head/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp head/contrib/llvm/tools/lldb/source/Host/common/ThisThread.cpp head/contrib/llvm/tools/lldb/source/Host/common/XML.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp head/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/MainLoopPosix.cpp head/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandHistory.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h head/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp head/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h head/contrib/llvm/tools/lldb/source/Symbol/Block.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp head/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp head/contrib/llvm/tools/lldb/source/Symbol/Function.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp head/contrib/llvm/tools/lldb/source/Symbol/Type.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp head/contrib/llvm/tools/lldb/source/Symbol/VariableList.cpp head/contrib/llvm/tools/lldb/source/Target/ABI.cpp head/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp head/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Memory.cpp head/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/Platform.cpp head/contrib/llvm/tools/lldb/source/Target/Process.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp head/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp head/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/Target.cpp head/contrib/llvm/tools/lldb/source/Target/TargetList.cpp head/contrib/llvm/tools/lldb/source/Target/Thread.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp head/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp head/contrib/llvm/tools/lldb/source/Utility/ConvertEnum.cpp head/contrib/llvm/tools/lldb/source/Utility/JSON.cpp head/contrib/llvm/tools/lldb/source/Utility/ModuleCache.cpp head/contrib/llvm/tools/lldb/source/Utility/ModuleCache.h head/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp head/contrib/llvm/tools/lldb/source/Utility/UriParser.h head/contrib/llvm/tools/lldb/source/lldb.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIExtensions.txt head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h head/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp head/contrib/llvm/tools/lli/ChildTarget/ChildTarget.cpp head/contrib/llvm/tools/lli/OrcLazyJIT.cpp head/contrib/llvm/tools/lli/OrcLazyJIT.h head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-as/llvm-as.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-cov/CoverageReport.cpp head/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h head/contrib/llvm/tools/llvm-cov/gcov.cpp head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp head/contrib/llvm/tools/llvm-diff/DiffLog.cpp head/contrib/llvm/tools/llvm-diff/DiffLog.h head/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp head/contrib/llvm/tools/llvm-dis/llvm-dis.cpp head/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp head/contrib/llvm/tools/llvm-extract/llvm-extract.cpp head/contrib/llvm/tools/llvm-link/llvm-link.cpp head/contrib/llvm/tools/llvm-lto/llvm-lto.cpp head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objdump/COFFDump.cpp head/contrib/llvm/tools/llvm-objdump/ELFDump.cpp head/contrib/llvm/tools/llvm-objdump/MachODump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.h head/contrib/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp head/contrib/llvm/tools/llvm-pdbdump/BuiltinDumper.h head/contrib/llvm/tools/llvm-pdbdump/LinePrinter.cpp head/contrib/llvm/tools/llvm-pdbdump/LinePrinter.h head/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp head/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.h head/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp head/contrib/llvm/tools/llvm-readobj/ARMAttributeParser.cpp head/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp head/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp head/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp head/contrib/llvm/tools/llvm-readobj/MachODumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.h head/contrib/llvm/tools/llvm-readobj/StreamWriter.h head/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.h head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-stress/llvm-stress.cpp head/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.cpp head/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h head/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/OptParserEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/TableGenBackends.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/etc/mtree/BSD.debug.dist head/etc/mtree/BSD.usr.dist head/lib/clang/Makefile head/lib/clang/clang.build.mk head/lib/clang/clang.lib.mk head/lib/clang/include/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/include/llvm/Support/DataTypes.h head/lib/clang/libclangast/Makefile head/lib/clang/libclangcodegen/Makefile head/lib/clang/libclangfrontend/Makefile head/lib/clang/libclangrewritefrontend/Makefile head/lib/clang/libclangsema/Makefile head/lib/clang/libclangserialization/Makefile head/lib/clang/libclangstaticanalyzercheckers/Makefile head/lib/clang/libclangstaticanalyzercore/Makefile head/lib/clang/libclangstaticanalyzerfrontend/Makefile head/lib/clang/liblldbCore/Makefile head/lib/clang/liblldbDataFormatters/Makefile head/lib/clang/liblldbExpression/Makefile head/lib/clang/liblldbHostCommon/Makefile head/lib/clang/liblldbHostPOSIX/Makefile head/lib/clang/liblldbInitialization/Makefile head/lib/clang/liblldbInterpreter/Makefile head/lib/clang/liblldbPluginProcessFreeBSD/Makefile head/lib/clang/liblldbPluginProcessUtility/Makefile head/lib/clang/liblldbPluginSymbolFileDWARF/Makefile head/lib/clang/liblldbSymbol/Makefile head/lib/clang/liblldbTarget/Makefile head/lib/clang/liblldbUtility/Makefile head/lib/clang/libllvmaarch64codegen/Makefile head/lib/clang/libllvmaarch64desc/Makefile head/lib/clang/libllvmaarch64disassembler/Makefile head/lib/clang/libllvmanalysis/Makefile head/lib/clang/libllvmarmcodegen/Makefile head/lib/clang/libllvmarmdesc/Makefile head/lib/clang/libllvmarminfo/Makefile head/lib/clang/libllvmasmparser/Makefile head/lib/clang/libllvmasmprinter/Makefile head/lib/clang/libllvmbitreader/Makefile head/lib/clang/libllvmbitwriter/Makefile head/lib/clang/libllvmcodegen/Makefile head/lib/clang/libllvmcore/Makefile head/lib/clang/libllvmdebuginfodwarf/Makefile head/lib/clang/libllvmexecutionengine/Makefile head/lib/clang/libllvminstcombine/Makefile head/lib/clang/libllvminstrumentation/Makefile head/lib/clang/libllvminterpreter/Makefile head/lib/clang/libllvmipo/Makefile head/lib/clang/libllvmirreader/Makefile head/lib/clang/libllvmlinker/Makefile head/lib/clang/libllvmlto/Makefile head/lib/clang/libllvmmc/Makefile head/lib/clang/libllvmmcjit/Makefile head/lib/clang/libllvmmipsasmparser/Makefile head/lib/clang/libllvmmipscodegen/Makefile head/lib/clang/libllvmmipsdesc/Makefile head/lib/clang/libllvmmipsdisassembler/Makefile head/lib/clang/libllvmmipsinfo/Makefile head/lib/clang/libllvmmirparser/Makefile head/lib/clang/libllvmobjcarcopts/Makefile head/lib/clang/libllvmobject/Makefile head/lib/clang/libllvmorcjit/Makefile head/lib/clang/libllvmpasses/Makefile head/lib/clang/libllvmpowerpccodegen/Makefile head/lib/clang/libllvmpowerpcinfo/Makefile head/lib/clang/libllvmprofiledata/Makefile head/lib/clang/libllvmscalaropts/Makefile head/lib/clang/libllvmselectiondag/Makefile head/lib/clang/libllvmsparccodegen/Makefile head/lib/clang/libllvmsparcdisassembler/Makefile head/lib/clang/libllvmsparcinfo/Makefile head/lib/clang/libllvmsupport/Makefile head/lib/clang/libllvmtarget/Makefile head/lib/clang/libllvmtransformutils/Makefile head/lib/clang/libllvmvectorize/Makefile head/lib/clang/libllvmx86codegen/Makefile head/lib/clang/libllvmx86disassembler/Makefile head/lib/libclang_rt/Makefile head/lib/libclang_rt/Makefile.inc head/lib/libclang_rt/asan/Makefile head/lib/libclang_rt/profile/Makefile head/lib/libclang_rt/safestack/Makefile head/lib/libclang_rt/ubsan_standalone/Makefile head/lib/libcompiler_rt/Makefile head/lib/libstand/Makefile head/lib/msun/tests/Makefile head/share/mk/local.meta.sys.mk head/sys/boot/Makefile.inc head/sys/conf/kmod.mk head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/Makefile head/usr.bin/clang/bugpoint/Makefile head/usr.bin/clang/bugpoint/bugpoint.1 head/usr.bin/clang/clang/Makefile head/usr.bin/clang/clang/clang.1 head/usr.bin/clang/llc/Makefile head/usr.bin/clang/llc/llc.1 head/usr.bin/clang/lldb/Makefile head/usr.bin/clang/lli/Makefile head/usr.bin/clang/lli/lli.1 head/usr.bin/clang/llvm-ar/Makefile head/usr.bin/clang/llvm-ar/llvm-ar.1 head/usr.bin/clang/llvm-as/Makefile head/usr.bin/clang/llvm-as/llvm-as.1 head/usr.bin/clang/llvm-bcanalyzer/Makefile head/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 head/usr.bin/clang/llvm-cov/Makefile head/usr.bin/clang/llvm-cov/llvm-cov.1 head/usr.bin/clang/llvm-cxxdump/Makefile head/usr.bin/clang/llvm-diff/Makefile head/usr.bin/clang/llvm-diff/llvm-diff.1 head/usr.bin/clang/llvm-dis/Makefile head/usr.bin/clang/llvm-dis/llvm-dis.1 head/usr.bin/clang/llvm-dwarfdump/Makefile head/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 head/usr.bin/clang/llvm-extract/Makefile head/usr.bin/clang/llvm-extract/llvm-extract.1 head/usr.bin/clang/llvm-link/Makefile head/usr.bin/clang/llvm-link/llvm-link.1 head/usr.bin/clang/llvm-lto/Makefile head/usr.bin/clang/llvm-mc/Makefile head/usr.bin/clang/llvm-nm/Makefile head/usr.bin/clang/llvm-nm/llvm-nm.1 head/usr.bin/clang/llvm-objdump/Makefile head/usr.bin/clang/llvm-pdbdump/Makefile head/usr.bin/clang/llvm-profdata/Makefile head/usr.bin/clang/llvm-profdata/llvm-profdata.1 head/usr.bin/clang/llvm-rtdyld/Makefile head/usr.bin/clang/llvm-symbolizer/Makefile head/usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1 head/usr.bin/clang/opt/Makefile head/usr.bin/clang/opt/opt.1 Directory Properties: head/ (props changed) head/cddl/ (props changed) head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/contrib/amd/ (props changed) head/contrib/binutils/ (props changed) head/contrib/byacc/ (props changed) head/contrib/compiler-rt/ (props changed) head/contrib/elftoolchain/ (props changed) head/contrib/elftoolchain/ar/ (props changed) head/contrib/elftoolchain/brandelf/ (props changed) head/contrib/elftoolchain/elfdump/ (props changed) head/contrib/gcc/ (props changed) head/contrib/less/ (props changed) head/contrib/libarchive/ (props changed) head/contrib/libarchive/libarchive/ (props changed) head/contrib/libucl/ (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/projects/libunwind/ (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/lldb/ (props changed) head/contrib/llvm/tools/llvm-dwarfdump/ (props changed) head/contrib/llvm/tools/llvm-lto/ (props changed) head/contrib/mdocml/ (props changed) head/contrib/ntp/ (props changed) head/contrib/openresolv/ (props changed) head/contrib/pf/ (props changed) head/contrib/tcpdump/ (props changed) head/contrib/unbound/ (props changed) head/crypto/openssh/ (props changed) head/crypto/openssl/ (props changed) head/gnu/lib/ (props changed) head/gnu/usr.bin/binutils/ (props changed) head/gnu/usr.bin/cc/cc_tools/ (props changed) head/gnu/usr.bin/gdb/ (props changed) head/include/ (props changed) head/lib/libc/ (props changed) head/lib/libedit/ (props changed) head/lib/libedit/edit/readline/ (props changed) head/lib/libvmmapi/ (props changed) head/sbin/ (props changed) head/sbin/ipfw/ (props changed) head/share/ (props changed) head/share/man/man4/ (props changed) head/sys/ (props changed) head/sys/amd64/vmm/ (props changed) head/sys/boot/ (props changed) head/sys/boot/powerpc/boot1.chrp/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) head/sys/conf/ (props changed) head/sys/contrib/ipfilter/ (props changed) head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c (props changed) head/sys/contrib/x86emu/ (props changed) head/sys/dev/hyperv/ (props changed) head/sys/gnu/dts/ (props changed) head/sys/gnu/dts/arm/ (props changed) head/sys/gnu/dts/include/ (props changed) head/sys/modules/hyperv/ (props changed) head/targets/ (props changed) head/usr.bin/calendar/ (props changed) head/usr.bin/colldef/ (props changed) head/usr.bin/mklocale/ (props changed) head/usr.bin/procstat/ (props changed) head/usr.sbin/bhyve/ (props changed) head/usr.sbin/bhyvectl/ (props changed) head/usr.sbin/bhyveload/ (props changed) head/usr.sbin/jail/ (props changed) head/usr.sbin/ndiscvt/ (props changed) head/usr.sbin/rtsold/ (props changed) Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sat Mar 5 19:55:42 2016 (r296416) +++ head/Makefile.inc1 Sat Mar 5 20:24:31 2016 (r296417) @@ -1503,11 +1503,11 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptre _clang_tblgen= \ lib/clang/libllvmsupport \ lib/clang/libllvmtablegen \ - usr.bin/clang/tblgen \ + usr.bin/clang/llvm-tblgen \ usr.bin/clang/clang-tblgen ${_bt}-usr.bin/clang/clang-tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport -${_bt}-usr.bin/clang/tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport +${_bt}-usr.bin/clang/llvm-tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly @@ -1714,7 +1714,7 @@ NXBENV= MAKEOBJDIRPREFIX=${OBJTREE}/nxb INSTALL="sh ${.CURDIR}/tools/install.sh" \ PATH=${PATH}:${OBJTREE}/gperf_for_gcc/usr/bin NXBMAKE= ${NXBENV} ${MAKE} \ - TBLGEN=${NXBDESTDIR}/usr/bin/tblgen \ + LLVM_TBLGEN=${NXBDESTDIR}/usr/bin/llvm-tblgen \ CLANG_TBLGEN=${NXBDESTDIR}/usr/bin/clang-tblgen \ MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ MK_GDB=no MK_TESTS=no \ Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sat Mar 5 19:55:42 2016 (r296416) +++ head/ObsoleteFiles.inc Sat Mar 5 20:24:31 2016 (r296417) @@ -38,6 +38,89 @@ # xargs -n1 | sort | uniq -d; # done +# 20160305: new clang import which bumps version from 3.7.1 to 3.8.0. +OLD_FILES+=usr/bin/macho-dump +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/3.7.1/include/sanitizer +OLD_FILES+=usr/lib/clang/3.7.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/3.7.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/altivec.h +OLD_FILES+=usr/lib/clang/3.7.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/3.7.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/3.7.1/include/cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/3.7.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/3.7.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/3.7.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/3.7.1/include +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/3.7.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/3.7.1/lib +OLD_DIRS+=usr/lib/clang/3.7.1 # 20160301: Remove taskqueue_enqueue_fast OLD_FILES+=usr/share/man/man9/taskqueue_enqueue_fast.9.gz # 20160225: Remove casperd and libcapsicum. Modified: head/UPDATING ============================================================================== --- head/UPDATING Sat Mar 5 19:55:42 2016 (r296416) +++ head/UPDATING Sat Mar 5 20:24:31 2016 (r296417) @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160305: + Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please + see the 20141231 entry below for information about prerequisites and + upgrading, if you are not already using clang 3.5.0 or higher. + 20160301: The AIO subsystem is now a standard part of the kernel. The VFS_AIO kernel option and aio.ko kernel module have been removed. Modified: head/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/asan_interface.h Sat Mar 5 19:55:42 2016 (r296416) +++ head/contrib/compiler-rt/include/sanitizer/asan_interface.h Sat Mar 5 20:24:31 2016 (r296417) @@ -110,10 +110,6 @@ extern "C" { void __asan_report_error(void *pc, void *bp, void *sp, void *addr, int is_write, size_t access_size); - // Sets the exit code to use when reporting an error. - // Returns the old value. - int __asan_set_error_exit_code(int exit_code); - // Deprecated. Call __sanitizer_set_death_callback instead. void __asan_set_death_callback(void (*callback)(void)); Modified: head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sat Mar 5 19:55:42 2016 (r296416) +++ head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sat Mar 5 20:24:31 2016 (r296417) @@ -105,12 +105,31 @@ extern "C" { int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, const void *end); + // Similar to __sanitizer_verify_contiguous_container but returns the address + // of the first improperly poisoned byte otherwise. Returns null if the area + // is poisoned properly. + const void *__sanitizer_contiguous_container_find_bad_address( + const void *beg, const void *mid, const void *end); + // Print the stack trace leading to this call. Useful for debugging user code. void __sanitizer_print_stack_trace(); // Sets the callback to be called right before death on error. // Passing 0 will unset the callback. void __sanitizer_set_death_callback(void (*callback)(void)); + + // Interceptor hooks. + // Whenever a libc function interceptor is called it checks if the + // corresponding weak hook is defined, and it so -- calls it. + // The primary use case is data-flow-guided fuzzing, where the fuzzer needs + // to know what is being passed to libc functions, e.g. memcmp. + // FIXME: implement more hooks. + void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1, + const void *s2, size_t n, int result); + void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); + void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, + const char *s2, int result); #ifdef __cplusplus } // extern "C" #endif Modified: head/contrib/compiler-rt/include/sanitizer/coverage_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sat Mar 5 19:55:42 2016 (r296416) +++ head/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sat Mar 5 20:24:31 2016 (r296417) @@ -27,9 +27,11 @@ extern "C" { // descriptor. Returns -1 on failure, or if coverage dumping is disabled. // This is intended for use by sandboxing code. intptr_t __sanitizer_maybe_open_cov_file(const char *name); - // Get the number of total unique covered entities (blocks, edges, calls). + // Get the number of unique covered blocks (or edges). // This can be useful for coverage-directed in-process fuzzers. uintptr_t __sanitizer_get_total_unique_coverage(); + // Get the number of unique indirect caller-callee pairs. + uintptr_t __sanitizer_get_total_unique_caller_callee_pairs(); // Reset the basic-block (edge) coverage to the initial state. // Useful for in-process fuzzing to start collecting coverage from scratch. @@ -39,6 +41,13 @@ extern "C" { // Some of the entries in *data will be zero. uintptr_t __sanitizer_get_coverage_guards(uintptr_t **data); + // Set *data to the growing buffer with covered PCs and return the size + // of the buffer. The entries are never zero. + // When only unique pcs are collected, the size is equal to + // __sanitizer_get_total_unique_coverage. + // WARNING: EXPERIMENTAL API. + uintptr_t __sanitizer_get_coverage_pc_buffer(uintptr_t **data); + // The coverage instrumentation may optionally provide imprecise counters. // Rather than exposing the counter values to the user we instead map // the counters to a bitset. Modified: head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h Sat Mar 5 19:55:42 2016 (r296416) +++ head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h Sat Mar 5 20:24:31 2016 (r296417) @@ -91,16 +91,18 @@ void dfsan_set_write_callback(dfsan_writ ///