From owner-svn-src-projects@FreeBSD.ORG Mon May 18 17:08:57 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A407D1065676; Mon, 18 May 2009 17:08:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8F9948FC1F; Mon, 18 May 2009 17:08:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4IH8v4K068229; Mon, 18 May 2009 17:08:57 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4IH8vPP068227; Mon, 18 May 2009 17:08:57 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905181708.n4IH8vPP068227@svn.freebsd.org> From: Robert Watson Date: Mon, 18 May 2009 17:08:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192309 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 17:08:58 -0000 Author: rwatson Date: Mon May 18 17:08:57 2009 New Revision: 192309 URL: http://svn.freebsd.org/changeset/base/192309 Log: Further refinement of netisr2: - Add netisr2_getqlimit() and netisr2_setqlimit() interfaces to allow protocols to query and manipulate per-workstream queue depth limits. This is required for routing socket and IPv4 netisrs which currently offer this functionality. - Add netisr2_getqdrops() and netisr2_clearqdrops() interfaces to allow protocols to query drops across CPUs, as well as clear drop statistics. This is required for IPv4. - Use u_int64_t rather than u_int for stats. - Rather than passing in each parameter individually for netisr2_register(), netisr2_unregister(), define a public struct netisr_handler, with padding, to describe protocols. - Explicitly enumerate policies supported by netisr2, rather than deriving them from implemented function pointers; this allows multiple policies to depend on the same function pointers if desired. We implement three policies now: NETISR_POLICY_SOURCE, NETISR_POLICY_FLOW, NETISR_POLICY_CPU. - Now that we use swi's, we can acquire the netisr lock around processing runs, since the wakeup can be waited for without holding the workstream lock. - Garbage collect NWS_SWI_BOUND and manual binding with sched_bind(), use intr_event_bind() now that this is supported for software interrupt threads. Modified: projects/pnet/sys/net/netisr2.c projects/pnet/sys/net/netisr2.h Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Mon May 18 16:00:18 2009 (r192308) +++ projects/pnet/sys/net/netisr2.c Mon May 18 17:08:57 2009 (r192309) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); * registered protocol handlers. Callers pass a protocol identifier and * packet to netisr2, along with a direct dispatch hint, and work will either * be immediately processed with the registered handler, or passed to a - * kernel worker thread for deferred dispatch. + * kernel software interrupt (SWI) thread for deferred dispatch. * * Maintaining ordering for protocol streams is a critical design concern. * Enforcing ordering limits the opportunity for concurrency, but maintains @@ -46,23 +46,10 @@ __FBSDID("$FreeBSD$"); * to avoid lock migration and contention where locks are associated with * more than one flow. * - * There are two cases: - * - * - The packet has a flow ID, query the protocol to map it to a CPU and - * execute there if not direct dispatching. - * - * - The packet has no flowid, query the protocol to generate a flow ID, then - * query a CPU and execute there if not direct dispatching. - * - * We guarantee that if two packets from the same source have the same - * protocol, and the source provides an ordering, that ordering will be - * maintained *unless* the policy is changing between queued and direct - * dispatch in which case minor re-ordering might occur. - * - * Some possible sources of flow identifiers for packets: - * - Hardware-generated hash from RSS - * - Software-generated hash from addresses and ports identifying the flow - * - Interface identifier the packet came from + * netisr2 supports several policy variations, represented by the + * NETISR_POLICY_* constants, allowing protocols to play a varying role in + * identifying flows, assigning work to CPUs, etc. These are described in + * detail in netisr2.h. */ #include "opt_ddb.h" @@ -79,6 +66,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -86,6 +74,8 @@ __FBSDID("$FreeBSD$"); #include #endif +#include +#include #include #include @@ -130,7 +120,8 @@ SYSCTL_INT(_net_isr2, OID_AUTO, direct, * Allow the administrator to limit the number of threads (CPUs) to use for * netisr2. Notice that we don't check netisr_maxthreads before creating the * thread for CPU 0, so in practice we ignore values <= 1. This must be set - * as a tunable, no run-time reconfiguration yet. + * as a tunable, no run-time reconfiguration yet. We will create at most one + * thread per available CPU. */ static int netisr_maxthreads = 1; /* Max number of threads. */ TUNABLE_INT("net.isr2.maxthreads", &netisr_maxthreads); @@ -142,16 +133,24 @@ TUNABLE_INT("net.isr2.bindthreads", &net SYSCTL_INT(_net_isr2, OID_AUTO, bindthreads, CTLFLAG_RD, &netisr_bindthreads, 0, "Bind netisr2 threads to CPUs."); +#define NETISR_MAXQLIMIT 10240 +static int netisr_maxqlimit = NETISR_MAXQLIMIT; +TUNABLE_INT("net.isr2.bindthreads", &netisr_bindthreads); +SYSCTL_INT(_net_isr2, OID_AUTO, maxqlimit, CTLFLAG_RD, &netisr_maxqlimit, + 0, "Maximum netisr2 per-protocol, per-CPU queue depth."); + /* * Each protocol is described by an instance of netisr_proto, which holds all * global per-protocol information. This data structure is set up by - * netisr_register(). + * netisr_register(), and derived from the public struct netisr_handler. */ struct netisr_proto { - const char *np_name; /* Protocol name. */ - netisr_t *np_func; /* Protocol handler. */ - netisr_m2flow_t *np_m2flow; /* mbuf -> flow ID. */ - netisr_flow2cpu_t *np_flow2cpu; /* Flow ID -> CPU ID. */ + const char *np_name; /* Character string protocol name. */ + netisr_t *np_handler; /* Protocol handler. */ + netisr_m2flow_t *np_m2flow; /* Query flow for untagged packet. */ + netisr_m2cpu_t *np_m2cpu; /* Query CPU to process packet on. */ + u_int np_qlimit; /* Maximum per-CPU queue depth. */ + u_int np_policy; /* Work placement policy. */ }; #define NETISR_MAXPROT 32 /* Compile-time limit. */ @@ -177,16 +176,16 @@ struct netisr_work { struct mbuf *nw_head; struct mbuf *nw_tail; u_int nw_len; - u_int nw_max; + u_int nw_qlimit; u_int nw_watermark; /* * Statistics -- written unlocked, but mostly from curcpu. */ - u_int nw_dispatched; /* Number of direct dispatches. */ - u_int nw_dropped; /* Number of drops. */ - u_int nw_queued; /* Number of enqueues. */ - u_int nw_handled; /* Number passed into handler. */ + u_int64_t nw_dispatched; /* Number of direct dispatches. */ + u_int64_t nw_qdrops; /* Number of drops. */ + u_int64_t nw_queued; /* Number of enqueues. */ + u_int64_t nw_handled; /* Number passed into handler. */ }; /* @@ -197,7 +196,7 @@ struct netisr_work { * concurrent processing is prevented by the NWS_RUNNING flag, which * indicates that a thread is already processing the work queue. * - * Currently, #workstreams must equal #CPUs. + * #workstreams must be <= #CPUs. */ struct netisr_workstream { struct intr_event *nws_intr_event; /* Handler for stream. */ @@ -205,9 +204,8 @@ struct netisr_workstream { struct mtx nws_mtx; /* Synchronize work. */ u_int nws_cpu; /* CPU pinning. */ u_int nws_flags; /* Wakeup flags. */ - u_int nws_swi_flags; /* Flags used in swi. */ - u_int nws_pendingwork; /* Across all protos. */ + /* * Each protocol has per-workstream data. */ @@ -239,11 +237,6 @@ static u_int nws_count; #define NWS_SIGNALED 0x00000002 /* Signal issued. */ /* - * Flags used internally to the SWI handler -- no locking required. - */ -#define NWS_SWI_BOUND 0x00000001 /* SWI bound to CPU. */ - -/* * Synchronization for each workstream: a mutex protects all mutable fields * in each stream, including per-protocol state (mbuf queues). The SWI is * woken up if asynchronous dispatch is required. @@ -268,20 +261,23 @@ u_int netisr2_get_cpuid(u_int cpunumber) { + KASSERT(cpunumber < nws_count, ("netisr2_get_cpuid: %u > %u", + cpunumber, nws_count)); + return (nws_array[cpunumber]); } /* - * The default implementation of (source, flow ID) -> CPU ID mapping. + * The default implementation of -> CPU ID mapping. + * * Non-static so that protocols can use it to map their own work to specific * CPUs in a manner consistent to netisr2 for affinity purposes. */ u_int -netisr2_default_flow2cpu(uintptr_t source, u_int flowid) +netisr2_default_flow2cpu(u_int flowid) { - return (netisr2_get_cpuid((source ^ flowid) % - netisr2_get_cpucount())); + return (netisr2_get_cpuid(flowid % nws_count)); } /* @@ -290,46 +286,195 @@ netisr2_default_flow2cpu(uintptr_t sourc * the protocol is installed. */ void -netisr2_register(u_int proto, const char *name, netisr_t func, - netisr_m2flow_t m2flow, netisr_flow2cpu_t flow2cpu, u_int max) +netisr2_register(const struct netisr_handler *nhp) { struct netisr_work *npwp; - int i; + const char *name; + u_int i, proto; - NETISR_WLOCK(); + proto = nhp->nh_proto; + name = nhp->nh_name; KASSERT(proto < NETISR_MAXPROT, - ("netisr2_register(%d, %s): too many protocols", proto, name)); + ("netisr2_register(%d, %s): protocol too big", proto, name)); + NETISR_WLOCK(); + + /* + * Test that no existing registration exists for this protocol. + */ KASSERT(np[proto].np_name == NULL, ("netisr2_register(%d, %s): name present", proto, name)); - KASSERT(np[proto].np_func == NULL, - ("netisr2_register(%d, %s): func present", proto, name)); - KASSERT(np[proto].np_m2flow == NULL, - ("netisr2_register(%d, %s): m2flow present", proto, name)); - KASSERT(np[proto].np_flow2cpu == NULL, - ("netisr2_register(%d, %s): flow2cpu present", proto, name)); + KASSERT(np[proto].np_handler == NULL, + ("netisr2_register(%d, %s): handler present", proto, name)); - KASSERT(name != NULL, ("netisr2_register: name NULL for %d", proto)); - KASSERT(func != NULL, ("netisr2_register: func NULL for %s", name)); + /* + * Test that the requested registration is valid. + */ + KASSERT(nhp->nh_name != NULL, + ("netisr2_register: nh_name NULL for %d", proto)); + KASSERT(nhp->nh_handler != NULL, + ("netisr2_register: nh_handler NULL for %s", name)); + KASSERT(nhp->nh_policy == NETISR_POLICY_SOURCE || + nhp->nh_policy == NETISR_POLICY_FLOW || + nhp->nh_policy == NETISR_POLICY_CPU, + ("netisr2_register: unsupported nh_policy %u for %s", + nhp->nh_policy, name)); + KASSERT(nhp->nh_policy == NETISR_POLICY_FLOW || + nhp->nh_m2flow == NULL, + ("netisr2_register: nh_policy != FLOW but m2flow defined for %s", + name)); + KASSERT(nhp->nh_policy == NETISR_POLICY_CPU || nhp->nh_m2cpu == NULL, + ("netisr2_register: nh_policy != CPU but m2cpu defined for %s", + name)); + KASSERT(nhp->nh_policy != NETISR_POLICY_CPU || nhp->nh_m2cpu != NULL, + ("netisr2_register: nh_policy == CPU but m2cpu not defined for " + "%s", name)); + KASSERT(nhp->nh_qlimit != 0, + ("netisr2_register: nh_qlimit 0 for %s", name)); + KASSERT(nhp->nh_qlimit <= netisr_maxqlimit, + ("netisr2_register: nh_qlimit (%u) above max %u for %s", + nhp->nh_qlimit, netisr_maxqlimit, name)); /* * Initialize global and per-workstream protocol state. */ np[proto].np_name = name; - np[proto].np_func = func; - np[proto].np_m2flow = m2flow; - if (flow2cpu != NULL) - np[proto].np_flow2cpu = flow2cpu; - else - np[proto].np_flow2cpu = netisr2_default_flow2cpu; + np[proto].np_handler = nhp->nh_handler; + np[proto].np_m2flow = nhp->nh_m2flow; + np[proto].np_m2cpu = nhp->nh_m2cpu; + np[proto].np_qlimit = nhp->nh_qlimit; + np[proto].np_policy = nhp->nh_policy; for (i = 0; i < MAXCPU; i++) { npwp = &nws[i].nws_work[proto]; bzero(npwp, sizeof(*npwp)); - npwp->nw_max = max; + npwp->nw_qlimit = nhp->nh_qlimit; + } + NETISR_WUNLOCK(); +} + +/* + * Clear drop counters across all workstreams for a protocol. + */ +void +netisr2_clearqdrops(const struct netisr_handler *nhp) +{ + struct netisr_work *npwp; +#ifdef INVARIANTS + const char *name; +#endif + u_int i, proto; + + proto = nhp->nh_proto; +#ifdef INVARIANTS + name = nhp->nh_name; +#endif + KASSERT(proto < NETISR_MAXPROT, + ("netisr_clearqdrops(%d): protocol too big for %s", proto, name)); + NETISR_WLOCK(); + KASSERT(np[proto].np_handler != NULL, + ("netisr_clearqdrops(%d): protocol not registered for %s", proto, + name)); + + for (i = 0; i < MAXCPU; i++) { + npwp = &nws[i].nws_work[proto]; + npwp->nw_qdrops = 0; } NETISR_WUNLOCK(); } /* + * Query the current drop counters across all workstreams for a protocol. + */ +void +netisr2_getqdrops(const struct netisr_handler *nhp, u_int64_t *qdropp) +{ + struct netisr_work *npwp; +#ifdef INVARIANTS + const char *name; +#endif + u_int i, proto; + + *qdropp = 0; + proto = nhp->nh_proto; +#ifdef INVARIANTS + name = nhp->nh_name; +#endif + KASSERT(proto < NETISR_MAXPROT, + ("netisr_getqdrops(%d): protocol too big for %s", proto, name)); + NETISR_RLOCK(); + KASSERT(np[proto].np_handler != NULL, + ("netisr_getqdrops(%d): protocol not registered for %s", proto, + name)); + + for (i = 0; i < MAXCPU; i++) { + npwp = &nws[i].nws_work[proto]; + *qdropp += npwp->nw_qdrops; + } + NETISR_RUNLOCK(); +} + +/* + * Query the current queue limit for per-workstream queues for a protocol. + */ +void +netisr2_getqlimit(const struct netisr_handler *nhp, u_int *qlimitp) +{ +#ifdef INVARIANTS + const char *name; +#endif + u_int proto; + + proto = nhp->nh_proto; +#ifdef INVARIANTS + name = nhp->nh_name; +#endif + KASSERT(proto < NETISR_MAXPROT, + ("netisr_getqlimit(%d): protocol too big for %s", proto, name)); + NETISR_RLOCK(); + KASSERT(np[proto].np_handler != NULL, + ("netisr_getqlimit(%d): protocol not registered for %s", proto, + name)); + *qlimitp = np[proto].np_qlimit; + NETISR_RUNLOCK(); +} + +/* + * Update the queue limit across per-workstream queues for a protocol. We + * simply change the limits, and don't drain overflowed packets as they will + * (hopefully) take care of themselves shortly. + */ +int +netisr2_setqlimit(const struct netisr_handler *nhp, u_int qlimit) +{ + struct netisr_work *npwp; +#ifdef INVARIANTS + const char *name; +#endif + u_int i, proto; + + if (qlimit > netisr_maxqlimit) + return (EINVAL); + + proto = nhp->nh_proto; +#ifdef INVARIANTS + name = nhp->nh_name; +#endif + KASSERT(proto < NETISR_MAXPROT, + ("netisr_setqlimit(%d): protocol too big for %s", proto, name)); + NETISR_WLOCK(); + KASSERT(np[proto].np_handler != NULL, + ("netisr_setqlimit(%d): protocol not registered for %s", proto, + name)); + + np[proto].np_qlimit = nhp->nh_qlimit; + for (i = 0; i < MAXCPU; i++) { + npwp = &nws[i].nws_work[proto]; + npwp->nw_qlimit = qlimit; + } + NETISR_WUNLOCK(); + return (0); +} + +/* * Drain all packets currently held in a particular protocol work queue. */ static void @@ -356,21 +501,31 @@ netisr2_drain_proto(struct netisr_work * * suspended while this takes place. */ void -netisr2_unregister(u_int proto) +netisr2_unregister(const struct netisr_handler *nhp) { struct netisr_work *npwp; - int i; +#ifdef INVARIANTS + const char *name; +#endif + u_int i, proto; - NETISR_WLOCK(); + proto = nhp->nh_proto; +#ifdef INVARIANTS + name = nhp->nh_name; +#endif KASSERT(proto < NETISR_MAXPROT, - ("netisr_unregister(%d): protocol too big", proto)); - KASSERT(np[proto].np_func != NULL, - ("netisr_unregister(%d): protocol not registered", proto)); + ("netisr_unregister(%d): protocol too big for %s", proto, name)); + NETISR_WLOCK(); + KASSERT(np[proto].np_handler != NULL, + ("netisr_unregister(%d): protocol not registered for %s", proto, + name)); np[proto].np_name = NULL; - np[proto].np_func = NULL; + np[proto].np_handler = NULL; np[proto].np_m2flow = NULL; - np[proto].np_flow2cpu = NULL; + np[proto].np_m2cpu = NULL; + np[proto].np_qlimit = 0; + np[proto].np_policy = 0; for (i = 0; i < MAXCPU; i++) { npwp = &nws[i].nws_work[proto]; netisr2_drain_proto(npwp); @@ -380,24 +535,15 @@ netisr2_unregister(u_int proto) } /* - * Look up the correct stream for a requested flowid. There are two cases: - * one in which the caller has requested execution on the current CPU (i.e., - * source ordering is sufficient, perhaps because the underlying hardware has - * generated multiple input queues with sufficient order), or the case in - * which we ask the protocol to generate a flowid. In the latter case, we - * rely on the protocol generating a reasonable distribution across the - * flowid space, and hence use a very simple mapping from flowids to workers. - * - * Because protocols may need to call m_pullup(), they may rewrite parts of - * the mbuf chain. As a result, we must return an mbuf chain that is either - * the old chain (if there is no update) or the new chain (if there is). NULL - * is returned if there is a failure in the protocol portion of the lookup - * (i.e., out of mbufs and a rewrite is required). + * Look up the workstream given a packet and source identifier. Do this by + * checking the protocol's policy, and optionally call out to the protocol + * for assistance if required. */ static struct mbuf * netisr2_selectcpu(struct netisr_proto *npp, uintptr_t source, struct mbuf *m, u_int *cpuidp) { + struct ifnet *ifp; NETISR_LOCK_ASSERT(); @@ -409,19 +555,41 @@ netisr2_selectcpu(struct netisr_proto *n *cpuidp = nws_array[0]; return (m); } - if (!(m->m_flags & M_FLOWID) && npp->np_m2flow != NULL) { - m = npp->np_m2flow(m); - if (m == NULL) - return (NULL); - KASSERT(m->m_flags & M_FLOWID, ("netisr2_selectcpu: protocol" - " %s failed to return flowid on mbuf", - npp->np_name)); + + /* + * What happens next depends on the policy selected by the protocol. + * If we want to support per-interface policies, we should do that + * here first. + */ + switch (npp->np_policy) { + case NETISR_POLICY_CPU: + return (npp->np_m2cpu(m, source, cpuidp)); + + case NETISR_POLICY_FLOW: + if (!(m->m_flags & M_FLOWID) && npp->np_m2flow != NULL) { + m = npp->np_m2flow(m, source); + if (m == NULL) + return (NULL); + } + if (m->m_flags & M_FLOWID) { + *cpuidp = + netisr2_default_flow2cpu(m->m_pkthdr.flowid); + return (m); + } + /* FALLTHROUGH */ + + case NETISR_POLICY_SOURCE: + ifp = m->m_pkthdr.rcvif; + if (ifp != NULL) + *cpuidp = (ifp->if_index + source) % nws_count; + else + *cpuidp = source % nws_count; + return (m); + + default: + panic("netisr2_selectcpu: invalid policy %u for %s", + npp->np_policy, npp->np_name); } - if (m->m_flags & M_FLOWID) - *cpuidp = npp->np_flow2cpu(source, m->m_pkthdr.flowid); - else - *cpuidp = npp->np_flow2cpu(source, 0); - return (m); } /* @@ -471,7 +639,7 @@ netisr2_process_workstream_proto(struct if (local_npw.nw_head == NULL) local_npw.nw_tail = NULL; local_npw.nw_len--; - np[proto].np_func(m); + np[proto].np_handler(m); } KASSERT(local_npw.nw_len == 0, ("netisr_process_proto(%d): len %d", proto, local_npw.nw_len)); @@ -520,23 +688,14 @@ swi_net(void *arg) nwsp = arg; - /* - * On first execution, force the ithread to the desired CPU. There - * should be a better way to do this. - */ - if (netisr_bindthreads && !(nwsp->nws_swi_flags & NWS_SWI_BOUND)) { - thread_lock(curthread); - sched_bind(curthread, nwsp->nws_cpu); - thread_unlock(curthread); - nwsp->nws_swi_flags |= NWS_SWI_BOUND; - } - + NETISR_RLOCK(); NWS_LOCK(nwsp); nwsp->nws_flags |= NWS_RUNNING; while (nwsp->nws_pendingwork != 0) netisr2_process_workstream(nwsp, NETISR_ALLPROT); nwsp->nws_flags &= ~(NWS_SIGNALED | NWS_RUNNING); NWS_UNLOCK(nwsp); + NETISR_RUNLOCK(); } static int @@ -553,7 +712,7 @@ netisr2_queue_internal(u_int proto, stru nwsp = &nws[cpuid]; npwp = &nwsp->nws_work[proto]; NWS_LOCK(nwsp); - if (npwp->nw_len < npwp->nw_max) { + if (npwp->nw_len < npwp->nw_qlimit) { m->m_nextpkt = NULL; if (npwp->nw_head == NULL) { npwp->nw_head = m; @@ -577,23 +736,23 @@ netisr2_queue_internal(u_int proto, stru if (dosignal) NWS_SIGNAL(nwsp); if (error) - npwp->nw_dropped++; + npwp->nw_qdrops++; else npwp->nw_queued++; return (error); } int -netisr2_queue(u_int proto, uintptr_t source, struct mbuf *m) +netisr2_queue_src(u_int proto, uintptr_t source, struct mbuf *m) { u_int cpuid, error; KASSERT(proto < NETISR_MAXPROT, - ("netisr2_dispatch: invalid proto %d", proto)); + ("netisr2_queue_src: invalid proto %d", proto)); NETISR_RLOCK(); - KASSERT(np[proto].np_func != NULL, - ("netisr2_dispatch: invalid proto %d", proto)); + KASSERT(np[proto].np_handler != NULL, + ("netisr2_queue_src: invalid proto %d", proto)); m = netisr2_selectcpu(&np[proto], source, m, &cpuid); if (m != NULL) @@ -605,33 +764,35 @@ netisr2_queue(u_int proto, uintptr_t sou } int -netisr2_queue_if(u_int proto, struct ifnet *ifp, struct mbuf *m) +netisr2_queue(u_int proto, struct mbuf *m) { - return (netisr2_queue(proto, (uintptr_t)ifp, m)); + return (netisr2_queue_src(proto, 0, m)); } int netisr_queue(int proto, struct mbuf *m) { - return (netisr2_queue_if(proto, m->m_pkthdr.rcvif, m)); + KASSERT(proto >= 0, ("netisr_queue: proto < 0")); + + return (netisr2_queue(proto, m)); } int -netisr2_dispatch(u_int proto, uintptr_t source, struct mbuf *m) +netisr2_dispatch_src(u_int proto, uintptr_t source, struct mbuf *m) { struct netisr_workstream *nwsp; struct netisr_work *npwp; if (!netisr_direct) - return (netisr2_queue(proto, source, m)); - KASSERT(proto < NETISR_MAXPROT, - ("netisr2_dispatch: invalid proto %d", proto)); + return (netisr2_queue_src(proto, source, m)); + KASSERT(proto < NETISR_MAXPROT, + ("netisr2_dispatch_src: invalid proto %u", proto)); NETISR_RLOCK(); - KASSERT(np[proto].np_func != NULL, - ("netisr2_dispatch: invalid proto %d", proto)); + KASSERT(np[proto].np_handler != NULL, + ("netisr2_dispatch_src: invalid proto %u", proto)); /* * Borrow current CPU's stats, even if there's no worker. @@ -640,23 +801,25 @@ netisr2_dispatch(u_int proto, uintptr_t npwp = &nwsp->nws_work[proto]; npwp->nw_dispatched++; npwp->nw_handled++; - np[proto].np_func(m); + np[proto].np_handler(m); NETISR_RUNLOCK(); return (0); } int -netisr2_dispatch_if(u_int proto, struct ifnet *ifp, struct mbuf *m) +netisr2_dispatch(u_int proto, struct mbuf *m) { - return (netisr2_dispatch(proto, (uintptr_t)ifp, m)); + return (netisr2_dispatch_src(proto, 0, m)); } void netisr_dispatch(int proto, struct mbuf *m) { - (void)netisr2_dispatch_if(proto, m->m_pkthdr.rcvif, m); + KASSERT(proto >= 0, ("netisr_dispatch: proto < 0")); + + (void)netisr2_dispatch(proto, m); } static void @@ -669,14 +832,22 @@ netisr2_start_swi(u_int cpuid, struct pc nwsp = &nws[cpuid]; mtx_init(&nwsp->nws_mtx, "netisr2_mtx", NULL, MTX_DEF); nwsp->nws_cpu = cpuid; - snprintf(swiname, sizeof(swiname), "netisr2: %d", cpuid); + snprintf(swiname, sizeof(swiname), "netisr %d", cpuid); error = swi_add(&nwsp->nws_intr_event, swiname, swi_net, nwsp, SWI_NET, INTR_MPSAFE, &nwsp->nws_swi_cookie); if (error) panic("netisr2_init: swi_add %d", error); pc->pc_netisr2 = nwsp->nws_intr_event; + if (netisr_bindthreads) { + error = intr_event_bind(nwsp->nws_intr_event, cpuid); + if (error != 0) + printf("netisr2_start_swi cpu %d: intr_event_bind: %d", + cpuid, error); + } + NETISR_WLOCK(); nws_array[nws_count] = nwsp->nws_cpu; nws_count++; + NETISR_WUNLOCK(); } /* @@ -741,7 +912,7 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 continue; first = 1; for (proto = 0; proto < NETISR_MAXPROT; proto++) { - if (np[proto].np_func == NULL) + if (np[proto].np_handler == NULL) continue; nwp = &nwsp->nws_work[proto]; if (first) { @@ -750,10 +921,10 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 first = 0; } else db_printf("%6s %6s ", "", ""); - db_printf("%6s %6d %6d %6d %8d %8d %8d %8d\n", + db_printf("%6s %6d %6d %6d %8ju %8ju %8ju %8ju\n", np[proto].np_name, nwp->nw_len, - nwp->nw_watermark, nwp->nw_max, - nwp->nw_dispatched, nwp->nw_dropped, + nwp->nw_watermark, nwp->nw_qlimit, + nwp->nw_dispatched, nwp->nw_qdrops, nwp->nw_queued, nwp->nw_handled); } } Modified: projects/pnet/sys/net/netisr2.h ============================================================================== --- projects/pnet/sys/net/netisr2.h Mon May 18 16:00:18 2009 (r192308) +++ projects/pnet/sys/net/netisr2.h Mon May 18 17:08:57 2009 (r192309) @@ -34,59 +34,87 @@ #endif /*- - * Prototocols express flow and CPU affinities by implementing two functions: + * Protocols express ordering constraints and affinity preferences by + * implementing one or neither of nh_m2flow and nh_m2cpu, which are used by + * netisr2 to determine which per-CPU workstream to assign mbufs to. * - * netisr_m2flow_t - When a packet without M_FLOWID is processed by netisr2, - * it may call into the protocol to generate the missing - * flow ID which should be installed in the packet header. - * If a flow ID cannot be generated, or failure occurs, - * NULL should be returned. - * - * netisr_flow2cpu_t - Given a flowid, possibly generated by netisr_m2flow, - * and an optional source identifier (possibly a tid, pcb, - * or kernel pointer), select a CPU to execute the packet - * handler on. If source isn't used, it will be 0/NULL. + * The following policies may be used by protocols: + * + * NETISR_POLICY_SOURCE - netisr2 should maintain source ordering without + * advice from the protocol. netisr2 will ignore any + * flow IDs present on the mbuf for the purposes of + * work placement. + * + * NETISR_POLICY_FLOW - netisr2 should maintain flow ordering as defined by + * the mbuf header flow ID field. If the protocol + * implements nh_m2flow, then netisr2 will query the + * protocol in the event that the mbuf doesn't have a + * flow ID, falling back on source ordering. + * + * NETISR_POLICY_CPU - netisr2 will delegate all work placement decisions to + * the protocol, querying nh_m2cpu for each packet. + * + * Protocols might make decisions about work placement based on an existing + * calculated flow ID on the mbuf, such as one provided in hardware, the + * receive interface pointed to by the mbuf (if any), the optional source + * identifier passed at some dispatch points, or even parse packet headers to + * calculate a flow. Both protocol handlers may return a new mbuf pointer + * for the chain, or NULL if the packet proves invalid or m_pullup() fails. * * XXXRW: If we eventually support dynamic reconfiguration, there should be * protocol handlers to notify them of CPU configuration changes so that they * can rebalance work. */ -typedef struct mbuf *netisr_m2flow_t(struct mbuf *m); -typedef u_int netisr_flow2cpu_t(uintptr_t source, u_int flowid); +typedef struct mbuf *netisr_m2cpu_t(struct mbuf *m, uintptr_t source, + u_int *cpuid); +typedef struct mbuf *netisr_m2flow_t(struct mbuf *m, uintptr_t source); + +#define NETISR_POLICY_SOURCE 1 /* Maintain source ordering. */ +#define NETISR_POLICY_FLOW 2 /* Maintain flow ordering. */ +#define NETISR_POLICY_CPU 3 /* Protocol determines CPU placement. */ -/*- - * Register a new netisr2 handler for a given protocol. No previous - * registration may exist. - * - * proto - Integer protocol identifier. - * name - Character string describing the protocol handler. - * func - Protocol handler. - * m2flow - Generate [missing] flowid for mbuf. - * flow2cpu - Convert a flowid to a CPU affinity. - * max - Maximum queue depth. +/* + * Data structure describing a protocol handler. */ -void netisr2_register(u_int proto, const char *name, netisr_t func, - netisr_m2flow_t m2flow, netisr_flow2cpu_t flow2cpu, u_int max); +struct netisr_handler { + const char *nh_name; /* Character string protocol name. */ + netisr_t *nh_handler; /* Protocol handler. */ + netisr_m2flow_t *nh_m2flow; /* Query flow for untagged packet. */ + netisr_m2cpu_t *nh_m2cpu; /* Query CPU to process packet on. */ + u_int nh_proto; /* Integer protocol ID. */ + u_int nh_qlimit; /* Maximum per-CPU queue depth. */ + u_int nh_policy; /* Work placement policy. */ + u_int nh_ispare[5]; /* For future use. */ + void *nh_pspare[4]; /* For future use. */ +}; /* - * Unregister a protocol handler. + * Register, unregister, and other netisr2 handler management functions. */ -void netisr2_unregister(u_int proto); +void netisr2_clearqdrops(const struct netisr_handler *nhp); +void netisr2_getqdrops(const struct netisr_handler *nhp, + u_int64_t *qdropsp); +void netisr2_getqlimit(const struct netisr_handler *nhp, u_int *qlimitp); +void netisr2_register(const struct netisr_handler *nhp); +int netisr2_setqlimit(const struct netisr_handler *nhp, u_int qlimit); +void netisr2_unregister(const struct netisr_handler *nhp); /* * Process a packet destined for a protocol, and attempt direct dispatch. + * Supplemental source ordering information can be passed using the _src + * variant. */ //int netisr_dispatch(u_int proto, struct mbuf *m); //int netisr_queue(u_int proto, struct mbuf *m); -int netisr2_dispatch(u_int proto, uintptr_t source, struct mbuf *m); -int netisr2_dispatch_if(u_int proto, struct ifnet *ifp, struct mbuf *m); -int netisr2_queue(u_int proto, uintptr_t source, struct mbuf *m); -int netisr2_queue_if(u_int proto, struct ifnet *ifp, struct mbuf *m); +int netisr2_dispatch(u_int proto, struct mbuf *m); +int netisr2_dispatch_src(u_int proto, uintptr_t source, struct mbuf *m); +int netisr2_queue(u_int proto, struct mbuf *m); +int netisr2_queue_src(u_int proto, uintptr_t source, struct mbuf *m); /* - * Provide a default implementation of "map a flow ID to a cpu ID". + * Provide a default implementation of "map a ID to a cpu ID". */ -u_int netisr2_default_flow2cpu(uintptr_t source, u_int flowid); +u_int netisr2_default_flow2cpu(u_int flowid); /* * Utility routines to return the number of CPUs participting in netisr2, and From owner-svn-src-projects@FreeBSD.ORG Mon May 18 17:10:27 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77B5A106566C; Mon, 18 May 2009 17:10:27 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 63BA58FC1F; Mon, 18 May 2009 17:10:27 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4IHARvU068305; Mon, 18 May 2009 17:10:27 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4IHAR63068296; Mon, 18 May 2009 17:10:27 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905181710.n4IHAR63068296@svn.freebsd.org> From: Robert Watson Date: Mon, 18 May 2009 17:10:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192310 - in projects/pnet/sys: net netatalk netinet netinet6 netipx netnatm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 17:10:28 -0000 Author: rwatson Date: Mon May 18 17:10:26 2009 New Revision: 192310 URL: http://svn.freebsd.org/changeset/base/192310 Log: Update netisr2 consumers for new netisr2 interfaces -- queue limits, stats, and struct netisr_handler registration. Modified: projects/pnet/sys/net/rtsock.c projects/pnet/sys/netatalk/ddp_usrreq.c projects/pnet/sys/netinet/if_ether.c projects/pnet/sys/netinet/igmp.c projects/pnet/sys/netinet/ip_divert.c projects/pnet/sys/netinet/ip_input.c projects/pnet/sys/netinet6/ip6_input.c projects/pnet/sys/netipx/ipx_input.c projects/pnet/sys/netnatm/natm_proto.c Modified: projects/pnet/sys/net/rtsock.c ============================================================================== --- projects/pnet/sys/net/rtsock.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/net/rtsock.c Mon May 18 17:10:26 2009 (r192310) @@ -92,11 +92,13 @@ MTX_SYSINIT(rtsock, &rtsock_mtx, "rtsock #define RTSOCK_UNLOCK() mtx_unlock(&rtsock_mtx) #define RTSOCK_LOCK_ASSERT() mtx_assert(&rtsock_mtx, MA_OWNED) -static struct ifqueue rtsintrq; - SYSCTL_NODE(_net, OID_AUTO, route, CTLFLAG_RD, 0, ""); + +#ifndef NETISR2 +static struct ifqueue rtsintrq; SYSCTL_INT(_net_route, OID_AUTO, netisr_maxqlen, CTLFLAG_RW, &rtsintrq.ifq_maxlen, 0, "maximum routing socket dispatch queue length"); +#endif struct walkarg { int w_tmemsize; @@ -121,19 +123,47 @@ static void rt_getmetrics(const struct r struct rt_metrics *out); static void rt_dispatch(struct mbuf *, const struct sockaddr *); +#ifdef NETISR2 +static struct netisr_handler rtsock_nh = { + .nh_name = "rtsock", + .nh_handler = rts_input, + .nh_proto = NETISR_ROUTE, + .nh_qlimit = 256, + .nh_policy = NETISR_POLICY_SOURCE, +}; + +static int +sysctl_route_netisr_maxqlen(SYSCTL_HANDLER_ARGS) +{ + int error, qlimit; + + netisr2_getqlimit(&rtsock_nh, &qlimit); + error = sysctl_handle_int(oidp, &qlimit, 0, req); + if (error || !req->newptr) + return (error); + if (qlimit < 1) + return (EINVAL); + return (netisr2_setqlimit(&rtsock_nh, qlimit)); +} +SYSCTL_PROC(_net_route, OID_AUTO, netisr_maxqlen, CTLTYPE_INT|CTLFLAG_RW, + 0, 0, sysctl_route_netisr_maxqlen, "I", + "maximum routing socket dispatch queue length"); +#endif + static void rts_init(void) { int tmp; +#ifdef NETISR2 + if (TUNABLE_INT_FETCH("net.route.netisr_maxqlen", &tmp)) + rtsock_nh.nh_qlimit = tmp; + netisr2_register(&rtsock_nh); +#else + mtx_init(&rtsintrq.ifq_mtx, "rts_inq", NULL, MTX_DEF); rtsintrq.ifq_maxlen = 256; if (TUNABLE_INT_FETCH("net.route.netisr_maxqlen", &tmp)) rtsintrq.ifq_maxlen = tmp; - mtx_init(&rtsintrq.ifq_mtx, "rts_inq", NULL, MTX_DEF); -#ifdef NETISR2 - netisr2_register(NETISR_ROUTE, "route", rts_input, NULL, NULL, - rtsintrq.ifq_maxlen); -#else netisr_register(NETISR_ROUTE, rts_input, &rtsintrq, 0); #endif } @@ -1231,11 +1261,7 @@ rt_dispatch(struct mbuf *m, const struct *(unsigned short *)(tag + 1) = sa->sa_family; m_tag_prepend(m, tag); } -#ifdef NETISR2 - netisr2_queue(NETISR_ROUTE, 0, m); /* mbuf is free'd on failure. */ -#else netisr_queue(NETISR_ROUTE, m); /* mbuf is free'd on failure. */ -#endif } /* Modified: projects/pnet/sys/netatalk/ddp_usrreq.c ============================================================================== --- projects/pnet/sys/netatalk/ddp_usrreq.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netatalk/ddp_usrreq.c Mon May 18 17:10:26 2009 (r192310) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2005 Robert N. M. Watson + * Copyright (c) 2004-2009 Robert N. M. Watson * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -73,7 +73,34 @@ static u_long ddp_sendspace = DDP_MAXSZ; /* Max ddp size + 1 (ddp_type) */ static u_long ddp_recvspace = 10 * (587 + sizeof(struct sockaddr_at)); +#ifdef NETISR2 +static const struct netisr_handler atalk1_nh = { + .nh_name = "atalk1", + .nh_handler = at1intr, + .nh_proto = NETISR_ATALK1, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_SOURCE, +}; + +static const struct netisr_handler atalk2_nh = { + .nh_name = "atalk2", + .nh_handler = at2intr, + .nh_proto = NETISR_ATALK2, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_SOURCE, +}; + +static const struct netisr_handler aarp_nh = { + .nh_name = "aarp", + .nh_handler = aarpintr, + .nh_proto = NETISR_AARP, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_SOURCE, +}; +#else static struct ifqueue atintrq1, atintrq2, aarpintrq; +#endif + static int ddp_attach(struct socket *so, int proto, struct thread *td) @@ -259,21 +286,18 @@ void ddp_init(void) { + DDP_LIST_LOCK_INIT(); +#ifdef NETISR2 + netisr2_register(&atalk1_nh); + netisr2_register(&atalk2_nh); + netisr2_register(&aarp_nh); +#else atintrq1.ifq_maxlen = IFQ_MAXLEN; atintrq2.ifq_maxlen = IFQ_MAXLEN; aarpintrq.ifq_maxlen = IFQ_MAXLEN; mtx_init(&atintrq1.ifq_mtx, "at1_inq", NULL, MTX_DEF); mtx_init(&atintrq2.ifq_mtx, "at2_inq", NULL, MTX_DEF); mtx_init(&aarpintrq.ifq_mtx, "aarp_inq", NULL, MTX_DEF); - DDP_LIST_LOCK_INIT(); -#ifdef NETISR2 - netisr2_register(NETISR_ATALK1, "atalk1", at1intr, NULL, NULL, - IFQ_MAXLEN); - netisr2_register(NETISR_ATALK2, "atalk2", at2intr, NULL, NULL, - IFQ_MAXLEN); - netisr2_register(NETISR_AARP, "aarp", aarpintr, NULL, NULL, - IFQ_MAXLEN); -#else netisr_register(NETISR_ATALK1, at1intr, &atintrq1, 0); netisr_register(NETISR_ATALK2, at2intr, &atintrq2, 0); netisr_register(NETISR_AARP, aarpintr, &aarpintrq, 0); Modified: projects/pnet/sys/netinet/if_ether.c ============================================================================== --- projects/pnet/sys/netinet/if_ether.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netinet/if_ether.c Mon May 18 17:10:26 2009 (r192310) @@ -98,8 +98,6 @@ static int arp_proxyall; SYSCTL_V_INT(V_NET, vnet_inet, _net_link_ether_inet, OID_AUTO, max_age, CTLFLAG_RW, arpt_keep, 0, "ARP entry lifetime in seconds"); -static struct ifqueue arpintrq; - SYSCTL_V_INT(V_NET, vnet_inet, _net_link_ether_inet, OID_AUTO, maxtries, CTLFLAG_RW, arp_maxtries, 0, "ARP resolution attempts before returning error"); @@ -120,6 +118,18 @@ static void arptimer(void *); static void in_arpinput(struct mbuf *); #endif +#ifdef NETISR2 +static const struct netisr_handler arp_nh = { + .nh_name = "arp", + .nh_handler = arpintr, + .nh_proto = NETISR_ARP, + .nh_qlimit = 50, + .nh_policy = NETISR_POLICY_SOURCE, +}; +#else +static struct ifqueue arpintrq; +#endif + #ifndef VIMAGE_GLOBALS static const vnet_modinfo_t vnet_arp_modinfo = { .vmi_id = VNET_MOD_ARP, @@ -823,11 +833,11 @@ arp_init(void) arp_iattach(NULL); #endif - arpintrq.ifq_maxlen = 50; - mtx_init(&arpintrq.ifq_mtx, "arp_inq", NULL, MTX_DEF); #ifdef NETISR2 - netisr2_register(NETISR_ARP, "arp", arpintr, NULL, NULL, 50); + netisr2_register(&arp_nh); #else + arpintrq.ifq_maxlen = 50; + mtx_init(&arpintrq.ifq_mtx, "arp_inq", NULL, MTX_DEF); netisr_register(NETISR_ARP, arpintr, &arpintrq, 0); #endif } Modified: projects/pnet/sys/netinet/igmp.c ============================================================================== --- projects/pnet/sys/netinet/igmp.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netinet/igmp.c Mon May 18 17:10:26 2009 (r192310) @@ -151,6 +151,21 @@ static int vnet_igmp_iattach(const void static int vnet_igmp_idetach(const void *); #endif /* VIMAGE */ +#ifdef NETISR2 +static const struct netisr_handler igmp_nh = { + .nh_name = "igmp", + .nh_handler = igmp_intr, + .nh_proto = NETISR_IGMP, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_SOURCE, +}; +#else +/* + * Global netisr output queue. + */ +struct ifqueue igmpoq; +#endif + /* * System-wide globals. * @@ -197,11 +212,6 @@ struct mbuf *m_raopt; /* Router Alert MALLOC_DEFINE(M_IGMP, "igmp", "igmp state"); /* - * Global netisr output queue. - */ -struct ifqueue igmpoq; - -/* * VIMAGE-wide globals. * * The IGMPv3 timers themselves need to run per-image, however, @@ -3545,15 +3555,13 @@ igmp_sysinit(void) IGMP_LOCK_INIT(); - mtx_init(&igmpoq.ifq_mtx, "igmpoq_mtx", NULL, MTX_DEF); - IFQ_SET_MAXLEN(&igmpoq, IFQ_MAXLEN); - m_raopt = igmp_ra_alloc(); #ifdef NETISR2 - netisr2_register(NETISR_IGMP, "igmp", igmp_intr, NULL, NULL, - IFQ_MAXLEN); + netisr2_register(&igmp_nh); #else + mtx_init(&igmpoq.ifq_mtx, "igmpoq_mtx", NULL, MTX_DEF); + IFQ_SET_MAXLEN(&igmpoq, IFQ_MAXLEN); netisr_register(NETISR_IGMP, igmp_intr, &igmpoq, 0); #endif } @@ -3565,11 +3573,11 @@ igmp_sysuninit(void) CTR1(KTR_IGMPV3, "%s: tearing down", __func__); #ifdef NETISR2 - netisr2_unregister(NETISR_IGMP); + netisr2_unregister(&igmp_nh); #else netisr_unregister(NETISR_IGMP); -#endif mtx_destroy(&igmpoq.ifq_mtx); +#endif m_free(m_raopt); m_raopt = NULL; Modified: projects/pnet/sys/netinet/ip_divert.c ============================================================================== --- projects/pnet/sys/netinet/ip_divert.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netinet/ip_divert.c Mon May 18 17:10:26 2009 (r192310) @@ -471,7 +471,7 @@ div_output(struct socket *so, struct mbu #endif /* Send packet to input processing via netisr */ #ifdef NETISR2 - netisr2_queue(NETISR_IP, (uintptr_t)so, m); + netisr2_queue_src(NETISR_IP, (uintptr_t)so, m); #else netisr_queue(NETISR_IP, m); #endif Modified: projects/pnet/sys/netinet/ip_input.c ============================================================================== --- projects/pnet/sys/netinet/ip_input.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netinet/ip_input.c Mon May 18 17:10:26 2009 (r192310) @@ -166,18 +166,29 @@ SYSCTL_V_INT(V_NET, vnet_inet, _net_inet struct pfil_head inet_pfil_hook; /* Packet filter hooks */ +#ifdef NETISR2 +static struct netisr_handler ip_nh = { + .nh_name = "ip", + .nh_handler = ip_input, + .nh_proto = NETISR_IP, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_FLOW, +}; +#else static struct ifqueue ipintrq; static int ipqmaxlen = IFQ_MAXLEN; -extern struct domain inetdomain; -extern struct protosw inetsw[]; -u_char ip_protox[IPPROTO_MAX]; - SYSCTL_INT(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_queue_maxlen, CTLFLAG_RW, &ipintrq.ifq_maxlen, 0, "Maximum size of the IP input queue"); SYSCTL_INT(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops, CTLFLAG_RD, &ipintrq.ifq_drops, 0, "Number of packets dropped from the IP input queue"); +#endif + +extern struct domain inetdomain; +extern struct protosw inetsw[]; +u_char ip_protox[IPPROTO_MAX]; + SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_ip, IPCTL_STATS, stats, CTLFLAG_RW, ipstat, ipstat, "IP statistics (struct ipstat, netinet/ip_var.h)"); @@ -250,6 +261,46 @@ static void vnet_inet_register() SYSINIT(inet, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, vnet_inet_register, 0); #endif +#ifdef NETISR2 +static int +sysctl_netinet_intr_queue_maxlen(SYSCTL_HANDLER_ARGS) +{ + int error, qlimit; + + netisr2_getqlimit(&ip_nh, &qlimit); + error = sysctl_handle_int(oidp, &qlimit, 0, req); + if (error || !req->newptr) + return (error); + if (qlimit < 1) + return (EINVAL); + return (netisr2_setqlimit(&ip_nh, qlimit)); +} +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_queue_maxlen, + CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_queue_maxlen, "I", + "Maximum size of the IP input queue"); + +static int +sysctl_netinet_intr_queue_drops(SYSCTL_HANDLER_ARGS) +{ + u_int64_t qdrops_long; + int error, qdrops; + + netisr2_getqdrops(&ip_nh, &qdrops_long); + qdrops = qdrops_long; + error = sysctl_handle_int(oidp, &qdrops, 0, req); + if (error || !req->newptr) + return (error); + if (qdrops != 0) + return (EINVAL); + netisr2_clearqdrops(&ip_nh); + return (0); + +} +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops, + CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops, "I", + "Number of packets dropped from the IP input queue"); +#endif + /* * IP initialization: fill in IP protocol switch table. * All protocols not implemented in kernel go to raw IP protocol handler. @@ -348,14 +399,13 @@ ip_init(void) /* Initialize various other remaining things. */ IPQ_LOCK_INIT(); - ipintrq.ifq_maxlen = ipqmaxlen; - mtx_init(&ipintrq.ifq_mtx, "ip_inq", NULL, MTX_DEF); #ifdef NETISR2 - netisr2_register(NETISR_IP, "ipv4", ip_input, NULL, NULL, ipqmaxlen); + netisr2_register(&ip_nh); #else + ipintrq.ifq_maxlen = ipqmaxlen; + mtx_init(&ipintrq.ifq_mtx, "ip_inq", NULL, MTX_DEF); netisr_register(NETISR_IP, ip_input, &ipintrq, 0); #endif - ip_ft = flowtable_alloc(ip_output_flowtable_size, FL_PCPU); } Modified: projects/pnet/sys/netinet6/ip6_input.c ============================================================================== --- projects/pnet/sys/netinet6/ip6_input.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netinet6/ip6_input.c Mon May 18 17:10:26 2009 (r192310) @@ -122,7 +122,18 @@ __FBSDID("$FreeBSD$"); extern struct domain inet6domain; u_char ip6_protox[IPPROTO_MAX]; + +#ifdef NETISR2 +static struct netisr_handler ip6_nh = { + .nh_name = "ip6", + .nh_handler = ip6_input, + .nh_proto = NETISR_IPV6, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_FLOW, +}; +#else static struct ifqueue ip6intrq; +#endif #ifndef VIMAGE #ifndef VIMAGE_GLOBALS @@ -297,12 +308,12 @@ ip6_init(void) printf("%s: WARNING: unable to register pfil hook, " "error %d\n", __func__, i); - ip6intrq.ifq_maxlen = V_ip6qmaxlen; /* XXX */ - mtx_init(&ip6intrq.ifq_mtx, "ip6_inq", NULL, MTX_DEF); #ifdef NETISR2 - netisr2_register(NETISR_IPV6, "ipv4", ip6_input, NULL, NULL, - V_ip6qmaxlen); + ip6_nh.nh_qlimit = V_ip6qmaxlen; + netisr2_register(&ip6_nh); #else + ip6intrq.ifq_maxlen = V_ip6qmaxlen; /* XXX */ + mtx_init(&ip6intrq.ifq_mtx, "ip6_inq", NULL, MTX_DEF); netisr_register(NETISR_IPV6, ip6_input, &ip6intrq, 0); #endif } Modified: projects/pnet/sys/netipx/ipx_input.c ============================================================================== --- projects/pnet/sys/netipx/ipx_input.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netipx/ipx_input.c Mon May 18 17:10:26 2009 (r192310) @@ -122,8 +122,18 @@ struct mtx ipxpcb_list_mtx; struct ipxpcbhead ipxpcb_list; struct ipxpcbhead ipxrawpcb_list; +#ifdef NETISR2 +static const struct netisr_handler ipx_nh = { + .nh_name = "ipx", + .nh_handler = ipxintr, + .nh_proto = NETISR_IPX, + .nh_qlimit = IFQ_MAXLEN, + .nh_policy = NETISR_POLICY_SOURCE, +}; +#else static int ipxqmaxlen = IFQ_MAXLEN; static struct ifqueue ipxintrq; +#endif long ipx_pexseq; /* Locked with ipxpcb_list_mtx. */ @@ -154,11 +164,12 @@ ipx_init(void) ipx_hostmask.sipx_addr.x_net = ipx_broadnet; ipx_hostmask.sipx_addr.x_host = ipx_broadhost; - ipxintrq.ifq_maxlen = ipxqmaxlen; - mtx_init(&ipxintrq.ifq_mtx, "ipx_inq", NULL, MTX_DEF); #ifdef NETISR2 - netisr2_register(NETISR_IPX, "ipx", ipxintr, NULL, NULL, ipxqmaxlen); + ipx_nh.nh_qlimit = ipxqmaxlen; + netisr2_register(&ipx_nh); #else + ipxintrq.ifq_maxlen = ipxqmaxlen; + mtx_init(&ipxintrq.ifq_mtx, "ipx_inq", NULL, MTX_DEF); netisr_register(NETISR_IPX, ipxintr, &ipxintrq, 0); #endif } Modified: projects/pnet/sys/netnatm/natm_proto.c ============================================================================== --- projects/pnet/sys/netnatm/natm_proto.c Mon May 18 17:08:57 2009 (r192309) +++ projects/pnet/sys/netnatm/natm_proto.c Mon May 18 17:10:26 2009 (r192310) @@ -91,8 +91,19 @@ static struct domain natmdomain = { .dom_protoswNPROTOSW = &natmsw[sizeof(natmsw)/sizeof(natmsw[0])], }; +#ifdef NETISR2 +static struct netisr_handler natm_nh = { + .nh_name = "natm", + .nh_handler = natmintr, + .nh_proto = NETISR_NATM, + .nh_qlimit = 1000 /* IFQ_MAXLEN */, + .nh_policy = NETISR_POLICY_SOURCE, +}; +#else static int natmqmaxlen = 1000 /* IFQ_MAXLEN */; /* max # of packets on queue */ static struct ifqueue natmintrq; +#endif + #ifdef NATM_STAT u_int natm_sodropcnt; /* # mbufs dropped due to full sb */ u_int natm_sodropbytes; /* # of bytes dropped */ @@ -104,14 +115,13 @@ static void natm_init(void) { LIST_INIT(&natm_pcbs); - bzero(&natmintrq, sizeof(natmintrq)); - natmintrq.ifq_maxlen = natmqmaxlen; NATM_LOCK_INIT(); - mtx_init(&natmintrq.ifq_mtx, "natm_inq", NULL, MTX_DEF); #ifdef NETISR2 - netisr2_register(NETISR_NATM, "natm", natmintr, NULL, NULL, - natmqmaxlen); + netisr2_register(&natm_nh); #else + bzero(&natmintrq, sizeof(natmintrq)); + natmintrq.ifq_maxlen = natmqmaxlen; + mtx_init(&natmintrq.ifq_mtx, "natm_inq", NULL, MTX_DEF); netisr_register(NETISR_NATM, natmintr, &natmintrq, 0); #endif } From owner-svn-src-projects@FreeBSD.ORG Mon May 18 21:36:17 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 865351065670; Mon, 18 May 2009 21:36:17 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7578B8FC08; Mon, 18 May 2009 21:36:17 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4ILaHUQ075391; Mon, 18 May 2009 21:36:17 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4ILaHX7075390; Mon, 18 May 2009 21:36:17 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905182136.n4ILaHX7075390@svn.freebsd.org> From: Robert Watson Date: Mon, 18 May 2009 21:36:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192339 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 21:36:17 -0000 Author: rwatson Date: Mon May 18 21:36:17 2009 New Revision: 192339 URL: http://svn.freebsd.org/changeset/base/192339 Log: Fix bug in netisr_setqlimit(). Modified: projects/pnet/sys/net/netisr2.c Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Mon May 18 21:23:13 2009 (r192338) +++ projects/pnet/sys/net/netisr2.c Mon May 18 21:36:17 2009 (r192339) @@ -465,7 +465,7 @@ netisr2_setqlimit(const struct netisr_ha ("netisr_setqlimit(%d): protocol not registered for %s", proto, name)); - np[proto].np_qlimit = nhp->nh_qlimit; + np[proto].np_qlimit = qlimit; for (i = 0; i < MAXCPU; i++) { npwp = &nws[i].nws_work[proto]; npwp->nw_qlimit = qlimit; From owner-svn-src-projects@FreeBSD.ORG Mon May 18 21:57:29 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 551541065690; Mon, 18 May 2009 21:57:29 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3894E8FC08; Mon, 18 May 2009 21:57:29 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4ILvSlV076010; Mon, 18 May 2009 21:57:28 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4ILvS0B076009; Mon, 18 May 2009 21:57:28 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905182157.n4ILvS0B076009@svn.freebsd.org> From: Robert Watson Date: Mon, 18 May 2009 21:57:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192344 - projects/pnet/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 21:57:29 -0000 Author: rwatson Date: Mon May 18 21:57:28 2009 New Revision: 192344 URL: http://svn.freebsd.org/changeset/base/192344 Log: Implement nh_m2flow for IPv4 -- if no flow ID is available on an mbuf destined for NETISR_IP, calculate a flow ID quickly using the source and destination IP addresses. It's easy to imagine something more complicated here, such as using the same RSS algorithm and parameters programmed into cxgb and other supporting devices. Modified: projects/pnet/sys/netinet/ip_input.c Modified: projects/pnet/sys/netinet/ip_input.c ============================================================================== --- projects/pnet/sys/netinet/ip_input.c Mon May 18 21:50:06 2009 (r192343) +++ projects/pnet/sys/netinet/ip_input.c Mon May 18 21:57:28 2009 (r192344) @@ -167,9 +167,11 @@ SYSCTL_V_INT(V_NET, vnet_inet, _net_inet struct pfil_head inet_pfil_hook; /* Packet filter hooks */ #ifdef NETISR2 +static struct mbuf *ip_input_m2flow(struct mbuf *m, uintptr_t source); static struct netisr_handler ip_nh = { .nh_name = "ip", .nh_handler = ip_input, + .nh_m2flow = ip_input_m2flow, .nh_proto = NETISR_IP, .nh_qlimit = IFQ_MAXLEN, .nh_policy = NETISR_POLICY_FLOW, @@ -299,6 +301,11 @@ sysctl_netinet_intr_queue_drops(SYSCTL_H SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops, CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops, "I", "Number of packets dropped from the IP input queue"); + +static int ip_m2flow_enable = 1; +SYSCTL_INT(_net_inet_ip, OID_AUTO, m2flow_enable, CTLFLAG_RW, + &ip_m2flow_enable, 0, + "Enable software flow ID calculation for parallel netisr distribution"); #endif /* @@ -416,6 +423,57 @@ ip_fini(void *xtp) callout_stop(&ipport_tick_callout); } +#ifdef NETISR2 +/* + * Calculate a flow ID for an IP packet if one isn't already present; this is + * a subset of the work done by ip_input() necessary to validate and read the + * IP header. We only do stats on the packet if we drop it -- otherwise, the + * normal input routine manages its statistics. + */ +static struct mbuf * +ip_input_m2flow(struct mbuf *m, uintptr_t source) +{ + struct ip *ip; + int hlen; + + M_ASSERTPKTHDR(m); + KASSERT(!(m->m_flags & M_FLOWID), + ("ip_input_m2flow: M_FLOWID already set")); + + if (!ip_m2flow_enable) + return (m); + + if (m->m_pkthdr.len < sizeof(struct ip)) { + IPSTAT_INC(ips_tooshort); + goto bad; + } + if (m->m_len < sizeof (struct ip) && + (m = m_pullup(m, sizeof(struct ip))) == NULL) { + IPSTAT_INC(ips_total); + IPSTAT_INC(ips_toosmall); + return (NULL); + } + ip = mtod(m, struct ip *); + if (ip->ip_v != IPVERSION) { + IPSTAT_INC(ips_badvers); + goto bad; + } + hlen = ip->ip_hl << 2; + if (hlen < sizeof(struct ip)) { + IPSTAT_INC(ips_badhlen); + goto bad; + } + m->m_flags |= M_FLOWID; + m->m_pkthdr.flowid = ip->ip_src.s_addr ^ ip->ip_dst.s_addr; + return (m); + +bad: + IPSTAT_INC(ips_total); + m_freem(m); + return (NULL); +} +#endif + /* * Ip input routine. Checksum and byte swap header. If fragmented * try to reassemble. Process options. Pass to next level. From owner-svn-src-projects@FreeBSD.ORG Mon May 18 22:16:51 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A9E5106564A; Mon, 18 May 2009 22:16:51 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5928F8FC0C; Mon, 18 May 2009 22:16:51 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4IMGpIo076544; Mon, 18 May 2009 22:16:51 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4IMGpuX076543; Mon, 18 May 2009 22:16:51 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905182216.n4IMGpuX076543@svn.freebsd.org> From: Robert Watson Date: Mon, 18 May 2009 22:16:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192347 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 22:16:51 -0000 Author: rwatson Date: Mon May 18 22:16:51 2009 New Revision: 192347 URL: http://svn.freebsd.org/changeset/base/192347 Log: Use rmlocks for netisr2 and enable read-locking in the dispatch path. Despite deeply upsetting WITNESS, this should actually be safe as the rmlock is always acquired read-locked in any processing path that could otherwise lead to a lock order reversal, so we'll want to supress these warnings as with pfil lock warnings. Modified: projects/pnet/sys/net/netisr2.c Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Mon May 18 21:58:57 2009 (r192346) +++ projects/pnet/sys/net/netisr2.c Mon May 18 22:16:51 2009 (r192347) @@ -63,7 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include @@ -93,22 +93,18 @@ __FBSDID("$FreeBSD$"); * - The np array, including all fields of struct netisr_proto. * - The nws array, including all fields of struct netisr_worker. * - The nws_array array. - * - * XXXRW: This should use an rmlock. */ -static struct rwlock netisr_rwlock; -#define NETISR_LOCK_INIT() rw_init(&netisr_rwlock, "netisr") -#ifdef NETISR_LOCKING -#define NETISR_LOCK_ASSERT() rw_assert(&netisr_rwlock, RW_LOCKED) -#define NETISR_RLOCK() rw_rlock(&netisr_rwlock) -#define NETISR_RUNLOCK() rw_runlock(&netisr_rwlock) +static struct rmlock netisr_rmlock; +#define NETISR_LOCK_INIT() rm_init(&netisr_rmlock, "netisr", 0) +#if 0 +#define NETISR_LOCK_ASSERT() rm_assert(&netisr_rmlock, RW_LOCKED) #else #define NETISR_LOCK_ASSERT() -#define NETISR_RLOCK() -#define NETISR_RUNLOCK() #endif -#define NETISR_WLOCK() rw_wlock(&netisr_rwlock) -#define NETISR_WUNLOCK() rw_wunlock(&netisr_rwlock) +#define NETISR_RLOCK(tracker) rm_rlock(&netisr_rmlock, (tracker)) +#define NETISR_RUNLOCK(tracker) rm_runlock(&netisr_rmlock, (tracker)) +#define NETISR_WLOCK() rm_wlock(&netisr_rmlock) +#define NETISR_WUNLOCK() rm_wunlock(&netisr_rmlock) SYSCTL_NODE(_net, OID_AUTO, isr2, CTLFLAG_RW, 0, "netisr2"); @@ -277,7 +273,7 @@ u_int netisr2_default_flow2cpu(u_int flowid) { - return (netisr2_get_cpuid(flowid % nws_count)); + return (nws_array[flowid % nws_count]); } /* @@ -388,6 +384,7 @@ void netisr2_getqdrops(const struct netisr_handler *nhp, u_int64_t *qdropp) { struct netisr_work *npwp; + struct rm_priotracker tracker; #ifdef INVARIANTS const char *name; #endif @@ -400,7 +397,7 @@ netisr2_getqdrops(const struct netisr_ha #endif KASSERT(proto < NETISR_MAXPROT, ("netisr_getqdrops(%d): protocol too big for %s", proto, name)); - NETISR_RLOCK(); + NETISR_RLOCK(&tracker); KASSERT(np[proto].np_handler != NULL, ("netisr_getqdrops(%d): protocol not registered for %s", proto, name)); @@ -409,7 +406,7 @@ netisr2_getqdrops(const struct netisr_ha npwp = &nws[i].nws_work[proto]; *qdropp += npwp->nw_qdrops; } - NETISR_RUNLOCK(); + NETISR_RUNLOCK(&tracker); } /* @@ -418,6 +415,7 @@ netisr2_getqdrops(const struct netisr_ha void netisr2_getqlimit(const struct netisr_handler *nhp, u_int *qlimitp) { + struct rm_priotracker tracker; #ifdef INVARIANTS const char *name; #endif @@ -429,12 +427,12 @@ netisr2_getqlimit(const struct netisr_ha #endif KASSERT(proto < NETISR_MAXPROT, ("netisr_getqlimit(%d): protocol too big for %s", proto, name)); - NETISR_RLOCK(); + NETISR_RLOCK(&tracker); KASSERT(np[proto].np_handler != NULL, ("netisr_getqlimit(%d): protocol not registered for %s", proto, name)); *qlimitp = np[proto].np_qlimit; - NETISR_RUNLOCK(); + NETISR_RUNLOCK(&tracker); } /* @@ -684,18 +682,19 @@ netisr2_process_workstream(struct netisr static void swi_net(void *arg) { + struct rm_priotracker tracker; struct netisr_workstream *nwsp; nwsp = arg; - NETISR_RLOCK(); + NETISR_RLOCK(&tracker); NWS_LOCK(nwsp); nwsp->nws_flags |= NWS_RUNNING; while (nwsp->nws_pendingwork != 0) netisr2_process_workstream(nwsp, NETISR_ALLPROT); nwsp->nws_flags &= ~(NWS_SIGNALED | NWS_RUNNING); NWS_UNLOCK(nwsp); - NETISR_RUNLOCK(); + NETISR_RUNLOCK(&tracker); } static int @@ -745,12 +744,13 @@ netisr2_queue_internal(u_int proto, stru int netisr2_queue_src(u_int proto, uintptr_t source, struct mbuf *m) { + struct rm_priotracker tracker; u_int cpuid, error; KASSERT(proto < NETISR_MAXPROT, ("netisr2_queue_src: invalid proto %d", proto)); - NETISR_RLOCK(); + NETISR_RLOCK(&tracker); KASSERT(np[proto].np_handler != NULL, ("netisr2_queue_src: invalid proto %d", proto)); @@ -759,7 +759,7 @@ netisr2_queue_src(u_int proto, uintptr_t error = netisr2_queue_internal(proto, m, cpuid); else error = ENOBUFS; - NETISR_RUNLOCK(); + NETISR_RUNLOCK(&tracker); return (error); } @@ -782,6 +782,7 @@ netisr_queue(int proto, struct mbuf *m) int netisr2_dispatch_src(u_int proto, uintptr_t source, struct mbuf *m) { + struct rm_priotracker tracker; struct netisr_workstream *nwsp; struct netisr_work *npwp; @@ -790,7 +791,7 @@ netisr2_dispatch_src(u_int proto, uintpt KASSERT(proto < NETISR_MAXPROT, ("netisr2_dispatch_src: invalid proto %u", proto)); - NETISR_RLOCK(); + NETISR_RLOCK(&tracker); KASSERT(np[proto].np_handler != NULL, ("netisr2_dispatch_src: invalid proto %u", proto)); @@ -802,7 +803,7 @@ netisr2_dispatch_src(u_int proto, uintpt npwp->nw_dispatched++; npwp->nw_handled++; np[proto].np_handler(m); - NETISR_RUNLOCK(); + NETISR_RUNLOCK(&tracker); return (0); } From owner-svn-src-projects@FreeBSD.ORG Mon May 18 23:20:56 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B8611065670; Mon, 18 May 2009 23:20:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 78AFB8FC17; Mon, 18 May 2009 23:20:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4INKuPp078218; Mon, 18 May 2009 23:20:56 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4INKulP078215; Mon, 18 May 2009 23:20:56 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905182320.n4INKulP078215@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 18 May 2009 23:20:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192355 - in projects/mips/sys: conf dev/flash X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 23:20:56 -0000 Author: gonzo Date: Mon May 18 23:20:56 2009 New Revision: 192355 URL: http://svn.freebsd.org/changeset/base/192355 Log: - Add support for MX25Lxxx SPI flash (readonly atm) Added: projects/mips/sys/dev/flash/mx25l.c projects/mips/sys/dev/flash/mx25lreg.h Modified: projects/mips/sys/conf/files Modified: projects/mips/sys/conf/files ============================================================================== --- projects/mips/sys/conf/files Mon May 18 22:54:47 2009 (r192354) +++ projects/mips/sys/conf/files Mon May 18 23:20:56 2009 (r192355) @@ -903,6 +903,7 @@ dev/firewire/if_fwip.c optional fwip dev/firewire/sbp.c optional sbp dev/firewire/sbp_targ.c optional sbp_targ dev/flash/at45d.c optional at45d +dev/flash/mx25l.c optional mx25l dev/fxp/if_fxp.c optional fxp dev/gem/if_gem.c optional gem dev/gem/if_gem_pci.c optional gem pci Added: projects/mips/sys/dev/flash/mx25l.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mips/sys/dev/flash/mx25l.c Mon May 18 23:20:56 2009 (r192355) @@ -0,0 +1,313 @@ +/*- + * Copyright (c) 2006 M. Warner Losh. All rights reserved. + * Copyright (c) 2009 Oleksandr Tymoshenko. 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "spibus_if.h" + +#include + +struct mx25l_flash_ident +{ + const char *name; + uint8_t manufacturer_id; + uint16_t device_id; + unsigned int sectorsize; + unsigned int sectorcount; +}; + +struct mx25l_softc +{ + device_t sc_dev; + uint8_t sc_manufacturer_id; + uint16_t sc_device_id; + struct mtx sc_mtx; + struct disk *sc_disk; + struct proc *sc_p; + struct bio_queue_head sc_bio_queue; +}; + +#define M25PXX_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define M25PXX_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define M25PXX_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "mx25l", MTX_DEF) +#define M25PXX_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define M25PXX_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define M25PXX_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +/* disk routines */ +static int mx25l_open(struct disk *dp); +static int mx25l_close(struct disk *dp); +static int mx25l_ioctl(struct disk *, u_long, void *, int, struct thread *); +static void mx25l_strategy(struct bio *bp); +static void mx25l_task(void *arg); + +struct mx25l_flash_ident flash_devices[] = { + { "mx25ll32", 0xc2, 0x2016, 64 * 1024, 64 }, + { "mx25ll64", 0xc2, 0x2017, 64 * 1024, 128 }, + { "mx25ll128", 0xc2, 0x2018, 64 * 1024, 256 }, +}; + +static uint8_t +mx25l_get_status(device_t dev) +{ + uint8_t txBuf[2], rxBuf[2]; + struct spi_command cmd; + int err; + + memset(&cmd, 0, sizeof(cmd)); + memset(txBuf, 0, sizeof(txBuf)); + memset(rxBuf, 0, sizeof(rxBuf)); + + txBuf[0] = CMD_READ_STATUS; + cmd.tx_cmd = txBuf; + cmd.rx_cmd = rxBuf; + cmd.rx_cmd_sz = 2; + cmd.tx_cmd_sz = 2; + err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); + return (rxBuf[1]); +} + +static void +mx25l_wait_for_device_ready(device_t dev) +{ + while ((mx25l_get_status(dev) & STATUS_WIP)) + continue; +} + +static struct mx25l_flash_ident* +mx25l_get_device_ident(struct mx25l_softc *sc) +{ + device_t dev = sc->sc_dev; + uint8_t txBuf[8], rxBuf[8]; + struct spi_command cmd; + uint8_t manufacturer_id; + uint16_t dev_id; + int err, i; + + memset(&cmd, 0, sizeof(cmd)); + memset(txBuf, 0, sizeof(txBuf)); + memset(rxBuf, 0, sizeof(rxBuf)); + + txBuf[0] = CMD_READ_IDENT; + cmd.tx_cmd = &txBuf; + cmd.rx_cmd = &rxBuf; + /* + * Some compatible devices has extended two-bytes ID + * We'll use only manufacturer/deviceid atm + */ + cmd.tx_cmd_sz = 4; + cmd.rx_cmd_sz = 4; + err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); + if (err) + return (NULL); + + manufacturer_id = rxBuf[1]; + dev_id = (rxBuf[2] << 8) | (rxBuf[3]); + + for (i = 0; + i < sizeof(flash_devices)/sizeof(struct mx25l_flash_ident); i++) { + if ((flash_devices[i].manufacturer_id == manufacturer_id) && + (flash_devices[i].device_id == dev_id)) + return &flash_devices[i]; + } + + printf("Unknown SPI flash device. Vendor: %02x, device id: %04x\n", + manufacturer_id, dev_id); + return (NULL); +} + +static int +mx25l_probe(device_t dev) +{ + device_set_desc(dev, "M25Pxx Flash Family"); + return (0); +} + +static int +mx25l_attach(device_t dev) +{ + struct mx25l_softc *sc; + struct mx25l_flash_ident *ident; + + sc = device_get_softc(dev); + sc->sc_dev = dev; + M25PXX_LOCK_INIT(sc); + + ident = mx25l_get_device_ident(sc); + if (ident == NULL) + return (ENXIO); + + mx25l_wait_for_device_ready(sc->sc_dev); + + sc->sc_disk = disk_alloc(); + sc->sc_disk->d_open = mx25l_open; + sc->sc_disk->d_close = mx25l_close; + sc->sc_disk->d_strategy = mx25l_strategy; + sc->sc_disk->d_ioctl = mx25l_ioctl; + sc->sc_disk->d_name = "flash/spi"; + sc->sc_disk->d_drv1 = sc; + sc->sc_disk->d_maxsize = DFLTPHYS; + sc->sc_disk->d_sectorsize = ident->sectorsize; + sc->sc_disk->d_mediasize = ident->sectorsize * ident->sectorcount; + sc->sc_disk->d_unit = device_get_unit(sc->sc_dev); + sc->sc_disk->d_dump = NULL; /* NB: no dumps */ + + /* NB: use stripesize to hold the erase/region size for RedBoot */ + sc->sc_disk->d_stripesize = ident->sectorsize; + + disk_create(sc->sc_disk, DISK_VERSION); + bioq_init(&sc->sc_bio_queue); + + kproc_create(&mx25l_task, sc, &sc->sc_p, 0, 0, "task: mx25l flash"); + device_printf(sc->sc_dev, "%s, sector %d bytes, %d sectors\n", + ident->name, ident->sectorsize, ident->sectorcount); + + return (0); +} + +static int +mx25l_detach(device_t dev) +{ + + return (EIO); +} + +static int +mx25l_open(struct disk *dp) +{ + return (0); +} + +static int +mx25l_close(struct disk *dp) +{ + + return (0); +} + +static int +mx25l_ioctl(struct disk *dp, u_long cmd, void *data, int fflag, + struct thread *td) +{ + + return (EINVAL); +} + + +static void +mx25l_strategy(struct bio *bp) +{ + struct mx25l_softc *sc; + + sc = (struct mx25l_softc *)bp->bio_disk->d_drv1; + M25PXX_LOCK(sc); + bioq_disksort(&sc->sc_bio_queue, bp); + wakeup(sc); + M25PXX_UNLOCK(sc); +} + +static void +mx25l_task(void *arg) +{ + struct mx25l_softc *sc = (struct mx25l_softc*)arg; + struct bio *bp; + uint8_t txBuf[8], rxBuf[8]; + struct spi_command cmd; + device_t dev, pdev; + + for (;;) { + dev = sc->sc_dev; + pdev = device_get_parent(dev); + M25PXX_LOCK(sc); + do { + bp = bioq_first(&sc->sc_bio_queue); + if (bp == NULL) + msleep(sc, &sc->sc_mtx, PRIBIO, "jobqueue", 0); + } while (bp == NULL); + bioq_remove(&sc->sc_bio_queue, bp); + M25PXX_UNLOCK(sc); + + if (bp->bio_cmd == BIO_READ) { + txBuf[0] = CMD_FAST_READ; + cmd.tx_cmd_sz = 5; + cmd.rx_cmd_sz = 5; + + txBuf[1] = (((bp->bio_offset) >> 16) & 0xff); + txBuf[2] = (((bp->bio_offset) >> 8) & 0xff); + txBuf[3] = ((bp->bio_offset) & 0xff); + /* Dummy byte */ + txBuf[4] = 0; + + cmd.tx_cmd = txBuf; + cmd.rx_cmd = rxBuf; + cmd.tx_data = bp->bio_data; + cmd.tx_data_sz = bp->bio_bcount; + cmd.rx_data = bp->bio_data; + cmd.rx_data_sz = bp->bio_bcount; + bp->bio_error = SPIBUS_TRANSFER(pdev, dev, &cmd); + } + else + bp->bio_error = EINVAL; + + biodone(bp); + } +} + +static devclass_t mx25l_devclass; + +static device_method_t mx25l_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mx25l_probe), + DEVMETHOD(device_attach, mx25l_attach), + DEVMETHOD(device_detach, mx25l_detach), + + { 0, 0 } +}; + +static driver_t mx25l_driver = { + "mx25l", + mx25l_methods, + sizeof(struct mx25l_softc), +}; + +DRIVER_MODULE(mx25l, spibus, mx25l_driver, mx25l_devclass, 0, 0); Added: projects/mips/sys/dev/flash/mx25lreg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mips/sys/dev/flash/mx25lreg.h Mon May 18 23:20:56 2009 (r192355) @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2009, Oleksandr Tymoshenko + * 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 unmodified, 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. + */ + +#ifndef __MX25LREG_H__ +#define __MX25LREG_H__ + +/* + * Commands + */ +#define CMD_WRITE_ENABLE 0x06 +#define CMD_WRITE_DISABLE 0x04 +#define CMD_READ_IDENT 0x9F +#define CMD_READ_STATUS 0x05 +#define CMD_WRITE_STATUS 0x01 +#define CMD_READ 0x03 +#define CMD_FAST_READ 0x0B +#define CMD_PAGE_PROGRAM 0x02 +#define CMD_SECTOR_ERASE 0xD8 +#define CMD_BULK_ERASE 0xC7 + +/* + * Status register flags + */ +#define STATUS_SRWD (1 << 7) +#define STATUS_BP2 (1 << 4) +#define STATUS_BP1 (1 << 3) +#define STATUS_BP0 (1 << 2) +#define STATUS_WEL (1 << 1) +#define STATUS_WIP (1 << 0) + +#endif /* __MX25LREG_H__ */ + From owner-svn-src-projects@FreeBSD.ORG Mon May 18 23:30:16 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D485106564A; Mon, 18 May 2009 23:30:16 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3B98D8FC15; Mon, 18 May 2009 23:30:16 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4INUGYi078430; Mon, 18 May 2009 23:30:16 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4INUGup078427; Mon, 18 May 2009 23:30:16 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905182330.n4INUGup078427@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 18 May 2009 23:30:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192356 - in projects/mips/sys: arm/at91 dev/spibus X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 23:30:16 -0000 Author: gonzo Date: Mon May 18 23:30:15 2009 New Revision: 192356 URL: http://svn.freebsd.org/changeset/base/192356 Log: - Unwire spibus from at91_spi in projects/mips as well Modified: projects/mips/sys/arm/at91/at91.c projects/mips/sys/arm/at91/at91_spi.c projects/mips/sys/dev/spibus/spibus.c Modified: projects/mips/sys/arm/at91/at91.c ============================================================================== --- projects/mips/sys/arm/at91/at91.c Mon May 18 23:20:56 2009 (r192355) +++ projects/mips/sys/arm/at91/at91.c Mon May 18 23:30:15 2009 (r192356) @@ -409,7 +409,7 @@ struct cpu_devs at91rm9200_devs[] = AT91RM92_IRQ_SSC2 }, { - "at91_spi", 0, + "spi", 0, AT91RM92_BASE + AT91RM92_SPI_BASE, AT91RM92_SPI_SIZE, AT91RM92_IRQ_SPI }, Modified: projects/mips/sys/arm/at91/at91_spi.c ============================================================================== --- projects/mips/sys/arm/at91/at91_spi.c Mon May 18 23:20:56 2009 (r192355) +++ projects/mips/sys/arm/at91/at91_spi.c Mon May 18 23:30:15 2009 (r192356) @@ -297,7 +297,7 @@ static device_method_t at91_spi_methods[ }; static driver_t at91_spi_driver = { - "at91_spi", + "spi", at91_spi_methods, sizeof(struct at91_spi_softc), }; Modified: projects/mips/sys/dev/spibus/spibus.c ============================================================================== --- projects/mips/sys/dev/spibus/spibus.c Mon May 18 23:20:56 2009 (r192355) +++ projects/mips/sys/dev/spibus/spibus.c Mon May 18 23:30:15 2009 (r192356) @@ -194,5 +194,5 @@ static driver_t spibus_driver = { devclass_t spibus_devclass; -DRIVER_MODULE(spibus, at91_spi, spibus_driver, spibus_devclass, 0, 0); +DRIVER_MODULE(spibus, spi, spibus_driver, spibus_devclass, 0, 0); MODULE_VERSION(spibus, 1); From owner-svn-src-projects@FreeBSD.ORG Mon May 18 23:32:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16DEC1065674; Mon, 18 May 2009 23:32:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 046758FC14; Mon, 18 May 2009 23:32:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4INW4YS078506; Mon, 18 May 2009 23:32:04 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4INW4aG078504; Mon, 18 May 2009 23:32:04 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905182332.n4INW4aG078504@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 18 May 2009 23:32:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192357 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 23:32:05 -0000 Author: gonzo Date: Mon May 18 23:32:04 2009 New Revision: 192357 URL: http://svn.freebsd.org/changeset/base/192357 Log: - Add SPI bus driver for ar71xx SoC Added: projects/mips/sys/mips/atheros/ar71xx_spi.c Modified: projects/mips/sys/mips/atheros/files.ar71xx Added: projects/mips/sys/mips/atheros/ar71xx_spi.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mips/sys/mips/atheros/ar71xx_spi.c Mon May 18 23:32:04 2009 (r192357) @@ -0,0 +1,228 @@ +/*- + * Copyright (c) 2009, Oleksandr Tymoshenko + * 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 unmodified, 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 +#include +#include "spibus_if.h" + +#include + +#undef AR71XX_SPI_DEBUG +#ifdef AR71XX_SPI_DEBUG +#define dprintf printf +#else +#define dprintf(x, arg...) +#endif + +/* + * register space access macros + */ +#define SPI_WRITE(sc, reg, val) do { \ + bus_write_4(sc->sc_mem_res, (reg), (val)); \ + } while (0) + +#define SPI_READ(sc, reg) bus_read_4(sc->sc_mem_res, (reg)) + +#define SPI_SET_BITS(sc, reg, bits) \ + SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) | (bits)) + +#define SPI_CLEAR_BITS(sc, reg, bits) \ + SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) & ~(bits)) + +struct ar71xx_spi_softc { + device_t sc_dev; + struct resource *sc_mem_res; + uint32_t sc_reg_ioctrl; +}; + +static int +ar71xx_spi_probe(device_t dev) +{ + device_set_desc(dev, "AR71XX SPI"); + return (0); +} + +static int +ar71xx_spi_attach(device_t dev) +{ + struct ar71xx_spi_softc *sc = device_get_softc(dev); + int rid; + + sc->sc_dev = dev; + rid = 0; + sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (!sc->sc_mem_res) { + device_printf(dev, "Could not map memory\n"); + return (ENXIO); + } + + sc->sc_reg_ioctrl = SPI_READ(sc, AR71XX_SPI_IO_CTRL); + + SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, SPI_IO_CTRL_CS0 | SPI_IO_CTRL_CS1 | + SPI_IO_CTRL_CS2); + SPI_WRITE(sc, AR71XX_SPI_CTRL, sc->sc_reg_ioctrl); + SPI_WRITE(sc, AR71XX_SPI_FS, 0); + + device_add_child(dev, "spibus", 0); + return (bus_generic_attach(dev)); +} + +static void +ar71xx_spi_chip_activate(struct ar71xx_spi_softc *sc, int cs) +{ + uint32_t ioctrl = SPI_IO_CTRL_CS0 |SPI_IO_CTRL_CS1 | SPI_IO_CTRL_CS2; + /* + * Put respective CSx to low + */ + ioctrl &= ~(SPI_IO_CTRL_CS0 << cs); + + SPI_WRITE(sc, AR71XX_SPI_FS, 1); + SPI_WRITE(sc, AR71XX_SPI_CTRL, 0x43); + SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, ioctrl); +} + +static void +ar71xx_spi_chip_deactivate(struct ar71xx_spi_softc *sc, int cs) +{ + /* + * Put all CSx to high + */ + SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, SPI_IO_CTRL_CS0 | SPI_IO_CTRL_CS1 | + SPI_IO_CTRL_CS2); + SPI_WRITE(sc, AR71XX_SPI_CTRL, sc->sc_reg_ioctrl); + SPI_WRITE(sc, AR71XX_SPI_FS, 0); +} + +static uint8_t +ar71xx_spi_txrx(struct ar71xx_spi_softc *sc, uint8_t data) +{ + int bit; + /* CS0 */ + uint32_t ioctrl = SPI_IO_CTRL_CS1 | SPI_IO_CTRL_CS2; + + uint32_t iod, rds; + for (bit = 7; bit >=0; bit--) { + if (data & (1 << bit)) + iod = ioctrl | SPI_IO_CTRL_DO; + else + iod = ioctrl & ~SPI_IO_CTRL_DO; + SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, iod); + SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, iod | SPI_IO_CTRL_CLK); + } + + rds = SPI_READ(sc, AR71XX_SPI_RDS); + + return (rds & 0xff); +} + +static int +ar71xx_spi_transfer(device_t dev, device_t child, struct spi_command *cmd) +{ + struct ar71xx_spi_softc *sc; + uint8_t *buf_in, *buf_out; + struct spibus_ivar *devi = SPIBUS_IVAR(child); + int i; + + sc = device_get_softc(dev); + + ar71xx_spi_chip_activate(sc, devi->cs); + + KASSERT(cmd->tx_cmd_sz == cmd->rx_cmd_sz, + ("TX/RX command sizes should be equal")); + KASSERT(cmd->tx_data_sz == cmd->rx_data_sz, + ("TX/RX data sizes should be equal")); + + /* + * Transfer command + */ + buf_out = (uint8_t *)cmd->tx_cmd; + buf_in = (uint8_t *)cmd->rx_cmd; + for (i = 0; i < cmd->tx_cmd_sz; i++) + buf_in[i] = ar71xx_spi_txrx(sc, buf_out[i]); + + /* + * Receive/transmit data (depends on command) + */ + buf_out = (uint8_t *)cmd->tx_data; + buf_in = (uint8_t *)cmd->rx_data; + for (i = 0; i < cmd->tx_data_sz; i++) + buf_in[i] = ar71xx_spi_txrx(sc, buf_out[i]); + + ar71xx_spi_chip_deactivate(sc, devi->cs); + + return (0); +} + +static int +ar71xx_spi_detach(device_t dev) +{ + + return (EBUSY); /* XXX */ +} + +static device_method_t ar71xx_spi_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, ar71xx_spi_probe), + DEVMETHOD(device_attach, ar71xx_spi_attach), + DEVMETHOD(device_detach, ar71xx_spi_detach), + + DEVMETHOD(spibus_transfer, ar71xx_spi_transfer), + + {0, 0} +}; + +static driver_t ar71xx_spi_driver = { + "spi", + ar71xx_spi_methods, + sizeof(struct ar71xx_spi_softc), +}; + +static devclass_t ar71xx_spi_devclass; + +DRIVER_MODULE(ar71xx_spi, nexus, ar71xx_spi_driver, ar71xx_spi_devclass, 0, 0); Modified: projects/mips/sys/mips/atheros/files.ar71xx ============================================================================== --- projects/mips/sys/mips/atheros/files.ar71xx Mon May 18 23:30:15 2009 (r192356) +++ projects/mips/sys/mips/atheros/files.ar71xx Mon May 18 23:32:04 2009 (r192357) @@ -6,6 +6,7 @@ mips/atheros/ar71xx_ehci.c optional ehci mips/atheros/ar71xx_ohci.c optional ohci mips/atheros/ar71xx_pci.c optional pci mips/atheros/ar71xx_pci_bus_space.c optional pci +mips/atheros/ar71xx_spi.c optional ar71xx_spi mips/atheros/if_arge.c optional arge mips/atheros/uart_bus_ar71xx.c optional uart mips/atheros/uart_cpu_ar71xx.c optional uart From owner-svn-src-projects@FreeBSD.ORG Mon May 18 23:36:12 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E3741065670; Mon, 18 May 2009 23:36:12 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2CF7B8FC1B; Mon, 18 May 2009 23:36:12 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4INaCqL078624; Mon, 18 May 2009 23:36:12 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4INaCkd078623; Mon, 18 May 2009 23:36:12 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905182336.n4INaCkd078623@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 18 May 2009 23:36:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192358 - projects/mips/sys/mips/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 23:36:12 -0000 Author: gonzo Date: Mon May 18 23:36:11 2009 New Revision: 192358 URL: http://svn.freebsd.org/changeset/base/192358 Log: - Add spibus and mx25l device Modified: projects/mips/sys/mips/conf/AR71XX.hints Modified: projects/mips/sys/mips/conf/AR71XX.hints ============================================================================== --- projects/mips/sys/mips/conf/AR71XX.hints Mon May 18 23:32:04 2009 (r192357) +++ projects/mips/sys/mips/conf/AR71XX.hints Mon May 18 23:36:11 2009 (r192358) @@ -33,3 +33,11 @@ hint.arge.0.irq=2 # hint.arge.1.maddr=0x1A000000 # hint.arge.1.msize=0x1000 # hint.arge.1.irq=3 + +# SPI flash +hint.spi.0.at="nexus0" +hint.spi.0.maddr=0x1f000000 +hint.spi.0.msize=0x10 + +hint.mx25l.0.at="spibus0" +hint.mx25l.0.cs=0 From owner-svn-src-projects@FreeBSD.ORG Tue May 19 02:43:23 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67F3A1065680; Tue, 19 May 2009 02:43:23 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5555B8FC1B; Tue, 19 May 2009 02:43:23 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4J2hLps082408; Tue, 19 May 2009 02:43:21 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4J2hLHh082407; Tue, 19 May 2009 02:43:21 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905190243.n4J2hLHh082407@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 19 May 2009 02:43:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192364 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 02:43:24 -0000 Author: gonzo Date: Tue May 19 02:43:21 2009 New Revision: 192364 URL: http://svn.freebsd.org/changeset/base/192364 Log: - Cleanup ticker initialization code. For some MIPS cpu Counter register increments only every second cycle. The only timing references for us is Count value. Therefore it's better to convert frequencies related to it and use them. Besides cleanup this commit fixes twice more then requested sleep interval problem. Modified: projects/mips/sys/mips/mips/tick.c Modified: projects/mips/sys/mips/mips/tick.c ============================================================================== --- projects/mips/sys/mips/mips/tick.c Tue May 19 01:58:00 2009 (r192363) +++ projects/mips/sys/mips/mips/tick.c Tue May 19 02:43:21 2009 (r192364) @@ -138,25 +138,19 @@ mips_timer_init_params(uint64_t platform * function should be called before cninit. */ counter_freq = platform_counter_freq; + /* + * XXX: Some MIPS32 cores update the Count register only every two + * pipeline cycles. + */ + if (double_count != 0) + counter_freq /= 2; + cycles_per_tick = counter_freq / 1000; - if (double_count) - cycles_per_tick *= 2; cycles_per_hz = counter_freq / hz; cycles_per_usec = counter_freq / (1 * 1000 * 1000); cycles_per_sec = counter_freq ; counter_timecounter.tc_frequency = counter_freq; - /* - * XXX: Some MIPS32 cores update the Count register only every two - * pipeline cycles. - * XXX2: We can read this from the hardware register on some - * systems. Need to investigate. - */ - if (double_count != 0) { - cycles_per_hz /= 2; - cycles_per_usec /= 2; - cycles_per_sec /= 2; - } printf("hz=%d cyl_per_hz:%jd cyl_per_usec:%jd freq:%jd cyl_per_hz:%jd cyl_per_sec:%jd\n", hz, cycles_per_tick, @@ -346,6 +340,7 @@ clock_attach(device_t dev) device_printf(dev, "bus_setup_intr returned %d\n", error); return (error); } + mips_wr_compare(mips_rd_count() + counter_freq / hz); return (0); } From owner-svn-src-projects@FreeBSD.ORG Tue May 19 02:51:30 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 635CC106564A; Tue, 19 May 2009 02:51:30 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 519AF8FC0C; Tue, 19 May 2009 02:51:30 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4J2pUvc082604; Tue, 19 May 2009 02:51:30 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4J2pU1N082603; Tue, 19 May 2009 02:51:30 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905190251.n4J2pU1N082603@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 19 May 2009 02:51:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192365 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 02:51:30 -0000 Author: gonzo Date: Tue May 19 02:51:30 2009 New Revision: 192365 URL: http://svn.freebsd.org/changeset/base/192365 Log: - ar71xx increases Count value every two cycles Modified: projects/mips/sys/mips/atheros/ar71xx_machdep.c Modified: projects/mips/sys/mips/atheros/ar71xx_machdep.c ============================================================================== --- projects/mips/sys/mips/atheros/ar71xx_machdep.c Tue May 19 02:43:21 2009 (r192364) +++ projects/mips/sys/mips/atheros/ar71xx_machdep.c Tue May 19 02:51:30 2009 (r192365) @@ -157,7 +157,7 @@ platform_start(__register_t a0 __unused, div = ((pll_config >> PLL_CPU_DIV_SEL_SHIFT) & PLL_CPU_DIV_SEL_MASK) + 1; platform_counter_freq = freq / div; - mips_timer_init_params(platform_counter_freq, 0); + mips_timer_init_params(platform_counter_freq, 1); cninit(); printf("platform frequency: %lld\n", platform_counter_freq); From owner-svn-src-projects@FreeBSD.ORG Tue May 19 09:26:30 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44288106566B; Tue, 19 May 2009 09:26:30 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2FFA08FC08; Tue, 19 May 2009 09:26:30 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4J9QUcH090978; Tue, 19 May 2009 09:26:30 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4J9QU6t090977; Tue, 19 May 2009 09:26:30 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905190926.n4J9QU6t090977@svn.freebsd.org> From: Robert Watson Date: Tue, 19 May 2009 09:26:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192374 - projects/pnet/sys/i386/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 09:26:31 -0000 Author: rwatson Date: Tue May 19 09:26:29 2009 New Revision: 192374 URL: http://svn.freebsd.org/changeset/base/192374 Log: Use NETISR2 in GENERIC in this branch. Modified: projects/pnet/sys/i386/conf/GENERIC Modified: projects/pnet/sys/i386/conf/GENERIC ============================================================================== --- projects/pnet/sys/i386/conf/GENERIC Tue May 19 09:10:53 2009 (r192373) +++ projects/pnet/sys/i386/conf/GENERIC Tue May 19 09:26:29 2009 (r192374) @@ -38,6 +38,7 @@ options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols +options NETISR2 # Parallel netisrs options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support From owner-svn-src-projects@FreeBSD.ORG Tue May 19 09:28:10 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 818FF106566C; Tue, 19 May 2009 09:28:10 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 555498FC0A; Tue, 19 May 2009 09:28:10 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4J9SAMj091047; Tue, 19 May 2009 09:28:10 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4J9SAsN091046; Tue, 19 May 2009 09:28:10 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905190928.n4J9SAsN091046@svn.freebsd.org> From: Robert Watson Date: Tue, 19 May 2009 09:28:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192375 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 09:28:10 -0000 Author: rwatson Date: Tue May 19 09:28:09 2009 New Revision: 192375 URL: http://svn.freebsd.org/changeset/base/192375 Log: Minor style tweak for netisr2 sysctls. Submitted by: bde Modified: projects/pnet/sys/net/netisr2.c Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Tue May 19 09:26:29 2009 (r192374) +++ projects/pnet/sys/net/netisr2.c Tue May 19 09:28:09 2009 (r192375) @@ -109,8 +109,8 @@ static struct rmlock netisr_rmlock; SYSCTL_NODE(_net, OID_AUTO, isr2, CTLFLAG_RW, 0, "netisr2"); static int netisr_direct = 1; /* Enable direct dispatch. */ -SYSCTL_INT(_net_isr2, OID_AUTO, direct, CTLFLAG_RW, &netisr_direct, 0, - "Direct dispatch"); +SYSCTL_INT(_net_isr2, OID_AUTO, direct, CTLFLAG_RW, + &netisr_direct, 0, "Direct dispatch"); /* * Allow the administrator to limit the number of threads (CPUs) to use for @@ -121,19 +121,21 @@ SYSCTL_INT(_net_isr2, OID_AUTO, direct, */ static int netisr_maxthreads = 1; /* Max number of threads. */ TUNABLE_INT("net.isr2.maxthreads", &netisr_maxthreads); -SYSCTL_INT(_net_isr2, OID_AUTO, maxthreads, CTLFLAG_RD, &netisr_maxthreads, - 0, "Use at most this many CPUs for netisr2 processing"); +SYSCTL_INT(_net_isr2, OID_AUTO, maxthreads, CTLFLAG_RD, + &netisr_maxthreads, 0, + "Use at most this many CPUs for netisr2 processing"); static int netisr_bindthreads = 0; /* Bind threads to CPUs. */ TUNABLE_INT("net.isr2.bindthreads", &netisr_bindthreads); -SYSCTL_INT(_net_isr2, OID_AUTO, bindthreads, CTLFLAG_RD, &netisr_bindthreads, - 0, "Bind netisr2 threads to CPUs."); +SYSCTL_INT(_net_isr2, OID_AUTO, bindthreads, CTLFLAG_RD, + &netisr_bindthreads, 0, "Bind netisr2 threads to CPUs."); #define NETISR_MAXQLIMIT 10240 static int netisr_maxqlimit = NETISR_MAXQLIMIT; TUNABLE_INT("net.isr2.bindthreads", &netisr_bindthreads); -SYSCTL_INT(_net_isr2, OID_AUTO, maxqlimit, CTLFLAG_RD, &netisr_maxqlimit, - 0, "Maximum netisr2 per-protocol, per-CPU queue depth."); +SYSCTL_INT(_net_isr2, OID_AUTO, maxqlimit, CTLFLAG_RD, + &netisr_maxqlimit, 0, + "Maximum netisr2 per-protocol, per-CPU queue depth."); /* * Each protocol is described by an instance of netisr_proto, which holds all From owner-svn-src-projects@FreeBSD.ORG Tue May 19 12:42:01 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D36EA10656BA; Tue, 19 May 2009 12:42:01 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C1D338FC1C; Tue, 19 May 2009 12:42:01 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JCg1Ed097800; Tue, 19 May 2009 12:42:01 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JCg19O097799; Tue, 19 May 2009 12:42:01 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191242.n4JCg19O097799@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 12:42:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192377 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 12:42:02 -0000 Author: rpaulo Date: Tue May 19 12:42:01 2009 New Revision: 192377 URL: http://svn.freebsd.org/changeset/base/192377 Log: Handle MBSS in gethtadjustflags(). Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_node.c Modified: projects/mesh11s/sys/net80211/ieee80211_node.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_node.c Tue May 19 12:10:48 2009 (r192376) +++ projects/mesh11s/sys/net80211/ieee80211_node.c Tue May 19 12:42:01 2009 (r192377) @@ -606,6 +606,7 @@ gethtadjustflags(struct ieee80211com *ic case IEEE80211_M_AHDEMO: case IEEE80211_M_HOSTAP: case IEEE80211_M_IBSS: + case IEEE80211_M_MBSS: flags |= ieee80211_htchanflags(vap->iv_bss->ni_chan); break; default: From owner-svn-src-projects@FreeBSD.ORG Tue May 19 14:10:14 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F18CE106564A; Tue, 19 May 2009 14:10:14 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF23D8FC13; Tue, 19 May 2009 14:10:14 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JEAE1M099852; Tue, 19 May 2009 14:10:14 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JEAEUo099851; Tue, 19 May 2009 14:10:14 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905191410.n4JEAEUo099851@svn.freebsd.org> From: Robert Watson Date: Tue, 19 May 2009 14:10:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192380 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 14:10:15 -0000 Author: rwatson Date: Tue May 19 14:10:14 2009 New Revision: 192380 URL: http://svn.freebsd.org/changeset/base/192380 Log: Read-locking of netisr2 during dispatch is no longer optional, so update comment. Add an XXXRW because assertions aren't implemented for rmlocks. Break out net.isr2.direct into two sysctls: net.isr2.direct_force to force direct dispatch to always be used even if work should be processed by a workstream, and net.isr2.direct_enable, which allows direct dispatch to be used. Document the three modes of operation we support using these flags. Add a new direct dispatch mode, "hybrid", in which work destined for the current CPU may directly dispatch, but work destined for other CPUs will be queued. Hybrid direct dispatch is only permitted if there is no pending work, the netisr isn't already running, and no other thread is directly dispatching the workstream, as these could lead to misordering. Add a new hybrid direct dispatch counter. Fix a bug in the tunable portion of the net.isr2.maxqlimit sysctl and document it. Make it a writable sysctl. Don't test queue limits during registration with an assert -- instead, cap and printf. Update stats printout in DDB. Default settings remain the same as in the current netisr code: force direct dispatch, create a single worker thread, and don't bind it to a specific CPU. Modified: projects/pnet/sys/net/netisr2.c Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Tue May 19 14:08:21 2009 (r192379) +++ projects/pnet/sys/net/netisr2.c Tue May 19 14:10:14 2009 (r192380) @@ -84,15 +84,13 @@ __FBSDID("$FreeBSD$"); * acquire a read lock while modifying the set of registered protocols to * prevent partially registered or unregistered protocols from being run. * - * We make per-packet use optional so that we can measure the performance - * impact of providing consistency against run-time registration and - * deregristration, which is a very uncommon event. - * * The following data structures and fields are protected by this lock: * * - The np array, including all fields of struct netisr_proto. * - The nws array, including all fields of struct netisr_worker. * - The nws_array array. + * + * XXXRW: rmlocks don't support assertions. */ static struct rmlock netisr_rmlock; #define NETISR_LOCK_INIT() rm_init(&netisr_rmlock, "netisr", 0) @@ -108,9 +106,31 @@ static struct rmlock netisr_rmlock; SYSCTL_NODE(_net, OID_AUTO, isr2, CTLFLAG_RW, 0, "netisr2"); -static int netisr_direct = 1; /* Enable direct dispatch. */ -SYSCTL_INT(_net_isr2, OID_AUTO, direct, CTLFLAG_RW, - &netisr_direct, 0, "Direct dispatch"); +/*- + * Three direct dispatch policies are supported: + * + * - Always defer: all work is scheduled for a netisr, regardless of context. + * + * - Always direct: if the executing context allows direct dispatch, always + * direct dispatch. + * + * - Hybrid: if the executing context allows direct dispatch, and we're + * running on the CPU the work would be done on, then direct dispatch if it + * wouldn't violate ordering constraints on the workstream. + * + * These policies are captured using two sysctls -- direct_enable allows + * direct dispatch, and direct_force forces direct dispatch if enabled. + * Notice that changing the global policy could lead to short periods of + * disordered processing, but this is considered acceptable as compared to + * the complexity of enforcing ordering during policy changes. + */ +static int netisr_direct_force = 1; /* Always direct dispatch. */ +SYSCTL_INT(_net_isr2, OID_AUTO, direct_force, CTLFLAG_RW, + &netisr_direct_force, 0, "Force direct dispatch"); + +static int netisr_direct_enable = 1; /* Enable direct dispatch. */ +SYSCTL_INT(_net_isr2, OID_AUTO, direct_enable, CTLFLAG_RW, + &netisr_direct_enable, 0, "Enable direct dispatch"); /* * Allow the administrator to limit the number of threads (CPUs) to use for @@ -130,10 +150,14 @@ TUNABLE_INT("net.isr2.bindthreads", &net SYSCTL_INT(_net_isr2, OID_AUTO, bindthreads, CTLFLAG_RD, &netisr_bindthreads, 0, "Bind netisr2 threads to CPUs."); -#define NETISR_MAXQLIMIT 10240 -static int netisr_maxqlimit = NETISR_MAXQLIMIT; -TUNABLE_INT("net.isr2.bindthreads", &netisr_bindthreads); -SYSCTL_INT(_net_isr2, OID_AUTO, maxqlimit, CTLFLAG_RD, +/* + * Limit per-workstream queues to at most net.isr2.maxqlimit, both for + * initial configuration and later modification using netisr2_setqlimit(). + */ +#define NETISR_DEFAULT_MAXQLIMIT 10240 +static int netisr_maxqlimit = NETISR_DEFAULT_MAXQLIMIT; +TUNABLE_INT("net.isr2.maxqlimit", &netisr_maxqlimit); +SYSCTL_INT(_net_isr2, OID_AUTO, maxqlimit, CTLFLAG_RW, &netisr_maxqlimit, 0, "Maximum netisr2 per-protocol, per-CPU queue depth."); @@ -181,9 +205,10 @@ struct netisr_work { * Statistics -- written unlocked, but mostly from curcpu. */ u_int64_t nw_dispatched; /* Number of direct dispatches. */ - u_int64_t nw_qdrops; /* Number of drops. */ - u_int64_t nw_queued; /* Number of enqueues. */ - u_int64_t nw_handled; /* Number passed into handler. */ + u_int64_t nw_hybrid_dispatched; /* "" hybrid dispatches. */ + u_int64_t nw_qdrops; /* "" drops. */ + u_int64_t nw_queued; /* "" enqueues. */ + u_int64_t nw_handled; /* "" handled in worker. */ }; /* @@ -232,7 +257,8 @@ static u_int nws_count; * Per-workstream flags. */ #define NWS_RUNNING 0x00000001 /* Currently running in a thread. */ -#define NWS_SIGNALED 0x00000002 /* Signal issued. */ +#define NWS_DISPATCHING 0x00000002 /* Currently being direct-dispatched. */ +#define NWS_SCHEDULED 0x00000004 /* Signal issued. */ /* * Synchronization for each workstream: a mutex protects all mutable fields @@ -328,9 +354,6 @@ netisr2_register(const struct netisr_han "%s", name)); KASSERT(nhp->nh_qlimit != 0, ("netisr2_register: nh_qlimit 0 for %s", name)); - KASSERT(nhp->nh_qlimit <= netisr_maxqlimit, - ("netisr2_register: nh_qlimit (%u) above max %u for %s", - nhp->nh_qlimit, netisr_maxqlimit, name)); /* * Initialize global and per-workstream protocol state. @@ -339,7 +362,13 @@ netisr2_register(const struct netisr_han np[proto].np_handler = nhp->nh_handler; np[proto].np_m2flow = nhp->nh_m2flow; np[proto].np_m2cpu = nhp->nh_m2cpu; - np[proto].np_qlimit = nhp->nh_qlimit; + if (nhp->nh_qlimit > netisr_maxqlimit) { + printf("netisr2_register: %s requested queue limit %u " + "capped to net.isr2.maxqlimit %u\n", name, + nhp->nh_qlimit, netisr_maxqlimit); + np[proto].np_qlimit = netisr_maxqlimit; + } else + np[proto].np_qlimit = nhp->nh_qlimit; np[proto].np_policy = nhp->nh_policy; for (i = 0; i < MAXCPU; i++) { npwp = &nws[i].nws_work[proto]; @@ -670,6 +699,8 @@ netisr2_process_workstream(struct netisr KASSERT(nwsp->nws_flags & NWS_RUNNING, ("netisr2_process_workstream: not running")); + KASSERT(!(nwsp->nws_flags & NWS_DISPATCHING), + ("netisr2_process_workstream: dispatching")); if (proto == NETISR_ALLPROT) { for (i = 0; i < NETISR_MAXPROT; i++) netisr2_process_workstream_proto(nwsp, i); @@ -679,7 +710,9 @@ netisr2_process_workstream(struct netisr /* * SWI handler for netisr2 -- processes prackets in a set of workstreams that - * it owns. + * it owns, woken up by calls to NWS_SIGNAL(). If this workstream is already + * being direct dispatched, go back to sleep and wait for the dispatching + * thread to wake us up again. */ static void swi_net(void *arg) @@ -691,28 +724,27 @@ swi_net(void *arg) NETISR_RLOCK(&tracker); NWS_LOCK(nwsp); + KASSERT(!(nwsp->nws_flags & NWS_RUNNING), ("swi_net: running")); + if (nwsp->nws_flags & NWS_DISPATCHING) + goto out; nwsp->nws_flags |= NWS_RUNNING; + nwsp->nws_flags &= ~NWS_SCHEDULED; while (nwsp->nws_pendingwork != 0) netisr2_process_workstream(nwsp, NETISR_ALLPROT); - nwsp->nws_flags &= ~(NWS_SIGNALED | NWS_RUNNING); + nwsp->nws_flags &= ~NWS_RUNNING; +out: NWS_UNLOCK(nwsp); NETISR_RUNLOCK(&tracker); } static int -netisr2_queue_internal(u_int proto, struct mbuf *m, u_int cpuid) +netisr2_queue_workstream(struct netisr_workstream *nwsp, + struct netisr_work *npwp, struct mbuf *m, int *dosignalp) { - struct netisr_workstream *nwsp; - struct netisr_work *npwp; - int dosignal, error; - NETISR_LOCK_ASSERT(); + NWS_LOCK_ASSERT(nwsp); - dosignal = 0; - error = 0; - nwsp = &nws[cpuid]; - npwp = &nwsp->nws_work[proto]; - NWS_LOCK(nwsp); + *dosignalp = 0; if (npwp->nw_len < npwp->nw_qlimit) { m->m_nextpkt = NULL; if (npwp->nw_head == NULL) { @@ -726,20 +758,36 @@ netisr2_queue_internal(u_int proto, stru if (npwp->nw_len > npwp->nw_watermark) npwp->nw_watermark = npwp->nw_len; nwsp->nws_pendingwork++; - if (!(nwsp->nws_flags & NWS_SIGNALED)) { - nwsp->nws_flags |= NWS_SIGNALED; - dosignal = 1; /* Defer until unlocked. */ + if (!(nwsp->nws_flags & (NWS_SCHEDULED | NWS_RUNNING))) { + nwsp->nws_flags |= NWS_SCHEDULED; + *dosignalp = 1; /* Defer until unlocked. */ } - error = 0; - } else - error = ENOBUFS; + npwp->nw_queued++; + return (0); + } else { + npwp->nw_qdrops++; + return (ENOBUFS); + } +} + +static int +netisr2_queue_internal(u_int proto, struct mbuf *m, u_int cpuid) +{ + struct netisr_workstream *nwsp; + struct netisr_work *npwp; + int dosignal, error; + + NETISR_LOCK_ASSERT(); + + dosignal = 0; + error = 0; + nwsp = &nws[cpuid]; + npwp = &nwsp->nws_work[proto]; + NWS_LOCK(nwsp); + error = netisr2_queue_workstream(nwsp, npwp, m, &dosignal); NWS_UNLOCK(nwsp); if (dosignal) NWS_SIGNAL(nwsp); - if (error) - npwp->nw_qdrops++; - else - npwp->nw_queued++; return (error); } @@ -781,14 +829,23 @@ netisr_queue(int proto, struct mbuf *m) return (netisr2_queue(proto, m)); } +/* + * Dispatch a packet for netisr2 processing, direct dispatch permitted by + * calling context. + */ int netisr2_dispatch_src(u_int proto, uintptr_t source, struct mbuf *m) { struct rm_priotracker tracker; struct netisr_workstream *nwsp; struct netisr_work *npwp; + int dosignal, error; + u_int cpuid; - if (!netisr_direct) + /* + * If direct dispatch is entirely disabled, fall back on queueing. + */ + if (!netisr_direct_enable) return (netisr2_queue_src(proto, source, m)); KASSERT(proto < NETISR_MAXPROT, @@ -798,15 +855,92 @@ netisr2_dispatch_src(u_int proto, uintpt ("netisr2_dispatch_src: invalid proto %u", proto)); /* - * Borrow current CPU's stats, even if there's no worker. + * If direct dispatch is forced, then unconditionally dispatch + * without a formal CPU selection. Borrow the current CPU's stats, + * even if there's no worker on it. + */ + if (netisr_direct_force) { + nwsp = &nws[curcpu]; + npwp = &nwsp->nws_work[proto]; + npwp->nw_dispatched++; + npwp->nw_handled++; + np[proto].np_handler(m); + NETISR_RUNLOCK(&tracker); + return (0); + } + + /* + * Otherwise, we execute in a hybrid mode where we will try to direct + * dispatch if we're on the right CPU and the netisr worker isn't + * already running. */ - nwsp = &nws[curcpu]; + m = netisr2_selectcpu(&np[proto], source, m, &cpuid); + if (m == NULL) { + NETISR_RUNLOCK(&tracker); + return (ENOBUFS); + } + sched_pin(); + if (cpuid != curcpu) + goto queue_fallback; + nwsp = &nws[cpuid]; npwp = &nwsp->nws_work[proto]; - npwp->nw_dispatched++; - npwp->nw_handled++; + + /*- + * We are willing to direct dispatch only if three conditions hold: + * + * (1) The netisr worker isn't already running, + * (2) Another thread isn't already directly dispatching, and + * (3) The netisr hasn't already been woken up. + */ + NWS_LOCK(nwsp); + if (nwsp->nws_flags & (NWS_RUNNING | NWS_DISPATCHING | NWS_SCHEDULED)) { + error = netisr2_queue_workstream(nwsp, npwp, m, &dosignal); + NWS_UNLOCK(nws); + if (dosignal) + NWS_SIGNAL(nwsp); + sched_unpin(); + NETISR_RUNLOCK(&tracker); + return (error); + } + + /* + * The current thread is now effectively the netisr worker, so set + * the dispatching flag to prevent concurrent processing of the + * stream from another thread (even the netisr worker), which could + * otherwise lead to effective misordering of the stream. + */ + nwsp->nws_flags |= NWS_DISPATCHING; + NWS_UNLOCK(nwsp); np[proto].np_handler(m); + NWS_LOCK(nwsp); + nwsp->nws_flags &= ~NWS_DISPATCHING; + npwp->nw_handled++; + npwp->nw_hybrid_dispatched++; + + /* + * If other work was enqueued by another thread while we were direct + * dispatching, we need to signal the netisr worker to do that work. + * In the future, we might want to do some of that work in the + * current thread, rather than trigger further context switches. If + * so, we'll want to establish a reasonable bound on the work done in + * the "borrowed" context. + */ + if (nwsp->nws_pendingwork != 0) { + nwsp->nws_flags |= NWS_SCHEDULED; + dosignal = 1; + } else + dosignal = 0; + NWS_UNLOCK(nwsp); + if (dosignal) + NWS_SIGNAL(nwsp); NETISR_RUNLOCK(&tracker); return (0); + +queue_fallback: + error = netisr2_queue_internal(proto, m, cpuid); + sched_unpin(); + NETISR_RUNLOCK(&tracker); + return (error); } int @@ -907,8 +1041,9 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 struct netisr_work *nwp; int cpu, first, proto; - db_printf("%6s %6s %6s %6s %6s %6s %8s %8s %8s %8s\n", "CPU", "Pend", - "Proto", "Len", "WMark", "Max", "Disp", "Drop", "Queue", "Handle"); + db_printf("%3s %5s %6s %5s %5s %5s %8s %8s %8s %8s %8s\n", "CPU", + "Pend", "Proto", "Len", "WMark", "Max", "Disp", "HDisp", "Drop", + "Queue", "Handle"); for (cpu = 0; cpu < MAXCPU; cpu++) { nwsp = &nws[cpu]; if (nwsp->nws_intr_event == NULL) @@ -919,16 +1054,16 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 continue; nwp = &nwsp->nws_work[proto]; if (first) { - db_printf("%6d %6d ", cpu, + db_printf("%3d %5d ", cpu, nwsp->nws_pendingwork); first = 0; } else - db_printf("%6s %6s ", "", ""); - db_printf("%6s %6d %6d %6d %8ju %8ju %8ju %8ju\n", + db_printf("%3s %5s ", "", ""); + db_printf("%6s %5d %5d %5d %8ju %8ju %8ju %8ju %8ju\n", np[proto].np_name, nwp->nw_len, nwp->nw_watermark, nwp->nw_qlimit, - nwp->nw_dispatched, nwp->nw_qdrops, - nwp->nw_queued, nwp->nw_handled); + nwp->nw_dispatched, nwp->nw_hybrid_dispatched, + nwp->nw_qdrops, nwp->nw_queued, nwp->nw_handled); } } } From owner-svn-src-projects@FreeBSD.ORG Tue May 19 15:53:07 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F17961065676; Tue, 19 May 2009 15:53:07 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E0A578FC12; Tue, 19 May 2009 15:53:07 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JFr7nL002463; Tue, 19 May 2009 15:53:07 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JFr7hG002460; Tue, 19 May 2009 15:53:07 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191553.n4JFr7hG002460@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 15:53:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192389 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 15:53:08 -0000 Author: rpaulo Date: Tue May 19 15:53:07 2009 New Revision: 192389 URL: http://svn.freebsd.org/changeset/base/192389 Log: Remove the bogus decrease of datalen and pad meshcntl struct instead. This is a temporary hack but makes packets flow in the mesh. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h projects/mesh11s/sys/net80211/ieee80211_output.c Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.h Tue May 19 15:50:36 2009 (r192388) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.h Tue May 19 15:53:07 2009 (r192389) @@ -316,6 +316,7 @@ struct ieee80211_meshcntl { uint8_t mc_flags; uint8_t mc_ttl; uint32_t mc_seq; + uint16_t _pad; /* more mesh addresses follow */ } __packed; Modified: projects/mesh11s/sys/net80211/ieee80211_output.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_output.c Tue May 19 15:50:36 2009 (r192388) +++ projects/mesh11s/sys/net80211/ieee80211_output.c Tue May 19 15:53:07 2009 (r192389) @@ -1331,7 +1331,7 @@ ieee80211_encap(struct ieee80211vap *vap goto bad; } datalen = m->m_pkthdr.len; /* NB: w/o 802.11 header */ - hdrspace -= 2; + M_PREPEND(m, hdrspace, M_DONTWAIT); if (m == NULL) { vap->iv_stats.is_tx_nobuf++; From owner-svn-src-projects@FreeBSD.ORG Tue May 19 15:56:27 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF84B106564A; Tue, 19 May 2009 15:56:27 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE2238FC14; Tue, 19 May 2009 15:56:27 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JFuRvI002582; Tue, 19 May 2009 15:56:27 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JFuR4i002581; Tue, 19 May 2009 15:56:27 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191556.n4JFuR4i002581@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 15:56:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192390 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 15:56:28 -0000 Author: rpaulo Date: Tue May 19 15:56:27 2009 New Revision: 192390 URL: http://svn.freebsd.org/changeset/base/192390 Log: Add next hop to the node struct in preparation for HWMP implementation. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_node.h Modified: projects/mesh11s/sys/net80211/ieee80211_node.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_node.h Tue May 19 15:53:07 2009 (r192389) +++ projects/mesh11s/sys/net80211/ieee80211_node.h Tue May 19 15:56:27 2009 (r192390) @@ -188,6 +188,7 @@ struct ieee80211_node { struct callout ni_mtimer; /* mesh timer */ uint8_t ni_mrcount; /* mesh retry counter */ uint8_t ni_mtimerval; /* mesh timer value */ + uint8_t ni_mnxthop[IEEE80211_ADDR_LEN]; /* 11n state */ uint16_t ni_htcap; /* HT capabilities */ From owner-svn-src-projects@FreeBSD.ORG Tue May 19 15:57:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D13771065670; Tue, 19 May 2009 15:57:05 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF87A8FC29; Tue, 19 May 2009 15:57:05 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JFv5md002631; Tue, 19 May 2009 15:57:05 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JFv5sO002629; Tue, 19 May 2009 15:57:05 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191557.n4JFv5sO002629@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 15:57:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192391 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 15:57:06 -0000 Author: rpaulo Date: Tue May 19 15:57:05 2009 New Revision: 192391 URL: http://svn.freebsd.org/changeset/base/192391 Log: Placeholders for HWMP implementation. Sponsored by: The FreeBSD Foundation Added: projects/mesh11s/sys/net80211/ieee80211_hwmp.c projects/mesh11s/sys/net80211/ieee80211_hwmp.h Added: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Tue May 19 15:57:05 2009 (r192391) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2009 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Rui Paulo 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: + * 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 +#ifdef __FreeBSD__ +__FBSDID("$FreeBSD$"); +#endif + +/* + * IEEE 802.11s Hybrid Wireless Mesh Protocol. + */ +#include "opt_inet.h" +#include "opt_wlan.h" Added: projects/mesh11s/sys/net80211/ieee80211_hwmp.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Tue May 19 15:57:05 2009 (r192391) @@ -0,0 +1,34 @@ +/*- + * Copyright (c) 2009 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Rui Paulo 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: + * 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 _NET80211_IEEE80211_HWMP_H_ +#define _NET80211_IEEE80211_HWMP_H_ + +#endif /* _NET80211_IEEE80211_HWMP_H_ */ From owner-svn-src-projects@FreeBSD.ORG Tue May 19 15:58:06 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48D7D1065674; Tue, 19 May 2009 15:58:06 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 387308FC1D; Tue, 19 May 2009 15:58:06 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JFw6l0002686; Tue, 19 May 2009 15:58:06 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JFw6tH002685; Tue, 19 May 2009 15:58:06 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191558.n4JFw6tH002685@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 15:58:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192392 - projects/mesh11s/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 15:58:06 -0000 Author: rpaulo Date: Tue May 19 15:58:05 2009 New Revision: 192392 URL: http://svn.freebsd.org/changeset/base/192392 Log: Add ieee80211_hwmp.c Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/conf/files Modified: projects/mesh11s/sys/conf/files ============================================================================== --- projects/mesh11s/sys/conf/files Tue May 19 15:57:05 2009 (r192391) +++ projects/mesh11s/sys/conf/files Tue May 19 15:58:05 2009 (r192392) @@ -2211,6 +2211,7 @@ net80211/ieee80211_dfs.c optional wlan net80211/ieee80211_freebsd.c optional wlan net80211/ieee80211_hostap.c optional wlan net80211/ieee80211_ht.c optional wlan +net80211/ieee80211_hwmp.c optional wlan net80211/ieee80211_input.c optional wlan net80211/ieee80211_ioctl.c optional wlan net80211/ieee80211_mesh.c optional wlan From owner-svn-src-projects@FreeBSD.ORG Tue May 19 17:04:05 2009 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EA04106566B; Tue, 19 May 2009 17:04:05 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 3B65D8FC24; Tue, 19 May 2009 17:04:05 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id n4JH2rgG038033; Tue, 19 May 2009 11:02:53 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Tue, 19 May 2009 11:03:01 -0600 (MDT) Message-Id: <20090519.110301.-646221483.imp@bsdimp.com> To: gonzo@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <200905190251.n4J2pU1N082603@svn.freebsd.org> References: <200905190251.n4J2pU1N082603@svn.freebsd.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r192365 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 17:04:05 -0000 In message: <200905190251.n4J2pU1N082603@svn.freebsd.org> Oleksandr Tymoshenko writes: : Author: gonzo : Date: Tue May 19 02:51:30 2009 : New Revision: 192365 : URL: http://svn.freebsd.org/changeset/base/192365 : : Log: : - ar71xx increases Count value every two cycles : : Modified: : projects/mips/sys/mips/atheros/ar71xx_machdep.c : : Modified: projects/mips/sys/mips/atheros/ar71xx_machdep.c : ============================================================================== : --- projects/mips/sys/mips/atheros/ar71xx_machdep.c Tue May 19 02:43:21 2009 (r192364) : +++ projects/mips/sys/mips/atheros/ar71xx_machdep.c Tue May 19 02:51:30 2009 (r192365) : @@ -157,7 +157,7 @@ platform_start(__register_t a0 __unused, : div = ((pll_config >> PLL_CPU_DIV_SEL_SHIFT) & PLL_CPU_DIV_SEL_MASK) : + 1; : platform_counter_freq = freq / div; : - mips_timer_init_params(platform_counter_freq, 0); : + mips_timer_init_params(platform_counter_freq, 1); The second argument is bogus. This can be determined by one of the CONFIG registers. Warner From owner-svn-src-projects@FreeBSD.ORG Tue May 19 17:10:58 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3632910656CC; Tue, 19 May 2009 17:10:58 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0AFFF8FC27; Tue, 19 May 2009 17:10:58 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JHAvAi004196; Tue, 19 May 2009 17:10:57 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JHAv3Y004195; Tue, 19 May 2009 17:10:57 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191710.n4JHAv3Y004195@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 17:10:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192393 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 17:10:58 -0000 Author: rpaulo Date: Tue May 19 17:10:57 2009 New Revision: 192393 URL: http://svn.freebsd.org/changeset/base/192393 Log: Parse path replies and path error IEs. Ignore data frames with ni pointing to us. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Tue May 19 15:58:05 2009 (r192392) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Tue May 19 17:10:57 2009 (r192393) @@ -266,6 +266,8 @@ mesh_input(struct ieee80211_node *ni, st switch (type) { case IEEE80211_FC0_TYPE_DATA: + if (ni == vap->iv_bss) + goto out; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "%s", "received data frame"); if (ni->ni_peerstate != IEEE80211_NODE_MESH_ESTABLISHED) { @@ -628,10 +630,12 @@ mesh_recv_action(struct ieee80211_node * struct ieee80211vap *vap = ni->ni_vap; struct ieee80211_action *ia; struct ieee80211_frame *wh; - struct ieee80211_meshid_ie *meshid; - struct ieee80211_meshconf_ie *meshconf; - struct ieee80211_meshpeer_ie *meshpeer; - struct ieee80211_meshpreq_ie *meshpreq; + struct ieee80211_meshid_ie *meshid = NULL; + struct ieee80211_meshconf_ie *meshconf = NULL; + struct ieee80211_meshpeer_ie *meshpeer = NULL; + struct ieee80211_meshpreq_ie *meshpreq = NULL; + struct ieee80211_meshprep_ie *meshprep = NULL; + struct ieee80211_meshperr_ie *meshperr = NULL; uint8_t *frm, *efrm; union ieee80211_send_action_args vargs; @@ -647,10 +651,7 @@ mesh_recv_action(struct ieee80211_node * if (ni == vap->iv_bss) { return; } - meshid = NULL; - meshpeer = NULL; - meshconf = NULL; - meshpreq = NULL; + while (efrm - frm > 1) { IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); switch (*frm) { @@ -679,6 +680,20 @@ mesh_recv_action(struct ieee80211_node * meshpreq->preq_metric = LE_READ_4(&meshpreq->preq_metric); break; + case IEEE80211_ELEMID_MESHPREP: + meshprep = (struct ieee80211_meshprep_ie *) frm; + meshprep->prep_targetseq = + LE_READ_4(&meshprep->prep_targetseq); + meshprep->prep_lifetime = + LE_READ_4(&meshprep->prep_lifetime); + meshprep->prep_metric = + LE_READ_4(&meshprep->prep_metric); + meshprep->prep_origseq = + LE_READ_4(&meshprep->prep_origseq); + break; + case IEEE80211_ELEMID_MESHPERR: + meshperr = (struct ieee80211_meshperr_ie *) frm; + break; } frm += frm[1] + 2; } From owner-svn-src-projects@FreeBSD.ORG Tue May 19 17:14:52 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D5491065674; Tue, 19 May 2009 17:14:52 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8C89C8FC08; Tue, 19 May 2009 17:14:52 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JHEqcX004318; Tue, 19 May 2009 17:14:52 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JHEqTZ004317; Tue, 19 May 2009 17:14:52 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191714.n4JHEqTZ004317@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 17:14:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192394 - projects/mesh11s/sbin/ifconfig X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 17:14:52 -0000 Author: rpaulo Date: Tue May 19 17:14:52 2009 New Revision: 192394 URL: http://svn.freebsd.org/changeset/base/192394 Log: Use a similar style for printing mesh link state. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sbin/ifconfig/ifieee80211.c Modified: projects/mesh11s/sbin/ifconfig/ifieee80211.c ============================================================================== --- projects/mesh11s/sbin/ifconfig/ifieee80211.c Tue May 19 17:10:57 2009 (r192393) +++ projects/mesh11s/sbin/ifconfig/ifieee80211.c Tue May 19 17:14:52 2009 (r192394) @@ -3260,13 +3260,12 @@ list_stations(int s) , getflags(si->isi_state) ); printies(cp + si->isi_ie_off, si->isi_ie_len, 24); - printmimo(&si->isi_mimo); - printf("\n"); if (verbose && opmode == IEEE80211_M_MBSS) - printf("\tMesh Peer ID: 0x%x, Local ID: 0x%x, " - "Link state: %s\n", si->isi_peerid, - si->isi_localid, + printf(" MESHLINK", si->isi_peerid, si->isi_localid, mesh_linkstate_string(si->isi_peerstate)); + printmimo(&si->isi_mimo); + printf("\n"); cp += si->isi_len, len -= si->isi_len; } while (len >= sizeof(struct ieee80211req_sta_info)); } From owner-svn-src-projects@FreeBSD.ORG Tue May 19 18:48:12 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0F871065672; Tue, 19 May 2009 18:48:12 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8B9A28FC26; Tue, 19 May 2009 18:48:12 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JImCCX006882; Tue, 19 May 2009 18:48:12 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JImBim006856; Tue, 19 May 2009 18:48:11 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905191848.n4JImBim006856@svn.freebsd.org> From: Rui Paulo Date: Tue, 19 May 2009 18:48:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192403 - in projects/mesh11s: . bin/pkill bin/ps contrib/bind9 contrib/cpio contrib/csup contrib/file contrib/file/Magdir contrib/file/tests contrib/gdb contrib/gdtoa contrib/less cont... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 18:48:13 -0000 Author: rpaulo Date: Tue May 19 18:48:10 2009 New Revision: 192403 URL: http://svn.freebsd.org/changeset/base/192403 Log: MFC 191961:192401 Added: projects/mesh11s/contrib/file/Magdir/kml - copied unchanged from r192401, head/contrib/file/Magdir/kml projects/mesh11s/contrib/file/strlcat.c - copied unchanged from r192401, head/contrib/file/strlcat.c projects/mesh11s/contrib/file/strlcpy.c - copied unchanged from r192401, head/contrib/file/strlcpy.c projects/mesh11s/share/man/man4/bwi.4 - copied unchanged from r192401, head/share/man/man4/bwi.4 projects/mesh11s/sys/amd64/amd64/mca.c - copied unchanged from r192401, head/sys/amd64/amd64/mca.c projects/mesh11s/sys/amd64/include/mca.h - copied unchanged from r192401, head/sys/amd64/include/mca.h projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c - copied unchanged from r192401, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c - copied unchanged from r192401, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c - copied unchanged from r192401, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c projects/mesh11s/sys/dev/usb/wlan/if_upgt.c - copied unchanged from r192401, head/sys/dev/usb/wlan/if_upgt.c projects/mesh11s/sys/dev/usb/wlan/if_upgtvar.h - copied unchanged from r192401, head/sys/dev/usb/wlan/if_upgtvar.h projects/mesh11s/sys/i386/i386/mca.c - copied unchanged from r192401, head/sys/i386/i386/mca.c projects/mesh11s/sys/i386/include/mca.h - copied unchanged from r192401, head/sys/i386/include/mca.h projects/mesh11s/sys/modules/usb/upgt/ - copied from r192401, head/sys/modules/usb/upgt/ projects/mesh11s/sys/pc98/include/mca.h - copied unchanged from r192401, head/sys/pc98/include/mca.h projects/mesh11s/sys/powerpc/aim/platform_chrp.c - copied unchanged from r192401, head/sys/powerpc/aim/platform_chrp.c projects/mesh11s/sys/powerpc/booke/platform_bare.c - copied unchanged from r192401, head/sys/powerpc/booke/platform_bare.c projects/mesh11s/sys/powerpc/include/platform.h - copied unchanged from r192401, head/sys/powerpc/include/platform.h projects/mesh11s/sys/powerpc/include/platformvar.h - copied unchanged from r192401, head/sys/powerpc/include/platformvar.h projects/mesh11s/sys/powerpc/powerpc/platform.c - copied unchanged from r192401, head/sys/powerpc/powerpc/platform.c projects/mesh11s/sys/powerpc/powerpc/platform_if.m - copied unchanged from r192401, head/sys/powerpc/powerpc/platform_if.m projects/mesh11s/usr.bin/perror/ - copied from r192401, head/usr.bin/perror/ Deleted: projects/mesh11s/contrib/file/config.guess projects/mesh11s/contrib/file/config.sub projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c projects/mesh11s/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c projects/mesh11s/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c projects/mesh11s/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c projects/mesh11s/sys/legacy/dev/usb/if_upgt.c projects/mesh11s/sys/legacy/dev/usb/if_upgtvar.h projects/mesh11s/sys/legacy/dev/usb/usb_ethersubr.c projects/mesh11s/sys/legacy/dev/usb/usb_ethersubr.h projects/mesh11s/sys/powerpc/include/powerpc.h Modified: projects/mesh11s/ (props changed) projects/mesh11s/bin/pkill/pkill.1 projects/mesh11s/bin/pkill/pkill.c projects/mesh11s/bin/ps/print.c projects/mesh11s/bin/ps/ps.1 projects/mesh11s/bin/ps/ps.c projects/mesh11s/bin/ps/ps.h projects/mesh11s/contrib/bind9/ (props changed) projects/mesh11s/contrib/cpio/ (props changed) projects/mesh11s/contrib/csup/ (props changed) projects/mesh11s/contrib/file/ (props changed) projects/mesh11s/contrib/file/ChangeLog projects/mesh11s/contrib/file/Magdir/cafebabe projects/mesh11s/contrib/file/Magdir/compress projects/mesh11s/contrib/file/Magdir/database projects/mesh11s/contrib/file/Magdir/erlang projects/mesh11s/contrib/file/Magdir/filesystems projects/mesh11s/contrib/file/Magdir/fonts projects/mesh11s/contrib/file/Magdir/fortran projects/mesh11s/contrib/file/Magdir/linux projects/mesh11s/contrib/file/Magdir/lisp projects/mesh11s/contrib/file/Magdir/python projects/mesh11s/contrib/file/Magdir/troff projects/mesh11s/contrib/file/Magdir/windows projects/mesh11s/contrib/file/Makefile.am projects/mesh11s/contrib/file/Makefile.in projects/mesh11s/contrib/file/README projects/mesh11s/contrib/file/acinclude.m4 projects/mesh11s/contrib/file/aclocal.m4 projects/mesh11s/contrib/file/apprentice.c projects/mesh11s/contrib/file/apptype.c projects/mesh11s/contrib/file/cdf.c projects/mesh11s/contrib/file/cdf.h projects/mesh11s/contrib/file/cdf_time.c projects/mesh11s/contrib/file/compress.c projects/mesh11s/contrib/file/config.h.in projects/mesh11s/contrib/file/configure projects/mesh11s/contrib/file/configure.ac projects/mesh11s/contrib/file/file.c projects/mesh11s/contrib/file/file.h projects/mesh11s/contrib/file/funcs.c projects/mesh11s/contrib/file/getopt_long.c projects/mesh11s/contrib/file/magic.c projects/mesh11s/contrib/file/patchlevel.h projects/mesh11s/contrib/file/readcdf.c projects/mesh11s/contrib/file/softmagic.c projects/mesh11s/contrib/file/tests/Makefile.in projects/mesh11s/contrib/gdb/ (props changed) projects/mesh11s/contrib/gdtoa/ (props changed) projects/mesh11s/contrib/less/ (props changed) projects/mesh11s/contrib/libpcap/ (props changed) projects/mesh11s/contrib/ncurses/ (props changed) projects/mesh11s/contrib/netcat/ (props changed) projects/mesh11s/contrib/ntp/ (props changed) projects/mesh11s/contrib/openbsm/ (props changed) projects/mesh11s/contrib/openpam/ (props changed) projects/mesh11s/contrib/pf/ (props changed) projects/mesh11s/contrib/sendmail/ (props changed) projects/mesh11s/contrib/tcpdump/ (props changed) projects/mesh11s/contrib/top/ (props changed) projects/mesh11s/contrib/top/install-sh (props changed) projects/mesh11s/contrib/wpa/ (props changed) projects/mesh11s/crypto/openssh/ (props changed) projects/mesh11s/crypto/openssl/ (props changed) projects/mesh11s/etc/defaults/rc.conf projects/mesh11s/etc/devd.conf projects/mesh11s/etc/namedb/named.conf projects/mesh11s/etc/rc.d/named projects/mesh11s/etc/rc.d/tmp projects/mesh11s/lib/libarchive/archive_read_disk_entry_from_file.c projects/mesh11s/lib/libbluetooth/hci.c projects/mesh11s/lib/libc/ (props changed) projects/mesh11s/lib/libc/gen/getcap.c projects/mesh11s/lib/libc/stdio/asprintf.c (props changed) projects/mesh11s/lib/libc/stdtime/ (props changed) projects/mesh11s/lib/libc/string/ffsll.c (props changed) projects/mesh11s/lib/libc/string/flsll.c (props changed) projects/mesh11s/lib/libc/string/wcpcpy.c (props changed) projects/mesh11s/lib/libc/string/wcpncpy.c (props changed) projects/mesh11s/lib/libgeom/Makefile projects/mesh11s/lib/libmemstat/memstat_malloc.c projects/mesh11s/lib/libthr/thread/thr_fork.c projects/mesh11s/lib/libusb/ (props changed) projects/mesh11s/lib/libusb/libusb.3 (props changed) projects/mesh11s/lib/libusb/usb.h (props changed) projects/mesh11s/lib/libutil/ (props changed) projects/mesh11s/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/mesh11s/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/mesh11s/sbin/ (props changed) projects/mesh11s/sbin/geom/core/geom.8 projects/mesh11s/sbin/ipfw/ (props changed) projects/mesh11s/share/man/man4/Makefile projects/mesh11s/share/man/man4/ath.4 projects/mesh11s/share/man/man4/bge.4 projects/mesh11s/share/man/man4/geom.4 projects/mesh11s/share/man/man4/hifn.4 projects/mesh11s/share/man/man4/md.4 projects/mesh11s/share/man/man4/ubsec.4 projects/mesh11s/share/man/man4/uchcom.4 projects/mesh11s/share/man/man4/urtw.4 projects/mesh11s/share/man/man4/wlan.4 projects/mesh11s/share/man/man5/fstab.5 projects/mesh11s/share/man/man5/rc.conf.5 projects/mesh11s/share/man/man9/bus_dma.9 projects/mesh11s/share/man/man9/sbuf.9 projects/mesh11s/share/zoneinfo/ (props changed) projects/mesh11s/sys/ (props changed) projects/mesh11s/sys/amd64/amd64/machdep.c projects/mesh11s/sys/amd64/amd64/mp_machdep.c projects/mesh11s/sys/amd64/amd64/pmap.c projects/mesh11s/sys/amd64/amd64/trap.c projects/mesh11s/sys/amd64/conf/GENERIC.hints projects/mesh11s/sys/amd64/include/param.h projects/mesh11s/sys/amd64/include/smp.h projects/mesh11s/sys/amd64/include/specialreg.h projects/mesh11s/sys/amd64/include/vmparam.h projects/mesh11s/sys/amd64/include/xen/ (props changed) projects/mesh11s/sys/amd64/linux32/linux.h projects/mesh11s/sys/amd64/linux32/linux32_sysvec.c projects/mesh11s/sys/amd64/pci/pci_cfgreg.c projects/mesh11s/sys/arm/arm/machdep.c projects/mesh11s/sys/arm/at91/at91.c projects/mesh11s/sys/arm/at91/at91_spi.c projects/mesh11s/sys/arm/at91/if_ate.c projects/mesh11s/sys/boot/forth/loader.conf projects/mesh11s/sys/boot/i386/zfsboot/zfsboot.c projects/mesh11s/sys/boot/zfs/zfsimpl.c projects/mesh11s/sys/cam/cam_periph.c projects/mesh11s/sys/cam/scsi/scsi_pass.c projects/mesh11s/sys/cam/scsi/scsi_sg.c projects/mesh11s/sys/cddl/boot/zfs/README projects/mesh11s/sys/cddl/boot/zfs/zfsimpl.h projects/mesh11s/sys/cddl/boot/zfs/zfssubr.c projects/mesh11s/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c projects/mesh11s/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/mesh11s/sys/cddl/compat/opensolaris/sys/mutex.h projects/mesh11s/sys/cddl/compat/opensolaris/sys/rwlock.h projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c (props changed) projects/mesh11s/sys/compat/linux/linux_mib.c projects/mesh11s/sys/compat/linux/linux_mib.h projects/mesh11s/sys/compat/linux/linux_misc.c projects/mesh11s/sys/compat/linux/linux_misc.h projects/mesh11s/sys/compat/linux/linux_socket.c projects/mesh11s/sys/compat/linux/linux_socket.h projects/mesh11s/sys/compat/ndis/kern_windrv.c projects/mesh11s/sys/compat/ndis/subr_ndis.c projects/mesh11s/sys/conf/files projects/mesh11s/sys/conf/files.amd64 projects/mesh11s/sys/conf/files.i386 projects/mesh11s/sys/conf/files.pc98 projects/mesh11s/sys/conf/files.powerpc projects/mesh11s/sys/contrib/altq/altq/altq_subr.c projects/mesh11s/sys/contrib/dev/acpica/ (props changed) projects/mesh11s/sys/contrib/pf/ (props changed) projects/mesh11s/sys/dev/acpi_support/acpi_ibm.c projects/mesh11s/sys/dev/acpi_support/acpi_sony.c projects/mesh11s/sys/dev/aic/aic.c projects/mesh11s/sys/dev/ata/ata-pci.h projects/mesh11s/sys/dev/ata/ata-usb.c (props changed) projects/mesh11s/sys/dev/ata/atapi-cam.c projects/mesh11s/sys/dev/ata/chipsets/ata-acard.c projects/mesh11s/sys/dev/ata/chipsets/ata-promise.c projects/mesh11s/sys/dev/ath/ath_hal/ah.c projects/mesh11s/sys/dev/ath/ath_hal/ah.h projects/mesh11s/sys/dev/ath/ath_hal/ah_internal.h projects/mesh11s/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/mesh11s/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/mesh11s/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/mesh11s/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/mesh11s/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/mesh11s/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/mesh11s/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/mesh11s/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/mesh11s/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/mesh11s/sys/dev/ath/if_ath_pci.c projects/mesh11s/sys/dev/bce/if_bce.c projects/mesh11s/sys/dev/bge/if_bge.c projects/mesh11s/sys/dev/bwi/bwimac.c projects/mesh11s/sys/dev/bwi/bwiphy.c projects/mesh11s/sys/dev/bwi/if_bwi_pci.c projects/mesh11s/sys/dev/bwi/if_bwireg.h projects/mesh11s/sys/dev/ciss/ciss.c projects/mesh11s/sys/dev/cxgb/ (props changed) projects/mesh11s/sys/dev/cxgb/cxgb_multiq.c projects/mesh11s/sys/dev/e1000/if_em.c projects/mesh11s/sys/dev/ed/if_ed.c projects/mesh11s/sys/dev/ep/if_ep.c projects/mesh11s/sys/dev/flash/at45d.c projects/mesh11s/sys/dev/iir/iir_pci.c projects/mesh11s/sys/dev/isp/isp_freebsd.c projects/mesh11s/sys/dev/ixgb/if_ixgb.c projects/mesh11s/sys/dev/lge/if_lge.c projects/mesh11s/sys/dev/lmc/if_lmc.c projects/mesh11s/sys/dev/malo/if_malo_pci.c projects/mesh11s/sys/dev/md/md.c projects/mesh11s/sys/dev/nge/if_nge.c projects/mesh11s/sys/dev/nge/if_ngereg.h projects/mesh11s/sys/dev/snp/snp.c projects/mesh11s/sys/dev/sound/usb/uaudio.c (props changed) projects/mesh11s/sys/dev/sound/usb/uaudio.h (props changed) projects/mesh11s/sys/dev/sound/usb/uaudio_pcm.c (props changed) projects/mesh11s/sys/dev/sound/usb/uaudioreg.h (props changed) projects/mesh11s/sys/dev/spibus/spibus.c projects/mesh11s/sys/dev/syscons/syscons.c projects/mesh11s/sys/dev/usb/README.TXT (props changed) projects/mesh11s/sys/dev/usb/bluetooth/TODO.TXT (props changed) projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt.c (props changed) projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt_var.h (props changed) projects/mesh11s/sys/dev/usb/bluetooth/ubtbcmfw.c (props changed) projects/mesh11s/sys/dev/usb/controller/at91dci.c (props changed) projects/mesh11s/sys/dev/usb/controller/at91dci.h (props changed) projects/mesh11s/sys/dev/usb/controller/at91dci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci.c (props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci.h (props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/ehci.h (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_ixp4xx.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_mbus.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg.c (props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg.h (props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ohci.c (props changed) projects/mesh11s/sys/dev/usb/controller/ohci.h (props changed) projects/mesh11s/sys/dev/usb/controller/ohci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ohci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/uhci.c (props changed) projects/mesh11s/sys/dev/usb/controller/uhci.h (props changed) projects/mesh11s/sys/dev/usb/controller/uhci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/usb_controller.c (props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci.c (props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci.h (props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/input/uhid.c (props changed) projects/mesh11s/sys/dev/usb/input/ukbd.c (props changed) projects/mesh11s/sys/dev/usb/input/ums.c (props changed) projects/mesh11s/sys/dev/usb/input/usb_rdesc.h (props changed) projects/mesh11s/sys/dev/usb/misc/udbp.c (props changed) projects/mesh11s/sys/dev/usb/misc/udbp.h (props changed) projects/mesh11s/sys/dev/usb/misc/ufm.c (props changed) projects/mesh11s/sys/dev/usb/net/if_aue.c (props changed) projects/mesh11s/sys/dev/usb/net/if_auereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_axe.c (props changed) projects/mesh11s/sys/dev/usb/net/if_axereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_cdce.c (props changed) projects/mesh11s/sys/dev/usb/net/if_cdcereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_cue.c (props changed) projects/mesh11s/sys/dev/usb/net/if_cuereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_kue.c (props changed) projects/mesh11s/sys/dev/usb/net/if_kuefw.h (props changed) projects/mesh11s/sys/dev/usb/net/if_kuereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_rue.c (props changed) projects/mesh11s/sys/dev/usb/net/if_ruereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_udav.c (props changed) projects/mesh11s/sys/dev/usb/net/if_udavreg.h (props changed) projects/mesh11s/sys/dev/usb/net/usb_ethernet.c (props changed) projects/mesh11s/sys/dev/usb/net/usb_ethernet.h (props changed) projects/mesh11s/sys/dev/usb/quirk/usb_quirk.c (props changed) projects/mesh11s/sys/dev/usb/quirk/usb_quirk.h (props changed) projects/mesh11s/sys/dev/usb/serial/u3g.c (props changed) projects/mesh11s/sys/dev/usb/serial/uark.c (props changed) projects/mesh11s/sys/dev/usb/serial/ubsa.c (props changed) projects/mesh11s/sys/dev/usb/serial/ubser.c (props changed) projects/mesh11s/sys/dev/usb/serial/uchcom.c (props changed) projects/mesh11s/sys/dev/usb/serial/ucycom.c (props changed) projects/mesh11s/sys/dev/usb/serial/ufoma.c (props changed) projects/mesh11s/sys/dev/usb/serial/uftdi.c (props changed) projects/mesh11s/sys/dev/usb/serial/uftdi_reg.h (props changed) projects/mesh11s/sys/dev/usb/serial/ugensa.c (props changed) projects/mesh11s/sys/dev/usb/serial/uipaq.c (props changed) projects/mesh11s/sys/dev/usb/serial/ulpt.c (props changed) projects/mesh11s/sys/dev/usb/serial/umct.c (props changed) projects/mesh11s/sys/dev/usb/serial/umodem.c (props changed) projects/mesh11s/sys/dev/usb/serial/umoscom.c (props changed) projects/mesh11s/sys/dev/usb/serial/uplcom.c (props changed) projects/mesh11s/sys/dev/usb/serial/usb_serial.c (props changed) projects/mesh11s/sys/dev/usb/serial/usb_serial.h (props changed) projects/mesh11s/sys/dev/usb/serial/uslcom.c (props changed) projects/mesh11s/sys/dev/usb/serial/uvisor.c (props changed) projects/mesh11s/sys/dev/usb/serial/uvscom.c (props changed) projects/mesh11s/sys/dev/usb/storage/rio500_usb.h (props changed) projects/mesh11s/sys/dev/usb/storage/umass.c (contents, props changed) projects/mesh11s/sys/dev/usb/storage/urio.c (props changed) projects/mesh11s/sys/dev/usb/storage/ustorage_fs.c (contents, props changed) projects/mesh11s/sys/dev/usb/template/usb_template.c (props changed) projects/mesh11s/sys/dev/usb/template/usb_template.h (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_cdce.c (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_msc.c (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_mtp.c (props changed) projects/mesh11s/sys/dev/usb/ufm_ioctl.h (props changed) projects/mesh11s/sys/dev/usb/usb.h (props changed) projects/mesh11s/sys/dev/usb/usb_bus.h (props changed) projects/mesh11s/sys/dev/usb/usb_busdma.c (props changed) projects/mesh11s/sys/dev/usb/usb_busdma.h (props changed) projects/mesh11s/sys/dev/usb/usb_cdc.h (props changed) projects/mesh11s/sys/dev/usb/usb_compat_linux.c (props changed) projects/mesh11s/sys/dev/usb/usb_compat_linux.h (props changed) projects/mesh11s/sys/dev/usb/usb_controller.h (props changed) projects/mesh11s/sys/dev/usb/usb_core.c (props changed) projects/mesh11s/sys/dev/usb/usb_core.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_debug.c (props changed) projects/mesh11s/sys/dev/usb/usb_debug.h (props changed) projects/mesh11s/sys/dev/usb/usb_defs.h (props changed) projects/mesh11s/sys/dev/usb/usb_dev.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_dev.h (props changed) projects/mesh11s/sys/dev/usb/usb_device.c (props changed) projects/mesh11s/sys/dev/usb/usb_device.h (props changed) projects/mesh11s/sys/dev/usb/usb_dynamic.c (props changed) projects/mesh11s/sys/dev/usb/usb_dynamic.h (props changed) projects/mesh11s/sys/dev/usb/usb_endian.h (props changed) projects/mesh11s/sys/dev/usb/usb_error.c (props changed) projects/mesh11s/sys/dev/usb/usb_error.h (props changed) projects/mesh11s/sys/dev/usb/usb_generic.c (props changed) projects/mesh11s/sys/dev/usb/usb_generic.h (props changed) projects/mesh11s/sys/dev/usb/usb_handle_request.c (props changed) projects/mesh11s/sys/dev/usb/usb_handle_request.h (props changed) projects/mesh11s/sys/dev/usb/usb_hid.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_hid.h (props changed) projects/mesh11s/sys/dev/usb/usb_hub.c (props changed) projects/mesh11s/sys/dev/usb/usb_hub.h (props changed) projects/mesh11s/sys/dev/usb/usb_if.m (props changed) projects/mesh11s/sys/dev/usb/usb_ioctl.h (props changed) projects/mesh11s/sys/dev/usb/usb_lookup.c (props changed) projects/mesh11s/sys/dev/usb/usb_lookup.h (props changed) projects/mesh11s/sys/dev/usb/usb_mbuf.c (props changed) projects/mesh11s/sys/dev/usb/usb_mbuf.h (props changed) projects/mesh11s/sys/dev/usb/usb_mfunc.h (props changed) projects/mesh11s/sys/dev/usb/usb_msctest.c (props changed) projects/mesh11s/sys/dev/usb/usb_msctest.h (props changed) projects/mesh11s/sys/dev/usb/usb_parse.c (props changed) projects/mesh11s/sys/dev/usb/usb_parse.h (props changed) projects/mesh11s/sys/dev/usb/usb_pci.h (props changed) projects/mesh11s/sys/dev/usb/usb_process.c (props changed) projects/mesh11s/sys/dev/usb/usb_process.h (props changed) projects/mesh11s/sys/dev/usb/usb_request.c (props changed) projects/mesh11s/sys/dev/usb/usb_request.h (props changed) projects/mesh11s/sys/dev/usb/usb_revision.h (props changed) projects/mesh11s/sys/dev/usb/usb_transfer.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_transfer.h (props changed) projects/mesh11s/sys/dev/usb/usb_util.c (props changed) projects/mesh11s/sys/dev/usb/usb_util.h (props changed) projects/mesh11s/sys/dev/usb/usbdevs (contents, props changed) projects/mesh11s/sys/dev/usb/usbhid.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rum.c (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumfw.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumreg.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumvar.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_uath.c projects/mesh11s/sys/dev/usb/wlan/if_ural.c (props changed) projects/mesh11s/sys/dev/usb/wlan/if_uralreg.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_uralvar.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_zyd.c (props changed) projects/mesh11s/sys/dev/usb/wlan/if_zydfw.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_zydreg.h (props changed) projects/mesh11s/sys/dev/vge/if_vge.c projects/mesh11s/sys/dev/xen/console/console.c projects/mesh11s/sys/dev/xen/console/xencons_ring.c projects/mesh11s/sys/dev/xen/console/xencons_ring.h projects/mesh11s/sys/dev/xen/netfront/ (props changed) projects/mesh11s/sys/dev/xen/netfront/netfront.c projects/mesh11s/sys/dev/xen/xenpci/ (props changed) projects/mesh11s/sys/fs/cd9660/cd9660_vfsops.c projects/mesh11s/sys/fs/coda/coda_vfsops.c projects/mesh11s/sys/fs/devfs/devfs.h projects/mesh11s/sys/fs/devfs/devfs_vfsops.c projects/mesh11s/sys/fs/devfs/devfs_vnops.c projects/mesh11s/sys/fs/fdescfs/fdesc.h projects/mesh11s/sys/fs/fdescfs/fdesc_vfsops.c projects/mesh11s/sys/fs/fdescfs/fdesc_vnops.c projects/mesh11s/sys/fs/hpfs/hpfs_vfsops.c projects/mesh11s/sys/fs/msdosfs/msdosfs_vfsops.c projects/mesh11s/sys/fs/nfs/nfs.h projects/mesh11s/sys/fs/nfs/nfs_commonkrpc.c projects/mesh11s/sys/fs/nfs/nfs_commonsubs.c projects/mesh11s/sys/fs/nfs/nfs_var.h projects/mesh11s/sys/fs/nfs/nfsdport.h projects/mesh11s/sys/fs/nfs/nfsport.h projects/mesh11s/sys/fs/nfs/nfsproto.h projects/mesh11s/sys/fs/nfsclient/nfs.h projects/mesh11s/sys/fs/nfsclient/nfs_clbio.c projects/mesh11s/sys/fs/nfsclient/nfs_clkrpc.c projects/mesh11s/sys/fs/nfsclient/nfs_clnode.c projects/mesh11s/sys/fs/nfsclient/nfs_clrpcops.c projects/mesh11s/sys/fs/nfsclient/nfs_clstate.c projects/mesh11s/sys/fs/nfsclient/nfs_clvfsops.c projects/mesh11s/sys/fs/nfsclient/nfs_clvnops.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdport.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdserv.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdsocket.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdstate.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdsubs.c projects/mesh11s/sys/fs/ntfs/ntfs_vfsops.c projects/mesh11s/sys/fs/nullfs/null_vfsops.c projects/mesh11s/sys/fs/nwfs/nwfs_vfsops.c projects/mesh11s/sys/fs/portalfs/portal_vfsops.c projects/mesh11s/sys/fs/pseudofs/pseudofs.c projects/mesh11s/sys/fs/pseudofs/pseudofs.h projects/mesh11s/sys/fs/smbfs/smbfs_io.c projects/mesh11s/sys/fs/smbfs/smbfs_vfsops.c projects/mesh11s/sys/fs/tmpfs/tmpfs.h projects/mesh11s/sys/fs/tmpfs/tmpfs_subr.c projects/mesh11s/sys/fs/tmpfs/tmpfs_vfsops.c projects/mesh11s/sys/fs/tmpfs/tmpfs_vnops.c projects/mesh11s/sys/fs/udf/udf_vfsops.c projects/mesh11s/sys/fs/unionfs/union_vfsops.c projects/mesh11s/sys/geom/concat/g_concat.c projects/mesh11s/sys/geom/journal/g_journal.c projects/mesh11s/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/mesh11s/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/mesh11s/sys/gnu/fs/xfs/FreeBSD/support/debug.h projects/mesh11s/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/mesh11s/sys/i386/conf/GENERIC.hints projects/mesh11s/sys/i386/cpufreq/hwpstate.c projects/mesh11s/sys/i386/i386/machdep.c projects/mesh11s/sys/i386/i386/mp_machdep.c projects/mesh11s/sys/i386/i386/pmap.c projects/mesh11s/sys/i386/i386/trap.c projects/mesh11s/sys/i386/include/param.h projects/mesh11s/sys/i386/include/smp.h projects/mesh11s/sys/i386/include/specialreg.h projects/mesh11s/sys/i386/linux/linux.h projects/mesh11s/sys/i386/linux/linux_sysvec.c projects/mesh11s/sys/i386/pci/pci_cfgreg.c projects/mesh11s/sys/i386/xen/mp_machdep.c projects/mesh11s/sys/ia64/ia64/elf_machdep.c projects/mesh11s/sys/ia64/ia64/machdep.c projects/mesh11s/sys/ia64/ia64/pmap.c projects/mesh11s/sys/ia64/include/md_var.h projects/mesh11s/sys/kern/kern_acct.c projects/mesh11s/sys/kern/kern_clock.c projects/mesh11s/sys/kern/kern_descrip.c projects/mesh11s/sys/kern/kern_intr.c projects/mesh11s/sys/kern/kern_lock.c projects/mesh11s/sys/kern/kern_sysctl.c projects/mesh11s/sys/kern/subr_rman.c projects/mesh11s/sys/kern/sys_generic.c projects/mesh11s/sys/kern/tty.c projects/mesh11s/sys/kern/tty_info.c projects/mesh11s/sys/kern/uipc_mqueue.c projects/mesh11s/sys/kern/uipc_syscalls.c projects/mesh11s/sys/kern/vfs_bio.c projects/mesh11s/sys/kern/vfs_default.c projects/mesh11s/sys/kern/vfs_export.c projects/mesh11s/sys/kern/vfs_extattr.c projects/mesh11s/sys/kern/vfs_lookup.c projects/mesh11s/sys/kern/vfs_mount.c projects/mesh11s/sys/kern/vfs_subr.c projects/mesh11s/sys/kern/vfs_syscalls.c projects/mesh11s/sys/kern/vfs_vnops.c projects/mesh11s/sys/legacy/dev/ata/ata-usb.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.h (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio_pcm.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudioreg.h (props changed) projects/mesh11s/sys/legacy/dev/usb/ (props changed) projects/mesh11s/sys/legacy/dev/usb/ehci_ixp4xx.c (props changed) projects/mesh11s/sys/mips/mips/machdep.c projects/mesh11s/sys/mips/mips/pm_machdep.c projects/mesh11s/sys/modules/dtrace/dtnfsclient/ (props changed) projects/mesh11s/sys/modules/ip6_mroute_mod/ (props changed) projects/mesh11s/sys/modules/ipmi/ipmi_linux/ (props changed) projects/mesh11s/sys/modules/sound/sound/Makefile projects/mesh11s/sys/modules/usb/Makefile projects/mesh11s/sys/modules/xfs/Makefile projects/mesh11s/sys/modules/zfs/Makefile projects/mesh11s/sys/net/bpf.c projects/mesh11s/sys/net/netisr.c projects/mesh11s/sys/net/netisr.h projects/mesh11s/sys/net80211/ieee80211.h projects/mesh11s/sys/net80211/ieee80211_freebsd.c projects/mesh11s/sys/net80211/ieee80211_node.c projects/mesh11s/sys/netgraph/netflow/ng_netflow.c projects/mesh11s/sys/netinet/in.c projects/mesh11s/sys/netinet/in_pcb.c projects/mesh11s/sys/netinet/in_pcb.h projects/mesh11s/sys/netinet/ip_fw2.c projects/mesh11s/sys/netinet6/in6.c projects/mesh11s/sys/netinet6/ip6_mroute.c projects/mesh11s/sys/nfs/nfs_common.c projects/mesh11s/sys/nfs4client/nfs4_vfsops.c projects/mesh11s/sys/nfsclient/nfs.h projects/mesh11s/sys/nfsclient/nfs_bio.c projects/mesh11s/sys/nfsclient/nfs_vfsops.c projects/mesh11s/sys/nfsserver/nfs_serv.c projects/mesh11s/sys/pc98/pc98/machdep.c projects/mesh11s/sys/powerpc/aim/clock.c projects/mesh11s/sys/powerpc/aim/machdep.c projects/mesh11s/sys/powerpc/aim/mmu_oea.c projects/mesh11s/sys/powerpc/aim/mmu_oea64.c projects/mesh11s/sys/powerpc/aim/mp_cpudep.c projects/mesh11s/sys/powerpc/aim/ofw_machdep.c projects/mesh11s/sys/powerpc/aim/vm_machdep.c projects/mesh11s/sys/powerpc/booke/clock.c projects/mesh11s/sys/powerpc/booke/machdep.c projects/mesh11s/sys/powerpc/booke/pmap.c projects/mesh11s/sys/powerpc/booke/vm_machdep.c projects/mesh11s/sys/powerpc/include/cpufunc.h projects/mesh11s/sys/powerpc/include/md_var.h projects/mesh11s/sys/powerpc/include/ofw_machdep.h projects/mesh11s/sys/powerpc/include/pmap.h projects/mesh11s/sys/powerpc/include/smp.h projects/mesh11s/sys/powerpc/include/spr.h projects/mesh11s/sys/powerpc/powerpc/mp_machdep.c projects/mesh11s/sys/powerpc/powerpc/pmap_dispatch.c projects/mesh11s/sys/security/audit/audit_worker.c projects/mesh11s/sys/sparc64/sparc64/machdep.c projects/mesh11s/sys/sparc64/sparc64/vm_machdep.c projects/mesh11s/sys/sun4v/sun4v/machdep.c projects/mesh11s/sys/sys/_null.h projects/mesh11s/sys/sys/buf.h projects/mesh11s/sys/sys/eventhandler.h projects/mesh11s/sys/sys/filedesc.h projects/mesh11s/sys/sys/mount.h projects/mesh11s/sys/sys/param.h projects/mesh11s/sys/sys/systm.h projects/mesh11s/sys/sys/vimage.h projects/mesh11s/sys/ufs/ffs/ffs_alloc.c projects/mesh11s/sys/ufs/ffs/ffs_vfsops.c projects/mesh11s/sys/ufs/ufs/extattr.h projects/mesh11s/sys/ufs/ufs/ufs_extattr.c projects/mesh11s/sys/ufs/ufs/ufs_vfsops.c projects/mesh11s/sys/vm/vm_page.c projects/mesh11s/sys/vm/vm_page.h projects/mesh11s/sys/vm/vm_pageout.c projects/mesh11s/sys/vm/vnode_pager.c projects/mesh11s/sys/xen/evtchn.h (props changed) projects/mesh11s/sys/xen/hypervisor.h (props changed) projects/mesh11s/sys/xen/xen_intr.h (props changed) projects/mesh11s/tools/regression/lib/msun/test-conj.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs.h (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5210.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5211.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5212.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5416.c (props changed) projects/mesh11s/tools/tools/net80211/scripts/setup.tdma-slave projects/mesh11s/usr.bin/Makefile projects/mesh11s/usr.bin/csup/ (props changed) projects/mesh11s/usr.bin/find/function.c projects/mesh11s/usr.bin/procstat/ (props changed) projects/mesh11s/usr.bin/truss/amd64-fbsd.c projects/mesh11s/usr.bin/truss/amd64-fbsd32.c projects/mesh11s/usr.bin/truss/amd64-linux32.c projects/mesh11s/usr.bin/truss/i386-fbsd.c projects/mesh11s/usr.bin/truss/i386-linux.c projects/mesh11s/usr.bin/truss/ia64-fbsd.c projects/mesh11s/usr.bin/truss/main.c projects/mesh11s/usr.bin/truss/mips-fbsd.c projects/mesh11s/usr.bin/truss/powerpc-fbsd.c projects/mesh11s/usr.bin/truss/sparc64-fbsd.c projects/mesh11s/usr.bin/truss/syscall.h projects/mesh11s/usr.bin/truss/syscalls.c projects/mesh11s/usr.bin/truss/truss.1 projects/mesh11s/usr.bin/truss/truss.h projects/mesh11s/usr.sbin/bluetooth/btpand/btpand.c projects/mesh11s/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c projects/mesh11s/usr.sbin/dumpcis/cardinfo.h (props changed) projects/mesh11s/usr.sbin/dumpcis/cis.h (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/mesh11s/usr.sbin/makefs/getid.c (props changed) projects/mesh11s/usr.sbin/mergemaster/mergemaster.sh projects/mesh11s/usr.sbin/pkg_install/lib/lib.h projects/mesh11s/usr.sbin/pkg_install/lib/plist.c projects/mesh11s/usr.sbin/sysinstall/tcpip.c projects/mesh11s/usr.sbin/zic/ (props changed) Modified: projects/mesh11s/bin/pkill/pkill.1 ============================================================================== --- projects/mesh11s/bin/pkill/pkill.1 Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/pkill/pkill.1 Tue May 19 18:48:10 2009 (r192403) @@ -36,7 +36,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 23, 2006 +.Dd May 16, 2009 .Dt PKILL 1 .Os .Sh NAME @@ -44,7 +44,7 @@ .Nd find or signal processes by name .Sh SYNOPSIS .Nm pgrep -.Op Fl LSfilnovx +.Op Fl LSafilnovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core @@ -60,7 +60,7 @@ .Ar pattern ... .Nm pkill .Op Fl Ar signal -.Op Fl ILfinovx +.Op Fl ILafinovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core @@ -128,6 +128,15 @@ The default is a newline. This option can only be used with the .Nm pgrep command. +.It Fl a +Include process ancestors in the match list. +By default, the current +.Nm pgrep +or +.Nm pkill +process and all of its ancestors are excluded (unless +.Fl v +is used). .It Fl f Match against full argument lists. The default is to match against process names. Modified: projects/mesh11s/bin/pkill/pkill.c ============================================================================== --- projects/mesh11s/bin/pkill/pkill.c Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/pkill/pkill.c Tue May 19 18:48:10 2009 (r192403) @@ -133,7 +133,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int debug_opt; + int ancestors, debug_opt; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -142,6 +142,7 @@ main(int argc, char **argv) struct timeval best_tval; regex_t reg; regmatch_t regmatch; + pid_t pid; setlocale(LC_ALL, ""); @@ -174,13 +175,14 @@ main(int argc, char **argv) } } + ancestors = 0; criteria = 0; debug_opt = 0; pidfile = NULL; pidfilelock = 0; execf = coref = _PATH_DEVNULL; - while ((ch = getopt(argc, argv, "DF:G:ILM:N:P:SU:d:fg:ij:lnos:t:u:vx")) != -1) + while ((ch = getopt(argc, argv, "DF:G:ILM:N:P:SU:ad:fg:ij:lnos:t:u:vx")) != -1) switch (ch) { case 'D': debug_opt++; @@ -220,6 +222,9 @@ main(int argc, char **argv) makelist(&ruidlist, LT_USER, optarg); criteria = 1; break; + case 'a': + ancestors++; + break; case 'd': if (!pgrep) usage(); @@ -468,6 +473,27 @@ main(int argc, char **argv) selected[i] = 1; } + if (!ancestors) { + pid = mypid; + while (pid) { + for (i = 0, kp = plist; i < nproc; i++, kp++) { + if (PSKIP(kp)) + continue; + if (kp->ki_pid == pid) { + selected[i] = 0; + pid = kp->ki_ppid; + break; + } + } + if (i == nproc) { + if (pid == mypid) + pid = getppid(); + else + break; /* Maybe we're in a jail ? */ + } + } + } + if (newest || oldest) { best_tval.tv_sec = 0; best_tval.tv_usec = 0; Modified: projects/mesh11s/bin/ps/print.c ============================================================================== --- projects/mesh11s/bin/ps/print.c Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/ps/print.c Tue May 19 18:48:10 2009 (r192403) @@ -130,9 +130,11 @@ command(KINFO *k, VARENT *ve) if (cflag) { /* If it is the last field, then don't pad */ if (STAILQ_NEXT(ve, next_ve) == NULL) { + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); (void)printf("%s", k->ki_p->ki_comm); if (showthreads && k->ki_p->ki_numthreads > 1) - printf("/%s", k->ki_p->ki_ocomm); + (void)printf("/%s", k->ki_p->ki_ocomm); } else (void)printf("%-*s", v->width, k->ki_p->ki_comm); return; @@ -140,16 +142,22 @@ command(KINFO *k, VARENT *ve) if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL) errx(1, "malloc failed"); strvis(vis_args, k->ki_args, VIS_TAB | VIS_NL | VIS_NOSLASH); - if (k->ki_env) { - if ((vis_env = malloc(strlen(k->ki_env) * 4 + 1)) == NULL) - errx(1, "malloc failed"); - strvis(vis_env, k->ki_env, VIS_TAB | VIS_NL | VIS_NOSLASH); - } else - vis_env = NULL; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field */ + + if (k->ki_env) { + if ((vis_env = malloc(strlen(k->ki_env) * 4 + 1)) + == NULL) + errx(1, "malloc failed"); + strvis(vis_env, k->ki_env, + VIS_TAB | VIS_NL | VIS_NOSLASH); + } else + vis_env = NULL; + if (termwidth == UNLIMITED) { + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); if (vis_env) (void)printf("%s ", vis_env); (void)printf("%s", vis_args); @@ -157,6 +165,9 @@ command(KINFO *k, VARENT *ve) left = termwidth - (totwidth - v->width); if (left < 1) /* already wrapped, just use std width */ left = v->width; + if ((cp = k->ki_d.prefix) != NULL) + while (--left >= 0 && *cp) + (void)putchar(*cp++); if ((cp = vis_env) != NULL) { while (--left >= 0 && *cp) (void)putchar(*cp++); @@ -166,12 +177,12 @@ command(KINFO *k, VARENT *ve) for (cp = vis_args; --left >= 0 && *cp != '\0';) (void)putchar(*cp++); } + if (vis_env != NULL) + free(vis_env); } else - /* XXX env? */ + /* ki_d.prefix & ki_env aren't shown for interim fields */ (void)printf("%-*.*s", v->width, v->width, vis_args); free(vis_args); - if (vis_env != NULL) - free(vis_env); } void @@ -182,6 +193,8 @@ ucomm(KINFO *k, VARENT *ve) v = ve->var; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */ + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); (void)printf("%s", k->ki_p->ki_comm); if (showthreads && k->ki_p->ki_numthreads > 1) printf("/%s", k->ki_p->ki_ocomm); Modified: projects/mesh11s/bin/ps/ps.1 ============================================================================== --- projects/mesh11s/bin/ps/ps.1 Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/ps/ps.1 Tue May 19 18:48:10 2009 (r192403) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd August 21, 2006 +.Dd May 16, 2009 .Dt PS 1 .Os .Sh NAME @@ -37,7 +37,7 @@ .Nd process status .Sh SYNOPSIS .Nm -.Op Fl aCcefHhjlmrSTuvwXxZ +.Op Fl aCcdefHhjlmrSTuvwXxZ .Op Fl O Ar fmt | Fl o Ar fmt .Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ... .Op Fl M Ar core @@ -122,6 +122,15 @@ CPU calculation that ignores .Dq resident time (this normally has no effect). +.It Fl d +Arrange processes into descendancy order and prefix each command with +indentation text showing sibling and parent/child relationships. +If either of the +.Fl m +and +.Fl r +options are also used, they control how sibling processes are sorted +relative to eachother. .It Fl e Display the environment as well. .It Fl f Modified: projects/mesh11s/bin/ps/ps.c ============================================================================== --- projects/mesh11s/bin/ps/ps.c Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/ps/ps.c Tue May 19 18:48:10 2009 (r192403) @@ -138,6 +138,7 @@ static int addelem_pid(struct listinfo static int addelem_tty(struct listinfo *, const char *); static int addelem_uid(struct listinfo *, const char *); static void add_list(struct listinfo *, const char *); +static void descendant_sort(KINFO *, int); static void dynsizevars(KINFO *); static void *expand_list(struct listinfo *); static const char * @@ -163,7 +164,7 @@ static char vfmt[] = "pid,state,time,sl, "%cpu,%mem,command"; static char Zfmt[] = "label"; -#define PS_ARGS "AaCce" OPT_LAZY_f "G:gHhjLlM:mN:O:o:p:rSTt:U:uvwXxZ" +#define PS_ARGS "AaCcde" OPT_LAZY_f "G:gHhjLlM:mN:O:o:p:rSTt:U:uvwXxZ" int main(int argc, char *argv[]) @@ -177,7 +178,7 @@ main(int argc, char *argv[]) const char *nlistf, *memf; char *cols; int all, ch, elem, flag, _fmt, i, lineno; - int nentries, nkept, nselectors; + int descendancy, nentries, nkept, nselectors; int prtheader, wflag, what, xkeep, xkeep_implied; char errbuf[_POSIX2_LINE_MAX]; @@ -201,7 +202,7 @@ main(int argc, char *argv[]) if (argc > 1) argv[1] = kludge_oldps_options(PS_ARGS, argv[1], argv[2]); - all = _fmt = nselectors = optfatal = 0; + all = descendancy = _fmt = nselectors = optfatal = 0; prtheader = showthreads = wflag = xkeep_implied = 0; xkeep = -1; /* Neither -x nor -X. */ init_list(&gidlist, addelem_gid, sizeof(gid_t), "group"); @@ -233,6 +234,9 @@ main(int argc, char *argv[]) case 'c': cflag = 1; break; + case 'd': + descendancy = 1; + break; case 'e': /* XXX set ufmt */ needenv = 1; break; @@ -575,6 +579,8 @@ main(int argc, char *argv[]) keepit: next_KINFO = &kinfo[nkept]; next_KINFO->ki_p = kp; + next_KINFO->ki_d.level = 0; + next_KINFO->ki_d.prefix = NULL; next_KINFO->ki_pcpu = getpcpu(next_KINFO); if (sortby == SORTMEM) next_KINFO->ki_memsize = kp->ki_tsize + @@ -599,6 +605,13 @@ main(int argc, char *argv[]) * sort proc list */ qsort(kinfo, nkept, sizeof(KINFO), pscomp); + + /* + * We want things in descendant order + */ + if (descendancy) + descendant_sort(kinfo, nkept); + /* * For each process, call each variable output function. */ @@ -622,6 +635,9 @@ main(int argc, char *argv[]) free_list(&sesslist); free_list(&ttylist); free_list(&uidlist); + for (i = 0; i < nkept; i++) + free(kinfo[i].ki_d.prefix); + free(kinfo); exit(eval); } @@ -748,7 +764,7 @@ addelem_tty(struct listinfo *inf, const strlcat(pathbuf2, elem, sizeof(pathbuf2)); if (stat(pathbuf2, &sb) == 0 && S_ISCHR(sb.st_mode)) { /* No need to repeat stat() && S_ISCHR() checks */ - ttypath = NULL; + ttypath = NULL; break; } /* Check to see if /dev/pts/${elem} exists */ @@ -756,7 +772,7 @@ addelem_tty(struct listinfo *inf, const strlcat(pathbuf3, elem, sizeof(pathbuf3)); if (stat(pathbuf3, &sb) == 0 && S_ISCHR(sb.st_mode)) { /* No need to repeat stat() && S_ISCHR() checks */ - ttypath = NULL; + ttypath = NULL; break; } break; @@ -890,6 +906,115 @@ add_list(struct listinfo *inf, const cha } } +static void +descendant_sort(KINFO *ki, int items) +{ + int dst, lvl, maxlvl, n, ndst, nsrc, siblings, src; + unsigned char *path; + KINFO kn; + + /* + * First, sort the entries by descendancy, tracking the descendancy + * depth in the ki_d.level field. + */ + src = 0; + maxlvl = 0; + while (src < items) { + if (ki[src].ki_d.level) { + src++; + continue; + } + for (nsrc = 1; src + nsrc < items; nsrc++) + if (!ki[src + nsrc].ki_d.level) + break; + + for (dst = 0; dst < items; dst++) { + if (ki[dst].ki_p->ki_pid == ki[src].ki_p->ki_pid) + continue; + if (ki[dst].ki_p->ki_pid == ki[src].ki_p->ki_ppid) + break; + } + + if (dst == items) { + src += nsrc; + continue; + } + + for (ndst = 1; dst + ndst < items; ndst++) + if (ki[dst + ndst].ki_d.level <= ki[dst].ki_d.level) + break; + + for (n = src; n < src + nsrc; n++) { + ki[n].ki_d.level += ki[dst].ki_d.level + 1; + if (maxlvl < ki[n].ki_d.level) + maxlvl = ki[n].ki_d.level; + } + + while (nsrc) { + if (src < dst) { + kn = ki[src]; + memmove(ki + src, ki + src + 1, + (dst - src + ndst - 1) * sizeof *ki); + ki[dst + ndst - 1] = kn; + nsrc--; + dst--; + ndst++; + } else if (src != dst + ndst) { + kn = ki[src]; + memmove(ki + dst + ndst + 1, ki + dst + ndst, + (src - dst - ndst) * sizeof *ki); + ki[dst + ndst] = kn; + ndst++; + nsrc--; + src++; + } else { + ndst += nsrc; + src += nsrc; + nsrc = 0; + } + } + } + + /* + * Now populate ki_d.prefix (instead of ki_d.level) with the command + * prefix used to show descendancies. + */ + path = malloc((maxlvl + 7) / 8); + memset(path, '\0', (maxlvl + 7) / 8); + for (src = 0; src < items; src++) { + if ((lvl = ki[src].ki_d.level) == 0) { + ki[src].ki_d.prefix = NULL; + continue; + } + if ((ki[src].ki_d.prefix = malloc(lvl * 2 + 1)) == NULL) + errx(1, "malloc failed"); + for (n = 0; n < lvl - 2; n++) { + ki[src].ki_d.prefix[n * 2] = + path[n / 8] & 1 << (n % 8) ? '|' : ' '; + ki[src].ki_d.prefix[n * 2 + 1] = ' '; + } + if (n == lvl - 2) { + /* Have I any more siblings? */ + for (siblings = 0, dst = src + 1; dst < items; dst++) { + if (ki[dst].ki_d.level > lvl) + continue; + if (ki[dst].ki_d.level == lvl) + siblings = 1; + break; + } + if (siblings) + path[n / 8] |= 1 << (n % 8); + else + path[n / 8] &= ~(1 << (n % 8)); + ki[src].ki_d.prefix[n * 2] = siblings ? '|' : '`'; + ki[src].ki_d.prefix[n * 2 + 1] = '-'; + n++; + } + strcpy(ki[src].ki_d.prefix + n * 2, "- "); + } + free(path); +} + static void * expand_list(struct listinfo *inf) { Modified: projects/mesh11s/bin/ps/ps.h ============================================================================== --- projects/mesh11s/bin/ps/ps.h Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/bin/ps/ps.h Tue May 19 18:48:10 2009 (r192403) @@ -42,6 +42,10 @@ typedef struct kinfo { int ki_valid; /* 1 => uarea stuff valid */ double ki_pcpu; /* calculated in main() */ segsz_t ki_memsize; /* calculated in main() */ + union { + int level; /* used in decendant_sort() */ + char *prefix; /* calculated in decendant_sort() */ + } ki_d; } KINFO; /* Variables. */ Modified: projects/mesh11s/contrib/file/ChangeLog ============================================================================== --- projects/mesh11s/contrib/file/ChangeLog Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/ChangeLog Tue May 19 18:48:10 2009 (r192403) @@ -1,3 +1,59 @@ +2009-05-06 10:25 Christos Zoulas + + * Avoid null dereference in cdf code (Drew Yao) + + * More cdf bounds checks and overflow checks + +2009-05-01 18:37 Christos Zoulas + + * Buffer overflow fixes from Drew Yao + +2009-04-30 17:10 Christos Zoulas + + * Fix more cdf lossage. All the documents I have + right now print the correct information. + +2009-03-27 18:43 Christos Zoulas + + * don't print \012- separators in the same magic entry + if it consists of multiple magic printing lines. + +2009-03-23 10:20 Christos Zoulas + + * Avoid file descriptor leak in compress code from + (Daniel Novotny) + +2009-03-18 16:50 Christos Zoulas + + * Allow escaping of relation characters, so that we can say \^[A-Z] + and the ^ is not eaten as a relation char. + + * Fix troff and fortran to their previous glory using + regex. This was broken since their removel from ascmagic. + +2009-03-10 16:50 Christos Zoulas + + * don't use strlen in strndup() (Toby Peterson) + +2009-03-10 7:45 Christos Zoulas + + * avoid c99 syntax. + +2009-02-23 15:45 Christos Zoulas + + * make the cdf code use the buffer first if available, + and then the fd code. + +2009-02-13 13:45 Christos Zoulas + + * look for struct option to determine if getopt.h is usable for IRIX. + + * sanitize cdf document strings + +2009-02-04 13:25 Christos Zoulas + + * fix OS/2 warnings. + 2008-12-12 15:50 Christos Zoulas * fix initial offset calculation for non 4K sector files Modified: projects/mesh11s/contrib/file/Magdir/cafebabe ============================================================================== --- projects/mesh11s/contrib/file/Magdir/cafebabe Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/cafebabe Tue May 19 18:48:10 2009 (r192403) @@ -17,6 +17,15 @@ >4 belong >30 compiled Java class data, >>6 beshort x version %d. >>4 beshort x \b%d +# Which is which? +#>>4 belong 0x032d (Java 1.0) +#>>4 belong 0x032d (Java 1.1) +>>4 belong 0x002e (Java 1.2) +>>4 belong 0x002f (Java 1.3) +>>4 belong 0x0030 (Java 1.4) +>>4 belong 0x0031 (Java 1.5) +>>4 belong 0x0032 (Java 1.6) + 0 belong 0xcafebabe >4 belong 1 Mach-O fat file with 1 architecture Modified: projects/mesh11s/contrib/file/Magdir/compress ============================================================================== --- projects/mesh11s/contrib/file/Magdir/compress Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/compress Tue May 19 18:48:10 2009 (r192403) @@ -195,6 +195,10 @@ # bug #364260) #0 string ]\000\000\200\000 LZMA compressed data +# http://tukaani.org/xz/xz-file-format.txt +0 ustring \xFD7zXZ\x00 xz compressed data +!:mime application/x-xz + # AFX compressed files (Wolfram Kleff) 2 string -afx- AFX compressed file data @@ -208,3 +212,8 @@ >4 byte x - version %d >5 byte x \b.%d >6 belong x (%d bytes) + +# Type: XZ +# URL: http://tukaani.org/xz/ +0 string \xfd\x37\x7a\x58\x5a\x00 XZ compressed data +!:mime application/x-xz Modified: projects/mesh11s/contrib/file/Magdir/database ============================================================================== --- projects/mesh11s/contrib/file/Magdir/database Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/database Tue May 19 18:48:10 2009 (r192403) @@ -242,3 +242,28 @@ # URL: http://www.grc.nasa.gov/WWW/cgns/adf/ # From: Nicolas Chauvat 0 string @(#)ADF\ Database CGNS Advanced Data Format + +# Tokyo Cabinet magic data +# http://tokyocabinet.sourceforge.net/index.html +0 string ToKyO\ CaBiNeT\n Tokyo Cabinet +>14 string x \b (%s) +>32 byte 0 \b, Hash +!:mime application/x-tokyocabinet-hash +>32 byte 1 \b, B+ tree +!:mime application/x-tokyocabinet-btree +>32 byte 2 \b, Fixed-length +!:mime application/x-tokyocabinet-fixed +>32 byte 3 \b, Table +!:mime application/x-tokyocabinet-table +>33 byte &1 \b, [open] +>33 byte &2 \b, [fatal] +>34 byte x \b, apow=%d +>35 byte x \b, fpow=%d +>36 byte &0x01 \b, [large] +>36 byte &0x02 \b, [deflate] +>36 byte &0x04 \b, [bzip] +>36 byte &0x08 \b, [tcbs] +>36 byte &0x10 \b, [excodec] +>40 lequad x \b, bnum=%lld +>48 lequad x \b, rnum=%lld +>56 lequad x \b, fsiz=%lld Modified: projects/mesh11s/contrib/file/Magdir/erlang ============================================================================== --- projects/mesh11s/contrib/file/Magdir/erlang Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/erlang Tue May 19 18:48:10 2009 (r192403) @@ -12,7 +12,7 @@ >8 string BEAM Erlang BEAM file # 4.2 version may have a copyright notice! -4 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2 -79 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2 +4 string Tue\ Jan\ 22\ 14:32:44\ MET\ 1991 Erlang JAM file - version 4.2 +79 string Tue\ Jan\ 22\ 14:32:44\ MET\ 1991 Erlang JAM file - version 4.2 -4 string 1.0 Fri Feb 3 09:55:56 MET 1995 Erlang JAM file - version 4.3 +4 string 1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995 Erlang JAM file - version 4.3 Modified: projects/mesh11s/contrib/file/Magdir/filesystems ============================================================================== --- projects/mesh11s/contrib/file/Magdir/filesystems Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/filesystems Tue May 19 18:48:10 2009 (r192403) @@ -891,7 +891,7 @@ 0x410 leshort 0x2478 Minix filesystem, version 2, 30 char names # romfs filesystems - Juan Cespedes -0 string -rom1fs-\0 romfs filesystem, version 1 +0 string -rom1fs- romfs filesystem, version 1 >8 belong x %d bytes, >16 string x named %s. Modified: projects/mesh11s/contrib/file/Magdir/fonts ============================================================================== --- projects/mesh11s/contrib/file/Magdir/fonts Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/fonts Tue May 19 18:48:10 2009 (r192403) @@ -6,8 +6,8 @@ 0 short 017001 byte-swapped Berkeley vfont data # PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com -0 search/1 %!PS-AdobeFont-1. PostScript Type 1 font text ->20 search/1 >\0 (%s) +0 string %!PS-AdobeFont-1. PostScript Type 1 font text +>20 string >\0 (%s) 6 string %!PS-AdobeFont-1. PostScript Type 1 font program data # X11 font files in SNF (Server Natural Format) format @@ -55,6 +55,8 @@ 0 string \007\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font 0 string \012\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font +0 string ttcf TrueType font collection data + # Opentype font data from Avi Bercovich 0 string OTTO OpenType font data Modified: projects/mesh11s/contrib/file/Magdir/fortran ============================================================================== --- projects/mesh11s/contrib/file/Magdir/fortran Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/fortran Tue May 19 18:48:10 2009 (r192403) @@ -1,3 +1,3 @@ # FORTRAN source -0 string/c c\ FORTRAN program +0 regex/100 \^[Cc][\ \t] FORTRAN program !:mime text/x-fortran Copied: projects/mesh11s/contrib/file/Magdir/kml (from r192401, head/contrib/file/Magdir/kml) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mesh11s/contrib/file/Magdir/kml Tue May 19 18:48:10 2009 (r192403, copy of r192401, head/contrib/file/Magdir/kml) @@ -0,0 +1,32 @@ +#------------------------------------------------------------------------------ +# Type: Google KML, formerly Keyhole Markup Language +# Future development of this format has been handed +# over to the Open Geospatial Consortium. +# http://www.opengeospatial.org/standards/kml/ +# From: Asbjoern Sloth Toennesen +0 string \20 search/400 \ xmlns= +>>&0 regex ['"]http://earth.google.com/kml Google KML document +!:mime application/vnd.google-earth.kml+xml +>>>&1 string 2.0' \b, version 2.0 +>>>&1 string 2.1' \b, version 2.1 +>>>&1 string 2.2' \b, version 2.2 + +#------------------------------------------------------------------------------ +# Type: OpenGIS KML, formerly Keyhole Markup Language +# This standard is maintained by the +# Open Geospatial Consortium. +# http://www.opengeospatial.org/standards/kml/ +# From: Asbjoern Sloth Toennesen +>>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document +!:mime application/vnd.google-earth.kml+xml +>>>&1 string 2.2 \b, version 2.2 + +#------------------------------------------------------------------------------ +# Type: Google KML Archive (ZIP based) +# http://code.google.com/apis/kml/documentation/kml_tut.html +# From: Asbjoern Sloth Toennesen +0 string PK\003\004 +>4 byte 0x14 +>>30 string doc.kml Compressed Google KML Document, including resources. +!:mime application/vnd.google-earth.kmz Modified: projects/mesh11s/contrib/file/Magdir/linux ============================================================================== --- projects/mesh11s/contrib/file/Magdir/linux Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/linux Tue May 19 18:48:10 2009 (r192403) @@ -84,7 +84,7 @@ 514 string HdrS Linux kernel >510 leshort 0xAA55 x86 boot executable >>518 leshort >0x1ff ->>529 byte 0 zImage, +>>>529 byte 0 zImage, >>>529 byte 1 bzImage, >>>(526.s+0x200) string >\0 version %s, >>498 leshort 1 RO-rootFS, Modified: projects/mesh11s/contrib/file/Magdir/lisp ============================================================================== --- projects/mesh11s/contrib/file/Magdir/lisp Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/lisp Tue May 19 18:48:10 2009 (r192403) @@ -8,22 +8,22 @@ #0 string ;; # windows INF files often begin with semicolon and use CRLF as line end # lisp files are mainly created on unix system with LF as line end -#>2 search/2048 !\r Lisp/Scheme program text -#>2 search/2048 \r Windows INF file +#>2 search/4096 !\r Lisp/Scheme program text +#>2 search/4096 \r Windows INF file -0 search/256 (if\ Lisp/Scheme program text +0 search/4096 (if\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (setq\ Lisp/Scheme program text +0 search/4096 (setq\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (defvar\ Lisp/Scheme program text +0 search/4096 (defvar\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (defparam\ Lisp/Scheme program text +0 search/4096 (defparam\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (defun\ Lisp/Scheme program text +0 search/4096 (defun\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (autoload\ Lisp/Scheme program text +0 search/4096 (autoload\ Lisp/Scheme program text !:mime text/x-lisp -0 search/256 (custom-set-variables\ Lisp/Scheme program text +0 search/4096 (custom-set-variables\ Lisp/Scheme program text !:mime text/x-lisp # Emacs 18 - this is always correct, but not very magical. Modified: projects/mesh11s/contrib/file/Magdir/python ============================================================================== --- projects/mesh11s/contrib/file/Magdir/python Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/python Tue May 19 18:48:10 2009 (r192403) @@ -14,6 +14,8 @@ 0 belong 0x3bf20d0a python 2.3 byte-compiled 0 belong 0x6df20d0a python 2.4 byte-compiled 0 belong 0xb3f20d0a python 2.5 byte-compiled +0 belong 0xd1f20d0a python 2.6 byte-compiled + 0 string/b #!\ /usr/bin/python python script text executable Modified: projects/mesh11s/contrib/file/Magdir/troff ============================================================================== --- projects/mesh11s/contrib/file/Magdir/troff Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/troff Tue May 19 18:48:10 2009 (r192403) @@ -14,6 +14,10 @@ !:mime text/troff 0 search/1 ''' troff or preprocessor input text !:mime text/troff +0 regex/20 \^\\.[A-Za-z0-9][A-Za-z0-9][\ \t] troff or preprocessor input text +!:mime text/troff +0 regex/20 \^\\.[A-Za-z0-9][A-Za-z0-9]$ troff or preprocessor input text +!:mime text/troff # ditroff intermediate output text 0 search/1 x\ T ditroff output text Modified: projects/mesh11s/contrib/file/Magdir/windows ============================================================================== --- projects/mesh11s/contrib/file/Magdir/windows Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Magdir/windows Tue May 19 18:48:10 2009 (r192403) @@ -113,3 +113,9 @@ 0 string REGEDIT4\r\n\r\n Windows Registry text (Win95 or above) 0 string Windows\ Registry\ Editor\ >&0 string Version\ 5.00\r\n\r\n Windows Registry text (Win2K or above) + + +# From: Pal Tamas +# Autorun File +0 string/c [autorun]\r\n Microsoft Windows Autorun file. +!:mime application/x-setupscript. Modified: projects/mesh11s/contrib/file/Makefile.am ============================================================================== --- projects/mesh11s/contrib/file/Makefile.am Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Makefile.am Tue May 19 18:48:10 2009 (r192403) @@ -1,5 +1,5 @@ # -# $File: Makefile.am,v 1.44 2009/01/28 02:11:20 christos Exp $ +# $File: Makefile.am,v 1.45 2009/03/05 22:40:59 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_FRAGMENT_DIR = $(top_srcdir)/magic/$(MAGIC_FRAGMENT_BASE) @@ -97,6 +97,7 @@ $(MAGIC_FRAGMENT_DIR)/java \ $(MAGIC_FRAGMENT_DIR)/jpeg \ $(MAGIC_FRAGMENT_DIR)/karma \ $(MAGIC_FRAGMENT_DIR)/kde \ +$(MAGIC_FRAGMENT_DIR)/kml \ $(MAGIC_FRAGMENT_DIR)/lecter \ $(MAGIC_FRAGMENT_DIR)/lex \ $(MAGIC_FRAGMENT_DIR)/lif \ Modified: projects/mesh11s/contrib/file/Makefile.in ============================================================================== --- projects/mesh11s/contrib/file/Makefile.in Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/Makefile.in Tue May 19 18:48:10 2009 (r192403) @@ -15,7 +15,6 @@ @SET_MAKE@ VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd @@ -54,6 +53,7 @@ am__installdirs = "$(DESTDIR)$(pkgdatadi pkgdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkgdatadir = @pkgdatadir@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ @@ -73,6 +73,7 @@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ @@ -95,6 +96,7 @@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +NMEDIT = @NMEDIT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -104,6 +106,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -163,7 +166,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # -# $File: Makefile.am,v 1.44 2009/01/28 02:11:20 christos Exp $ +# $File: Makefile.am,v 1.45 2009/03/05 22:40:59 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_FRAGMENT_DIR = $(top_srcdir)/magic/$(MAGIC_FRAGMENT_BASE) @@ -259,6 +262,7 @@ $(MAGIC_FRAGMENT_DIR)/java \ $(MAGIC_FRAGMENT_DIR)/jpeg \ $(MAGIC_FRAGMENT_DIR)/karma \ $(MAGIC_FRAGMENT_DIR)/kde \ +$(MAGIC_FRAGMENT_DIR)/kml \ $(MAGIC_FRAGMENT_DIR)/lecter \ $(MAGIC_FRAGMENT_DIR)/lex \ $(MAGIC_FRAGMENT_DIR)/lif \ Modified: projects/mesh11s/contrib/file/README ============================================================================== --- projects/mesh11s/contrib/file/README Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/README Tue May 19 18:48:10 2009 (r192403) @@ -1,15 +1,18 @@ ** README for file(1) Command ** -@(#) $File: README,v 1.41 2008/12/02 16:34:46 christos Exp $ +@(#) $File: README,v 1.42 2009/02/14 15:16:24 christos Exp $ E-mail: christos@astron.com Mailing List: file@mx.gw.com Phone: Do not even think of telephoning me about this program. Send cash first! -This is Release 4.x of Ian Darwin's (copyright but distributable) +This is Release 5.x of Ian Darwin's (copyright but distributable) file(1) command. This version is the standard "file" command for Linux, *BSD, and other systems. (See "patchlevel.h" for the exact release number). +The major changes for 5.x are CDF file parsing, indirect magic, and +overhaul in mime and ascii encoding handling. + The major feature of 4.x is the refactoring of the code into a library, and the re-write of the file command in terms of that library. The library itself, libmagic can be used by 3rd party programs that wish to identify Modified: projects/mesh11s/contrib/file/acinclude.m4 ============================================================================== --- projects/mesh11s/contrib/file/acinclude.m4 Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/acinclude.m4 Tue May 19 18:48:10 2009 (r192403) @@ -9,6 +9,7 @@ AC_CACHE_CHECK([for tm_zone in struct tm if test "$ac_cv_struct_tm_zone" = yes; then AC_DEFINE(HAVE_TM_ZONE,1,[HAVE_TM_ZONE]) fi + AC_CACHE_CHECK(for tzname, ac_cv_var_tzname, [AC_TRY_LINK( changequote(<<, >>)dnl @@ -29,6 +30,7 @@ AC_CACHE_CHECK([for tm_isdst in struct t if test "$ac_cv_struct_tm_isdst" = yes; then AC_DEFINE(HAVE_TM_ISDST,1,[HAVE_TM_ISDST]) fi + AC_CACHE_CHECK(for daylight, ac_cv_var_daylight, [AC_TRY_LINK( changequote(<<, >>)dnl @@ -42,3 +44,12 @@ changequote([, ])dnl AC_DEFINE(HAVE_DAYLIGHT,1,[HAVE_DAYLIGHT]) fi ]) + +AC_DEFUN([AC_STRUCT_OPTION_GETOPT_H], +[AC_CACHE_CHECK([for struct option in getopt], ac_cv_struct_option_getopt_h, +[AC_TRY_COMPILE([#include ], [struct option op; op.name;], + ac_cv_struct_option_getopt_h=yes, ac_cv_struct_option_getopt_h=no)]) +if test "$ac_cv_struct_option_getopt_h" = yes; then + AC_DEFINE(HAVE_STRUCT_OPTION,1,[HAVE_STRUCT_OPTION]) +fi +]) Modified: projects/mesh11s/contrib/file/aclocal.m4 ============================================================================== --- projects/mesh11s/contrib/file/aclocal.m4 Tue May 19 18:14:04 2009 (r192402) +++ projects/mesh11s/contrib/file/aclocal.m4 Tue May 19 18:48:10 2009 (r192403) @@ -18,7 +18,7 @@ you should regenerate the build system e # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# serial 47 AC_PROG_LIBTOOL +# serial 52 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) @@ -106,7 +106,6 @@ AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl - AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR @@ -148,7 +147,7 @@ rm="rm -f" default_ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except M$VC, +# All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" @@ -168,6 +167,7 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" @@ -180,17 +180,17 @@ test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" @@ -207,6 +207,8 @@ file_magic*) ;; esac +_LT_REQUIRED_DARWIN_CHECKS + AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) @@ -238,6 +240,9 @@ AC_DEFUN([_LT_AC_SYS_COMPILER], # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER @@ -264,9 +269,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed - # Check for compiler boilerplate output or warnings with # the simple compiler test code. AC_DEFUN([_LT_COMPILER_BOILERPLATE], -[ac_outfile=conftest.$ac_objext -printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +[AC_REQUIRE([LT_AC_PROG_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_COMPILER_BOILERPLATE @@ -277,13 +283,85 @@ $rm conftest* # Check for linker boilerplate output or warnings with # the simple link test code. AC_DEFUN([_LT_LINKER_BOILERPLATE], -[ac_outfile=conftest.$ac_objext -printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +[AC_REQUIRE([LT_AC_PROG_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` -$rm conftest* +$rm -r conftest* ])# _LT_LINKER_BOILERPLATE +# _LT_REQUIRED_DARWIN_CHECKS +# -------------------------- *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue May 19 20:23:32 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1BBA1065670; Tue, 19 May 2009 20:23:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AFFBD8FC0C; Tue, 19 May 2009 20:23:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4JKNWYw009023; Tue, 19 May 2009 20:23:32 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4JKNWRQ009022; Tue, 19 May 2009 20:23:32 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905192023.n4JKNWRQ009022@svn.freebsd.org> From: Robert Watson Date: Tue, 19 May 2009 20:23:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192408 - projects/pnet/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2009 20:23:33 -0000 Author: rwatson Date: Tue May 19 20:23:32 2009 New Revision: 192408 URL: http://svn.freebsd.org/changeset/base/192408 Log: Implement a hybrid cross-CPU dispatch model for netisr2, in which a directly dispatching thread is willing to directly dispatch packets normally processed on another CPU if that CPU's netisr thread is idle. Modified: projects/pnet/sys/net/netisr2.c Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Tue May 19 20:16:18 2009 (r192407) +++ projects/pnet/sys/net/netisr2.c Tue May 19 20:23:32 2009 (r192408) @@ -107,19 +107,25 @@ static struct rmlock netisr_rmlock; SYSCTL_NODE(_net, OID_AUTO, isr2, CTLFLAG_RW, 0, "netisr2"); /*- - * Three direct dispatch policies are supported: + * Four direct dispatch policies are supported: * * - Always defer: all work is scheduled for a netisr, regardless of context. + * (direct_enable == 0) * * - Always direct: if the executing context allows direct dispatch, always * direct dispatch. + * (direct_enable != 0 && direct_force != 0) * * - Hybrid: if the executing context allows direct dispatch, and we're * running on the CPU the work would be done on, then direct dispatch if it * wouldn't violate ordering constraints on the workstream. + * (direct_enable != 0 && direct_force == 0 && hybridxcpu_enable == 0) + * + * - Hybrid with cross-CPU dispatch: if the executing context allows direct + * dispatch, then direct dispatch if it wouldn't violate ordering + * constraints on the workstream. + * (direct_enable != 0 && direct_force == 0 && hybridxcpu_enable != 0) * - * These policies are captured using two sysctls -- direct_enable allows - * direct dispatch, and direct_force forces direct dispatch if enabled. * Notice that changing the global policy could lead to short periods of * disordered processing, but this is considered acceptable as compared to * the complexity of enforcing ordering during policy changes. @@ -132,6 +138,10 @@ static int netisr_direct_enable = 1; /* SYSCTL_INT(_net_isr2, OID_AUTO, direct_enable, CTLFLAG_RW, &netisr_direct_enable, 0, "Enable direct dispatch"); +static int netisr_hybridxcpu_enable = 1; /* Enable cross-CPU dispatch. */ +SYSCTL_INT(_net_isr2, OID_AUTO, hybridxcpu_enable, CTLFLAG_RW, + &netisr_hybridxcpu_enable, 0, "Enable cross-CPU hybrid direct dispatch."); + /* * Allow the administrator to limit the number of threads (CPUs) to use for * netisr2. Notice that we don't check netisr_maxthreads before creating the @@ -206,6 +216,7 @@ struct netisr_work { */ u_int64_t nw_dispatched; /* Number of direct dispatches. */ u_int64_t nw_hybrid_dispatched; /* "" hybrid dispatches. */ + u_int64_t nw_hybrid_xcpudispatched; /* "" cross-CPU hybrid. */ u_int64_t nw_qdrops; /* "" drops. */ u_int64_t nw_queued; /* "" enqueues. */ u_int64_t nw_handled; /* "" handled in worker. */ @@ -880,7 +891,7 @@ netisr2_dispatch_src(u_int proto, uintpt return (ENOBUFS); } sched_pin(); - if (cpuid != curcpu) + if (!netisr_hybridxcpu_enable && (cpuid != curcpu)) goto queue_fallback; nwsp = &nws[cpuid]; npwp = &nwsp->nws_work[proto]; @@ -915,7 +926,10 @@ netisr2_dispatch_src(u_int proto, uintpt NWS_LOCK(nwsp); nwsp->nws_flags &= ~NWS_DISPATCHING; npwp->nw_handled++; - npwp->nw_hybrid_dispatched++; + if (curcpu == cpuid) + npwp->nw_hybrid_dispatched++; + else + npwp->nw_hybrid_xcpudispatched++; /* * If other work was enqueued by another thread while we were direct @@ -1042,8 +1056,8 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 int cpu, first, proto; db_printf("%3s %5s %6s %5s %5s %5s %8s %8s %8s %8s %8s\n", "CPU", - "Pend", "Proto", "Len", "WMark", "Max", "Disp", "HDisp", "Drop", - "Queue", "Handle"); + "Pend", "Proto", "Len", "WMark", "Max", "Disp", "HDisp", + "XHDisp", "Drop", "Queue"); for (cpu = 0; cpu < MAXCPU; cpu++) { nwsp = &nws[cpu]; if (nwsp->nws_intr_event == NULL) @@ -1063,7 +1077,8 @@ DB_SHOW_COMMAND(netisr2, db_show_netisr2 np[proto].np_name, nwp->nw_len, nwp->nw_watermark, nwp->nw_qlimit, nwp->nw_dispatched, nwp->nw_hybrid_dispatched, - nwp->nw_qdrops, nwp->nw_queued, nwp->nw_handled); + nwp->nw_hybrid_xcpudispatched, nwp->nw_qdrops, + nwp->nw_queued); } } } From owner-svn-src-projects@FreeBSD.ORG Wed May 20 15:11:21 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 38DEF10656A7; Wed, 20 May 2009 15:11:21 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 254418FC35; Wed, 20 May 2009 15:11:21 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KFBLj3034751; Wed, 20 May 2009 15:11:21 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4KFBLVN034747; Wed, 20 May 2009 15:11:21 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905201511.n4KFBLVN034747@svn.freebsd.org> From: Rui Paulo Date: Wed, 20 May 2009 15:11:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192439 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 15:11:22 -0000 Author: rpaulo Date: Wed May 20 15:11:20 2009 New Revision: 192439 URL: http://svn.freebsd.org/changeset/base/192439 Log: * Rename mesh variables in node struct. * Use an enum for plink state. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_ioctl.c projects/mesh11s/sys/net80211/ieee80211_mesh.c projects/mesh11s/sys/net80211/ieee80211_node.c projects/mesh11s/sys/net80211/ieee80211_node.h Modified: projects/mesh11s/sys/net80211/ieee80211_ioctl.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_ioctl.c Wed May 20 12:26:36 2009 (r192438) +++ projects/mesh11s/sys/net80211/ieee80211_ioctl.c Wed May 20 15:11:20 2009 (r192439) @@ -441,9 +441,9 @@ get_sta_info(void *arg, struct ieee80211 else si->isi_inact = vap->iv_inact_init; si->isi_inact = (si->isi_inact - ni->ni_inact) * IEEE80211_INACT_WAIT; - si->isi_peerstate = ni->ni_peerstate; - si->isi_localid = ni->ni_llid; - si->isi_peerid = ni->ni_plid; + si->isi_peerstate = ni->ni_mlstate; + si->isi_localid = ni->ni_mllid; + si->isi_peerid = ni->ni_mlpid; if (ielen) { cp = ((uint8_t *)si) + si->isi_ie_off; Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 12:26:36 2009 (r192438) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 15:11:20 2009 (r192439) @@ -270,11 +270,11 @@ mesh_input(struct ieee80211_node *ni, st goto out; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "%s", "received data frame"); - if (ni->ni_peerstate != IEEE80211_NODE_MESH_ESTABLISHED) { + if (ni->ni_mlstate != IEEE80211_NODE_MESH_ESTABLISHED) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_MESH, ni->ni_macaddr, NULL, "peer link not yet established (%s)", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); } hdrspace = ieee80211_hdrspace(ic, wh) + sizeof(struct ieee80211_meshcntl); @@ -503,17 +503,17 @@ mesh_recv_mgmt(struct ieee80211_node *ni /* * Try to peer with this node. */ - get_random_bytes(&ni->ni_plid, 2); - ni->ni_peerstate = IEEE80211_NODE_MESH_OPENSNT; + get_random_bytes(&ni->ni_mlpid, 2); + ni->ni_mlstate = IEEE80211_NODE_MESH_OPENSNT; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); - vargs.fixedarg[0] = ni->ni_plid; + nodemeshstates[ni->ni_mlstate]); + vargs.fixedarg[0] = ni->ni_mlpid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_OPEN, vargs); - ni->ni_mrcount = 0; + ni->ni_mlrcnt = 0; mesh_peer_timeout_setup(ni); } if (ni != NULL) { @@ -720,23 +720,23 @@ mesh_recv_action(struct ieee80211_node * IEEE80211_NOTE(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, ni, "recv PEER OPEN, lid 0x%x", meshpeer->peer_llinkid); - switch (ni->ni_peerstate) { + switch (ni->ni_mlstate) { case IEEE80211_NODE_MESH_IDLE: - ni->ni_peerstate = IEEE80211_NODE_MESH_OPENRCV; + ni->ni_mlstate = IEEE80211_NODE_MESH_OPENRCV; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); - ni->ni_llid = meshpeer->peer_llinkid; - get_random_bytes(&ni->ni_plid, 2); - vargs.fixedarg[0] = ni->ni_plid; + nodemeshstates[ni->ni_mlstate]); + ni->ni_mllid = meshpeer->peer_llinkid; + get_random_bytes(&ni->ni_mlpid, 2); + vargs.fixedarg[0] = ni->ni_mlpid; /* Announce we're open too... */ ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_OPEN, vargs); /* ...and confirm the link. */ - vargs.fixedarg[0] = ni->ni_plid; - vargs.fixedarg[1] = ni->ni_llid; + vargs.fixedarg[0] = ni->ni_mlpid; + vargs.fixedarg[1] = ni->ni_mllid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CONFIRM, @@ -745,23 +745,23 @@ mesh_recv_action(struct ieee80211_node * break; case IEEE80211_NODE_MESH_OPENRCV: /* Duplicate open, confirm again. */ - ni->ni_llid = meshpeer->peer_llinkid; - vargs.fixedarg[0] = ni->ni_plid; - vargs.fixedarg[1] = ni->ni_llid; + ni->ni_mllid = meshpeer->peer_llinkid; + vargs.fixedarg[0] = ni->ni_mlpid; + vargs.fixedarg[1] = ni->ni_mllid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CONFIRM, vargs); break; case IEEE80211_NODE_MESH_OPENSNT: - ni->ni_peerstate = IEEE80211_NODE_MESH_OPENRCV; - ni->ni_llid = meshpeer->peer_llinkid; + ni->ni_mlstate = IEEE80211_NODE_MESH_OPENRCV; + ni->ni_mllid = meshpeer->peer_llinkid; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); - vargs.fixedarg[0] = ni->ni_plid; - vargs.fixedarg[1] = ni->ni_llid; + nodemeshstates[ni->ni_mlstate]); + vargs.fixedarg[0] = ni->ni_mlpid; + vargs.fixedarg[1] = ni->ni_mllid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CONFIRM, @@ -769,15 +769,15 @@ mesh_recv_action(struct ieee80211_node * /* NB: don't setup/clear any timeout */ break; case IEEE80211_NODE_MESH_CONFIRMRECV: - ni->ni_peerstate = + ni->ni_mlstate = IEEE80211_NODE_MESH_ESTABLISHED; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); - ni->ni_llid = meshpeer->peer_llinkid; - vargs.fixedarg[0] = ni->ni_plid; - vargs.fixedarg[1] = ni->ni_llid; + nodemeshstates[ni->ni_mlstate]); + ni->ni_mllid = meshpeer->peer_llinkid; + vargs.fixedarg[0] = ni->ni_mlpid; + vargs.fixedarg[1] = ni->ni_mllid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CONFIRM, @@ -785,16 +785,16 @@ mesh_recv_action(struct ieee80211_node * mesh_peer_timeout_stop(ni); break; case IEEE80211_NODE_MESH_ESTABLISHED: - vargs.fixedarg[0] = ni->ni_plid; - vargs.fixedarg[1] = ni->ni_llid; + vargs.fixedarg[0] = ni->ni_mlpid; + vargs.fixedarg[1] = ni->ni_mllid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CONFIRM, vargs); break; case IEEE80211_NODE_MESH_HOLDING: - vargs.fixedarg[0] = ni->ni_llid; - vargs.fixedarg[1] = ni->ni_plid; + vargs.fixedarg[0] = ni->ni_mllid; + vargs.fixedarg[1] = ni->ni_mlpid; vargs.fixedarg[2] = IEEE80211_REASON_MESH_MAX_RETRIES; ieee80211_send_action(ni, @@ -809,27 +809,27 @@ mesh_recv_action(struct ieee80211_node * IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, ni, "recv PEER CONFIRM, local id 0x%x, peer id 0x%x", meshpeer->peer_llinkid, meshpeer->peer_linkid); - switch (ni->ni_peerstate) { + switch (ni->ni_mlstate) { case IEEE80211_NODE_MESH_OPENRCV: - ni->ni_peerstate = + ni->ni_mlstate = IEEE80211_NODE_MESH_ESTABLISHED; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); mesh_peer_timeout_stop(ni); break; case IEEE80211_NODE_MESH_OPENSNT: - ni->ni_peerstate = + ni->ni_mlstate = IEEE80211_NODE_MESH_CONFIRMRECV; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); break; case IEEE80211_NODE_MESH_HOLDING: - vargs.fixedarg[0] = ni->ni_llid; - vargs.fixedarg[1] = ni->ni_plid; + vargs.fixedarg[0] = ni->ni_mllid; + vargs.fixedarg[1] = ni->ni_mlpid; vargs.fixedarg[2] = IEEE80211_REASON_MESH_MAX_RETRIES; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, @@ -840,7 +840,7 @@ mesh_recv_action(struct ieee80211_node * IEEE80211_DISCARD(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, wh, NULL, "received confirm in invalid " - "state %d", ni->ni_peerstate); + "state %d", ni->ni_mlstate); vap->iv_stats.is_rx_mgtdiscard++; } break; @@ -848,9 +848,13 @@ mesh_recv_action(struct ieee80211_node * IEEE80211_NOTE(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, ni, "%s", "recv PEER CLOSE"); - switch (ni->ni_peerstate) { + switch (ni->ni_mlstate) { + case IEEE80211_NODE_MESH_IDLE: + case IEEE80211_NODE_MESH_CONFIRMRECV: + case IEEE80211_NODE_MESH_ESTABLISHED: + break; case IEEE80211_NODE_MESH_OPENRCV: - ni->ni_peerstate = IEEE80211_NODE_MESH_HOLDING; + ni->ni_mlstate = IEEE80211_NODE_MESH_HOLDING; mesh_peer_timeout_setup(ni); break; case IEEE80211_NODE_MESH_OPENSNT: @@ -939,17 +943,17 @@ mesh_recv_action(struct ieee80211_node * static inline void mesh_peer_timeout_setup(struct ieee80211_node *ni) { - switch (ni->ni_peerstate) { + switch (ni->ni_mlstate) { case IEEE80211_NODE_MESH_HOLDING: - ni->ni_mtimerval = HOLDING_TIMEOUT; + ni->ni_mltval = HOLDING_TIMEOUT; break; case IEEE80211_NODE_MESH_CONFIRMRECV: - ni->ni_mtimerval = CONFIRM_TIMEOUT; + ni->ni_mltval = CONFIRM_TIMEOUT; break; default: - ni->ni_mtimerval = RETRY_TIMEOUT; + ni->ni_mltval = RETRY_TIMEOUT; } - callout_reset(&ni->ni_mtimer, ni->ni_mtimerval, mesh_peer_timeout_cb, + callout_reset(&ni->ni_mltimer, ni->ni_mltval, mesh_peer_timeout_cb, ni); } @@ -962,15 +966,15 @@ mesh_peer_timeout_backoff(struct ieee802 uint32_t r; r = arc4random(); - ni->ni_mtimerval += r % ni->ni_mtimerval; - callout_reset(&ni->ni_mtimer, ni->ni_mtimerval, mesh_peer_timeout_cb, + ni->ni_mltval += r % ni->ni_mltval; + callout_reset(&ni->ni_mltimer, ni->ni_mltval, mesh_peer_timeout_cb, ni); } static inline void mesh_peer_timeout_stop(struct ieee80211_node *ni) { - callout_stop(&ni->ni_mtimer); + callout_stop(&ni->ni_mltimer); } /* @@ -986,59 +990,62 @@ mesh_peer_timeout_cb(void *arg) IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "mesh link timeout, state %s, retry counter %d", - nodemeshstates[ni->ni_peerstate], ni->ni_mrcount); + nodemeshstates[ni->ni_mlstate], ni->ni_mlrcnt); - switch (ni->ni_peerstate) { + switch (ni->ni_mlstate) { + case IEEE80211_NODE_MESH_IDLE: + case IEEE80211_NODE_MESH_ESTABLISHED: + break; case IEEE80211_NODE_MESH_OPENSNT: case IEEE80211_NODE_MESH_OPENRCV: - if (ni->ni_mrcount == ieee80211_mesh_maxretries) { - vargs.fixedarg[0] = ni->ni_plid; + if (ni->ni_mlrcnt == ieee80211_mesh_maxretries) { + vargs.fixedarg[0] = ni->ni_mlpid; vargs.fixedarg[2] = IEEE80211_REASON_MESH_MAX_RETRIES; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CLOSE, vargs); - ni->ni_mrcount = 0; - ni->ni_peerstate = IEEE80211_NODE_MESH_HOLDING; + ni->ni_mlrcnt = 0; + ni->ni_mlstate = IEEE80211_NODE_MESH_HOLDING; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); mesh_peer_timeout_setup(ni); } else { - vargs.fixedarg[0] = ni->ni_plid; + vargs.fixedarg[0] = ni->ni_mlpid; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_OPEN, vargs); - ni->ni_mrcount++; + ni->ni_mlrcnt++; mesh_peer_timeout_backoff(ni); } break; case IEEE80211_NODE_MESH_CONFIRMRECV: - if (ni->ni_mrcount == ieee80211_mesh_maxretries) { - vargs.fixedarg[0] = ni->ni_plid; + if (ni->ni_mlrcnt == ieee80211_mesh_maxretries) { + vargs.fixedarg[0] = ni->ni_mlpid; vargs.fixedarg[2] = IEEE80211_REASON_MESH_CONFIRM_TIMEOUT; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHPEERING, IEEE80211_ACTION_MESHPEERING_CLOSE, vargs); - ni->ni_mrcount = 0; - ni->ni_peerstate = IEEE80211_NODE_MESH_HOLDING; + ni->ni_mlrcnt = 0; + ni->ni_mlstate = IEEE80211_NODE_MESH_HOLDING; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); mesh_peer_timeout_setup(ni); } else { - ni->ni_mrcount++; + ni->ni_mlrcnt++; mesh_peer_timeout_setup(ni); } break; case IEEE80211_NODE_MESH_HOLDING: - ni->ni_peerstate = IEEE80211_NODE_MESH_IDLE; + ni->ni_mlstate = IEEE80211_NODE_MESH_IDLE; IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni, "peer link: switching to state %s", - nodemeshstates[ni->ni_peerstate]); + nodemeshstates[ni->ni_mlstate]); break; } } Modified: projects/mesh11s/sys/net80211/ieee80211_node.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_node.c Wed May 20 12:26:36 2009 (r192438) +++ projects/mesh11s/sys/net80211/ieee80211_node.c Wed May 20 15:11:20 2009 (r192439) @@ -1399,7 +1399,7 @@ ieee80211_init_neighbor(struct ieee80211 if (vap->iv_opmode == IEEE80211_M_MBSS) { ni->ni_meshidlen = sp->meshid[1]; memcpy(ni->ni_meshid, sp->meshid + 2, sp->meshid[1]); - callout_init(&ni->ni_mtimer, CALLOUT_MPSAFE); + callout_init(&ni->ni_mltimer, CALLOUT_MPSAFE); } if (ieee80211_ies_init(&ni->ni_ies, sp->ies, sp->ies_len)) { Modified: projects/mesh11s/sys/net80211/ieee80211_node.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_node.h Wed May 20 12:26:36 2009 (r192438) +++ projects/mesh11s/sys/net80211/ieee80211_node.h Wed May 20 15:11:20 2009 (r192439) @@ -88,6 +88,15 @@ struct ieee80211_ies { int len; /* data size in bytes */ }; +enum ieee80211_mesh_state { + IEEE80211_NODE_MESH_IDLE = 0, + IEEE80211_NODE_MESH_OPENSNT = 1, /* open frame received */ + IEEE80211_NODE_MESH_OPENRCV = 2, /* open frame sent */ + IEEE80211_NODE_MESH_CONFIRMRECV = 3, /* confirm Frame recvived */ + IEEE80211_NODE_MESH_ESTABLISHED = 4, /* link established */ + IEEE80211_NODE_MESH_HOLDING = 5, /* link closing */ +}; + /* * Node specific information. Note that drivers are expected * to derive from this structure to add device-specific per-node @@ -176,19 +185,15 @@ struct ieee80211_node { uint8_t ni_dtim_count; /* DTIM count for last bcn */ /* 11s state */ -#define IEEE80211_NODE_MESH_IDLE 0 -#define IEEE80211_NODE_MESH_OPENSNT 1 /* Peer Open Frame Received */ -#define IEEE80211_NODE_MESH_OPENRCV 2 /* Peer Open Frame Sent */ -#define IEEE80211_NODE_MESH_CONFIRMRECV 3 /* Peer Confirm Frame Recvived */ -#define IEEE80211_NODE_MESH_ESTABLISHED 4 /* Peer Link Established */ -#define IEEE80211_NODE_MESH_HOLDING 5 /* Peer Link Closing */ - int8_t ni_peerstate; /* Mesh Peering state */ - uint16_t ni_llid; /* local link ID */ - uint16_t ni_plid; /* peer link ID */ - struct callout ni_mtimer; /* mesh timer */ - uint8_t ni_mrcount; /* mesh retry counter */ - uint8_t ni_mtimerval; /* mesh timer value */ + enum ieee80211_mesh_state ni_mlstate; /* peering management state */ + uint16_t ni_mllid; /* link local ID */ + uint16_t ni_mlpid; /* link peer ID */ + struct callout ni_mltimer; /* link mesh timer */ + uint8_t ni_mlrcnt; /* link mesh retry counter */ + uint8_t ni_mltval; /* link mesh timer value */ uint8_t ni_mnxthop[IEEE80211_ADDR_LEN]; + uint32_t ni_mpmetric; /* path metric */ + ieee80211_seq ni_mhwmpseq; /* HWMP path seq number */ /* 11n state */ uint16_t ni_htcap; /* HT capabilities */ From owner-svn-src-projects@FreeBSD.ORG Wed May 20 18:16:45 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3789106564A; Wed, 20 May 2009 18:16:45 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B10478FC15; Wed, 20 May 2009 18:16:45 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KIGjEW039395; Wed, 20 May 2009 18:16:45 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4KIGjRN039391; Wed, 20 May 2009 18:16:45 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905201816.n4KIGjRN039391@svn.freebsd.org> From: Rui Paulo Date: Wed, 20 May 2009 18:16:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192454 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 18:16:46 -0000 Author: rpaulo Date: Wed May 20 18:16:45 2009 New Revision: 192454 URL: http://svn.freebsd.org/changeset/base/192454 Log: Add HWMP variables. Add mesh forwarding variable control. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_freebsd.c projects/mesh11s/sys/net80211/ieee80211_hwmp.c projects/mesh11s/sys/net80211/ieee80211_hwmp.h projects/mesh11s/sys/net80211/ieee80211_mesh.c Modified: projects/mesh11s/sys/net80211/ieee80211_freebsd.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_freebsd.c Wed May 20 18:15:13 2009 (r192453) +++ projects/mesh11s/sys/net80211/ieee80211_freebsd.c Wed May 20 18:16:45 2009 (r192454) @@ -75,6 +75,9 @@ SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, C extern int ieee80211_mesh_ttl; SYSCTL_INT(_net_wlan_mesh, OID_AUTO, ttl, CTLTYPE_INT | CTLFLAG_RW, &ieee80211_mesh_ttl, 0, "TTL for mesh packets"); +extern int ieee80211_mesh_forwarding; +SYSCTL_INT(_net_wlan_mesh, OID_AUTO, forwarding, CTLTYPE_INT | CTLFLAG_RW, + &ieee80211_mesh_forwarding, 0, "Forward mesh packets"); MALLOC_DEFINE(M_80211_COM, "80211com", "802.11 com state"); Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Wed May 20 18:15:13 2009 (r192453) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Wed May 20 18:16:45 2009 (r192454) @@ -36,3 +36,45 @@ __FBSDID("$FreeBSD$"); */ #include "opt_inet.h" #include "opt_wlan.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include + + +int ieee80211_hwmp_maxhops = 31; +int ieee80211_hwmp_maxhopstime = 500; +int ieee80211_hwmp_maxprepretries = 3; +int ieee80211_hwmp_prepminint = 100; +int ieee80211_hwmp_perrminint = 100; +int ieee80211_hwmp_roottimeout = 5000; +int ieee80211_hwmp_pathtimeout = 5000; +int ieee80211_hwmp_rootmode = 0; +int ieee80211_hwmp_pathtoroottimeout = 5000; +int ieee80211_hmwp_rootint = 2000; +int ieee80211_hwmp_rannint = 1000; +int ieee80211_hwmp_targetonly = 1; /* reply to PREQs if we have the info */ +int ieee80211_hwmp_replyforward = 1; /* propagate PREQs */ +int ieee80211_hwmp_pathmaintenance = 2000; +int ieee80211_hwmp_confirmint = 2000; + Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.h Wed May 20 18:15:13 2009 (r192453) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Wed May 20 18:16:45 2009 (r192454) @@ -31,4 +31,8 @@ #ifndef _NET80211_IEEE80211_HWMP_H_ #define _NET80211_IEEE80211_HWMP_H_ +void ieee80211_hwmp_recv_path(struct ieee80211vap *, struct ieee80211_node *, + struct mbuf *); + + #endif /* _NET80211_IEEE80211_HWMP_H_ */ Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 18:15:13 2009 (r192453) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 18:16:45 2009 (r192454) @@ -90,6 +90,7 @@ static const int ieee80211_mesh_confirmt static const int ieee80211_mesh_maxretries = 2; /* non static for sysctl hookup */ int ieee80211_mesh_ttl = 31; +int ieee80211_mesh_forwarding = 1; static const char *nodemeshstates[] = { "IDLE", From owner-svn-src-projects@FreeBSD.ORG Wed May 20 20:10:46 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6809106564A; Wed, 20 May 2009 20:10:46 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D591D8FC1B; Wed, 20 May 2009 20:10:46 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KKAk86042436; Wed, 20 May 2009 20:10:46 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4KKAk9f042435; Wed, 20 May 2009 20:10:46 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905202010.n4KKAk9f042435@svn.freebsd.org> From: Rui Paulo Date: Wed, 20 May 2009 20:10:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192472 - projects/mesh11s/sbin/ifconfig X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 20:10:47 -0000 Author: rpaulo Date: Wed May 20 20:10:46 2009 New Revision: 192472 URL: http://svn.freebsd.org/changeset/base/192472 Log: fix typo Modified: projects/mesh11s/sbin/ifconfig/ifieee80211.c Modified: projects/mesh11s/sbin/ifconfig/ifieee80211.c ============================================================================== --- projects/mesh11s/sbin/ifconfig/ifieee80211.c Wed May 20 20:08:51 2009 (r192471) +++ projects/mesh11s/sbin/ifconfig/ifieee80211.c Wed May 20 20:10:46 2009 (r192472) @@ -3262,7 +3262,7 @@ list_stations(int s) printies(cp + si->isi_ie_off, si->isi_ie_len, 24); if (verbose && opmode == IEEE80211_M_MBSS) printf(" MESHLINK", si->isi_peerid, si->isi_localid, + "STATE %s>", si->isi_peerid, si->isi_localid, mesh_linkstate_string(si->isi_peerstate)); printmimo(&si->isi_mimo); printf("\n"); From owner-svn-src-projects@FreeBSD.ORG Wed May 20 22:33:15 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C1461065686; Wed, 20 May 2009 22:33:15 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 508078FC1E; Wed, 20 May 2009 22:33:15 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KMXFaK046480; Wed, 20 May 2009 22:33:15 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4KMXFmk046478; Wed, 20 May 2009 22:33:15 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905202233.n4KMXFmk046478@svn.freebsd.org> From: Rui Paulo Date: Wed, 20 May 2009 22:33:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192495 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 22:33:15 -0000 Author: rpaulo Date: Wed May 20 22:33:14 2009 New Revision: 192495 URL: http://svn.freebsd.org/changeset/base/192495 Log: Use fixed point to calculate airtime link metric and rename the function to ieee80211_airtime_calc() so it can be used by the HWMP module. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c projects/mesh11s/sys/net80211/ieee80211_mesh.h Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 22:32:25 2009 (r192494) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed May 20 22:33:14 2009 (r192495) @@ -77,8 +77,6 @@ static int mesh_verify_meshid(struct iee struct ieee80211_meshid_ie *); static int mesh_verify_meshconf(struct ieee80211vap *, struct ieee80211_meshconf_ie *); -static uint32_t mesh_compute_airtime(struct ieee80211vap *, - struct ieee80211_node *); /* timeout values in miliseconds */ static const int ieee80211_mesh_retrytimeout = 40; @@ -915,7 +913,7 @@ mesh_recv_action(struct ieee80211_node * { uint32_t metric; - metric = mesh_compute_airtime(vap, ni); + metric = ieee80211_airtime_calc(vap, ni); vargs.ptrarg = &metric; ieee80211_send_action(ni, IEEE80211_ACTION_CAT_MESHLINK, @@ -1190,23 +1188,30 @@ ieee80211_add_meshprep(uint8_t *frm, str /* * Compute an Airtime Link Metric for the link with this node. - * XXX needs work + * + * Based on D3.0. */ -static uint32_t -mesh_compute_airtime(struct ieee80211vap *vap, struct ieee80211_node *ni) +uint32_t +ieee80211_airtime_calc(struct ieee80211vap *vap, struct ieee80211_node *ni) { - uint32_t res, overhead, rate, errrate; - const static int nbits = 8192; +#define M_BITS 8 +#define S_FACTOR (2 * M_BITS) + uint64_t res; + uint32_t overhead, rate, errrate; + const static int nbits = 8192 << M_BITS; /* Channel access overhead */ - overhead = 123; /* XXX */ + overhead = 123 << M_BITS; /* XXX */ /* In Mbps */ - rate = 10; + rate = ni->ni_txrate; /* In percentage */ - errrate = 10; - res = (overhead + (nbits / rate)) * (100 / (100 - errrate)); - - return res; + errrate = (10 << M_BITS) / 100; + res = (overhead + (nbits / rate)) * + ((1 << S_FACTOR) / ((1 << M_BITS) - errrate)); + + return (uint32_t) (res >> S_FACTOR); +#undef M_BITS +#undef S_FACTOR } /* Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.h Wed May 20 22:32:25 2009 (r192494) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.h Wed May 20 22:33:14 2009 (r192495) @@ -329,6 +329,8 @@ uint8_t * ieee80211_add_meshpeer(uint8_t uint16_t); uint8_t * ieee80211_add_meshprep(uint8_t *, struct ieee80211_meshprep_ie *); +uint32_t ieee80211_airtime_calc(struct ieee80211vap *, + struct ieee80211_node *); uint8_t * ieee80211_add_meshlink(uint8_t *, uint32_t); void ieee80211_create_mbss(struct ieee80211vap *, struct ieee80211_channel *); From owner-svn-src-projects@FreeBSD.ORG Wed May 20 23:07:11 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BC651065736; Wed, 20 May 2009 23:07:11 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3AC058FC1E; Wed, 20 May 2009 23:07:11 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4KN7BTY047122; Wed, 20 May 2009 23:07:11 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4KN7Bk2047121; Wed, 20 May 2009 23:07:11 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905202307.n4KN7Bk2047121@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Wed, 20 May 2009 23:07:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192496 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2009 23:07:11 -0000 Author: gonzo Date: Wed May 20 23:07:10 2009 New Revision: 192496 URL: http://svn.freebsd.org/changeset/base/192496 Log: - Invalidate caches for respective areain KSEG0 in order to prevent further overwriting of KSEG1 data with writeback. Modified: projects/mips/sys/mips/mips/pmap.c Modified: projects/mips/sys/mips/mips/pmap.c ============================================================================== --- projects/mips/sys/mips/mips/pmap.c Wed May 20 22:33:14 2009 (r192495) +++ projects/mips/sys/mips/mips/pmap.c Wed May 20 23:07:10 2009 (r192496) @@ -2411,6 +2411,8 @@ pmap_copy_page(vm_page_t src, vm_page_t * to make sure that data in SDRAM is up to date */ pmap_flush_pvcache(src); + mips_dcache_wbinv_range_index( + MIPS_PHYS_TO_CACHED(phy_dst), NBPG); va_src = MIPS_PHYS_TO_UNCACHED(phy_src); va_dst = MIPS_PHYS_TO_UNCACHED(phy_dst); bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); @@ -2916,6 +2918,7 @@ pmap_activate(struct thread *td) PCPU_SET(segbase, pmap->pm_segtab); MachSetPID(pmap->pm_asid[PCPU_GET(cpuid)].asid); } + PCPU_SET(curpmap, pmap); critical_exit(); } From owner-svn-src-projects@FreeBSD.ORG Thu May 21 17:39:34 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2A5C8106574F; Thu, 21 May 2009 17:39:34 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 197508FC1E; Thu, 21 May 2009 17:39:34 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4LHdXst073841; Thu, 21 May 2009 17:39:33 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4LHdXtp073840; Thu, 21 May 2009 17:39:33 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905211739.n4LHdXtp073840@svn.freebsd.org> From: Rui Paulo Date: Thu, 21 May 2009 17:39:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192553 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2009 17:39:34 -0000 Author: rpaulo Date: Thu May 21 17:39:33 2009 New Revision: 192553 URL: http://svn.freebsd.org/changeset/base/192553 Log: Fix build. Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.h Thu May 21 17:39:21 2009 (r192552) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Thu May 21 17:39:33 2009 (r192553) @@ -31,8 +31,9 @@ #ifndef _NET80211_IEEE80211_HWMP_H_ #define _NET80211_IEEE80211_HWMP_H_ -void ieee80211_hwmp_recv_path(struct ieee80211vap *, struct ieee80211_node *, - struct mbuf *); - +#if 0 +void ieee80211_hwmp_recv_action(struct ieee80211vap *, + struct ieee80211_node *, struct mbuf *); +#endif #endif /* _NET80211_IEEE80211_HWMP_H_ */ From owner-svn-src-projects@FreeBSD.ORG Thu May 21 17:55:48 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75C4A106566B; Thu, 21 May 2009 17:55:48 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 603F98FC26; Thu, 21 May 2009 17:55:48 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4LHtm37074486; Thu, 21 May 2009 17:55:48 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4LHtlcU074476; Thu, 21 May 2009 17:55:47 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905211755.n4LHtlcU074476@svn.freebsd.org> From: Rui Paulo Date: Thu, 21 May 2009 17:55:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192560 - in projects/mesh11s: . contrib/bind9 contrib/cpio contrib/csup contrib/file contrib/gdb contrib/gdtoa contrib/less contrib/libpcap contrib/ncurses contrib/netcat contrib/ntp c... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2009 17:55:48 -0000 Author: rpaulo Date: Thu May 21 17:55:47 2009 New Revision: 192560 URL: http://svn.freebsd.org/changeset/base/192560 Log: MFC 192402:192554 Added: projects/mesh11s/sys/dev/usb/controller/avr32dci.c - copied unchanged from r192554, head/sys/dev/usb/controller/avr32dci.c projects/mesh11s/sys/dev/usb/controller/avr32dci.h - copied unchanged from r192554, head/sys/dev/usb/controller/avr32dci.h projects/mesh11s/sys/net80211/ieee80211_radiotap.c - copied unchanged from r192554, head/sys/net80211/ieee80211_radiotap.c projects/mesh11s/sys/powerpc/booke/mp_cpudep.c - copied unchanged from r192554, head/sys/powerpc/booke/mp_cpudep.c projects/mesh11s/tools/regression/bin/date/ - copied from r192554, head/tools/regression/bin/date/ Deleted: projects/mesh11s/share/man/man4/usb2_core.4 Modified: projects/mesh11s/ (props changed) projects/mesh11s/UPDATING projects/mesh11s/contrib/bind9/ (props changed) projects/mesh11s/contrib/cpio/ (props changed) projects/mesh11s/contrib/csup/ (props changed) projects/mesh11s/contrib/file/ (props changed) projects/mesh11s/contrib/gdb/ (props changed) projects/mesh11s/contrib/gdtoa/ (props changed) projects/mesh11s/contrib/less/ (props changed) projects/mesh11s/contrib/libpcap/ (props changed) projects/mesh11s/contrib/ncurses/ (props changed) projects/mesh11s/contrib/netcat/ (props changed) projects/mesh11s/contrib/ntp/ (props changed) projects/mesh11s/contrib/openbsm/ (props changed) projects/mesh11s/contrib/openpam/ (props changed) projects/mesh11s/contrib/pf/ (props changed) projects/mesh11s/contrib/sendmail/ (props changed) projects/mesh11s/contrib/tcpdump/ (props changed) projects/mesh11s/contrib/top/ (props changed) projects/mesh11s/contrib/top/install-sh (props changed) projects/mesh11s/contrib/wpa/ (props changed) projects/mesh11s/crypto/openssh/ (props changed) projects/mesh11s/crypto/openssl/ (props changed) projects/mesh11s/etc/mtree/BSD.include.dist projects/mesh11s/include/Makefile projects/mesh11s/lib/libc/ (props changed) projects/mesh11s/lib/libc/posix1e/posix1e.3 projects/mesh11s/lib/libc/stdio/asprintf.c (props changed) projects/mesh11s/lib/libc/stdtime/ (props changed) projects/mesh11s/lib/libc/string/ffsll.c (props changed) projects/mesh11s/lib/libc/string/flsll.c (props changed) projects/mesh11s/lib/libc/string/wcpcpy.c (props changed) projects/mesh11s/lib/libc/string/wcpncpy.c (props changed) projects/mesh11s/lib/libdisk/open_ia64_disk.c projects/mesh11s/lib/libusb/ (props changed) projects/mesh11s/lib/libusb/libusb.3 (contents, props changed) projects/mesh11s/lib/libusb/usb.h (props changed) projects/mesh11s/lib/libutil/ (props changed) projects/mesh11s/release/doc/share/misc/dev.archlist.txt projects/mesh11s/sbin/ (props changed) projects/mesh11s/sbin/ipfw/ (props changed) projects/mesh11s/share/man/man4/altq.4 projects/mesh11s/share/man/man4/nge.4 projects/mesh11s/share/man/man4/usb.4 projects/mesh11s/share/man/man9/atomic.9 projects/mesh11s/share/zoneinfo/ (props changed) projects/mesh11s/sys/ (props changed) projects/mesh11s/sys/amd64/amd64/mca.c projects/mesh11s/sys/amd64/include/xen/ (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c (props changed) projects/mesh11s/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c (props changed) projects/mesh11s/sys/compat/svr4/svr4_misc.c projects/mesh11s/sys/conf/files projects/mesh11s/sys/conf/files.powerpc projects/mesh11s/sys/contrib/dev/acpica/ (props changed) projects/mesh11s/sys/contrib/pf/ (props changed) projects/mesh11s/sys/dev/aac/aac.c projects/mesh11s/sys/dev/acpica/acpi.c projects/mesh11s/sys/dev/age/if_age.c projects/mesh11s/sys/dev/amr/amr.c projects/mesh11s/sys/dev/amr/amr_linux.c projects/mesh11s/sys/dev/arcmsr/arcmsr.c projects/mesh11s/sys/dev/ata/ata-usb.c (contents, props changed) projects/mesh11s/sys/dev/ata/chipsets/ata-promise.c projects/mesh11s/sys/dev/ath/if_ath.c projects/mesh11s/sys/dev/ath/if_athvar.h projects/mesh11s/sys/dev/bwi/if_bwi.c projects/mesh11s/sys/dev/bwi/if_bwivar.h projects/mesh11s/sys/dev/ciss/ciss.c projects/mesh11s/sys/dev/cxgb/ (props changed) projects/mesh11s/sys/dev/cxgb/common/cxgb_ael1002.c projects/mesh11s/sys/dev/cxgb/common/cxgb_common.h projects/mesh11s/sys/dev/cxgb/common/cxgb_t3_hw.c projects/mesh11s/sys/dev/cxgb/cxgb_adapter.h projects/mesh11s/sys/dev/cxgb/cxgb_main.c projects/mesh11s/sys/dev/cxgb/cxgb_sge.c projects/mesh11s/sys/dev/if_ndis/if_ndis.c projects/mesh11s/sys/dev/if_ndis/if_ndis_usb.c projects/mesh11s/sys/dev/iir/iir_ctrl.c projects/mesh11s/sys/dev/ipw/if_ipw.c projects/mesh11s/sys/dev/ipw/if_ipwvar.h projects/mesh11s/sys/dev/iwi/if_iwi.c projects/mesh11s/sys/dev/iwi/if_iwivar.h projects/mesh11s/sys/dev/iwn/if_iwn.c projects/mesh11s/sys/dev/iwn/if_iwnvar.h projects/mesh11s/sys/dev/malo/if_malo.c projects/mesh11s/sys/dev/malo/if_malo.h projects/mesh11s/sys/dev/mfi/mfi.c projects/mesh11s/sys/dev/mfi/mfi_linux.c projects/mesh11s/sys/dev/mpt/mpt_raid.c projects/mesh11s/sys/dev/mpt/mpt_user.c projects/mesh11s/sys/dev/nge/if_nge.c projects/mesh11s/sys/dev/nge/if_ngereg.h projects/mesh11s/sys/dev/ral/rt2560.c projects/mesh11s/sys/dev/ral/rt2560var.h projects/mesh11s/sys/dev/ral/rt2661.c projects/mesh11s/sys/dev/ral/rt2661var.h projects/mesh11s/sys/dev/sound/midi/midi.c projects/mesh11s/sys/dev/sound/pci/emu10kx-midi.c projects/mesh11s/sys/dev/sound/pci/via82c686.h projects/mesh11s/sys/dev/sound/sbus/cs4231.h projects/mesh11s/sys/dev/sound/usb/uaudio.c (contents, props changed) projects/mesh11s/sys/dev/sound/usb/uaudio.h (props changed) projects/mesh11s/sys/dev/sound/usb/uaudio_pcm.c (props changed) projects/mesh11s/sys/dev/sound/usb/uaudioreg.h (contents, props changed) projects/mesh11s/sys/dev/twa/tw_osl_freebsd.c projects/mesh11s/sys/dev/twe/twe_freebsd.c projects/mesh11s/sys/dev/usb/README.TXT (props changed) projects/mesh11s/sys/dev/usb/bluetooth/TODO.TXT (props changed) projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt.c (contents, props changed) projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt_var.h (props changed) projects/mesh11s/sys/dev/usb/bluetooth/ubtbcmfw.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/at91dci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/at91dci.h (contents, props changed) projects/mesh11s/sys/dev/usb/controller/at91dci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci.h (contents, props changed) projects/mesh11s/sys/dev/usb/controller/atmegadci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/ehci.h (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_ixp4xx.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_mbus.c (props changed) projects/mesh11s/sys/dev/usb/controller/ehci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg.h (contents, props changed) projects/mesh11s/sys/dev/usb/controller/musb_otg_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ohci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/ohci.h (props changed) projects/mesh11s/sys/dev/usb/controller/ohci_atmelarm.c (props changed) projects/mesh11s/sys/dev/usb/controller/ohci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/uhci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/uhci.h (props changed) projects/mesh11s/sys/dev/usb/controller/uhci_pci.c (props changed) projects/mesh11s/sys/dev/usb/controller/usb_controller.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci.c (contents, props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci.h (contents, props changed) projects/mesh11s/sys/dev/usb/controller/uss820dci_atmelarm.c (contents, props changed) projects/mesh11s/sys/dev/usb/input/uhid.c (contents, props changed) projects/mesh11s/sys/dev/usb/input/ukbd.c (contents, props changed) projects/mesh11s/sys/dev/usb/input/ums.c (contents, props changed) projects/mesh11s/sys/dev/usb/input/usb_rdesc.h (props changed) projects/mesh11s/sys/dev/usb/misc/udbp.c (contents, props changed) projects/mesh11s/sys/dev/usb/misc/udbp.h (props changed) projects/mesh11s/sys/dev/usb/misc/ufm.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_aue.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_auereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_axe.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_axereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_cdce.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_cdcereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_cue.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_cuereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_kue.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_kuefw.h (props changed) projects/mesh11s/sys/dev/usb/net/if_kuereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_rue.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_ruereg.h (props changed) projects/mesh11s/sys/dev/usb/net/if_udav.c (contents, props changed) projects/mesh11s/sys/dev/usb/net/if_udavreg.h (props changed) projects/mesh11s/sys/dev/usb/net/usb_ethernet.c (props changed) projects/mesh11s/sys/dev/usb/net/usb_ethernet.h (props changed) projects/mesh11s/sys/dev/usb/quirk/usb_quirk.c (props changed) projects/mesh11s/sys/dev/usb/quirk/usb_quirk.h (props changed) projects/mesh11s/sys/dev/usb/serial/u3g.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uark.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/ubsa.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/ubser.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uchcom.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/ucycom.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/ufoma.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uftdi.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uftdi_reg.h (props changed) projects/mesh11s/sys/dev/usb/serial/ugensa.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uipaq.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/ulpt.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/umct.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/umodem.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/umoscom.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uplcom.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/usb_serial.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/usb_serial.h (props changed) projects/mesh11s/sys/dev/usb/serial/uslcom.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uvisor.c (contents, props changed) projects/mesh11s/sys/dev/usb/serial/uvscom.c (contents, props changed) projects/mesh11s/sys/dev/usb/storage/rio500_usb.h (props changed) projects/mesh11s/sys/dev/usb/storage/umass.c (contents, props changed) projects/mesh11s/sys/dev/usb/storage/urio.c (contents, props changed) projects/mesh11s/sys/dev/usb/storage/ustorage_fs.c (contents, props changed) projects/mesh11s/sys/dev/usb/template/usb_template.c (contents, props changed) projects/mesh11s/sys/dev/usb/template/usb_template.h (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_cdce.c (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_msc.c (props changed) projects/mesh11s/sys/dev/usb/template/usb_template_mtp.c (props changed) projects/mesh11s/sys/dev/usb/ufm_ioctl.h (props changed) projects/mesh11s/sys/dev/usb/usb.h (props changed) projects/mesh11s/sys/dev/usb/usb_bus.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_busdma.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_busdma.h (props changed) projects/mesh11s/sys/dev/usb/usb_cdc.h (props changed) projects/mesh11s/sys/dev/usb/usb_compat_linux.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_compat_linux.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_controller.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_core.c (props changed) projects/mesh11s/sys/dev/usb/usb_core.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_debug.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_debug.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_defs.h (props changed) projects/mesh11s/sys/dev/usb/usb_dev.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_dev.h (props changed) projects/mesh11s/sys/dev/usb/usb_device.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_device.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_dynamic.c (props changed) projects/mesh11s/sys/dev/usb/usb_dynamic.h (props changed) projects/mesh11s/sys/dev/usb/usb_endian.h (props changed) projects/mesh11s/sys/dev/usb/usb_error.c (props changed) projects/mesh11s/sys/dev/usb/usb_error.h (props changed) projects/mesh11s/sys/dev/usb/usb_generic.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_generic.h (props changed) projects/mesh11s/sys/dev/usb/usb_handle_request.c (props changed) projects/mesh11s/sys/dev/usb/usb_handle_request.h (props changed) projects/mesh11s/sys/dev/usb/usb_hid.c (props changed) projects/mesh11s/sys/dev/usb/usb_hid.h (props changed) projects/mesh11s/sys/dev/usb/usb_hub.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_hub.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_if.m (props changed) projects/mesh11s/sys/dev/usb/usb_ioctl.h (props changed) projects/mesh11s/sys/dev/usb/usb_lookup.c (props changed) projects/mesh11s/sys/dev/usb/usb_lookup.h (props changed) projects/mesh11s/sys/dev/usb/usb_mbuf.c (props changed) projects/mesh11s/sys/dev/usb/usb_mbuf.h (props changed) projects/mesh11s/sys/dev/usb/usb_mfunc.h (props changed) projects/mesh11s/sys/dev/usb/usb_msctest.c (props changed) projects/mesh11s/sys/dev/usb/usb_msctest.h (props changed) projects/mesh11s/sys/dev/usb/usb_parse.c (props changed) projects/mesh11s/sys/dev/usb/usb_parse.h (props changed) projects/mesh11s/sys/dev/usb/usb_pci.h (props changed) projects/mesh11s/sys/dev/usb/usb_process.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_process.h (props changed) projects/mesh11s/sys/dev/usb/usb_request.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_request.h (props changed) projects/mesh11s/sys/dev/usb/usb_revision.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_transfer.c (contents, props changed) projects/mesh11s/sys/dev/usb/usb_transfer.h (contents, props changed) projects/mesh11s/sys/dev/usb/usb_util.c (props changed) projects/mesh11s/sys/dev/usb/usb_util.h (props changed) projects/mesh11s/sys/dev/usb/usbdevs (props changed) projects/mesh11s/sys/dev/usb/usbhid.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rum.c (contents, props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumfw.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumreg.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_rumvar.h (contents, props changed) projects/mesh11s/sys/dev/usb/wlan/if_uath.c projects/mesh11s/sys/dev/usb/wlan/if_uathvar.h projects/mesh11s/sys/dev/usb/wlan/if_upgt.c projects/mesh11s/sys/dev/usb/wlan/if_ural.c (contents, props changed) projects/mesh11s/sys/dev/usb/wlan/if_uralreg.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_uralvar.h (contents, props changed) projects/mesh11s/sys/dev/usb/wlan/if_zyd.c (contents, props changed) projects/mesh11s/sys/dev/usb/wlan/if_zydfw.h (props changed) projects/mesh11s/sys/dev/usb/wlan/if_zydreg.h (props changed) projects/mesh11s/sys/dev/wi/if_wi.c projects/mesh11s/sys/dev/wi/if_wireg.h projects/mesh11s/sys/dev/wi/if_wivar.h projects/mesh11s/sys/dev/wpi/if_wpi.c projects/mesh11s/sys/dev/wpi/if_wpivar.h projects/mesh11s/sys/dev/xen/netfront/ (props changed) projects/mesh11s/sys/dev/xen/xenpci/ (props changed) projects/mesh11s/sys/fs/nfsserver/nfs_nfsdport.c projects/mesh11s/sys/fs/nfsserver/nfs_nfsdstate.c projects/mesh11s/sys/i386/acpica/acpi_machdep.c projects/mesh11s/sys/i386/bios/smapi.c projects/mesh11s/sys/i386/i386/mca.c projects/mesh11s/sys/kern/kern_conf.c projects/mesh11s/sys/kern/kern_descrip.c projects/mesh11s/sys/kern/kern_mutex.c projects/mesh11s/sys/kern/kern_poll.c projects/mesh11s/sys/kern/subr_bus.c projects/mesh11s/sys/kern/subr_witness.c projects/mesh11s/sys/kern/tty_inq.c projects/mesh11s/sys/kern/vfs_bio.c projects/mesh11s/sys/legacy/dev/ata/ata-usb.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.h (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudio_pcm.c (props changed) projects/mesh11s/sys/legacy/dev/sound/usb/uaudioreg.h (props changed) projects/mesh11s/sys/legacy/dev/usb/ (props changed) projects/mesh11s/sys/legacy/dev/usb/ehci_ixp4xx.c (props changed) projects/mesh11s/sys/modules/dtrace/dtnfsclient/ (props changed) projects/mesh11s/sys/modules/ip6_mroute_mod/ (props changed) projects/mesh11s/sys/modules/ipmi/ipmi_linux/ (props changed) projects/mesh11s/sys/net/if_llatbl.c projects/mesh11s/sys/net/if_llatbl.h projects/mesh11s/sys/net80211/ieee80211.c projects/mesh11s/sys/net80211/ieee80211_adhoc.c projects/mesh11s/sys/net80211/ieee80211_ddb.c projects/mesh11s/sys/net80211/ieee80211_freebsd.c projects/mesh11s/sys/net80211/ieee80211_freebsd.h projects/mesh11s/sys/net80211/ieee80211_hostap.c projects/mesh11s/sys/net80211/ieee80211_ht.c projects/mesh11s/sys/net80211/ieee80211_input.c projects/mesh11s/sys/net80211/ieee80211_monitor.c projects/mesh11s/sys/net80211/ieee80211_node.c projects/mesh11s/sys/net80211/ieee80211_node.h projects/mesh11s/sys/net80211/ieee80211_output.c projects/mesh11s/sys/net80211/ieee80211_proto.c projects/mesh11s/sys/net80211/ieee80211_proto.h projects/mesh11s/sys/net80211/ieee80211_scan.c projects/mesh11s/sys/net80211/ieee80211_scan.h projects/mesh11s/sys/net80211/ieee80211_scan_sta.c projects/mesh11s/sys/net80211/ieee80211_sta.c projects/mesh11s/sys/net80211/ieee80211_superg.c projects/mesh11s/sys/net80211/ieee80211_tdma.c projects/mesh11s/sys/net80211/ieee80211_tdma.h projects/mesh11s/sys/net80211/ieee80211_var.h projects/mesh11s/sys/net80211/ieee80211_wds.c projects/mesh11s/sys/netinet/in.c projects/mesh11s/sys/netinet/ip_output.c projects/mesh11s/sys/netinet6/in6.c projects/mesh11s/sys/netinet6/mld6.c projects/mesh11s/sys/netnatm/natm.c projects/mesh11s/sys/nfs4client/nfs4_dev.c projects/mesh11s/sys/nlm/nlm.h projects/mesh11s/sys/nlm/nlm_prot_impl.c projects/mesh11s/sys/powerpc/booke/clock.c projects/mesh11s/sys/powerpc/booke/locore.S projects/mesh11s/sys/powerpc/booke/machdep.c projects/mesh11s/sys/powerpc/booke/platform_bare.c projects/mesh11s/sys/powerpc/booke/pmap.c projects/mesh11s/sys/powerpc/booke/trap_subr.S projects/mesh11s/sys/powerpc/booke/vm_machdep.c projects/mesh11s/sys/powerpc/include/mutex.h projects/mesh11s/sys/powerpc/include/pcpu.h projects/mesh11s/sys/powerpc/include/spr.h projects/mesh11s/sys/powerpc/mpc85xx/ocpbus.c projects/mesh11s/sys/powerpc/mpc85xx/ocpbus.h projects/mesh11s/sys/powerpc/powerpc/busdma_machdep.c projects/mesh11s/sys/powerpc/powerpc/genassym.c projects/mesh11s/sys/powerpc/powerpc/mp_machdep.c projects/mesh11s/sys/powerpc/powerpc/openpic.c projects/mesh11s/sys/sparc64/conf/GENERIC projects/mesh11s/sys/sys/interrupt.h projects/mesh11s/sys/sys/param.h projects/mesh11s/sys/sys/proc.h projects/mesh11s/sys/xen/evtchn.h (props changed) projects/mesh11s/sys/xen/hypervisor.h (props changed) projects/mesh11s/sys/xen/xen_intr.h (props changed) projects/mesh11s/tools/regression/lib/msun/test-conj.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) projects/mesh11s/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs.h (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5210.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5211.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5212.c (props changed) projects/mesh11s/tools/tools/ath/common/dumpregs_5416.c (props changed) projects/mesh11s/usr.bin/csup/ (props changed) projects/mesh11s/usr.bin/perror/Makefile projects/mesh11s/usr.bin/perror/perror.c projects/mesh11s/usr.bin/procstat/ (props changed) projects/mesh11s/usr.sbin/dumpcis/cardinfo.h (props changed) projects/mesh11s/usr.sbin/dumpcis/cis.h (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/mesh11s/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/mesh11s/usr.sbin/makefs/getid.c (props changed) projects/mesh11s/usr.sbin/pwd_mkdb/pwd_mkdb.c projects/mesh11s/usr.sbin/zic/ (props changed) Modified: projects/mesh11s/UPDATING ============================================================================== --- projects/mesh11s/UPDATING Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/UPDATING Thu May 21 17:55:47 2009 (r192560) @@ -22,6 +22,18 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090520: + The sysctl tree for the usb stack has renamed from hw.usb2.* to + hw.usb.* and is now consistent again with previous releases. + +20090520: + 802.11 monitor mode support was revised and driver api's + were changed. Drivers dependent on net80211 now support + DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No + user-visible data structures were changed but applications + that use DLT_IEEE802_11 may require changes. + Bump __FreeBSD_version to 800088. + 20090430: The layout of the following structs has changed: sysctl_oid, socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, Modified: projects/mesh11s/etc/mtree/BSD.include.dist ============================================================================== --- projects/mesh11s/etc/mtree/BSD.include.dist Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/etc/mtree/BSD.include.dist Thu May 21 17:55:47 2009 (r192560) @@ -136,6 +136,8 @@ .. msdosfs .. + nfs + .. ntfs .. nullfs Modified: projects/mesh11s/include/Makefile ============================================================================== --- projects/mesh11s/include/Makefile Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/include/Makefile Thu May 21 17:55:47 2009 (r192560) @@ -43,7 +43,7 @@ LSUBDIRS= cam/scsi \ dev/ic dev/iicbus ${_dev_ieee488} dev/lmc dev/ofw \ dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus \ dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \ - fs/devfs fs/fdescfs fs/fifofs fs/msdosfs fs/ntfs fs/nullfs \ + fs/devfs fs/fdescfs fs/fifofs fs/msdosfs fs/nfs fs/ntfs fs/nullfs \ ${_fs_nwfs} fs/portalfs fs/procfs fs/smbfs fs/udf fs/unionfs \ geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ geom/mirror geom/multipath geom/nop \ Modified: projects/mesh11s/lib/libc/posix1e/posix1e.3 ============================================================================== --- projects/mesh11s/lib/libc/posix1e/posix1e.3 Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/lib/libc/posix1e/posix1e.3 Thu May 21 17:55:47 2009 (r192560) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 17, 2000 +.Dd May 20, 2009 .Dt POSIX1E 3 .Os .Sh NAME @@ -36,7 +36,6 @@ .Sh SYNOPSIS .In sys/types.h .In sys/acl.h -.\" .In sys/audit.h .\" .In sys/capability.h .In sys/mac.h .Sh DESCRIPTION @@ -104,6 +103,7 @@ structure. .Sh SEE ALSO .Xr extattr 2 , .Xr acl 3 , +.Xr libbsm 3 , .Xr mac 3 , .Xr acl 9 , .Xr extattr 9 , Modified: projects/mesh11s/lib/libdisk/open_ia64_disk.c ============================================================================== --- projects/mesh11s/lib/libdisk/open_ia64_disk.c Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/lib/libdisk/open_ia64_disk.c Thu May 21 17:55:47 2009 (r192560) @@ -40,16 +40,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include "libdisk.h" -static uuid_t _efi = GPT_ENT_TYPE_EFI; -static uuid_t _mbr = GPT_ENT_TYPE_MBR; -static uuid_t _fbsd = GPT_ENT_TYPE_FREEBSD; -static uuid_t _swap = GPT_ENT_TYPE_FREEBSD_SWAP; -static uuid_t _ufs = GPT_ENT_TYPE_FREEBSD_UFS; - static struct disk * parse_disk(char *conftxt, const char *name) { @@ -147,11 +140,9 @@ struct disk * Int_Open_Disk(const char *name, char *conftxt) { struct chunk chunk; - uuid_t uuid; struct disk *disk; - char *p, *q, *r, *s, *sd, *type; + char *p, *q, *r, *s, *sd; u_long i; - uint32_t status; p = conftxt; while (p != NULL && *p != 0) { @@ -186,17 +177,27 @@ Int_Open_Disk(const char *name, char *co if (conftxt != NULL) *conftxt++ = '\0'; + /* + * 1 PART da0p4 34359738368 512 + * i 4 o 52063912960 ty freebsd-ufs + * xs GPT xt 516e7cb6-6ecf-11d6-8ff8-00022d09712b + */ sd = strsep(&p, " "); /* depth */ if (strcmp(sd, "0") == 0) break; - type = strsep(&p, " "); /* type */ + q = strsep(&p, " "); /* type */ + if (strcmp(q, "PART") != 0) + continue; + chunk.name = strsep(&p, " "); /* name */ + q = strsep(&p, " "); /* length */ i = strtoimax(q, &r, 0); if (*r) abort(); chunk.end = i / disk->sector_size; + q = strsep(&p, " "); /* sector size */ for (;;) { @@ -205,82 +206,30 @@ Int_Open_Disk(const char *name, char *co break; r = strsep(&p, " "); i = strtoimax(r, &s, 0); - if (*s) { - status = uuid_s_ok; + if (strcmp(q, "ty") == 0 && *s != '\0') { if (!strcmp(r, "efi")) - uuid = _efi; - else if (!strcmp(r, "mbr")) - uuid = _mbr; - else if (!strcmp(r, "freebsd")) - uuid = _fbsd; - else if (!strcmp(r, "freebsd-swap")) - uuid = _swap; - else if (!strcmp(r, "freebsd-ufs")) - uuid = _ufs; - else { - if (!strcmp(type, "PART")) - uuid_from_string(r + 1, &uuid, - &status); - else - uuid_from_string(r, &uuid, - &status); + chunk.type = efi; + else if (!strcmp(r, "freebsd")) { + chunk.type = freebsd; + chunk.subtype = 0xa5; + } else if (!strcmp(r, "freebsd-swap")) { + chunk.type = part; + chunk.subtype = FS_SWAP; + } else if (!strcmp(r, "freebsd-ufs")) { + chunk.type = part; + chunk.subtype = FS_BSDFFS; + } else { + chunk.type = part; + chunk.subtype = FS_OTHER; } - } else - status = uuid_s_invalid_string_uuid; - if (!strcmp(q, "o")) - chunk.offset = i / disk->sector_size; - else if (!strcmp(q, "i")) - chunk.flags = CHUNK_ITOF(i) | CHUNK_HAS_INDEX; - else if (!strcmp(q, "ty")) - chunk.subtype = i; - } - - if (strncmp(type, "MBR", 3) == 0) { - switch (chunk.subtype) { - case 0xa5: - chunk.type = freebsd; - break; - case 0x01: - case 0x04: - case 0x06: - case 0x0b: - case 0x0c: - case 0x0e: - chunk.type = fat; - break; - case 0xef: /* EFI */ - chunk.type = efi; - break; - default: - chunk.type = mbr; - break; + } else { + if (!strcmp(q, "o")) + chunk.offset = i / disk->sector_size; + else if (!strcmp(q, "i")) + chunk.flags = CHUNK_ITOF(i) | + CHUNK_HAS_INDEX; } - } else if (strcmp(type, "BSD") == 0) { - chunk.type = part; - } else if (strcmp(type, "GPT") == 0 || - strcmp(type, "PART") == 0) { - chunk.subtype = 0; - if (status != uuid_s_ok) - abort(); - if (uuid_is_nil(&uuid, NULL)) - chunk.type = unused; - else if (uuid_equal(&uuid, &_efi, NULL)) - chunk.type = efi; - else if (uuid_equal(&uuid, &_mbr, NULL)) - chunk.type = mbr; - else if (uuid_equal(&uuid, &_fbsd, NULL)) { - chunk.type = freebsd; - chunk.subtype = 0xa5; - } else if (uuid_equal(&uuid, &_swap, NULL)) { - chunk.type = part; - chunk.subtype = FS_SWAP; - } else if (uuid_equal(&uuid, &_ufs, NULL)) { - chunk.type = part; - chunk.subtype = FS_BSDFFS; - } else - chunk.type = part; - } else - abort(); + } Add_Chunk(disk, chunk.offset, chunk.end, chunk.name, chunk.type, chunk.subtype, chunk.flags, 0); Modified: projects/mesh11s/lib/libusb/libusb.3 ============================================================================== --- projects/mesh11s/lib/libusb/libusb.3 Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/lib/libusb/libusb.3 Thu May 21 17:55:47 2009 (r192560) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 5, 2009 +.Dd May 21, 2009 .Dt LIBUSB 3 .Os .Sh NAME @@ -148,8 +148,8 @@ USB access library (libusb -lusb) .Fn libusb20_dev_get_power_mode "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_set_alt_index "struct libusb20_device *pdev" "uint8_t iface_index" "uint8_t alt_index" -.Ft int -.Fn libusb20_dev_get_device_desc "struct libusb20_device *pdev" "uint8_t iface_indexr", "char *buf" "uint8_t len" +.Ft struct LIBUSB20_DEVICE_DESC_DECODED * +.Fn libusb20_dev_get_device_desc "struct libusb20_device *pdev" .Ft struct libusb20_config * .Fn libusb20_dev_alloc_config "struct libusb20_device *pdev" "uint8_t config_index" .Ft struct libusb20_device * @@ -945,7 +945,7 @@ These functions are compliant with LibUS . /dev/usb .Sh SEE ALSO -.Xr usb2_core 4 , +.Xr usb 4 , .Xr usbconfig 8 . . Modified: projects/mesh11s/release/doc/share/misc/dev.archlist.txt ============================================================================== --- projects/mesh11s/release/doc/share/misc/dev.archlist.txt Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/release/doc/share/misc/dev.archlist.txt Thu May 21 17:55:47 2009 (r192560) @@ -93,7 +93,6 @@ ncv i386,pc98 nfe i386,amd64 ng_bt3c i386,pc98,amd64 ng_ubt i386,pc98,amd64 -nge i386,pc98,amd64 nsp i386,pc98 nve i386,amd64 nxge i386,amd64 Modified: projects/mesh11s/share/man/man4/altq.4 ============================================================================== --- projects/mesh11s/share/man/man4/altq.4 Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/share/man/man4/altq.4 Thu May 21 17:55:47 2009 (r192560) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 12, 2009 +.Dd May 21, 2009 .Dt ALTQ 4 .Os .Sh NAME @@ -140,6 +140,7 @@ They have been applied to the following .Xr mxge 4 , .Xr my 4 , .Xr nfe 4 , +.Xr nge 4 , .Xr npe 4 , .Xr nve 4 , .Xr ral 4 , Modified: projects/mesh11s/share/man/man4/nge.4 ============================================================================== --- projects/mesh11s/share/man/man4/nge.4 Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/share/man/man4/nge.4 Thu May 21 17:55:47 2009 (r192560) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 23, 2009 +.Dd May 21, 2009 .Dt NGE 4 .Os .Sh NAME @@ -69,8 +69,8 @@ Most cards also use the DP83861 10/100/1 chip, which supports autonegotiation of 10, 100 and 1000Mbps modes in full or half duplex. .Pp -The DP83820 also supports jumbo frames, which can be configured -via the interface MTU setting. +The DP83820 and DP83821 also support jumbo frames, which can be +configured via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit jumbo frames. @@ -182,6 +182,21 @@ Surecom Technology EP-320G-TX .It Trendware TEG-PCITX (32-bit PCI) and TEG-PCITX2 (64-bit PCI) .El +.Sh SYSCTL VARIABLES +The following variables are available as both +.Xr sysctl 8 +variables and +.Xr loader 8 +tunables: +.Bl -tag -width "xxxxxx" +.It Va dev.nge.%d.int_holdoff +Maximum amount of time to delay interrupt processing in units of +100us. +The accepted range is 0 to 255, the default is 1(100us). +Value 0 completely disables the interrupt moderation. +The interface has to be brought down and up again before a change +takes effect. +.El .Sh DIAGNOSTICS .Bl -diag .It "nge%d: couldn't map memory" @@ -205,6 +220,7 @@ The device has stopped responding to the the network connection (cable). .El .Sh SEE ALSO +.Xr altq 4 , .Xr arp 4 , .Xr miibus 4 , .Xr netintro 4 , Modified: projects/mesh11s/share/man/man4/usb.4 ============================================================================== --- projects/mesh11s/share/man/man4/usb.4 Thu May 21 17:55:18 2009 (r192559) +++ projects/mesh11s/share/man/man4/usb.4 Thu May 21 17:55:47 2009 (r192560) @@ -25,9 +25,32 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" +.\" Copyright (c) 2008 Hans Petter Selasky. 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$ .\" -.Dd November 22, 2006 +.Dd May 20, 2009 .Dt USB 4 .Os .Sh NAME @@ -47,22 +70,29 @@ module at boot time, place the following .Bd -literal -offset indent usb_load="YES" .Ed -.Pp -.In dev/usb/usb.h -.In dev/usb/usbhid.h +.Sh USERLAND PROGRAMMING +USB functions can be accessed from userland through the libusb library. +See +.Xr libusb 3 +for more information. .Sh DESCRIPTION .Fx provides machine-independent bus support and drivers for .Tn USB -devices. +devices in host and device side mode. .Pp The .Nm -driver has three layers: the controller, the bus, and the -device layer. +driver has three layers: +.Bl -tag +.It USB Controller (Bus) +.It USB Device +.It USB Driver +.El +.Pp The controller attaches to a physical bus -(like -.Xr pci 4 ) . +like +.Xr pci 4 . The .Tn USB bus attaches to the controller, and the root hub attaches @@ -79,14 +109,20 @@ root hub. .Sh INTRODUCTION TO USB The .Tn USB -is a 12 Mb/s serial bus (1.5 Mb/s for low speed devices). +is a system where external devices can be connected to a PC. +The most common USB speeds are: +.Bl -tag +.It Low Speed (1.5MBit/sec) +.It Full Speed (12MBit/sec) +.It High Speed (480MBit/sec) +.El +.Pp Each .Tn USB -has a host controller that is the master of the bus; -all other devices on the bus only speak when spoken to. +has a USB controller that is the master of the bus. +The physical communication is simplex which means the host controller only communicates with one USB device at a time. .Pp -There can be up to 127 devices (apart from the host controller) -on a bus, each with its own address. +There can be up to 127 devices connected to an USB HUB tree. The addresses are assigned dynamically by the host when each device is attached to the bus. .Pp @@ -116,286 +152,558 @@ A device may operate in different config Depending on the configuration, the device may present different sets of endpoints and interfaces. -.\" .Pp -.\" Each device located on a hub has several -.\" .Xr config 8 -.\" locators: -.\" .Bl -tag -compact -width xxxxxx -.\" .It Cd port -.\" this is the number of the port on the closest upstream hub. -.\" .It Cd configuration -.\" this is the configuration the device must be in for this driver to attach. -.\" This locator does not set the configuration; it is iterated by the bus -.\" enumeration. -.\" .It Cd interface -.\" this is the interface number within a device that an interface driver -.\" attaches to. -.\" .It Cd vendor -.\" this is the 16 bit vendor id of the device. -.\" .It Cd product -.\" this is the 16 bit product id of the device. -.\" .It Cd release -.\" this is the 16 bit release (revision) number of the device. -.\" .El -.\" The first locator can be used to pin down a particular device -.\" according to its physical position in the device tree. -.\" The last three locators can be used to pin down a particular -.\" device according to what device it actually is. .Pp The bus enumeration of the .Tn USB bus proceeds in several steps: .Bl -enum .It -Any device specific driver can attach to the device. -.It -If none is found, any device class specific driver can attach. +Any interface specific driver can attach to the device. .It -If none is found, all configurations are iterated over. -For each configuration, all the interfaces are iterated over, and interface -drivers can attach. -If any interface driver attached in a certain -configuration, the iteration over configurations is stopped. -.It -If still no drivers have been found, the generic -.Tn USB -driver can attach. +If none is found, generic interface class drivers can attach. .El -.Sh USB CONTROLLER INTERFACE -Use the following to get access to the -.Tn USB -specific structures and defines. +.Sh USB KERNEL PROGRAMMING +Here is a list of commonly used functions: .Pp +. +.Ft "usb2_error_t" +.Fo "usb2_transfer_setup" +.Fa "udev" +.Fa "ifaces" +.Fa "pxfer" +.Fa "setup_start" +.Fa "n_setup" +.Fa "priv_sc" +.Fa "priv_mtx" +.Fc +. +.Pp +. +.Ft "void" +.Fo "usb2_transfer_unsetup" +.Fa "pxfer" +.Fa "n_setup" +.Fc +. +.Pp +. +.Ft "void" +.Fo "usb2_transfer_start" +.Fa "xfer" +.Fc +. +.Pp +. +.Ft "void" +.Fo "usb2_transfer_stop" +.Fa "xfer" +.Fc +. +.Pp +. +.Ft "void" +.Fo "usb2_transfer_drain" +.Fa "xfer" +.Fc +. +. +.Sh DESCRIPTION The -.Pa /dev/usb Ns Ar N -can be opened and a few operations can be performed on it. -The -.Xr poll 2 -system call will say that I/O is possible on the controller device when a -.Tn USB -device has been connected or disconnected to the bus. -.Pp -The following -.Xr ioctl 2 -commands are supported on the controller device: -.Bl -tag -width xxxxxx -.It Dv USB_DISCOVER -This command will cause a complete bus discovery to be initiated. -If any devices attached or detached from the bus they will be -processed during this command. -This is the only way that new devices are found on the bus. -.It Dv USB_DEVICEINFO Vt "struct usb_device_info" -This command can be used to retrieve some information about a device -on the bus. +.Nm +module implements the core functionality of the USB standard and many +helper functions to make USB device driver programming easier and more +safe. +. The -.Va udi_addr -field should be filled before the call and the other fields will -be filled by information about the device on that address. -Should no such device exist, an error is reported. -.Bd -literal -#define USB_MAX_DEVNAMES 4 -#define USB_MAX_DEVNAMELEN 16 -struct usb_device_info { - u_int8_t udi_bus; - u_int8_t udi_addr; /* device address */ - usb_event_cookie_t udi_cookie; - char udi_product[USB_MAX_STRING_LEN]; - char udi_vendor[USB_MAX_STRING_LEN]; - char udi_release[8]; - u_int16_t udi_productNo; - u_int16_t udi_vendorNo; - u_int16_t udi_releaseNo; - u_int8_t udi_class; - u_int8_t udi_subclass; - u_int8_t udi_protocol; - u_int8_t udi_config; - u_int8_t udi_speed; -#define USB_SPEED_LOW 1 -#define USB_SPEED_FULL 2 -#define USB_SPEED_HIGH 3 - int udi_power;/* power consumption in mA, 0 if selfpowered */ - int udi_nports; - char udi_devnames[USB_MAX_DEVNAMES][USB_MAX_DEVNAMELEN]; - u_int8_t udi_ports[16];/* hub only: addresses of devices on ports */ -#define USB_PORT_ENABLED 0xff -#define USB_PORT_SUSPENDED 0xfe -#define USB_PORT_POWERED 0xfd -#define USB_PORT_DISABLED 0xfc -}; +.Nm +module supports both USB Host and USB Device side mode! +. +.Sh USB TRANSFER MANAGEMENT FUNCTIONS +The USB standard defines four types of USB transfers. +. +Control transfers, Bulk transfers, Interrupt transfers and Isochronous +transfers. +. +All the transfer types are managed using the following five functions: +. +.Pp +. +.Fn usb2_transfer_setup +This function will allocate memory for and initialise an array of USB +transfers and all required DMA memory. +. +This function can sleep or block waiting for resources to become +available. +.Fa udev +is a pointer to "struct usb2_device". +.Fa ifaces +is an array of interface index numbers to use. See "if_index". +.Fa pxfer +is a pointer to an array of USB transfer pointers that are initialized +to NULL, and then pointed to allocated USB transfers. +.Fa setup_start +is a pointer to an array of USB config structures. +.Fa n_setup +is a number telling the USB system how many USB transfers should be +setup. +.Fa priv_sc +is the private softc pointer, which will be used to initialize +"xfer->priv_sc". +.Fa priv_mtx +is the private mutex protecting the transfer structure and the +softc. This pointer is used to initialize "xfer->priv_mtx". +This function returns +zero upon success. A non-zero return value indicates failure. +. +.Pp +. +.Fn usb2_transfer_unsetup +This function will release the given USB transfers and all allocated +resources associated with these USB transfers. +.Fa pxfer +is a pointer to an array of USB transfer pointers, that may be NULL, +that should be freed by the USB system. +.Fa n_setup +is a number telling the USB system how many USB transfers should be +unsetup. +. +This function can sleep waiting for USB transfers to complete. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +It is not allowed to call this function from the USB transfer +callback. +. +.Pp +. +.Fn usb2_transfer_start +This function will start the USB transfer pointed to by +.Fa xfer, +if not already started. +. +This function is always non-blocking and must be called with the +so-called private USB mutex locked. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +.Pp +. +.Fn usb2_transfer_stop +This function will stop the USB transfer pointed to by +.Fa xfer, +if not already stopped. +. +This function is always non-blocking and must be called with the +so-called private USB mutex locked. +. +This function can return before the USB callback has been called. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +If the transfer was in progress, the callback will called with +"USB_ST_ERROR" and "xfer->error = USB_ERR_CANCELLED". +. +.Pp +. +.Fn usb2_transfer_drain +This function will stop an USB transfer, if not already stopped and +wait for any additional USB hardware operations to complete. +. +Buffers that are loaded into DMA using "usb2_set_frame_data()" can +safely be freed after that this function has returned. +. +This function can block the caller and will not return before the USB +callback has been called. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +.Sh USB TRANSFER CALLBACK +. +The USB callback has three states. +. +USB_ST_SETUP, USB_ST_TRANSFERRED and USB_ST_ERROR. USB_ST_SETUP is the +initial state. +. +After the callback has been called with this state it will always be +called back at a later stage in one of the other two states. +. +In the USB_ST_ERROR state the "error" field of the USB transfer +structure is set to the error cause. +. +The USB callback should not restart the USB transfer in case the error +cause is USB_ERR_CANCELLED. +. +The USB callback is protected from recursion. +. +That means one can start and stop whatever transfer from the callback +of another transfer one desires. +. +Also the transfer that is currently called back. +. +Recursion is handled like this that when the callback that wants to +recurse returns it is called one more time. +. +. +.Pp +. +.Fn usb2_start_hardware +This function should only be called from within the USB callback and +is used to start the USB hardware. +. +Typical parameters that should be set in the USB transfer structure +before this function is called are "frlengths[]", "nframes" and +"frbuffers[]". +. +An USB transfer can have multiple frames consisting of one or more USB +packets making up an I/O vector for all USB transfer types. +. +After the USB transfer is complete "frlengths[]" is updated to the +actual USB transfer length for the given frame. +.Bd -literal -offset indent +void +usb2_default_callback(struct usb2_xfer *xfer) +{ + switch (USB_GET_STATE(xfer)) { + case USB_ST_SETUP: + /* + * Setup xfer->frlengths[], xfer->nframes + * and write data to xfer->frbuffers[], if any + */ + usb2_start_hardware(xfer); + break; + + case USB_ST_TRANSFERRED: + /* + * Read data from xfer->frbuffers[], if any. + * "xfer->frlengths[]" should now have been + * updated to the actual length. + */ + break; + + default: /* Error */ + /* + * Print error message and clear stall + * for example. + */ + break; + } + /* + * Here it is safe to do something without the private + * USB mutex locked. + */ + return; +} .Ed -.Pp -.Va udi_bus -and -.Va udi_addr -contain the topological information for the device. -.Va udi_devnames -contains the device names of the connected drivers. -For example, the -third -.Tn USB -Zip drive connected will be -.Li umass2 . -The -.Va udi_product , udi_vendor -and -.Va udi_release -fields contain self-explanatory descriptions of the device. -.Va udi_productNo , udi_vendorNo , udi_releaseNo , udi_class , udi_subclass -and -.Va udi_protocol -contain the corresponding values from the device descriptors. -The -.Va udi_config -field shows the current configuration of the device. -.Pp -.Va udi_speed -indicates whether the device is at low speed -.Pq Dv USB_SPEED_LOW , -full speed -.Pq Dv USB_SPEED_FULL -or high speed -.Pq Dv USB_SPEED_HIGH . -The -.Va udi_power -field shows the power consumption in milli-amps drawn at 5 volts, -or zero if the device is self powered. -.Pp -If the device is a hub, the -.Va udi_nports -field is non-zero, and the -.Va udi_ports -field contains the addresses of the connected devices. -If no device is connected to a port, one of the -.Dv USB_PORT_* -values indicates its status. -.It Dv USB_DEVICESTATS Vt "struct usb_device_stats" -This command retrieves statistics about the controller. -.Bd -literal -struct usb_device_stats { - u_long uds_requests[4]; +. +.Sh USB CONTROL TRANSFERS +An USB control transfer has three parts. +. +First the SETUP packet, then DATA packet(s) and then a STATUS +packet. +. +The SETUP packet is always pointed to by "xfer->frbuffers[0]" and the +length is stored in "xfer->frlengths[0]" also if there should not be +sent any SETUP packet! If an USB control transfer has no DATA stage, +then "xfer->nframes" should be set to 1. +. +Else the default value is "xfer->nframes" equal to 2. +. +.Bd -literal -offset indent + +Example1: SETUP + STATUS + xfer->nframes = 1; + xfer->frlenghts[0] = 8; + usb2_start_hardware(xfer); + +Example2: SETUP + DATA + STATUS + xfer->nframes = 2; + xfer->frlenghts[0] = 8; + xfer->frlenghts[1] = 1; + usb2_start_hardware(xfer); + +Example3: SETUP + DATA + STATUS - split +1st callback: + xfer->nframes = 1; + xfer->frlenghts[0] = 8; + usb2_start_hardware(xfer); + +2nd callback: + /* IMPORTANT: frbuffers[0] must still point at the setup packet! */ + xfer->nframes = 2; + xfer->frlenghts[0] = 0; + xfer->frlenghts[1] = 1; + usb2_start_hardware(xfer); + +Example4: SETUP + STATUS - split +1st callback: + xfer->nframes = 1; + xfer->frlenghts[0] = 8; + xfer->flags.manual_status = 1; + usb2_start_hardware(xfer); + +2nd callback: + xfer->nframes = 1; + xfer->frlenghts[0] = 0; + xfer->flags.manual_status = 0; + usb2_start_hardware(xfer); + +.Ed +.Sh USB TRANSFER CONFIG +To simply the search for endpoints the +.Nm +module defines a USB config structure where it is possible to specify +the characteristics of the wanted endpoint. +.Bd -literal -offset indent + +struct usb2_config { + bufsize, + callback + direction, + endpoint, + frames, + index flags, + interval, + timeout, + type, }; + .Ed +. .Pp -The -.Va udi_requests -field is indexed by the transfer kind, i.e.\& -.Dv UE_* , -and indicates how many transfers of each kind that has been completed -by the controller. -.It Dv USB_REQUEST Vt "struct usb_ctl_request" -This command can be used to execute arbitrary requests on the control pipe. -This is -.Em DANGEROUS -and should be used with great care since it -can destroy the bus integrity. -.El +.Fa type +field selects the USB pipe type. +. +Valid values are: UE_INTERRUPT, UE_CONTROL, UE_BULK, +UE_ISOCHRONOUS. +. +The special value UE_BULK_INTR will select BULK and INTERRUPT pipes. +. +This field is mandatory. +. +.Pp +.Fa endpoint +field selects the USB endpoint number. +. +A value of 0xFF, "-1" or "UE_ADDR_ANY" will select the first matching +endpoint. +. +This field is mandatory. +. +.Pp +.Fa direction +field selects the USB endpoint direction. +. +A value of "UE_DIR_ANY" will select the first matching endpoint. +. +Else valid values are: "UE_DIR_IN" and "UE_DIR_OUT". +. +"UE_DIR_IN" and "UE_DIR_OUT" can be binary OR'ed by "UE_DIR_SID" which +means that the direction will be swapped in case of +USB_MODE_DEVICE. +. +Note that "UE_DIR_IN" refers to the data transfer direction of the +"IN" tokens and "UE_DIR_OUT" refers to the data transfer direction of +the "OUT" tokens. +. +This field is mandatory. +. +.Pp +.Fa interval +field selects the interrupt interval. +. +The value of this field is given in milliseconds and is independent of +device speed. +. +Depending on the endpoint type, this field has different meaning: +.Bl -tag +.It UE_INTERRUPT +"0" use the default interrupt interval based on endpoint descriptor. +"Else" use the given value for polling rate. +.It UE_ISOCHRONOUS +"0" use default. "Else" the value is ignored. +.It UE_BULK +.It UE_CONTROL +"0" no transfer pre-delay. "Else" a delay as given by this field in +milliseconds is inserted before the hardware is started when +"usb2_start_hardware()" is called. .Pp -The include file -.In dev/usb/usb.h -contains definitions for the types used by the various -.Xr ioctl 2 -calls. -The naming convention of the fields for the various -.Tn USB -descriptors exactly follows the naming in the -.Tn USB -specification. -Byte sized fields can be accessed directly, but word (16 bit) -sized fields must be access by the *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu May 21 19:33:47 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 566D31065670; Thu, 21 May 2009 19:33:47 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 446828FC1A; Thu, 21 May 2009 19:33:47 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4LJXlFv076759; Thu, 21 May 2009 19:33:47 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4LJXl3j076756; Thu, 21 May 2009 19:33:47 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905211933.n4LJXl3j076756@svn.freebsd.org> From: Rui Paulo Date: Thu, 21 May 2009 19:33:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192563 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2009 19:33:47 -0000 Author: rpaulo Date: Thu May 21 19:33:46 2009 New Revision: 192563 URL: http://svn.freebsd.org/changeset/base/192563 Log: Sync with latest net80211. Move sysctl creation out of freebsd.c. Add some HWMP sysctl nodes. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_freebsd.c projects/mesh11s/sys/net80211/ieee80211_hwmp.c projects/mesh11s/sys/net80211/ieee80211_mesh.c Modified: projects/mesh11s/sys/net80211/ieee80211_freebsd.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_freebsd.c Thu May 21 18:05:17 2009 (r192562) +++ projects/mesh11s/sys/net80211/ieee80211_freebsd.c Thu May 21 19:33:46 2009 (r192563) @@ -71,15 +71,6 @@ extern int ieee80211_cac_timeout; SYSCTL_INT(_net_wlan, OID_AUTO, cac_timeout, CTLFLAG_RW, &ieee80211_cac_timeout, 0, "CAC timeout (secs)"); -SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0, - "IEEE 802.11s parameters"); -extern int ieee80211_mesh_ttl; -SYSCTL_INT(_net_wlan_mesh, OID_AUTO, ttl, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_mesh_ttl, 0, "TTL for mesh packets"); -extern int ieee80211_mesh_forwarding; -SYSCTL_INT(_net_wlan_mesh, OID_AUTO, forwarding, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_mesh_forwarding, 0, "Forward mesh packets"); - MALLOC_DEFINE(M_80211_COM, "80211com", "802.11 com state"); /* Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Thu May 21 18:05:17 2009 (r192562) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Thu May 21 19:33:46 2009 (r192563) @@ -78,3 +78,11 @@ int ieee80211_hwmp_replyforward = 1; /* int ieee80211_hwmp_pathmaintenance = 2000; int ieee80211_hwmp_confirmint = 2000; +SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, + "IEEE 802.11s HWMP parameters"); +SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, maxhops, CTLTYPE_INT | CTLFLAG_RW, + &ieee80211_hwmp_maxhops, 0, "Maximum number of hops for paths"); +#ifdef notyet +SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, rootmode, CTLTYPE_INT | CTLFLAG_RW, + &ieee80211_hwmp_rootmode, 0, "Root Mesh Point Node"); +#endif Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Thu May 21 18:05:17 2009 (r192562) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Thu May 21 19:33:46 2009 (r192563) @@ -64,10 +64,9 @@ __FBSDID("$FreeBSD$"); static void mesh_vattach(struct ieee80211vap *); static int mesh_newstate(struct ieee80211vap *, enum ieee80211_state, int); -static int mesh_input(struct ieee80211_node *, struct mbuf *, int, int, - uint32_t); +static int mesh_input(struct ieee80211_node *, struct mbuf *, int, int); static void mesh_recv_mgmt(struct ieee80211_node *, struct mbuf *, int, - int, int, uint32_t); + int, int); static void mesh_recv_action(struct ieee80211_node *, struct mbuf *); static inline void mesh_peer_timeout_setup(struct ieee80211_node *); static void mesh_peer_timeout_backoff(struct ieee80211_node *); @@ -86,9 +85,15 @@ static const int ieee80211_mesh_holdingt static const int ieee80211_mesh_confirmtimeout = 40; #define CONFIRM_TIMEOUT msecs_to_ticks(ieee80211_mesh_confirmtimeout) static const int ieee80211_mesh_maxretries = 2; -/* non static for sysctl hookup */ -int ieee80211_mesh_ttl = 31; -int ieee80211_mesh_forwarding = 1; +static int ieee80211_mesh_ttl = 31; +static int ieee80211_mesh_forwarding = 1; + +SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0, + "IEEE 802.11s parameters"); +SYSCTL_INT(_net_wlan_mesh, OID_AUTO, ttl, CTLTYPE_INT | CTLFLAG_RW, + &ieee80211_mesh_ttl, 0, "TTL for mesh packets"); +SYSCTL_INT(_net_wlan_mesh, OID_AUTO, forwarding, CTLTYPE_INT | CTLFLAG_RW, + &ieee80211_mesh_forwarding, 0, "Forward mesh packets"); static const char *nodemeshstates[] = { "IDLE", @@ -218,8 +223,7 @@ doprint(struct ieee80211vap *vap, int su } static int -mesh_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int noise, - uint32_t rstamp) +mesh_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int noise) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -378,7 +382,7 @@ mesh_input(struct ieee80211_node *ni, st } if (bpf_peers_present(vap->iv_rawbpf)) bpf_mtap(vap->iv_rawbpf, m); - vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp); + vap->iv_recv_mgmt(ni, m, subtype, rssi, noise); goto out; case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; @@ -420,7 +424,7 @@ is11bclient(const uint8_t *rates, const static void mesh_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, - int rssi, int noise, uint32_t rstamp) + int rssi, int noise) { static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; struct ieee80211vap *vap = ni->ni_vap; @@ -467,7 +471,7 @@ mesh_recv_mgmt(struct ieee80211_node *ni ic->ic_flags_ext &= ~IEEE80211_FEXT_PROBECHAN; } ieee80211_add_scan(vap, &scan, wh, - subtype, rssi, noise, rstamp); + subtype, rssi, noise); return; } @@ -518,7 +522,6 @@ mesh_recv_mgmt(struct ieee80211_node *ni if (ni != NULL) { IEEE80211_RSSI_LPF(ni->ni_avgrssi, rssi); ni->ni_noise = noise; - ni->ni_rstamp = rstamp; } break; From owner-svn-src-projects@FreeBSD.ORG Thu May 21 22:12:45 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14B2F106566B; Thu, 21 May 2009 22:12:45 +0000 (UTC) (envelope-from dwhite@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 877878FC0A; Thu, 21 May 2009 22:12:42 +0000 (UTC) (envelope-from dwhite@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4LMCg55085995; Thu, 21 May 2009 22:12:42 GMT (envelope-from dwhite@svn.freebsd.org) Received: (from dwhite@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4LMCgQ9085994; Thu, 21 May 2009 22:12:42 GMT (envelope-from dwhite@svn.freebsd.org) Message-Id: <200905212212.n4LMCgQ9085994@svn.freebsd.org> From: Doug White Date: Thu, 21 May 2009 22:12:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192569 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2009 22:12:45 -0000 Author: dwhite Date: Thu May 21 22:12:42 2009 New Revision: 192569 URL: http://svn.freebsd.org/changeset/base/192569 Log: Add some missing bits to arge: * In arge_attach(), hard reset the MAC blocks before configuring the MAC. * In arge_reset_dma(), clear pending packet interrupts based off the hardware counter instead of acking every packet in the ring, as the hardware counter can exceed the ring size. If the reset was successful the counters will be zero anyway. * In arge_encap(), remove an unused variable. * In arge_tx_locked(), remove redundant setting of the EMPTY flag as the TX DMA engine sets it for us. * In arge_intr(), remember to clear the interrupt status bits relayed from arge_intr_filter(). * Handle RX overflow and TX underflow. * In arge_tx_intr(), remember to unmask the TX interrupt bits after processing them. Modified: projects/mips/sys/mips/atheros/if_arge.c Modified: projects/mips/sys/mips/atheros/if_arge.c ============================================================================== --- projects/mips/sys/mips/atheros/if_arge.c Thu May 21 21:21:22 2009 (r192568) +++ projects/mips/sys/mips/atheros/if_arge.c Thu May 21 22:12:42 2009 (r192569) @@ -306,6 +306,28 @@ arge_attach(device_t dev) goto fail; } + /* Initialize the MAC block */ + + /* Step 1. Soft-reset MAC */ + ARGE_SET_BITS(sc, AR71XX_MAC_CFG1, MAC_CFG1_SOFT_RESET); + DELAY(20); + + /* Step 2. Punt the MAC core from the central reset register */ + reg = ATH_READ_REG(AR71XX_RST_RESET); + if (sc->arge_mac_unit == 0) + reg |= RST_RESET_GE0_MAC; + else if (sc->arge_mac_unit == 1) + reg |= RST_RESET_GE1_MAC; + ATH_WRITE_REG(AR71XX_RST_RESET, reg); + DELAY(100); + reg = ATH_READ_REG(AR71XX_RST_RESET); + if (sc->arge_mac_unit == 0) + reg &= ~RST_RESET_GE0_MAC; + else if (sc->arge_mac_unit == 1) + reg &= ~RST_RESET_GE1_MAC; + ATH_WRITE_REG(AR71XX_RST_RESET, reg); + + /* Step 3. Reconfigure MAC block */ ARGE_WRITE(sc, AR71XX_MAC_CFG1, MAC_CFG1_SYNC_RX | MAC_CFG1_RX_ENABLE | MAC_CFG1_SYNC_TX | MAC_CFG1_TX_ENABLE); @@ -612,13 +634,13 @@ arge_reset_dma(struct arge_softc *sc) ARGE_WRITE(sc, AR71XX_DMA_TX_DESC, 0); /* Clear all possible RX interrupts */ - for (i = 0; i < ARGE_RX_RING_COUNT; i++) + while(ARGE_READ(sc, AR71XX_DMA_RX_STATUS) & DMA_RX_STATUS_PKT_RECVD) ARGE_WRITE(sc, AR71XX_DMA_RX_STATUS, DMA_RX_STATUS_PKT_RECVD); /* * Clear all possible TX interrupts */ - for (i = 0; i < ARGE_TX_RING_COUNT; i++) + while(ARGE_READ(sc, AR71XX_DMA_TX_STATUS) & DMA_TX_STATUS_PKT_SENT) ARGE_WRITE(sc, AR71XX_DMA_TX_STATUS, DMA_TX_STATUS_PKT_SENT); /* @@ -694,7 +716,7 @@ arge_encap(struct arge_softc *sc, struct struct arge_txdesc *txd; struct arge_desc *desc, *prev_desc; bus_dma_segment_t txsegs[ARGE_MAXFRAGS]; - int error, i, nsegs, prod, si, prev_prod; + int error, i, nsegs, prod, prev_prod; ARGE_LOCK_ASSERT(sc); @@ -724,8 +746,6 @@ arge_encap(struct arge_softc *sc, struct bus_dmamap_sync(sc->arge_cdata.arge_tx_tag, txd->tx_dmamap, BUS_DMASYNC_PREWRITE); - si = prod; - /* * Make a list of descriptors for this packet. DMA controller will * walk through it while arge_link is not zero. @@ -1361,8 +1381,6 @@ arge_tx_locked(struct arge_softc *sc) txd = &sc->arge_cdata.arge_txdesc[cons]; - cur_tx->packet_ctrl = ARGE_DESC_EMPTY; - ifp->if_opackets++; bus_dmamap_sync(sc->arge_cdata.arge_tx_tag, txd->tx_dmamap, @@ -1375,7 +1393,6 @@ arge_tx_locked(struct arge_softc *sc) txd->tx_m = NULL; /* reset descriptor */ - cur_tx->packet_ctrl = ARGE_DESC_EMPTY; cur_tx->packet_addr = 0; } @@ -1463,6 +1480,13 @@ arge_rx_intr(struct arge_softc *sc, uint /* interrupts are masked by filter */ arge_rx_locked(sc); + /* RX overrun disables the receiver. Clear indication and + re-enable rx. */ + if ( status | DMA_INTR_RX_OVERFLOW) { + ARGE_WRITE(sc, AR71XX_DMA_RX_STATUS, DMA_RX_STATUS_OVERFLOW); + ARGE_WRITE(sc, AR71XX_DMA_RX_CONTROL, DMA_RX_CONTROL_EN); + } + /* unmask interrupts */ ARGE_SET_BITS(sc, AR71XX_DMA_INTR, DMA_INTR_RX_OVERFLOW | DMA_INTR_RX_PKT_RCVD); @@ -1511,6 +1535,7 @@ arge_intr(void *arg) uint32_t status; status = sc->arge_intr_status; + sc->arge_intr_status = 0; #if 0 dprintf("int status(intr) = %b\n", status, @@ -1551,6 +1576,19 @@ arge_tx_intr(struct arge_softc *sc, uint /* Interrupts are masked by filter */ arge_tx_locked(sc); + /* Underrun turns off TX. Clear underrun indication. + If there's anything left in the ring, reactivate the tx. */ + if (status & DMA_INTR_TX_UNDERRUN) { + ARGE_WRITE(sc, AR71XX_DMA_TX_STATUS, DMA_TX_STATUS_UNDERRUN); + if (sc->arge_cdata.arge_tx_pkts > 0 ) { + ARGE_WRITE(sc, AR71XX_DMA_TX_CONTROL, DMA_TX_CONTROL_EN); + } + } + + /* unmask interrupts */ + ARGE_SET_BITS(sc, + AR71XX_DMA_INTR, DMA_INTR_TX_UNDERRUN | DMA_INTR_TX_PKT_SENT); + ARGE_UNLOCK(sc); } From owner-svn-src-projects@FreeBSD.ORG Thu May 21 23:30:42 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EEC8106564A; Thu, 21 May 2009 23:30:42 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 76B6D8FC18; Thu, 21 May 2009 23:30:42 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4LNUg4F087779; Thu, 21 May 2009 23:30:42 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4LNUfR3087762; Thu, 21 May 2009 23:30:41 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905212330.n4LNUfR3087762@svn.freebsd.org> From: John Birrell Date: Thu, 21 May 2009 23:30:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192573 - in projects/jbuild: . bin/cat bin/ls bin/pkill bin/ps bin/rm bin/sh cddl cddl/contrib/opensolaris/lib/libzpool/common/sys cddl/lib/libzpool cddl/usr.bin/ztest cddl/usr.sbin/zd... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2009 23:30:43 -0000 Author: jb Date: Thu May 21 23:30:38 2009 New Revision: 192573 URL: http://svn.freebsd.org/changeset/base/192573 Log: MFC Added: projects/jbuild/contrib/file/Magdir/kml - copied unchanged from r192569, head/contrib/file/Magdir/kml projects/jbuild/contrib/file/Magdir/wireless - copied unchanged from r192569, head/contrib/file/Magdir/wireless projects/jbuild/contrib/file/Makefile.am-src - copied unchanged from r192569, head/contrib/file/Makefile.am-src projects/jbuild/contrib/file/cdf.c - copied unchanged from r192569, head/contrib/file/cdf.c projects/jbuild/contrib/file/cdf.h - copied unchanged from r192569, head/contrib/file/cdf.h projects/jbuild/contrib/file/cdf_time.c - copied unchanged from r192569, head/contrib/file/cdf_time.c projects/jbuild/contrib/file/encoding.c - copied unchanged from r192569, head/contrib/file/encoding.c projects/jbuild/contrib/file/readcdf.c - copied unchanged from r192569, head/contrib/file/readcdf.c projects/jbuild/contrib/file/strlcat.c - copied unchanged from r192569, head/contrib/file/strlcat.c projects/jbuild/contrib/file/strlcpy.c - copied unchanged from r192569, head/contrib/file/strlcpy.c projects/jbuild/contrib/libpcap/FREEBSD-Xlist - copied unchanged from r192569, head/contrib/libpcap/FREEBSD-Xlist projects/jbuild/contrib/libpcap/chmod_bpf - copied unchanged from r192569, head/contrib/libpcap/chmod_bpf projects/jbuild/contrib/libpcap/dlpisubs.c - copied unchanged from r192569, head/contrib/libpcap/dlpisubs.c projects/jbuild/contrib/libpcap/dlpisubs.h - copied unchanged from r192569, head/contrib/libpcap/dlpisubs.h projects/jbuild/contrib/libpcap/fad-sita.c - copied unchanged from r192569, head/contrib/libpcap/fad-sita.c projects/jbuild/contrib/libpcap/filtertest.c - copied unchanged from r192569, head/contrib/libpcap/filtertest.c projects/jbuild/contrib/libpcap/findalldevstest.c - copied unchanged from r192569, head/contrib/libpcap/findalldevstest.c projects/jbuild/contrib/libpcap/ieee80211.h - copied unchanged from r192569, head/contrib/libpcap/ieee80211.h projects/jbuild/contrib/libpcap/missing/ - copied from r192569, head/contrib/libpcap/missing/ projects/jbuild/contrib/libpcap/net/ - copied from r192569, head/contrib/libpcap/net/ projects/jbuild/contrib/libpcap/pcap/ - copied from r192569, head/contrib/libpcap/pcap/ projects/jbuild/contrib/libpcap/pcap-bt-linux.c - copied unchanged from r192569, head/contrib/libpcap/pcap-bt-linux.c projects/jbuild/contrib/libpcap/pcap-bt-linux.h - copied unchanged from r192569, head/contrib/libpcap/pcap-bt-linux.h projects/jbuild/contrib/libpcap/pcap-config.1 - copied unchanged from r192569, head/contrib/libpcap/pcap-config.1 projects/jbuild/contrib/libpcap/pcap-config.in - copied unchanged from r192569, head/contrib/libpcap/pcap-config.in projects/jbuild/contrib/libpcap/pcap-filter.manmisc - copied unchanged from r192569, head/contrib/libpcap/pcap-filter.manmisc projects/jbuild/contrib/libpcap/pcap-filter.manmisc.in - copied unchanged from r192569, head/contrib/libpcap/pcap-filter.manmisc.in projects/jbuild/contrib/libpcap/pcap-libdlpi.c - copied unchanged from r192569, head/contrib/libpcap/pcap-libdlpi.c projects/jbuild/contrib/libpcap/pcap-linktype.manmisc - copied unchanged from r192569, head/contrib/libpcap/pcap-linktype.manmisc projects/jbuild/contrib/libpcap/pcap-linktype.manmisc.in - copied unchanged from r192569, head/contrib/libpcap/pcap-linktype.manmisc.in projects/jbuild/contrib/libpcap/pcap-savefile.manfile - copied unchanged from r192569, head/contrib/libpcap/pcap-savefile.manfile projects/jbuild/contrib/libpcap/pcap-savefile.manfile.in - copied unchanged from r192569, head/contrib/libpcap/pcap-savefile.manfile.in projects/jbuild/contrib/libpcap/pcap-sita.c - copied unchanged from r192569, head/contrib/libpcap/pcap-sita.c projects/jbuild/contrib/libpcap/pcap-sita.h - copied unchanged from r192569, head/contrib/libpcap/pcap-sita.h projects/jbuild/contrib/libpcap/pcap-sita.html - copied unchanged from r192569, head/contrib/libpcap/pcap-sita.html projects/jbuild/contrib/libpcap/pcap-usb-linux.c - copied unchanged from r192569, head/contrib/libpcap/pcap-usb-linux.c projects/jbuild/contrib/libpcap/pcap-usb-linux.h - copied unchanged from r192569, head/contrib/libpcap/pcap-usb-linux.h projects/jbuild/contrib/libpcap/pcap.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap.3pcap projects/jbuild/contrib/libpcap/pcap.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap.3pcap.in projects/jbuild/contrib/libpcap/pcap_activate.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_activate.3pcap projects/jbuild/contrib/libpcap/pcap_breakloop.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_breakloop.3pcap projects/jbuild/contrib/libpcap/pcap_can_set_rfmon.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_can_set_rfmon.3pcap projects/jbuild/contrib/libpcap/pcap_close.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_close.3pcap projects/jbuild/contrib/libpcap/pcap_compile.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_compile.3pcap projects/jbuild/contrib/libpcap/pcap_compile.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_compile.3pcap.in projects/jbuild/contrib/libpcap/pcap_create.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_create.3pcap projects/jbuild/contrib/libpcap/pcap_datalink.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_datalink.3pcap projects/jbuild/contrib/libpcap/pcap_datalink.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_datalink.3pcap.in projects/jbuild/contrib/libpcap/pcap_datalink_name_to_val.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_datalink_name_to_val.3pcap projects/jbuild/contrib/libpcap/pcap_datalink_val_to_name.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_datalink_val_to_name.3pcap projects/jbuild/contrib/libpcap/pcap_dump.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump.3pcap projects/jbuild/contrib/libpcap/pcap_dump_close.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_close.3pcap projects/jbuild/contrib/libpcap/pcap_dump_file.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_file.3pcap projects/jbuild/contrib/libpcap/pcap_dump_flush.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_flush.3pcap projects/jbuild/contrib/libpcap/pcap_dump_ftell.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_ftell.3pcap projects/jbuild/contrib/libpcap/pcap_dump_open.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_open.3pcap projects/jbuild/contrib/libpcap/pcap_dump_open.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_dump_open.3pcap.in projects/jbuild/contrib/libpcap/pcap_file.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_file.3pcap projects/jbuild/contrib/libpcap/pcap_fileno.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_fileno.3pcap projects/jbuild/contrib/libpcap/pcap_findalldevs.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_findalldevs.3pcap projects/jbuild/contrib/libpcap/pcap_free_datalinks.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_free_datalinks.3pcap projects/jbuild/contrib/libpcap/pcap_freealldevs.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_freealldevs.3pcap projects/jbuild/contrib/libpcap/pcap_freecode.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_freecode.3pcap projects/jbuild/contrib/libpcap/pcap_get_selectable_fd.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_get_selectable_fd.3pcap projects/jbuild/contrib/libpcap/pcap_geterr.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_geterr.3pcap projects/jbuild/contrib/libpcap/pcap_inject.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_inject.3pcap projects/jbuild/contrib/libpcap/pcap_is_swapped.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_is_swapped.3pcap projects/jbuild/contrib/libpcap/pcap_lib_version.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_lib_version.3pcap projects/jbuild/contrib/libpcap/pcap_list_datalinks.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_list_datalinks.3pcap projects/jbuild/contrib/libpcap/pcap_list_datalinks.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_list_datalinks.3pcap.in projects/jbuild/contrib/libpcap/pcap_lookupdev.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_lookupdev.3pcap projects/jbuild/contrib/libpcap/pcap_lookupnet.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_lookupnet.3pcap projects/jbuild/contrib/libpcap/pcap_loop.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_loop.3pcap projects/jbuild/contrib/libpcap/pcap_major_version.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_major_version.3pcap projects/jbuild/contrib/libpcap/pcap_next_ex.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_next_ex.3pcap projects/jbuild/contrib/libpcap/pcap_offline_filter.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_offline_filter.3pcap projects/jbuild/contrib/libpcap/pcap_open_dead.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_open_dead.3pcap projects/jbuild/contrib/libpcap/pcap_open_dead.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_open_dead.3pcap.in projects/jbuild/contrib/libpcap/pcap_open_live.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_open_live.3pcap projects/jbuild/contrib/libpcap/pcap_open_offline.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_open_offline.3pcap projects/jbuild/contrib/libpcap/pcap_open_offline.3pcap.in - copied unchanged from r192569, head/contrib/libpcap/pcap_open_offline.3pcap.in projects/jbuild/contrib/libpcap/pcap_set_buffer_size.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_buffer_size.3pcap projects/jbuild/contrib/libpcap/pcap_set_datalink.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_datalink.3pcap projects/jbuild/contrib/libpcap/pcap_set_promisc.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_promisc.3pcap projects/jbuild/contrib/libpcap/pcap_set_rfmon.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_rfmon.3pcap projects/jbuild/contrib/libpcap/pcap_set_snaplen.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_snaplen.3pcap projects/jbuild/contrib/libpcap/pcap_set_timeout.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_set_timeout.3pcap projects/jbuild/contrib/libpcap/pcap_setdirection.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_setdirection.3pcap projects/jbuild/contrib/libpcap/pcap_setfilter.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_setfilter.3pcap projects/jbuild/contrib/libpcap/pcap_setnonblock.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_setnonblock.3pcap projects/jbuild/contrib/libpcap/pcap_snapshot.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_snapshot.3pcap projects/jbuild/contrib/libpcap/pcap_stats.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_stats.3pcap projects/jbuild/contrib/libpcap/pcap_statustostr.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_statustostr.3pcap projects/jbuild/contrib/libpcap/pcap_strerror.3pcap - copied unchanged from r192569, head/contrib/libpcap/pcap_strerror.3pcap projects/jbuild/contrib/libpcap/runlex.sh - copied unchanged from r192569, head/contrib/libpcap/runlex.sh projects/jbuild/contrib/openbsm/libbsm/au_fcntl_cmd.3 - copied unchanged from r192569, head/contrib/openbsm/libbsm/au_fcntl_cmd.3 projects/jbuild/contrib/openbsm/libbsm/bsm_fcntl.c - copied unchanged from r192569, head/contrib/openbsm/libbsm/bsm_fcntl.c projects/jbuild/contrib/openbsm/sys/bsm/audit_fcntl.h - copied unchanged from r192569, head/contrib/openbsm/sys/bsm/audit_fcntl.h projects/jbuild/contrib/tcpdump/FREEBSD-Xlist - copied unchanged from r192569, head/contrib/tcpdump/FREEBSD-Xlist projects/jbuild/contrib/tcpdump/INSTALL.txt - copied unchanged from r192569, head/contrib/tcpdump/INSTALL.txt projects/jbuild/contrib/tcpdump/checksum.c - copied unchanged from r192569, head/contrib/tcpdump/checksum.c projects/jbuild/contrib/tcpdump/print-bt.c - copied unchanged from r192569, head/contrib/tcpdump/print-bt.c projects/jbuild/contrib/tcpdump/print-cfm.c - copied unchanged from r192569, head/contrib/tcpdump/print-cfm.c projects/jbuild/contrib/tcpdump/print-dtp.c - copied unchanged from r192569, head/contrib/tcpdump/print-dtp.c projects/jbuild/contrib/tcpdump/print-lldp.c - copied unchanged from r192569, head/contrib/tcpdump/print-lldp.c projects/jbuild/contrib/tcpdump/print-lwapp.c - copied unchanged from r192569, head/contrib/tcpdump/print-lwapp.c projects/jbuild/contrib/tcpdump/print-mpcp.c - copied unchanged from r192569, head/contrib/tcpdump/print-mpcp.c projects/jbuild/contrib/tcpdump/print-rrcp.c - copied unchanged from r192569, head/contrib/tcpdump/print-rrcp.c projects/jbuild/contrib/tcpdump/print-sflow.c - copied unchanged from r192569, head/contrib/tcpdump/print-sflow.c projects/jbuild/contrib/tcpdump/print-udld.c - copied unchanged from r192569, head/contrib/tcpdump/print-udld.c projects/jbuild/contrib/tcpdump/print-vqp.c - copied unchanged from r192569, head/contrib/tcpdump/print-vqp.c projects/jbuild/contrib/tcpdump/print-vtp.c - copied unchanged from r192569, head/contrib/tcpdump/print-vtp.c projects/jbuild/lib/libarchive/archive_read_disk.3 - copied unchanged from r192569, head/lib/libarchive/archive_read_disk.3 projects/jbuild/lib/libarchive/archive_read_support_compression_xz.c - copied unchanged from r192569, head/lib/libarchive/archive_read_support_compression_xz.c projects/jbuild/lib/libarchive/archive_read_support_format_raw.c - copied unchanged from r192569, head/lib/libarchive/archive_read_support_format_raw.c projects/jbuild/lib/libarchive/archive_write_set_compression_xz.c - copied unchanged from r192569, head/lib/libarchive/archive_write_set_compression_xz.c projects/jbuild/lib/libarchive/test/test_compat_solaris_tar_acl.c - copied unchanged from r192569, head/lib/libarchive/test/test_compat_solaris_tar_acl.c projects/jbuild/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu - copied unchanged from r192569, head/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu projects/jbuild/lib/libarchive/test/test_compat_xz.c - copied unchanged from r192569, head/lib/libarchive/test/test_compat_xz.c projects/jbuild/lib/libarchive/test/test_compat_xz_1.txz.uu - copied unchanged from r192569, head/lib/libarchive/test/test_compat_xz_1.txz.uu projects/jbuild/lib/libarchive/test/test_open_fd.c - copied unchanged from r192569, head/lib/libarchive/test/test_open_fd.c projects/jbuild/lib/libarchive/test/test_open_file.c - copied unchanged from r192569, head/lib/libarchive/test/test_open_file.c projects/jbuild/lib/libarchive/test/test_open_filename.c - copied unchanged from r192569, head/lib/libarchive/test/test_open_filename.c projects/jbuild/lib/libarchive/test/test_read_disk_entry_from_file.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_disk_entry_from_file.c projects/jbuild/lib/libarchive/test/test_read_format_cpio_bin_be.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_cpio_bin_be.c projects/jbuild/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu projects/jbuild/lib/libarchive/test/test_read_format_cpio_bin_xz.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_cpio_bin_xz.c projects/jbuild/lib/libarchive/test/test_read_format_gtar_lzma.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_gtar_lzma.c projects/jbuild/lib/libarchive/test/test_read_format_iso_gz.iso.gz.uu - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_iso_gz.iso.gz.uu projects/jbuild/lib/libarchive/test/test_read_format_raw.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_raw.c projects/jbuild/lib/libarchive/test/test_read_format_raw.data.Z.uu - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_raw.data.Z.uu projects/jbuild/lib/libarchive/test/test_read_format_raw.data.uu - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_raw.data.uu projects/jbuild/lib/libarchive/test/test_read_format_txz.c - copied unchanged from r192569, head/lib/libarchive/test/test_read_format_txz.c projects/jbuild/lib/libarchive/test/test_write_compress_bzip2.c - copied unchanged from r192569, head/lib/libarchive/test/test_write_compress_bzip2.c projects/jbuild/lib/libarchive/test/test_write_compress_gzip.c - copied unchanged from r192569, head/lib/libarchive/test/test_write_compress_gzip.c projects/jbuild/lib/libarchive/test/test_write_compress_lzma.c - copied unchanged from r192569, head/lib/libarchive/test/test_write_compress_lzma.c projects/jbuild/lib/libarchive/test/test_write_compress_xz.c - copied unchanged from r192569, head/lib/libarchive/test/test_write_compress_xz.c projects/jbuild/lib/libarchive/test/test_write_format_mtree.c - copied unchanged from r192569, head/lib/libarchive/test/test_write_format_mtree.c projects/jbuild/lib/libc/db/mpool/mpool-compat.c - copied unchanged from r192569, head/lib/libc/db/mpool/mpool-compat.c projects/jbuild/lib/libc/gen/tcsetsid.3 - copied unchanged from r192569, head/lib/libc/gen/tcsetsid.3 projects/jbuild/lib/libc/nls/be_BY.UTF-8.msg - copied unchanged from r192569, head/lib/libc/nls/be_BY.UTF-8.msg projects/jbuild/lib/libc/nls/pt_BR.ISO8859-1.msg - copied unchanged from r192569, head/lib/libc/nls/pt_BR.ISO8859-1.msg projects/jbuild/lib/libc/nls/uk_UA.UTF-8.msg - copied unchanged from r192569, head/lib/libc/nls/uk_UA.UTF-8.msg projects/jbuild/share/man/man4/bwi.4 - copied unchanged from r192569, head/share/man/man4/bwi.4 projects/jbuild/share/man/man4/iwnfw.4 - copied unchanged from r192569, head/share/man/man4/iwnfw.4 projects/jbuild/share/man/man4/man4.powerpc/tsec.4 - copied unchanged from r192569, head/share/man/man4/man4.powerpc/tsec.4 projects/jbuild/share/man/man4/uath.4 - copied unchanged from r192569, head/share/man/man4/uath.4 projects/jbuild/share/man/man9/refcount.9 - copied unchanged from r192569, head/share/man/man9/refcount.9 projects/jbuild/sys/amd64/acpica/Makefile - copied unchanged from r192569, head/sys/amd64/acpica/Makefile projects/jbuild/sys/amd64/acpica/acpi_switch.S - copied unchanged from r192569, head/sys/amd64/acpica/acpi_switch.S projects/jbuild/sys/amd64/acpica/acpi_wakecode.S - copied unchanged from r192569, head/sys/amd64/acpica/acpi_wakecode.S projects/jbuild/sys/amd64/acpica/genwakecode.sh - copied unchanged from r192569, head/sys/amd64/acpica/genwakecode.sh projects/jbuild/sys/amd64/acpica/genwakedata.sh - copied unchanged from r192569, head/sys/amd64/acpica/genwakedata.sh projects/jbuild/sys/amd64/amd64/mca.c - copied unchanged from r192569, head/sys/amd64/amd64/mca.c projects/jbuild/sys/amd64/ia32/ia32_misc.c - copied unchanged from r192569, head/sys/amd64/ia32/ia32_misc.c projects/jbuild/sys/amd64/include/mca.h - copied unchanged from r192569, head/sys/amd64/include/mca.h projects/jbuild/sys/arm/at91/at91_cfata.c - copied unchanged from r192569, head/sys/arm/at91/at91_cfata.c projects/jbuild/sys/bsm/audit_fcntl.h - copied unchanged from r192569, head/sys/bsm/audit_fcntl.h projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c - copied unchanged from r192569, head/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c projects/jbuild/sys/contrib/dev/iwi/Makefile - copied unchanged from r192569, head/sys/contrib/dev/iwi/Makefile projects/jbuild/sys/contrib/dev/uath/ - copied from r192569, head/sys/contrib/dev/uath/ projects/jbuild/sys/dev/bwi/ - copied from r192569, head/sys/dev/bwi/ projects/jbuild/sys/dev/ipmi/ipmi_linux.c - copied unchanged from r192569, head/sys/dev/ipmi/ipmi_linux.c projects/jbuild/sys/dev/ixgbe/ixgbe_82599.c - copied unchanged from r192569, head/sys/dev/ixgbe/ixgbe_82599.c projects/jbuild/sys/dev/mii/axphy.c - copied unchanged from r192569, head/sys/dev/mii/axphy.c projects/jbuild/sys/dev/mii/axphyreg.h - copied unchanged from r192569, head/sys/dev/mii/axphyreg.h projects/jbuild/sys/dev/usb/controller/avr32dci.c - copied unchanged from r192569, head/sys/dev/usb/controller/avr32dci.c projects/jbuild/sys/dev/usb/controller/avr32dci.h - copied unchanged from r192569, head/sys/dev/usb/controller/avr32dci.h projects/jbuild/sys/dev/usb/wlan/if_uath.c - copied unchanged from r192569, head/sys/dev/usb/wlan/if_uath.c projects/jbuild/sys/dev/usb/wlan/if_uathreg.h - copied unchanged from r192569, head/sys/dev/usb/wlan/if_uathreg.h projects/jbuild/sys/dev/usb/wlan/if_uathvar.h - copied unchanged from r192569, head/sys/dev/usb/wlan/if_uathvar.h projects/jbuild/sys/dev/usb/wlan/if_upgt.c - copied unchanged from r192569, head/sys/dev/usb/wlan/if_upgt.c projects/jbuild/sys/dev/usb/wlan/if_upgtvar.h - copied unchanged from r192569, head/sys/dev/usb/wlan/if_upgtvar.h projects/jbuild/sys/fs/nfs/ - copied from r192569, head/sys/fs/nfs/ projects/jbuild/sys/fs/nfsclient/ - copied from r192569, head/sys/fs/nfsclient/ projects/jbuild/sys/fs/nfsserver/ - copied from r192569, head/sys/fs/nfsserver/ projects/jbuild/sys/geom/vinum/geom_vinum_create.c - copied unchanged from r192569, head/sys/geom/vinum/geom_vinum_create.c projects/jbuild/sys/geom/vinum/geom_vinum_events.c - copied unchanged from r192569, head/sys/geom/vinum/geom_vinum_events.c projects/jbuild/sys/i386/cpufreq/hwpstate.c - copied unchanged from r192569, head/sys/i386/cpufreq/hwpstate.c projects/jbuild/sys/i386/i386/mca.c - copied unchanged from r192569, head/sys/i386/i386/mca.c projects/jbuild/sys/i386/include/mca.h - copied unchanged from r192569, head/sys/i386/include/mca.h projects/jbuild/sys/ia64/ia32/ia32_misc.c - copied unchanged from r192569, head/sys/ia64/ia32/ia32_misc.c projects/jbuild/sys/modules/bwi/ - copied from r192569, head/sys/modules/bwi/ projects/jbuild/sys/modules/dtrace/dtnfsclient/ (props changed) - copied from r192569, head/sys/modules/dtrace/dtnfsclient/ projects/jbuild/sys/modules/ip6_mroute_mod/ (props changed) - copied from r192569, head/sys/modules/ip6_mroute_mod/ projects/jbuild/sys/modules/ipmi/ipmi_linux/ (props changed) - copied from r192569, head/sys/modules/ipmi/ipmi_linux/ projects/jbuild/sys/modules/nfssvc/ - copied from r192569, head/sys/modules/nfssvc/ projects/jbuild/sys/modules/usb/uath/ - copied from r192569, head/sys/modules/usb/uath/ projects/jbuild/sys/modules/usb/upgt/ - copied from r192569, head/sys/modules/usb/upgt/ projects/jbuild/sys/net/flowtable.c - copied unchanged from r192569, head/sys/net/flowtable.c projects/jbuild/sys/net/flowtable.h - copied unchanged from r192569, head/sys/net/flowtable.h projects/jbuild/sys/net/if_dead.c - copied unchanged from r192569, head/sys/net/if_dead.c projects/jbuild/sys/net80211/ieee80211_radiotap.c - copied unchanged from r192569, head/sys/net80211/ieee80211_radiotap.c projects/jbuild/sys/net80211/ieee80211_superg.c - copied unchanged from r192569, head/sys/net80211/ieee80211_superg.c projects/jbuild/sys/net80211/ieee80211_superg.h - copied unchanged from r192569, head/sys/net80211/ieee80211_superg.h projects/jbuild/sys/netinet6/in6_mcast.c - copied unchanged from r192569, head/sys/netinet6/in6_mcast.c projects/jbuild/sys/netinet6/mld6.h - copied unchanged from r192569, head/sys/netinet6/mld6.h projects/jbuild/sys/nfs/nfs_nfssvc.c - copied unchanged from r192569, head/sys/nfs/nfs_nfssvc.c projects/jbuild/sys/nfs/nfssvc.h - copied unchanged from r192569, head/sys/nfs/nfssvc.h projects/jbuild/sys/nfsclient/nfs_kdtrace.c - copied unchanged from r192569, head/sys/nfsclient/nfs_kdtrace.c projects/jbuild/sys/nfsclient/nfs_kdtrace.h - copied unchanged from r192569, head/sys/nfsclient/nfs_kdtrace.h projects/jbuild/sys/pc98/include/mca.h - copied unchanged from r192569, head/sys/pc98/include/mca.h projects/jbuild/sys/powerpc/aim/mmu_oea64.c - copied unchanged from r192569, head/sys/powerpc/aim/mmu_oea64.c projects/jbuild/sys/powerpc/aim/platform_chrp.c - copied unchanged from r192569, head/sys/powerpc/aim/platform_chrp.c projects/jbuild/sys/powerpc/booke/mp_cpudep.c - copied unchanged from r192569, head/sys/powerpc/booke/mp_cpudep.c projects/jbuild/sys/powerpc/booke/platform_bare.c - copied unchanged from r192569, head/sys/powerpc/booke/platform_bare.c projects/jbuild/sys/powerpc/include/platform.h - copied unchanged from r192569, head/sys/powerpc/include/platform.h projects/jbuild/sys/powerpc/include/platformvar.h - copied unchanged from r192569, head/sys/powerpc/include/platformvar.h projects/jbuild/sys/powerpc/include/sysarch.h - copied unchanged from r192569, head/sys/powerpc/include/sysarch.h projects/jbuild/sys/powerpc/mpc85xx/atpic.c - copied unchanged from r192569, head/sys/powerpc/mpc85xx/atpic.c projects/jbuild/sys/powerpc/mpc85xx/isa.c - copied unchanged from r192569, head/sys/powerpc/mpc85xx/isa.c projects/jbuild/sys/powerpc/ofw/ofw_real.c - copied unchanged from r192569, head/sys/powerpc/ofw/ofw_real.c projects/jbuild/sys/powerpc/powermac/cpcht.c - copied unchanged from r192569, head/sys/powerpc/powermac/cpcht.c projects/jbuild/sys/powerpc/powermac/cpchtvar.h - copied unchanged from r192569, head/sys/powerpc/powermac/cpchtvar.h projects/jbuild/sys/powerpc/powerpc/dump_machdep.c - copied unchanged from r192569, head/sys/powerpc/powerpc/dump_machdep.c projects/jbuild/sys/powerpc/powerpc/platform.c - copied unchanged from r192569, head/sys/powerpc/powerpc/platform.c projects/jbuild/sys/powerpc/powerpc/platform_if.m - copied unchanged from r192569, head/sys/powerpc/powerpc/platform_if.m projects/jbuild/sys/powerpc/powerpc/uio_machdep.c - copied unchanged from r192569, head/sys/powerpc/powerpc/uio_machdep.c projects/jbuild/sys/security/audit/audit_bsm_fcntl.c - copied unchanged from r192569, head/sys/security/audit/audit_bsm_fcntl.c projects/jbuild/tools/regression/bin/date/ - copied from r192569, head/tools/regression/bin/date/ projects/jbuild/tools/regression/bin/sh/builtins/read1.0 - copied unchanged from r192569, head/tools/regression/bin/sh/builtins/read1.0 projects/jbuild/tools/regression/bin/sh/builtins/read1.0.stdout - copied unchanged from r192569, head/tools/regression/bin/sh/builtins/read1.0.stdout projects/jbuild/tools/regression/bin/sh/parser/ - copied from r192569, head/tools/regression/bin/sh/parser/ projects/jbuild/tools/regression/mac/mac_portacl/ - copied from r192569, head/tools/regression/mac/mac_portacl/ projects/jbuild/tools/tools/nanobsd/fill_pkg.sh - copied unchanged from r192569, head/tools/tools/nanobsd/fill_pkg.sh projects/jbuild/usr.bin/perror/ - copied from r192569, head/usr.bin/perror/ projects/jbuild/usr.sbin/uathload/ - copied from r192569, head/usr.sbin/uathload/ Deleted: projects/jbuild/contrib/amd/m4/ projects/jbuild/contrib/bind/ projects/jbuild/contrib/bind9/lib/dns/sec/ projects/jbuild/contrib/cvs/tools/pcl-cvs/ projects/jbuild/contrib/file/.cvsignore projects/jbuild/contrib/file/FREEBSD-upgrade projects/jbuild/contrib/file/config.guess projects/jbuild/contrib/file/config.sub projects/jbuild/contrib/gcc/config/alpha/ projects/jbuild/contrib/gcc/config/frv/ projects/jbuild/contrib/gcc/config/mpw/ projects/jbuild/contrib/gcc/contrib/ projects/jbuild/contrib/gcc/f/ projects/jbuild/contrib/gcc/include/ projects/jbuild/contrib/gdb/gdb/config/none/ projects/jbuild/contrib/gdb/gdb/nlm/ projects/jbuild/contrib/groff/addftinfo/ projects/jbuild/contrib/groff/afmtodit/ projects/jbuild/contrib/groff/eqn/ projects/jbuild/contrib/groff/grn/ projects/jbuild/contrib/groff/grodvi/ projects/jbuild/contrib/groff/groff/ projects/jbuild/contrib/groff/grog/ projects/jbuild/contrib/groff/grohtml/ projects/jbuild/contrib/groff/grolbp/ projects/jbuild/contrib/groff/grolj4/ projects/jbuild/contrib/groff/grops/ projects/jbuild/contrib/groff/grotty/ projects/jbuild/contrib/groff/hpftodit/ projects/jbuild/contrib/groff/include/ projects/jbuild/contrib/groff/indxbib/ projects/jbuild/contrib/groff/libbib/ projects/jbuild/contrib/groff/libdriver/ projects/jbuild/contrib/groff/libgroff/ projects/jbuild/contrib/groff/lkbib/ projects/jbuild/contrib/groff/lookbib/ projects/jbuild/contrib/groff/mm/ projects/jbuild/contrib/groff/nroff/ projects/jbuild/contrib/groff/pfbtops/ projects/jbuild/contrib/groff/pic/ projects/jbuild/contrib/groff/refer/ projects/jbuild/contrib/groff/soelim/ projects/jbuild/contrib/groff/src/xditview/ projects/jbuild/contrib/groff/tbl/ projects/jbuild/contrib/groff/tfmtodit/ projects/jbuild/contrib/groff/troff/ projects/jbuild/contrib/groff/xditview/ projects/jbuild/contrib/libpcap/FILES projects/jbuild/contrib/libpcap/README.Win32 projects/jbuild/contrib/libpcap/README.aix projects/jbuild/contrib/libpcap/README.dag projects/jbuild/contrib/libpcap/README.hpux projects/jbuild/contrib/libpcap/README.linux projects/jbuild/contrib/libpcap/README.macosx projects/jbuild/contrib/libpcap/README.septel projects/jbuild/contrib/libpcap/README.tru64 projects/jbuild/contrib/libpcap/acsite.m4 projects/jbuild/contrib/libpcap/doc/ projects/jbuild/contrib/libpcap/pcap-nit.h projects/jbuild/contrib/libpcap/pcap-pf.h projects/jbuild/contrib/libpcap/pcap.3 projects/jbuild/contrib/libpcap/pcap1.h projects/jbuild/contrib/libpcap/sll.h projects/jbuild/contrib/libstdc++/config/abi/alpha-freebsd5/ projects/jbuild/contrib/libstdc++/config/abi/alpha-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/alphaev67-unknown-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/arm-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/hppa-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/i386-freebsd4/ projects/jbuild/contrib/libstdc++/config/abi/i386-freebsd5/ projects/jbuild/contrib/libstdc++/config/abi/i386-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/i486-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/i686-pc-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/ia64-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/ia64-unknown-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/m68k-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/mips-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/powerpc-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/s390-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/s390x-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/sparc-freebsd5/ projects/jbuild/contrib/libstdc++/config/abi/sparc-linux-gnu/ projects/jbuild/contrib/libstdc++/config/abi/x86_64-linux-gnu/ projects/jbuild/contrib/libstdc++/config/cpu/alpha/bits/ projects/jbuild/contrib/libstdc++/config/cpu/arm/bits/ projects/jbuild/contrib/libstdc++/config/cpu/cris/bits/ projects/jbuild/contrib/libstdc++/config/cpu/generic/bits/ projects/jbuild/contrib/libstdc++/config/cpu/i386/bits/ projects/jbuild/contrib/libstdc++/config/cpu/i486/bits/ projects/jbuild/contrib/libstdc++/config/cpu/ia64/bits/ projects/jbuild/contrib/libstdc++/config/cpu/m68k/bits/ projects/jbuild/contrib/libstdc++/config/cpu/mips/bits/ projects/jbuild/contrib/libstdc++/config/cpu/mmix/ projects/jbuild/contrib/libstdc++/config/cpu/powerpc/bits/ projects/jbuild/contrib/libstdc++/config/cpu/s390/ projects/jbuild/contrib/libstdc++/config/cpu/sparc/bits/ projects/jbuild/contrib/libstdc++/config/cpu/x86-64/ projects/jbuild/contrib/libstdc++/config/os/aix/bits/ projects/jbuild/contrib/libstdc++/config/os/bsd/freebsd/bits/ projects/jbuild/contrib/libstdc++/config/os/bsd/netbsd/bits/ projects/jbuild/contrib/libstdc++/config/os/djgpp/bits/ projects/jbuild/contrib/libstdc++/config/os/generic/bits/ projects/jbuild/contrib/libstdc++/config/os/gnu-linux/bits/ projects/jbuild/contrib/libstdc++/config/os/hpux/bits/ projects/jbuild/contrib/libstdc++/config/os/irix/irix5.2/bits/ projects/jbuild/contrib/libstdc++/config/os/irix/irix6.5/bits/ projects/jbuild/contrib/libstdc++/config/os/mingw32/bits/ projects/jbuild/contrib/libstdc++/config/os/newlib/bits/ projects/jbuild/contrib/libstdc++/config/os/osf/ projects/jbuild/contrib/libstdc++/config/os/qnx/qnx6.1/bits/ projects/jbuild/contrib/libstdc++/config/os/solaris/solaris2.5/bits/ projects/jbuild/contrib/libstdc++/config/os/solaris/solaris2.6/bits/ projects/jbuild/contrib/libstdc++/config/os/solaris/solaris2.7/bits/ projects/jbuild/contrib/libstdc++/include/c_shadow/ projects/jbuild/contrib/ncurses/tack/ projects/jbuild/contrib/ntp/html/hints/ projects/jbuild/contrib/ntp/scripts/support/ projects/jbuild/contrib/openpam/modules/pam_dummy/ projects/jbuild/contrib/tcpdump/FILES projects/jbuild/contrib/tcpdump/INSTALL projects/jbuild/contrib/tcpdump/Makefile-devel-adds projects/jbuild/contrib/tcpdump/PLATFORMS projects/jbuild/contrib/tcpdump/Readme.Win32 projects/jbuild/contrib/tcpdump/TODO projects/jbuild/contrib/tcpdump/tests/ projects/jbuild/crypto/openssl/os2/ projects/jbuild/gnu/usr.bin/perl/ projects/jbuild/gnu/usr.bin/pr/ projects/jbuild/gnu/usr.bin/texinfo/info-files/ projects/jbuild/lib/libc/gen/dlfunc.c projects/jbuild/lib/libftp/ projects/jbuild/libexec/bugfiler/ projects/jbuild/libexec/kpasswdd/ projects/jbuild/sbin/slattach/ projects/jbuild/sbin/startslip/ projects/jbuild/share/man/man4/fla.4 projects/jbuild/share/man/man4/man4.i386/ar.4 projects/jbuild/share/man/man4/man4.i386/ray.4 projects/jbuild/share/man/man4/man4.i386/sr.4 projects/jbuild/share/man/man4/ppp.4 projects/jbuild/share/man/man4/sl.4 projects/jbuild/share/man/man4/usb2_core.4 projects/jbuild/share/man/man4/uscanner.4 projects/jbuild/share/man/man9/VOP_LEASE.9 projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/amd64/atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/i386/atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/ia64/atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/common/atomic/sparc64/atomic.S projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.c projects/jbuild/sys/compat/svr4/svr4_ttold.c projects/jbuild/sys/compat/svr4/svr4_ttold.h projects/jbuild/sys/dev/ar/ projects/jbuild/sys/dev/ray/ projects/jbuild/sys/dev/sr/ projects/jbuild/sys/dev/usb/README.TXT projects/jbuild/sys/dev/usb/image/ projects/jbuild/sys/dev/usb/usb_sw_transfer.c projects/jbuild/sys/dev/usb/usb_sw_transfer.h projects/jbuild/sys/dev/usb/wlan/usb_wlan.h projects/jbuild/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c projects/jbuild/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c projects/jbuild/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c projects/jbuild/sys/legacy/dev/usb/if_aue.c projects/jbuild/sys/legacy/dev/usb/if_auereg.h projects/jbuild/sys/legacy/dev/usb/if_axe.c projects/jbuild/sys/legacy/dev/usb/if_axereg.h projects/jbuild/sys/legacy/dev/usb/if_cdce.c projects/jbuild/sys/legacy/dev/usb/if_cdcereg.h projects/jbuild/sys/legacy/dev/usb/if_cue.c projects/jbuild/sys/legacy/dev/usb/if_cuereg.h projects/jbuild/sys/legacy/dev/usb/if_kue.c projects/jbuild/sys/legacy/dev/usb/if_kuereg.h projects/jbuild/sys/legacy/dev/usb/if_rue.c projects/jbuild/sys/legacy/dev/usb/if_ruereg.h projects/jbuild/sys/legacy/dev/usb/if_rum.c projects/jbuild/sys/legacy/dev/usb/if_rumreg.h projects/jbuild/sys/legacy/dev/usb/if_rumvar.h projects/jbuild/sys/legacy/dev/usb/if_udav.c projects/jbuild/sys/legacy/dev/usb/if_udavreg.h projects/jbuild/sys/legacy/dev/usb/if_upgt.c projects/jbuild/sys/legacy/dev/usb/if_upgtvar.h projects/jbuild/sys/legacy/dev/usb/if_ural.c projects/jbuild/sys/legacy/dev/usb/if_uralreg.h projects/jbuild/sys/legacy/dev/usb/if_uralvar.h projects/jbuild/sys/legacy/dev/usb/if_zyd.c projects/jbuild/sys/legacy/dev/usb/if_zydfw.h projects/jbuild/sys/legacy/dev/usb/if_zydreg.h projects/jbuild/sys/legacy/dev/usb/kue_fw.h projects/jbuild/sys/legacy/dev/usb/usb_ethersubr.c projects/jbuild/sys/legacy/dev/usb/usb_ethersubr.h projects/jbuild/sys/modules/ar/ projects/jbuild/sys/modules/ata/ata/ projects/jbuild/sys/modules/netgraph/sync_ar/ projects/jbuild/sys/modules/netgraph/sync_sr/ projects/jbuild/sys/modules/ray/ projects/jbuild/sys/modules/sr/ projects/jbuild/sys/modules/usb/uscanner/ projects/jbuild/sys/net/bsd_comp.c projects/jbuild/sys/net/if_ppp.c projects/jbuild/sys/net/if_ppp.h projects/jbuild/sys/net/if_pppvar.h projects/jbuild/sys/net/if_sl.c projects/jbuild/sys/net/if_slvar.h projects/jbuild/sys/net/ppp_comp.h projects/jbuild/sys/net/ppp_deflate.c projects/jbuild/sys/net/ppp_tty.c projects/jbuild/sys/net/slip.h projects/jbuild/sys/powerpc/aim/uio_machdep.c projects/jbuild/sys/powerpc/booke/uio_machdep.c projects/jbuild/sys/powerpc/include/powerpc.h projects/jbuild/tools/build/options/WITHOUT_SLIP projects/jbuild/tools/tools/nanobsd/rescue/Files/conf/ projects/jbuild/tools/tools/nanobsd/rescue/Pkg/ projects/jbuild/usr.bin/compile_et/test/ projects/jbuild/usr.bin/diff/ projects/jbuild/usr.bin/file/config.h projects/jbuild/usr.bin/grep/ projects/jbuild/usr.bin/timedef/ projects/jbuild/usr.sbin/bootpd/ projects/jbuild/usr.sbin/pppd/ projects/jbuild/usr.sbin/pppstats/ projects/jbuild/usr.sbin/raycontrol/ projects/jbuild/usr.sbin/sliplogin/ projects/jbuild/usr.sbin/slstat/ projects/jbuild/usr.sbin/update/ projects/jbuild/usr.sbin/xntpd/ Modified: projects/jbuild/ (props changed) projects/jbuild/MAINTAINERS projects/jbuild/Makefile projects/jbuild/Makefile.inc1 projects/jbuild/ObsoleteFiles.inc projects/jbuild/UPDATING projects/jbuild/bin/cat/Makefile projects/jbuild/bin/ls/ls.1 projects/jbuild/bin/pkill/pkill.1 projects/jbuild/bin/pkill/pkill.c projects/jbuild/bin/ps/print.c projects/jbuild/bin/ps/ps.1 projects/jbuild/bin/ps/ps.c projects/jbuild/bin/ps/ps.h projects/jbuild/bin/rm/rm.c projects/jbuild/bin/sh/alias.c projects/jbuild/bin/sh/eval.c projects/jbuild/bin/sh/miscbltin.c projects/jbuild/bin/sh/parser.c projects/jbuild/cddl/Makefile.inc projects/jbuild/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h projects/jbuild/cddl/lib/libzpool/Makefile projects/jbuild/cddl/usr.bin/ztest/Makefile projects/jbuild/cddl/usr.sbin/zdb/Makefile projects/jbuild/contrib/bind9/ (props changed) projects/jbuild/contrib/bind9/CHANGES projects/jbuild/contrib/bind9/lib/dns/validator.c projects/jbuild/contrib/bind9/version projects/jbuild/contrib/cpio/ (props changed) projects/jbuild/contrib/csup/rcsfile.c projects/jbuild/contrib/csup/rcsfile.h projects/jbuild/contrib/csup/rcsparse.c projects/jbuild/contrib/csup/updater.c projects/jbuild/contrib/file/ (props changed) projects/jbuild/contrib/file/ChangeLog projects/jbuild/contrib/file/Magdir/animation projects/jbuild/contrib/file/Magdir/audio projects/jbuild/contrib/file/Magdir/cafebabe projects/jbuild/contrib/file/Magdir/compress projects/jbuild/contrib/file/Magdir/database projects/jbuild/contrib/file/Magdir/elf projects/jbuild/contrib/file/Magdir/epoc projects/jbuild/contrib/file/Magdir/erlang projects/jbuild/contrib/file/Magdir/filesystems projects/jbuild/contrib/file/Magdir/fonts projects/jbuild/contrib/file/Magdir/fortran projects/jbuild/contrib/file/Magdir/graphviz projects/jbuild/contrib/file/Magdir/images projects/jbuild/contrib/file/Magdir/jpeg projects/jbuild/contrib/file/Magdir/linux projects/jbuild/contrib/file/Magdir/lisp projects/jbuild/contrib/file/Magdir/mach projects/jbuild/contrib/file/Magdir/macintosh projects/jbuild/contrib/file/Magdir/msdos projects/jbuild/contrib/file/Magdir/perl projects/jbuild/contrib/file/Magdir/printer projects/jbuild/contrib/file/Magdir/python projects/jbuild/contrib/file/Magdir/timezone projects/jbuild/contrib/file/Magdir/troff projects/jbuild/contrib/file/Magdir/windows projects/jbuild/contrib/file/Magdir/xwindows projects/jbuild/contrib/file/Makefile.am projects/jbuild/contrib/file/Makefile.in projects/jbuild/contrib/file/README projects/jbuild/contrib/file/TODO projects/jbuild/contrib/file/acinclude.m4 projects/jbuild/contrib/file/aclocal.m4 projects/jbuild/contrib/file/apprentice.c projects/jbuild/contrib/file/apptype.c projects/jbuild/contrib/file/ascmagic.c projects/jbuild/contrib/file/asprintf.c (contents, props changed) projects/jbuild/contrib/file/compress.c projects/jbuild/contrib/file/config.h.in projects/jbuild/contrib/file/configure projects/jbuild/contrib/file/configure.ac projects/jbuild/contrib/file/elfclass.h (props changed) projects/jbuild/contrib/file/file.c projects/jbuild/contrib/file/file.h projects/jbuild/contrib/file/file.man projects/jbuild/contrib/file/file_opts.h projects/jbuild/contrib/file/fsmagic.c projects/jbuild/contrib/file/funcs.c projects/jbuild/contrib/file/getopt_long.c (contents, props changed) projects/jbuild/contrib/file/is_tar.c projects/jbuild/contrib/file/libmagic.man projects/jbuild/contrib/file/magic.c projects/jbuild/contrib/file/magic.h projects/jbuild/contrib/file/magic.man projects/jbuild/contrib/file/mygetopt.h (props changed) projects/jbuild/contrib/file/patchlevel.h projects/jbuild/contrib/file/print.c projects/jbuild/contrib/file/readelf.c projects/jbuild/contrib/file/softmagic.c projects/jbuild/contrib/file/tests/Makefile.am (props changed) projects/jbuild/contrib/file/tests/Makefile.in (contents, props changed) projects/jbuild/contrib/file/tests/test.c (props changed) projects/jbuild/contrib/file/vasprintf.c (contents, props changed) projects/jbuild/contrib/gcc/c-cppbuiltin.c projects/jbuild/contrib/gcc/c-decl.c projects/jbuild/contrib/gcc/c-opts.c projects/jbuild/contrib/gcc/c-tree.h projects/jbuild/contrib/gcc/c-typeck.c projects/jbuild/contrib/gcc/doc/extend.texi projects/jbuild/contrib/gdb/ (props changed) projects/jbuild/contrib/gdb/FREEBSD-Xlist projects/jbuild/contrib/gdtoa/ (props changed) projects/jbuild/contrib/groff/font/devutf8/R.proto projects/jbuild/contrib/ipfilter/ipsend/sbpf.c projects/jbuild/contrib/less/ (props changed) projects/jbuild/contrib/less/COPYING projects/jbuild/contrib/less/FREEBSD-upgrade projects/jbuild/contrib/less/LICENSE projects/jbuild/contrib/less/Makefile.in projects/jbuild/contrib/less/NEWS projects/jbuild/contrib/less/README projects/jbuild/contrib/less/brac.c projects/jbuild/contrib/less/ch.c projects/jbuild/contrib/less/charset.c projects/jbuild/contrib/less/charset.h projects/jbuild/contrib/less/cmd.h projects/jbuild/contrib/less/cmdbuf.c projects/jbuild/contrib/less/command.c projects/jbuild/contrib/less/configure projects/jbuild/contrib/less/configure.ac projects/jbuild/contrib/less/decode.c projects/jbuild/contrib/less/defines.ds projects/jbuild/contrib/less/defines.o2 projects/jbuild/contrib/less/defines.o9 projects/jbuild/contrib/less/defines.wn projects/jbuild/contrib/less/edit.c projects/jbuild/contrib/less/filename.c projects/jbuild/contrib/less/forwback.c projects/jbuild/contrib/less/funcs.h projects/jbuild/contrib/less/help.c projects/jbuild/contrib/less/ifile.c projects/jbuild/contrib/less/input.c projects/jbuild/contrib/less/install.sh projects/jbuild/contrib/less/jump.c projects/jbuild/contrib/less/less.h projects/jbuild/contrib/less/less.hlp projects/jbuild/contrib/less/less.man projects/jbuild/contrib/less/less.nro projects/jbuild/contrib/less/lessecho.c projects/jbuild/contrib/less/lessecho.man projects/jbuild/contrib/less/lessecho.nro projects/jbuild/contrib/less/lesskey.c projects/jbuild/contrib/less/lesskey.h projects/jbuild/contrib/less/lesskey.man projects/jbuild/contrib/less/lesskey.nro projects/jbuild/contrib/less/lglob.h projects/jbuild/contrib/less/line.c projects/jbuild/contrib/less/linenum.c projects/jbuild/contrib/less/lsystem.c projects/jbuild/contrib/less/main.c projects/jbuild/contrib/less/mark.c projects/jbuild/contrib/less/mkhelp.c projects/jbuild/contrib/less/optfunc.c projects/jbuild/contrib/less/option.c projects/jbuild/contrib/less/option.h projects/jbuild/contrib/less/opttbl.c projects/jbuild/contrib/less/os.c projects/jbuild/contrib/less/output.c projects/jbuild/contrib/less/pckeys.h projects/jbuild/contrib/less/position.c projects/jbuild/contrib/less/position.h projects/jbuild/contrib/less/prompt.c projects/jbuild/contrib/less/screen.c projects/jbuild/contrib/less/scrsize.c projects/jbuild/contrib/less/search.c projects/jbuild/contrib/less/signal.c projects/jbuild/contrib/less/tags.c projects/jbuild/contrib/less/ttyin.c projects/jbuild/contrib/less/version.c projects/jbuild/contrib/libpcap/ (props changed) projects/jbuild/contrib/libpcap/CHANGES projects/jbuild/contrib/libpcap/CREDITS projects/jbuild/contrib/libpcap/INSTALL.txt projects/jbuild/contrib/libpcap/Makefile.in projects/jbuild/contrib/libpcap/README projects/jbuild/contrib/libpcap/VERSION projects/jbuild/contrib/libpcap/atmuni31.h projects/jbuild/contrib/libpcap/bpf/net/bpf_filter.c projects/jbuild/contrib/libpcap/bpf_dump.c projects/jbuild/contrib/libpcap/bpf_image.c projects/jbuild/contrib/libpcap/config.h.in projects/jbuild/contrib/libpcap/configure projects/jbuild/contrib/libpcap/configure.in projects/jbuild/contrib/libpcap/etherent.c projects/jbuild/contrib/libpcap/ethertype.h projects/jbuild/contrib/libpcap/fad-getad.c projects/jbuild/contrib/libpcap/fad-gifc.c projects/jbuild/contrib/libpcap/fad-glifc.c projects/jbuild/contrib/libpcap/fad-win32.c projects/jbuild/contrib/libpcap/gencode.c projects/jbuild/contrib/libpcap/gencode.h projects/jbuild/contrib/libpcap/grammar.y projects/jbuild/contrib/libpcap/inet.c projects/jbuild/contrib/libpcap/mkdep projects/jbuild/contrib/libpcap/nametoaddr.c projects/jbuild/contrib/libpcap/optimize.c projects/jbuild/contrib/libpcap/packaging/pcap.spec.in projects/jbuild/contrib/libpcap/pcap-bpf.c projects/jbuild/contrib/libpcap/pcap-bpf.h projects/jbuild/contrib/libpcap/pcap-dag.c projects/jbuild/contrib/libpcap/pcap-dag.h projects/jbuild/contrib/libpcap/pcap-dlpi.c projects/jbuild/contrib/libpcap/pcap-dos.c projects/jbuild/contrib/libpcap/pcap-enet.c projects/jbuild/contrib/libpcap/pcap-int.h projects/jbuild/contrib/libpcap/pcap-linux.c projects/jbuild/contrib/libpcap/pcap-namedb.h projects/jbuild/contrib/libpcap/pcap-nit.c projects/jbuild/contrib/libpcap/pcap-null.c projects/jbuild/contrib/libpcap/pcap-pf.c projects/jbuild/contrib/libpcap/pcap-septel.c projects/jbuild/contrib/libpcap/pcap-septel.h projects/jbuild/contrib/libpcap/pcap-snit.c projects/jbuild/contrib/libpcap/pcap-snoop.c projects/jbuild/contrib/libpcap/pcap-stdinc.h projects/jbuild/contrib/libpcap/pcap-win32.c projects/jbuild/contrib/libpcap/pcap.c projects/jbuild/contrib/libpcap/pcap.h projects/jbuild/contrib/libpcap/savefile.c projects/jbuild/contrib/libpcap/scanner.l projects/jbuild/contrib/ncurses/ (props changed) projects/jbuild/contrib/netcat/ (props changed) projects/jbuild/contrib/ntp/ (props changed) projects/jbuild/contrib/ntp/ntpq/ntpq.c projects/jbuild/contrib/openbsm/ (props changed) projects/jbuild/contrib/openbsm/CREDITS projects/jbuild/contrib/openbsm/INSTALL projects/jbuild/contrib/openbsm/Makefile.in projects/jbuild/contrib/openbsm/NEWS projects/jbuild/contrib/openbsm/README projects/jbuild/contrib/openbsm/TODO projects/jbuild/contrib/openbsm/VERSION projects/jbuild/contrib/openbsm/aclocal.m4 projects/jbuild/contrib/openbsm/bin/Makefile.in projects/jbuild/contrib/openbsm/bin/audit/Makefile.in projects/jbuild/contrib/openbsm/bin/audit/audit.c projects/jbuild/contrib/openbsm/bin/auditd/Makefile.in projects/jbuild/contrib/openbsm/bin/auditd/auditd.c projects/jbuild/contrib/openbsm/bin/auditd/auditd_darwin.c projects/jbuild/contrib/openbsm/bin/auditd/auditd_fbsd.c projects/jbuild/contrib/openbsm/bin/auditfilterd/Makefile.in projects/jbuild/contrib/openbsm/bin/auditfilterd/auditfilterd.8 projects/jbuild/contrib/openbsm/bin/auditreduce/Makefile.in projects/jbuild/contrib/openbsm/bin/praudit/Makefile.in projects/jbuild/contrib/openbsm/bsm/Makefile.in projects/jbuild/contrib/openbsm/bsm/audit_uevents.h projects/jbuild/contrib/openbsm/bsm/libbsm.h projects/jbuild/contrib/openbsm/config/config.h.in projects/jbuild/contrib/openbsm/config/ltmain.sh projects/jbuild/contrib/openbsm/configure projects/jbuild/contrib/openbsm/configure.ac projects/jbuild/contrib/openbsm/etc/audit_class projects/jbuild/contrib/openbsm/etc/audit_control projects/jbuild/contrib/openbsm/etc/audit_event projects/jbuild/contrib/openbsm/libauditd/Makefile.in projects/jbuild/contrib/openbsm/libauditd/auditd_lib.c projects/jbuild/contrib/openbsm/libbsm/Makefile.am projects/jbuild/contrib/openbsm/libbsm/Makefile.in projects/jbuild/contrib/openbsm/libbsm/au_control.3 projects/jbuild/contrib/openbsm/libbsm/audit_submit.3 projects/jbuild/contrib/openbsm/libbsm/bsm_audit.c projects/jbuild/contrib/openbsm/libbsm/bsm_control.c projects/jbuild/contrib/openbsm/libbsm/bsm_domain.c projects/jbuild/contrib/openbsm/libbsm/bsm_io.c projects/jbuild/contrib/openbsm/libbsm/bsm_notify.c projects/jbuild/contrib/openbsm/libbsm/bsm_token.c projects/jbuild/contrib/openbsm/libbsm/bsm_wrappers.c projects/jbuild/contrib/openbsm/libbsm/libbsm.3 projects/jbuild/contrib/openbsm/man/Makefile.in projects/jbuild/contrib/openbsm/man/auditon.2 projects/jbuild/contrib/openbsm/modules/Makefile.in projects/jbuild/contrib/openbsm/modules/auditfilter_noop/Makefile.in projects/jbuild/contrib/openbsm/sys/Makefile.in projects/jbuild/contrib/openbsm/sys/bsm/Makefile.am projects/jbuild/contrib/openbsm/sys/bsm/Makefile.in projects/jbuild/contrib/openbsm/sys/bsm/audit.h projects/jbuild/contrib/openbsm/sys/bsm/audit_domain.h projects/jbuild/contrib/openbsm/sys/bsm/audit_kevents.h projects/jbuild/contrib/openbsm/sys/bsm/audit_record.h projects/jbuild/contrib/openbsm/test/Makefile.in projects/jbuild/contrib/openbsm/test/bsm/Makefile.in projects/jbuild/contrib/openbsm/tools/Makefile.in projects/jbuild/contrib/openpam/ (props changed) projects/jbuild/contrib/pf/ (props changed) projects/jbuild/contrib/sendmail/ (props changed) projects/jbuild/contrib/tcpdump/ (props changed) projects/jbuild/contrib/tcpdump/CHANGES projects/jbuild/contrib/tcpdump/CREDITS projects/jbuild/contrib/tcpdump/Makefile.in projects/jbuild/contrib/tcpdump/README projects/jbuild/contrib/tcpdump/VERSION projects/jbuild/contrib/tcpdump/addrtoname.c projects/jbuild/contrib/tcpdump/addrtoname.h projects/jbuild/contrib/tcpdump/af.c projects/jbuild/contrib/tcpdump/af.h projects/jbuild/contrib/tcpdump/aodv.h projects/jbuild/contrib/tcpdump/appletalk.h projects/jbuild/contrib/tcpdump/arcnet.h projects/jbuild/contrib/tcpdump/atm.h projects/jbuild/contrib/tcpdump/atmuni31.h projects/jbuild/contrib/tcpdump/bgp.h projects/jbuild/contrib/tcpdump/bootp.h projects/jbuild/contrib/tcpdump/bpf_dump.c projects/jbuild/contrib/tcpdump/chdlc.h projects/jbuild/contrib/tcpdump/config.h.in projects/jbuild/contrib/tcpdump/configure projects/jbuild/contrib/tcpdump/configure.in projects/jbuild/contrib/tcpdump/dccp.h projects/jbuild/contrib/tcpdump/decnet.h projects/jbuild/contrib/tcpdump/enc.h projects/jbuild/contrib/tcpdump/ether.h projects/jbuild/contrib/tcpdump/ethertype.h projects/jbuild/contrib/tcpdump/extract.h projects/jbuild/contrib/tcpdump/fddi.h projects/jbuild/contrib/tcpdump/gmpls.c projects/jbuild/contrib/tcpdump/gmpls.h projects/jbuild/contrib/tcpdump/gmt2local.c projects/jbuild/contrib/tcpdump/gmt2local.h projects/jbuild/contrib/tcpdump/icmp6.h projects/jbuild/contrib/tcpdump/ieee802_11.h projects/jbuild/contrib/tcpdump/ieee802_11_radio.h projects/jbuild/contrib/tcpdump/igrp.h projects/jbuild/contrib/tcpdump/interface.h projects/jbuild/contrib/tcpdump/ip.h projects/jbuild/contrib/tcpdump/ip6.h projects/jbuild/contrib/tcpdump/ipfc.h projects/jbuild/contrib/tcpdump/ipproto.c projects/jbuild/contrib/tcpdump/ipproto.h projects/jbuild/contrib/tcpdump/ipsec_doi.h projects/jbuild/contrib/tcpdump/ipx.h projects/jbuild/contrib/tcpdump/isakmp.h projects/jbuild/contrib/tcpdump/l2tp.h projects/jbuild/contrib/tcpdump/l2vpn.c projects/jbuild/contrib/tcpdump/l2vpn.h projects/jbuild/contrib/tcpdump/lane.h projects/jbuild/contrib/tcpdump/lbl/os-osf4.h projects/jbuild/contrib/tcpdump/lbl/os-solaris2.h projects/jbuild/contrib/tcpdump/lbl/os-sunos4.h projects/jbuild/contrib/tcpdump/lbl/os-ultrix4.h projects/jbuild/contrib/tcpdump/llc.h projects/jbuild/contrib/tcpdump/machdep.c projects/jbuild/contrib/tcpdump/machdep.h projects/jbuild/contrib/tcpdump/makemib projects/jbuild/contrib/tcpdump/missing/addrinfo.h projects/jbuild/contrib/tcpdump/missing/datalinks.c projects/jbuild/contrib/tcpdump/missing/dlnames.c projects/jbuild/contrib/tcpdump/missing/getaddrinfo.c projects/jbuild/contrib/tcpdump/missing/getnameinfo.c projects/jbuild/contrib/tcpdump/missing/inet_aton.c projects/jbuild/contrib/tcpdump/missing/inet_ntop.c projects/jbuild/contrib/tcpdump/missing/inet_pton.c projects/jbuild/contrib/tcpdump/missing/snprintf.c projects/jbuild/contrib/tcpdump/missing/strdup.c projects/jbuild/contrib/tcpdump/missing/strlcat.c projects/jbuild/contrib/tcpdump/missing/strlcpy.c projects/jbuild/contrib/tcpdump/missing/strsep.c projects/jbuild/contrib/tcpdump/mpls.h projects/jbuild/contrib/tcpdump/nameser.h projects/jbuild/contrib/tcpdump/netbios.h projects/jbuild/contrib/tcpdump/netdissect.h projects/jbuild/contrib/tcpdump/nfs.h projects/jbuild/contrib/tcpdump/nfsfh.h projects/jbuild/contrib/tcpdump/nlpid.c projects/jbuild/contrib/tcpdump/nlpid.h projects/jbuild/contrib/tcpdump/ntp.h projects/jbuild/contrib/tcpdump/oakley.h projects/jbuild/contrib/tcpdump/ospf.h projects/jbuild/contrib/tcpdump/ospf6.h projects/jbuild/contrib/tcpdump/oui.c projects/jbuild/contrib/tcpdump/oui.h projects/jbuild/contrib/tcpdump/parsenfsfh.c projects/jbuild/contrib/tcpdump/pcap-missing.h projects/jbuild/contrib/tcpdump/pcap_dump_ftell.c projects/jbuild/contrib/tcpdump/pmap_prot.h projects/jbuild/contrib/tcpdump/ppp.h projects/jbuild/contrib/tcpdump/print-802_11.c projects/jbuild/contrib/tcpdump/print-ah.c projects/jbuild/contrib/tcpdump/print-aodv.c projects/jbuild/contrib/tcpdump/print-ap1394.c projects/jbuild/contrib/tcpdump/print-arcnet.c projects/jbuild/contrib/tcpdump/print-arp.c projects/jbuild/contrib/tcpdump/print-ascii.c projects/jbuild/contrib/tcpdump/print-atalk.c projects/jbuild/contrib/tcpdump/print-atm.c projects/jbuild/contrib/tcpdump/print-beep.c projects/jbuild/contrib/tcpdump/print-bfd.c projects/jbuild/contrib/tcpdump/print-bgp.c projects/jbuild/contrib/tcpdump/print-bootp.c projects/jbuild/contrib/tcpdump/print-cdp.c projects/jbuild/contrib/tcpdump/print-chdlc.c projects/jbuild/contrib/tcpdump/print-cip.c projects/jbuild/contrib/tcpdump/print-cnfp.c projects/jbuild/contrib/tcpdump/print-dccp.c projects/jbuild/contrib/tcpdump/print-decnet.c projects/jbuild/contrib/tcpdump/print-dhcp6.c projects/jbuild/contrib/tcpdump/print-domain.c projects/jbuild/contrib/tcpdump/print-dvmrp.c projects/jbuild/contrib/tcpdump/print-eap.c projects/jbuild/contrib/tcpdump/print-egp.c projects/jbuild/contrib/tcpdump/print-eigrp.c projects/jbuild/contrib/tcpdump/print-enc.c projects/jbuild/contrib/tcpdump/print-esp.c projects/jbuild/contrib/tcpdump/print-ether.c projects/jbuild/contrib/tcpdump/print-fddi.c projects/jbuild/contrib/tcpdump/print-fr.c projects/jbuild/contrib/tcpdump/print-frag6.c projects/jbuild/contrib/tcpdump/print-gre.c projects/jbuild/contrib/tcpdump/print-hsrp.c projects/jbuild/contrib/tcpdump/print-icmp.c projects/jbuild/contrib/tcpdump/print-icmp6.c projects/jbuild/contrib/tcpdump/print-igmp.c projects/jbuild/contrib/tcpdump/print-igrp.c projects/jbuild/contrib/tcpdump/print-ip.c projects/jbuild/contrib/tcpdump/print-ip6.c projects/jbuild/contrib/tcpdump/print-ip6opts.c projects/jbuild/contrib/tcpdump/print-ipcomp.c projects/jbuild/contrib/tcpdump/print-ipfc.c projects/jbuild/contrib/tcpdump/print-ipx.c projects/jbuild/contrib/tcpdump/print-isakmp.c projects/jbuild/contrib/tcpdump/print-isoclns.c projects/jbuild/contrib/tcpdump/print-juniper.c projects/jbuild/contrib/tcpdump/print-krb.c projects/jbuild/contrib/tcpdump/print-l2tp.c projects/jbuild/contrib/tcpdump/print-lane.c projects/jbuild/contrib/tcpdump/print-ldp.c projects/jbuild/contrib/tcpdump/print-llc.c projects/jbuild/contrib/tcpdump/print-lmp.c projects/jbuild/contrib/tcpdump/print-lspping.c projects/jbuild/contrib/tcpdump/print-lwres.c projects/jbuild/contrib/tcpdump/print-mobile.c projects/jbuild/contrib/tcpdump/print-mobility.c projects/jbuild/contrib/tcpdump/print-mpls.c projects/jbuild/contrib/tcpdump/print-msdp.c projects/jbuild/contrib/tcpdump/print-netbios.c projects/jbuild/contrib/tcpdump/print-nfs.c projects/jbuild/contrib/tcpdump/print-ntp.c projects/jbuild/contrib/tcpdump/print-null.c projects/jbuild/contrib/tcpdump/print-ospf.c projects/jbuild/contrib/tcpdump/print-ospf6.c projects/jbuild/contrib/tcpdump/print-pflog.c projects/jbuild/contrib/tcpdump/print-pgm.c projects/jbuild/contrib/tcpdump/print-pim.c projects/jbuild/contrib/tcpdump/print-ppp.c projects/jbuild/contrib/tcpdump/print-pppoe.c projects/jbuild/contrib/tcpdump/print-pptp.c projects/jbuild/contrib/tcpdump/print-radius.c projects/jbuild/contrib/tcpdump/print-raw.c projects/jbuild/contrib/tcpdump/print-rip.c projects/jbuild/contrib/tcpdump/print-ripng.c projects/jbuild/contrib/tcpdump/print-rsvp.c projects/jbuild/contrib/tcpdump/print-rt6.c projects/jbuild/contrib/tcpdump/print-rx.c projects/jbuild/contrib/tcpdump/print-sctp.c projects/jbuild/contrib/tcpdump/print-sip.c projects/jbuild/contrib/tcpdump/print-sl.c projects/jbuild/contrib/tcpdump/print-sll.c projects/jbuild/contrib/tcpdump/print-slow.c projects/jbuild/contrib/tcpdump/print-smb.c projects/jbuild/contrib/tcpdump/print-snmp.c projects/jbuild/contrib/tcpdump/print-stp.c projects/jbuild/contrib/tcpdump/print-sunatm.c projects/jbuild/contrib/tcpdump/print-sunrpc.c projects/jbuild/contrib/tcpdump/print-symantec.c projects/jbuild/contrib/tcpdump/print-syslog.c projects/jbuild/contrib/tcpdump/print-tcp.c projects/jbuild/contrib/tcpdump/print-telnet.c projects/jbuild/contrib/tcpdump/print-tftp.c projects/jbuild/contrib/tcpdump/print-timed.c projects/jbuild/contrib/tcpdump/print-token.c projects/jbuild/contrib/tcpdump/print-udp.c projects/jbuild/contrib/tcpdump/print-vjc.c projects/jbuild/contrib/tcpdump/print-vrrp.c projects/jbuild/contrib/tcpdump/print-wb.c projects/jbuild/contrib/tcpdump/print-zephyr.c projects/jbuild/contrib/tcpdump/route6d.h projects/jbuild/contrib/tcpdump/rpc_auth.h projects/jbuild/contrib/tcpdump/rpc_msg.h projects/jbuild/contrib/tcpdump/rx.h projects/jbuild/contrib/tcpdump/sctpConstants.h projects/jbuild/contrib/tcpdump/sctpHeader.h projects/jbuild/contrib/tcpdump/setsignal.c projects/jbuild/contrib/tcpdump/setsignal.h projects/jbuild/contrib/tcpdump/slcompress.h projects/jbuild/contrib/tcpdump/slip.h projects/jbuild/contrib/tcpdump/sll.h projects/jbuild/contrib/tcpdump/smb.h projects/jbuild/contrib/tcpdump/smbutil.c projects/jbuild/contrib/tcpdump/strcasecmp.c projects/jbuild/contrib/tcpdump/tcp.h projects/jbuild/contrib/tcpdump/tcpdump-stdinc.h projects/jbuild/contrib/tcpdump/tcpdump.1 projects/jbuild/contrib/tcpdump/tcpdump.c projects/jbuild/contrib/tcpdump/telnet.h projects/jbuild/contrib/tcpdump/tftp.h projects/jbuild/contrib/tcpdump/timed.h projects/jbuild/contrib/tcpdump/token.h projects/jbuild/contrib/tcpdump/udp.h projects/jbuild/contrib/tcpdump/util.c projects/jbuild/contrib/tcpdump/vfprintf.c projects/jbuild/contrib/top/ (props changed) projects/jbuild/contrib/wpa/ (props changed) projects/jbuild/contrib/wpa/hostapd/wme.h projects/jbuild/contrib/wpa/wpa_supplicant/wpa_supplicant.conf projects/jbuild/crypto/openssh/ (props changed) projects/jbuild/crypto/openssl/ (props changed) projects/jbuild/crypto/openssl/crypto/asn1/asn1.h projects/jbuild/crypto/openssl/crypto/asn1/asn1_err.c projects/jbuild/crypto/openssl/crypto/asn1/tasn_dec.c projects/jbuild/etc/defaults/rc.conf projects/jbuild/etc/devd.conf projects/jbuild/etc/mail/aliases projects/jbuild/etc/mtree/BSD.include.dist projects/jbuild/etc/namedb/named.conf projects/jbuild/etc/netstart projects/jbuild/etc/rc.d/ipfw projects/jbuild/etc/rc.d/jail projects/jbuild/etc/rc.d/named projects/jbuild/etc/rc.d/tmp projects/jbuild/gnu/usr.bin/cc/Makefile.inc projects/jbuild/gnu/usr.bin/patch/common.h projects/jbuild/gnu/usr.bin/patch/inp.c projects/jbuild/gnu/usr.bin/patch/patch.c projects/jbuild/gnu/usr.bin/patch/pch.c projects/jbuild/gnu/usr.bin/patch/pch.h projects/jbuild/gnu/usr.bin/patch/util.c projects/jbuild/include/Makefile projects/jbuild/include/arpa/inet.h projects/jbuild/include/ctype.h projects/jbuild/include/db.h projects/jbuild/include/dlfcn.h projects/jbuild/include/grp.h projects/jbuild/include/mpool.h projects/jbuild/include/ndbm.h projects/jbuild/include/netdb.h projects/jbuild/include/pthread.h projects/jbuild/include/pwd.h projects/jbuild/include/setjmp.h projects/jbuild/include/signal.h projects/jbuild/include/stdio.h projects/jbuild/include/stdlib.h projects/jbuild/include/string.h projects/jbuild/include/unistd.h projects/jbuild/lib/libarchive/Makefile projects/jbuild/lib/libarchive/archive.h projects/jbuild/lib/libarchive/archive_check_magic.c projects/jbuild/lib/libarchive/archive_entry.c projects/jbuild/lib/libarchive/archive_entry.h projects/jbuild/lib/libarchive/archive_platform.h projects/jbuild/lib/libarchive/archive_read.3 projects/jbuild/lib/libarchive/archive_read.c projects/jbuild/lib/libarchive/archive_read_disk_entry_from_file.c projects/jbuild/lib/libarchive/archive_read_disk_set_standard_lookup.c projects/jbuild/lib/libarchive/archive_read_open_fd.c projects/jbuild/lib/libarchive/archive_read_open_file.c projects/jbuild/lib/libarchive/archive_read_open_filename.c projects/jbuild/lib/libarchive/archive_read_private.h projects/jbuild/lib/libarchive/archive_read_support_compression_all.c projects/jbuild/lib/libarchive/archive_read_support_compression_bzip2.c projects/jbuild/lib/libarchive/archive_read_support_compression_compress.c projects/jbuild/lib/libarchive/archive_read_support_compression_gzip.c projects/jbuild/lib/libarchive/archive_read_support_compression_program.c projects/jbuild/lib/libarchive/archive_read_support_format_cpio.c projects/jbuild/lib/libarchive/archive_read_support_format_empty.c projects/jbuild/lib/libarchive/archive_read_support_format_iso9660.c projects/jbuild/lib/libarchive/archive_read_support_format_mtree.c projects/jbuild/lib/libarchive/archive_read_support_format_tar.c projects/jbuild/lib/libarchive/archive_string.c projects/jbuild/lib/libarchive/archive_string.h projects/jbuild/lib/libarchive/archive_write.3 projects/jbuild/lib/libarchive/archive_write.c projects/jbuild/lib/libarchive/archive_write_disk.c projects/jbuild/lib/libarchive/archive_write_disk_set_standard_lookup.c projects/jbuild/lib/libarchive/archive_write_open_filename.c projects/jbuild/lib/libarchive/archive_write_set_compression_bzip2.c projects/jbuild/lib/libarchive/archive_write_set_compression_gzip.c projects/jbuild/lib/libarchive/archive_write_set_compression_program.c projects/jbuild/lib/libarchive/archive_write_set_format_cpio.c projects/jbuild/lib/libarchive/archive_write_set_format_mtree.c projects/jbuild/lib/libarchive/archive_write_set_format_pax.c projects/jbuild/lib/libarchive/archive_write_set_format_ustar.c projects/jbuild/lib/libarchive/config_freebsd.h projects/jbuild/lib/libarchive/libarchive-formats.5 projects/jbuild/lib/libarchive/tar.5 projects/jbuild/lib/libarchive/test/Makefile projects/jbuild/lib/libarchive/test/main.c projects/jbuild/lib/libarchive/test/read_open_memory.c projects/jbuild/lib/libarchive/test/test.h projects/jbuild/lib/libarchive/test/test_acl_pax.c projects/jbuild/lib/libarchive/test/test_compat_bzip2.c projects/jbuild/lib/libarchive/test/test_compat_gzip.c projects/jbuild/lib/libarchive/test/test_entry.c projects/jbuild/lib/libarchive/test/test_entry_strmode.c projects/jbuild/lib/libarchive/test/test_extattr_freebsd.c projects/jbuild/lib/libarchive/test/test_fuzz.c projects/jbuild/lib/libarchive/test/test_pax_filename_encoding.c projects/jbuild/lib/libarchive/test/test_pax_filename_encoding.tar.uu projects/jbuild/lib/libarchive/test/test_read_compress_program.c projects/jbuild/lib/libarchive/test/test_read_disk.c projects/jbuild/lib/libarchive/test/test_read_extract.c projects/jbuild/lib/libarchive/test/test_read_format_cpio_bin_bz2.c projects/jbuild/lib/libarchive/test/test_read_format_cpio_bin_gz.c projects/jbuild/lib/libarchive/test/test_read_format_cpio_svr4_gzip.c projects/jbuild/lib/libarchive/test/test_read_format_gtar_gz.c projects/jbuild/lib/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu projects/jbuild/lib/libarchive/test/test_read_format_iso_gz.c projects/jbuild/lib/libarchive/test/test_read_format_isojoliet_bz2.c projects/jbuild/lib/libarchive/test/test_read_format_isorr_bz2.c projects/jbuild/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu projects/jbuild/lib/libarchive/test/test_read_format_mtree.c projects/jbuild/lib/libarchive/test/test_read_format_pax_bz2.c projects/jbuild/lib/libarchive/test/test_read_format_tbz.c projects/jbuild/lib/libarchive/test/test_read_format_tgz.c projects/jbuild/lib/libarchive/test/test_tar_large.c projects/jbuild/lib/libarchive/test/test_write_compress_program.c projects/jbuild/lib/libarchive/test/test_write_disk.c projects/jbuild/lib/libarchive/test/test_write_disk_failures.c projects/jbuild/lib/libarchive/test/test_write_disk_hardlink.c projects/jbuild/lib/libarchive/test/test_write_disk_perms.c projects/jbuild/lib/libarchive/test/test_write_disk_secure.c projects/jbuild/lib/libarchive/test/test_write_disk_sparse.c projects/jbuild/lib/libbluetooth/Makefile projects/jbuild/lib/libbluetooth/bluetooth.3 projects/jbuild/lib/libbluetooth/bluetooth.h projects/jbuild/lib/libbluetooth/hci.c projects/jbuild/lib/libbsm/Makefile projects/jbuild/lib/libc/ (props changed) projects/jbuild/lib/libc/db/README projects/jbuild/lib/libc/db/Symbol.map projects/jbuild/lib/libc/db/btree/bt_debug.c projects/jbuild/lib/libc/db/btree/bt_open.c projects/jbuild/lib/libc/db/btree/bt_page.c projects/jbuild/lib/libc/db/btree/bt_put.c projects/jbuild/lib/libc/db/btree/bt_split.c projects/jbuild/lib/libc/db/db/db.c projects/jbuild/lib/libc/db/hash/README projects/jbuild/lib/libc/db/hash/hash.c projects/jbuild/lib/libc/db/hash/hash.h projects/jbuild/lib/libc/db/hash/hash_bigkey.c projects/jbuild/lib/libc/db/hash/hash_buf.c projects/jbuild/lib/libc/db/hash/hash_func.c projects/jbuild/lib/libc/db/hash/hash_log2.c projects/jbuild/lib/libc/db/hash/hash_page.c projects/jbuild/lib/libc/db/man/mpool.3 projects/jbuild/lib/libc/db/mpool/Makefile.inc projects/jbuild/lib/libc/db/mpool/mpool.c projects/jbuild/lib/libc/db/recno/rec_close.c projects/jbuild/lib/libc/db/recno/rec_put.c projects/jbuild/lib/libc/gen/Makefile.inc projects/jbuild/lib/libc/gen/Symbol.map projects/jbuild/lib/libc/gen/dlfcn.c projects/jbuild/lib/libc/gen/dlopen.3 projects/jbuild/lib/libc/gen/getcap.c projects/jbuild/lib/libc/gen/tcgetsid.3 projects/jbuild/lib/libc/gen/termios.c projects/jbuild/lib/libc/gen/ttyname.3 projects/jbuild/lib/libc/i386/sys/Makefile.inc projects/jbuild/lib/libc/net/getaddrinfo.c projects/jbuild/lib/libc/net/sourcefilter.c projects/jbuild/lib/libc/nls/Makefile.inc projects/jbuild/lib/libc/nls/de_DE.ISO8859-1.msg projects/jbuild/lib/libc/nls/ru_RU.KOI8-R.msg (contents, props changed) projects/jbuild/lib/libc/posix1e/acl_set_qualifier.3 projects/jbuild/lib/libc/posix1e/posix1e.3 projects/jbuild/lib/libc/rpc/clnt_bcast.c projects/jbuild/lib/libc/rpc/getnetconfig.c projects/jbuild/lib/libc/stdio/getdelim.c projects/jbuild/lib/libc/stdio/getline.3 projects/jbuild/lib/libc/stdlib/ptsname.3 projects/jbuild/lib/libc/stdtime/ (props changed) projects/jbuild/lib/libc/string/ffsll.c (props changed) projects/jbuild/lib/libc/string/flsll.c (props changed) projects/jbuild/lib/libc/string/memchr.3 projects/jbuild/lib/libc/string/memcmp.3 projects/jbuild/lib/libc/string/memcpy.3 projects/jbuild/lib/libc/string/memmove.3 projects/jbuild/lib/libc/string/memset.3 projects/jbuild/lib/libc/string/strcasecmp.3 projects/jbuild/lib/libc/string/strcat.3 projects/jbuild/lib/libc/string/strchr.3 projects/jbuild/lib/libc/string/strcmp.3 projects/jbuild/lib/libc/string/strcpy.3 projects/jbuild/lib/libc/string/strdup.3 projects/jbuild/lib/libc/string/strlcpy.3 projects/jbuild/lib/libc/string/strlen.3 projects/jbuild/lib/libc/string/strmode.3 projects/jbuild/lib/libc/string/strmode.c projects/jbuild/lib/libc/string/strpbrk.3 projects/jbuild/lib/libc/string/strspn.3 projects/jbuild/lib/libc/string/strstr.3 projects/jbuild/lib/libc/sys/Makefile.inc projects/jbuild/lib/libc/sys/Symbol.map projects/jbuild/lib/libc/sys/jail.2 projects/jbuild/lib/libc/sys/ptrace.2 projects/jbuild/lib/libc/sys/sctp_generic_recvmsg.2 projects/jbuild/lib/libc/sys/sctp_generic_sendmsg.2 projects/jbuild/lib/libc/sys/sctp_peeloff.2 projects/jbuild/lib/libc/sys/setfib.2 projects/jbuild/lib/libdisk/open_ia64_disk.c projects/jbuild/lib/libgeom/Makefile projects/jbuild/lib/libkvm/kvm_powerpc.c projects/jbuild/lib/libmagic/Makefile projects/jbuild/lib/libmagic/config.h projects/jbuild/lib/libmemstat/memstat_malloc.c projects/jbuild/lib/libpcap/Makefile projects/jbuild/lib/libpcap/config.h projects/jbuild/lib/libpmc/pmc.h projects/jbuild/lib/libpmc/pmclog.h projects/jbuild/lib/libstand/gets.c projects/jbuild/lib/libthr/Makefile projects/jbuild/lib/libthr/thread/thr_fork.c projects/jbuild/lib/libthr/thread/thr_rtld.c projects/jbuild/lib/libufs/block.c projects/jbuild/lib/libusb/ (props changed) projects/jbuild/lib/libusb/libusb.3 (contents, props changed) projects/jbuild/lib/libusb/libusb20.h projects/jbuild/lib/libutil/ (props changed) projects/jbuild/lib/libutil/login_tty.c projects/jbuild/lib/msun/src/math.h projects/jbuild/lib/msun/src/math_private.h projects/jbuild/lib/msun/src/s_cimag.c projects/jbuild/lib/msun/src/s_cimagf.c projects/jbuild/lib/msun/src/s_cimagl.c projects/jbuild/libexec/bootpd/rtmsg.c projects/jbuild/libexec/ftpd/extern.h projects/jbuild/libexec/ftpd/ftpcmd.y projects/jbuild/libexec/ftpd/ftpd.c projects/jbuild/libexec/rtld-elf/Symbol.map projects/jbuild/libexec/rtld-elf/amd64/rtld_machdep.h projects/jbuild/libexec/rtld-elf/arm/rtld_machdep.h projects/jbuild/libexec/rtld-elf/i386/rtld_machdep.h projects/jbuild/libexec/rtld-elf/ia64/rtld_machdep.h projects/jbuild/libexec/rtld-elf/map_object.c projects/jbuild/libexec/rtld-elf/mips/rtld_machdep.h projects/jbuild/libexec/rtld-elf/powerpc/rtld_machdep.h projects/jbuild/libexec/rtld-elf/rtld.1 projects/jbuild/libexec/rtld-elf/rtld.c projects/jbuild/libexec/rtld-elf/rtld.h projects/jbuild/libexec/rtld-elf/rtld_lock.c projects/jbuild/libexec/rtld-elf/sparc64/rtld_machdep.h projects/jbuild/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/jbuild/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/jbuild/release/doc/ja_JP.eucJP/hardware/common/dev.sgml projects/jbuild/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml projects/jbuild/release/doc/share/misc/dev.archlist.txt projects/jbuild/release/doc/zh_CN.GB2312/hardware/article.sgml projects/jbuild/release/picobsd/bridge/PICOBSD projects/jbuild/release/picobsd/bridge/config projects/jbuild/release/picobsd/bridge/crunch.conf projects/jbuild/release/picobsd/build/picobsd projects/jbuild/release/picobsd/floppy.tree/etc/rc1 projects/jbuild/release/picobsd/mfs_tree/etc/rc projects/jbuild/release/picobsd/tinyware/ns/ns.c projects/jbuild/release/picobsd/tinyware/simple_httpd/Makefile projects/jbuild/release/picobsd/tinyware/simple_httpd/simple_httpd.c projects/jbuild/release/sparc64/mkisoimages.sh projects/jbuild/rescue/rescue/Makefile projects/jbuild/sbin/Makefile projects/jbuild/sbin/fdisk_pc98/fdisk.c projects/jbuild/sbin/geom/class/journal/gjournal.8 projects/jbuild/sbin/geom/class/label/glabel.8 projects/jbuild/sbin/geom/core/geom.8 projects/jbuild/sbin/gvinum/gvinum.8 projects/jbuild/sbin/gvinum/gvinum.c projects/jbuild/sbin/ifconfig/af_inet.c projects/jbuild/sbin/ifconfig/ifclone.c projects/jbuild/sbin/ifconfig/ifconfig.c projects/jbuild/sbin/ifconfig/ifgroup.c projects/jbuild/sbin/ifconfig/ifieee80211.c projects/jbuild/sbin/ifconfig/iflagg.c projects/jbuild/sbin/ipfw/ (props changed) projects/jbuild/sbin/ipfw/dummynet.c projects/jbuild/sbin/ipfw/ipfw.8 projects/jbuild/sbin/ipfw/ipfw2.c projects/jbuild/sbin/ipfw/ipfw2.h projects/jbuild/sbin/ipfw/main.c projects/jbuild/sbin/newfs/newfs.8 projects/jbuild/sbin/newfs_msdos/newfs_msdos.8 projects/jbuild/sbin/newfs_msdos/newfs_msdos.c projects/jbuild/sbin/pflogd/Makefile projects/jbuild/sbin/recoverdisk/recoverdisk.c projects/jbuild/sbin/route/keywords projects/jbuild/sbin/route/route.c projects/jbuild/sbin/routed/Makefile projects/jbuild/sbin/routed/defs.h projects/jbuild/sbin/routed/if.c projects/jbuild/sbin/routed/input.c projects/jbuild/sbin/routed/main.c projects/jbuild/sbin/routed/output.c projects/jbuild/sbin/routed/parms.c projects/jbuild/sbin/routed/radix.c projects/jbuild/sbin/routed/radix.h projects/jbuild/sbin/routed/rdisc.c projects/jbuild/sbin/routed/table.c projects/jbuild/sbin/routed/trace.c projects/jbuild/sbin/savecore/savecore.8 projects/jbuild/sbin/tunefs/tunefs.8 projects/jbuild/share/man/man3/pthread.3 projects/jbuild/share/man/man4/Makefile projects/jbuild/share/man/man4/altq.4 projects/jbuild/share/man/man4/ath.4 projects/jbuild/share/man/man4/ath_hal.4 projects/jbuild/share/man/man4/bce.4 projects/jbuild/share/man/man4/bge.4 projects/jbuild/share/man/man4/cpuctl.4 projects/jbuild/share/man/man4/ed.4 projects/jbuild/share/man/man4/geom.4 projects/jbuild/share/man/man4/geom_fox.4 projects/jbuild/share/man/man4/hifn.4 projects/jbuild/share/man/man4/if_bridge.4 projects/jbuild/share/man/man4/isp.4 projects/jbuild/share/man/man4/lagg.4 projects/jbuild/share/man/man4/lo.4 projects/jbuild/share/man/man4/malo.4 projects/jbuild/share/man/man4/man4.i386/Makefile projects/jbuild/share/man/man4/man4.i386/fe.4 projects/jbuild/share/man/man4/man4.i386/glxsb.4 projects/jbuild/share/man/man4/man4.powerpc/Makefile projects/jbuild/share/man/man4/man4.powerpc/bm.4 projects/jbuild/share/man/man4/man4.powerpc/pmu.4 projects/jbuild/share/man/man4/md.4 projects/jbuild/share/man/man4/mpt.4 projects/jbuild/share/man/man4/ng_hole.4 projects/jbuild/share/man/man4/nge.4 projects/jbuild/share/man/man4/pccbb.4 projects/jbuild/share/man/man4/pts.4 projects/jbuild/share/man/man4/route.4 projects/jbuild/share/man/man4/smp.4 projects/jbuild/share/man/man4/textdump.4 projects/jbuild/share/man/man4/u3g.4 projects/jbuild/share/man/man4/ubsec.4 projects/jbuild/share/man/man4/uchcom.4 projects/jbuild/share/man/man4/urtw.4 projects/jbuild/share/man/man4/usb.4 projects/jbuild/share/man/man4/vlan.4 projects/jbuild/share/man/man4/wlan.4 projects/jbuild/share/man/man4/wpi.4 projects/jbuild/share/man/man5/devfs.rules.5 projects/jbuild/share/man/man5/fstab.5 projects/jbuild/share/man/man5/rc.conf.5 projects/jbuild/share/man/man5/src.conf.5 projects/jbuild/share/man/man7/operator.7 projects/jbuild/share/man/man8/nanobsd.8 projects/jbuild/share/man/man9/Makefile projects/jbuild/share/man/man9/VOP_ACCESS.9 projects/jbuild/share/man/man9/VOP_ATTRIB.9 projects/jbuild/share/man/man9/VOP_CREATE.9 projects/jbuild/share/man/man9/VOP_FSYNC.9 projects/jbuild/share/man/man9/VOP_INACTIVE.9 projects/jbuild/share/man/man9/VOP_IOCTL.9 projects/jbuild/share/man/man9/VOP_LINK.9 projects/jbuild/share/man/man9/VOP_LOCK.9 projects/jbuild/share/man/man9/VOP_LOOKUP.9 projects/jbuild/share/man/man9/VOP_OPENCLOSE.9 projects/jbuild/share/man/man9/VOP_RDWR.9 projects/jbuild/share/man/man9/VOP_READDIR.9 projects/jbuild/share/man/man9/VOP_READLINK.9 projects/jbuild/share/man/man9/VOP_REMOVE.9 projects/jbuild/share/man/man9/VOP_RENAME.9 projects/jbuild/share/man/man9/VOP_VPTOCNP.9 projects/jbuild/share/man/man9/acl.9 projects/jbuild/share/man/man9/altq.9 projects/jbuild/share/man/man9/atomic.9 projects/jbuild/share/man/man9/bus_dma.9 projects/jbuild/share/man/man9/sbuf.9 projects/jbuild/share/man/man9/vm_map_lock.9 projects/jbuild/share/misc/bsd-family-tree projects/jbuild/share/misc/committers-ports.dot projects/jbuild/share/misc/committers-src.dot projects/jbuild/share/misc/operator projects/jbuild/share/mk/bsd.cpu.mk projects/jbuild/share/mk/bsd.own.mk projects/jbuild/share/mk/bsd.sys.mk projects/jbuild/share/skel/dot.login projects/jbuild/share/skel/dot.profile projects/jbuild/share/timedef/Makefile projects/jbuild/share/zoneinfo/ (props changed) projects/jbuild/share/zoneinfo/africa projects/jbuild/share/zoneinfo/asia projects/jbuild/share/zoneinfo/northamerica projects/jbuild/share/zoneinfo/southamerica projects/jbuild/sys/ (props changed) projects/jbuild/sys/amd64/acpica/acpi_machdep.c projects/jbuild/sys/amd64/acpica/acpi_wakeup.c projects/jbuild/sys/amd64/amd64/amd64_mem.c projects/jbuild/sys/amd64/amd64/apic_vector.S projects/jbuild/sys/amd64/amd64/busdma_machdep.c projects/jbuild/sys/amd64/amd64/cpu_switch.S projects/jbuild/sys/amd64/amd64/db_interface.c projects/jbuild/sys/amd64/amd64/db_trace.c projects/jbuild/sys/amd64/amd64/elf_machdep.c projects/jbuild/sys/amd64/amd64/exception.S projects/jbuild/sys/amd64/amd64/fpu.c projects/jbuild/sys/amd64/amd64/genassym.c projects/jbuild/sys/amd64/amd64/identcpu.c projects/jbuild/sys/amd64/amd64/local_apic.c projects/jbuild/sys/amd64/amd64/machdep.c projects/jbuild/sys/amd64/amd64/mp_machdep.c projects/jbuild/sys/amd64/amd64/pmap.c projects/jbuild/sys/amd64/amd64/sys_machdep.c projects/jbuild/sys/amd64/amd64/trap.c projects/jbuild/sys/amd64/amd64/vm_machdep.c projects/jbuild/sys/amd64/conf/DEFAULTS projects/jbuild/sys/amd64/conf/GENERIC projects/jbuild/sys/amd64/conf/GENERIC.hints projects/jbuild/sys/amd64/conf/NOTES projects/jbuild/sys/amd64/conf/XENHVM projects/jbuild/sys/amd64/ia32/ia32_exception.S projects/jbuild/sys/amd64/ia32/ia32_reg.c projects/jbuild/sys/amd64/ia32/ia32_signal.c projects/jbuild/sys/amd64/ia32/ia32_sigtramp.S projects/jbuild/sys/amd64/include/apicvar.h projects/jbuild/sys/amd64/include/asmacros.h projects/jbuild/sys/amd64/include/clock.h projects/jbuild/sys/amd64/include/cpufunc.h projects/jbuild/sys/amd64/include/elf.h projects/jbuild/sys/amd64/include/endian.h projects/jbuild/sys/amd64/include/frame.h projects/jbuild/sys/amd64/include/md_var.h projects/jbuild/sys/amd64/include/metadata.h projects/jbuild/sys/amd64/include/param.h projects/jbuild/sys/amd64/include/pc/bios.h projects/jbuild/sys/amd64/include/pcb.h projects/jbuild/sys/amd64/include/pcpu.h projects/jbuild/sys/amd64/include/pmap.h projects/jbuild/sys/amd64/include/proc.h projects/jbuild/sys/amd64/include/reg.h projects/jbuild/sys/amd64/include/segments.h projects/jbuild/sys/amd64/include/signal.h projects/jbuild/sys/amd64/include/smp.h projects/jbuild/sys/amd64/include/specialreg.h projects/jbuild/sys/amd64/include/sysarch.h projects/jbuild/sys/amd64/include/ucontext.h projects/jbuild/sys/amd64/include/vmparam.h projects/jbuild/sys/amd64/include/xen/ (props changed) projects/jbuild/sys/amd64/isa/clock.c projects/jbuild/sys/amd64/linux32/linux.h projects/jbuild/sys/amd64/linux32/linux32_locore.s projects/jbuild/sys/amd64/linux32/linux32_machdep.c projects/jbuild/sys/amd64/linux32/linux32_sysvec.c projects/jbuild/sys/amd64/pci/pci_cfgreg.c projects/jbuild/sys/arm/arm/busdma_machdep.c projects/jbuild/sys/arm/arm/cpufunc.c projects/jbuild/sys/arm/arm/cpufunc_asm_armv5_ec.S projects/jbuild/sys/arm/arm/cpufunc_asm_sheeva.S (contents, props changed) projects/jbuild/sys/arm/arm/elf_machdep.c projects/jbuild/sys/arm/arm/locore.S projects/jbuild/sys/arm/arm/machdep.c projects/jbuild/sys/arm/arm/pmap.c projects/jbuild/sys/arm/arm/trap.c projects/jbuild/sys/arm/at91/at91.c projects/jbuild/sys/arm/at91/at91_machdep.c projects/jbuild/sys/arm/at91/at91_spi.c projects/jbuild/sys/arm/at91/at91rm92reg.h projects/jbuild/sys/arm/at91/files.at91 projects/jbuild/sys/arm/at91/if_ate.c projects/jbuild/sys/arm/conf/AVILA projects/jbuild/sys/arm/conf/AVILA.hints projects/jbuild/sys/arm/conf/BWCT projects/jbuild/sys/arm/conf/BWCT.hints projects/jbuild/sys/arm/conf/CAMBRIA projects/jbuild/sys/arm/conf/CAMBRIA.hints projects/jbuild/sys/arm/conf/CRB projects/jbuild/sys/arm/conf/DB-78XXX projects/jbuild/sys/arm/conf/DB-88F5XXX projects/jbuild/sys/arm/conf/DB-88F6XXX projects/jbuild/sys/arm/conf/EP80219 projects/jbuild/sys/arm/conf/GUMSTIX projects/jbuild/sys/arm/conf/HL200 projects/jbuild/sys/arm/conf/IQ31244 projects/jbuild/sys/arm/conf/KB920X projects/jbuild/sys/arm/conf/NSLU projects/jbuild/sys/arm/conf/NSLU.hints projects/jbuild/sys/arm/conf/SIMICS projects/jbuild/sys/arm/conf/SKYEYE projects/jbuild/sys/arm/include/atomic.h projects/jbuild/sys/arm/include/elf.h projects/jbuild/sys/arm/include/param.h projects/jbuild/sys/arm/include/pmap.h projects/jbuild/sys/arm/include/vmparam.h projects/jbuild/sys/arm/mv/common.c projects/jbuild/sys/arm/mv/gpio.c projects/jbuild/sys/arm/mv/ic.c projects/jbuild/sys/arm/mv/mv_pci.c projects/jbuild/sys/arm/mv/mvreg.h projects/jbuild/sys/boot/forth/loader.conf projects/jbuild/sys/boot/i386/libi386/Makefile projects/jbuild/sys/boot/i386/libi386/biosdisk.c projects/jbuild/sys/boot/i386/libi386/biossmap.c projects/jbuild/sys/boot/i386/libi386/smbios.c projects/jbuild/sys/boot/i386/zfsboot/zfsboot.c projects/jbuild/sys/boot/pc98/libpc98/Makefile projects/jbuild/sys/boot/pc98/libpc98/bioscd.c projects/jbuild/sys/boot/pc98/libpc98/biosdisk.c projects/jbuild/sys/boot/pc98/libpc98/time.c projects/jbuild/sys/boot/pc98/loader/Makefile projects/jbuild/sys/boot/pc98/loader/main.c projects/jbuild/sys/boot/sparc64/loader/main.c projects/jbuild/sys/boot/uboot/lib/devicename.c projects/jbuild/sys/boot/uboot/lib/disk.c projects/jbuild/sys/boot/uboot/lib/libuboot.h projects/jbuild/sys/boot/zfs/zfsimpl.c projects/jbuild/sys/bsm/audit.h projects/jbuild/sys/bsm/audit_domain.h projects/jbuild/sys/bsm/audit_kevents.h projects/jbuild/sys/bsm/audit_record.h projects/jbuild/sys/cam/cam_periph.c projects/jbuild/sys/cam/scsi/scsi_pass.c projects/jbuild/sys/cam/scsi/scsi_sa.c projects/jbuild/sys/cam/scsi/scsi_ses.c projects/jbuild/sys/cam/scsi/scsi_sg.c projects/jbuild/sys/cddl/boot/zfs/README projects/jbuild/sys/cddl/boot/zfs/zfsimpl.h projects/jbuild/sys/cddl/boot/zfs/zfssubr.c projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris.c projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c projects/jbuild/sys/cddl/compat/opensolaris/sys/mutex.h projects/jbuild/sys/cddl/compat/opensolaris/sys/rwlock.h projects/jbuild/sys/cddl/compat/opensolaris/sys/vnode.h projects/jbuild/sys/cddl/contrib/opensolaris/common/acl/acl_common.c projects/jbuild/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h projects/jbuild/sys/compat/freebsd32/freebsd32.h projects/jbuild/sys/compat/freebsd32/freebsd32_ioctl.c projects/jbuild/sys/compat/freebsd32/freebsd32_ioctl.h projects/jbuild/sys/compat/freebsd32/freebsd32_misc.c projects/jbuild/sys/compat/freebsd32/freebsd32_proto.h projects/jbuild/sys/compat/freebsd32/freebsd32_syscall.h projects/jbuild/sys/compat/freebsd32/freebsd32_syscalls.c projects/jbuild/sys/compat/freebsd32/freebsd32_sysent.c projects/jbuild/sys/compat/freebsd32/syscalls.master projects/jbuild/sys/compat/ia32/ia32_signal.h projects/jbuild/sys/compat/ia32/ia32_sysvec.c projects/jbuild/sys/compat/linprocfs/linprocfs.c projects/jbuild/sys/compat/linux/linux_emul.c projects/jbuild/sys/compat/linux/linux_emul.h projects/jbuild/sys/compat/linux/linux_file.c projects/jbuild/sys/compat/linux/linux_futex.c projects/jbuild/sys/compat/linux/linux_futex.h projects/jbuild/sys/compat/linux/linux_ioctl.c projects/jbuild/sys/compat/linux/linux_mib.c projects/jbuild/sys/compat/linux/linux_mib.h projects/jbuild/sys/compat/linux/linux_misc.c projects/jbuild/sys/compat/linux/linux_misc.h projects/jbuild/sys/compat/linux/linux_socket.c projects/jbuild/sys/compat/linux/linux_socket.h projects/jbuild/sys/compat/linux/linux_stats.c projects/jbuild/sys/compat/linux/linux_util.h projects/jbuild/sys/compat/ndis/kern_windrv.c projects/jbuild/sys/compat/ndis/subr_ndis.c projects/jbuild/sys/compat/ndis/subr_ntoskrnl.c projects/jbuild/sys/compat/ndis/subr_usbd.c projects/jbuild/sys/compat/svr4/svr4_ioctl.c projects/jbuild/sys/compat/svr4/svr4_ioctl.h projects/jbuild/sys/compat/svr4/svr4_misc.c projects/jbuild/sys/compat/svr4/svr4_proto.h projects/jbuild/sys/compat/svr4/svr4_stat.c projects/jbuild/sys/compat/svr4/svr4_syscall.h projects/jbuild/sys/compat/svr4/svr4_syscallnames.c projects/jbuild/sys/compat/svr4/svr4_sysent.c projects/jbuild/sys/conf/NOTES projects/jbuild/sys/conf/files projects/jbuild/sys/conf/files.amd64 projects/jbuild/sys/conf/files.i386 projects/jbuild/sys/conf/files.ia64 projects/jbuild/sys/conf/files.pc98 projects/jbuild/sys/conf/files.powerpc projects/jbuild/sys/conf/kern.post.mk projects/jbuild/sys/conf/newvers.sh projects/jbuild/sys/conf/options projects/jbuild/sys/contrib/altq/altq/altq_subr.c projects/jbuild/sys/contrib/dev/acpica/ (props changed) projects/jbuild/sys/contrib/dev/iwi/ipw2200-bss.fw.uu projects/jbuild/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu projects/jbuild/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu projects/jbuild/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/jbuild/sys/contrib/pf/ (props changed) projects/jbuild/sys/contrib/pf/net/if_pflog.c projects/jbuild/sys/contrib/pf/net/if_pfsync.c projects/jbuild/sys/contrib/pf/net/pf.c projects/jbuild/sys/dev/aac/aac.c projects/jbuild/sys/dev/acpi_support/acpi_asus.c projects/jbuild/sys/dev/acpi_support/acpi_ibm.c projects/jbuild/sys/dev/acpi_support/acpi_sony.c projects/jbuild/sys/dev/acpica/acpi.c projects/jbuild/sys/dev/acpica/acpi_cpu.c projects/jbuild/sys/dev/acpica/acpi_ec.c projects/jbuild/sys/dev/acpica/acpivar.h projects/jbuild/sys/dev/age/if_age.c projects/jbuild/sys/dev/age/if_agereg.h projects/jbuild/sys/dev/agp/agp.c projects/jbuild/sys/dev/agp/agp_amd64.c projects/jbuild/sys/dev/agp/agp_i810.c projects/jbuild/sys/dev/agp/agp_intel.c projects/jbuild/sys/dev/agp/agp_via.c projects/jbuild/sys/dev/aic/aic.c projects/jbuild/sys/dev/amr/amr.c projects/jbuild/sys/dev/amr/amr_linux.c projects/jbuild/sys/dev/arcmsr/arcmsr.c projects/jbuild/sys/dev/asr/asr.c projects/jbuild/sys/dev/ata/ata-all.h projects/jbuild/sys/dev/ata/ata-disk.c projects/jbuild/sys/dev/ata/ata-pci.c projects/jbuild/sys/dev/ata/ata-pci.h projects/jbuild/sys/dev/ata/ata-queue.c projects/jbuild/sys/dev/ata/ata-sata.c projects/jbuild/sys/dev/ata/ata-usb.c (contents, props changed) projects/jbuild/sys/dev/ata/atapi-cam.c projects/jbuild/sys/dev/ata/atapi-tape.c projects/jbuild/sys/dev/ata/chipsets/ata-acard.c projects/jbuild/sys/dev/ata/chipsets/ata-ahci.c projects/jbuild/sys/dev/ata/chipsets/ata-ati.c projects/jbuild/sys/dev/ata/chipsets/ata-intel.c projects/jbuild/sys/dev/ata/chipsets/ata-jmicron.c projects/jbuild/sys/dev/ata/chipsets/ata-marvell.c projects/jbuild/sys/dev/ata/chipsets/ata-nvidia.c projects/jbuild/sys/dev/ata/chipsets/ata-promise.c projects/jbuild/sys/dev/ata/chipsets/ata-serverworks.c projects/jbuild/sys/dev/ata/chipsets/ata-siliconimage.c projects/jbuild/sys/dev/ata/chipsets/ata-sis.c projects/jbuild/sys/dev/ata/chipsets/ata-via.c projects/jbuild/sys/dev/ath/ah_osdep.c projects/jbuild/sys/dev/ath/ah_osdep.h projects/jbuild/sys/dev/ath/ath_hal/ah.c projects/jbuild/sys/dev/ath/ath_hal/ah.h projects/jbuild/sys/dev/ath/ath_hal/ah_internal.h projects/jbuild/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/jbuild/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/jbuild/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c projects/jbuild/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/jbuild/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/jbuild/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c projects/jbuild/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/jbuild/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/jbuild/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c projects/jbuild/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/jbuild/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/jbuild/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/jbuild/sys/dev/ath/ath_rate/sample/sample.c projects/jbuild/sys/dev/ath/if_ath.c projects/jbuild/sys/dev/ath/if_ath_pci.c projects/jbuild/sys/dev/ath/if_athvar.h projects/jbuild/sys/dev/atkbdc/atkbd.c projects/jbuild/sys/dev/atkbdc/psm.c projects/jbuild/sys/dev/bce/if_bce.c projects/jbuild/sys/dev/bce/if_bcereg.h projects/jbuild/sys/dev/bge/if_bge.c projects/jbuild/sys/dev/bge/if_bgereg.h projects/jbuild/sys/dev/ciss/ciss.c projects/jbuild/sys/dev/cxgb/ (props changed) projects/jbuild/sys/dev/cxgb/common/cxgb_ael1002.c projects/jbuild/sys/dev/cxgb/common/cxgb_common.h projects/jbuild/sys/dev/cxgb/common/cxgb_t3_hw.c projects/jbuild/sys/dev/cxgb/cxgb_adapter.h projects/jbuild/sys/dev/cxgb/cxgb_main.c projects/jbuild/sys/dev/cxgb/cxgb_multiq.c projects/jbuild/sys/dev/cxgb/cxgb_offload.c projects/jbuild/sys/dev/cxgb/cxgb_sge.c projects/jbuild/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c projects/jbuild/sys/dev/dc/dcphy.c projects/jbuild/sys/dev/dc/pnphy.c projects/jbuild/sys/dev/dcons/dcons_os.c projects/jbuild/sys/dev/drm/ati_pcigart.c projects/jbuild/sys/dev/drm/drmP.h projects/jbuild/sys/dev/drm/drm_bufs.c projects/jbuild/sys/dev/drm/drm_drv.c projects/jbuild/sys/dev/drm/drm_irq.c projects/jbuild/sys/dev/drm/drm_linux_list.h projects/jbuild/sys/dev/drm/drm_lock.c projects/jbuild/sys/dev/drm/drm_pci.c projects/jbuild/sys/dev/drm/drm_pciids.h projects/jbuild/sys/dev/drm/drm_scatter.c projects/jbuild/sys/dev/drm/drm_vm.c projects/jbuild/sys/dev/drm/i915_dma.c projects/jbuild/sys/dev/drm/i915_drv.c projects/jbuild/sys/dev/drm/i915_drv.h projects/jbuild/sys/dev/drm/i915_irq.c projects/jbuild/sys/dev/drm/i915_reg.h projects/jbuild/sys/dev/drm/i915_suspend.c projects/jbuild/sys/dev/drm/mga_irq.c projects/jbuild/sys/dev/drm/r300_cmdbuf.c projects/jbuild/sys/dev/drm/r300_reg.h projects/jbuild/sys/dev/drm/r600_cp.c projects/jbuild/sys/dev/drm/radeon_cp.c projects/jbuild/sys/dev/drm/radeon_drv.h projects/jbuild/sys/dev/drm/radeon_irq.c projects/jbuild/sys/dev/e1000/e1000_80003es2lan.c projects/jbuild/sys/dev/e1000/e1000_82540.c projects/jbuild/sys/dev/e1000/e1000_82541.c projects/jbuild/sys/dev/e1000/e1000_82571.c projects/jbuild/sys/dev/e1000/e1000_82575.c projects/jbuild/sys/dev/e1000/e1000_82575.h projects/jbuild/sys/dev/e1000/e1000_api.c projects/jbuild/sys/dev/e1000/e1000_api.h projects/jbuild/sys/dev/e1000/e1000_defines.h projects/jbuild/sys/dev/e1000/e1000_hw.h projects/jbuild/sys/dev/e1000/e1000_ich8lan.c projects/jbuild/sys/dev/e1000/e1000_ich8lan.h projects/jbuild/sys/dev/e1000/e1000_mac.c projects/jbuild/sys/dev/e1000/e1000_mac.h projects/jbuild/sys/dev/e1000/e1000_nvm.c projects/jbuild/sys/dev/e1000/e1000_nvm.h projects/jbuild/sys/dev/e1000/e1000_phy.c projects/jbuild/sys/dev/e1000/e1000_phy.h projects/jbuild/sys/dev/e1000/e1000_regs.h projects/jbuild/sys/dev/e1000/if_em.c projects/jbuild/sys/dev/e1000/if_em.h projects/jbuild/sys/dev/e1000/if_igb.c projects/jbuild/sys/dev/e1000/if_igb.h projects/jbuild/sys/dev/ed/ax88x90reg.h projects/jbuild/sys/dev/ed/dl100xxreg.h projects/jbuild/sys/dev/ed/if_ed.c projects/jbuild/sys/dev/ed/if_ed_cbus.c projects/jbuild/sys/dev/ed/if_ed_isa.c projects/jbuild/sys/dev/ed/if_ed_pccard.c projects/jbuild/sys/dev/ed/if_ed_pci.c projects/jbuild/sys/dev/ed/if_ed_wd80x3.c projects/jbuild/sys/dev/ed/if_edreg.h projects/jbuild/sys/dev/ed/if_edvar.h projects/jbuild/sys/dev/ep/if_ep.c projects/jbuild/sys/dev/ep/if_ep_pccard.c projects/jbuild/sys/dev/ep/if_epreg.h projects/jbuild/sys/dev/ep/if_epvar.h projects/jbuild/sys/dev/fb/creator.c projects/jbuild/sys/dev/fb/machfb.c projects/jbuild/sys/dev/fe/if_fe_pccard.c projects/jbuild/sys/dev/firewire/firewire.c projects/jbuild/sys/dev/firewire/sbp.h projects/jbuild/sys/dev/flash/at45d.c projects/jbuild/sys/dev/fxp/if_fxp.c projects/jbuild/sys/dev/hptiop/hptiop.h projects/jbuild/sys/dev/hptmv/access601.h projects/jbuild/sys/dev/hptmv/amd64-elf.raid.o.uu projects/jbuild/sys/dev/hptmv/array.h projects/jbuild/sys/dev/hptmv/command.h projects/jbuild/sys/dev/hptmv/entry.c projects/jbuild/sys/dev/hptmv/global.h projects/jbuild/sys/dev/hptmv/gui_lib.c projects/jbuild/sys/dev/hptmv/hptintf.h projects/jbuild/sys/dev/hptmv/hptproc.c projects/jbuild/sys/dev/hptmv/i386-elf.raid.o.uu projects/jbuild/sys/dev/hptmv/ioctl.c projects/jbuild/sys/dev/hptmv/mvOs.h projects/jbuild/sys/dev/hptmv/mvSata.h projects/jbuild/sys/dev/hptmv/mvStorageDev.h projects/jbuild/sys/dev/hptmv/osbsd.h projects/jbuild/sys/dev/hptmv/raid5n.h projects/jbuild/sys/dev/hptmv/readme.txt projects/jbuild/sys/dev/hptmv/vdevice.h projects/jbuild/sys/dev/ichwd/ichwd.c projects/jbuild/sys/dev/if_ndis/if_ndis.c projects/jbuild/sys/dev/if_ndis/if_ndis_usb.c projects/jbuild/sys/dev/if_ndis/if_ndisvar.h projects/jbuild/sys/dev/iicbus/ds133x.c projects/jbuild/sys/dev/iicbus/ds1672.c projects/jbuild/sys/dev/iicbus/if_ic.c projects/jbuild/sys/dev/iir/iir_ctrl.c projects/jbuild/sys/dev/iir/iir_pci.c projects/jbuild/sys/dev/ipw/if_ipw.c projects/jbuild/sys/dev/ipw/if_ipwvar.h projects/jbuild/sys/dev/isp/isp_freebsd.c projects/jbuild/sys/dev/iwi/if_iwi.c projects/jbuild/sys/dev/iwi/if_iwivar.h projects/jbuild/sys/dev/iwn/if_iwn.c projects/jbuild/sys/dev/iwn/if_iwnvar.h projects/jbuild/sys/dev/ixgb/if_ixgb.c projects/jbuild/sys/dev/ixgbe/LICENSE projects/jbuild/sys/dev/ixgbe/README projects/jbuild/sys/dev/ixgbe/ixgbe.c projects/jbuild/sys/dev/ixgbe/ixgbe.h projects/jbuild/sys/dev/ixgbe/ixgbe_82598.c projects/jbuild/sys/dev/ixgbe/ixgbe_api.c projects/jbuild/sys/dev/ixgbe/ixgbe_api.h projects/jbuild/sys/dev/ixgbe/ixgbe_common.c projects/jbuild/sys/dev/ixgbe/ixgbe_common.h projects/jbuild/sys/dev/ixgbe/ixgbe_osdep.h projects/jbuild/sys/dev/ixgbe/ixgbe_phy.c projects/jbuild/sys/dev/ixgbe/ixgbe_phy.h projects/jbuild/sys/dev/ixgbe/ixgbe_type.h projects/jbuild/sys/dev/joy/joy.c projects/jbuild/sys/dev/kbd/kbdreg.h projects/jbuild/sys/dev/kbdmux/kbdmux.c projects/jbuild/sys/dev/lge/if_lge.c projects/jbuild/sys/dev/lmc/if_lmc.c projects/jbuild/sys/dev/lmc/if_lmc.h projects/jbuild/sys/dev/malo/if_malo.c projects/jbuild/sys/dev/malo/if_malo.h projects/jbuild/sys/dev/malo/if_malo_pci.c projects/jbuild/sys/dev/malo/if_malohal.c projects/jbuild/sys/dev/md/md.c projects/jbuild/sys/dev/mfi/mfi.c projects/jbuild/sys/dev/mfi/mfi_linux.c projects/jbuild/sys/dev/mge/if_mge.c projects/jbuild/sys/dev/mii/miidevs projects/jbuild/sys/dev/mlx/mlx.c projects/jbuild/sys/dev/mly/mly.c projects/jbuild/sys/dev/mpt/mpt_raid.c projects/jbuild/sys/dev/mpt/mpt_user.c projects/jbuild/sys/dev/mse/mse.c projects/jbuild/sys/dev/msk/if_msk.c projects/jbuild/sys/dev/mxge/if_mxge.c projects/jbuild/sys/dev/mxge/if_mxge_var.h projects/jbuild/sys/dev/my/if_my.c projects/jbuild/sys/dev/nge/if_nge.c projects/jbuild/sys/dev/nge/if_ngereg.h projects/jbuild/sys/dev/nve/if_nve.c projects/jbuild/sys/dev/ofw/ofw_standard.c projects/jbuild/sys/dev/ofw/openfirm.c projects/jbuild/sys/dev/pccard/pccarddevs projects/jbuild/sys/dev/pci/pci.c projects/jbuild/sys/dev/pci/pci_pci.c projects/jbuild/sys/dev/pci/pcireg.h projects/jbuild/sys/dev/powermac_nvram/powermac_nvram.c projects/jbuild/sys/dev/ppbus/if_plip.c projects/jbuild/sys/dev/ral/rt2560.c projects/jbuild/sys/dev/ral/rt2560var.h projects/jbuild/sys/dev/ral/rt2661.c projects/jbuild/sys/dev/ral/rt2661var.h projects/jbuild/sys/dev/re/if_re.c projects/jbuild/sys/dev/rp/rp.c projects/jbuild/sys/dev/rp/rp_pci.c projects/jbuild/sys/dev/rp/rpreg.h projects/jbuild/sys/dev/sk/if_sk.c projects/jbuild/sys/dev/snp/snp.c projects/jbuild/sys/dev/sound/midi/midi.c projects/jbuild/sys/dev/sound/pci/emu10kx-midi.c projects/jbuild/sys/dev/sound/pci/envy24.c projects/jbuild/sys/dev/sound/pci/envy24ht.c projects/jbuild/sys/dev/sound/pci/hda/hdac.c projects/jbuild/sys/dev/sound/pci/ich.c projects/jbuild/sys/dev/sound/pci/via82c686.h projects/jbuild/sys/dev/sound/sbus/cs4231.h projects/jbuild/sys/dev/sound/usb/uaudio.c (contents, props changed) projects/jbuild/sys/dev/sound/usb/uaudio.h (props changed) projects/jbuild/sys/dev/sound/usb/uaudio_pcm.c (props changed) projects/jbuild/sys/dev/sound/usb/uaudioreg.h (contents, props changed) projects/jbuild/sys/dev/spibus/spibus.c projects/jbuild/sys/dev/syscons/syscons.c projects/jbuild/sys/dev/syscons/teken/teken.c projects/jbuild/sys/dev/syscons/teken/teken_subr.h projects/jbuild/sys/dev/tdfx/tdfx_pci.c projects/jbuild/sys/dev/twa/tw_cl_init.c projects/jbuild/sys/dev/twa/tw_osl.h projects/jbuild/sys/dev/twa/tw_osl_freebsd.c projects/jbuild/sys/dev/twe/twe_freebsd.c projects/jbuild/sys/dev/uart/uart_cpu_powerpc.c projects/jbuild/sys/dev/uart/uart_dev_ns8250.c projects/jbuild/sys/dev/ubsec/ubsec.c projects/jbuild/sys/dev/ubsec/ubsecreg.h projects/jbuild/sys/dev/usb/bluetooth/TODO.TXT (props changed) projects/jbuild/sys/dev/usb/bluetooth/ng_ubt.c (contents, props changed) projects/jbuild/sys/dev/usb/bluetooth/ng_ubt_var.h (props changed) projects/jbuild/sys/dev/usb/bluetooth/ubtbcmfw.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/at91dci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/at91dci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/at91dci_atmelarm.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/atmegadci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/atmegadci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/atmegadci_atmelarm.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ehci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ehci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/ehci_ixp4xx.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ehci_mbus.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ehci_pci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/musb_otg.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/musb_otg.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/musb_otg_atmelarm.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ohci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ohci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/ohci_atmelarm.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/ohci_pci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/uhci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/uhci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/uhci_pci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/usb_controller.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/uss820dci.c (contents, props changed) projects/jbuild/sys/dev/usb/controller/uss820dci.h (contents, props changed) projects/jbuild/sys/dev/usb/controller/uss820dci_atmelarm.c (contents, props changed) projects/jbuild/sys/dev/usb/input/uhid.c (contents, props changed) projects/jbuild/sys/dev/usb/input/ukbd.c (contents, props changed) projects/jbuild/sys/dev/usb/input/ums.c (contents, props changed) projects/jbuild/sys/dev/usb/input/usb_rdesc.h (props changed) projects/jbuild/sys/dev/usb/misc/udbp.c (contents, props changed) projects/jbuild/sys/dev/usb/misc/udbp.h (props changed) projects/jbuild/sys/dev/usb/misc/ufm.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_aue.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_auereg.h (props changed) projects/jbuild/sys/dev/usb/net/if_axe.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_axereg.h (props changed) projects/jbuild/sys/dev/usb/net/if_cdce.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_cdcereg.h (contents, props changed) projects/jbuild/sys/dev/usb/net/if_cue.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_cuereg.h (props changed) projects/jbuild/sys/dev/usb/net/if_kue.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_kuefw.h (props changed) projects/jbuild/sys/dev/usb/net/if_kuereg.h (props changed) projects/jbuild/sys/dev/usb/net/if_rue.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_ruereg.h (props changed) projects/jbuild/sys/dev/usb/net/if_udav.c (contents, props changed) projects/jbuild/sys/dev/usb/net/if_udavreg.h (props changed) projects/jbuild/sys/dev/usb/net/usb_ethernet.c (contents, props changed) projects/jbuild/sys/dev/usb/net/usb_ethernet.h (contents, props changed) projects/jbuild/sys/dev/usb/quirk/usb_quirk.c (props changed) projects/jbuild/sys/dev/usb/quirk/usb_quirk.h (props changed) projects/jbuild/sys/dev/usb/serial/u3g.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uark.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/ubsa.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/ubser.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uchcom.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/ucycom.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/ufoma.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uftdi.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uftdi_reg.h (props changed) projects/jbuild/sys/dev/usb/serial/ugensa.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uipaq.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/ulpt.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/umct.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/umodem.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/umoscom.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uplcom.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/usb_serial.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/usb_serial.h (contents, props changed) projects/jbuild/sys/dev/usb/serial/uslcom.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uvisor.c (contents, props changed) projects/jbuild/sys/dev/usb/serial/uvscom.c (contents, props changed) projects/jbuild/sys/dev/usb/storage/rio500_usb.h (props changed) projects/jbuild/sys/dev/usb/storage/umass.c (contents, props changed) projects/jbuild/sys/dev/usb/storage/urio.c (contents, props changed) projects/jbuild/sys/dev/usb/storage/ustorage_fs.c (contents, props changed) projects/jbuild/sys/dev/usb/template/usb_template.c (contents, props changed) projects/jbuild/sys/dev/usb/template/usb_template.h (props changed) projects/jbuild/sys/dev/usb/template/usb_template_cdce.c (props changed) projects/jbuild/sys/dev/usb/template/usb_template_msc.c (props changed) projects/jbuild/sys/dev/usb/template/usb_template_mtp.c (props changed) projects/jbuild/sys/dev/usb/ufm_ioctl.h (props changed) projects/jbuild/sys/dev/usb/usb.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_bus.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_busdma.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_busdma.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_cdc.h (props changed) projects/jbuild/sys/dev/usb/usb_compat_linux.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_compat_linux.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_controller.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_core.c (props changed) projects/jbuild/sys/dev/usb/usb_core.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_debug.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_debug.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_defs.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_dev.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_dev.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_device.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_device.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_dynamic.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_dynamic.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_endian.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_error.c (props changed) projects/jbuild/sys/dev/usb/usb_error.h (props changed) projects/jbuild/sys/dev/usb/usb_generic.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_generic.h (props changed) projects/jbuild/sys/dev/usb/usb_handle_request.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_handle_request.h (props changed) projects/jbuild/sys/dev/usb/usb_hid.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_hid.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_hub.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_hub.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_if.m (props changed) projects/jbuild/sys/dev/usb/usb_ioctl.h (props changed) projects/jbuild/sys/dev/usb/usb_lookup.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_lookup.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_mbuf.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_mbuf.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_mfunc.h (props changed) projects/jbuild/sys/dev/usb/usb_msctest.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_msctest.h (props changed) projects/jbuild/sys/dev/usb/usb_parse.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_parse.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_pci.h (props changed) projects/jbuild/sys/dev/usb/usb_process.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_process.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_request.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_request.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_revision.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_transfer.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_transfer.h (contents, props changed) projects/jbuild/sys/dev/usb/usb_util.c (contents, props changed) projects/jbuild/sys/dev/usb/usb_util.h (contents, props changed) projects/jbuild/sys/dev/usb/usbdevs (contents, props changed) projects/jbuild/sys/dev/usb/usbhid.h (props changed) projects/jbuild/sys/dev/usb/wlan/if_rum.c (contents, props changed) projects/jbuild/sys/dev/usb/wlan/if_rumfw.h (props changed) projects/jbuild/sys/dev/usb/wlan/if_rumreg.h (props changed) projects/jbuild/sys/dev/usb/wlan/if_rumvar.h (contents, props changed) projects/jbuild/sys/dev/usb/wlan/if_ural.c (contents, props changed) projects/jbuild/sys/dev/usb/wlan/if_uralreg.h (props changed) projects/jbuild/sys/dev/usb/wlan/if_uralvar.h (contents, props changed) projects/jbuild/sys/dev/usb/wlan/if_zyd.c (contents, props changed) projects/jbuild/sys/dev/usb/wlan/if_zydfw.h (props changed) projects/jbuild/sys/dev/usb/wlan/if_zydreg.h (contents, props changed) projects/jbuild/sys/dev/vge/if_vge.c projects/jbuild/sys/dev/wi/if_wi.c projects/jbuild/sys/dev/wi/if_wireg.h projects/jbuild/sys/dev/wi/if_wivar.h projects/jbuild/sys/dev/wpi/if_wpi.c projects/jbuild/sys/dev/wpi/if_wpireg.h projects/jbuild/sys/dev/wpi/if_wpivar.h projects/jbuild/sys/dev/xen/balloon/balloon.c projects/jbuild/sys/dev/xen/console/console.c projects/jbuild/sys/dev/xen/console/xencons_ring.c projects/jbuild/sys/dev/xen/console/xencons_ring.h projects/jbuild/sys/dev/xen/netfront/ (props changed) projects/jbuild/sys/dev/xen/netfront/netfront.c projects/jbuild/sys/dev/xen/xenpci/ (props changed) projects/jbuild/sys/dev/xl/if_xl.c projects/jbuild/sys/fs/cd9660/cd9660_vfsops.c projects/jbuild/sys/fs/coda/coda_vfsops.c projects/jbuild/sys/fs/devfs/devfs.h projects/jbuild/sys/fs/devfs/devfs_vfsops.c projects/jbuild/sys/fs/devfs/devfs_vnops.c projects/jbuild/sys/fs/fdescfs/fdesc.h projects/jbuild/sys/fs/fdescfs/fdesc_vfsops.c projects/jbuild/sys/fs/fdescfs/fdesc_vnops.c projects/jbuild/sys/fs/fifofs/fifo_vnops.c projects/jbuild/sys/fs/hpfs/hpfs_vfsops.c projects/jbuild/sys/fs/msdosfs/msdosfs_vfsops.c projects/jbuild/sys/fs/ntfs/ntfs_vfsops.c projects/jbuild/sys/fs/nullfs/null_vfsops.c projects/jbuild/sys/fs/nullfs/null_vnops.c projects/jbuild/sys/fs/nwfs/nwfs_vfsops.c projects/jbuild/sys/fs/portalfs/portal_vfsops.c projects/jbuild/sys/fs/pseudofs/pseudofs.c projects/jbuild/sys/fs/pseudofs/pseudofs.h projects/jbuild/sys/fs/pseudofs/pseudofs_vnops.c projects/jbuild/sys/fs/smbfs/smbfs_io.c projects/jbuild/sys/fs/smbfs/smbfs_vfsops.c projects/jbuild/sys/fs/tmpfs/tmpfs.h projects/jbuild/sys/fs/tmpfs/tmpfs_subr.c projects/jbuild/sys/fs/tmpfs/tmpfs_vfsops.c projects/jbuild/sys/fs/tmpfs/tmpfs_vnops.c projects/jbuild/sys/fs/udf/udf_vfsops.c projects/jbuild/sys/fs/unionfs/union_subr.c projects/jbuild/sys/fs/unionfs/union_vfsops.c projects/jbuild/sys/fs/unionfs/union_vnops.c projects/jbuild/sys/geom/concat/g_concat.c projects/jbuild/sys/geom/eli/g_eli.c projects/jbuild/sys/geom/journal/g_journal.c projects/jbuild/sys/geom/label/g_label.c projects/jbuild/sys/geom/label/g_label.h projects/jbuild/sys/geom/label/g_label_ufs.c projects/jbuild/sys/geom/part/g_part.c projects/jbuild/sys/geom/part/g_part_apm.c projects/jbuild/sys/geom/part/g_part_bsd.c projects/jbuild/sys/geom/part/g_part_ebr.c projects/jbuild/sys/geom/part/g_part_gpt.c projects/jbuild/sys/geom/part/g_part_if.m projects/jbuild/sys/geom/part/g_part_mbr.c projects/jbuild/sys/geom/part/g_part_pc98.c projects/jbuild/sys/geom/vinum/geom_vinum.c projects/jbuild/sys/geom/vinum/geom_vinum.h projects/jbuild/sys/geom/vinum/geom_vinum_drive.c projects/jbuild/sys/geom/vinum/geom_vinum_init.c projects/jbuild/sys/geom/vinum/geom_vinum_list.c projects/jbuild/sys/geom/vinum/geom_vinum_move.c projects/jbuild/sys/geom/vinum/geom_vinum_plex.c projects/jbuild/sys/geom/vinum/geom_vinum_raid5.c projects/jbuild/sys/geom/vinum/geom_vinum_raid5.h projects/jbuild/sys/geom/vinum/geom_vinum_rename.c projects/jbuild/sys/geom/vinum/geom_vinum_rm.c projects/jbuild/sys/geom/vinum/geom_vinum_share.c projects/jbuild/sys/geom/vinum/geom_vinum_share.h projects/jbuild/sys/geom/vinum/geom_vinum_state.c projects/jbuild/sys/geom/vinum/geom_vinum_subr.c projects/jbuild/sys/geom/vinum/geom_vinum_var.h projects/jbuild/sys/geom/vinum/geom_vinum_volume.c projects/jbuild/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/jbuild/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/jbuild/sys/gnu/fs/xfs/FreeBSD/support/debug.h projects/jbuild/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c projects/jbuild/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/jbuild/sys/i386/acpica/acpi_machdep.c projects/jbuild/sys/i386/bios/apm.c projects/jbuild/sys/i386/bios/smapi.c projects/jbuild/sys/i386/conf/DEFAULTS projects/jbuild/sys/i386/conf/GENERIC projects/jbuild/sys/i386/conf/GENERIC.hints projects/jbuild/sys/i386/conf/NOTES projects/jbuild/sys/i386/conf/PAE projects/jbuild/sys/i386/conf/XBOX projects/jbuild/sys/i386/conf/XEN projects/jbuild/sys/i386/i386/busdma_machdep.c projects/jbuild/sys/i386/i386/elf_machdep.c projects/jbuild/sys/i386/i386/i686_mem.c projects/jbuild/sys/i386/i386/identcpu.c projects/jbuild/sys/i386/i386/k6_mem.c projects/jbuild/sys/i386/i386/local_apic.c projects/jbuild/sys/i386/i386/machdep.c projects/jbuild/sys/i386/i386/mp_machdep.c projects/jbuild/sys/i386/i386/pmap.c projects/jbuild/sys/i386/i386/trap.c projects/jbuild/sys/i386/i386/vm_machdep.c projects/jbuild/sys/i386/ibcs2/ibcs2_ioctl.c projects/jbuild/sys/i386/ibcs2/ibcs2_isc_syscall.h projects/jbuild/sys/i386/ibcs2/ibcs2_isc_sysent.c projects/jbuild/sys/i386/ibcs2/ibcs2_proto.h projects/jbuild/sys/i386/ibcs2/ibcs2_socksys.c projects/jbuild/sys/i386/ibcs2/ibcs2_syscall.h projects/jbuild/sys/i386/ibcs2/ibcs2_sysent.c projects/jbuild/sys/i386/ibcs2/ibcs2_xenix.h projects/jbuild/sys/i386/ibcs2/ibcs2_xenix_syscall.h projects/jbuild/sys/i386/ibcs2/ibcs2_xenix_sysent.c projects/jbuild/sys/i386/ibcs2/syscalls.master projects/jbuild/sys/i386/include/apicvar.h projects/jbuild/sys/i386/include/clock.h projects/jbuild/sys/i386/include/cpufunc.h projects/jbuild/sys/i386/include/elf.h projects/jbuild/sys/i386/include/endian.h projects/jbuild/sys/i386/include/metadata.h projects/jbuild/sys/i386/include/param.h projects/jbuild/sys/i386/include/pc/bios.h projects/jbuild/sys/i386/include/pmap.h projects/jbuild/sys/i386/include/signal.h projects/jbuild/sys/i386/include/smp.h projects/jbuild/sys/i386/include/specialreg.h projects/jbuild/sys/i386/include/ucontext.h projects/jbuild/sys/i386/include/vmparam.h projects/jbuild/sys/i386/include/xen/xenpmap.h projects/jbuild/sys/i386/include/xen/xenvar.h projects/jbuild/sys/i386/isa/clock.c projects/jbuild/sys/i386/isa/npx.c projects/jbuild/sys/i386/linux/linux.h projects/jbuild/sys/i386/linux/linux_sysvec.c projects/jbuild/sys/i386/pci/pci_cfgreg.c projects/jbuild/sys/i386/xen/clock.c projects/jbuild/sys/i386/xen/mp_machdep.c projects/jbuild/sys/i386/xen/pmap.c projects/jbuild/sys/i386/xen/xen_machdep.c projects/jbuild/sys/ia64/conf/DEFAULTS projects/jbuild/sys/ia64/conf/NOTES projects/jbuild/sys/ia64/ia64/busdma_machdep.c projects/jbuild/sys/ia64/ia64/elf_machdep.c projects/jbuild/sys/ia64/ia64/machdep.c projects/jbuild/sys/ia64/ia64/pmap.c projects/jbuild/sys/ia64/include/elf.h projects/jbuild/sys/ia64/include/md_var.h projects/jbuild/sys/ia64/include/param.h projects/jbuild/sys/ia64/isa/isa.c projects/jbuild/sys/isa/atrtc.c projects/jbuild/sys/isa/rtc.h projects/jbuild/sys/kern/imgact_elf.c projects/jbuild/sys/kern/init_main.c projects/jbuild/sys/kern/init_sysent.c projects/jbuild/sys/kern/kern_acct.c projects/jbuild/sys/kern/kern_alq.c projects/jbuild/sys/kern/kern_clock.c projects/jbuild/sys/kern/kern_conf.c projects/jbuild/sys/kern/kern_cpuset.c projects/jbuild/sys/kern/kern_descrip.c projects/jbuild/sys/kern/kern_environment.c projects/jbuild/sys/kern/kern_exec.c projects/jbuild/sys/kern/kern_exit.c projects/jbuild/sys/kern/kern_fork.c projects/jbuild/sys/kern/kern_intr.c projects/jbuild/sys/kern/kern_jail.c projects/jbuild/sys/kern/kern_ktrace.c projects/jbuild/sys/kern/kern_linker.c projects/jbuild/sys/kern/kern_lock.c projects/jbuild/sys/kern/kern_malloc.c projects/jbuild/sys/kern/kern_mib.c projects/jbuild/sys/kern/kern_mutex.c projects/jbuild/sys/kern/kern_osd.c projects/jbuild/sys/kern/kern_poll.c projects/jbuild/sys/kern/kern_prot.c projects/jbuild/sys/kern/kern_rmlock.c projects/jbuild/sys/kern/kern_rwlock.c projects/jbuild/sys/kern/kern_shutdown.c projects/jbuild/sys/kern/kern_sig.c projects/jbuild/sys/kern/kern_sx.c projects/jbuild/sys/kern/kern_sysctl.c projects/jbuild/sys/kern/kern_tc.c projects/jbuild/sys/kern/kern_thread.c projects/jbuild/sys/kern/kern_time.c projects/jbuild/sys/kern/kern_umtx.c projects/jbuild/sys/kern/kern_uuid.c projects/jbuild/sys/kern/kern_vimage.c projects/jbuild/sys/kern/sched_ule.c projects/jbuild/sys/kern/subr_bus.c projects/jbuild/sys/kern/subr_kdb.c projects/jbuild/sys/kern/subr_lock.c projects/jbuild/sys/kern/subr_param.c projects/jbuild/sys/kern/subr_pcpu.c projects/jbuild/sys/kern/subr_rman.c projects/jbuild/sys/kern/subr_rtc.c projects/jbuild/sys/kern/subr_smp.c projects/jbuild/sys/kern/subr_witness.c projects/jbuild/sys/kern/sys_generic.c projects/jbuild/sys/kern/sys_socket.c projects/jbuild/sys/kern/syscalls.c projects/jbuild/sys/kern/syscalls.master projects/jbuild/sys/kern/systrace_args.c projects/jbuild/sys/kern/sysv_sem.c projects/jbuild/sys/kern/tty.c projects/jbuild/sys/kern/tty_info.c projects/jbuild/sys/kern/tty_inq.c projects/jbuild/sys/kern/tty_pts.c projects/jbuild/sys/kern/tty_ttydisc.c projects/jbuild/sys/kern/uipc_domain.c projects/jbuild/sys/kern/uipc_mqueue.c projects/jbuild/sys/kern/uipc_sockbuf.c projects/jbuild/sys/kern/uipc_socket.c projects/jbuild/sys/kern/uipc_syscalls.c projects/jbuild/sys/kern/uipc_usrreq.c projects/jbuild/sys/kern/vfs_acl.c projects/jbuild/sys/kern/vfs_bio.c projects/jbuild/sys/kern/vfs_cache.c projects/jbuild/sys/kern/vfs_default.c projects/jbuild/sys/kern/vfs_export.c projects/jbuild/sys/kern/vfs_extattr.c projects/jbuild/sys/kern/vfs_lookup.c projects/jbuild/sys/kern/vfs_mount.c projects/jbuild/sys/kern/vfs_subr.c projects/jbuild/sys/kern/vfs_syscalls.c projects/jbuild/sys/kern/vfs_vnops.c projects/jbuild/sys/kern/vnode_if.src projects/jbuild/sys/legacy/dev/ata/ata-usb.c (props changed) projects/jbuild/sys/legacy/dev/sound/usb/uaudio.c (props changed) projects/jbuild/sys/legacy/dev/sound/usb/uaudio.h (props changed) projects/jbuild/sys/legacy/dev/sound/usb/uaudio_pcm.c (props changed) projects/jbuild/sys/legacy/dev/sound/usb/uaudioreg.h (props changed) projects/jbuild/sys/legacy/dev/usb/ (props changed) projects/jbuild/sys/legacy/dev/usb/ehci_ixp4xx.c (props changed) projects/jbuild/sys/mips/conf/ADM5120 projects/jbuild/sys/mips/conf/IDT projects/jbuild/sys/mips/conf/MALTA projects/jbuild/sys/mips/conf/QEMU projects/jbuild/sys/mips/conf/SENTRY5 projects/jbuild/sys/mips/include/bus.h projects/jbuild/sys/mips/include/elf.h projects/jbuild/sys/mips/include/param.h projects/jbuild/sys/mips/include/pmap.h projects/jbuild/sys/mips/mips/elf64_machdep.c (contents, props changed) projects/jbuild/sys/mips/mips/elf_machdep.c projects/jbuild/sys/mips/mips/machdep.c projects/jbuild/sys/mips/mips/pm_machdep.c projects/jbuild/sys/mips/mips/pmap.c projects/jbuild/sys/modules/Makefile projects/jbuild/sys/modules/ath/Makefile projects/jbuild/sys/modules/cpufreq/Makefile projects/jbuild/sys/modules/dtrace/Makefile projects/jbuild/sys/modules/dtrace/dtraceall/dtraceall.c projects/jbuild/sys/modules/geom/geom_vinum/Makefile projects/jbuild/sys/modules/ip_mroute_mod/Makefile projects/jbuild/sys/modules/ipmi/Makefile projects/jbuild/sys/modules/ixgbe/Makefile projects/jbuild/sys/modules/linprocfs/Makefile projects/jbuild/sys/modules/linux/Makefile projects/jbuild/sys/modules/mii/Makefile projects/jbuild/sys/modules/netgraph/Makefile projects/jbuild/sys/modules/nfsclient/Makefile projects/jbuild/sys/modules/opensolaris/Makefile projects/jbuild/sys/modules/sound/sound/Makefile projects/jbuild/sys/modules/svr4/Makefile projects/jbuild/sys/modules/usb/Makefile projects/jbuild/sys/modules/usb/usb/Makefile projects/jbuild/sys/modules/xfs/Makefile projects/jbuild/sys/modules/zfs/Makefile projects/jbuild/sys/net/bpf.c projects/jbuild/sys/net/bpf.h projects/jbuild/sys/net/bridgestp.c projects/jbuild/sys/net/ethernet.h projects/jbuild/sys/net/ieee8023ad_lacp.c projects/jbuild/sys/net/if.c projects/jbuild/sys/net/if.h projects/jbuild/sys/net/if_arc.h projects/jbuild/sys/net/if_arcsubr.c projects/jbuild/sys/net/if_atm.h projects/jbuild/sys/net/if_atmsubr.c projects/jbuild/sys/net/if_bridge.c projects/jbuild/sys/net/if_clone.c projects/jbuild/sys/net/if_disc.c projects/jbuild/sys/net/if_ef.c projects/jbuild/sys/net/if_enc.c projects/jbuild/sys/net/if_ethersubr.c projects/jbuild/sys/net/if_faith.c projects/jbuild/sys/net/if_fddisubr.c projects/jbuild/sys/net/if_fwsubr.c projects/jbuild/sys/net/if_gif.c projects/jbuild/sys/net/if_gif.h projects/jbuild/sys/net/if_gre.c projects/jbuild/sys/net/if_iso88025subr.c projects/jbuild/sys/net/if_lagg.c projects/jbuild/sys/net/if_lagg.h projects/jbuild/sys/net/if_llatbl.c projects/jbuild/sys/net/if_llatbl.h projects/jbuild/sys/net/if_loop.c projects/jbuild/sys/net/if_mib.c projects/jbuild/sys/net/if_spppsubr.c projects/jbuild/sys/net/if_stf.c projects/jbuild/sys/net/if_tap.c projects/jbuild/sys/net/if_tun.c projects/jbuild/sys/net/if_var.h projects/jbuild/sys/net/if_vlan.c projects/jbuild/sys/net/iso88025.h projects/jbuild/sys/net/netisr.c projects/jbuild/sys/net/netisr.h projects/jbuild/sys/net/radix_mpath.c projects/jbuild/sys/net/route.c projects/jbuild/sys/net/route.h projects/jbuild/sys/net/rtsock.c projects/jbuild/sys/net/vnet.h projects/jbuild/sys/net80211/ieee80211.c projects/jbuild/sys/net80211/ieee80211.h projects/jbuild/sys/net80211/ieee80211_adhoc.c projects/jbuild/sys/net80211/ieee80211_ddb.c projects/jbuild/sys/net80211/ieee80211_freebsd.c projects/jbuild/sys/net80211/ieee80211_freebsd.h projects/jbuild/sys/net80211/ieee80211_hostap.c projects/jbuild/sys/net80211/ieee80211_ht.c projects/jbuild/sys/net80211/ieee80211_ht.h projects/jbuild/sys/net80211/ieee80211_input.c projects/jbuild/sys/net80211/ieee80211_input.h projects/jbuild/sys/net80211/ieee80211_ioctl.c projects/jbuild/sys/net80211/ieee80211_ioctl.h projects/jbuild/sys/net80211/ieee80211_monitor.c projects/jbuild/sys/net80211/ieee80211_node.c projects/jbuild/sys/net80211/ieee80211_node.h projects/jbuild/sys/net80211/ieee80211_output.c projects/jbuild/sys/net80211/ieee80211_proto.c projects/jbuild/sys/net80211/ieee80211_proto.h projects/jbuild/sys/net80211/ieee80211_scan.c projects/jbuild/sys/net80211/ieee80211_scan.h projects/jbuild/sys/net80211/ieee80211_scan_sta.c projects/jbuild/sys/net80211/ieee80211_sta.c projects/jbuild/sys/net80211/ieee80211_tdma.c projects/jbuild/sys/net80211/ieee80211_tdma.h projects/jbuild/sys/net80211/ieee80211_var.h projects/jbuild/sys/net80211/ieee80211_wds.c projects/jbuild/sys/netatalk/at_control.c projects/jbuild/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c projects/jbuild/sys/netgraph/netflow/ng_netflow.c projects/jbuild/sys/netgraph/netgraph.h projects/jbuild/sys/netgraph/ng_base.c projects/jbuild/sys/netgraph/ng_eiface.c projects/jbuild/sys/netgraph/ng_ether.c projects/jbuild/sys/netgraph/ng_fec.c projects/jbuild/sys/netgraph/ng_iface.c projects/jbuild/sys/netinet/icmp6.h projects/jbuild/sys/netinet/icmp_var.h projects/jbuild/sys/netinet/if_ether.c projects/jbuild/sys/netinet/igmp.c projects/jbuild/sys/netinet/igmp.h projects/jbuild/sys/netinet/igmp_var.h projects/jbuild/sys/netinet/in.c projects/jbuild/sys/netinet/in.h projects/jbuild/sys/netinet/in_gif.c projects/jbuild/sys/netinet/in_mcast.c projects/jbuild/sys/netinet/in_pcb.c projects/jbuild/sys/netinet/in_pcb.h projects/jbuild/sys/netinet/in_rmx.c projects/jbuild/sys/netinet/in_var.h projects/jbuild/sys/netinet/ip_carp.c projects/jbuild/sys/netinet/ip_carp.h projects/jbuild/sys/netinet/ip_divert.c projects/jbuild/sys/netinet/ip_dummynet.c projects/jbuild/sys/netinet/ip_dummynet.h projects/jbuild/sys/netinet/ip_fastfwd.c projects/jbuild/sys/netinet/ip_fw.h projects/jbuild/sys/netinet/ip_fw2.c projects/jbuild/sys/netinet/ip_fw_nat.c projects/jbuild/sys/netinet/ip_fw_pfil.c projects/jbuild/sys/netinet/ip_icmp.c projects/jbuild/sys/netinet/ip_input.c projects/jbuild/sys/netinet/ip_ipsec.c projects/jbuild/sys/netinet/ip_mroute.c projects/jbuild/sys/netinet/ip_mroute.h projects/jbuild/sys/netinet/ip_options.c projects/jbuild/sys/netinet/ip_output.c projects/jbuild/sys/netinet/ip_var.h projects/jbuild/sys/netinet/libalias/alias.c projects/jbuild/sys/netinet/libalias/alias_cuseeme.c projects/jbuild/sys/netinet/libalias/alias_dummy.c projects/jbuild/sys/netinet/libalias/alias_ftp.c projects/jbuild/sys/netinet/libalias/alias_irc.c projects/jbuild/sys/netinet/libalias/alias_mod.c projects/jbuild/sys/netinet/libalias/alias_mod.h projects/jbuild/sys/netinet/libalias/alias_nbt.c projects/jbuild/sys/netinet/libalias/alias_pptp.c projects/jbuild/sys/netinet/libalias/alias_skinny.c projects/jbuild/sys/netinet/libalias/alias_smedia.c projects/jbuild/sys/netinet/pim_var.h projects/jbuild/sys/netinet/raw_ip.c projects/jbuild/sys/netinet/sctp_bsd_addr.c projects/jbuild/sys/netinet/sctp_crc32.c projects/jbuild/sys/netinet/sctp_indata.c projects/jbuild/sys/netinet/sctp_input.c projects/jbuild/sys/netinet/sctp_os_bsd.h projects/jbuild/sys/netinet/sctp_output.c projects/jbuild/sys/netinet/sctp_pcb.c projects/jbuild/sys/netinet/sctp_structs.h projects/jbuild/sys/netinet/sctp_sysctl.c projects/jbuild/sys/netinet/sctp_sysctl.h projects/jbuild/sys/netinet/sctp_uio.h projects/jbuild/sys/netinet/sctp_usrreq.c projects/jbuild/sys/netinet/sctputil.c projects/jbuild/sys/netinet/tcp_hostcache.c projects/jbuild/sys/netinet/tcp_input.c projects/jbuild/sys/netinet/tcp_output.c projects/jbuild/sys/netinet/tcp_reass.c projects/jbuild/sys/netinet/tcp_sack.c projects/jbuild/sys/netinet/tcp_subr.c projects/jbuild/sys/netinet/tcp_syncache.c projects/jbuild/sys/netinet/tcp_syncache.h projects/jbuild/sys/netinet/tcp_timer.c projects/jbuild/sys/netinet/tcp_timewait.c projects/jbuild/sys/netinet/tcp_usrreq.c projects/jbuild/sys/netinet/tcp_var.h projects/jbuild/sys/netinet/udp_usrreq.c projects/jbuild/sys/netinet/udp_var.h projects/jbuild/sys/netinet/vinet.h projects/jbuild/sys/netinet6/frag6.c projects/jbuild/sys/netinet6/icmp6.c projects/jbuild/sys/netinet6/in6.c projects/jbuild/sys/netinet6/in6.h projects/jbuild/sys/netinet6/in6_ifattach.c projects/jbuild/sys/netinet6/in6_pcb.c projects/jbuild/sys/netinet6/in6_proto.c projects/jbuild/sys/netinet6/in6_rmx.c projects/jbuild/sys/netinet6/in6_src.c projects/jbuild/sys/netinet6/in6_var.h projects/jbuild/sys/netinet6/ip6_input.c projects/jbuild/sys/netinet6/ip6_mroute.c projects/jbuild/sys/netinet6/ip6_mroute.h projects/jbuild/sys/netinet6/ip6_output.c projects/jbuild/sys/netinet6/ip6_var.h projects/jbuild/sys/netinet6/mld6.c projects/jbuild/sys/netinet6/mld6_var.h projects/jbuild/sys/netinet6/nd6.c projects/jbuild/sys/netinet6/nd6.h projects/jbuild/sys/netinet6/nd6_nbr.c projects/jbuild/sys/netinet6/nd6_rtr.c projects/jbuild/sys/netinet6/raw_ip6.c projects/jbuild/sys/netinet6/route6.c projects/jbuild/sys/netinet6/scope6.c projects/jbuild/sys/netinet6/udp6_usrreq.c projects/jbuild/sys/netinet6/vinet6.h projects/jbuild/sys/netipsec/ipsec.c projects/jbuild/sys/netipsec/key.c projects/jbuild/sys/netipsec/key.h projects/jbuild/sys/netipsec/vipsec.h projects/jbuild/sys/netipsec/xform_ah.c projects/jbuild/sys/netipsec/xform_esp.c projects/jbuild/sys/netipsec/xform_ipcomp.c projects/jbuild/sys/netipsec/xform_ipip.c projects/jbuild/sys/netipsec/xform_tcp.c projects/jbuild/sys/netipx/ipx_outputfl.c projects/jbuild/sys/netipx/spx_usrreq.c projects/jbuild/sys/netnatm/natm.c projects/jbuild/sys/nfs/nfs_common.c projects/jbuild/sys/nfs4client/nfs4_dev.c projects/jbuild/sys/nfs4client/nfs4_socket.c projects/jbuild/sys/nfs4client/nfs4_vfsops.c projects/jbuild/sys/nfs4client/nfs4_vnops.c projects/jbuild/sys/nfsclient/nfs.h projects/jbuild/sys/nfsclient/nfs_bio.c projects/jbuild/sys/nfsclient/nfs_krpc.c projects/jbuild/sys/nfsclient/nfs_socket.c projects/jbuild/sys/nfsclient/nfs_subs.c projects/jbuild/sys/nfsclient/nfs_vfsops.c projects/jbuild/sys/nfsclient/nfs_vnops.c projects/jbuild/sys/nfsclient/nfsnode.h projects/jbuild/sys/nfsserver/nfs.h projects/jbuild/sys/nfsserver/nfs_serv.c projects/jbuild/sys/nfsserver/nfs_srvkrpc.c projects/jbuild/sys/nfsserver/nfs_srvsubs.c projects/jbuild/sys/nfsserver/nfs_syscalls.c projects/jbuild/sys/nlm/nlm.h projects/jbuild/sys/nlm/nlm_advlock.c projects/jbuild/sys/nlm/nlm_prot_impl.c projects/jbuild/sys/pc98/cbus/clock.c projects/jbuild/sys/pc98/cbus/olpt.c projects/jbuild/sys/pc98/conf/DEFAULTS projects/jbuild/sys/pc98/conf/GENERIC projects/jbuild/sys/pc98/conf/NOTES projects/jbuild/sys/pc98/pc98/machdep.c projects/jbuild/sys/pci/if_rlreg.h projects/jbuild/sys/pci/intpm.c projects/jbuild/sys/powerpc/aim/clock.c projects/jbuild/sys/powerpc/aim/machdep.c projects/jbuild/sys/powerpc/aim/mmu_oea.c projects/jbuild/sys/powerpc/aim/mp_cpudep.c projects/jbuild/sys/powerpc/aim/ofw_machdep.c projects/jbuild/sys/powerpc/aim/swtch.S projects/jbuild/sys/powerpc/aim/trap.c projects/jbuild/sys/powerpc/aim/trap_subr.S projects/jbuild/sys/powerpc/aim/uma_machdep.c projects/jbuild/sys/powerpc/aim/vm_machdep.c projects/jbuild/sys/powerpc/booke/clock.c projects/jbuild/sys/powerpc/booke/locore.S projects/jbuild/sys/powerpc/booke/machdep.c projects/jbuild/sys/powerpc/booke/pmap.c projects/jbuild/sys/powerpc/booke/swtch.S projects/jbuild/sys/powerpc/booke/trap_subr.S projects/jbuild/sys/powerpc/booke/vm_machdep.c projects/jbuild/sys/powerpc/conf/GENERIC projects/jbuild/sys/powerpc/conf/MPC85XX projects/jbuild/sys/powerpc/conf/NOTES projects/jbuild/sys/powerpc/include/cpufunc.h projects/jbuild/sys/powerpc/include/elf.h projects/jbuild/sys/powerpc/include/hid.h projects/jbuild/sys/powerpc/include/intr.h projects/jbuild/sys/powerpc/include/intr_machdep.h projects/jbuild/sys/powerpc/include/md_var.h projects/jbuild/sys/powerpc/include/mutex.h projects/jbuild/sys/powerpc/include/ofw_machdep.h projects/jbuild/sys/powerpc/include/param.h projects/jbuild/sys/powerpc/include/pcpu.h projects/jbuild/sys/powerpc/include/pmap.h projects/jbuild/sys/powerpc/include/pte.h projects/jbuild/sys/powerpc/include/sf_buf.h projects/jbuild/sys/powerpc/include/smp.h projects/jbuild/sys/powerpc/include/spr.h projects/jbuild/sys/powerpc/include/trap_aim.h projects/jbuild/sys/powerpc/include/vmparam.h projects/jbuild/sys/powerpc/mpc85xx/ocpbus.c projects/jbuild/sys/powerpc/mpc85xx/ocpbus.h projects/jbuild/sys/powerpc/mpc85xx/pci_ocp.c projects/jbuild/sys/powerpc/ofw/ofw_syscons.c projects/jbuild/sys/powerpc/powermac/ata_macio.c projects/jbuild/sys/powerpc/powerpc/autoconf.c projects/jbuild/sys/powerpc/powerpc/bus_machdep.c projects/jbuild/sys/powerpc/powerpc/busdma_machdep.c projects/jbuild/sys/powerpc/powerpc/cpu.c projects/jbuild/sys/powerpc/powerpc/elf_machdep.c projects/jbuild/sys/powerpc/powerpc/genassym.c projects/jbuild/sys/powerpc/powerpc/intr_machdep.c projects/jbuild/sys/powerpc/powerpc/mem.c projects/jbuild/sys/powerpc/powerpc/mmu_if.m projects/jbuild/sys/powerpc/powerpc/mp_machdep.c projects/jbuild/sys/powerpc/powerpc/openpic.c projects/jbuild/sys/powerpc/powerpc/pmap_dispatch.c projects/jbuild/sys/rpc/svc.h projects/jbuild/sys/security/audit/audit.c projects/jbuild/sys/security/audit/audit_bsm.c projects/jbuild/sys/security/audit/audit_bsm_domain.c projects/jbuild/sys/security/audit/audit_bsm_token.c projects/jbuild/sys/security/audit/audit_pipe.c projects/jbuild/sys/security/audit/audit_private.h projects/jbuild/sys/security/audit/audit_syscalls.c projects/jbuild/sys/security/audit/audit_worker.c projects/jbuild/sys/security/mac/mac_atalk.c projects/jbuild/sys/security/mac/mac_audit.c projects/jbuild/sys/security/mac/mac_cred.c projects/jbuild/sys/security/mac/mac_inet.c projects/jbuild/sys/security/mac/mac_inet6.c projects/jbuild/sys/security/mac/mac_internal.h projects/jbuild/sys/security/mac/mac_net.c projects/jbuild/sys/security/mac/mac_pipe.c projects/jbuild/sys/security/mac/mac_posix_sem.c projects/jbuild/sys/security/mac/mac_posix_shm.c projects/jbuild/sys/security/mac/mac_priv.c projects/jbuild/sys/security/mac/mac_process.c projects/jbuild/sys/security/mac/mac_socket.c projects/jbuild/sys/security/mac/mac_system.c projects/jbuild/sys/security/mac/mac_sysv_msg.c projects/jbuild/sys/security/mac/mac_sysv_sem.c projects/jbuild/sys/security/mac/mac_sysv_shm.c projects/jbuild/sys/security/mac/mac_vfs.c projects/jbuild/sys/security/mac_biba/mac_biba.c projects/jbuild/sys/security/mac_bsdextended/mac_bsdextended.c projects/jbuild/sys/security/mac_mls/mac_mls.c projects/jbuild/sys/security/mac_portacl/mac_portacl.c projects/jbuild/sys/sparc64/central/central.c projects/jbuild/sys/sparc64/conf/GENERIC projects/jbuild/sys/sparc64/ebus/ebus.c projects/jbuild/sys/sparc64/fhc/fhc.c projects/jbuild/sys/sparc64/include/elf.h projects/jbuild/sys/sparc64/include/param.h projects/jbuild/sys/sparc64/include/trap.h projects/jbuild/sys/sparc64/isa/isa.c projects/jbuild/sys/sparc64/isa/ofw_isa.c projects/jbuild/sys/sparc64/pci/apb.c projects/jbuild/sys/sparc64/pci/ofw_pcib.c projects/jbuild/sys/sparc64/pci/ofw_pcibus.c projects/jbuild/sys/sparc64/pci/psycho.c projects/jbuild/sys/sparc64/pci/psychovar.h projects/jbuild/sys/sparc64/pci/schizo.c projects/jbuild/sys/sparc64/sbus/dma_sbus.c projects/jbuild/sys/sparc64/sbus/sbus.c projects/jbuild/sys/sparc64/sbus/sbusvar.h projects/jbuild/sys/sparc64/sparc64/db_disasm.c projects/jbuild/sys/sparc64/sparc64/eeprom.c projects/jbuild/sys/sparc64/sparc64/elf_machdep.c projects/jbuild/sys/sparc64/sparc64/jbusppm.c projects/jbuild/sys/sparc64/sparc64/machdep.c projects/jbuild/sys/sparc64/sparc64/mp_machdep.c projects/jbuild/sys/sparc64/sparc64/nexus.c projects/jbuild/sys/sparc64/sparc64/rtc.c projects/jbuild/sys/sparc64/sparc64/sc_machdep.c projects/jbuild/sys/sparc64/sparc64/schppm.c projects/jbuild/sys/sparc64/sparc64/trap.c projects/jbuild/sys/sparc64/sparc64/upa.c projects/jbuild/sys/sparc64/sparc64/vm_machdep.c projects/jbuild/sys/sun4v/conf/GENERIC projects/jbuild/sys/sun4v/include/elf.h projects/jbuild/sys/sun4v/include/param.h projects/jbuild/sys/sun4v/include/trap.h projects/jbuild/sys/sun4v/sun4v/machdep.c projects/jbuild/sys/sun4v/sun4v/trap.c projects/jbuild/sys/sys/_null.h projects/jbuild/sys/sys/_pthreadtypes.h projects/jbuild/sys/sys/acl.h projects/jbuild/sys/sys/aio.h projects/jbuild/sys/sys/buf.h projects/jbuild/sys/sys/buf_ring.h projects/jbuild/sys/sys/dtrace_bsd.h projects/jbuild/sys/sys/elf_common.h projects/jbuild/sys/sys/eventhandler.h projects/jbuild/sys/sys/filedesc.h projects/jbuild/sys/sys/imgact.h projects/jbuild/sys/sys/imgact_elf.h projects/jbuild/sys/sys/interrupt.h projects/jbuild/sys/sys/ioctl.h projects/jbuild/sys/sys/ioctl_compat.h projects/jbuild/sys/sys/jail.h projects/jbuild/sys/sys/kernel.h projects/jbuild/sys/sys/kerneldump.h projects/jbuild/sys/sys/ktr.h projects/jbuild/sys/sys/lock_profile.h projects/jbuild/sys/sys/malloc.h projects/jbuild/sys/sys/mbuf.h projects/jbuild/sys/sys/memrange.h projects/jbuild/sys/sys/mount.h projects/jbuild/sys/sys/osd.h projects/jbuild/sys/sys/param.h projects/jbuild/sys/sys/priv.h projects/jbuild/sys/sys/proc.h projects/jbuild/sys/sys/queue.h projects/jbuild/sys/sys/sem.h projects/jbuild/sys/sys/shm.h projects/jbuild/sys/sys/smp.h projects/jbuild/sys/sys/socketvar.h projects/jbuild/sys/sys/stat.h projects/jbuild/sys/sys/syscall.h projects/jbuild/sys/sys/syscall.mk projects/jbuild/sys/sys/syscallsubr.h projects/jbuild/sys/sys/sysctl.h projects/jbuild/sys/sys/syslog.h projects/jbuild/sys/sys/sysproto.h projects/jbuild/sys/sys/systm.h projects/jbuild/sys/sys/termios.h projects/jbuild/sys/sys/time.h projects/jbuild/sys/sys/ucred.h projects/jbuild/sys/sys/uio.h projects/jbuild/sys/sys/vimage.h projects/jbuild/sys/sys/vnode.h projects/jbuild/sys/tools/vnode_if.awk projects/jbuild/sys/ufs/ffs/ffs_alloc.c projects/jbuild/sys/ufs/ffs/ffs_snapshot.c projects/jbuild/sys/ufs/ffs/ffs_softdep.c projects/jbuild/sys/ufs/ffs/ffs_vfsops.c projects/jbuild/sys/ufs/ffs/ffs_vnops.c projects/jbuild/sys/ufs/ufs/dinode.h projects/jbuild/sys/ufs/ufs/extattr.h projects/jbuild/sys/ufs/ufs/inode.h projects/jbuild/sys/ufs/ufs/ufs_extattr.c projects/jbuild/sys/ufs/ufs/ufs_extern.h projects/jbuild/sys/ufs/ufs/ufs_lookup.c projects/jbuild/sys/ufs/ufs/ufs_vfsops.c projects/jbuild/sys/ufs/ufs/ufs_vnops.c projects/jbuild/sys/vm/swap_pager.c projects/jbuild/sys/vm/vm_extern.h projects/jbuild/sys/vm/vm_fault.c projects/jbuild/sys/vm/vm_map.c projects/jbuild/sys/vm/vm_map.h projects/jbuild/sys/vm/vm_mmap.c projects/jbuild/sys/vm/vm_object.c projects/jbuild/sys/vm/vm_page.c projects/jbuild/sys/vm/vm_page.h projects/jbuild/sys/vm/vm_pageout.c projects/jbuild/sys/vm/vm_reserv.c projects/jbuild/sys/vm/vm_unix.c projects/jbuild/sys/vm/vnode_pager.c projects/jbuild/sys/xen/evtchn.h (props changed) projects/jbuild/sys/xen/evtchn/evtchn.c projects/jbuild/sys/xen/hypervisor.h (props changed) projects/jbuild/sys/xen/reboot.c (contents, props changed) projects/jbuild/sys/xen/xen_intr.h (props changed) projects/jbuild/tools/regression/acltools/tools-posix.test projects/jbuild/tools/regression/bin/sh/builtins/alias.0 projects/jbuild/tools/regression/bin/sh/builtins/alias.0.stdout projects/jbuild/tools/regression/include/tgmath/Makefile projects/jbuild/tools/regression/lib/libc/stdio/test-getdelim.c projects/jbuild/tools/regression/lib/msun/test-conj.t (props changed) projects/jbuild/tools/tools/ath/common/dumpregs.h (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5210.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5211.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5212.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5416.c (props changed) projects/jbuild/tools/tools/nanobsd/gateworks/G2348 projects/jbuild/tools/tools/nanobsd/gateworks/G2358 projects/jbuild/tools/tools/nanobsd/gateworks/common projects/jbuild/tools/tools/nanobsd/rescue/AMD64 projects/jbuild/tools/tools/nanobsd/rescue/I386 projects/jbuild/tools/tools/net80211/scripts/setup.tdma-slave projects/jbuild/tools/tools/net80211/scripts/setup.wdsmain projects/jbuild/tools/tools/net80211/wlanwds/wlanwds.c projects/jbuild/tools/tools/sysbuild/sysbuild.sh projects/jbuild/usr.bin/Makefile projects/jbuild/usr.bin/ar/ar.c projects/jbuild/usr.bin/calendar/calendars/calendar.freebsd projects/jbuild/usr.bin/cpio/Makefile projects/jbuild/usr.bin/cpio/bsdcpio.1 projects/jbuild/usr.bin/cpio/cmdline.c projects/jbuild/usr.bin/cpio/cpio.c projects/jbuild/usr.bin/cpio/cpio.h projects/jbuild/usr.bin/cpio/cpio_platform.h projects/jbuild/usr.bin/cpio/pathmatch.c projects/jbuild/usr.bin/cpio/pathmatch.h projects/jbuild/usr.bin/cpio/test/main.c projects/jbuild/usr.bin/cpio/test/test.h projects/jbuild/usr.bin/cpio/test/test_0.c projects/jbuild/usr.bin/cpio/test/test_basic.c projects/jbuild/usr.bin/cpio/test/test_format_newc.c projects/jbuild/usr.bin/cpio/test/test_gcpio_compat.c projects/jbuild/usr.bin/cpio/test/test_option_a.c projects/jbuild/usr.bin/cpio/test/test_option_c.c projects/jbuild/usr.bin/cpio/test/test_option_d.c projects/jbuild/usr.bin/cpio/test/test_option_f.c projects/jbuild/usr.bin/cpio/test/test_option_m.c projects/jbuild/usr.bin/cpio/test/test_option_t.c projects/jbuild/usr.bin/cpio/test/test_option_u.c projects/jbuild/usr.bin/cpio/test/test_option_version.c projects/jbuild/usr.bin/cpio/test/test_option_y.c projects/jbuild/usr.bin/cpio/test/test_option_z.c projects/jbuild/usr.bin/cpio/test/test_owner_parse.c projects/jbuild/usr.bin/cpio/test/test_passthrough_dotdot.c projects/jbuild/usr.bin/cpio/test/test_passthrough_reverse.c projects/jbuild/usr.bin/cpio/test/test_pathmatch.c projects/jbuild/usr.bin/cut/cut.1 projects/jbuild/usr.bin/du/du.c projects/jbuild/usr.bin/file/Makefile projects/jbuild/usr.bin/find/function.c projects/jbuild/usr.bin/kdump/kdump.c projects/jbuild/usr.bin/kdump/mkioctls projects/jbuild/usr.bin/locate/locate/fastfind.c projects/jbuild/usr.bin/locate/locate/util.c projects/jbuild/usr.bin/login/login.c projects/jbuild/usr.bin/login/login_audit.c projects/jbuild/usr.bin/make/globals.h projects/jbuild/usr.bin/make/main.c projects/jbuild/usr.bin/make/make.1 projects/jbuild/usr.bin/make/make.c projects/jbuild/usr.bin/ministat/ministat.c projects/jbuild/usr.bin/ncal/Makefile projects/jbuild/usr.bin/ncal/ncal.1 projects/jbuild/usr.bin/ncal/ncal.c projects/jbuild/usr.bin/netstat/inet.c projects/jbuild/usr.bin/netstat/inet6.c projects/jbuild/usr.bin/netstat/main.c projects/jbuild/usr.bin/netstat/mroute.c projects/jbuild/usr.bin/netstat/netstat.h projects/jbuild/usr.bin/procstat/ (props changed) projects/jbuild/usr.bin/su/su.c projects/jbuild/usr.bin/systat/netstat.c projects/jbuild/usr.bin/tar/Makefile projects/jbuild/usr.bin/tar/bsdtar.1 projects/jbuild/usr.bin/tar/bsdtar.c projects/jbuild/usr.bin/tar/bsdtar.h projects/jbuild/usr.bin/tar/bsdtar_platform.h projects/jbuild/usr.bin/tar/cmdline.c projects/jbuild/usr.bin/tar/read.c projects/jbuild/usr.bin/tar/test/main.c projects/jbuild/usr.bin/tar/test/test.h projects/jbuild/usr.bin/tar/test/test_0.c projects/jbuild/usr.bin/tar/test/test_basic.c projects/jbuild/usr.bin/tar/test/test_copy.c projects/jbuild/usr.bin/tar/test/test_patterns.c projects/jbuild/usr.bin/tar/test/test_strip_components.c projects/jbuild/usr.bin/tar/test/test_symlink_dir.c projects/jbuild/usr.bin/tar/tree.c projects/jbuild/usr.bin/tar/util.c projects/jbuild/usr.bin/tar/write.c projects/jbuild/usr.bin/truss/amd64-fbsd.c projects/jbuild/usr.bin/truss/amd64-fbsd32.c projects/jbuild/usr.bin/truss/amd64-linux32.c projects/jbuild/usr.bin/truss/i386-fbsd.c projects/jbuild/usr.bin/truss/i386-linux.c projects/jbuild/usr.bin/truss/ia64-fbsd.c projects/jbuild/usr.bin/truss/main.c projects/jbuild/usr.bin/truss/mips-fbsd.c projects/jbuild/usr.bin/truss/powerpc-fbsd.c projects/jbuild/usr.bin/truss/setup.c projects/jbuild/usr.bin/truss/sparc64-fbsd.c projects/jbuild/usr.bin/truss/syscall.h projects/jbuild/usr.bin/truss/syscalls.c projects/jbuild/usr.bin/truss/truss.1 projects/jbuild/usr.bin/truss/truss.h projects/jbuild/usr.sbin/Makefile projects/jbuild/usr.sbin/arp/arp.8 projects/jbuild/usr.sbin/bluetooth/btpand/btpand.c projects/jbuild/usr.sbin/bluetooth/btpand/event.c projects/jbuild/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c projects/jbuild/usr.sbin/chown/chgrp.1 projects/jbuild/usr.sbin/cpucontrol/cpucontrol.8 projects/jbuild/usr.sbin/crashinfo/crashinfo.8 projects/jbuild/usr.sbin/eeprom/ofw_options.c projects/jbuild/usr.sbin/fifolog/fifolog_create/fifolog.1 projects/jbuild/usr.sbin/freebsd-update/freebsd-update.8 projects/jbuild/usr.sbin/ifmcstat/ifmcstat.c projects/jbuild/usr.sbin/jail/jail.c projects/jbuild/usr.sbin/jexec/jexec.c projects/jbuild/usr.sbin/kbdmap/kbdmap.1 projects/jbuild/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/jbuild/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/jbuild/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/jbuild/usr.sbin/makefs/getid.c (props changed) projects/jbuild/usr.sbin/mergemaster/mergemaster.8 projects/jbuild/usr.sbin/mergemaster/mergemaster.sh projects/jbuild/usr.sbin/mtest/Makefile projects/jbuild/usr.sbin/mtest/mtest.8 projects/jbuild/usr.sbin/mtest/mtest.c projects/jbuild/usr.sbin/pciconf/cap.c projects/jbuild/usr.sbin/pkg_install/add/main.c projects/jbuild/usr.sbin/pkg_install/lib/lib.h projects/jbuild/usr.sbin/pkg_install/lib/plist.c projects/jbuild/usr.sbin/portsnap/phttpget/phttpget.c projects/jbuild/usr.sbin/ppp/iface.c projects/jbuild/usr.sbin/ppp/ipcp.c projects/jbuild/usr.sbin/ppp/ipv6cp.c projects/jbuild/usr.sbin/ppp/route.c projects/jbuild/usr.sbin/ppp/route.h projects/jbuild/usr.sbin/pwd_mkdb/pwd_mkdb.c projects/jbuild/usr.sbin/setfib/setfib.1 projects/jbuild/usr.sbin/sysinstall/devices.c projects/jbuild/usr.sbin/sysinstall/index.c projects/jbuild/usr.sbin/sysinstall/menus.c projects/jbuild/usr.sbin/sysinstall/tcpip.c projects/jbuild/usr.sbin/sysinstall/user.c projects/jbuild/usr.sbin/tcpdump/tcpdump/Makefile projects/jbuild/usr.sbin/usbconfig/usbconfig.c projects/jbuild/usr.sbin/zic/ (props changed) Modified: projects/jbuild/MAINTAINERS ============================================================================== --- projects/jbuild/MAINTAINERS Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/MAINTAINERS Thu May 21 23:30:38 2009 (r192573) @@ -76,7 +76,7 @@ groff ru Recommends pre-commit review. share/mk ru This is a vital component of the build system, so I offer a pre-commit review for anything non-trivial. ipfw ipfw Pre-commit review preferred. send to ipfw@freebsd.org -drm anholt Just keep me informed of changes, try not to break it. +drm rnoland Just keep me informed of changes, try not to break it. libufs jmallett Willing to handle problems, help with work. fdc(4) joerg Just keep me informed of changes, try not to break it. sppp(4) joerg Just keep me informed of changes, try not to break it. Modified: projects/jbuild/Makefile ============================================================================== --- projects/jbuild/Makefile Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/Makefile Thu May 21 23:30:38 2009 (r192573) @@ -279,7 +279,7 @@ tinderbox: # existing system is. # .if make(universe) || make(tinderbox) -TARGETS?=amd64 arm i386 ia64 pc98 powerpc sparc64 sun4v +TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v .if defined(DOING_TINDERBOX) FAILFILE=tinderbox.failed Modified: projects/jbuild/Makefile.inc1 ============================================================================== --- projects/jbuild/Makefile.inc1 Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/Makefile.inc1 Thu May 21 23:30:38 2009 (r192573) @@ -344,30 +344,13 @@ _worldtmp: rm -f ${OBJTREE}${.CURDIR}/usr.bin/truss/ioctl.c .endif .for _dir in \ - usr/bin usr/games usr/include/sys usr/lib \ - usr/libexec usr/sbin usr/share/dict \ - usr/share/groff_font/devX100 \ - usr/share/groff_font/devX100-12 \ - usr/share/groff_font/devX75 \ - usr/share/groff_font/devX75-12 \ - usr/share/groff_font/devascii \ - usr/share/groff_font/devcp1047 \ - usr/share/groff_font/devdvi \ - usr/share/groff_font/devhtml \ - usr/share/groff_font/devkoi8-r \ - usr/share/groff_font/devlatin1 \ - usr/share/groff_font/devlbp \ - usr/share/groff_font/devlj4 \ - usr/share/groff_font/devps \ - usr/share/groff_font/devutf8 \ - usr/share/tmac/mdoc usr/share/tmac/mm - mkdir -p ${WORLDTMP}/legacy/${_dir} -.endfor -.for _dir in \ - lib usr/bin usr/include usr/lib/compat/aout usr/libdata/ldscripts \ - usr/libexec usr/sbin usr/share/misc + lib usr legacy/usr mkdir -p ${WORLDTMP}/${_dir} .endfor + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${WORLDTMP}/legacy/usr >/dev/null + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${WORLDTMP}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${WORLDTMP}/usr/include >/dev/null ln -sf ${.CURDIR}/sys ${WORLDTMP} @@ -448,10 +431,9 @@ build32: @echo "--------------------------------------------------------------" @echo ">>> stage 5.1: building 32 bit shim libraries" @echo "--------------------------------------------------------------" -.for _dir in \ - usr/include usr/lib32 usr/share/misc - mkdir -p ${LIB32TMP}/${_dir} -.endfor + mkdir -p ${LIB32TMP}/usr/lib32 + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${LIB32TMP}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${LIB32TMP}/usr/include >/dev/null mkdir -p ${WORLDTMP} @@ -1356,6 +1338,9 @@ CDTMP= ${MAKEOBJDIRPREFIX}/${XDEV}/${.CU CDMAKE=${CDENV} ${MAKE} ${NOFUN} CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDTP}/usr/bin:${PATH} ${MAKE} ${NOFUN} XDDESTDIR=${DESTDIR}${XDTP} +.if !defined(OSREL) +OSREL!= uname -r | sed -e 's/[-(].*//' +.endif .ORDER: xdev-build xdev-install xdev: xdev-build xdev-install Modified: projects/jbuild/ObsoleteFiles.inc ============================================================================== --- projects/jbuild/ObsoleteFiles.inc Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/ObsoleteFiles.inc Thu May 21 23:30:38 2009 (r192573) @@ -14,14 +14,81 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090417: removal of legacy versions of USB network interface drivers +OLD_FILES+=usr/include/legacy/dev/usb/if_auereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_axereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_cdcereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_cuereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_kuereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_ruereg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_rumreg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_rumvar.h +OLD_FILES+=usr/include/legacy/dev/usb/if_udavreg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_uralreg.h +OLD_FILES+=usr/include/legacy/dev/usb/if_uralvar.h +OLD_FILES+=usr/include/legacy/dev/usb/if_zydfw.h +OLD_FILES+=usr/include/legacy/dev/usb/if_zydreg.h +OLD_FILES+=usr/include/legacy/dev/usb/kue_fw.h +# 20090416: removal of ar(4), ray(4), sr(4), raycontrol(8) +OLD_FILES+=usr/sbin/raycontrol +OLD_FILES+=usr/share/man/man4/i386/ar.4.gz +OLD_FILES+=usr/share/man/man4/i386/ray.4.gz +OLD_FILES+=usr/share/man/man4/i386/sr.4.gz +OLD_FILES+=usr/share/man/man8/raycontrol.8.gz +# 20090410: VOP_LEASE.9 removed +OLD_FILES+=usr/share/man/man9/VOP_LEASE.9.gz +# 20090406: usb_sw_transfer.h removed +OLD_FILES+=usr/include/dev/usb/usb_sw_transfer.h +# 20090405: removal of if_ppp(4) and if_sl(4) +OLD_FILES+=sbin/slattach rescue/slattach +OLD_FILES+=sbin/startslip rescue/startslip +OLD_FILES+=usr/include/net/if_ppp.h +OLD_FILES+=usr/include/net/if_pppvar.h +OLD_FILES+=usr/include/net/if_slvar.h +OLD_FILES+=usr/include/net/ppp_comp.h +OLD_FILES+=usr/include/net/slip.h +OLD_FILES+=usr/sbin/sliplogin +OLD_FILES+=usr/sbin/slstat +OLD_FILES+=usr/sbin/pppd +OLD_FILES+=usr/sbin/pppstats +OLD_FILES+=usr/share/man/man1/startslip.1.gz +OLD_FILES+=usr/share/man/man4/if_ppp.4.gz +OLD_FILES+=usr/share/man/man4/if_sl.4.gz +OLD_FILES+=usr/share/man/man4/ppp.4.gz +OLD_FILES+=usr/share/man/man4/sl.4.gz +OLD_FILES+=usr/share/man/man8/pppd.8.gz +OLD_FILES+=usr/share/man/man8/pppstats.8.gz +OLD_FILES+=usr/share/man/man8/slattach.8.gz +OLD_FILES+=usr/share/man/man8/slip.8.gz +OLD_FILES+=usr/share/man/man8/sliplogin.8.gz +OLD_FILES+=usr/share/man/man8/slstat.8.gz +# 20090321: libpcap upgraded to 1.0.0 +OLD_LIBS+=lib/libpcap.so.5 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libpcap.so.5 +.endif +# 20090319: uscanner(4) has been removed +OLD_FILES+=usr/share/man/man4/uscanner.4.gz +# 20090313: k8temp(4) renamed to amdtemp(4) +OLD_FILES+=usr/share/man/man4/k8temp.4.gz # 20090308: libusb.so.1 renamed OLD_LIBS+=usr/lib/libusb20.so.1 OLD_FILES+=usr/lib/libusb20.a OLD_FILES+=usr/lib/libusb20.so OLD_FILES+=usr/lib/libusb20_p.a OLD_FILES+=usr/include/libusb20_compat01.h +OLD_FILES+=usr/include/libusb20_compat10.h +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libusb20.so.1 +OLD_FILES+=usr/lib32/libusb20.a +OLD_FILES+=usr/lib32/libusb20.so +OLD_FILES+=usr/lib32/libusb20_p.a +.endif # 20090226: libmp(3) functions renamed OLD_LIBS+=usr/lib/libmp.so.6 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libmp.so.6 +.endif # 20090223: changeover of USB stacks OLD_FILES+=usr/include/dev/usb2/include/ufm2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/urio2_ioctl.h @@ -54,6 +121,8 @@ OLD_FILES+=usr/include/dev/usb/if_udavre OLD_FILES+=usr/include/dev/usb/if_upgtvar.h OLD_FILES+=usr/include/dev/usb/if_uralreg.h OLD_FILES+=usr/include/dev/usb/if_uralvar.h +OLD_FILES+=usr/include/dev/usb/if_urtwreg.h +OLD_FILES+=usr/include/dev/usb/if_urtwvar.h OLD_FILES+=usr/include/dev/usb/if_zydfw.h OLD_FILES+=usr/include/dev/usb/if_zydreg.h OLD_FILES+=usr/include/dev/usb/kue_fw.h @@ -1436,6 +1505,8 @@ OLD_FILES+=lib/geom/geom_concat.so.1 OLD_FILES+=lib/geom/geom_label.so.1 OLD_FILES+=lib/geom/geom_nop.so.1 OLD_FILES+=lib/geom/geom_stripe.so.1 +# 20040713: fla(4) removed. +OLD_FILES+=usr/share/man/man4/fla.4.gz # 200407XX OLD_FILES+=usr/sbin/kernbb OLD_FILES+=usr/sbin/ntp-genkeys Modified: projects/jbuild/UPDATING ============================================================================== --- projects/jbuild/UPDATING Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/UPDATING Thu May 21 23:30:38 2009 (r192573) @@ -22,6 +22,196 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090520: + The sysctl tree for the usb stack has renamed from hw.usb2.* to + hw.usb.* and is now consistent again with previous releases. + +20090520: + 802.11 monitor mode support was revised and driver api's + were changed. Drivers dependent on net80211 now support + DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No + user-visible data structures were changed but applications + that use DLT_IEEE802_11 may require changes. + Bump __FreeBSD_version to 800088. + +20090430: + The layout of the following structs has changed: sysctl_oid, + socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, + vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or + panics may be experienced. World rebuild is required for + correctly checking networking state from userland. + Bump __FreeBSD_version to 800085. + +20090429: + MLDv2 and Source-Specific Multicast (SSM) have been merged + to the IPv6 stack. VIMAGE hooks are in but not yet used. + The implementation of SSM within FreeBSD's IPv6 stack closely + follows the IPv4 implementation. + + For kernel developers: + + * The most important changes are that the ip6_output() and + ip6_input() paths no longer take the IN6_MULTI_LOCK, + and this lock has been downgraded to a non-recursive mutex. + + * As with the changes to the IPv4 stack to support SSM, filtering + of inbound multicast traffic must now be performed by transport + protocols within the IPv6 stack. This does not apply to TCP and + SCTP, however, it does apply to UDP in IPv6 and raw IPv6. + + * The KPIs used by IPv6 multicast are similar to those used by + the IPv4 stack, with the following differences: + * im6o_mc_filter() is analogous to imo_multicast_filter(). + * The legacy KAME entry points in6_joingroup and in6_leavegroup() + are shimmed to in6_mc_join() and in6_mc_leave() respectively. + * IN6_LOOKUP_MULTI() has been deprecated and removed. + * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs + for MLDv1 have an additional 'timer' argument which is used to + jitter the initial membership report for the solicited-node + multicast membership on-link. + * This is not strictly needed for MLDv2, which already jitters + its report transmissions. However, the 'timer' argument is + preserved in case MLDv1 is active on the interface. + + * The KAME linked-list based IPv6 membership implementation has + been refactored to use a vector similar to that used by the IPv4 + stack. + Code which maintains a list of its own multicast memberships + internally, e.g. carp, has been updated to reflect the new + semantics. + + * There is a known Lock Order Reversal (LOR) due to in6_setscope() + acquiring the IF_AFDATA_LOCK and being called within ip6_output(). + Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an + implementation constraint which needs to be addressed in HEAD. + + For application developers: + + * The changes are broadly similar to those made for the IPv4 + stack. + + * The use of IPv4 and IPv6 multicast socket options on the same + socket, using mapped addresses, HAS NOT been tested or supported. + + * There are a number of issues with the implementation of various + IPv6 multicast APIs which need to be resolved in the API surface + before the implementation is fully compatible with KAME userland + use, and these are mostly to do with interface index treatment. + + * The literature available discusses the use of either the delta / ASM + API with setsockopt(2)/getsockopt(2), or the full-state / ASM API + using setsourcefilter(3)/getsourcefilter(3). For more information + please refer to RFC 3768, 'Socket Interface Extensions for + Multicast Source Filters'. + + * Applications which use the published RFC 3678 APIs should be fine. + + For systems administrators: + + * The mtest(8) utility has been refactored to support IPv6, in + addition to IPv4. Interface addresses are no longer accepted + as arguments, their names must be used instead. The utility + will map the interface name to its first IPv4 address as + returned by getifaddrs(3). + + * The ifmcstat(8) utility has also been updated to print the MLDv2 + endpoint state and source filter lists via sysctl(3). + + * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable + loopback of IPv6 multicast datagrams by default; it defaults to 1 + to preserve the existing behaviour. Disabling multicast loopback is + recommended for optimal system performance. + + * The IPv6 MROUTING code has been changed to examine this sysctl + instead of attempting to perform a group lookup before looping + back forwarded datagrams. + + Bump __FreeBSD_version to 800084. + +20090422: + Implement low-level Bluetooth HCI API. + Bump __FreeBSD_version to 800083. + +20090419: + The layout of struct malloc_type, used by modules to register new + memory allocation types, has changed. Most modules will need to + be rebuilt or panics may be experienced. + Bump __FreeBSD_version to 800081. + +20090415: + Anticipate overflowing inp_flags - add inp_flags2. + This changes most offsets in inpcb, so checking v4 connection + state will require a world rebuild. + Bump __FreeBSD_version to 800080. + +20090415: + Add an llentry to struct route and struct route_in6. Modules + embedding a struct route will need to be recompiled. + Bump __FreeBSD_version to 800079. + +20090414: + The size of rt_metrics_lite and by extension rtentry has changed. + Networking administration apps will need to be recompiled. + The route command now supports show as an alias for get, weighting + of routes, sticky and nostick flags to alter the behavior of stateful + load balancing. + Bump __FreeBSD_version to 800078. + +20090408: + Do not use Giant for kbdmux(4) locking. This is wrong and + apparently causing more problems than it solves. This will + re-open the issue where interrupt handlers may race with + kbdmux(4) in polling mode. Typical symptoms include (but + not limited to) duplicated and/or missing characters when + low level console functions (such as gets) are used while + interrupts are enabled (for example geli password prompt, + mountroot prompt etc.). Disabling kbdmux(4) may help. + +20090407: + The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; + kernel modules referencing any of the above need to be recompiled. + Bump __FreeBSD_version to 800075. + +20090320: + GEOM_PART has become the default partition slicer for storage devices, + replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It + introduces some changes: + + MSDOS/EBR: the devices created from MSDOS extended partition entries + (EBR) can be named differently than with GEOM_MBR and are now symlinks + to devices with offset-based names. fstabs may need to be modified. + + BSD: the "geometry does not match label" warning is harmless in most + cases but it points to problems in file system misalignment with + disk geometry. The "c" partition is now implicit, covers the whole + top-level drive and cannot be (mis)used by users. + + General: Kernel dumps are now not allowed to be written to devices + whose partition types indicate they are meant to be used for file + systems (or, in case of MSDOS partitions, as something else than + the "386BSD" type). + + Most of these changes date approximately from 200812. + +20090319: + The uscanner(4) driver has been removed from the kernel. This follows + Linux removing theirs in 2.6 and making libusb the default interface + (supported by sane). + +20090319: + The multicast forwarding code has been cleaned up. netstat(1) + only relies on KVM now for printing bandwidth upcall meters. + The IPv4 and IPv6 modules are split into ip_mroute_mod and + ip6_mroute_mod respectively. The config(5) options for statically + compiling this code remain the same, i.e. 'options MROUTING'. + +20090315: + Support for the IFF_NEEDSGIANT network interface flag has been + removed, which means that non-MPSAFE network device drivers are no + longer supported. In particular, if_ar, if_sr, and network device + drivers from the old (legacy) USB stack can no longer be built or + used. + 20090313: POSIX.1 Native Language Support (NLS) has been enabled in libc and a bunch of new language catalog files have also been added. Modified: projects/jbuild/bin/cat/Makefile ============================================================================== --- projects/jbuild/bin/cat/Makefile Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/cat/Makefile Thu May 21 23:30:38 2009 (r192573) @@ -2,5 +2,6 @@ # $FreeBSD$ PROG= cat +WARNS?= 6 .include Modified: projects/jbuild/bin/ls/ls.1 ============================================================================== --- projects/jbuild/bin/ls/ls.1 Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/ls/ls.1 Thu May 21 23:30:38 2009 (r192573) @@ -680,6 +680,7 @@ specification. .Xr sort 1 , .Xr xterm 1 , .Xr strftime 3 , +.Xr strmode 3 , .Xr termcap 5 , .Xr maclabel 7 , .Xr symlink 7 , Modified: projects/jbuild/bin/pkill/pkill.1 ============================================================================== --- projects/jbuild/bin/pkill/pkill.1 Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/pkill/pkill.1 Thu May 21 23:30:38 2009 (r192573) @@ -36,7 +36,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 23, 2006 +.Dd May 16, 2009 .Dt PKILL 1 .Os .Sh NAME @@ -44,7 +44,7 @@ .Nd find or signal processes by name .Sh SYNOPSIS .Nm pgrep -.Op Fl LSfilnovx +.Op Fl LSafilnovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core @@ -60,7 +60,7 @@ .Ar pattern ... .Nm pkill .Op Fl Ar signal -.Op Fl ILfinovx +.Op Fl ILafinovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core @@ -128,6 +128,15 @@ The default is a newline. This option can only be used with the .Nm pgrep command. +.It Fl a +Include process ancestors in the match list. +By default, the current +.Nm pgrep +or +.Nm pkill +process and all of its ancestors are excluded (unless +.Fl v +is used). .It Fl f Match against full argument lists. The default is to match against process names. Modified: projects/jbuild/bin/pkill/pkill.c ============================================================================== --- projects/jbuild/bin/pkill/pkill.c Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/pkill/pkill.c Thu May 21 23:30:38 2009 (r192573) @@ -133,7 +133,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int debug_opt; + int ancestors, debug_opt; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -142,6 +142,7 @@ main(int argc, char **argv) struct timeval best_tval; regex_t reg; regmatch_t regmatch; + pid_t pid; setlocale(LC_ALL, ""); @@ -174,13 +175,14 @@ main(int argc, char **argv) } } + ancestors = 0; criteria = 0; debug_opt = 0; pidfile = NULL; pidfilelock = 0; execf = coref = _PATH_DEVNULL; - while ((ch = getopt(argc, argv, "DF:G:ILM:N:P:SU:d:fg:ij:lnos:t:u:vx")) != -1) + while ((ch = getopt(argc, argv, "DF:G:ILM:N:P:SU:ad:fg:ij:lnos:t:u:vx")) != -1) switch (ch) { case 'D': debug_opt++; @@ -220,6 +222,9 @@ main(int argc, char **argv) makelist(&ruidlist, LT_USER, optarg); criteria = 1; break; + case 'a': + ancestors++; + break; case 'd': if (!pgrep) usage(); @@ -468,6 +473,27 @@ main(int argc, char **argv) selected[i] = 1; } + if (!ancestors) { + pid = mypid; + while (pid) { + for (i = 0, kp = plist; i < nproc; i++, kp++) { + if (PSKIP(kp)) + continue; + if (kp->ki_pid == pid) { + selected[i] = 0; + pid = kp->ki_ppid; + break; + } + } + if (i == nproc) { + if (pid == mypid) + pid = getppid(); + else + break; /* Maybe we're in a jail ? */ + } + } + } + if (newest || oldest) { best_tval.tv_sec = 0; best_tval.tv_usec = 0; Modified: projects/jbuild/bin/ps/print.c ============================================================================== --- projects/jbuild/bin/ps/print.c Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/ps/print.c Thu May 21 23:30:38 2009 (r192573) @@ -130,9 +130,11 @@ command(KINFO *k, VARENT *ve) if (cflag) { /* If it is the last field, then don't pad */ if (STAILQ_NEXT(ve, next_ve) == NULL) { + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); (void)printf("%s", k->ki_p->ki_comm); if (showthreads && k->ki_p->ki_numthreads > 1) - printf("/%s", k->ki_p->ki_ocomm); + (void)printf("/%s", k->ki_p->ki_ocomm); } else (void)printf("%-*s", v->width, k->ki_p->ki_comm); return; @@ -140,16 +142,22 @@ command(KINFO *k, VARENT *ve) if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL) errx(1, "malloc failed"); strvis(vis_args, k->ki_args, VIS_TAB | VIS_NL | VIS_NOSLASH); - if (k->ki_env) { - if ((vis_env = malloc(strlen(k->ki_env) * 4 + 1)) == NULL) - errx(1, "malloc failed"); - strvis(vis_env, k->ki_env, VIS_TAB | VIS_NL | VIS_NOSLASH); - } else - vis_env = NULL; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field */ + + if (k->ki_env) { + if ((vis_env = malloc(strlen(k->ki_env) * 4 + 1)) + == NULL) + errx(1, "malloc failed"); + strvis(vis_env, k->ki_env, + VIS_TAB | VIS_NL | VIS_NOSLASH); + } else + vis_env = NULL; + if (termwidth == UNLIMITED) { + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); if (vis_env) (void)printf("%s ", vis_env); (void)printf("%s", vis_args); @@ -157,6 +165,9 @@ command(KINFO *k, VARENT *ve) left = termwidth - (totwidth - v->width); if (left < 1) /* already wrapped, just use std width */ left = v->width; + if ((cp = k->ki_d.prefix) != NULL) + while (--left >= 0 && *cp) + (void)putchar(*cp++); if ((cp = vis_env) != NULL) { while (--left >= 0 && *cp) (void)putchar(*cp++); @@ -166,12 +177,12 @@ command(KINFO *k, VARENT *ve) for (cp = vis_args; --left >= 0 && *cp != '\0';) (void)putchar(*cp++); } + if (vis_env != NULL) + free(vis_env); } else - /* XXX env? */ + /* ki_d.prefix & ki_env aren't shown for interim fields */ (void)printf("%-*.*s", v->width, v->width, vis_args); free(vis_args); - if (vis_env != NULL) - free(vis_env); } void @@ -182,6 +193,8 @@ ucomm(KINFO *k, VARENT *ve) v = ve->var; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */ + if (k->ki_d.prefix) + (void)printf("%s", k->ki_d.prefix); (void)printf("%s", k->ki_p->ki_comm); if (showthreads && k->ki_p->ki_numthreads > 1) printf("/%s", k->ki_p->ki_ocomm); Modified: projects/jbuild/bin/ps/ps.1 ============================================================================== --- projects/jbuild/bin/ps/ps.1 Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/ps/ps.1 Thu May 21 23:30:38 2009 (r192573) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd August 21, 2006 +.Dd May 16, 2009 .Dt PS 1 .Os .Sh NAME @@ -37,7 +37,7 @@ .Nd process status .Sh SYNOPSIS .Nm -.Op Fl aCcefHhjlmrSTuvwXxZ +.Op Fl aCcdefHhjlmrSTuvwXxZ .Op Fl O Ar fmt | Fl o Ar fmt .Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ... .Op Fl M Ar core @@ -122,6 +122,15 @@ CPU calculation that ignores .Dq resident time (this normally has no effect). +.It Fl d +Arrange processes into descendancy order and prefix each command with +indentation text showing sibling and parent/child relationships. +If either of the +.Fl m +and +.Fl r +options are also used, they control how sibling processes are sorted +relative to eachother. .It Fl e Display the environment as well. .It Fl f Modified: projects/jbuild/bin/ps/ps.c ============================================================================== --- projects/jbuild/bin/ps/ps.c Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/ps/ps.c Thu May 21 23:30:38 2009 (r192573) @@ -138,6 +138,7 @@ static int addelem_pid(struct listinfo static int addelem_tty(struct listinfo *, const char *); static int addelem_uid(struct listinfo *, const char *); static void add_list(struct listinfo *, const char *); +static void descendant_sort(KINFO *, int); static void dynsizevars(KINFO *); static void *expand_list(struct listinfo *); static const char * @@ -163,7 +164,7 @@ static char vfmt[] = "pid,state,time,sl, "%cpu,%mem,command"; static char Zfmt[] = "label"; -#define PS_ARGS "AaCce" OPT_LAZY_f "G:gHhjLlM:mN:O:o:p:rSTt:U:uvwXxZ" +#define PS_ARGS "AaCcde" OPT_LAZY_f "G:gHhjLlM:mN:O:o:p:rSTt:U:uvwXxZ" int main(int argc, char *argv[]) @@ -177,7 +178,7 @@ main(int argc, char *argv[]) const char *nlistf, *memf; char *cols; int all, ch, elem, flag, _fmt, i, lineno; - int nentries, nkept, nselectors; + int descendancy, nentries, nkept, nselectors; int prtheader, wflag, what, xkeep, xkeep_implied; char errbuf[_POSIX2_LINE_MAX]; @@ -201,7 +202,7 @@ main(int argc, char *argv[]) if (argc > 1) argv[1] = kludge_oldps_options(PS_ARGS, argv[1], argv[2]); - all = _fmt = nselectors = optfatal = 0; + all = descendancy = _fmt = nselectors = optfatal = 0; prtheader = showthreads = wflag = xkeep_implied = 0; xkeep = -1; /* Neither -x nor -X. */ init_list(&gidlist, addelem_gid, sizeof(gid_t), "group"); @@ -233,6 +234,9 @@ main(int argc, char *argv[]) case 'c': cflag = 1; break; + case 'd': + descendancy = 1; + break; case 'e': /* XXX set ufmt */ needenv = 1; break; @@ -575,6 +579,8 @@ main(int argc, char *argv[]) keepit: next_KINFO = &kinfo[nkept]; next_KINFO->ki_p = kp; + next_KINFO->ki_d.level = 0; + next_KINFO->ki_d.prefix = NULL; next_KINFO->ki_pcpu = getpcpu(next_KINFO); if (sortby == SORTMEM) next_KINFO->ki_memsize = kp->ki_tsize + @@ -599,6 +605,13 @@ main(int argc, char *argv[]) * sort proc list */ qsort(kinfo, nkept, sizeof(KINFO), pscomp); + + /* + * We want things in descendant order + */ + if (descendancy) + descendant_sort(kinfo, nkept); + /* * For each process, call each variable output function. */ @@ -622,6 +635,9 @@ main(int argc, char *argv[]) free_list(&sesslist); free_list(&ttylist); free_list(&uidlist); + for (i = 0; i < nkept; i++) + free(kinfo[i].ki_d.prefix); + free(kinfo); exit(eval); } @@ -748,7 +764,7 @@ addelem_tty(struct listinfo *inf, const strlcat(pathbuf2, elem, sizeof(pathbuf2)); if (stat(pathbuf2, &sb) == 0 && S_ISCHR(sb.st_mode)) { /* No need to repeat stat() && S_ISCHR() checks */ - ttypath = NULL; + ttypath = NULL; break; } /* Check to see if /dev/pts/${elem} exists */ @@ -756,7 +772,7 @@ addelem_tty(struct listinfo *inf, const strlcat(pathbuf3, elem, sizeof(pathbuf3)); if (stat(pathbuf3, &sb) == 0 && S_ISCHR(sb.st_mode)) { /* No need to repeat stat() && S_ISCHR() checks */ - ttypath = NULL; + ttypath = NULL; break; } break; @@ -890,6 +906,115 @@ add_list(struct listinfo *inf, const cha } } +static void +descendant_sort(KINFO *ki, int items) +{ + int dst, lvl, maxlvl, n, ndst, nsrc, siblings, src; + unsigned char *path; + KINFO kn; + + /* + * First, sort the entries by descendancy, tracking the descendancy + * depth in the ki_d.level field. + */ + src = 0; + maxlvl = 0; + while (src < items) { + if (ki[src].ki_d.level) { + src++; + continue; + } + for (nsrc = 1; src + nsrc < items; nsrc++) + if (!ki[src + nsrc].ki_d.level) + break; + + for (dst = 0; dst < items; dst++) { + if (ki[dst].ki_p->ki_pid == ki[src].ki_p->ki_pid) + continue; + if (ki[dst].ki_p->ki_pid == ki[src].ki_p->ki_ppid) + break; + } + + if (dst == items) { + src += nsrc; + continue; + } + + for (ndst = 1; dst + ndst < items; ndst++) + if (ki[dst + ndst].ki_d.level <= ki[dst].ki_d.level) + break; + + for (n = src; n < src + nsrc; n++) { + ki[n].ki_d.level += ki[dst].ki_d.level + 1; + if (maxlvl < ki[n].ki_d.level) + maxlvl = ki[n].ki_d.level; + } + + while (nsrc) { + if (src < dst) { + kn = ki[src]; + memmove(ki + src, ki + src + 1, + (dst - src + ndst - 1) * sizeof *ki); + ki[dst + ndst - 1] = kn; + nsrc--; + dst--; + ndst++; + } else if (src != dst + ndst) { + kn = ki[src]; + memmove(ki + dst + ndst + 1, ki + dst + ndst, + (src - dst - ndst) * sizeof *ki); + ki[dst + ndst] = kn; + ndst++; + nsrc--; + src++; + } else { + ndst += nsrc; + src += nsrc; + nsrc = 0; + } + } + } + + /* + * Now populate ki_d.prefix (instead of ki_d.level) with the command + * prefix used to show descendancies. + */ + path = malloc((maxlvl + 7) / 8); + memset(path, '\0', (maxlvl + 7) / 8); + for (src = 0; src < items; src++) { + if ((lvl = ki[src].ki_d.level) == 0) { + ki[src].ki_d.prefix = NULL; + continue; + } + if ((ki[src].ki_d.prefix = malloc(lvl * 2 + 1)) == NULL) + errx(1, "malloc failed"); + for (n = 0; n < lvl - 2; n++) { + ki[src].ki_d.prefix[n * 2] = + path[n / 8] & 1 << (n % 8) ? '|' : ' '; + ki[src].ki_d.prefix[n * 2 + 1] = ' '; + } + if (n == lvl - 2) { + /* Have I any more siblings? */ + for (siblings = 0, dst = src + 1; dst < items; dst++) { + if (ki[dst].ki_d.level > lvl) + continue; + if (ki[dst].ki_d.level == lvl) + siblings = 1; + break; + } + if (siblings) + path[n / 8] |= 1 << (n % 8); + else + path[n / 8] &= ~(1 << (n % 8)); + ki[src].ki_d.prefix[n * 2] = siblings ? '|' : '`'; + ki[src].ki_d.prefix[n * 2 + 1] = '-'; + n++; + } + strcpy(ki[src].ki_d.prefix + n * 2, "- "); + } + free(path); +} + static void * expand_list(struct listinfo *inf) { Modified: projects/jbuild/bin/ps/ps.h ============================================================================== --- projects/jbuild/bin/ps/ps.h Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/ps/ps.h Thu May 21 23:30:38 2009 (r192573) @@ -42,6 +42,10 @@ typedef struct kinfo { int ki_valid; /* 1 => uarea stuff valid */ double ki_pcpu; /* calculated in main() */ segsz_t ki_memsize; /* calculated in main() */ + union { + int level; /* used in decendant_sort() */ + char *prefix; /* calculated in decendant_sort() */ + } ki_d; } KINFO; /* Variables. */ Modified: projects/jbuild/bin/rm/rm.c ============================================================================== --- projects/jbuild/bin/rm/rm.c Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/rm/rm.c Thu May 21 23:30:38 2009 (r192573) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok; int rflag, Iflag; uid_t uid; +volatile sig_atomic_t info; int check(char *, char *, struct stat *); int check2(char **); @@ -68,6 +69,7 @@ void checkslash(char **); void rm_file(char **); int rm_overwrite(char *, struct stat *); void rm_tree(char **); +static void siginfo(int __unused); void usage(void); /* @@ -150,6 +152,7 @@ main(int argc, char *argv[]) checkslash(argv); uid = geteuid(); + (void)signal(SIGINFO, siginfo); if (*argv) { stdin_ok = isatty(STDIN_FILENO); @@ -266,6 +269,11 @@ rm_tree(char **argv) if (rval == 0 && vflag) (void)printf("%s\n", p->fts_path); + if (rval == 0 && info) { + info = 0; + (void)printf("%s\n", + p->fts_path); + } continue; } break; @@ -276,6 +284,11 @@ rm_tree(char **argv) if (vflag) (void)printf("%s\n", p->fts_path); + if (info) { + info = 0; + (void)printf("%s\n", + p->fts_path); + } continue; } break; @@ -297,6 +310,11 @@ rm_tree(char **argv) if (rval == 0 && vflag) (void)printf("%s\n", p->fts_path); + if (rval == 0 && info) { + info = 0; + (void)printf("%s\n", + p->fts_path); + } continue; } } @@ -369,6 +387,10 @@ rm_file(char **argv) } if (vflag && rval == 0) (void)printf("%s\n", f); + if (info && rval == 0) { + info = 0; + (void)printf("%s\n", f); + } } } @@ -592,3 +614,10 @@ usage(void) " unlink file"); exit(EX_USAGE); } + +static void +siginfo(int sig __unused) +{ + + info = 1; +} Modified: projects/jbuild/bin/sh/alias.c ============================================================================== --- projects/jbuild/bin/sh/alias.c Thu May 21 23:27:38 2009 (r192572) +++ projects/jbuild/bin/sh/alias.c Thu May 21 23:30:38 2009 (r192573) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #define ATABSIZE 39 STATIC struct alias *atab[ATABSIZE]; +STATIC int aliases; STATIC void setalias(char *, char *); STATIC int unalias(const char *); @@ -106,6 +107,7 @@ setalias(char *name, char *val) ap->flag = 0; ap->next = *app; *app = ap; + aliases++; INTON; } @@ -135,6 +137,7 @@ unalias(const char *name) ckfree(ap); INTON; } + aliases--; return (0); } } @@ -168,6 +171,7 @@ rmaliases(void) ckfree(tmp); } } + aliases = 0; INTON; } @@ -187,9 +191,47 @@ lookupalias(char *name, int check) return (NULL); } -/* - * TODO - sort output - */ +static int +comparealiases(const void *p1, const void *p2) +{ + const struct alias *const *a1 = p1; + const struct alias *const *a2 = p2; + + return strcmp((*a1)->name, (*a2)->name); +} + +static void +printalias(const struct alias *a) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri May 22 20:08:14 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01A601065673; Fri, 22 May 2009 20:08:14 +0000 (UTC) (envelope-from dwhite@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E3A278FC0C; Fri, 22 May 2009 20:08:13 +0000 (UTC) (envelope-from dwhite@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4MK8DCr017450; Fri, 22 May 2009 20:08:13 GMT (envelope-from dwhite@svn.freebsd.org) Received: (from dwhite@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4MK8Dqb017449; Fri, 22 May 2009 20:08:13 GMT (envelope-from dwhite@svn.freebsd.org) Message-Id: <200905222008.n4MK8Dqb017449@svn.freebsd.org> From: Doug White Date: Fri, 22 May 2009 20:08:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192600 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 May 2009 20:08:14 -0000 Author: dwhite Date: Fri May 22 20:08:13 2009 New Revision: 192600 URL: http://svn.freebsd.org/changeset/base/192600 Log: Remove unused variable. Modified: projects/mips/sys/mips/atheros/if_arge.c Modified: projects/mips/sys/mips/atheros/if_arge.c ============================================================================== --- projects/mips/sys/mips/atheros/if_arge.c Fri May 22 20:07:39 2009 (r192599) +++ projects/mips/sys/mips/atheros/if_arge.c Fri May 22 20:08:13 2009 (r192600) @@ -625,8 +625,6 @@ arge_link_task(void *arg, int pending) static void arge_reset_dma(struct arge_softc *sc) { - unsigned int i; - ARGE_WRITE(sc, AR71XX_DMA_RX_CONTROL, 0); ARGE_WRITE(sc, AR71XX_DMA_TX_CONTROL, 0); From owner-svn-src-projects@FreeBSD.ORG Sat May 23 06:30:03 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3828106566B; Sat, 23 May 2009 06:30:03 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C1F558FC1A; Sat, 23 May 2009 06:30:03 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4N6U3dX046034; Sat, 23 May 2009 06:30:03 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4N6U3FX046033; Sat, 23 May 2009 06:30:03 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905230630.n4N6U3FX046033@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Sat, 23 May 2009 06:30:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192624 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 06:30:04 -0000 Author: gonzo Date: Sat May 23 06:30:03 2009 New Revision: 192624 URL: http://svn.freebsd.org/changeset/base/192624 Log: - Wrong logical operator was used for flag check Modified: projects/mips/sys/mips/atheros/if_arge.c Modified: projects/mips/sys/mips/atheros/if_arge.c ============================================================================== --- projects/mips/sys/mips/atheros/if_arge.c Sat May 23 04:31:05 2009 (r192623) +++ projects/mips/sys/mips/atheros/if_arge.c Sat May 23 06:30:03 2009 (r192624) @@ -1480,7 +1480,7 @@ arge_rx_intr(struct arge_softc *sc, uint /* RX overrun disables the receiver. Clear indication and re-enable rx. */ - if ( status | DMA_INTR_RX_OVERFLOW) { + if ( status & DMA_INTR_RX_OVERFLOW) { ARGE_WRITE(sc, AR71XX_DMA_RX_STATUS, DMA_RX_STATUS_OVERFLOW); ARGE_WRITE(sc, AR71XX_DMA_RX_CONTROL, DMA_RX_CONTROL_EN); } From owner-svn-src-projects@FreeBSD.ORG Sat May 23 12:42:57 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCD90106566B; Sat, 23 May 2009 12:42:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BBCFE8FC0C; Sat, 23 May 2009 12:42:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NCgvvL055819; Sat, 23 May 2009 12:42:57 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NCgvXv055818; Sat, 23 May 2009 12:42:57 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905231242.n4NCgvXv055818@svn.freebsd.org> From: Robert Watson Date: Sat, 23 May 2009 12:42:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192634 - projects/pnet/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 12:42:58 -0000 Author: rwatson Date: Sat May 23 12:42:57 2009 New Revision: 192634 URL: http://svn.freebsd.org/changeset/base/192634 Log: Add NETISR2 to LINT -- once netisr is replaced with netisr2, this will no longer be required, but during testing it is helpful. Modified: projects/pnet/sys/conf/NOTES Modified: projects/pnet/sys/conf/NOTES ============================================================================== --- projects/pnet/sys/conf/NOTES Sat May 23 10:45:28 2009 (r192633) +++ projects/pnet/sys/conf/NOTES Sat May 23 12:42:57 2009 (r192634) @@ -512,6 +512,11 @@ options HWPMC_HOOKS # Other necessary # NETWORKING OPTIONS # +# Support for parallel netisr threads. +# +options NETISR2 + +# # Protocol families # options INET #Internet communications protocols From owner-svn-src-projects@FreeBSD.ORG Sat May 23 12:44:27 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EF78106566C; Sat, 23 May 2009 12:44:27 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 13E6F8FC13; Sat, 23 May 2009 12:44:27 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NCiQeg055895; Sat, 23 May 2009 12:44:26 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NCiQna055892; Sat, 23 May 2009 12:44:26 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905231244.n4NCiQna055892@svn.freebsd.org> From: Robert Watson Date: Sat, 23 May 2009 12:44:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192635 - in projects/pnet/sys: kern net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 12:44:27 -0000 Author: rwatson Date: Sat May 23 12:44:26 2009 New Revision: 192635 URL: http://svn.freebsd.org/changeset/base/192635 Log: ttempt to adapt DEVICE_POLLING for the netisr2 world: if device polling is configured into the kernel, use at most one worker thread and don't bind the thread to a CPU, restoring device polling's expectation of a single netisr thread running all interface and protocol code. Teach netisr2 explicitly about polling rather than having polling pretend to be a normal protocol dispatch, as netisr2 is more packet-centric than netisr. Modified: projects/pnet/sys/kern/kern_poll.c projects/pnet/sys/net/netisr2.c projects/pnet/sys/net/netisr2.h Modified: projects/pnet/sys/kern/kern_poll.c ============================================================================== --- projects/pnet/sys/kern/kern_poll.c Sat May 23 12:42:57 2009 (r192634) +++ projects/pnet/sys/kern/kern_poll.c Sat May 23 12:44:26 2009 (r192635) @@ -28,6 +28,7 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_netisr.h" #include "opt_route.h" #include "opt_device_polling.h" @@ -45,11 +46,10 @@ __FBSDID("$FreeBSD$"); #include /* for IFF_* flags */ #include /* for NETISR_POLL */ +#include #include #include -static void netisr_poll(void); /* the two netisr handlers */ -static void netisr_pollmore(void); static int poll_switch(SYSCTL_HANDLER_ARGS); void hardclock_device_poll(void); /* hook from hardclock */ @@ -111,6 +111,11 @@ SYSCTL_NODE(_kern, OID_AUTO, polling, CT SYSCTL_UINT(_kern_polling, OID_AUTO, burst, CTLFLAG_RD, &poll_burst, 0, "Current polling burst size"); +#ifdef NETISR2 +static int netisr_poll_scheduled; +static int netisr_pollmore_scheduled; +#endif + static int poll_burst_max_sysctl(SYSCTL_HANDLER_ARGS) { uint32_t val = poll_burst_max; @@ -265,8 +270,10 @@ init_device_poll(void) { mtx_init(&poll_mtx, "polling", NULL, MTX_DEF); +#ifndef NETISR2 netisr_register(NETISR_POLL, (netisr_t *)netisr_poll, NULL, 0); netisr_register(NETISR_POLLMORE, (netisr_t *)netisr_pollmore, NULL, 0); +#endif } SYSINIT(device_poll, SI_SUB_CLOCKS, SI_ORDER_MIDDLE, init_device_poll, NULL); @@ -315,7 +322,13 @@ hardclock_device_poll(void) if (phase != 0) suspect++; phase = 1; +#ifdef NETISR2 + netisr_poll_scheduled = 1; + netisr_pollmore_scheduled = 1; + netisr2_sched_poll(); +#else schednetisrbits(1 << NETISR_POLL | 1 << NETISR_POLLMORE); +#endif phase = 2; } if (pending_polls++ > 0) @@ -366,9 +379,22 @@ netisr_pollmore() int kern_load; mtx_lock(&poll_mtx); +#ifdef NETISR2 + if (!netisr_pollmore_scheduled) { + mtx_unlock(&poll_mtx); + return; + } + netisr_pollmore_scheduled = 0; +#endif phase = 5; if (residual_burst > 0) { +#ifdef NETISR2 + netisr_poll_scheduled = 1; + netisr_pollmore_scheduled = 1; + netisr2_sched_poll(); +#else schednetisrbits(1 << NETISR_POLL | 1 << NETISR_POLLMORE); +#endif mtx_unlock(&poll_mtx); /* will run immediately on return, followed by netisrs */ return; @@ -398,7 +424,13 @@ netisr_pollmore() poll_burst -= (poll_burst / 8); if (poll_burst < 1) poll_burst = 1; +#ifdef NETISR2 + netisr_poll_scheduled = 1; + netisr_pollmore_scheduled = 1; + netisr2_sched_poll(); +#else schednetisrbits(1 << NETISR_POLL | 1 << NETISR_POLLMORE); +#endif phase = 6; } mtx_unlock(&poll_mtx); @@ -408,13 +440,20 @@ netisr_pollmore() * netisr_poll is scheduled by schednetisr when appropriate, typically once * per tick. */ -static void +void netisr_poll(void) { int i, cycles; enum poll_cmd arg = POLL_ONLY; mtx_lock(&poll_mtx); +#ifdef NETISR2 + if (!netisr_poll_scheduled) { + mtx_unlock(&poll_mtx); + return; + } + netisr_poll_scheduled = 0; +#endif phase = 3; if (residual_burst == 0) { /* first call in this tick */ microuptime(&poll_start_t); Modified: projects/pnet/sys/net/netisr2.c ============================================================================== --- projects/pnet/sys/net/netisr2.c Sat May 23 12:42:57 2009 (r192634) +++ projects/pnet/sys/net/netisr2.c Sat May 23 12:44:26 2009 (r192635) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); */ #include "opt_ddb.h" +#include "opt_device_polling.h" #include #include @@ -733,6 +734,12 @@ swi_net(void *arg) nwsp = arg; +#ifdef DEVICE_POLLING + KASSERT(nws_count == 1, + ("swi_net: device_polling but nws_count != 1")); + netisr_poll(); +#endif + NETISR_RLOCK(&tracker); NWS_LOCK(nwsp); KASSERT(!(nwsp->nws_flags & NWS_RUNNING), ("swi_net: running")); @@ -746,6 +753,10 @@ swi_net(void *arg) out: NWS_UNLOCK(nwsp); NETISR_RUNLOCK(&tracker); + +#ifdef DEVICE_POLLING + netisr_pollmore(); +#endif } static int @@ -973,6 +984,22 @@ netisr_dispatch(int proto, struct mbuf * (void)netisr2_dispatch(proto, m); } +#ifdef DEVICE_POLLING +/* + * Kernel polling borrows a netisr2 thread to run interface polling in; this + * function allows kernel polling to request that the netisr2 thread be + * scheduled even if no packets are pending for protocols. + */ +void +netisr2_sched_poll(void) +{ + struct netisr_workstream *nwsp; + + nwsp = &nws[nws_array[0]]; + NWS_SIGNAL(nwsp); +} +#endif + static void netisr2_start_swi(u_int cpuid, struct pcpu *pc) { @@ -1020,6 +1047,15 @@ netisr2_init(void *arg) netisr_maxthreads = 1; if (netisr_maxthreads > MAXCPU) netisr_maxthreads = MAXCPU; +#ifdef DEVICE_POLLING + /* + * The device polling code is not yet aware of how to deal with + * multiple netisr threads, so for the time being compiling in device + * polling disables parallel netisr workers. + */ + netisr_maxthreads = 1; + netisr_bindthreads = 0; +#endif netisr2_start_swi(curcpu, pcpu_find(curcpu)); } Modified: projects/pnet/sys/net/netisr2.h ============================================================================== --- projects/pnet/sys/net/netisr2.h Sat May 23 12:42:57 2009 (r192634) +++ projects/pnet/sys/net/netisr2.h Sat May 23 12:44:26 2009 (r192635) @@ -124,4 +124,11 @@ u_int netisr2_default_flow2cpu(u_int flo u_int netisr2_get_cpucount(void); u_int netisr2_get_cpuid(u_int cpunumber); +/* + * Interfaces between DEVICE_POLLING and netisr2. + */ +void netisr2_sched_poll(void); +void netisr_poll(void); +void netisr_pollmore(void); + #endif /* !_NET_NETISR2_H_ */ From owner-svn-src-projects@FreeBSD.ORG Sat May 23 13:44:38 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E8BBA1065670; Sat, 23 May 2009 13:44:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D23738FC1D; Sat, 23 May 2009 13:44:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NDicM5057137; Sat, 23 May 2009 13:44:38 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NDicOI057129; Sat, 23 May 2009 13:44:38 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905231344.n4NDicOI057129@svn.freebsd.org> From: Robert Watson Date: Sat, 23 May 2009 13:44:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192637 - in projects/pnet/sys: . amd64/amd64 amd64/conf amd64/include amd64/isa amd64/linux32 amd64/pci arm/arm arm/at91 arm/conf arm/include arm/xscale/ixp425 boot/forth boot/i386/zfs... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 13:44:39 -0000 Author: rwatson Date: Sat May 23 13:44:37 2009 New Revision: 192637 URL: http://svn.freebsd.org/changeset/base/192637 Log: Merge head/sys through r191381-r192635 to the pnet development branch. Added: projects/pnet/sys/amd64/amd64/mca.c - copied unchanged from r192635, head/sys/amd64/amd64/mca.c projects/pnet/sys/amd64/include/mca.h - copied unchanged from r192635, head/sys/amd64/include/mca.h projects/pnet/sys/arm/at91/at91_cfata.c - copied unchanged from r192635, head/sys/arm/at91/at91_cfata.c projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c projects/pnet/sys/contrib/dev/iwi/Makefile - copied unchanged from r192635, head/sys/contrib/dev/iwi/Makefile projects/pnet/sys/dev/bwi/ - copied from r192635, head/sys/dev/bwi/ projects/pnet/sys/dev/usb/controller/avr32dci.c - copied unchanged from r192635, head/sys/dev/usb/controller/avr32dci.c projects/pnet/sys/dev/usb/controller/avr32dci.h - copied unchanged from r192635, head/sys/dev/usb/controller/avr32dci.h projects/pnet/sys/dev/usb/wlan/if_upgt.c - copied unchanged from r192635, head/sys/dev/usb/wlan/if_upgt.c projects/pnet/sys/dev/usb/wlan/if_upgtvar.h - copied unchanged from r192635, head/sys/dev/usb/wlan/if_upgtvar.h projects/pnet/sys/fs/nfs/ - copied from r192635, head/sys/fs/nfs/ projects/pnet/sys/fs/nfsclient/ - copied from r192635, head/sys/fs/nfsclient/ projects/pnet/sys/fs/nfsserver/ - copied from r192635, head/sys/fs/nfsserver/ projects/pnet/sys/i386/i386/mca.c - copied unchanged from r192635, head/sys/i386/i386/mca.c projects/pnet/sys/i386/include/mca.h - copied unchanged from r192635, head/sys/i386/include/mca.h projects/pnet/sys/modules/bwi/ - copied from r192635, head/sys/modules/bwi/ projects/pnet/sys/modules/usb/upgt/ - copied from r192635, head/sys/modules/usb/upgt/ projects/pnet/sys/net/if_dead.c - copied unchanged from r192635, head/sys/net/if_dead.c projects/pnet/sys/net80211/ieee80211_radiotap.c - copied unchanged from r192635, head/sys/net80211/ieee80211_radiotap.c projects/pnet/sys/netinet6/in6_mcast.c - copied unchanged from r192635, head/sys/netinet6/in6_mcast.c projects/pnet/sys/netinet6/mld6.h - copied unchanged from r192635, head/sys/netinet6/mld6.h projects/pnet/sys/pc98/include/mca.h - copied unchanged from r192635, head/sys/pc98/include/mca.h projects/pnet/sys/powerpc/aim/platform_chrp.c - copied unchanged from r192635, head/sys/powerpc/aim/platform_chrp.c projects/pnet/sys/powerpc/booke/mp_cpudep.c - copied unchanged from r192635, head/sys/powerpc/booke/mp_cpudep.c projects/pnet/sys/powerpc/booke/platform_bare.c - copied unchanged from r192635, head/sys/powerpc/booke/platform_bare.c projects/pnet/sys/powerpc/include/platform.h - copied unchanged from r192635, head/sys/powerpc/include/platform.h projects/pnet/sys/powerpc/include/platformvar.h - copied unchanged from r192635, head/sys/powerpc/include/platformvar.h projects/pnet/sys/powerpc/mpc85xx/atpic.c - copied unchanged from r192635, head/sys/powerpc/mpc85xx/atpic.c projects/pnet/sys/powerpc/mpc85xx/isa.c - copied unchanged from r192635, head/sys/powerpc/mpc85xx/isa.c projects/pnet/sys/powerpc/powerpc/platform.c - copied unchanged from r192635, head/sys/powerpc/powerpc/platform.c projects/pnet/sys/powerpc/powerpc/platform_if.m - copied unchanged from r192635, head/sys/powerpc/powerpc/platform_if.m Deleted: projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/amd64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/i386/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/ia64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/sparc64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.c projects/pnet/sys/cddl/dev/dtnfsclient/ projects/pnet/sys/compat/svr4/svr4_ttold.c projects/pnet/sys/compat/svr4/svr4_ttold.h projects/pnet/sys/dev/usb/README.TXT projects/pnet/sys/dev/usb/wlan/usb_wlan.h projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c projects/pnet/sys/legacy/dev/usb/if_upgt.c projects/pnet/sys/legacy/dev/usb/if_upgtvar.h projects/pnet/sys/legacy/dev/usb/usb_ethersubr.c projects/pnet/sys/legacy/dev/usb/usb_ethersubr.h projects/pnet/sys/modules/ata/ata/ projects/pnet/sys/modules/nfs4client/ projects/pnet/sys/nfs4client/ projects/pnet/sys/powerpc/include/powerpc.h projects/pnet/sys/rpc/rpcclnt.c projects/pnet/sys/rpc/rpcclnt.h Modified: projects/pnet/sys/ (props changed) projects/pnet/sys/Makefile projects/pnet/sys/amd64/amd64/busdma_machdep.c projects/pnet/sys/amd64/amd64/identcpu.c projects/pnet/sys/amd64/amd64/local_apic.c projects/pnet/sys/amd64/amd64/machdep.c projects/pnet/sys/amd64/amd64/mp_machdep.c projects/pnet/sys/amd64/amd64/pmap.c projects/pnet/sys/amd64/amd64/trap.c projects/pnet/sys/amd64/conf/DEFAULTS projects/pnet/sys/amd64/conf/GENERIC projects/pnet/sys/amd64/conf/GENERIC.hints projects/pnet/sys/amd64/conf/NOTES projects/pnet/sys/amd64/conf/XENHVM projects/pnet/sys/amd64/include/apicvar.h projects/pnet/sys/amd64/include/clock.h projects/pnet/sys/amd64/include/param.h projects/pnet/sys/amd64/include/pcpu.h projects/pnet/sys/amd64/include/smp.h projects/pnet/sys/amd64/include/specialreg.h projects/pnet/sys/amd64/include/vmparam.h projects/pnet/sys/amd64/isa/clock.c projects/pnet/sys/amd64/linux32/linux.h projects/pnet/sys/amd64/linux32/linux32_sysvec.c projects/pnet/sys/amd64/pci/pci_cfgreg.c projects/pnet/sys/arm/arm/busdma_machdep.c projects/pnet/sys/arm/arm/cpufunc.c projects/pnet/sys/arm/arm/machdep.c projects/pnet/sys/arm/arm/pmap.c projects/pnet/sys/arm/at91/at91.c projects/pnet/sys/arm/at91/at91_machdep.c projects/pnet/sys/arm/at91/at91_spi.c projects/pnet/sys/arm/at91/at91rm92reg.h projects/pnet/sys/arm/at91/files.at91 projects/pnet/sys/arm/at91/if_ate.c projects/pnet/sys/arm/conf/AVILA projects/pnet/sys/arm/conf/BWCT projects/pnet/sys/arm/conf/CAMBRIA projects/pnet/sys/arm/conf/CRB projects/pnet/sys/arm/conf/DB-78XXX projects/pnet/sys/arm/conf/DB-88F5XXX projects/pnet/sys/arm/conf/DB-88F6XXX projects/pnet/sys/arm/conf/EP80219 projects/pnet/sys/arm/conf/GUMSTIX projects/pnet/sys/arm/conf/HL200 projects/pnet/sys/arm/conf/IQ31244 projects/pnet/sys/arm/conf/KB920X projects/pnet/sys/arm/conf/NSLU projects/pnet/sys/arm/conf/NSLU.hints projects/pnet/sys/arm/conf/SIMICS projects/pnet/sys/arm/conf/SKYEYE projects/pnet/sys/arm/include/pmap.h projects/pnet/sys/arm/xscale/ixp425/std.ixp435 (props changed) projects/pnet/sys/boot/forth/loader.conf projects/pnet/sys/boot/i386/zfsboot/zfsboot.c projects/pnet/sys/boot/uboot/lib/devicename.c projects/pnet/sys/boot/uboot/lib/disk.c projects/pnet/sys/boot/uboot/lib/libuboot.h projects/pnet/sys/boot/zfs/zfsimpl.c projects/pnet/sys/cam/cam_periph.c projects/pnet/sys/cam/scsi/scsi_pass.c projects/pnet/sys/cam/scsi/scsi_sg.c projects/pnet/sys/cddl/boot/zfs/README projects/pnet/sys/cddl/boot/zfs/zfsimpl.h projects/pnet/sys/cddl/boot/zfs/zfssubr.c (contents, props changed) projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c projects/pnet/sys/cddl/compat/opensolaris/sys/mutex.h projects/pnet/sys/cddl/compat/opensolaris/sys/rwlock.h projects/pnet/sys/cddl/compat/opensolaris/sys/vnode.h projects/pnet/sys/cddl/contrib/opensolaris/common/acl/acl_common.c projects/pnet/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h projects/pnet/sys/compat/freebsd32/freebsd32_misc.c projects/pnet/sys/compat/freebsd32/freebsd32_proto.h projects/pnet/sys/compat/freebsd32/freebsd32_syscall.h projects/pnet/sys/compat/freebsd32/freebsd32_syscalls.c projects/pnet/sys/compat/freebsd32/freebsd32_sysent.c projects/pnet/sys/compat/freebsd32/syscalls.master projects/pnet/sys/compat/linux/linux_futex.c projects/pnet/sys/compat/linux/linux_futex.h projects/pnet/sys/compat/linux/linux_ioctl.c projects/pnet/sys/compat/linux/linux_mib.c projects/pnet/sys/compat/linux/linux_mib.h projects/pnet/sys/compat/linux/linux_misc.c projects/pnet/sys/compat/linux/linux_misc.h projects/pnet/sys/compat/linux/linux_socket.c projects/pnet/sys/compat/linux/linux_socket.h projects/pnet/sys/compat/linux/linux_stats.c projects/pnet/sys/compat/linux/linux_util.h projects/pnet/sys/compat/ndis/kern_windrv.c projects/pnet/sys/compat/ndis/subr_ndis.c projects/pnet/sys/compat/svr4/svr4_ioctl.c projects/pnet/sys/compat/svr4/svr4_ioctl.h projects/pnet/sys/compat/svr4/svr4_misc.c projects/pnet/sys/compat/svr4/svr4_proto.h projects/pnet/sys/compat/svr4/svr4_stat.c projects/pnet/sys/compat/svr4/svr4_syscall.h projects/pnet/sys/compat/svr4/svr4_syscallnames.c projects/pnet/sys/compat/svr4/svr4_sysent.c projects/pnet/sys/conf/NOTES projects/pnet/sys/conf/files projects/pnet/sys/conf/files.amd64 projects/pnet/sys/conf/files.i386 projects/pnet/sys/conf/files.pc98 projects/pnet/sys/conf/files.powerpc projects/pnet/sys/conf/kern.post.mk projects/pnet/sys/conf/options projects/pnet/sys/contrib/altq/altq/altq_subr.c projects/pnet/sys/contrib/dev/acpica/ (props changed) projects/pnet/sys/contrib/dev/iwi/ipw2200-bss.fw.uu projects/pnet/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu projects/pnet/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu projects/pnet/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/pnet/sys/dev/aac/aac.c projects/pnet/sys/dev/acpi_support/acpi_ibm.c projects/pnet/sys/dev/acpi_support/acpi_sony.c projects/pnet/sys/dev/acpica/acpi.c projects/pnet/sys/dev/acpica/acpi_cpu.c projects/pnet/sys/dev/age/if_age.c projects/pnet/sys/dev/aic/aic.c projects/pnet/sys/dev/amr/amr.c projects/pnet/sys/dev/amr/amr_linux.c projects/pnet/sys/dev/arcmsr/arcmsr.c projects/pnet/sys/dev/asr/asr.c projects/pnet/sys/dev/ata/ata-all.h projects/pnet/sys/dev/ata/ata-disk.c projects/pnet/sys/dev/ata/ata-pci.c projects/pnet/sys/dev/ata/ata-pci.h projects/pnet/sys/dev/ata/ata-queue.c projects/pnet/sys/dev/ata/ata-sata.c projects/pnet/sys/dev/ata/ata-usb.c projects/pnet/sys/dev/ata/atapi-cam.c projects/pnet/sys/dev/ata/atapi-tape.c projects/pnet/sys/dev/ata/chipsets/ata-acard.c projects/pnet/sys/dev/ata/chipsets/ata-ahci.c projects/pnet/sys/dev/ata/chipsets/ata-ati.c projects/pnet/sys/dev/ata/chipsets/ata-promise.c projects/pnet/sys/dev/ata/chipsets/ata-siliconimage.c projects/pnet/sys/dev/ath/ah_osdep.c projects/pnet/sys/dev/ath/ah_osdep.h projects/pnet/sys/dev/ath/ath_hal/ah.c projects/pnet/sys/dev/ath/ath_hal/ah.h projects/pnet/sys/dev/ath/ath_hal/ah_internal.h projects/pnet/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/pnet/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pnet/sys/dev/ath/if_ath.c projects/pnet/sys/dev/ath/if_ath_pci.c projects/pnet/sys/dev/ath/if_athvar.h projects/pnet/sys/dev/bce/if_bce.c projects/pnet/sys/dev/bce/if_bcereg.h projects/pnet/sys/dev/bge/if_bge.c projects/pnet/sys/dev/ciss/ciss.c projects/pnet/sys/dev/cxgb/common/cxgb_ael1002.c projects/pnet/sys/dev/cxgb/common/cxgb_common.h projects/pnet/sys/dev/cxgb/common/cxgb_t3_hw.c projects/pnet/sys/dev/cxgb/cxgb_adapter.h projects/pnet/sys/dev/cxgb/cxgb_main.c projects/pnet/sys/dev/cxgb/cxgb_multiq.c projects/pnet/sys/dev/cxgb/cxgb_sge.c projects/pnet/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c projects/pnet/sys/dev/e1000/if_em.c projects/pnet/sys/dev/e1000/if_em.h projects/pnet/sys/dev/e1000/if_igb.c projects/pnet/sys/dev/ed/if_ed.c projects/pnet/sys/dev/ed/if_ed_pccard.c projects/pnet/sys/dev/ep/if_ep.c projects/pnet/sys/dev/fb/creator.c projects/pnet/sys/dev/flash/at45d.c projects/pnet/sys/dev/if_ndis/if_ndis.c projects/pnet/sys/dev/if_ndis/if_ndis_usb.c projects/pnet/sys/dev/if_ndis/if_ndisvar.h projects/pnet/sys/dev/iir/iir_ctrl.c projects/pnet/sys/dev/iir/iir_pci.c projects/pnet/sys/dev/ipw/if_ipw.c projects/pnet/sys/dev/ipw/if_ipwvar.h projects/pnet/sys/dev/isp/isp_freebsd.c projects/pnet/sys/dev/iwi/if_iwi.c projects/pnet/sys/dev/iwi/if_iwivar.h projects/pnet/sys/dev/iwn/if_iwn.c projects/pnet/sys/dev/iwn/if_iwnvar.h projects/pnet/sys/dev/ixgb/if_ixgb.c projects/pnet/sys/dev/lge/if_lge.c projects/pnet/sys/dev/lmc/if_lmc.c projects/pnet/sys/dev/malo/if_malo.c projects/pnet/sys/dev/malo/if_malo.h projects/pnet/sys/dev/malo/if_malo_pci.c projects/pnet/sys/dev/md/md.c projects/pnet/sys/dev/mfi/mfi.c projects/pnet/sys/dev/mfi/mfi_linux.c projects/pnet/sys/dev/mpt/mpt_raid.c projects/pnet/sys/dev/mpt/mpt_user.c projects/pnet/sys/dev/mxge/if_mxge.c projects/pnet/sys/dev/mxge/if_mxge_var.h projects/pnet/sys/dev/nge/if_nge.c projects/pnet/sys/dev/nge/if_ngereg.h projects/pnet/sys/dev/nve/if_nve.c projects/pnet/sys/dev/pccard/pccarddevs projects/pnet/sys/dev/ral/rt2560.c projects/pnet/sys/dev/ral/rt2560var.h projects/pnet/sys/dev/ral/rt2661.c projects/pnet/sys/dev/ral/rt2661var.h projects/pnet/sys/dev/rp/rp.c projects/pnet/sys/dev/rp/rp_pci.c projects/pnet/sys/dev/rp/rpreg.h projects/pnet/sys/dev/sk/if_sk.c projects/pnet/sys/dev/snp/snp.c projects/pnet/sys/dev/sound/midi/midi.c projects/pnet/sys/dev/sound/pci/emu10kx-midi.c projects/pnet/sys/dev/sound/pci/ich.c projects/pnet/sys/dev/sound/pci/via82c686.h projects/pnet/sys/dev/sound/sbus/cs4231.h projects/pnet/sys/dev/sound/usb/uaudio.c projects/pnet/sys/dev/sound/usb/uaudioreg.h projects/pnet/sys/dev/spibus/spibus.c projects/pnet/sys/dev/syscons/syscons.c projects/pnet/sys/dev/twa/tw_osl_freebsd.c projects/pnet/sys/dev/twe/twe_freebsd.c projects/pnet/sys/dev/ubsec/ubsec.c projects/pnet/sys/dev/ubsec/ubsecreg.h projects/pnet/sys/dev/usb/bluetooth/ng_ubt.c projects/pnet/sys/dev/usb/bluetooth/ubtbcmfw.c projects/pnet/sys/dev/usb/controller/at91dci.c projects/pnet/sys/dev/usb/controller/at91dci.h projects/pnet/sys/dev/usb/controller/atmegadci.c projects/pnet/sys/dev/usb/controller/atmegadci.h projects/pnet/sys/dev/usb/controller/ehci.c projects/pnet/sys/dev/usb/controller/ehci.h projects/pnet/sys/dev/usb/controller/musb_otg.c projects/pnet/sys/dev/usb/controller/musb_otg.h projects/pnet/sys/dev/usb/controller/ohci.c projects/pnet/sys/dev/usb/controller/ohci.h projects/pnet/sys/dev/usb/controller/uhci.c projects/pnet/sys/dev/usb/controller/uhci.h projects/pnet/sys/dev/usb/controller/usb_controller.c projects/pnet/sys/dev/usb/controller/uss820dci.c projects/pnet/sys/dev/usb/controller/uss820dci.h projects/pnet/sys/dev/usb/controller/uss820dci_atmelarm.c projects/pnet/sys/dev/usb/input/uhid.c projects/pnet/sys/dev/usb/input/ukbd.c projects/pnet/sys/dev/usb/input/ums.c projects/pnet/sys/dev/usb/misc/udbp.c projects/pnet/sys/dev/usb/misc/ufm.c projects/pnet/sys/dev/usb/net/if_aue.c projects/pnet/sys/dev/usb/net/if_axe.c projects/pnet/sys/dev/usb/net/if_cdce.c projects/pnet/sys/dev/usb/net/if_cue.c projects/pnet/sys/dev/usb/net/if_kue.c projects/pnet/sys/dev/usb/net/if_rue.c projects/pnet/sys/dev/usb/net/if_udav.c projects/pnet/sys/dev/usb/net/usb_ethernet.c projects/pnet/sys/dev/usb/net/usb_ethernet.h projects/pnet/sys/dev/usb/serial/u3g.c projects/pnet/sys/dev/usb/serial/uark.c projects/pnet/sys/dev/usb/serial/ubsa.c projects/pnet/sys/dev/usb/serial/ubser.c projects/pnet/sys/dev/usb/serial/uchcom.c projects/pnet/sys/dev/usb/serial/ucycom.c projects/pnet/sys/dev/usb/serial/ufoma.c projects/pnet/sys/dev/usb/serial/uftdi.c projects/pnet/sys/dev/usb/serial/ugensa.c projects/pnet/sys/dev/usb/serial/uipaq.c projects/pnet/sys/dev/usb/serial/ulpt.c projects/pnet/sys/dev/usb/serial/umct.c projects/pnet/sys/dev/usb/serial/umodem.c projects/pnet/sys/dev/usb/serial/umoscom.c projects/pnet/sys/dev/usb/serial/uplcom.c projects/pnet/sys/dev/usb/serial/usb_serial.c projects/pnet/sys/dev/usb/serial/uslcom.c projects/pnet/sys/dev/usb/serial/uvisor.c projects/pnet/sys/dev/usb/serial/uvscom.c projects/pnet/sys/dev/usb/storage/umass.c projects/pnet/sys/dev/usb/storage/urio.c projects/pnet/sys/dev/usb/storage/ustorage_fs.c projects/pnet/sys/dev/usb/template/usb_template.c projects/pnet/sys/dev/usb/usb_bus.h projects/pnet/sys/dev/usb/usb_busdma.c projects/pnet/sys/dev/usb/usb_compat_linux.c projects/pnet/sys/dev/usb/usb_compat_linux.h projects/pnet/sys/dev/usb/usb_controller.h projects/pnet/sys/dev/usb/usb_core.h projects/pnet/sys/dev/usb/usb_debug.c projects/pnet/sys/dev/usb/usb_debug.h projects/pnet/sys/dev/usb/usb_dev.c projects/pnet/sys/dev/usb/usb_device.c projects/pnet/sys/dev/usb/usb_device.h projects/pnet/sys/dev/usb/usb_dynamic.c projects/pnet/sys/dev/usb/usb_dynamic.h projects/pnet/sys/dev/usb/usb_generic.c projects/pnet/sys/dev/usb/usb_handle_request.c projects/pnet/sys/dev/usb/usb_hid.c projects/pnet/sys/dev/usb/usb_hub.c projects/pnet/sys/dev/usb/usb_hub.h projects/pnet/sys/dev/usb/usb_process.c projects/pnet/sys/dev/usb/usb_request.c projects/pnet/sys/dev/usb/usb_request.h projects/pnet/sys/dev/usb/usb_revision.h projects/pnet/sys/dev/usb/usb_transfer.c projects/pnet/sys/dev/usb/usb_transfer.h projects/pnet/sys/dev/usb/usbdevs projects/pnet/sys/dev/usb/wlan/if_rum.c projects/pnet/sys/dev/usb/wlan/if_rumvar.h projects/pnet/sys/dev/usb/wlan/if_uath.c projects/pnet/sys/dev/usb/wlan/if_uathvar.h projects/pnet/sys/dev/usb/wlan/if_ural.c projects/pnet/sys/dev/usb/wlan/if_uralvar.h projects/pnet/sys/dev/usb/wlan/if_zyd.c projects/pnet/sys/dev/usb/wlan/if_zydreg.h projects/pnet/sys/dev/vge/if_vge.c projects/pnet/sys/dev/wi/if_wi.c projects/pnet/sys/dev/wi/if_wireg.h projects/pnet/sys/dev/wi/if_wivar.h projects/pnet/sys/dev/wpi/if_wpi.c projects/pnet/sys/dev/wpi/if_wpivar.h projects/pnet/sys/dev/xen/console/console.c projects/pnet/sys/dev/xen/console/xencons_ring.c projects/pnet/sys/dev/xen/console/xencons_ring.h projects/pnet/sys/dev/xen/netfront/ (props changed) projects/pnet/sys/dev/xen/netfront/netfront.c projects/pnet/sys/dev/xen/xenpci/ (props changed) projects/pnet/sys/dev/xl/if_xl.c projects/pnet/sys/fs/cd9660/cd9660_vfsops.c projects/pnet/sys/fs/coda/coda_vfsops.c projects/pnet/sys/fs/devfs/devfs.h projects/pnet/sys/fs/devfs/devfs_vfsops.c projects/pnet/sys/fs/devfs/devfs_vnops.c projects/pnet/sys/fs/fdescfs/fdesc.h projects/pnet/sys/fs/fdescfs/fdesc_vfsops.c projects/pnet/sys/fs/fdescfs/fdesc_vnops.c projects/pnet/sys/fs/hpfs/hpfs_vfsops.c projects/pnet/sys/fs/msdosfs/msdosfs_vfsops.c projects/pnet/sys/fs/ntfs/ntfs_vfsops.c projects/pnet/sys/fs/nullfs/null_vfsops.c projects/pnet/sys/fs/nwfs/nwfs_vfsops.c projects/pnet/sys/fs/portalfs/portal_vfsops.c projects/pnet/sys/fs/pseudofs/pseudofs.c projects/pnet/sys/fs/pseudofs/pseudofs.h projects/pnet/sys/fs/smbfs/smbfs_io.c projects/pnet/sys/fs/smbfs/smbfs_vfsops.c projects/pnet/sys/fs/tmpfs/tmpfs.h projects/pnet/sys/fs/tmpfs/tmpfs_subr.c projects/pnet/sys/fs/tmpfs/tmpfs_vfsops.c projects/pnet/sys/fs/tmpfs/tmpfs_vnops.c projects/pnet/sys/fs/udf/udf_vfsops.c projects/pnet/sys/fs/unionfs/union_vfsops.c projects/pnet/sys/geom/concat/g_concat.c projects/pnet/sys/geom/journal/g_journal.c projects/pnet/sys/geom/vinum/geom_vinum.c projects/pnet/sys/geom/vinum/geom_vinum.h projects/pnet/sys/geom/vinum/geom_vinum_events.c projects/pnet/sys/geom/vinum/geom_vinum_plex.c projects/pnet/sys/geom/vinum/geom_vinum_raid5.c projects/pnet/sys/geom/vinum/geom_vinum_rm.c projects/pnet/sys/geom/vinum/geom_vinum_subr.c projects/pnet/sys/geom/vinum/geom_vinum_var.h projects/pnet/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/pnet/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/support/debug.h projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/pnet/sys/i386/acpica/acpi_machdep.c projects/pnet/sys/i386/bios/apm.c projects/pnet/sys/i386/bios/smapi.c projects/pnet/sys/i386/conf/DEFAULTS projects/pnet/sys/i386/conf/GENERIC projects/pnet/sys/i386/conf/GENERIC.hints projects/pnet/sys/i386/conf/NOTES projects/pnet/sys/i386/conf/PAE projects/pnet/sys/i386/conf/XBOX projects/pnet/sys/i386/conf/XEN projects/pnet/sys/i386/cpufreq/hwpstate.c projects/pnet/sys/i386/i386/busdma_machdep.c projects/pnet/sys/i386/i386/identcpu.c projects/pnet/sys/i386/i386/local_apic.c projects/pnet/sys/i386/i386/machdep.c projects/pnet/sys/i386/i386/mp_machdep.c projects/pnet/sys/i386/i386/pmap.c projects/pnet/sys/i386/i386/trap.c projects/pnet/sys/i386/ibcs2/ibcs2_ioctl.c projects/pnet/sys/i386/ibcs2/ibcs2_isc_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_isc_sysent.c projects/pnet/sys/i386/ibcs2/ibcs2_proto.h projects/pnet/sys/i386/ibcs2/ibcs2_socksys.c projects/pnet/sys/i386/ibcs2/ibcs2_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_sysent.c projects/pnet/sys/i386/ibcs2/ibcs2_xenix.h projects/pnet/sys/i386/ibcs2/ibcs2_xenix_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_xenix_sysent.c projects/pnet/sys/i386/ibcs2/syscalls.master projects/pnet/sys/i386/include/apicvar.h projects/pnet/sys/i386/include/clock.h projects/pnet/sys/i386/include/param.h projects/pnet/sys/i386/include/smp.h projects/pnet/sys/i386/include/specialreg.h projects/pnet/sys/i386/isa/clock.c projects/pnet/sys/i386/linux/linux.h projects/pnet/sys/i386/linux/linux_sysvec.c projects/pnet/sys/i386/pci/pci_cfgreg.c projects/pnet/sys/i386/xen/clock.c projects/pnet/sys/i386/xen/mp_machdep.c projects/pnet/sys/ia64/conf/DEFAULTS projects/pnet/sys/ia64/conf/NOTES projects/pnet/sys/ia64/ia64/elf_machdep.c projects/pnet/sys/ia64/ia64/machdep.c projects/pnet/sys/ia64/ia64/pmap.c projects/pnet/sys/ia64/include/md_var.h projects/pnet/sys/ia64/isa/isa.c projects/pnet/sys/isa/atrtc.c projects/pnet/sys/isa/rtc.h projects/pnet/sys/kern/init_main.c projects/pnet/sys/kern/init_sysent.c projects/pnet/sys/kern/kern_acct.c projects/pnet/sys/kern/kern_clock.c projects/pnet/sys/kern/kern_conf.c projects/pnet/sys/kern/kern_cpuset.c projects/pnet/sys/kern/kern_descrip.c projects/pnet/sys/kern/kern_exit.c projects/pnet/sys/kern/kern_fork.c projects/pnet/sys/kern/kern_jail.c projects/pnet/sys/kern/kern_linker.c projects/pnet/sys/kern/kern_lock.c projects/pnet/sys/kern/kern_malloc.c projects/pnet/sys/kern/kern_mib.c projects/pnet/sys/kern/kern_mutex.c projects/pnet/sys/kern/kern_osd.c projects/pnet/sys/kern/kern_poll.c projects/pnet/sys/kern/kern_prot.c projects/pnet/sys/kern/kern_rmlock.c projects/pnet/sys/kern/kern_sysctl.c projects/pnet/sys/kern/kern_vimage.c projects/pnet/sys/kern/sched_ule.c projects/pnet/sys/kern/subr_acl_posix1e.c projects/pnet/sys/kern/subr_bus.c projects/pnet/sys/kern/subr_kdb.c projects/pnet/sys/kern/subr_pcpu.c projects/pnet/sys/kern/subr_rman.c projects/pnet/sys/kern/subr_smp.c projects/pnet/sys/kern/subr_witness.c projects/pnet/sys/kern/sys_generic.c projects/pnet/sys/kern/sys_socket.c projects/pnet/sys/kern/syscalls.c projects/pnet/sys/kern/syscalls.master projects/pnet/sys/kern/systrace_args.c projects/pnet/sys/kern/tty.c projects/pnet/sys/kern/tty_info.c projects/pnet/sys/kern/tty_inq.c projects/pnet/sys/kern/tty_pts.c projects/pnet/sys/kern/tty_ttydisc.c projects/pnet/sys/kern/uipc_mqueue.c projects/pnet/sys/kern/uipc_socket.c projects/pnet/sys/kern/uipc_syscalls.c projects/pnet/sys/kern/uipc_usrreq.c projects/pnet/sys/kern/vfs_acl.c projects/pnet/sys/kern/vfs_bio.c projects/pnet/sys/kern/vfs_default.c projects/pnet/sys/kern/vfs_export.c projects/pnet/sys/kern/vfs_extattr.c projects/pnet/sys/kern/vfs_lookup.c projects/pnet/sys/kern/vfs_mount.c projects/pnet/sys/kern/vfs_subr.c projects/pnet/sys/kern/vfs_syscalls.c projects/pnet/sys/kern/vfs_vnops.c projects/pnet/sys/mips/conf/ADM5120 projects/pnet/sys/mips/conf/IDT projects/pnet/sys/mips/conf/MALTA projects/pnet/sys/mips/conf/QEMU projects/pnet/sys/mips/conf/SENTRY5 projects/pnet/sys/mips/include/pmap.h projects/pnet/sys/mips/mips/machdep.c projects/pnet/sys/mips/mips/pm_machdep.c projects/pnet/sys/mips/mips/pmap.c projects/pnet/sys/modules/Makefile projects/pnet/sys/modules/linux/Makefile projects/pnet/sys/modules/nfsclient/Makefile projects/pnet/sys/modules/opensolaris/Makefile projects/pnet/sys/modules/sound/sound/Makefile projects/pnet/sys/modules/svr4/Makefile projects/pnet/sys/modules/usb/Makefile projects/pnet/sys/modules/wlan/Makefile projects/pnet/sys/modules/xfs/Makefile projects/pnet/sys/modules/zfs/Makefile projects/pnet/sys/net/bpf.c projects/pnet/sys/net/bridgestp.c projects/pnet/sys/net/flowtable.c projects/pnet/sys/net/ieee8023ad_lacp.c projects/pnet/sys/net/if.c projects/pnet/sys/net/if.h projects/pnet/sys/net/if_arcsubr.c projects/pnet/sys/net/if_bridge.c projects/pnet/sys/net/if_clone.c projects/pnet/sys/net/if_ef.c projects/pnet/sys/net/if_ethersubr.c projects/pnet/sys/net/if_gif.c projects/pnet/sys/net/if_gif.h projects/pnet/sys/net/if_lagg.c projects/pnet/sys/net/if_llatbl.c projects/pnet/sys/net/if_llatbl.h projects/pnet/sys/net/if_loop.c projects/pnet/sys/net/if_mib.c projects/pnet/sys/net/if_var.h projects/pnet/sys/net/netisr.c projects/pnet/sys/net/netisr.h projects/pnet/sys/net/route.c projects/pnet/sys/net/rtsock.c projects/pnet/sys/net/vnet.h projects/pnet/sys/net80211/ieee80211.c projects/pnet/sys/net80211/ieee80211.h projects/pnet/sys/net80211/ieee80211_adhoc.c projects/pnet/sys/net80211/ieee80211_ddb.c projects/pnet/sys/net80211/ieee80211_freebsd.c projects/pnet/sys/net80211/ieee80211_freebsd.h projects/pnet/sys/net80211/ieee80211_hostap.c projects/pnet/sys/net80211/ieee80211_ht.c projects/pnet/sys/net80211/ieee80211_ht.h projects/pnet/sys/net80211/ieee80211_input.c projects/pnet/sys/net80211/ieee80211_ioctl.c projects/pnet/sys/net80211/ieee80211_monitor.c projects/pnet/sys/net80211/ieee80211_node.c projects/pnet/sys/net80211/ieee80211_node.h projects/pnet/sys/net80211/ieee80211_output.c projects/pnet/sys/net80211/ieee80211_proto.c projects/pnet/sys/net80211/ieee80211_proto.h projects/pnet/sys/net80211/ieee80211_scan.c projects/pnet/sys/net80211/ieee80211_scan.h projects/pnet/sys/net80211/ieee80211_scan_sta.c projects/pnet/sys/net80211/ieee80211_sta.c projects/pnet/sys/net80211/ieee80211_superg.c projects/pnet/sys/net80211/ieee80211_superg.h projects/pnet/sys/net80211/ieee80211_tdma.c projects/pnet/sys/net80211/ieee80211_tdma.h projects/pnet/sys/net80211/ieee80211_var.h projects/pnet/sys/net80211/ieee80211_wds.c projects/pnet/sys/netgraph/netflow/ng_netflow.c projects/pnet/sys/netgraph/netgraph.h projects/pnet/sys/netgraph/ng_base.c projects/pnet/sys/netgraph/ng_eiface.c projects/pnet/sys/netgraph/ng_ether.c projects/pnet/sys/netgraph/ng_iface.c projects/pnet/sys/netinet/icmp6.h projects/pnet/sys/netinet/if_ether.c projects/pnet/sys/netinet/igmp.c projects/pnet/sys/netinet/in.c projects/pnet/sys/netinet/in_mcast.c projects/pnet/sys/netinet/in_pcb.c projects/pnet/sys/netinet/in_pcb.h projects/pnet/sys/netinet/in_rmx.c projects/pnet/sys/netinet/in_var.h projects/pnet/sys/netinet/ip_carp.c projects/pnet/sys/netinet/ip_divert.c projects/pnet/sys/netinet/ip_fw.h projects/pnet/sys/netinet/ip_fw2.c projects/pnet/sys/netinet/ip_fw_pfil.c projects/pnet/sys/netinet/ip_input.c projects/pnet/sys/netinet/ip_ipsec.c projects/pnet/sys/netinet/ip_mroute.c projects/pnet/sys/netinet/ip_output.c projects/pnet/sys/netinet/raw_ip.c projects/pnet/sys/netinet/sctp_crc32.c projects/pnet/sys/netinet/sctp_os_bsd.h projects/pnet/sys/netinet/sctp_uio.h projects/pnet/sys/netinet/tcp_hostcache.c projects/pnet/sys/netinet/tcp_subr.c projects/pnet/sys/netinet/tcp_syncache.c projects/pnet/sys/netinet/tcp_syncache.h projects/pnet/sys/netinet/tcp_timewait.c projects/pnet/sys/netinet/tcp_var.h projects/pnet/sys/netinet/udp_usrreq.c projects/pnet/sys/netinet/vinet.h projects/pnet/sys/netinet6/icmp6.c projects/pnet/sys/netinet6/in6.c projects/pnet/sys/netinet6/in6.h projects/pnet/sys/netinet6/in6_ifattach.c projects/pnet/sys/netinet6/in6_pcb.c projects/pnet/sys/netinet6/in6_proto.c projects/pnet/sys/netinet6/in6_rmx.c projects/pnet/sys/netinet6/in6_var.h projects/pnet/sys/netinet6/ip6_input.c projects/pnet/sys/netinet6/ip6_mroute.c projects/pnet/sys/netinet6/ip6_output.c projects/pnet/sys/netinet6/ip6_var.h projects/pnet/sys/netinet6/mld6.c projects/pnet/sys/netinet6/mld6_var.h projects/pnet/sys/netinet6/nd6.c projects/pnet/sys/netinet6/nd6_nbr.c projects/pnet/sys/netinet6/nd6_rtr.c projects/pnet/sys/netinet6/raw_ip6.c projects/pnet/sys/netinet6/route6.c projects/pnet/sys/netinet6/udp6_usrreq.c projects/pnet/sys/netinet6/vinet6.h projects/pnet/sys/netipsec/ipsec.c projects/pnet/sys/netipsec/key.c projects/pnet/sys/netipsec/key.h projects/pnet/sys/netipsec/vipsec.h projects/pnet/sys/netipsec/xform_tcp.c projects/pnet/sys/netipx/spx_usrreq.c projects/pnet/sys/netnatm/natm.c projects/pnet/sys/nfs/nfs_common.c projects/pnet/sys/nfsclient/bootp_subr.c projects/pnet/sys/nfsclient/krpc_subr.c projects/pnet/sys/nfsclient/nfs.h projects/pnet/sys/nfsclient/nfs_bio.c projects/pnet/sys/nfsclient/nfs_diskless.c projects/pnet/sys/nfsclient/nfs_kdtrace.c projects/pnet/sys/nfsclient/nfs_krpc.c projects/pnet/sys/nfsclient/nfs_lock.c projects/pnet/sys/nfsclient/nfs_nfsiod.c projects/pnet/sys/nfsclient/nfs_node.c projects/pnet/sys/nfsclient/nfs_socket.c projects/pnet/sys/nfsclient/nfs_subs.c projects/pnet/sys/nfsclient/nfs_vfsops.c projects/pnet/sys/nfsclient/nfs_vnops.c projects/pnet/sys/nfsclient/nfsm_subs.h projects/pnet/sys/nfsclient/nfsmount.h projects/pnet/sys/nfsclient/nfsnode.h projects/pnet/sys/nfsserver/nfs_serv.c projects/pnet/sys/nfsserver/nfs_srvsubs.c projects/pnet/sys/nlm/nlm.h projects/pnet/sys/nlm/nlm_advlock.c projects/pnet/sys/nlm/nlm_prot_impl.c projects/pnet/sys/pc98/cbus/clock.c projects/pnet/sys/pc98/conf/DEFAULTS projects/pnet/sys/pc98/conf/GENERIC projects/pnet/sys/pc98/conf/NOTES projects/pnet/sys/pc98/pc98/machdep.c projects/pnet/sys/powerpc/aim/clock.c projects/pnet/sys/powerpc/aim/machdep.c projects/pnet/sys/powerpc/aim/mmu_oea.c projects/pnet/sys/powerpc/aim/mmu_oea64.c projects/pnet/sys/powerpc/aim/mp_cpudep.c projects/pnet/sys/powerpc/aim/ofw_machdep.c projects/pnet/sys/powerpc/aim/vm_machdep.c projects/pnet/sys/powerpc/booke/clock.c projects/pnet/sys/powerpc/booke/locore.S projects/pnet/sys/powerpc/booke/machdep.c projects/pnet/sys/powerpc/booke/pmap.c projects/pnet/sys/powerpc/booke/trap_subr.S projects/pnet/sys/powerpc/booke/vm_machdep.c projects/pnet/sys/powerpc/conf/GENERIC projects/pnet/sys/powerpc/conf/MPC85XX projects/pnet/sys/powerpc/conf/NOTES projects/pnet/sys/powerpc/include/cpufunc.h projects/pnet/sys/powerpc/include/intr_machdep.h projects/pnet/sys/powerpc/include/md_var.h projects/pnet/sys/powerpc/include/mutex.h projects/pnet/sys/powerpc/include/ofw_machdep.h projects/pnet/sys/powerpc/include/pcpu.h projects/pnet/sys/powerpc/include/pmap.h projects/pnet/sys/powerpc/include/pte.h projects/pnet/sys/powerpc/include/smp.h projects/pnet/sys/powerpc/include/spr.h projects/pnet/sys/powerpc/mpc85xx/ocpbus.c projects/pnet/sys/powerpc/mpc85xx/ocpbus.h projects/pnet/sys/powerpc/mpc85xx/pci_ocp.c projects/pnet/sys/powerpc/powerpc/autoconf.c projects/pnet/sys/powerpc/powerpc/bus_machdep.c projects/pnet/sys/powerpc/powerpc/busdma_machdep.c projects/pnet/sys/powerpc/powerpc/genassym.c projects/pnet/sys/powerpc/powerpc/intr_machdep.c projects/pnet/sys/powerpc/powerpc/mp_machdep.c projects/pnet/sys/powerpc/powerpc/openpic.c projects/pnet/sys/powerpc/powerpc/pmap_dispatch.c projects/pnet/sys/security/audit/audit_worker.c projects/pnet/sys/security/mac/mac_atalk.c projects/pnet/sys/security/mac/mac_audit.c projects/pnet/sys/security/mac/mac_cred.c projects/pnet/sys/security/mac/mac_inet.c projects/pnet/sys/security/mac/mac_inet6.c projects/pnet/sys/security/mac/mac_internal.h projects/pnet/sys/security/mac/mac_net.c projects/pnet/sys/security/mac/mac_pipe.c projects/pnet/sys/security/mac/mac_posix_sem.c projects/pnet/sys/security/mac/mac_posix_shm.c projects/pnet/sys/security/mac/mac_priv.c projects/pnet/sys/security/mac/mac_process.c projects/pnet/sys/security/mac/mac_socket.c projects/pnet/sys/security/mac/mac_system.c projects/pnet/sys/security/mac/mac_sysv_msg.c projects/pnet/sys/security/mac/mac_sysv_sem.c projects/pnet/sys/security/mac/mac_sysv_shm.c projects/pnet/sys/security/mac/mac_vfs.c projects/pnet/sys/sparc64/conf/GENERIC projects/pnet/sys/sparc64/sparc64/machdep.c projects/pnet/sys/sparc64/sparc64/vm_machdep.c projects/pnet/sys/sun4v/sun4v/machdep.c projects/pnet/sys/sys/_null.h projects/pnet/sys/sys/acl.h projects/pnet/sys/sys/buf.h projects/pnet/sys/sys/buf_ring.h projects/pnet/sys/sys/eventhandler.h projects/pnet/sys/sys/filedesc.h projects/pnet/sys/sys/interrupt.h projects/pnet/sys/sys/ioctl.h projects/pnet/sys/sys/ioctl_compat.h projects/pnet/sys/sys/jail.h projects/pnet/sys/sys/kernel.h projects/pnet/sys/sys/ktr.h projects/pnet/sys/sys/mbuf.h projects/pnet/sys/sys/mount.h projects/pnet/sys/sys/osd.h projects/pnet/sys/sys/param.h projects/pnet/sys/sys/priv.h projects/pnet/sys/sys/proc.h projects/pnet/sys/sys/queue.h projects/pnet/sys/sys/smp.h projects/pnet/sys/sys/socketvar.h projects/pnet/sys/sys/syscall.h projects/pnet/sys/sys/syscall.mk projects/pnet/sys/sys/syscallsubr.h projects/pnet/sys/sys/sysctl.h projects/pnet/sys/sys/sysproto.h projects/pnet/sys/sys/systm.h projects/pnet/sys/sys/termios.h projects/pnet/sys/sys/ucred.h projects/pnet/sys/sys/vimage.h projects/pnet/sys/ufs/ffs/ffs_alloc.c projects/pnet/sys/ufs/ffs/ffs_vfsops.c projects/pnet/sys/ufs/ufs/dinode.h projects/pnet/sys/ufs/ufs/extattr.h projects/pnet/sys/ufs/ufs/inode.h projects/pnet/sys/ufs/ufs/ufs_acl.c projects/pnet/sys/ufs/ufs/ufs_extattr.c projects/pnet/sys/ufs/ufs/ufs_extern.h projects/pnet/sys/ufs/ufs/ufs_vfsops.c projects/pnet/sys/ufs/ufs/ufs_vnops.c projects/pnet/sys/vm/swap_pager.c projects/pnet/sys/vm/vm_fault.c projects/pnet/sys/vm/vm_object.c projects/pnet/sys/vm/vm_page.c projects/pnet/sys/vm/vm_page.h projects/pnet/sys/vm/vm_pageout.c projects/pnet/sys/vm/vnode_pager.c Modified: projects/pnet/sys/Makefile ============================================================================== --- projects/pnet/sys/Makefile Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/Makefile Sat May 23 13:44:37 2009 (r192637) @@ -11,7 +11,7 @@ SUBDIR= boot CSCOPEDIRS= boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \ geom gnu isa kern libkern modules net net80211 netatalk \ netgraph netinet netinet6 netipsec netipx netnatm netncp \ - netsmb nfs nfs4client nfsclient nfsserver nlm opencrypto \ + netsmb nfs nfsclient nfsserver nlm opencrypto \ pci rpc security sys ufs vm xdr ${CSCOPE_ARCHDIR} .if defined(ALL_ARCH) CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v Modified: projects/pnet/sys/amd64/amd64/busdma_machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/busdma_machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/busdma_machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -95,7 +95,6 @@ struct bounce_zone { int total_deferred; int map_count; bus_size_t alignment; - bus_size_t boundary; bus_addr_t lowaddr; char zoneid[8]; char lowaddrid[20]; @@ -978,7 +977,6 @@ alloc_bounce_zone(bus_dma_tag_t dmat) /* Check to see if we already have a suitable zone */ STAILQ_FOREACH(bz, &bounce_zone_list, links) { if ((dmat->alignment <= bz->alignment) - && (dmat->boundary <= bz->boundary) && (dmat->lowaddr >= bz->lowaddr)) { dmat->bounce_zone = bz; return (0); @@ -994,8 +992,7 @@ alloc_bounce_zone(bus_dma_tag_t dmat) bz->reserved_bpages = 0; bz->active_bpages = 0; bz->lowaddr = dmat->lowaddr; - bz->alignment = dmat->alignment; - bz->boundary = dmat->boundary; + bz->alignment = MAX(dmat->alignment, PAGE_SIZE); bz->map_count = 0; snprintf(bz->zoneid, 8, "zone%d", busdma_zonecount); busdma_zonecount++; @@ -1042,9 +1039,6 @@ alloc_bounce_zone(bus_dma_tag_t dmat) SYSCTL_ADD_INT(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, "alignment", CTLFLAG_RD, &bz->alignment, 0, ""); - SYSCTL_ADD_INT(busdma_sysctl_tree(bz), - SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, - "boundary", CTLFLAG_RD, &bz->boundary, 0, ""); return (0); } @@ -1069,7 +1063,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u M_NOWAIT, 0ul, bz->lowaddr, PAGE_SIZE, - bz->boundary); + 0); if (bpage->vaddr == 0) { free(bpage, M_DEVBUF); break; Modified: projects/pnet/sys/amd64/amd64/identcpu.c ============================================================================== --- projects/pnet/sys/amd64/amd64/identcpu.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/identcpu.c Sat May 23 13:44:37 2009 (r192637) @@ -106,9 +106,6 @@ static struct { { CENTAUR_VENDOR_ID, CPU_VENDOR_CENTAUR }, /* CentaurHauls */ }; -int cpu_cores; -int cpu_logical; - extern int pq_l2size; extern int pq_l2nways; @@ -195,7 +192,6 @@ printcpuinfo(void) cpu_vendor_id == CPU_VENDOR_CENTAUR) { printf(" Stepping = %u", cpu_id & 0xf); if (cpu_high > 0) { - u_int cmp = 1, htt = 1; /* * Here we should probably set up flags indicating @@ -400,28 +396,6 @@ printcpuinfo(void) if (tsc_is_invariant) printf("\n TSC: P-state invariant"); - /* - * If this CPU supports HTT or CMP then mention the - * number of physical/logical cores it contains. - */ - if (cpu_feature & CPUID_HTT) - htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16; - if (cpu_vendor_id == CPU_VENDOR_AMD && - (amd_feature2 & AMDID2_CMP)) - cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; - else if (cpu_vendor_id == CPU_VENDOR_INTEL && - (cpu_high >= 4)) { - cpuid_count(4, 0, regs); - if ((regs[0] & 0x1f) != 0) - cmp = ((regs[0] >> 26) & 0x3f) + 1; - } - cpu_cores = cmp; - cpu_logical = htt / cmp; - if (cmp > 1) - printf("\n Cores per package: %d", cmp); - if ((htt / cmp) > 1) - printf("\n Logical CPUs per core: %d", - cpu_logical); } } /* Avoid ugly blank lines: only print newline when we have to. */ @@ -498,6 +472,22 @@ identify_cpu(void) cpu_feature = regs[3]; cpu_feature2 = regs[2]; + /* + * Clear "Limit CPUID Maxval" bit and get the largest standard CPUID + * function number again if it is set from BIOS. It is necessary + * for probing correct CPU topology later. + * XXX This is only done on the BSP package. + */ + if (cpu_vendor_id == CPU_VENDOR_INTEL && cpu_high > 0 && cpu_high < 4) { + uint64_t msr; + msr = rdmsr(MSR_IA32_MISC_ENABLE); + if ((msr & 0x400000ULL) != 0) { + wrmsr(MSR_IA32_MISC_ENABLE, msr & ~0x400000ULL); + do_cpuid(0, regs); + cpu_high = regs[0]; + } + } + if (cpu_vendor_id == CPU_VENDOR_INTEL || cpu_vendor_id == CPU_VENDOR_AMD || cpu_vendor_id == CPU_VENDOR_CENTAUR) { Modified: projects/pnet/sys/amd64/amd64/local_apic.c ============================================================================== --- projects/pnet/sys/amd64/amd64/local_apic.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/local_apic.c Sat May 23 13:44:37 2009 (r192637) @@ -112,7 +112,7 @@ struct lapic { u_long la_stat_ticks; u_long la_prof_ticks; /* Include IDT_SYSCALL to make indexing easier. */ - u_int la_ioint_irqs[APIC_NUM_IOINTS + 1]; + int la_ioint_irqs[APIC_NUM_IOINTS + 1]; } static lapics[MAX_APIC_ID + 1]; /* XXX: should thermal be an NMI? */ @@ -254,6 +254,8 @@ lapic_create(u_int apic_id, int boot_cpu lapics[apic_id].la_lvts[i] = lvts[i]; lapics[apic_id].la_lvts[i].lvt_active = 0; } + for (i = 0; i <= APIC_NUM_IOINTS; i++) + lapics[apic_id].la_ioint_irqs[i] = -1; lapics[apic_id].la_ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; lapics[apic_id].la_ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = IRQ_TIMER; @@ -317,7 +319,7 @@ lapic_setup(int boot) } /* We don't setup the timer during boot on the BSP until later. */ - if (!(boot && PCPU_GET(cpuid) == 0)) { + if (!(boot && PCPU_GET(cpuid) == 0) && lapic_timer_hz != 0) { KASSERT(lapic_timer_period != 0, ("lapic%u: zero divisor", lapic_id())); lapic_timer_set_divisor(lapic_timer_divisor); @@ -363,11 +365,15 @@ int lapic_setup_clock(void) { u_long value; + int i; /* Can't drive the timer without a local APIC. */ if (lapic == NULL) return (0); + if (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0) + return (0); + /* Start off with a divisor of 2 (power on reset default). */ lapic_timer_divisor = 2; @@ -807,7 +813,7 @@ apic_alloc_vector(u_int apic_id, u_int i */ mtx_lock_spin(&icu_lock); for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { - if (lapics[apic_id].la_ioint_irqs[vector] != 0) + if (lapics[apic_id].la_ioint_irqs[vector] != -1) continue; lapics[apic_id].la_ioint_irqs[vector] = irq; mtx_unlock_spin(&icu_lock); @@ -847,7 +853,7 @@ apic_alloc_vectors(u_int apic_id, u_int for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { /* Vector is in use, end run. */ - if (lapics[apic_id].la_ioint_irqs[vector] != 0) { + if (lapics[apic_id].la_ioint_irqs[vector] != -1) { run = 0; first = 0; continue; @@ -932,7 +938,7 @@ apic_free_vector(u_int apic_id, u_int ve sched_bind(td, apic_cpuid(apic_id)); thread_unlock(td); mtx_lock_spin(&icu_lock); - lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = 0; + lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = -1; mtx_unlock_spin(&icu_lock); thread_lock(td); sched_unbind(td); @@ -944,11 +950,15 @@ apic_free_vector(u_int apic_id, u_int ve u_int apic_idt_to_irq(u_int apic_id, u_int vector) { + int irq; KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); - return (lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]); + irq = lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]; + if (irq < 0) + irq = 0; + return (irq); } #ifdef DDB @@ -974,7 +984,7 @@ DB_SHOW_COMMAND(apic, db_show_apic) db_printf("Interrupts bound to lapic %u\n", apic_id); for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { irq = lapics[apic_id].la_ioint_irqs[i]; - if (irq == 0 || irq == IRQ_SYSCALL) + if (irq == -1 || irq == IRQ_SYSCALL) continue; db_printf("vec 0x%2x -> ", i + APIC_IO_INTS); if (irq == IRQ_TIMER) Modified: projects/pnet/sys/amd64/amd64/machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -109,6 +109,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -274,6 +275,7 @@ cpu_startup(dummy) vm_pager_bufferinit(); cpu_setregs(); + mca_init(); } /* @@ -504,6 +506,16 @@ cpu_boot(int howto) { } +/* + * Flush the D-cache for non-DMA I/O so that the I-cache can + * be made coherent later. + */ +void +cpu_flush_dcache(void *ptr, size_t len) +{ + /* Not applicable */ +} + /* Get current clock frequency for the given cpu id. */ int cpu_est_clockrate(int cpu_id, uint64_t *rate) Copied: projects/pnet/sys/amd64/amd64/mca.c (from r192635, head/sys/amd64/amd64/mca.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pnet/sys/amd64/amd64/mca.c Sat May 23 13:44:37 2009 (r192637, copy of r192635, head/sys/amd64/amd64/mca.c) @@ -0,0 +1,529 @@ +/*- + * Copyright (c) 2009 Advanced Computing Technologies LLC + * Written by: John H. Baldwin + * 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. + */ + +/* + * Support for x86 machine check architecture. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct mca_internal { + struct mca_record rec; + int logged; + STAILQ_ENTRY(mca_internal) link; +}; + +static MALLOC_DEFINE(M_MCA, "MCA", "Machine Check Architecture"); + +static int mca_count; /* Number of records stored. */ + +SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RD, NULL, "Machine Check Architecture"); + +static int mca_enabled = 0; +TUNABLE_INT("hw.mca.enabled", &mca_enabled); +SYSCTL_INT(_hw_mca, OID_AUTO, enabled, CTLFLAG_RDTUN, &mca_enabled, 0, + "Administrative toggle for machine check support"); + +static STAILQ_HEAD(, mca_internal) mca_records; +static struct callout mca_timer; +static int mca_ticks = 3600; /* Check hourly by default. */ +static struct task mca_task; +static struct mtx mca_lock; + +static int +sysctl_mca_ticks(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = mca_ticks; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error || req->newptr == NULL) + return (error); + if (value <= 0) + return (EINVAL); + mca_ticks = value; + return (0); +} + +static int +sysctl_mca_records(SYSCTL_HANDLER_ARGS) +{ + int *name = (int *)arg1; + u_int namelen = arg2; + struct mca_record record; + struct mca_internal *rec; + int i; + + if (namelen != 1) + return (EINVAL); + + if (name[0] < 0 || name[0] >= mca_count) + return (EINVAL); + + mtx_lock_spin(&mca_lock); + if (name[0] >= mca_count) { + mtx_unlock_spin(&mca_lock); + return (EINVAL); + } + i = 0; + STAILQ_FOREACH(rec, &mca_records, link) { + if (i == name[0]) { + record = rec->rec; + break; + } + i++; + } + mtx_unlock_spin(&mca_lock); + return (SYSCTL_OUT(req, &record, sizeof(record))); +} + +static struct mca_record * +mca_record_entry(int bank) +{ + struct mca_internal *rec; + uint64_t status; + u_int p[4]; + + status = rdmsr(MSR_MC_STATUS(bank)); + if (!(status & MC_STATUS_VAL)) + return (NULL); + + rec = malloc(sizeof(*rec), M_MCA, M_NOWAIT | M_ZERO); + if (rec == NULL) { + printf("MCA: Unable to allocate space for an event.\n"); + return (NULL); + } + + /* Save exception information. */ + rec->rec.mr_status = status; + if (status & MC_STATUS_ADDRV) + rec->rec.mr_addr = rdmsr(MSR_MC_ADDR(bank)); + if (status & MC_STATUS_MISCV) + rec->rec.mr_misc = rdmsr(MSR_MC_MISC(bank)); + rec->rec.mr_tsc = rdtsc(); + rec->rec.mr_apic_id = PCPU_GET(apic_id); + + /* + * Clear machine check. Don't do this for uncorrectable + * errors so that the BIOS can see them. + */ + if (!(rec->rec.mr_status & (MC_STATUS_PCC | MC_STATUS_UC))) { + wrmsr(MSR_MC_STATUS(bank), 0); + do_cpuid(0, p); + } + + mtx_lock_spin(&mca_lock); + STAILQ_INSERT_TAIL(&mca_records, rec, link); + mca_count++; + mtx_unlock_spin(&mca_lock); + return (&rec->rec); +} + +static const char * +mca_error_ttype(uint16_t mca_error) +{ + + switch ((mca_error & 0x000c) >> 2) { + case 0: + return ("I"); + case 1: + return ("D"); + case 2: + return ("G"); + } + return ("?"); +} + +static const char * +mca_error_level(uint16_t mca_error) +{ + + switch (mca_error & 0x0003) { + case 0: + return ("L0"); + case 1: + return ("L1"); + case 2: + return ("L2"); + case 3: + return ("LG"); + } + return ("L?"); +} + +static const char * +mca_error_request(uint16_t mca_error) +{ + + switch ((mca_error & 0x00f0) >> 4) { + case 0x0: + return ("ERR"); + case 0x1: + return ("RD"); + case 0x2: + return ("WR"); + case 0x3: + return ("DRD"); + case 0x4: + return ("DWR"); + case 0x5: + return ("IRD"); + case 0x6: + return ("PREFETCH"); + case 0x7: + return ("EVICT"); + case 0x8: + return ("SNOOP"); + } + return ("???"); +} + +/* Dump details about a single machine check. */ +static void +mca_log(struct mca_record *rec) +{ + uint16_t mca_error; + + printf("MCA: CPU %d ", rec->mr_apic_id); + if (rec->mr_status & MC_STATUS_UC) + printf("UNCOR "); + else + printf("COR "); + if (rec->mr_status & MC_STATUS_PCC) + printf("PCC "); + if (rec->mr_status & MC_STATUS_OVER) + printf("OVER "); + mca_error = rec->mr_status & MC_STATUS_MCA_ERROR; + switch (mca_error) { + /* Simple error codes. */ + case 0x0000: + printf("no error"); + break; + case 0x0001: + printf("unclassified error"); + break; + case 0x0002: + printf("ucode ROM parity error"); + break; + case 0x0003: + printf("external error"); + break; + case 0x0004: + printf("FRC error"); + break; + case 0x0400: + printf("internal timer error"); + break; + default: + if ((mca_error & 0xfc00) == 0x0400) { + printf("internal error %x", mca_error & 0x03ff); + break; + } + + /* Compound error codes. */ + + /* Memory hierarchy error. */ + if ((mca_error & 0xeffc) == 0x000c) { + printf("%s memory error", mca_error_level(mca_error)); + break; + } + + /* TLB error. */ + if ((mca_error & 0xeff0) == 0x0010) { + printf("%sTLB %s error", mca_error_ttype(mca_error), + mca_error_level(mca_error)); + break; + } + + /* Cache error. */ + if ((mca_error & 0xef00) == 0x0100) { + printf("%sCACHE %s %s error", + mca_error_ttype(mca_error), + mca_error_level(mca_error), + mca_error_request(mca_error)); + break; + } + + /* Bus and/or Interconnect error. */ + if ((mca_error & 0xe800) == 0x0800) { + printf("BUS%s ", mca_error_level(mca_error)); + switch ((mca_error & 0x0600) >> 9) { + case 0: + printf("Source"); + break; + case 1: + printf("Responder"); + break; + case 2: + printf("Observer"); + break; + default: + printf("???"); + break; + } + printf(" %s ", mca_error_request(mca_error)); + switch ((mca_error & 0x000c) >> 2) { + case 0: + printf("Memory"); + break; + case 2: + printf("I/O"); + break; + case 3: + printf("Other"); + break; + default: + printf("???"); + break; + } + if (mca_error & 0x0100) + printf(" timed out"); + break; + } + + printf("unknown error %x", mca_error); + break; + } + printf("\n"); + if (rec->mr_status & MC_STATUS_ADDRV) + printf("MCA: Address 0x%llx\n", (long long)rec->mr_addr); +} + +/* + * This scans all the machine check banks of the current CPU to see if + * there are any machine checks. Any non-recoverable errors are + * reported immediately via mca_log(). The current thread must be + * pinned when this is called. The 'mcip' parameter indicates if we + * are being called from the MC exception handler. In that case this + * function returns true if the system is restartable. Otherwise, it + * returns a count of the number of valid MC records found. + */ +static int +mca_scan(int mcip) +{ + struct mca_record *rec; + uint64_t mcg_cap, ucmask; + int count, i, recoverable; + + count = 0; + recoverable = 1; + ucmask = MC_STATUS_UC | MC_STATUS_PCC; + + /* When handling a MCE#, treat the OVER flag as non-restartable. */ + if (mcip) + ucmask |= MC_STATUS_OVER; + mcg_cap = rdmsr(MSR_MCG_CAP); + for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) { + rec = mca_record_entry(i); + if (rec != NULL) { + count++; + if (rec->mr_status & ucmask) { + recoverable = 0; + mca_log(rec); + } + } + } + return (mcip ? recoverable : count); +} + +/* + * Scan the machine check banks on all CPUs by binding to each CPU in + * turn. If any of the CPUs contained new machine check records, log + * them to the console. + */ +static void +mca_scan_cpus(void *context, int pending) +{ + struct mca_internal *mca; + struct thread *td; + int count, cpu; + + td = curthread; + count = 0; + thread_lock(td); + for (cpu = 0; cpu <= mp_maxid; cpu++) { + if (CPU_ABSENT(cpu)) + continue; + sched_bind(td, cpu); + thread_unlock(td); + count += mca_scan(0); + thread_lock(td); + sched_unbind(td); + } + thread_unlock(td); + if (count != 0) { + mtx_lock_spin(&mca_lock); + STAILQ_FOREACH(mca, &mca_records, link) { + if (!mca->logged) { + mca->logged = 1; + mtx_unlock_spin(&mca_lock); + mca_log(&mca->rec); + mtx_lock_spin(&mca_lock); + } + } + mtx_unlock_spin(&mca_lock); + } +} + +static void +mca_periodic_scan(void *arg) +{ + + taskqueue_enqueue(taskqueue_thread, &mca_task); + callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, NULL); +} + +static int +sysctl_mca_scan(SYSCTL_HANDLER_ARGS) +{ + int error, i; + + i = 0; + error = sysctl_handle_int(oidp, &i, 0, req); + if (error) + return (error); + if (i) + taskqueue_enqueue(taskqueue_thread, &mca_task); + return (0); +} + +static void +mca_startup(void *dummy) +{ + + if (!mca_enabled || !(cpu_feature & CPUID_MCA)) + return; + + callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, + NULL); +} +SYSINIT(mca_startup, SI_SUB_SMP, SI_ORDER_ANY, mca_startup, NULL); + +static void +mca_setup(void) +{ + + mtx_init(&mca_lock, "mca", NULL, MTX_SPIN); + STAILQ_INIT(&mca_records); + TASK_INIT(&mca_task, 0x8000, mca_scan_cpus, NULL); + callout_init(&mca_timer, CALLOUT_MPSAFE); + SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "count", CTLFLAG_RD, &mca_count, 0, "Record count"); + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "interval", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &mca_ticks, + 0, sysctl_mca_ticks, "I", + "Periodic interval in seconds to scan for machine checks"); + SYSCTL_ADD_NODE(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "records", CTLFLAG_RD, sysctl_mca_records, "Machine check records"); + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "force_scan", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, + sysctl_mca_scan, "I", "Force an immediate scan for machine checks"); +} + +/* Must be executed on each CPU. */ +void +mca_init(void) +{ + uint64_t mcg_cap; + int i; + + /* MCE is required. */ + if (!mca_enabled || !(cpu_feature & CPUID_MCE)) + return; + + if (cpu_feature & CPUID_MCA) { + if (PCPU_GET(cpuid) == 0) + mca_setup(); + + sched_pin(); + mcg_cap = rdmsr(MSR_MCG_CAP); + if (mcg_cap & MCG_CAP_CTL_P) + /* Enable MCA features. */ + wrmsr(MSR_MCG_CTL, MCG_CTL_ENABLE); + + for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) { + /* + * Enable logging of all errors. For P6 + * processors, MC0_CTL is always enabled. + * + * XXX: Better CPU test needed here? + */ + if (!(i == 0 && (cpu_id & 0xf00) == 0x600)) + wrmsr(MSR_MC_CTL(i), 0xffffffffffffffffUL); + + /* Clear all errors. */ + wrmsr(MSR_MC_STATUS(i), 0); + } + sched_unpin(); + } + + load_cr4(rcr4() | CR4_MCE); +} + +/* Called when a machine check exception fires. */ +int +mca_intr(void) +{ + uint64_t mcg_status; + int recoverable; + + if (!(cpu_feature & CPUID_MCA)) { + /* + * Just print the values of the old Pentium registers + * and panic. + */ + printf("MC Type: 0x%lx Address: 0x%lx\n", + rdmsr(MSR_P5_MC_TYPE), rdmsr(MSR_P5_MC_ADDR)); + return (0); + } + + /* Scan the banks and check for any non-recoverable errors. */ + recoverable = mca_scan(1); + mcg_status = rdmsr(MSR_MCG_STATUS); + if (!(mcg_status & MCG_STATUS_RIPV)) + recoverable = 0; + + /* Clear MCIP. */ + wrmsr(MSR_MCG_STATUS, mcg_status & ~MCG_STATUS_MCIP); + return (recoverable); +} Modified: projects/pnet/sys/amd64/amd64/mp_machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/mp_machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/mp_machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -57,8 +57,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +#include #include #include #include @@ -112,9 +114,9 @@ volatile int smp_tlb_wait; extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); #ifdef STOP_NMI -volatile cpumask_t ipi_nmi_pending; +static volatile cpumask_t ipi_nmi_pending; -static void ipi_nmi_selected(u_int32_t cpus); +static void ipi_nmi_selected(cpumask_t cpus); #endif /* @@ -160,6 +162,8 @@ int apic_cpuids[MAX_APIC_ID + 1]; static volatile u_int cpu_ipi_pending[MAXCPU]; static u_int boot_address; +static int cpu_logical; +static int cpu_cores; static void assign_cpu_ids(void); static void set_interrupt_apic_ids(void); @@ -181,13 +185,148 @@ mem_range_AP_init(void) mem_range_softc.mr_op->initAP(&mem_range_softc); } -struct cpu_group * -cpu_topo(void) +static void +topo_probe_0xb(void) { + int logical; + int p[4]; + int bits; + int type; + int cnt; + int i; + int x; + + /* We only support two levels for now. */ + for (i = 0; i < 3; i++) { + cpuid_count(0x0B, i, p); + bits = p[0] & 0x1f; + logical = p[1] &= 0xffff; + type = (p[2] >> 8) & 0xff; + if (type == 0 || logical == 0) + break; + for (cnt = 0, x = 0; x <= MAX_APIC_ID; x++) { + if (!cpu_info[x].cpu_present || + cpu_info[x].cpu_disabled) + continue; + if (x >> bits == boot_cpu_id >> bits) + cnt++; + } + if (type == CPUID_TYPE_SMT) + cpu_logical = cnt; + else if (type == CPUID_TYPE_CORE) + cpu_cores = cnt; + } + if (cpu_logical == 0) + cpu_logical = 1; + cpu_cores /= cpu_logical; +} + +static void +topo_probe_0x4(void) +{ + u_int threads_per_cache, p[4]; + u_int htt, cmp; + int i; + + htt = cmp = 1; + /* + * If this CPU supports HTT or CMP then mention the + * number of physical/logical cores it contains. + */ + if (cpu_feature & CPUID_HTT) + htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16; + if (cpu_vendor_id == CPU_VENDOR_AMD && (amd_feature2 & AMDID2_CMP)) + cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; + else if (cpu_vendor_id == CPU_VENDOR_INTEL && (cpu_high >= 4)) { + cpuid_count(4, 0, p); + if ((p[0] & 0x1f) != 0) + cmp = ((p[0] >> 26) & 0x3f) + 1; + } + cpu_cores = cmp; + cpu_logical = htt / cmp; + + /* Setup the initial logical CPUs info. */ + if (cpu_feature & CPUID_HTT) + logical_cpus = (cpu_procinfo & CPUID_HTT_CORES) >> 16; + + /* + * Work out if hyperthreading is *really* enabled. This + * is made really ugly by the fact that processors lie: Dual + * core processors claim to be hyperthreaded even when they're + * not, presumably because they want to be treated the same + * way as HTT with respect to per-cpu software licensing. + * At the time of writing (May 12, 2005) the only hyperthreaded + * cpus are from Intel, and Intel's dual-core processors can be + * identified via the "deterministic cache parameters" cpuid + * calls. + */ + /* + * First determine if this is an Intel processor which claims + * to have hyperthreading support. + */ + if ((cpu_feature & CPUID_HTT) && cpu_vendor_id == CPU_VENDOR_INTEL) { + /* + * If the "deterministic cache parameters" cpuid calls + * are available, use them. + */ + if (cpu_high >= 4) { + /* Ask the processor about the L1 cache. */ + for (i = 0; i < 1; i++) { + cpuid_count(4, i, p); + threads_per_cache = ((p[0] & 0x3ffc000) >> 14) + 1; + if (hyperthreading_cpus < threads_per_cache) + hyperthreading_cpus = threads_per_cache; + if ((p[0] & 0x1f) == 0) + break; + } + } + + /* + * If the deterministic cache parameters are not + * available, or if no caches were reported to exist, + * just accept what the HTT flag indicated. + */ + if (hyperthreading_cpus == 0) + hyperthreading_cpus = logical_cpus; + } +} + +static void +topo_probe(void) +{ + static int cpu_topo_probed = 0; + + if (cpu_topo_probed) + return; + + logical_cpus = logical_cpus_mask = 0; + if (cpu_high >= 0xb) + topo_probe_0xb(); + else if (cpu_high) + topo_probe_0x4(); if (cpu_cores == 0) - cpu_cores = 1; + cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1; if (cpu_logical == 0) cpu_logical = 1; + cpu_topo_probed = 1; +} + +struct cpu_group * +cpu_topo(void) +{ + int cg_flags; + + /* + * Determine whether any threading flags are + * necessry. + */ + topo_probe(); + if (cpu_logical > 1 && hyperthreading_cpus) + cg_flags = CG_FLAG_HTT; + else if (cpu_logical > 1) + cg_flags = CG_FLAG_SMT; + else + cg_flags = 0; if (mp_ncpus % (cpu_cores * cpu_logical) != 0) { printf("WARNING: Non-uniform processors.\n"); printf("WARNING: Using suboptimal topology.\n"); @@ -202,17 +341,17 @@ cpu_topo(void) * Only HTT no multi-core. */ if (cpu_logical > 1 && cpu_cores == 1) - return (smp_topo_1level(CG_SHARE_L1, cpu_logical, CG_FLAG_HTT)); + return (smp_topo_1level(CG_SHARE_L1, cpu_logical, cg_flags)); /* * Only multi-core no HTT. */ if (cpu_cores > 1 && cpu_logical == 1) - return (smp_topo_1level(CG_SHARE_NONE, cpu_cores, 0)); + return (smp_topo_1level(CG_SHARE_L2, cpu_cores, cg_flags)); /* * Both HTT and multi-core. */ - return (smp_topo_2level(CG_SHARE_NONE, cpu_cores, - CG_SHARE_L1, cpu_logical, CG_FLAG_HTT)); + return (smp_topo_2level(CG_SHARE_L2, cpu_cores, + CG_SHARE_L1, cpu_logical, cg_flags)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat May 23 16:02:20 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65165106567C; Sat, 23 May 2009 16:02:20 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 523D38FC0A; Sat, 23 May 2009 16:02:20 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NG2KxJ059883; Sat, 23 May 2009 16:02:20 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NG2KEB059880; Sat, 23 May 2009 16:02:20 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905231602.n4NG2KEB059880@svn.freebsd.org> From: Rui Paulo Date: Sat, 23 May 2009 16:02:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192641 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 16:02:20 -0000 Author: rpaulo Date: Sat May 23 16:02:19 2009 New Revision: 192641 URL: http://svn.freebsd.org/changeset/base/192641 Log: Move path handling code to HWMP module. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c projects/mesh11s/sys/net80211/ieee80211_hwmp.h projects/mesh11s/sys/net80211/ieee80211_mesh.c Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sat May 23 16:01:58 2009 (r192640) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sat May 23 16:02:19 2009 (r192641) @@ -62,21 +62,21 @@ __FBSDID("$FreeBSD$"); #include -int ieee80211_hwmp_maxhops = 31; -int ieee80211_hwmp_maxhopstime = 500; -int ieee80211_hwmp_maxprepretries = 3; -int ieee80211_hwmp_prepminint = 100; -int ieee80211_hwmp_perrminint = 100; -int ieee80211_hwmp_roottimeout = 5000; -int ieee80211_hwmp_pathtimeout = 5000; -int ieee80211_hwmp_rootmode = 0; -int ieee80211_hwmp_pathtoroottimeout = 5000; -int ieee80211_hmwp_rootint = 2000; -int ieee80211_hwmp_rannint = 1000; -int ieee80211_hwmp_targetonly = 1; /* reply to PREQs if we have the info */ -int ieee80211_hwmp_replyforward = 1; /* propagate PREQs */ -int ieee80211_hwmp_pathmaintenance = 2000; -int ieee80211_hwmp_confirmint = 2000; +static int ieee80211_hwmp_maxhops = 31; +static int ieee80211_hwmp_maxhopstime = 500; +static int ieee80211_hwmp_maxprepretries = 3; +static int ieee80211_hwmp_prepminint = 100; +static int ieee80211_hwmp_perrminint = 100; +static int ieee80211_hwmp_roottimeout = 5000; +static int ieee80211_hwmp_pathtimeout = 5000; +static int ieee80211_hwmp_rootmode = 0; +static int ieee80211_hwmp_pathtoroottimeout = 5000; +static int ieee80211_hmwp_rootint = 2000; +static int ieee80211_hwmp_rannint = 1000; +static int ieee80211_hwmp_targetonly = 1;/* reply to PREQs automatically */ +static int ieee80211_hwmp_replyforward = 1; /* propagate PREQs */ +static int ieee80211_hwmp_pathmaintenance = 2000; +static int ieee80211_hwmp_confirmint = 2000; SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, "IEEE 802.11s HWMP parameters"); @@ -86,3 +86,121 @@ SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, max SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, rootmode, CTLTYPE_INT | CTLFLAG_RW, &ieee80211_hwmp_rootmode, 0, "Root Mesh Point Node"); #endif + + +void +ieee80211_hwmp_recv_action(struct ieee80211vap *vap, struct ieee80211_node *ni, + struct mbuf *m) +{ + struct ieee80211_frame *wh; + uint8_t *frm, *efrm; + struct ieee80211_meshpreq_ie *meshpreq = NULL; + struct ieee80211_meshprep_ie *meshprep = NULL; + struct ieee80211_meshperr_ie *meshperr = NULL; + + wh = mtod(m0, struct ieee80211_frame *); + ia = (struct ieee80211_action *) &wh[1]; + frm = (uint8_t *)&wh[1] + sizeof(struct ieee80211_action); + efrm = mtod(m0, uint8_t *) + m0->m_len; + + KASSERT(ia->ia_category == IEEE80211_ACTION_CAT_MESHPATH); + + while (efrm - frm > 1) { + IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); + switch (*frm) { + case IEEE80211_ELEMID_MESHPREQ: + meshpreq = (struct ieee80211_meshpreq_ie *) frm; + meshpreq->preq_id = LE_READ_4(&meshpreq->preq_id); + meshpreq->preq_origseq = + LE_READ_4(&meshpreq->preq_origseq); + meshpreq->preq_lifetime = + LE_READ_4(&meshpreq->preq_lifetime); + meshpreq->preq_metric = + LE_READ_4(&meshpreq->preq_metric); + break; + case IEEE80211_ELEMID_MESHPREP: + meshprep = (struct ieee80211_meshprep_ie *) frm; + meshprep->prep_targetseq = + LE_READ_4(&meshprep->prep_targetseq); + meshprep->prep_lifetime = + LE_READ_4(&meshprep->prep_lifetime); + meshprep->prep_metric = + LE_READ_4(&meshprep->prep_metric); + meshprep->prep_origseq = + LE_READ_4(&meshprep->prep_origseq); + break; + case IEEE80211_ELEMID_MESHPERR: + meshperr = (struct ieee80211_meshperr_ie *) frm; + break; + } + frm += frm[1] + 2; + } + + switch (ia->ia_action) { + case IEEE80211_ACTION_MESHPATH_REQ: + if (meshpreq == NULL) { + IEEE80211_DISCARD(vap, + IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, + wh, NULL, "%s", "preq without IE"); + vap->iv_stats.is_rx_mgtdiscard++; + return; + } + /* + * Is the peer trying to find us? + */ + if (IEEE80211_ADDR_EQ(vap->iv_myaddr, + meshpreq->preq_targets[0].target_addr)) { + struct ieee80211_meshprep_ie prep; + /* + * Build and send a path reply frame. + */ + prep.prep_flags = 0; + prep.prep_hopcount = 0; + prep.prep_ttl = ieee80211_mesh_ttl; + IEEE80211_ADDR_COPY(prep.prep_targetaddr, + meshpreq->preq_targets[0].target_addr); + prep.prep_targetseq = meshpreq->preq_origseq; + prep.prep_lifetime = 5000; + prep.prep_metric = 0; + IEEE80211_ADDR_COPY(prep.prep_origaddr, + vap->iv_myaddr); + prep.prep_origseq = 1; + vargs.ptrarg = &prep; + ieee80211_send_action(ni, + IEEE80211_ACTION_CAT_MESHPATH, + IEEE80211_ACTION_MESHPATH_REP, + vargs); + } + break; + case IEEE80211_ACTION_MESHPATH_REP: + break; + case IEEE80211_ACTION_MESHPATH_ERR: + break; + } + +} + + +/* + * Add a Mesh Path Reply IE to a frame. + */ +uint8_t * +ieee80211_add_meshprep(uint8_t *frm, struct ieee80211_meshprep_ie *prep) +{ + + *frm++ = IEEE80211_ELEMID_MESHPREP; + *frm++ = sizeof(struct ieee80211_meshprep_ie) - 2; + *frm++ = prep->prep_flags; + *frm++ = prep->prep_hopcount; + *frm++ = prep->prep_ttl; + IEEE80211_ADDR_COPY(frm, prep->prep_targetaddr); + frm += 6; + ADDWORD(frm, prep->prep_targetseq); + ADDWORD(frm, prep->prep_lifetime); + ADDWORD(frm, prep->prep_metric); + IEEE80211_ADDR_COPY(frm, prep->prep_origaddr); + frm += 6; + ADDWORD(frm, prep->prep_origseq); + + return frm; +} Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.h Sat May 23 16:01:58 2009 (r192640) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Sat May 23 16:02:19 2009 (r192641) @@ -31,9 +31,15 @@ #ifndef _NET80211_IEEE80211_HWMP_H_ #define _NET80211_IEEE80211_HWMP_H_ -#if 0 -void ieee80211_hwmp_recv_action(struct ieee80211vap *, +void ieee80211_hwmp_recv_action(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); +uint8_t * ieee80211_add_meshprep(uint8_t *, + struct ieee80211_meshprep_ie *); +#if 0 +uint8_t * ieee80211_add_meshpreq(uint8_t *, + struct ieee80211_meshpreq_ie *); +uint8_t * ieee80211_add_meshperr(uint8_t *, + struct ieee80211_meshperr_ie *); #endif #endif /* _NET80211_IEEE80211_HWMP_H_ */ Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Sat May 23 16:01:58 2009 (r192640) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Sat May 23 16:02:19 2009 (r192641) @@ -640,7 +640,7 @@ mesh_recv_action(struct ieee80211_node * struct ieee80211_meshperr_ie *meshperr = NULL; uint8_t *frm, *efrm; union ieee80211_send_action_args vargs; - + wh = mtod(m0, struct ieee80211_frame *); ia = (struct ieee80211_action *) &wh[1]; frm = (uint8_t *)&wh[1] + sizeof(struct ieee80211_action); @@ -672,30 +672,6 @@ mesh_recv_action(struct ieee80211_node * meshpeer->peer_rcode = LE_READ_2(&meshpeer->peer_rcode); break; - case IEEE80211_ELEMID_MESHPREQ: - meshpreq = (struct ieee80211_meshpreq_ie *) frm; - meshpreq->preq_id = LE_READ_4(&meshpreq->preq_id); - meshpreq->preq_origseq = - LE_READ_4(&meshpreq->preq_origseq); - meshpreq->preq_lifetime = - LE_READ_4(&meshpreq->preq_lifetime); - meshpreq->preq_metric = - LE_READ_4(&meshpreq->preq_metric); - break; - case IEEE80211_ELEMID_MESHPREP: - meshprep = (struct ieee80211_meshprep_ie *) frm; - meshprep->prep_targetseq = - LE_READ_4(&meshprep->prep_targetseq); - meshprep->prep_lifetime = - LE_READ_4(&meshprep->prep_lifetime); - meshprep->prep_metric = - LE_READ_4(&meshprep->prep_metric); - meshprep->prep_origseq = - LE_READ_4(&meshprep->prep_origseq); - break; - case IEEE80211_ELEMID_MESHPERR: - meshperr = (struct ieee80211_meshperr_ie *) frm; - break; } frm += frm[1] + 2; } @@ -706,7 +682,7 @@ mesh_recv_action(struct ieee80211_node * */ case IEEE80211_ACTION_CAT_MESHPEERING: /* - * Check if we agree on the required fields. + * Check if we agree on the required fields. */ if (mesh_verify_meshid(vap, meshid) || mesh_verify_meshconf(vap, meshconf) || @@ -867,45 +843,11 @@ mesh_recv_action(struct ieee80211_node * break; } break; + /* + * Mesh Path action frames are handled by the HWMP module. + */ case IEEE80211_ACTION_CAT_MESHPATH: - switch (ia->ia_action) { - case IEEE80211_ACTION_MESHPATH_REQ: - if (meshpreq == NULL) { - IEEE80211_DISCARD(vap, - IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, - wh, NULL, "%s", "preq without IE"); - vap->iv_stats.is_rx_mgtdiscard++; - return; - } - /* - * Is the peer trying to find us? - */ - if (IEEE80211_ADDR_EQ(vap->iv_myaddr, - meshpreq->preq_targets[0].target_addr)) { - struct ieee80211_meshprep_ie prep; - /* - * Build and send a path reply frame. - */ - prep.prep_flags = 0; - prep.prep_hopcount = 0; - prep.prep_ttl = ieee80211_mesh_ttl; - IEEE80211_ADDR_COPY(prep.prep_targetaddr, - meshpreq->preq_targets[0].target_addr); - prep.prep_targetseq = meshpreq->preq_origseq; - prep.prep_lifetime = 5000; - prep.prep_metric = 0; - IEEE80211_ADDR_COPY(prep.prep_origaddr, - vap->iv_myaddr); - prep.prep_origseq = 1; - - vargs.ptrarg = &prep; - ieee80211_send_action(ni, - IEEE80211_ACTION_CAT_MESHPATH, - IEEE80211_ACTION_MESHPATH_REP, - vargs); - } - break; - } + ieee80211_hwmp_recv_action(vap, ni, m); break; /* * Airtime link metric handling. @@ -1166,30 +1108,6 @@ ieee80211_add_meshpeer(uint8_t *frm, uin } /* - * Add a Mesh Path Reply IE to a frame. - */ -uint8_t * -ieee80211_add_meshprep(uint8_t *frm, struct ieee80211_meshprep_ie *prep) -{ - - *frm++ = IEEE80211_ELEMID_MESHPREP; - *frm++ = sizeof(struct ieee80211_meshprep_ie) - 2; - *frm++ = prep->prep_flags; - *frm++ = prep->prep_hopcount; - *frm++ = prep->prep_ttl; - IEEE80211_ADDR_COPY(frm, prep->prep_targetaddr); - frm += 6; - ADDWORD(frm, prep->prep_targetseq); - ADDWORD(frm, prep->prep_lifetime); - ADDWORD(frm, prep->prep_metric); - IEEE80211_ADDR_COPY(frm, prep->prep_origaddr); - frm += 6; - ADDWORD(frm, prep->prep_origseq); - - return frm; -} - -/* * Compute an Airtime Link Metric for the link with this node. * * Based on D3.0. From owner-svn-src-projects@FreeBSD.ORG Sat May 23 16:05:15 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C36FA106566C; Sat, 23 May 2009 16:05:15 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 973298FC18; Sat, 23 May 2009 16:05:15 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NG5FC2059973; Sat, 23 May 2009 16:05:15 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NG5FJm059972; Sat, 23 May 2009 16:05:15 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905231605.n4NG5FJm059972@svn.freebsd.org> From: Rui Paulo Date: Sat, 23 May 2009 16:05:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192642 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 16:05:16 -0000 Author: rpaulo Date: Sat May 23 16:05:15 2009 New Revision: 192642 URL: http://svn.freebsd.org/changeset/base/192642 Log: Add missing svn properties. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c (props changed) projects/mesh11s/sys/net80211/ieee80211_hwmp.h (props changed) From owner-svn-src-projects@FreeBSD.ORG Sat May 23 16:11:36 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9136C10656CB; Sat, 23 May 2009 16:11:36 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F32A8FC2A; Sat, 23 May 2009 16:11:36 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NGBa9d060138; Sat, 23 May 2009 16:11:36 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NGBa12060137; Sat, 23 May 2009 16:11:36 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905231611.n4NGBa12060137@svn.freebsd.org> From: Rui Paulo Date: Sat, 23 May 2009 16:11:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192643 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 16:11:36 -0000 Author: rpaulo Date: Sat May 23 16:11:36 2009 New Revision: 192643 URL: http://svn.freebsd.org/changeset/base/192643 Log: Identify code structures that won't be supported in the near future. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.h Sat May 23 16:05:15 2009 (r192642) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.h Sat May 23 16:11:36 2009 (r192643) @@ -117,6 +117,7 @@ enum { /* values 3-255 are reserved */ }; +#ifdef notyet /* Mesh Channel Switch Annoucement */ struct ieee80211_meshcsa_ie { uint8_t csa_ie; /* IEEE80211_ELEMID_MESHCSA */ @@ -185,6 +186,8 @@ struct ieee80211_meshdaopst_ie { uint8_t daopsrep_setowner[IEEE80211_ADDR_LEN]; } __packed; +#endif + /* Portal (MP) Annoucement */ struct ieee80211_meshpann_ie { uint8_t pann_ie; /* IEEE80211_ELEMID_MESHPANN */ @@ -257,6 +260,7 @@ struct ieee80211_meshperr_ie { } perr_dests[1] __packed; /* NB: variable size */ } __packed; +#ifdef notyet /* Mesh Proxy Update */ struct ieee80211_meshpu_ie { uint8_t pu_ie; /* IEEE80211_ELEMID_MESHPU */ @@ -272,6 +276,7 @@ struct ieee80211_meshpuc_ie { uint8_t puc_seq; /* PU Sequence Number */ uint8_t puc_daddr[IEEE80211_ADDR_LEN]; } __packed; +#endif /* * 802.11s Action Frames From owner-svn-src-projects@FreeBSD.ORG Sat May 23 18:00:20 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56E36106567B; Sat, 23 May 2009 18:00:20 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 449E68FC1B; Sat, 23 May 2009 18:00:20 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NI0KUK062765; Sat, 23 May 2009 18:00:20 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NI0KXi062764; Sat, 23 May 2009 18:00:20 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905231800.n4NI0KXi062764@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Sat, 23 May 2009 18:00:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192655 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 18:00:20 -0000 Author: gonzo Date: Sat May 23 18:00:20 2009 New Revision: 192655 URL: http://svn.freebsd.org/changeset/base/192655 Log: - Remove stale comments - Replace a1 with k1 to while restoring context. a1 was there by mistake, interrupts are disabled at this point and it's safe to use k0, k1. This code never was reached beacasue current Status register handling prevented interrupta from user mode. Modified: projects/mips/sys/mips/mips/exception.S Modified: projects/mips/sys/mips/mips/exception.S ============================================================================== --- projects/mips/sys/mips/mips/exception.S Sat May 23 17:17:54 2009 (r192654) +++ projects/mips/sys/mips/mips/exception.S Sat May 23 18:00:20 2009 (r192655) @@ -689,36 +689,27 @@ NNON_LEAF(MipsUserIntr, STAND_FRAME_SIZE /* * Call the interrupt handler. */ + break la k0, _C_LABEL(cpu_intr) jalr k0 sw a3, STAND_RA_OFFSET(sp) # for debugging + /* - * Since interrupts are enabled at this point, we use a1 instead of - * k0 or k1 to store the PCB pointer. This is because k0 and k1 - * are not preserved across interrupts. ** RRS - And how did the - * get enabled? cpu_intr clears the cause register but it does - * not touch the sr as far as I can see thus intr are still - * disabled. + * DO_AST enabled interrupts */ DO_AST /* - * Restore user registers and return. NOTE: interrupts are enabled. - */ - -/* - * Since interrupts are enabled at this point, we use a1 instead of - * k0 or k1 to store the PCB pointer. This is because k0 and k1 - * are not preserved across interrupts. + * Restore user registers and return. */ - mtc0 zero, COP_0_STATUS_REG + mtc0 zero, COP_0_STATUS_REG # re-disable interrupts ITLBNOPFIX li v0, SR_EXL mtc0 v0, COP_0_STATUS_REG # set exeption level bit. ITLBNOPFIX GET_CPU_PCPU(k1) - lw a1, PC_CURPCB(k1) + lw k1, PC_CURPCB(k1) RESTORE_U_PCB_REG(s0, S0, k1) RESTORE_U_PCB_REG(s1, S1, k1) RESTORE_U_PCB_REG(s2, S2, k1) From owner-svn-src-projects@FreeBSD.ORG Sat May 23 18:18:07 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 730D3106566C; Sat, 23 May 2009 18:18:07 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 617F98FC0C; Sat, 23 May 2009 18:18:07 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NII7C5063166; Sat, 23 May 2009 18:18:07 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NII7wB063165; Sat, 23 May 2009 18:18:07 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905231818.n4NII7wB063165@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Sat, 23 May 2009 18:18:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192656 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 18:18:07 -0000 Author: gonzo Date: Sat May 23 18:18:06 2009 New Revision: 192656 URL: http://svn.freebsd.org/changeset/base/192656 Log: - Calculate clock frequency using PLL registers Modified: projects/mips/sys/mips/atheros/uart_bus_ar71xx.c Modified: projects/mips/sys/mips/atheros/uart_bus_ar71xx.c ============================================================================== --- projects/mips/sys/mips/atheros/uart_bus_ar71xx.c Sat May 23 18:00:20 2009 (r192655) +++ projects/mips/sys/mips/atheros/uart_bus_ar71xx.c Sat May 23 18:18:06 2009 (r192656) @@ -67,6 +67,20 @@ static int uart_ar71xx_probe(device_t dev) { struct uart_softc *sc; + uint32_t pll_config, div; + uint64_t freq; + + /* PLL freq */ + pll_config = ATH_READ_REG(AR71XX_PLL_CPU_CONFIG); + div = ((pll_config >> PLL_FB_SHIFT) & PLL_FB_MASK) + 1; + freq = div * AR71XX_BASE_FREQ; + /* CPU freq */ + div = ((pll_config >> PLL_CPU_DIV_SEL_SHIFT) & PLL_CPU_DIV_SEL_MASK) + + 1; + freq = freq / div; + /* AHB freq */ + div = (((pll_config >> PLL_AHB_DIV_SHIFT) & PLL_AHB_DIV_MASK) + 1) * 2; + freq = freq / div; sc = device_get_softc(dev); sc->sc_sysdev = SLIST_FIRST(&uart_sysdevs); @@ -79,7 +93,7 @@ uart_ar71xx_probe(device_t dev) sc->sc_bas.bst = mips_bus_space_generic; sc->sc_bas.bsh = MIPS_PHYS_TO_KSEG1(AR71XX_UART_ADDR) + 3; - return (uart_bus_probe(dev, 2, 85000000, 0, 0)); + return (uart_bus_probe(dev, 2, freq, 0, 0)); } DRIVER_MODULE(uart, apb, uart_ar71xx_driver, uart_devclass, 0, 0); From owner-svn-src-projects@FreeBSD.ORG Sat May 23 19:42:24 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19B75106566B; Sat, 23 May 2009 19:42:24 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 08B7A8FC1E; Sat, 23 May 2009 19:42:24 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NJgNta065395; Sat, 23 May 2009 19:42:23 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NJgNca065394; Sat, 23 May 2009 19:42:23 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905231942.n4NJgNca065394@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Sat, 23 May 2009 19:42:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192664 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 19:42:24 -0000 Author: gonzo Date: Sat May 23 19:42:23 2009 New Revision: 192664 URL: http://svn.freebsd.org/changeset/base/192664 Log: - cpu_establish_hardintr modifies INT_MASK of Status register, so we should use disableintr/restoreintr that modifies only IE bit. Modified: projects/mips/sys/mips/mips/nexus.c Modified: projects/mips/sys/mips/mips/nexus.c ============================================================================== --- projects/mips/sys/mips/mips/nexus.c Sat May 23 19:17:27 2009 (r192663) +++ projects/mips/sys/mips/mips/nexus.c Sat May 23 19:42:23 2009 (r192664) @@ -169,14 +169,14 @@ nexus_setup_intr(device_t dev, device_t { int irq; - register_t sr = intr_disable(); + intrmask_t s = disableintr(); irq = rman_get_start(res); if (irq >= NUM_MIPS_IRQS) return (0); cpu_establish_hardintr(device_get_nameunit(child), filt, intr, arg, irq, flags, cookiep); - intr_restore(sr); + restoreintr(s); return (0); } From owner-svn-src-projects@FreeBSD.ORG Sat May 23 21:49:36 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD47F1065672; Sat, 23 May 2009 21:49:36 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BC3ED8FC12; Sat, 23 May 2009 21:49:36 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NLnaT8068889; Sat, 23 May 2009 21:49:36 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NLnaDE068885; Sat, 23 May 2009 21:49:36 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905232149.n4NLnaDE068885@svn.freebsd.org> From: Rui Paulo Date: Sat, 23 May 2009 21:49:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192670 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 21:49:37 -0000 Author: rpaulo Date: Sat May 23 21:49:36 2009 New Revision: 192670 URL: http://svn.freebsd.org/changeset/base/192670 Log: Fix the build Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c projects/mesh11s/sys/net80211/ieee80211_mesh.c projects/mesh11s/sys/net80211/ieee80211_mesh.h projects/mesh11s/sys/net80211/ieee80211_output.c Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sat May 23 21:43:44 2009 (r192669) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sat May 23 21:49:36 2009 (r192670) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); static int ieee80211_hwmp_maxhops = 31; +#ifdef notyet static int ieee80211_hwmp_maxhopstime = 500; static int ieee80211_hwmp_maxprepretries = 3; static int ieee80211_hwmp_prepminint = 100; @@ -77,6 +78,9 @@ static int ieee80211_hwmp_targetonly = 1 static int ieee80211_hwmp_replyforward = 1; /* propagate PREQs */ static int ieee80211_hwmp_pathmaintenance = 2000; static int ieee80211_hwmp_confirmint = 2000; +#endif + +extern int ieee80211_mesh_ttl; SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, "IEEE 802.11s HWMP parameters"); @@ -90,20 +94,23 @@ SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, roo void ieee80211_hwmp_recv_action(struct ieee80211vap *vap, struct ieee80211_node *ni, - struct mbuf *m) + struct mbuf *m0) { struct ieee80211_frame *wh; + struct ieee80211_action *ia; uint8_t *frm, *efrm; struct ieee80211_meshpreq_ie *meshpreq = NULL; struct ieee80211_meshprep_ie *meshprep = NULL; struct ieee80211_meshperr_ie *meshperr = NULL; + union ieee80211_send_action_args vargs; wh = mtod(m0, struct ieee80211_frame *); ia = (struct ieee80211_action *) &wh[1]; frm = (uint8_t *)&wh[1] + sizeof(struct ieee80211_action); efrm = mtod(m0, uint8_t *) + m0->m_len; - KASSERT(ia->ia_category == IEEE80211_ACTION_CAT_MESHPATH); + KASSERT(ia->ia_category == IEEE80211_ACTION_CAT_MESHPATH, + ("wrong category")); while (efrm - frm > 1) { IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); @@ -181,6 +188,13 @@ ieee80211_hwmp_recv_action(struct ieee80 } +#define ADDWORD(frm, v) do { \ + frm[0] = (v) & 0xff; \ + frm[1] = ((v) >> 8) & 0xff; \ + frm[2] = ((v) >> 16) & 0xff; \ + frm[3] = ((v) >> 24) & 0xff; \ + frm += 4; \ +} while (0) /* * Add a Mesh Path Reply IE to a frame. */ @@ -192,7 +206,7 @@ ieee80211_add_meshprep(uint8_t *frm, str *frm++ = sizeof(struct ieee80211_meshprep_ie) - 2; *frm++ = prep->prep_flags; *frm++ = prep->prep_hopcount; - *frm++ = prep->prep_ttl; + *frm++ = prep->prep_ttl; IEEE80211_ADDR_COPY(frm, prep->prep_targetaddr); frm += 6; ADDWORD(frm, prep->prep_targetseq); Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Sat May 23 21:43:44 2009 (r192669) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Sat May 23 21:49:36 2009 (r192670) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include static void mesh_vattach(struct ieee80211vap *); @@ -85,7 +86,7 @@ static const int ieee80211_mesh_holdingt static const int ieee80211_mesh_confirmtimeout = 40; #define CONFIRM_TIMEOUT msecs_to_ticks(ieee80211_mesh_confirmtimeout) static const int ieee80211_mesh_maxretries = 2; -static int ieee80211_mesh_ttl = 31; +int ieee80211_mesh_ttl = 31; static int ieee80211_mesh_forwarding = 1; SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0, @@ -635,9 +636,6 @@ mesh_recv_action(struct ieee80211_node * struct ieee80211_meshid_ie *meshid = NULL; struct ieee80211_meshconf_ie *meshconf = NULL; struct ieee80211_meshpeer_ie *meshpeer = NULL; - struct ieee80211_meshpreq_ie *meshpreq = NULL; - struct ieee80211_meshprep_ie *meshprep = NULL; - struct ieee80211_meshperr_ie *meshperr = NULL; uint8_t *frm, *efrm; union ieee80211_send_action_args vargs; @@ -847,7 +845,7 @@ mesh_recv_action(struct ieee80211_node * * Mesh Path action frames are handled by the HWMP module. */ case IEEE80211_ACTION_CAT_MESHPATH: - ieee80211_hwmp_recv_action(vap, ni, m); + ieee80211_hwmp_recv_action(vap, ni, m0); break; /* * Airtime link metric handling. Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.h Sat May 23 21:43:44 2009 (r192669) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.h Sat May 23 21:49:36 2009 (r192670) @@ -332,8 +332,6 @@ uint8_t * ieee80211_add_meshid(uint8_t * uint8_t * ieee80211_add_meshconf(uint8_t *, struct ieee80211vap *); uint8_t * ieee80211_add_meshpeer(uint8_t *, uint8_t, uint16_t, uint16_t, uint16_t); -uint8_t * ieee80211_add_meshprep(uint8_t *, - struct ieee80211_meshprep_ie *); uint32_t ieee80211_airtime_calc(struct ieee80211vap *, struct ieee80211_node *); uint8_t * ieee80211_add_meshlink(uint8_t *, uint32_t); Modified: projects/mesh11s/sys/net80211/ieee80211_output.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_output.c Sat May 23 21:43:44 2009 (r192669) +++ projects/mesh11s/sys/net80211/ieee80211_output.c Sat May 23 21:49:36 2009 (r192670) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #endif #include #include +#include #ifdef INET #include