From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 00:29:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EB091065670; Sun, 26 Apr 2009 00:29:50 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3164C8FC12; Sun, 26 Apr 2009 00:29:50 +0000 (UTC) (envelope-from hrs@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 n3Q0ToBm067569; Sun, 26 Apr 2009 00:29:50 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q0ToEA067568; Sun, 26 Apr 2009 00:29:50 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904260029.n3Q0ToEA067568@svn.freebsd.org> From: Hiroki Sato Date: Sun, 26 Apr 2009 00:29:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191505 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 00:29:50 -0000 Author: hrs Date: Sun Apr 26 00:29:49 2009 New Revision: 191505 URL: http://svn.freebsd.org/changeset/base/191505 Log: Update release note: boot0 volume ID and F6 PXE invoke support, DHCP options via kenv, cpuctl(4) added, ciphy(4) VSC8211 support, jme(4) newer JMC250/260 support, rl(4) improved, ata(4) Marvell PATA M88SX6121 support, and config(8) multiple makeoption support. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sat Apr 25 23:40:20 2009 (r191504) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 00:29:49 2009 (r191505) @@ -212,13 +212,22 @@ Boot Loader Changes - + The &man.boot.8; now supports 4-byte volume ID that + certain versions of Windows put into the MBR and invoking + PXE by pressing F6 key on some supported BIOSes. + + The &man.loader.8; is now able to obtain DHCP options + via &man.kenv.2; variables in the case of network boot. Hardware Support - + The &man.cpuctl.4; driver, which provides a special + device /dev/cpuctl as an interface to + the system CPU and functionality to retrieve CPUID + information, read/write machine specific registers (MSR) and + perform CPU firmware updates. Multimedia Support @@ -251,8 +260,15 @@ Network Interface Support - + The ciphy(4) driver now supports Vitesse VSC8211 + PHY. + The &man.jme.4; driver now supports newer JMicron + JMC250/JMC260 revisions. + + The &man.rl.4; driver has been improved. A bug which + prevents it from working on systems with more than 4GB + memory has been fixed. @@ -271,6 +287,8 @@ Disks and Storage + The &man.ata.4; driver now supports Marvell PATA M88SX6121. + The &man.mmc.4; and &man.mmcsd.4; driver now support MMC and SDHC cards, high speed timing, wide bus, and multiblock transfers. @@ -293,6 +311,9 @@ Userland Changes + The &man.config.8; utility now supports + multiple makeoption lines. + The &man.fetch.1; utility now supports an flag which supports If-Modified-Since HTTP request. From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:09:39 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8F8E106566B; Sun, 26 Apr 2009 07:09:39 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9C6F18FC14; Sun, 26 Apr 2009 07:09:39 +0000 (UTC) (envelope-from zec@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 n3Q79dda075150; Sun, 26 Apr 2009 07:09:39 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q79doO075148; Sun, 26 Apr 2009 07:09:39 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <200904260709.n3Q79doO075148@svn.freebsd.org> From: Marko Zec Date: Sun, 26 Apr 2009 07:09:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191508 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:09:40 -0000 Author: zec Date: Sun Apr 26 07:09:39 2009 New Revision: 191508 URL: http://svn.freebsd.org/changeset/base/191508 Log: Extend the vnet module registration / initialization framework first introduced @ r190909 with a vnet module deregistration service. kldunloadable modules, which are currently using vnet_mod_register() to attach their per-vnet initialization routines to the vnet initialization framework, should call vnet_mod_deregister() before acknowledging MOD_UNLOAD requests in their mod_event handlers. Such changes to the existing code base will follow in subsequent commits. vnet_mod_deregister() does not check whether departing vnet modules are registered as prerequisites for another module(s), so it should be used with care. Currently I'm only aware of vnet modules which are leafs on module dependency graphs that are kldunloadable. This change also introduces per-vnet module destructor handler, which calls vnet's module cleanup function, which (if required) has to be registered in vnet module's vnet_modinfo_t structure .vmi_idetach field. Once options VIMAGE becomes operational, the framework will take care that module's cleanup function become invoked for each active vnet instance, and that the memory allocated for each instance gets freed. Currently calls to destructor handlers must always succeed. Modified: head/sys/kern/kern_vimage.c head/sys/sys/vimage.h Modified: head/sys/kern/kern_vimage.c ============================================================================== --- head/sys/kern/kern_vimage.c Sun Apr 26 03:55:08 2009 (r191507) +++ head/sys/kern/kern_vimage.c Sun Apr 26 07:09:39 2009 (r191508) @@ -47,6 +47,7 @@ static TAILQ_HEAD(vnet_modlink_head, vne static TAILQ_HEAD(vnet_modpending_head, vnet_modlink) vnet_modpending_head; static void vnet_mod_complete_registration(struct vnet_modlink *); static int vnet_mod_constructor(struct vnet_modlink *); +static int vnet_mod_destructor(struct vnet_modlink *); void vnet_mod_register(const struct vnet_modinfo *vmi) @@ -144,6 +145,37 @@ vnet_mod_complete_registration(struct vn } while (vml_iter != NULL); } +void +vnet_mod_deregister(const struct vnet_modinfo *vmi) +{ + + vnet_mod_deregister_multi(vmi, NULL, NULL); +} + +void +vnet_mod_deregister_multi(const struct vnet_modinfo *vmi, void *iarg, + char *iname) +{ + VNET_ITERATOR_DECL(vnet_iter); + struct vnet_modlink *vml; + + TAILQ_FOREACH(vml, &vnet_modlink_head, vml_mod_le) + if (vml->vml_modinfo == vmi && vml->vml_iarg == iarg) + break; + if (vml == NULL) + panic("cannot deregister unregistered vnet module %s", + vmi->vmi_name); + + VNET_FOREACH(vnet_iter) { + CURVNET_SET_QUIET(vnet_iter); + vnet_mod_destructor(vml); + CURVNET_RESTORE(); + } + + TAILQ_REMOVE(&vnet_modlink_head, vml, vml_mod_le); + free(vml, M_VIMAGE); +} + static int vnet_mod_constructor(struct vnet_modlink *vml) { const struct vnet_modinfo *vmi = vml->vml_modinfo; @@ -153,16 +185,18 @@ static int vnet_mod_constructor(struct v if (vml->vml_iarg) printf("/%s", vml->vml_iname); printf(": "); - if (vmi->vmi_struct_size) - printf("malloc(%zu); ", vmi->vmi_struct_size); +#ifdef VIMAGE + if (vmi->vmi_size) + printf("malloc(%zu); ", vmi->vmi_size); +#endif if (vmi->vmi_iattach != NULL) printf("iattach()"); printf("\n"); #endif #ifdef VIMAGE - if (vmi->vmi_struct_size) { - void *mem = malloc(vmi->vmi_struct_size, M_VNET, + if (vmi->vmi_size) { + void *mem = malloc(vmi->vmi_size, M_VNET, M_NOWAIT | M_ZERO); if (mem == NULL) /* XXX should return error, not panic. */ panic("vi_alloc: malloc for %s\n", vmi->vmi_name); @@ -176,6 +210,41 @@ static int vnet_mod_constructor(struct v return (0); } + +static int +vnet_mod_destructor(struct vnet_modlink *vml) +{ + const struct vnet_modinfo *vmi = vml->vml_modinfo; + +#ifdef DEBUG_ORDERING + printf("destroying vnet_%s", vmi->vmi_name); + if (vml->vml_iarg) + printf("/%s", vml->vml_iname); + printf(": "); + if (vmi->vmi_idetach != NULL) + printf("idetach(); "); +#ifdef VIMAGE + if (vmi->vmi_size) + printf("free()"); +#endif + printf("\n"); +#endif + + if (vmi->vmi_idetach) + vmi->vmi_idetach(vml->vml_iarg); + +#ifdef VIMAGE + if (vmi->vmi_size) { + if (curvnet->mod_data[vmi->vmi_id] == NULL) + panic("vi_destroy: %s\n", vmi->vmi_name); + free(curvnet->mod_data[vmi->vmi_id], M_VNET); + curvnet->mod_data[vmi->vmi_id] = NULL; + } +#endif + + return (0); +} + /* * vi_symlookup() attempts to resolve name to address queries for * variables which have been moved from global namespace to virtualization Modified: head/sys/sys/vimage.h ============================================================================== --- head/sys/sys/vimage.h Sun Apr 26 03:55:08 2009 (r191507) +++ head/sys/sys/vimage.h Sun Apr 26 07:09:39 2009 (r191508) @@ -121,6 +121,8 @@ struct vnet_modlink { int vi_symlookup(struct kld_sym_lookup *, char *); void vnet_mod_register(const struct vnet_modinfo *); void vnet_mod_register_multi(const struct vnet_modinfo *, void *, char *); +void vnet_mod_deregister(const struct vnet_modinfo *); +void vnet_mod_deregister_multi(const struct vnet_modinfo *, void *, char *); #endif /* !VIMAGE_GLOBALS */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:12:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB74F106566B; Sun, 26 Apr 2009 07:12:04 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A9EB08FC12; Sun, 26 Apr 2009 07:12:04 +0000 (UTC) (envelope-from blackend@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 n3Q7C4tv075253; Sun, 26 Apr 2009 07:12:04 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q7C4YT075252; Sun, 26 Apr 2009 07:12:04 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260712.n3Q7C4YT075252@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 07:12:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191509 - head/release/doc/en_US.ISO8859-1/hardware X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:12:05 -0000 Author: blackend (doc committer) Date: Sun Apr 26 07:12:04 2009 New Revision: 191509 URL: http://svn.freebsd.org/changeset/base/191509 Log: Unbreak the build of relnotes. Modified: head/release/doc/en_US.ISO8859-1/hardware/article.sgml Modified: head/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- head/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:09:39 2009 (r191508) +++ head/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:12:04 2009 (r191509) @@ -523,7 +523,7 @@ The following &ultrasparc; IIIi systems are not tested but - believed to be also supported by &os. + believed to be also supported by &os;: From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:14:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF2A31065675; Sun, 26 Apr 2009 07:14:50 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DD5B58FC1F; Sun, 26 Apr 2009 07:14:50 +0000 (UTC) (envelope-from zec@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 n3Q7Eo4G075340; Sun, 26 Apr 2009 07:14:50 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q7EoBA075335; Sun, 26 Apr 2009 07:14:50 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <200904260714.n3Q7EoBA075335@svn.freebsd.org> From: Marko Zec Date: Sun, 26 Apr 2009 07:14:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191510 - head/sys/netgraph X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:14:51 -0000 Author: zec Date: Sun Apr 26 07:14:50 2009 New Revision: 191510 URL: http://svn.freebsd.org/changeset/base/191510 Log: In preparation to make options VIMAGE operational, where needed, initialize / release netgraph related state in iattach() / idetach() functions called via the vnet module registration / initialization framework, instead of initialization / cleanups being done in mod_event handlers. While here, introduce a crude hack aimed at preventing ng_ether to autoattach to ng_eiface ifnets, which are also netgraph nodes already. Reviewed by: bz Approved by: julian (mentor) Modified: head/sys/netgraph/netgraph.h head/sys/netgraph/ng_base.c head/sys/netgraph/ng_eiface.c head/sys/netgraph/ng_ether.c head/sys/netgraph/ng_iface.c Modified: head/sys/netgraph/netgraph.h ============================================================================== --- head/sys/netgraph/netgraph.h Sun Apr 26 07:12:04 2009 (r191509) +++ head/sys/netgraph/netgraph.h Sun Apr 26 07:14:50 2009 (r191510) @@ -1123,6 +1123,7 @@ hook_p ng_findhook(node_p node, const ch struct ng_type *ng_findtype(const char *type); int ng_make_node_common(struct ng_type *typep, node_p *nodep); int ng_name_node(node_p node, const char *name); +node_p ng_name2noderef(node_p node, const char *name); int ng_newtype(struct ng_type *tp); ng_ID_t ng_node2ID(node_p node); item_p ng_package_data(struct mbuf *m, int flags); Modified: head/sys/netgraph/ng_base.c ============================================================================== --- head/sys/netgraph/ng_base.c Sun Apr 26 07:12:04 2009 (r191509) +++ head/sys/netgraph/ng_base.c Sun Apr 26 07:14:50 2009 (r191510) @@ -84,6 +84,8 @@ struct vnet_netgraph vnet_netgraph_0; /* Mutex to protect topology events. */ static struct mtx ng_topo_mtx; +static vnet_attach_fn vnet_netgraph_iattach; + #ifdef NETGRAPH_DEBUG static struct mtx ng_nodelist_mtx; /* protects global node/hook lists */ static struct mtx ngq_mtx; /* protects the queue item list */ @@ -227,7 +229,6 @@ static int ng_mkpeer(node_p node, const /* Imported, these used to be externally visible, some may go back. */ void ng_destroy_hook(hook_p hook); -node_p ng_name2noderef(node_p node, const char *name); int ng_path2noderef(node_p here, const char *path, node_p *dest, hook_p *lasthook); int ng_make_node(const char *type, node_p *nodepp); @@ -3068,6 +3069,27 @@ ng_mod_event(module_t mod, int event, vo return (error); } +#ifndef VIMAGE_GLOBALS +static const vnet_modinfo_t vnet_netgraph_modinfo = { + .vmi_id = VNET_MOD_NETGRAPH, + .vmi_name = "netgraph", +#ifdef VIMAGE + .vmi_size = sizeof(struct vnet_netgraph), +#endif + .vmi_iattach = vnet_netgraph_iattach +}; +#endif + +static int +vnet_netgraph_iattach(const void *arg __unused) +{ + INIT_VNET_NETGRAPH(curvnet); + + V_nextID = 1; + + return (0); +} + /* * Handle loading and unloading for this code. * The only thing we need to link into is the NETISR strucure. @@ -3082,7 +3104,11 @@ ngb_mod_event(module_t mod, int event, v switch (event) { case MOD_LOAD: /* Initialize everything. */ - V_nextID = 1; +#ifndef VIMAGE_GLOBALS + vnet_mod_register(&vnet_netgraph_modinfo); +#else + vnet_netgraph_iattach(NULL); +#endif NG_WORKLIST_LOCK_INIT(); mtx_init(&ng_typelist_mtx, "netgraph types mutex", NULL, MTX_DEF); Modified: head/sys/netgraph/ng_eiface.c ============================================================================== --- head/sys/netgraph/ng_eiface.c Sun Apr 26 07:12:04 2009 (r191509) +++ head/sys/netgraph/ng_eiface.c Sun Apr 26 07:14:50 2009 (r191510) @@ -113,10 +113,23 @@ static struct ng_type typestruct = { }; NETGRAPH_INIT(eiface, &typestruct); +static vnet_attach_fn ng_eiface_iattach; +static vnet_detach_fn ng_eiface_idetach; + #ifdef VIMAGE_GLOBALS static struct unrhdr *ng_eiface_unit; #endif +#ifndef VIMAGE_GLOBALS +static vnet_modinfo_t vnet_ng_eiface_modinfo = { + .vmi_id = VNET_MOD_NG_EIFACE, + .vmi_name = "ng_eiface", + .vmi_dependson = VNET_MOD_NETGRAPH, + .vmi_iattach = ng_eiface_iattach, + .vmi_idetach = ng_eiface_idetach +}; +#endif + /************************************************************************ INTERFACE STUFF ************************************************************************/ @@ -590,10 +603,18 @@ ng_eiface_mod_event(module_t mod, int ev switch (event) { case MOD_LOAD: - V_ng_eiface_unit = new_unrhdr(0, 0xffff, NULL); +#ifndef VIMAGE_GLOBALS + vnet_mod_register(&vnet_ng_eiface_modinfo); +#else + ng_eiface_iattach(NULL); +#endif break; case MOD_UNLOAD: - delete_unrhdr(V_ng_eiface_unit); +#ifndef VIMAGE_GLOBALS + vnet_mod_deregister(&vnet_ng_eiface_modinfo); +#else + ng_eiface_idetach(NULL); +#endif break; default: error = EOPNOTSUPP; @@ -601,3 +622,21 @@ ng_eiface_mod_event(module_t mod, int ev } return (error); } + +static int ng_eiface_iattach(const void *unused) +{ + INIT_VNET_NETGRAPH(curvnet); + + V_ng_eiface_unit = new_unrhdr(0, 0xffff, NULL); + + return (0); +} + +static int ng_eiface_idetach(const void *unused) +{ + INIT_VNET_NETGRAPH(curvnet); + + delete_unrhdr(V_ng_eiface_unit); + + return (0); +} Modified: head/sys/netgraph/ng_ether.c ============================================================================== --- head/sys/netgraph/ng_ether.c Sun Apr 26 07:12:04 2009 (r191509) +++ head/sys/netgraph/ng_ether.c Sun Apr 26 07:14:50 2009 (r191510) @@ -75,6 +75,17 @@ #define IFP2NG(ifp) (IFP2AC((ifp))->ac_netgraph) +static vnet_attach_fn ng_ether_iattach; + +#ifndef VIMAGE_GLOBALS +static vnet_modinfo_t vnet_ng_ether_modinfo = { + .vmi_id = VNET_MOD_NG_ETHER, + .vmi_name = "ng_ether", + .vmi_dependson = VNET_MOD_NETGRAPH, + .vmi_iattach = ng_ether_iattach, +}; +#endif + /* Per-node private data */ struct private { struct ifnet *ifp; /* associated interface */ @@ -287,6 +298,18 @@ ng_ether_attach(struct ifnet *ifp) priv_p priv; node_p node; + /* + * Do not create / attach an ether node to this ifnet if + * a netgraph node with the same name already exists. + * This should prevent ether nodes to become attached to + * eiface nodes, which may be problematic due to naming + * clashes. + */ + if ((node = ng_name2noderef(NULL, ifp->if_xname)) != NULL) { + NG_NODE_UNREF(node); + return; + } + /* Create node */ KASSERT(!IFP2NG(ifp), ("%s: node already exists?", __func__)); if (ng_make_node_common(&ng_ether_typestruct, &node) != 0) { @@ -741,7 +764,6 @@ ng_ether_disconnect(hook_p hook) static int ng_ether_mod_event(module_t mod, int event, void *data) { - struct ifnet *ifp; int error = 0; int s; @@ -761,14 +783,11 @@ ng_ether_mod_event(module_t mod, int eve ng_ether_input_orphan_p = ng_ether_input_orphan; ng_ether_link_state_p = ng_ether_link_state; - /* Create nodes for any already-existing Ethernet interfaces */ - IFNET_RLOCK(); - TAILQ_FOREACH(ifp, &V_ifnet, if_link) { - if (ifp->if_type == IFT_ETHER - || ifp->if_type == IFT_L2VLAN) - ng_ether_attach(ifp); - } - IFNET_RUNLOCK(); +#ifndef VIMAGE_GLOBALS + vnet_mod_register(&vnet_ng_ether_modinfo); +#else + error = ng_ether_iattach(NULL); +#endif break; case MOD_UNLOAD: @@ -781,6 +800,10 @@ ng_ether_mod_event(module_t mod, int eve * is MOD_UNLOAD, so there's no need to detach any nodes. */ +#ifndef VIMAGE_GLOBALS + vnet_mod_deregister(&vnet_ng_ether_modinfo); +#endif + /* Unregister function hooks */ ng_ether_attach_p = NULL; ng_ether_detach_p = NULL; @@ -798,3 +821,19 @@ ng_ether_mod_event(module_t mod, int eve return (error); } +static int ng_ether_iattach(const void *unused) +{ + INIT_VNET_NET(curvnet); + struct ifnet *ifp; + + /* Create nodes for any already-existing Ethernet interfaces. */ + IFNET_RLOCK(); + TAILQ_FOREACH(ifp, &V_ifnet, if_link) { + if (ifp->if_type == IFT_ETHER + || ifp->if_type == IFT_L2VLAN) + ng_ether_attach(ifp); + } + IFNET_RUNLOCK(); + + return (0); +} Modified: head/sys/netgraph/ng_iface.c ============================================================================== --- head/sys/netgraph/ng_iface.c Sun Apr 26 07:12:04 2009 (r191509) +++ head/sys/netgraph/ng_iface.c Sun Apr 26 07:14:50 2009 (r191510) @@ -209,10 +209,23 @@ static struct ng_type typestruct = { }; NETGRAPH_INIT(iface, &typestruct); +static vnet_attach_fn ng_iface_iattach; +static vnet_detach_fn ng_iface_idetach; + #ifdef VIMAGE_GLOBALS static struct unrhdr *ng_iface_unit; #endif +#ifndef VIMAGE_GLOBALS +static vnet_modinfo_t vnet_ng_iface_modinfo = { + .vmi_id = VNET_MOD_NG_IFACE, + .vmi_name = "ng_iface", + .vmi_dependson = VNET_MOD_NETGRAPH, + .vmi_iattach = ng_iface_iattach, + .vmi_idetach = ng_iface_idetach +}; +#endif + /************************************************************************ HELPER STUFF ************************************************************************/ @@ -836,10 +849,18 @@ ng_iface_mod_event(module_t mod, int eve switch (event) { case MOD_LOAD: - V_ng_iface_unit = new_unrhdr(0, 0xffff, NULL); +#ifndef VIMAGE_GLOBALS + vnet_mod_register(&vnet_ng_iface_modinfo); +#else + ng_iface_iattach(NULL); +#endif break; case MOD_UNLOAD: - delete_unrhdr(V_ng_iface_unit); +#ifndef VIMAGE_GLOBALS + vnet_mod_deregister(&vnet_ng_iface_modinfo); +#else + ng_iface_idetach(NULL); +#endif break; default: error = EOPNOTSUPP; @@ -847,3 +868,21 @@ ng_iface_mod_event(module_t mod, int eve } return (error); } + +static int ng_iface_iattach(const void *unused) +{ + INIT_VNET_NETGRAPH(curvnet); + + V_ng_iface_unit = new_unrhdr(0, 0xffff, NULL); + + return (0); +} + +static int ng_iface_idetach(const void *unused) +{ + INIT_VNET_NETGRAPH(curvnet); + + delete_unrhdr(V_ng_iface_unit); + + return (0); +} From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:16:01 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5222106566B; Sun, 26 Apr 2009 07:16:01 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B3B508FC1E; Sun, 26 Apr 2009 07:16:01 +0000 (UTC) (envelope-from blackend@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 n3Q7G1rK075406; Sun, 26 Apr 2009 07:16:01 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q7G1RA075405; Sun, 26 Apr 2009 07:16:01 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260716.n3Q7G1RA075405@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 07:16:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191511 - head/release/doc/en_US.ISO8859-1/hardware X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:16:02 -0000 Author: blackend (doc committer) Date: Sun Apr 26 07:16:01 2009 New Revision: 191511 URL: http://svn.freebsd.org/changeset/base/191511 Log: Bump copyright year; Add missing colon and fix broken entity. Modified: head/release/doc/en_US.ISO8859-1/hardware/article.sgml Modified: head/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- head/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:14:50 2009 (r191510) +++ head/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:16:01 2009 (r191511) @@ -29,6 +29,7 @@ 2006 2007 2008 + 2009 The &os; Documentation Project @@ -344,7 +345,7 @@ you to try it and send a note to the &a.sparc; with your results, including which devices work and which do not. - The following systems are fully supported by &os;. + The following systems are fully supported by &os;: @@ -485,7 +486,7 @@ Starting with 7.2-RELEASE, &arch.sparc64; systems based on - &ultrasparc; III and beyond are also supported by &os, which includes + &ultrasparc; III and beyond are also supported by &os;, which includes the following known working systems: From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:38:47 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13843106567B; Sun, 26 Apr 2009 07:38:47 +0000 (UTC) (envelope-from zec@icir.org) Received: from labs4.cc.fer.hr (labs4.cc.fer.hr [161.53.72.24]) by mx1.freebsd.org (Postfix) with ESMTP id 900D38FC17; Sun, 26 Apr 2009 07:38:46 +0000 (UTC) (envelope-from zec@icir.org) Received: from sluga.fer.hr (sluga.cc.fer.hr [161.53.72.14]) by labs4.cc.fer.hr (8.14.2/8.14.2) with ESMTP id n3Q7GJCA026905; Sun, 26 Apr 2009 09:16:19 +0200 (CEST) Received: from [192.168.200.111] ([161.53.19.79]) by sluga.fer.hr over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Sun, 26 Apr 2009 09:15:57 +0200 From: Marko Zec To: src-committers@freebsd.org Date: Sun, 26 Apr 2009 09:15:52 +0200 User-Agent: KMail/1.9.10 References: <200904260709.n3Q79doO075148@svn.freebsd.org> In-Reply-To: <200904260709.n3Q79doO075148@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200904260915.52830.zec@icir.org> X-OriginalArrivalTime: 26 Apr 2009 07:15:58.0071 (UTC) FILETIME=[D8956070:01C9C63E] X-Scanned-By: MIMEDefang 2.64 on 161.53.72.24 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r191508 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:38:47 -0000 On Sunday 26 April 2009 09:09:39 Marko Zec wrote: > Author: zec > Date: Sun Apr 26 07:09:39 2009 > New Revision: 191508 > URL: http://svn.freebsd.org/changeset/base/191508 > > Log: > Extend the vnet module registration / initialization framework > first introduced @ r190909 with a vnet module deregistration > service. > > kldunloadable modules, which are currently using vnet_mod_register() > to attach their per-vnet initialization routines to the vnet > initialization framework, should call vnet_mod_deregister() before > acknowledging MOD_UNLOAD requests in their mod_event handlers. Such > changes to the existing code base will follow in subsequent commits. > > vnet_mod_deregister() does not check whether departing vnet modules > are registered as prerequisites for another module(s), so it should > be used with care. Currently I'm only aware of vnet modules which > are leafs on module dependency graphs that are kldunloadable. > > This change also introduces per-vnet module destructor handler, which > calls vnet's module cleanup function, which (if required) has to be > registered in vnet module's vnet_modinfo_t structure .vmi_idetach > field. Once options VIMAGE becomes operational, the framework will > take care that module's cleanup function become invoked for each > active vnet instance, and that the memory allocated for each instance > gets freed. Currently calls to destructor handlers must always > succeed. Missing in the log: Approved by: julian (mentor) Reviewed by: bz Sorry... Marko > Modified: > head/sys/kern/kern_vimage.c > head/sys/sys/vimage.h > > Modified: head/sys/kern/kern_vimage.c > =========================================================================== >=== --- head/sys/kern/kern_vimage.c Sun Apr 26 03:55:08 2009 (r191507) +++ > head/sys/kern/kern_vimage.c Sun Apr 26 07:09:39 2009 (r191508) @@ -47,6 > +47,7 @@ static TAILQ_HEAD(vnet_modlink_head, vne > static TAILQ_HEAD(vnet_modpending_head, vnet_modlink) > vnet_modpending_head; static void vnet_mod_complete_registration(struct > vnet_modlink *); static int vnet_mod_constructor(struct vnet_modlink *); > +static int vnet_mod_destructor(struct vnet_modlink *); > > void > vnet_mod_register(const struct vnet_modinfo *vmi) > @@ -144,6 +145,37 @@ vnet_mod_complete_registration(struct vn > } while (vml_iter != NULL); > } > > +void > +vnet_mod_deregister(const struct vnet_modinfo *vmi) > +{ > + > + vnet_mod_deregister_multi(vmi, NULL, NULL); > +} > + > +void > +vnet_mod_deregister_multi(const struct vnet_modinfo *vmi, void *iarg, > + char *iname) > +{ > + VNET_ITERATOR_DECL(vnet_iter); > + struct vnet_modlink *vml; > + > + TAILQ_FOREACH(vml, &vnet_modlink_head, vml_mod_le) > + if (vml->vml_modinfo == vmi && vml->vml_iarg == iarg) > + break; > + if (vml == NULL) > + panic("cannot deregister unregistered vnet module %s", > + vmi->vmi_name); > + > + VNET_FOREACH(vnet_iter) { > + CURVNET_SET_QUIET(vnet_iter); > + vnet_mod_destructor(vml); > + CURVNET_RESTORE(); > + } > + > + TAILQ_REMOVE(&vnet_modlink_head, vml, vml_mod_le); > + free(vml, M_VIMAGE); > +} > + > static int vnet_mod_constructor(struct vnet_modlink *vml) > { > const struct vnet_modinfo *vmi = vml->vml_modinfo; > @@ -153,16 +185,18 @@ static int vnet_mod_constructor(struct v > if (vml->vml_iarg) > printf("/%s", vml->vml_iname); > printf(": "); > - if (vmi->vmi_struct_size) > - printf("malloc(%zu); ", vmi->vmi_struct_size); > +#ifdef VIMAGE > + if (vmi->vmi_size) > + printf("malloc(%zu); ", vmi->vmi_size); > +#endif > if (vmi->vmi_iattach != NULL) > printf("iattach()"); > printf("\n"); > #endif > > #ifdef VIMAGE > - if (vmi->vmi_struct_size) { > - void *mem = malloc(vmi->vmi_struct_size, M_VNET, > + if (vmi->vmi_size) { > + void *mem = malloc(vmi->vmi_size, M_VNET, > M_NOWAIT | M_ZERO); > if (mem == NULL) /* XXX should return error, not panic. */ > panic("vi_alloc: malloc for %s\n", vmi->vmi_name); > @@ -176,6 +210,41 @@ static int vnet_mod_constructor(struct v > return (0); > } > > + > +static int > +vnet_mod_destructor(struct vnet_modlink *vml) > +{ > + const struct vnet_modinfo *vmi = vml->vml_modinfo; > + > +#ifdef DEBUG_ORDERING > + printf("destroying vnet_%s", vmi->vmi_name); > + if (vml->vml_iarg) > + printf("/%s", vml->vml_iname); > + printf(": "); > + if (vmi->vmi_idetach != NULL) > + printf("idetach(); "); > +#ifdef VIMAGE > + if (vmi->vmi_size) > + printf("free()"); > +#endif > + printf("\n"); > +#endif > + > + if (vmi->vmi_idetach) > + vmi->vmi_idetach(vml->vml_iarg); > + > +#ifdef VIMAGE > + if (vmi->vmi_size) { > + if (curvnet->mod_data[vmi->vmi_id] == NULL) > + panic("vi_destroy: %s\n", vmi->vmi_name); > + free(curvnet->mod_data[vmi->vmi_id], M_VNET); > + curvnet->mod_data[vmi->vmi_id] = NULL; > + } > +#endif > + > + return (0); > +} > + > /* > * vi_symlookup() attempts to resolve name to address queries for > * variables which have been moved from global namespace to virtualization > > Modified: head/sys/sys/vimage.h > =========================================================================== >=== --- head/sys/sys/vimage.h Sun Apr 26 03:55:08 2009 (r191507) > +++ head/sys/sys/vimage.h Sun Apr 26 07:09:39 2009 (r191508) > @@ -121,6 +121,8 @@ struct vnet_modlink { > int vi_symlookup(struct kld_sym_lookup *, char *); > void vnet_mod_register(const struct vnet_modinfo *); > void vnet_mod_register_multi(const struct vnet_modinfo *, void *, char *); > +void vnet_mod_deregister(const struct vnet_modinfo *); > +void vnet_mod_deregister_multi(const struct vnet_modinfo *, void *, char > *); > > #endif /* !VIMAGE_GLOBALS */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 07:58:00 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0EB1106566C; Sun, 26 Apr 2009 07:58:00 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE39B8FC08; Sun, 26 Apr 2009 07:58:00 +0000 (UTC) (envelope-from blackend@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 n3Q7w0m9076397; Sun, 26 Apr 2009 07:58:00 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q7w0L3076396; Sun, 26 Apr 2009 07:58:00 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260758.n3Q7w0L3076396@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 07:58:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191512 - stable/7/release/doc/en_US.ISO8859-1/hardware X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 07:58:01 -0000 Author: blackend (doc committer) Date: Sun Apr 26 07:58:00 2009 New Revision: 191512 URL: http://svn.freebsd.org/changeset/base/191512 Log: MFC: r191509: Unbreak the build of relnotes. r191511: Bump copyright year; Add missing colon and fix broken entity. Approved by: re (implicit) Modified: stable/7/release/doc/en_US.ISO8859-1/hardware/article.sgml Modified: stable/7/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- stable/7/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:16:01 2009 (r191511) +++ stable/7/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:58:00 2009 (r191512) @@ -30,6 +30,7 @@ 2006 2007 2008 + 2009 The &os; Documentation Project @@ -338,7 +339,7 @@ try it and send a note to the &a.sparc; with your results, including which devices work and which do not. - The following systems are fully supported by &os;. + The following systems are fully supported by &os;: @@ -449,7 +450,7 @@ Starting with 7.2-RELEASE, &arch.sparc64; systems based on - &ultrasparc; III and beyond are also supported by &os, which includes + &ultrasparc; III and beyond are also supported by &os;, which includes the following known working systems: @@ -480,7 +481,7 @@ The following &ultrasparc; IIIi systems are not tested but - believed to be also supported by &os: + believed to be also supported by &os;: From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 08:00:41 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE965106566B; Sun, 26 Apr 2009 08:00:41 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AC6E98FC1B; Sun, 26 Apr 2009 08:00:41 +0000 (UTC) (envelope-from blackend@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 n3Q80fKW076525; Sun, 26 Apr 2009 08:00:41 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q80fmb076524; Sun, 26 Apr 2009 08:00:41 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260800.n3Q80fmb076524@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 08:00:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191513 - releng/7.2/release/doc/en_US.ISO8859-1/hardware X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 08:00:42 -0000 Author: blackend (doc committer) Date: Sun Apr 26 08:00:41 2009 New Revision: 191513 URL: http://svn.freebsd.org/changeset/base/191513 Log: MFC: r191509: Unbreak the build of relnotes. r191511: Bump copyright year; Add missing colon and fix broken entity. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 07:58:00 2009 (r191512) +++ releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 08:00:41 2009 (r191513) @@ -339,7 +339,7 @@ try it and send a note to the &a.sparc; with your results, including which devices work and which do not. - The following systems are fully supported by &os;. + The following systems are fully supported by &os;: @@ -450,7 +450,7 @@ Starting with 7.2-RELEASE, &arch.sparc64; systems based on - &ultrasparc; III and beyond are also supported by &os, which includes + &ultrasparc; III and beyond are also supported by &os:, which includes the following known working systems: @@ -481,7 +481,7 @@ The following &ultrasparc; IIIi systems are not tested but - believed to be also supported by &os: + believed to be also supported by &os;: From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 08:17:14 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB2CD106566C; Sun, 26 Apr 2009 08:17:14 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A025B8FC0C; Sun, 26 Apr 2009 08:17:14 +0000 (UTC) (envelope-from blackend@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 n3Q8HEBK076898; Sun, 26 Apr 2009 08:17:14 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q8HEFq076897; Sun, 26 Apr 2009 08:17:14 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260817.n3Q8HEFq076897@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 08:17:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191514 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 08:17:15 -0000 Author: blackend (doc committer) Date: Sun Apr 26 08:17:14 2009 New Revision: 191514 URL: http://svn.freebsd.org/changeset/base/191514 Log: - Add/usr trademarks for Windows; - Various typo fixes. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 08:00:41 2009 (r191513) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 08:17:14 2009 (r191514) @@ -33,6 +33,7 @@ &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; + &tm-attrib.microsoft; &tm-attrib.sparc; &tm-attrib.general; @@ -207,13 +208,13 @@ Kernel Changes - &os; DTrace subsystem now supports a probes for process execution. + &os; DTrace subsystem now supports a probe for process execution. Boot Loader Changes The &man.boot.8; now supports 4-byte volume ID that - certain versions of Windows put into the MBR and invoking + certain versions of &windows; put into the MBR and invoking PXE by pressing F6 key on some supported BIOSes. The &man.loader.8; is now able to obtain DHCP options @@ -243,14 +244,14 @@ The &man.snd.hda.4; driver has been updated. Changes include: multiple codec per HDA bus, multiple functional - gropups per codec, multiple audio devices per functional + groups per codec, multiple audio devices per functional group, digital (SPDIF/HDMI) audio input/output, suspend/resume, and part of multichannel audio. Note that due to added HDMI audio and logical audio devices support, updated driver often provides several PCM devices. In some cases it can make system default audio - device no longer corresponding to the users's habbitual + device no longer corresponding to the users's habitual audio connectors. In such cases the default device can be specified in audio application setup or defined globally via hw.snd.default_unit sysctl @@ -294,7 +295,7 @@ transfers. The &man.sdhci.4; driver has been added. This supports - PCI devices with class 8 and subclass 5 accord- ing to SD Host + PCI devices with class 8 and subclass 5 according to SD Host Controller Specification. The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver @@ -319,7 +320,7 @@ request. The &man.fsck.8; utility now supports a - flag for catastriphic recovery mode, which + flag for catastrophic recovery mode, which will enable certain aggressive operations that can make &man.fsck.8; to survive with file systems that has very serious data damage, which is an useful last resort when on From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 08:29:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4EA21065678; Sun, 26 Apr 2009 08:29:35 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D217B8FC15; Sun, 26 Apr 2009 08:29:35 +0000 (UTC) (envelope-from hrs@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 n3Q8TZPJ077220; Sun, 26 Apr 2009 08:29:35 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q8TZDj077219; Sun, 26 Apr 2009 08:29:35 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904260829.n3Q8TZDj077219@svn.freebsd.org> From: Hiroki Sato Date: Sun, 26 Apr 2009 08:29:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191515 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 08:29:36 -0000 Author: hrs Date: Sun Apr 26 08:29:35 2009 New Revision: 191515 URL: http://svn.freebsd.org/changeset/base/191515 Log: Update release notes: amd64 KVA space to 6GB, variable reference in loader(8) script fixed, debug.batt.batt_sleep_ms added, snd_au88x0(4) removed, typo in igb(4) hw.igb.ave_latency fixed, gvinum plex access permission issue fixed, du(1) -l flag added, "netstat -m -N foo" issue fixed, and wc(1) -L flag added. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 08:17:14 2009 (r191514) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 08:29:35 2009 (r191515) @@ -208,7 +208,13 @@ Kernel Changes - &os; DTrace subsystem now supports a probe for process execution. + The &os; DTrace subsystem now supports a probe for + process execution. + + The &os; kernel virtual address space has + been increased to 6GB and the ceiling on the kmem map size + to 3.6GB. Note that the ceiling as a fraction of the kernel + map size rather than an absolute quantity. Boot Loader Changes @@ -219,11 +225,23 @@ The &man.loader.8; is now able to obtain DHCP options via &man.kenv.2; variables in the case of network boot. + + A bug in the &man.loader.8; has been fixed. Now the + following line works as expected: + + loader_conf_files="foo bar ${variable}" Hardware Support + The &man.acpi.4; subsystem now supports a &man.sysctl.8; + variable debug.batt.batt_sleep_ms. On + some laptops with smart batteries, enabling battery + monitoring software causes keystrokes from &man.atkbd.4; to + be lost. This sysctl variable adds a delay in millisecond + to the status checking code as a workaround. + The &man.cpuctl.4; driver, which provides a special device /dev/cpuctl as an interface to the system CPU and functionality to retrieve CPUID @@ -242,6 +260,10 @@ chips, XGI V3XE/V5/V8, and Intel i915 chipsets has been improved. + The snd_au88x0(4) driver for Aureal Vortex + 1/2/Advantage PCI has been removed because this was + broken for a long time. + The &man.snd.hda.4; driver has been updated. Changes include: multiple codec per HDA bus, multiple functional groups per codec, multiple audio devices per functional @@ -264,6 +286,10 @@ The ciphy(4) driver now supports Vitesse VSC8211 PHY. + A bug in &man.igb.4; driver which prevents a tunable + hw.igb.ave_latency from working has + been fixed. + The &man.jme.4; driver now supports newer JMicron JMC250/JMC260 revisions. @@ -290,6 +316,12 @@ The &man.ata.4; driver now supports Marvell PATA M88SX6121. + An issue in the &man.gvinum.8; with access permissions + to underlying disks used by a gvinum plex has been fixed. + If the plex is a raid5 plex and is being written to, parity data might + have to be read from the underlying disks, requiring them to be opened for + reading as well as writing. + The &man.mmc.4; and &man.mmcsd.4; driver now support MMC and SDHC cards, high speed timing, wide bus, and multiblock transfers. @@ -315,6 +347,10 @@ The &man.config.8; utility now supports multiple makeoption lines. + The &man.du.1; utility now supports an + flag. When specified, the &man.du.1; counts a file with + multiple hard links as multiple different files. + The &man.fetch.1; utility now supports an flag which supports If-Modified-Since HTTP request. @@ -331,6 +367,12 @@ messages for a NAT rule even when a flag is specified. + A bug in the &man.netstat.1; utility has been fixed. It + crashed with the following options in the previous + versions: + + &prompt.user; netstat -m -N foo + The &man.powerd.8; program has been improved. Changes include reasonable CPU load estimation on SMP systems and a new mode named as hiadaptive for AC-powered @@ -341,6 +383,10 @@ The &man.strndup.3; function has been added. + The &man.wc.1; utility now supports an + flag to output the number of characters in the longest input + line. + A bug in the &man.rpc.yppasswdd.8; program which leaves a zombie process when a password or default shell is changed has been fixed. From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 09:21:38 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5394F106566C; Sun, 26 Apr 2009 09:21:38 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4201E8FC13; Sun, 26 Apr 2009 09:21:38 +0000 (UTC) (envelope-from ed@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 n3Q9LctY078280; Sun, 26 Apr 2009 09:21:38 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q9LcUO078279; Sun, 26 Apr 2009 09:21:38 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200904260921.n3Q9LcUO078279@svn.freebsd.org> From: Ed Schouten Date: Sun, 26 Apr 2009 09:21:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191516 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 09:21:38 -0000 Author: ed Date: Sun Apr 26 09:21:37 2009 New Revision: 191516 URL: http://svn.freebsd.org/changeset/base/191516 Log: Remove unneeded device index from unit number. We only use the unit number to determine whether we should rewind the device upon closure. Modified: head/sys/dev/ata/atapi-tape.c Modified: head/sys/dev/ata/atapi-tape.c ============================================================================== --- head/sys/dev/ata/atapi-tape.c Sun Apr 26 08:29:35 2009 (r191515) +++ head/sys/dev/ata/atapi-tape.c Sun Apr 26 09:21:37 2009 (r191516) @@ -138,15 +138,13 @@ ast_attach(device_t dev) DEVSTAT_NO_ORDERED_TAGS, DEVSTAT_TYPE_SEQUENTIAL | DEVSTAT_TYPE_IF_IDE, DEVSTAT_PRIORITY_TAPE); - device = make_dev(&ast_cdevsw, 2 * device_get_unit(dev), - UID_ROOT, GID_OPERATOR, 0640, "ast%d", - device_get_unit(dev)); + device = make_dev(&ast_cdevsw, 0, UID_ROOT, GID_OPERATOR, 0640, + "ast%d", device_get_unit(dev)); device->si_drv1 = dev; device->si_iosize_max = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS; stp->dev1 = device; - device = make_dev(&ast_cdevsw, 2 * device_get_unit(dev) + 1, - UID_ROOT, GID_OPERATOR, 0640, "nast%d", - device_get_unit(dev)); + device = make_dev(&ast_cdevsw, 1, UID_ROOT, GID_OPERATOR, 0640, + "nast%d", device_get_unit(dev)); device->si_drv1 = dev; device->si_iosize_max = ch->dma.max_iosize; stp->dev2 = device; @@ -238,8 +236,8 @@ ast_close(struct cdev *cdev, int flags, (stp->flags & (F_DATA_WRITTEN | F_FM_WRITTEN)) == F_DATA_WRITTEN) ast_write_filemark(dev, ATAPI_WF_WRITE); - /* if minor is even rewind on close */ - if (!(dev2unit(cdev) & 0x01)) + /* if unit is zero rewind on close */ + if (dev2unit(cdev) == 0) ast_rewind(dev); if (stp->cap.lock && count_dev(cdev) == 1) From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 09:31:59 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79EAF1065676; Sun, 26 Apr 2009 09:31:59 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6616A8FC13; Sun, 26 Apr 2009 09:31:59 +0000 (UTC) (envelope-from ed@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 n3Q9VxaY078534; Sun, 26 Apr 2009 09:31:59 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q9Vxmo078533; Sun, 26 Apr 2009 09:31:59 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200904260931.n3Q9Vxmo078533@svn.freebsd.org> From: Ed Schouten Date: Sun, 26 Apr 2009 09:31:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191517 - in head: contrib/amd/m4 contrib/bind contrib/bind9/lib/dns/sec contrib/cvs/tools/pcl-cvs contrib/gcc/config/alpha contrib/gcc/config/frv contrib/gcc/config/mpw contrib/gcc/con... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 09:31:59 -0000 Author: ed Date: Sun Apr 26 09:31:58 2009 New Revision: 191517 URL: http://svn.freebsd.org/changeset/base/191517 Log: Remove empty directories from the HEAD. Discussed with: developers, imp Deleted: head/contrib/amd/m4/ head/contrib/bind/ head/contrib/bind9/lib/dns/sec/ head/contrib/cvs/tools/pcl-cvs/ head/contrib/gcc/config/alpha/ head/contrib/gcc/config/frv/ head/contrib/gcc/config/mpw/ head/contrib/gcc/contrib/regression/ head/contrib/gcc/f/ head/contrib/gcc/include/ head/contrib/gdb/gdb/config/none/ head/contrib/gdb/gdb/nlm/ head/contrib/groff/addftinfo/ head/contrib/groff/afmtodit/ head/contrib/groff/eqn/ head/contrib/groff/grn/ head/contrib/groff/grodvi/ head/contrib/groff/groff/ head/contrib/groff/grog/ head/contrib/groff/grohtml/ head/contrib/groff/grolbp/ head/contrib/groff/grolj4/ head/contrib/groff/grops/ head/contrib/groff/grotty/ head/contrib/groff/hpftodit/ head/contrib/groff/include/ head/contrib/groff/indxbib/ head/contrib/groff/libbib/ head/contrib/groff/libdriver/ head/contrib/groff/libgroff/ head/contrib/groff/lkbib/ head/contrib/groff/lookbib/ head/contrib/groff/mm/ head/contrib/groff/nroff/ head/contrib/groff/pfbtops/ head/contrib/groff/pic/ head/contrib/groff/refer/ head/contrib/groff/soelim/ head/contrib/groff/src/xditview/ head/contrib/groff/tbl/ head/contrib/groff/tfmtodit/ head/contrib/groff/troff/ head/contrib/groff/xditview/ head/contrib/libpcap/doc/ head/contrib/libstdc++/config/abi/alpha-freebsd5/ head/contrib/libstdc++/config/abi/alpha-linux-gnu/ head/contrib/libstdc++/config/abi/alphaev67-unknown-linux-gnu/ head/contrib/libstdc++/config/abi/arm-linux-gnu/ head/contrib/libstdc++/config/abi/hppa-linux-gnu/ head/contrib/libstdc++/config/abi/i386-freebsd4/ head/contrib/libstdc++/config/abi/i386-freebsd5/ head/contrib/libstdc++/config/abi/i386-linux-gnu/ head/contrib/libstdc++/config/abi/i486-linux-gnu/ head/contrib/libstdc++/config/abi/i686-pc-linux-gnu/ head/contrib/libstdc++/config/abi/ia64-linux-gnu/ head/contrib/libstdc++/config/abi/ia64-unknown-linux-gnu/ head/contrib/libstdc++/config/abi/m68k-linux-gnu/ head/contrib/libstdc++/config/abi/mips-linux-gnu/ head/contrib/libstdc++/config/abi/powerpc-linux-gnu/ head/contrib/libstdc++/config/abi/s390-linux-gnu/ head/contrib/libstdc++/config/abi/s390x-linux-gnu/ head/contrib/libstdc++/config/abi/sparc-freebsd5/ head/contrib/libstdc++/config/abi/sparc-linux-gnu/ head/contrib/libstdc++/config/abi/x86_64-linux-gnu/32/ head/contrib/libstdc++/config/cpu/alpha/bits/ head/contrib/libstdc++/config/cpu/arm/bits/ head/contrib/libstdc++/config/cpu/cris/bits/ head/contrib/libstdc++/config/cpu/generic/bits/ head/contrib/libstdc++/config/cpu/i386/bits/ head/contrib/libstdc++/config/cpu/i486/bits/ head/contrib/libstdc++/config/cpu/ia64/bits/ head/contrib/libstdc++/config/cpu/m68k/bits/ head/contrib/libstdc++/config/cpu/mips/bits/ head/contrib/libstdc++/config/cpu/mmix/bits/ head/contrib/libstdc++/config/cpu/powerpc/bits/ head/contrib/libstdc++/config/cpu/s390/bits/ head/contrib/libstdc++/config/cpu/sparc/bits/ head/contrib/libstdc++/config/cpu/x86-64/bits/ head/contrib/libstdc++/config/os/aix/bits/ head/contrib/libstdc++/config/os/bsd/freebsd/bits/ head/contrib/libstdc++/config/os/bsd/netbsd/bits/ head/contrib/libstdc++/config/os/djgpp/bits/ head/contrib/libstdc++/config/os/generic/bits/ head/contrib/libstdc++/config/os/gnu-linux/bits/ head/contrib/libstdc++/config/os/hpux/bits/ head/contrib/libstdc++/config/os/irix/irix5.2/bits/ head/contrib/libstdc++/config/os/irix/irix6.5/bits/ head/contrib/libstdc++/config/os/mingw32/bits/ head/contrib/libstdc++/config/os/newlib/bits/ head/contrib/libstdc++/config/os/osf/osf5.0/bits/ head/contrib/libstdc++/config/os/qnx/qnx6.1/bits/ head/contrib/libstdc++/config/os/solaris/solaris2.5/bits/ head/contrib/libstdc++/config/os/solaris/solaris2.6/bits/ head/contrib/libstdc++/config/os/solaris/solaris2.7/bits/ head/contrib/libstdc++/include/c_shadow/bits/ head/contrib/libstdc++/include/c_shadow/sys/ head/contrib/ncurses/tack/ head/contrib/ntp/html/hints/ head/contrib/ntp/scripts/support/ head/contrib/openpam/modules/pam_dummy/ head/crypto/openssl/os2/ head/gnu/usr.bin/perl/ head/gnu/usr.bin/pr/ head/gnu/usr.bin/texinfo/info-files/ head/lib/libftp/ head/libexec/bugfiler/ head/libexec/kpasswdd/ head/sys/cddl/dev/dtnfsclient/ head/sys/modules/ata/ata/ head/tools/tools/nanobsd/rescue/Files/conf/ head/tools/tools/nanobsd/rescue/Pkg/ head/usr.bin/compile_et/test/ head/usr.bin/diff/ head/usr.bin/grep/egrep/ head/usr.bin/timedef/ head/usr.sbin/bootpd/ head/usr.sbin/update/ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 09:36:55 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCA95106566B; Sun, 26 Apr 2009 09:36:55 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C918C8FC0C; Sun, 26 Apr 2009 09:36:55 +0000 (UTC) (envelope-from ed@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 n3Q9atGm078666; Sun, 26 Apr 2009 09:36:55 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q9atSs078665; Sun, 26 Apr 2009 09:36:55 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200904260936.n3Q9atSs078665@svn.freebsd.org> From: Ed Schouten Date: Sun, 26 Apr 2009 09:36:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191518 - in head: contrib/gcc/contrib contrib/libstdc++/config/abi/x86_64-linux-gnu contrib/libstdc++/config/cpu/mmix contrib/libstdc++/config/cpu/s390 contrib/libstdc++/config/cpu/x86... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 09:36:56 -0000 Author: ed Date: Sun Apr 26 09:36:55 2009 New Revision: 191518 URL: http://svn.freebsd.org/changeset/base/191518 Log: Remove even more empty directories. I just used `hidesvn find . -type d -empty' to figure out which directories are empty. This means I couldn't easily figure out which directories only contained empty subdirectories. Deleted: head/contrib/gcc/contrib/ head/contrib/libstdc++/config/abi/x86_64-linux-gnu/ head/contrib/libstdc++/config/cpu/mmix/ head/contrib/libstdc++/config/cpu/s390/ head/contrib/libstdc++/config/cpu/x86-64/ head/contrib/libstdc++/config/os/osf/ head/contrib/libstdc++/include/c_shadow/ head/usr.bin/grep/ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 09:54:03 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A64011065670; Sun, 26 Apr 2009 09:54:03 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 93BE78FC17; Sun, 26 Apr 2009 09:54:03 +0000 (UTC) (envelope-from blackend@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 n3Q9s3GF078999; Sun, 26 Apr 2009 09:54:03 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3Q9s32v078998; Sun, 26 Apr 2009 09:54:03 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904260954.n3Q9s32v078998@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 09:54:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191519 - releng/7.2/release/doc/en_US.ISO8859-1/hardware X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 09:54:04 -0000 Author: blackend (doc committer) Date: Sun Apr 26 09:54:03 2009 New Revision: 191519 URL: http://svn.freebsd.org/changeset/base/191519 Log: s/&os:/&os;/ wrongly added by myself (damn it builded fine even with the wrong version:( ) Submitted by: marius Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 09:36:55 2009 (r191518) +++ releng/7.2/release/doc/en_US.ISO8859-1/hardware/article.sgml Sun Apr 26 09:54:03 2009 (r191519) @@ -450,7 +450,7 @@ Starting with 7.2-RELEASE, &arch.sparc64; systems based on - &ultrasparc; III and beyond are also supported by &os:, which includes + &ultrasparc; III and beyond are also supported by &os;, which includes the following known working systems: From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 10:12:20 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74AD5106564A; Sun, 26 Apr 2009 10:12:20 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 62B208FC08; Sun, 26 Apr 2009 10:12:20 +0000 (UTC) (envelope-from trasz@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 n3QACKpl079424; Sun, 26 Apr 2009 10:12:20 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QACKVw079423; Sun, 26 Apr 2009 10:12:20 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <200904261012.n3QACKVw079423@svn.freebsd.org> From: Edward Tomasz Napierala Date: Sun, 26 Apr 2009 10:12:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191520 - head/lib/libc/posix1e X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 10:12:20 -0000 Author: trasz Date: Sun Apr 26 10:12:20 2009 New Revision: 191520 URL: http://svn.freebsd.org/changeset/base/191520 Log: Fix typo. Modified: head/lib/libc/posix1e/acl_set_qualifier.3 Modified: head/lib/libc/posix1e/acl_set_qualifier.3 ============================================================================== --- head/lib/libc/posix1e/acl_set_qualifier.3 Sun Apr 26 09:54:03 2009 (r191519) +++ head/lib/libc/posix1e/acl_set_qualifier.3 Sun Apr 26 10:12:20 2009 (r191520) @@ -42,7 +42,7 @@ The .Fn acl_set_qualifier function -is a POSIX.1e call that sets the qualifier of the tag for the ACl entry +is a POSIX.1e call that sets the qualifier of the tag for the ACL entry .Fa entry_d to the value referred to by .Fa tag_qualifier_p . From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 10:32:18 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C4551106564A; Sun, 26 Apr 2009 10:32:18 +0000 (UTC) (envelope-from bms@incunabulum.net) Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by mx1.freebsd.org (Postfix) with ESMTP id 938218FC14; Sun, 26 Apr 2009 10:32:18 +0000 (UTC) (envelope-from bms@incunabulum.net) Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id 21116322AFD; Sun, 26 Apr 2009 06:32:18 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute2.internal (MEProxy); Sun, 26 Apr 2009 06:32:18 -0400 X-Sasl-enc: 1WBoM+ZOKj76ZY9Hb6r7mO7MjwmRp0BhsAz/MIlvAwZO 1240741937 Received: from [192.168.123.18] (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id B8A7A54501; Sun, 26 Apr 2009 06:32:16 -0400 (EDT) Message-ID: <49F4382E.7030105@incunabulum.net> Date: Sun, 26 Apr 2009 11:32:14 +0100 From: Bruce Simpson User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Robert Watson References: <200904212243.n3LMhW48027008@svn.freebsd.org> <49EEDB9C.8080409@incunabulum.net> <49EEE63F.2060706@incunabulum.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191367 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 10:32:19 -0000 Robert Watson wrote: > ... >> >> Now that Giant is nuked, the netisr could be eliminated and the ifnet >> rlock taken as it is before dispatching an entire chain. I only >> implemented a netisr to allow the code to be back-ported, however I >> don't care about back-porting any more -- it's too much effort and >> the time/funding budget doesn't justify that amount of work. > > Have you thought about registering a callback with the > ifnet_departure_event event handler to handle interfaces disappearing? The igmp_domifdetach() function will already do an IF_DRAIN() for the link-scope queue, so registering a departure event handler would probably just introduce another point of possible race. ;-) Now that Giant has gone away, and the lock recursion in the lower half of IP to do with IN_MULTI_LOCK() has been eliminated, it might make more sense to ditch the netisr -- I only used it as 7.x was my initial target, but of course time grinds on, as does development. As of today, the MLDv2 code builds in my p4 branch, and I need to rewrite mtest so it can grok IPv6 properly. http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/bms/netdev/sys/netinet6&HIDEDEL=NO As things currently stand, I don't plan to back-port the IGMPv3 or MLDv2 code to previous FreeBSD versions, but it would make sense to leave the netisr in SVN history so that I (or someone else) can do that if there's demand for it (probably not, as ABIs get broken, though there are ways around that). Once MLDv2 is in SVN, I'd feel better about eliminating the use of the netisr entirely in 8.x. MLDv1 as implemented in KAME has a little kludge in it to introduce jitter on the link-scope 'solicited multicast' group membership reports -- this exists mostly to support IPv6's Duplicate Address Detection (DAD) mechanism. MLDv2 does not require this jitter -- it's built into the MLDv2 protocol already, as state change reports are deferred to give the local node a chance to merge them, and these ones only get seen when IPv6 is initially attached to an ifnet. BTW: Thanks so much for tackling the ifdead stuff, this is a big help towards streamlining against possible races such as the ones Sam saw with the 802.11 VAP code right after SSM went in. Also, thanks for catching the use-after-free in mainline, I have now patched this in the MLDv2 fork. cheers, BMS From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 14:03:53 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C6351065675; Sun, 26 Apr 2009 14:03:53 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3A4868FC1D; Sun, 26 Apr 2009 14:03:53 +0000 (UTC) (envelope-from hrs@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 n3QE3rT4085520; Sun, 26 Apr 2009 14:03:53 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QE3rpI085519; Sun, 26 Apr 2009 14:03:53 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904261403.n3QE3rpI085519@svn.freebsd.org> From: Hiroki Sato Date: Sun, 26 Apr 2009 14:03:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191521 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 14:03:53 -0000 Author: hrs Date: Sun Apr 26 14:03:52 2009 New Revision: 191521 URL: http://svn.freebsd.org/changeset/base/191521 Log: Update release notes: FREEBSD32 syscall translation layer now supports addition/removal of syscall from kernel module, VFS_AIO syscalls added to FREEBSD32, ktr(4) new tracepoint for callout added, cpufreq(4) hw.est.msr_info added, kern.timecounter.invariant_tsc for i386 and amd64 added, vfs.lookup_shared improvement and removal of LOOKUP_SHARED option, and netstat(1) -ss for icmp6 section fixed. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 10:12:20 2009 (r191520) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 14:03:52 2009 (r191521) @@ -216,6 +216,18 @@ to 3.6GB. Note that the ceiling as a fraction of the kernel map size rather than an absolute quantity. + The &man.kld.4; now supports installing 32-bit system + call to the &os; system call translation layer from kernel + modules. + + The &os; 32-bit system call translation layer now + supports installing 32-bit system calls for + VFS_AIO. + + The &man.ktr.4; now supports a new KTR tracepoint in the + KTR_CALLOUT class to note when a callout + routine finishes executing. + Boot Loader Changes @@ -248,6 +260,20 @@ information, read/write machine specific registers (MSR) and perform CPU firmware updates. + The &man.cpufreq.4; driver now supports a + hw.est.msr_info loader tunable. When + this set to 1, it attempts to build a + simple list containing just the high and low frequencies if + it cannot obtain a frequency list from either ACPI or the + static tables. This is disabled by default. + + CPU frequency change notifiers are now + disabled when the TSC is P-state invariant. Also, a new + loader tunable + kern.timecounter.invariant_tsc has been + added to force this behavior by setting it to + non-zero. + Multimedia Support @@ -337,7 +363,13 @@ File Systems - + The shared vnode locking for pathname lookups in + &man.VFS.9; subsystem has been improved. This is disabled + by default. Setting a sysctl variable + vfs.lookup_shared to 1 + enables it for better performance. Note that the + LOOKUP_SHARED equivalent to the sysctl + variable kernel option has been removed. @@ -373,6 +405,10 @@ &prompt.user; netstat -m -N foo + A bug in the &man.netstat.1; utility has been fixed. The + now works in the icmp6 section as + expected. + The &man.powerd.8; program has been improved. Changes include reasonable CPU load estimation on SMP systems and a new mode named as hiadaptive for AC-powered From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 16:56:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 318031065670; Sun, 26 Apr 2009 16:56:04 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EC4A8FC18; Sun, 26 Apr 2009 16:56:04 +0000 (UTC) (envelope-from hrs@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 n3QGu4of089244; Sun, 26 Apr 2009 16:56:04 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QGu4Wk089243; Sun, 26 Apr 2009 16:56:04 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904261656.n3QGu4Wk089243@svn.freebsd.org> From: Hiroki Sato Date: Sun, 26 Apr 2009 16:56:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191522 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 16:56:04 -0000 Author: hrs Date: Sun Apr 26 16:56:03 2009 New Revision: 191522 URL: http://svn.freebsd.org/changeset/base/191522 Log: Update release note: jail improvements: IPv4, IPv6, no address support, SCTP fix, cpuset(1) support, ddb show jails, version number bump, KTR_CALLOUT new tracepoint added, Superpages on amd64 and i386, acpu_asus(4) Asus A8Sr support added, axe(4) reduced csw for better performance, fxp(4) improvements including checksum offload, TSO, WoL, and VLAN, msk(4) hang up issue due to misalignment workaround, mxge(4) newer hardware support and media types, re(4) better miibus interaction support, rl(4) better miibus interaction support and fixes for >4GB system, IPv4 source address selection, tap(4) TAPGIFNAME ioctl added, unix(4) MPSAFE, sdhci(4) kernel dump support, EA semantics of [am]time update changed, atacontrol(8) minor nits fixed, dirname(1) multiple arguments support, dumpfs(8) -f flag added, fsck(8) s/-C/-D/, ln(1) -w flag added, netstat(1) unix sockets stats in -L flag, pciconf(8) -b flag added, and stat(1) octal s[gu]id in -x flag. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 14:03:52 2009 (r191521) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 16:56:03 2009 (r191522) @@ -216,17 +216,67 @@ to 3.6GB. Note that the ceiling as a fraction of the kernel map size rather than an absolute quantity. + The &man.jail.8; subsystem has been updated. Changes include: + + + + Multiple addresses of both IPv4 and IPv6 per jail has + been supported. It is even possible to have jails without + an IP address at all, which basically gives one a chrooted + environment with restricted process view and no + networking. + + + + SCTP (&man.sctp.4;) with IPv6 in jails has been supported. + + + + Specific CPU binding by using &man.cpuset.1; has been supported. + + + + A show jails subcommand in + &man.ddb.8; has been added. + + + + Compatibility support which permits 32bit jail + binaries to be used on 64bit systems to manage jails has + been added. + + + + Note that both version numbers of + jail and prison in + the &man.jail.8; have been updated for the new + features. + + + + The &man.jail.8; subsystem now supports SCTP(&man.sctp.4;) + with IPv6 in jails. + The &man.kld.4; now supports installing 32-bit system call to the &os; system call translation layer from kernel modules. + The &man.ktr.4; now supports a new KTR tracepoint in the + KTR_CALLOUT class to note when a callout + routine finishes executing. + The &os; 32-bit system call translation layer now supports installing 32-bit system calls for VFS_AIO. - The &man.ktr.4; now supports a new KTR tracepoint in the - KTR_CALLOUT class to note when a callout - routine finishes executing. + The &os; virtual memory subsystem now + supports Superpages. The Superpages is a feature in modern + CPUs that enables each entry in the TLB (translation lookaside + buffer) to map a large physical memory region into a virtual + address space. This provides possible memory savings for + applications that share large amounts of memory between the + address spaces and performance improvements due to fewer TLB + misses. Boot Loader Changes @@ -254,6 +304,9 @@ be lost. This sysctl variable adds a delay in millisecond to the status checking code as a workaround. + The &man.acpi.asus.4; driver now supports Asus A8Sr + notebooks. + The &man.cpuctl.4; driver, which provides a special device /dev/cpuctl as an interface to the system CPU and functionality to retrieve CPUID @@ -309,9 +362,48 @@ Network Interface Support + The &man.axe.4; driver has been improved in + performance by eliminating extra context switch and now + supports Apple USB Ethernet adapter. + The ciphy(4) driver now supports Vitesse VSC8211 PHY. + The &man.fxp.4; driver has been improved. Changes include: + + + + The checksum offload feature can be controlled by + &man.ifconfig.8;. + + + + Rx checksum offload support for 82559 or later + controllers has been added. + + + + TSO (TCP Segmentation Offload) support for 82550 + and 82551 controllers has been added. + + + + WoL (Wake on LAN) support for 82550, 82551, 82558, + and 82559-based controllers has been added. Note that + ICH based controllers are treated as 82559, and 82557, + earlier revision of 82558, and 82559ER have no WOL + capability. + + + + VLAN hardware tag insertion/stripping support and + Tx/Rx checksum offload for VLAN frames support have + been added. Note that the VLAN hardware assistance is + available only on 82550 or 82551-based + controllers. + + + A bug in &man.igb.4; driver which prevents a tunable hw.igb.ave_latency from working has been fixed. @@ -319,15 +411,52 @@ The &man.jme.4; driver now supports newer JMicron JMC250/JMC260 revisions. - The &man.rl.4; driver has been improved. A bug which - prevents it from working on systems with more than 4GB - memory has been fixed. + The &man.msk.4; driver has been improved. An issue + which makes it hang up in a certain condition has been + fixed. + + The &man.mxge.4; driver now supports some newer + revisions and 10GBASE-LRM and 10GBASE-Twinax* media + types. + + The &man.re.4; driver has been improved. It now + detects the link status. + + The &man.rl.4; driver has been improved. It now + detects the link status and a bug which prevents it from + working on systems with more than 4GB memory has been + fixed. Network Protocols + IPv4 source address selection for unbound sockets has + been implemented as follows: + + + + If we found a route, use the address corresponding + to the outgoing interface. + + + + Otherwise we assume the foreign address is reachable + on a directly connected network and try to find a + corresponding interface to take the source address + from. + + + + As a last resort use the default jail address. + + + + This also changes the semantics of selecting the IP for + processes within a &man.jail.8; as it now uses the same + logic as outside the &man.jail.8;. + The &man.jail.8; subsystem now supports start with a specific route FIB. @@ -335,6 +464,16 @@ ability to generate egress netflow instead or in addition to ingress. A NGM_NETFLOW_SETCONFIG control message has been added to control the new functionality. + + The &man.tap.4;, Ethernet tunnel software network + interface now supports TAPGIFNAME + character device ioctl. This is a convenient shortcut to + obtain network interface name using file descriptor for + character device. + + The domains list for handling the list of supported + domains in the &man.unix.4; (UNIX domain protocol family) + subsystem is now MPSAFE. @@ -356,6 +495,10 @@ PCI devices with class 8 and subclass 5 according to SD Host Controller Specification. + The &man.sdhci.4; driver now supports kernel dumping and + a sysctl variable hw.sdhci.debug for debug + level. + The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver are now included as a kernel module. @@ -363,6 +506,21 @@ File Systems + The semantics of &man.acl.3; extended access control + list has been changed as follows: + + + + The inode modification time (mtime) is not updated + when extended attribute are added, modified, or removed. + + + + The inode access time (atime) is not updated + when extended attribute are queried. + + + The shared vnode locking for pathname lookups in &man.VFS.9; subsystem has been improved. This is disabled by default. Setting a sysctl variable @@ -376,19 +534,40 @@ Userland Changes + A bug in the &man.atacontrol.8; utility which prevents it + from working when /usr is not mounted or + invoked from /rescue, has been + fixed. + The &man.config.8; utility now supports multiple makeoption lines. + The &man.dirname.1; utility now accepts multiple arguments + in the same way that &man.basename.1; does. + The &man.du.1; utility now supports an flag. When specified, the &man.du.1; counts a file with multiple hard links as multiple different files. + The &man.dumpfs.8; utility now supports an + flag, which causes it to list all free + fragments in the file system by fragment (block) number. This + new mode does the necessary arithmetic to generate absolute + fragment numbers rather than than the cg-relative numbers + printed in the default mode. + + If is passed once, contiguous fragment + ranges are collapsed into an X-Y format as free block lists are + currently printed in regular dumpfs output, but if specified twice, + all block numbers are printed individually, allowing both compact + and more script-friendly representation. + The &man.fetch.1; utility now supports an flag which supports If-Modified-Since HTTP request. The &man.fsck.8; utility now supports a - flag for catastrophic recovery mode, which + flag for damaged recovery mode, which will enable certain aggressive operations that can make &man.fsck.8; to survive with file systems that has very serious data damage, which is an useful last resort when on @@ -399,6 +578,15 @@ messages for a NAT rule even when a flag is specified. + The &man.ln.1; utility now supports a + flag to check if the source file actually exists. When the + flag is specified and the file does not exist, the &man.ln.1; + will put a warning message. + + The &man.netstat.1; utility now reports &man.unix.4; + sockets listen queue statistics when an + flag. + A bug in the &man.netstat.1; utility has been fixed. It crashed with the following options in the previous versions: @@ -409,6 +597,11 @@ now works in the icmp6 section as expected. + The &man.pciconf.8; utility now supports a + flag, which lists any base address + registers (BAR) that are assigned resources for each + device. + The &man.powerd.8; program has been improved. Changes include reasonable CPU load estimation on SMP systems and a new mode named as hiadaptive for AC-powered @@ -417,6 +610,10 @@ before leaving the highest frequency after the period of maximum load. + The &man.stat.1; utility now displays an octal + representation of suid, sgid and sticky bits when an + flag is specified. + The &man.strndup.3; function has been added. The &man.wc.1; utility now supports an From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 18:10:08 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D5FA106566C; Sun, 26 Apr 2009 18:10:08 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E52988FC12; Sun, 26 Apr 2009 18:10:07 +0000 (UTC) (envelope-from hrs@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 n3QIA7rg090756; Sun, 26 Apr 2009 18:10:07 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QIA7J9090755; Sun, 26 Apr 2009 18:10:07 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904261810.n3QIA7J9090755@svn.freebsd.org> From: Hiroki Sato Date: Sun, 26 Apr 2009 18:10:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191523 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 18:10:08 -0000 Author: hrs Date: Sun Apr 26 18:10:07 2009 New Revision: 191523 URL: http://svn.freebsd.org/changeset/base/191523 Log: Update release note: type of shm_segsz in struct shmid_ds to size_t from int, AltiVec support on powerpc, INTx disabled when MSI/MSIX enabled, sysctl leaf node now has an MPSAFE flag, hw.drm.msi tunable added, ale(4) in GENERIC on amd64 and i386, ata-raid(4) initial support for DDF metadata, cam(4) kern.cam.cd.retry_count sysctl, ciss(4) max device openings count fix, btpand(8) for NAP, GN, PANU profiles of bluetooth added, and improve description of the fetch(1) If-Modified-Since support. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 16:56:03 2009 (r191522) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 18:10:07 2009 (r191523) @@ -265,6 +265,14 @@ KTR_CALLOUT class to note when a callout routine finishes executing. + Types of variables used to track amount of allocated + System V shared memory from int to + size_t. This makes it possible to use more + than 2 GB shared memory segments on 64-bit architectures. + Please note the new BUGS section in &man.shmctl.2; and + /usr/src/UPDATING for limitations of this + temporal solution. + The &os; 32-bit system call translation layer now supports installing 32-bit system calls for VFS_AIO. @@ -307,6 +315,9 @@ The &man.acpi.asus.4; driver now supports Asus A8Sr notebooks. + Support for the AltiVec, a floating point + and integer SIMD instruction set has been added. + The &man.cpuctl.4; driver, which provides a special device /dev/cpuctl as an interface to the system CPU and functionality to retrieve CPUID @@ -327,6 +338,13 @@ added to force this behavior by setting it to non-zero. + In the &man.pci.4; subsystem INTx is now disabled when + MSI/MSIX is enabled. This change fixes interrupt storm + related issues. + + A &man.sysctl.3; leaf node has a flag to tag itself as + MPSAFE now. + Multimedia Support @@ -339,6 +357,10 @@ chips, XGI V3XE/V5/V8, and Intel i915 chipsets has been improved. + A new loader tunable hw.drm.msi + which controls if DRM uses MSI or not. This is set to + 1 (enabled) by default. + The snd_au88x0(4) driver for Aureal Vortex 1/2/Advantage PCI has been removed because this was broken for a long time. @@ -362,6 +384,13 @@ Network Interface Support + The &man.ale.4; driver are now + included in the GENERIC + kernel. + + The &man.ath.hal.4;, Atheros Hardware Access Layer, + has been updated to the open source version. + The &man.axe.4; driver has been improved in performance by eliminating extra context switch and now supports Apple USB Ethernet adapter. @@ -481,6 +510,25 @@ The &man.ata.4; driver now supports Marvell PATA M88SX6121. + The &man.ataraid.4; driver now has an initial support + for DDF metadata found on Adaptec HostRAID controllers. + Note that spares and rebuilds are not supported yet. + + The &man.cam.4; SCSI subsystem now supports a sysctl + variable kern.cam.cd.retry_count. This + controls the number of retries for the CD media. When + trying to read scratched or damaged CDs and DVDs, the + default mechanism is sub-optimal, and programs like + ddrescue do much better if you + turn off the retries entirely since their algorithms do it + by themselves. This value is set to 4 + (for a total 5 attempts) by default. Setting to 0 turns off + all retry attempts. + + A bug in the &man.ciss.4; driver which caused low + max device openings count that has led + to poor performance has been fixed. + An issue in the &man.gvinum.8; with access permissions to underlying disks used by a gvinum plex has been fixed. If the plex is a raid5 plex and is being written to, parity data might @@ -539,6 +587,11 @@ invoked from /rescue, has been fixed. + The &man.btpand.8; daemon from NetBSD has been added. + This daemon provides support for Bluetooth Network Access + Point (NAP), Group Ad-hoc Network (GN) and Personal Area + Network User (PANU) profiles. + The &man.config.8; utility now supports multiple makeoption lines. @@ -564,7 +617,11 @@ The &man.fetch.1; utility now supports an flag which supports If-Modified-Since HTTP - request. + 1.1 request. If specified it will cause the file to be + downloaded only if it is more recent than the mtime of the + file. Also, libfetch now accepts + the mtime in the url structure and a flag to indicate when + this behavior is desired. The &man.fsck.8; utility now supports a flag for damaged recovery mode, which From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 18:24:15 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05F421065670; Sun, 26 Apr 2009 18:24:15 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E94B28FC1A; Sun, 26 Apr 2009 18:24:14 +0000 (UTC) (envelope-from kientzle@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 n3QIOEmt091043; Sun, 26 Apr 2009 18:24:14 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QIOEh8091042; Sun, 26 Apr 2009 18:24:14 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904261824.n3QIOEh8091042@svn.freebsd.org> From: Tim Kientzle Date: Sun, 26 Apr 2009 18:24:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191524 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 18:24:15 -0000 Author: kientzle Date: Sun Apr 26 18:24:14 2009 New Revision: 191524 URL: http://svn.freebsd.org/changeset/base/191524 Log: Remove an unused variable. Thanks to: Christoph Mallon Modified: head/lib/libarchive/archive_read_support_format_empty.c Modified: head/lib/libarchive/archive_read_support_format_empty.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_empty.c Sun Apr 26 18:10:07 2009 (r191523) +++ head/lib/libarchive/archive_read_support_format_empty.c Sun Apr 26 18:24:14 2009 (r191524) @@ -59,10 +59,9 @@ archive_read_support_format_empty(struct static int archive_read_format_empty_bid(struct archive_read *a) { - const void *h; ssize_t avail; - h = __archive_read_ahead(a, 1, &avail); + (void)__archive_read_ahead(a, 1, &avail); if (avail != 0) return (-1); return (1); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 18:43:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CC4C106566C; Sun, 26 Apr 2009 18:43:50 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5C68E8FC0A; Sun, 26 Apr 2009 18:43:50 +0000 (UTC) (envelope-from kientzle@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 n3QIhoJq091485; Sun, 26 Apr 2009 18:43:50 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QIhoOe091484; Sun, 26 Apr 2009 18:43:50 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904261843.n3QIhoOe091484@svn.freebsd.org> From: Tim Kientzle Date: Sun, 26 Apr 2009 18:43:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191525 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 18:43:50 -0000 Author: kientzle Date: Sun Apr 26 18:43:49 2009 New Revision: 191525 URL: http://svn.freebsd.org/changeset/base/191525 Log: Exit with ARCHIVE_FATAL if the ISO image is truncated. Modified: head/lib/libarchive/archive_read_support_format_iso9660.c Modified: head/lib/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_iso9660.c Sun Apr 26 18:24:14 2009 (r191524) +++ head/lib/libarchive/archive_read_support_format_iso9660.c Sun Apr 26 18:43:49 2009 (r191525) @@ -683,7 +683,7 @@ archive_read_format_iso9660_read_data(st if (bytes_read == 0) archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Truncated input file"); - if (buff == NULL) + if (*buff == NULL) return (ARCHIVE_FATAL); if (bytes_read > iso9660->entry_bytes_remaining) bytes_read = iso9660->entry_bytes_remaining; From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 18:46:41 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F98D1065676; Sun, 26 Apr 2009 18:46:41 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 63B118FC23; Sun, 26 Apr 2009 18:46:41 +0000 (UTC) (envelope-from kientzle@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 n3QIkfVD091587; Sun, 26 Apr 2009 18:46:41 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QIkfMn091586; Sun, 26 Apr 2009 18:46:41 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904261846.n3QIkfMn091586@svn.freebsd.org> From: Tim Kientzle Date: Sun, 26 Apr 2009 18:46:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191526 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 18:46:42 -0000 Author: kientzle Date: Sun Apr 26 18:46:40 2009 New Revision: 191526 URL: http://svn.freebsd.org/changeset/base/191526 Log: Various improvements to the tar.5 manpage, including descriptions of the GNU tar "posix-style" sparse format, clarification of the Solaris tar ACL storage, and a few comments about Mac OS X tar's resource storage. Modified: head/lib/libarchive/tar.5 Modified: head/lib/libarchive/tar.5 ============================================================================== --- head/lib/libarchive/tar.5 Sun Apr 26 18:43:49 2009 (r191525) +++ head/lib/libarchive/tar.5 Sun Apr 26 18:46:40 2009 (r191526) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2007 Tim Kientzle +.\" Copyright (c) 2003-2009 Tim Kientzle .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,8 +24,8 @@ .\" .\" $FreeBSD$ .\" -.Dd May 20, 2004 -.Dt TAR 5 +.Dd April 19, 2009 +.Dt tar 5 .Os .Sh NAME .Nm tar @@ -71,7 +71,7 @@ necessary. This section describes the variant implemented by the tar command included in .At v7 , -which is one of the earliest widely-used versions of the tar program. +which seems to be the earliest widely-used version of the tar program. .Pp The header record for an old-style .Nm @@ -390,6 +390,11 @@ user or group information available (suc are temporarily unavailable). .It Cm SCHILY.devminor , Cm SCHILY.devmajor The full minor and major numbers for device nodes. +.It Cm SCHILY.fflags +The file flags. +.It Cm SCHILY.realsize +The full size of the file on disk. +XXX explain? XXX .It Cm SCHILY.dev, Cm SCHILY.ino , Cm SCHILY.nlinks The device number, inode number, and link count for the entry. In particular, note that a pax interchange format archive using Joerg @@ -560,9 +565,6 @@ plus When extracting, GNU tar checks that the header file name is the one it is expecting, that the header offset is in the correct sequence, and that the sum of offset and size is equal to realsize. -FreeBSD's version of GNU tar does not handle the corner case of an -archive's being continued in the middle of a long name or other -extension header. .It "N" Type "N" records are no longer generated by GNU tar. They contained a @@ -575,6 +577,8 @@ or .Dq Symlink %s to %s\en ; in either case, both filenames are escaped using K&R C syntax. +Due to security concerns, "N" records are now generally ignored +when reading archives. .It "S" This is a .Dq sparse @@ -644,6 +648,66 @@ entry; the .Va realsize field will indicate the total size of the file. .El +.Ss GNU tar pax archives +GNU tar 1.14 (XXX check this XXX) and later will write +pax interchange format archives when you specify the +.Fl -posix +flag. +This format uses custom keywords to store sparse file information. +There have been three iterations of this support, referred to +as +.Dq 0.0 , +.Dq 0.1 , +and +.Dq 1.0 . +.Bl -tag -width indent +.It Cm GNU.sparse.numblocks , Cm GNU.sparse.offset , Cm GNU.sparse.numbytes , Cm GNU.sparse.size +The +.Dq 0.0 +format used an initial +.Cm GNU.sparse.numblocks +attribute to indicate the number of blocks in the file, a pair of +.Cm GNU.sparse.offset +and +.Cm GNU.sparse.numbytes +to indicate the offset and size of each block, +and a single +.Cm GNU.sparse.size +to indicate the full size of the file. +This is not the same as the size in the tar header because the +latter value does not include the size of any holes. +This format required that the order of attributes be preserved and +relied on readers accepting multiple appearances of the same attribute +names, which is not officially permitted by the standards. +.It Cm GNU.sparse.map +The +.Dq 0.1 +format used a single attribute that stored a comma-separated +list of decimal numbers. +Each pair of numbers indicated the offset and size, respectively, +of a block of data. +This does not work well if the archive is extracted by an archiver +that does not recognize this extension, since many pax implementations +simply discard unrecognized attributes. +.It Cm GNU.sparse.major , Cm GNU.sparse.minor , Cm GNU.sparse.name , Cm GNU.sparse.realsize +The +.Dq 1.0 +format stores the sparse block map in one or more 512-byte blocks +prepended to the file data in the entry body. +The pax attributes indicate the existence of this map +(via the +.Cm GNU.sparse.major +and +.Cm GNU.sparse.minor +fields) +and the full size of the file. +The +.Cm GNU.sparse.name +holds the true name of the file. +To avoid confusion, the name stored in the regular tar header +is a modified name so that extraction errors will be apparent +to users. +.El .Ss Solaris Tar XXX More Details Needed XXX .Pp @@ -667,16 +731,42 @@ An additional .Cm A entry is used to store an ACL for the following regular entry. The body of this entry contains a seven-digit octal number -(whose value is 01000000 plus the number of ACL entries) followed by a zero byte, followed by the textual ACL description. +The octal value is the number of ACL entries +plus a constant that indicates the ACL type: 01000000 +for POSIX.1e ACLs and 03000000 for NFSv4 ACLs. .El +.Ss AIX Tar +XXX More details needed XXX +.Ss Mac OS X Tar +The tar distributed with Apple's Mac OS X stores most regular files +as two separate entries in the tar archive. +The two entries have the same name except that the first +one has +.Dq ._ +added to the beginning of the name. +This first entry stores the +.Dq resource fork +with additional attributes for the file. +The Mac OS X +.Fn CopyFile +API is used to separate a file on disk into separate +resource and data streams and to reassemble those separate +streams when the file is restored to disk. .Ss Other Extensions -One common extension, utilized by GNU tar, star, and other newer +One obvious extension to increase the size of files is to +eliminate the terminating characters from the various +numeric fields. +For example, the standard only allows the size field to contain +11 octal digits, reserving the twelfth byte for a trailing +NUL character. +Allowing 12 octal digits allows file sizes up to 64 GB. +.Pp +Another extension, utilized by GNU tar, star, and other newer .Nm -implementations, permits binary numbers in the standard numeric -fields. -This is flagged by setting the high bit of the first character. +implementations, permits binary numbers in the standard numeric fields. +This is flagged by setting the high bit of the first byte. This permits 95-bit values for the length and time fields and 63-bit values for the uid, gid, and device numbers. GNU tar supports this extension for the @@ -686,12 +776,9 @@ all numeric fields. Note that this extension is largely obsoleted by the extended attribute record provided by the pax interchange format. .Pp -Another early GNU extension allowed base-64 values rather -than octal. -This extension was short-lived and such archives are almost never seen. -However, there is still code in GNU tar to support them; this code is -responsible for a very cryptic warning message that is sometimes seen when -GNU tar encounters a damaged archive. +Another early GNU extension allowed base-64 values rather than octal. +This extension was short-lived and is no longer supported by any +implementation. .Sh SEE ALSO .Xr ar 1 , .Xr pax 1 , From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 18:57:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3DEB106564A; Sun, 26 Apr 2009 18:57:50 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B89158FC1E; Sun, 26 Apr 2009 18:57:50 +0000 (UTC) (envelope-from kientzle@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 n3QIvora091839; Sun, 26 Apr 2009 18:57:50 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QIvo5S091837; Sun, 26 Apr 2009 18:57:50 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904261857.n3QIvo5S091837@svn.freebsd.org> From: Tim Kientzle Date: Sun, 26 Apr 2009 18:57:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191527 - in head/lib/libarchive: . test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 18:57:51 -0000 Author: kientzle Date: Sun Apr 26 18:57:50 2009 New Revision: 191527 URL: http://svn.freebsd.org/changeset/base/191527 Log: Reading an mtree file is supposed to provide access to the file data (if the file exists on disk). This was broken for the first regular file; fix it and add a test so it won't break again. In particular, this fixes the following idiom for creating a tar archive in which every file is owned by root: tar cf - --format=mtree . \ | sed -e 's/uname=[a-z]*/uname=root/' -e 's/uid=[0-9]*/uid=0/' \ | tar cf - @- Modified: head/lib/libarchive/archive_read_support_format_mtree.c head/lib/libarchive/test/test_read_format_mtree.c Modified: head/lib/libarchive/archive_read_support_format_mtree.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_mtree.c Sun Apr 26 18:46:40 2009 (r191526) +++ head/lib/libarchive/archive_read_support_format_mtree.c Sun Apr 26 18:57:50 2009 (r191527) @@ -990,8 +990,8 @@ read_data(struct archive_read *a, const if (mtree->buff == NULL) { archive_set_error(&a->archive, ENOMEM, "Can't allocate memory"); + return (ARCHIVE_FATAL); } - return (ARCHIVE_FATAL); } *buff = mtree->buff; Modified: head/lib/libarchive/test/test_read_format_mtree.c ============================================================================== --- head/lib/libarchive/test/test_read_format_mtree.c Sun Apr 26 18:46:40 2009 (r191526) +++ head/lib/libarchive/test/test_read_format_mtree.c Sun Apr 26 18:57:50 2009 (r191527) @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); /* Single entry with a hardlink. */ static unsigned char archive[] = { "#mtree\n" - "file type=file uid=18 mode=0123\n" + "file type=file uid=18 mode=0123 size=3\n" "dir type=dir\n" " file\\040with\\040space type=file uid=18\n" " ..\n" @@ -49,8 +49,10 @@ static unsigned char archive[] = { DEFINE_TEST(test_read_format_mtree) { + char buff[16]; struct archive_entry *ae; struct archive *a; + int fd; /* * An access error occurred on some platform when mtree @@ -68,12 +70,23 @@ DEFINE_TEST(test_read_format_mtree) archive_read_support_format_all(a)); assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, archive, sizeof(archive))); + + /* + * Read "file", whose data is available on disk. + */ + fd = open("file", O_WRONLY | O_CREAT, 0777); + assert(fd >= 0); + assertEqualInt(3, write(fd, "hi\n", 3)); + close(fd); assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualInt(archive_format(a), ARCHIVE_FORMAT_MTREE); assertEqualString(archive_entry_pathname(ae), "file"); assertEqualInt(archive_entry_uid(ae), 18); assert(S_ISREG(archive_entry_mode(ae))); assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0123); + assertEqualInt(archive_entry_size(ae), 3); + assertEqualInt(3, archive_read_data(a, buff, 3)); + assertEqualMem(buff, "hi\n", 3); assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); assertEqualString(archive_entry_pathname(ae), "dir"); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 19:05:40 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57FDD1065672; Sun, 26 Apr 2009 19:05:40 +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 476EF8FC1A; Sun, 26 Apr 2009 19:05:40 +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 n3QJ5ei0092035; Sun, 26 Apr 2009 19:05:40 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QJ5eDJ092034; Sun, 26 Apr 2009 19:05:40 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200904261905.n3QJ5eDJ092034@svn.freebsd.org> From: Robert Watson Date: Sun, 26 Apr 2009 19:05:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191528 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 19:05:40 -0000 Author: rwatson Date: Sun Apr 26 19:05:40 2009 New Revision: 191528 URL: http://svn.freebsd.org/changeset/base/191528 Log: Acquire IF_ADDR_LOCK() around most iterations over ifp->if_addrhead (colloquially known as if_addrlist). Currently not acquired around interface address loops that call out to the routing code due to potential lock order issues. MFC after: 3 weeks Modified: head/sys/netinet/ip_carp.c Modified: head/sys/netinet/ip_carp.c ============================================================================== --- head/sys/netinet/ip_carp.c Sun Apr 26 18:57:50 2009 (r191527) +++ head/sys/netinet/ip_carp.c Sun Apr 26 19:05:40 2009 (r191528) @@ -275,6 +275,7 @@ carp_hmac_prepare(struct carp_softc *sc) found = 0; last = cur; cur.s_addr = 0xffffffff; + IF_ADDR_LOCK(SC2IFP(sc)); TAILQ_FOREACH(ifa, &SC2IFP(sc)->if_addrlist, ifa_list) { in.s_addr = ifatoia(ifa)->ia_addr.sin_addr.s_addr; if (ifa->ifa_addr->sa_family == AF_INET && @@ -284,6 +285,7 @@ carp_hmac_prepare(struct carp_softc *sc) found++; } } + IF_ADDR_UNLOCK(SC2IFP(sc)); if (found) SHA1Update(&sc->sc_sha1, (void *)&cur, sizeof(cur)); } while (found); @@ -294,6 +296,7 @@ carp_hmac_prepare(struct carp_softc *sc) found = 0; last6 = cur6; memset(&cur6, 0xff, sizeof(cur6)); + IF_ADDR_LOCK(SC2IFP(sc)); TAILQ_FOREACH(ifa, &SC2IFP(sc)->if_addrlist, ifa_list) { in6 = ifatoia6(ifa)->ia_addr.sin6_addr; if (IN6_IS_SCOPE_EMBED(&in6)) @@ -305,6 +308,7 @@ carp_hmac_prepare(struct carp_softc *sc) found++; } } + IF_ADDR_UNLOCK(SC2IFP(sc)); if (found) SHA1Update(&sc->sc_sha1, (void *)&cur6, sizeof(cur6)); } while (found); @@ -1121,6 +1125,7 @@ carp_addrcount(struct carp_if *cif, stru (SC2IFP(vh)->if_flags & IFF_UP) && (SC2IFP(vh)->if_drv_flags & IFF_DRV_RUNNING)) || (type == CARP_COUNT_MASTER && vh->sc_state == MASTER)) { + IF_ADDR_LOCK(SC2IFP(vh)); TAILQ_FOREACH(ifa, &SC2IFP(vh)->if_addrlist, ifa_list) { if (ifa->ifa_addr->sa_family == AF_INET && @@ -1128,6 +1133,7 @@ carp_addrcount(struct carp_if *cif, stru ifatoia(ifa)->ia_addr.sin_addr.s_addr) count++; } + IF_ADDR_UNLOCK(SC2IFP(vh)); } } return (count); @@ -1166,6 +1172,7 @@ carp_iamatch(void *v, struct in_ifaddr * TAILQ_FOREACH(vh, &cif->vhif_vrs, sc_list) { if ((SC2IFP(vh)->if_flags & IFF_UP) && (SC2IFP(vh)->if_drv_flags & IFF_DRV_RUNNING)) { + IF_ADDR_LOCK(SC2IFP(vh)); TAILQ_FOREACH(ifa, &SC2IFP(vh)->if_addrlist, ifa_list) { if (ifa->ifa_addr->sa_family == @@ -1176,9 +1183,11 @@ carp_iamatch(void *v, struct in_ifaddr * if (vh->sc_state == MASTER) { *enaddr = IF_LLADDR(vh->sc_ifp); + IF_ADDR_UNLOCK(SC2IFP(vh)); CARP_UNLOCK(cif); return (1); } else { + IF_ADDR_UNLOCK(SC2IFP(vh)); CARP_UNLOCK(cif); return (0); } @@ -1186,6 +1195,7 @@ carp_iamatch(void *v, struct in_ifaddr * count++; } } + IF_ADDR_UNLOCK(SC2IFP(vh)); } } } else { @@ -1214,16 +1224,19 @@ carp_iamatch6(void *v, struct in6_addr * CARP_LOCK(cif); TAILQ_FOREACH(vh, &cif->vhif_vrs, sc_list) { + IF_ADDR_LOCK(SC2IFP(vh)); TAILQ_FOREACH(ifa, &SC2IFP(vh)->if_addrlist, ifa_list) { if (IN6_ARE_ADDR_EQUAL(taddr, &ifatoia6(ifa)->ia_addr.sin6_addr) && (SC2IFP(vh)->if_flags & IFF_UP) && (SC2IFP(vh)->if_drv_flags & IFF_DRV_RUNNING) && vh->sc_state == MASTER) { + IF_ADDR_UNLOCK(SC2IFP(vh)); CARP_UNLOCK(cif); return (ifa); } } + IF_ADDR_UNLOCK(SC2IFP(vh)); } CARP_UNLOCK(cif); @@ -1240,6 +1253,7 @@ carp_macmatch6(void *v, struct mbuf *m, CARP_LOCK(cif); TAILQ_FOREACH(sc, &cif->vhif_vrs, sc_list) { + IF_ADDR_LOCK(SC2IFP(sc)); TAILQ_FOREACH(ifa, &SC2IFP(sc)->if_addrlist, ifa_list) { if (IN6_ARE_ADDR_EQUAL(taddr, &ifatoia6(ifa)->ia_addr.sin6_addr) && @@ -1250,6 +1264,7 @@ carp_macmatch6(void *v, struct mbuf *m, sizeof(struct ifnet *), M_NOWAIT); if (mtag == NULL) { /* better a bit than nothing */ + IF_ADDR_UNLOCK(SC2IFP(sc)); CARP_UNLOCK(cif); return (IF_LLADDR(sc->sc_ifp)); } @@ -1257,10 +1272,12 @@ carp_macmatch6(void *v, struct mbuf *m, sizeof(struct ifnet *)); m_tag_prepend(m, mtag); + IF_ADDR_UNLOCK(SC2IFP(sc)); CARP_UNLOCK(cif); return (IF_LLADDR(sc->sc_ifp)); } } + IF_ADDR_UNLOCK(SC2IFP(sc)); } CARP_UNLOCK(cif); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 19:15:19 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FEA61065670; Sun, 26 Apr 2009 19:15:19 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 600C68FC1D; Sun, 26 Apr 2009 19:15:19 +0000 (UTC) (envelope-from bz@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 n3QJFJtA092252; Sun, 26 Apr 2009 19:15:19 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QJFJ4i092251; Sun, 26 Apr 2009 19:15:19 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200904261915.n3QJFJ4i092251@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Sun, 26 Apr 2009 19:15:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191529 - head/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 19:15:20 -0000 Author: bz Date: Sun Apr 26 19:15:19 2009 New Revision: 191529 URL: http://svn.freebsd.org/changeset/base/191529 Log: Whitespace (use tabs like for all other lines). MFC after: 1 month Modified: head/sys/sys/mbuf.h Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sun Apr 26 19:05:40 2009 (r191528) +++ head/sys/sys/mbuf.h Sun Apr 26 19:15:19 2009 (r191529) @@ -867,7 +867,7 @@ struct mbuf *m_unshare(struct mbuf *, in #define PACKET_TAG_PF 21 /* PF + ALTQ information */ #define PACKET_TAG_RTSOCKFAM 25 /* rtsock sa family */ #define PACKET_TAG_IPOPTIONS 27 /* Saved IP options */ -#define PACKET_TAG_CARP 28 /* CARP info */ +#define PACKET_TAG_CARP 28 /* CARP info */ /* Specific cookies and tags. */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 19:16:32 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC2C9106564A; Sun, 26 Apr 2009 19:16:32 +0000 (UTC) (envelope-from blackend@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9B7408FC13; Sun, 26 Apr 2009 19:16:32 +0000 (UTC) (envelope-from blackend@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 n3QJGWZX092329; Sun, 26 Apr 2009 19:16:32 GMT (envelope-from blackend@svn.freebsd.org) Received: (from blackend@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QJGWdx092328; Sun, 26 Apr 2009 19:16:32 GMT (envelope-from blackend@svn.freebsd.org) Message-Id: <200904261916.n3QJGWdx092328@svn.freebsd.org> From: Marc Fonvieille Date: Sun, 26 Apr 2009 19:16:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191530 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 19:16:33 -0000 Author: blackend (doc committer) Date: Sun Apr 26 19:16:32 2009 New Revision: 191530 URL: http://svn.freebsd.org/changeset/base/191530 Log: Add a missing space and remove a superfluous char. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 19:15:19 2009 (r191529) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sun Apr 26 19:16:32 2009 (r191530) @@ -254,7 +254,7 @@ - The &man.jail.8; subsystem now supports SCTP(&man.sctp.4;) + The &man.jail.8; subsystem now supports SCTP (&man.sctp.4;) with IPv6 in jails. The &man.kld.4; now supports installing 32-bit system @@ -445,7 +445,7 @@ fixed. The &man.mxge.4; driver now supports some newer - revisions and 10GBASE-LRM and 10GBASE-Twinax* media + revisions and 10GBASE-LRM and 10GBASE-Twinax media types. The &man.re.4; driver has been improved. It now From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 20:54:57 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E74C106564A; Sun, 26 Apr 2009 20:54:57 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7E25A8FC08; Sun, 26 Apr 2009 20:54:57 +0000 (UTC) (envelope-from alc@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 n3QKsvps094234; Sun, 26 Apr 2009 20:54:57 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QKsv2N094233; Sun, 26 Apr 2009 20:54:57 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <200904262054.n3QKsv2N094233@svn.freebsd.org> From: Alan Cox Date: Sun, 26 Apr 2009 20:54:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191531 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 20:54:58 -0000 Author: alc Date: Sun Apr 26 20:54:57 2009 New Revision: 191531 URL: http://svn.freebsd.org/changeset/base/191531 Log: Eliminate an archaic band-aid. The immediately preceding comment already explains why the band-aid is unnecessary. Suggested by: tegge Modified: head/sys/vm/vm_fault.c Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Sun Apr 26 19:16:32 2009 (r191530) +++ head/sys/vm/vm_fault.c Sun Apr 26 20:54:57 2009 (r191531) @@ -916,13 +916,11 @@ vnode_locked: KASSERT(fs.m->oflags & VPO_BUSY, ("vm_fault: page %p not busy!", fs.m)); /* - * Sanity check: page must be completely valid or it is not fit to + * Page must be completely valid or it is not fit to * map into user space. vm_pager_get_pages() ensures this. */ - if (fs.m->valid != VM_PAGE_BITS_ALL) { - vm_page_zero_invalid(fs.m, TRUE); - printf("Warning: page %p partially invalid on fault\n", fs.m); - } + KASSERT(fs.m->valid == VM_PAGE_BITS_ALL, + ("vm_fault: page %p partially invalid", fs.m)); VM_OBJECT_UNLOCK(fs.object); /* From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 20:55:32 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2096E1065670; Sun, 26 Apr 2009 20:55:32 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 104C58FC1E; Sun, 26 Apr 2009 20:55:32 +0000 (UTC) (envelope-from sam@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 n3QKtVhx094308; Sun, 26 Apr 2009 20:55:31 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QKtV0c094307; Sun, 26 Apr 2009 20:55:31 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262055.n3QKtV0c094307@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 20:55:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191532 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 20:55:32 -0000 Author: sam Date: Sun Apr 26 20:55:31 2009 New Revision: 191532 URL: http://svn.freebsd.org/changeset/base/191532 Log: correct bssid reporting for wds vaps Modified: head/sys/net80211/ieee80211_ioctl.c Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Apr 26 20:54:57 2009 (r191531) +++ head/sys/net80211/ieee80211_ioctl.c Sun Apr 26 20:55:31 2009 (r191532) @@ -915,10 +915,13 @@ ieee80211_ioctl_get80211(struct ieee8021 case IEEE80211_IOC_BSSID: if (ireq->i_len != IEEE80211_ADDR_LEN) return EINVAL; - error = copyout(vap->iv_state == IEEE80211_S_RUN ? - vap->iv_bss->ni_bssid : - vap->iv_des_bssid, - ireq->i_data, ireq->i_len); + if (vap->iv_state == IEEE80211_S_RUN) { + error = copyout(vap->iv_opmode == IEEE80211_M_WDS ? + vap->iv_bss->ni_macaddr : vap->iv_bss->ni_bssid, + ireq->i_data, ireq->i_len); + } else + error = copyout(vap->iv_des_bssid, ireq->i_data, + ireq->i_len); break; case IEEE80211_IOC_WPAIE: error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:03:27 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACA361065672; Sun, 26 Apr 2009 21:03:27 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9C17B8FC18; Sun, 26 Apr 2009 21:03:27 +0000 (UTC) (envelope-from ed@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 n3QL3RXD094507; Sun, 26 Apr 2009 21:03:27 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QL3RRm094506; Sun, 26 Apr 2009 21:03:27 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200904262103.n3QL3RRm094506@svn.freebsd.org> From: Ed Schouten Date: Sun, 26 Apr 2009 21:03:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191533 - head/sys/netipx X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:03:28 -0000 Author: ed Date: Sun Apr 26 21:03:27 2009 New Revision: 191533 URL: http://svn.freebsd.org/changeset/base/191533 Log: Make the SPX code use its own copies of insque()/remque(). Instead of using the antique insque()/remque() functions from sys/queue.h, make this code use its own versions. Eventually the code should just use the regular TAILQ/LIST macros. Modified: head/sys/netipx/spx_usrreq.c Modified: head/sys/netipx/spx_usrreq.c ============================================================================== --- head/sys/netipx/spx_usrreq.c Sun Apr 26 20:55:31 2009 (r191532) +++ head/sys/netipx/spx_usrreq.c Sun Apr 26 21:03:27 2009 (r191533) @@ -180,6 +180,25 @@ struct pr_usrreqs spx_usrreq_sps = { .pru_close = spx_usr_close, }; +static __inline void +spx_insque(struct spx_q *element, struct spx_q *head) +{ + + element->si_next = head->si_next; + element->si_prev = head; + head->si_next = element; + element->si_next->si_prev = element; +} + +static __inline void +spx_remque(struct spx_q *element) +{ + + element->si_next->si_prev = element->si_prev; + element->si_prev->si_next = element->si_next; + element->si_prev = NULL; +} + void spx_init(void) { @@ -649,7 +668,7 @@ update_window: break; } } - insque(si, q->si_prev); + spx_insque((struct spx_q *)si, q->si_prev); /* * If this packet is urgent, inform process @@ -680,7 +699,7 @@ present: so->so_rcv.sb_state |= SBS_RCVATMARK; } q = q->si_prev; - remque(q->si_next); + spx_remque(q->si_next); wakeup = 1; spxstat.spxs_rcvpack++; #ifdef SF_NEWCALL @@ -1458,7 +1477,7 @@ spx_pcbdetach(struct ipxpcb *ipxp) s = cb->s_q.si_next; while (s != &(cb->s_q)) { s = s->si_next; - remque(s); + spx_remque(s); m = dtom(s); m_freem(m); } From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:03:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E5A2106564A; Sun, 26 Apr 2009 21:03:30 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 02AE58FC0C; Sun, 26 Apr 2009 21:03:30 +0000 (UTC) (envelope-from sam@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 n3QL3TEJ094547; Sun, 26 Apr 2009 21:03:29 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QL3T4h094544; Sun, 26 Apr 2009 21:03:29 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262103.n3QL3T4h094544@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:03:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191534 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:03:30 -0000 Author: sam Date: Sun Apr 26 21:03:29 2009 New Revision: 191534 URL: http://svn.freebsd.org/changeset/base/191534 Log: o use shared code to handle bpf tap and mbuf cleanup o swap conditional order to put the cheapest first Modified: head/sys/net80211/ieee80211_adhoc.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_sta.c Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:03:27 2009 (r191533) +++ head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:03:29 2009 (r191534) @@ -637,11 +637,8 @@ adhoc_input(struct ieee80211_node *ni, s vap->iv_stats.is_rx_mgtdiscard++; /* XXX */ goto out; } - if (bpf_peers_present(vap->iv_rawbpf)) - bpf_mtap(vap->iv_rawbpf, m); vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp); - m_freem(m); - return IEEE80211_FC0_TYPE_MGT; + goto out; case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; @@ -657,7 +654,7 @@ err: ifp->if_ierrors++; out: if (m != NULL) { - if (bpf_peers_present(vap->iv_rawbpf) && need_tap) + if (need_tap && bpf_peers_present(vap->iv_rawbpf)) bpf_mtap(vap->iv_rawbpf, m); m_freem(m); } Modified: head/sys/net80211/ieee80211_hostap.c ============================================================================== --- head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:03:27 2009 (r191533) +++ head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:03:29 2009 (r191534) @@ -831,11 +831,8 @@ hostap_input(struct ieee80211_node *ni, wh = mtod(m, struct ieee80211_frame *); wh->i_fc[1] &= ~IEEE80211_FC1_WEP; } - if (bpf_peers_present(vap->iv_rawbpf)) - bpf_mtap(vap->iv_rawbpf, m); vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp); - m_freem(m); - return IEEE80211_FC0_TYPE_MGT; + goto out; case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; @@ -859,7 +856,7 @@ err: ifp->if_ierrors++; out: if (m != NULL) { - if (bpf_peers_present(vap->iv_rawbpf) && need_tap) + if (need_tap && bpf_peers_present(vap->iv_rawbpf)) bpf_mtap(vap->iv_rawbpf, m); m_freem(m); } Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:03:27 2009 (r191533) +++ head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:03:29 2009 (r191534) @@ -866,11 +866,8 @@ sta_input(struct ieee80211_node *ni, str wh = mtod(m, struct ieee80211_frame *); wh->i_fc[1] &= ~IEEE80211_FC1_WEP; } - if (bpf_peers_present(vap->iv_rawbpf)) - bpf_mtap(vap->iv_rawbpf, m); vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp); - m_freem(m); - return IEEE80211_FC0_TYPE_MGT; + goto out; case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; @@ -886,7 +883,7 @@ err: ifp->if_ierrors++; out: if (m != NULL) { - if (bpf_peers_present(vap->iv_rawbpf) && need_tap) + if (need_tap && bpf_peers_present(vap->iv_rawbpf)) bpf_mtap(vap->iv_rawbpf, m); m_freem(m); } From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:06:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44192106566B; Sun, 26 Apr 2009 21:06:12 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 33B388FC0A; Sun, 26 Apr 2009 21:06:12 +0000 (UTC) (envelope-from ed@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 n3QL6CXW094639; Sun, 26 Apr 2009 21:06:12 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QL6Cux094638; Sun, 26 Apr 2009 21:06:12 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200904262106.n3QL6Cux094638@svn.freebsd.org> From: Ed Schouten Date: Sun, 26 Apr 2009 21:06:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191535 - head/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:06:12 -0000 Author: ed Date: Sun Apr 26 21:06:11 2009 New Revision: 191535 URL: http://svn.freebsd.org/changeset/base/191535 Log: Remove the unused insque() and remque() functions. We have no code in the tree that uses these anymore. New code should just use the regular queue(3) macros. Modified: head/sys/sys/queue.h Modified: head/sys/sys/queue.h ============================================================================== --- head/sys/sys/queue.h Sun Apr 26 21:03:29 2009 (r191534) +++ head/sys/sys/queue.h Sun Apr 26 21:06:11 2009 (r191535) @@ -578,50 +578,4 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) - -#ifdef _KERNEL - -/* - * XXX insque() and remque() are an old way of handling certain queues. - * They bogusly assumes that all queue heads look alike. - */ - -struct quehead { - struct quehead *qh_link; - struct quehead *qh_rlink; -}; - -#ifdef __CC_SUPPORTS___INLINE - -static __inline void -insque(void *a, void *b) -{ - struct quehead *element = (struct quehead *)a, - *head = (struct quehead *)b; - - element->qh_link = head->qh_link; - element->qh_rlink = head; - head->qh_link = element; - element->qh_link->qh_rlink = element; -} - -static __inline void -remque(void *a) -{ - struct quehead *element = (struct quehead *)a; - - element->qh_link->qh_rlink = element->qh_rlink; - element->qh_rlink->qh_link = element->qh_link; - element->qh_rlink = 0; -} - -#else /* !__CC_SUPPORTS___INLINE */ - -void insque(void *a, void *b); -void remque(void *a); - -#endif /* __CC_SUPPORTS___INLINE */ - -#endif /* _KERNEL */ - #endif /* !_SYS_QUEUE_H_ */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:11:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E0E01065672; Sun, 26 Apr 2009 21:11:12 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6D61D8FC08; Sun, 26 Apr 2009 21:11:12 +0000 (UTC) (envelope-from sam@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 n3QLBC1G094773; Sun, 26 Apr 2009 21:11:12 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLBCGh094772; Sun, 26 Apr 2009 21:11:12 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262111.n3QLBCGh094772@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:11:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191536 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:11:12 -0000 Author: sam Date: Sun Apr 26 21:11:12 2009 New Revision: 191536 URL: http://svn.freebsd.org/changeset/base/191536 Log: fixup ieee80211_output handling: o correct bpf handling, send 'em to the right tap o do accouting o mark mbufs holding multicast frames Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:06:11 2009 (r191535) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:11:12 2009 (r191536) @@ -384,7 +384,17 @@ ieee80211_output(struct ifnet *ifp, stru if (ieee80211_classify(ni, m)) senderr(EIO); /* XXX */ - BPF_MTAP(ifp, m); + if (bpf_peers_present(vap->iv_rawbpf)) + bpf_mtap(vap->iv_rawbpf, m); + + IEEE80211_NODE_STAT(ni, tx_data); + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { + IEEE80211_NODE_STAT(ni, tx_mcast); + m->m_flags |= M_MCAST; + } else + IEEE80211_NODE_STAT(ni, tx_ucast); + /* NB: ieee80211_encap does not include 802.11 header */ + IEEE80211_NODE_STAT_ADD(ni, tx_bytes, m->m_pkthdr.len); /* * NB: DLT_IEEE802_11_RADIO identifies the parameters are From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:12:20 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B09A1065674; Sun, 26 Apr 2009 21:12:20 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2A5658FC18; Sun, 26 Apr 2009 21:12:20 +0000 (UTC) (envelope-from sam@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 n3QLCKcn094828; Sun, 26 Apr 2009 21:12:20 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLCKnT094827; Sun, 26 Apr 2009 21:12:20 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262112.n3QLCKnT094827@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:12:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191537 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:12:20 -0000 Author: sam Date: Sun Apr 26 21:12:19 2009 New Revision: 191537 URL: http://svn.freebsd.org/changeset/base/191537 Log: add missing DLT_IEEE802_11 bpf tap in ieee80211_start Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:11:12 2009 (r191536) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:12:19 2009 (r191537) @@ -273,6 +273,10 @@ ieee80211_start(struct ifnet *ifp) */ m->m_pkthdr.rcvif = (void *)ni; + /* XXX fragmented frames not handled */ + if (bpf_peers_present(vap->iv_rawbpf)) + bpf_mtap(vap->iv_rawbpf, m); + error = parent->if_transmit(parent, m); if (error != 0) { /* NB: IFQ_HANDOFF reclaims mbuf */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:13:19 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1ADB11065680; Sun, 26 Apr 2009 21:13:19 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0A0918FC08; Sun, 26 Apr 2009 21:13:19 +0000 (UTC) (envelope-from sam@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 n3QLDID8094885; Sun, 26 Apr 2009 21:13:18 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLDIS6094884; Sun, 26 Apr 2009 21:13:18 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262113.n3QLDIS6094884@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:13:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191538 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:13:20 -0000 Author: sam Date: Sun Apr 26 21:13:18 2009 New Revision: 191538 URL: http://svn.freebsd.org/changeset/base/191538 Log: fix comment Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:12:19 2009 (r191537) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:13:18 2009 (r191538) @@ -292,9 +292,7 @@ ieee80211_start(struct ifnet *ifp) /* * 802.11 output routine. This is (currently) used only to * connect bpf write calls to the 802.11 layer for injecting - * raw 802.11 frames. Note we locate the ieee80211com from - * the ifnet using a spare field setup at attach time. This - * will go away when the virtual ap support comes in. + * raw 802.11 frames. */ int ieee80211_output(struct ifnet *ifp, struct mbuf *m, From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:16:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 36C471065670; Sun, 26 Apr 2009 21:16:04 +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 24D4A8FC1A; Sun, 26 Apr 2009 21:16:04 +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 n3QLG4h5094990; Sun, 26 Apr 2009 21:16:04 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLG4jM094989; Sun, 26 Apr 2009 21:16:04 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200904262116.n3QLG4jM094989@svn.freebsd.org> From: Robert Watson Date: Sun, 26 Apr 2009 21:16:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191539 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:16:04 -0000 Author: rwatson Date: Sun Apr 26 21:16:03 2009 New Revision: 191539 URL: http://svn.freebsd.org/changeset/base/191539 Log: Improve approximation of style(9). Modified: head/sys/kern/kern_rmlock.c Modified: head/sys/kern/kern_rmlock.c ============================================================================== --- head/sys/kern/kern_rmlock.c Sun Apr 26 21:13:18 2009 (r191538) +++ head/sys/kern/kern_rmlock.c Sun Apr 26 21:16:03 2009 (r191539) @@ -55,25 +55,23 @@ __FBSDID("$FreeBSD$"); #ifdef DDB #include #endif - + #define RMPF_ONQUEUE 1 #define RMPF_SIGNAL 2 -/* - * To support usage of rmlock in CVs and msleep - * yet another list for the priority tracker - * would be needed. - * Using this lock for cv and msleep also does - * not seem very useful +/* + * To support usage of rmlock in CVs and msleep yet another list for the + * priority tracker would be needed. Using this lock for cv and msleep also + * does not seem very useful */ static __inline void compiler_memory_barrier(void) { __asm __volatile("":::"memory"); } -static void assert_rm(struct lock_object *lock, int what); -static void lock_rm(struct lock_object *lock, int how); -static int unlock_rm(struct lock_object *lock); +static void assert_rm(struct lock_object *lock, int what); +static void lock_rm(struct lock_object *lock, int how); +static int unlock_rm(struct lock_object *lock); struct lock_class lock_class_rm = { .lc_name = "rm", @@ -96,12 +94,16 @@ assert_rm(struct lock_object *lock, int } static void -lock_rm(struct lock_object *lock, int how) { +lock_rm(struct lock_object *lock, int how) +{ + panic("lock_rm called"); } static int -unlock_rm(struct lock_object *lock) { +unlock_rm(struct lock_object *lock) +{ + panic("unlock_rm called"); } @@ -111,75 +113,79 @@ MTX_SYSINIT(rm_spinlock, &rm_spinlock, " /* * Add or remove tracker from per cpu list. - * The per cpu list can be traversed at any time in forward - * direction from an interrupt on the *local* cpu. + * + * The per cpu list can be traversed at any time in forward direction from an + * interrupt on the *local* cpu. */ - -static void inline -rm_tracker_add(struct pcpu *pc, struct rm_priotracker* tracker) { - struct rm_queue* next; +static void inline +rm_tracker_add(struct pcpu *pc, struct rm_priotracker *tracker) +{ + struct rm_queue *next; + /* Initialize all tracker pointers */ tracker->rmp_cpuQueue.rmq_prev = &pc->pc_rm_queue; next = pc->pc_rm_queue.rmq_next; tracker->rmp_cpuQueue.rmq_next = next; - /* rmq_prev is not used during froward traversal */ + + /* rmq_prev is not used during froward traversal. */ next->rmq_prev = &tracker->rmp_cpuQueue; - /* Update pointer to first element */ + + /* Update pointer to first element. */ pc->pc_rm_queue.rmq_next = &tracker->rmp_cpuQueue; } - -static void inline -rm_tracker_remove(struct pcpu *pc, struct rm_priotracker* tracker) { +static void inline +rm_tracker_remove(struct pcpu *pc, struct rm_priotracker *tracker) +{ struct rm_queue *next, *prev; - next = tracker->rmp_cpuQueue.rmq_next; - prev = tracker->rmp_cpuQueue.rmq_prev; - /* Not used during forward traversal */ - next->rmq_prev = prev; - /* Remove from list */ - prev->rmq_next = next; -} + next = tracker->rmp_cpuQueue.rmq_next; + prev = tracker->rmp_cpuQueue.rmq_prev; + /* Not used during forward traversal. */ + next->rmq_prev = prev; + /* Remove from list. */ + prev->rmq_next = next; +} -static void rm_cleanIPI(void *arg) { +static void +rm_cleanIPI(void *arg) +{ struct pcpu *pc; - struct rmlock* rm = arg; + struct rmlock *rm = arg; struct rm_priotracker *tracker; - struct rm_queue* queue; + struct rm_queue *queue; pc = pcpu_find(curcpu); - for(queue = pc->pc_rm_queue.rmq_next; - queue != &pc->pc_rm_queue; + for (queue = pc->pc_rm_queue.rmq_next; queue != &pc->pc_rm_queue; queue = queue->rmq_next) { - tracker = (struct rm_priotracker *) queue; - if(tracker->rmp_rmlock == rm && tracker->rmp_flags == 0 ) { + tracker = (struct rm_priotracker *)queue; + if (tracker->rmp_rmlock == rm && tracker->rmp_flags == 0) { tracker->rmp_flags = RMPF_ONQUEUE; mtx_lock_spin(&rm_spinlock); - LIST_INSERT_HEAD(&rm->rm_activeReaders,tracker, + LIST_INSERT_HEAD(&rm->rm_activeReaders, tracker, rmp_qentry); mtx_unlock_spin(&rm_spinlock); } } - return; } - - void rm_init(struct rmlock *rm, const char *name, int opts) { + rm->rm_noreadtoken = 1; LIST_INIT(&rm->rm_activeReaders); mtx_init(&rm->rm_lock, name, "RM_MTX",MTX_NOWITNESS); - lock_init(&rm->lock_object, &lock_class_rm, name, NULL, (opts & LO_RECURSABLE)| LO_WITNESS); - + lock_init(&rm->lock_object, &lock_class_rm, name, NULL, + (opts & LO_RECURSABLE)| LO_WITNESS); } void rm_destroy(struct rmlock *rm) { + mtx_destroy(&rm->rm_lock); lock_destroy(&rm->lock_object); } @@ -194,71 +200,64 @@ rm_wowned(struct rmlock *rm) void rm_sysinit(void *arg) { + struct rm_args *args = arg; rm_init(args->ra_rm, args->ra_desc, args->ra_opts); } - static void -_rm_rlock_hard(struct rmlock *rm, struct rm_priotracker* tracker) +_rm_rlock_hard(struct rmlock *rm, struct rm_priotracker *tracker) { struct pcpu *pc; struct rm_queue *queue; - struct rm_priotracker* atracker; + struct rm_priotracker *atracker; critical_enter(); pc = pcpu_find(curcpu); - /* Check if we just need to do a proper critical_exit */ + /* Check if we just need to do a proper critical_exit. */ if (0 == rm->rm_noreadtoken) { critical_exit(); return; } - /* Remove our tracker from the per cpu list */ - rm_tracker_remove(pc,tracker); + /* Remove our tracker from the per cpu list. */ + rm_tracker_remove(pc, tracker); - /* Check to see if the IPI granted us the lock after all */ - if(tracker->rmp_flags) { - /* Just add back tracker - we hold the lock */ - rm_tracker_add(pc,tracker); + /* Check to see if the IPI granted us the lock after all. */ + if (tracker->rmp_flags) { + /* Just add back tracker - we hold the lock. */ + rm_tracker_add(pc, tracker); critical_exit(); return; } - - /* - * We allow readers to aquire a lock even if a writer - * is blocked if the lock is recursive and the reader - * already holds the lock + * We allow readers to aquire a lock even if a writer is blocked if + * the lock is recursive and the reader already holds the lock. */ - if ((rm->lock_object.lo_flags & LO_RECURSABLE) != 0) { /* * Just grand the lock if this thread already have a tracker - * for this lock on the per cpu queue + * for this lock on the per cpu queue. */ - - for(queue = pc->pc_rm_queue.rmq_next; - queue != &pc->pc_rm_queue; - queue = queue->rmq_next) { - atracker = (struct rm_priotracker *) queue; - if (( atracker->rmp_rmlock == rm) && - ( atracker->rmp_thread == tracker->rmp_thread )) { + for (queue = pc->pc_rm_queue.rmq_next; + queue != &pc->pc_rm_queue; queue = queue->rmq_next) { + atracker = (struct rm_priotracker *)queue; + if ((atracker->rmp_rmlock == rm) && + (atracker->rmp_thread == tracker->rmp_thread)) { mtx_lock_spin(&rm_spinlock); - LIST_INSERT_HEAD(&rm->rm_activeReaders,tracker, - rmp_qentry); + LIST_INSERT_HEAD(&rm->rm_activeReaders, + tracker, rmp_qentry); tracker->rmp_flags = RMPF_ONQUEUE; mtx_unlock_spin(&rm_spinlock); - rm_tracker_add(pc,tracker); + rm_tracker_add(pc, tracker); critical_exit(); return; } } } - sched_unpin(); critical_exit(); @@ -267,16 +266,15 @@ _rm_rlock_hard(struct rmlock *rm, struct critical_enter(); pc = pcpu_find(curcpu); - rm_tracker_add(pc,tracker); + rm_tracker_add(pc, tracker); sched_pin(); critical_exit(); - + mtx_unlock(&rm->rm_lock); - return; } void -_rm_rlock(struct rmlock *rm, struct rm_priotracker* tracker) +_rm_rlock(struct rmlock *rm, struct rm_priotracker *tracker) { struct thread *td = curthread; struct pcpu *pc; @@ -291,51 +289,46 @@ _rm_rlock(struct rmlock *rm, struct rm_p pc = cpuid_to_pcpu[td->td_oncpu]; /* pcpu_find(td->td_oncpu); */ - rm_tracker_add(pc,tracker); + rm_tracker_add(pc, tracker); td->td_pinned++; /* sched_pin(); */ compiler_memory_barrier(); td->td_critnest--; - - /* - * Fast path to combine two common conditions - * into a single conditional jump + + /* + * Fast path to combine two common conditions into a single + * conditional jump. */ - - if (0 == (td->td_owepreempt | rm->rm_noreadtoken)) { + if (0 == (td->td_owepreempt | rm->rm_noreadtoken)) return; - } - /* We do not have a read token and need to acquire one */ - _rm_rlock_hard(rm,tracker); + /* We do not have a read token and need to acquire one. */ + _rm_rlock_hard(rm, tracker); } - static void -_rm_unlock_hard(struct thread *td,struct rm_priotracker* tracker) +_rm_unlock_hard(struct thread *td,struct rm_priotracker *tracker) { - + if (td->td_owepreempt) { td->td_critnest++; critical_exit(); } - - if (!tracker->rmp_flags) { + + if (!tracker->rmp_flags) return; - } - mtx_lock_spin(&rm_spinlock); - LIST_REMOVE(tracker,rmp_qentry); + LIST_REMOVE(tracker, rmp_qentry); if (tracker->rmp_flags & RMPF_SIGNAL) { struct rmlock *rm; - struct turnstile* ts; + struct turnstile *ts; rm = tracker->rmp_rmlock; - + turnstile_chain_lock(&rm->lock_object); mtx_unlock_spin(&rm_spinlock); @@ -344,35 +337,28 @@ _rm_unlock_hard(struct thread *td,struct turnstile_signal(ts, TS_EXCLUSIVE_QUEUE); turnstile_unpend(ts, TS_EXCLUSIVE_LOCK); turnstile_chain_unlock(&rm->lock_object); - - } else mtx_unlock_spin(&rm_spinlock); - -} +} void -_rm_runlock(struct rmlock *rm, struct rm_priotracker* tracker) +_rm_runlock(struct rmlock *rm, struct rm_priotracker *tracker) { struct pcpu *pc; struct thread *td = tracker->rmp_thread; td->td_critnest++; /* critical_enter(); */ pc = cpuid_to_pcpu[td->td_oncpu]; /* pcpu_find(td->td_oncpu); */ - rm_tracker_remove(pc,tracker); + rm_tracker_remove(pc, tracker); td->td_critnest--; td->td_pinned--; /* sched_unpin(); */ - if (0 == (td->td_owepreempt | tracker->rmp_flags)) + if (0 == (td->td_owepreempt | tracker->rmp_flags)) return; - - _rm_unlock_hard(td,tracker); - - + _rm_unlock_hard(td, tracker); } - void _rm_wlock(struct rmlock *rm) { @@ -386,53 +372,46 @@ _rm_wlock(struct rmlock *rm) rm->rm_noreadtoken = 1; - /* - * Assumes rm->rm_noreadtoken update is visible - * on other CPUs before rm_cleanIPI is called + /* + * Assumes rm->rm_noreadtoken update is visible on other CPUs + * before rm_cleanIPI is called. */ #ifdef SMP smp_rendezvous(smp_no_rendevous_barrier, rm_cleanIPI, - smp_no_rendevous_barrier - ,rm); + smp_no_rendevous_barrier, + rm); #else rm_cleanIPI(rm); #endif - mtx_lock_spin(&rm_spinlock); - - while((prio = LIST_FIRST(&rm->rm_activeReaders)) != NULL) { + while ((prio = LIST_FIRST(&rm->rm_activeReaders)) != NULL) { ts = turnstile_trywait(&rm->lock_object); prio->rmp_flags = RMPF_ONQUEUE | RMPF_SIGNAL; mtx_unlock_spin(&rm_spinlock); - turnstile_wait(ts,prio->rmp_thread, - TS_EXCLUSIVE_QUEUE); + turnstile_wait(ts, prio->rmp_thread, + TS_EXCLUSIVE_QUEUE); mtx_lock_spin(&rm_spinlock); - } - mtx_unlock_spin(&rm_spinlock); } - } - void _rm_wunlock(struct rmlock *rm) { + mtx_unlock(&rm->rm_lock); } - #ifdef LOCK_DEBUG void _rm_wlock_debug(struct rmlock *rm, const char *file, int line) { - - WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, + WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, line, NULL); _rm_wlock(rm); @@ -445,71 +424,75 @@ void _rm_wlock_debug(struct rmlock *rm, } -void _rm_wunlock_debug(struct rmlock *rm, const char *file, int line) +void +_rm_wunlock_debug(struct rmlock *rm, const char *file, int line) { + curthread->td_locks--; WITNESS_UNLOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("RMWUNLOCK", &rm->lock_object, 0, 0, file, line); _rm_wunlock(rm); -} - +} -void +void _rm_rlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, const char *file, int line) { + WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER, file, line, NULL); - WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER , file, line, NULL); - _rm_rlock(rm, tracker); LOCK_LOG_LOCK("RMRLOCK", &rm->lock_object, 0, 0, file, line); - WITNESS_LOCK(&rm->lock_object, 0 , file, line); + WITNESS_LOCK(&rm->lock_object, 0, file, line); - curthread->td_locks++; + curthread->td_locks++; } -void +void _rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, - const char *file, int line) { + const char *file, int line) +{ + curthread->td_locks--; - WITNESS_UNLOCK(&rm->lock_object, 0 , file, line); + WITNESS_UNLOCK(&rm->lock_object, 0, file, line); LOCK_LOG_LOCK("RMRUNLOCK", &rm->lock_object, 0, 0, file, line); _rm_runlock(rm, tracker); } - - - #else -/* - * Just strip out file and line arguments if no lock debugging is enabled - * in the kernel - we are called from a kernel module. -*/ - -void _rm_wlock_debug(struct rmlock *rm, const char *file, int line) +/* + * Just strip out file and line arguments if no lock debugging is enabled in + * the kernel - we are called from a kernel module. + */ +void +_rm_wlock_debug(struct rmlock *rm, const char *file, int line) { + _rm_wlock(rm); } -void _rm_wunlock_debug(struct rmlock *rm, const char *file, int line) +void +_rm_wunlock_debug(struct rmlock *rm, const char *file, int line) { + _rm_wunlock(rm); -} - -void +} + +void _rm_rlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, const char *file, int line) { + _rm_rlock(rm, tracker); } -void +void _rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, const char *file, int line) { + _rm_runlock(rm, tracker); } From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:16:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0864106566C; Sun, 26 Apr 2009 21:16:29 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFFB08FC08; Sun, 26 Apr 2009 21:16:29 +0000 (UTC) (envelope-from sam@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 n3QLGTSv095039; Sun, 26 Apr 2009 21:16:29 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLGTih095038; Sun, 26 Apr 2009 21:16:29 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262116.n3QLGTih095038@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:16:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191540 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:16:30 -0000 Author: sam Date: Sun Apr 26 21:16:29 2009 New Revision: 191540 URL: http://svn.freebsd.org/changeset/base/191540 Log: add missing part of r191537 that should have read: hoist DLT_IEEE802_11 bpf tap from ieee80211_encap up to ieee80211_start Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:16:03 2009 (r191539) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:16:29 2009 (r191540) @@ -1138,10 +1138,6 @@ ieee80211_encap(struct ieee80211vap *vap IEEE80211_NODE_STAT(ni, tx_ucast); IEEE80211_NODE_STAT_ADD(ni, tx_bytes, datalen); - /* XXX fragmented frames not handled */ - if (bpf_peers_present(vap->iv_rawbpf)) - bpf_mtap(vap->iv_rawbpf, m); - return m; bad: if (m != NULL) From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:21:08 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17D2B1065677; Sun, 26 Apr 2009 21:21:08 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 070CA8FC18; Sun, 26 Apr 2009 21:21:08 +0000 (UTC) (envelope-from sam@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 n3QLL76S095183; Sun, 26 Apr 2009 21:21:07 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLL74O095182; Sun, 26 Apr 2009 21:21:07 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262121.n3QLL74O095182@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:21:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191541 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:21:08 -0000 Author: sam Date: Sun Apr 26 21:21:07 2009 New Revision: 191541 URL: http://svn.freebsd.org/changeset/base/191541 Log: add missing DLT_IEEE802_11 tap Modified: head/sys/net80211/ieee80211_superg.c Modified: head/sys/net80211/ieee80211_superg.c ============================================================================== --- head/sys/net80211/ieee80211_superg.c Sun Apr 26 21:16:29 2009 (r191540) +++ head/sys/net80211/ieee80211_superg.c Sun Apr 26 21:21:07 2009 (r191541) @@ -482,6 +482,9 @@ ff_transmit(struct ieee80211_node *ni, s struct ifnet *ifp = vap->iv_ifp; struct ifnet *parent = ni->ni_ic->ic_ifp; + if (bpf_peers_present(vap->iv_rawbpf)) + bpf_mtap(vap->iv_rawbpf, m); + error = parent->if_transmit(parent, m); if (error != 0) { /* NB: IFQ_HANDOFF reclaims mbuf */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:21:48 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71B2510656C2; Sun, 26 Apr 2009 21:21:48 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 511E68FC2D; Sun, 26 Apr 2009 21:21:48 +0000 (UTC) (envelope-from sam@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 n3QLLmVE095228; Sun, 26 Apr 2009 21:21:48 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLLmx0095227; Sun, 26 Apr 2009 21:21:48 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262121.n3QLLmx0095227@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:21:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191542 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:21:58 -0000 Author: sam Date: Sun Apr 26 21:21:48 2009 New Revision: 191542 URL: http://svn.freebsd.org/changeset/base/191542 Log: o add missing 802.3 bpf tap o add 802.11 bpf tap to output path now that it's removed from ieee80211_encap Modified: head/sys/net80211/ieee80211_wds.c Modified: head/sys/net80211/ieee80211_wds.c ============================================================================== --- head/sys/net80211/ieee80211_wds.c Sun Apr 26 21:21:07 2009 (r191541) +++ head/sys/net80211/ieee80211_wds.c Sun Apr 26 21:21:48 2009 (r191542) @@ -277,6 +277,9 @@ ieee80211_dwds_mcast(struct ieee80211vap ieee80211_free_node(ni); continue; } + + BPF_MTAP(ifp, m); /* 802.3 tx */ + /* * Encapsulate the packet in prep for transmission. */ @@ -289,6 +292,9 @@ ieee80211_dwds_mcast(struct ieee80211vap mcopy->m_flags |= M_MCAST; mcopy->m_pkthdr.rcvif = (void *) ni; + if (bpf_peers_present(vap->iv_rawbpf)) + bpf_mtap(vap->iv_rawbpf, m); + err = parent->if_transmit(parent, mcopy); if (err) { /* NB: IFQ_HANDOFF reclaims mbuf */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:24:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22895106564A; Sun, 26 Apr 2009 21:24:51 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 11A258FC08; Sun, 26 Apr 2009 21:24:51 +0000 (UTC) (envelope-from alc@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 n3QLOoZL095342; Sun, 26 Apr 2009 21:24:50 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLOoBR095341; Sun, 26 Apr 2009 21:24:50 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <200904262124.n3QLOoBR095341@svn.freebsd.org> From: Alan Cox Date: Sun, 26 Apr 2009 21:24:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191543 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:24:51 -0000 Author: alc Date: Sun Apr 26 21:24:50 2009 New Revision: 191543 URL: http://svn.freebsd.org/changeset/base/191543 Log: Eliminate an errant comment. Discussed with: tegge Modified: head/sys/vm/swap_pager.c Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Sun Apr 26 21:21:48 2009 (r191542) +++ head/sys/vm/swap_pager.c Sun Apr 26 21:24:50 2009 (r191543) @@ -1420,8 +1420,7 @@ swp_pager_async_iodone(struct buf *bp) * Note that the requested page, reqpage, is left * busied, but we still have to wake it up. The * other pages are released (unbusied) by - * vm_page_wakeup(). We do not set reqpage's - * valid bits here, it is up to the caller. + * vm_page_wakeup(). */ KASSERT(!pmap_page_is_mapped(m), ("swp_pager_async_iodone: page %p is mapped", m)); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:34:53 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1578106566C; Sun, 26 Apr 2009 21:34:53 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AFCD18FC08; Sun, 26 Apr 2009 21:34:53 +0000 (UTC) (envelope-from sam@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 n3QLYr3f095566; Sun, 26 Apr 2009 21:34:53 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLYrOQ095565; Sun, 26 Apr 2009 21:34:53 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262134.n3QLYrOQ095565@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:34:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191544 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:34:54 -0000 Author: sam Date: Sun Apr 26 21:34:53 2009 New Revision: 191544 URL: http://svn.freebsd.org/changeset/base/191544 Log: uniformly mark mbufs that pass through the tx path with M_MCAST; drivers can now use this flag instead of inspecting the contents Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:24:50 2009 (r191543) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:34:53 2009 (r191544) @@ -424,13 +424,15 @@ bad: static void ieee80211_send_setup( struct ieee80211_node *ni, - struct ieee80211_frame *wh, + struct mbuf *m, int type, int tid, const uint8_t sa[IEEE80211_ADDR_LEN], const uint8_t da[IEEE80211_ADDR_LEN], const uint8_t bssid[IEEE80211_ADDR_LEN]) { #define WH4(wh) ((struct ieee80211_frame_addr4 *)wh) + struct ieee80211_frame *wh = mtod(m, struct ieee80211_frame *); + ieee80211_seq seqno; wh->i_fc[0] = IEEE80211_FC0_VERSION_0 | type; if ((type & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_DATA) { @@ -473,9 +475,12 @@ ieee80211_send_setup( IEEE80211_ADDR_COPY(wh->i_addr3, bssid); } *(uint16_t *)&wh->i_dur[0] = 0; - *(uint16_t *)&wh->i_seq[0] = - htole16(ni->ni_txseqs[tid] << IEEE80211_SEQ_SEQ_SHIFT); - ni->ni_txseqs[tid]++; + + seqno = ni->ni_txseqs[tid]++; + *(uint16_t *)&wh->i_seq[0] = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); + + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) + m->m_flags |= M_MCAST; #undef WH4 } @@ -516,7 +521,7 @@ ieee80211_mgmt_output(struct ieee80211_n } wh = mtod(m, struct ieee80211_frame *); - ieee80211_send_setup(ni, wh, + ieee80211_send_setup(ni, m, IEEE80211_FC0_TYPE_MGT | type, IEEE80211_NONQOS_TID, vap->iv_myaddr, ni->ni_macaddr, ni->ni_bssid); if (params->ibp_flags & IEEE80211_BPF_CRYPTO) { @@ -607,7 +612,7 @@ ieee80211_send_nulldata(struct ieee80211 const int tid = WME_AC_TO_TID(WME_AC_BE); uint8_t *qos; - ieee80211_send_setup(ni, wh, + ieee80211_send_setup(ni, m, IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS_NULL, tid, vap->iv_myaddr, ni->ni_macaddr, ni->ni_bssid); @@ -620,7 +625,7 @@ ieee80211_send_nulldata(struct ieee80211 qos[0] |= IEEE80211_QOS_ACKPOLICY_NOACK; qos[1] = 0; } else { - ieee80211_send_setup(ni, wh, + ieee80211_send_setup(ni, m, IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_NODATA, IEEE80211_NONQOS_TID, vap->iv_myaddr, ni->ni_macaddr, ni->ni_bssid); @@ -879,6 +884,7 @@ ieee80211_encap(struct ieee80211vap *vap struct ieee80211_key *key; struct llc *llc; int hdrsize, hdrspace, datalen, addqos, txfrag, is4addr; + ieee80211_seq seqno; /* * Copy existing Ethernet header to a safe place. The @@ -1091,14 +1097,14 @@ ieee80211_encap(struct ieee80211vap *vap * capability; this may also change when we pull * aggregation up into net80211 */ + seqno = ni->ni_txseqs[tid]++; *(uint16_t *)wh->i_seq = - htole16(ni->ni_txseqs[tid] << IEEE80211_SEQ_SEQ_SHIFT); - ni->ni_txseqs[tid]++; + htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); } } else { + seqno = ni->ni_txseqs[IEEE80211_NONQOS_TID]++; *(uint16_t *)wh->i_seq = - htole16(ni->ni_txseqs[IEEE80211_NONQOS_TID] << IEEE80211_SEQ_SEQ_SHIFT); - ni->ni_txseqs[IEEE80211_NONQOS_TID]++; + htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); } /* check if xmit fragmentation is required */ txfrag = (m->m_pkthdr.len > vap->iv_fragthreshold && @@ -1132,9 +1138,10 @@ ieee80211_encap(struct ieee80211vap *vap m->m_flags |= M_ENCAP; /* mark encapsulated */ IEEE80211_NODE_STAT(ni, tx_data); - if (IEEE80211_IS_MULTICAST(wh->i_addr1)) + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { IEEE80211_NODE_STAT(ni, tx_mcast); - else + m->m_flags |= M_MCAST; + } else IEEE80211_NODE_STAT(ni, tx_ucast); IEEE80211_NODE_STAT_ADD(ni, tx_bytes, datalen); @@ -1591,7 +1598,7 @@ ieee80211_send_probereq(struct ieee80211 } wh = mtod(m, struct ieee80211_frame *); - ieee80211_send_setup(ni, wh, + ieee80211_send_setup(ni, m, IEEE80211_FC0_TYPE_MGT | IEEE80211_FC0_SUBTYPE_PROBE_REQ, IEEE80211_NONQOS_TID, sa, da, bssid); /* XXX power management? */ @@ -2195,7 +2202,7 @@ ieee80211_send_proberesp(struct ieee8021 KASSERT(m != NULL, ("no room for header")); wh = mtod(m, struct ieee80211_frame *); - ieee80211_send_setup(bss, wh, + ieee80211_send_setup(bss, m, IEEE80211_FC0_TYPE_MGT | IEEE80211_FC0_SUBTYPE_PROBE_RESP, IEEE80211_NONQOS_TID, vap->iv_myaddr, da, bss->ni_bssid); /* XXX power management? */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:37:02 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81D32106566C; Sun, 26 Apr 2009 21:37:02 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 70AE28FC0C; Sun, 26 Apr 2009 21:37:02 +0000 (UTC) (envelope-from sam@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 n3QLb2gP095643; Sun, 26 Apr 2009 21:37:02 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLb2Vp095642; Sun, 26 Apr 2009 21:37:02 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262137.n3QLb2Vp095642@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:37:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191545 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:37:02 -0000 Author: sam Date: Sun Apr 26 21:37:02 2009 New Revision: 191545 URL: http://svn.freebsd.org/changeset/base/191545 Log: don't fragment ampdu aggregates Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 21:34:53 2009 (r191544) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 21:37:02 2009 (r191545) @@ -1110,7 +1110,7 @@ ieee80211_encap(struct ieee80211vap *vap txfrag = (m->m_pkthdr.len > vap->iv_fragthreshold && !IEEE80211_IS_MULTICAST(wh->i_addr1) && (vap->iv_caps & IEEE80211_C_TXFRAG) && - (m->m_flags & M_FF) == 0); /* NB: don't fragment ff's */ + (m->m_flags & (M_FF | M_AMPDU_MPDU)) == 0); if (key != NULL) { /* * IEEE 802.1X: send EAPOL frames always in the clear. From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:46:05 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 291981065697; Sun, 26 Apr 2009 21:46:05 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 123F98FC19; Sun, 26 Apr 2009 21:46:05 +0000 (UTC) (envelope-from sam@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 n3QLk4Uu095847; Sun, 26 Apr 2009 21:46:04 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLk4hx095843; Sun, 26 Apr 2009 21:46:04 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262146.n3QLk4hx095843@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:46:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191546 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:46:06 -0000 Author: sam Date: Sun Apr 26 21:46:04 2009 New Revision: 191546 URL: http://svn.freebsd.org/changeset/base/191546 Log: add iv_recv_ctl method to allow hooking rx ctl frame handling Modified: head/sys/net80211/ieee80211_adhoc.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_sta.c head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:37:02 2009 (r191545) +++ head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:46:04 2009 (r191546) @@ -74,6 +74,7 @@ static void adhoc_recv_mgmt(struct ieee8 int subtype, int rssi, int noise, uint32_t rstamp); static void ahdemo_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, int rssi, int noise, uint32_t rstamp); +static void adhoc_recv_ctl(struct ieee80211_node *, struct mbuf *, int subtype); void ieee80211_adhoc_attach(struct ieee80211com *ic) @@ -101,6 +102,7 @@ adhoc_vattach(struct ieee80211vap *vap) vap->iv_recv_mgmt = adhoc_recv_mgmt; else vap->iv_recv_mgmt = ahdemo_recv_mgmt; + vap->iv_recv_ctl = adhoc_recv_ctl; vap->iv_opdetach = adhoc_vdetach; #ifdef IEEE80211_SUPPORT_TDMA /* @@ -643,6 +645,7 @@ adhoc_input(struct ieee80211_node *ni, s case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; IEEE80211_NODE_STAT(ni, rx_ctrl); + vap->iv_recv_ctl(ni, m, subtype); goto out; default: IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, @@ -921,3 +924,8 @@ ahdemo_recv_mgmt(struct ieee80211_node * else vap->iv_stats.is_rx_mgtdiscard++; } + +static void +adhoc_recv_ctl(struct ieee80211_node *ni, struct mbuf *m0, int subtype) +{ +} Modified: head/sys/net80211/ieee80211_hostap.c ============================================================================== --- head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:37:02 2009 (r191545) +++ head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:46:04 2009 (r191546) @@ -72,6 +72,7 @@ static void hostap_deliver_data(struct i struct ieee80211_node *, struct mbuf *); static void hostap_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, int rssi, int noise, uint32_t rstamp); +static void hostap_recv_ctl(struct ieee80211_node *, struct mbuf *, int); static void hostap_recv_pspoll(struct ieee80211_node *, struct mbuf *); void @@ -96,6 +97,7 @@ hostap_vattach(struct ieee80211vap *vap) vap->iv_newstate = hostap_newstate; vap->iv_input = hostap_input; vap->iv_recv_mgmt = hostap_recv_mgmt; + vap->iv_recv_ctl = hostap_recv_ctl; vap->iv_opdetach = hostap_vdetach; vap->iv_deliver_data = hostap_deliver_data; } @@ -837,14 +839,7 @@ hostap_input(struct ieee80211_node *ni, case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; IEEE80211_NODE_STAT(ni, rx_ctrl); - switch (subtype) { - case IEEE80211_FC0_SUBTYPE_PS_POLL: - hostap_recv_pspoll(ni, m); - break; - case IEEE80211_FC0_SUBTYPE_BAR: - ieee80211_recv_bar(ni, m); - break; - } + vap->iv_recv_ctl(ni, m, subtype); goto out; default: IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, @@ -2162,6 +2157,19 @@ hostap_recv_mgmt(struct ieee80211_node * } } +static void +hostap_recv_ctl(struct ieee80211_node *ni, struct mbuf *m, int subtype) +{ + switch (subtype) { + case IEEE80211_FC0_SUBTYPE_PS_POLL: + hostap_recv_pspoll(ni, m); + break; + case IEEE80211_FC0_SUBTYPE_BAR: + ieee80211_recv_bar(ni, m); + break; + } +} + /* * Process a received ps-poll frame. */ Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:37:02 2009 (r191545) +++ head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:46:04 2009 (r191546) @@ -70,6 +70,7 @@ static int sta_input(struct ieee80211_no int rssi, int noise, uint32_t rstamp); static void sta_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, int rssi, int noise, uint32_t rstamp); +static void sta_recv_ctl(struct ieee80211_node *, struct mbuf *, int subtype); void ieee80211_sta_attach(struct ieee80211com *ic) @@ -93,6 +94,7 @@ sta_vattach(struct ieee80211vap *vap) vap->iv_newstate = sta_newstate; vap->iv_input = sta_input; vap->iv_recv_mgmt = sta_recv_mgmt; + vap->iv_recv_ctl = sta_recv_ctl; vap->iv_opdetach = sta_vdetach; vap->iv_bmiss = sta_beacon_miss; } @@ -872,6 +874,7 @@ sta_input(struct ieee80211_node *ni, str case IEEE80211_FC0_TYPE_CTL: vap->iv_stats.is_rx_ctl++; IEEE80211_NODE_STAT(ni, rx_ctrl); + vap->iv_recv_ctl(ni, m, subtype); goto out; default: IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, @@ -1597,3 +1600,8 @@ sta_recv_mgmt(struct ieee80211_node *ni, #undef ISREASSOC #undef ISPROBE } + +static void +sta_recv_ctl(struct ieee80211_node *ni, struct mbuf *m0, int subtype) +{ +} Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Sun Apr 26 21:37:02 2009 (r191545) +++ head/sys/net80211/ieee80211_var.h Sun Apr 26 21:46:04 2009 (r191546) @@ -416,6 +416,8 @@ struct ieee80211vap { uint32_t rstamp); void (*iv_recv_mgmt)(struct ieee80211_node *, struct mbuf *, int, int, int, uint32_t); + void (*iv_recv_ctl)(struct ieee80211_node *, + struct mbuf *, int); void (*iv_deliver_data)(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); #if 0 From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 21:50:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1034A106566C; Sun, 26 Apr 2009 21:50:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E14D78FC12; Sun, 26 Apr 2009 21:50:21 +0000 (UTC) (envelope-from sam@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 n3QLoLeF095968; Sun, 26 Apr 2009 21:50:21 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QLoLfV095964; Sun, 26 Apr 2009 21:50:21 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262150.n3QLoLfV095964@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 21:50:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191547 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 21:50:24 -0000 Author: sam Date: Sun Apr 26 21:50:21 2009 New Revision: 191547 URL: http://svn.freebsd.org/changeset/base/191547 Log: print both fc bytes when hitting a protocol version mismatch Modified: head/sys/net80211/ieee80211_adhoc.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_sta.c head/sys/net80211/ieee80211_wds.c Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:46:04 2009 (r191546) +++ head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:50:21 2009 (r191547) @@ -341,7 +341,8 @@ adhoc_input(struct ieee80211_node *ni, s if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != IEEE80211_FC0_VERSION_0) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, "wrong version %x", wh->i_fc[0]); + ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", + wh->i_fc[0], wh->i_fc[1]); vap->iv_stats.is_rx_badversion++; goto err; } Modified: head/sys/net80211/ieee80211_hostap.c ============================================================================== --- head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:46:04 2009 (r191546) +++ head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:50:21 2009 (r191547) @@ -475,7 +475,8 @@ hostap_input(struct ieee80211_node *ni, if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != IEEE80211_FC0_VERSION_0) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, "wrong version %x", wh->i_fc[0]); + ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", + wh->i_fc[0], wh->i_fc[1]); vap->iv_stats.is_rx_badversion++; goto err; } Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:46:04 2009 (r191546) +++ head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:50:21 2009 (r191547) @@ -547,7 +547,8 @@ sta_input(struct ieee80211_node *ni, str if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != IEEE80211_FC0_VERSION_0) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, "wrong version %x", wh->i_fc[0]); + ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", + wh->i_fc[0], wh->i_fc[1]); vap->iv_stats.is_rx_badversion++; goto err; } Modified: head/sys/net80211/ieee80211_wds.c ============================================================================== --- head/sys/net80211/ieee80211_wds.c Sun Apr 26 21:46:04 2009 (r191546) +++ head/sys/net80211/ieee80211_wds.c Sun Apr 26 21:50:21 2009 (r191547) @@ -525,7 +525,8 @@ wds_input(struct ieee80211_node *ni, str if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != IEEE80211_FC0_VERSION_0) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, "wrong version %x", wh->i_fc[0]); + ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", + wh->i_fc[0], wh->i_fc[1]); vap->iv_stats.is_rx_badversion++; goto err; } From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:06:43 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 140AA1065670; Sun, 26 Apr 2009 22:06:43 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 004518FC08; Sun, 26 Apr 2009 22:06:43 +0000 (UTC) (envelope-from zec@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 n3QM6gxE096317; Sun, 26 Apr 2009 22:06:42 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QM6g4g096299; Sun, 26 Apr 2009 22:06:42 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <200904262206.n3QM6g4g096299@svn.freebsd.org> From: Marko Zec Date: Sun, 26 Apr 2009 22:06:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191548 - in head/sys: compat/linux contrib/ipfilter/netinet net netinet netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:06:43 -0000 Author: zec Date: Sun Apr 26 22:06:42 2009 New Revision: 191548 URL: http://svn.freebsd.org/changeset/base/191548 Log: In preparation for turning on options VIMAGE in next commits, rearrange / replace / adjust several INIT_VNET_* initializer macros, all of which currently resolve to whitespace. Reviewed by: bz (an older version of the patch) Approved by: julian (mentor) Modified: head/sys/compat/linux/linux_socket.c head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c head/sys/net/if_loop.c head/sys/net/route.c head/sys/net/rtsock.c head/sys/netinet/igmp.c head/sys/netinet/in.c head/sys/netinet/in_mcast.c head/sys/netinet/in_rmx.c head/sys/netinet/ip_divert.c head/sys/netinet/ip_fw2.c head/sys/netinet/ip_mroute.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_timewait.c head/sys/netinet/udp_usrreq.c head/sys/netinet6/in6_rmx.c head/sys/netinet6/nd6_rtr.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/compat/linux/linux_socket.c Sun Apr 26 22:06:42 2009 (r191548) @@ -584,8 +584,10 @@ static int linux_socket(struct thread *td, struct linux_socket_args *args) { #ifdef INET6 +#ifndef KLD_MODULE INIT_VNET_INET6(curvnet); #endif +#endif struct socket_args /* { int domain; int type; Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Sun Apr 26 22:06:42 2009 (r191548) @@ -213,6 +213,7 @@ char *s; int ipfattach() { + INIT_VNET_INET(curvnet); #ifdef USE_SPL int s; #endif @@ -264,6 +265,7 @@ int ipfattach() */ int ipfdetach() { + INIT_VNET_INET(curvnet); #ifdef USE_SPL int s; #endif @@ -646,6 +648,7 @@ static int fr_send_ip(fin, m, mpp) fr_info_t *fin; mb_t *m, **mpp; { + INIT_VNET_INET(curvnet); fr_info_t fnew; ip_t *ip, *oip; int hlen; Modified: head/sys/net/if_loop.c ============================================================================== --- head/sys/net/if_loop.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/net/if_loop.c Sun Apr 26 22:06:42 2009 (r191548) @@ -174,7 +174,6 @@ static int vnet_loif_iattach(const void static int loop_modevent(module_t mod, int type, void *data) { - INIT_VNET_NET(curvnet); switch (type) { case MOD_LOAD: Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/net/route.c Sun Apr 26 22:06:42 2009 (r191548) @@ -178,7 +178,7 @@ route_init(void) static int vnet_route_iattach(const void *unused __unused) { - INIT_VNET_INET(curvnet); + INIT_VNET_NET(curvnet); int table; struct domain *dom; int fam; Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/net/rtsock.c Sun Apr 26 22:06:42 2009 (r191548) @@ -1206,7 +1206,6 @@ rt_ifannouncemsg(struct ifnet *ifp, int static void rt_dispatch(struct mbuf *m, const struct sockaddr *sa) { - INIT_VNET_NET(curvnet); struct m_tag *tag; /* Modified: head/sys/netinet/igmp.c ============================================================================== --- head/sys/netinet/igmp.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/igmp.c Sun Apr 26 22:06:42 2009 (r191548) @@ -141,13 +141,8 @@ static int sysctl_igmp_default_version(S static int sysctl_igmp_gsr(SYSCTL_HANDLER_ARGS); static int sysctl_igmp_ifinfo(SYSCTL_HANDLER_ARGS); -#ifdef VIMAGE static vnet_attach_fn vnet_igmp_iattach; static vnet_detach_fn vnet_igmp_idetach; -#else -static int vnet_igmp_iattach(const void *); -static int vnet_igmp_idetach(const void *); -#endif /* VIMAGE */ /* * System-wide globals. @@ -333,6 +328,7 @@ igmp_restore_context(struct mbuf *m) static int sysctl_igmp_default_version(SYSCTL_HANDLER_ARGS) { + INIT_VNET_INET(curvnet); int error; int new; @@ -372,6 +368,7 @@ out_locked: static int sysctl_igmp_gsr(SYSCTL_HANDLER_ARGS) { + INIT_VNET_INET(curvnet); int error; int i; @@ -413,6 +410,7 @@ static int sysctl_igmp_ifinfo(SYSCTL_HANDLER_ARGS) { INIT_VNET_NET(curvnet); + INIT_VNET_INET(curvnet); int *name; int error; u_int namelen; @@ -498,6 +496,7 @@ igmp_dispatch_queue(struct ifqueue *ifq, static __inline int igmp_isgroupreported(const struct in_addr addr) { + INIT_VNET_INET(curvnet); if (in_allhosts(addr) || ((!V_igmp_sendlocal && IN_LOCAL_GROUP(ntohl(addr.s_addr))))) @@ -560,6 +559,7 @@ igmp_domifattach(struct ifnet *ifp) static struct igmp_ifinfo * igi_alloc_locked(/*const*/ struct ifnet *ifp) { + INIT_VNET_INET(ifp->if_vnet); struct igmp_ifinfo *igi; IGMP_LOCK_ASSERT(); @@ -679,6 +679,7 @@ igmp_domifdetach(struct ifnet *ifp) static void igi_delete_locked(const struct ifnet *ifp) { + INIT_VNET_INET(ifp->if_vnet); struct igmp_ifinfo *igi, *tigi; CTR3(KTR_IGMPV3, "%s: freeing igmp_ifinfo for ifp %p(%s)", @@ -803,6 +804,7 @@ static int igmp_input_v2_query(struct ifnet *ifp, const struct ip *ip, const struct igmp *igmp) { + INIT_VNET_INET(ifp->if_vnet); struct ifmultiaddr *ifma; struct igmp_ifinfo *igi; struct in_multi *inm; @@ -895,6 +897,7 @@ out_locked: static void igmp_v2_update_group(struct in_multi *inm, const int timer) { + INIT_VNET_INET(curvnet); CTR4(KTR_IGMPV3, "%s: %s/%s timer=%d", __func__, inet_ntoa(inm->inm_addr), inm->inm_ifp->if_xname, timer); @@ -942,6 +945,7 @@ static int igmp_input_v3_query(struct ifnet *ifp, const struct ip *ip, /*const*/ struct igmpv3 *igmpv3) { + INIT_VNET_INET(ifp->if_vnet); struct igmp_ifinfo *igi; struct in_multi *inm; uint32_t maxresp, nsrc, qqi; @@ -1086,6 +1090,7 @@ static int igmp_input_v3_group_query(struct in_multi *inm, struct igmp_ifinfo *igi, int timer, /*const*/ struct igmpv3 *igmpv3) { + INIT_VNET_INET(curvnet); int retval; uint16_t nsrc; @@ -1188,6 +1193,7 @@ static int igmp_input_v1_report(struct ifnet *ifp, /*const*/ struct ip *ip, /*const*/ struct igmp *igmp) { + INIT_VNET_INET(ifp->if_vnet); struct in_ifaddr *ia; struct in_multi *inm; @@ -1294,6 +1300,7 @@ static int igmp_input_v2_report(struct ifnet *ifp, /*const*/ struct ip *ip, /*const*/ struct igmp *igmp) { + INIT_VNET_INET(ifp->if_vnet); struct in_ifaddr *ia; struct in_multi *inm; @@ -1579,21 +1586,15 @@ igmp_input(struct mbuf *m, int off) void igmp_fasttimo(void) { -#ifdef VIMAGE VNET_ITERATOR_DECL(vnet_iter); VNET_LIST_RLOCK(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); - INIT_VNET_INET(vnet_iter); igmp_fasttimo_vnet(); CURVNET_RESTORE(); } VNET_LIST_RUNLOCK(); -#else /* !VIMAGE */ - - igmp_fasttimo_vnet(); -#endif /* VIMAGE */ } /* @@ -1605,6 +1606,7 @@ igmp_fasttimo(void) static void igmp_fasttimo_vnet(void) { + INIT_VNET_INET(curvnet); struct ifqueue scq; /* State-change packets */ struct ifqueue qrq; /* Query response packets */ struct ifnet *ifp; @@ -1727,6 +1729,7 @@ out_locked: static void igmp_v1v2_process_group_timer(struct in_multi *inm, const int version) { + INIT_VNET_INET(curvnet); int report_timer_expired; IN_MULTI_LOCK_ASSERT(); @@ -1775,6 +1778,7 @@ igmp_v3_process_group_timers(struct igmp struct ifqueue *qrq, struct ifqueue *scq, struct in_multi *inm, const int uri_fasthz) { + INIT_VNET_INET(curvnet); int query_response_timer_expired; int state_change_retransmit_timer_expired; @@ -1964,6 +1968,7 @@ igmp_set_version(struct igmp_ifinfo *igi static void igmp_v3_cancel_link_timers(struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); struct ifmultiaddr *ifma; struct ifnet *ifp; struct in_multi *inm; @@ -2039,6 +2044,7 @@ igmp_v3_cancel_link_timers(struct igmp_i static void igmp_v1v2_process_querier_timers(struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); IGMP_LOCK_ASSERT(); @@ -2115,20 +2121,15 @@ igmp_v1v2_process_querier_timers(struct void igmp_slowtimo(void) { -#ifdef VIMAGE VNET_ITERATOR_DECL(vnet_iter); VNET_LIST_RLOCK(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); - INIT_VNET_INET(vnet_iter); igmp_slowtimo_vnet(); CURVNET_RESTORE(); } VNET_LIST_RUNLOCK(); -#else /* !VIMAGE */ - igmp_slowtimo_vnet(); -#endif /* VIMAGE */ } /* @@ -2137,6 +2138,7 @@ igmp_slowtimo(void) static void igmp_slowtimo_vnet(void) { + INIT_VNET_INET(curvnet); struct igmp_ifinfo *igi; IGMP_LOCK(); @@ -2164,9 +2166,6 @@ igmp_v1v2_queue_report(struct in_multi * IGMP_LOCK_ASSERT(); ifp = inm->inm_ifp; - /* XXX are these needed ? */ - INIT_VNET_NET(ifp->if_vnet); - INIT_VNET_INET(ifp->if_vnet); MGETHDR(m, M_DONTWAIT, MT_DATA); if (m == NULL) @@ -2304,6 +2303,7 @@ out_locked: static int igmp_initial_join(struct in_multi *inm, struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); struct ifnet *ifp; struct ifqueue *ifq; int error, retval, syncstates; @@ -2432,6 +2432,7 @@ igmp_initial_join(struct in_multi *inm, static int igmp_handle_state_change(struct in_multi *inm, struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); struct ifnet *ifp; int retval; @@ -2491,6 +2492,7 @@ igmp_handle_state_change(struct in_multi static void igmp_final_leave(struct in_multi *inm, struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); int syncstates; syncstates = 1; @@ -3276,6 +3278,7 @@ igmp_v3_merge_state_changes(struct in_mu static void igmp_v3_dispatch_general_query(struct igmp_ifinfo *igi) { + INIT_VNET_INET(curvnet); struct ifmultiaddr *ifma, *tifma; struct ifnet *ifp; struct in_multi *inm; @@ -3357,12 +3360,14 @@ igmp_intr(struct mbuf *m) CTR2(KTR_IGMPV3, "%s: transmit %p", __func__, m); /* - * Restore VNET image pointer from enqueued mbuf chain + * Set VNET image pointer from enqueued mbuf chain * before doing anything else. Whilst we use interface * indexes to guard against interface detach, they are * unique to each VIMAGE and must be retrieved. */ CURVNET_SET(m->m_pkthdr.header); + INIT_VNET_NET(curvnet); + INIT_VNET_INET(curvnet); ifindex = igmp_restore_context(m); /* @@ -3444,7 +3449,6 @@ out: static struct mbuf * igmp_v3_encap_report(struct ifnet *ifp, struct mbuf *m) { - INIT_VNET_NET(curvnet); INIT_VNET_INET(curvnet); struct igmp_report *igmp; struct ip *ip; @@ -3616,15 +3620,15 @@ vnet_igmp_idetach(const void *unused __u return (0); } -#ifdef VIMAGE -static struct vnet_symmap vnet_igmp_symmap[] = { - VNET_SYMMAP(igmp, igi_head), - VNET_SYMMAP(igmp, igmpstat), - VNET_SYMMAP_END +#ifndef VIMAGE_GLOBALS +static vnet_modinfo_t vnet_igmp_modinfo = { + .vmi_id = VNET_MOD_IGMP, + .vmi_name = "igmp", + .vmi_dependson = VNET_MOD_INET, + .vmi_iattach = vnet_igmp_iattach, + .vmi_idetach = vnet_igmp_idetach }; -VNET_MOD_DECLARE(IGMP, igmp, vnet_igmp_iattach, vnet_igmp_idetach, - vnet_igmp_symmap); -#endif /* VIMAGE */ +#endif static int igmp_modevent(module_t mod, int type, void *unused __unused) @@ -3633,22 +3637,20 @@ igmp_modevent(module_t mod, int type, vo switch (type) { case MOD_LOAD: igmp_sysinit(); -#ifdef VIMAGE +#ifndef VIMAGE_GLOBALS vnet_mod_register(&vnet_igmp_modinfo); #else - (void)vnet_igmp_iattach(NULL); -#endif /* VIMAGE */ + vnet_igmp_iattach(NULL); +#endif break; case MOD_UNLOAD: -#ifdef VIMAGE - /* - * TODO: Allow module unload if any VIMAGE instances - * are using this module. - */ - return (EBUSY); +#ifndef VIMAGE_GLOBALS +#ifdef NOTYET + vnet_mod_deregister(&vnet_igmp_modinfo); +#endif #else - (void)vnet_igmp_idetach(NULL); -#endif /* VIMAGE */ + vnet_igmp_idetach(NULL); +#endif igmp_sysuninit(); break; default: Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/in.c Sun Apr 26 22:06:42 2009 (r191548) @@ -1100,7 +1100,6 @@ in_ifdetach(struct ifnet *ifp) static void in_purgemaddrs(struct ifnet *ifp) { - INIT_VNET_INET(ifp->if_vnet); LIST_HEAD(,in_multi) purgeinms; struct in_multi *inm, *tinm; struct ifmultiaddr *ifma; Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/in_mcast.c Sun Apr 26 22:06:42 2009 (r191548) @@ -392,7 +392,6 @@ static int in_getmulti(struct ifnet *ifp, const struct in_addr *group, struct in_multi **pinm) { - INIT_VNET_INET(ifp->if_vnet); struct sockaddr_in gsin; struct ifmultiaddr *ifma; struct in_ifinfo *ii; @@ -1808,6 +1807,7 @@ static struct ifnet * inp_lookup_mcast_ifp(const struct inpcb *inp, const struct sockaddr_in *gsin, const struct in_addr ina) { + INIT_VNET_INET(curvnet); struct ifnet *ifp; KASSERT(gsin->sin_family == AF_INET, ("%s: not AF_INET", __func__)); @@ -1853,7 +1853,6 @@ static int inp_join_group(struct inpcb *inp, struct sockopt *sopt) { INIT_VNET_NET(curvnet); - INIT_VNET_INET(curvnet); struct group_source_req gsr; sockunion_t *gsa, *ssa; struct ifnet *ifp; @@ -2306,6 +2305,7 @@ static int inp_set_multicast_if(struct inpcb *inp, struct sockopt *sopt) { INIT_VNET_NET(curvnet); + INIT_VNET_INET(curvnet); struct in_addr addr; struct ip_mreqn mreqn; struct ifnet *ifp; Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/in_rmx.c Sun Apr 26 22:06:42 2009 (r191548) @@ -250,6 +250,8 @@ static void in_rtqtimo_one(void *rock); static void in_rtqtimo(void *rock) { + INIT_VNET_NET(curvnet); + INIT_VNET_INET(curvnet); int fibnum; void *newrock; struct timeval atv; Modified: head/sys/netinet/ip_divert.c ============================================================================== --- head/sys/netinet/ip_divert.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/ip_divert.c Sun Apr 26 22:06:42 2009 (r191548) @@ -132,6 +132,7 @@ static u_long div_recvspace = DIVRCVQ; / static void div_zone_change(void *tag) { + INIT_VNET_INET(curvnet); uma_zone_set_max(V_divcbinfo.ipi_zone, maxsockets); } @@ -723,6 +724,7 @@ struct protosw div_protosw = { static int div_modevent(module_t mod, int type, void *unused) { + INIT_VNET_INET(curvnet); /* XXX move to iattach - revisit!!! */ int err = 0; int n; Modified: head/sys/netinet/ip_fw2.c ============================================================================== --- head/sys/netinet/ip_fw2.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/ip_fw2.c Sun Apr 26 22:06:42 2009 (r191548) @@ -1818,7 +1818,6 @@ static int add_table_entry(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, uint8_t mlen, uint32_t value) { - INIT_VNET_IPFW(curvnet); struct radix_node_head *rnh; struct table_entry *ent; struct radix_node *rn; @@ -4535,6 +4534,7 @@ struct ip_fw *ip_fw_default_rule; static void ipfw_tick(void * __unused unused) { + INIT_VNET_IPFW(curvnet); struct mbuf *m0, *m, *mnext, **mtailp; int i; ipfw_dyn_rule *q; @@ -4718,6 +4718,7 @@ ipfw_init(void) void ipfw_destroy(void) { + INIT_VNET_IPFW(curvnet); struct ip_fw *reap; ip_fw_chk_ptr = NULL; Modified: head/sys/netinet/ip_mroute.c ============================================================================== --- head/sys/netinet/ip_mroute.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/ip_mroute.c Sun Apr 26 22:06:42 2009 (r191548) @@ -1709,6 +1709,7 @@ X_ip_rsvp_force_done(struct socket *so _ static void X_rsvp_input(struct mbuf *m, int off __unused) { + INIT_VNET_INET(curvnet); if (!V_rsvp_on) m_freem(m); Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/tcp_subr.c Sun Apr 26 22:06:42 2009 (r191548) @@ -288,6 +288,7 @@ static struct mtx isn_mtx; static void tcp_zone_change(void *tag) { + INIT_VNET_INET(curvnet); uma_zone_set_max(V_tcbinfo.ipi_zone, maxsockets); uma_zone_set_max(V_tcpcb_zone, maxsockets); Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/tcp_timewait.c Sun Apr 26 22:06:42 2009 (r191548) @@ -132,6 +132,7 @@ tcptw_auto_size(void) static int sysctl_maxtcptw(SYSCTL_HANDLER_ARGS) { + INIT_VNET_INET(curvnet); int error, new; if (maxtcptw == 0) @@ -158,6 +159,7 @@ SYSCTL_V_INT(V_NET, vnet_inet, _net_inet void tcp_tw_zone_change(void) { + INIT_VNET_INET(curvnet); if (maxtcptw == 0) uma_zone_set_max(V_tcptw_zone, tcptw_auto_size()); Modified: head/sys/netinet/udp_usrreq.c ============================================================================== --- head/sys/netinet/udp_usrreq.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet/udp_usrreq.c Sun Apr 26 22:06:42 2009 (r191548) @@ -155,6 +155,7 @@ static int udp_output(struct inpcb *, st static void udp_zone_change(void *tag) { + INIT_VNET_INET(curvnet); uma_zone_set_max(V_udbinfo.ipi_zone, maxsockets); } Modified: head/sys/netinet6/in6_rmx.c ============================================================================== --- head/sys/netinet6/in6_rmx.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet6/in6_rmx.c Sun Apr 26 22:06:42 2009 (r191548) @@ -289,8 +289,7 @@ static void in6_rtqtimo(void *rock) { CURVNET_SET_QUIET((struct vnet *) rock); - INIT_VNET_NET((struct vnet *) rock); - INIT_VNET_INET6((struct vnet *) rock); + INIT_VNET_INET6(curvnet); struct radix_node_head *rnh = rock; struct rtqk_arg arg; struct timeval atv; @@ -377,8 +376,7 @@ static void in6_mtutimo(void *rock) { CURVNET_SET_QUIET((struct vnet *) rock); - INIT_VNET_NET((struct vnet *) rock); - INIT_VNET_INET6((struct vnet *) rock); + INIT_VNET_INET6(curvnet); struct radix_node_head *rnh = rock; struct mtuex_arg arg; struct timeval atv; Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Sun Apr 26 21:50:21 2009 (r191547) +++ head/sys/netinet6/nd6_rtr.c Sun Apr 26 22:06:42 2009 (r191548) @@ -1549,6 +1549,7 @@ pfxlist_onlink_check() int nd6_prefix_onlink(struct nd_prefix *pr) { + INIT_VNET_NET(curvnet); INIT_VNET_INET6(curvnet); struct ifaddr *ifa; struct ifnet *ifp = pr->ndpr_ifp; From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:44:23 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C4301065674; Sun, 26 Apr 2009 22:44:23 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69F658FC17; Sun, 26 Apr 2009 22:44:23 +0000 (UTC) (envelope-from sam@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 n3QMiNX3097078; Sun, 26 Apr 2009 22:44:23 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QMiNV8097077; Sun, 26 Apr 2009 22:44:23 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262244.n3QMiNV8097077@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 22:44:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191549 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:44:23 -0000 Author: sam Date: Sun Apr 26 22:44:23 2009 New Revision: 191549 URL: http://svn.freebsd.org/changeset/base/191549 Log: whitespace Modified: head/sys/net80211/ieee80211_sta.c Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Sun Apr 26 22:06:42 2009 (r191548) +++ head/sys/net80211/ieee80211_sta.c Sun Apr 26 22:44:23 2009 (r191549) @@ -877,6 +877,7 @@ sta_input(struct ieee80211_node *ni, str IEEE80211_NODE_STAT(ni, rx_ctrl); vap->iv_recv_ctl(ni, m, subtype); goto out; + default: IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, wh, NULL, "bad frame type 0x%x", type); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:45:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B32310656C2; Sun, 26 Apr 2009 22:45:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 27E6C8FC13; Sun, 26 Apr 2009 22:45:22 +0000 (UTC) (envelope-from sam@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 n3QMjMHs097143; Sun, 26 Apr 2009 22:45:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QMjMEs097141; Sun, 26 Apr 2009 22:45:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262245.n3QMjMEs097141@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 22:45:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191550 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:45:24 -0000 Author: sam Date: Sun Apr 26 22:45:21 2009 New Revision: 191550 URL: http://svn.freebsd.org/changeset/base/191550 Log: stash the node pointer in the mbuf before doing ff aggregration so this is done in only one place Modified: head/sys/net80211/ieee80211_output.c head/sys/net80211/ieee80211_superg.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 22:44:23 2009 (r191549) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 22:45:21 2009 (r191550) @@ -241,6 +241,13 @@ ieee80211_start(struct ifnet *ifp) ieee80211_free_node(ni); continue; } + /* + * Stash the node pointer. Note that we do this after + * any call to ieee80211_dwds_mcast because that code + * uses any existing value for rcvif to identify the + * interface it (might have been) received on. + */ + m->m_pkthdr.rcvif = (void *)ni; BPF_MTAP(ifp, m); /* 802.3 tx */ @@ -265,14 +272,6 @@ ieee80211_start(struct ifnet *ifp) } } - /* - * Stash the node pointer and hand the frame off to - * the underlying device. Note that we do this after - * any call to ieee80211_dwds_mcast because that code - * uses any existing value for rcvif. - */ - m->m_pkthdr.rcvif = (void *)ni; - /* XXX fragmented frames not handled */ if (bpf_peers_present(vap->iv_rawbpf)) bpf_mtap(vap->iv_rawbpf, m); Modified: head/sys/net80211/ieee80211_superg.c ============================================================================== --- head/sys/net80211/ieee80211_superg.c Sun Apr 26 22:44:23 2009 (r191549) +++ head/sys/net80211/ieee80211_superg.c Sun Apr 26 22:45:21 2009 (r191550) @@ -725,8 +725,6 @@ ieee80211_ff_check(struct ieee80211_node mstaged->m_nextpkt = m; mstaged->m_flags |= M_FF; /* NB: mark for encap work */ } else { - m->m_pkthdr.rcvif = (void *)ni; /* NB: hold node reference */ - KASSERT(tap->txa_private == NULL, ("txa_private %p", tap->txa_private)); tap->txa_private = m; From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:49:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40846106566B; Sun, 26 Apr 2009 22:49:26 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2C12C8FC15; Sun, 26 Apr 2009 22:49:26 +0000 (UTC) (envelope-from sam@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 n3QMnQxT097240; Sun, 26 Apr 2009 22:49:26 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QMnQW3097239; Sun, 26 Apr 2009 22:49:26 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262249.n3QMnQW3097239@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 22:49:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191551 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:49:26 -0000 Author: sam Date: Sun Apr 26 22:49:25 2009 New Revision: 191551 URL: http://svn.freebsd.org/changeset/base/191551 Log: improvements: o formatting o more rx ampdu state o tdma state o show ifnet names o show auth policy name Modified: head/sys/net80211/ieee80211_ddb.c Modified: head/sys/net80211/ieee80211_ddb.c ============================================================================== --- head/sys/net80211/ieee80211_ddb.c Sun Apr 26 22:45:21 2009 (r191550) +++ head/sys/net80211/ieee80211_ddb.c Sun Apr 26 22:49:25 2009 (r191551) @@ -49,14 +49,18 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef IEEE80211_SUPPORT_TDMA +#include +#endif #include #include -#define DB_PRINTSYM(prefix, addr) \ - db_printf(prefix " "); \ +#define DB_PRINTSYM(prefix, name, addr) do { \ + db_printf("%s%-25s : ", prefix, name); \ db_printsym((db_addr_t) addr, DB_STGY_ANY); \ - db_printf("\n"); + db_printf("\n"); \ +} while (0) static void _db_show_sta(const struct ieee80211_node *); static void _db_show_vap(const struct ieee80211vap *, int); @@ -179,26 +183,35 @@ DB_SHOW_ALL_COMMAND(vaps, db_show_all_va static void _db_show_txampdu(const char *sep, int ix, const struct ieee80211_tx_ampdu *tap) { - db_printf("%stxampdu[%d]: %p flags %b ac %u\n", - sep, ix, tap, tap->txa_flags, IEEE80211_AGGR_BITS, tap->txa_ac); - db_printf("%s token %u qbytes %d qframes %d start %u wnd %u\n", - sep, tap->txa_token, tap->txa_qbytes, tap->txa_qframes, - tap->txa_start, tap->txa_wnd); - db_printf("%s attempts %d nextrequest %d\n", - sep, tap->txa_attempts, tap->txa_nextrequest); - /* XXX packet q + timer */ + db_printf("%stxampdu[%d]: %p flags %b ac %s\n", + sep, ix, tap, tap->txa_flags, IEEE80211_AGGR_BITS, + ieee80211_wme_acnames[tap->txa_ac]); + db_printf("%s token %u lastsample %d pkts %d avgpps %d qbytes %d qframes %d\n", + sep, tap->txa_token, tap->txa_lastsample, tap->txa_pkts, + tap->txa_avgpps, tap->txa_qbytes, tap->txa_qframes); + db_printf("%s start %u seqpending %u wnd %u attempts %d nextrequest %d\n", + sep, tap->txa_start, tap->txa_seqpending, tap->txa_wnd, + tap->txa_attempts, tap->txa_nextrequest); + /* XXX timer */ } static void _db_show_rxampdu(const char *sep, int ix, const struct ieee80211_rx_ampdu *rap) { + int i; + db_printf("%srxampdu[%d]: %p flags 0x%x tid %u\n", sep, ix, rap, rap->rxa_flags, ix /*XXX */); db_printf("%s qbytes %d qframes %d seqstart %u start %u wnd %u\n", sep, rap->rxa_qbytes, rap->rxa_qframes, rap->rxa_seqstart, rap->rxa_start, rap->rxa_wnd); - db_printf("%s age %d nframes %d\n", - sep, rap->rxa_age, rap->rxa_nframes); + db_printf("%s age %d nframes %d\n", sep, + rap->rxa_age, rap->rxa_nframes); + for (i = 0; i < IEEE80211_AGGR_BAWMAX; i++) + if (rap->rxa_m[i] != NULL) + db_printf("%s m[%2u:%4u] %p\n", sep, i, + IEEE80211_SEQ_ADD(rap->rxa_start, i), + rap->rxa_m[i]); } static void @@ -258,15 +271,43 @@ _db_show_sta(const struct ieee80211_node if (ni->ni_tx_ampdu[i].txa_flags & IEEE80211_AGGR_SETUP) _db_show_txampdu("\t", i, &ni->ni_tx_ampdu[i]); for (i = 0; i < WME_NUM_TID; i++) - if (ni->ni_rx_ampdu[i].rxa_nframes) + if (ni->ni_rx_ampdu[i].rxa_nframes || + ni->ni_rx_ampdu[i].rxa_qframes) _db_show_rxampdu("\t", i, &ni->ni_rx_ampdu[i]); db_printf("\tinact %u inact_reload %u txrate %u\n", ni->ni_inact, ni->ni_inact_reload, ni->ni_txrate); - /* XXX savedq */ /* XXX wdsq */ } +#ifdef IEEE80211_SUPPORT_TDMA +static void +_db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showprocs) +{ + const char *cp; + int i; + + db_printf("%stdma %p:\n", sep, ts); + db_printf("%s features %b version %u slot %u txrate %u bintval %u peer %p\n", sep, + ts->tdma_features, TDMA_F_BITS, ts->tdma_version, ts->tdma_slot, + ts->tdma_txrate, ts->tdma_bintval, ts->tdma_peer); + db_printf("%s slotlen %u slotcnt %u bw[", sep, + ts->tdma_slotlen, ts->tdma_slotcnt); + cp = ""; + for (i = 0; i < TDMA_MAXSLOTS; i++) { + db_printf("%s%u", cp, ts->tdma_bw[i]); + cp = ":"; + } + db_printf("] inuse 0x%x active 0x%x count %d\n", + ts->tdma_inuse[0], ts->tdma_active[0], ts->tdma_count); + if (showprocs) { + DB_PRINTSYM(sep, " tdma_newstate", ts->tdma_newstate); + DB_PRINTSYM(sep, " tdma_recv_mgmt", ts->tdma_recv_mgmt); + DB_PRINTSYM(sep, " tdma_opdetach", ts->tdma_opdetach); + } +} +#endif /* IEEE80211_SUPPORT_TDMA */ + static void _db_show_vap(const struct ieee80211vap *vap, int showprocs) { @@ -280,7 +321,7 @@ _db_show_vap(const struct ieee80211vap * db_printf("\topmode %s", ieee80211_opmode_name[vap->iv_opmode]); db_printf(" state %s", ieee80211_state_name[vap->iv_state]); - db_printf(" ifp %p", vap->iv_ifp); + db_printf(" ifp %p(%s)", vap->iv_ifp, vap->iv_ifp->if_xname); db_printf("\n"); db_printf("\tic %p", vap->iv_ic); @@ -328,8 +369,8 @@ _db_show_vap(const struct ieee80211vap * db_printf(" scanreq_mindwell %u", vap->iv_scanreq_mindwell); db_printf(" scanreq_maxdwell %u", vap->iv_scanreq_maxdwell); db_printf("\n"); - db_printf(" scanreq_flags 0x%x", vap->iv_scanreq_flags); - db_printf("\tscanreq_nssid %d", vap->iv_scanreq_nssid); + db_printf("\tscanreq_flags 0x%x", vap->iv_scanreq_flags); + db_printf(" scanreq_nssid %d", vap->iv_scanreq_nssid); for (i = 0; i < vap->iv_scanreq_nssid; i++) _db_show_ssid(" scanreq_ssid[%u]", i, vap->iv_scanreq_ssid[i].len, vap->iv_scanreq_ssid[i].ssid); @@ -403,28 +444,31 @@ _db_show_vap(const struct ieee80211vap * for (i = 0; i < IEEE80211_WEP_NKID; i++) _db_show_key("\tnw_keys[%u]", i, &vap->iv_nw_keys[i]); - db_printf("\tauth %p", vap->iv_auth); + db_printf("\tauth %p(%s)", vap->iv_auth, vap->iv_auth->ia_name); db_printf(" ec %p", vap->iv_ec); db_printf(" acl %p", vap->iv_acl); db_printf(" as %p", vap->iv_as); db_printf("\n"); - +#ifdef IEEE80211_SUPPORT_TDMA + if (vap->iv_tdma != NULL) + _db_show_tdma("\t", vap->iv_tdma, showprocs); +#endif /* IEEE80211_SUPPORT_TDMA */ if (showprocs) { - DB_PRINTSYM("\tiv_key_alloc", vap->iv_key_alloc); - DB_PRINTSYM("\tiv_key_delete", vap->iv_key_delete); - DB_PRINTSYM("\tiv_key_set", vap->iv_key_set); - DB_PRINTSYM("\tiv_key_update_begin", vap->iv_key_update_begin); - DB_PRINTSYM("\tiv_key_update_end", vap->iv_key_update_end); - DB_PRINTSYM("\tiv_opdetach", vap->iv_opdetach); - DB_PRINTSYM("\tiv_input", vap->iv_input); - DB_PRINTSYM("\tiv_recv_mgmt", vap->iv_recv_mgmt); - DB_PRINTSYM("\tiv_deliver_data", vap->iv_deliver_data); - DB_PRINTSYM("\tiv_bmiss", vap->iv_bmiss); - DB_PRINTSYM("\tiv_reset", vap->iv_reset); - DB_PRINTSYM("\tiv_update_beacon", vap->iv_update_beacon); - DB_PRINTSYM("\tiv_newstate", vap->iv_newstate); - DB_PRINTSYM("\tiv_output", vap->iv_output); + DB_PRINTSYM("\t", "iv_key_alloc", vap->iv_key_alloc); + DB_PRINTSYM("\t", "iv_key_delete", vap->iv_key_delete); + DB_PRINTSYM("\t", "iv_key_set", vap->iv_key_set); + DB_PRINTSYM("\t", "iv_key_update_begin", vap->iv_key_update_begin); + DB_PRINTSYM("\t", "iv_key_update_end", vap->iv_key_update_end); + DB_PRINTSYM("\t", "iv_opdetach", vap->iv_opdetach); + DB_PRINTSYM("\t", "iv_input", vap->iv_input); + DB_PRINTSYM("\t", "iv_recv_mgmt", vap->iv_recv_mgmt); + DB_PRINTSYM("\t", "iv_deliver_data", vap->iv_deliver_data); + DB_PRINTSYM("\t", "iv_bmiss", vap->iv_bmiss); + DB_PRINTSYM("\t", "iv_reset", vap->iv_reset); + DB_PRINTSYM("\t", "iv_update_beacon", vap->iv_update_beacon); + DB_PRINTSYM("\t", "iv_newstate", vap->iv_newstate); + DB_PRINTSYM("\t", "iv_output", vap->iv_output); } } @@ -437,7 +481,7 @@ _db_show_com(const struct ieee80211com * TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap); db_printf("\n"); - db_printf("\tifp %p", ic->ic_ifp); + db_printf("\tifp %p(%s)", ic->ic_ifp, ic->ic_ifp->if_xname); db_printf(" comlock %p", &ic->ic_comlock); db_printf("\n"); db_printf("\theadroom %d", ic->ic_headroom); @@ -542,36 +586,36 @@ _db_show_com(const struct ieee80211com * db_printf("\n"); if (showprocs) { - DB_PRINTSYM("\tic_vap_create", ic->ic_vap_create); - DB_PRINTSYM("\tic_vap_delete", ic->ic_vap_delete); + DB_PRINTSYM("\t", "ic_vap_create", ic->ic_vap_create); + DB_PRINTSYM("\t", "ic_vap_delete", ic->ic_vap_delete); #if 0 /* operating mode attachment */ ieee80211vap_attach ic_vattach[IEEE80211_OPMODE_MAX]; #endif - DB_PRINTSYM("\tic_newassoc", ic->ic_newassoc); - DB_PRINTSYM("\tic_getradiocaps", ic->ic_getradiocaps); - DB_PRINTSYM("\tic_setregdomain", ic->ic_setregdomain); - DB_PRINTSYM("\tic_send_mgmt", ic->ic_send_mgmt); - DB_PRINTSYM("\tic_raw_xmit", ic->ic_raw_xmit); - DB_PRINTSYM("\tic_updateslot", ic->ic_updateslot); - DB_PRINTSYM("\tic_update_mcast", ic->ic_update_mcast); - DB_PRINTSYM("\tic_update_promisc", ic->ic_update_promisc); - DB_PRINTSYM("\tic_node_alloc", ic->ic_node_alloc); - DB_PRINTSYM("\tic_node_free", ic->ic_node_free); - DB_PRINTSYM("\tic_node_cleanup", ic->ic_node_cleanup); - DB_PRINTSYM("\tic_node_getrssi", ic->ic_node_getrssi); - DB_PRINTSYM("\tic_node_getsignal", ic->ic_node_getsignal); - DB_PRINTSYM("\tic_node_getmimoinfo", ic->ic_node_getmimoinfo); - DB_PRINTSYM("\tic_scan_start", ic->ic_scan_start); - DB_PRINTSYM("\tic_scan_end", ic->ic_scan_end); - DB_PRINTSYM("\tic_set_channel", ic->ic_set_channel); - DB_PRINTSYM("\tic_scan_curchan", ic->ic_scan_curchan); - DB_PRINTSYM("\tic_scan_mindwell", ic->ic_scan_mindwell); - DB_PRINTSYM("\tic_recv_action", ic->ic_recv_action); - DB_PRINTSYM("\tic_send_action", ic->ic_send_action); - DB_PRINTSYM("\tic_addba_request", ic->ic_addba_request); - DB_PRINTSYM("\tic_addba_response", ic->ic_addba_response); - DB_PRINTSYM("\tic_addba_stop", ic->ic_addba_stop); + DB_PRINTSYM("\t", "ic_newassoc", ic->ic_newassoc); + DB_PRINTSYM("\t", "ic_getradiocaps", ic->ic_getradiocaps); + DB_PRINTSYM("\t", "ic_setregdomain", ic->ic_setregdomain); + DB_PRINTSYM("\t", "ic_send_mgmt", ic->ic_send_mgmt); + DB_PRINTSYM("\t", "ic_raw_xmit", ic->ic_raw_xmit); + DB_PRINTSYM("\t", "ic_updateslot", ic->ic_updateslot); + DB_PRINTSYM("\t", "ic_update_mcast", ic->ic_update_mcast); + DB_PRINTSYM("\t", "ic_update_promisc", ic->ic_update_promisc); + DB_PRINTSYM("\t", "ic_node_alloc", ic->ic_node_alloc); + DB_PRINTSYM("\t", "ic_node_free", ic->ic_node_free); + DB_PRINTSYM("\t", "ic_node_cleanup", ic->ic_node_cleanup); + DB_PRINTSYM("\t", "ic_node_getrssi", ic->ic_node_getrssi); + DB_PRINTSYM("\t", "ic_node_getsignal", ic->ic_node_getsignal); + DB_PRINTSYM("\t", "ic_node_getmimoinfo", ic->ic_node_getmimoinfo); + DB_PRINTSYM("\t", "ic_scan_start", ic->ic_scan_start); + DB_PRINTSYM("\t", "ic_scan_end", ic->ic_scan_end); + DB_PRINTSYM("\t", "ic_set_channel", ic->ic_set_channel); + DB_PRINTSYM("\t", "ic_scan_curchan", ic->ic_scan_curchan); + DB_PRINTSYM("\t", "ic_scan_mindwell", ic->ic_scan_mindwell); + DB_PRINTSYM("\t", "ic_recv_action", ic->ic_recv_action); + DB_PRINTSYM("\t", "ic_send_action", ic->ic_send_action); + DB_PRINTSYM("\t", "ic_addba_request", ic->ic_addba_request); + DB_PRINTSYM("\t", "ic_addba_response", ic->ic_addba_response); + DB_PRINTSYM("\t", "ic_addba_stop", ic->ic_addba_stop); } if (showvaps && !TAILQ_EMPTY(&ic->ic_vaps)) { db_printf("\n"); From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:54:52 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD088106566B; Sun, 26 Apr 2009 22:54:51 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9F328FC15; Sun, 26 Apr 2009 22:54:51 +0000 (UTC) (envelope-from sam@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 n3QMsp27097369; Sun, 26 Apr 2009 22:54:51 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QMspCb097367; Sun, 26 Apr 2009 22:54:51 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262254.n3QMspCb097367@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 22:54:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191552 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:54:52 -0000 Author: sam Date: Sun Apr 26 22:54:51 2009 New Revision: 191552 URL: http://svn.freebsd.org/changeset/base/191552 Log: allow drivers to hook ampdu rx start/stop Modified: head/sys/net80211/ieee80211_ht.c head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_ht.c ============================================================================== --- head/sys/net80211/ieee80211_ht.c Sun Apr 26 22:49:25 2009 (r191551) +++ head/sys/net80211/ieee80211_ht.c Sun Apr 26 22:54:51 2009 (r191552) @@ -120,6 +120,9 @@ static void ieee80211_bar_response(struc struct ieee80211_tx_ampdu *tap, int status); static void ampdu_tx_stop(struct ieee80211_tx_ampdu *tap); static void bar_stop_timer(struct ieee80211_tx_ampdu *tap); +static int ampdu_rx_start(struct ieee80211_node *, struct ieee80211_rx_ampdu *, + int baparamset, int batimeout, int baseqctl); +static void ampdu_rx_stop(struct ieee80211_node *, struct ieee80211_rx_ampdu *); void ieee80211_ht_attach(struct ieee80211com *ic) @@ -132,6 +135,8 @@ ieee80211_ht_attach(struct ieee80211com ic->ic_addba_response = ieee80211_addba_response; ic->ic_addba_stop = ieee80211_addba_stop; ic->ic_bar_response = ieee80211_bar_response; + ic->ic_ampdu_rx_start = ampdu_rx_start; + ic->ic_ampdu_rx_stop = ampdu_rx_stop; ic->ic_htprotmode = IEEE80211_PROT_RTSCTS; ic->ic_curhtprotmode = IEEE80211_HTINFO_OPMODE_PURE; @@ -317,9 +322,12 @@ ampdu_rx_purge(struct ieee80211_rx_ampdu /* * Start A-MPDU rx/re-order processing for the specified TID. */ -static void -ampdu_rx_start(struct ieee80211_rx_ampdu *rap, int bufsiz, int start) +static int +ampdu_rx_start(struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap, + int baparamset, int batimeout, int baseqctl) { + int bufsiz = MS(baparamset, IEEE80211_BAPS_BUFSIZ); + if (rap->rxa_flags & IEEE80211_AGGR_RUNNING) { /* * AMPDU previously setup and not terminated with a DELBA, @@ -330,15 +338,17 @@ ampdu_rx_start(struct ieee80211_rx_ampdu memset(rap, 0, sizeof(*rap)); rap->rxa_wnd = (bufsiz == 0) ? IEEE80211_AGGR_BAWMAX : min(bufsiz, IEEE80211_AGGR_BAWMAX); - rap->rxa_start = start; + rap->rxa_start = MS(baseqctl, IEEE80211_BASEQ_START); rap->rxa_flags |= IEEE80211_AGGR_RUNNING | IEEE80211_AGGR_XCHGPEND; + + return 0; } /* * Stop A-MPDU rx processing for the specified TID. */ static void -ampdu_rx_stop(struct ieee80211_rx_ampdu *rap) +ampdu_rx_stop(struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap) { ampdu_rx_purge(rap); rap->rxa_flags &= ~(IEEE80211_AGGR_RUNNING | IEEE80211_AGGR_XCHGPEND); @@ -823,6 +833,7 @@ ieee80211_ht_node_init(struct ieee80211_ void ieee80211_ht_node_cleanup(struct ieee80211_node *ni) { + struct ieee80211com *ic = ni->ni_ic; int i; KASSERT(ni->ni_flags & IEEE80211_NODE_HT, ("not an HT node")); @@ -834,7 +845,7 @@ ieee80211_ht_node_cleanup(struct ieee802 ampdu_tx_stop(tap); } for (i = 0; i < WME_NUM_TID; i++) - ampdu_rx_stop(&ni->ni_rx_ampdu[i]); + ic->ic_ampdu_rx_stop(ni, &ni->ni_rx_ampdu[i]); ni->ni_htcap = 0; ni->ni_flags &= ~IEEE80211_NODE_HT_ALL; @@ -1579,14 +1590,15 @@ ieee80211_aggr_recv_action(struct ieee80 baseqctl = LE_READ_2(frm+7); tid = MS(baparamset, IEEE80211_BAPS_TID); - bufsiz = MS(baparamset, IEEE80211_BAPS_BUFSIZ); IEEE80211_NOTE(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_11N, ni, "recv ADDBA request: dialogtoken %u " "baparamset 0x%x (tid %d bufsiz %d) batimeout %d " "baseqctl %d:%d", - dialogtoken, baparamset, tid, bufsiz, batimeout, + dialogtoken, baparamset, + tid, MS(baparamset, IEEE80211_BAPS_BUFSIZ), + batimeout, MS(baseqctl, IEEE80211_BASEQ_START), MS(baseqctl, IEEE80211_BASEQ_FRAG)); @@ -1601,8 +1613,9 @@ ieee80211_aggr_recv_action(struct ieee80 */ if ((ni->ni_flags & IEEE80211_NODE_AMPDU_RX) && (vap->iv_flags_ext & IEEE80211_FEXT_AMPDU_RX)) { - ampdu_rx_start(rap, bufsiz, - MS(baseqctl, IEEE80211_BASEQ_START)); + /* XXX handle ampdu_rx_start failure */ + ic->ic_ampdu_rx_start(ni, rap, + baparamset, batimeout, baseqctl); args[1] = IEEE80211_STATUS_SUCCESS; } else { @@ -1708,7 +1721,7 @@ ieee80211_aggr_recv_action(struct ieee80 ic->ic_addba_stop(ni, tap); } else { rap = &ni->ni_rx_ampdu[tid]; - ampdu_rx_stop(rap); + ic->ic_ampdu_rx_stop(ni, rap); } return; } Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Sun Apr 26 22:49:25 2009 (r191551) +++ head/sys/net80211/ieee80211_var.h Sun Apr 26 22:54:51 2009 (r191552) @@ -292,6 +292,12 @@ struct ieee80211com { /* BAR response received */ void (*ic_bar_response)(struct ieee80211_node *, struct ieee80211_tx_ampdu *, int status); + /* start/stop doing A-MPDU rx processing for a station */ + int (*ic_ampdu_rx_start)(struct ieee80211_node *, + struct ieee80211_rx_ampdu *, int baparamset, + int batimeout, int baseqctl); + void (*ic_ampdu_rx_stop)(struct ieee80211_node *, + struct ieee80211_rx_ampdu *); }; struct ieee80211_aclator; From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 23:02:18 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D49B1065675; Sun, 26 Apr 2009 23:02:18 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2991F8FC15; Sun, 26 Apr 2009 23:02:18 +0000 (UTC) (envelope-from sam@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 n3QN2IsR097565; Sun, 26 Apr 2009 23:02:18 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QN2IQq097564; Sun, 26 Apr 2009 23:02:18 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262302.n3QN2IQq097564@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 23:02:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191553 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 23:02:18 -0000 Author: sam Date: Sun Apr 26 23:02:17 2009 New Revision: 191553 URL: http://svn.freebsd.org/changeset/base/191553 Log: hoist ampdu tx aggregation setup from ieee80211_encap to ieee80211_start where it was meant all along (the code was in encap because ampdu was implemented pre vaps) Modified: head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 22:54:51 2009 (r191552) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 23:02:17 2009 (r191553) @@ -251,8 +251,43 @@ ieee80211_start(struct ifnet *ifp) BPF_MTAP(ifp, m); /* 802.3 tx */ + /* + * Check if A-MPDU tx aggregation is setup or if we + * should try to enable it. The sta must be associated + * with HT and A-MPDU enabled for use. When the policy + * routine decides we should enable A-MPDU we issue an + * ADDBA request and wait for a reply. The frame being + * encapsulated will go out w/o using A-MPDU, or possibly + * it might be collected by the driver and held/retransmit. + * The default ic_ampdu_enable routine handles staggering + * ADDBA requests in case the receiver NAK's us or we are + * otherwise unable to establish a BA stream. + */ + if ((ni->ni_flags & IEEE80211_NODE_AMPDU_TX) && + (vap->iv_flags_ext & IEEE80211_FEXT_AMPDU_TX) && + (m->m_flags & M_EAPOL) == 0) { + const int ac = M_WME_GETAC(m); + struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[ac]; + + ieee80211_txampdu_count_packet(tap); + if (IEEE80211_AMPDU_RUNNING(tap)) { + /* + * Operational, mark frame for aggregation. + * + * XXX do tx aggregation here + */ + m->m_flags |= M_AMPDU_MPDU; + } else if (!IEEE80211_AMPDU_REQUESTED(tap) && + ic->ic_ampdu_enable(ni, tap)) { + /* + * Not negotiated yet, request service. + */ + ieee80211_ampdu_request(ni, tap); + /* XXX hold frame for reply? */ + } + } #ifdef IEEE80211_SUPPORT_SUPERG - if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_FF)) { + else if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_FF)) { m = ieee80211_ff_check(ni, m); if (m == NULL) { /* NB: any ni ref held on stageq */ @@ -1042,42 +1077,6 @@ ieee80211_encap(struct ieee80211vap *vap /* map from access class/queue to 11e header priorty value */ tid = WME_AC_TO_TID(ac); qos[0] = tid & IEEE80211_QOS_TID; - /* - * Check if A-MPDU tx aggregation is setup or if we - * should try to enable it. The sta must be associated - * with HT and A-MPDU enabled for use. When the policy - * routine decides we should enable A-MPDU we issue an - * ADDBA request and wait for a reply. The frame being - * encapsulated will go out w/o using A-MPDU, or possibly - * it might be collected by the driver and held/retransmit. - * The default ic_ampdu_enable routine handles staggering - * ADDBA requests in case the receiver NAK's us or we are - * otherwise unable to establish a BA stream. - */ - if ((ni->ni_flags & IEEE80211_NODE_AMPDU_TX) && - (vap->iv_flags_ext & IEEE80211_FEXT_AMPDU_TX)) { - struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[ac]; - - ieee80211_txampdu_count_packet(tap); - if (IEEE80211_AMPDU_RUNNING(tap)) { - /* - * Operational, mark frame for aggregation. - * - * NB: We support only immediate BA's for - * AMPDU which means we set the QoS control - * field to "normal ack" (0) to get "implicit - * block ack" behaviour. - */ - m->m_flags |= M_AMPDU_MPDU; - } else if (!IEEE80211_AMPDU_REQUESTED(tap) && - ic->ic_ampdu_enable(ni, tap)) { - /* - * Not negotiated yet, request service. - */ - ieee80211_ampdu_request(ni, tap); - } - } - /* XXX works even when BA marked above */ if (ic->ic_wme.wme_wmeChanParams.cap_wmeParams[ac].wmep_noackPolicy) qos[0] |= IEEE80211_QOS_ACKPOLICY_NOACK; qos[1] = 0; From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 23:04:35 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7DA1106564A; Sun, 26 Apr 2009 23:04:35 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B4E9C8FC15; Sun, 26 Apr 2009 23:04:35 +0000 (UTC) (envelope-from sam@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 n3QN4Zd3097634; Sun, 26 Apr 2009 23:04:35 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QN4Z19097633; Sun, 26 Apr 2009 23:04:35 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262304.n3QN4Z19097633@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 23:04:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191554 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 23:04:36 -0000 Author: sam Date: Sun Apr 26 23:04:35 2009 New Revision: 191554 URL: http://svn.freebsd.org/changeset/base/191554 Log: don't depend on includes to get definitions of struct ieee80211_tx_ampdu and ieee80211_rx_ampdu; these should've been part of r191552 Modified: head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Sun Apr 26 23:02:17 2009 (r191553) +++ head/sys/net80211/ieee80211_var.h Sun Apr 26 23:04:35 2009 (r191554) @@ -108,6 +108,8 @@ struct ieee80211_appie { struct ieee80211_tdma_param; struct ieee80211_rate_table; +struct ieee80211_tx_ampdu; +struct ieee80211_rx_ampdu; struct ieee80211_stageq { struct mbuf *head; /* frames linked w/ m_nextpkt */ From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 23:11:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F83D1065670; Sun, 26 Apr 2009 23:11:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7CCA58FC14; Sun, 26 Apr 2009 23:11:22 +0000 (UTC) (envelope-from sam@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 n3QNBMp3097802; Sun, 26 Apr 2009 23:11:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QNBMGE097799; Sun, 26 Apr 2009 23:11:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262311.n3QNBMGE097799@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 23:11:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191555 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 23:11:23 -0000 Author: sam Date: Sun Apr 26 23:11:22 2009 New Revision: 191555 URL: http://svn.freebsd.org/changeset/base/191555 Log: add IEEE80211_FEXT_4ADDR to indicate ieee80211_encap should do 4-address encapsulation when relaying frames; this reduces the cost of the test and enables use for situations other than "sta vap + dwds" Modified: head/sys/net80211/ieee80211_ioctl.c head/sys/net80211/ieee80211_output.c head/sys/net80211/ieee80211_var.h Modified: head/sys/net80211/ieee80211_ioctl.c ============================================================================== --- head/sys/net80211/ieee80211_ioctl.c Sun Apr 26 23:04:35 2009 (r191554) +++ head/sys/net80211/ieee80211_ioctl.c Sun Apr 26 23:11:22 2009 (r191555) @@ -3048,8 +3048,13 @@ ieee80211_ioctl_set80211(struct ieee8021 vap->iv_opmode != IEEE80211_M_STA) return EINVAL; vap->iv_flags |= IEEE80211_F_DWDS; - } else + if (vap->iv_opmode == IEEE80211_M_STA) + vap->iv_flags_ext |= IEEE80211_FEXT_4ADDR; + } else { vap->iv_flags &= ~IEEE80211_F_DWDS; + if (vap->iv_opmode == IEEE80211_M_STA) + vap->iv_flags_ext &= ~IEEE80211_FEXT_4ADDR; + } break; case IEEE80211_IOC_INACTIVITY: if (ireq->i_val) Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Sun Apr 26 23:04:35 2009 (r191554) +++ head/sys/net80211/ieee80211_output.c Sun Apr 26 23:11:22 2009 (r191555) @@ -974,12 +974,11 @@ ieee80211_encap(struct ieee80211vap *vap /* * 4-address frames need to be generated for: * o packets sent through a WDS vap (IEEE80211_M_WDS) - * o packets relayed by a station operating with dynamic WDS - * (IEEE80211_M_STA+IEEE80211_F_DWDS and src address) + * o packets sent through a vap marked for relaying + * (e.g. a station operating with dynamic WDS) */ is4addr = vap->iv_opmode == IEEE80211_M_WDS || - (vap->iv_opmode == IEEE80211_M_STA && - (vap->iv_flags & IEEE80211_F_DWDS) && + ((vap->iv_flags_ext & IEEE80211_FEXT_4ADDR) && !IEEE80211_ADDR_EQ(eh.ether_shost, vap->iv_myaddr)); if (is4addr) hdrsize += IEEE80211_ADDR_LEN; Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Sun Apr 26 23:04:35 2009 (r191554) +++ head/sys/net80211/ieee80211_var.h Sun Apr 26 23:11:22 2009 (r191555) @@ -514,6 +514,7 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_FEXT_TSN 0x00000020 /* CONF: TSN enabled */ #define IEEE80211_FEXT_SCANREQ 0x00000040 /* STATUS: scan req params */ #define IEEE80211_FEXT_RESUME 0x00000080 /* STATUS: start on resume */ +#define IEEE80211_FEXT_4ADDR 0x00000100 /* CONF: apply 4-addr encap */ #define IEEE80211_FEXT_NONERP_PR 0x00000200 /* STATUS: non-ERP sta present*/ #define IEEE80211_FEXT_SWBMISS 0x00000400 /* CONF: do bmiss in s/w */ #define IEEE80211_FEXT_DFS 0x00000800 /* CONF: DFS enabled */ @@ -535,8 +536,8 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_FEXT_BITS \ "\20\1NONHT_PR\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \ - "\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\22WDSLEGACY\23PROBECHAN\24HT" \ - "\25AMDPU_TX\26AMPDU_TX\27AMSDU_TX\30AMSDU_RX\31USEHT40\32PUREN" \ + "\0114ADDR\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\22WDSLEGACY\23PROBECHAN" \ + "\24HT\25AMDPU_TX\26AMPDU_TX\27AMSDU_TX\30AMSDU_RX\31USEHT40\32PUREN" \ "\33SHORTGI20\34SHORTGI40\35HTCOMPAT\36RIFS" #define IEEE80211_FVEN_BITS "\20" From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 15:45:54 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C5D1106566C; Mon, 27 Apr 2009 15:45:54 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 790608FC1A; Mon, 27 Apr 2009 15:45:54 +0000 (UTC) (envelope-from gallatin@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 n3RFjs0A018905; Mon, 27 Apr 2009 15:45:54 GMT (envelope-from gallatin@svn.freebsd.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RFjsPX018903; Mon, 27 Apr 2009 15:45:54 GMT (envelope-from gallatin@svn.freebsd.org) Message-Id: <200904271545.n3RFjsPX018903@svn.freebsd.org> From: Andrew Gallatin Date: Mon, 27 Apr 2009 15:45:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191562 - head/sys/dev/mxge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 15:45:55 -0000 Author: gallatin Date: Mon Apr 27 15:45:54 2009 New Revision: 191562 URL: http://svn.freebsd.org/changeset/base/191562 Log: Updates to mxge for multiple tx/rx rings: - Update mxge to use if_transmit(), and the new buf_ring interfaces, so as to enable multiple transmit queues. Use of if_transmit() is conditional on IFNET_BUF_RING, and is enabled by default (as in if_em). - Record a flow id on receive if receive hashing is active. I currently only record the rx ring id (0..8) rather than the 32-bit topelitz hash result, as doing the latter would require shifting the driver to use a larger rx return ring. Sponsored by: Myricom, Inc. Modified: head/sys/dev/mxge/if_mxge.c head/sys/dev/mxge/if_mxge_var.h Modified: head/sys/dev/mxge/if_mxge.c ============================================================================== --- head/sys/dev/mxge/if_mxge.c Mon Apr 27 11:51:14 2009 (r191561) +++ head/sys/dev/mxge/if_mxge.c Mon Apr 27 15:45:54 2009 (r191562) @@ -30,6 +30,8 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#define IFNET_BUF_RING + #include #include #include @@ -66,6 +68,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef IFNET_BUF_RING +#include +#endif #include #include #include @@ -1223,6 +1228,9 @@ mxge_reset(mxge_softc_t *sc, int interru */ cmd.data0 = sc->num_slices; cmd.data1 = MXGEFW_SLICE_INTR_MODE_ONE_PER_SLICE; +#ifdef IFNET_BUF_RING + cmd.data1 |= MXGEFW_SLICE_ENABLE_MULTIPLE_TX_QUEUES; +#endif status = mxge_send_cmd(sc, MXGEFW_CMD_ENABLE_RSS_QUEUES, &cmd); if (status != 0) { @@ -1282,6 +1290,9 @@ mxge_reset(mxge_softc_t *sc, int interru ss->tx.req = 0; ss->tx.done = 0; ss->tx.pkt_done = 0; + ss->tx.queue_active = 0; + ss->tx.activate = 0; + ss->tx.deactivate = 0; ss->tx.wake = 0; ss->tx.defrag = 0; ss->tx.stall = 0; @@ -1614,10 +1625,6 @@ mxge_add_sysctls(mxge_softc_t *sc) "rx_big_cnt", CTLFLAG_RD, &ss->rx_big.cnt, 0, "rx_small_cnt"); - SYSCTL_ADD_INT(ctx, children, OID_AUTO, - "tx_req", - CTLFLAG_RD, &ss->tx.req, - 0, "tx_req"); SYSCTL_ADD_INT(ctx, children, OID_AUTO, "lro_flushed", CTLFLAG_RD, &ss->lro_flushed, 0, "number of lro merge queues flushed"); @@ -1627,9 +1634,15 @@ mxge_add_sysctls(mxge_softc_t *sc) 0, "number of frames appended to lro merge" "queues"); +#ifndef IFNET_BUF_RING /* only transmit from slice 0 for now */ if (slice > 0) continue; +#endif + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_req", + CTLFLAG_RD, &ss->tx.req, + 0, "tx_req"); SYSCTL_ADD_INT(ctx, children, OID_AUTO, "tx_done", @@ -1651,6 +1664,18 @@ mxge_add_sysctls(mxge_softc_t *sc) "tx_defrag", CTLFLAG_RD, &ss->tx.defrag, 0, "tx_defrag"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_queue_active", + CTLFLAG_RD, &ss->tx.queue_active, + 0, "tx_queue_active"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_activate", + CTLFLAG_RD, &ss->tx.activate, + 0, "tx_activate"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, + "tx_deactivate", + CTLFLAG_RD, &ss->tx.deactivate, + 0, "tx_deactivate"); } } @@ -1873,12 +1898,21 @@ mxge_encap_tso(struct mxge_slice_state * tx->info[((cnt - 1) + tx->req) & tx->mask].flag = 1; mxge_submit_req(tx, tx->req_list, cnt); +#ifdef IFNET_BUF_RING + if ((ss->sc->num_slices > 1) && tx->queue_active == 0) { + /* tell the NIC to start polling this slice */ + *tx->send_go = 1; + tx->queue_active = 1; + tx->activate++; + wmb(); + } +#endif return; drop: bus_dmamap_unload(tx->dmat, tx->info[tx->req & tx->mask].map); m_freem(m); - ss->sc->ifp->if_oerrors++; + ss->oerrors++; if (!once) { printf("tx->max_desc exceeded via TSO!\n"); printf("mss = %d, %ld, %d!\n", mss, @@ -2075,16 +2109,131 @@ mxge_encap(struct mxge_slice_state *ss, #endif tx->info[((cnt - 1) + tx->req) & tx->mask].flag = 1; mxge_submit_req(tx, tx->req_list, cnt); +#ifdef IFNET_BUF_RING + if ((ss->sc->num_slices > 1) && tx->queue_active == 0) { + /* tell the NIC to start polling this slice */ + *tx->send_go = 1; + tx->queue_active = 1; + tx->activate++; + wmb(); + } +#endif return; drop: m_freem(m); - ifp->if_oerrors++; + ss->oerrors++; return; } +#ifdef IFNET_BUF_RING +static void +mxge_qflush(struct ifnet *ifp) +{ + mxge_softc_t *sc = ifp->if_softc; + mxge_tx_ring_t *tx; + struct mbuf *m; + int slice; + + for (slice = 0; slice < sc->num_slices; slice++) { + tx = &sc->ss[slice].tx; + mtx_lock(&tx->mtx); + while ((m = buf_ring_dequeue_sc(tx->br)) != NULL) + m_freem(m); + mtx_unlock(&tx->mtx); + } + if_qflush(ifp); +} + +static inline void +mxge_start_locked(struct mxge_slice_state *ss) +{ + mxge_softc_t *sc; + struct mbuf *m; + struct ifnet *ifp; + mxge_tx_ring_t *tx; + + sc = ss->sc; + ifp = sc->ifp; + tx = &ss->tx; + + while ((tx->mask - (tx->req - tx->done)) > tx->max_desc) { + m = drbr_dequeue(ifp, tx->br); + if (m == NULL) { + return; + } + /* let BPF see it */ + BPF_MTAP(ifp, m); + + /* give it to the nic */ + mxge_encap(ss, m); + } + /* ran out of transmit slots */ + if (((ss->if_drv_flags & IFF_DRV_OACTIVE) == 0) + && (!drbr_empty(ifp, tx->br))) { + ss->if_drv_flags |= IFF_DRV_OACTIVE; + tx->stall++; + } +} + +static int +mxge_transmit_locked(struct mxge_slice_state *ss, struct mbuf *m) +{ + mxge_softc_t *sc; + struct ifnet *ifp; + mxge_tx_ring_t *tx; + int err; + + sc = ss->sc; + ifp = sc->ifp; + tx = &ss->tx; + + if ((ss->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) { + err = drbr_enqueue(ifp, tx->br, m); + return (err); + } + + if (drbr_empty(ifp, tx->br) && + ((tx->mask - (tx->req - tx->done)) > tx->max_desc)) { + /* let BPF see it */ + BPF_MTAP(ifp, m); + /* give it to the nic */ + mxge_encap(ss, m); + } else if ((err = drbr_enqueue(ifp, tx->br, m)) != 0) { + return (err); + } + if (!drbr_empty(ifp, tx->br)) + mxge_start_locked(ss); + return (0); +} + +static int +mxge_transmit(struct ifnet *ifp, struct mbuf *m) +{ + mxge_softc_t *sc = ifp->if_softc; + struct mxge_slice_state *ss; + mxge_tx_ring_t *tx; + int err = 0; + int slice; + + slice = m->m_pkthdr.flowid; + slice &= (sc->num_slices - 1); /* num_slices always power of 2 */ + + ss = &sc->ss[slice]; + tx = &ss->tx; + + if (mtx_trylock(&tx->mtx)) { + err = mxge_transmit_locked(ss, m); + mtx_unlock(&tx->mtx); + } else { + err = drbr_enqueue(ifp, tx->br, m); + } + return (err); +} +#else static inline void mxge_start_locked(struct mxge_slice_state *ss) @@ -2114,7 +2263,7 @@ mxge_start_locked(struct mxge_slice_stat tx->stall++; } } - +#endif static void mxge_start(struct ifnet *ifp) { @@ -2381,6 +2530,11 @@ mxge_rx_done_big(struct mxge_slice_state m->m_pkthdr.csum_data = 0xffff; m->m_pkthdr.csum_flags = CSUM_PSEUDO_HDR | CSUM_DATA_VALID; } + /* flowid only valid if RSS hashing is enabled */ + if (sc->num_slices > 1) { + m->m_pkthdr.flowid = (ss - sc->ss); + m->m_flags |= M_FLOWID; + } /* pass the frame up the stack */ (*ifp->if_input)(ifp, m); } @@ -2441,6 +2595,11 @@ mxge_rx_done_small(struct mxge_slice_sta m->m_pkthdr.csum_data = 0xffff; m->m_pkthdr.csum_flags = CSUM_PSEUDO_HDR | CSUM_DATA_VALID; } + /* flowid only valid if RSS hashing is enabled */ + if (sc->num_slices > 1) { + m->m_pkthdr.flowid = (ss - sc->ss); + m->m_flags |= M_FLOWID; + } /* pass the frame up the stack */ (*ifp->if_input)(ifp, m); } @@ -2486,6 +2645,7 @@ mxge_tx_done(struct mxge_slice_state *ss struct mbuf *m; bus_dmamap_t map; int idx; + int *flags; tx = &ss->tx; ifp = ss->sc->ifp; @@ -2496,7 +2656,12 @@ mxge_tx_done(struct mxge_slice_state *ss /* mbuf and DMA map only attached to the first segment per-mbuf */ if (m != NULL) { - ifp->if_opackets++; +#ifdef IFNET_BUF_RING + ss->obytes += m->m_pkthdr.len; + if (m->m_flags & M_MCAST) + ss->omcasts++; +#endif + ss->opackets++; tx->info[idx].m = NULL; map = tx->info[idx].map; bus_dmamap_unload(tx->dmat, map); @@ -2510,15 +2675,32 @@ mxge_tx_done(struct mxge_slice_state *ss /* If we have space, clear IFF_OACTIVE to tell the stack that its OK to send packets */ - - if (ifp->if_drv_flags & IFF_DRV_OACTIVE && +#ifdef IFNET_BUF_RING + flags = &ss->if_drv_flags; +#else + flags = &ifp->if_drv_flags; +#endif + mtx_lock(&ss->tx.mtx); + if ((*flags) & IFF_DRV_OACTIVE && tx->req - tx->done < (tx->mask + 1)/4) { - mtx_lock(&ss->tx.mtx); - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + *(flags) &= ~IFF_DRV_OACTIVE; ss->tx.wake++; mxge_start_locked(ss); - mtx_unlock(&ss->tx.mtx); } +#ifdef IFNET_BUF_RING + if ((ss->sc->num_slices > 1) && (tx->req == tx->done)) { + /* let the NIC stop polling this queue, since there + * are no more transmits pending */ + if (tx->req == tx->done) { + *tx->send_stop = 1; + tx->queue_active = 0; + tx->deactivate++; + wmb(); + } + } +#endif + mtx_unlock(&ss->tx.mtx); + } static struct mxge_media_type mxge_xfp_media_types[] = @@ -2701,6 +2883,7 @@ mxge_intr(void *arg) uint8_t valid; +#ifndef IFNET_BUF_RING /* an interrupt on a non-zero slice is implicitly valid since MSI-X irqs are not shared */ if (ss != sc->ss) { @@ -2708,6 +2891,7 @@ mxge_intr(void *arg) *ss->irq_claim = be32toh(3); return; } +#endif /* make sure the DMA has finished */ if (!stats->valid) { @@ -2731,7 +2915,8 @@ mxge_intr(void *arg) send_done_count = be32toh(stats->send_done_count); while ((send_done_count != tx->pkt_done) || (rx_done->entry[rx_done->idx].length != 0)) { - mxge_tx_done(ss, (int)send_done_count); + if (send_done_count != tx->pkt_done) + mxge_tx_done(ss, (int)send_done_count); mxge_clean_rx_done(ss); send_done_count = be32toh(stats->send_done_count); } @@ -2739,7 +2924,8 @@ mxge_intr(void *arg) wmb(); } while (*((volatile uint8_t *) &stats->valid)); - if (__predict_false(stats->stats_updated)) { + /* fw link & error stats meaningful only on the first slice */ + if (__predict_false((ss == sc->ss) && stats->stats_updated)) { if (sc->link_state != stats->link_up) { sc->link_state = stats->link_up; if (sc->link_state) { @@ -3029,9 +3215,11 @@ mxge_alloc_slice_rings(struct mxge_slice /* now allocate TX resouces */ +#ifndef IFNET_BUF_RING /* only use a single TX ring for now */ if (ss != ss->sc->ss) return 0; +#endif ss->tx.mask = tx_ring_entries - 1; ss->tx.max_desc = MIN(MXGE_MAX_SEND_DESC, tx_ring_entries / 4); @@ -3197,13 +3385,21 @@ mxge_slice_open(struct mxge_slice_state /* get the lanai pointers to the send and receive rings */ err = 0; +#ifndef IFNET_BUF_RING /* We currently only send from the first slice */ if (slice == 0) { +#endif cmd.data0 = slice; err = mxge_send_cmd(sc, MXGEFW_CMD_GET_SEND_OFFSET, &cmd); ss->tx.lanai = (volatile mcp_kreq_ether_send_t *)(sc->sram + cmd.data0); + ss->tx.send_go = (volatile uint32_t *) + (sc->sram + MXGEFW_ETH_SEND_GO + 64 * slice); + ss->tx.send_stop = (volatile uint32_t *) + (sc->sram + MXGEFW_ETH_SEND_STOP + 64 * slice); +#ifndef IFNET_BUF_RING } +#endif cmd.data0 = slice; err |= mxge_send_cmd(sc, MXGEFW_CMD_GET_SMALL_RX_OFFSET, &cmd); @@ -3255,6 +3451,7 @@ mxge_open(mxge_softc_t *sc) int err, big_bytes, nbufs, slice, cl_size, i; bus_addr_t bus; volatile uint8_t *itable; + struct mxge_slice_state *ss; /* Copy the MAC address in case it was overridden */ bcopy(IF_LLADDR(sc->ifp), sc->mac_addr, ETHER_ADDR_LEN); @@ -3324,10 +3521,22 @@ mxge_open(mxge_softc_t *sc) } /* Now give him the pointer to the stats block */ - cmd.data0 = MXGE_LOWPART_TO_U32(sc->ss->fw_stats_dma.bus_addr); - cmd.data1 = MXGE_HIGHPART_TO_U32(sc->ss->fw_stats_dma.bus_addr); - cmd.data2 = sizeof(struct mcp_irq_data); - err = mxge_send_cmd(sc, MXGEFW_CMD_SET_STATS_DMA_V2, &cmd); + for (slice = 0; +#ifdef IFNET_BUF_RING + slice < sc->num_slices; +#else + slice < 1; +#endif + slice++) { + ss = &sc->ss[slice]; + cmd.data0 = + MXGE_LOWPART_TO_U32(ss->fw_stats_dma.bus_addr); + cmd.data1 = + MXGE_HIGHPART_TO_U32(ss->fw_stats_dma.bus_addr); + cmd.data2 = sizeof(struct mcp_irq_data); + cmd.data2 |= (slice << 16); + err |= mxge_send_cmd(sc, MXGEFW_CMD_SET_STATS_DMA_V2, &cmd); + } if (err != 0) { bus = sc->ss->fw_stats_dma.bus_addr; @@ -3363,6 +3572,13 @@ mxge_open(mxge_softc_t *sc) device_printf(sc->dev, "Couldn't bring up link\n"); goto abort; } +#ifdef IFNET_BUF_RING + for (slice = 0; slice < sc->num_slices; slice++) { + ss = &sc->ss[slice]; + ss->if_drv_flags |= IFF_DRV_RUNNING; + ss->if_drv_flags &= ~IFF_DRV_OACTIVE; + } +#endif sc->ifp->if_drv_flags |= IFF_DRV_RUNNING; sc->ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; callout_reset(&sc->co_hdl, mxge_ticks, mxge_tick, sc); @@ -3381,8 +3597,18 @@ mxge_close(mxge_softc_t *sc) { mxge_cmd_t cmd; int err, old_down_cnt; +#ifdef IFNET_BUF_RING + struct mxge_slice_state *ss; + int slice; +#endif callout_stop(&sc->co_hdl); +#ifdef IFNET_BUF_RING + for (slice = 0; slice < sc->num_slices; slice++) { + ss = &sc->ss[slice]; + ss->if_drv_flags &= ~IFF_DRV_RUNNING; + } +#endif sc->ifp->if_drv_flags &= ~IFF_DRV_RUNNING; old_down_cnt = sc->down_cnt; wmb(); @@ -3448,9 +3674,10 @@ mxge_read_reboot(mxge_softc_t *sc) } static int -mxge_watchdog_reset(mxge_softc_t *sc) +mxge_watchdog_reset(mxge_softc_t *sc, int slice) { struct pci_devinfo *dinfo; + mxge_tx_ring_t *tx; int err; uint32_t reboot; uint16_t cmd; @@ -3497,11 +3724,17 @@ mxge_watchdog_reset(mxge_softc_t *sc) err = mxge_open(sc); } } else { - device_printf(sc->dev, "NIC did not reboot, ring state:\n"); - device_printf(sc->dev, "tx.req=%d tx.done=%d\n", - sc->ss->tx.req, sc->ss->tx.done); + tx = &sc->ss[slice].tx; + device_printf(sc->dev, + "NIC did not reboot, slice %d ring state:\n", + slice); + device_printf(sc->dev, + "tx.req=%d tx.done=%d, tx.queue_active=%d\n", + tx->req, tx->done, tx->queue_active); + device_printf(sc->dev, "tx.activate=%d tx.deactivate=%d\n", + tx->activate, tx->deactivate); device_printf(sc->dev, "pkt_done=%d fw=%d\n", - sc->ss->tx.pkt_done, + tx->pkt_done, be32toh(sc->ss->fw_stats->send_done_count)); device_printf(sc->dev, "not resetting\n"); } @@ -3511,26 +3744,35 @@ mxge_watchdog_reset(mxge_softc_t *sc) static int mxge_watchdog(mxge_softc_t *sc) { - mxge_tx_ring_t *tx = &sc->ss->tx; + mxge_tx_ring_t *tx; uint32_t rx_pause = be32toh(sc->ss->fw_stats->dropped_pause); - int err = 0; + int i, err = 0; /* see if we have outstanding transmits, which have been pending for more than mxge_ticks */ - if (tx->req != tx->done && - tx->watchdog_req != tx->watchdog_done && - tx->done == tx->watchdog_done) { - /* check for pause blocking before resetting */ - if (tx->watchdog_rx_pause == rx_pause) - err = mxge_watchdog_reset(sc); - else - device_printf(sc->dev, "Flow control blocking " - "xmits, check link partner\n"); - } + for (i = 0; +#ifdef IFNET_BUF_RING + (i < sc->num_slices) && (err == 0); +#else + (i < 1) && (err == 0); +#endif + i++) { + tx = &sc->ss[i].tx; + if (tx->req != tx->done && + tx->watchdog_req != tx->watchdog_done && + tx->done == tx->watchdog_done) { + /* check for pause blocking before resetting */ + if (tx->watchdog_rx_pause == rx_pause) + err = mxge_watchdog_reset(sc, i); + else + device_printf(sc->dev, "Flow control blocking " + "xmits, check link partner\n"); + } - tx->watchdog_req = tx->req; - tx->watchdog_done = tx->done; - tx->watchdog_rx_pause = rx_pause; + tx->watchdog_req = tx->req; + tx->watchdog_done = tx->done; + tx->watchdog_rx_pause = rx_pause; + } if (sc->need_media_probe) mxge_media_probe(sc); @@ -3542,15 +3784,36 @@ mxge_update_stats(mxge_softc_t *sc) { struct mxge_slice_state *ss; u_long ipackets = 0; + u_long opackets = 0; +#ifdef IFNET_BUF_RING + u_long obytes = 0; + u_long omcasts = 0; + u_long odrops = 0; +#endif + u_long oerrors = 0; int slice; - for(slice = 0; slice < sc->num_slices; slice++) { + for (slice = 0; slice < sc->num_slices; slice++) { ss = &sc->ss[slice]; ipackets += ss->ipackets; + opackets += ss->opackets; +#ifdef IFNET_BUF_RING + obytes += ss->obytes; + omcasts += ss->omcasts; + odrops += ss->tx.br->br_drops; +#endif + oerrors += ss->oerrors; } sc->ifp->if_ipackets = ipackets; - + sc->ifp->if_opackets = opackets; +#ifdef IFNET_BUF_RING + sc->ifp->if_obytes = obytes; + sc->ifp->if_omcasts = omcasts; + sc->ifp->if_snd.ifq_drops = odrops; +#endif + sc->ifp->if_oerrors = oerrors; } + static void mxge_tick(void *arg) { @@ -3772,6 +4035,12 @@ mxge_free_slices(mxge_softc_t *sc) if (ss->fw_stats != NULL) { mxge_dma_free(&ss->fw_stats_dma); ss->fw_stats = NULL; +#ifdef IFNET_BUF_RING + if (ss->tx.br != NULL) { + drbr_free(ss->tx.br, M_DEVBUF); + ss->tx.br = NULL; + } +#endif mtx_destroy(&ss->tx.mtx); } if (ss->rx_done.entry != NULL) { @@ -3822,8 +4091,10 @@ mxge_alloc_slices(mxge_softc_t *sc) * (including tx) are used used only on the first * slice for now */ +#ifndef IFNET_BUF_RING if (i > 0) continue; +#endif bytes = sizeof (*ss->fw_stats); err = mxge_dma_alloc(sc, &ss->fw_stats_dma, @@ -3834,6 +4105,10 @@ mxge_alloc_slices(mxge_softc_t *sc) snprintf(ss->tx.mtx_name, sizeof(ss->tx.mtx_name), "%s:tx(%d)", device_get_nameunit(sc->dev), i); mtx_init(&ss->tx.mtx, ss->tx.mtx_name, NULL, MTX_DEF); +#ifdef IFNET_BUF_RING + ss->tx.br = buf_ring_alloc(2048, M_DEVBUF, M_WAITOK, + &ss->tx.mtx); +#endif } return (0); @@ -4307,6 +4582,10 @@ mxge_attach(device_t dev) ifp->if_mtu = 9000; mxge_add_sysctls(sc); +#ifdef IFNET_BUF_RING + ifp->if_transmit = mxge_transmit; + ifp->if_qflush = mxge_qflush; +#endif return 0; abort_with_rings: Modified: head/sys/dev/mxge/if_mxge_var.h ============================================================================== --- head/sys/dev/mxge/if_mxge_var.h Mon Apr 27 11:51:14 2009 (r191561) +++ head/sys/dev/mxge/if_mxge_var.h Mon Apr 27 15:45:54 2009 (r191562) @@ -125,7 +125,12 @@ typedef struct typedef struct { struct mtx mtx; +#ifdef IFNET_MULTIQUEUE + struct buf_ring *br; +#endif volatile mcp_kreq_ether_send_t *lanai; /* lanai ptr for sendq */ + volatile uint32_t *send_go; /* doorbell for sendq */ + volatile uint32_t *send_stop; /* doorbell for sendq */ mcp_kreq_ether_send_t *req_list; /* host shadow of sendq */ char *req_bytes; bus_dma_segment_t *seg_list; @@ -136,6 +141,9 @@ typedef struct int done; /* transmits completed */ int pkt_done; /* packets completed */ int max_desc; /* max descriptors per xmit */ + int queue_active; /* fw currently polling this queue*/ + int activate; + int deactivate; int stall; /* #times hw queue exhausted */ int wake; /* #times irq re-enabled xmit */ int watchdog_req; /* cache of req */ @@ -182,6 +190,11 @@ struct mxge_slice_state { mcp_irq_data_t *fw_stats; volatile uint32_t *irq_claim; u_long ipackets; + u_long opackets; + u_long obytes; + u_long omcasts; + u_long oerrors; + int if_drv_flags; struct lro_head lro_active; struct lro_head lro_free; int lro_queued; From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 15:58:38 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DEC9106564A; Mon, 27 Apr 2009 15:58:38 +0000 (UTC) (envelope-from ambrisko@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A9F58FC1E; Mon, 27 Apr 2009 15:58:38 +0000 (UTC) (envelope-from ambrisko@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 n3RFwcCT019158; Mon, 27 Apr 2009 15:58:38 GMT (envelope-from ambrisko@svn.freebsd.org) Received: (from ambrisko@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RFwcKr019155; Mon, 27 Apr 2009 15:58:38 GMT (envelope-from ambrisko@svn.freebsd.org) Message-Id: <200904271558.n3RFwcKr019155@svn.freebsd.org> From: Doug Ambrisko Date: Mon, 27 Apr 2009 15:58:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191563 - head/sys/dev/rp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 15:58:39 -0000 Author: ambrisko Date: Mon Apr 27 15:58:38 2009 New Revision: 191563 URL: http://svn.freebsd.org/changeset/base/191563 Log: Start to convert this over to the new tty layer. These changes allow this driver to compile and limp along with the new layer. These changes do not deal with proper locking around access to the HW. This is only a starting point. I have not tested modem control but tip seems to work okay and I can send and receive characters which I needed for one of my -current boxes. I have not tied this driver back up to the build since I don't want people to think it is ready for prime time. If anyone else has some cycles to work on this feel free to! Also add support for a 16 port PCI interface I have at work. Glanced at by: ed Modified: head/sys/dev/rp/rp.c head/sys/dev/rp/rp_pci.c head/sys/dev/rp/rpreg.h Modified: head/sys/dev/rp/rp.c ============================================================================== --- head/sys/dev/rp/rp.c Mon Apr 27 15:45:54 2009 (r191562) +++ head/sys/dev/rp/rp.c Mon Apr 27 15:58:38 2009 (r191563) @@ -117,6 +117,8 @@ Byte_t rp_sBitMapSetTbl[8] = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 }; +static void rpfree(void *); + /*************************************************************************** Function: sReadAiopID Purpose: Read the AIOP idenfication number directly from an AIOP. @@ -572,21 +574,19 @@ static struct rp_port *p_rp_table[MAX_RP * The top-level routines begin here */ -static void rpbreak(struct tty *, int); static void rpclose(struct tty *tp); static void rphardclose(struct tty *tp); static int rpmodem(struct tty *, int, int); static int rpparam(struct tty *, struct termios *); static void rpstart(struct tty *); -static void rpstop(struct tty *, int); -static t_open_t rpopen; +static int rpioctl(struct tty *, u_long, caddr_t, struct thread *); +static int rpopen(struct tty *); static void rp_do_receive(struct rp_port *rp, struct tty *tp, CHANNEL_t *cp, unsigned int ChanStatus) { - int spl; unsigned int CharNStat; - int i, ToRecv, wRecv, ch, ttynocopy; + int ToRecv, ch, err = 0; ToRecv = sGetRxCnt(cp); if(ToRecv == 0) @@ -608,22 +608,22 @@ static void rp_do_receive(struct rp_port FIFO one word at a time, pulling apart the character and the status. Update error counters depending on status. */ + tty_lock(tp); if(ChanStatus & STATMODE) { while(ToRecv) { - if(tp->t_state & TS_TBLOCK) { - break; - } CharNStat = rp_readch2(cp,sGetTxRxDataIO(cp)); ch = CharNStat & 0xff; if((CharNStat & STMBREAK) || (CharNStat & STMFRAMEH)) - ch |= TTY_FE; + err |= TRE_FRAMING; else if (CharNStat & STMPARITYH) - ch |= TTY_PE; - else if (CharNStat & STMRCVROVRH) + err |= TRE_PARITY; + else if (CharNStat & STMRCVROVRH) { rp->rp_overflows++; + err |= TRE_OVERRUN; + } - ttyld_rint(tp, ch); + ttydisc_rint(tp, ch, err); ToRecv--; } /* @@ -634,42 +634,15 @@ static void rp_do_receive(struct rp_port sDisRxStatusMode(cp); } } else { - /* - * Avoid the grotesquely inefficient lineswitch routine - * (ttyinput) in "raw" mode. It usually takes about 450 - * instructions (that's without canonical processing or echo!). - * slinput is reasonably fast (usually 40 instructions plus - * call overhead). - */ ToRecv = sGetRxCnt(cp); - if ( tp->t_state & TS_CAN_BYPASS_L_RINT ) { - if ( ToRecv > RXFIFO_SIZE ) { - ToRecv = RXFIFO_SIZE; - } - for ( i = 0, wRecv = ToRecv >> 1; wRecv > 0; i += 2, wRecv-- ) { - le16enc(rp->RxBuf + i,rp_readch2(cp,sGetTxRxDataIO(cp))); - } - if ( ToRecv & 1 ) { - rp->RxBuf[(ToRecv-1)] = rp_readch1(cp,sGetTxRxDataIO(cp)); - } - tk_nin += ToRecv; - tk_rawcc += ToRecv; - tp->t_rawcc += ToRecv; - ttynocopy = b_to_q(rp->RxBuf, ToRecv, &tp->t_rawq); - ttwakeup(tp); - } else { - while (ToRecv) { - if(tp->t_state & TS_TBLOCK) { - break; - } - ch = (u_char) rp_readch1(cp,sGetTxRxDataIO(cp)); - spl = spltty(); - ttyld_rint(tp, ch); - splx(spl); - ToRecv--; - } + while (ToRecv) { + ch = rp_readch1(cp,sGetTxRxDataIO(cp)); + ttydisc_rint(tp, ch & 0xff, err); + ToRecv--; } } + ttydisc_rint_done(tp); + tty_unlock(tp); } static void rp_handle_port(struct rp_port *rp) @@ -687,21 +660,12 @@ static void rp_handle_port(struct rp_por IntMask = IntMask & rp->rp_intmask; ChanStatus = sGetChanStatus(cp); if(IntMask & RXF_TRIG) - if(!(tp->t_state & TS_TBLOCK) && (tp->t_state & TS_CARR_ON) && (tp->t_state & TS_ISOPEN)) { - rp_do_receive(rp, tp, cp, ChanStatus); - } + rp_do_receive(rp, tp, cp, ChanStatus); if(IntMask & DELTA_CD) { if(ChanStatus & CD_ACT) { - if(!(tp->t_state & TS_CARR_ON) ) { - (void)ttyld_modem(tp, 1); - } + (void)ttydisc_modem(tp, 1); } else { - if((tp->t_state & TS_CARR_ON)) { - (void)ttyld_modem(tp, 0); - if(ttyld_modem(tp, 0) == 0) { - rphardclose(tp); - } - } + (void)ttydisc_modem(tp, 0); } } /* oldcts = rp->rp_cts; @@ -740,15 +704,13 @@ static void rp_do_poll(void *not_used) for(line = 0, rp = rp_addr(unit); line < rp_num_ports[unit]; line++, rp++) { tp = rp->rp_tty; - if((tp->t_state & TS_BUSY) && (tp->t_state & TS_ISOPEN)) { - count = sGetTxCnt(&rp->rp_channel); - if(count == 0) - tp->t_state &= ~(TS_BUSY); - if(!(tp->t_state & TS_TTSTOP) && - (count <= rp->rp_restart)) { - ttyld_start(tp); - } + tty_lock(tp); + count = sGetTxCnt(&rp->rp_channel); + if (count >= 0 && + (count <= rp->rp_restart)) { + rpstart(tp); } + tty_unlock(tp); } } if(rp_num_ports_open) @@ -756,10 +718,31 @@ static void rp_do_poll(void *not_used) (void *)NULL, POLL_INTERVAL); } +static struct ttydevsw rp_tty_class = { + .tsw_flags = TF_INITLOCK|TF_CALLOUT, + .tsw_open = rpopen, + .tsw_close = rpclose, + .tsw_outwakeup = rpstart, + .tsw_ioctl = rpioctl, + .tsw_param = rpparam, + .tsw_modem = rpmodem, + .tsw_free = rpfree, +}; + + +static void +rpfree(void *softc) +{ + struct rp_port *rp = softc; + CONTROLLER_t *ctlp = rp->rp_ctlp; + + atomic_subtract_32(&ctlp->free, 1); +} + int rp_attachcommon(CONTROLLER_T *ctlp, int num_aiops, int num_ports) { - int oldspl, unit; + int unit; int num_chan; int aiop, chan, port; int ChanStatus, line, count; @@ -775,7 +758,7 @@ rp_attachcommon(CONTROLLER_T *ctlp, int callout_handle_init(&rp_callout_handle); ctlp->rp = rp = (struct rp_port *) - malloc(sizeof(struct rp_port) * num_ports, M_TTYS, M_NOWAIT | M_ZERO); + malloc(sizeof(struct rp_port) * num_ports, M_DEVBUF, M_NOWAIT | M_ZERO); if (rp == NULL) { device_printf(ctlp->dev, "rp_attachcommon: Could not malloc rp_ports structures.\n"); retval = ENOMEM; @@ -785,26 +768,13 @@ rp_attachcommon(CONTROLLER_T *ctlp, int count = unit * 32; /* board times max ports per card SG */ bzero(rp, sizeof(struct rp_port) * num_ports); - oldspl = spltty(); rp_addr(unit) = rp; - splx(oldspl); port = 0; for(aiop=0; aiop < num_aiops; aiop++) { num_chan = sGetAiopNumChan(ctlp, aiop); for(chan=0; chan < num_chan; chan++, port++, rp++) { - tp = rp->rp_tty = ttyalloc(); - tp->t_sc = rp; - tp->t_param = rpparam; - tp->t_oproc = rpstart; - tp->t_stop = rpstop; - tp->t_break = rpbreak; - tp->t_modem = rpmodem; - tp->t_close = rpclose; - tp->t_open = rpopen; - tp->t_ififosize = 512; - tp->t_ispeedwat = (speed_t)-1; - tp->t_ospeedwat = (speed_t)-1; + rp->rp_tty = tp = tty_alloc(&rp_tty_class, rp, NULL); rp->rp_port = port; rp->rp_ctlp = ctlp; rp->rp_unit = unit; @@ -826,11 +796,13 @@ rp_attachcommon(CONTROLLER_T *ctlp, int rp->rp_cts = (ChanStatus & CTS_ACT) != 0; line = (unit << 5) | (aiop << 3) | chan; rp_table(line) = rp; - ttycreate(tp, TS_CALLOUT, "R%r%r", unit, port); + tty_makedev(tp, NULL, "R%r%r", unit, port); } } rp_ndevs++; + mtx_init(&ctlp->hwmtx, "rp_hwmtx", NULL, MTX_DEF); + ctlp->hwmtx_init = 1; return (0); nogo: @@ -842,7 +814,7 @@ nogo: void rp_releaseresource(CONTROLLER_t *ctlp) { - int i, s, unit; + int i, unit; struct rp_port *rp; @@ -850,21 +822,25 @@ rp_releaseresource(CONTROLLER_t *ctlp) if (rp_addr(unit) != NULL) { for (i = 0; i < rp_num_ports[unit]; i++) { rp = rp_addr(unit) + i; - ttyfree(rp->rp_tty); + atomic_add_32(&ctlp->free, 1); + tty_lock(rp->rp_tty); + tty_rel_gone(rp->rp_tty); } } + while (ctlp->free != 0) { + pause("rpwt", hz / 10); + } + if (ctlp->rp != NULL) { - s = spltty(); for (i = 0 ; i < sizeof(p_rp_addr) / sizeof(*p_rp_addr) ; i++) if (p_rp_addr[i] == ctlp->rp) p_rp_addr[i] = NULL; for (i = 0 ; i < sizeof(p_rp_table) / sizeof(*p_rp_table) ; i++) if (p_rp_table[i] == ctlp->rp) p_rp_table[i] = NULL; - splx(s); - free(ctlp->rp, M_DEVBUF); - ctlp->rp = NULL; + free(ctlp->rp, M_DEVBUF); + ctlp->rp = NULL; } } @@ -875,15 +851,13 @@ rp_untimeout(void) } static int -rpopen(struct tty *tp, struct cdev *dev) +rpopen(struct tty *tp) { struct rp_port *rp; - int oldspl, flags; + int flags; unsigned int IntMask, ChanStatus; - rp = dev->si_drv1; - - oldspl = spltty(); + rp = tty_softc(tp); flags = 0; flags |= SET_RTS; @@ -938,7 +912,7 @@ rpclose(struct tty *tp) { struct rp_port *rp; - rp = tp->t_sc; + rp = tty_softc(tp); rphardclose(tp); device_unbusy(rp->rp_ctlp->dev); } @@ -949,7 +923,7 @@ rphardclose(struct tty *tp) struct rp_port *rp; CHANNEL_t *cp; - rp = tp->t_sc; + rp = tty_softc(tp); cp = &rp->rp_channel; sFlushRxFIFO(cp); @@ -961,6 +935,7 @@ rphardclose(struct tty *tp) sDisTxSoftFlowCtl(cp); sClrTxXOFF(cp); +#ifdef DJA if(tp->t_cflag&HUPCL || !(tp->t_state&TS_ISOPEN) || !tp->t_actout) { sClrDTR(cp); } @@ -970,18 +945,24 @@ rphardclose(struct tty *tp) tp->t_actout = FALSE; wakeup(&tp->t_actout); wakeup(TSA_CARR_ON(tp)); +#endif /* DJA */ } -static void -rpbreak(struct tty *tp, int sig) +static int +rpioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) { struct rp_port *rp; - rp = tp->t_sc; - if (sig) { + rp = tty_softc(tp); + switch (cmd) { + case TIOCSBRK: sSendBreak(&rp->rp_channel); - } else { + return (0); + case TIOCCBRK: sClrBreak(&rp->rp_channel); + return (0); + default: + return ENOIOCTL; } } @@ -991,7 +972,7 @@ rpmodem(struct tty *tp, int sigon, int s struct rp_port *rp; int i, j, k; - rp = tp->t_sc; + rp = tty_softc(tp); if (sigon != 0 || sigoff != 0) { i = j = 0; if (sigon & SER_DTR) @@ -1025,7 +1006,11 @@ rpmodem(struct tty *tp, int sigon, int s return (0); } -static struct speedtab baud_table[] = { +static struct +{ + int baud; + int conversion; +} baud_table[] = { {B0, 0}, {B50, BRD50}, {B75, BRD75}, {B110, BRD110}, {B134, BRD134}, {B150, BRD150}, {B200, BRD200}, {B300, BRD300}, {B600, BRD600}, @@ -1037,6 +1022,17 @@ static struct speedtab baud_table[] = { {-1, -1} }; +static int rp_convert_baud(int baud) { + int i; + + for (i = 0; baud_table[i].baud >= 0; i++) { + if (baud_table[i].baud == baud) + break; + } + + return baud_table[i].conversion; +} + static int rpparam(tp, t) struct tty *tp; @@ -1044,16 +1040,14 @@ rpparam(tp, t) { struct rp_port *rp; CHANNEL_t *cp; - int oldspl, cflag, iflag, oflag, lflag; + int cflag, iflag, oflag, lflag; int ospeed; #ifdef RPCLOCAL int devshift; #endif - - rp = tp->t_sc; + rp = tty_softc(tp); cp = &rp->rp_channel; - oldspl = spltty(); cflag = t->c_cflag; #ifdef RPCLOCAL @@ -1067,17 +1061,10 @@ rpparam(tp, t) oflag = t->c_oflag; lflag = t->c_lflag; - ospeed = ttspeedtab(t->c_ispeed, baud_table); + ospeed = rp_convert_baud(t->c_ispeed); if(ospeed < 0 || t->c_ispeed != t->c_ospeed) return(EINVAL); - tp->t_ispeed = t->c_ispeed; - tp->t_ospeed = t->c_ospeed; - tp->t_cflag = cflag; - tp->t_iflag = iflag; - tp->t_oflag = oflag; - tp->t_lflag = lflag; - if(t->c_ospeed == 0) { sClrDTR(cp); return(0); @@ -1143,104 +1130,36 @@ rpparam(tp, t) } else { sDisRTSFlowCtl(cp); } - ttyldoptim(tp); - - if((cflag & CLOCAL) || (sGetChanStatusLo(cp) & CD_ACT)) { - tp->t_state |= TS_CARR_ON; - wakeup(TSA_CARR_ON(tp)); - } - -/* tp->t_state |= TS_CAN_BYPASS_L_RINT; - flags = rp->rp_channel.TxControl[3]; - if(flags & SET_DTR) - else - if(flags & SET_RTS) - else -*/ - splx(oldspl); return(0); } static void -rpstart(tp) - struct tty *tp; +rpstart(struct tty *tp) { struct rp_port *rp; CHANNEL_t *cp; - struct clist *qp; char flags; - int spl, xmit_fifo_room; + int xmit_fifo_room; int i, count, wcount; - - rp = tp->t_sc; + rp = tty_softc(tp); cp = &rp->rp_channel; flags = rp->rp_channel.TxControl[3]; - spl = spltty(); - if(tp->t_state & (TS_TIMEOUT | TS_TTSTOP)) { - ttwwakeup(tp); - splx(spl); - return; - } if(rp->rp_xmit_stopped) { sEnTransmit(cp); rp->rp_xmit_stopped = 0; } - count = sGetTxCnt(cp); - if(tp->t_outq.c_cc == 0) { - if((tp->t_state & TS_BUSY) && (count == 0)) { - tp->t_state &= ~TS_BUSY; - } - ttwwakeup(tp); - splx(spl); - return; - } xmit_fifo_room = TXFIFO_SIZE - sGetTxCnt(cp); - qp = &tp->t_outq; - if(xmit_fifo_room > 0 && qp->c_cc > 0) { - tp->t_state |= TS_BUSY; - count = q_to_b( qp, rp->TxBuf, xmit_fifo_room ); + count = ttydisc_getc(tp, &rp->TxBuf, xmit_fifo_room); + if(xmit_fifo_room > 0) { for( i = 0, wcount = count >> 1; wcount > 0; i += 2, wcount-- ) { - rp_writech2(cp, sGetTxRxDataIO(cp), le16dec(rp->TxBuf + i)); + rp_writech2(cp, sGetTxRxDataIO(cp), le16dec(&rp->TxBuf[i])); } if ( count & 1 ) { rp_writech1(cp, sGetTxRxDataIO(cp), rp->TxBuf[(count-1)]); } } - rp->rp_restart = (qp->c_cc > 0) ? rp->rp_fifo_lw : 0; - - ttwwakeup(tp); - splx(spl); -} - -static -void -rpstop(tp, flag) - register struct tty *tp; - int flag; -{ - struct rp_port *rp; - CHANNEL_t *cp; - int spl; - - rp = tp->t_sc; - cp = &rp->rp_channel; - - spl = spltty(); - - if(tp->t_state & TS_BUSY) { - if((tp->t_state&TS_TTSTOP) == 0) { - sFlushTxFIFO(cp); - } else { - if(rp->rp_xmit_stopped == 0) { - sDisTransmit(cp); - rp->rp_xmit_stopped = 1; - } - } - } - splx(spl); - rpstart(tp); } Modified: head/sys/dev/rp/rp_pci.c ============================================================================== --- head/sys/dev/rp/rp_pci.c Mon Apr 27 15:45:54 2009 (r191562) +++ head/sys/dev/rp/rp_pci.c Mon Apr 27 15:58:38 2009 (r191563) @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #define RP_DEVICE_ID_6M 0x000C #define RP_DEVICE_ID_4M 0x000D #define RP_DEVICE_ID_UPCI_32 0x0801 +#define RP_DEVICE_ID_UPCI_16 0x0803 #define RP_DEVICE_ID_UPCI_8O 0x0805 /************************************************************************** @@ -180,6 +181,7 @@ rp_pciattach(device_t dev) ctlp->bus_ctlp = NULL; switch (pci_get_device(dev)) { + case RP_DEVICE_ID_UPCI_16: case RP_DEVICE_ID_UPCI_32: case RP_DEVICE_ID_UPCI_8O: ctlp->io_rid[0] = PCIR_BAR(2); Modified: head/sys/dev/rp/rpreg.h ============================================================================== --- head/sys/dev/rp/rpreg.h Mon Apr 27 15:45:54 2009 (r191562) +++ head/sys/dev/rp/rpreg.h Mon Apr 27 15:58:38 2009 (r191563) @@ -361,6 +361,10 @@ struct CONTROLLER_str int AiopID[AIOP_CTL_SIZE]; int AiopNumChan[AIOP_CTL_SIZE]; + struct mtx hwmtx; /* Spinlock protecting hardware. */ + int hwmtx_init; + int free; + /* Device and resource management */ device_t dev; /* device */ int io_num; /* Number of IO resources */ @@ -1005,6 +1009,18 @@ void sDisInterrupts(CHANNEL_T *ChP,Word_ int rp_attachcommon(CONTROLLER_T *ctlp, int num_aiops, int num_ports); void rp_releaseresource(CONTROLLER_t *ctlp); void rp_untimeout(void); +static __inline void +rp_lock(CONTROLLER_T *CtlP) +{ + if (CtlP->hwmtx_init != 0) + mtx_lock_spin(&CtlP->hwmtx); +} +static __inline void +rp_unlock(CONTROLLER_T *CtlP) +{ + if (CtlP->hwmtx_init != 0) + mtx_unlock_spin(&CtlP->hwmtx); +} #ifndef ROCKET_C extern Byte_t R[RDATASIZE]; From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 16:46:17 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B12B106568E; Mon, 27 Apr 2009 16:46:17 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 780C88FC24; Mon, 27 Apr 2009 16:46:17 +0000 (UTC) (envelope-from rmacklem@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 n3RGkHJP020159; Mon, 27 Apr 2009 16:46:17 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RGkHX1020156; Mon, 27 Apr 2009 16:46:17 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <200904271646.n3RGkHX1020156@svn.freebsd.org> From: Rick Macklem Date: Mon, 27 Apr 2009 16:46:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191564 - head/sys/ufs/ufs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 16:46:18 -0000 Author: rmacklem Date: Mon Apr 27 16:46:16 2009 New Revision: 191564 URL: http://svn.freebsd.org/changeset/base/191564 Log: Change the semantics of i_modrev/va_filerev to what is required for the nfsv4 Change attribute. There are 2 changes: 1 - The value now changes on metadata changes as well as data modifications (incremented for IN_CHANGE instead of IN_UPDATE). 2 - It is now saved in spare space in the on-disk i-node so that it survives a crash. Since va_filerev is not passed out into user space, the only current use of va_filerev is in the nfs server, which uses it as the directory cookie verifier. Since this verifier is only passed back to the server by a client verbatim and then the server doesn't check it, changing the semantics should not break anything currently in FreeBSD. Reviewed by: bde Approved by: kib (mentor) Modified: head/sys/ufs/ufs/dinode.h head/sys/ufs/ufs/inode.h head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ufs/dinode.h ============================================================================== --- head/sys/ufs/ufs/dinode.h Mon Apr 27 15:58:38 2009 (r191563) +++ head/sys/ufs/ufs/dinode.h Mon Apr 27 16:46:16 2009 (r191564) @@ -145,7 +145,8 @@ struct ufs2_dinode { ufs2_daddr_t di_extb[NXADDR];/* 96: External attributes block. */ ufs2_daddr_t di_db[NDADDR]; /* 112: Direct disk blocks. */ ufs2_daddr_t di_ib[NIADDR]; /* 208: Indirect disk blocks. */ - int64_t di_spare[3]; /* 232: Reserved; currently unused */ + u_int64_t di_modrev; /* 232: i_modrev for NFSv4 */ + int64_t di_spare[2]; /* 240: Reserved; currently unused */ }; /* @@ -183,7 +184,7 @@ struct ufs1_dinode { int32_t di_gen; /* 108: Generation number. */ u_int32_t di_uid; /* 112: File owner. */ u_int32_t di_gid; /* 116: File group. */ - int32_t di_spare[2]; /* 120: Reserved; currently unused */ + u_int64_t di_modrev; /* 120: i_modrev for NFSv4 */ }; #define di_ogid di_u.oldids[1] #define di_ouid di_u.oldids[0] Modified: head/sys/ufs/ufs/inode.h ============================================================================== --- head/sys/ufs/ufs/inode.h Mon Apr 27 15:58:38 2009 (r191563) +++ head/sys/ufs/ufs/inode.h Mon Apr 27 16:46:16 2009 (r191564) @@ -74,7 +74,6 @@ struct inode { struct fs *i_fs; /* Associated filesystem superblock. */ struct dquot *i_dquot[MAXQUOTAS]; /* Dquot structures. */ - u_quad_t i_modrev; /* Revision level for NFS lease. */ /* * Side effects; used during directory lookup. */ Modified: head/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- head/sys/ufs/ufs/ufs_vnops.c Mon Apr 27 15:58:38 2009 (r191563) +++ head/sys/ufs/ufs/ufs_vnops.c Mon Apr 27 16:46:16 2009 (r191564) @@ -157,11 +157,11 @@ ufs_itimes_locked(struct vnode *vp) if (ip->i_flag & IN_UPDATE) { DIP_SET(ip, i_mtime, ts.tv_sec); DIP_SET(ip, i_mtimensec, ts.tv_nsec); - ip->i_modrev++; } if (ip->i_flag & IN_CHANGE) { DIP_SET(ip, i_ctime, ts.tv_sec); DIP_SET(ip, i_ctimensec, ts.tv_nsec); + DIP_SET(ip, i_modrev, DIP(ip, i_modrev) + 1); } out: @@ -446,6 +446,7 @@ ufs_getattr(ap) vap->va_ctime.tv_sec = ip->i_din1->di_ctime; vap->va_ctime.tv_nsec = ip->i_din1->di_ctimensec; vap->va_bytes = dbtob((u_quad_t)ip->i_din1->di_blocks); + vap->va_filerev = ip->i_din1->di_modrev; } else { vap->va_rdev = ip->i_din2->di_rdev; vap->va_size = ip->i_din2->di_size; @@ -456,12 +457,12 @@ ufs_getattr(ap) vap->va_birthtime.tv_sec = ip->i_din2->di_birthtime; vap->va_birthtime.tv_nsec = ip->i_din2->di_birthnsec; vap->va_bytes = dbtob((u_quad_t)ip->i_din2->di_blocks); + vap->va_filerev = ip->i_din2->di_modrev; } vap->va_flags = ip->i_flags; vap->va_gen = ip->i_gen; vap->va_blocksize = vp->v_mount->mnt_stat.f_iosize; vap->va_type = IFTOVT(ip->i_mode); - vap->va_filerev = ip->i_modrev; return (0); } @@ -2225,7 +2226,6 @@ ufs_vinit(mntp, fifoops, vpp) ASSERT_VOP_LOCKED(vp, "ufs_vinit"); if (ip->i_number == ROOTINO) vp->v_vflag |= VV_ROOT; - ip->i_modrev = init_va_filerev(); *vpp = vp; return (0); } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 16:57:20 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 36384106566C; Mon, 27 Apr 2009 16:57:20 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2373F8FC1B; Mon, 27 Apr 2009 16:57:20 +0000 (UTC) (envelope-from luigi@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 n3RGvK3p020408; Mon, 27 Apr 2009 16:57:20 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RGvKZ9020407; Mon, 27 Apr 2009 16:57:20 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200904271657.n3RGvKZ9020407@svn.freebsd.org> From: Luigi Rizzo Date: Mon, 27 Apr 2009 16:57:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191565 - head/release/picobsd/tinyware/ns X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 16:57:20 -0000 Author: luigi Date: Mon Apr 27 16:57:19 2009 New Revision: 191565 URL: http://svn.freebsd.org/changeset/base/191565 Log: fix various build errors (missing or wrong return types for various functions returning void, missing headers, and so on). MFC after: 4 weeks (not before 7.3 is out, anyways) Modified: head/release/picobsd/tinyware/ns/ns.c Modified: head/release/picobsd/tinyware/ns/ns.c ============================================================================== --- head/release/picobsd/tinyware/ns/ns.c Mon Apr 27 16:46:16 2009 (r191564) +++ head/release/picobsd/tinyware/ns/ns.c Mon Apr 27 16:57:19 2009 (r191565) @@ -51,11 +51,14 @@ #include #include #include +#include #include #include #include #include +#include +#include #include char *progname; @@ -70,6 +73,8 @@ int delta = 0 ; extern char *optarg; extern int optind; +void print_load_stats(void); + void usage() { @@ -228,7 +233,7 @@ get_flags(char *buf, int flags) #endif /*NEVER*/ } -int +void print_routing(char *proto) { int mib[6]; @@ -414,18 +419,17 @@ print_routing(char *proto) get_rtaddrs(ifam->ifam_addrs, sa, rti_info); printf(" %s", Sock_ntop(sa, sa->sa_len)); } - printf(" %u", rtm->rtm_use); + /* printf(" %u", rtm->rtm_use); */ printf("\n"); } free(rt_buf); free(if_buf); free(if_table); free(ifm_table); - return; - } -print_ip_stats() +void +print_ip_stats(void) { int mib[4]; int len; @@ -442,7 +446,7 @@ print_ip_stats() len = sizeof(struct ipstat); if (sysctl(mib, 4, &s, &len, NULL, 0) < 0) { perror("sysctl"); - return (-1); + return; } printf("\nIP statistics:\n"); printf("--------------\n"); @@ -486,7 +490,8 @@ print_ip_stats() #endif } -print_tcp_stats() +void +print_tcp_stats(void) { int mib[4]; int len; @@ -497,13 +502,13 @@ print_tcp_stats() mib[2] = IPPROTO_TCP; #ifndef TCPCTL_STATS printf("sorry, tcp stats not available\n"); - return -1; + return; #else mib[3] = TCPCTL_STATS; len = sizeof(struct tcpstat); if (sysctl(mib, 4, &s, &len, NULL, 0) < 0) { perror("sysctl"); - return (-1); + return; } printf("\nTCP statistics:\n"); printf("---------------\n"); @@ -584,7 +589,8 @@ print_tcp_stats() #endif } -print_udp_stats() +void +print_udp_stats(void) { int mib[4]; int len; @@ -597,7 +603,7 @@ print_udp_stats() len = sizeof(struct udpstat); if (sysctl(mib, 4, &s, &len, NULL, 0) < 0) { perror("sysctl"); - return (-1); + return; } printf("\nUDP statistics:\n"); printf("---------------\n"); @@ -785,7 +791,7 @@ again: exit(0); } -int +void print_load_stats(void) { static u_int32_t cp_time[5]; @@ -795,12 +801,12 @@ print_load_stats(void) static int stathz ; if (!lflag || !wflag) - return 0; + return; l = sizeof(new_cp_time) ; bzero(new_cp_time, l); if (sysctlbyname("kern.cp_time", new_cp_time, &l, NULL, 0) < 0) { warn("sysctl: retrieving cp_time length"); - return 0; + return; } if (stathz == 0) { struct clockinfo ci; @@ -809,7 +815,7 @@ print_load_stats(void) l = sizeof(ci) ; if (sysctlbyname("kern.clockrate", &ci, &l, NULL, 0) < 0) { warn("sysctl: retrieving clockinfo length"); - return 0; + return; } stathz = ci.stathz ; bcopy(new_cp_time, cp_time, sizeof(cp_time)); @@ -822,4 +828,4 @@ print_load_stats(void) "INTR %5.2f%% IDLE %5.2f%%\n", X(0), X(1), X(2), X(3), X(4) ); bcopy(new_cp_time, cp_time, sizeof(cp_time)); -} +} From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:22:15 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4650E10656F8; Mon, 27 Apr 2009 17:22:15 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2950A8FC18; Mon, 27 Apr 2009 17:22:15 +0000 (UTC) (envelope-from jfv@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 n3RHMFss020952; Mon, 27 Apr 2009 17:22:15 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHMF53020951; Mon, 27 Apr 2009 17:22:15 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <200904271722.n3RHMF53020951@svn.freebsd.org> From: Jack F Vogel Date: Mon, 27 Apr 2009 17:22:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191566 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:22:16 -0000 Author: jfv Date: Mon Apr 27 17:22:14 2009 New Revision: 191566 URL: http://svn.freebsd.org/changeset/base/191566 Log: Thanks for Michael Tuexen for tracking down a path where the watchdog timer was not being rearmed in txeof, and also a missing case in the new code. MFC after: 2 weeks Modified: head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Apr 27 16:57:19 2009 (r191565) +++ head/sys/dev/e1000/if_em.c Mon Apr 27 17:22:14 2009 (r191566) @@ -1013,12 +1013,15 @@ em_transmit_locked(struct ifnet *ifp, st if (ADAPTER_RING_EMPTY(adapter) && (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) { if (em_xmit(adapter, &m)) { - if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) { + if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) return (error); - } - } else{ - /* Send a copy of the frame to the BPF listener */ + } else { + /* + ** Send a copy of the frame to the BPF + ** listener and set the watchdog on. + */ ETHER_BPF_MTAP(ifp, m); + addapter->watchdog_timer = EM_TX_TIMEOUT; } } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0) return (error); @@ -1086,6 +1089,8 @@ em_start_locked(struct ifnet *ifp) if (em_xmit(adapter, &m_head)) { if (m_head == NULL) break; + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + IFQ_DRV_PREPEND(&ifp->if_snd, m_head); break; } @@ -4029,6 +4034,7 @@ static void em_txeof(struct adapter *adapter) { int first, last, done, num_avail; + u32 cleaned = 0; struct em_buffer *tx_buffer; struct e1000_tx_desc *tx_desc, *eop_desc; struct ifnet *ifp = adapter->ifp; @@ -4064,7 +4070,7 @@ em_txeof(struct adapter *adapter) tx_desc->upper.data = 0; tx_desc->lower.data = 0; tx_desc->buffer_addr = 0; - num_avail++; + ++num_avail; ++cleaned; if (tx_buffer->m_head) { ifp->if_opackets++; @@ -4101,21 +4107,22 @@ em_txeof(struct adapter *adapter) adapter->next_tx_to_clean = first; /* - * If we have enough room, clear IFF_DRV_OACTIVE to tell the stack - * that it is OK to send packets. - * If there are no pending descriptors, clear the timeout. Otherwise, - * if some descriptors have been freed, restart the timeout. + * If we have enough room, clear IFF_DRV_OACTIVE to + * tell the stack that it is OK to send packets. + * If there are no pending descriptors, clear the timeout. */ if (num_avail > EM_TX_CLEANUP_THRESHOLD) { ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - /* All clean, turn off the timer */ if (num_avail == adapter->num_tx_desc) { adapter->watchdog_timer = 0; - } else - /* Some cleaned, reset the timer */ - if (num_avail != adapter->num_tx_desc_avail) - adapter->watchdog_timer = EM_TX_TIMEOUT; + adapter->num_tx_desc_avail = num_avail; + return; + } } + + /* If any descriptors cleaned, reset the watchdog */ + if (cleaned) + adapter->watchdog_timer = EM_TX_TIMEOUT; adapter->num_tx_desc_avail = num_avail; return; } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:24:48 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B0781065689; Mon, 27 Apr 2009 17:24:48 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6FB48FC14; Mon, 27 Apr 2009 17:24:47 +0000 (UTC) (envelope-from gallatin@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 n3RHOlaD021028; Mon, 27 Apr 2009 17:24:47 GMT (envelope-from gallatin@svn.freebsd.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHOl8d021027; Mon, 27 Apr 2009 17:24:47 GMT (envelope-from gallatin@svn.freebsd.org) Message-Id: <200904271724.n3RHOl8d021027@svn.freebsd.org> From: Andrew Gallatin Date: Mon, 27 Apr 2009 17:24:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191567 - head/sys/dev/mxge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:24:50 -0000 Author: gallatin Date: Mon Apr 27 17:24:47 2009 New Revision: 191567 URL: http://svn.freebsd.org/changeset/base/191567 Log: Fix build: Make forgotten IFNET_MULTIQUEUE to IFNET_BUF_RING ifdef change. Modified: head/sys/dev/mxge/if_mxge_var.h Modified: head/sys/dev/mxge/if_mxge_var.h ============================================================================== --- head/sys/dev/mxge/if_mxge_var.h Mon Apr 27 17:22:14 2009 (r191566) +++ head/sys/dev/mxge/if_mxge_var.h Mon Apr 27 17:24:47 2009 (r191567) @@ -125,7 +125,7 @@ typedef struct typedef struct { struct mtx mtx; -#ifdef IFNET_MULTIQUEUE +#ifdef IFNET_BUF_RING struct buf_ring *br; #endif volatile mcp_kreq_ether_send_t *lanai; /* lanai ptr for sendq */ From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:29:52 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EF3D1065674; Mon, 27 Apr 2009 17:29:52 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2A09F8FC1B; Mon, 27 Apr 2009 17:29:52 +0000 (UTC) (envelope-from jkim@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 n3RHTqTx021149; Mon, 27 Apr 2009 17:29:52 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHTpDQ021146; Mon, 27 Apr 2009 17:29:51 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904271729.n3RHTpDQ021146@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 27 Apr 2009 17:29:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191568 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:29:53 -0000 Author: jkim Date: Mon Apr 27 17:29:51 2009 New Revision: 191568 URL: http://svn.freebsd.org/changeset/base/191568 Log: - Always force AHCI mode on a ATI/AMD SB600/700/800 SATA controller. These controllers may be configured as legacy IDE mode by modifying subclass and progif without actually changing PCI device IDs. Instead of complicating code, we always force AHCI mode while probing. Also we restore AHCI mode while resuming per ATI/AMD register programming/requirement guides. - Fix SB700/800 "combined" mode. Unlike SB600, this PATA controller can combine two SATA ports and emulate one PATA channel as primary or secondary depending on BIOS configuration. When the combined mode is disabled, this channel disappears and it works just like SB600 PATA controller, however. - Add more PCI device IDs for SB700/800 and adjust device descriptions. SB800 shares the same PCI device IDs and added two more SATA IDs. Modified: head/sys/dev/ata/ata-pci.h head/sys/dev/ata/chipsets/ata-ahci.c head/sys/dev/ata/chipsets/ata-ati.c Modified: head/sys/dev/ata/ata-pci.h ============================================================================== --- head/sys/dev/ata/ata-pci.h Mon Apr 27 17:24:47 2009 (r191567) +++ head/sys/dev/ata/ata-pci.h Mon Apr 27 17:29:51 2009 (r191568) @@ -108,6 +108,11 @@ struct ata_pci_controller { #define ATA_ATI_IXP600_S1 0x43801002 #define ATA_ATI_IXP700 0x439c1002 #define ATA_ATI_IXP700_S1 0x43901002 +#define ATA_ATI_IXP700_S2 0x43911002 +#define ATA_ATI_IXP700_S3 0x43921002 +#define ATA_ATI_IXP700_S4 0x43931002 +#define ATA_ATI_IXP800_S1 0x43941002 +#define ATA_ATI_IXP800_S2 0x43951002 #define ATA_CENATEK_ID 0x16ca #define ATA_CENATEK_ROCKET 0x000116ca @@ -458,6 +463,7 @@ int ata_ahci_ch_attach(device_t dev); int ata_ahci_ch_detach(device_t dev); int ata_ahci_ch_suspend(device_t dev); int ata_ahci_ch_resume(device_t dev); +int ata_ahci_ctlr_reset(device_t dev); void ata_ahci_reset(device_t dev); int ata_marvell_edma_chipinit(device_t); int ata_sii_chipinit(device_t); Modified: head/sys/dev/ata/chipsets/ata-ahci.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 17:24:47 2009 (r191567) +++ head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 17:29:51 2009 (r191568) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include /* local prototypes */ -static int ata_ahci_ctlr_reset(device_t dev); static int ata_ahci_suspend(device_t dev); static int ata_ahci_status(device_t dev); static int ata_ahci_begin_transaction(struct ata_request *request); @@ -155,7 +154,7 @@ ata_ahci_chipinit(device_t dev) return 0; } -static int +int ata_ahci_ctlr_reset(device_t dev) { struct ata_pci_controller *ctlr = device_get_softc(dev); Modified: head/sys/dev/ata/chipsets/ata-ati.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-ati.c Mon Apr 27 17:24:47 2009 (r191567) +++ head/sys/dev/ata/chipsets/ata-ati.c Mon Apr 27 17:29:51 2009 (r191568) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -54,6 +55,9 @@ __FBSDID("$FreeBSD$"); /* local prototypes */ static int ata_ati_chipinit(device_t dev); static void ata_ati_setmode(device_t dev, int mode); +static void ata_ati_ahci_enable(device_t dev); +static int ata_ati_ahci_chipinit(device_t dev); +static int ata_ati_ahci_resume(device_t dev); /* misc defines */ #define ATI_PATA 0x01 @@ -62,6 +66,13 @@ static void ata_ati_setmode(device_t dev #define SII_MEMIO 1 #define SII_BUG 0x04 +/* Misc Control Register */ +#define ATI_PCI_MISC_CTRL 0x40 +#define ATI_PCI_MISCCTRL_ENABLE_WR 0x00000001 + +/* Watchdog Control/Status Register */ +#define ATI_PCI_WD_CTRL 0x44 +#define ATI_PCI_WDCTRL_ENABLE 0x0001 /* * ATI chipset support functions @@ -79,8 +90,13 @@ ata_ati_probe(device_t dev) { ATA_ATI_IXP400_S2, 0x00, ATI_SATA, 0, ATA_SA150, "IXP400" }, { ATA_ATI_IXP600, 0x00, ATI_PATA, 0, ATA_UDMA6, "IXP600" }, { ATA_ATI_IXP600_S1, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP600" }, - { ATA_ATI_IXP700, 0x00, ATI_PATA, 0, ATA_UDMA6, "IXP700" }, - { ATA_ATI_IXP700_S1, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP700" }, + { ATA_ATI_IXP700, 0x00, ATI_PATA, 0, ATA_UDMA6, "IXP700/800" }, + { ATA_ATI_IXP700_S1, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP700/800" }, + { ATA_ATI_IXP700_S2, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP700/800" }, + { ATA_ATI_IXP700_S3, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP700/800" }, + { ATA_ATI_IXP700_S4, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP700/800" }, + { ATA_ATI_IXP800_S1, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP800" }, + { ATA_ATI_IXP800_S2, 0x00, ATI_AHCI, 0, ATA_SA300, "IXP800" }, { 0, 0, 0, 0, 0, 0}}; if (pci_get_vendor(dev) != ATA_ATI_ID) @@ -105,7 +121,19 @@ ata_ati_probe(device_t dev) ctlr->chipinit = ata_sii_chipinit; break; case ATI_AHCI: - ctlr->chipinit = ata_ahci_chipinit; + /* + * Force AHCI mode if IDE mode is set from BIOS. + */ + if ((ctlr->chip->chipid == ATA_ATI_IXP600_S1 || + ctlr->chip->chipid == ATA_ATI_IXP700_S1) && + pci_get_subclass(dev) == PCIS_STORAGE_IDE) { + struct pci_devinfo *dinfo = device_get_ivars(dev); + pcicfgregs *cfg = &dinfo->cfg; + cfg->subclass = PCIS_STORAGE_SATA; + cfg->progif = PCIP_STORAGE_SATA_AHCI_1_0; + ata_ati_ahci_enable(dev); + } + ctlr->chipinit = ata_ati_ahci_chipinit; break; } return 0; @@ -119,9 +147,8 @@ ata_ati_chipinit(device_t dev) if (ata_setup_interrupt(dev, ata_generic_intr)) return ENXIO; - /* IXP600 & IXP700 only have 1 PATA channel */ - if ((ctlr->chip->chipid == ATA_ATI_IXP600) || - (ctlr->chip->chipid == ATA_ATI_IXP700)) + /* IXP600 only has 1 PATA channel */ + if (ctlr->chip->chipid == ATA_ATI_IXP600) ctlr->channels = 1; ctlr->setmode = ata_ati_setmode; @@ -192,6 +219,43 @@ ata_ati_setmode(device_t dev, int mode) } } +static void +ata_ati_ahci_enable(device_t dev) +{ + struct pci_devinfo *dinfo = device_get_ivars(dev); + pcicfgregs *cfg = &dinfo->cfg; + uint32_t ctrl; + + ctrl = pci_read_config(dev, ATI_PCI_MISC_CTRL, 4); + pci_write_config(dev, ATI_PCI_MISC_CTRL, + ctrl | ATI_PCI_MISCCTRL_ENABLE_WR, 4); + pci_write_config(dev, PCIR_SUBCLASS, cfg->subclass, 1); + pci_write_config(dev, PCIR_PROGIF, cfg->progif, 1); + pci_write_config(dev, ATI_PCI_WD_CTRL, + pci_read_config(dev, ATI_PCI_WD_CTRL, 2) | ATI_PCI_WDCTRL_ENABLE, 2); + pci_write_config(dev, ATI_PCI_MISC_CTRL, + ctrl & ~ATI_PCI_MISCCTRL_ENABLE_WR, 4); +} + +static int +ata_ati_ahci_chipinit(device_t dev) +{ + struct ata_pci_controller *ctlr = device_get_softc(dev); + int error; + + error = ata_ahci_chipinit(dev); + ctlr->resume = ata_ati_ahci_resume; + return (error); +} + +static int +ata_ati_ahci_resume(device_t dev) +{ + + ata_ati_ahci_enable(dev); + return (ata_ahci_ctlr_reset(dev)); +} + ATA_DECLARE_DRIVER(ata_ati); MODULE_DEPEND(ata_ati, ata_ahci, 1, 1, 1); MODULE_DEPEND(ata_ati, ata_sii, 1, 1, 1); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:36:41 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABF88106564A; Mon, 27 Apr 2009 17:36:41 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F5908FC19; Mon, 27 Apr 2009 17:36:41 +0000 (UTC) (envelope-from jfv@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 n3RHafe0021322; Mon, 27 Apr 2009 17:36:41 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHafVq021321; Mon, 27 Apr 2009 17:36:41 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <200904271736.n3RHafVq021321@svn.freebsd.org> From: Jack F Vogel Date: Mon, 27 Apr 2009 17:36:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191569 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:36:42 -0000 Author: jfv Date: Mon Apr 27 17:36:41 2009 New Revision: 191569 URL: http://svn.freebsd.org/changeset/base/191569 Log: igb_txeof also has a case where the watchdog may not get reset when it should be MFC after: 2 weeks Modified: head/sys/dev/e1000/if_igb.c Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Mon Apr 27 17:29:51 2009 (r191568) +++ head/sys/dev/e1000/if_igb.c Mon Apr 27 17:36:41 2009 (r191569) @@ -3308,6 +3308,7 @@ igb_txeof(struct tx_ring *txr) { struct adapter *adapter = txr->adapter; int first, last, done, num_avail; + u32 cleaned = 0; struct igb_tx_buffer *tx_buffer; struct e1000_tx_desc *tx_desc, *eop_desc; struct ifnet *ifp = adapter->ifp; @@ -3343,7 +3344,7 @@ igb_txeof(struct tx_ring *txr) tx_desc->upper.data = 0; tx_desc->lower.data = 0; tx_desc->buffer_addr = 0; - num_avail++; + ++num_avail; ++cleaned; if (tx_buffer->m_head) { ifp->if_opackets++; @@ -3380,23 +3381,21 @@ igb_txeof(struct tx_ring *txr) txr->next_to_clean = first; /* - * If we have enough room, clear IFF_DRV_OACTIVE to tell the stack - * that it is OK to send packets. - * If there are no pending descriptors, clear the timeout. Otherwise, - * if some descriptors have been freed, restart the timeout. + * If we have enough room, clear IFF_DRV_OACTIVE to + * tell the stack that it is OK to send packets. + * If there are no pending descriptors, clear the timeout. */ if (num_avail > IGB_TX_CLEANUP_THRESHOLD) { ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - /* All clean, turn off the timer */ if (num_avail == adapter->num_tx_desc) { txr->watchdog_timer = 0; txr->tx_avail = num_avail; return FALSE; } - /* Some cleaned, reset the timer */ - else if (num_avail != txr->tx_avail) - txr->watchdog_timer = IGB_TX_TIMEOUT; } + /* Some descriptors cleaned, reset the watchdog */ + if (cleaned) + txr->watchdog_timer = IGB_TX_TIMEOUT; txr->tx_avail = num_avail; return TRUE; } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:37:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA56B1065676; Mon, 27 Apr 2009 17:37:36 +0000 (UTC) (envelope-from oleg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BDD4A8FC19; Mon, 27 Apr 2009 17:37:36 +0000 (UTC) (envelope-from oleg@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 n3RHba9G021375; Mon, 27 Apr 2009 17:37:36 GMT (envelope-from oleg@svn.freebsd.org) Received: (from oleg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHbaLL021373; Mon, 27 Apr 2009 17:37:36 GMT (envelope-from oleg@svn.freebsd.org) Message-Id: <200904271737.n3RHbaLL021373@svn.freebsd.org> From: Oleg Bulyzhin Date: Mon, 27 Apr 2009 17:37:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191570 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:37:37 -0000 Author: oleg Date: Mon Apr 27 17:37:36 2009 New Revision: 191570 URL: http://svn.freebsd.org/changeset/base/191570 Log: Optimize packet flow: if net.inet.ip.fw.one_pass != 0 and packet was processed by ipfw once - avoid second ipfw_chk() call. This saves us from unnecessary IPFW_RLOCK(), m_tag_find() calls and ip/tcp/udp header parsing. MFC after: 2 month Modified: head/sys/netinet/ip_fw2.c head/sys/netinet/ip_fw_pfil.c Modified: head/sys/netinet/ip_fw2.c ============================================================================== --- head/sys/netinet/ip_fw2.c Mon Apr 27 17:36:41 2009 (r191569) +++ head/sys/netinet/ip_fw2.c Mon Apr 27 17:37:36 2009 (r191570) @@ -2515,16 +2515,7 @@ do { \ /* * Packet has already been tagged. Look for the next rule * to restart processing. - * - * If fw_one_pass != 0 then just accept it. - * XXX should not happen here, but optimized out in - * the caller. */ - if (V_fw_one_pass) { - IPFW_RUNLOCK(chain); - return (IP_FW_PASS); - } - f = args->rule->next_rule; if (f == NULL) f = lookup_next_rule(args->rule, 0); Modified: head/sys/netinet/ip_fw_pfil.c ============================================================================== --- head/sys/netinet/ip_fw_pfil.c Mon Apr 27 17:36:41 2009 (r191569) +++ head/sys/netinet/ip_fw_pfil.c Mon Apr 27 17:37:36 2009 (r191570) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include -#define _NET_IF_VAR_H_ /* we don't want if_var.h, only if.h */ #include #include #include @@ -63,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include @@ -131,10 +131,14 @@ again: args.m = *m0; args.inp = inp; - ipfw = ipfw_chk(&args); - *m0 = args.m; tee = 0; + if (V_fw_one_pass == 0 || args.rule == NULL) { + ipfw = ipfw_chk(&args); + *m0 = args.m; + } else + ipfw = IP_FW_PASS; + KASSERT(*m0 != NULL || ipfw == IP_FW_DENY, ("%s: m0 is NULL", __func__)); @@ -257,10 +261,14 @@ again: args.m = *m0; args.oif = ifp; args.inp = inp; - ipfw = ipfw_chk(&args); - *m0 = args.m; tee = 0; + if (V_fw_one_pass == 0 || args.rule == NULL) { + ipfw = ipfw_chk(&args); + *m0 = args.m; + } else + ipfw = IP_FW_PASS; + KASSERT(*m0 != NULL || ipfw == IP_FW_DENY, ("%s: m0 is NULL", __func__)); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:39:41 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 997CE1065687; Mon, 27 Apr 2009 17:39:41 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C44A8FC1F; Mon, 27 Apr 2009 17:39:41 +0000 (UTC) (envelope-from sam@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 n3RHdflr021452; Mon, 27 Apr 2009 17:39:41 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHdfl0021450; Mon, 27 Apr 2009 17:39:41 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904271739.n3RHdfl0021450@svn.freebsd.org> From: Sam Leffler Date: Mon, 27 Apr 2009 17:39:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191571 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:39:42 -0000 Author: sam Date: Mon Apr 27 17:39:41 2009 New Revision: 191571 URL: http://svn.freebsd.org/changeset/base/191571 Log: Store the tx seq# of an 802.11 frame in the mbuf pkthdr; this will be used for s/w retransmit schemes that want to access this information w/o the overhead of decoding the raw frame. Note this also allows drivers to record this information w/o writing the frame when the seq# is obtained through an out-of-band mechanism (e.g. when a h/w assigned seq# is reported in a descriptor on tx done notification). Reviewed by: sephe, avatar Modified: head/sys/net80211/ieee80211_freebsd.h head/sys/net80211/ieee80211_output.c Modified: head/sys/net80211/ieee80211_freebsd.h ============================================================================== --- head/sys/net80211/ieee80211_freebsd.h Mon Apr 27 17:37:36 2009 (r191570) +++ head/sys/net80211/ieee80211_freebsd.h Mon Apr 27 17:39:41 2009 (r191571) @@ -248,6 +248,13 @@ struct mbuf *ieee80211_getmgtframe(uint8 #define M_AGE_GET(m) (m->m_pkthdr.csum_data) #define M_AGE_SUB(m,adj) (m->m_pkthdr.csum_data -= adj) +/* + * Store the sequence number. + */ +#define M_SEQNO_SET(m, seqno) \ + ((m)->m_pkthdr.tso_segsz = (seqno)) +#define M_SEQNO_GET(m) ((m)->m_pkthdr.tso_segsz) + #define MTAG_ABI_NET80211 1132948340 /* net80211 ABI */ struct ieee80211_cb { Modified: head/sys/net80211/ieee80211_output.c ============================================================================== --- head/sys/net80211/ieee80211_output.c Mon Apr 27 17:37:36 2009 (r191570) +++ head/sys/net80211/ieee80211_output.c Mon Apr 27 17:39:41 2009 (r191571) @@ -512,6 +512,7 @@ ieee80211_send_setup( seqno = ni->ni_txseqs[tid]++; *(uint16_t *)&wh->i_seq[0] = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); + M_SEQNO_SET(m, seqno); if (IEEE80211_IS_MULTICAST(wh->i_addr1)) m->m_flags |= M_MCAST; @@ -1097,12 +1098,15 @@ ieee80211_encap(struct ieee80211vap *vap seqno = ni->ni_txseqs[tid]++; *(uint16_t *)wh->i_seq = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); + M_SEQNO_SET(m, seqno); } } else { seqno = ni->ni_txseqs[IEEE80211_NONQOS_TID]++; *(uint16_t *)wh->i_seq = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); + M_SEQNO_SET(m, seqno); } + /* check if xmit fragmentation is required */ txfrag = (m->m_pkthdr.len > vap->iv_fragthreshold && !IEEE80211_IS_MULTICAST(wh->i_addr1) && From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:39:49 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31E5110656A9; Mon, 27 Apr 2009 17:39:49 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 25D4F8FC35; Mon, 27 Apr 2009 17:39:46 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 241394681; Mon, 27 Apr 2009 20:39:46 +0300 Message-ID: <49F5EDDD.80103@FreeBSD.org> Date: Mon, 27 Apr 2009 20:39:41 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: Jung-uk Kim References: <200904271729.n3RHTpDQ021146@svn.freebsd.org> In-Reply-To: <200904271729.n3RHTpDQ021146@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191568 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:39:51 -0000 Jung-uk Kim wrote: > Author: jkim > Date: Mon Apr 27 17:29:51 2009 > New Revision: 191568 > URL: http://svn.freebsd.org/changeset/base/191568 > > Log: > - Always force AHCI mode on a ATI/AMD SB600/700/800 SATA controller. These > controllers may be configured as legacy IDE mode by modifying subclass and > progif without actually changing PCI device IDs. Instead of complicating > code, we always force AHCI mode while probing. Also we restore AHCI mode > while resuming per ATI/AMD register programming/requirement guides. > - Fix SB700/800 "combined" mode. Unlike SB600, this PATA controller can > combine two SATA ports and emulate one PATA channel as primary or secondary > depending on BIOS configuration. When the combined mode is disabled, this > channel disappears and it works just like SB600 PATA controller, however. > - Add more PCI device IDs for SB700/800 and adjust device descriptions. > SB800 shares the same PCI device IDs and added two more SATA IDs. Thanks. -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:42:03 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9BC0106568B; Mon, 27 Apr 2009 17:42:02 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C57908FC20; Mon, 27 Apr 2009 17:42:02 +0000 (UTC) (envelope-from kientzle@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 n3RHg2PM021539; Mon, 27 Apr 2009 17:42:02 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RHg2E7021537; Mon, 27 Apr 2009 17:42:02 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271742.n3RHg2E7021537@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 17:42:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191572 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:42:04 -0000 Author: kientzle Date: Mon Apr 27 17:42:02 2009 New Revision: 191572 URL: http://svn.freebsd.org/changeset/base/191572 Log: Merge r988,r1064 from libarchive.googlecode.com: * Split whiny skip function to create a new best-effort skip_lenient() * Correctly increment the top-level file position only for the top filter * Simulate skip by reading against the current filter, not the top filter The latter two bugs aren't currently visible because no existing filter delegates skip operations. Modified: head/lib/libarchive/archive_read.c head/lib/libarchive/archive_read_private.h Modified: head/lib/libarchive/archive_read.c ============================================================================== --- head/lib/libarchive/archive_read.c Mon Apr 27 17:39:41 2009 (r191571) +++ head/lib/libarchive/archive_read.c Mon Apr 27 17:42:02 2009 (r191572) @@ -1112,7 +1112,24 @@ __archive_read_filter_consume(struct arc int64_t __archive_read_skip(struct archive_read *a, int64_t request) { - return (__archive_read_filter_skip(a->filter, request)); + int64_t skipped = __archive_read_skip_lenient(a, request); + if (skipped == request) + return (skipped); + /* We hit EOF before we satisfied the skip request. */ + archive_set_error(&a->archive, + ARCHIVE_ERRNO_MISC, + "Truncated input file (needed %jd bytes, only %jd available)", + (intmax_t)request, (intmax_t)skipped); + return (ARCHIVE_FATAL); +} + +int64_t +__archive_read_skip_lenient(struct archive_read *a, int64_t request) +{ + int64_t skipped = __archive_read_filter_skip(a->filter, request); + if (skipped > 0) + a->archive.file_position += skipped; + return (skipped); } int64_t @@ -1128,13 +1145,13 @@ __archive_read_filter_skip(struct archiv */ if (filter->avail > 0) { min = minimum(request, (off_t)filter->avail); - bytes_skipped = __archive_read_consume(filter->archive, min); + bytes_skipped = __archive_read_filter_consume(filter, min); request -= bytes_skipped; total_bytes_skipped += bytes_skipped; } if (filter->client_avail > 0) { min = minimum(request, (off_t)filter->client_avail); - bytes_skipped = __archive_read_consume(filter->archive, min); + bytes_skipped = __archive_read_filter_consume(filter, min); request -= bytes_skipped; total_bytes_skipped += bytes_skipped; } @@ -1155,7 +1172,6 @@ __archive_read_filter_skip(struct archiv filter->fatal = 1; return (bytes_skipped); } - filter->archive->archive.file_position += bytes_skipped; total_bytes_skipped += bytes_skipped; request -= bytes_skipped; filter->client_next = filter->client_buff; @@ -1170,20 +1186,15 @@ __archive_read_filter_skip(struct archiv while (request > 0) { const void* dummy_buffer; ssize_t bytes_read; - dummy_buffer = __archive_read_ahead(filter->archive, + dummy_buffer = __archive_read_filter_ahead(filter, 1, &bytes_read); if (bytes_read < 0) return (bytes_read); if (bytes_read == 0) { - /* We hit EOF before we satisfied the skip request. */ - archive_set_error(&filter->archive->archive, - ARCHIVE_ERRNO_MISC, - "Truncated input file (need to skip %jd bytes)", - (intmax_t)request); - return (ARCHIVE_FATAL); + return (total_bytes_skipped); } min = (size_t)(minimum(bytes_read, request)); - bytes_read = __archive_read_consume(filter->archive, min); + bytes_read = __archive_read_filter_consume(filter, min); total_bytes_skipped += bytes_read; request -= bytes_read; } Modified: head/lib/libarchive/archive_read_private.h ============================================================================== --- head/lib/libarchive/archive_read_private.h Mon Apr 27 17:39:41 2009 (r191571) +++ head/lib/libarchive/archive_read_private.h Mon Apr 27 17:42:02 2009 (r191572) @@ -189,6 +189,7 @@ const void *__archive_read_filter_ahead( ssize_t __archive_read_consume(struct archive_read *, size_t); ssize_t __archive_read_filter_consume(struct archive_read_filter *, size_t); int64_t __archive_read_skip(struct archive_read *, int64_t); +int64_t __archive_read_skip_lenient(struct archive_read *, int64_t); int64_t __archive_read_filter_skip(struct archive_read_filter *, int64_t); int __archive_read_program(struct archive_read_filter *, const char *); #endif From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 17:55:57 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 6AC02106566B; Mon, 27 Apr 2009 17:55:56 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: Alexander Motin Date: Mon, 27 Apr 2009 13:55:26 -0400 User-Agent: KMail/1.6.2 References: <200904271729.n3RHTpDQ021146@svn.freebsd.org> <49F5EDDD.80103@FreeBSD.org> In-Reply-To: <49F5EDDD.80103@FreeBSD.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200904271355.43947.jkim@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191568 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 17:55:57 -0000 On Monday 27 April 2009 01:39 pm, Alexander Motin wrote: > Jung-uk Kim wrote: > > Author: jkim > > Date: Mon Apr 27 17:29:51 2009 > > New Revision: 191568 > > URL: http://svn.freebsd.org/changeset/base/191568 > > > > Log: > > - Always force AHCI mode on a ATI/AMD SB600/700/800 SATA > > controller. These controllers may be configured as legacy IDE > > mode by modifying subclass and progif without actually changing > > PCI device IDs. Instead of complicating code, we always force > > AHCI mode while probing. Also we restore AHCI mode while > > resuming per ATI/AMD register programming/requirement guides. - > > Fix SB700/800 "combined" mode. Unlike SB600, this PATA > > controller can combine two SATA ports and emulate one PATA > > channel as primary or secondary depending on BIOS configuration. > > When the combined mode is disabled, this channel disappears and > > it works just like SB600 PATA controller, however. - Add more PCI > > device IDs for SB700/800 and adjust device descriptions. SB800 > > shares the same PCI device IDs and added two more SATA IDs. > > Thanks. Thank you for answering my stupid questions! BTW, ATI SATA phy reset/resume requires slightly different sequence from generic AHCI one but it just works (with little annoying timeout message). :-) Jung-uk Kim From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:10:42 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EFD1E106566B; Mon, 27 Apr 2009 18:10:42 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DCD408FC0A; Mon, 27 Apr 2009 18:10:42 +0000 (UTC) (envelope-from jkim@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 n3RIAgvG022135; Mon, 27 Apr 2009 18:10:42 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIAgoM022134; Mon, 27 Apr 2009 18:10:42 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904271810.n3RIAgoM022134@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 27 Apr 2009 18:10:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191573 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:10:43 -0000 Author: jkim Date: Mon Apr 27 18:10:42 2009 New Revision: 191573 URL: http://svn.freebsd.org/changeset/base/191573 Log: Reduce excessive pci_get_devid() and pci_get_revid() calls on the same PCI device while device probing. Modified: head/sys/dev/ata/ata-pci.c Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Mon Apr 27 17:42:02 2009 (r191572) +++ head/sys/dev/ata/ata-pci.c Mon Apr 27 18:10:42 2009 (r191573) @@ -759,13 +759,17 @@ ata_set_desc(device_t dev) struct ata_chip_id * ata_match_chip(device_t dev, struct ata_chip_id *index) { + uint32_t devid; + uint8_t revid; + + devid = pci_get_devid(dev); + revid = pci_get_revid(dev); while (index->chipid != 0) { - if (pci_get_devid(dev) == index->chipid && - pci_get_revid(dev) >= index->chiprev) - return index; + if (devid == index->chipid && revid >= index->chiprev) + return (index); index++; } - return NULL; + return (NULL); } struct ata_chip_id * From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:27:54 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF854106568C; Mon, 27 Apr 2009 18:27:54 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DADB78FC15; Mon, 27 Apr 2009 18:27:54 +0000 (UTC) (envelope-from kientzle@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 n3RIRsYB022581; Mon, 27 Apr 2009 18:27:54 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIRsGW022575; Mon, 27 Apr 2009 18:27:54 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271827.n3RIRsGW022575@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 18:27:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191576 - in head/lib/libarchive: . test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:27:56 -0000 Author: kientzle Date: Mon Apr 27 18:27:54 2009 New Revision: 191576 URL: http://svn.freebsd.org/changeset/base/191576 Log: Merge r1053,r1055,r1056,r1057,r1065 from libarchive.googlecode.com: * Fix parsing of POSIX.1e ACLs from Solaris tar archives * Test the above * Preserve the order of POSIX.1e ACL entries * Update tests whose results depended on the order of ACL entries * Identify NFSv4 ACLs in Solaris tar archives and warn that they're not yet supported. (In particular, don't try to parse them as POSIX.1e ACLs.) Thanks to: Edward Napierala sent me some Solaris 10 tar archives to test Added: head/lib/libarchive/test/test_compat_solaris_tar_acl.c (contents, props changed) head/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu (contents, props changed) Modified: head/lib/libarchive/archive_entry.c head/lib/libarchive/archive_read_support_format_tar.c head/lib/libarchive/test/Makefile head/lib/libarchive/test/test_acl_pax.c Modified: head/lib/libarchive/archive_entry.c ============================================================================== --- head/lib/libarchive/archive_entry.c Mon Apr 27 18:17:32 2009 (r191575) +++ head/lib/libarchive/archive_entry.c Mon Apr 27 18:27:54 2009 (r191576) @@ -115,6 +115,7 @@ static int acl_special(struct archive_en static struct ae_acl *acl_new_entry(struct archive_entry *entry, int type, int permset, int tag, int id); static int isint_w(const wchar_t *start, const wchar_t *end, int *result); +static int ismode_w(const wchar_t *start, const wchar_t *end, int *result); static void next_field_w(const wchar_t **wp, const wchar_t **start, const wchar_t **end, wchar_t *sep); static int prefix_w(const wchar_t *start, const wchar_t *end, @@ -1238,7 +1239,7 @@ static struct ae_acl * acl_new_entry(struct archive_entry *entry, int type, int permset, int tag, int id) { - struct ae_acl *ap; + struct ae_acl *ap, *aq; if (type != ARCHIVE_ENTRY_ACL_TYPE_ACCESS && type != ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) @@ -1251,20 +1252,26 @@ acl_new_entry(struct archive_entry *entr /* XXX TODO: More sanity-checks on the arguments XXX */ /* If there's a matching entry already in the list, overwrite it. */ - for (ap = entry->acl_head; ap != NULL; ap = ap->next) { + ap = entry->acl_head; + aq = NULL; + while (ap != NULL) { if (ap->type == type && ap->tag == tag && ap->id == id) { ap->permset = permset; return (ap); } + aq = ap; + ap = ap->next; } - /* Add a new entry to the list. */ + /* Add a new entry to the end of the list. */ ap = (struct ae_acl *)malloc(sizeof(*ap)); if (ap == NULL) return (NULL); memset(ap, 0, sizeof(*ap)); - ap->next = entry->acl_head; - entry->acl_head = ap; + if (aq == NULL) + entry->acl_head = ap; + else + aq->next = ap; ap->type = type; ap->tag = tag; ap->id = id; @@ -1586,11 +1593,10 @@ __archive_entry_acl_parse_w(struct archi struct { const wchar_t *start; const wchar_t *end; - } field[4]; + } field[4], name; int fields; int type, tag, permset, id; - const wchar_t *p; wchar_t sep; while (text != NULL && *text != L'\0') { @@ -1609,9 +1615,6 @@ __archive_entry_acl_parse_w(struct archi ++fields; } while (sep == L':'); - if (fields < 3) - return (ARCHIVE_WARN); - /* Check for a numeric ID in field 1 or 3. */ id = -1; isint_w(field[1].start, field[1].end, &id); @@ -1619,27 +1622,6 @@ __archive_entry_acl_parse_w(struct archi if (id == -1 && fields > 3) isint_w(field[3].start, field[3].end, &id); - /* Parse the permissions from field 2. */ - permset = 0; - p = field[2].start; - while (p < field[2].end) { - switch (*p++) { - case 'r': case 'R': - permset |= ARCHIVE_ENTRY_ACL_READ; - break; - case 'w': case 'W': - permset |= ARCHIVE_ENTRY_ACL_WRITE; - break; - case 'x': case 'X': - permset |= ARCHIVE_ENTRY_ACL_EXECUTE; - break; - case '-': - break; - default: - return (ARCHIVE_WARN); - } - } - /* * Solaris extension: "defaultuser::rwx" is the * default ACL corresponding to "user::rwx", etc. @@ -1651,22 +1633,47 @@ __archive_entry_acl_parse_w(struct archi } else type = default_type; + name.start = name.end = NULL; if (prefix_w(field[0].start, field[0].end, L"user")) { - if (id != -1 || field[1].start < field[1].end) + if (!ismode_w(field[2].start, field[2].end, &permset)) + return (ARCHIVE_WARN); + if (id != -1 || field[1].start < field[1].end) { tag = ARCHIVE_ENTRY_ACL_USER; - else + name = field[1]; + } else tag = ARCHIVE_ENTRY_ACL_USER_OBJ; } else if (prefix_w(field[0].start, field[0].end, L"group")) { - if (id != -1 || field[1].start < field[1].end) + if (!ismode_w(field[2].start, field[2].end, &permset)) + return (ARCHIVE_WARN); + if (id != -1 || field[1].start < field[1].end) { tag = ARCHIVE_ENTRY_ACL_GROUP; - else + name = field[1]; + } else tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; } else if (prefix_w(field[0].start, field[0].end, L"other")) { - if (id != -1 || field[1].start < field[1].end) + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[2].end, &permset)) { + /* This is Solaris-style "other:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, &permset)) { + /* This is FreeBSD-style "other::rwx" */ + } else return (ARCHIVE_WARN); tag = ARCHIVE_ENTRY_ACL_OTHER; } else if (prefix_w(field[0].start, field[0].end, L"mask")) { - if (id != -1 || field[1].start < field[1].end) + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[1].end, &permset)) { + /* This is Solaris-style "mask:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, &permset)) { + /* This is FreeBSD-style "mask::rwx" */ + } else return (ARCHIVE_WARN); tag = ARCHIVE_ENTRY_ACL_MASK; } else @@ -1674,7 +1681,7 @@ __archive_entry_acl_parse_w(struct archi /* Add entry to the internal list. */ archive_entry_acl_add_entry_w_len(entry, type, permset, - tag, id, field[1].start, field[1].end - field[1].start); + tag, id, name.start, name.end - name.start); } return (ARCHIVE_OK); } @@ -1798,6 +1805,38 @@ isint_w(const wchar_t *start, const wcha } /* + * Parse a string as a mode field. Returns true if + * the string is non-empty and consists only of mode characters, + * false otherwise. + */ +static int +ismode_w(const wchar_t *start, const wchar_t *end, int *permset) +{ + const wchar_t *p; + + p = start; + *permset = 0; + while (p < end) { + switch (*p++) { + case 'r': case 'R': + *permset |= ARCHIVE_ENTRY_ACL_READ; + break; + case 'w': case 'W': + *permset |= ARCHIVE_ENTRY_ACL_WRITE; + break; + case 'x': case 'X': + *permset |= ARCHIVE_ENTRY_ACL_EXECUTE; + break; + case '-': + break; + default: + return (0); + } + } + return (1); +} + +/* * Match "[:whitespace:]*(.*)[:whitespace:]*[:,\n]". *wp is updated * to point to just after the separator. *start points to the first * character of the matched text and *end just after the last Modified: head/lib/libarchive/archive_read_support_format_tar.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_tar.c Mon Apr 27 18:17:32 2009 (r191575) +++ head/lib/libarchive/archive_read_support_format_tar.c Mon Apr 27 18:27:54 2009 (r191576) @@ -732,6 +732,7 @@ header_Solaris_ACL(struct archive_read * const struct archive_entry_header_ustar *header; size_t size; int err; + int64_t type; char *acl, *p; wchar_t *wp; @@ -744,24 +745,57 @@ header_Solaris_ACL(struct archive_read * err = read_body_to_string(a, tar, &(tar->acl_text), h); if (err != ARCHIVE_OK) return (err); + /* Recursively read next header */ err = tar_read_header(a, tar, entry); if ((err != ARCHIVE_OK) && (err != ARCHIVE_WARN)) return (err); - /* Skip leading octal number. */ - /* XXX TODO: Parse the octal number and sanity-check it. */ + /* TODO: Examine the first characters to see if this + * is an AIX ACL descriptor. We'll likely never support + * them, but it would be polite to recognize and warn when + * we do see them. */ + + /* Leading octal number indicates ACL type and number of entries. */ p = acl = tar->acl_text.s; - while (*p != '\0' && p < acl + size) + type = 0; + while (*p != '\0' && p < acl + size) { + if (*p < '0' || *p > '7') { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Malformed Solaris ACL attribute (invalid digit)"); + return(ARCHIVE_WARN); + } + type <<= 3; + type += *p - '0'; + if (type > 077777777) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Malformed Solaris ACL attribute (count too large)"); + return (ARCHIVE_WARN); + } p++; + } + switch (type & ~0777777) { + case 01000000: + /* POSIX.1e ACL */ + break; + case 03000000: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Solaris NFSv4 ACLs not supported"); + return (ARCHIVE_WARN); + default: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Malformed Solaris ACL attribute (unsupported type %o)", + (int)type); + return (ARCHIVE_WARN); + } p++; if (p >= acl + size) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "Malformed Solaris ACL attribute"); + "Malformed Solaris ACL attribute (body overflow)"); return(ARCHIVE_WARN); } - /* Skip leading octal number. */ + /* ACL text is null-terminated; find the end. */ size -= (p - acl); acl = p; @@ -771,6 +805,9 @@ header_Solaris_ACL(struct archive_read * wp = utf8_decode(tar, acl, p - acl); err = __archive_entry_acl_parse_w(entry, wp, ARCHIVE_ENTRY_ACL_TYPE_ACCESS); + if (err != ARCHIVE_OK) + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Malformed Solaris ACL attribute (unparsable)"); return (err); } Modified: head/lib/libarchive/test/Makefile ============================================================================== --- head/lib/libarchive/test/Makefile Mon Apr 27 18:17:32 2009 (r191575) +++ head/lib/libarchive/test/Makefile Mon Apr 27 18:27:54 2009 (r191576) @@ -16,6 +16,7 @@ TESTS= \ test_compat_bzip2.c \ test_compat_gtar.c \ test_compat_gzip.c \ + test_compat_solaris_tar_acl.c \ test_compat_tar_hardlink.c \ test_compat_xz.c \ test_compat_zip.c \ Modified: head/lib/libarchive/test/test_acl_pax.c ============================================================================== --- head/lib/libarchive/test/test_acl_pax.c Mon Apr 27 18:17:32 2009 (r191575) +++ head/lib/libarchive/test/test_acl_pax.c Mon Apr 27 18:27:54 2009 (r191576) @@ -151,10 +151,10 @@ static unsigned char reference[] = { 0,0,0,0,0,0,0,0,0,0,'1','1','3',' ','S','C','H','I','L','Y','.','a','c','l', '.','a','c','c','e','s','s','=','u','s','e','r',':',':','r','-','x',',','g', 'r','o','u','p',':',':','r','-','-',',','o','t','h','e','r',':',':','-','w', -'x',',','g','r','o','u','p',':','g','r','o','u','p','7','8',':','r','w','x', -':','7','8',',','u','s','e','r',':','u','s','e','r','7','8',':','-','-','-', -':','7','8',',','u','s','e','r',':','u','s','e','r','7','7',':','r','-','-', -':','7','7',10,'1','6',' ','S','C','H','I','L','Y','.','d','e','v','=','0', +'x',',','u','s','e','r',':','u','s','e','r','7','7',':','r','-','-',':','7', +'7',',','u','s','e','r',':','u','s','e','r','7','8',':','-','-','-',':','7', +'8',',','g','r','o','u','p',':','g','r','o','u','p','7','8',':','r','w','x', +':','7','8',10,'1','6',' ','S','C','H','I','L','Y','.','d','e','v','=','0', 10,'1','6',' ','S','C','H','I','L','Y','.','i','n','o','=','0',10,'1','8', ' ','S','C','H','I','L','Y','.','n','l','i','n','k','=','0',10,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -464,7 +464,7 @@ DEFINE_TEST(test_acl_pax) /* Assert that the generated data matches the built-in reference data.*/ failure("Generated pax archive does not match reference; check 'testout' and 'reference' files."); - assert(0 == memcmp(buff, reference, sizeof(reference))); + assertEqualMem(buff, reference, sizeof(reference)); failure("Generated pax archive does not match reference; check 'testout' and 'reference' files."); assertEqualInt((int)used, sizeof(reference)); Added: head/lib/libarchive/test/test_compat_solaris_tar_acl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_compat_solaris_tar_acl.c Mon Apr 27 18:27:54 2009 (r191576) @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2003-2009 Tim Kientzle + * 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(S) ``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(S) 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 "test.h" +__FBSDID("$FreeBSD$"); + +/* + * Exercise support for reading Solaris-style ACL data + * from tar archives. + * + * This should work on all systems, regardless of whether local + * filesystems support ACLs or not. + */ + +DEFINE_TEST(test_compat_solaris_tar_acl) +{ + struct archive *a; + struct archive_entry *ae; + const char *reference1 = "test_compat_solaris_tar_acl.tar"; + int type, permset, tag, qual; + const char *name; + + /* Sample file generated on Solaris 10 */ + extract_reference_file(reference1); + assert(NULL != (a = archive_read_new())); + assertA(0 == archive_read_support_format_all(a)); + assertA(0 == archive_read_support_compression_all(a)); + assertA(0 == archive_read_open_filename(a, reference1, 512)); + + /* Archive has 1 entry with some ACLs set on it. */ + assertA(0 == archive_read_next_header(a, &ae)); + failure("Basic ACLs should set mode to 0640, not %04o", + archive_entry_mode(ae)&0777); + assertEqualInt((archive_entry_mode(ae) & 0777), 0640); + assertEqualInt(7, archive_entry_acl_reset(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS)); + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(006, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_USER_OBJ, tag); + assertEqualInt(-1, qual); + assert(name == NULL); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(004, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_GROUP_OBJ, tag); + assertEqualInt(-1, qual); + assert(name == NULL); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(000, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_OTHER, tag); + assertEqualInt(-1, qual); + assert(name == NULL); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(001, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_USER, tag); + assertEqualInt(71, qual); + assertEqualString(name, "lp"); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(004, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_USER, tag); + assertEqualInt(666, qual); + assertEqualString(name, "666"); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(007, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_USER, tag); + assertEqualInt(1000, qual); + assertEqualString(name, "trasz"); + + assertEqualInt(ARCHIVE_OK, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + assertEqualInt(ARCHIVE_ENTRY_ACL_TYPE_ACCESS, type); + assertEqualInt(004, permset); + assertEqualInt(ARCHIVE_ENTRY_ACL_MASK, tag); + assertEqualInt(-1, qual); + assertEqualString(name, NULL); + + assertEqualInt(ARCHIVE_EOF, archive_entry_acl_next(ae, + ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + &type, &permset, &tag, &qual, &name)); + + /* Close the archive. */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); +} Added: head/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu Mon Apr 27 18:27:54 2009 (r191576) @@ -0,0 +1,61 @@ +$FreeBSD$ +begin 644 test_acl_solaris.tar +M9FEL92UW:71H+7!O#HW,2QU#HQ,#`P+&=R;W5P.CIR+2TL;6%S:SIR+69I;&4M=VET:"UP +M;W-I>"UA8VQS```````````````````````````````````````````````` +M```````````````````````````````````````````````````````````P +M,#`P-C0T`#`P,#$W-3``,#`P,#`P,``P,#`P,#`P,#`P,``Q,3$W-#8P-#$U +M-P`P,#$U,30T`#`````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````=7-T87(`,#!T@`````````````` +M`````````````````````')O;W0````````````````````````````````` +M````,#`P,#(Q,``P,#`P,#$P```````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +H```````````````````````````````````````````````````````` +` +end From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:33:05 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3DD20106566B; Mon, 27 Apr 2009 18:33:05 +0000 (UTC) (envelope-from andreast-list@fgznet.ch) Received: from smtp.fgznet.ch (mail.fgznet.ch [81.92.96.47]) by mx1.freebsd.org (Postfix) with ESMTP id CA2488FC13; Mon, 27 Apr 2009 18:33:04 +0000 (UTC) (envelope-from andreast-list@fgznet.ch) Received: from wolfram.andreas.nets ([91.190.8.131]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id n3RIX15b060037; Mon, 27 Apr 2009 20:33:02 +0200 (CEST) (envelope-from andreast-list@fgznet.ch) Message-ID: <49F5FA5D.8060905@fgznet.ch> Date: Mon, 27 Apr 2009 20:33:01 +0200 From: Andreas Tobler User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: Jack F Vogel References: <200904271722.n3RHMF53020951@svn.freebsd.org> In-Reply-To: <200904271722.n3RHMF53020951@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.64 on 81.92.96.47 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191566 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:33:05 -0000 Jack F Vogel wrote: > Author: jfv > Date: Mon Apr 27 17:22:14 2009 > New Revision: 191566 > URL: http://svn.freebsd.org/changeset/base/191566 > > Log: > Thanks for Michael Tuexen for tracking down a path where > the watchdog timer was not being rearmed in txeof, and also > a missing case in the new code. > > MFC after: 2 weeks > > Modified: > head/sys/dev/e1000/if_em.c > > Modified: head/sys/dev/e1000/if_em.c > ============================================================================== > --- head/sys/dev/e1000/if_em.c Mon Apr 27 16:57:19 2009 (r191565) > +++ head/sys/dev/e1000/if_em.c Mon Apr 27 17:22:14 2009 (r191566) > @@ -1013,12 +1013,15 @@ em_transmit_locked(struct ifnet *ifp, st > if (ADAPTER_RING_EMPTY(adapter) && > (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) { > if (em_xmit(adapter, &m)) { > - if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) { > + if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) > return (error); > - } > - } else{ > - /* Send a copy of the frame to the BPF listener */ > + } else { > + /* > + ** Send a copy of the frame to the BPF > + ** listener and set the watchdog on. > + */ > ETHER_BPF_MTAP(ifp, m); > + addapter->watchdog_timer = EM_TX_TIMEOUT; [deuterium_fbsd:sys/dev/e1000] andreast% svn diff if_em.c Index: if_em.c =================================================================== --- if_em.c (revision 191575) +++ if_em.c (working copy) @@ -1021,7 +1021,7 @@ ** listener and set the watchdog on. */ ETHER_BPF_MTAP(ifp, m); - addapter->watchdog_timer = EM_TX_TIMEOUT; + adapter->watchdog_timer = EM_TX_TIMEOUT; } } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0) return (error); Should fix the build. Andreas From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:33:08 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD27B106564A; Mon, 27 Apr 2009 18:33:08 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B00228FC15; Mon, 27 Apr 2009 18:33:08 +0000 (UTC) (envelope-from kientzle@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 n3RIX80Y022765; Mon, 27 Apr 2009 18:33:08 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIX8MA022761; Mon, 27 Apr 2009 18:33:08 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271833.n3RIX8MA022761@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 18:33:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191578 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:33:09 -0000 Author: kientzle Date: Mon Apr 27 18:33:08 2009 New Revision: 191578 URL: http://svn.freebsd.org/changeset/base/191578 Log: Merge r1052,r1055 from libarchive.googlecode.com: Clear the error flag on entry to a few more API functions. Modified: head/lib/libarchive/archive_read_open_fd.c head/lib/libarchive/archive_read_open_file.c head/lib/libarchive/archive_read_open_filename.c head/lib/libarchive/archive_read_support_compression_xz.c Modified: head/lib/libarchive/archive_read_open_fd.c ============================================================================== --- head/lib/libarchive/archive_read_open_fd.c Mon Apr 27 18:29:59 2009 (r191577) +++ head/lib/libarchive/archive_read_open_fd.c Mon Apr 27 18:33:08 2009 (r191578) @@ -66,6 +66,7 @@ archive_read_open_fd(struct archive *a, struct read_fd_data *mine; void *b; + archive_clear_error(a); if (fstat(fd, &st) != 0) { archive_set_error(a, errno, "Can't stat fd %d", fd); return (ARCHIVE_FATAL); Modified: head/lib/libarchive/archive_read_open_file.c ============================================================================== --- head/lib/libarchive/archive_read_open_file.c Mon Apr 27 18:29:59 2009 (r191577) +++ head/lib/libarchive/archive_read_open_file.c Mon Apr 27 18:33:08 2009 (r191578) @@ -70,6 +70,7 @@ archive_read_open_FILE(struct archive *a size_t block_size = 128 * 1024; void *b; + archive_clear_error(a); mine = (struct read_FILE_data *)malloc(sizeof(*mine)); b = malloc(block_size); if (mine == NULL || b == NULL) { Modified: head/lib/libarchive/archive_read_open_filename.c ============================================================================== --- head/lib/libarchive/archive_read_open_filename.c Mon Apr 27 18:29:59 2009 (r191577) +++ head/lib/libarchive/archive_read_open_filename.c Mon Apr 27 18:33:08 2009 (r191578) @@ -84,6 +84,7 @@ archive_read_open_filename(struct archiv void *b; int fd; + archive_clear_error(a); if (filename == NULL || filename[0] == '\0') return (archive_read_open_fd(a, 0, block_size)); Modified: head/lib/libarchive/archive_read_support_compression_xz.c ============================================================================== --- head/lib/libarchive/archive_read_support_compression_xz.c Mon Apr 27 18:29:59 2009 (r191577) +++ head/lib/libarchive/archive_read_support_compression_xz.c Mon Apr 27 18:33:08 2009 (r191578) @@ -100,6 +100,7 @@ archive_read_support_compression_xz(stru struct archive_read *a = (struct archive_read *)_a; struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a); + archive_clear_error(_a); if (bidder == NULL) return (ARCHIVE_FATAL); @@ -123,6 +124,7 @@ archive_read_support_compression_lzma(st struct archive_read *a = (struct archive_read *)_a; struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a); + archive_clear_error(_a); if (bidder == NULL) return (ARCHIVE_FATAL); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:35:03 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E361106566B; Mon, 27 Apr 2009 18:35:03 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60E668FC12; Mon, 27 Apr 2009 18:35:03 +0000 (UTC) (envelope-from kientzle@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 n3RIZ34g022848; Mon, 27 Apr 2009 18:35:03 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIZ3JF022846; Mon, 27 Apr 2009 18:35:03 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271835.n3RIZ3JF022846@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 18:35:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191579 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:35:04 -0000 Author: kientzle Date: Mon Apr 27 18:35:03 2009 New Revision: 191579 URL: http://svn.freebsd.org/changeset/base/191579 Log: Merge r1021 from libarchive.googlecode.com: If we know it's a socket, say so. Modified: head/lib/libarchive/archive_write_set_format_pax.c head/lib/libarchive/archive_write_set_format_ustar.c Modified: head/lib/libarchive/archive_write_set_format_pax.c ============================================================================== --- head/lib/libarchive/archive_write_set_format_pax.c Mon Apr 27 18:33:08 2009 (r191578) +++ head/lib/libarchive/archive_write_set_format_pax.c Mon Apr 27 18:35:03 2009 (r191579) @@ -452,8 +452,14 @@ archive_write_pax_header(struct archive_ free(t); } break; + case AE_IFSOCK: + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "tar format cannot archive socket"); + return (ARCHIVE_WARN); default: - archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, "tar format cannot archive this (type=0%lo)", (unsigned long)archive_entry_filetype(entry_original)); return (ARCHIVE_WARN); Modified: head/lib/libarchive/archive_write_set_format_ustar.c ============================================================================== --- head/lib/libarchive/archive_write_set_format_ustar.c Mon Apr 27 18:33:08 2009 (r191578) +++ head/lib/libarchive/archive_write_set_format_ustar.c Mon Apr 27 18:35:03 2009 (r191579) @@ -414,8 +414,14 @@ __archive_write_format_header_ustar(stru case AE_IFBLK: h[USTAR_typeflag_offset] = '4' ; break; case AE_IFDIR: h[USTAR_typeflag_offset] = '5' ; break; case AE_IFIFO: h[USTAR_typeflag_offset] = '6' ; break; + case AE_IFSOCK: + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, + "tar format cannot archive socket"); + return (ARCHIVE_FAILED); default: - archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + archive_set_error(&a->archive, + ARCHIVE_ERRNO_FILE_FORMAT, "tar format cannot archive this (mode=0%lo)", (unsigned long)archive_entry_mode(entry)); ret = ARCHIVE_FAILED; From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:35:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEC511065679; Mon, 27 Apr 2009 18:35:06 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BCB268FC26; Mon, 27 Apr 2009 18:35:06 +0000 (UTC) (envelope-from jfv@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 n3RIZ6Cb022884; Mon, 27 Apr 2009 18:35:06 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIZ63X022883; Mon, 27 Apr 2009 18:35:06 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <200904271835.n3RIZ63X022883@svn.freebsd.org> From: Jack F Vogel Date: Mon, 27 Apr 2009 18:35:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191580 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:35:07 -0000 Author: jfv Date: Mon Apr 27 18:35:06 2009 New Revision: 191580 URL: http://svn.freebsd.org/changeset/base/191580 Log: Correct fat finger mistake Modified: head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Apr 27 18:35:03 2009 (r191579) +++ head/sys/dev/e1000/if_em.c Mon Apr 27 18:35:06 2009 (r191580) @@ -1021,7 +1021,7 @@ em_transmit_locked(struct ifnet *ifp, st ** listener and set the watchdog on. */ ETHER_BPF_MTAP(ifp, m); - addapter->watchdog_timer = EM_TX_TIMEOUT; + adapter->watchdog_timer = EM_TX_TIMEOUT; } } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0) return (error); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:35:40 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31DEF1065865; Mon, 27 Apr 2009 18:35:40 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from mail-qy0-f105.google.com (mail-qy0-f105.google.com [209.85.221.105]) by mx1.freebsd.org (Postfix) with ESMTP id 760AE8FC13; Mon, 27 Apr 2009 18:35:39 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by qyk3 with SMTP id 3so180571qyk.3 for ; Mon, 27 Apr 2009 11:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=7WCYrHJAZFao1G4HTpxeewGKw8XRTy2oC16kB1DpQRE=; b=phW+Fnsz/jWwlrreU66rpnik/1m5zuLGH14uQagCSaUsxIhAOJUQWwTrHJKZqdEAPy kBwnaJlyjwthPzI46s+pR+rzc/4xQtr7cobZpB6/G0xyQGaXvJ0ZBZb0fYpFSX4GXQws oYOHz17JC/ErvlQI/N4RnSZy/vzoJdY7p2imI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=qY7gQp1/PQkGdRkwX+fsQNiaJsViff6MdAZ9unJ4uP2bkPAtK0ruAxa2aNdMmPuIHA lVcIfn1JNhvjN8gWPcLvVsPOxDcKW7k2jhLGjL0oxbVN6ipMDypwXCBYjGjzgw1bJXn/ Hb4MKqOAMBQppEvVEMzQ7c0tF7badHqH6TKK4= MIME-Version: 1.0 Received: by 10.224.37.19 with SMTP id v19mr6433910qad.70.1240857338406; Mon, 27 Apr 2009 11:35:38 -0700 (PDT) In-Reply-To: <49F5FA5D.8060905@fgznet.ch> References: <200904271722.n3RHMF53020951@svn.freebsd.org> <49F5FA5D.8060905@fgznet.ch> Date: Mon, 27 Apr 2009 11:35:38 -0700 Message-ID: <2a41acea0904271135m2d5f1e6av5fc2b0b7e86d10ea@mail.gmail.com> From: Jack Vogel To: Andreas Tobler Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Jack F Vogel , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191566 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:35:41 -0000 DUH, thanks for catching it quickly, the build breaking would have sooner or later though :) Jack On Mon, Apr 27, 2009 at 11:33 AM, Andreas Tobler wrote: > Jack F Vogel wrote: > >> Author: jfv >> Date: Mon Apr 27 17:22:14 2009 >> New Revision: 191566 >> URL: http://svn.freebsd.org/changeset/base/191566 >> >> Log: >> Thanks for Michael Tuexen for tracking down a path where >> the watchdog timer was not being rearmed in txeof, and also >> a missing case in the new code. >> MFC after: 2 weeks >> >> Modified: >> head/sys/dev/e1000/if_em.c >> >> Modified: head/sys/dev/e1000/if_em.c >> >> ============================================================================== >> --- head/sys/dev/e1000/if_em.c Mon Apr 27 16:57:19 2009 (r191565) >> +++ head/sys/dev/e1000/if_em.c Mon Apr 27 17:22:14 2009 (r191566) >> @@ -1013,12 +1013,15 @@ em_transmit_locked(struct ifnet *ifp, st >> if (ADAPTER_RING_EMPTY(adapter) && >> (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) { >> if (em_xmit(adapter, &m)) { >> - if (m && (error = drbr_enqueue(ifp, adapter->br, >> m)) != 0) { >> + if (m && (error = drbr_enqueue(ifp, adapter->br, >> m)) != 0) >> return (error); >> - } >> - } else{ >> - /* Send a copy of the frame to the BPF listener */ >> + } else { >> + /* >> + ** Send a copy of the frame to the BPF >> + ** listener and set the watchdog on. >> + */ >> ETHER_BPF_MTAP(ifp, m); >> + addapter->watchdog_timer = EM_TX_TIMEOUT; >> > > [deuterium_fbsd:sys/dev/e1000] andreast% svn diff if_em.c > Index: if_em.c > =================================================================== > --- if_em.c (revision 191575) > +++ if_em.c (working copy) > @@ -1021,7 +1021,7 @@ > ** listener and set the watchdog on. > */ > ETHER_BPF_MTAP(ifp, m); > - addapter->watchdog_timer = EM_TX_TIMEOUT; > + adapter->watchdog_timer = EM_TX_TIMEOUT; > } > } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0) > return (error); > > > Should fix the build. > > Andreas > > From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:38:55 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7186910656D2; Mon, 27 Apr 2009 18:38:55 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 2DD848FC1C; Mon, 27 Apr 2009 18:38:53 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 241397294; Mon, 27 Apr 2009 21:38:53 +0300 Message-ID: <49F5FBB8.4060607@FreeBSD.org> Date: Mon, 27 Apr 2009 21:38:48 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: Jung-uk Kim References: <200904271729.n3RHTpDQ021146@svn.freebsd.org> <49F5EDDD.80103@FreeBSD.org> <200904271355.43947.jkim@FreeBSD.org> In-Reply-To: <200904271355.43947.jkim@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191568 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:38:56 -0000 Jung-uk Kim wrote: > On Monday 27 April 2009 01:39 pm, Alexander Motin wrote: >> Jung-uk Kim wrote: >>> Author: jkim >>> Date: Mon Apr 27 17:29:51 2009 >>> New Revision: 191568 >>> URL: http://svn.freebsd.org/changeset/base/191568 >>> >>> Log: >>> - Always force AHCI mode on a ATI/AMD SB600/700/800 SATA >>> controller. These controllers may be configured as legacy IDE >>> mode by modifying subclass and progif without actually changing >>> PCI device IDs. Instead of complicating code, we always force >>> AHCI mode while probing. Also we restore AHCI mode while >>> resuming per ATI/AMD register programming/requirement guides. - >>> Fix SB700/800 "combined" mode. Unlike SB600, this PATA >>> controller can combine two SATA ports and emulate one PATA >>> channel as primary or secondary depending on BIOS configuration. >>> When the combined mode is disabled, this channel disappears and >>> it works just like SB600 PATA controller, however. - Add more PCI >>> device IDs for SB700/800 and adjust device descriptions. SB800 >>> shares the same PCI device IDs and added two more SATA IDs. >> Thanks. > > Thank you for answering my stupid questions! > > BTW, ATI SATA phy reset/resume requires slightly different sequence > from generic AHCI one but it just works (with little annoying timeout > message). :-) If you are talking about port 15 soft-reset timeout when port multiplier is absent, then this is known ATI controllers bug/feature. I have even added some comments in ata-ahci.c about it, but as soon as it is nonstandard and I have no respective hardware, I have left it for later. -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:39:56 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 038BA10656A6; Mon, 27 Apr 2009 18:39:56 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DBC788FC20; Mon, 27 Apr 2009 18:39:55 +0000 (UTC) (envelope-from kientzle@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 n3RIdt60023008; Mon, 27 Apr 2009 18:39:55 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RIdtng023006; Mon, 27 Apr 2009 18:39:55 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271839.n3RIdtng023006@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 18:39:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191581 - head/lib/libarchive/test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:39:56 -0000 Author: kientzle Date: Mon Apr 27 18:39:55 2009 New Revision: 191581 URL: http://svn.freebsd.org/changeset/base/191581 Log: Merge r1054,r1060 from libarchive.googlecode.com: * assertEqualMem() now takes void * arguments * Be a little smarter about what we hexdump when assertEqualMem() fails Modified: head/lib/libarchive/test/main.c head/lib/libarchive/test/test.h Modified: head/lib/libarchive/test/main.c ============================================================================== --- head/lib/libarchive/test/main.c Mon Apr 27 18:35:06 2009 (r191580) +++ head/lib/libarchive/test/main.c Mon Apr 27 18:39:55 2009 (r191581) @@ -463,13 +463,16 @@ hexdump(const char *p, const char *ref, } /* assertEqualMem() displays the values of the two memory blocks. */ -/* TODO: For long blocks, hexdump the first bytes that actually differ. */ int test_assert_equal_mem(const char *file, int line, - const char *v1, const char *e1, - const char *v2, const char *e2, + const void *_v1, const char *e1, + const void *_v2, const char *e2, size_t l, const char *ld, void *extra) { + const char *v1 = (const char *)_v1; + const char *v2 = (const char *)_v2; + size_t offset; + count_assertion(file, line); if (v1 == NULL || v2 == NULL) { if (v1 == v2) { @@ -486,10 +489,20 @@ test_assert_equal_mem(const char *file, fprintf(stderr, "%s:%d: Assertion failed: memory not equal\n", file, line); fprintf(stderr, " size %s = %d\n", ld, (int)l); + /* Dump 48 bytes (3 lines) so that the first difference is + * in the second line. */ + offset = 0; + while (l > 64 && memcmp(v1, v2, 32) == 0) { + /* The first two lines agree, so step forward one line. */ + v1 += 16; + v2 += 16; + l -= 16; + offset += 16; + } fprintf(stderr, " Dump of %s\n", e1); - hexdump(v1, v2, l < 32 ? l : 32, 0); + hexdump(v1, v2, l < 64 ? l : 64, offset); fprintf(stderr, " Dump of %s\n", e2); - hexdump(v2, v1, l < 32 ? l : 32, 0); + hexdump(v2, v1, l < 64 ? l : 64, offset); fprintf(stderr, "\n"); report_failure(extra); return (0); Modified: head/lib/libarchive/test/test.h ============================================================================== --- head/lib/libarchive/test/test.h Mon Apr 27 18:35:06 2009 (r191580) +++ head/lib/libarchive/test/test.h Mon Apr 27 18:39:55 2009 (r191581) @@ -147,7 +147,7 @@ int test_assert_equal_file(const char *, int test_assert_equal_int(const char *, int, int, const char *, int, const char *, void *); int test_assert_equal_string(const char *, int, const char *v1, const char *, const char *v2, const char *, void *); int test_assert_equal_wstring(const char *, int, const wchar_t *v1, const char *, const wchar_t *v2, const char *, void *); -int test_assert_equal_mem(const char *, int, const char *, const char *, const char *, const char *, size_t, const char *, void *); +int test_assert_equal_mem(const char *, int, const void *, const char *, const void *, const char *, size_t, const char *, void *); int test_assert_file_contents(const void *, int, const char *, ...); int test_assert_file_exists(const char *, ...); int test_assert_file_not_exists(const char *, ...); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 18:55:23 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C71110656F2; Mon, 27 Apr 2009 18:55:23 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1F2008FC0A; Mon, 27 Apr 2009 18:55:23 +0000 (UTC) (envelope-from kientzle@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 n3RItNRA023515; Mon, 27 Apr 2009 18:55:23 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RItMMo023513; Mon, 27 Apr 2009 18:55:22 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271855.n3RItMMo023513@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 18:55:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191584 - head/lib/libarchive/test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 18:55:24 -0000 Author: kientzle Date: Mon Apr 27 18:55:22 2009 New Revision: 191584 URL: http://svn.freebsd.org/changeset/base/191584 Log: Merge r1032 from libarchive.googlecode.com: Make test_fuzz a bit more sensitive by actually reading the body of each entry instead of skipping it. While I'm here, move the "UnsupportedCompress" macro into the only file that still uses it. Modified: head/lib/libarchive/test/test.h head/lib/libarchive/test/test_fuzz.c Modified: head/lib/libarchive/test/test.h ============================================================================== --- head/lib/libarchive/test/test.h Mon Apr 27 18:46:57 2009 (r191583) +++ head/lib/libarchive/test/test.h Mon Apr 27 18:55:22 2009 (r191584) @@ -194,14 +194,3 @@ int read_open_memory2(struct archive *, test_assert_equal_int(__FILE__, __LINE__, (v1), #v1, (v2), #v2, (a)) #define assertEqualStringA(a,v1,v2) \ test_assert_equal_string(__FILE__, __LINE__, (v1), #v1, (v2), #v2, (a)) - -/* - * A compression is not supported - * Use this define after archive_read_next_header() is called - */ -#define UnsupportedCompress(r, a) \ - (r != ARCHIVE_OK && \ - (strcmp(archive_error_string(a), \ - "Unrecognized archive format") == 0 && \ - archive_compression(a) == ARCHIVE_COMPRESSION_NONE)) - Modified: head/lib/libarchive/test/test_fuzz.c ============================================================================== --- head/lib/libarchive/test/test_fuzz.c Mon Apr 27 18:46:57 2009 (r191583) +++ head/lib/libarchive/test/test_fuzz.c Mon Apr 27 18:55:22 2009 (r191584) @@ -61,9 +61,18 @@ files[] = { NULL }; +#define UnsupportedCompress(r, a) \ + (r != ARCHIVE_OK && \ + (strcmp(archive_error_string(a), \ + "Unrecognized archive format") == 0 && \ + archive_compression(a) == ARCHIVE_COMPRESSION_NONE)) + DEFINE_TEST(test_fuzz) { const char **filep; + const void *blk; + size_t blk_size; + off_t blk_offset; for (filep = files; *filep != NULL; ++filep) { struct archive_entry *ae; @@ -105,6 +114,10 @@ DEFINE_TEST(test_fuzz) assert(0 == archive_read_finish(a)); continue; } + while (0 == archive_read_data_block(a, &blk, + &blk_size, &blk_offset)) + continue; + } assert(0 == archive_read_close(a)); assert(0 == archive_read_finish(a)); @@ -134,7 +147,9 @@ DEFINE_TEST(test_fuzz) if (0 == archive_read_open_memory(a, image, size)) { while(0 == archive_read_next_header(a, &ae)) { - archive_read_data_skip(a); + while (0 == archive_read_data_block(a, + &blk, &blk_size, &blk_offset)) + continue; } archive_read_close(a); archive_read_finish(a); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:14:43 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1F00106568C; Mon, 27 Apr 2009 19:14:43 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF7118FC0A; Mon, 27 Apr 2009 19:14:43 +0000 (UTC) (envelope-from kientzle@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 n3RJEhAr024042; Mon, 27 Apr 2009 19:14:43 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJEhBn024041; Mon, 27 Apr 2009 19:14:43 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271914.n3RJEhBn024041@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 19:14:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191586 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:14:44 -0000 Author: kientzle Date: Mon Apr 27 19:14:43 2009 New Revision: 191586 URL: http://svn.freebsd.org/changeset/base/191586 Log: ino_t varies across platforms; casting (int) here avoids various pointless complaints. Modified: head/lib/libarchive/archive_write_set_format_cpio.c Modified: head/lib/libarchive/archive_write_set_format_cpio.c ============================================================================== --- head/lib/libarchive/archive_write_set_format_cpio.c Mon Apr 27 18:59:40 2009 (r191585) +++ head/lib/libarchive/archive_write_set_format_cpio.c Mon Apr 27 19:14:43 2009 (r191586) @@ -125,8 +125,9 @@ archive_write_cpio_header(struct archive * re-using the ones off the disk. That way, the 18-bit c_ino * field only limits the number of files in the archive. */ - if (archive_entry_ino(entry) > 0777777) { - archive_set_error(&a->archive, ERANGE, "large inode number truncated"); + if ((int)archive_entry_ino(entry) > 0777777) { + archive_set_error(&a->archive, ERANGE, + "large inode number truncated"); ret = ARCHIVE_WARN; } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:15:15 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF0FE106566C; Mon, 27 Apr 2009 19:15:14 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB7C58FC13; Mon, 27 Apr 2009 19:15:14 +0000 (UTC) (envelope-from delphij@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 n3RJFELp024103; Mon, 27 Apr 2009 19:15:14 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJFElj024099; Mon, 27 Apr 2009 19:15:14 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <200904271915.n3RJFElj024099@svn.freebsd.org> From: Xin LI Date: Mon, 27 Apr 2009 19:15:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191587 - stable/7/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:15:15 -0000 Author: delphij Date: Mon Apr 27 19:15:14 2009 New Revision: 191587 URL: http://svn.freebsd.org/changeset/base/191587 Log: Add -C back. Approved by: re (kensmith) Modified: stable/7/sbin/fsck_ffs/fsck.h stable/7/sbin/fsck_ffs/fsck_ffs.8 stable/7/sbin/fsck_ffs/main.c stable/7/sbin/fsck_ffs/setup.c Modified: stable/7/sbin/fsck_ffs/fsck.h ============================================================================== --- stable/7/sbin/fsck_ffs/fsck.h Mon Apr 27 19:14:43 2009 (r191586) +++ stable/7/sbin/fsck_ffs/fsck.h Mon Apr 27 19:15:14 2009 (r191587) @@ -271,6 +271,7 @@ int bkgrdflag; /* use a snapshot to run int bflag; /* location of alternate super block */ int debug; /* output debugging info */ char damagedflag; /* run in damaged mode */ +char ckclean; /* only do work if not cleanly unmounted */ int cvtlevel; /* convert to newer file system format */ int bkgrdcheck; /* determine if background check is possible */ int bkgrdsumadj; /* whether the kernel have ability to adjust superblock summary */ Modified: stable/7/sbin/fsck_ffs/fsck_ffs.8 ============================================================================== --- stable/7/sbin/fsck_ffs/fsck_ffs.8 Mon Apr 27 19:14:43 2009 (r191586) +++ stable/7/sbin/fsck_ffs/fsck_ffs.8 Mon Apr 27 19:15:14 2009 (r191587) @@ -29,7 +29,7 @@ .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd January 20, 2009 +.Dd January 25, 2009 .Dt FSCK_FFS 8 .Os .Sh NAME @@ -46,9 +46,9 @@ .Ar ... .Sh DESCRIPTION The specified disk partitions and/or file systems are checked. -In "preen" mode the clean flag of each file system's superblock is examined -and only those file systems that -are not marked clean are checked. +In "preen" or "check clean" mode the clean flag of each file system's +superblock is examined and only those file systems that are not marked clean +are checked. File systems are marked clean when they are unmounted, when they have been mounted read-only, or when .Nm @@ -175,6 +175,14 @@ Use the block specified immediately afte the super block for the file system. An alternate super block is usually located at block 32 for UFS1, and block 160 for UFS2. +.It Fl C +Check if file system was dismouted cleanly. +If so, skip file system checks (like "preen"). +However, if the file system was not cleanly dismounted, do full checks, +is if +.Nm +was invoked without +.Fl C . .It Fl c Convert the file system to the specified level. Note that the level of a file system can only be raised. Modified: stable/7/sbin/fsck_ffs/main.c ============================================================================== --- stable/7/sbin/fsck_ffs/main.c Mon Apr 27 19:14:43 2009 (r191586) +++ stable/7/sbin/fsck_ffs/main.c Mon Apr 27 19:15:14 2009 (r191587) @@ -82,7 +82,7 @@ main(int argc, char *argv[]) sync(); skipclean = 1; damagedflag = 0; - while ((ch = getopt(argc, argv, "b:Bc:dDfFm:npy")) != -1) { + while ((ch = getopt(argc, argv, "b:Bc:CdDfFm:npy")) != -1) { switch (ch) { case 'b': skipclean = 0; @@ -132,6 +132,10 @@ main(int argc, char *argv[]) case 'p': preen++; + /*FALLTHROUGH*/ + + case 'C': + ckclean++; break; case 'y': @@ -151,7 +155,7 @@ main(int argc, char *argv[]) if (signal(SIGINT, SIG_IGN) != SIG_IGN) (void)signal(SIGINT, catch); - if (preen) + if (ckclean) (void)signal(SIGQUIT, catchquit); signal(SIGINFO, infohandler); if (bkgrdflag) { @@ -216,7 +220,7 @@ checkfilesys(char *filesys) errmsg[0] = '\0'; cdevname = filesys; - if (debug && preen) + if (debug && ckclean) pwarn("starting\n"); /* * Make best effort to get the disk name. Check first to see @@ -251,7 +255,7 @@ checkfilesys(char *filesys) exit(7); /* Filesystem clean, report it now */ exit(0); } - if (preen && skipclean) { + if (ckclean && skipclean) { /* * If file system is gjournaled, check it here. */ @@ -302,7 +306,7 @@ checkfilesys(char *filesys) "CANNOT RUN IN BACKGROUND\n"); } if ((sblock.fs_flags & FS_UNCLEAN) == 0 && - skipclean && preen) { + skipclean && ckclean) { /* * file system is clean; * skip snapshot and report it clean Modified: stable/7/sbin/fsck_ffs/setup.c ============================================================================== --- stable/7/sbin/fsck_ffs/setup.c Mon Apr 27 19:14:43 2009 (r191586) +++ stable/7/sbin/fsck_ffs/setup.c Mon Apr 27 19:15:14 2009 (r191587) @@ -65,7 +65,7 @@ static struct disklabel *getdisklabel(ch /* * Read in a superblock finding an alternate if necessary. * Return 1 if successful, 0 if unsuccessful, -1 if file system - * is already clean (preen mode only). + * is already clean (ckclean and preen mode only). */ int setup(char *dev) @@ -201,7 +201,7 @@ setup(char *dev) pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag); bflag = 0; } - if (skipclean && preen && sblock.fs_clean) { + if (skipclean && ckclean && sblock.fs_clean) { pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n"); return (-1); } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:15:34 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66FEA10656CE; Mon, 27 Apr 2009 19:15:34 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4B3DE8FC0A; Mon, 27 Apr 2009 19:15:34 +0000 (UTC) (envelope-from delphij@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 n3RJFYJw024150; Mon, 27 Apr 2009 19:15:34 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJFY5B024146; Mon, 27 Apr 2009 19:15:34 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <200904271915.n3RJFY5B024146@svn.freebsd.org> From: Xin LI Date: Mon, 27 Apr 2009 19:15:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191588 - releng/7.2/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:15:34 -0000 Author: delphij Date: Mon Apr 27 19:15:33 2009 New Revision: 191588 URL: http://svn.freebsd.org/changeset/base/191588 Log: Add -C back. Approved by: re (kensmith) Modified: releng/7.2/sbin/fsck_ffs/fsck.h releng/7.2/sbin/fsck_ffs/fsck_ffs.8 releng/7.2/sbin/fsck_ffs/main.c releng/7.2/sbin/fsck_ffs/setup.c Modified: releng/7.2/sbin/fsck_ffs/fsck.h ============================================================================== --- releng/7.2/sbin/fsck_ffs/fsck.h Mon Apr 27 19:15:14 2009 (r191587) +++ releng/7.2/sbin/fsck_ffs/fsck.h Mon Apr 27 19:15:33 2009 (r191588) @@ -271,6 +271,7 @@ int bkgrdflag; /* use a snapshot to run int bflag; /* location of alternate super block */ int debug; /* output debugging info */ char damagedflag; /* run in damaged mode */ +char ckclean; /* only do work if not cleanly unmounted */ int cvtlevel; /* convert to newer file system format */ int bkgrdcheck; /* determine if background check is possible */ int bkgrdsumadj; /* whether the kernel have ability to adjust superblock summary */ Modified: releng/7.2/sbin/fsck_ffs/fsck_ffs.8 ============================================================================== --- releng/7.2/sbin/fsck_ffs/fsck_ffs.8 Mon Apr 27 19:15:14 2009 (r191587) +++ releng/7.2/sbin/fsck_ffs/fsck_ffs.8 Mon Apr 27 19:15:33 2009 (r191588) @@ -29,7 +29,7 @@ .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd January 20, 2009 +.Dd January 25, 2009 .Dt FSCK_FFS 8 .Os .Sh NAME @@ -46,9 +46,9 @@ .Ar ... .Sh DESCRIPTION The specified disk partitions and/or file systems are checked. -In "preen" mode the clean flag of each file system's superblock is examined -and only those file systems that -are not marked clean are checked. +In "preen" or "check clean" mode the clean flag of each file system's +superblock is examined and only those file systems that are not marked clean +are checked. File systems are marked clean when they are unmounted, when they have been mounted read-only, or when .Nm @@ -175,6 +175,14 @@ Use the block specified immediately afte the super block for the file system. An alternate super block is usually located at block 32 for UFS1, and block 160 for UFS2. +.It Fl C +Check if file system was dismouted cleanly. +If so, skip file system checks (like "preen"). +However, if the file system was not cleanly dismounted, do full checks, +is if +.Nm +was invoked without +.Fl C . .It Fl c Convert the file system to the specified level. Note that the level of a file system can only be raised. Modified: releng/7.2/sbin/fsck_ffs/main.c ============================================================================== --- releng/7.2/sbin/fsck_ffs/main.c Mon Apr 27 19:15:14 2009 (r191587) +++ releng/7.2/sbin/fsck_ffs/main.c Mon Apr 27 19:15:33 2009 (r191588) @@ -82,7 +82,7 @@ main(int argc, char *argv[]) sync(); skipclean = 1; damagedflag = 0; - while ((ch = getopt(argc, argv, "b:Bc:dDfFm:npy")) != -1) { + while ((ch = getopt(argc, argv, "b:Bc:CdDfFm:npy")) != -1) { switch (ch) { case 'b': skipclean = 0; @@ -132,6 +132,10 @@ main(int argc, char *argv[]) case 'p': preen++; + /*FALLTHROUGH*/ + + case 'C': + ckclean++; break; case 'y': @@ -151,7 +155,7 @@ main(int argc, char *argv[]) if (signal(SIGINT, SIG_IGN) != SIG_IGN) (void)signal(SIGINT, catch); - if (preen) + if (ckclean) (void)signal(SIGQUIT, catchquit); signal(SIGINFO, infohandler); if (bkgrdflag) { @@ -216,7 +220,7 @@ checkfilesys(char *filesys) errmsg[0] = '\0'; cdevname = filesys; - if (debug && preen) + if (debug && ckclean) pwarn("starting\n"); /* * Make best effort to get the disk name. Check first to see @@ -251,7 +255,7 @@ checkfilesys(char *filesys) exit(7); /* Filesystem clean, report it now */ exit(0); } - if (preen && skipclean) { + if (ckclean && skipclean) { /* * If file system is gjournaled, check it here. */ @@ -302,7 +306,7 @@ checkfilesys(char *filesys) "CANNOT RUN IN BACKGROUND\n"); } if ((sblock.fs_flags & FS_UNCLEAN) == 0 && - skipclean && preen) { + skipclean && ckclean) { /* * file system is clean; * skip snapshot and report it clean Modified: releng/7.2/sbin/fsck_ffs/setup.c ============================================================================== --- releng/7.2/sbin/fsck_ffs/setup.c Mon Apr 27 19:15:14 2009 (r191587) +++ releng/7.2/sbin/fsck_ffs/setup.c Mon Apr 27 19:15:33 2009 (r191588) @@ -65,7 +65,7 @@ static struct disklabel *getdisklabel(ch /* * Read in a superblock finding an alternate if necessary. * Return 1 if successful, 0 if unsuccessful, -1 if file system - * is already clean (preen mode only). + * is already clean (ckclean and preen mode only). */ int setup(char *dev) @@ -201,7 +201,7 @@ setup(char *dev) pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag); bflag = 0; } - if (skipclean && preen && sblock.fs_clean) { + if (skipclean && ckclean && sblock.fs_clean) { pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n"); return (-1); } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:20:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D79E10656CE; Mon, 27 Apr 2009 19:20:26 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3FCB18FC29; Mon, 27 Apr 2009 19:20:26 +0000 (UTC) (envelope-from kientzle@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 n3RJKQFX024322; Mon, 27 Apr 2009 19:20:26 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJKQnr024320; Mon, 27 Apr 2009 19:20:26 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271920.n3RJKQnr024320@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 19:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191590 - head/lib/libarchive/test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:20:28 -0000 Author: kientzle Date: Mon Apr 27 19:20:25 2009 New Revision: 191590 URL: http://svn.freebsd.org/changeset/base/191590 Log: Merge r1058 from libarchive.googlecode.com: Require that each test source file has exactly one DEFINE_TEST(). Modified: head/lib/libarchive/test/test_pax_filename_encoding.c head/lib/libarchive/test/test_read_format_isojoliet_bz2.c Modified: head/lib/libarchive/test/test_pax_filename_encoding.c ============================================================================== --- head/lib/libarchive/test/test_pax_filename_encoding.c Mon Apr 27 19:18:55 2009 (r191589) +++ head/lib/libarchive/test/test_pax_filename_encoding.c Mon Apr 27 19:20:25 2009 (r191590) @@ -40,7 +40,8 @@ __FBSDID("$FreeBSD$"); * the right filename returned and that we get a warning only * if the header isn't marked as binary. */ -DEFINE_TEST(test_pax_filename_encoding_1) +static void +test_pax_filename_encoding_1(void) { static const char testname[] = "test_pax_filename_encoding.tar"; /* @@ -84,7 +85,8 @@ DEFINE_TEST(test_pax_filename_encoding_1 * This should work; the underlying implementation should automatically * fall back to storing the pathname in binary. */ -DEFINE_TEST(test_pax_filename_encoding_2) +static void +test_pax_filename_encoding_2(void) { char filename[] = "abc\314\214mno\374xyz"; struct archive *a; @@ -191,7 +193,8 @@ DEFINE_TEST(test_pax_filename_encoding_2 * read it back into "C" locale, which doesn't support the name. * TODO: Figure out the "right" behavior here. */ -DEFINE_TEST(test_pax_filename_encoding_3) +static void +test_pax_filename_encoding_3(void) { wchar_t badname[] = L"xxxAyyyBzzz"; const char badname_utf8[] = "xxx\xE1\x88\xB4yyy\xE5\x99\xB8zzz"; @@ -325,3 +328,10 @@ DEFINE_TEST(test_pax_filename_encoding_3 assertEqualInt(0, archive_read_finish(a)); #endif } + +DEFINE_TEST(test_pax_filename_encoding) +{ + test_pax_filename_encoding_1(); + test_pax_filename_encoding_2(); + test_pax_filename_encoding_3(); +} Modified: head/lib/libarchive/test/test_read_format_isojoliet_bz2.c ============================================================================== --- head/lib/libarchive/test/test_read_format_isojoliet_bz2.c Mon Apr 27 19:18:55 2009 (r191589) +++ head/lib/libarchive/test/test_read_format_isojoliet_bz2.c Mon Apr 27 19:20:25 2009 (r191590) @@ -177,11 +177,7 @@ joliettest(int withrr) DEFINE_TEST(test_read_format_isojoliet_bz2) { joliettest(0); -} - -DEFINE_TEST(test_read_format_isojolietrr_bz2) -{ /* XXXX This doesn't work today; can it be made to work? */ #if 0 joliettest(1); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:23:54 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22E6B1065789; Mon, 27 Apr 2009 19:23:54 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0E62C8FC0C; Mon, 27 Apr 2009 19:23:54 +0000 (UTC) (envelope-from kientzle@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 n3RJNr1C024439; Mon, 27 Apr 2009 19:23:53 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJNrUR024437; Mon, 27 Apr 2009 19:23:53 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271923.n3RJNrUR024437@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 19:23:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191591 - head/lib/libarchive/test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:23:55 -0000 Author: kientzle Date: Mon Apr 27 19:23:53 2009 New Revision: 191591 URL: http://svn.freebsd.org/changeset/base/191591 Log: Merge r1034 from libarchive.googlecode.com: Put a much larger file on the reference ISO for this test. Modified: head/lib/libarchive/test/test_read_format_isorr_bz2.c head/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu Modified: head/lib/libarchive/test/test_read_format_isorr_bz2.c ============================================================================== --- head/lib/libarchive/test/test_read_format_isorr_bz2.c Mon Apr 27 19:20:25 2009 (r191590) +++ head/lib/libarchive/test/test_read_format_isorr_bz2.c Mon Apr 27 19:23:53 2009 (r191591) @@ -26,13 +26,14 @@ __FBSDID("$FreeBSD$"); /* -Execute the following to rebuild the data for this program: +Execute the following command to rebuild the data for this program: tail -n +32 test_read_format_isorr_bz2.c | /bin/sh rm -rf /tmp/iso mkdir /tmp/iso mkdir /tmp/iso/dir echo "hello" >/tmp/iso/file +dd if=/dev/zero bs=1 count=12345678 >>/tmp/iso/file ln /tmp/iso/file /tmp/iso/hardlink (cd /tmp/iso; ln -s file symlink) TZ=utc touch -afhm -t 197001020000.01 /tmp/iso /tmp/iso/file /tmp/iso/dir @@ -95,11 +96,10 @@ DEFINE_TEST(test_read_format_isorr_bz2) assertEqualInt(0, archive_read_next_header(a, &ae)); assertEqualString("file", archive_entry_pathname(ae)); assert(S_ISREG(archive_entry_stat(ae)->st_mode)); - assertEqualInt(6, archive_entry_size(ae)); + assertEqualInt(12345684, archive_entry_size(ae)); assertEqualInt(0, archive_read_data_block(a, &p, &size, &offset)); - assertEqualInt(6, (int)size); assertEqualInt(0, offset); - assertEqualInt(0, memcmp(p, "hello\n", 6)); + assertEqualMem(p, "hello\n", 6); assertEqualInt(86401, archive_entry_mtime(ae)); assertEqualInt(86401, archive_entry_atime(ae)); assertEqualInt(2, archive_entry_stat(ae)->st_nlink); @@ -111,7 +111,7 @@ DEFINE_TEST(test_read_format_isorr_bz2) assertEqualString("hardlink", archive_entry_pathname(ae)); assert(S_ISREG(archive_entry_stat(ae)->st_mode)); assertEqualString("file", archive_entry_hardlink(ae)); - assertEqualInt(6, archive_entry_size(ae)); + assertEqualInt(12345684, archive_entry_size(ae)); assertEqualInt(86401, archive_entry_mtime(ae)); assertEqualInt(86401, archive_entry_atime(ae)); assertEqualInt(2, archive_entry_stat(ae)->st_nlink); Modified: head/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu ============================================================================== --- head/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu Mon Apr 27 19:20:25 2009 (r191590) +++ head/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu Mon Apr 27 19:23:53 2009 (r191591) @@ -1,24 +1,24 @@ $FreeBSD$ - begin 644 test_read_format_isorr_bz2.iso.bz2 -M0EIH.3%!629361M#:2D``,?_W?__6_Y58_GX/__?X*?OWB8AZB0`,`$@`$0" -M@0C``QP`U:!,&J>FJ>2:CR)^I'ZB#3U/4-`!H:#(:``]0P@`!H9!D!II-$,A -M&BGFJ>34]0T!IHT&AHT:#0:``!ZC$`#0T.`!H&@&AH``!IB&C30```!H9``! -MA(D0DTQ3T3$TVA-!IIZAA-'J:!H!H#0:#30:#30T;1*PHGAZ"/F;E""L"I6" -M8W&#'./D%S=_T4T96&+@94X&AL;:`Y+0C?:%=B#:8`:PP`2WF"20!EXL)6=] -M8=A)!0Q)($C&$U#8AI(&QL2!"10P4^8D$"0,8$I-.!3R8YWZ]Q1./IDR^VYN -MRJ&76*,$3PG?U(,=C;I20`D<&9/%5ILJIGI0(SWP3KRID6=#1MV*A>)(*B0$ -M$E:>B944( -MO-&.8&:1K;>[K$?O7R-FWA;%5+E]WBVT9PR7J -MNU2C2G2>5**"XH4HD`PF+(*DTT&47'A+)B";NS-UH>(]7G^\/G_343KU\17< -M<*""-SM"%>BVIJL8SF]7L-1.-LSRP2%=KX&C56*FC&#C$XNMGL)]3X&^$V4Z -MY`()G`%`KUR!HU8Z'"HWNE&P6MI:KZ^Q"H0L7.OV8ZJW409[QO=`&&D%=5&@RP`MO%R/J#Q -M-KJ*6D;EH7:DK0.48@8HF*IP(>*YMR$>!+A,)X+;`$94@@?U]B/=2T0CY-2= -M*_1FPF<-G\\@Z-_,Q>06='5:(B#3`W$8Y!:C-CE22SM9*S$00,XXJTIZ!GA( -LGTMN:F\J-,D9>?.38*!I7T>--*B_=T44HJ?#@``"1;7#_Q=R13A0D!M#:2D` +M0EIH.3%!629363S[0-4``,?_W?__R_158__Z/__?8*?OWB8AZB2```4@`,0" +M@0C0`SX`6UH$P:F@32FCU-D1Z@#U'J!HT>H#0`!H`T9`#U-#33(-`-3TFA#1 +MJ933TFR%#(&@`#0-````'J`T``,.-#1HT&C0-``````R````-`9``8<:&C1H +M-&@:`````!D````:`R``P1*(1$]3U,C(--``T!H:9``````:``&F)?&F1;DY +M&:FB?6\AB@WG9X@8AM,HTK/Q9EXPZD#E2A$D)(@;F(G^B.92GLB`=H@`+I1! +M1$`';Y%%P_YU^!0+8BJ(@#DC&D@D4"1D4?Z1!$1`&Z`V[]0H($(!6L90;:>A0V<))XH7BH%"KAF8!:H8\].K:4`Y`,4,!RN:#SL[!;-"!6%0F?`H +M2_2AM@*%/%<\*!XL/C2%A1AI$8/AF(#SZ;]:>$5^/NKNO<+EH@_CS4XUI(Q* +M123&G=9T]QQR?"=WMV(,&60`1D0:U043)E&22GWA);Z:"9R.A@,4,IL+O=L7 +MACF:V5C!L"HB&,82/[./'>PAEG-"PA,D6T1+ +M2<\S]-*$,]X-XF%:_)1,W,=`,^+.N0""6@"85=H@<2FZ=HI-GDHK&)>/T74Y +M+5>[4:S`Z`M87AHD`H6BE*8R%X=9AS$7&+Z?F%A.`AX!"XZRR@C5_?4^P".90`*]#[D(PA*&MPV7U2 +M;.]7.&/5!?P@C:J)S&T%=%,KJ@X0[""E8G!I!/I%`KSMA<#^!%C+Y*")'1]( +MJ06:CXD^5K*:`$E`B`0$P5;&R;BF<5/Y7&(5A`?:!J@`` ` end From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:30:10 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C012106564A; Mon, 27 Apr 2009 19:30:10 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 28B3E8FC23; Mon, 27 Apr 2009 19:30:10 +0000 (UTC) (envelope-from kientzle@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 n3RJUAfm024614; Mon, 27 Apr 2009 19:30:10 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJU9D7024610; Mon, 27 Apr 2009 19:30:09 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904271930.n3RJU9D7024610@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 19:30:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191592 - in head/lib/libarchive: . test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:30:10 -0000 Author: kientzle Date: Mon Apr 27 19:30:09 2009 New Revision: 191592 URL: http://svn.freebsd.org/changeset/base/191592 Log: Merge r1061,r1062,r1063 from libarchive.googlecode.com: Fix reading big-endian binary cpio archives, and add a test. While I'm here, add a note about Solaris ACL extension for cpio, which should be relatively straightforward to support. Thanks to: Edward Napierala, who sent me a big-endian cpio archive from a Solaris system he's been playing with. Pointy hat: me Added: head/lib/libarchive/test/test_read_format_cpio_bin_be.c (contents, props changed) head/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu (contents, props changed) Modified: head/lib/libarchive/archive_read_support_format_cpio.c head/lib/libarchive/test/Makefile Modified: head/lib/libarchive/archive_read_support_format_cpio.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_cpio.c Mon Apr 27 19:23:53 2009 (r191591) +++ head/lib/libarchive/archive_read_support_format_cpio.c Mon Apr 27 19:30:09 2009 (r191592) @@ -257,6 +257,11 @@ archive_read_format_cpio_read_header(str cpio->entry_bytes_remaining = 0; } + /* XXX TODO: If the full mode is 0160200, then this is a Solaris + * ACL description for the following entry. Read this body + * and parse it as a Solaris-style ACL, then read the next + * header. XXX */ + /* Compare name to "TRAILER!!!" to test for end-of-archive. */ if (namelength == 11 && strcmp((const char *)h, "TRAILER!!!") == 0) { /* TODO: Store file location of start of block. */ @@ -669,7 +674,7 @@ le4(const unsigned char *p) static int be4(const unsigned char *p) { - return (p[0] + (p[1]<<8) + (p[2]<<16) + (p[3]<<24)); + return ((p[0]<<24) + (p[1]<<16) + (p[2]<<8) + (p[3])); } /* Modified: head/lib/libarchive/test/Makefile ============================================================================== --- head/lib/libarchive/test/Makefile Mon Apr 27 19:23:53 2009 (r191591) +++ head/lib/libarchive/test/Makefile Mon Apr 27 19:30:09 2009 (r191592) @@ -39,6 +39,7 @@ TESTS= \ test_read_format_ar.c \ test_read_format_cpio_bin.c \ test_read_format_cpio_bin_Z.c \ + test_read_format_cpio_bin_be.c \ test_read_format_cpio_bin_bz2.c \ test_read_format_cpio_bin_gz.c \ test_read_format_cpio_bin_xz.c \ Added: head/lib/libarchive/test/test_read_format_cpio_bin_be.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_read_format_cpio_bin_be.c Mon Apr 27 19:30:09 2009 (r191592) @@ -0,0 +1,55 @@ +/*- + * Copyright (c) 2003-2007 Tim Kientzle + * 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(S) ``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(S) 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 "test.h" +__FBSDID("$FreeBSD$"); + +DEFINE_TEST(test_read_format_cpio_bin_be) +{ + struct archive_entry *ae; + struct archive *a; + const char *reference = "test_read_format_cpio_bin_be.cpio"; + + extract_reference_file(reference); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, reference, 10)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "file1111222233334444"); + assertEqualInt(archive_entry_size(ae), 5); + assertEqualInt(archive_entry_mtime(ae), 1240664175); + assertEqualInt(archive_entry_mode(ae), AE_IFREG | 0644); + assertEqualInt(archive_entry_uid(ae), 1000); + assertEqualInt(archive_entry_gid(ae), 0); + + assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_NONE); + assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_BE); + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); +} + + Added: head/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu Mon Apr 27 19:30:09 2009 (r191592) @@ -0,0 +1,8 @@ +$FreeBSD$ +begin 644 test_read_format_cpio_bin_be.cpio +M<<<`"#P\@:0#Z`````$``$GS"&\`%0````5F:6QE,3$Q,3(R,C(S,S,S-#0T +M-```86)C9&4`<<<```````````````$`````````"P````!44D%)3$52(2$A +M```````````````````````````````````````````````````````````` +3```````````````````````````` +` +end From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 19:39:18 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 840F01065674; Mon, 27 Apr 2009 19:39:18 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 723348FC0C; Mon, 27 Apr 2009 19:39:18 +0000 (UTC) (envelope-from jkim@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 n3RJdIFi024834; Mon, 27 Apr 2009 19:39:18 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RJdIds024833; Mon, 27 Apr 2009 19:39:18 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904271939.n3RJdIds024833@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 27 Apr 2009 19:39:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191593 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 19:39:19 -0000 Author: jkim Date: Mon Apr 27 19:39:18 2009 New Revision: 191593 URL: http://svn.freebsd.org/changeset/base/191593 Log: Reduce code duplication and excessive pci_get_slot() calls. Reviewed by: mav Modified: head/sys/dev/ata/ata-pci.c Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Mon Apr 27 19:30:09 2009 (r191592) +++ head/sys/dev/ata/ata-pci.c Mon Apr 27 19:39:18 2009 (r191593) @@ -775,26 +775,26 @@ ata_match_chip(device_t dev, struct ata_ struct ata_chip_id * ata_find_chip(device_t dev, struct ata_chip_id *index, int slot) { + struct ata_chip_id *idx; device_t *children; int nchildren, i; + uint8_t s; if (device_get_children(device_get_parent(dev), &children, &nchildren)) - return 0; + return (NULL); - while (index->chipid != 0) { - for (i = 0; i < nchildren; i++) { - if (((slot >= 0 && pci_get_slot(children[i]) == slot) || - (slot < 0 && pci_get_slot(children[i]) <= -slot)) && - pci_get_devid(children[i]) == index->chipid && - pci_get_revid(children[i]) >= index->chiprev) { + for (i = 0; i < nchildren; i++) { + s = pci_get_slot(children[i]); + if ((slot >= 0 && s == slot) || (slot < 0 && s <= -slot)) { + idx = ata_match_chip(children[i], index); + if (idx != NULL) { free(children, M_TEMP); - return index; + return (idx); } } - index++; } free(children, M_TEMP); - return NULL; + return (NULL); } void From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 20:09:05 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5E961065697; Mon, 27 Apr 2009 20:09:05 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 702C88FC08; Mon, 27 Apr 2009 20:09:05 +0000 (UTC) (envelope-from kientzle@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 n3RK95Df025492; Mon, 27 Apr 2009 20:09:05 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RK956w025485; Mon, 27 Apr 2009 20:09:05 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904272009.n3RK956w025485@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 20:09:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191594 - in head/lib/libarchive: . test X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 20:09:06 -0000 Author: kientzle Date: Mon Apr 27 20:09:05 2009 New Revision: 191594 URL: http://svn.freebsd.org/changeset/base/191594 Log: Merge r990,r1044 from libarchive.googlecode.com: read_support_format_raw() allows people to exploit libarchive's automatic decompression support by simply stubbing out the archive format handler. The raw handler is not enabled by support_format_all(), of course. It bids 1 on any non-empty input and always returns a single entry named "data" with no properties set. Added: head/lib/libarchive/archive_read_support_format_raw.c (contents, props changed) head/lib/libarchive/test/test_read_format_raw.c (contents, props changed) head/lib/libarchive/test/test_read_format_raw.data.Z.uu (contents, props changed) head/lib/libarchive/test/test_read_format_raw.data.uu (contents, props changed) Modified: head/lib/libarchive/Makefile head/lib/libarchive/archive.h head/lib/libarchive/test/Makefile Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Mon Apr 27 19:39:18 2009 (r191593) +++ head/lib/libarchive/Makefile Mon Apr 27 20:09:05 2009 (r191594) @@ -52,6 +52,7 @@ SRCS= archive_check_magic.c \ archive_read_support_format_empty.c \ archive_read_support_format_iso9660.c \ archive_read_support_format_mtree.c \ + archive_read_support_format_raw.c \ archive_read_support_format_tar.c \ archive_read_support_format_zip.c \ archive_string.c \ Modified: head/lib/libarchive/archive.h ============================================================================== --- head/lib/libarchive/archive.h Mon Apr 27 19:39:18 2009 (r191593) +++ head/lib/libarchive/archive.h Mon Apr 27 20:09:05 2009 (r191594) @@ -272,6 +272,7 @@ typedef int archive_close_callback(struc #define ARCHIVE_FORMAT_AR_GNU (ARCHIVE_FORMAT_AR | 1) #define ARCHIVE_FORMAT_AR_BSD (ARCHIVE_FORMAT_AR | 2) #define ARCHIVE_FORMAT_MTREE 0x80000 +#define ARCHIVE_FORMAT_RAW 0x90000 /*- * Basic outline for reading an archive: @@ -315,6 +316,7 @@ __LA_DECL int archive_read_support_for __LA_DECL int archive_read_support_format_gnutar(struct archive *); __LA_DECL int archive_read_support_format_iso9660(struct archive *); __LA_DECL int archive_read_support_format_mtree(struct archive *); +__LA_DECL int archive_read_support_format_raw(struct archive *); __LA_DECL int archive_read_support_format_tar(struct archive *); __LA_DECL int archive_read_support_format_zip(struct archive *); Added: head/lib/libarchive/archive_read_support_format_raw.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/archive_read_support_format_raw.c Mon Apr 27 20:09:05 2009 (r191594) @@ -0,0 +1,187 @@ +/*- + * Copyright (c) 2003-2009 Tim Kientzle + * 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(S) ``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(S) 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 "archive_platform.h" +__FBSDID("$FreeBSD$"); + +#ifdef HAVE_ERRNO_H +#include +#endif +#include +#ifdef HAVE_STDLIB_H +#include +#endif + +#include "archive.h" +#include "archive_entry.h" +#include "archive_private.h" +#include "archive_read_private.h" + +struct raw_info { + int64_t offset; /* Current position in the file. */ + int end_of_file; +}; + +static int archive_read_format_raw_bid(struct archive_read *); +static int archive_read_format_raw_cleanup(struct archive_read *); +static int archive_read_format_raw_read_data(struct archive_read *, + const void **, size_t *, off_t *); +static int archive_read_format_raw_read_data_skip(struct archive_read *); +static int archive_read_format_raw_read_header(struct archive_read *, + struct archive_entry *); + +int +archive_read_support_format_raw(struct archive *_a) +{ + struct raw_info *info; + struct archive_read *a = (struct archive_read *)_a; + int r; + + info = (struct raw_info *)calloc(1, sizeof(*info)); + if (info == NULL) { + archive_set_error(&a->archive, ENOMEM, + "Can't allocate raw_info data"); + return (ARCHIVE_FATAL); + } + + r = __archive_read_register_format(a, + info, + "raw", + archive_read_format_raw_bid, + NULL, + archive_read_format_raw_read_header, + archive_read_format_raw_read_data, + archive_read_format_raw_read_data_skip, + archive_read_format_raw_cleanup); + if (r != ARCHIVE_OK) + free(info); + return (r); +} + +/* + * Bid 1 if this is a non-empty file. Anyone who can really support + * this should outbid us, so it should generally be safe to use "raw" + * in conjunction with other formats. But, this could really confuse + * folks if there are bid errors or minor file damage, so we don't + * include "raw" as part of support_format_all(). + */ +static int +archive_read_format_raw_bid(struct archive_read *a) +{ + const char *p; + + if ((p = __archive_read_ahead(a, 1, NULL)) == NULL) + return (-1); + return (1); +} + +/* + * Mock up a fake header. + */ +static int +archive_read_format_raw_read_header(struct archive_read *a, + struct archive_entry *entry) +{ + struct raw_info *info; + + info = (struct raw_info *)(a->format->data); + if (info->end_of_file) + return (ARCHIVE_EOF); + + a->archive.archive_format = ARCHIVE_FORMAT_RAW; + a->archive.archive_format_name = "Raw data"; + archive_entry_set_pathname(entry, "data"); + /* XXX should we set mode to mimic a regular file? XXX */ + /* I'm deliberately leaving most fields unset here. */ + return (ARCHIVE_OK); +} + +static int +archive_read_format_raw_read_data(struct archive_read *a, + const void **buff, size_t *size, off_t *offset) +{ + struct raw_info *info; + ssize_t avail; + + info = (struct raw_info *)(a->format->data); + if (info->end_of_file) + return (ARCHIVE_EOF); + + /* Get whatever bytes are immediately available. */ + *buff = __archive_read_ahead(a, 1, &avail); + if (avail > 0) { + /* Consume and return the bytes we just read */ + __archive_read_consume(a, avail); + *size = avail; + *offset = info->offset; + info->offset += *size; + return (ARCHIVE_OK); + } else if (0 == avail) { + /* Record and return end-of-file. */ + info->end_of_file = 1; + *size = 0; + *offset = info->offset; + return (ARCHIVE_EOF); + } else { + /* Record and return an error. */ + *size = 0; + *offset = info->offset; + return (avail); + } + return (ARCHIVE_OK); +} + +static int +archive_read_format_raw_read_data_skip(struct archive_read *a) +{ + struct raw_info *info; + off_t bytes_skipped; + int64_t request = 1024 * 1024 * 1024UL; /* Skip 1 GB at a time. */ + + info = (struct raw_info *)(a->format->data); + if (info->end_of_file) + return (ARCHIVE_EOF); + info->end_of_file = 1; + + for (;;) { + bytes_skipped = __archive_read_skip_lenient(a, request); + if (bytes_skipped < 0) + return (ARCHIVE_FATAL); + if (bytes_skipped < request) + return (ARCHIVE_OK); + /* We skipped all the bytes we asked for. There might + * be more, so try again. */ + } +} + +static int +archive_read_format_raw_cleanup(struct archive_read *a) +{ + struct raw_info *info; + + info = (struct raw_info *)(a->format->data); + free(info); + a->format->data = NULL; + return (ARCHIVE_OK); +} Modified: head/lib/libarchive/test/Makefile ============================================================================== --- head/lib/libarchive/test/Makefile Mon Apr 27 19:39:18 2009 (r191593) +++ head/lib/libarchive/test/Makefile Mon Apr 27 20:09:05 2009 (r191594) @@ -55,6 +55,7 @@ TESTS= \ test_read_format_isorr_bz2.c \ test_read_format_mtree.c \ test_read_format_pax_bz2.c \ + test_read_format_raw.c \ test_read_format_tar.c \ test_read_format_tar_empty_filename.c \ test_read_format_tbz.c \ @@ -118,8 +119,8 @@ CFLAGS+= -I${LA_SRCDIR} -I. #LDADD+= -L/usr/local/lib -llzmadec # Uncomment to build and test lzma and xz support via liblzma -CFLAGS+= -I/usr/local/include -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 -LDADD+= -L/usr/local/lib -llzma +#CFLAGS+= -I/usr/local/include -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 +#LDADD+= -L/usr/local/lib -llzma # Uncomment to link against dmalloc #LDADD+= -L/usr/local/lib -ldmalloc Added: head/lib/libarchive/test/test_read_format_raw.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_read_format_raw.c Mon Apr 27 20:09:05 2009 (r191594) @@ -0,0 +1,89 @@ +/*- + * Copyright (c) 2007 Kai Wang + * Copyright (c) 2007 Tim Kientzle + * 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 + * in this position and unchanged. + * 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(S) ``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(S) 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 "test.h" +__FBSDID("$FreeBSD$"); + +DEFINE_TEST(test_read_format_raw) +{ + char buff[512]; + struct archive_entry *ae; + struct archive *a; + const char *reffile1 = "test_read_format_raw.data"; + const char *reffile2 = "test_read_format_raw.data.Z"; + + /* First, try pulling data out of an uninterpretable file. */ + extract_reference_file(reffile1); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, reffile1, 512)); + + /* First (and only!) Entry */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("data", archive_entry_pathname(ae)); + /* Most fields should be unset (unknown) */ + assert(!archive_entry_size_is_set(ae)); + assert(!archive_entry_atime_is_set(ae)); + assert(!archive_entry_ctime_is_set(ae)); + assert(!archive_entry_mtime_is_set(ae)); + assertEqualInt(4, archive_read_data(a, buff, 32)); + assertEqualMem(buff, "foo\n", 4); + + /* Test EOF */ + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); + + + /* Second, try the same with a compressed file. */ + extract_reference_file(reffile2); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, reffile2, 1)); + + /* First (and only!) Entry */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("data", archive_entry_pathname(ae)); + /* Most fields should be unset (unknown) */ + assert(!archive_entry_size_is_set(ae)); + assert(!archive_entry_atime_is_set(ae)); + assert(!archive_entry_ctime_is_set(ae)); + assert(!archive_entry_mtime_is_set(ae)); + assertEqualInt(4, archive_read_data(a, buff, 32)); + assertEqualMem(buff, "foo\n", 4); + + /* Test EOF */ + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); +} Added: head/lib/libarchive/test/test_read_format_raw.data.Z.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_read_format_raw.data.Z.uu Mon Apr 27 20:09:05 2009 (r191594) @@ -0,0 +1,5 @@ +$FreeBSD$ +begin 644 test_read_format_raw.data.Z +('YV09MZ\40`` +` +end Added: head/lib/libarchive/test/test_read_format_raw.data.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libarchive/test/test_read_format_raw.data.uu Mon Apr 27 20:09:05 2009 (r191594) @@ -0,0 +1,5 @@ +$FreeBSD$ +begin 644 test_read_format_raw.data +$9F]O"@`` +` +end From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 20:13:13 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA7D1065670; Mon, 27 Apr 2009 20:13:13 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4C5108FC28; Mon, 27 Apr 2009 20:13:13 +0000 (UTC) (envelope-from kientzle@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 n3RKDD1E025636; Mon, 27 Apr 2009 20:13:13 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RKDDtV025635; Mon, 27 Apr 2009 20:13:13 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904272013.n3RKDDtV025635@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 20:13:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191595 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 20:13:13 -0000 Author: kientzle Date: Mon Apr 27 20:13:13 2009 New Revision: 191595 URL: http://svn.freebsd.org/changeset/base/191595 Log: Merge r991 from libarchive.googlecode.com: Various updates to archive_read.3 manpage, including documentation for the new "raw" handler. Modified: head/lib/libarchive/archive_read.3 Modified: head/lib/libarchive/archive_read.3 ============================================================================== --- head/lib/libarchive/archive_read.3 Mon Apr 27 20:09:05 2009 (r191594) +++ head/lib/libarchive/archive_read.3 Mon Apr 27 20:13:13 2009 (r191595) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 19, 2006 +.Dd April 13, 2009 .Dt archive_read 3 .Os .Sh NAME @@ -36,12 +36,18 @@ .Nm archive_read_support_compression_bzip2 , .Nm archive_read_support_compression_compress , .Nm archive_read_support_compression_gzip , +.Nm archive_read_support_compression_lzma , .Nm archive_read_support_compression_none , +.Nm archive_read_support_compression_xz , .Nm archive_read_support_compression_program , +.Nm archive_read_support_compression_program_signature , .Nm archive_read_support_format_all , +.Nm archive_read_support_format_ar , .Nm archive_read_support_format_cpio , .Nm archive_read_support_format_empty , .Nm archive_read_support_format_iso9660 , +.Nm archive_read_support_format_mtree, +.Nm archive_read_support_format_raw, .Nm archive_read_support_format_tar , .Nm archive_read_support_format_zip , .Nm archive_read_open , @@ -78,21 +84,38 @@ .Ft int .Fn archive_read_support_compression_gzip "struct archive *" .Ft int +.Fn archive_read_support_compression_lzma "struct archive *" +.Ft int .Fn archive_read_support_compression_none "struct archive *" .Ft int +.Fn archive_read_support_compression_xz "struct archive *" +.Ft int .Fo archive_read_support_compression_program .Fa "struct archive *" .Fa "const char *cmd" .Fc .Ft int +.Fo archive_read_support_compression_program_signature +.Fa "struct archive *" +.Fa "const char *cmd" +.Fa "const void *signature" +.Fa "size_t signature_length" +.Fc +.Ft int .Fn archive_read_support_format_all "struct archive *" .Ft int +.Fn archive_read_support_format_ar "struct archive *" +.Ft int .Fn archive_read_support_format_cpio "struct archive *" .Ft int .Fn archive_read_support_format_empty "struct archive *" .Ft int .Fn archive_read_support_format_iso9660 "struct archive *" .Ft int +.Fn archive_read_support_format_mtree "struct archive *" +.Ft int +.Fn archive_read_support_format_raw "struct archive *" +.Ft int .Fn archive_read_support_format_tar "struct archive *" .Ft int .Fn archive_read_support_format_zip "struct archive *" @@ -189,30 +212,43 @@ Allocates and initializes a .Tn struct archive object suitable for reading from an archive. .It Xo -.Fn archive_read_support_compression_all , .Fn archive_read_support_compression_bzip2 , .Fn archive_read_support_compression_compress , .Fn archive_read_support_compression_gzip , -.Fn archive_read_support_compression_none +.Fn archive_read_support_compression_lzma , +.Fn archive_read_support_compression_none , +.Fn archive_read_support_compression_xz .Xc Enables auto-detection code and decompression support for the specified compression. +Returns +.Cm ARCHIVE_OK +if the compression is fully supported, or +.Cm ARCHIVE_WARN +if the compression is supported only through an external program. +Note that decompression using an external program is usually slower than +decompression through built-in libraries. Note that .Dq none is always enabled by default. -For convenience, -.Fn archive_read_support_compression_all -enables all available decompression code. +.It Fn archive_read_support_compression_all +Enables all available decompression filters. .It Fn archive_read_support_compression_program Data is fed through the specified external program before being dearchived. Note that this disables automatic detection of the compression format, so it makes no sense to specify this in conjunction with any other decompression option. +.It Fn archive_read_support_compression_program_signature +This feeds data through the specified external program +but only if the initial bytes of the data match the specified +signature value. .It Xo .Fn archive_read_support_format_all , +.Fn archive_read_support_format_ar , .Fn archive_read_support_format_cpio , .Fn archive_read_support_format_empty , .Fn archive_read_support_format_iso9660 , +.Fn archive_read_support_format_mtree , .Fn archive_read_support_format_tar , .Fn archive_read_support_format_zip .Xc @@ -226,6 +262,17 @@ For convenience, .Fn archive_read_support_format_all enables support for all available formats. Only empty archives are supported by default. +.It Fn archive_read_support_format_raw +The +.Dq raw +format handler allows libarchive to be used to read arbitrary data. +It treats any data stream as an archive with a single entry. +The pathname of this entry is +.Dq data ; +all other entry fields are unset. +This is not enabled by +.Fn archive_read_support_format_all +in order to avoid erroneous handling of damaged archives. .It Xo .Fn archive_read_set_filter_options , .Fn archive_read_set_format_options , @@ -322,9 +369,9 @@ a .Tn struct archive_entry . This is a convenience wrapper around .Fn archive_read_next_header2 -that uses an internal +that reuses an internal .Tn struct archive_entry -object. +object for each request. .It Fn archive_read_next_header2 Read the header for the next entry and populate the provided .Tn struct archive_entry . From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 20:18:02 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13AB5106564A; Mon, 27 Apr 2009 20:18:02 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 009178FC1A; Mon, 27 Apr 2009 20:18:02 +0000 (UTC) (envelope-from brueffer@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 n3RKI15R025815; Mon, 27 Apr 2009 20:18:01 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RKI14X025813; Mon, 27 Apr 2009 20:18:01 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200904272018.n3RKI14X025813@svn.freebsd.org> From: Christian Brueffer Date: Mon, 27 Apr 2009 20:18:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191596 - in stable/7: usr.bin/cpuset usr.sbin/jail X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 20:18:02 -0000 Author: brueffer Date: Mon Apr 27 20:18:01 2009 New Revision: 191596 URL: http://svn.freebsd.org/changeset/base/191596 Log: Document an issue of jail(8) in conjunction with cpuset(1). Problem reported by: Miroslav Lachman <000.fbsd@quip.cz> Reviewed by: bz Approved by: re (kib) Modified: stable/7/usr.bin/cpuset/cpuset.1 stable/7/usr.sbin/jail/jail.8 Modified: stable/7/usr.bin/cpuset/cpuset.1 ============================================================================== --- stable/7/usr.bin/cpuset/cpuset.1 Mon Apr 27 20:13:13 2009 (r191595) +++ stable/7/usr.bin/cpuset/cpuset.1 Mon Apr 27 20:18:01 2009 (r191596) @@ -177,3 +177,9 @@ command first appeared in .Fx 7.1 . .Sh AUTHORS .An Jeffrey Roberson Aq jeff@FreeBSD.org +.Sh BUGS +At the moment it is possible for a superuser inside a +.Xr jail 8 +to modify the root +.Xr cpuset 2 +of that jail. Modified: stable/7/usr.sbin/jail/jail.8 ============================================================================== --- stable/7/usr.sbin/jail/jail.8 Mon Apr 27 20:13:13 2009 (r191595) +++ stable/7/usr.sbin/jail/jail.8 Mon Apr 27 20:18:01 2009 (r191596) @@ -699,3 +699,9 @@ Currently, the simplest answer is to min offered on the host, possibly limiting it to services offered from .Xr inetd 8 which is easily configurable. +.Pp +At the moment it is possible for a superuser inside a +.Nm +to modify the root +.Xr cpuset 2 +of that jail. From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 20:23:23 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04EC2106566B; Mon, 27 Apr 2009 20:23:23 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6EC18FC19; Mon, 27 Apr 2009 20:23:22 +0000 (UTC) (envelope-from kientzle@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 n3RKNM8a025956; Mon, 27 Apr 2009 20:23:22 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RKNMsL025955; Mon, 27 Apr 2009 20:23:22 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904272023.n3RKNMsL025955@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 20:23:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191597 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 20:23:23 -0000 Author: kientzle Date: Mon Apr 27 20:23:22 2009 New Revision: 191597 URL: http://svn.freebsd.org/changeset/base/191597 Log: Symlink some additional man page entries. Modified: head/lib/libarchive/Makefile Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Mon Apr 27 20:18:01 2009 (r191596) +++ head/lib/libarchive/Makefile Mon Apr 27 20:23:22 2009 (r191597) @@ -178,6 +178,7 @@ MLINKS+= archive_read.3 archive_read_ext MLINKS+= archive_read.3 archive_read_finish.3 MLINKS+= archive_read.3 archive_read_new.3 MLINKS+= archive_read.3 archive_read_next_header.3 +MLINKS+= archive_read.3 archive_read_next_header2.3 MLINKS+= archive_read.3 archive_read_open.3 MLINKS+= archive_read.3 archive_read_open2.3 MLINKS+= archive_read.3 archive_read_open_FILE.3 @@ -189,11 +190,17 @@ MLINKS+= archive_read.3 archive_read_sup MLINKS+= archive_read.3 archive_read_support_compression_bzip2.3 MLINKS+= archive_read.3 archive_read_support_compression_compress.3 MLINKS+= archive_read.3 archive_read_support_compression_gzip.3 +MLINKS+= archive_read.3 archive_read_support_compression_lzma.3 MLINKS+= archive_read.3 archive_read_support_compression_none.3 MLINKS+= archive_read.3 archive_read_support_compression_program.3 +MLINKS+= archive_read.3 archive_read_support_compression_program_signature.3 +MLINKS+= archive_read.3 archive_read_support_compression_xz.3 MLINKS+= archive_read.3 archive_read_support_format_all.3 +MLINKS+= archive_read.3 archive_read_support_format_ar.3 MLINKS+= archive_read.3 archive_read_support_format_cpio.3 +MLINKS+= archive_read.3 archive_read_support_format_empty.3 MLINKS+= archive_read.3 archive_read_support_format_iso9660.3 +MLINKS+= archive_read.3 archive_read_support_format_raw.3 MLINKS+= archive_read.3 archive_read_support_format_tar.3 MLINKS+= archive_read.3 archive_read_support_format_zip.3 MLINKS+= archive_read_disk.3 archive_read_disk_entry_from_file.3 From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 20:38:28 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43BAF1065670; Mon, 27 Apr 2009 20:38:28 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EEFF8FC24; Mon, 27 Apr 2009 20:38:28 +0000 (UTC) (envelope-from brueffer@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 n3RKcSNJ026265; Mon, 27 Apr 2009 20:38:28 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RKcRhS026263; Mon, 27 Apr 2009 20:38:27 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200904272038.n3RKcRhS026263@svn.freebsd.org> From: Christian Brueffer Date: Mon, 27 Apr 2009 20:38:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191598 - in releng/7.2: usr.bin/cpuset usr.sbin/jail X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 20:38:28 -0000 Author: brueffer Date: Mon Apr 27 20:38:27 2009 New Revision: 191598 URL: http://svn.freebsd.org/changeset/base/191598 Log: Document an issue of jail(8) in conjunction with cpuset(1). Problem reported by: Miroslav Lachman <000.fbsd@quip.cz> Reviewed by: bz Approved by: re (kib) Modified: releng/7.2/usr.bin/cpuset/cpuset.1 releng/7.2/usr.sbin/jail/jail.8 Modified: releng/7.2/usr.bin/cpuset/cpuset.1 ============================================================================== --- releng/7.2/usr.bin/cpuset/cpuset.1 Mon Apr 27 20:23:22 2009 (r191597) +++ releng/7.2/usr.bin/cpuset/cpuset.1 Mon Apr 27 20:38:27 2009 (r191598) @@ -177,3 +177,9 @@ command first appeared in .Fx 7.1 . .Sh AUTHORS .An Jeffrey Roberson Aq jeff@FreeBSD.org +.Sh BUGS +At the moment it is possible for a superuser inside a +.Xr jail 8 +to modify the root +.Xr cpuset 2 +of that jail. Modified: releng/7.2/usr.sbin/jail/jail.8 ============================================================================== --- releng/7.2/usr.sbin/jail/jail.8 Mon Apr 27 20:23:22 2009 (r191597) +++ releng/7.2/usr.sbin/jail/jail.8 Mon Apr 27 20:38:27 2009 (r191598) @@ -699,3 +699,9 @@ Currently, the simplest answer is to min offered on the host, possibly limiting it to services offered from .Xr inetd 8 which is easily configurable. +.Pp +At the moment it is possible for a superuser inside a +.Nm +to modify the root +.Xr cpuset 2 +of that jail. From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 21:04:16 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE798106566B; Mon, 27 Apr 2009 21:04:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B279F8FC20; Mon, 27 Apr 2009 21:04:16 +0000 (UTC) (envelope-from bz@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 n3RL4GZQ026802; Mon, 27 Apr 2009 21:04:16 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RL4GjJ026800; Mon, 27 Apr 2009 21:04:16 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200904272104.n3RL4GjJ026800@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 27 Apr 2009 21:04:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191599 - head/sys/netipsec X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 21:04:18 -0000 Author: bz Date: Mon Apr 27 21:04:16 2009 New Revision: 191599 URL: http://svn.freebsd.org/changeset/base/191599 Log: key_gettunnel() has been unsued with FAST_IPSEC (now IPSEC). KAME had explicit checks at one point using it, so just hide it behind #if 0 for now until we are sure if we can completely dump it or not. MFC after: 1 month Modified: head/sys/netipsec/key.c head/sys/netipsec/key.h Modified: head/sys/netipsec/key.c ============================================================================== --- head/sys/netipsec/key.c Mon Apr 27 20:38:27 2009 (r191598) +++ head/sys/netipsec/key.c Mon Apr 27 21:04:16 2009 (r191599) @@ -684,6 +684,7 @@ found: return sp; } +#if 0 /* * return a policy that matches this particular inbound packet. * XXX slow @@ -760,6 +761,7 @@ done: sp, sp ? sp->id : 0, sp ? sp->refcnt : 0)); return sp; } +#endif /* * allocating an SA entry for an *OUTBOUND* packet. Modified: head/sys/netipsec/key.h ============================================================================== --- head/sys/netipsec/key.h Mon Apr 27 20:38:27 2009 (r191598) +++ head/sys/netipsec/key.h Mon Apr 27 21:04:16 2009 (r191599) @@ -53,9 +53,11 @@ extern struct secpolicy *key_allocsp(str extern struct secpolicy *key_allocsp2(u_int32_t spi, union sockaddr_union *dst, u_int8_t proto, u_int dir, const char*, int); extern struct secpolicy *key_newsp(const char*, int); +#if 0 extern struct secpolicy *key_gettunnel(const struct sockaddr *, const struct sockaddr *, const struct sockaddr *, const struct sockaddr *, const char*, int); +#endif /* NB: prepend with _ for KAME IPv6 compatbility */ extern void _key_freesp(struct secpolicy **, const char*, int); @@ -65,8 +67,10 @@ extern void _key_freesp(struct secpolicy key_allocsp2(spi, dst, proto, dir, __FILE__, __LINE__) #define KEY_NEWSP() \ key_newsp(__FILE__, __LINE__) +#if 0 #define KEY_GETTUNNEL(osrc, odst, isrc, idst) \ key_gettunnel(osrc, odst, isrc, idst, __FILE__, __LINE__) +#endif #define KEY_FREESP(spp) \ _key_freesp(spp, __FILE__, __LINE__) From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 21:05:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F77A1065676; Mon, 27 Apr 2009 21:05:26 +0000 (UTC) (envelope-from itetcu@FreeBSD.org) Received: from it.buh.tecnik93.com (it.buh.tecnik93.com [81.196.204.98]) by mx1.freebsd.org (Postfix) with ESMTP id 32EA38FC15; Mon, 27 Apr 2009 21:05:26 +0000 (UTC) (envelope-from itetcu@FreeBSD.org) Received: from it.buh.tecnik93.com (localhost [127.0.0.1]) by it.buh.tecnik93.com (Postfix) with ESMTP id 755EE2C50D39; Mon, 27 Apr 2009 23:48:20 +0300 (EEST) Date: Mon, 27 Apr 2009 23:48:19 +0300 From: Ion-Mihai Tetcu To: Xin LI Message-ID: <20090427234819.3e5b0291@it.buh.tecnik93.com> In-Reply-To: <200904271915.n3RJFElj024099@svn.freebsd.org> References: <200904271915.n3RJFElj024099@svn.freebsd.org> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.16.1; i386-portbld-freebsd7.1) Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/9vBAimLw1=fATBLo9i.Kk2a"; protocol="application/pgp-signature" Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-7@freebsd.org Subject: Re: svn commit: r191587 - stable/7/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 21:05:27 -0000 --Sig_/9vBAimLw1=fATBLo9i.Kk2a Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Mon, 27 Apr 2009 19:15:14 +0000 (UTC) Xin LI wrote: > +.It Fl C > +Check if file system was dismouted cleanly. > +If so, skip file system checks (like "preen"). > +However, if the file system was not cleanly dismounted, do full > checks, +is if > +.Nm > +was invoked without > +.Fl C . Should that s/is if/as if/ ? --=20 IOnut - Un^d^dregistered ;) FreeBSD "user" "Intellectual Property" is nowhere near as valuable as "Intellect" FreeBSD committer -> itetcu@FreeBSD.org, PGP Key ID 057E9F8B493A297B --Sig_/9vBAimLw1=fATBLo9i.Kk2a Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (FreeBSD) iEYEARECAAYFAkn2GhQACgkQJ7GIuiH/oeXzlgCgpK5AKhhAzxhqRf9dG9OGlWTG T3kAoKwVC6XneBw1bYQMc/xRdygGZCkp =y0QZ -----END PGP SIGNATURE----- --Sig_/9vBAimLw1=fATBLo9i.Kk2a-- From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 21:34:15 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7244106564A; Mon, 27 Apr 2009 21:34:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D58D78FC13; Mon, 27 Apr 2009 21:34:15 +0000 (UTC) (envelope-from jkim@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 n3RLYFYS027484; Mon, 27 Apr 2009 21:34:15 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RLYFGr027482; Mon, 27 Apr 2009 21:34:15 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904272134.n3RLYFGr027482@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 27 Apr 2009 21:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191600 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 21:34:16 -0000 Author: jkim Date: Mon Apr 27 21:34:15 2009 New Revision: 191600 URL: http://svn.freebsd.org/changeset/base/191600 Log: - Give generic AHCI driver lower priority than device-specific drivers. - Consistently use BUS_PROBE_GENERIC instead of -100. Modified: head/sys/dev/ata/ata-pci.c head/sys/dev/ata/chipsets/ata-ahci.c Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Mon Apr 27 21:04:16 2009 (r191599) +++ head/sys/dev/ata/ata-pci.c Mon Apr 27 21:34:15 2009 (r191600) @@ -70,18 +70,18 @@ ata_pci_probe(device_t dev) /* is this a storage class device ? */ if (pci_get_class(dev) != PCIC_STORAGE) - return ENXIO; + return (ENXIO); /* is this an IDE/ATA type device ? */ if (pci_get_subclass(dev) != PCIS_STORAGE_IDE) - return ENXIO; + return (ENXIO); sprintf(buffer, "%s ATA controller", ata_pcivendor2str(dev)); device_set_desc_copy(dev, buffer); ctlr->chipinit = ata_generic_chipinit; /* we are a low priority handler */ - return -100; + return (BUS_PROBE_GENERIC); } int Modified: head/sys/dev/ata/chipsets/ata-ahci.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 21:04:16 2009 (r191599) +++ head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 21:34:15 2009 (r191600) @@ -85,7 +85,7 @@ ata_ahci_probe(device_t dev) /* is this PCI device flagged as an AHCI compliant chip ? */ if (pci_read_config(dev, PCIR_PROGIF, 1) != PCIP_STORAGE_SATA_AHCI_1_0) - return ENXIO; + return (ENXIO); if (bootverbose) sprintf(buffer, "%s (ID=%08x) AHCI controller", @@ -94,7 +94,7 @@ ata_ahci_probe(device_t dev) sprintf(buffer, "%s AHCI controller", ata_pcivendor2str(dev)); device_set_desc_copy(dev, buffer); ctlr->chipinit = ata_ahci_chipinit; - return 0; + return (BUS_PROBE_GENERIC); } int From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 21:45:05 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66D941065678; Mon, 27 Apr 2009 21:45:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5542B8FC25; Mon, 27 Apr 2009 21:45:05 +0000 (UTC) (envelope-from jkim@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 n3RLj5IS027734; Mon, 27 Apr 2009 21:45:05 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RLj50c027733; Mon, 27 Apr 2009 21:45:05 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904272145.n3RLj50c027733@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 27 Apr 2009 21:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191601 - head/sys/dev/ata/chipsets X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 21:45:06 -0000 Author: jkim Date: Mon Apr 27 21:45:05 2009 New Revision: 191601 URL: http://svn.freebsd.org/changeset/base/191601 Log: Use cached progif instead of reading it again. Modified: head/sys/dev/ata/chipsets/ata-ahci.c Modified: head/sys/dev/ata/chipsets/ata-ahci.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 21:34:15 2009 (r191600) +++ head/sys/dev/ata/chipsets/ata-ahci.c Mon Apr 27 21:45:05 2009 (r191601) @@ -84,7 +84,7 @@ ata_ahci_probe(device_t dev) return (ENXIO); /* is this PCI device flagged as an AHCI compliant chip ? */ - if (pci_read_config(dev, PCIR_PROGIF, 1) != PCIP_STORAGE_SATA_AHCI_1_0) + if (pci_get_progif(dev) != PCIP_STORAGE_SATA_AHCI_1_0) return (ENXIO); if (bootverbose) From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 21:53:45 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 814C4106566C; Mon, 27 Apr 2009 21:53:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E6288FC12; Mon, 27 Apr 2009 21:53:45 +0000 (UTC) (envelope-from hrs@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 n3RLrj9C027923; Mon, 27 Apr 2009 21:53:45 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RLrj4r027922; Mon, 27 Apr 2009 21:53:45 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904272153.n3RLrj4r027922@svn.freebsd.org> From: Hiroki Sato Date: Mon, 27 Apr 2009 21:53:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191602 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 21:53:46 -0000 Author: hrs Date: Mon Apr 27 21:53:44 2009 New Revision: 191602 URL: http://svn.freebsd.org/changeset/base/191602 Log: Update release notes: DDB show mount added, sparc64 US III support, DRM r600/r700, ae(4) WoL support, hardware MAC stats: cxgb(4), msk(4), nfe(4), re(4) hw.re.prefer_iomap, sis(4) VLAN tagging bugfix, txp(4) update, TCP MD5 signature option for IPv6, gpart(8) updated; APM and EBR scheme support, mpt(4) in GENERIC on sparc64, vfs.nfs.prime_access_cache for NFSv3, ncal(1) multibyte support, csup CVSMode support, du(1) -A and -B option added, makefs(8) added, and mergemaster(8) -F option added. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Mon Apr 27 21:45:05 2009 (r191601) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Mon Apr 27 21:53:44 2009 (r191602) @@ -208,6 +208,9 @@ Kernel Changes + The &man.ddb.8; kernel debugger now supports a + show mount subcommand. + The &os; DTrace subsystem now supports a probe for process execution. @@ -305,6 +308,9 @@ Hardware Support + The &os; now supports Ultra SPARC III + (Cheetah) family. + The &man.acpi.4; subsystem now supports a &man.sysctl.8; variable debug.batt.batt_sleep_ms. On some laptops with smart batteries, enabling battery @@ -353,9 +359,9 @@ The DRM, a kernel module named Direct Rendering Manager that gives direct hardware access to DRI clients, - has been updated. Support for AMD/ATI r500 and IGP based - chips, XGI V3XE/V5/V8, and Intel i915 chipsets has been - improved. + has been updated. Support for AMD/ATI r500, r600, r700, + and IGP based chips, XGI V3XE/V5/V8, and Intel i915 + chipsets has been improved. A new loader tunable hw.drm.msi which controls if DRM uses MSI or not. This is set to @@ -384,6 +390,9 @@ Network Interface Support + The &man.ae.4; driver now supports WoL + (Wake on LAN). + The &man.ale.4; driver are now included in the GENERIC kernel. @@ -398,6 +407,9 @@ The ciphy(4) driver now supports Vitesse VSC8211 PHY. + The &man.cxgb.4; driver now supports hardware MAC + statistics. + The &man.fxp.4; driver has been improved. Changes include: @@ -442,19 +454,34 @@ The &man.msk.4; driver has been improved. An issue which makes it hang up in a certain condition has been - fixed. + fixed. A hardware MAC statistics support has been added + and users can get the information via sysctl variables + named + dev.msk.N.stats. The &man.mxge.4; driver now supports some newer revisions and 10GBASE-LRM and 10GBASE-Twinax media types. + The &man.nfe.4; driver now supports hardware MAC + statistics. + The &man.re.4; driver has been improved. It now - detects the link status. + detects the link status. A new loader tunable + hw.re.prefer_iomap to disable memory + register mapping. This tunable is 0 + for all controllers except RTL8169SC family. The &man.rl.4; driver has been improved. It now detects the link status and a bug which prevents it from working on systems with more than 4GB memory has been fixed. + + A bug in &man.sis.4; on VLAN tagged frame handling has + been fixed. + + The &man.txp.4; driver has been updated to the latest + firmware. @@ -482,6 +509,10 @@ + The TCP MD5 Signature Option (RFC 2385) for IPv6 has + been implemented in the same way it has been implemented for + IPv4. + This also changes the semantics of selecting the IP for processes within a &man.jail.8; as it now uses the same logic as outside the &man.jail.8;. @@ -527,7 +558,13 @@ A bug in the &man.ciss.4; driver which caused low max device openings count that has led - to poor performance has been fixed. + to poor performance has been fixed. + + The &man.gpart.8; utility has been updated. The APM + scheme now supports Tivo Series 1 partitions (read only), a + new EBR scheme to support Extended Boot Records has been + added, the BSD scheme now support bootcode, and bugs in PC98 + and VTOC8 scheme have been fixed. An issue in the &man.gvinum.8; with access permissions to underlying disks used by a gvinum plex has been fixed. @@ -539,6 +576,9 @@ and SDHC cards, high speed timing, wide bus, and multiblock transfers. + The &man.mpt.4; driver is now in the + GENERIC kernel. + The &man.sdhci.4; driver has been added. This supports PCI devices with class 8 and subclass 5 according to SD Host Controller Specification. @@ -569,6 +609,17 @@ + The &os; NFS file system now supports a sysctl variable + vfs.nfs.prime_access_cache to determine + whether or not nfs_getattr() will use + an ACCESS RPC to prime the access cache instead of a simple + GETATTR RPC. This is because on many NFS servers an ACCESS + RPC is much more expensive to service than a GETATTR RPC for + files in a NFSv3 mount. The sysctl variables is enabled by + default to maintain the previous behavior. + + The &os; UDF file system now supports fifo. + The shared vnode locking for pathname lookups in &man.VFS.9; subsystem has been improved. This is disabled by default. Setting a sysctl variable @@ -592,9 +643,16 @@ Point (NAP), Group Ad-hoc Network (GN) and Personal Area Network User (PANU) profiles. + The &man.ncal.1; utility now supports multibyte + characters. + The &man.config.8; utility now supports multiple makeoption lines. + The &man.csup.1; utility now supports CVSMode to fetch a + complete CVS repository. Note that the rsync transfer mode is + currently disabled. + The &man.dirname.1; utility now accepts multiple arguments in the same way that &man.basename.1; does. @@ -602,6 +660,21 @@ flag. When specified, the &man.du.1; counts a file with multiple hard links as multiple different files. + The &man.du.1; utility now supports an flag + to display the apparent size instead of the disk usage. This can be + helpful when operating on compressed volumes or sparse files. + + The &man.du.1; utility now supports a option to + calculate block counts in blocksize byte blocks. This is + different from the , + options or setting BLOCKSIZE and gives an + estimate of how much space the examined file hierarchy would + require on a filesystem with the given + blocksize. Unless in + mode, blocksize + is rounded up to the next multiple of 512. + The &man.dumpfs.8; utility now supports an flag, which causes it to list all free fragments in the file system by fragment (block) number. This @@ -640,6 +713,13 @@ flag is specified and the file does not exist, the &man.ln.1; will put a warning message. + The &man.makefs.8; utility to create a file system image + from a directory tree has been added. + + The &man.mergemaster.8; utility now supports an + option to automatically install files that + differ only in version control ID strings. + The &man.netstat.1; utility now reports &man.unix.4; sockets listen queue statistics when an flag. From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:06:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 448D91065670; Mon, 27 Apr 2009 22:06:50 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 333EE8FC18; Mon, 27 Apr 2009 22:06:50 +0000 (UTC) (envelope-from sam@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 n3RM6nxo028236; Mon, 27 Apr 2009 22:06:49 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RM6n0h028235; Mon, 27 Apr 2009 22:06:49 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904272206.n3RM6n0h028235@svn.freebsd.org> From: Sam Leffler Date: Mon, 27 Apr 2009 22:06:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191603 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:06:50 -0000 Author: sam Date: Mon Apr 27 22:06:49 2009 New Revision: 191603 URL: http://svn.freebsd.org/changeset/base/191603 Log: use if_transmit intead of direct frobbing of the if_snd q; this is no longer allowed Identified by: rwatson Reviewed by: kmacy Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Mon Apr 27 21:53:44 2009 (r191602) +++ head/sys/net/if_bridge.c Mon Apr 27 22:06:49 2009 (r191603) @@ -1761,24 +1761,15 @@ bridge_enqueue(struct bridge_softc *sc, } if (err == 0) - IFQ_ENQUEUE(&dst_ifp->if_snd, m, err); + dst_ifp->if_transmit(dst_ifp, m); } if (err == 0) { - sc->sc_ifp->if_opackets++; sc->sc_ifp->if_obytes += len; - - dst_ifp->if_obytes += len; - - if (mflags & M_MCAST) { + if (mflags & M_MCAST) sc->sc_ifp->if_omcasts++; - dst_ifp->if_omcasts++; - } } - - if ((dst_ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) - (*dst_ifp->if_start)(dst_ifp); } /* From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:39:43 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2973106564A; Mon, 27 Apr 2009 22:39:43 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A0EB98FC18; Mon, 27 Apr 2009 22:39:43 +0000 (UTC) (envelope-from kientzle@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 n3RMdhFi029184; Mon, 27 Apr 2009 22:39:43 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMdhwU029183; Mon, 27 Apr 2009 22:39:43 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200904272239.n3RMdhwU029183@svn.freebsd.org> From: Tim Kientzle Date: Mon, 27 Apr 2009 22:39:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191604 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:39:44 -0000 Author: kientzle Date: Mon Apr 27 22:39:43 2009 New Revision: 191604 URL: http://svn.freebsd.org/changeset/base/191604 Log: Document the liblzma support. Unfortunately, liblzma itself is GPLed, so unlikely to become part of the FreeBSD base system. However, the core lzma compression/decompression code is public domain, so it should be feasible for someone to create a compatible library without the GPL strings. Modified: head/lib/libarchive/Makefile Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Mon Apr 27 22:06:49 2009 (r191603) +++ head/lib/libarchive/Makefile Mon Apr 27 22:39:43 2009 (r191604) @@ -11,6 +11,9 @@ SHLIB_MAJOR= 4 CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\" CFLAGS+= -I${.OBJDIR} +#Uncomment to build with full lzma/xz support via liblzma +#CFLAGS+= -I/usr/local/include -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 +#LDADD+= -L/usr/local/lib -llzma .if ${MK_OPENSSL} != "no" CFLAGS+= -DWITH_OPENSSL From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:44:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E030106566B; Mon, 27 Apr 2009 22:44:26 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7CD178FC0C; Mon, 27 Apr 2009 22:44:26 +0000 (UTC) (envelope-from kmacy@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 n3RMiQbP029378; Mon, 27 Apr 2009 22:44:26 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMiQR6029377; Mon, 27 Apr 2009 22:44:26 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272244.n3RMiQR6029377@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:44:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191605 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:44:27 -0000 Author: kmacy Date: Mon Apr 27 22:44:26 2009 New Revision: 191605 URL: http://svn.freebsd.org/changeset/base/191605 Log: remove call to IFQ_HANDOFF is it called by if_transmit in the default case and doing so allows the ifnet driver to define its own queueing mechanism Modified: head/sys/net/if_arcsubr.c Modified: head/sys/net/if_arcsubr.c ============================================================================== --- head/sys/net/if_arcsubr.c Mon Apr 27 22:39:43 2009 (r191604) +++ head/sys/net/if_arcsubr.c Mon Apr 27 22:44:26 2009 (r191605) @@ -237,7 +237,7 @@ arc_output(struct ifnet *ifp, struct mbu BPF_MTAP(ifp, m); - IFQ_HANDOFF(ifp, m, error); + error = ifp->if_transmit(ifp, m); return (error); From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:45:19 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98013106566B; Mon, 27 Apr 2009 22:45:19 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B4918FC0C; Mon, 27 Apr 2009 22:45:19 +0000 (UTC) (envelope-from kmacy@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 n3RMjJo8029443; Mon, 27 Apr 2009 22:45:19 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMjJU6029442; Mon, 27 Apr 2009 22:45:19 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272245.n3RMjJU6029442@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191606 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:45:21 -0000 Author: kmacy Date: Mon Apr 27 22:45:19 2009 New Revision: 191606 URL: http://svn.freebsd.org/changeset/base/191606 Log: remove gratuitous memory barrier, a remnant of unified L2 / L3 Modified: head/sys/net/flowtable.c Modified: head/sys/net/flowtable.c ============================================================================== --- head/sys/net/flowtable.c Mon Apr 27 22:44:26 2009 (r191605) +++ head/sys/net/flowtable.c Mon Apr 27 22:45:19 2009 (r191606) @@ -438,7 +438,6 @@ static void flowtable_pcpu_unlock(struct flowtable *table, uint32_t hash) { - mb(); critical_exit(); } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:45:57 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F4C0106567E; Mon, 27 Apr 2009 22:45:57 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E7CB08FC1E; Mon, 27 Apr 2009 22:45:56 +0000 (UTC) (envelope-from kmacy@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 n3RMjunt029489; Mon, 27 Apr 2009 22:45:56 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMju9N029488; Mon, 27 Apr 2009 22:45:56 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272245.n3RMju9N029488@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:45:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191607 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:45:57 -0000 Author: kmacy Date: Mon Apr 27 22:45:56 2009 New Revision: 191607 URL: http://svn.freebsd.org/changeset/base/191607 Log: replace IFQ_HANDOFF with if_transmit Modified: head/sys/net/if_ef.c Modified: head/sys/net/if_ef.c ============================================================================== --- head/sys/net/if_ef.c Mon Apr 27 22:45:19 2009 (r191606) +++ head/sys/net/if_ef.c Mon Apr 27 22:45:56 2009 (r191607) @@ -222,7 +222,7 @@ ef_start(struct ifnet *ifp) if (m == 0) break; BPF_MTAP(ifp, m); - IFQ_HANDOFF(p, m, error); + error = p->if_transmit(p, m); if (error) { ifp->if_oerrors++; continue; From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:46:27 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1DE0E1065690; Mon, 27 Apr 2009 22:46:27 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C83F8FC21; Mon, 27 Apr 2009 22:46:27 +0000 (UTC) (envelope-from kmacy@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 n3RMkQJw029537; Mon, 27 Apr 2009 22:46:26 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMkQTI029536; Mon, 27 Apr 2009 22:46:26 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272246.n3RMkQTI029536@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:46:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191608 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:46:27 -0000 Author: kmacy Date: Mon Apr 27 22:46:26 2009 New Revision: 191608 URL: http://svn.freebsd.org/changeset/base/191608 Log: replace IFQ_ENQUEUE + if_start with if_transmit Modified: head/sys/net/bridgestp.c Modified: head/sys/net/bridgestp.c ============================================================================== --- head/sys/net/bridgestp.c Mon Apr 27 22:45:56 2009 (r191607) +++ head/sys/net/bridgestp.c Mon Apr 27 22:46:26 2009 (r191608) @@ -98,7 +98,6 @@ static void bstp_decode_bpdu(struct bstp struct bstp_config_unit *); static void bstp_send_bpdu(struct bstp_state *, struct bstp_port *, struct bstp_cbpdu *); -static void bstp_enqueue(struct ifnet *, struct mbuf *); static int bstp_pdu_flags(struct bstp_port *); static void bstp_received_stp(struct bstp_state *, struct bstp_port *, struct mbuf **, struct bstp_tbpdu *); @@ -262,7 +261,7 @@ bstp_transmit_tcn(struct bstp_state *bs, memcpy(mtod(m, caddr_t) + sizeof(*eh), &bpdu, sizeof(bpdu)); bp->bp_txcount++; - bstp_enqueue(ifp, m); + ifp->if_transmit(ifp, m); } static void @@ -391,18 +390,7 @@ bstp_send_bpdu(struct bstp_state *bs, st m->m_len = m->m_pkthdr.len; bp->bp_txcount++; - bstp_enqueue(ifp, m); -} - -static void -bstp_enqueue(struct ifnet *dst_ifp, struct mbuf *m) -{ - int err = 0; - - IFQ_ENQUEUE(&dst_ifp->if_snd, m, err); - - if ((dst_ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) - (*dst_ifp->if_start)(dst_ifp); + ifp->if_transmit(ifp, m); } static int From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:53:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A6BE106566C; Mon, 27 Apr 2009 22:53:36 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 291638FC14; Mon, 27 Apr 2009 22:53:36 +0000 (UTC) (envelope-from kmacy@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 n3RMraog029702; Mon, 27 Apr 2009 22:53:36 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMrarq029701; Mon, 27 Apr 2009 22:53:36 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272253.n3RMrarq029701@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191609 - head/sys/dev/xl X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:53:36 -0000 Author: kmacy Date: Mon Apr 27 22:53:35 2009 New Revision: 191609 URL: http://svn.freebsd.org/changeset/base/191609 Log: remove dead code with reference to IFQ_HANDOFF Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Mon Apr 27 22:46:26 2009 (r191608) +++ head/sys/dev/xl/if_xl.c Mon Apr 27 22:53:35 2009 (r191609) @@ -798,32 +798,6 @@ xl_setmulti_hash(struct xl_softc *sc) CSR_WRITE_2(sc, XL_COMMAND, rxfilt | XL_CMD_RX_SET_FILT); } -#ifdef notdef -static void -xl_testpacket(struct xl_softc *sc) -{ - struct mbuf *m; - struct ifnet *ifp = sc->xl_ifp; - - MGETHDR(m, M_DONTWAIT, MT_DATA); - - if (m == NULL) - return; - - bcopy(IF_LLADDR(sc->xl_ifp), - mtod(m, struct ether_header *)->ether_dhost, ETHER_ADDR_LEN); - bcopy(IF_LLADDR(sc->xl_ifp), - mtod(m, struct ether_header *)->ether_shost, ETHER_ADDR_LEN); - mtod(m, struct ether_header *)->ether_type = htons(3); - mtod(m, unsigned char *)[14] = 0; - mtod(m, unsigned char *)[15] = 0; - mtod(m, unsigned char *)[16] = 0xE3; - m->m_len = m->m_pkthdr.len = sizeof(struct ether_header) + 3; - IFQ_ENQUEUE(&ifp->if_snd, m); - xl_start(ifp); -} -#endif - static void xl_setcfg(struct xl_softc *sc) { From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:54:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1AD01065670; Mon, 27 Apr 2009 22:54:30 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 95D8F8FC1A; Mon, 27 Apr 2009 22:54:30 +0000 (UTC) (envelope-from kmacy@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 n3RMsUeT029755; Mon, 27 Apr 2009 22:54:30 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMsUwf029754; Mon, 27 Apr 2009 22:54:30 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272254.n3RMsUwf029754@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:54:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191610 - head/sys/dev/cxgb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:54:31 -0000 Author: kmacy Date: Mon Apr 27 22:54:30 2009 New Revision: 191610 URL: http://svn.freebsd.org/changeset/base/191610 Log: simplify by removing dead code Modified: head/sys/dev/cxgb/cxgb_multiq.c Modified: head/sys/dev/cxgb/cxgb_multiq.c ============================================================================== --- head/sys/dev/cxgb/cxgb_multiq.c Mon Apr 27 22:53:35 2009 (r191609) +++ head/sys/dev/cxgb/cxgb_multiq.c Mon Apr 27 22:54:30 2009 (r191610) @@ -135,29 +135,6 @@ cxgb_pcpu_enqueue_packet_(struct sge_qse return (err); } -int -cxgb_pcpu_enqueue_packet(struct ifnet *ifp, struct mbuf *m) -{ - struct port_info *pi = ifp->if_softc; - struct sge_qset *qs; - int err = 0, qidx; -#ifdef IFNET_MULTIQUEUE - int32_t calc_cookie; - - calc_cookie = m->m_pkthdr.flowid; - qidx = cxgb_pcpu_cookie_to_qidx(pi, calc_cookie); -#else - qidx = 0; -#endif - qs = &pi->adapter->sge.qs[qidx]; - if (ALTQ_IS_ENABLED(&ifp->if_snd)) { - IFQ_ENQUEUE(qs->txq[0].txq_ifq, m, err); - } else { - err = cxgb_pcpu_enqueue_packet_(qs, m); - } - return (err); -} - static int cxgb_dequeue_packet(struct sge_txq *txq, struct mbuf **m_vec) { @@ -166,20 +143,7 @@ cxgb_dequeue_packet(struct sge_txq *txq, int count, size, coalesced; struct adapter *sc; -#ifndef IFNET_MULTIQUEUE - struct port_info *pi = txq->port; - - mtx_assert(&txq->lock, MA_OWNED); - if (txq->immpkt != NULL) - panic("immediate packet set"); - - IFQ_DRV_DEQUEUE(&pi->ifp->if_snd, m); - if (m == NULL) - return (0); - - m_vec[0] = m; - return (1); -#endif +#ifdef ALTQ if (ALTQ_IS_ENABLED(txq->txq_ifq)) { IFQ_DRV_DEQUEUE(txq->txq_ifq, m); if (m == NULL) @@ -188,7 +152,7 @@ cxgb_dequeue_packet(struct sge_txq *txq, m_vec[0] = m; return (1); } - +#endif mtx_assert(&txq->lock, MA_OWNED); coalesced = count = size = 0; qs = txq_to_qset(txq, TXQ_ETH); @@ -332,20 +296,14 @@ cxgb_pcpu_start_(struct sge_qset *qs, st } stopped = isset(&qs->txq_stopped, TXQ_ETH); - flush = (( -#ifdef IFNET_MULTIQUEUE - !buf_ring_empty(txq->txq_mr) -#else - !IFQ_DRV_IS_EMPTY(&pi->ifp->if_snd) -#endif + flush = ((drbr_empty(pi->ifp, txq->txq_mr) && !stopped) || txq->immpkt); max_desc = tx_flush ? TX_ETH_Q_SIZE : TX_START_MAX_DESC; err = flush ? cxgb_tx(qs, max_desc) : 0; if ((tx_flush && flush && err == 0) && - (!buf_ring_empty(txq->txq_mr) || - !IFQ_DRV_IS_EMPTY(&pi->ifp->if_snd))) { + !drbr_empty(pi->ifp, txq->txq_mr)) { struct thread *td = curthread; if (++i > 1) { @@ -408,9 +366,6 @@ cxgb_start(struct ifnet *ifp) if (!p->link_config.link_ok) return; - if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) - return; - cxgb_pcpu_transmit(ifp, NULL); } From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 22:55:49 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 152D7106567F; Mon, 27 Apr 2009 22:55:49 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 035928FC08; Mon, 27 Apr 2009 22:55:49 +0000 (UTC) (envelope-from kmacy@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 n3RMtmIR029836; Mon, 27 Apr 2009 22:55:48 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RMtmA1029834; Mon, 27 Apr 2009 22:55:48 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272255.n3RMtmA1029834@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 22:55:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191611 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 22:55:49 -0000 Author: kmacy Date: Mon Apr 27 22:55:48 2009 New Revision: 191611 URL: http://svn.freebsd.org/changeset/base/191611 Log: collapse the two em_start_locked routines in to one Modified: head/sys/dev/e1000/if_em.c head/sys/dev/e1000/if_em.h Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Apr 27 22:54:30 2009 (r191610) +++ head/sys/dev/e1000/if_em.c Mon Apr 27 22:55:48 2009 (r191611) @@ -898,9 +898,7 @@ em_detach(device_t dev) bus_generic_detach(dev); if_free(ifp); -#ifdef IFNET_BUF_RING drbr_free(adapter->br, M_DEVBUF); -#endif em_free_transmit_structures(adapter); em_free_receive_structures(adapter); @@ -1061,6 +1059,7 @@ em_qflush(struct ifnet *ifp) if_qflush(ifp); EM_TX_UNLOCK(adapter); } +#endif static void em_start_locked(struct ifnet *ifp) @@ -1079,7 +1078,7 @@ em_start_locked(struct ifnet *ifp) while ((adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD) && (!ADAPTER_RING_EMPTY(adapter))) { - m_head = drbr_dequeue(ifp, adapter->br); + m_head = em_dequeue(ifp, adapter->br); if (m_head == NULL) break; /* @@ -1089,8 +1088,10 @@ em_start_locked(struct ifnet *ifp) if (em_xmit(adapter, &m_head)) { if (m_head == NULL) break; +#ifndef IFNET_BUFRING ifp->if_drv_flags |= IFF_DRV_OACTIVE; IFQ_DRV_PREPEND(&ifp->if_snd, m_head); +#endif break; } @@ -1104,47 +1105,6 @@ em_start_locked(struct ifnet *ifp) ifp->if_drv_flags |= IFF_DRV_OACTIVE; } -#else -static void -em_start_locked(struct ifnet *ifp) -{ - struct adapter *adapter = ifp->if_softc; - struct mbuf *m_head; - - EM_TX_LOCK_ASSERT(adapter); - - if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != - IFF_DRV_RUNNING) - return; - if (!adapter->link_active) - return; - - while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { - - IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); - if (m_head == NULL) - break; - /* - * Encapsulation can modify our pointer, and or make it - * NULL on failure. In that event, we can't requeue. - */ - if (em_xmit(adapter, &m_head)) { - if (m_head == NULL) - break; - ifp->if_drv_flags |= IFF_DRV_OACTIVE; - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - break; - } - - /* Send a copy of the frame to the BPF listener */ - ETHER_BPF_MTAP(ifp, m_head); - - /* Set timeout in case hardware has problems transmitting. */ - adapter->watchdog_timer = EM_TX_TIMEOUT; - } -} - -#endif static void em_start(struct ifnet *ifp) @@ -1969,12 +1929,8 @@ em_handle_tx(void *context, int pending) struct ifnet *ifp = adapter->ifp; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { -#ifdef IFNET_BUF_RING if (!EM_TX_TRYLOCK(adapter)) return; -#else - EM_TX_LOCK(adapter); -#endif em_txeof(adapter); if (!ADAPTER_RING_EMPTY(adapter)) Modified: head/sys/dev/e1000/if_em.h ============================================================================== --- head/sys/dev/e1000/if_em.h Mon Apr 27 22:54:30 2009 (r191610) +++ head/sys/dev/e1000/if_em.h Mon Apr 27 22:55:48 2009 (r191611) @@ -304,6 +304,8 @@ struct adapter { struct ifnet *ifp; #ifdef IFNET_BUF_RING struct buf_ring *br; +#else + void *br; #endif struct e1000_hw hw; @@ -496,7 +498,25 @@ typedef struct _DESCRIPTOR_PAIR #ifdef IFNET_BUF_RING #define ADAPTER_RING_EMPTY(adapter) drbr_empty((adapter)->ifp, (adapter)->br) +#define em_dequeue drbr_dequeue + #else #define ADAPTER_RING_EMPTY(adapter) IFQ_DRV_IS_EMPTY(&((adapter)->ifp->if_snd)) +#define drbr_free(br, type) +static __inline struct mbuf * +em_dequeue(struct ifnet *ifp, struct buf_ring *br) +{ + struct mbuf *m; + + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); + return (m); +} +#ifdef BUF_RING_UNDEFINED + +struct buf_ring { +}; + #endif +#endif + #endif /* _EM_H_DEFINED_ */ From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 23:37:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1DAE8106566B; Mon, 27 Apr 2009 23:37:51 +0000 (UTC) (envelope-from richard@tector.org.uk) Received: from mx0.thekeelecentre.com (mx0.thekeelecentre.com [IPv6:2001:470:1f09:16f:2::3]) by mx1.freebsd.org (Postfix) with ESMTP id 72F038FC14; Mon, 27 Apr 2009 23:37:49 +0000 (UTC) (envelope-from richard@tector.org.uk) Received: from localhost (filter.mx0.thekeelecentre.com [217.206.238.165]) by mx0.thekeelecentre.com (Postfix) with ESMTP id E21D8452F3; Tue, 28 Apr 2009 00:37:47 +0100 (BST) X-Virus-Scanned: amavisd-new at thekeelecentre.com Received: from mx0.thekeelecentre.com ([217.206.238.167]) by localhost (filter.mx0.thekeelecentre.com [217.206.238.165]) (amavisd-new, port 10024) with ESMTP id ZnTV7jBCcnNe; Mon, 27 Apr 2009 23:37:47 +0000 (UTC) Received: from [10.0.2.11] (daffy.tector.org.uk [82.71.32.9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx0.thekeelecentre.com (Postfix) with ESMTPSA id 13246452E3; Tue, 28 Apr 2009 00:37:46 +0100 (BST) Message-ID: <49F641C2.7090802@tector.org.uk> Date: Tue, 28 Apr 2009 00:37:38 +0100 From: Richard Tector User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Kip Macy References: <200904272255.n3RMtmA1029834@svn.freebsd.org> In-Reply-To: <200904272255.n3RMtmA1029834@svn.freebsd.org> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms000804030603070305060801" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191611 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 23:37:51 -0000 This is a cryptographically signed message in MIME format. --------------ms000804030603070305060801 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Kip Macy wrote: > Modified: > head/sys/dev/e1000/if_em.c > head/sys/dev/e1000/if_em.h > > Modified: head/sys/dev/e1000/if_em.c > ============================================================================== > @@ -1089,8 +1088,10 @@ em_start_locked(struct ifnet *ifp) > if (em_xmit(adapter, &m_head)) { > if (m_head == NULL) > break; > +#ifndef IFNET_BUFRING Should that be IFNET_BUF_RING? Richard --------------ms000804030603070305060801 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIHMDCC A5QwggL9oAMCAQICAQYwDQYJKoZIhvcNAQEEBQAwgYExCzAJBgNVBAYTAlVLMRYwFAYDVQQI Ew1TdGFmZm9yZHNoaXJlMQ4wDAYDVQQHEwVLZWVsZTEZMBcGA1UEChMQVGhlIEtlZWxlIENl bnRyZTEvMC0GA1UEAxMmVGhlIEtlZWxlIENlbnRyZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw HhcNMDYwOTI5MTQxNzE1WhcNMTAwOTI5MTQxNzE1WjCBhDELMAkGA1UEBhMCVUsxFjAUBgNV BAgTDVN0YWZmb3Jkc2hpcmUxEjAQBgNVBAcTCU5ld2Nhc3RsZTEKMAgGA1UEChMBIDEXMBUG A1UEAxMOUmljaGFyZCBUZWN0b3IxJDAiBgkqhkiG9w0BCQEWFXJpY2hhcmRAdGVjdG9yLm9y Zy51azCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqadxU4apjUusNPQIUTvEbH0DMoYD 0S1e8A/06cibkDaJfz7iLWqMTXhYbkq3FM7Ujjxx2Jw0JHUKo2uhrqjR0SjFhTzW1KvmhPCO MAfYht/NYjWCZzGcR3YdfNiWwBsWgCNxK3MonO8avT5CXT/NweMtZrDHhX2VquxD8v3/TlMC AwEAAaOCARUwggERMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJh dGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRzml/pUyA2Fw1CX1b2sikniz6NhzCBtgYDVR0j BIGuMIGrgBSNCaM0QC1N5Hiyb/MPAVd/ouQEEqGBh6SBhDCBgTELMAkGA1UEBhMCVUsxFjAU BgNVBAgTDVN0YWZmb3Jkc2hpcmUxDjAMBgNVBAcTBUtlZWxlMRkwFwYDVQQKExBUaGUgS2Vl bGUgQ2VudHJlMS8wLQYDVQQDEyZUaGUgS2VlbGUgQ2VudHJlIENlcnRpZmljYXRlIEF1dGhv cml0eYIJAJZYbH4e6XXnMA0GCSqGSIb3DQEBBAUAA4GBAHObxzoGANKR90eLQMS6q/yfcJMu pHLoZT/UajG8cFdxzGxXNhuQhmYAfzUOqaJL/fMBznnNoRC7IHS+iCWCI2v2Rp9cDkoFw0m1 lvp5boNpYMPGPGNfemedVGzY4vDxI4o6bBCut47KGr3+wNA/+oHtHmCBQ6WdP/WEDjsSnmeM MIIDlDCCAv2gAwIBAgIBBjANBgkqhkiG9w0BAQQFADCBgTELMAkGA1UEBhMCVUsxFjAUBgNV BAgTDVN0YWZmb3Jkc2hpcmUxDjAMBgNVBAcTBUtlZWxlMRkwFwYDVQQKExBUaGUgS2VlbGUg Q2VudHJlMS8wLQYDVQQDEyZUaGUgS2VlbGUgQ2VudHJlIENlcnRpZmljYXRlIEF1dGhvcml0 eTAeFw0wNjA5MjkxNDE3MTVaFw0xMDA5MjkxNDE3MTVaMIGEMQswCQYDVQQGEwJVSzEWMBQG A1UECBMNU3RhZmZvcmRzaGlyZTESMBAGA1UEBxMJTmV3Y2FzdGxlMQowCAYDVQQKEwEgMRcw FQYDVQQDEw5SaWNoYXJkIFRlY3RvcjEkMCIGCSqGSIb3DQEJARYVcmljaGFyZEB0ZWN0b3Iu b3JnLnVrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpp3FThqmNS6w09AhRO8RsfQMy hgPRLV7wD/TpyJuQNol/PuItaoxNeFhuSrcUztSOPHHYnDQkdQqja6GuqNHRKMWFPNbUq+aE 8I4wB9iG381iNYJnMZxHdh182JbAGxaAI3Ercyic7xq9PkJdP83B4y1msMeFfZWq7EPy/f9O UwIDAQABo4IBFTCCAREwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5l cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFHOaX+lTIDYXDUJfVvayKSeLPo2HMIG2BgNV HSMEga4wgauAFI0JozRALU3keLJv8w8BV3+i5AQSoYGHpIGEMIGBMQswCQYDVQQGEwJVSzEW MBQGA1UECBMNU3RhZmZvcmRzaGlyZTEOMAwGA1UEBxMFS2VlbGUxGTAXBgNVBAoTEFRoZSBL ZWVsZSBDZW50cmUxLzAtBgNVBAMTJlRoZSBLZWVsZSBDZW50cmUgQ2VydGlmaWNhdGUgQXV0 aG9yaXR5ggkAllhsfh7pdecwDQYJKoZIhvcNAQEEBQADgYEAc5vHOgYA0pH3R4tAxLqr/J9w ky6kcuhlP9RqMbxwV3HMbFc2G5CGZgB/NQ6pokv98wHOec2hELsgdL6IJYIja/ZGn1wOSgXD SbWW+nlug2lgw8Y8Y196Z51UbNji8PEjijpsEK63jsoavf7A0D/6ge0eYIFDpZ0/9YQOOxKe Z4wxggMbMIIDFwIBATCBhzCBgTELMAkGA1UEBhMCVUsxFjAUBgNVBAgTDVN0YWZmb3Jkc2hp cmUxDjAMBgNVBAcTBUtlZWxlMRkwFwYDVQQKExBUaGUgS2VlbGUgQ2VudHJlMS8wLQYDVQQD EyZUaGUgS2VlbGUgQ2VudHJlIENlcnRpZmljYXRlIEF1dGhvcml0eQIBBjAJBgUrDgMCGgUA oIIB6TAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wOTA0Mjcy MzM3MzhaMCMGCSqGSIb3DQEJBDEWBBQr8wH6fiCNB6alYpxTzw560lBM5TBSBgkqhkiG9w0B CQ8xRTBDMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUr DgMCBzANBggqhkiG9w0DAgIBKDCBmAYJKwYBBAGCNxAEMYGKMIGHMIGBMQswCQYDVQQGEwJV SzEWMBQGA1UECBMNU3RhZmZvcmRzaGlyZTEOMAwGA1UEBxMFS2VlbGUxGTAXBgNVBAoTEFRo ZSBLZWVsZSBDZW50cmUxLzAtBgNVBAMTJlRoZSBLZWVsZSBDZW50cmUgQ2VydGlmaWNhdGUg QXV0aG9yaXR5AgEGMIGaBgsqhkiG9w0BCRACCzGBiqCBhzCBgTELMAkGA1UEBhMCVUsxFjAU BgNVBAgTDVN0YWZmb3Jkc2hpcmUxDjAMBgNVBAcTBUtlZWxlMRkwFwYDVQQKExBUaGUgS2Vl bGUgQ2VudHJlMS8wLQYDVQQDEyZUaGUgS2VlbGUgQ2VudHJlIENlcnRpZmljYXRlIEF1dGhv cml0eQIBBjANBgkqhkiG9w0BAQEFAASBgJ56anf8HMIIMrxYpYvpEqBBA8cZl6eDiy7iJeSx gc44/108WMz8li/vACvETtT/6YweBN5pm2cNaRccl9Pnu0o8L/TArZJdBBtQx62gKSVvCy0Y tmhi6zjicaEATlBQ4CCdmiQHcxDud3JzYLs3xmykndlzqrhdj+MmOzBzll1pAAAAAAAA --------------ms000804030603070305060801-- From owner-svn-src-all@FreeBSD.ORG Mon Apr 27 23:43:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 065BB106566B; Mon, 27 Apr 2009 23:43:29 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E974C8FC19; Mon, 27 Apr 2009 23:43:28 +0000 (UTC) (envelope-from kmacy@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 n3RNhSgY030686; Mon, 27 Apr 2009 23:43:28 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3RNhSmI030685; Mon, 27 Apr 2009 23:43:28 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200904272343.n3RNhSmI030685@svn.freebsd.org> From: Kip Macy Date: Mon, 27 Apr 2009 23:43:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191612 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2009 23:43:29 -0000 Author: kmacy Date: Mon Apr 27 23:43:28 2009 New Revision: 191612 URL: http://svn.freebsd.org/changeset/base/191612 Log: fix typo in conditional Modified: head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Apr 27 22:55:48 2009 (r191611) +++ head/sys/dev/e1000/if_em.c Mon Apr 27 23:43:28 2009 (r191612) @@ -1088,7 +1088,7 @@ em_start_locked(struct ifnet *ifp) if (em_xmit(adapter, &m_head)) { if (m_head == NULL) break; -#ifndef IFNET_BUFRING +#ifndef IFNET_BUF_RING ifp->if_drv_flags |= IFF_DRV_OACTIVE; IFQ_DRV_PREPEND(&ifp->if_snd, m_head); #endif From owner-svn-src-all@FreeBSD.ORG Tue Apr 28 04:45:07 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 184C41065672; Tue, 28 Apr 2009 04:45:07 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF8918FC18; Tue, 28 Apr 2009 04:45:06 +0000 (UTC) (envelope-from hrs@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 n3S4j6Uf038546; Tue, 28 Apr 2009 04:45:06 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S4j6Sd038545; Tue, 28 Apr 2009 04:45:06 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200904280445.n3S4j6Sd038545@svn.freebsd.org> From: Hiroki Sato Date: Tue, 28 Apr 2009 04:45:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191614 - releng/7.2/release/doc/en_US.ISO8859-1/relnotes X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2009 04:45:07 -0000 Author: hrs Date: Tue Apr 28 04:45:06 2009 New Revision: 191614 URL: http://svn.freebsd.org/changeset/base/191614 Log: Update release notes: schizo driver on sparc64, txp(4) various improvements, tap(4) SIOSIFMTU support. Approved by: re (implicit) Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Tue Apr 28 02:59:18 2009 (r191613) +++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml Tue Apr 28 04:45:06 2009 (r191614) @@ -348,6 +348,10 @@ MSI/MSIX is enabled. This change fixes interrupt storm related issues. + The schizo(4) driver for Schizo + Fireplane/Safari to PCI 2.1 and Tomatillo JBus to PCI 2.2 + bridges has been added. + A &man.sysctl.3; leaf node has a flag to tag itself as MPSAFE now. @@ -480,8 +484,18 @@ A bug in &man.sis.4; on VLAN tagged frame handling has been fixed. - The &man.txp.4; driver has been updated to the latest - firmware. + The &man.txp.4; driver now works on all supported + architecture. Also, &man.altq.4; support, WoL support, + checksum offload when VLAN enabled, better link state + change handling, a new sysctl variable + dev.txp.N.stats + for MAC statistics have been added. A new sysctl + variable + dev.txp.N.process_limit + to control how many received frames should be served in Rx + handler (set to 64 by default and valid ranges are 16 to + 128 in unit of frames) has been added. The firmware has + been updated to the latest version. @@ -531,6 +545,13 @@ obtain network interface name using file descriptor for character device. + The &man.tap.4; now supports + SIOCSIFMTU ioctl to set a higher MTU than + 1500 (ETHERMTU). This allows &man.tap.4; device to be added + to a bridge, which requires all interface members to have + the same MTU, with an interface configured for jumbo + frames. + The domains list for handling the list of supported domains in the &man.unix.4; (UNIX domain protocol family) subsystem is now MPSAFE. From owner-svn-src-all@FreeBSD.ORG Tue Apr 28 07:44:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A68561065672; Tue, 28 Apr 2009 07:44:12 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 945948FC15; Tue, 28 Apr 2009 07:44:12 +0000 (UTC) (envelope-from edwin@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 n3S7iC3u041850; Tue, 28 Apr 2009 07:44:12 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S7iCMS041849; Tue, 28 Apr 2009 07:44:12 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200904280744.n3S7iCMS041849@svn.freebsd.org> From: Edwin Groothuis Date: Tue, 28 Apr 2009 07:44:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191615 - vendor/tzdata/dist X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2009 07:44:13 -0000 Author: edwin Date: Tue Apr 28 07:44:12 2009 New Revision: 191615 URL: http://svn.freebsd.org/changeset/base/191615 Log: Vendor import of tzdata2009g Egypt will have DST till the end of September the coming years. Modified: vendor/tzdata/dist/africa Modified: vendor/tzdata/dist/africa ============================================================================== --- vendor/tzdata/dist/africa Tue Apr 28 04:45:06 2009 (r191614) +++ vendor/tzdata/dist/africa Tue Apr 28 07:44:12 2009 (r191615) @@ -1,4 +1,4 @@ -# @(#)africa 8.18 +# @(#)africa 8.19 #
 
 # This data is by no means authoritative; if you think you know better,
@@ -236,7 +236,46 @@ Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s
 # unless discontinued, next DST may end Thursday 28 August 2008.
 # From Paul Eggert (2007-08-17):
 # For lack of better info, assume the new rule is last Thursday in August.
-Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
+
+# From Petr Machata (2009-04-06):
+# The following appeared in Red Hat bugzilla[1] (edited):
+#
+# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 21:59:59 2009 UTC =3D Thu =
+# Apr 23
+# > 23:59:59 2009 EET isdst=3D0 gmtoff=3D7200
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 22:00:00 2009 UTC =3D Fri =
+# Apr 24
+# > 01:00:00 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 20:59:59 2009 UTC =3D Thu =
+# Aug 27
+# > 23:59:59 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 21:00:00 2009 UTC =3D Thu =
+# Aug 27
+# > 23:00:00 2009 EET isdst=3D0 gmtoff=3D7200
+#
+# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
+# :59)
+# > http://support.microsoft.com/kb/958729/
+#
+# timeanddate[2] and another site I've found[3] also support that.
+#
+# [1] 
+# https://bugzilla.redhat.com/show_bug.cgi?id=3D492263
+# 
+# [2] 
+# http://www.timeanddate.com/worldclock/clockchange.html?n=3D53
+# 
+# [3] 
+# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
+# 
+
+# From Arthur David Olson (2009-04-20):
+# In 2009 (and for the next several years), Ramadan ends before the fourth
+# Thursday in September; Egypt is expected to revert to the last Thursday
+# in September.
+Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
+Rule	Egypt	2009	max	-	Sep	lastThu	23:00s	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 07:45:41 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3CFC3106566B;
	Tue, 28 Apr 2009 07:45:41 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 114938FC15;
	Tue, 28 Apr 2009 07:45:41 +0000 (UTC)
	(envelope-from edwin@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 n3S7jeHS041945;
	Tue, 28 Apr 2009 07:45:40 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S7jeXu041944;
	Tue, 28 Apr 2009 07:45:40 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200904280745.n3S7jeXu041944@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 28 Apr 2009 07:45:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-vendor@freebsd.org
X-SVN-Group: vendor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191616 - vendor/tzdata/tzdata2000g/dist
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 07:45:41 -0000

Author: edwin
Date: Tue Apr 28 07:45:40 2009
New Revision: 191616
URL: http://svn.freebsd.org/changeset/base/191616

Log:
  Tag of tzdata2009g

Added:
  vendor/tzdata/tzdata2000g/dist/
     - copied from r191615, vendor/tzdata/dist/

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 08:11:42 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BA1B5106566C;
	Tue, 28 Apr 2009 08:11:42 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8DCAC8FC08;
	Tue, 28 Apr 2009 08:11:42 +0000 (UTC)
	(envelope-from edwin@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 n3S8BgaV042491;
	Tue, 28 Apr 2009 08:11:42 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S8BgK8042490;
	Tue, 28 Apr 2009 08:11:42 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200904280811.n3S8BgK8042490@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 28 Apr 2009 08:11:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-vendor@freebsd.org
X-SVN-Group: vendor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191617 - in vendor/tzdata: tzdata2000g/dist tzdata2009g
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 08:11:43 -0000

Author: edwin
Date: Tue Apr 28 08:11:42 2009
New Revision: 191617
URL: http://svn.freebsd.org/changeset/base/191617

Log:
  Typo in previous tag, fix it.

Added:
  vendor/tzdata/tzdata2009g/
     - copied from r191616, vendor/tzdata/tzdata2000g/dist/
Deleted:
  vendor/tzdata/tzdata2000g/dist/

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 08:20:32 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7F3731065670;
	Tue, 28 Apr 2009 08:20:32 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 531FF8FC18;
	Tue, 28 Apr 2009 08:20:32 +0000 (UTC)
	(envelope-from edwin@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 n3S8KW1e042690;
	Tue, 28 Apr 2009 08:20:32 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S8KWEk042689;
	Tue, 28 Apr 2009 08:20:32 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200904280820.n3S8KWEk042689@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 28 Apr 2009 08:20:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191618 - head/share/zoneinfo
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 08:20:32 -0000

Author: edwin
Date: Tue Apr 28 08:20:32 2009
New Revision: 191618
URL: http://svn.freebsd.org/changeset/base/191618

Log:
  MFC of tzdata2009g:
  
  Egypt will have DST till the end of September the coming years.

Modified:
  head/share/zoneinfo/   (props changed)
  head/share/zoneinfo/africa

Modified: head/share/zoneinfo/africa
==============================================================================
--- head/share/zoneinfo/africa	Tue Apr 28 08:11:42 2009	(r191617)
+++ head/share/zoneinfo/africa	Tue Apr 28 08:20:32 2009	(r191618)
@@ -1,4 +1,4 @@
-# @(#)africa	8.18
+# @(#)africa	8.19
 # 
 
 # This data is by no means authoritative; if you think you know better,
@@ -236,7 +236,46 @@ Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s
 # unless discontinued, next DST may end Thursday 28 August 2008.
 # From Paul Eggert (2007-08-17):
 # For lack of better info, assume the new rule is last Thursday in August.
-Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
+
+# From Petr Machata (2009-04-06):
+# The following appeared in Red Hat bugzilla[1] (edited):
+#
+# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 21:59:59 2009 UTC =3D Thu =
+# Apr 23
+# > 23:59:59 2009 EET isdst=3D0 gmtoff=3D7200
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 22:00:00 2009 UTC =3D Fri =
+# Apr 24
+# > 01:00:00 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 20:59:59 2009 UTC =3D Thu =
+# Aug 27
+# > 23:59:59 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 21:00:00 2009 UTC =3D Thu =
+# Aug 27
+# > 23:00:00 2009 EET isdst=3D0 gmtoff=3D7200
+#
+# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
+# :59)
+# > http://support.microsoft.com/kb/958729/
+#
+# timeanddate[2] and another site I've found[3] also support that.
+#
+# [1] 
+# https://bugzilla.redhat.com/show_bug.cgi?id=3D492263
+# 
+# [2] 
+# http://www.timeanddate.com/worldclock/clockchange.html?n=3D53
+# 
+# [3] 
+# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
+# 
+
+# From Arthur David Olson (2009-04-20):
+# In 2009 (and for the next several years), Ramadan ends before the fourth
+# Thursday in September; Egypt is expected to revert to the last Thursday
+# in September.
+Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
+Rule	Egypt	2009	max	-	Sep	lastThu	23:00s	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 08:24:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3FE0B10656E0;
	Tue, 28 Apr 2009 08:24:16 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 127AF8FC14;
	Tue, 28 Apr 2009 08:24:16 +0000 (UTC)
	(envelope-from edwin@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 n3S8OFX1042823;
	Tue, 28 Apr 2009 08:24:15 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S8OFoW042822;
	Tue, 28 Apr 2009 08:24:15 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200904280824.n3S8OFoW042822@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 28 Apr 2009 08:24:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191619 - stable/6/share/zoneinfo
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 08:24:17 -0000

Author: edwin
Date: Tue Apr 28 08:24:15 2009
New Revision: 191619
URL: http://svn.freebsd.org/changeset/base/191619

Log:
  MFC of tzdata2009g:
  
  Egypt will have DST till the end of September the coming years.

Modified:
  stable/6/share/zoneinfo/   (props changed)
  stable/6/share/zoneinfo/africa

Modified: stable/6/share/zoneinfo/africa
==============================================================================
--- stable/6/share/zoneinfo/africa	Tue Apr 28 08:20:32 2009	(r191618)
+++ stable/6/share/zoneinfo/africa	Tue Apr 28 08:24:15 2009	(r191619)
@@ -1,4 +1,4 @@
-# @(#)africa	8.18
+# @(#)africa	8.19
 # 
 
 # This data is by no means authoritative; if you think you know better,
@@ -236,7 +236,46 @@ Rule	Egypt	2007	only	-	Sep	Thu>=1	23:00s
 # unless discontinued, next DST may end Thursday 28 August 2008.
 # From Paul Eggert (2007-08-17):
 # For lack of better info, assume the new rule is last Thursday in August.
-Rule	Egypt	2008	max	-	Aug	lastThu	23:00s	0	-
+
+# From Petr Machata (2009-04-06):
+# The following appeared in Red Hat bugzilla[1] (edited):
+#
+# > $ zdump -v /usr/share/zoneinfo/Africa/Cairo | grep 2009
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 21:59:59 2009 UTC =3D Thu =
+# Apr 23
+# > 23:59:59 2009 EET isdst=3D0 gmtoff=3D7200
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Apr 23 22:00:00 2009 UTC =3D Fri =
+# Apr 24
+# > 01:00:00 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 20:59:59 2009 UTC =3D Thu =
+# Aug 27
+# > 23:59:59 2009 EEST isdst=3D1 gmtoff=3D10800
+# > /usr/share/zoneinfo/Africa/Cairo  Thu Aug 27 21:00:00 2009 UTC =3D Thu =
+# Aug 27
+# > 23:00:00 2009 EET isdst=3D0 gmtoff=3D7200
+#
+# > end date should be Thu Sep 24 2009 (Last Thursday in September at 23:59=
+# :59)
+# > http://support.microsoft.com/kb/958729/
+#
+# timeanddate[2] and another site I've found[3] also support that.
+#
+# [1] 
+# https://bugzilla.redhat.com/show_bug.cgi?id=3D492263
+# 
+# [2] 
+# http://www.timeanddate.com/worldclock/clockchange.html?n=3D53
+# 
+# [3] 
+# http://wwp.greenwichmeantime.com/time-zone/africa/egypt/
+# 
+
+# From Arthur David Olson (2009-04-20):
+# In 2009 (and for the next several years), Ramadan ends before the fourth
+# Thursday in September; Egypt is expected to revert to the last Thursday
+# in September.
+Rule	Egypt	2008	only	-	Aug	lastThu	23:00s	0	-
+Rule	Egypt	2009	max	-	Sep	lastThu	23:00s	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Cairo	2:05:00 -	LMT	1900 Oct

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 09:45:32 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 883FE106566C;
	Tue, 28 Apr 2009 09:45:32 +0000 (UTC) (envelope-from ru@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 756088FC13;
	Tue, 28 Apr 2009 09:45:32 +0000 (UTC) (envelope-from ru@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 n3S9jWbh044361;
	Tue, 28 Apr 2009 09:45:32 GMT (envelope-from ru@svn.freebsd.org)
Received: (from ru@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3S9jW4V044359;
	Tue, 28 Apr 2009 09:45:32 GMT (envelope-from ru@svn.freebsd.org)
Message-Id: <200904280945.n3S9jW4V044359@svn.freebsd.org>
From: Ruslan Ermilov 
Date: Tue, 28 Apr 2009 09:45:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191620 - in head: etc/rc.d share/man/man5
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 09:45:32 -0000

Author: ru
Date: Tue Apr 28 09:45:32 2009
New Revision: 191620
URL: http://svn.freebsd.org/changeset/base/191620

Log:
  Added (pre|post)(start|stop) jail hooks.  These can be used to run
  arbitrary commands (outside the jail) associated with said events,
  e.g. to bring up/down CARP interfaces representing services run in
  jails.
  
  Reviewed by:	simon

Modified:
  head/etc/rc.d/jail
  head/share/man/man5/rc.conf.5

Modified: head/etc/rc.d/jail
==============================================================================
--- head/etc/rc.d/jail	Tue Apr 28 08:24:15 2009	(r191619)
+++ head/etc/rc.d/jail	Tue Apr 28 09:45:32 2009	(r191620)
@@ -41,6 +41,14 @@ init_variables()
 	eval _ip=\"\$jail_${_j}_ip\"
 	eval _interface=\"\${jail_${_j}_interface:-${jail_interface}}\"
 	eval _exec=\"\$jail_${_j}_exec\"
+
+	i=0
+	while : ; do
+		eval _exec_prestart${i}=\"\${jail_${_j}_exec_prestart${i}:-\${jail_exec_prestart${i}}}\"
+		[ -z "$(eval echo \"\$_exec_prestart${i}\")" ] && break
+		i=$((i + 1))
+	done
+
 	eval _exec_start=\"\${jail_${_j}_exec_start:-${jail_exec_start}}\"
 
 	i=1
@@ -49,8 +57,30 @@ init_variables()
 		[ -z "$(eval echo \"\$_exec_afterstart${i}\")" ] &&  break
 		i=$((i + 1))
 	done
-	
+
+	i=0
+	while : ; do
+		eval _exec_poststart${i}=\"\${jail_${_j}_exec_poststart${i}:-\${jail_exec_poststart${i}}}\"
+		[ -z "$(eval echo \"\$_exec_poststart${i}\")" ] && break
+		i=$((i + 1))
+	done
+
+	i=0
+	while : ; do
+		eval _exec_prestop${i}=\"\${jail_${_j}_exec_prestop${i}:-\${jail_exec_prestop${i}}}\"
+		[ -z "$(eval echo \"\$_exec_prestop${i}\")" ] && break
+		i=$((i + 1))
+	done
+
 	eval _exec_stop=\"\${jail_${_j}_exec_stop:-${jail_exec_stop}}\"
+
+	i=0
+	while : ; do
+		eval _exec_poststop${i}=\"\${jail_${_j}_exec_poststop${i}:-\${jail_exec_poststop${i}}}\"
+		[ -z "$(eval echo \"\$_exec_poststop${i}\")" ] && break
+		i=$((i + 1))
+	done
+
 	if [ -n "${_exec}" ]; then
 		#   simple/backward-compatible execution
 		_exec_start="${_exec}"
@@ -102,9 +132,20 @@ init_variables()
 	debug "$_j procdir: $_procdir"
 	debug "$_j ruleset: $_ruleset"
 	debug "$_j fstab: $_fstab"
-	debug "$_j exec start: $_exec_start"
 	debug "$_j consolelog: $_consolelog"
 
+	i=0
+	while : ; do
+		eval out=\"\${_exec_prestart${i}:-''}\"
+		if [ -z "$out" ]; then
+			break
+		fi
+		debug "$_j exec pre-start #${i}: ${out}"
+		i=$((i + 1))
+	done
+
+	debug "$_j exec start: $_exec_start"
+
 	i=1
 	while [ true ]; do
 		eval out=\"\${_exec_afterstart${i}:-''}\"
@@ -117,7 +158,38 @@ init_variables()
 		i=$((i + 1))
 	done
 
+	i=0
+	while : ; do
+		eval out=\"\${_exec_poststart${i}:-''}\"
+		if [ -z "$out" ]; then
+			break
+		fi
+		debug "$_j exec post-start #${i}: ${out}"
+		i=$((i + 1))
+	done
+
+	i=0
+	while : ; do
+		eval out=\"\${_exec_prestop${i}:-''}\"
+		if [ -z "$out" ]; then
+			break
+		fi
+		debug "$_j exec pre-stop #${i}: ${out}"
+		i=$((i + 1))
+	done
+
 	debug "$_j exec stop: $_exec_stop"
+
+	i=0
+	while : ; do
+		eval out=\"\${_exec_poststop${i}:-''}\"
+		if [ -z "$out" ]; then
+			break
+		fi
+		debug "$_j exec post-stop #${i}: ${out}"
+		i=$((i + 1))
+	done
+
 	debug "$_j flags: $_flags"
 	debug "$_j consolelog: $_consolelog"
 
@@ -555,6 +627,15 @@ jail_start()
 			fi
 		fi
 		_tmp_jail=${_tmp_dir}/jail.$$
+
+		i=0
+		while : ; do
+			eval out=\"\${_exec_prestart${i}:-''}\"
+			[ -z "$out" ] && break
+			${out}
+			i=$((i + 1))
+		done
+
 		eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \
 			\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1
 
@@ -575,6 +656,14 @@ jail_start()
 			echo -n " $_hostname"
 			tail +2 ${_tmp_jail} >${_consolelog}
 			echo ${_jail_id} > /var/run/jail_${_jail}.id
+
+			i=0
+			while : ; do
+				eval out=\"\${_exec_poststart${i}:-''}\"
+				[ -z "$out" ] && break
+				${out}
+				i=$((i + 1))
+			done
 		else
 			jail_umount_fs
 			jail_ips "del"
@@ -596,6 +685,15 @@ jail_stop()
 			_jail_id=$(cat /var/run/jail_${_jail}.id)
 			if [ ! -z "${_jail_id}" ]; then
 				init_variables $_jail
+
+				i=0
+				while : ; do
+					eval out=\"\${_exec_prestop${i}:-''}\"
+					[ -z "$out" ] && break
+					${out}
+					i=$((i + 1))
+				done
+
 				if [ -n "${_exec_stop}" ]; then
 					eval env -i /usr/sbin/jexec ${_jail_id} ${_exec_stop} \
 						>> ${_consolelog} 2>&1
@@ -605,6 +703,14 @@ jail_stop()
 				killall -j ${_jail_id} -KILL > /dev/null 2>&1
 				jail_umount_fs
 				echo -n " $_hostname"
+
+				i=0
+				while : ; do
+					eval out=\"\${_exec_poststop${i}:-''}\"
+					[ -z "$out" ] && break
+					${out}
+					i=$((i + 1))
+				done
 			fi
 			jail_ips "del"
 			rm /var/run/jail_${_jail}.id

Modified: head/share/man/man5/rc.conf.5
==============================================================================
--- head/share/man/man5/rc.conf.5	Tue Apr 28 08:24:15 2009	(r191619)
+++ head/share/man/man5/rc.conf.5	Tue Apr 28 09:45:32 2009	(r191620)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 27, 2009
+.Dd April 10, 2009
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -3402,6 +3402,13 @@ to
 .Dq Li YES
 by default for every jail in
 .Va jail_list .
+.It Va jail_exec_prestart Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+When set, use as default value for
+.Va jail_ Ns Ao Ar jname Ac Ns Va _exec_prestart Ns Aq Ar N
+for every jail in
+.Va jail_list .
 .It Va jail_exec_start
 .Pq Vt str
 Unset by default.
@@ -3416,12 +3423,33 @@ When set, use as default value for
 .Va jail_ Ns Ao Ar jname Ac Ns Va _exec_afterstart Ns Aq Ar N
 for every jail in
 .Va jail_list .
+.It Va jail_exec_poststart Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+When set, use as default value for
+.Va jail_ Ns Ao Ar jname Ac Ns Va _exec_poststart Ns Aq Ar N
+for every jail in
+.Va jail_list .
+.It Va jail_exec_prestop Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+When set, use as default value for
+.Va jail_ Ns Ao Ar jname Ac Ns Va _exec_prestop Ns Aq Ar N
+for every jail in
+.Va jail_list .
 .It Va jail_exec_stop
 Unset by default.
 When set, use as default value for
 .Va jail_ Ns Ao Ar jname Ac Ns Va _exec_stop
 for every jail in
 .Va jail_list .
+.It Va jail_exec_poststop Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+When set, use as default value for
+.Va jail_ Ns Ao Ar jname Ac Ns Va _exec_poststop Ns Aq Ar N
+for every jail in
+.Va jail_list .
 .It Va jail_ Ns Ao Ar jname Ac Ns Va _rootdir
 .Pq Vt str
 Unset by default.
@@ -3537,27 +3565,68 @@ When set to
 mount the process file system inside jail
 .Ar jname
 at jail startup.
+.It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_prestart Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+This is the command run as
+.Ar N Ns
+th command
+before jail startup, where
+.Ar N
+is 0, 1, and so on.
+It is run outside the jail.
 .It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_start
 .Pq Vt str
 Set to
 .Dq Li /bin/sh /etc/rc
 by default.
-This is the command executed at jail startup.
+This is the command executed in a jail at jail startup.
 .It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_afterstart Ns Aq Ar N
 .Pq Vt str
 Unset by default.
 This is the command run as
 .Ar N Ns
 th command
+in a jail
 after jail startup, where
 .Ar N
 is 1, 2, and so on.
+.It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_poststart Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+This is the command run as
+.Ar N Ns
+th command
+after jail startup, where
+.Ar N
+is 0, 1, and so on.
+It is run outside the jail.
+.It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_prestop Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+This is the command run as
+.Ar N Ns
+th command
+before jail shutdown, where
+.Ar N
+is 0, 1, and so on.
+It is run outside the jail.
 .It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_stop
 .Pq Vt str
 Set to
 .Dq Li /bin/sh /etc/rc.shutdown
 by default.
-This is the command executed at jail shutdown.
+This is the command executed in a jail at jail shutdown.
+.It Va jail_ Ns Ao Ar jname Ac Ns Va _exec_poststop Ns Aq Ar N
+.Pq Vt str
+Unset by default.
+This is the command run as
+.Ar N Ns
+th command
+after jail shutdown, where
+.Ar N
+is 0, 1, and so on.
+It is run outside the jail.
 .It Va jail_set_hostname_allow
 .Pq Vt bool
 If set to

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 11:10:33 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BEB8F106564A;
	Tue, 28 Apr 2009 11:10:33 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 925478FC21;
	Tue, 28 Apr 2009 11:10:33 +0000 (UTC)
	(envelope-from trasz@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 n3SBAXYb047845;
	Tue, 28 Apr 2009 11:10:33 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SBAXIb047843;
	Tue, 28 Apr 2009 11:10:33 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200904281110.n3SBAXIb047843@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Tue, 28 Apr 2009 11:10:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191621 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 11:10:34 -0000

Author: trasz
Date: Tue Apr 28 11:10:33 2009
New Revision: 191621
URL: http://svn.freebsd.org/changeset/base/191621

Log:
  Don't require packet to match a route (any route; this information wasn't
  used anyway, so a typical workaround was to add a dummy route) if it's going
  to be sent through IPSec tunnel.
  
  Reviewed by:	bz

Modified:
  head/sys/netinet/ip_ipsec.c
  head/sys/netinet/ip_output.c

Modified: head/sys/netinet/ip_ipsec.c
==============================================================================
--- head/sys/netinet/ip_ipsec.c	Tue Apr 28 09:45:32 2009	(r191620)
+++ head/sys/netinet/ip_ipsec.c	Tue Apr 28 11:10:33 2009	(r191621)
@@ -385,7 +385,8 @@ ip_ipsec_output(struct mbuf **m, struct 
 		 * the interface supports it.
 		 */ 
 		mtag = m_tag_find(*m, PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED, NULL);
-		if (mtag != NULL && ((*ifp)->if_capenable & IFCAP_IPSEC) == 0) {
+		if (mtag != NULL && ifp != NULL &&
+		    ((*ifp)->if_capenable & IFCAP_IPSEC) == 0) {
 			/* notify IPsec to do its own crypto */
 			ipsp_skipcrypto_unmark((struct tdb_ident *)(mtag + 1));
 			*error = EHOSTUNREACH;

Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c	Tue Apr 28 09:45:32 2009	(r191620)
+++ head/sys/netinet/ip_output.c	Tue Apr 28 11:10:33 2009	(r191621)
@@ -145,6 +145,9 @@ ip_output(struct mbuf *m, struct mbuf *o
 #ifdef IPFIREWALL_FORWARD
 	struct m_tag *fwd_tag = NULL;
 #endif
+#ifdef IPSEC
+	int no_route_but_check_spd = 0;
+#endif
 	M_ASSERTPKTHDR(m);
 
 	if (ro == NULL) {
@@ -272,6 +275,15 @@ again:
 			    inp ? inp->inp_inc.inc_fibnum : M_GETFIB(m));
 #endif
 		if (ro->ro_rt == NULL) {
+#ifdef IPSEC
+			/*
+			 * There is no route for this packet, but it is
+			 * possible that a matching SPD entry exists.
+			 */
+			no_route_but_check_spd = 1;
+			mtu = 0; /* Silence GCC warning. */
+			goto sendit;
+#endif
 			IPSTAT_INC(ips_noroute);
 			error = EHOSTUNREACH;
 			goto bad;
@@ -467,6 +479,14 @@ sendit:
 	default:
 		break;	/* Continue with packet processing. */
 	}
+	/*
+	 * Check if there was a route for this packet; return error if not.
+	 */
+	if (no_route_but_check_spd) {
+		IPSTAT_INC(ips_noroute);
+		error = EHOSTUNREACH;
+		goto bad;
+	}
 	/* Update variables that are affected by ipsec4_output(). */
 	ip = mtod(m, struct ip *);
 	hlen = ip->ip_hl << 2;

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 11:43:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 17612106567D;
	Tue, 28 Apr 2009 11:43:36 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 05AF68FC2E;
	Tue, 28 Apr 2009 11:43:36 +0000 (UTC) (envelope-from kib@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 n3SBhZjr048630;
	Tue, 28 Apr 2009 11:43:35 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SBhZxS048629;
	Tue, 28 Apr 2009 11:43:35 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200904281143.n3SBhZxS048629@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 28 Apr 2009 11:43:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191625 - head/sys/vm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 11:43:36 -0000

Author: kib
Date: Tue Apr 28 11:43:35 2009
New Revision: 191625
URL: http://svn.freebsd.org/changeset/base/191625

Log:
  Fix typo.

Modified:
  head/sys/vm/swap_pager.c

Modified: head/sys/vm/swap_pager.c
==============================================================================
--- head/sys/vm/swap_pager.c	Tue Apr 28 11:36:12 2009	(r191624)
+++ head/sys/vm/swap_pager.c	Tue Apr 28 11:43:35 2009	(r191625)
@@ -2255,12 +2255,12 @@ SYSCTL_NODE(_vm, OID_AUTO, swap_info, CT
     "Swap statistics by device");
 
 /*
- * vmspace_swap_count() - count the approximate swap useage in pages for a
+ * vmspace_swap_count() - count the approximate swap usage in pages for a
  *			  vmspace.
  *
  *	The map must be locked.
  *
- *	Swap useage is determined by taking the proportional swap used by
+ *	Swap usage is determined by taking the proportional swap used by
  *	VM objects backing the VM map.  To make up for fractional losses,
  *	if the VM object has any swap use at all the associated map entries
  *	count for at least 1 swap page.

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 11:45:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 942E71065675;
	Tue, 28 Apr 2009 11:45:36 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 81E648FC12;
	Tue, 28 Apr 2009 11:45:36 +0000 (UTC) (envelope-from kib@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 n3SBjars048727;
	Tue, 28 Apr 2009 11:45:36 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SBja4w048726;
	Tue, 28 Apr 2009 11:45:36 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200904281145.n3SBja4w048726@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 28 Apr 2009 11:45:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191626 - head/sys/vm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 11:45:37 -0000

Author: kib
Date: Tue Apr 28 11:45:36 2009
New Revision: 191626
URL: http://svn.freebsd.org/changeset/base/191626

Log:
  Use the acquired reference to the vmspace instead of direct dereferencing
  of p->p_vmspace in a place where it was missed in r191277.
  
  Noted by:  pluknet gmail com

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Tue Apr 28 11:43:35 2009	(r191625)
+++ head/sys/vm/vm_pageout.c	Tue Apr 28 11:45:36 2009	(r191626)
@@ -1243,7 +1243,7 @@ vm_pageout_oom(int shortage)
 			PROC_UNLOCK(p);
 			continue;
 		}
-		size = vmspace_swap_count(p->p_vmspace);
+		size = vmspace_swap_count(vm);
 		vm_map_unlock_read(&vm->vm_map);
 		if (shortage == VM_OOM_MEM)
 			size += vmspace_resident_count(vm);

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 11:56:56 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 61DEF106564A;
	Tue, 28 Apr 2009 11:56:56 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4FD728FC1C;
	Tue, 28 Apr 2009 11:56:56 +0000 (UTC) (envelope-from avg@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 n3SBusFV048950;
	Tue, 28 Apr 2009 11:56:54 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SBusAb048949;
	Tue, 28 Apr 2009 11:56:54 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200904281156.n3SBusAb048949@svn.freebsd.org>
From: Andriy Gapon 
Date: Tue, 28 Apr 2009 11:56:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191627 - head/sys/dev/acpica
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 11:56:56 -0000

Author: avg
Date: Tue Apr 28 11:56:54 2009
New Revision: 191627
URL: http://svn.freebsd.org/changeset/base/191627

Log:
  acpi: do not run resume/backout code when entering S0/S5 states
  
  This change adds (possibly redundant) early check for invalid
  state input parameter (including S0). Handling of S5 request
  is reduced to simply calling shutdown_nice(). As a result
  control flow of acpi_EnterSleepState is somewhat simplified
  and resume/backout half of the function is not executed
  for S5 (soft poweroff) request and invalid state requests.
  
  Note: it seems that shutdown_nice may act as nop when initproc
  is already initialized (to grab pid of 1), but init process is in
  "pre-natal" state.
  
  Tested by:	Fabian Keil 
  Reviewed by:	njl, jkim
  Approved by:	rpaulo

Modified:
  head/sys/dev/acpica/acpi.c

Modified: head/sys/dev/acpica/acpi.c
==============================================================================
--- head/sys/dev/acpica/acpi.c	Tue Apr 28 11:45:36 2009	(r191626)
+++ head/sys/dev/acpica/acpi.c	Tue Apr 28 11:56:54 2009	(r191627)
@@ -2482,6 +2482,18 @@ acpi_EnterSleepState(struct acpi_softc *
 
     ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, state);
 
+    if (state < ACPI_STATE_S1 || state > ACPI_STATE_S5)
+	return_ACPI_STATUS (AE_BAD_PARAMETER);
+
+    if (state == ACPI_STATE_S5) {
+	/*
+	 * Shut down cleanly and power off.  This will call us back through the
+	 * shutdown handlers.
+	 */
+	shutdown_nice(RB_POWEROFF);
+	return_ACPI_STATUS (AE_OK);
+    }
+
     /* Re-entry once we're suspending is not allowed. */
     status = acpi_sleep_disable(sc);
     if (ACPI_FAILURE(status)) {
@@ -2502,92 +2514,74 @@ acpi_EnterSleepState(struct acpi_softc *
     mtx_lock(&Giant);
 
     slp_state = ACPI_SS_NONE;
-    switch (state) {
-    case ACPI_STATE_S1:
-    case ACPI_STATE_S2:
-    case ACPI_STATE_S3:
-    case ACPI_STATE_S4:
-	status = AcpiGetSleepTypeData(state, &TypeA, &TypeB);
-	if (status == AE_NOT_FOUND) {
-	    device_printf(sc->acpi_dev,
-			  "Sleep state S%d not supported by BIOS\n", state);
-	    break;
-	} else if (ACPI_FAILURE(status)) {
-	    device_printf(sc->acpi_dev, "AcpiGetSleepTypeData failed - %s\n",
-			  AcpiFormatException(status));
-	    break;
-	}
+    status = AcpiGetSleepTypeData(state, &TypeA, &TypeB);
+    if (status == AE_NOT_FOUND) {
+	device_printf(sc->acpi_dev,
+		      "Sleep state S%d not supported by BIOS\n", state);
+	goto backout;
+    } else if (ACPI_FAILURE(status)) {
+	device_printf(sc->acpi_dev, "AcpiGetSleepTypeData failed - %s\n",
+		      AcpiFormatException(status));
+	goto backout;
+    }
+
+    sc->acpi_sstate = state;
+
+    /* Enable any GPEs as appropriate and requested by the user. */
+    acpi_wake_prep_walk(state);
+    slp_state = ACPI_SS_GPE_SET;
 
-	sc->acpi_sstate = state;
+    /*
+     * Inform all devices that we are going to sleep.  If at least one
+     * device fails, DEVICE_SUSPEND() automatically resumes the tree.
+     *
+     * XXX Note that a better two-pass approach with a 'veto' pass
+     * followed by a "real thing" pass would be better, but the current
+     * bus interface does not provide for this.
+     */
+    if (DEVICE_SUSPEND(root_bus) != 0) {
+	device_printf(sc->acpi_dev, "device_suspend failed\n");
+	goto backout;
+    }
+    slp_state = ACPI_SS_DEV_SUSPEND;
 
-	/* Enable any GPEs as appropriate and requested by the user. */
-	acpi_wake_prep_walk(state);
-	slp_state = ACPI_SS_GPE_SET;
+    /* If testing device suspend only, back out of everything here. */
+    if (acpi_susp_bounce)
+	goto backout;
 
-	/*
-	 * Inform all devices that we are going to sleep.  If at least one
-	 * device fails, DEVICE_SUSPEND() automatically resumes the tree.
-	 *
-	 * XXX Note that a better two-pass approach with a 'veto' pass
-	 * followed by a "real thing" pass would be better, but the current
-	 * bus interface does not provide for this.
-	 */
-	if (DEVICE_SUSPEND(root_bus) != 0) {
-	    device_printf(sc->acpi_dev, "device_suspend failed\n");
-	    break;
-	}
-	slp_state = ACPI_SS_DEV_SUSPEND;
+    status = AcpiEnterSleepStatePrep(state);
+    if (ACPI_FAILURE(status)) {
+	device_printf(sc->acpi_dev, "AcpiEnterSleepStatePrep failed - %s\n",
+		      AcpiFormatException(status));
+	goto backout;
+    }
+    slp_state = ACPI_SS_SLP_PREP;
 
-	/* If testing device suspend only, back out of everything here. */
-	if (acpi_susp_bounce)
-	    break;
+    if (sc->acpi_sleep_delay > 0)
+	DELAY(sc->acpi_sleep_delay * 1000000);
+
+    if (state != ACPI_STATE_S1) {
+	acpi_sleep_machdep(sc, state);
 
-	status = AcpiEnterSleepStatePrep(state);
+	/* Re-enable ACPI hardware on wakeup from sleep state 4. */
+	if (state == ACPI_STATE_S4)
+	    AcpiEnable();
+    } else {
+	ACPI_DISABLE_IRQS();
+	status = AcpiEnterSleepState(state);
 	if (ACPI_FAILURE(status)) {
-	    device_printf(sc->acpi_dev, "AcpiEnterSleepStatePrep failed - %s\n",
+	    device_printf(sc->acpi_dev, "AcpiEnterSleepState failed - %s\n",
 			  AcpiFormatException(status));
-	    break;
+	    goto backout;
 	}
-	slp_state = ACPI_SS_SLP_PREP;
-
-	if (sc->acpi_sleep_delay > 0)
-	    DELAY(sc->acpi_sleep_delay * 1000000);
-
-	if (state != ACPI_STATE_S1) {
-	    acpi_sleep_machdep(sc, state);
-
-	    /* Re-enable ACPI hardware on wakeup from sleep state 4. */
-	    if (state == ACPI_STATE_S4)
-		AcpiEnable();
-	} else {
-	    ACPI_DISABLE_IRQS();
-	    status = AcpiEnterSleepState(state);
-	    if (ACPI_FAILURE(status)) {
-		device_printf(sc->acpi_dev, "AcpiEnterSleepState failed - %s\n",
-			      AcpiFormatException(status));
-		break;
-	    }
-	}
-	slp_state = ACPI_SS_SLEPT;
-	break;
-    case ACPI_STATE_S5:
-	/*
-	 * Shut down cleanly and power off.  This will call us back through the
-	 * shutdown handlers.
-	 */
-	shutdown_nice(RB_POWEROFF);
-	status = AE_OK;
-	break;
-    case ACPI_STATE_S0:
-    default:
-	status = AE_BAD_PARAMETER;
-	break;
     }
+    slp_state = ACPI_SS_SLEPT;
 
     /*
      * Back out state according to how far along we got in the suspend
      * process.  This handles both the error and success cases.
      */
+backout:
     sc->acpi_next_sstate = 0;
     if (slp_state >= ACPI_SS_GPE_SET) {
 	acpi_wake_prep_walk(state);
@@ -2609,8 +2603,7 @@ acpi_EnterSleepState(struct acpi_softc *
 #endif
 
     /* Allow another sleep request after a while. */
-    if (state != ACPI_STATE_S5)
-	timeout(acpi_sleep_enable, sc, hz * ACPI_MINIMUM_AWAKETIME);
+    timeout(acpi_sleep_enable, sc, hz * ACPI_MINIMUM_AWAKETIME);
 
     /* Run /etc/rc.resume after we are back. */
     if (devctl_process_running())

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 19:20:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C1ECF106564A;
	Tue, 28 Apr 2009 19:20:13 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B02E08FC1D;
	Tue, 28 Apr 2009 19:20:13 +0000 (UTC)
	(envelope-from cognet@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 n3SJKDm0057703;
	Tue, 28 Apr 2009 19:20:13 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SJKDMZ057702;
	Tue, 28 Apr 2009 19:20:13 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <200904281920.n3SJKDMZ057702@svn.freebsd.org>
From: Olivier Houchard 
Date: Tue, 28 Apr 2009 19:20:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191633 - head/lib/libc/arm/string
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 19:20:14 -0000

Author: cognet
Date: Tue Apr 28 19:20:13 2009
New Revision: 191633
URL: http://svn.freebsd.org/changeset/base/191633

Log:
  Change the test at the beginning of strncmp(), from being if (len - 1) < 0
  to if (len == 0).
  The length is supposed to be unsigned, so len - 1 < 0 won't happen except
  if len == 0 anyway, and it would return 0 when it shouldn't, if len was
  > INT_MAX.
  
  Spotted out by:	Channa 

Modified:
  head/lib/libc/arm/string/strncmp.S

Modified: head/lib/libc/arm/string/strncmp.S
==============================================================================
--- head/lib/libc/arm/string/strncmp.S	Tue Apr 28 17:41:52 2009	(r191632)
+++ head/lib/libc/arm/string/strncmp.S	Tue Apr 28 19:20:13 2009	(r191633)
@@ -33,10 +33,10 @@
 __FBSDID("$FreeBSD$");
 
 ENTRY(strncmp)
-/* if ((len - 1) < 0) return 0 */
-	subs	r2, r2, #1
-	movmi	r0, #0
-	movmi	pc, lr
+/* if (len == 0) return 0 */
+	cmp	r2, #0
+	moveq	r0, #0
+	RETeq
 
 /* ip == last src address to compare */
 	add	ip, r0, r2

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 20:20:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7BF50106566C;
	Tue, 28 Apr 2009 20:20:13 +0000 (UTC)
	(envelope-from danger@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6A65A8FC16;
	Tue, 28 Apr 2009 20:20:13 +0000 (UTC)
	(envelope-from danger@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 n3SKKDuC058808;
	Tue, 28 Apr 2009 20:20:13 GMT (envelope-from danger@svn.freebsd.org)
Received: (from danger@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SKKDRo058807;
	Tue, 28 Apr 2009 20:20:13 GMT (envelope-from danger@svn.freebsd.org)
Message-Id: <200904282020.n3SKKDRo058807@svn.freebsd.org>
From: Daniel Gerzo 
Date: Tue, 28 Apr 2009 20:20:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191634 - head/usr.sbin/kbdmap
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 20:20:13 -0000

Author: danger (doc committer)
Date: Tue Apr 28 20:20:13 2009
New Revision: 191634
URL: http://svn.freebsd.org/changeset/base/191634

Log:
  - fix path for locale.alias
  
  PR:		docs/134070
  Submitted by:	Frank Shute 
  MFC after:	1 week

Modified:
  head/usr.sbin/kbdmap/kbdmap.1

Modified: head/usr.sbin/kbdmap/kbdmap.1
==============================================================================
--- head/usr.sbin/kbdmap/kbdmap.1	Tue Apr 28 19:20:13 2009	(r191633)
+++ head/usr.sbin/kbdmap/kbdmap.1	Tue Apr 28 20:20:13 2009	(r191634)
@@ -111,7 +111,7 @@ database for keymaps
 database for fonts
 .It Pa /etc/rc.conf
 default font
-.It Pa /usr/X11/lib/X11/locale/locale.alias
+.It Pa /usr/local/share/locale/locale.alias
 describe common
 .Ev LANG
 values

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 20:23:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EA86A1065670;
	Tue, 28 Apr 2009 20:23:58 +0000 (UTC)
	(envelope-from danger@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D94E98FC14;
	Tue, 28 Apr 2009 20:23:58 +0000 (UTC)
	(envelope-from danger@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 n3SKNwnj058926;
	Tue, 28 Apr 2009 20:23:58 GMT (envelope-from danger@svn.freebsd.org)
Received: (from danger@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SKNwJO058925;
	Tue, 28 Apr 2009 20:23:58 GMT (envelope-from danger@svn.freebsd.org)
Message-Id: <200904282023.n3SKNwJO058925@svn.freebsd.org>
From: Daniel Gerzo 
Date: Tue, 28 Apr 2009 20:23:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191635 - head/usr.sbin/arp
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 20:23:59 -0000

Author: danger (doc committer)
Date: Tue Apr 28 20:23:58 2009
New Revision: 191635
URL: http://svn.freebsd.org/changeset/base/191635

Log:
  - xref ndp(8)
  
  PR:		docs/134053
  Submitted by:	Bob Van Zant 
  MFC after:	1 week

Modified:
  head/usr.sbin/arp/arp.8

Modified: head/usr.sbin/arp/arp.8
==============================================================================
--- head/usr.sbin/arp/arp.8	Tue Apr 28 20:20:13 2009	(r191634)
+++ head/usr.sbin/arp/arp.8	Tue Apr 28 20:23:58 2009	(r191635)
@@ -193,7 +193,8 @@ character will mark the rest of the line
 .Sh SEE ALSO
 .Xr inet 3 ,
 .Xr arp 4 ,
-.Xr ifconfig 8
+.Xr ifconfig 8 ,
+.Xr ndp 8
 .Sh HISTORY
 The
 .Nm

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 20:39:22 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 562E3106564A;
	Tue, 28 Apr 2009 20:39:22 +0000 (UTC)
	(envelope-from emaste@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4403E8FC1C;
	Tue, 28 Apr 2009 20:39:22 +0000 (UTC)
	(envelope-from emaste@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 n3SKdMks059366;
	Tue, 28 Apr 2009 20:39:22 GMT (envelope-from emaste@svn.freebsd.org)
Received: (from emaste@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SKdMpl059365;
	Tue, 28 Apr 2009 20:39:22 GMT (envelope-from emaste@svn.freebsd.org)
Message-Id: <200904282039.n3SKdMpl059365@svn.freebsd.org>
From: Ed Maste 
Date: Tue, 28 Apr 2009 20:39:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191637 - stable/6/libexec/rtld-elf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 20:39:22 -0000

Author: emaste
Date: Tue Apr 28 20:39:21 2009
New Revision: 191637
URL: http://svn.freebsd.org/changeset/base/191637

Log:
  MFC r155084:
  
    Fix a malloc overrun in 32-bit compat libmap lookup code.

Modified:
  stable/6/libexec/rtld-elf/   (props changed)
  stable/6/libexec/rtld-elf/libmap.c

Modified: stable/6/libexec/rtld-elf/libmap.c
==============================================================================
--- stable/6/libexec/rtld-elf/libmap.c	Tue Apr 28 20:36:07 2009	(r191636)
+++ stable/6/libexec/rtld-elf/libmap.c	Tue Apr 28 20:39:21 2009	(r191637)
@@ -263,14 +263,12 @@ lm_findn (const char *p, const char *f, 
 {
 	char pathbuf[64], *s, *t;
 
-	if (n < sizeof(pathbuf) - 1) {
-		memcpy(pathbuf, f, n);
-		pathbuf[n] = '\0';
+	if (n < sizeof(pathbuf) - 1)
 		s = pathbuf;
-	} else {
+	else
 		s = xmalloc(n + 1);
-		strcpy(s, f);
-	}
+	memcpy(s, f, n);
+	s[n] = '\0';
 	t = lm_find(p, s);
 	if (s != pathbuf)
 		free(s);

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 20:49:48 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 262F8106566B;
	Tue, 28 Apr 2009 20:49:48 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 13EF18FC0C;
	Tue, 28 Apr 2009 20:49:48 +0000 (UTC)
	(envelope-from marius@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 n3SKnlUF059587;
	Tue, 28 Apr 2009 20:49:47 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SKnlO6059586;
	Tue, 28 Apr 2009 20:49:47 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200904282049.n3SKnlO6059586@svn.freebsd.org>
From: Marius Strobl 
Date: Tue, 28 Apr 2009 20:49:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191638 - head/sys/dev/fb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 20:49:48 -0000

Author: marius
Date: Tue Apr 28 20:49:47 2009
New Revision: 191638
URL: http://svn.freebsd.org/changeset/base/191638

Log:
  - Change some softc members to be unsigned where more appropriate.
  - Add some missing const.
  - Move the size of the window spun by the registers to the softc
    as neither using va_mem_size for this nor va_mem_base for the
    start of the bus addresses is appropriate.
  
  MFC after:	1 week

Modified:
  head/sys/dev/fb/creator.c

Modified: head/sys/dev/fb/creator.c
==============================================================================
--- head/sys/dev/fb/creator.c	Tue Apr 28 20:39:21 2009	(r191637)
+++ head/sys/dev/fb/creator.c	Tue Apr 28 20:49:47 2009	(r191638)
@@ -66,12 +66,13 @@ struct creator_softc {
 	struct resource		*sc_reg[FFB_NREG];
 	bus_space_tag_t		sc_bt[FFB_NREG];
 	bus_space_handle_t	sc_bh[FFB_NREG];
+	u_long			sc_reg_size;
 
-	int			sc_height;
-	int			sc_width;
+	u_int			sc_height;
+	u_int			sc_width;
 
-	int			sc_xmargin;
-	int			sc_ymargin;
+	u_int			sc_xmargin;
+	u_int			sc_ymargin;
 
 	const u_char		*sc_font;
 
@@ -82,7 +83,7 @@ struct creator_softc {
 	int			sc_fontw_cache;
 	int			sc_pmask_cache;
 
-	int			sc_flags;
+	u_int			sc_flags;
 #define	CREATOR_AFB		(1 << 0)
 #define	CREATOR_CONSOLE		(1 << 1)
 #define	CREATOR_CUREN		(1 << 2)
@@ -96,7 +97,7 @@ struct creator_softc {
 	bus_space_write_4((sc)->sc_bt[(reg)], (sc)->sc_bh[(reg)], (off), (val))
 
 #define	C(r, g, b)	((b << 16) | (g << 8) | (r))
-static const uint32_t creator_cmap[] = {
+static const uint32_t const creator_cmap[] = {
 	C(0x00, 0x00, 0x00),		/* black */
 	C(0x00, 0x00, 0xff),		/* blue */
 	C(0x00, 0xff, 0x00),		/* green */
@@ -120,7 +121,7 @@ static const struct {
 	vm_offset_t virt;
 	vm_paddr_t phys;
 	vm_size_t size;
-} creator_fb_map[] = {
+} const creator_fb_map[] = {
 	{ FFB_VIRT_SFB8R,	FFB_PHYS_SFB8R,		FFB_SIZE_SFB8R },
 	{ FFB_VIRT_SFB8G,	FFB_PHYS_SFB8G,		FFB_SIZE_SFB8G },
 	{ FFB_VIRT_SFB8B,	FFB_PHYS_SFB8B,		FFB_SIZE_SFB8B },
@@ -252,8 +253,6 @@ static video_switch_t creatorvidsw = {
 	.clear			= creator_clear,
 	.fill_rect		= creator_fill_rect,
 	.bitblt			= creator_bitblt,
-	NULL,						/* XXX brain damage */
-	NULL,						/* XXX brain damage */
 	.diag			= creator_diag,
 	.save_cursor_palette	= creator_save_cursor_palette,
 	.load_cursor_palette	= creator_load_cursor_palette,
@@ -271,7 +270,7 @@ RENDERER(creator, 0, txtrndrsw, gfb_set)
 
 RENDERER_MODULE(creator, gfb_set);
 
-static const u_char creator_mouse_pointer[64][8] __aligned(8) = {
+static const u_char const creator_mouse_pointer[64][8] __aligned(8) = {
 	{ 0x00, 0x00, },	/* ............ */
 	{ 0x80, 0x00, },	/* *........... */
 	{ 0xc0, 0x00, },	/* **.......... */
@@ -953,20 +952,19 @@ creator_bus_attach(device_t dev)
 		sc->sc_bh[i] = rman_get_bushandle(sc->sc_reg[i]);
 	}
 	/*
-	 * The XFree86/Xorg sunffb(4) expects to be able to access the
+	 * The XFree86/X.Org sunffb(4) expects to be able to access the
 	 * memory spanned by the first and the last resource as one chunk
 	 * via creator_fb_mmap(), using offsets from the first resource,
 	 * even though the backing resources are actually non-continuous.
 	 * So make sure that the memory we provide is at least backed by
 	 * increasing resources.
 	 */
-	adp->va_mem_base = rman_get_start(sc->sc_reg[0]);
 	for (i = 1; i < FFB_NREG && sc->sc_reg[i] != NULL &&
 	    rman_get_start(sc->sc_reg[i]) > rman_get_start(sc->sc_reg[i - 1]);
 	    i++)
 		;
-	adp->va_mem_size = rman_get_end(sc->sc_reg[i - 1]) -
-	    adp->va_mem_base + 1;
+	sc->sc_reg_size = rman_get_end(sc->sc_reg[i - 1]) -
+	    rman_get_start(sc->sc_reg[0]) + 1;
 
 	if (!(sc->sc_flags & CREATOR_CONSOLE)) {
 		if ((sw = vid_get_switch(CREATOR_DRIVER_NAME)) == NULL) {
@@ -1058,7 +1056,7 @@ creator_fb_mmap(struct cdev *dev, vm_off
 
 	/*
 	 * NB: This is a special implementation based on the /dev/fb
-	 * requirements of the XFree86/Xorg sunffb(4).
+	 * requirements of the XFree86/X.Org sunffb(4).
 	 */
 	sc = dev->si_drv1;
 	for (i = 0; i < CREATOR_FB_MAP_SIZE; i++) {
@@ -1066,7 +1064,7 @@ creator_fb_mmap(struct cdev *dev, vm_off
 		    offset < creator_fb_map[i].virt + creator_fb_map[i].size) {
 			offset += creator_fb_map[i].phys -
 			    creator_fb_map[i].virt;
-			if (offset >= sc->sc_va.va_mem_size)
+			if (offset >= sc->sc_reg_size)
 				return (EINVAL);
 			*paddr = sc->sc_bh[0] + offset;
 			return (0);

From owner-svn-src-all@FreeBSD.ORG  Tue Apr 28 21:00:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ED1431065735;
	Tue, 28 Apr 2009 21:00:50 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DB8478FC1F;
	Tue, 28 Apr 2009 21:00:50 +0000 (UTC) (envelope-from bz@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 n3SL0oCH059845;
	Tue, 28 Apr 2009 21:00:50 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SL0ohI059844;
	Tue, 28 Apr 2009 21:00:50 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200904282100.n3SL0ohI059844@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Tue, 28 Apr 2009 21:00:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191639 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 28 Apr 2009 21:00:51 -0000

Author: bz
Date: Tue Apr 28 21:00:50 2009
New Revision: 191639
URL: http://svn.freebsd.org/changeset/base/191639

Log:
  Prevent a superuser inside a jail from modifying the dedicated
  root cpuset of that jail.
  Processes inside the jail will still be able to change child sets.
  A superuser outside of a jail will still be able to change the jail cpuset
  and thus limit the number of cpus available to the jail.
  
  Problem reported by: 000.fbsd@quip.cz (Miroslav Lachman)
  PR:		kern/134050
  Reviewed by:	jeff
  MFC after:	3 weeks
  X-MFC:		backout r191596

Modified:
  head/sys/kern/kern_cpuset.c

Modified: head/sys/kern/kern_cpuset.c
==============================================================================
--- head/sys/kern/kern_cpuset.c	Tue Apr 28 20:49:47 2009	(r191638)
+++ head/sys/kern/kern_cpuset.c	Tue Apr 28 21:00:50 2009	(r191639)
@@ -357,6 +357,15 @@ cpuset_modify(struct cpuset *set, cpuset
 	if (error)
 		return (error);
 	/*
+	 * In case we are called from within the jail
+	 * we do not allow modifying the dedicated root
+	 * cpuset of the jail but may still allow to
+	 * change child sets.
+	 */
+	if (jailed(curthread->td_ucred) &&
+	    set->cs_flags & CPU_SET_ROOT)
+		return (EPERM);
+	/*
 	 * Verify that we have access to this set of
 	 * cpus.
 	 */

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 03:15:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7D17D106564A;
	Wed, 29 Apr 2009 03:15:44 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 618408FC12;
	Wed, 29 Apr 2009 03:15:44 +0000 (UTC)
	(envelope-from jeff@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 n3T3Fit8067561;
	Wed, 29 Apr 2009 03:15:44 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T3FiJW067558;
	Wed, 29 Apr 2009 03:15:44 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <200904290315.n3T3FiJW067558@svn.freebsd.org>
From: Jeff Roberson 
Date: Wed, 29 Apr 2009 03:15:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191643 - in head/sys: kern sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 03:15:44 -0000

Author: jeff
Date: Wed Apr 29 03:15:43 2009
New Revision: 191643
URL: http://svn.freebsd.org/changeset/base/191643

Log:
   - Remove the bogus idle thread state code.  This may have a race in it
     and it only optimized out an ipi or mwait in very few cases.
   - Skip the adaptive idle code when running on SMT or HTT cores.  This
     just wastes cpu time that could be used on a busy thread on the same
     core.
   - Rename CG_FLAG_THREAD to CG_FLAG_SMT to be more descriptive.  Re-use
     CG_FLAG_THREAD to mean SMT or HTT.
  
  Sponsored by:   Nokia

Modified:
  head/sys/kern/sched_ule.c
  head/sys/kern/subr_smp.c
  head/sys/sys/smp.h

Modified: head/sys/kern/sched_ule.c
==============================================================================
--- head/sys/kern/sched_ule.c	Tue Apr 28 23:36:29 2009	(r191642)
+++ head/sys/kern/sched_ule.c	Wed Apr 29 03:15:43 2009	(r191643)
@@ -36,7 +36,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD$);
 
 #include "opt_hwpmc_hooks.h"
 #include "opt_kdtrace.h"
@@ -213,7 +213,6 @@ struct tdq {
 	volatile int	tdq_load;		/* Aggregate load. */
 	int		tdq_sysload;		/* For loadavg, !ITHD load. */
 	int		tdq_transferable;	/* Transferable thread count. */
-	volatile int	tdq_idlestate;		/* State of the idle thread. */
 	short		tdq_switchcnt;		/* Switches this tick. */
 	short		tdq_oldswitchcnt;	/* Switches last tick. */
 	u_char		tdq_lowpri;		/* Lowest priority thread. */
@@ -360,7 +359,6 @@ tdq_print(int cpu)
 	printf("\tload:           %d\n", tdq->tdq_load);
 	printf("\tswitch cnt:     %d\n", tdq->tdq_switchcnt);
 	printf("\told switch cnt: %d\n", tdq->tdq_oldswitchcnt);
-	printf("\tidle state:     %d\n", tdq->tdq_idlestate);
 	printf("\ttimeshare idx:  %d\n", tdq->tdq_idx);
 	printf("\ttimeshare ridx: %d\n", tdq->tdq_ridx);
 	printf("\tload transferable: %d\n", tdq->tdq_transferable);
@@ -913,7 +911,7 @@ tdq_idled(struct tdq *tdq)
 	/* We don't want to be preempted while we're iterating. */
 	spinlock_enter();
 	for (cg = tdq->tdq_cg; cg != NULL; ) {
-		if ((cg->cg_flags & (CG_FLAG_HTT | CG_FLAG_THREAD)) == 0)
+		if ((cg->cg_flags & CG_FLAG_THREAD) == 0)
 			thresh = steal_thresh;
 		else
 			thresh = 1;
@@ -969,13 +967,6 @@ tdq_notify(struct tdq *tdq, struct threa
 		return;
 	if (TD_IS_IDLETHREAD(ctd)) {
 		/*
-		 * If the idle thread is still 'running' it's probably
-		 * waiting on us to release the tdq spinlock already.  No
-		 * need to ipi.
-		 */
-		if (tdq->tdq_idlestate == TDQ_RUNNING)
-			return;
-		/*
 		 * If the MD code has an idle wakeup routine try that before
 		 * falling back to IPI.
 		 */
@@ -2536,12 +2527,10 @@ sched_idletd(void *dummy)
 	int switchcnt;
 	int i;
 
+	mtx_assert(&Giant, MA_NOTOWNED);
 	td = curthread;
 	tdq = TDQ_SELF();
-	mtx_assert(&Giant, MA_NOTOWNED);
-	/* ULE relies on preemption for idle interruption. */
 	for (;;) {
-		tdq->tdq_idlestate = TDQ_RUNNING;
 #ifdef SMP
 		if (tdq_idled(tdq) == 0)
 			continue;
@@ -2550,26 +2539,21 @@ sched_idletd(void *dummy)
 		/*
 		 * If we're switching very frequently, spin while checking
 		 * for load rather than entering a low power state that 
-		 * requires an IPI.
+		 * may require an IPI.  However, don't do any busy
+		 * loops while on SMT machines as this simply steals
+		 * cycles from cores doing useful work.
 		 */
-		if (switchcnt > sched_idlespinthresh) {
+		if ((tdq->tdq_cg->cg_flags & CG_FLAG_THREAD) == 0 &&
+		    switchcnt > sched_idlespinthresh) {
 			for (i = 0; i < sched_idlespins; i++) {
 				if (tdq->tdq_load)
 					break;
 				cpu_spinwait();
 			}
 		}
-		/*
-		 * We must set our state to IDLE before checking
-		 * tdq_load for the last time to avoid a race with
-		 * tdq_notify().
-		 */
-		if (tdq->tdq_load == 0) {
-			switchcnt = tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt;
-			tdq->tdq_idlestate = TDQ_IDLE;
-			if (tdq->tdq_load == 0)
-				cpu_idle(switchcnt > 1);
-		}
+		switchcnt = tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt;
+		if (tdq->tdq_load == 0)
+			cpu_idle(switchcnt > 1);
 		if (tdq->tdq_load) {
 			thread_lock(td);
 			mi_switch(SW_VOL | SWT_IDLE, NULL);
@@ -2683,7 +2667,7 @@ sysctl_kern_sched_topology_spec_internal
 	if (cg->cg_flags != 0) {
 		if ((cg->cg_flags & CG_FLAG_HTT) != 0)
 			sbuf_printf(sb, "HTT group\n");
-		if ((cg->cg_flags & CG_FLAG_THREAD) != 0)
+		if ((cg->cg_flags & CG_FLAG_SMT) != 0)
 			sbuf_printf(sb, "SMT group\n");
 	}
 	sbuf_printf(sb, "\n");

Modified: head/sys/kern/subr_smp.c
==============================================================================
--- head/sys/kern/subr_smp.c	Tue Apr 28 23:36:29 2009	(r191642)
+++ head/sys/kern/subr_smp.c	Wed Apr 29 03:15:43 2009	(r191643)
@@ -491,7 +491,7 @@ smp_topo(void)
 	case 7:
 		/* quad core with a shared l3, 8 threads sharing L2.  */
 		top = smp_topo_2level(CG_SHARE_L3, 4, CG_SHARE_L2, 8,
-		    CG_FLAG_THREAD);
+		    CG_FLAG_SMT);
 		break;
 	default:
 		/* Default, ask the system what it wants. */

Modified: head/sys/sys/smp.h
==============================================================================
--- head/sys/sys/smp.h	Tue Apr 28 23:36:29 2009	(r191642)
+++ head/sys/sys/smp.h	Wed Apr 29 03:15:43 2009	(r191643)
@@ -54,7 +54,8 @@ struct cpu_group {
  * Behavior modifiers for load balancing and affinity.
  */
 #define	CG_FLAG_HTT	0x01		/* Schedule the alternate core last. */
-#define	CG_FLAG_THREAD	0x02		/* New age htt, less crippled. */
+#define	CG_FLAG_SMT	0x02		/* New age htt, less crippled. */
+#define	CG_FLAG_THREAD	(CG_FLAG_HTT | CG_FLAG_SMT)	/* Any threading. */
 
 /*
  * Convenience routines for building topologies.

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 03:26:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C712106566C;
	Wed, 29 Apr 2009 03:26:31 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0083C8FC0A;
	Wed, 29 Apr 2009 03:26:31 +0000 (UTC)
	(envelope-from jeff@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 n3T3QUWB067840;
	Wed, 29 Apr 2009 03:26:30 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T3QUQM067839;
	Wed, 29 Apr 2009 03:26:30 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <200904290326.n3T3QUQM067839@svn.freebsd.org>
From: Jeff Roberson 
Date: Wed, 29 Apr 2009 03:26:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191645 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 03:26:31 -0000

Author: jeff
Date: Wed Apr 29 03:26:30 2009
New Revision: 191645
URL: http://svn.freebsd.org/changeset/base/191645

Log:
   - Fix the FBSDID line.

Modified:
  head/sys/kern/sched_ule.c

Modified: head/sys/kern/sched_ule.c
==============================================================================
--- head/sys/kern/sched_ule.c	Wed Apr 29 03:21:53 2009	(r191644)
+++ head/sys/kern/sched_ule.c	Wed Apr 29 03:26:30 2009	(r191645)
@@ -36,7 +36,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD$);
+__FBSDID("$FreeBSD$");
 
 #include "opt_hwpmc_hooks.h"
 #include "opt_kdtrace.h"

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 06:14:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 269171065672;
	Wed, 29 Apr 2009 06:14:13 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 09E368FC13;
	Wed, 29 Apr 2009 06:14:13 +0000 (UTC) (envelope-from hrs@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 n3T6ECum071032;
	Wed, 29 Apr 2009 06:14:12 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T6ECiV071031;
	Wed, 29 Apr 2009 06:14:12 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904290614.n3T6ECiV071031@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 06:14:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191646 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 06:14:13 -0000

Author: hrs
Date: Wed Apr 29 06:14:12 2009
New Revision: 191646
URL: http://svn.freebsd.org/changeset/base/191646

Log:
  Updare release notes:
  	currently jail+cpuset allows superuser inside the jail to
  	change the CPU bindings,
  	atkbd(4) + kbdmux(4) duplicated/missing chars issue on MP systems fixed,
  	ULE machdep.hyperthreading_enabled support,
  	bce(4) update,
  	cxgb(4) update,
  	ixgbe(4) update,
  	a typo fix: s///,
  	ata(4) nForce MCP67/MCP73 support improved,
  	GEOM label UFS ID support,
  	GEOM journal rootfs support,
  	hptmv(4) updated,
  	twa(4) 64-bit DMA support,
  	fsck -C (check clean mode) support,
  	getaddrinfo(3) SCTP support,
  	make(1) -p, -Q, ${.MAKE.JOB.PREFIX}, ${.MAKE.PID} added, and
  	mount(8) -o mountprog=/foo added.
  
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 03:26:30 2009	(r191645)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 06:14:12 2009	(r191646)
@@ -235,7 +235,11 @@
 	
 
 	
-	  Specific CPU binding by using &man.cpuset.1; has been supported.
+	  Specific CPU binding by using &man.cpuset.1; has been
+	    supported.  Note that the current implementation allows
+	    the superuser inside of the jail to change the CPU
+	    bindings specified.  This behavior will be fixed in the
+	    next release.
 	
 
 	
@@ -257,9 +261,6 @@
 	
       
 
-      The &man.jail.8; subsystem now supports SCTP (&man.sctp.4;)
-	with IPv6 in jails.
-
       The &man.kld.4; now supports installing 32-bit system
 	call to the &os; system call translation layer from kernel
 	modules.
@@ -344,6 +345,12 @@
 	  added to force this behavior by setting it to
 	  non-zero.
 
+	The &man.atkbd.4; now disables the interrupt handler
+	  which is called from the keyboard callback function when
+	  polled mode is enabled.  This fixes duplicated/missing
+	  characters problem at mountroot on multi CPU systems while
+	  &man.kbdmux.4; is enabled.
+
 	In the &man.pci.4; subsystem INTx is now disabled when
 	  MSI/MSIX is enabled.  This change fixes interrupt storm
 	  related issues.
@@ -355,6 +362,11 @@
 	A &man.sysctl.3; leaf node has a flag to tag itself as
 	  MPSAFE now.
 
+	The &man.sched.ule.4; scheduler now supports a loader
+	  tunable machdep.hyperthreading_enabled as
+	  the &man.sched.4bsd.4; does.  Note that it cannot be
+	  modified at run-time.
+
 	
 	  Multimedia Support
 
@@ -408,10 +420,14 @@
 	    performance by eliminating extra context switch and now
 	    supports Apple USB Ethernet adapter.
 
+	  The &man.bce.4; driver's firmware has been updated to
+	    the latest version (4.6.X).
+
 	  The ciphy(4) driver now supports Vitesse VSC8211
 	    PHY.
 
-	  The &man.cxgb.4; driver now supports hardware MAC
+	  The &man.cxgb.4; driver has been updated to the
+	    firmware revision 4.7 and now supports hardware MAC
 	    statistics.
 
 	  The &man.fxp.4; driver has been improved.  Changes include:
@@ -453,6 +469,9 @@
 	    hw.igb.ave_latency from working has
 	    been fixed.
 
+	  A bug in &man.ixgbe.4; driver has been updated to
+	    version 1.7.4.
+
 	  The &man.jme.4; driver now supports newer JMicron
 	    JMC250/JMC260 revisions.
 
@@ -491,7 +510,7 @@
 	    dev.txp.N.stats
 	    for MAC statistics have been added.  A new sysctl
 	    variable
-	    dev.txp.N.process_limit
+	    dev.txp.N.process_limit
 	    to control how many received frames should be served in Rx
 	    handler (set to 64 by default and valid ranges are 16 to
 	    128 in unit of frames) has been added.  The firmware has
@@ -562,6 +581,9 @@
 
 	The &man.ata.4; driver now supports Marvell PATA M88SX6121.
 
+	The &man.ata.4; driver now recognizes nForce MCP67 and
+	  MCP73 SATA controllers as AHCI.
+
 	The &man.ataraid.4; driver now has an initial support
 	  for DDF metadata found on Adaptec HostRAID controllers.
 	  Note that spares and rebuilds are not supported yet.
@@ -581,6 +603,21 @@
 	  max device openings count that has led
  	  to poor performance has been fixed.
 
+	The &man.glabel.8; GEOM class now supports a new
+	  UFS-based label called ufsid that can be
+	  used to reference UFS-carrying devices by the unique file
+	  system ID.  This file system ID is automatically generated
+	  and detected when &man.glabel.8; GEOM class is enabled.  An
+	  example of this new label is:
+	  /dev/ufsid/48e69c8b5c8e1b43.  The
+	  benefit of using GEOM labels in general is to avoid problems
+	  of device renaming when shifting drives or
+	  controllers.
+
+	The &man.gjournal.8; GEOM class now supports the root
+	  filesystem.  Previously, an unclean shutdown would make it
+	  impossible to mount root file system at boot.
+
 	The &man.gpart.8; utility has been updated.  The APM
 	  scheme now supports Tivo Series 1 partitions (read only), a
 	  new EBR scheme to support Extended Boot Records has been
@@ -593,6 +630,9 @@
 	  have to be read from the underlying disks, requiring them to be opened for
 	  reading as well as writing.
 
+	The &man.hptmv.4; driver has been updated to version
+	  1.16 from the vendor.
+
 	The &man.mmc.4; and &man.mmcsd.4; driver now support MMC
 	  and SDHC cards, high speed timing, wide bus, and multiblock
 	  transfers.
@@ -608,6 +648,8 @@
 	  a sysctl variable hw.sdhci.debug for debug
 	  level.
 
+	The &man.twa.4; driver now supports 64-bit DMA.
+
 	The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver
 	  are now included as a kernel module.
       
@@ -718,6 +760,12 @@
 	this behavior is desired.
 
       The &man.fsck.8; utility now supports a
+	 flag for check clean
+	mode.  This checks if the file system was dismounted cleanly
+	first and then skip file system checks if true.  Otherwise it
+	does full checks.
+
+      The &man.fsck.8; utility now supports a
 	 flag for damaged recovery mode, which
 	will enable certain aggressive operations that can make
 	&man.fsck.8; to survive with file systems that has very
@@ -725,6 +773,8 @@
 	disk data damage is very serious and causes &man.fsck.8; to
 	crash otherwise.
 
+      The &man.getaddrinfo.3; function now supports SCTP.
+
       A bug in the &man.ipfw.8; utility which displays extra
 	messages for a NAT rule even when a  flag
 	is specified.
@@ -734,6 +784,31 @@
 	flag is specified and the file does not exist, the &man.ln.1;
 	will put a warning message.
 
+      The &man.make.1; utility now supports a
+	 flag to print the input graph only, not
+	executing any commands.  The output is the same as .  When combined with , only the built-in rules of make are
+	displayed.
+
+      The &man.make.1; utility now supports a
+	 flag to cause file banners not to be
+	generated in addition to the same effect of a
+	 flag when a  option is
+	specified.
+
+      The &man.make.1; utility now supports
+	.MAKE.JOB.PREFIX variable.  If
+	 and  are specified, it
+	outputs for each target is prefixed with a token ---
+	  target --- the first part
+	of which can be controlled via the variable.
+
+      The &man.make.1; utility now supports
+	.MAKE.PID and .MAKE.PPID
+	variable.  These are set to process ID of the &man.make.1;
+	process and one of its parent process respectively.
+
       The &man.makefs.8; utility to create a file system image
 	from a directory tree has been added.
 
@@ -741,6 +816,13 @@
 	 option to automatically install files that
 	differ only in version control ID strings.
 
+      The &man.mount.8; utility now supports an 
+	option to force it to use the specified program to mount the
+	file system instead of calling &man.nmount.2; directly.  This
+	is useful when you want to use third party programs such as
+	FUSE, for example.
+
       The &man.netstat.1; utility now reports &man.unix.4;
 	sockets listen queue statistics when an 
 	flag.

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 06:52:05 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4CC22106564A;
	Wed, 29 Apr 2009 06:52:05 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 399CC8FC28;
	Wed, 29 Apr 2009 06:52:05 +0000 (UTC) (envelope-from hrs@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 n3T6q5lI071759;
	Wed, 29 Apr 2009 06:52:05 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T6q5EV071758;
	Wed, 29 Apr 2009 06:52:05 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904290652.n3T6q5EV071758@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 06:52:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191647 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 06:52:05 -0000

Author: hrs
Date: Wed Apr 29 06:52:04 2009
New Revision: 191647
URL: http://svn.freebsd.org/changeset/base/191647

Log:
  - Updare release notes:
  	currently jail+cpuset allows superuser inside the jail to
  	change the CPU bindings,
  	atkbd(4) + kbdmux(4) duplicated/missing chars issue on MP systems fixed,
  	ULE machdep.hyperthreading_enabled support,
  	bce(4) update,
  	cxgb(4) update,
  	ixgbe(4) update,
  	a typo fix: s///,
  	ata(4) nForce MCP67/MCP73 support improved,
  	GEOM label UFS ID support,
  	GEOM journal rootfs support,
  	hptmv(4) updated,
  	twa(4) 64-bit DMA support,
  	fsck -C (check clean mode) support,
  	getaddrinfo(3) SCTP support,
  	make(1) -p, -Q, ${.MAKE.JOB.PREFIX}, ${.MAKE.PID} added, and
  	mount(8) -o mountprog=/foo added.
  
  - Various grammer and order fixes.
  
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 06:14:12 2009	(r191646)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 06:52:04 2009	(r191647)
@@ -243,6 +243,11 @@
 	
 
 	
+	  A &man.jail.8; can start with a specific route
+	    FIB now.
+	
+
+	
 	  A show jails subcommand in
 	    &man.ddb.8; has been added.
 	
@@ -270,22 +275,22 @@
 	routine finishes executing.
 
       Types of variables used to track amount of allocated
-	System V shared memory from int to
-	size_t.  This makes it possible to use more
-	than 2 GB shared memory segments on 64-bit architectures.
-	Please note the new BUGS section in &man.shmctl.2; and
-	/usr/src/UPDATING for limitations of this
-	temporal solution.
+	System V shared memory have been changed from
+	int to size_t.  This
+	makes it possible to use more than 2 GB shared memory segments
+	on 64-bit architectures.  Please note the new BUGS section in
+	&man.shmctl.2; and /usr/src/UPDATING for
+	limitations of this temporal solution.
 
       The &os; 32-bit system call translation layer now
 	supports installing 32-bit system calls for
 	VFS_AIO.
 
       The &os; virtual memory subsystem now
-	supports Superpages.  The Superpages is a feature in modern
-	CPUs that enables each entry in the TLB (translation lookaside
-	buffer) to map a large physical memory region into a virtual
-	address space.  This provides possible memory savings for
+	supports Superpages.  The Superpages is a feature that enables
+	each entry in the TLB (translation lookaside buffer) to map a
+	large physical memory region into a virtual address space in
+	modern CPUs.  This provides possible memory savings for
 	applications that share large amounts of memory between the
 	address spaces and performance improvements due to fewer TLB
 	misses.
@@ -298,7 +303,7 @@
 	  PXE by pressing F6 key on some supported BIOSes.
 
 	The &man.loader.8; is now able to obtain DHCP options
-	  via &man.kenv.2; variables in the case of network boot.
+	  from network boot via &man.kenv.2; variables.
 
 	A bug in the &man.loader.8; has been fixed.  Now the
 	  following line works as expected:
@@ -327,13 +332,13 @@
 
 	The &man.cpuctl.4; driver, which provides a special
 	  device /dev/cpuctl as an interface to
-	  the system CPU and functionality to retrieve CPUID
-	  information, read/write machine specific registers (MSR) and
-	  perform CPU firmware updates.
+	  the system CPU has been added.  The functionality includes
+	  to retrieve CPUID information, read/write machine specific
+	  registers (MSR), and perform CPU firmware updates.
 
-	The &man.cpufreq.4; driver now supports a
+	The &man.cpufreq.4; driver now supports an
 	  hw.est.msr_info loader tunable.  When
-	  this set to 1, it attempts to build a
+	  this is set to 1, it attempts to build a
 	  simple list containing just the high and low frequencies if
 	  it cannot obtain a frequency list from either ACPI or the
 	  static tables.  This is disabled by default.
@@ -359,14 +364,14 @@
 	  Fireplane/Safari to PCI 2.1 and Tomatillo JBus to PCI 2.2
 	  bridges has been added.
 
-	A &man.sysctl.3; leaf node has a flag to tag itself as
-	  MPSAFE now.
-
 	The &man.sched.ule.4; scheduler now supports a loader
 	  tunable machdep.hyperthreading_enabled as
 	  the &man.sched.4bsd.4; does.  Note that it cannot be
 	  modified at run-time.
 
+	A &man.sysctl.3; leaf node has a flag to tag itself as
+	  MPSAFE now.
+
 	
 	  Multimedia Support
 
@@ -409,7 +414,7 @@
 	  The &man.ae.4; driver now supports WoL
 	    (Wake on LAN).
 
-	  The &man.ale.4; driver are now
+	  The &man.ale.4; driver is now
 	    included in the GENERIC
 	    kernel.
 
@@ -417,7 +422,7 @@
 	    has been updated to the open source version.
 
 	  The &man.axe.4; driver has been improved in
-	    performance by eliminating extra context switch and now
+	    performance by eliminating extra context switches and now
 	    supports Apple USB Ethernet adapter.
 
 	  The &man.bce.4; driver's firmware has been updated to
@@ -435,7 +440,7 @@
 	  
 	    
 	      The checksum offload feature can be controlled by
-		&man.ifconfig.8;.
+		&man.ifconfig.8; now.
 	    
 
 	    
@@ -452,7 +457,7 @@
 	      WoL (Wake on LAN) support for 82550, 82551, 82558,
 		and 82559-based controllers has been added.  Note that
 		ICH based controllers are treated as 82559, and 82557,
-		earlier revision of 82558, and 82559ER have no WOL
+		earlier revision of 82558, and 82559ER have no WoL
 		capability.
 	    
 
@@ -465,9 +470,9 @@
 	    
 	  
 
-	  A bug in &man.igb.4; driver which prevents a tunable
-	    hw.igb.ave_latency from working has
-	    been fixed.
+	  A bug in &man.igb.4; driver which prevents a loader
+	    tunable hw.igb.ave_latency from working
+	    has been fixed.
 
 	  A bug in &man.ixgbe.4; driver has been updated to
 	    version 1.7.4.
@@ -542,20 +547,17 @@
 	  
 	
 
-	The TCP MD5 Signature Option (RFC 2385) for IPv6 has
-	  been implemented in the same way it has been implemented for
-	  IPv4.
-
 	This also changes the semantics of selecting the IP for
 	  processes within a &man.jail.8; as it now uses the same
 	  logic as outside the &man.jail.8;.
 
-	The &man.jail.8; subsystem now supports start with a
-	  specific route FIB.
+	The TCP MD5 Signature Option (RFC 2385) for IPv6 has
+	  been implemented in the same way it has been implemented for
+	  IPv4.
 
 	The &man.ng.netflow.4; Netgraph node now supports
 	  ability to generate egress netflow instead or in addition to
-	  ingress.  A NGM_NETFLOW_SETCONFIG control
+	  ingress.  An NGM_NETFLOW_SETCONFIG control
 	  message has been added to control the new functionality.
 
 	The &man.tap.4;, Ethernet tunnel software network
@@ -615,7 +617,7 @@
 	  controllers.
 
 	The &man.gjournal.8; GEOM class now supports the root
-	  filesystem.  Previously, an unclean shutdown would make it
+	  file system.  Previously, an unclean shutdown would make it
 	  impossible to mount root file system at boot.
 
 	The &man.gpart.8; utility has been updated.  The APM
@@ -678,18 +680,18 @@
 	  an ACCESS RPC to prime the access cache instead of a simple
 	  GETATTR RPC.  This is because on many NFS servers an ACCESS
 	  RPC is much more expensive to service than a GETATTR RPC for
-	  files in a NFSv3 mount.  The sysctl variables is enabled by
+	  files in an NFSv3 mount.  The sysctl variable is enabled by
 	  default to maintain the previous behavior.
 
-	The &os; UDF file system now supports fifo.
+	The &os; UDF file system now supports a fifo.
 
 	The shared vnode locking for pathname lookups in
 	  &man.VFS.9; subsystem has been improved.  This is disabled
 	  by default.  Setting a sysctl variable
 	  vfs.lookup_shared to 1
 	  enables it for better performance.  Note that the
-	  LOOKUP_SHARED equivalent to the sysctl
-	  variable kernel option has been removed.
+	  LOOKUP_SHARED kernel option equivalent to
+	  the sysctl variable has been removed.
       
     
 
@@ -730,10 +732,10 @@
       The &man.du.1; utility now supports a  option to
 	calculate block counts in blocksize byte blocks.  This is
-	different from the , 
+	different from the  or 
 	options or setting BLOCKSIZE and gives an
 	estimate of how much space the examined file hierarchy would
-	require on a filesystem with the given
+	require on a file system with the given
 	blocksize.  Unless in
 	 mode, blocksize
 	is rounded up to the next multiple of 512.
@@ -742,14 +744,14 @@
 	 flag, which causes it to list all free
 	fragments in the file system by fragment (block) number.  This
 	new mode does the necessary arithmetic to generate absolute
-	fragment numbers rather than than the cg-relative numbers
-	printed in the default mode.
+	fragment numbers rather than the cg-relative numbers printed
+	in the default mode.
 
       If  is passed once, contiguous fragment
-	ranges are collapsed into an X-Y format as free block lists are
-	currently printed in regular dumpfs output, but if specified twice,
-	all block numbers are printed individually, allowing both compact
-	and more script-friendly representation.
+	ranges are collapsed into an X-Y format as free block lists
+	are currently printed in regular dumpfs output.  If specified
+	twice, all block numbers are printed individually, allowing
+	both compact and more script-friendly representation.
 
       The &man.fetch.1; utility now supports an
 	 flag which supports If-Modified-Since HTTP
@@ -766,10 +768,10 @@
 	does full checks.
 
       The &man.fsck.8; utility now supports a
-	 flag for damaged recovery mode, which
-	will enable certain aggressive operations that can make
+	 flag for damaged recovery mode, which will
+	enable certain aggressive operations that can make
 	&man.fsck.8; to survive with file systems that has very
-	serious data damage, which is an useful last resort when on
+	serious data damage.  This is an useful last resort when on
 	disk data damage is very serious and causes &man.fsck.8; to
 	crash otherwise.
 
@@ -825,7 +827,7 @@
 
       The &man.netstat.1; utility now reports &man.unix.4;
 	sockets listen queue statistics when an 
-	flag.
+	flag is specified.
 
       A bug in the &man.netstat.1; utility has been fixed.  It
 	crashed with the following options in the previous
@@ -864,11 +866,13 @@
 	zombie process when a password or default shell is changed has
 	been fixed.
 
+
     
 
     
@@ -904,11 +908,13 @@
 	role="package">x11/kde4).
     
 
+
   
 
   

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 06:54:41 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 28C54106564A;
	Wed, 29 Apr 2009 06:54:41 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 15B928FC08;
	Wed, 29 Apr 2009 06:54:41 +0000 (UTC)
	(envelope-from jeff@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 n3T6sftl071946;
	Wed, 29 Apr 2009 06:54:41 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T6seLQ071937;
	Wed, 29 Apr 2009 06:54:40 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <200904290654.n3T6seLQ071937@svn.freebsd.org>
From: Jeff Roberson 
Date: Wed, 29 Apr 2009 06:54:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191648 - in head/sys: amd64/amd64 amd64/include
	i386/i386 i386/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 06:54:41 -0000

Author: jeff
Date: Wed Apr 29 06:54:40 2009
New Revision: 191648
URL: http://svn.freebsd.org/changeset/base/191648

Log:
   - Add support for cpuid leaf 0xb.  This allows us to determine the
     topology of nehalem/corei7 based systems.
   - Remove the cpu_cores/cpu_logical detection from identcpu.
   - Describe the layout of the system in cpu_mp_announce().
  
  Sponsored by:   Nokia

Modified:
  head/sys/amd64/amd64/identcpu.c
  head/sys/amd64/amd64/mp_machdep.c
  head/sys/amd64/include/smp.h
  head/sys/amd64/include/specialreg.h
  head/sys/i386/i386/identcpu.c
  head/sys/i386/i386/mp_machdep.c
  head/sys/i386/include/smp.h
  head/sys/i386/include/specialreg.h

Modified: head/sys/amd64/amd64/identcpu.c
==============================================================================
--- head/sys/amd64/amd64/identcpu.c	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/amd64/amd64/identcpu.c	Wed Apr 29 06:54:40 2009	(r191648)
@@ -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. */

Modified: head/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- head/sys/amd64/amd64/mp_machdep.c	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/amd64/amd64/mp_machdep.c	Wed Apr 29 06:54:40 2009	(r191648)
@@ -160,6 +160,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 +183,142 @@ 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)
 {
+
+	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;
 	if (cpu_logical == 0)
 		cpu_logical = 1;
+}
+
+struct cpu_group *
+cpu_topo(void)
+{
+	int cg_flags;
+
+	/*
+	 * Determine whether any threading flags are
+	 * necessry.
+	 */
+	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 +333,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));
 }
 
 /*
@@ -318,7 +449,6 @@ void
 cpu_mp_start(void)
 {
 	int i;
-	u_int threads_per_cache, p[4];
 
 	/* Initialize the logical ID to APIC ID table. */
 	for (i = 0; i < MAXCPU; i++) {
@@ -355,51 +485,8 @@ cpu_mp_start(void)
 		KASSERT(boot_cpu_id == PCPU_GET(apic_id),
 		    ("BSP's APIC ID doesn't match boot_cpu_id"));
 
-	/* Setup the initial logical CPUs info. */
-	logical_cpus = logical_cpus_mask = 0;
-	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;
-	}
+	/* Probe logical/physical core configuration. */
+	topo_probe();
 
 	assign_cpu_ids();
 
@@ -419,6 +506,14 @@ cpu_mp_announce(void)
 	const char *hyperthread;
 	int i;
 
+	printf("FreeBSD/SMP: %d package(s) x %d core(s)",
+	    mp_ncpus / (cpu_cores * cpu_logical), cpu_cores);
+	if (hyperthreading_cpus > 1)
+	    printf(" x %d HTT threads", cpu_logical);
+	else if (cpu_logical > 1)
+	    printf(" x %d SMT threads", cpu_logical);
+	printf("\n");
+
 	/* List active CPUs first. */
 	printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
 	for (i = 1; i < mp_ncpus; i++) {

Modified: head/sys/amd64/include/smp.h
==============================================================================
--- head/sys/amd64/include/smp.h	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/amd64/include/smp.h	Wed Apr 29 06:54:40 2009	(r191648)
@@ -36,10 +36,6 @@ extern int			boot_cpu_id;
 extern struct pcb		stoppcbs[];
 extern int			cpu_apic_ids[];
 
-/* global data in identcpu.c */
-extern int			cpu_cores;
-extern int			cpu_logical;
-
 /* IPI handlers */
 inthand_t
 	IDTVEC(invltlb),	/* TLB shootdowns - global */

Modified: head/sys/amd64/include/specialreg.h
==============================================================================
--- head/sys/amd64/include/specialreg.h	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/amd64/include/specialreg.h	Wed Apr 29 06:54:40 2009	(r191648)
@@ -183,6 +183,13 @@
 #define	CPUID_HTT_CORES		0x00ff0000
 #define	CPUID_LOCAL_APIC_ID	0xff000000
 
+/* 
+ * CPUID instruction 0xb ebx info.
+ */
+#define	CPUID_TYPE_INVAL	0
+#define	CPUID_TYPE_SMT		1
+#define	CPUID_TYPE_CORE		2
+
 /*
  * AMD extended function 8000_0007h edx info
  */

Modified: head/sys/i386/i386/identcpu.c
==============================================================================
--- head/sys/i386/i386/identcpu.c	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/i386/i386/identcpu.c	Wed Apr 29 06:54:40 2009	(r191648)
@@ -159,9 +159,6 @@ static struct {
 #endif
 };
 
-int cpu_cores;
-int cpu_logical;
-
 #if defined(I586_CPU) && !defined(NO_F00F_HACK)
 int has_f00f_bug = 0;		/* Initialized so that it can be patched. */
 #endif
@@ -690,7 +687,6 @@ printcpuinfo(void)
 		if (cpu_vendor_id == CPU_VENDOR_CYRIX)
 			printf("  DIR=0x%04x", cyrix_did);
 		if (cpu_high > 0) {
-			u_int cmp = 1, htt = 1;
 
 			/*
 			 * Here we should probably set up flags indicating
@@ -895,28 +891,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);
 		}
 	} else if (cpu_vendor_id == CPU_VENDOR_CYRIX) {
 		printf("  DIR=0x%04x", cyrix_did);

Modified: head/sys/i386/i386/mp_machdep.c
==============================================================================
--- head/sys/i386/i386/mp_machdep.c	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/i386/i386/mp_machdep.c	Wed Apr 29 06:54:40 2009	(r191648)
@@ -213,6 +213,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	install_ap_tramp(void);
@@ -234,13 +236,142 @@ 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)
 {
+
+	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;
 	if (cpu_logical == 0)
 		cpu_logical = 1;
+}
+
+struct cpu_group *
+cpu_topo(void)
+{
+	int cg_flags;
+
+	/*
+	 * Determine whether any threading flags are
+	 * necessry.
+	 */
+	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");
@@ -255,17 +386,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));
 }
 
 
@@ -354,7 +485,6 @@ void
 cpu_mp_start(void)
 {
 	int i;
-	u_int threads_per_cache, p[4];
 
 	/* Initialize the logical ID to APIC ID table. */
 	for (i = 0; i < MAXCPU; i++) {
@@ -399,51 +529,8 @@ cpu_mp_start(void)
 		KASSERT(boot_cpu_id == PCPU_GET(apic_id),
 		    ("BSP's APIC ID doesn't match boot_cpu_id"));
 
-	/* Setup the initial logical CPUs info. */
-	logical_cpus = logical_cpus_mask = 0;
-	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;
-	}
+	/* Probe logical/physical core configuration. */
+	topo_probe();
 
 	assign_cpu_ids();
 
@@ -463,6 +550,14 @@ cpu_mp_announce(void)
 	const char *hyperthread;
 	int i;
 
+	printf("FreeBSD/SMP: %d package(s) x %d core(s)",
+	    mp_ncpus / (cpu_cores * cpu_logical), cpu_cores);
+	if (hyperthreading_cpus > 1)
+	    printf(" x %d HTT threads", cpu_logical);
+	else if (cpu_logical > 1)
+	    printf(" x %d SMT threads", cpu_logical);
+	printf("\n");
+
 	/* List active CPUs first. */
 	printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
 	for (i = 1; i < mp_ncpus; i++) {

Modified: head/sys/i386/include/smp.h
==============================================================================
--- head/sys/i386/include/smp.h	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/i386/include/smp.h	Wed Apr 29 06:54:40 2009	(r191648)
@@ -45,10 +45,6 @@ extern u_long *ipi_rendezvous_counts[MAX
 extern u_long *ipi_lazypmap_counts[MAXCPU];
 #endif
 
-/* global data in identcpu.c */
-extern int			cpu_cores;
-extern int			cpu_logical;
-
 /* IPI handlers */
 inthand_t
 	IDTVEC(invltlb),	/* TLB shootdowns - global */

Modified: head/sys/i386/include/specialreg.h
==============================================================================
--- head/sys/i386/include/specialreg.h	Wed Apr 29 06:52:04 2009	(r191647)
+++ head/sys/i386/include/specialreg.h	Wed Apr 29 06:54:40 2009	(r191648)
@@ -182,6 +182,13 @@
 #define	CPUID_HTT_CORES		0x00ff0000
 #define	CPUID_LOCAL_APIC_ID	0xff000000
 
+/* 
+ * CPUID instruction 0xb ebx info.
+ */
+#define	CPUID_TYPE_INVAL	0
+#define	CPUID_TYPE_SMT		1
+#define	CPUID_TYPE_CORE		2
+
 /*
  * AMD extended function 8000_0007h edx info
  */

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 07:37:07 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D97B0106566C;
	Wed, 29 Apr 2009 07:37:07 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C7BF38FC0A;
	Wed, 29 Apr 2009 07:37:07 +0000 (UTC) (envelope-from hrs@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 n3T7b7eH072792;
	Wed, 29 Apr 2009 07:37:07 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T7b76S072791;
	Wed, 29 Apr 2009 07:37:07 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904290737.n3T7b76S072791@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 07:37:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191649 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 07:37:08 -0000

Author: hrs
Date: Wed Apr 29 07:37:07 2009
New Revision: 191649
URL: http://svn.freebsd.org/changeset/base/191649

Log:
  Fix a typo.
  
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 06:54:40 2009	(r191648)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 07:37:07 2009	(r191649)
@@ -253,8 +253,8 @@
 	
 
 	
-	  Compatibility support which permits 32bit jail
-	    binaries to be used on 64bit systems to manage jails has
+	  Compatibility support which permits 32-bit jail
+	    binaries to be used on 64-bit systems to manage jails has
 	    been added.
 	
 

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 08:46:51 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 43ABF1065675;
	Wed, 29 Apr 2009 08:46:51 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3219A8FC08;
	Wed, 29 Apr 2009 08:46:51 +0000 (UTC) (envelope-from hrs@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 n3T8kpLu074086;
	Wed, 29 Apr 2009 08:46:51 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T8kpaF074085;
	Wed, 29 Apr 2009 08:46:51 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904290846.n3T8kpaF074085@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 08:46:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191650 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 08:46:51 -0000

Author: hrs
Date: Wed Apr 29 08:46:50 2009
New Revision: 191650
URL: http://svn.freebsd.org/changeset/base/191650

Log:
  Fix a typo.
  
  Spotted by:	pluknet at gmail.com
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 07:37:07 2009	(r191649)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 08:46:50 2009	(r191650)
@@ -474,7 +474,7 @@
 	    tunable hw.igb.ave_latency from working
 	    has been fixed.
 
-	  A bug in &man.ixgbe.4; driver has been updated to
+	  The &man.ixgbe.4; driver has been updated to
 	    version 1.7.4.
 
 	  The &man.jme.4; driver now supports newer JMicron

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 09:50:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5FF8F1065672;
	Wed, 29 Apr 2009 09:50:04 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4C9598FC1C;
	Wed, 29 Apr 2009 09:50:04 +0000 (UTC) (envelope-from bms@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 n3T9o4X4075353;
	Wed, 29 Apr 2009 09:50:04 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T9o46f075350;
	Wed, 29 Apr 2009 09:50:04 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904290950.n3T9o46f075350@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 09:50:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191651 - head/usr.sbin/mtest
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 09:50:04 -0000

Author: bms
Date: Wed Apr 29 09:50:04 2009
New Revision: 191651
URL: http://svn.freebsd.org/changeset/base/191651

Log:
  Merge IPv6-capable mtest(8) from MLDv2 branch.

Modified:
  head/usr.sbin/mtest/Makefile
  head/usr.sbin/mtest/mtest.8
  head/usr.sbin/mtest/mtest.c

Modified: head/usr.sbin/mtest/Makefile
==============================================================================
--- head/usr.sbin/mtest/Makefile	Wed Apr 29 08:46:50 2009	(r191650)
+++ head/usr.sbin/mtest/Makefile	Wed Apr 29 09:50:04 2009	(r191651)
@@ -1,6 +1,18 @@
 # $FreeBSD$
 
+.include 
+
 PROG=	mtest
 MAN=	mtest.8
 
+BINMODE= 555
+WARNS?=	2
+
+# XXX This assumes INET support in the base system.
+CFLAGS+=-DINET
+
+.if ${MK_INET6_SUPPORT} != "no"
+CFLAGS+=-DINET6
+.endif
+
 .include 

Modified: head/usr.sbin/mtest/mtest.8
==============================================================================
--- head/usr.sbin/mtest/mtest.8	Wed Apr 29 08:46:50 2009	(r191650)
+++ head/usr.sbin/mtest/mtest.8	Wed Apr 29 09:50:04 2009	(r191651)
@@ -26,111 +26,116 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 3, 2009
+.Dd April 29, 2009
 .Os
 .Dt MTEST 8
 .Sh NAME
 .Nm mtest
-.Nd test multicast membership socket operations and ioctls
+.Nd test multicast socket operations
 .Sh SYNOPSIS
 .Nm
 .Sh DESCRIPTION
 The
 .Nm
 utility
-is a small program for testing the multicast membership socket operations
-and ioctls.
-It accepts the following commands, interactively:
-.Bl -tag -width "a ifname e.e.e.e e.e.e.e" -compact -offset indent
-.It Ic j Ar g.g.g.g Ar i.i.i.i Op Ar s.s.s.s
-Join the IP group address
-.Ar g.g.g.g
-on the interface with address
-.Ar i.i.i.i .
+is a small program for testing multicast socket operations.
 .Pp
-If an optional source
-.Ar s.s.s.s
-is specified, a source-specific join will be performed;
-if
-.Nm
-is already a member of the group, the source
-will be added to its filter list.
+It accepts the following commands, interactively, or as part of a scripted
+input file (useful for automated testing):
+.Bl -tag -width "a ifname e.e.e.e e.e.e.e" -compact -offset indent
 .Pp
-.Ar i.i.i.i
-may be specified as 0.0.0.0 to use the default interface,
-although this is legacy behaviour and is not recommended,
-as group memberships are keyed to each individual link.
-.It Ic l Ar g.g.g.g Ar i.i.i.i Op Ar s.s.s.s
-Leave the IP group address
-.Ar g.g.g.g
-on the interface with address
-.Ar i.i.i.i .
-If a source
-.Ar s.s.s.s
-is specified, only that source will be left.
-.It Ic a Ar ifname Ar e.e.e.e.e.e
-Join the Ethernet group address
-.Ar e.e.e.e.e.e
+.\"
+.It Ic a Ar ifname Ar mac-addr
+Join the link-layer group address
+.Ar mac-addr
 on interface
 .Ar ifname .
-.It Ic d Ar ifname Ar e.e.e.e.e.e
-Leave the Ethernet group address
-.Ar e.e.e.e.e.e
+The group address should be in IEEE 802 MAC format,
+delimited by colon (':') characters.
+.It Ic d Ar ifname Ar mac-addr
+Leave the link-layer group address
+.Ar mac-addr
 on interface
 .Ar ifname .
 .It Ic m Ar ifname Ar 1/0
 Set or reset ALLMULTI mode on interface
 .Ar ifname .
+This option is deprecated and is now a no-op.
 .It Ic p Ar ifname Ar 1/0
 Set or reset promiscuous mode on interface
 .Ar ifname .
+.Pp
+.It Ic j Ar mcast-addr Ar ifname Op Ar source-addr
+Join the multicast address
+.Ar mcast-addr
+on the interface with name
+.Ar ifname .
+.Pp
+If an optional source
+.Ar source-addr
+is specified, a source-specific join will be performed;
+if
+.Nm
+is already joined to the multicast address, the source
+will be added to its filter list.
+.Pp
+.It Ic l Ar mcast-addr Ar ifname Op Ar source-addr
+Leave the multicast address
+.Ar mcast-addr
+on the interface with address
+.Ar ifname .
+If a source
+.Ar source-addr
+is specified, only that source will be left.
 .\"
-.It Ic i Ar g.g.g.g Ar i.i.i.i Ar n Ar x.x.x.x ...
-Set the socket with group membership of
-.Ar g.g.g.g
-on IPv4 address
-.Ar i.i.i.i
+.It Ic i Ar mcast-addr Ar ifname Ar n Ar source-addr ...
+Set the socket with membership of
+.Ar mcast-addr
+on interface
+.Ar ifname
 to include filter mode, and add
 .Ar n
 sources beginning with
-.Ar x.x.x.x
+.Ar source-addr
 to the inclusion filter list.
 .\"
-.It Ic e Ar g.g.g.g Ar i.i.i.i Ar n Ar x.x.x.x ...
-Set the socket with group membership of
-.Ar g.g.g.g
-on IPv4 address
-.Ar i.i.i.i
+.It Ic e Ar mcast-addr Ar ifname Ar n Ar source-addr ...
+Set the socket with membership of
+.Ar mcast-addr
+on interface
+.Ar ifname
 to exclude filter mode, and add
 .Ar n
 sources beginning with
-.Ar x.x.x.x
+.Ar source-addr
 to the exclusion filter list.
 .\"
-.It Ic t Ar g.g.g.g Ar i.i.i.i Ar s.s.s.s
-Set the socket with group membership of
-.Ar g.g.g.g
-on IPv4 address
-.Ar i.i.i.i
+.It Ic t Ar mcast-addr Ar ifname Ar source-addr
+Set the socket with membership of
+.Ar mcast-addr
+on interface
+.Ar ifname
 to block traffic from source
-.Ar s.s.s.s .
+.Ar source-addr .
 .\"
-.It Ic b Ar g.g.g.g Ar i.i.i.i Ar s.s.s.s
-Set the socket with group membership of
-.Ar g.g.g.g
-on IPv4 address
-.Ar i.i.i.i
+.It Ic b Ar mcast-addr Ar ifname Ar source-addr
+Set the socket with membership of
+.Ar mcast-addr
+on interface
+.Ar ifname
 to allow traffic from source
-.Ar s.s.s.s .
+.Ar source-addr .
 .\"
-.It Ic g Ar g.g.g.g Ar i.i.i.i Ar n
+.Pp
+.It Ic g Ar mcast-addr Ar ifname Ar n
 Print
 .Ar n
-source filter entries for group
-.An g.g.g.g
-on IPv4 address
-.An i.i.i.i .
+source filter entries for
+.An mcast-addr
+on interface
+.An ifname .
 .\"
+.Pp
 .It Ic f Ar filename
 Read commands from the file
 .Ar filename .
@@ -143,6 +148,18 @@ List legal commands.
 .It Ic q
 Quit the program.
 .El
+.Sh IMPLEMENTATION NOTES
+For each command implemented by
+.Nm ,
+the address family of each argument must be identical; it is not possible
+to mix IPv4 multicast memberships with IPv6, for example.
+.Pp
+To support IPv6, all commands have now changed to accept an interface
+name rather than an interface address.
+For IPv4, the program will perform
+a lookup of the primary IP address based on the interface name.
+This may fail if no primary IP address is assigned.
+.Pp
 .Sh SEE ALSO
 .Rs
 .%A D. Thaler

Modified: head/usr.sbin/mtest/mtest.c
==============================================================================
--- head/usr.sbin/mtest/mtest.c	Wed Apr 29 08:46:50 2009	(r191650)
+++ head/usr.sbin/mtest/mtest.c	Wed Apr 29 09:50:04 2009	(r191651)
@@ -29,13 +29,18 @@
  */
 
 /*
- * Diagnostic and test utility for IPv4 multicast sockets.
+ * Diagnostic and test utility for multicast sockets.
+ * XXX: This file currently assumes INET support in the base system.
+ * TODO: Support embedded KAME Scope ID in IPv6 group addresses.
+ * TODO: Use IPv4 link-local address when source address selection
+ * is implemented; use MCAST_JOIN_SOURCE for IPv4.
  */
 
 #include 
 __FBSDID("$FreeBSD$");
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -44,42 +49,169 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#ifdef INET
 #include 
+#include 
+#include 
+#include 
+#endif
+#ifdef INET6
+#include 
+#include 
+#endif
 
-#include 
-
+#include 
 #include 
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
-static void	process_file(char *, int);
-static void	process_cmd(char*, int, FILE *fp);
-static void	usage(void);
+#include 
+#include 
+#include 
+
+union sockunion {
+	struct sockaddr_storage	ss;
+	struct sockaddr		sa;
+	struct sockaddr_dl	sdl;
+#ifdef INET
+	struct sockaddr_in	sin;
+#endif
+#ifdef INET6
+	struct sockaddr_in6	sin6;
+#endif
+};
+typedef union sockunion sockunion_t;
+
+union mrequnion {
+#ifdef INET
+	struct ip_mreq	 	 mr;
+	struct ip_mreq_source	 mrs;
+#endif
+#ifdef INET6
+	struct ipv6_mreq	 mr6;
+	struct group_source_req	 gr;
+#endif
+};
+typedef union mrequnion mrequnion_t;
 
 #define	MAX_ADDRS	20
 #define	STR_SIZE	20
 #define	LINE_LENGTH	80
 
+#ifdef INET
+static int	__ifindex_to_primary_ip(const uint32_t, struct in_addr *);
+#endif
+static uint32_t	parse_cmd_args(sockunion_t *, sockunion_t *,
+		    const char *, const char *, const char *);
+static void	process_file(char *, int, int);
+static void	process_cmd(char*, int, int, FILE *);
+static int	su_cmp(const void *, const void *);
+static void	usage(void);
+
+/*
+ * Ordering predicate for qsort().
+ */
+static int
+su_cmp(const void *a, const void *b)
+{
+	const sockunion_t	*sua = (const sockunion_t *)a;
+	const sockunion_t	*sub = (const sockunion_t *)b;
+
+	assert(sua->sa.sa_family == sub->sa.sa_family);
+
+	switch (sua->sa.sa_family) {
+#ifdef INET
+	case AF_INET:
+		return ((int)(sua->sin.sin_addr.s_addr -
+		    sub->sin.sin_addr.s_addr));
+		break;
+#endif
+#ifdef INET6
+	case AF_INET6:
+		return (memcmp(&sua->sin6.sin6_addr, &sub->sin6.sin6_addr,
+		    sizeof(struct in6_addr)));
+		break;
+#endif
+	default:
+		break;
+	}
+
+	assert(sua->sa.sa_len == sub->sa.sa_len);
+	return (memcmp(sua, sub, sua->sa.sa_len));
+}
+
+#ifdef INET
+/*
+ * Internal: Map an interface index to primary IPv4 address.
+ * This is somewhat inefficient. This is a useful enough operation
+ * that it probably belongs in the C library.
+ * Return zero if found, -1 on error, 1 on not found.
+ */
 static int
-inaddr_cmp(const void *a, const void *b)
+__ifindex_to_primary_ip(const uint32_t ifindex, struct in_addr *pina)
 {
-	return ((int)((const struct in_addr *)a)->s_addr -
-	    ((const struct in_addr *)b)->s_addr);
+	char		 ifname[IFNAMSIZ];
+	struct ifaddrs	*ifa;
+	struct ifaddrs	*ifaddrs;
+	sockunion_t	*psu;
+	int		 retval;
+
+	assert(ifindex != 0);
+
+	retval = -1;
+	if (if_indextoname(ifindex, ifname) == NULL)
+		return (retval);
+	if (getifaddrs(&ifaddrs) < 0)
+		return (retval);
+
+	/*
+	 * Find the ifaddr entry corresponding to the interface name,
+	 * and return the first matching IPv4 address.
+	 */
+	retval = 1;
+	for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next) {
+		if (strcmp(ifa->ifa_name, ifname) != 0)
+			continue;
+		psu = (sockunion_t *)ifa->ifa_addr;
+		if (psu && psu->sa.sa_family == AF_INET) {
+			retval = 0;
+			memcpy(pina, &psu->sin.sin_addr,
+			    sizeof(struct in_addr));
+			break;
+		}
+	}
+
+	if (retval != 0)
+		errno = EADDRNOTAVAIL;	/* XXX */
+
+	freeifaddrs(ifaddrs);
+	return (retval);
 }
+#endif /* INET */
 
 int
 main(int argc, char **argv)
 {
 	char	 line[LINE_LENGTH];
 	char	*p;
-	int	 i, s;
+	int	 i, s, s6;
 
+	s = -1;
+	s6 = -1;
+#ifdef INET
 	s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 	if (s == -1)
-		err(1, "can't open socket");
+		err(1, "can't open IPv4 socket");
+#endif
+#ifdef INET6
+	s6 = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
+	if (s6 == -1)
+		err(1, "can't open IPv6 socket");
+#endif
 
 	if (argc < 2) {
 		if (isatty(STDIN_FILENO)) {
@@ -89,28 +221,33 @@ main(int argc, char **argv)
 		do {
 			if (fgets(line, sizeof(line), stdin) != NULL) {
 				if (line[0] != 'f')
-					process_cmd(line, s, stdin);
+					process_cmd(line, s, s6, stdin);
 				else {
 					/* Get the filename */
 					for (i = 1; isblank(line[i]); i++);
 					if ((p = (char*)strchr(line, '\n'))
 					    != NULL)
 						*p = '\0';
-					process_file(&line[i], s);
+					process_file(&line[i], s, s6);
 				}
 			}
 		} while (!feof(stdin));
 	} else {
 		for (i = 1; i < argc; i++) {
-			process_file(argv[i], s);
+			process_file(argv[i], s, s6);
 		}
 	}
 
+	if (s != -1)
+		close(s);
+	if (s6 != -1)
+		close(s6);
+
 	exit (0);
 }
 
 static void
-process_file(char *fname, int s)
+process_file(char *fname, int s, int s6)
 {
 	char line[80];
 	FILE *fp;
@@ -128,25 +265,130 @@ process_file(char *fname, int s)
 		while (isblank(*lineptr))
 			lineptr++;
 		if (*lineptr != '#' && *lineptr != '\n')
-			process_cmd(lineptr, s, fp);
+			process_cmd(lineptr, s, s6, fp);
 	}
 
 	fclose(fp);
 }
 
+/*
+ * Parse join/leave/allow/block arguments, given:
+ *  str1: group (as AF_INET or AF_INET6 printable)
+ *  str2: ifname
+ *  str3: optional source address (may be NULL).
+ *   This argument must have the same parsed address family as str1.
+ * Return the ifindex of ifname, or 0 if any parse element failed.
+ */
+static uint32_t
+parse_cmd_args(sockunion_t *psu, sockunion_t *psu2,
+    const char *str1, const char *str2, const char *str3)
+{
+	struct addrinfo		 hints;
+	struct addrinfo		*res;
+	uint32_t		 ifindex;
+	int			 af, error;
+
+	assert(psu != NULL);
+	assert(str1 != NULL);
+	assert(str2 != NULL);
+
+	af = AF_UNSPEC;
+
+	ifindex = if_nametoindex(str2);
+	if (ifindex == 0)
+		return (0);
+
+	memset(&hints, 0, sizeof(struct addrinfo));
+	hints.ai_flags = AI_NUMERICHOST;
+	hints.ai_family = PF_UNSPEC;
+	hints.ai_socktype = SOCK_DGRAM;
+
+	memset(psu, 0, sizeof(sockunion_t));
+	psu->sa.sa_family = AF_UNSPEC;
+
+	error = getaddrinfo(str1, "0", &hints, &res);
+	if (error) {
+		warnx("getaddrinfo: %s", gai_strerror(error));
+		return (0);
+	}
+	assert(res != NULL);
+	af = res->ai_family;
+	memcpy(psu, res->ai_addr, res->ai_addrlen);
+	freeaddrinfo(res);
+
+	/* sscanf() may pass the empty string. */
+	if (psu2 != NULL && str3 != NULL && *str3 != '\0') {
+		memset(psu2, 0, sizeof(sockunion_t));
+		psu2->sa.sa_family = AF_UNSPEC;
+
+		/* look for following address family; str3 is *optional*. */
+		hints.ai_family = af;
+		error = getaddrinfo(str3, "0", &hints, &res);
+		if (error) {
+			warnx("getaddrinfo: %s", gai_strerror(error));
+			ifindex = 0;
+		} else {
+			if (af != res->ai_family) {
+				errno = EINVAL; /* XXX */
+				ifindex = 0;
+			}
+			memcpy(psu2, res->ai_addr, res->ai_addrlen);
+			freeaddrinfo(res);
+		}
+	}
+
+	return (ifindex);
+}
+
+static __inline int
+af2sock(const int af, int s, int s6)
+{
+
+#ifdef INET
+	if (af == AF_INET)
+		return (s);
+#endif
+#ifdef INET6
+	if (af == AF_INET6)
+		return (s6);
+#endif
+	return (-1);
+}
+
+static __inline int
+af2socklen(const int af)
+{
+
+#ifdef INET
+	if (af == AF_INET)
+		return (sizeof(struct sockaddr_in));
+#endif
+#ifdef INET6
+	if (af == AF_INET6)
+		return (sizeof(struct sockaddr_in6));
+#endif
+	return (-1);
+}
+
 static void
-process_cmd(char *cmd, int s, FILE *fp __unused)
+process_cmd(char *cmd, int s, int s6 __unused, FILE *fp __unused)
 {
 	char			 str1[STR_SIZE];
 	char			 str2[STR_SIZE];
 	char			 str3[STR_SIZE];
-	struct in_addr		 sources[MAX_ADDRS];
+	mrequnion_t		 mr;
+	sockunion_t		 su, su2;
 	struct ifreq		 ifr;
-	struct ip_mreq		 imr;
-	struct ip_mreq_source	 imrs;
 	char			*line;
-	uint32_t		 fmode;
-	int			 i, n, opt, f, flags;
+	char			*toptname;
+	void			*optval;
+	uint32_t		 fmode, ifindex;
+	socklen_t		 optlen;
+	int			 af, error, f, flags, i, level, n, optname;
+
+	af = AF_UNSPEC;
+	su.sa.sa_family = AF_UNSPEC;
+	su2.sa.sa_family = AF_UNSPEC;
 
 	line = cmd;
 	while (isblank(*++line))
@@ -173,51 +415,326 @@ process_cmd(char *cmd, int s, FILE *fp _
 	case 'j':
 	case 'l':
 		str3[0] = '\0';
+		toptname = "";
 		sscanf(line, "%s %s %s", str1, str2, str3);
-		if ((imrs.imr_sourceaddr.s_addr = inet_addr(str3)) !=
-		    INADDR_NONE) {
-			/*
-			 * inclusive mode join with source, possibly
-			 * on existing membership.
-			 */
-			if (((imrs.imr_multiaddr.s_addr = inet_addr(str1)) ==
-			    INADDR_NONE) ||
-			    ((imrs.imr_interface.s_addr = inet_addr(str2)) ==
-			    INADDR_NONE)) {
+		ifindex = parse_cmd_args(&su, &su2, str1, str2, str3);
+		if (ifindex == 0) {
+			printf("-1\n");
+			break;
+		}
+		af = su.sa.sa_family;
+#ifdef INET
+		if (af == AF_INET) {
+			struct in_addr ina;
+
+			error = __ifindex_to_primary_ip(ifindex, &ina);
+			if (error != 0) {
+				warn("primary_ip_lookup %s", str2);
 				printf("-1\n");
 				break;
 			}
-			opt = (*cmd == 'j') ? IP_ADD_SOURCE_MEMBERSHIP :
-			    IP_DROP_SOURCE_MEMBERSHIP;
-			if (setsockopt( s, IPPROTO_IP, opt, &imrs,
-			    sizeof(imrs)) != 0) {
-				warn("setsockopt %s", (*cmd == 'j') ?
+			level = IPPROTO_IP;
+
+			if (su2.sa.sa_family != AF_UNSPEC) {
+				mr.mrs.imr_multiaddr = su.sin.sin_addr;
+				mr.mrs.imr_sourceaddr = su2.sin.sin_addr;
+				mr.mrs.imr_interface = ina;
+				optname = (*cmd == 'j') ?
+				    IP_ADD_SOURCE_MEMBERSHIP :
+				    IP_DROP_SOURCE_MEMBERSHIP;
+				toptname = (*cmd == 'j') ?
 				    "IP_ADD_SOURCE_MEMBERSHIP" :
-				    "IP_DROP_SOURCE_MEMBERSHIP");
+				    "IP_DROP_SOURCE_MEMBERSHIP";
+				optval = (void *)&mr.mrs;
+				optlen = sizeof(mr.mrs);
 			} else {
+				mr.mr.imr_multiaddr = su.sin.sin_addr;
+				mr.mr.imr_interface = ina;
+				optname = (*cmd == 'j') ?
+				    IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP;
+				toptname = (*cmd == 'j') ?
+				    "IP_ADD_MEMBERSHIP" : "IP_DROP_MEMBERSHIP";
+				optval = (void *)&mr.mr;
+				optlen = sizeof(mr.mr);
+			}
+			if (setsockopt(s, level, optname, optval,
+			    optlen) == 0) {
 				printf("ok\n");
+				break;
+			} else {
+				warn("setsockopt %s", toptname);
 			}
-		} else {
-			/* exclusive mode join w/o source. */
-			if (((imr.imr_multiaddr.s_addr = inet_addr(str1)) ==
-			    INADDR_NONE) ||
-			    ((imr.imr_interface.s_addr = inet_addr(str2)) ==
-			    INADDR_NONE)) {
+		}
+#ifdef INET6
+		else
+#endif /* INET with INET6 */
+#endif /* INET */
+#ifdef INET6
+		if (af == AF_INET6) {
+			level = IPPROTO_IPV6;
+			if (su2.sa.sa_family != AF_UNSPEC) {
+				mr.gr.gsr_interface = ifindex;
+				mr.gr.gsr_group = su.ss;
+				mr.gr.gsr_source = su2.ss;
+				optname = (*cmd == 'j') ?
+				    MCAST_JOIN_SOURCE_GROUP:
+				    MCAST_LEAVE_SOURCE_GROUP;
+				toptname = (*cmd == 'j') ?
+				    "MCAST_JOIN_SOURCE_GROUP":
+				    "MCAST_LEAVE_SOURCE_GROUP";
+				optval = (void *)&mr.gr;
+				optlen = sizeof(mr.gr);
+			} else {
+				mr.mr6.ipv6mr_multiaddr = su.sin6.sin6_addr;
+				mr.mr6.ipv6mr_interface = ifindex;
+				optname = (*cmd == 'j') ?
+				    IPV6_JOIN_GROUP :
+				    IPV6_LEAVE_GROUP;
+				toptname = (*cmd == 'j') ?
+				    "IPV6_JOIN_GROUP" :
+				    "IPV6_LEAVE_GROUP";
+				optval = (void *)&mr.mr6;
+				optlen = sizeof(mr.mr6);
+			}
+			if (setsockopt(s6, level, optname, optval,
+			    optlen) == 0) {
+				printf("ok\n");
+				break;
+			} else {
+				warn("setsockopt %s", toptname);
+			}
+		}
+#endif /* INET6 */
+		/* FALLTHROUGH */
+		printf("-1\n");
+		break;
+
+	/*
+	 * Set the socket to include or exclude filter mode, and
+	 * add some sources to the filterlist, using the full-state API.
+	 */
+	case 'i':
+	case 'e': {
+		sockunion_t	 sources[MAX_ADDRS];
+		struct addrinfo	 hints;
+		struct addrinfo	*res;
+		char		*cp;
+		int		 af1;
+
+		n = 0;
+		fmode = (*cmd == 'i') ? MCAST_INCLUDE : MCAST_EXCLUDE;
+		if ((sscanf(line, "%s %s %d", str1, str2, &n)) != 3) {
+			printf("-1\n");
+			break;
+		}
+
+		ifindex = parse_cmd_args(&su, NULL, str1, str2, NULL);
+		if (ifindex == 0 || n < 0 || n > MAX_ADDRS) {
+			printf("-1\n");
+			break;
+		}
+		af = su.sa.sa_family;
+
+		memset(&hints, 0, sizeof(struct addrinfo));
+		hints.ai_flags = AI_NUMERICHOST;
+		hints.ai_family = af;
+		hints.ai_socktype = SOCK_DGRAM;
+
+		for (i = 0; i < n; i++) {
+			sockunion_t *psu = (sockunion_t *)&sources[i];
+			/*
+			 * Trim trailing whitespace, as getaddrinfo()
+			 * can't cope with it.
+			 */
+			fgets(str1, sizeof(str1), fp);
+			cp = strchr(str1, '\n');
+			if (cp != NULL)
+				*cp = '\0';
+
+			res = NULL;
+			error = getaddrinfo(str1, "0", &hints, &res);
+			if (error)
+				break;
+			assert(res != NULL);
+
+			memset(psu, 0, sizeof(sockunion_t));
+			af1 = res->ai_family;
+			if (af1 == af)
+				memcpy(psu, res->ai_addr, res->ai_addrlen);
+			freeaddrinfo(res);
+			if (af1 != af)
+				break;
+		}
+		if (i < n) {
+			if (error)
+				warnx("getaddrinfo: %s", gai_strerror(error));
+			printf("-1\n");
+			break;
+		}
+		if (setsourcefilter(af2sock(af, s, s6), ifindex,
+		    &su.sa, su.sa.sa_len, fmode, n, &sources[0].ss) != 0)
+			warn("setsourcefilter");
+		else
+			printf("ok\n");
+	} break;
+
+	/*
+	 * Allow or block traffic from a source, using the
+	 * delta based api.
+	 */
+	case 't':
+	case 'b': {
+		str3[0] = '\0';
+		toptname = "";
+		sscanf(line, "%s %s %s", str1, str2, str3);
+		ifindex = parse_cmd_args(&su, &su2, str1, str2, str3);
+		if (ifindex == 0 || su2.sa.sa_family == AF_UNSPEC) {
+			printf("-1\n");
+			break;
+		}
+		af = su.sa.sa_family;
+
+		/* First determine our current filter mode. */
+		n = 0;
+		if (getsourcefilter(af2sock(af, s, s6), ifindex,
+		    &su.sa, su.sa.sa_len, &fmode, &n, NULL) != 0) {
+			warn("getsourcefilter");
+			break;
+		}
+#ifdef INET
+		if (af == AF_INET) {
+			struct in_addr ina;
+
+			error = __ifindex_to_primary_ip(ifindex, &ina);
+			if (error != 0) {
+				warn("primary_ip_lookup %s", str2);
 				printf("-1\n");
 				break;
 			}
-			opt = (*cmd == 'j') ? IP_ADD_MEMBERSHIP :
-			    IP_DROP_MEMBERSHIP;
-			if (setsockopt( s, IPPROTO_IP, opt, &imr,
-			    sizeof(imr)) != 0) {
-				warn("setsockopt %s", (*cmd == 'j') ?
-				    "IP_ADD_MEMBERSHIP" :
-				    "IP_DROP_MEMBERSHIP");
+			level = IPPROTO_IP;
+			optval = (void *)&mr.mrs;
+			optlen = sizeof(mr.mrs);
+			mr.mrs.imr_multiaddr = su.sin.sin_addr;
+			mr.mrs.imr_sourceaddr = su2.sin.sin_addr;
+			mr.mrs.imr_interface = ina;
+			if (fmode == MCAST_EXCLUDE) {
+				/* Any-source mode socket membership. */
+				optname = (*cmd == 't') ?
+				    IP_UNBLOCK_SOURCE :
+				    IP_BLOCK_SOURCE;
+				toptname = (*cmd == 't') ?
+				    "IP_UNBLOCK_SOURCE" :
+				    "IP_BLOCK_SOURCE";
 			} else {
+				/* Source-specific mode socket membership. */
+				optname = (*cmd == 't') ?
+				    IP_ADD_SOURCE_MEMBERSHIP :
+				    IP_DROP_SOURCE_MEMBERSHIP;
+				toptname = (*cmd == 't') ?
+				    "IP_ADD_SOURCE_MEMBERSHIP" :
+				    "IP_DROP_SOURCE_MEMBERSHIP";
+			}
+			if (setsockopt(s, level, optname, optval,
+			    optlen) == 0) {
 				printf("ok\n");
+				break;
+			} else {
+				warn("setsockopt %s", toptname);
 			}
 		}
-		break;
+#ifdef INET6
+		else
+#endif /* INET with INET6 */
+#endif /* INET */
+#ifdef INET6
+		if (af == AF_INET6) {
+			level = IPPROTO_IPV6;
+			mr.gr.gsr_interface = ifindex;
+			mr.gr.gsr_group = su.ss;
+			mr.gr.gsr_source = su2.ss;
+			if (fmode == MCAST_EXCLUDE) {
+				/* Any-source mode socket membership. */
+				optname = (*cmd == 't') ?
+				    MCAST_UNBLOCK_SOURCE :
+				    MCAST_BLOCK_SOURCE;
+				toptname = (*cmd == 't') ?
+				    "MCAST_UNBLOCK_SOURCE" :
+				    "MCAST_BLOCK_SOURCE";
+			} else {
+				/* Source-specific mode socket membership. */
+				optname = (*cmd == 't') ?
+				    MCAST_JOIN_SOURCE_GROUP :
+				    MCAST_LEAVE_SOURCE_GROUP;
+				toptname = (*cmd == 't') ?
+				    "MCAST_JOIN_SOURCE_GROUP":
+				    "MCAST_LEAVE_SOURCE_GROUP";
+			}
+			optval = (void *)&mr.gr;
+			optlen = sizeof(mr.gr);
+			if (setsockopt(s6, level, optname, optval,
+			    optlen) == 0) {
+				printf("ok\n");
+				break;
+			} else {
+				warn("setsockopt %s", toptname);
+			}
+		}
+#endif /* INET6 */
+		/* FALLTHROUGH */
+		printf("-1\n");
+	} break;
+
+	case 'g': {
+		sockunion_t	 sources[MAX_ADDRS];
+		char		 addrbuf[NI_MAXHOST];
+		int		 nreqsrc, nsrc;
+
+		if ((sscanf(line, "%s %s %d", str1, str2, &nreqsrc)) != 3) {
+			printf("-1\n");
+			break;
+		}
+		ifindex = parse_cmd_args(&su, NULL, str1, str2, NULL);
+		if (ifindex == 0 || (n < 0 || n > MAX_ADDRS)) {
+			printf("-1\n");
+			break;
+		}
+
+		af = su.sa.sa_family;
+		nsrc = nreqsrc;
+		if (getsourcefilter(af2sock(af, s, s6), ifindex, &su.sa,
+		    su.sa.sa_len, &fmode, &nsrc, &sources[0].ss) != 0) {
+			warn("getsourcefilter");
+			printf("-1\n");
+			break;
+		}
+		printf("%s\n", (fmode == MCAST_INCLUDE) ? "include" :
+		    "exclude");
+		printf("%d\n", nsrc);
+
+		nsrc = MIN(nreqsrc, nsrc);
+		fprintf(stderr, "hexdump of sources:\n");
+		uint8_t *bp = (uint8_t *)&sources[0];
+		for (i = 0; i < (nsrc * sizeof(sources[0])); i++) {
+			fprintf(stderr, "%02x", bp[i]);
+		}
+		fprintf(stderr, "\nend hexdump\n");
+
+		qsort(sources, nsrc, af2socklen(af), su_cmp);
+		for (i = 0; i < nsrc; i++) {
+			sockunion_t *psu = (sockunion_t *)&sources[i];
+			addrbuf[0] = '\0';
+			error = getnameinfo(&psu->sa, psu->sa.sa_len,
+			    addrbuf, sizeof(addrbuf), NULL, 0,
+			    NI_NUMERICHOST);
+			if (error)
+				warnx("getnameinfo: %s", gai_strerror(error));
+			else
+				printf("%s\n", addrbuf);
+		}
+		printf("ok\n");
+	} break;
+
+	/* link-layer stuff follows. */
 
 	case 'a':
 	case 'd': {
@@ -244,16 +761,19 @@ process_cmd(char *cmd, int s, FILE *fp _
 		strlcpy(ifr.ifr_name, str1, IF_NAMESIZE);
 		memcpy(LLADDR(dlp), ep, ETHER_ADDR_LEN);
 		if (ioctl(s, (*cmd == 'a') ? SIOCADDMULTI : SIOCDELMULTI,
-		    &ifr) == -1)
+		    &ifr) == -1) {
 			warn("ioctl SIOCADDMULTI/SIOCDELMULTI");
-		else
+			printf("-1\n");
+		} else
 			printf("ok\n");
 		break;
 	}
 
 	case 'm':
-		printf("warning: IFF_ALLMULTI cannot be set from userland "
+		fprintf(stderr,
+		    "warning: IFF_ALLMULTI cannot be set from userland "
 		    "in FreeBSD; command ignored.\n");
+		printf("-1\n");
 		break;
 
 	case 'p':
@@ -266,11 +786,10 @@ process_cmd(char *cmd, int s, FILE *fp _
 			break;
 		}
 		flags = (ifr.ifr_flags & 0xffff) | (ifr.ifr_flagshigh << 16);
-		opt = IFF_PPROMISC;
 		if (f == 0) {
-			flags &= ~opt;
+			flags &= ~IFF_PPROMISC;
 		} else {
-			flags |= opt;
+			flags |= IFF_PPROMISC;
 		}
 		ifr.ifr_flags = flags & 0xffff;
 		ifr.ifr_flagshigh = flags >> 16;
@@ -280,106 +799,6 @@ process_cmd(char *cmd, int s, FILE *fp _
 			printf( "changed to 0x%08x\n", flags );
 		break;
 

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

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 09:52:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6F64F1065676;
	Wed, 29 Apr 2009 09:52:04 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E3CE8FC19;
	Wed, 29 Apr 2009 09:52:04 +0000 (UTC) (envelope-from bms@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 n3T9q4Aq075422;
	Wed, 29 Apr 2009 09:52:04 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T9q4jn075421;
	Wed, 29 Apr 2009 09:52:04 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904290952.n3T9q4jn075421@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 09:52:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191652 - head/usr.bin/netstat
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 09:52:05 -0000

Author: bms
Date: Wed Apr 29 09:52:04 2009
New Revision: 191652
URL: http://svn.freebsd.org/changeset/base/191652

Log:
  Add MLDv2 statistic IDs to netstat for IPv6 stack.

Modified:
  head/usr.bin/netstat/inet6.c

Modified: head/usr.bin/netstat/inet6.c
==============================================================================
--- head/usr.bin/netstat/inet6.c	Wed Apr 29 09:50:04 2009	(r191651)
+++ head/usr.bin/netstat/inet6.c	Wed Apr 29 09:52:04 2009	(r191652)
@@ -711,8 +711,8 @@ static	const char *icmp6names[] = {
 	"echo",
 	"echo reply",
 	"multicast listener query",
-	"multicast listener report",
-	"multicast listener done",
+	"MLDv1 listener report",
+	"MLDv1 listener done",
 	"router solicitation",
 	"router advertisement",
 	"neighbor solicitation",
@@ -723,7 +723,7 @@ static	const char *icmp6names[] = {
 	"node information reply",
 	"inverse neighbor solicitation",
 	"inverse neighbor advertisement",
-	"#143",
+	"MLDv2 listener report",
 	"#144",
 	"#145",
 	"#146",

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 09:54:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 44456106566C;
	Wed, 29 Apr 2009 09:54:34 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 198418FC1A;
	Wed, 29 Apr 2009 09:54:34 +0000 (UTC) (envelope-from bms@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 n3T9sX21075499;
	Wed, 29 Apr 2009 09:54:33 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T9sXK6075498;
	Wed, 29 Apr 2009 09:54:33 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904290954.n3T9sXK6075498@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 09:54:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191653 - head/sys/sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 09:54:34 -0000

Author: bms
Date: Wed Apr 29 09:54:33 2009
New Revision: 191653
URL: http://svn.freebsd.org/changeset/base/191653

Log:
  Grab KTR_SPARE1 and KTR_SPARE5 for KTR_INET and KTR_INET6
  respectively, as placeholder for future use of CTR() by
  the networking code (MLDv2 will be going in shortly).
  Mark KTR_SPARE* as being used in fact by cxgb (picked up
  on a 'make universe' run).

Modified:
  head/sys/sys/ktr.h

Modified: head/sys/sys/ktr.h
==============================================================================
--- head/sys/sys/ktr.h	Wed Apr 29 09:52:04 2009	(r191652)
+++ head/sys/sys/ktr.h	Wed Apr 29 09:54:33 2009	(r191653)
@@ -55,24 +55,24 @@
 #define	KTR_TRAP	0x00000100		/* Trap processing */
 #define	KTR_INTR	0x00000200		/* Interrupt tracing */
 #define	KTR_SIG		0x00000400		/* Signal processing */
-#define	KTR_SPARE2	0x00000800		/* Unused */
+#define	KTR_SPARE2	0x00000800		/* XXX Used by cxgb */
 #define	KTR_PROC	0x00001000		/* Process scheduling */
 #define	KTR_SYSC	0x00002000		/* System call */
 #define	KTR_INIT	0x00004000		/* System initialization */
-#define	KTR_SPARE3	0x00008000		/* Unused */
-#define	KTR_SPARE4	0x00010000		/* Unused */
+#define	KTR_SPARE3	0x00008000		/* XXX Used by cxgb */
+#define	KTR_SPARE4	0x00010000		/* XXX Used by cxgb */
 #define	KTR_EVH		0x00020000		/* Eventhandler */
 #define	KTR_VFS		0x00040000		/* VFS events */
 #define	KTR_VOP		0x00080000		/* Auto-generated vop events */
 #define	KTR_VM		0x00100000		/* The virtual memory system */
-#define	KTR_SPARE1	0x00200000		/* Unused */
+#define	KTR_INET	0x00200000		/* IPv4 stack */
 #define	KTR_RUNQ	0x00400000		/* Run queue */
 #define	KTR_CONTENTION	0x00800000		/* Lock contention */
 #define	KTR_UMA		0x01000000		/* UMA slab allocator */
 #define	KTR_CALLOUT	0x02000000		/* Callouts and timeouts */
 #define	KTR_GEOM	0x04000000		/* GEOM I/O events */
 #define	KTR_BUSDMA	0x08000000		/* busdma(9) events */
-#define	KTR_SPARE5	0x10000000		/* Unused */
+#define	KTR_INET6	0x10000000		/* IPv6 stack */
 #define	KTR_SCHED	0x20000000		/* Machine parsed sched info. */
 #define	KTR_BUF		0x40000000		/* Buffer cache */
 #define	KTR_ALL		0x7fffffff

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 09:58:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5C3DE106564A;
	Wed, 29 Apr 2009 09:58:31 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4AB758FC1B;
	Wed, 29 Apr 2009 09:58:31 +0000 (UTC) (envelope-from bms@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 n3T9wV4n075617;
	Wed, 29 Apr 2009 09:58:31 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T9wVdI075616;
	Wed, 29 Apr 2009 09:58:31 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904290958.n3T9wVdI075616@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 09:58:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191654 - head/lib/libc/net
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 09:58:31 -0000

Author: bms
Date: Wed Apr 29 09:58:31 2009
New Revision: 191654
URL: http://svn.freebsd.org/changeset/base/191654

Log:
  Fix an obvious bug in getsourcefilter()'s use of struct __msfilterreq;
  the kernel will return in msfr_nsrcs the number of source filters
  in-mode for a given multicast group.
  However, the filters themselves were never copied out, as the libc
  function clobbers this field with zero, causing the kernel to assume
  the provided vector of struct sockaddr_storage has zero length.
  This bug would only affect users of SSM multicast, which is shimmed
  in 7.x.
  Picked up during mtest(8) refactoring.
  
  MFC after:	1 day

Modified:
  head/lib/libc/net/sourcefilter.c

Modified: head/lib/libc/net/sourcefilter.c
==============================================================================
--- head/lib/libc/net/sourcefilter.c	Wed Apr 29 09:54:33 2009	(r191653)
+++ head/lib/libc/net/sourcefilter.c	Wed Apr 29 09:58:31 2009	(r191654)
@@ -337,7 +337,7 @@ getsourcefilter(int s, uint32_t interfac
 {
 	struct __msfilterreq	 msfr;
 	sockunion_t		*psu;
-	int			 err, level, optlen, optname;
+	int			 err, level, nsrcs, optlen, optname;
 
 	if (interface == 0 || group == NULL || numsrc == NULL ||
 	    fmode == NULL) {
@@ -345,6 +345,7 @@ getsourcefilter(int s, uint32_t interfac
 		return (-1);
 	}
 
+	nsrcs = *numsrc;
 	*numsrc = 0;
 	*fmode = 0;
 
@@ -382,7 +383,7 @@ getsourcefilter(int s, uint32_t interfac
 	memset(&msfr, 0, optlen);
 	msfr.msfr_ifindex = interface;
 	msfr.msfr_fmode = 0;
-	msfr.msfr_nsrcs = *numsrc;
+	msfr.msfr_nsrcs = nsrcs;
 	memcpy(&msfr.msfr_group, &psu->ss, psu->ss.ss_len);
 
 	/*

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 09:59:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 92F3E106566C;
	Wed, 29 Apr 2009 09:59:34 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 67CE48FC15;
	Wed, 29 Apr 2009 09:59:34 +0000 (UTC) (envelope-from bms@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 n3T9xYod075672;
	Wed, 29 Apr 2009 09:59:34 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3T9xYMS075671;
	Wed, 29 Apr 2009 09:59:34 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904290959.n3T9xYMS075671@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 09:59:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191655 - head/sys/sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 09:59:35 -0000

Author: bms
Date: Wed Apr 29 09:59:34 2009
New Revision: 191655
URL: http://svn.freebsd.org/changeset/base/191655

Log:
  Grab a VIMAGE module ID for MLDv2.

Modified:
  head/sys/sys/vimage.h

Modified: head/sys/sys/vimage.h
==============================================================================
--- head/sys/sys/vimage.h	Wed Apr 29 09:58:31 2009	(r191654)
+++ head/sys/sys/vimage.h	Wed Apr 29 09:59:34 2009	(r191655)
@@ -91,6 +91,7 @@ struct vnet_modlink {
 #define	VNET_MOD_ATALK		10
 #define	VNET_MOD_ACCF_HTTP	11
 #define	VNET_MOD_IGMP		12
+#define	VNET_MOD_MLD		13
 
 /* stateless modules */
 #define	VNET_MOD_NG_ETHER	20

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:02:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BC4BB1065689;
	Wed, 29 Apr 2009 10:02:50 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9017A8FC18;
	Wed, 29 Apr 2009 10:02:50 +0000 (UTC)
	(envelope-from trasz@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 n3TA2o3O075831;
	Wed, 29 Apr 2009 10:02:50 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TA2orn075828;
	Wed, 29 Apr 2009 10:02:50 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200904291002.n3TA2orn075828@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 29 Apr 2009 10:02:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191656 - in head/sbin: geom/class/journal newfs tunefs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:02:51 -0000

Author: trasz
Date: Wed Apr 29 10:02:50 2009
New Revision: 191656
URL: http://svn.freebsd.org/changeset/base/191656

Log:
  Slightly improve gjournal documentation.
  
  Reviewed by:	pjd

Modified:
  head/sbin/geom/class/journal/gjournal.8
  head/sbin/newfs/newfs.8
  head/sbin/tunefs/tunefs.8

Modified: head/sbin/geom/class/journal/gjournal.8
==============================================================================
--- head/sbin/geom/class/journal/gjournal.8	Wed Apr 29 09:59:34 2009	(r191655)
+++ head/sbin/geom/class/journal/gjournal.8	Wed Apr 29 10:02:50 2009	(r191656)
@@ -162,7 +162,8 @@ Hardcode provider names in metadata.
 Specifies size of the journal if only one provider is used for both data and
 journal.
 The default is one gigabyte.
-Size should be chosen based on provider's load, and not on its size.
+Size should be chosen based on provider's load, and not on its size;
+recommended minimum is twice the size of the physical memory installed.
 It is not recommended to use
 .Nm
 for small file systems (e.g.: only few gigabytes big).

Modified: head/sbin/newfs/newfs.8
==============================================================================
--- head/sbin/newfs/newfs.8	Wed Apr 29 09:59:34 2009	(r191655)
+++ head/sbin/newfs/newfs.8	Wed Apr 29 10:02:50 2009	(r191656)
@@ -85,6 +85,9 @@ wear levelling algorithms.
 NB: Erasing may take as long time as writing every sector on the disk.
 .It Fl J
 Enable journaling on the new file system via gjournal.
+See
+.Xr gjournal 8
+for details.
 .It Fl L Ar volname
 Add a volume label to the new file system.
 .It Fl N
@@ -278,6 +281,7 @@ on file systems that contain many small 
 .Xr dump 8 ,
 .Xr dumpfs 8 ,
 .Xr fsck 8 ,
+.Xr gjournal 8 ,
 .Xr mount 8 ,
 .Xr tunefs 8 ,
 .Xr gvinum 8

Modified: head/sbin/tunefs/tunefs.8
==============================================================================
--- head/sbin/tunefs/tunefs.8	Wed Apr 29 09:59:34 2009	(r191655)
+++ head/sbin/tunefs/tunefs.8	Wed Apr 29 10:02:50 2009	(r191656)
@@ -89,7 +89,7 @@ this parameter should be set higher.
 .It Fl f Ar avgfilesize
 Specify the expected average file size.
 .It Fl J Cm enable | disable
-Turn on/off GJournal flag.
+Turn on/off gjournal flag.
 .It Fl L Ar volname
 Add/modify an optional file system volume label.
 .It Fl l Cm enable | disable
@@ -145,6 +145,7 @@ specified mount point.
 .Sh SEE ALSO
 .Xr fs 5 ,
 .Xr dumpfs 8 ,
+.Xr gjournal 8 ,
 .Xr newfs 8
 .Rs
 .%A M. McKusick

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:12:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DF3E2106564A;
	Wed, 29 Apr 2009 10:12:01 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CDA0C8FC20;
	Wed, 29 Apr 2009 10:12:01 +0000 (UTC) (envelope-from bms@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 n3TAC1B2076042;
	Wed, 29 Apr 2009 10:12:01 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TAC1rd076041;
	Wed, 29 Apr 2009 10:12:01 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291012.n3TAC1rd076041@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:12:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191657 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:12:02 -0000

Author: bms
Date: Wed Apr 29 10:12:01 2009
New Revision: 191657
URL: http://svn.freebsd.org/changeset/base/191657

Log:
  Fix a problem whereby enqueued IGMPv3 filter list changes would be
  incorrectly output, if the RB-tree enumeration happened to reuse the
  same chain for a mode switch: that is, both ALLOW and BLOCK records
  were appended for the same group, in the same mbuf packet chain.
  
  This was introduced during an mbuf chain layout bug fix involving
  m_getptr(), which obviously cannot count from offset 0 on the
  second pass through the RB-tree when serializing the IGMPv3
  group records into the pending mbuf chain.
  
  Cut over to KTR_INET for IGMPv3 CTR usage.

Modified:
  head/sys/netinet/igmp.c

Modified: head/sys/netinet/igmp.c
==============================================================================
--- head/sys/netinet/igmp.c	Wed Apr 29 10:02:50 2009	(r191656)
+++ head/sys/netinet/igmp.c	Wed Apr 29 10:12:01 2009	(r191657)
@@ -86,7 +86,7 @@ __FBSDID("$FreeBSD$");
 #include 
 
 #ifndef KTR_IGMPV3
-#define KTR_IGMPV3 KTR_SUBSYS
+#define KTR_IGMPV3 KTR_INET
 #endif
 
 static struct igmp_ifinfo *
@@ -2983,7 +2983,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 	struct ip_msource	*ims, *nims;
 	struct mbuf		*m, *m0, *md;
 	in_addr_t		 naddr;
-	int			 m0srcs, nbytes, off, rsrcs, schanged;
+	int			 m0srcs, nbytes, npbytes, off, rsrcs, schanged;
 	int			 nallow, nblock;
 	uint8_t			 mode, now, then;
 	rectype_t		 crt, drt, nrt;
@@ -3001,6 +3001,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 	nrt = REC_NONE;	/* record type for current node */
 	m0srcs = 0;	/* # source which will fit in current mbuf chain */
 	nbytes = 0;	/* # of bytes appended to group's state-change queue */
+	npbytes = 0;	/* # of bytes appended this packet */
 	rsrcs = 0;	/* # sources encoded in current record */
 	schanged = 0;	/* # nodes encoded in overall filter change */
 	nallow = 0;	/* # of source entries in ALLOW_NEW */
@@ -3047,6 +3048,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 				m0srcs = (ifp->if_mtu - IGMP_LEADINGSPACE -
 				    sizeof(struct igmp_grouprec)) /
 				    sizeof(in_addr_t);
+				npbytes = 0;
 				CTR1(KTR_IGMPV3,
 				    "%s: allocated new packet", __func__);
 			}
@@ -3066,15 +3068,19 @@ igmp_v3_enqueue_filter_change(struct ifq
 				    "%s: m_append() failed", __func__);
 				return (-ENOMEM);
 			}
-			nbytes += sizeof(struct igmp_grouprec);
-			if (m == m0) {
-				md = m_last(m);
+			npbytes += sizeof(struct igmp_grouprec);
+			if (m != m0) {
+				/* new packet; offset in c hain */
+				md = m_getptr(m, npbytes -
+				    sizeof(struct igmp_grouprec), &off);
 				pig = (struct igmp_grouprec *)(mtod(md,
-				    uint8_t *) + md->m_len - nbytes);
+				    uint8_t *) + off);
 			} else {
-				md = m_getptr(m, 0, &off);
+				/* current packet; offset from last append */
+				md = m_last(m);
 				pig = (struct igmp_grouprec *)(mtod(md,
-				    uint8_t *) + off);
+				    uint8_t *) + md->m_len -
+				    sizeof(struct igmp_grouprec));
 			}
 			/*
 			 * Begin walking the tree for this record type
@@ -3133,7 +3139,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 			 * pass, back out of allocations.
 			 */
 			if (rsrcs == 0) {
-				nbytes -= sizeof(struct igmp_grouprec);
+				npbytes -= sizeof(struct igmp_grouprec);
 				if (m != m0) {
 					CTR1(KTR_IGMPV3,
 					    "%s: m_free(m)", __func__);
@@ -3146,7 +3152,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 				}
 				continue;
 			}
-			nbytes += (rsrcs * sizeof(in_addr_t));
+			npbytes += (rsrcs * sizeof(in_addr_t));
 			if (crt == REC_ALLOW)
 				pig->ig_type = IGMP_ALLOW_NEW_SOURCES;
 			else if (crt == REC_BLOCK)
@@ -3159,6 +3165,7 @@ igmp_v3_enqueue_filter_change(struct ifq
 			m->m_pkthdr.PH_vt.vt_nrecs++;
 			if (m != m0)
 				_IF_ENQUEUE(ifq, m);
+			nbytes += npbytes;
 		} while (nims != NULL);
 		drt |= crt;
 		crt = (~crt & REC_FULL);

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:13:23 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2FA7C1065670;
	Wed, 29 Apr 2009 10:13:23 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1E74E8FC0C;
	Wed, 29 Apr 2009 10:13:23 +0000 (UTC) (envelope-from bms@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 n3TADN31076099;
	Wed, 29 Apr 2009 10:13:23 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TADNHi076098;
	Wed, 29 Apr 2009 10:13:23 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291013.n3TADNHi076098@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:13:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191658 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:13:23 -0000

Author: bms
Date: Wed Apr 29 10:13:22 2009
New Revision: 191658
URL: http://svn.freebsd.org/changeset/base/191658

Log:
  Do not assume that ip6_moptions is always set, it is
  a lazy-allocated structure.

Modified:
  head/sys/netinet/in_pcb.c

Modified: head/sys/netinet/in_pcb.c
==============================================================================
--- head/sys/netinet/in_pcb.c	Wed Apr 29 10:12:01 2009	(r191657)
+++ head/sys/netinet/in_pcb.c	Wed Apr 29 10:13:22 2009	(r191658)
@@ -927,7 +927,8 @@ in_pcbfree_internal(struct inpcb *inp)
 #ifdef INET6
 	if (inp->inp_vflag & INP_IPV6PROTO) {
 		ip6_freepcbopts(inp->in6p_outputopts);
-		ip6_freemoptions(inp->in6p_moptions);
+		if (inp->in6p_moptions != NULL)
+			ip6_freemoptions(inp->in6p_moptions);
 	}
 #endif
 	if (inp->inp_options)

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:14:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A03C71065677;
	Wed, 29 Apr 2009 10:14:16 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8EDB48FC1F;
	Wed, 29 Apr 2009 10:14:16 +0000 (UTC) (envelope-from bms@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 n3TAEGE0076149;
	Wed, 29 Apr 2009 10:14:16 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TAEGeh076148;
	Wed, 29 Apr 2009 10:14:16 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291014.n3TAEGeh076148@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:14:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191659 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:14:17 -0000

Author: bms
Date: Wed Apr 29 10:14:16 2009
New Revision: 191659
URL: http://svn.freebsd.org/changeset/base/191659

Log:
  Cut over to KTR_INET for CTR.
  For clarity, put pointer incremement/size decrement on own line
  when copying out in-mode source filters to userland.

Modified:
  head/sys/netinet/in_mcast.c

Modified: head/sys/netinet/in_mcast.c
==============================================================================
--- head/sys/netinet/in_mcast.c	Wed Apr 29 10:13:22 2009	(r191658)
+++ head/sys/netinet/in_mcast.c	Wed Apr 29 10:14:16 2009	(r191659)
@@ -65,7 +65,7 @@ __FBSDID("$FreeBSD$");
 #include 
 
 #ifndef KTR_IGMPV3
-#define KTR_IGMPV3 KTR_SUBSYS
+#define KTR_IGMPV3 KTR_INET
 #endif
 
 #ifndef __SOCKUNION_DECLARED
@@ -1647,11 +1647,14 @@ inp_get_source_filters(struct inpcb *inp
 		    lims->imsl_st[0] != imf->imf_st[0])
 			continue;
 		++ncsrcs;
-		if (tss != NULL && nsrcs-- > 0) {
-			psin = (struct sockaddr_in *)ptss++;
+		if (tss != NULL && nsrcs > 0) {
+			psin = (struct sockaddr_in *)ptss;
 			psin->sin_family = AF_INET;
 			psin->sin_len = sizeof(struct sockaddr_in);
 			psin->sin_addr.s_addr = htonl(lims->ims_haddr);
+			psin->sin_port = 0;
+			++ptss;
+			--nsrcs;
 		}
 	}
 

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:17:09 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 46DB9106566B;
	Wed, 29 Apr 2009 10:17:09 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 35A548FC12;
	Wed, 29 Apr 2009 10:17:09 +0000 (UTC) (envelope-from bms@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 n3TAH92w076247;
	Wed, 29 Apr 2009 10:17:09 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TAH986076246;
	Wed, 29 Apr 2009 10:17:09 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291017.n3TAH986076246@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:17:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191660 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:17:09 -0000

Author: bms
Date: Wed Apr 29 10:17:08 2009
New Revision: 191660
URL: http://svn.freebsd.org/changeset/base/191660

Log:
  Use KTR_INET for MROUTING CTRs.

Modified:
  head/sys/netinet/ip_mroute.c

Modified: head/sys/netinet/ip_mroute.c
==============================================================================
--- head/sys/netinet/ip_mroute.c	Wed Apr 29 10:14:16 2009	(r191659)
+++ head/sys/netinet/ip_mroute.c	Wed Apr 29 10:17:08 2009	(r191660)
@@ -119,7 +119,7 @@ __FBSDID("$FreeBSD$");
 #include 
 
 #ifndef KTR_IPMF
-#define KTR_IPMF KTR_SUBSYS
+#define KTR_IPMF KTR_INET
 #endif
 
 #define		VIFI_INVALID	((vifi_t) -1)

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:20:18 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 54201106564A;
	Wed, 29 Apr 2009 10:20:18 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 42EA18FC15;
	Wed, 29 Apr 2009 10:20:18 +0000 (UTC) (envelope-from bms@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 n3TAKI2q076340;
	Wed, 29 Apr 2009 10:20:18 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TAKIVx076339;
	Wed, 29 Apr 2009 10:20:18 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291020.n3TAKIVx076339@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:20:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191661 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:20:18 -0000

Author: bms
Date: Wed Apr 29 10:20:17 2009
New Revision: 191661
URL: http://svn.freebsd.org/changeset/base/191661

Log:
  Add MLDv2 prototypes and defines.

Modified:
  head/sys/netinet/icmp6.h

Modified: head/sys/netinet/icmp6.h
==============================================================================
--- head/sys/netinet/icmp6.h	Wed Apr 29 10:17:08 2009	(r191660)
+++ head/sys/netinet/icmp6.h	Wed Apr 29 10:20:17 2009	(r191661)
@@ -125,6 +125,7 @@ struct icmp6_hdr {
 #define ICMP6_FQDN_REPLY		140	/* FQDN reply */
 #define ICMP6_NI_QUERY			139	/* node information request */
 #define ICMP6_NI_REPLY			140	/* node information reply */
+#define MLDV2_LISTENER_REPORT		143	/* RFC3810 listener report */
 
 /* The definitions below are experimental. TBA */
 #define MLD_MTRACE_RESP			200	/* mtrace resp (to sender) */
@@ -194,6 +195,8 @@ struct mld_hdr {
 #define mld_cksum	mld_icmp6_hdr.icmp6_cksum
 #define mld_maxdelay	mld_icmp6_hdr.icmp6_data16[0]
 #define mld_reserved	mld_icmp6_hdr.icmp6_data16[1]
+#define mld_v2_reserved	mld_icmp6_hdr.icmp6_data16[0]
+#define mld_v2_numrecs	mld_icmp6_hdr.icmp6_data16[1]
 
 /*
  * Neighbor Discovery
@@ -644,6 +647,7 @@ void	icmp6_error(struct mbuf *, int, int
 void	icmp6_error2(struct mbuf *, int, int, int, struct ifnet *);
 int	icmp6_input(struct mbuf **, int *, int);
 void	icmp6_fasttimo(void);
+void	icmp6_slowtimo(void);
 void	icmp6_reflect(struct mbuf *, size_t);
 void	icmp6_prepare(struct mbuf *);
 void	icmp6_redirect_input(struct mbuf *, int);

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:22:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CDD2C1065674;
	Wed, 29 Apr 2009 10:22:44 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A37808FC1C;
	Wed, 29 Apr 2009 10:22:44 +0000 (UTC) (envelope-from bms@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 n3TAMi20076429;
	Wed, 29 Apr 2009 10:22:44 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TAMi3V076428;
	Wed, 29 Apr 2009 10:22:44 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291022.n3TAMi3V076428@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 10:22:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191662 - head/sys/netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:22:45 -0000

Author: bms
Date: Wed Apr 29 10:22:44 2009
New Revision: 191662
URL: http://svn.freebsd.org/changeset/base/191662

Log:
  Add IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT, in6addr_linklocal_allv2routers
  for use by MLDv2.
  Add IPv6 SSM socket layer membership vector size constants and
  tree bounds.
  Remove unreferenced struct ipv6_mreq_source; SSM for IPv6 goes
  straight to the RFC 3678 socket options.

Modified:
  head/sys/netinet6/in6.h

Modified: head/sys/netinet6/in6.h
==============================================================================
--- head/sys/netinet6/in6.h	Wed Apr 29 10:20:17 2009	(r191661)
+++ head/sys/netinet6/in6.h	Wed Apr 29 10:22:44 2009	(r191662)
@@ -201,6 +201,9 @@ extern const struct in6_addr in6mask128;
 #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
 	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
 	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
+#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
 #endif
 
 extern const struct in6_addr in6addr_any;
@@ -209,6 +212,7 @@ extern const struct in6_addr in6addr_loo
 extern const struct in6_addr in6addr_nodelocal_allnodes;
 extern const struct in6_addr in6addr_linklocal_allnodes;
 extern const struct in6_addr in6addr_linklocal_allrouters;
+extern const struct in6_addr in6addr_linklocal_allv2routers;
 #endif
 
 /*
@@ -494,24 +498,27 @@ struct route_in6 {
 #define IPV6_DEFAULT_MULTICAST_LOOP 1	/* normally hear sends if a member */
 
 /*
- * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ * The im6o_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
  */
-struct ipv6_mreq {
-	struct in6_addr	ipv6mr_multiaddr;
-	unsigned int	ipv6mr_interface;
-};
+#define	IPV6_MIN_MEMBERSHIPS	31
+#define	IPV6_MAX_MEMBERSHIPS	4095
 
-#ifdef notyet
 /*
- * Argument structure for IPV6_ADD_SOURCE_MEMBERSHIP,
- * IPV6_DROP_SOURCE_MEMBERSHIP, IPV6_BLOCK_SOURCE, and IPV6_UNBLOCK_SOURCE.
+ * Default resource limits for IPv6 multicast source filtering.
+ * These may be modified by sysctl.
  */
-struct ipv6_mreq_source {
+#define	IPV6_MAX_GROUP_SRC_FILTER	512	/* sources per group */
+#define	IPV6_MAX_SOCK_SRC_FILTER	128	/* sources per socket/group */
+
+/*
+ * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ */
+struct ipv6_mreq {
 	struct in6_addr	ipv6mr_multiaddr;
-	struct in6_addr	ipv6mr_sourceaddr;
-	uint32_t	ipv6mr_interface;
+	unsigned int	ipv6mr_interface;
 };
-#endif
 
 /*
  * IPV6_PKTINFO: Packet information(RFC2292 sec 5)

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 10:42:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A5D32106566C;
	Wed, 29 Apr 2009 10:42:58 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com
	[66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 774878FC1E;
	Wed, 29 Apr 2009 10:42:58 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from compute1.internal (compute1.internal [10.202.2.41])
	by out1.messagingengine.com (Postfix) with ESMTP id 36DF63359E1;
	Wed, 29 Apr 2009 06:40:49 -0400 (EDT)
Received: from heartbeat1.messagingengine.com ([10.202.2.160])
	by compute1.internal (MEProxy); Wed, 29 Apr 2009 06:40:49 -0400
X-Sasl-enc: DvsZAE2ul1mCcPcJv/19xCYDOaiaIK6HC6Tv2wdAsxgC 1241001648
Received: from [192.168.123.18]
	(82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254])
	by mail.messagingengine.com (Postfix) with ESMTPSA id 60AA62CB6A;
	Wed, 29 Apr 2009 06:40:48 -0400 (EDT)
Message-ID: <49F82EAE.6040406@incunabulum.net>
Date: Wed, 29 Apr 2009 11:40:46 +0100
From: Bruce Simpson 
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Daniel Gerzo 
References: <200904282023.n3SKNwJO058925@svn.freebsd.org>
In-Reply-To: <200904282023.n3SKNwJO058925@svn.freebsd.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r191635 - head/usr.sbin/arp
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 10:42:59 -0000

Hi,

We're missing a man page for ndp(4).
It seems reasonable that we should have one (we have one for arp(4), 
after all).
Any plans to write one? Would be very nice to have.

I raided GNATS but didn't see anything in the bin.

Daniel Gerzo wrote:
> Log:
>   - xref ndp(8)
>  
>   

thanks,
BMS


From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 11:15:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B9F71106564A;
	Wed, 29 Apr 2009 11:15:58 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A86938FC08;
	Wed, 29 Apr 2009 11:15:58 +0000 (UTC) (envelope-from bms@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 n3TBFwqb079043;
	Wed, 29 Apr 2009 11:15:58 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TBFwQj079042;
	Wed, 29 Apr 2009 11:15:58 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291115.n3TBFwQj079042@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 11:15:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191663 - head/sys/netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 11:15:59 -0000

Author: bms
Date: Wed Apr 29 11:15:58 2009
New Revision: 191663
URL: http://svn.freebsd.org/changeset/base/191663

Log:
  Stub out IN6_LOOKUP_MULTI() for GETSPI requests, for now.
  
  This has the effect that IPv6 multicast traffic won't trigger
  an SPI allocation when IPSEC is in use, however, this obviously
  needs to stomp on locks, and IN6_LOOKUP_MULTI() is about to go away.
  
  This definitely needs to be revisited before 8.x is branched as
  a release branch.

Modified:
  head/sys/netipsec/key.c

Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c	Wed Apr 29 10:22:44 2009	(r191662)
+++ head/sys/netipsec/key.c	Wed Apr 29 11:15:58 2009	(r191663)
@@ -3765,13 +3765,16 @@ key_ismyaddr6(sin6)
 {
 	INIT_VNET_INET6(curvnet);
 	struct in6_ifaddr *ia;
+#if 0
 	struct in6_multi *in6m;
+#endif
 
 	for (ia = V_in6_ifaddr; ia; ia = ia->ia_next) {
 		if (key_sockaddrcmp((struct sockaddr *)&sin6,
 		    (struct sockaddr *)&ia->ia_addr, 0) == 0)
 			return 1;
 
+#if 0
 		/*
 		 * XXX Multicast
 		 * XXX why do we care about multlicast here while we don't care
@@ -3782,6 +3785,7 @@ key_ismyaddr6(sin6)
 		IN6_LOOKUP_MULTI(sin6->sin6_addr, ia->ia_ifp, in6m);
 		if (in6m)
 			return 1;
+#endif
 	}
 
 	/* loopback, just for safety */

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 11:26:46 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 10BAB1065674;
	Wed, 29 Apr 2009 11:26:46 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F16EF8FC19;
	Wed, 29 Apr 2009 11:26:45 +0000 (UTC) (envelope-from bms@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 n3TBQjVu079334;
	Wed, 29 Apr 2009 11:26:45 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TBQjVg079333;
	Wed, 29 Apr 2009 11:26:45 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291126.n3TBQjVg079333@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 11:26:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191665 - head/sys/netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 11:26:46 -0000

Author: bms
Date: Wed Apr 29 11:26:45 2009
New Revision: 191665
URL: http://svn.freebsd.org/changeset/base/191665

Log:
  Import IPv6 SSM module but do not connect it to the build.

Added:
  head/sys/netinet6/in6_mcast.c   (contents, props changed)

Added: head/sys/netinet6/in6_mcast.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/netinet6/in6_mcast.c	Wed Apr 29 11:26:45 2009	(r191665)
@@ -0,0 +1,2625 @@
+/*
+ * Copyright (c) 2009 Bruce Simpson.
+ * 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.
+ * 3. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * 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.
+ */
+
+/*
+ * IPv6 multicast socket, group, and socket option processing module.
+ */
+
+#include 
+__FBSDID("$FreeBSD$");
+
+#include "opt_inet6.h"
+#include "opt_route.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifndef KTR_MLD
+#define KTR_MLD KTR_INET6
+#endif
+
+#ifndef __SOCKUNION_DECLARED
+union sockunion {
+	struct sockaddr_storage	ss;
+	struct sockaddr		sa;
+	struct sockaddr_dl	sdl;
+	struct sockaddr_in6	sin6;
+};
+typedef union sockunion sockunion_t;
+#define __SOCKUNION_DECLARED
+#endif /* __SOCKUNION_DECLARED */
+
+static MALLOC_DEFINE(M_IN6MFILTER, "in6_mfilter",
+    "IPv6 multicast PCB-layer source filter");
+static MALLOC_DEFINE(M_IP6MADDR, "in6_multi", "IPv6 multicast group");
+static MALLOC_DEFINE(M_IP6MOPTS, "ip6_moptions", "IPv6 multicast options");
+static MALLOC_DEFINE(M_IP6MSOURCE, "ip6_msource",
+    "IPv6 multicast MLD-layer source filter");
+
+RB_GENERATE(ip6_msource_tree, ip6_msource, im6s_link, ip6_msource_cmp);
+
+/*
+ * Locking:
+ * - Lock order is: Giant, INP_WLOCK, IN6_MULTI_LOCK, MLD_LOCK, IF_ADDR_LOCK.
+ * - The IF_ADDR_LOCK is implicitly taken by in6m_lookup() earlier, however
+ *   it can be taken by code in net/if.c also.
+ * - ip6_moptions and in6_mfilter are covered by the INP_WLOCK.
+ *
+ * struct in6_multi is covered by IN6_MULTI_LOCK. There isn't strictly
+ * any need for in6_multi itself to be virtualized -- it is bound to an ifp
+ * anyway no matter what happens.
+ */
+struct mtx in6_multi_mtx;
+MTX_SYSINIT(in6_multi_mtx, &in6_multi_mtx, "in6_multi_mtx", MTX_DEF);
+
+static void	im6f_commit(struct in6_mfilter *);
+static int	im6f_get_source(struct in6_mfilter *imf,
+		    const struct sockaddr_in6 *psin,
+		    struct in6_msource **);
+static struct in6_msource *
+		im6f_graft(struct in6_mfilter *, const uint8_t,
+		    const struct sockaddr_in6 *);
+static void	im6f_leave(struct in6_mfilter *);
+static int	im6f_prune(struct in6_mfilter *, const struct sockaddr_in6 *);
+static void	im6f_purge(struct in6_mfilter *);
+static void	im6f_rollback(struct in6_mfilter *);
+static void	im6f_reap(struct in6_mfilter *);
+static int	im6o_grow(struct ip6_moptions *);
+static size_t	im6o_match_group(const struct ip6_moptions *,
+		    const struct ifnet *, const struct sockaddr *);
+static struct in6_msource *
+		im6o_match_source(const struct ip6_moptions *, const size_t,
+		    const struct sockaddr *);
+static void	im6s_merge(struct ip6_msource *ims,
+		    const struct in6_msource *lims, const int rollback);
+static int	in6_mc_get(struct ifnet *, const struct in6_addr *,
+		    struct in6_multi **);
+static int	in6m_get_source(struct in6_multi *inm,
+		    const struct in6_addr *addr, const int noalloc,
+		    struct ip6_msource **pims);
+static int	in6m_is_ifp_detached(const struct in6_multi *);
+static int	in6m_merge(struct in6_multi *, /*const*/ struct in6_mfilter *);
+static void	in6m_purge(struct in6_multi *);
+static void	in6m_reap(struct in6_multi *);
+static struct ip6_moptions *
+		in6p_findmoptions(struct inpcb *);
+static int	in6p_get_source_filters(struct inpcb *, struct sockopt *);
+static int	in6p_join_group(struct inpcb *, struct sockopt *);
+static int	in6p_leave_group(struct inpcb *, struct sockopt *);
+static int	in6p_block_unblock_source(struct inpcb *, struct sockopt *);
+static int	in6p_set_multicast_if(struct inpcb *, struct sockopt *);
+static int	in6p_set_source_filters(struct inpcb *, struct sockopt *);
+static int	sysctl_ip6_mcast_filters(SYSCTL_HANDLER_ARGS);
+
+SYSCTL_DECL(_net_inet6_ip6);	/* XXX Not in any common header. */
+
+SYSCTL_NODE(_net_inet6_ip6, OID_AUTO, mcast, CTLFLAG_RW, 0, "IPv6 multicast");
+
+static u_long in6_mcast_maxgrpsrc = IPV6_MAX_GROUP_SRC_FILTER;
+SYSCTL_ULONG(_net_inet6_ip6_mcast, OID_AUTO, maxgrpsrc,
+    CTLFLAG_RW | CTLFLAG_TUN, &in6_mcast_maxgrpsrc, 0,
+    "Max source filters per group");
+TUNABLE_ULONG("net.inet6.ip6.mcast.maxgrpsrc", &in6_mcast_maxgrpsrc);
+
+static u_long in6_mcast_maxsocksrc = IPV6_MAX_SOCK_SRC_FILTER;
+SYSCTL_ULONG(_net_inet6_ip6_mcast, OID_AUTO, maxsocksrc,
+    CTLFLAG_RW | CTLFLAG_TUN, &in6_mcast_maxsocksrc, 0,
+    "Max source filters per socket");
+TUNABLE_ULONG("net.inet6.ip6.mcast.maxsocksrc", &in6_mcast_maxsocksrc);
+
+/* TODO Virtualize this switch. */
+int in6_mcast_loop = IPV6_DEFAULT_MULTICAST_LOOP;
+SYSCTL_INT(_net_inet6_ip6_mcast, OID_AUTO, loop, CTLFLAG_RW | CTLFLAG_TUN,
+    &in6_mcast_loop, 0, "Loopback multicast datagrams by default");
+TUNABLE_INT("net.inet6.ip6.mcast.loop", &in6_mcast_loop);
+
+SYSCTL_NODE(_net_inet6_ip6_mcast, OID_AUTO, filters,
+    CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_ip6_mcast_filters,
+    "Per-interface stack-wide source filters");
+
+/*
+ * Inline function which wraps assertions for a valid ifp.
+ * The ifnet layer will set the ifma's ifp pointer to NULL if the ifp
+ * is detached.
+ */
+static int __inline
+in6m_is_ifp_detached(const struct in6_multi *inm)
+{
+	struct ifnet *ifp;
+
+	KASSERT(inm->in6m_ifma != NULL, ("%s: no ifma", __func__));
+	ifp = inm->in6m_ifma->ifma_ifp;
+	if (ifp != NULL) {
+		/*
+		 * Sanity check that network-layer notion of ifp is the
+		 * same as that of link-layer.
+		 */
+		KASSERT(inm->in6m_ifp == ifp, ("%s: bad ifp", __func__));
+	}
+
+	return (ifp == NULL);
+}
+
+/*
+ * Initialize an in6_mfilter structure to a known state at t0, t1
+ * with an empty source filter list.
+ */
+static __inline void
+im6f_init(struct in6_mfilter *imf, const int st0, const int st1)
+{
+	memset(imf, 0, sizeof(struct in6_mfilter));
+	RB_INIT(&imf->im6f_sources);
+	imf->im6f_st[0] = st0;
+	imf->im6f_st[1] = st1;
+}
+
+/*
+ * Resize the ip6_moptions vector to the next power-of-two minus 1.
+ * May be called with locks held; do not sleep.
+ */
+static int
+im6o_grow(struct ip6_moptions *imo)
+{
+	struct in6_multi	**nmships;
+	struct in6_multi	**omships;
+	struct in6_mfilter	 *nmfilters;
+	struct in6_mfilter	 *omfilters;
+	size_t			  idx;
+	size_t			  newmax;
+	size_t			  oldmax;
+
+	nmships = NULL;
+	nmfilters = NULL;
+	omships = imo->im6o_membership;
+	omfilters = imo->im6o_mfilters;
+	oldmax = imo->im6o_max_memberships;
+	newmax = ((oldmax + 1) * 2) - 1;
+
+	if (newmax <= IPV6_MAX_MEMBERSHIPS) {
+		nmships = (struct in6_multi **)realloc(omships,
+		    sizeof(struct in6_multi *) * newmax, M_IP6MOPTS, M_NOWAIT);
+		nmfilters = (struct in6_mfilter *)realloc(omfilters,
+		    sizeof(struct in6_mfilter) * newmax, M_IN6MFILTER,
+		    M_NOWAIT);
+		if (nmships != NULL && nmfilters != NULL) {
+			/* Initialize newly allocated source filter heads. */
+			for (idx = oldmax; idx < newmax; idx++) {
+				im6f_init(&nmfilters[idx], MCAST_UNDEFINED,
+				    MCAST_EXCLUDE);
+			}
+			imo->im6o_max_memberships = newmax;
+			imo->im6o_membership = nmships;
+			imo->im6o_mfilters = nmfilters;
+		}
+	}
+
+	if (nmships == NULL || nmfilters == NULL) {
+		if (nmships != NULL)
+			free(nmships, M_IP6MOPTS);
+		if (nmfilters != NULL)
+			free(nmfilters, M_IN6MFILTER);
+		return (ETOOMANYREFS);
+	}
+
+	return (0);
+}
+
+/*
+ * Find an IPv6 multicast group entry for this ip6_moptions instance
+ * which matches the specified group, and optionally an interface.
+ * Return its index into the array, or -1 if not found.
+ */
+static size_t
+im6o_match_group(const struct ip6_moptions *imo, const struct ifnet *ifp,
+    const struct sockaddr *group)
+{
+	const struct sockaddr_in6 *gsin6;
+	struct in6_multi	**pinm;
+	int		  idx;
+	int		  nmships;
+
+	gsin6 = (const struct sockaddr_in6 *)group;
+
+	/* The im6o_membership array may be lazy allocated. */
+	if (imo->im6o_membership == NULL || imo->im6o_num_memberships == 0)
+		return (-1);
+
+	nmships = imo->im6o_num_memberships;
+	pinm = &imo->im6o_membership[0];
+	for (idx = 0; idx < nmships; idx++, pinm++) {
+		if (*pinm == NULL)
+			continue;
+		if ((ifp == NULL || ((*pinm)->in6m_ifp == ifp)) &&
+		    IN6_ARE_ADDR_EQUAL(&(*pinm)->in6m_addr,
+		    &gsin6->sin6_addr)) {
+			break;
+		}
+	}
+	if (idx >= nmships)
+		idx = -1;
+
+	return (idx);
+}
+
+/*
+ * Find an IPv6 multicast source entry for this imo which matches
+ * the given group index for this socket, and source address.
+ *
+ * NOTE: This does not check if the entry is in-mode, merely if
+ * it exists, which may not be the desired behaviour.
+ */
+static struct in6_msource *
+im6o_match_source(const struct ip6_moptions *imo, const size_t gidx,
+    const struct sockaddr *src)
+{
+	struct ip6_msource	 find;
+	struct in6_mfilter	*imf;
+	struct ip6_msource	*ims;
+	const sockunion_t	*psa;
+
+	KASSERT(src->sa_family == AF_INET6, ("%s: !AF_INET6", __func__));
+	KASSERT(gidx != -1 && gidx < imo->im6o_num_memberships,
+	    ("%s: invalid index %d\n", __func__, (int)gidx));
+
+	/* The im6o_mfilters array may be lazy allocated. */
+	if (imo->im6o_mfilters == NULL)
+		return (NULL);
+	imf = &imo->im6o_mfilters[gidx];
+
+	psa = (const sockunion_t *)src;
+	find.im6s_addr = psa->sin6.sin6_addr;
+	ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
+
+	return ((struct in6_msource *)ims);
+}
+
+/*
+ * Perform filtering for multicast datagrams on a socket by group and source.
+ *
+ * Returns 0 if a datagram should be allowed through, or various error codes
+ * if the socket was not a member of the group, or the source was muted, etc.
+ */
+int
+im6o_mc_filter(const struct ip6_moptions *imo, const struct ifnet *ifp,
+    const struct sockaddr *group, const struct sockaddr *src)
+{
+	size_t gidx;
+	struct in6_msource *ims;
+	int mode;
+
+	KASSERT(ifp != NULL, ("%s: null ifp", __func__));
+
+	gidx = im6o_match_group(imo, ifp, group);
+	if (gidx == -1)
+		return (MCAST_NOTGMEMBER);
+
+	/*
+	 * Check if the source was included in an (S,G) join.
+	 * Allow reception on exclusive memberships by default,
+	 * reject reception on inclusive memberships by default.
+	 * Exclude source only if an in-mode exclude filter exists.
+	 * Include source only if an in-mode include filter exists.
+	 * NOTE: We are comparing group state here at MLD t1 (now)
+	 * with socket-layer t0 (since last downcall).
+	 */
+	mode = imo->im6o_mfilters[gidx].im6f_st[1];
+	ims = im6o_match_source(imo, gidx, src);
+
+	if ((ims == NULL && mode == MCAST_INCLUDE) ||
+	    (ims != NULL && ims->im6sl_st[0] != mode))
+		return (MCAST_NOTSMEMBER);
+
+	return (MCAST_PASS);
+}
+
+/*
+ * Find and return a reference to an in6_multi record for (ifp, group),
+ * and bump its reference count.
+ * If one does not exist, try to allocate it, and update link-layer multicast
+ * filters on ifp to listen for group.
+ * Assumes the IN6_MULTI lock is held across the call.
+ * Return 0 if successful, otherwise return an appropriate error code.
+ */
+static int
+in6_mc_get(struct ifnet *ifp, const struct in6_addr *group,
+    struct in6_multi **pinm)
+{
+	struct sockaddr_in6	 gsin6;
+	struct ifmultiaddr	*ifma;
+	struct in6_multi	*inm;
+	int			 error;
+
+	error = 0;
+
+	/*
+	 * XXX: Accesses to ifma_protospec must be covered by IF_ADDR_LOCK;
+	 * if_addmulti() takes this mutex itself, so we must drop and
+	 * re-acquire around the call.
+	 */
+	IN6_MULTI_LOCK_ASSERT();
+	IF_ADDR_LOCK(ifp);
+
+	inm = in6m_lookup_locked(ifp, group);
+	if (inm != NULL) {
+		/*
+		 * If we already joined this group, just bump the
+		 * refcount and return it.
+		 */
+		KASSERT(inm->in6m_refcount >= 1,
+		    ("%s: bad refcount %d", __func__, inm->in6m_refcount));
+		++inm->in6m_refcount;
+		*pinm = inm;
+		goto out_locked;
+	}
+
+	memset(&gsin6, 0, sizeof(gsin6));
+	gsin6.sin6_family = AF_INET6;
+	gsin6.sin6_len = sizeof(struct sockaddr_in6);
+	gsin6.sin6_addr = *group;
+
+	/*
+	 * Check if a link-layer group is already associated
+	 * with this network-layer group on the given ifnet.
+	 */
+	IF_ADDR_UNLOCK(ifp);
+	error = if_addmulti(ifp, (struct sockaddr *)&gsin6, &ifma);
+	if (error != 0)
+		return (error);
+	IF_ADDR_LOCK(ifp);
+
+	/*
+	 * If something other than netinet6 is occupying the link-layer
+	 * group, print a meaningful error message and back out of
+	 * the allocation.
+	 * Otherwise, bump the refcount on the existing network-layer
+	 * group association and return it.
+	 */
+	if (ifma->ifma_protospec != NULL) {
+		inm = (struct in6_multi *)ifma->ifma_protospec;
+#ifdef INVARIANTS
+		KASSERT(ifma->ifma_addr != NULL, ("%s: no ifma_addr",
+		    __func__));
+		KASSERT(ifma->ifma_addr->sa_family == AF_INET6,
+		    ("%s: ifma not AF_INET6", __func__));
+		KASSERT(inm != NULL, ("%s: no ifma_protospec", __func__));
+		if (inm->in6m_ifma != ifma || inm->in6m_ifp != ifp ||
+		    !IN6_ARE_ADDR_EQUAL(&inm->in6m_addr, group))
+			panic("%s: ifma %p is inconsistent with %p (%p)",
+			    __func__, ifma, inm, group);
+#endif
+		++inm->in6m_refcount;
+		*pinm = inm;
+		goto out_locked;
+	}
+
+	IF_ADDR_LOCK_ASSERT(ifp);
+
+	/*
+	 * A new in6_multi record is needed; allocate and initialize it.
+	 * We DO NOT perform an MLD join as the in6_ layer may need to
+	 * push an initial source list down to MLD to support SSM.
+	 *
+	 * The initial source filter state is INCLUDE, {} as per the RFC.
+	 * Pending state-changes per group are subject to a bounds check.
+	 */
+	inm = malloc(sizeof(*inm), M_IP6MADDR, M_NOWAIT | M_ZERO);
+	if (inm == NULL) {
+		if_delmulti_ifma(ifma);
+		error = ENOMEM;
+		goto out_locked;
+	}
+	inm->in6m_addr = *group;
+	inm->in6m_ifp = ifp;
+	inm->in6m_mli = MLD_IFINFO(ifp);
+	inm->in6m_ifma = ifma;
+	inm->in6m_refcount = 1;
+	inm->in6m_state = MLD_NOT_MEMBER;
+	IFQ_SET_MAXLEN(&inm->in6m_scq, MLD_MAX_STATE_CHANGES);
+
+	inm->in6m_st[0].iss_fmode = MCAST_UNDEFINED;
+	inm->in6m_st[1].iss_fmode = MCAST_UNDEFINED;
+	RB_INIT(&inm->in6m_srcs);
+
+	ifma->ifma_protospec = inm;
+	*pinm = inm;
+
+out_locked:
+	IF_ADDR_UNLOCK(ifp);
+	return (error);
+}
+
+/*
+ * Drop a reference to an in6_multi record.
+ *
+ * If the refcount drops to 0, free the in6_multi record and
+ * delete the underlying link-layer membership.
+ */
+void
+in6m_release_locked(struct in6_multi *inm)
+{
+	struct ifmultiaddr *ifma;
+
+	IN6_MULTI_LOCK_ASSERT();
+
+	CTR2(KTR_MLD, "%s: refcount is %d", __func__, inm->in6m_refcount);
+
+	if (--inm->in6m_refcount > 0) {
+		CTR2(KTR_MLD, "%s: refcount is now %d", __func__,
+		    inm->in6m_refcount);
+		return;
+	}
+
+	CTR2(KTR_MLD, "%s: freeing inm %p", __func__, inm);
+
+	ifma = inm->in6m_ifma;
+
+	/* XXX this access is not covered by IF_ADDR_LOCK */
+	CTR2(KTR_MLD, "%s: purging ifma %p", __func__, ifma);
+	KASSERT(ifma->ifma_protospec == inm,
+	    ("%s: ifma_protospec != inm", __func__));
+	ifma->ifma_protospec = NULL;
+
+	in6m_purge(inm);
+
+	free(inm, M_IP6MADDR);
+
+	if_delmulti_ifma(ifma);
+}
+
+/*
+ * Clear recorded source entries for a group.
+ * Used by the MLD code. Caller must hold the IN6_MULTI lock.
+ * FIXME: Should reap.
+ */
+void
+in6m_clear_recorded(struct in6_multi *inm)
+{
+	struct ip6_msource	*ims;
+
+	IN6_MULTI_LOCK_ASSERT();
+
+	RB_FOREACH(ims, ip6_msource_tree, &inm->in6m_srcs) {
+		if (ims->im6s_stp) {
+			ims->im6s_stp = 0;
+			--inm->in6m_st[1].iss_rec;
+		}
+	}
+	KASSERT(inm->in6m_st[1].iss_rec == 0,
+	    ("%s: iss_rec %d not 0", __func__, inm->in6m_st[1].iss_rec));
+}
+
+/*
+ * Record a source as pending for a Source-Group MLDv2 query.
+ * This lives here as it modifies the shared tree.
+ *
+ * inm is the group descriptor.
+ * naddr is the address of the source to record in network-byte order.
+ *
+ * If the net.inet6.mld.sgalloc sysctl is non-zero, we will
+ * lazy-allocate a source node in response to an SG query.
+ * Otherwise, no allocation is performed. This saves some memory
+ * with the trade-off that the source will not be reported to the
+ * router if joined in the window between the query response and
+ * the group actually being joined on the local host.
+ *
+ * VIMAGE: XXX: Currently the mld_sgalloc feature has been removed.
+ * This turns off the allocation of a recorded source entry if
+ * the group has not been joined.
+ *
+ * Return 0 if the source didn't exist or was already marked as recorded.
+ * Return 1 if the source was marked as recorded by this function.
+ * Return <0 if any error occured (negated errno code).
+ */
+int
+in6m_record_source(struct in6_multi *inm, const struct in6_addr *addr)
+{
+	struct ip6_msource	 find;
+	struct ip6_msource	*ims, *nims;
+
+	IN6_MULTI_LOCK_ASSERT();
+
+	find.im6s_addr = *addr;
+	ims = RB_FIND(ip6_msource_tree, &inm->in6m_srcs, &find);
+	if (ims && ims->im6s_stp)
+		return (0);
+	if (ims == NULL) {
+		if (inm->in6m_nsrc == in6_mcast_maxgrpsrc)
+			return (-ENOSPC);
+		nims = malloc(sizeof(struct ip6_msource), M_IP6MSOURCE,
+		    M_NOWAIT | M_ZERO);
+		if (nims == NULL)
+			return (-ENOMEM);
+		nims->im6s_addr = find.im6s_addr;
+		RB_INSERT(ip6_msource_tree, &inm->in6m_srcs, nims);
+		++inm->in6m_nsrc;
+		ims = nims;
+	}
+
+	/*
+	 * Mark the source as recorded and update the recorded
+	 * source count.
+	 */
+	++ims->im6s_stp;
+	++inm->in6m_st[1].iss_rec;
+
+	return (1);
+}
+
+/*
+ * Return a pointer to an in6_msource owned by an in6_mfilter,
+ * given its source address.
+ * Lazy-allocate if needed. If this is a new entry its filter state is
+ * undefined at t0.
+ *
+ * imf is the filter set being modified.
+ * addr is the source address.
+ *
+ * SMPng: May be called with locks held; malloc must not block.
+ */
+static int
+im6f_get_source(struct in6_mfilter *imf, const struct sockaddr_in6 *psin,
+    struct in6_msource **plims)
+{
+	struct ip6_msource	 find;
+	struct ip6_msource	*ims, *nims;
+	struct in6_msource	*lims;
+	int			 error;
+
+	error = 0;
+	ims = NULL;
+	lims = NULL;
+
+	find.im6s_addr = psin->sin6_addr;
+	ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
+	lims = (struct in6_msource *)ims;
+	if (lims == NULL) {
+		if (imf->im6f_nsrc == in6_mcast_maxsocksrc)
+			return (ENOSPC);
+		nims = malloc(sizeof(struct in6_msource), M_IN6MFILTER,
+		    M_NOWAIT | M_ZERO);
+		if (nims == NULL)
+			return (ENOMEM);
+		lims = (struct in6_msource *)nims;
+		lims->im6s_addr = find.im6s_addr;
+		lims->im6sl_st[0] = MCAST_UNDEFINED;
+		RB_INSERT(ip6_msource_tree, &imf->im6f_sources, nims);
+		++imf->im6f_nsrc;
+	}
+
+	*plims = lims;
+
+	return (error);
+}
+
+/*
+ * Graft a source entry into an existing socket-layer filter set,
+ * maintaining any required invariants and checking allocations.
+ *
+ * The source is marked as being in the new filter mode at t1.
+ *
+ * Return the pointer to the new node, otherwise return NULL.
+ */
+static struct in6_msource *
+im6f_graft(struct in6_mfilter *imf, const uint8_t st1,
+    const struct sockaddr_in6 *psin)
+{
+	struct ip6_msource	*nims;
+	struct in6_msource	*lims;
+
+	nims = malloc(sizeof(struct in6_msource), M_IN6MFILTER,
+	    M_NOWAIT | M_ZERO);
+	if (nims == NULL)
+		return (NULL);
+	lims = (struct in6_msource *)nims;
+	lims->im6s_addr = psin->sin6_addr;
+	lims->im6sl_st[0] = MCAST_UNDEFINED;
+	lims->im6sl_st[1] = st1;
+	RB_INSERT(ip6_msource_tree, &imf->im6f_sources, nims);
+	++imf->im6f_nsrc;
+
+	return (lims);
+}
+
+/*
+ * Prune a source entry from an existing socket-layer filter set,
+ * maintaining any required invariants and checking allocations.
+ *
+ * The source is marked as being left at t1, it is not freed.
+ *
+ * Return 0 if no error occurred, otherwise return an errno value.
+ */
+static int
+im6f_prune(struct in6_mfilter *imf, const struct sockaddr_in6 *psin)
+{
+	struct ip6_msource	 find;
+	struct ip6_msource	*ims;
+	struct in6_msource	*lims;
+
+	find.im6s_addr = psin->sin6_addr;
+	ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
+	if (ims == NULL)
+		return (ENOENT);
+	lims = (struct in6_msource *)ims;
+	lims->im6sl_st[1] = MCAST_UNDEFINED;
+	return (0);
+}
+
+/*
+ * Revert socket-layer filter set deltas at t1 to t0 state.
+ */
+static void
+im6f_rollback(struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims, *tims;
+	struct in6_msource	*lims;
+
+	RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
+		lims = (struct in6_msource *)ims;
+		if (lims->im6sl_st[0] == lims->im6sl_st[1]) {
+			/* no change at t1 */
+			continue;
+		} else if (lims->im6sl_st[0] != MCAST_UNDEFINED) {
+			/* revert change to existing source at t1 */
+			lims->im6sl_st[1] = lims->im6sl_st[0];
+		} else {
+			/* revert source added t1 */
+			CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
+			RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
+			free(ims, M_IN6MFILTER);
+			imf->im6f_nsrc--;
+		}
+	}
+	imf->im6f_st[1] = imf->im6f_st[0];
+}
+
+/*
+ * Mark socket-layer filter set as INCLUDE {} at t1.
+ */
+static void
+im6f_leave(struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims;
+	struct in6_msource	*lims;
+
+	RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
+		lims = (struct in6_msource *)ims;
+		lims->im6sl_st[1] = MCAST_UNDEFINED;
+	}
+	imf->im6f_st[1] = MCAST_INCLUDE;
+}
+
+/*
+ * Mark socket-layer filter set deltas as committed.
+ */
+static void
+im6f_commit(struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims;
+	struct in6_msource	*lims;
+
+	RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
+		lims = (struct in6_msource *)ims;
+		lims->im6sl_st[0] = lims->im6sl_st[1];
+	}
+	imf->im6f_st[0] = imf->im6f_st[1];
+}
+
+/*
+ * Reap unreferenced sources from socket-layer filter set.
+ */
+static void
+im6f_reap(struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims, *tims;
+	struct in6_msource	*lims;
+
+	RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
+		lims = (struct in6_msource *)ims;
+		if ((lims->im6sl_st[0] == MCAST_UNDEFINED) &&
+		    (lims->im6sl_st[1] == MCAST_UNDEFINED)) {
+			CTR2(KTR_MLD, "%s: free lims %p", __func__, ims);
+			RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
+			free(ims, M_IN6MFILTER);
+			imf->im6f_nsrc--;
+		}
+	}
+}
+
+/*
+ * Purge socket-layer filter set.
+ */
+static void
+im6f_purge(struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims, *tims;
+
+	RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
+		CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
+		RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
+		free(ims, M_IN6MFILTER);
+		imf->im6f_nsrc--;
+	}
+	imf->im6f_st[0] = imf->im6f_st[1] = MCAST_UNDEFINED;
+	KASSERT(RB_EMPTY(&imf->im6f_sources),
+	    ("%s: im6f_sources not empty", __func__));
+}
+
+/*
+ * Look up a source filter entry for a multicast group.
+ *
+ * inm is the group descriptor to work with.
+ * addr is the IPv6 address to look up.
+ * noalloc may be non-zero to suppress allocation of sources.
+ * *pims will be set to the address of the retrieved or allocated source.
+ *
+ * SMPng: NOTE: may be called with locks held.
+ * Return 0 if successful, otherwise return a non-zero error code.
+ */
+static int
+in6m_get_source(struct in6_multi *inm, const struct in6_addr *addr,
+    const int noalloc, struct ip6_msource **pims)
+{
+	struct ip6_msource	 find;
+	struct ip6_msource	*ims, *nims;
+#ifdef KTR
+	char			 ip6tbuf[INET6_ADDRSTRLEN];
+#endif
+
+	find.im6s_addr = *addr;
+	ims = RB_FIND(ip6_msource_tree, &inm->in6m_srcs, &find);
+	if (ims == NULL && !noalloc) {
+		if (inm->in6m_nsrc == in6_mcast_maxgrpsrc)
+			return (ENOSPC);
+		nims = malloc(sizeof(struct ip6_msource), M_IP6MSOURCE,
+		    M_NOWAIT | M_ZERO);
+		if (nims == NULL)
+			return (ENOMEM);
+		nims->im6s_addr = *addr;
+		RB_INSERT(ip6_msource_tree, &inm->in6m_srcs, nims);
+		++inm->in6m_nsrc;
+		ims = nims;
+		CTR3(KTR_MLD, "%s: allocated %s as %p", __func__,
+		    ip6_sprintf(ip6tbuf, addr), ims);
+	}
+
+	*pims = ims;
+	return (0);
+}
+
+/*
+ * Merge socket-layer source into MLD-layer source.
+ * If rollback is non-zero, perform the inverse of the merge.
+ */
+static void
+im6s_merge(struct ip6_msource *ims, const struct in6_msource *lims,
+    const int rollback)
+{
+	int n = rollback ? -1 : 1;
+#ifdef KTR
+	char ip6tbuf[INET6_ADDRSTRLEN];
+
+	ip6_sprintf(ip6tbuf, &lims->im6s_addr);
+#endif
+
+	if (lims->im6sl_st[0] == MCAST_EXCLUDE) {
+		CTR3(KTR_MLD, "%s: t1 ex -= %d on %s", __func__, n, ip6tbuf);
+		ims->im6s_st[1].ex -= n;
+	} else if (lims->im6sl_st[0] == MCAST_INCLUDE) {
+		CTR3(KTR_MLD, "%s: t1 in -= %d on %s", __func__, n, ip6tbuf);
+		ims->im6s_st[1].in -= n;
+	}
+
+	if (lims->im6sl_st[1] == MCAST_EXCLUDE) {
+		CTR3(KTR_MLD, "%s: t1 ex += %d on %s", __func__, n, ip6tbuf);
+		ims->im6s_st[1].ex += n;
+	} else if (lims->im6sl_st[1] == MCAST_INCLUDE) {
+		CTR3(KTR_MLD, "%s: t1 in += %d on %s", __func__, n, ip6tbuf);
+		ims->im6s_st[1].in += n;
+	}
+}
+
+/*
+ * Atomically update the global in6_multi state, when a membership's
+ * filter list is being updated in any way.
+ *
+ * imf is the per-inpcb-membership group filter pointer.
+ * A fake imf may be passed for in-kernel consumers.
+ *
+ * XXX This is a candidate for a set-symmetric-difference style loop
+ * which would eliminate the repeated lookup from root of ims nodes,
+ * as they share the same key space.
+ *
+ * If any error occurred this function will back out of refcounts
+ * and return a non-zero value.
+ */
+static int
+in6m_merge(struct in6_multi *inm, /*const*/ struct in6_mfilter *imf)
+{
+	struct ip6_msource	*ims, *nims;
+	struct in6_msource	*lims;
+	int			 schanged, error;
+	int			 nsrc0, nsrc1;
+
+	schanged = 0;
+	error = 0;
+	nsrc1 = nsrc0 = 0;
+
+	/*
+	 * Update the source filters first, as this may fail.
+	 * Maintain count of in-mode filters at t0, t1. These are
+	 * used to work out if we transition into ASM mode or not.
+	 * Maintain a count of source filters whose state was
+	 * actually modified by this operation.
+	 */
+	RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
+		lims = (struct in6_msource *)ims;
+		if (lims->im6sl_st[0] == imf->im6f_st[0]) nsrc0++;
+		if (lims->im6sl_st[1] == imf->im6f_st[1]) nsrc1++;
+		if (lims->im6sl_st[0] == lims->im6sl_st[1]) continue;
+		error = in6m_get_source(inm, &lims->im6s_addr, 0, &nims);
+		++schanged;
+		if (error)
+			break;
+		im6s_merge(nims, lims, 0);
+	}
+	if (error) {
+		struct ip6_msource *bims;
+
+		RB_FOREACH_REVERSE_FROM(ims, ip6_msource_tree, nims) {
+			lims = (struct in6_msource *)ims;
+			if (lims->im6sl_st[0] == lims->im6sl_st[1])
+				continue;
+			(void)in6m_get_source(inm, &lims->im6s_addr, 1, &bims);
+			if (bims == NULL)
+				continue;
+			im6s_merge(bims, lims, 1);
+		}
+		goto out_reap;
+	}
+
+	CTR3(KTR_MLD, "%s: imf filters in-mode: %d at t0, %d at t1",
+	    __func__, nsrc0, nsrc1);
+
+	/* Handle transition between INCLUDE {n} and INCLUDE {} on socket. */
+	if (imf->im6f_st[0] == imf->im6f_st[1] &&
+	    imf->im6f_st[1] == MCAST_INCLUDE) {
+		if (nsrc1 == 0) {
+			CTR1(KTR_MLD, "%s: --in on inm at t1", __func__);
+			--inm->in6m_st[1].iss_in;
+		}
+	}
+
+	/* Handle filter mode transition on socket. */
+	if (imf->im6f_st[0] != imf->im6f_st[1]) {
+		CTR3(KTR_MLD, "%s: imf transition %d to %d",
+		    __func__, imf->im6f_st[0], imf->im6f_st[1]);
+
+		if (imf->im6f_st[0] == MCAST_EXCLUDE) {
+			CTR1(KTR_MLD, "%s: --ex on inm at t1", __func__);
+			--inm->in6m_st[1].iss_ex;
+		} else if (imf->im6f_st[0] == MCAST_INCLUDE) {
+			CTR1(KTR_MLD, "%s: --in on inm at t1", __func__);
+			--inm->in6m_st[1].iss_in;
+		}
+
+		if (imf->im6f_st[1] == MCAST_EXCLUDE) {
+			CTR1(KTR_MLD, "%s: ex++ on inm at t1", __func__);
+			inm->in6m_st[1].iss_ex++;
+		} else if (imf->im6f_st[1] == MCAST_INCLUDE && nsrc1 > 0) {
+			CTR1(KTR_MLD, "%s: in++ on inm at t1", __func__);
+			inm->in6m_st[1].iss_in++;
+		}
+	}
+
+	/*
+	 * Track inm filter state in terms of listener counts.
+	 * If there are any exclusive listeners, stack-wide
+	 * membership is exclusive.
+	 * Otherwise, if only inclusive listeners, stack-wide is inclusive.
+	 * If no listeners remain, state is undefined at t1,
+	 * and the MLD lifecycle for this group should finish.
+	 */
+	if (inm->in6m_st[1].iss_ex > 0) {
+		CTR1(KTR_MLD, "%s: transition to EX", __func__);
+		inm->in6m_st[1].iss_fmode = MCAST_EXCLUDE;
+	} else if (inm->in6m_st[1].iss_in > 0) {
+		CTR1(KTR_MLD, "%s: transition to IN", __func__);
+		inm->in6m_st[1].iss_fmode = MCAST_INCLUDE;
+	} else {
+		CTR1(KTR_MLD, "%s: transition to UNDEF", __func__);
+		inm->in6m_st[1].iss_fmode = MCAST_UNDEFINED;
+	}
+
+	/* Decrement ASM listener count on transition out of ASM mode. */
+	if (imf->im6f_st[0] == MCAST_EXCLUDE && nsrc0 == 0) {
+		if ((imf->im6f_st[1] != MCAST_EXCLUDE) ||
+		    (imf->im6f_st[1] == MCAST_EXCLUDE && nsrc1 > 0))
+			CTR1(KTR_MLD, "%s: --asm on inm at t1", __func__);
+			--inm->in6m_st[1].iss_asm;
+	}
+
+	/* Increment ASM listener count on transition to ASM mode. */

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

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 11:31:24 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3E998106564A;
	Wed, 29 Apr 2009 11:31:24 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2C8188FC16;
	Wed, 29 Apr 2009 11:31:24 +0000 (UTC) (envelope-from bms@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 n3TBVO8i079465;
	Wed, 29 Apr 2009 11:31:24 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TBVOY0079464;
	Wed, 29 Apr 2009 11:31:24 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200904291131.n3TBVOY0079464@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 29 Apr 2009 11:31:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191666 - head/sys/netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 11:31:24 -0000

Author: bms
Date: Wed Apr 29 11:31:23 2009
New Revision: 191666
URL: http://svn.freebsd.org/changeset/base/191666

Log:
  Add MLDv2 protocol header, but do not connect it to the build.

Added:
  head/sys/netinet6/mld6.h   (contents, props changed)

Added: head/sys/netinet6/mld6.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/netinet6/mld6.h	Wed Apr 29 11:31:23 2009	(r191666)
@@ -0,0 +1,112 @@
+/*-
+ * Copyright (c) 2009 Bruce Simpson.
+ *
+ * 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.
+ * 3. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * 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 _NETINET6_MLD6_H_
+#define _NETINET6_MLD6_H_
+
+/*
+ * Multicast Listener Discovery (MLD) definitions.
+ */
+
+/* Minimum length of any MLD protocol message. */
+#define MLD_MINLEN	sizeof(struct icmp6_hdr)
+
+/*
+ * MLD v2 query format.
+ * See  for struct mld_hdr
+ * (MLDv1 query and host report format).
+ */
+struct mldv2_query {
+	struct icmp6_hdr	mld_icmp6_hdr;	/* ICMPv6 header */
+	struct in6_addr		mld_addr;	/* address being queried */
+	uint8_t		mld_misc;	/* reserved/suppress/robustness   */
+	uint8_t		mld_qqi;	/* querier's query interval       */
+	uint16_t	mld_numsrc;	/* number of sources              */
+	/* followed by 1..numsrc source addresses */
+} __packed;
+#define MLD_V2_QUERY_MINLEN		sizeof(struct mldv2_query)
+#define MLD_MRC_EXP(x)			((ntohs((x)) >> 12) & 0x0007)
+#define MLD_MRC_MANT(x)			(ntohs((x)) & 0x0fff)
+#define MLD_QQIC_EXP(x)			(((x) >> 4) & 0x07)
+#define MLD_QQIC_MANT(x)		((x) & 0x0f)
+#define MLD_QRESV(x)			(((x) >> 4) & 0x0f)
+#define MLD_SFLAG(x)			(((x) >> 3) & 0x01)
+#define MLD_QRV(x)			((x) & 0x07)
+
+/*
+ * MLDv2 host membership report header.
+ * mld_type: MLDV2_LISTENER_REPORT
+ */
+struct mldv2_report {
+	struct icmp6_hdr	mld_icmp6_hdr;
+	/* followed by 1..numgrps records */
+} __packed;
+/* overlaid on struct icmp6_hdr. */
+#define mld_numrecs	mld_icmp6_hdr.icmp6_data16[1]
+
+struct mldv2_record {
+	uint8_t			mr_type;	/* record type */
+	uint8_t			mr_datalen;	/* length of auxiliary data */
+	uint16_t		mr_numsrc;	/* number of sources */
+	struct in6_addr		mr_addr;	/* address being reported */
+	/* followed by 1..numsrc source addresses */
+} __packed;
+#define MLD_V2_REPORT_MAXRECS		65535
+
+/*
+ * MLDv2 report modes.
+ */
+#define MLD_DO_NOTHING			0	/* don't send a record */
+#define MLD_MODE_IS_INCLUDE		1	/* MODE_IN */
+#define MLD_MODE_IS_EXCLUDE		2	/* MODE_EX */
+#define MLD_CHANGE_TO_INCLUDE_MODE	3	/* TO_IN */
+#define MLD_CHANGE_TO_EXCLUDE_MODE	4	/* TO_EX */
+#define MLD_ALLOW_NEW_SOURCES		5	/* ALLOW_NEW */
+#define MLD_BLOCK_OLD_SOURCES		6	/* BLOCK_OLD */
+
+/*
+ * MLDv2 query types.
+ */
+#define MLD_V2_GENERAL_QUERY		1
+#define MLD_V2_GROUP_QUERY		2
+#define MLD_V2_GROUP_SOURCE_QUERY	3
+
+/*
+ * Maximum report interval for MLDv1 host membership reports.
+ */
+#define MLD_V1_MAX_RI			10
+
+/*
+ * MLD_TIMER_SCALE denotes that the MLD code field specifies
+ * time in milliseconds.
+ */
+#define MLD_TIMER_SCALE			1000
+
+#endif /* _NETINET6_MLD6_H_ */

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 15:22:59 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D589B106566C;
	Wed, 29 Apr 2009 15:22:59 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C283A8FC18;
	Wed, 29 Apr 2009 15:22:59 +0000 (UTC) (envelope-from hrs@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 n3TFMws0083777;
	Wed, 29 Apr 2009 15:22:58 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TFMwrh083776;
	Wed, 29 Apr 2009 15:22:58 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904291522.n3TFMwrh083776@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 15:22:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191667 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 15:23:00 -0000

Author: hrs
Date: Wed Apr 29 15:22:58 2009
New Revision: 191667
URL: http://svn.freebsd.org/changeset/base/191667

Log:
  - Update entries for increased KVA on amd64 and superpages on
    amd64/i386[1]
  - BTX loader improved[2]
  - Move sysctl node MPSAFE flag to the kernel section[3]
  - u3g(4) added[4]
  - Various grammer fixes[5]
  - MAKE_JOBS_SAFE added in bsd.port.mk.
  
  Suggested by:	ivoras[1], gavin[2], kib[3], edwin[4], and schweikh[5].
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 11:31:23 2009	(r191666)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 15:22:58 2009	(r191667)
@@ -215,9 +215,13 @@
 	process execution.
 
       The &os; kernel virtual address space has
-	been increased to 6GB and the ceiling on the kmem map size
-	to 3.6GB.  Note that the ceiling as a fraction of the kernel
-	map size rather than an absolute quantity.
+	been increased to 6GB.  This allows subsystems to use larger
+	virtual memory space than before.  For example, &man.zfs.8;
+	adaptive replacement cache (ARC) requires large kernel memory
+	space to cache file system data, so it benefits from the
+	increased address space.  Note that the ceiling on the kernel
+	map size is now 60% of the size rather than an absolute
+	quantity.
 
       The &man.jail.8; subsystem has been updated.  Changes include:
 
@@ -231,12 +235,13 @@
 	
 
 	
-	  SCTP (&man.sctp.4;) with IPv6 in jails has been supported.
+	  SCTP (&man.sctp.4;) with IPv6 in jails has been
+	    implemented.
 	
 
 	
 	  Specific CPU binding by using &man.cpuset.1; has been
-	    supported.  Note that the current implementation allows
+	    implemented.  Note that the current implementation allows
 	    the superuser inside of the jail to change the CPU
 	    bindings specified.  This behavior will be fixed in the
 	    next release.
@@ -267,7 +272,7 @@
       
 
       The &man.kld.4; now supports installing 32-bit system
-	call to the &os; system call translation layer from kernel
+	calls to the &os; system call translation layer from kernel
 	modules.
 
       The &man.ktr.4; now supports a new KTR tracepoint in the
@@ -280,7 +285,10 @@
 	makes it possible to use more than 2 GB shared memory segments
 	on 64-bit architectures.  Please note the new BUGS section in
 	&man.shmctl.2; and /usr/src/UPDATING for
-	limitations of this temporal solution.
+	limitations of this temporary solution.
+
+      A &man.sysctl.3; leaf node has a flag to tag itself as
+	MPSAFE now.
 
       The &os; 32-bit system call translation layer now
 	supports installing 32-bit system calls for
@@ -293,7 +301,10 @@
 	modern CPUs.  This provides possible memory savings for
 	applications that share large amounts of memory between the
 	address spaces and performance improvements due to fewer TLB
-	misses.
+	misses.  This is disabled by default and can be enabled by
+	setting a loader tunable
+	vm.pmap.pg_ps_enabled to
+	1.
 
       
 	Boot Loader Changes
@@ -302,6 +313,10 @@
 	  certain versions of &windows; put into the MBR and invoking
 	  PXE by pressing F6 key on some supported BIOSes.
 
+	The &man.boot.8; BTX loader has been
+	  improved.  This fixes several boot issues on recent machines
+	  reported for 7.1-RELEASE and before.
+
 	The &man.loader.8; is now able to obtain DHCP options
 	  from network boot via &man.kenv.2; variables.
 
@@ -364,14 +379,19 @@
 	  Fireplane/Safari to PCI 2.1 and Tomatillo JBus to PCI 2.2
 	  bridges has been added.
 
+	The &man.u3g.4; driver for USB based 3G cards and
+	  dongles including Vodafone Mobile Connect Card 3G, Qualcomm
+	  CDMA MSM, Huawei E220, Novatel U740, Sierra MC875U, and so
+	  on has been added.  This provides support for the multiple
+	  USB-to-serial interfaces exposed by many 3G USB/PC Card
+	  modems, and the device is accessed through the &man.ucom.4;
+	  driver which makes it behave like a &man.tty.4;.
+
 	The &man.sched.ule.4; scheduler now supports a loader
 	  tunable machdep.hyperthreading_enabled as
 	  the &man.sched.4bsd.4; does.  Note that it cannot be
 	  modified at run-time.
 
-	A &man.sysctl.3; leaf node has a flag to tag itself as
-	  MPSAFE now.
-
 	
 	  Multimedia Support
 
@@ -771,20 +791,20 @@
 	 flag for damaged recovery mode, which will
 	enable certain aggressive operations that can make
 	&man.fsck.8; to survive with file systems that has very
-	serious data damage.  This is an useful last resort when on
+	serious data damage.  This is a useful last resort when on
 	disk data damage is very serious and causes &man.fsck.8; to
 	crash otherwise.
 
       The &man.getaddrinfo.3; function now supports SCTP.
 
-      A bug in the &man.ipfw.8; utility which displays extra
-	messages for a NAT rule even when a  flag
-	is specified.
+      A bug was fixed in the &man.ipfw.8; utility which displays
+	extra messages for a NAT rule even when a 
+	flag is specified.
 
       The &man.ln.1; utility now supports a 
 	flag to check if the source file actually exists.  When the
-	flag is specified and the file does not exist, the &man.ln.1;
-	will put a warning message.
+	flag is specified and the file does not exist, &man.ln.1; will
+	issue a warning message.
 
       The &man.make.1; utility now supports a
 	 flag to print the input graph only, not
@@ -799,7 +819,7 @@
 	 flag when a  option is
 	specified.
 
-      The &man.make.1; utility now supports
+      The &man.make.1; utility now supports the
 	.MAKE.JOB.PREFIX variable.  If
 	 and  are specified, it
 	outputs for each target is prefixed with a token ---
@@ -836,7 +856,7 @@
       &prompt.user; netstat -m -N foo
 
       A bug in the &man.netstat.1; utility has been fixed.  The
-	 now works in the icmp6 section as
+	 option now works in the icmp6 section as
 	expected.
 
       The &man.pciconf.8; utility now supports a
@@ -889,8 +909,20 @@
     
       Ports/Packages Collection Infrastructure
 
-      A bug in the &man.pkg.create.1; which prevents the
+      A bug in &man.pkg.create.1; which prevents the
 	 flag from working has been fixed.
+
+      The &os; Ports Collection now supports multiple
+	&man.make.1; jobs in some supported ports.  This is
+	automatically enabled when a port is marked as
+	MAKE_JOBS_SAFE and improves CPU utilization
+	at the build stage by passing an option
+	 to the top
+	level Makefile from the vendor.  The
+	number X is set to the number of
+	CPUs by default, and can be set by users via a &man.make.1;
+	variable MAKE_JOBS_NUMBER.  For more
+	details, see ports/Mk/bsd.port.mk.
     
 
     

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 16:02:52 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D1C601065670;
	Wed, 29 Apr 2009 16:02:52 +0000 (UTC)
	(envelope-from jamie@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B3E5B8FC15;
	Wed, 29 Apr 2009 16:02:52 +0000 (UTC)
	(envelope-from jamie@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 n3TG2qX9084546;
	Wed, 29 Apr 2009 16:02:52 GMT (envelope-from jamie@svn.freebsd.org)
Received: (from jamie@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3TG2qqT084543;
	Wed, 29 Apr 2009 16:02:52 GMT (envelope-from jamie@svn.freebsd.org)
Message-Id: <200904291602.n3TG2qqT084543@svn.freebsd.org>
From: Jamie Gritton 
Date: Wed, 29 Apr 2009 16:02:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191668 - in head: lib/libc/sys sys/sys usr.sbin/jail
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 16:02:53 -0000

Author: jamie
Date: Wed Apr 29 16:02:52 2009
New Revision: 191668
URL: http://svn.freebsd.org/changeset/base/191668

Log:
  With the permission of phk@ change the license on remaining jail code
  to a 2 clause BSD license.
  
  Approved by:	phk
  Approved by:	bz (mentor)

Modified:
  head/lib/libc/sys/jail.2
  head/sys/sys/jail.h
  head/usr.sbin/jail/jail.c

Modified: head/lib/libc/sys/jail.2
==============================================================================
--- head/lib/libc/sys/jail.2	Wed Apr 29 15:22:58 2009	(r191667)
+++ head/lib/libc/sys/jail.2	Wed Apr 29 16:02:52 2009	(r191668)
@@ -1,10 +1,26 @@
+.\" Copyright (c) 1999 Poul-Henning Kamp.
+.\" All rights reserved.
 .\"
-.\" ----------------------------------------------------------------------------
-.\" "THE BEER-WARE LICENSE" (Revision 42):
-.\"  wrote this file.  As long as you retain this notice you
-.\" can do whatever you want with this stuff. If we meet some day, and you think
-.\" this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
-.\" ----------------------------------------------------------------------------
+.\" 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$
 .\"

Modified: head/sys/sys/jail.h
==============================================================================
--- head/sys/sys/jail.h	Wed Apr 29 15:22:58 2009	(r191667)
+++ head/sys/sys/jail.h	Wed Apr 29 16:02:52 2009	(r191668)
@@ -1,10 +1,27 @@
 /*-
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- *  wrote this file.  As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
- * ----------------------------------------------------------------------------
+ * Copyright (c) 1999 Poul-Henning Kamp.
+ * 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$
  */

Modified: head/usr.sbin/jail/jail.c
==============================================================================
--- head/usr.sbin/jail/jail.c	Wed Apr 29 15:22:58 2009	(r191667)
+++ head/usr.sbin/jail/jail.c	Wed Apr 29 16:02:52 2009	(r191668)
@@ -1,10 +1,27 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- *  wrote this file.  As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
- * ----------------------------------------------------------------------------
+/*-
+ * Copyright (c) 1999 Poul-Henning Kamp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #include 

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 16:54:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E056A106564A;
	Wed, 29 Apr 2009 16:54:26 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from mail.terabit.net.ua (mail.terabit.net.ua [195.137.202.147])
	by mx1.freebsd.org (Postfix) with ESMTP id 4A2308FC18;
	Wed, 29 Apr 2009 16:54:26 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from skuns.zoral.com.ua ([91.193.166.194] helo=mail.zoral.com.ua)
	by mail.terabit.net.ua with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.63 (FreeBSD)) (envelope-from )
	id 1LzD39-000OKN-0p; Wed, 29 Apr 2009 19:54:23 +0300
Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua
	[10.1.1.148])
	by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id n3TGsHkV063398
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 29 Apr 2009 19:54:17 +0300 (EEST)
	(envelope-from kostikbel@gmail.com)
Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1])
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id
	n3TGsHYO086267; Wed, 29 Apr 2009 19:54:17 +0300 (EEST)
	(envelope-from kostikbel@gmail.com)
Received: (from kostik@localhost)
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id n3TGsHkX086266; 
	Wed, 29 Apr 2009 19:54:17 +0300 (EEST)
	(envelope-from kostikbel@gmail.com)
X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to
	kostikbel@gmail.com using -f
Date: Wed, 29 Apr 2009 19:54:17 +0300
From: Kostik Belousov 
To: Jeff Roberson 
Message-ID: <20090429165417.GG40751@deviant.kiev.zoral.com.ua>
References: <200904290315.n3T3FiJW067558@svn.freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="7fVr/IRGAG9sAW4J"
Content-Disposition: inline
In-Reply-To: <200904290315.n3T3FiJW067558@svn.freebsd.org>
User-Agent: Mutt/1.4.2.3i
X-Virus-Scanned: ClamAV version 0.94.2,
	clamav-milter version 0.94.2 on skuns.kiev.zoral.com.ua
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
	skuns.kiev.zoral.com.ua
X-Virus-Scanned: mail.terabit.net.ua 1LzD39-000OKN-0p
	8121c4aa6e171d12d2c3816b10cfc230
X-Terabit: YES
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r191643 - in head/sys: kern sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 16:54:27 -0000


--7fVr/IRGAG9sAW4J
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 29, 2009 at 03:15:44AM +0000, Jeff Roberson wrote:
> Author: jeff
> Date: Wed Apr 29 03:15:43 2009
> New Revision: 191643
> URL: http://svn.freebsd.org/changeset/base/191643
>=20
> Log:
>    - Remove the bogus idle thread state code.  This may have a race in it
>      and it only optimized out an ipi or mwait in very few cases.
>    - Skip the adaptive idle code when running on SMT or HTT cores.  This
>      just wastes cpu time that could be used on a busy thread on the same
>      core.
>    - Rename CG_FLAG_THREAD to CG_FLAG_SMT to be more descriptive.  Re-use
>      CG_FLAG_THREAD to mean SMT or HTT.
>  =20
>   Sponsored by:   Nokia
>=20
> Modified:
>   head/sys/kern/sched_ule.c
>   head/sys/kern/subr_smp.c
>   head/sys/sys/smp.h

Now I see a reason why it is better #ifdef SMP the code that uses CG_FLAG_*.
Also, we should check for tdq_cg !=3D NULL in one more place.

See the patch below, instead of exposing CG_FLAG_* for !SMP configs.

diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 680572d..fe3a119 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -891,6 +891,7 @@ tdq_move(struct tdq *from, struct tdq *to)
 	return (1);
 }
=20
+#ifdef SMP
 /*
  * This tdq has idled.  Try to steal a thread from another cpu and switch
  * to it.
@@ -947,6 +948,7 @@ tdq_idled(struct tdq *tdq)
 	spinlock_exit();
 	return (1);
 }
+#endif
=20
 /*
  * Notify a remote cpu of new work.  Sends an IPI if criteria are met.
@@ -2525,7 +2527,9 @@ sched_idletd(void *dummy)
 	struct thread *td;
 	struct tdq *tdq;
 	int switchcnt;
+#ifdef SMP
 	int i;
+#endif
=20
 	mtx_assert(&Giant, MA_NOTOWNED);
 	td =3D curthread;
@@ -2543,7 +2547,9 @@ sched_idletd(void *dummy)
 		 * loops while on SMT machines as this simply steals
 		 * cycles from cores doing useful work.
 		 */
-		if ((tdq->tdq_cg->cg_flags & CG_FLAG_THREAD) =3D=3D 0 &&
+#ifdef SMP
+		if (tdq->tdq_cg !=3D NULL &&
+		    (tdq->tdq_cg->cg_flags & CG_FLAG_THREAD) =3D=3D 0 &&
 		    switchcnt > sched_idlespinthresh) {
 			for (i =3D 0; i < sched_idlespins; i++) {
 				if (tdq->tdq_load)
@@ -2551,6 +2557,7 @@ sched_idletd(void *dummy)
 				cpu_spinwait();
 			}
 		}
+#endif
 		switchcnt =3D tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt;
 		if (tdq->tdq_load =3D=3D 0)
 			cpu_idle(switchcnt > 1);

--7fVr/IRGAG9sAW4J
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAkn4hjgACgkQC3+MBN1Mb4hsoACfVDIzV4KqZR5Zi/scpiolmWf6
L/UAn0dGosIBRmlW16kn/07cNChsla6g
=MG++
-----END PGP SIGNATURE-----

--7fVr/IRGAG9sAW4J--

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 17:02:02 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EC1D91065672;
	Wed, 29 Apr 2009 17:02:02 +0000 (UTC)
	(envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3])
	by mx1.freebsd.org (Postfix) with ESMTP id A15588FC2A;
	Wed, 29 Apr 2009 17:02:02 +0000 (UTC)
	(envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from localhost (amavis.fra.cksoft.de [192.168.74.71])
	by mail.cksoft.de (Postfix) with ESMTP id ADA1A41C75D;
	Wed, 29 Apr 2009 18:45:06 +0200 (CEST)
X-Virus-Scanned: amavisd-new at cksoft.de
Received: from mail.cksoft.de ([195.88.108.3])
	by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new,
	port 10024)
	with ESMTP id OCL2qAIQg6hd; Wed, 29 Apr 2009 18:45:06 +0200 (CEST)
Received: by mail.cksoft.de (Postfix, from userid 66)
	id 3D4C441C75B; Wed, 29 Apr 2009 18:45:06 +0200 (CEST)
Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net
	[10.111.66.10])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mail.int.zabbadoz.net (Postfix) with ESMTP id AAFBA4448E6;
	Wed, 29 Apr 2009 16:43:50 +0000 (UTC)
Date: Wed, 29 Apr 2009 16:43:50 +0000 (UTC)
From: "Bjoern A. Zeeb" 
X-X-Sender: bz@maildrop.int.zabbadoz.net
To: Jeff Roberson 
In-Reply-To: <200904290315.n3T3FiJW067558@svn.freebsd.org>
Message-ID: <20090429164314.F15361@maildrop.int.zabbadoz.net>
References: <200904290315.n3T3FiJW067558@svn.freebsd.org>
X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r191643 - in head/sys: kern sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 17:02:03 -0000

On Wed, 29 Apr 2009, Jeff Roberson wrote:

> Author: jeff
> Date: Wed Apr 29 03:15:43 2009
> New Revision: 191643
> URL: http://svn.freebsd.org/changeset/base/191643
>
> Log:
>   - Remove the bogus idle thread state code.  This may have a race in it
>     and it only optimized out an ipi or mwait in very few cases.
>   - Skip the adaptive idle code when running on SMT or HTT cores.  This
>     just wastes cpu time that could be used on a busy thread on the same
>     core.
>   - Rename CG_FLAG_THREAD to CG_FLAG_SMT to be more descriptive.  Re-use
>     CG_FLAG_THREAD to mean SMT or HTT.
>
>  Sponsored by:   Nokia

I think it was this of your commits that broke various kernels on
ia64, arm, powerpc, ..


-- 
Bjoern A. Zeeb                      The greatest risk is not taking one.

From owner-svn-src-all@FreeBSD.ORG  Wed Apr 29 17:50:49 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3BD741065796;
	Wed, 29 Apr 2009 17:50:49 +0000 (UTC) (envelope-from hrs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 274F58FC1D;
	Wed, 29 Apr 2009 17:50:49 +0000 (UTC) (envelope-from hrs@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 n3THonlq086715;
	Wed, 29 Apr 2009 17:50:49 GMT (envelope-from hrs@svn.freebsd.org)
Received: (from hrs@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3THonIQ086714;
	Wed, 29 Apr 2009 17:50:49 GMT (envelope-from hrs@svn.freebsd.org)
Message-Id: <200904291750.n3THonIQ086714@svn.freebsd.org>
From: Hiroki Sato 
Date: Wed, 29 Apr 2009 17:50:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-releng@freebsd.org
X-SVN-Group: releng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r191669 -
	releng/7.2/release/doc/en_US.ISO8859-1/relnotes
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 29 Apr 2009 17:50:49 -0000

Author: hrs
Date: Wed Apr 29 17:50:48 2009
New Revision: 191669
URL: http://svn.freebsd.org/changeset/base/191669

Log:
  Various wording/grammar fixes.
  
  Suggested by:	keramida
  Approved by:	re (implicit)

Modified:
  releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml

Modified: releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml
==============================================================================
--- releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 16:02:52 2009	(r191668)
+++ releng/7.2/release/doc/en_US.ISO8859-1/relnotes/article.sgml	Wed Apr 29 17:50:48 2009	(r191669)
@@ -279,29 +279,31 @@
 	KTR_CALLOUT class to note when a callout
 	routine finishes executing.
 
-      Types of variables used to track amount of allocated
+      Types of variables used to track the amount of allocated
 	System V shared memory have been changed from
 	int to size_t.  This
-	makes it possible to use more than 2 GB shared memory segments
-	on 64-bit architectures.  Please note the new BUGS section in
-	&man.shmctl.2; and /usr/src/UPDATING for
-	limitations of this temporary solution.
+	makes it possible to use more than 2 GB of memory for shared
+	memory segments on 64-bit architectures.  Please note the new
+	BUGS section in &man.shmctl.2; and
+	/usr/src/UPDATING for limitations of this
+	temporary solution.
 
-      A &man.sysctl.3; leaf node has a flag to tag itself as
-	MPSAFE now.
+      The &man.sysctl.3; leaf nodes have a flag to tag
+	themselves as MPSAFE now.
 
       The &os; 32-bit system call translation layer now
 	supports installing 32-bit system calls for
 	VFS_AIO.
 
       The &os; virtual memory subsystem now
-	supports Superpages.  The Superpages is a feature that enables
-	each entry in the TLB (translation lookaside buffer) to map a
-	large physical memory region into a virtual address space in
-	modern CPUs.  This provides possible memory savings for
-	applications that share large amounts of memory between the
-	address spaces and performance improvements due to fewer TLB
-	misses.  This is disabled by default and can be enabled by
+	supports Superpages.  The
+	Superpages is a feature that
+	enables each entry in the TLB (translation lookaside buffer)
+	to map a large physical memory region into a virtual address
+	space in modern CPUs.  This provides possible memory savings
+	for applications that share large amounts of memory between
+	the address spaces and performance improvements due to fewer
+	TLB misses.  This is disabled by default and can be enabled by
 	setting a loader tunable
 	vm.pmap.pg_ps_enabled to
 	1.
@@ -330,7 +332,7 @@
 	Hardware Support
 
 	The &os; now supports Ultra SPARC III
-	  (Cheetah) family.
+	  (Cheetah) processor family.
 
 	The &man.acpi.4; subsystem now supports a &man.sysctl.8;
 	  variable debug.batt.batt_sleep_ms.  On
@@ -347,9 +349,10 @@
 
 	The &man.cpuctl.4; driver, which provides a special
 	  device /dev/cpuctl as an interface to
-	  the system CPU has been added.  The functionality includes
-	  to retrieve CPUID information, read/write machine specific
-	  registers (MSR), and perform CPU firmware updates.
+	  the system CPU has been added.  The &man.cpuctl.4;
+	  functionality includes the ability to retrieve CPUID
+	  information, read/write machine specific registers (MSR),
+	  and perform CPU firmware updates.
 
 	The &man.cpufreq.4; driver now supports an
 	  hw.est.msr_info loader tunable.  When
@@ -365,11 +368,11 @@
 	  added to force this behavior by setting it to
 	  non-zero.
 
-	The &man.atkbd.4; now disables the interrupt handler
-	  which is called from the keyboard callback function when
-	  polled mode is enabled.  This fixes duplicated/missing
-	  characters problem at mountroot on multi CPU systems while
-	  &man.kbdmux.4; is enabled.
+	The &man.atkbd.4; driver now disables the interrupt
+	  handler which is called from the keyboard callback function
+	  when polled mode is enabled.  This fixes the problem of
+	  duplicated/missing characters at the mountroot prompt on
+	  multi CPU systems while &man.kbdmux.4; is enabled.
 
 	In the &man.pci.4; subsystem INTx is now disabled when
 	  MSI/MSIX is enabled.  This change fixes interrupt storm
@@ -395,8 +398,8 @@
 	
 	  Multimedia Support
 
-	  The &man.agp.4; now supports Intel G4X series graphics
-	    chipsets.
+	  The &man.agp.4; driver now supports Intel G4X series
+	    graphics chipsets.
 
 	  The DRM, a kernel module named Direct Rendering
 	    Manager that gives direct hardware access to DRI clients,
@@ -404,28 +407,30 @@
 	    and IGP based chips, XGI V3XE/V5/V8, and Intel i915
 	    chipsets has been improved.
 
-	  A new loader tunable hw.drm.msi
-	    which controls if DRM uses MSI or not.  This is set to
-	    1 (enabled) by default.
+	  A new loader tunable hw.drm.msi has
+	    been added to control if DRM uses MSI or not.  This is set
+	    to 1 (enabled) by default.
 
 	  The snd_au88x0(4) driver for Aureal Vortex
 	    1/2/Advantage PCI has been removed because this was
 	    broken for a long time.
 
-	  The &man.snd.hda.4; driver has been updated.  Changes
-	    include: multiple codec per HDA bus, multiple functional
-	    groups per codec, multiple audio devices per functional
-	    group, digital (SPDIF/HDMI) audio input/output,
-	    suspend/resume, and part of multichannel audio.
+	  The &man.snd.hda.4; driver has been updated.  This
+	    changes include support for multiple codec per HDA bus,
+	    multiple functional groups per codec, multiple audio
+	    devices per functional group, digital (SPDIF/HDMI) audio
+	    input/output, suspend/resume, and part of multichannel
+	    audio.
 
 	  Note that due to added HDMI audio and logical audio
-	    devices support, updated driver often provides several PCM
-	    devices.  In some cases it can make system default audio
-	    device no longer corresponding to the users's habitual
-	    audio connectors.  In such cases the default device can be
-	    specified in audio application setup or defined globally
-	    via hw.snd.default_unit sysctl
-	    as described in the &man.sound.4; manual page.
+	    devices support, the updated driver often provides several
+	    PCM devices.  This means that in some cases the system
+	    default audio device no longer corresponds to the users's
+	    habitual audio connectors.  In such cases the default
+	    device can be specified in audio applications' setup or
+	    defined globally via hw.snd.default_unit
+	    sysctl, as described in the &man.sound.4; manual
+	    page.
 	
 
 	
@@ -451,8 +456,8 @@
 	  The ciphy(4) driver now supports Vitesse VSC8211
 	    PHY.
 
-	  The &man.cxgb.4; driver has been updated to the
-	    firmware revision 4.7 and now supports hardware MAC
+	  The &man.cxgb.4; driver has been updated to firmware
+	    revision 4.7 and now supports hardware MAC
 	    statistics.
 
 	  The &man.fxp.4; driver has been improved.  Changes include:
@@ -477,7 +482,7 @@
 	      WoL (Wake on LAN) support for 82550, 82551, 82558,
 		and 82559-based controllers has been added.  Note that
 		ICH based controllers are treated as 82559, and 82557,
-		earlier revision of 82558, and 82559ER have no WoL
+		earlier revisions of 82558, and 82559ER have no WoL
 		capability.
 	    
 
@@ -490,9 +495,9 @@
 	    
 	  
 
-	  A bug in &man.igb.4; driver which prevents a loader
-	    tunable hw.igb.ave_latency from working
-	    has been fixed.
+	  A bug in the &man.igb.4; driver, which prevents the
+	    loader tunable hw.igb.ave_latency from
+	    working, has been fixed.
 
 	  The &man.ixgbe.4; driver has been updated to
 	    version 1.7.4.
@@ -502,7 +507,7 @@
 
 	  The &man.msk.4; driver has been improved.  An issue
 	    which makes it hang up in a certain condition has been
-	    fixed.  A hardware MAC statistics support has been added
+	    fixed.  Hardware MAC statistics support has been added
 	    and users can get the information via sysctl variables
 	    named
 	    dev.msk.N.stats.
@@ -516,9 +521,10 @@
 
 	  The &man.re.4; driver has been improved.  It now
 	    detects the link status.  A new loader tunable
-	    hw.re.prefer_iomap to disable memory
-	    register mapping.  This tunable is 0
-	    for all controllers except RTL8169SC family.
+	    hw.re.prefer_iomap has been added, to
+	    disable memory register mapping.  This tunable is
+	    0 for all controllers except RTL8169SC
+	    family.
 
 	  The &man.rl.4; driver has been improved.  It now
 	    detects the link status and a bug which prevents it from
@@ -529,16 +535,16 @@
 	    been fixed.
 
 	  The &man.txp.4; driver now works on all supported
-	    architecture.  Also, &man.altq.4; support, WoL support,
-	    checksum offload when VLAN enabled, better link state
-	    change handling, a new sysctl variable
+	    architectures.  Support has been added for &man.altq.4;,
+	    WoL, checksum offload when VLAN enabled, and link state
+	    change handling has been improved, and new sysctl
+	    variables
 	    dev.txp.N.stats
-	    for MAC statistics have been added.  A new sysctl
-	    variable
+	    for MAC statistics have been added.  New sysctl variables
 	    dev.txp.N.process_limit
-	    to control how many received frames should be served in Rx
-	    handler (set to 64 by default and valid ranges are 16 to
-	    128 in unit of frames) has been added.  The firmware has
+	    has been added, to control how many received frames should
+	    be served in Rx handler (set to 64 by default and valid
+	    ranges are 16 to 128 in unit of frames).  The firmware has
 	    been updated to the latest version.
 	
       
@@ -575,23 +581,24 @@
 	  been implemented in the same way it has been implemented for
 	  IPv4.
 
-	The &man.ng.netflow.4; Netgraph node now supports
-	  ability to generate egress netflow instead or in addition to
-	  ingress.  An NGM_NETFLOW_SETCONFIG control
-	  message has been added to control the new functionality.
+	The &man.ng.netflow.4; Netgraph node now includes
+	 support for generating egress netflow instead or in addition
+	 to ingress.  An NGM_NETFLOW_SETCONFIG
+	 control message has been added to control the new
+	 functionality.
 
-	The &man.tap.4;, Ethernet tunnel software network
-	  interface now supports TAPGIFNAME
+	The &man.tap.4; Ethernet tunnel software network
+	  interface now supports a new TAPGIFNAME
 	  character device ioctl.  This is a convenient shortcut to
-	  obtain network interface name using file descriptor for
-	  character device.
+	  obtain the network interface name using a file descriptor to
+	  a character device.
 
 	The &man.tap.4; now supports
 	  SIOCSIFMTU ioctl to set a higher MTU than
-	  1500 (ETHERMTU).  This allows &man.tap.4; device to be added
-	  to a bridge, which requires all interface members to have
-	  the same MTU, with an interface configured for jumbo
-	  frames.
+	  1500 (ETHERMTU).  This allows &man.tap.4; devices to be
+	  added to the same bridge (which requires all interface
+	  members to have the same MTU) with an interface configured
+	  for jumbo frames.
 
 	The domains list for handling the list of supported
 	  domains in the &man.unix.4; (UNIX domain protocol family)
@@ -606,11 +613,11 @@
 	The &man.ata.4; driver now recognizes nForce MCP67 and
 	  MCP73 SATA controllers as AHCI.
 
-	The &man.ataraid.4; driver now has an initial support
+	The &man.ataraid.4; driver now includes preliminary support
 	  for DDF metadata found on Adaptec HostRAID controllers.
 	  Note that spares and rebuilds are not supported yet.
 
-	The &man.cam.4; SCSI subsystem now supports a sysctl
+	The &man.cam.4; SCSI subsystem now supports a new sysctl
 	  variable kern.cam.cd.retry_count.  This
 	  controls the number of retries for the CD media.  When
 	  trying to read scratched or damaged CDs and DVDs, the
@@ -618,18 +625,18 @@
 	  ddrescue do much better if you
 	  turn off the retries entirely since their algorithms do it
 	  by themselves.  This value is set to 4
-	  (for a total 5 attempts) by default.  Setting to 0 turns off
-	  all retry attempts.
+	  (for a total of 5 attempts) by default.  Setting it to
+	  0 turns off all retry attempts.
 
 	A bug in the &man.ciss.4; driver which caused low
-	  max device openings count that has led
- 	  to poor performance has been fixed.
+	  max device openings count and led to poor
+	  performance has been fixed.
 
 	The &man.glabel.8; GEOM class now supports a new
 	  UFS-based label called ufsid that can be
 	  used to reference UFS-carrying devices by the unique file
 	  system ID.  This file system ID is automatically generated
-	  and detected when &man.glabel.8; GEOM class is enabled.  An
+	  and detected when the &man.glabel.8; GEOM class is enabled.  An
 	  example of this new label is:
 	  /dev/ufsid/48e69c8b5c8e1b43.  The
 	  benefit of using GEOM labels in general is to avoid problems
@@ -638,15 +645,15 @@
 
 	The &man.gjournal.8; GEOM class now supports the root
 	  file system.  Previously, an unclean shutdown would make it
-	  impossible to mount root file system at boot.
+	  impossible to mount the root file system at boot.
 
 	The &man.gpart.8; utility has been updated.  The APM
 	  scheme now supports Tivo Series 1 partitions (read only), a
 	  new EBR scheme to support Extended Boot Records has been
-	  added, the BSD scheme now support bootcode, and bugs in PC98
-	  and VTOC8 scheme have been fixed.
+	  added, the BSD scheme now support bootcode, and bugs in the
+	  PC98 and VTOC8 schemes have been fixed.
 
-	An issue in the &man.gvinum.8; with access permissions
+	An issue in &man.gvinum.8; with access permissions
 	  to underlying disks used by a gvinum plex has been fixed.
 	  If the plex is a raid5 plex and is being written to, parity data might
 	  have to be read from the underlying disks, requiring them to be opened for
@@ -655,7 +662,7 @@
 	The &man.hptmv.4; driver has been updated to version
 	  1.16 from the vendor.
 
-	The &man.mmc.4; and &man.mmcsd.4; driver now support MMC
+	The &man.mmc.4; and &man.mmcsd.4; drivers now support MMC
 	  and SDHC cards, high speed timing, wide bus, and multiblock
 	  transfers.
 
@@ -663,8 +670,8 @@
 	  GENERIC kernel.
 
 	The &man.sdhci.4; driver has been added.  This supports
-	  PCI devices with class 8 and subclass 5 according to SD Host
-	  Controller Specification.
+	  PCI devices with class 8 and subclass 5 according to the SD
+	  Host Controller Specification.
 
 	The &man.sdhci.4; driver now supports kernel dumping and
 	  a sysctl variable hw.sdhci.debug for debug
@@ -673,24 +680,24 @@
 	The &man.twa.4; driver now supports 64-bit DMA.
 
 	The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver
-	  are now included as a kernel module.
+	  are now included as kernel modules.
       
 
       
 	File Systems
 
 	The semantics of &man.acl.3; extended access control
-	  list has been changed as follows:
+	  lists has been changed as follows:
 
 	
 	  
 	    The inode modification time (mtime) is not updated
-	      when extended attribute are added, modified, or removed.
+	      when extended attributes are added, modified, or removed.
 	  
 
 	  
 	    The inode access time (atime) is not updated
-	      when extended attribute are queried.
+	      when extended attributes are queried.
 	  
 	
 
@@ -706,7 +713,7 @@
 	The &os; UDF file system now supports a fifo.
 
 	The shared vnode locking for pathname lookups in
-	  &man.VFS.9; subsystem has been improved.  This is disabled
+	  the &man.VFS.9; subsystem has been improved.  This is disabled
 	  by default.  Setting a sysctl variable
 	  vfs.lookup_shared to 1
 	  enables it for better performance.  Note that the
@@ -718,7 +725,7 @@
     
       Userland Changes
 
-      A bug in the &man.atacontrol.8; utility which prevents it
+      A bug in the &man.atacontrol.8; utility, which prevents it
 	from working when /usr is not mounted or
 	invoked from /rescue, has been
 	fixed.
@@ -742,8 +749,8 @@
 	in the same way that &man.basename.1; does.
 
       The &man.du.1; utility now supports an 
-	flag.  When specified, the &man.du.1; counts a file with
-	multiple hard links as multiple different files.
+	flag.  When specified, the &man.du.1; utility counts a file
+	with multiple hard links as multiple different files.
 
       The &man.du.1; utility now supports an  flag
 	to display the apparent size instead of the disk usage.  This can be
@@ -751,11 +758,12 @@
 
       The &man.du.1; utility now supports a  option to
-	calculate block counts in blocksize byte blocks.  This is
-	different from the  or 
-	options or setting BLOCKSIZE and gives an
-	estimate of how much space the examined file hierarchy would
-	require on a file system with the given
+	calculate block counts in blocks of
+	blocksize bytes.  This is different
+	from the  or  options or
+	setting BLOCKSIZE and gives an estimate of
+	how much space the examined file hierarchy would require on a
+	file system with the given
 	blocksize.  Unless in
 	 mode, blocksize
 	is rounded up to the next multiple of 512.
@@ -774,12 +782,12 @@
 	both compact and more script-friendly representation.
 
       The &man.fetch.1; utility now supports an
-	 flag which supports If-Modified-Since HTTP
-	1.1 request.  If specified it will cause the file to be
+	 flag which supports the If-Modified-Since
+	HTTP 1.1 request.  If specified it will cause the file to be
 	downloaded only if it is more recent than the mtime of the
-	file.  Also, libfetch now accepts
-	the mtime in the url structure and a flag to indicate when
-	this behavior is desired.
+	local file.  Also, libfetch now
+	accepts the mtime in the url structure and a flag to indicate
+	when this behavior is desired.
 
       The &man.fsck.8; utility now supports a
 	 flag for check clean
@@ -793,7 +801,7 @@
 	&man.fsck.8; to survive with file systems that has very
 	serious data damage.  This is a useful last resort when on
 	disk data damage is very serious and causes &man.fsck.8; to
-	crash otherwise.
+	crash.
 
       The &man.getaddrinfo.3; function now supports SCTP.
 
@@ -807,9 +815,9 @@
 	issue a warning message.
 
       The &man.make.1; utility now supports a
-	 flag to print the input graph only, not
-	executing any commands.  The output is the same as .  When combined with  flag to print the input graph only,
+	without executing any commands.  The output is the same as
+	.  When combined with , only the built-in rules of make are
 	displayed.
 
@@ -821,22 +829,22 @@
 
       The &man.make.1; utility now supports the
 	.MAKE.JOB.PREFIX variable.  If
-	 and  are specified, it
-	outputs for each target is prefixed with a token ---
+	 and  are specified, its
+	output for each target is prefixed with a token ---
 	  target --- the first part
 	of which can be controlled via the variable.
 
       The &man.make.1; utility now supports
 	.MAKE.PID and .MAKE.PPID
 	variable.  These are set to process ID of the &man.make.1;
-	process and one of its parent process respectively.
+	process and its parent process respectively.
 
       The &man.makefs.8; utility to create a file system image
 	from a directory tree has been added.
 
       The &man.mergemaster.8; utility now supports an
 	 option to automatically install files that
-	differ only in version control ID strings.
+	differ only in their version control ID strings.
 
       The &man.mount.8; utility now supports an 
@@ -846,7 +854,7 @@
 	FUSE, for example.
 
       The &man.netstat.1; utility now reports &man.unix.4;
-	sockets listen queue statistics when an 
+	sockets' listen queue statistics when an 
 	flag is specified.
 
       A bug in the &man.netstat.1; utility has been fixed.  It
@@ -867,13 +875,14 @@
       The &man.powerd.8; program has been improved.  Changes
 	include reasonable CPU load estimation on SMP systems and a
 	new mode named as hiadaptive for AC-powered
-	systems which rises frequency twice faster, drops it 4 times
-	slower, prefers twice lower CPU load and has additional delay
-	before leaving the highest frequency after the period of
-	maximum load.
+	systems.  The hiadaptive mode raises the
+	CPU frequency twice as fast as adaptive, it
+	drops the CPU frequency 4 times slower, prefers twice lower
+	CPU load and has an additional delay before leaving the
+	highest frequency after the period of maximum load.
 
       The &man.stat.1; utility now displays an octal
-	representation of suid, sgid and sticky bits when an
+	representation of suid, sgid and sticky bits when the
 	 flag is specified.
 
       The &man.strndup.3; function has been added.
@@ -882,9 +891,9 @@
 	flag to output the number of characters in the longest input
 	line.
 
-      A bug in the &man.rpc.yppasswdd.8; program which leaves a
-	zombie process when a password or default shell is changed has
-	been fixed.
+      A bug in the &man.rpc.yppasswdd.8; program, which causes
+	it to leave a zombie process when a password or default shell
+	is changed, has been fixed.
 
 
 
 
 %release;
-
+
 ]>
 
 
@@ -37,14 +37,15 @@ ·¢Ðа濱Îó - The &os; Project + &os; ÏîÄ¿×é $FreeBSD$ 2008 - The &os; Documentation Project + 2009 + &os; ÎĵµÏîÄ¿×é @@ -122,11 +123,9 @@ °²È«¹«¸æ -ÔÝÎÞ°²È«¹«¸æ¡£ -]]> -ÏÂÁа²È«¹«¸æÊÊÓÃÓÚ &os; &release.bugfix;¡£ ÈçÓûÁ˽â½øÒ»²½µÄÐÅÏ¢£¬ Çë²ÎÔÄ ÌṩµÄ¾ßÌ尲ȫ¹«¸æ¡£ @@ -149,82 +148,24 @@ SA-08:05.openssh 2008 Äê 4 Ô 17 ÈÕ - OpenSSH X11-ת·¢ ÌØȨÌáÉýÎÊÌâ - - - SA-08:06.bind - 2008 Äê 7 Ô 13 ÈÕ - DNS »º´æͶ¶¾ÎÊÌâ + OpenSSH X11-ת·¢ÌØȨÌáÉý -]]> +--> δ½â¾öµÄÎÊÌâ -ÔÝÎÞδ½â¾öµÄÎÊÌâ¡£ -]]> - -[20080229] &man.tcpdump.1; ²»ÄÜÕýÈ·µØÏÔʾ 802.11 Ö¡µÄ - TX/RX ËÙÂÊ¡£ ´ËÎÊÌâÒѾ­ÔÚ - HEAD ºÍ RELENG_7 ·ÖÖ§ÖÐÐÞ¸´¡£ - - [20080229] ÔÚ Linux Ä£ÄâϵͳÖз¢ÏÖÁËÒ»¸ö¿ÉÄܵ¼ÖÂijЩʹÓà - &man.mmap.2; µÄ Linux ³ÌÐò·¢Éú·ÃÎÊÔ½½ç (segmentation fault) - µÄ bug¡£ ´ËÎÊÌâÒѾ­ÔÚ - HEAD ºÍ RELENG_7 ·ÖÖ§ÖÐÐÞ¸´¡£ - - [20080229] ʹÓà &man.re.4; Íø¿¨Çý¶¯Ê±£¬ - ÓÐÓû§¹Û²ìµ½ÁË°üÊý¾ÝË𻵺Ͳ»Îȶ¨µÈÏÖÏó¡£ Ò»Ð©Óû§±¨¸æʹÓÃÕâÒ»Çý¶¯µÄ½Ïа汾 - (ÔÚ HEAD ÉÏ) Äܹ»½â¾öËûÃǵÄÎÊÌ⣬ »òÖÁÉÙÓÐËù¸ÄÉÆ¡£ - - [20080229£¬ 20080817 ¸üÐÂ] ÓÐÓû§·´Ó³£¬ &os; ¶Ô·¢³ö TCP Ñ¡ÏʽËù½øÐеı䶯£¬ - »áµ¼ÖÂÁ¬½Ó³öÏÖÎÊÌâ¡£ ÕâÒ»ÎÊÌâµÄÐÞÕýÄ¿Ç°ÒÑ»ãÈë - HEAD ºÍ RELENG_7 ÒÔ¼° RELENG_7_0 ·ÖÖ§¡£ ¸ü¶àÏêÇéÇë²ÎÔÄ¿±Îó֪ͨ - FreeBSD-EN-08:02.tcp¡£ - - [20080307] &os; ÖÐµÄ SCTP ʵÏÖÄ¿Ç°ÒÀÀµÓÚ½« INET6 - Ö§³ÖÁª±à½øÄÚºËÖС£ ÎÒÃǼƻ®ÔÚδÀ´µÄ°æ±¾Öн«ÕâÒ»ÐèÇóÈ¥µô¡£ - - [20080307] ´Ó &os; - 6.X µ½ &os; &release.bugfix; µÄÉý¼¶£¬ - »áÔÚ installkernel ÕâÒ»²½Ê±£¬ - ²úÉúһЩÀ´×Ô &man.kldxref.8; µÄ¾¯¸æÐÅÏ¢¡£ ÕâЩ¾¯¸æÊÇÎÞº¦µÄ£¬ - ¿ÉÒÔ°²È«µØºöÂÔËüÃÇ¡£installkernel step. These warnings are - harmless and can be ignored. - - [20080307] IPsec ¹¦ÄÜËùÐèÒªµÄ &man.crypto.4; Çý¶¯³ÌÐòÔÚ - &os;/&arch.powerpc; ƽ̨ÉÏ´æÔÚÑÏÖØÎÊÌâ - (±àÒëÅäÖÃÖÐʹÓà device crypto »áµ¼ÖÂÄں˲»¿ÉÓÃ)¡£ - -]]> - + ÐÂÎż°ÐÞÕý -ÎÞÐÂÎÅ¡£ -]]> - -[20080229] &os; &release.bugfix; ·¢ÐÐ˵Ã÷Îĵµ - (·¢Ðа汾˵Ã÷¡¢ Ó²¼þ¼æÈÝ˵Ã÷µÈ) ÖÐÌᵽʹÓà &os; 7-STABLE - µÄÓû§Ó¦¶©ÔÄ freebsd-current ÓʼþÁÐ±í£¬ - ÕâЩÎÄ×Ö²»Ó¦³öÏÖ¡£ - - [20080229] ÔÚ·¢Ðаæ˵Ã÷ÖÐµÄ KDE °æ±¾ºÅÊDz»ÕýÈ·µÄ£¬ - ÕýÈ·µÄ°æ±¾ºÅÊÇ 3.5.8¡£ - -]]> + -
Modified: releng/7.2/release/doc/zh_CN.GB2312/hardware/article.sgml ============================================================================== --- releng/7.2/release/doc/zh_CN.GB2312/hardware/article.sgml Thu Apr 30 02:26:03 2009 (r191679) +++ releng/7.2/release/doc/zh_CN.GB2312/hardware/article.sgml Thu Apr 30 06:17:56 2009 (r191680) @@ -16,7 +16,7 @@ &os; &release.current; ¼æÈÝÓ²¼þ˵Ã÷ - The &os; Documentation Project + &os; ÎĵµÏîÄ¿×é $FreeBSD$ @@ -30,7 +30,8 @@ 2006 2007 2008 - The &os; Documentation Project + 2009 + &os; ÎĵµÏîÄ¿×é @@ -49,7 +50,7 @@ ½éÉÜ Õâ·ÝÎĵµÊÇ - &os; &release.current;. + &os; &release.current; µÄÓ²¼þ¼æÈÝÐÔ˵Ã÷¡£ ËüÁгöÁËÒÑÖªÄܹ»Îª &os; ËùÖ§³ÖµÄÓ²¼þ£¬ ÒÔ¼°ËüËùÖ§³ÖµÄ¸÷ÀàÓ²¼þ (´æ´¢¿ØÖÆÆ÷¡¢ ÍøÂç½Ó¿ÚµÈµÈ)£¬ ÒÔ¼°ÕâЩÉ豸ÀàÐÍÖÐÒÑÖª¿ÉÓõÄÓ²¼þÐͺš£ @@ -72,7 +73,7 @@ °üÀ¨°²×°ºÍ¿ª·¢»·¾³¡£ Çë×¢ÒâÕâ¸ö¼Ü¹¹ÓÐÁ½¸öÃû×Ö£¬ - AMD64 (AMD) ºÍ Intel EM64T (À©Õ¹ÄÚ´æ 64-λ ¼¼Êõ)¡£ + AMD64 (AMD) ºÍ Intel EM64T (À©Õ¹ 64-λ ÄÚ´æ¼¼Êõ)¡£ Á½Öּܹ¹µÄ 64-λ ģʽ¼¸ºõÊÇÍêÈ«Ï໥¼æÈݵģ¬ ¶ø &os;/&arch.amd64; ¶ÔËüÃǶ¼ÄÜÌṩ֧³Ö¡£ @@ -80,27 +81,44 @@ - &amd.athlon;64 (Clawhammer). + &amd.athlon;64 (Clawhammer)¡£ - &amd.opteron; (Sledgehammer). + &amd.opteron; (Sledgehammer)¡£ - &intel; 64-λ &xeon; (Nocona)¡£ - ÕâÀà´¦ÀíÆ÷²ÉÓà 90nm ÖƳ̹¤ÒÕÖÆÔ죬 ÅäºÏ &intel; E7520/E7525/E7320 оƬ×飬 - Äܹ»ÔËÐÐÓÚ 2.80 µ½ 3.60 GHz (FSB 800MHz)¡£ + ³ýÁË Sossaman Ö®ÍâµÄËùÓжàºË &intel; &xeon; ´¦ÀíÆ÷¾ù°üº¬ EM64T Ö§³Ö¡£ - Ö§³Ö &intel; EM64T µÄ &intel; &pentium; 4 ´¦ÀíÆ÷ (Prescott)¡£ - ÕâÀà´¦ÀíÆ÷²ÉÓà 90nm ÖƳ̹¤ÒÕÖÆÔ죬 ²ÉÓà FC-LGA775 ·â×°£¬ ÅäºÏ &intel; - 925X Express оƬ×飬 Äܹ»ÔËÐÐÓÚ 3.20F/3.40F/3.60F GHz¡£ - ¶ÔÓ¦µÄ S-Spec ±àºÅ°üÀ¨ SL7L9¡¢ SL7L8¡¢ SL7LA¡¢ SL7NZ¡¢ SL7PZ£¬ - ÒÔ¼° SL7PX¡£ ÐèҪעÒâµÄÊÇ£¬ ±àºÅΪ 5xx µÄ´¦ÀíÆ÷²¢²»Ö§³Ö - EM64T¡£ + µ¥ºË &intel; &xeon; + ´¦ÀíÆ÷ Nocona¡¢ Irwindale¡¢ + Potomac ºÍ Cranford °üº¬ÁË + EM64T Ö§³Ö¡£ + + + ËùÓÐ &intel; Core 2 (²»ÊÇ Core Duo) ºÍ¸üеĴ¦ÀíÆ÷ + + + + ËùÓÐ &intel; &pentium; D ´¦ÀíÆ÷ + + + + ²ÉÓà Cedar Mill ºËÐÄµÄ &intel; &pentium; 4 + ºÍ Celeron D °üº¬ÁË EM64T Ö§³Ö¡£ + + + + ²¿·Ö²ÉÓà Prescott ºËÐÄµÄ &intel; &pentium; 4 + ºÍ Celeron D °üº¬ÁË EM64T Ö§³Ö¡£ Çë²ÎÔÄ Intel + Processor Spec Finder ÒÔ»ñµÃ¹ØÓÚ Intel ´¦ÀíÆ÷¶ÔÓÚ + EM64T Ö§³ÖµÄÈ·Çйٷ½×ÊÁÏ¡£ + + &intel; EM64T ÊÇ IA-32 (x86) µÄÒ»ÖÖÀ©Õ¹°æ±¾£¬ @@ -108,7 +126,7 @@ һЩÀ´×Ô &intel; µÄÔçÆÚÎĵµ½« &intel; EM64T ³Æ×÷ 64-λ À©Õ¹¼¼Êõ »ò IA-32e¡£ - ĿǰΪֹ²âÊÔ¹ýµÄ×î´óÄÚ´æÅäÖÃΪ 8GB¡£ ´ËÓ²¼þƽ̨É쵀 SMP + ĿǰΪֹ²âÊÔ¹ýµÄ×î´óÄÚ´æÅäÖÃΪ 32GB¡£ ´ËÓ²¼þƽ̨É쵀 SMP Ö§³ÖÒѾ­Í걸£¬ ²¢ÇÒÏ൱Îȶ¨ÁË¡£ ÔÚÐí¶à·½Ã棬 ÌرðÊÇÔÚÇý¶¯³ÌÐòÖ§³ÖÉÏ£¬ &os;/&arch.amd64; Óë &os;/&arch.i386; @@ -274,13 +292,19 @@ ÔÚËùÓаüº¬ 1 ¸öÒÔÉÏ´¦ÀíÆ÷µÄϵͳÉÏ£¬ ¾ùÖ§³Ö SMP¡£ - Ò»°ã¶øÑÔ£¬ &os;/&arch.sparc64; ϵͳ±ØÐëʹÓô®¿Ú¿ØÖÆ̨¡£ ¾¡¹Ü¿ÉÒÔͨ¹ýʹÓà - OpenFirmware ¿ØÖÆ̨À´Òýµ¼»ò°²×°ÏµÍ³£¬ µ«¿ØÖÆ̨É豸ÊDz»¿ÉÓõġ£ + µ±Ê¹Óà GENERIC ÄÚºËʱ£¬ + ûÓÐÅ䱸ÓÉ &man.creator.4; (&sun; Creator¡¢ &sun; Creator3D + ÒÔ¼° &sun; Elite3D) »ò &man.machfb.4; (&sun; PGX ºÍ &sun; PGX64 + ÒÔ¼°°åÔØ ATI Mach64 оƬµÄ¡¢ Èç + &sun.blade; 100¡¢ &sun.blade; 150¡¢ &sun.ultra; 5 ºÍ &sun.ultra; 10) + ËùÖ§³ÖµÄÖ¡»º´æϵͳÉÏ£¬ + &os;/&arch.sparc64; »¹ÐèҪʹÓô®¿Ú¿ØÖÆ̨¡£ Èç¹ûÄúµÄϵͳûÓÐÔÚ´Ë´¦Áгö£¬ Ëü¿ÉÄÜÊÇ»¹Ã»ÓÐÅäºÏ &os; &release.current; ½øÐйý²âÊÔ¡£ ÎÒÃǽ¨ÒéÄúÔÚÕâЩ»úÆ÷ÉϽøÐвâÊÔ£¬ ²¢ÔÚ &a.sparc; ·¢²¼ÄúµÄ²âÊÔ½á¹û£¬ °üÀ¨ÄÄЩÉ豸¹¤×÷Õý³£»ò²»Õý³£¡£ + &os; ÍêÈ«Ö§³ÖÏÂÁÐϵͳ£º @@ -290,6 +314,9 @@ &sun.blade; 150 + + &sun.enterprise; 100 + &sun.enterprise; 220R @@ -309,10 +336,10 @@ &sun.fire; V120 - &netra; t1 105 + &netra; t1 105 - &netra; T1 AC200/DC200 + &netra; T1 AC200/DC200 &netra; t 1100 @@ -332,6 +359,12 @@ &netra; X1 + + &sparcengine; Ultra AX1105 + + + &sparcengine; Ultra AXe + &sparcengine; Ultra AXi @@ -362,10 +395,15 @@ &sun.ultra; 80 + + &sun.ultra; 450 + - &os; ¶ÔÏÂÁÐϵͳÌṩÁ˲¿·ÖÖ§³Ö¡£ ¾ßÌå¶øÑÔ£¬ - ÔÚ sbus ϵͳÖеİåÔØ SCSI ¿ØÖÆÆ÷Ä¿Ç°²¢²»Ö§³Ö¡£ + &os; ¶ÔÏÂÁÐϵͳÌṩÁ˲¿·ÖÖ§³Ö¡£ ¾ßÌå¶øÑÔ£¬ + »ùÓÚ SBus µÄ¹âÏËͨµÀ¿ØÖÆÆ÷²»±»Ö§³Ö¡£ ²»¹ý£¬ + ͸¹ý &man.esp.4 Çý¶¯ËùÖ§³ÖµÄ SCSI ¿ØÖÆÆ÷ (&sun; ESP SCSI¡¢ &sun; FAS Fast-SCSI + ÒÔ¼° &sun; FAS366 Fast-Wide SCSI ¿ØÖÆÆ÷) ¿ÉÒÔÕý³£Ê¹ÓÃËüÃÇ¡£ @@ -376,15 +414,48 @@ - ÏÂÁÐϵͳ²»±» &os; Ö§³Ö¡£ Õâ¿ÉÄÜÊÇÓÉÓÚȱÉÙ¶Ô´¦ÀíÆ÷µÄÖ§³Ö (&ultrasparc; III)¡¢ - ÓÉÓÚϵͳÉè¼ÆÉÏ´æÔÚµÄijЩÌØÐÔʹµÃ &os; ²»Îȶ¨£¬ »òȱÉÙʹ &os; - ÔÚÆäÉÏÄܹ»Ê¹ÓõĻù±¾°åÔØÉ豸֧³Ö¡£ + ´Ó 7.2-RELEASE Æ𣬠»ùÓÚ + &ultrasparc; III ºÍ¸ü¸ß´¦ÀíÆ÷µÄϵͳҲÄܱ» &os; Ö§³ÖÁË£¬ + ÒÑÖª¿ÉÓõÄϵͳ°üÀ¨£º - - ËùÓÐʹÓà &ultrasparc; III ´¦ÀíÆ÷µÄ¼ÆËã»ú¡£ - + + &sun.blade; 1000 + + + &sun.blade; 1500 + + + &sun.blade; 2000 + + + &sun.fire; 280R + + + &sun.fire; V210 + + + &sun.fire; V440 (³ýÁË°åÔØÍø¿¨Ö®Íâ) + + + &sun.fire; V880 + + + &netra; 20/&netra; T4 + + + ÏÂÁÐ &ultrasparc; IIIi ϵͳδ½øÐйý²âÊÔ£¬ µ«ÏàÐÅ &os; + Ö§³ÖÕâЩϵͳ£º + + + + &sun.fire; V125 + + + &sun.fire; V240 + + @@ -392,7 +463,7 @@ - + ]>
@@ -263,15 +263,17 @@ &os; 32-λ ϵͳµ÷Ó÷­Òë²ãÐÂÔöÁËΪ VFS_AIO °²×° 32-λ ϵͳµ÷ÓõÄÖ§³Ö¡£ - &os; ÐéÄâÄÚ´æ×ÓϵͳÐÂÔöÁ˶ÔÓÚ - Superpages µÄÖ§³Ö¡£ - Superpages ÊÇÒ»ÏîÖ¼ÔÚÏÖ´ú´¦ÀíÆ÷ÉÏÁî + &os; ÐéÄâÄÚ´æ×ÓϵͳÐÂÔöÁËÕë¶ÔÓ¦ÓóÌÐòµÄ͸Ã÷ + superpages Ö§³Ö£» + Ó¦ÓóÌÐòµÄÄÚ´æÒ³»á¸ù¾ÝʹÓÃÇé¿ö¶¯Ì¬µØÉý¼¶Îª superpage£¬ + »ò·´Ö®½µ¼¶ÎªÆÕͨÄÚ´æÒ³£¬ ¶øÎÞÐë¶Ô³ÌÐò´úÂë½øÐÐÈκÎÐ޸ġ£ + ÕâÒ»±ä¶¯ÔÚ·¢»ÓÏÖ´ú´¦ÀíÆ÷¶Ô´óÄÚ´æÒ³Ö§³ÖµÄÓÅÊÆ£¬ + °üÀ¨Ìá¸ßÐéÄâÄÚ´æϵͳµÄ¿Õ¼äЧÂÊ£¬ ÒÔ¼°½µµÍ TLB (translation lookaside buffer£¬ ¿ìËÙÒ³±íת»»»º³å) - Äܹ»½«´ó¿éÎïÀíÄÚ´æÇøÓòÓ³Éäµ½ÐéÄâµØÖ·¿Õ¼äÖеļ¼Êõ¡£ - Õâ¿ÉÒÔ°ïÖúʹÓôóÁ¿¹²ÏíÄÚ´æµÄÓ¦ÓýÚÊ¡Äڴ濪Ïú£¬ - ²¢ÇÒÓÉÓÚ¼õÉÙÁË TLB »º³åδÃüÖÐÏÖÏó´Ó¶ø¸ÄÉÆÐÔÄÜ¡£ - ĬÈÏÇé¿öÏÂÕâÒ»ÌØÐÔ²¢²»¿ªÆô£¬ Äú¿ÉÒÔͨ¹ý½«Òýµ¼¼ÓÔØÆ÷±äÁ¿ - vm.pmap.pg_ps_enabled ÉèΪ + δÃüÖЬFÏó¶ø¸ÄÉÆÐÔÄܵÄͬʱ£¬ + ÓÖ±ÜÃâÁËÐèÒªÐÞ¸ÄÓ¦ÓóÌÐòÒÔ¼°½µµÍÐéÄâÄÚ´æÁé»îÐÔµÄȱµã¡£ + ÕâÒ»ÌØÐÔĬÈϲ¢²»¿ªÆô£¬ Äú¿ÉÒÔͨ¹ý½«Òýµ¼¼ÓÔØÆ÷±äÁ¿ + vm.pmap.pg_ps_enabled ÉèΪ 1 À´ÆôÓÃËü¡£ @@ -318,7 +320,7 @@ ÐÅÏ¢¡¢ ¶Áд»úÆ÷רÓüĴæÆ÷ (machine specific registers, MSR)£¬ ÒÔ¼°¸üРCPU ¹Ì¼þµÈ¡£ - &man.cpufreq.4; Çý¶¯ÐÂÔöÁ˼ÓÔØÆ÷±äÁ¿ + &man.cpufreq.4; Çý¶¯ÐÂÔöÁËÒýµ¼¼ÓÔØÆ÷±äÁ¿ hw.est.msr_info¡£ µ±´Ë±äÁ¿ÉèΪ 1 ʱ£¬ Çý¶¯»á³¢ÊÔ´´½¨Ö»°üº¬×î¸ßºÍ×îµÍʱÖÓƵÂʵļòµ¥ÁÐ±í£¬ From owner-svn-src-all@FreeBSD.ORG Thu Apr 30 21:41:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 996FD106566B; Thu, 30 Apr 2009 21:41:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 6BA1A8FC14; Thu, 30 Apr 2009 21:41:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 2044E46B5C; Thu, 30 Apr 2009 17:41:24 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 0E8798A024; Thu, 30 Apr 2009 17:41:23 -0400 (EDT) From: John Baldwin To: Bruce M Simpson Date: Thu, 30 Apr 2009 10:28:22 -0400 User-Agent: KMail/1.9.7 References: <200904290954.n3T9sXK6075498@svn.freebsd.org> In-Reply-To: <200904290954.n3T9sXK6075498@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200904301028.22484.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Thu, 30 Apr 2009 17:41:23 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-0.6 required=4.2 tests=AWL,BAYES_00, DATE_IN_PAST_06_12,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191653 - head/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2009 21:41:25 -0000 On Wednesday 29 April 2009 5:54:33 am Bruce M Simpson wrote: > Author: bms > Date: Wed Apr 29 09:54:33 2009 > New Revision: 191653 > URL: http://svn.freebsd.org/changeset/base/191653 > > Log: > Grab KTR_SPARE1 and KTR_SPARE5 for KTR_INET and KTR_INET6 > respectively, as placeholder for future use of CTR() by > the networking code (MLDv2 will be going in shortly). > Mark KTR_SPARE* as being used in fact by cxgb (picked up > on a 'make universe' run). cxgb should conditionally use KTR_DRIVER instead of grabbing a spare mask. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Thu Apr 30 22:10:05 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D0511065689; Thu, 30 Apr 2009 22:10:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20F888FC1E; Thu, 30 Apr 2009 22:10:05 +0000 (UTC) (envelope-from jkim@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 n3UMA54X024214; Thu, 30 Apr 2009 22:10:05 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3UMA4Zq024212; Thu, 30 Apr 2009 22:10:04 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200904302210.n3UMA4Zq024212@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 30 Apr 2009 22:10:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191708 - in head/sys: amd64/amd64 i386/i386 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2009 22:10:05 -0000 Author: jkim Date: Thu Apr 30 22:10:04 2009 New Revision: 191708 URL: http://svn.freebsd.org/changeset/base/191708 Log: - Fix divide-by-zero panic when SMP kernel is used on UP system[1]. - Avoid possible divide-by-zero panic on SMP system when the CPUID is disabled, unsupported, or buggy. Submitted by: pluknet (pluknet at gmail dot com)[1] Modified: head/sys/amd64/amd64/mp_machdep.c head/sys/i386/i386/mp_machdep.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Thu Apr 30 21:48:31 2009 (r191707) +++ head/sys/amd64/amd64/mp_machdep.c Thu Apr 30 22:10:04 2009 (r191708) @@ -292,6 +292,10 @@ topo_probe_0x4(void) 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) @@ -299,9 +303,10 @@ topo_probe(void) else if (cpu_high) topo_probe_0x4(); if (cpu_cores == 0) - cpu_cores = mp_ncpus; + cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1; if (cpu_logical == 0) cpu_logical = 1; + cpu_topo_probed = 1; } struct cpu_group * @@ -313,6 +318,7 @@ cpu_topo(void) * 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) Modified: head/sys/i386/i386/mp_machdep.c ============================================================================== --- head/sys/i386/i386/mp_machdep.c Thu Apr 30 21:48:31 2009 (r191707) +++ head/sys/i386/i386/mp_machdep.c Thu Apr 30 22:10:04 2009 (r191708) @@ -345,6 +345,10 @@ topo_probe_0x4(void) 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) @@ -352,9 +356,10 @@ topo_probe(void) else if (cpu_high) topo_probe_0x4(); if (cpu_cores == 0) - cpu_cores = mp_ncpus; + cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1; if (cpu_logical == 0) cpu_logical = 1; + cpu_topo_probed = 1; } struct cpu_group * @@ -366,6 +371,7 @@ cpu_topo(void) * 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) From owner-svn-src-all@FreeBSD.ORG Thu Apr 30 22:30:02 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E9E71065674; Thu, 30 Apr 2009 22:30:02 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2D06A8FC08; Thu, 30 Apr 2009 22:30:02 +0000 (UTC) (envelope-from thompsa@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 n3UMU2SQ024657; Thu, 30 Apr 2009 22:30:02 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3UMU2oY024656; Thu, 30 Apr 2009 22:30:02 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200904302230.n3UMU2oY024656@svn.freebsd.org> From: Andrew Thompson Date: Thu, 30 Apr 2009 22:30:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191710 - head/sys/dev/usb/wlan X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2009 22:30:02 -0000 Author: thompsa Date: Thu Apr 30 22:30:01 2009 New Revision: 191710 URL: http://svn.freebsd.org/changeset/base/191710 Log: We need to ref the bss node when sending the beacon since it goes through the normal tx path and will be decremented on the mbuf free. Modified: head/sys/dev/usb/wlan/if_ural.c Modified: head/sys/dev/usb/wlan/if_ural.c ============================================================================== --- head/sys/dev/usb/wlan/if_ural.c Thu Apr 30 22:16:29 2009 (r191709) +++ head/sys/dev/usb/wlan/if_ural.c Thu Apr 30 22:30:01 2009 (r191710) @@ -760,7 +760,7 @@ ural_task(struct usb2_proc_msg *pm) "could not allocate beacon\n"); return; } - + ieee80211_ref_node(ni); if (ural_tx_bcn(sc, m, ni) != 0) { device_printf(sc->sc_dev, "could not send beacon\n"); From owner-svn-src-all@FreeBSD.ORG Thu Apr 30 22:43:21 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D499D1065670; Thu, 30 Apr 2009 22:43:21 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C38268FC14; Thu, 30 Apr 2009 22:43:21 +0000 (UTC) (envelope-from jamie@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 n3UMhLEB024947; Thu, 30 Apr 2009 22:43:21 GMT (envelope-from jamie@svn.freebsd.org) Received: (from jamie@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3UMhLeq024946; Thu, 30 Apr 2009 22:43:21 GMT (envelope-from jamie@svn.freebsd.org) Message-Id: <200904302243.n3UMhLeq024946@svn.freebsd.org> From: Jamie Gritton Date: Thu, 30 Apr 2009 22:43:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191711 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Apr 2009 22:43:22 -0000 Author: jamie Date: Thu Apr 30 22:43:21 2009 New Revision: 191711 URL: http://svn.freebsd.org/changeset/base/191711 Log: Don't call the OSD destructor if the data slot is NULL (since it's already not done on unused slots, which are indistinguishable to the caller). Approved by: bz (mentor) Modified: head/sys/kern/kern_osd.c Modified: head/sys/kern/kern_osd.c ============================================================================== --- head/sys/kern/kern_osd.c Thu Apr 30 22:30:01 2009 (r191710) +++ head/sys/kern/kern_osd.c Thu Apr 30 22:43:21 2009 (r191711) @@ -297,8 +297,10 @@ do_osd_del(u_int type, struct osd *osd, OSD_DEBUG("Slot doesn't exist (type=%u, slot=%u).", type, slot); return; } - osd_destructors[type][slot - 1](osd->osd_slots[slot - 1]); - osd->osd_slots[slot - 1] = NULL; + if (osd->osd_slots[slot - 1] != NULL) { + osd_destructors[type][slot - 1](osd->osd_slots[slot - 1]); + osd->osd_slots[slot - 1] = NULL; + } for (i = osd->osd_nslots - 1; i >= 0; i--) { if (osd->osd_slots[i] != NULL) { OSD_DEBUG("Slot still has a value (type=%u, slot=%u).", From owner-svn-src-all@FreeBSD.ORG Fri May 1 02:16:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98D1B106566B; Fri, 1 May 2009 02:16:06 +0000 (UTC) (envelope-from kensmith@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 86B8B8FC0A; Fri, 1 May 2009 02:16:06 +0000 (UTC) (envelope-from kensmith@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 n412G6iS028977; Fri, 1 May 2009 02:16:06 GMT (envelope-from kensmith@svn.freebsd.org) Received: (from kensmith@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n412G57S028976; Fri, 1 May 2009 02:16:05 GMT (envelope-from kensmith@svn.freebsd.org) Message-Id: <200905010216.n412G57S028976@svn.freebsd.org> From: Ken Smith Date: Fri, 1 May 2009 02:16:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191712 - stable/7 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 02:16:07 -0000 Author: kensmith Date: Fri May 1 02:16:05 2009 New Revision: 191712 URL: http://svn.freebsd.org/changeset/base/191712 Log: Predict announcement day for 7.2-RELEASE. Approved by: re (implicit) Modified: stable/7/UPDATING Modified: stable/7/UPDATING ============================================================================== --- stable/7/UPDATING Thu Apr 30 22:43:21 2009 (r191711) +++ stable/7/UPDATING Fri May 1 02:16:05 2009 (r191712) @@ -8,6 +8,9 @@ Items affecting the ports and packages s /usr/ports/UPDATING. Please read that file before running portupgrade. +20090504: + FreeBSD 7.2-RELEASE + 20090326: Following bug-fixes to TCP connection state flags, netstat, systat, and sockstat will need to be rebuilt in order to properly print From owner-svn-src-all@FreeBSD.ORG Fri May 1 02:17:08 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9C62106566B; Fri, 1 May 2009 02:17:08 +0000 (UTC) (envelope-from kensmith@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A80A28FC08; Fri, 1 May 2009 02:17:08 +0000 (UTC) (envelope-from kensmith@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 n412H8J8029033; Fri, 1 May 2009 02:17:08 GMT (envelope-from kensmith@svn.freebsd.org) Received: (from kensmith@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n412H8kF029032; Fri, 1 May 2009 02:17:08 GMT (envelope-from kensmith@svn.freebsd.org) Message-Id: <200905010217.n412H8kF029032@svn.freebsd.org> From: Ken Smith Date: Fri, 1 May 2009 02:17:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191713 - releng/7.2 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 02:17:09 -0000 Author: kensmith Date: Fri May 1 02:17:08 2009 New Revision: 191713 URL: http://svn.freebsd.org/changeset/base/191713 Log: Predict announcement day for 7.2-RELEASE. Approved by: re (implicit) Modified: releng/7.2/UPDATING Modified: releng/7.2/UPDATING ============================================================================== --- releng/7.2/UPDATING Fri May 1 02:16:05 2009 (r191712) +++ releng/7.2/UPDATING Fri May 1 02:17:08 2009 (r191713) @@ -8,6 +8,9 @@ Items affecting the ports and packages s /usr/ports/UPDATING. Please read that file before running portupgrade. +20090504: + FreeBSD 7.2-RELEASE + 20090422: FreeBSD-SA-09:07.libc, FreeBSD-SA-09:08.openssl Don't leak information via uninitialized space in db(3) records. [09:07] From owner-svn-src-all@FreeBSD.ORG Fri May 1 02:18:54 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D62E106564A; Fri, 1 May 2009 02:18:54 +0000 (UTC) (envelope-from kensmith@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6BD558FC0A; Fri, 1 May 2009 02:18:54 +0000 (UTC) (envelope-from kensmith@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 n412Isww029097; Fri, 1 May 2009 02:18:54 GMT (envelope-from kensmith@svn.freebsd.org) Received: (from kensmith@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n412Issr029096; Fri, 1 May 2009 02:18:54 GMT (envelope-from kensmith@svn.freebsd.org) Message-Id: <200905010218.n412Issr029096@svn.freebsd.org> From: Ken Smith Date: Fri, 1 May 2009 02:18:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191714 - releng/7.2/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 02:18:55 -0000 Author: kensmith Date: Fri May 1 02:18:54 2009 New Revision: 191714 URL: http://svn.freebsd.org/changeset/base/191714 Log: Get ready for 7.2-RELEASE builds. Approved by: re (implicit) Modified: releng/7.2/sys/conf/newvers.sh Modified: releng/7.2/sys/conf/newvers.sh ============================================================================== --- releng/7.2/sys/conf/newvers.sh Fri May 1 02:17:08 2009 (r191713) +++ releng/7.2/sys/conf/newvers.sh Fri May 1 02:18:54 2009 (r191714) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="7.2" -BRANCH="RC2" +BRANCH="RELEASE" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@FreeBSD.ORG Fri May 1 02:51:58 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 90CB5106564A; Fri, 1 May 2009 02:51:58 +0000 (UTC) (envelope-from kensmith@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 64D308FC1A; Fri, 1 May 2009 02:51:58 +0000 (UTC) (envelope-from kensmith@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 n412pwYE029712; Fri, 1 May 2009 02:51:58 GMT (envelope-from kensmith@svn.freebsd.org) Received: (from kensmith@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n412pwY0029711; Fri, 1 May 2009 02:51:58 GMT (envelope-from kensmith@svn.freebsd.org) Message-Id: <200905010251.n412pwY0029711@svn.freebsd.org> From: Ken Smith Date: Fri, 1 May 2009 02:51:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-release@freebsd.org X-SVN-Group: release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191715 - release/7.2.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 02:51:59 -0000 Author: kensmith Date: Fri May 1 02:51:58 2009 New Revision: 191715 URL: http://svn.freebsd.org/changeset/base/191715 Log: Copy releng/7.2 to release/7.2.0 for FreeBSD 7.2-RELEASE. Approved by: re (implicit) Added: release/7.2.0/ - copied from r191714, releng/7.2/ From owner-svn-src-all@FreeBSD.ORG Fri May 1 03:24:03 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76BD8106566C; Fri, 1 May 2009 03:24:03 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 63C458FC0C; Fri, 1 May 2009 03:24:03 +0000 (UTC) (envelope-from yongari@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 n413O3Qx030669; Fri, 1 May 2009 03:24:03 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n413O3o0030668; Fri, 1 May 2009 03:24:03 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <200905010324.n413O3o0030668@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 1 May 2009 03:24:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191716 - head/sys/dev/sk X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 03:24:03 -0000 Author: yongari Date: Fri May 1 03:24:03 2009 New Revision: 191716 URL: http://svn.freebsd.org/changeset/base/191716 Log: Separate multicast filtering of SysKonnect GENESIS and Marvell Yukon from common multicast handling code. Yukon uses hash-based multicast filtering(big endian form) but GENESIS uses perfect multicast filtering as well as hash-based one(little endian form). Due to the differences of multicast filtering there is no much sense to have a common code. o Remove sk_setmulti() and introduce sk_rxfilter_yukon(), sk_rxfilter_yukon() that handles multicast filtering setup. o Have sk_rxfilter_{yukon, genesis} handle promiscuous mode and nuke sk_setpromisc(). This simplifies ioctl handler as well as giving a chance to check validity of Rx control register of Yukon. o Don't reinitialize controller when IFF_ALLMULTI flags is changed. o Nuke sk_gmchash(), it's not needed anymore. o Always reconfigure Rx control register whenever a new multicast filtering condition is changed. This fixes multicast filtering setup on Yukon. PR: kern/134051 Modified: head/sys/dev/sk/if_sk.c Modified: head/sys/dev/sk/if_sk.c ============================================================================== --- head/sys/dev/sk/if_sk.c Fri May 1 02:51:58 2009 (r191715) +++ head/sys/dev/sk/if_sk.c Fri May 1 03:24:03 2009 (r191716) @@ -255,10 +255,10 @@ static int sk_marv_miibus_writereg(struc static void sk_marv_miibus_statchg(struct sk_if_softc *); static uint32_t sk_xmchash(const uint8_t *); -static uint32_t sk_gmchash(const uint8_t *); static void sk_setfilt(struct sk_if_softc *, u_int16_t *, int); -static void sk_setmulti(struct sk_if_softc *); -static void sk_setpromisc(struct sk_if_softc *); +static void sk_rxfilter(struct sk_if_softc *); +static void sk_rxfilter_genesis(struct sk_if_softc *); +static void sk_rxfilter_yukon(struct sk_if_softc *); static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high); static int sysctl_hw_sk_int_mod(SYSCTL_HANDLER_ARGS); @@ -697,19 +697,6 @@ sk_xmchash(addr) return (~crc & ((1 << HASH_BITS) - 1)); } -/* gmchash is just a big endian crc */ -static u_int32_t -sk_gmchash(addr) - const uint8_t *addr; -{ - uint32_t crc; - - /* Compute CRC for the address value. */ - crc = ether_crc32_be(addr, ETHER_ADDR_LEN); - - return (crc & ((1 << HASH_BITS) - 1)); -} - static void sk_setfilt(sc_if, addr, slot) struct sk_if_softc *sc_if; @@ -728,12 +715,26 @@ sk_setfilt(sc_if, addr, slot) } static void -sk_setmulti(sc_if) +sk_rxfilter(sc_if) + struct sk_if_softc *sc_if; +{ + struct sk_softc *sc; + + SK_IF_LOCK_ASSERT(sc_if); + + sc = sc_if->sk_softc; + if (sc->sk_type == SK_GENESIS) + sk_rxfilter_genesis(sc_if); + else + sk_rxfilter_yukon(sc_if); +} + +static void +sk_rxfilter_genesis(sc_if) struct sk_if_softc *sc_if; { - struct sk_softc *sc = sc_if->sk_softc; struct ifnet *ifp = sc_if->sk_ifp; - u_int32_t hashes[2] = { 0, 0 }; + u_int32_t hashes[2] = { 0, 0 }, mode; int h = 0, i; struct ifmultiaddr *ifma; u_int16_t dummy[] = { 0, 0, 0 }; @@ -741,124 +742,96 @@ sk_setmulti(sc_if) SK_IF_LOCK_ASSERT(sc_if); - /* First, zot all the existing filters. */ - switch(sc->sk_type) { - case SK_GENESIS: - for (i = 1; i < XM_RXFILT_MAX; i++) - sk_setfilt(sc_if, dummy, i); - - SK_XM_WRITE_4(sc_if, XM_MAR0, 0); - SK_XM_WRITE_4(sc_if, XM_MAR2, 0); - break; - case SK_YUKON: - case SK_YUKON_LITE: - case SK_YUKON_LP: - SK_YU_WRITE_2(sc_if, YUKON_MCAH1, 0); - SK_YU_WRITE_2(sc_if, YUKON_MCAH2, 0); - SK_YU_WRITE_2(sc_if, YUKON_MCAH3, 0); - SK_YU_WRITE_2(sc_if, YUKON_MCAH4, 0); - break; - } + mode = SK_XM_READ_4(sc_if, XM_MODE); + mode &= ~(XM_MODE_RX_PROMISC | XM_MODE_RX_USE_HASH | + XM_MODE_RX_USE_PERFECT); + /* First, zot all the existing perfect filters. */ + for (i = 1; i < XM_RXFILT_MAX; i++) + sk_setfilt(sc_if, dummy, i); /* Now program new ones. */ if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) { + if (ifp->if_flags & IFF_ALLMULTI) + mode |= XM_MODE_RX_USE_HASH; + if (ifp->if_flags & IFF_PROMISC) + mode |= XM_MODE_RX_PROMISC; hashes[0] = 0xFFFFFFFF; hashes[1] = 0xFFFFFFFF; } else { i = 1; IF_ADDR_LOCK(ifp); - TAILQ_FOREACH_REVERSE(ifma, &ifp->if_multiaddrs, ifmultihead, ifma_link) { + TAILQ_FOREACH_REVERSE(ifma, &ifp->if_multiaddrs, ifmultihead, + ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; /* * Program the first XM_RXFILT_MAX multicast groups - * into the perfect filter. For all others, - * use the hash table. + * into the perfect filter. */ - if (sc->sk_type == SK_GENESIS && i < XM_RXFILT_MAX) { - bcopy(LLADDR( - (struct sockaddr_dl *)ifma->ifma_addr), - maddr, ETHER_ADDR_LEN); + bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr), + maddr, ETHER_ADDR_LEN); + if (i < XM_RXFILT_MAX) { sk_setfilt(sc_if, maddr, i); + mode |= XM_MODE_RX_USE_PERFECT; i++; continue; } - - switch(sc->sk_type) { - case SK_GENESIS: - bcopy(LLADDR( - (struct sockaddr_dl *)ifma->ifma_addr), - maddr, ETHER_ADDR_LEN); - h = sk_xmchash((const uint8_t *)maddr); - break; - case SK_YUKON: - case SK_YUKON_LITE: - case SK_YUKON_LP: - bcopy(LLADDR( - (struct sockaddr_dl *)ifma->ifma_addr), - maddr, ETHER_ADDR_LEN); - h = sk_gmchash((const uint8_t *)maddr); - break; - } + h = sk_xmchash((const uint8_t *)maddr); if (h < 32) hashes[0] |= (1 << h); else hashes[1] |= (1 << (h - 32)); + mode |= XM_MODE_RX_USE_HASH; } IF_ADDR_UNLOCK(ifp); } - switch(sc->sk_type) { - case SK_GENESIS: - SK_XM_SETBIT_4(sc_if, XM_MODE, XM_MODE_RX_USE_HASH| - XM_MODE_RX_USE_PERFECT); - SK_XM_WRITE_4(sc_if, XM_MAR0, hashes[0]); - SK_XM_WRITE_4(sc_if, XM_MAR2, hashes[1]); - break; - case SK_YUKON: - case SK_YUKON_LITE: - case SK_YUKON_LP: - SK_YU_WRITE_2(sc_if, YUKON_MCAH1, hashes[0] & 0xffff); - SK_YU_WRITE_2(sc_if, YUKON_MCAH2, (hashes[0] >> 16) & 0xffff); - SK_YU_WRITE_2(sc_if, YUKON_MCAH3, hashes[1] & 0xffff); - SK_YU_WRITE_2(sc_if, YUKON_MCAH4, (hashes[1] >> 16) & 0xffff); - break; - } - - return; + SK_XM_WRITE_4(sc_if, XM_MODE, mode); + SK_XM_WRITE_4(sc_if, XM_MAR0, hashes[0]); + SK_XM_WRITE_4(sc_if, XM_MAR2, hashes[1]); } static void -sk_setpromisc(sc_if) +sk_rxfilter_yukon(sc_if) struct sk_if_softc *sc_if; { - struct sk_softc *sc = sc_if->sk_softc; - struct ifnet *ifp = sc_if->sk_ifp; + struct ifnet *ifp; + u_int32_t crc, hashes[2] = { 0, 0 }, mode; + struct ifmultiaddr *ifma; SK_IF_LOCK_ASSERT(sc_if); - switch(sc->sk_type) { - case SK_GENESIS: - if (ifp->if_flags & IFF_PROMISC) { - SK_XM_SETBIT_4(sc_if, XM_MODE, XM_MODE_RX_PROMISC); - } else { - SK_XM_CLRBIT_4(sc_if, XM_MODE, XM_MODE_RX_PROMISC); - } - break; - case SK_YUKON: - case SK_YUKON_LITE: - case SK_YUKON_LP: - if (ifp->if_flags & IFF_PROMISC) { - SK_YU_CLRBIT_2(sc_if, YUKON_RCR, - YU_RCR_UFLEN | YU_RCR_MUFLEN); - } else { - SK_YU_SETBIT_2(sc_if, YUKON_RCR, - YU_RCR_UFLEN | YU_RCR_MUFLEN); + ifp = sc_if->sk_ifp; + mode = SK_YU_READ_2(sc_if, YUKON_RCR); + if (ifp->if_flags & IFF_PROMISC) + mode &= ~(YU_RCR_UFLEN | YU_RCR_MUFLEN); + else if (ifp->if_flags & IFF_ALLMULTI) { + mode |= YU_RCR_UFLEN | YU_RCR_MUFLEN; + hashes[0] = 0xFFFFFFFF; + hashes[1] = 0xFFFFFFFF; + } else { + mode |= YU_RCR_UFLEN; + IF_ADDR_LOCK(ifp); + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) + ifma->ifma_addr), ETHER_ADDR_LEN); + /* Just want the 6 least significant bits. */ + crc &= 0x3f; + /* Set the corresponding bit in the hash table. */ + hashes[crc >> 5] |= 1 << (crc & 0x1f); } - break; + IF_ADDR_UNLOCK(ifp); + if (hashes[0] != 0 || hashes[1] != 0) + mode |= YU_RCR_MUFLEN; } - return; + SK_YU_WRITE_2(sc_if, YUKON_MCAH1, hashes[0] & 0xffff); + SK_YU_WRITE_2(sc_if, YUKON_MCAH2, (hashes[0] >> 16) & 0xffff); + SK_YU_WRITE_2(sc_if, YUKON_MCAH3, hashes[1] & 0xffff); + SK_YU_WRITE_2(sc_if, YUKON_MCAH4, (hashes[1] >> 16) & 0xffff); + SK_YU_WRITE_2(sc_if, YUKON_RCR, mode); } static int @@ -1166,10 +1139,8 @@ sk_ioctl(ifp, command, data) if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING) { if ((ifp->if_flags ^ sc_if->sk_if_flags) - & IFF_PROMISC) { - sk_setpromisc(sc_if); - sk_setmulti(sc_if); - } + & (IFF_PROMISC | IFF_ALLMULTI)) + sk_rxfilter(sc_if); } else sk_init_locked(sc_if); } else { @@ -1183,7 +1154,7 @@ sk_ioctl(ifp, command, data) case SIOCDELMULTI: SK_IF_LOCK(sc_if); if (ifp->if_drv_flags & IFF_DRV_RUNNING) - sk_setmulti(sc_if); + sk_rxfilter(sc_if); SK_IF_UNLOCK(sc_if); break; case SIOCGIFMEDIA: @@ -3302,11 +3273,8 @@ sk_init_xmac(sc_if) */ SK_XM_WRITE_2(sc_if, XM_TX_REQTHRESH, SK_XM_TX_FIFOTHRESH); - /* Set promiscuous mode */ - sk_setpromisc(sc_if); - - /* Set multicast filter */ - sk_setmulti(sc_if); + /* Set Rx filter */ + sk_rxfilter_genesis(sc_if); /* Clear and enable interrupts */ SK_XM_READ_2(sc_if, XM_ISR); @@ -3447,11 +3415,8 @@ sk_init_yukon(sc_if) SK_YU_WRITE_2(sc_if, YUKON_SAL2 + i * 4, reg); } - /* Set promiscuous mode */ - sk_setpromisc(sc_if); - - /* Set multicast filter */ - sk_setmulti(sc_if); + /* Set Rx filter */ + sk_rxfilter_yukon(sc_if); /* enable interrupt mask for counter overflows */ SK_YU_WRITE_2(sc_if, YUKON_TIMR, 0); From owner-svn-src-all@FreeBSD.ORG Fri May 1 08:03:47 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EB6A1065679; Fri, 1 May 2009 08:03:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BB0A8FC16; Fri, 1 May 2009 08:03:47 +0000 (UTC) (envelope-from mav@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 n4183lUH036019; Fri, 1 May 2009 08:03:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4183kGE036016; Fri, 1 May 2009 08:03:46 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905010803.n4183kGE036016@svn.freebsd.org> From: Alexander Motin Date: Fri, 1 May 2009 08:03:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191717 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 08:03:47 -0000 Author: mav Date: Fri May 1 08:03:46 2009 New Revision: 191717 URL: http://svn.freebsd.org/changeset/base/191717 Log: Improve kernel dumping reliability for busy ATA channels: - Generate fake channel interrupts even if channel busy with previous request to let it finish. Without this, dumping requests were just queued and never processed. - Drop pre-dump requests queue on dumping. ATA code, working in dumping (interruptless) mode, unable to handle long request queue. Actually, to get coherent dump we anyway should do as few unrelated actions as possible. Modified: head/sys/dev/ata/ata-all.h head/sys/dev/ata/ata-disk.c head/sys/dev/ata/ata-queue.c Modified: head/sys/dev/ata/ata-all.h ============================================================================== --- head/sys/dev/ata/ata-all.h Fri May 1 03:24:03 2009 (r191716) +++ head/sys/dev/ata/ata-all.h Fri May 1 08:03:46 2009 (r191717) @@ -584,6 +584,7 @@ void ata_finish(struct ata_request *requ void ata_timeout(struct ata_request *); void ata_catch_inflight(device_t dev); void ata_fail_requests(device_t dev); +void ata_drop_requests(device_t dev); char *ata_cmd2str(struct ata_request *request); /* ata-lowlevel.c: */ Modified: head/sys/dev/ata/ata-disk.c ============================================================================== --- head/sys/dev/ata/ata-disk.c Fri May 1 03:24:03 2009 (r191716) +++ head/sys/dev/ata/ata-disk.c Fri May 1 08:03:46 2009 (r191717) @@ -346,15 +346,23 @@ ad_dump(void *arg, void *virtual, vm_off off_t offset, size_t length) { struct disk *dp = arg; + device_t dev = dp->d_drv1; struct bio bp; + /* XXX: Drop pre-dump request queue. Long request queue processing + * causes stack overflow in ATA working in dumping (interruptless) mode. + * Conter-XXX: To make dump coherent we should avoid doing anything + * else while dumping. + */ + ata_drop_requests(dev); + /* length zero is special and really means flush buffers to media */ if (!length) { - struct ata_device *atadev = device_get_softc(dp->d_drv1); + struct ata_device *atadev = device_get_softc(dev); int error = 0; if (atadev->param.support.command2 & ATA_SUPPORT_FLUSHCACHE) - error = ata_controlcmd(dp->d_drv1, ATA_FLUSHCACHE, 0, 0, 0); + error = ata_controlcmd(dev, ATA_FLUSHCACHE, 0, 0, 0); return error; } Modified: head/sys/dev/ata/ata-queue.c ============================================================================== --- head/sys/dev/ata/ata-queue.c Fri May 1 03:24:03 2009 (r191716) +++ head/sys/dev/ata/ata-queue.c Fri May 1 08:03:46 2009 (r191717) @@ -218,20 +218,17 @@ ata_start(device_t dev) ata_finish(request); return; } - if (dumping) { - mtx_unlock(&ch->state_mtx); - mtx_unlock(&ch->queue_mtx); - while (ch->running) { - ata_interrupt(ch); - DELAY(10); - } - return; - } } mtx_unlock(&ch->state_mtx); } } mtx_unlock(&ch->queue_mtx); + if (dumping) { + while (ch->running) { + ata_interrupt(ch); + DELAY(10); + } + } } void @@ -560,6 +557,24 @@ ata_fail_requests(device_t dev) } } +/* + * Rudely drop all requests queued to the channel of specified device. + * XXX: The requests are leaked, use only in fatal case. + */ +void +ata_drop_requests(device_t dev) +{ + struct ata_channel *ch = device_get_softc(device_get_parent(dev)); + struct ata_request *request, *tmp; + + mtx_lock(&ch->queue_mtx); + TAILQ_FOREACH_SAFE(request, &ch->ata_queue, chain, tmp) { + TAILQ_REMOVE(&ch->ata_queue, request, chain); + request->result = ENXIO; + } + mtx_unlock(&ch->queue_mtx); +} + static u_int64_t ata_get_lba(struct ata_request *request) { From owner-svn-src-all@FreeBSD.ORG Fri May 1 08:15:38 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 223A8106564A; Fri, 1 May 2009 08:15:38 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 774A38FC1E; Fri, 1 May 2009 08:15:34 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (critter.freebsd.dk [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 4280578CCF; Fri, 1 May 2009 08:15:33 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.3/8.14.3) with ESMTP id n418FWbE048417; Fri, 1 May 2009 08:15:32 GMT (envelope-from phk@critter.freebsd.dk) To: Alexander Motin From: "Poul-Henning Kamp" In-Reply-To: Your message of "Fri, 01 May 2009 08:03:46 GMT." <200905010803.n4183kGE036016@svn.freebsd.org> Date: Fri, 01 May 2009 08:15:32 +0000 Message-ID: <48416.1241165732@critter.freebsd.dk> Sender: phk@critter.freebsd.dk Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191717 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 08:15:38 -0000 In message <200905010803.n4183kGE036016@svn.freebsd.org>, Alexander Motin write s: > - Drop pre-dump requests queue on dumping. ATA code, working in dumping > (interruptless) mode, unable to handle long request queue. Actually, to get > coherent dump we anyway should do as few unrelated actions as possible. It seems a wrong tradeoff to me, to favour dump fidelity over filesystem coherence. Poul-Henning -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-svn-src-all@FreeBSD.ORG Fri May 1 08:32:07 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 411561065675; Fri, 1 May 2009 08:32:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 545CC8FC19; Fri, 1 May 2009 08:32:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 241749955; Fri, 01 May 2009 11:32:05 +0300 Message-ID: <49FAB383.2010904@FreeBSD.org> Date: Fri, 01 May 2009 11:32:03 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: Poul-Henning Kamp References: <48416.1241165732@critter.freebsd.dk> In-Reply-To: <48416.1241165732@critter.freebsd.dk> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191717 - head/sys/dev/ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 08:32:08 -0000 Poul-Henning Kamp wrote: > In message <200905010803.n4183kGE036016@svn.freebsd.org>, Alexander Motin write > s: > >> - Drop pre-dump requests queue on dumping. ATA code, working in dumping >> (interruptless) mode, unable to handle long request queue. Actually, to get >> coherent dump we anyway should do as few unrelated actions as possible. > > It seems a wrong tradeoff to me, to favour dump fidelity over filesystem > coherence. When dump is disabled, queued requests are trashed anyway. Dump does not make the things worse then they are. It just does it's duty as good as possible and as simple as possible. There is no any warranty that completing all queued requests will make filesystem more coherent, it easily can happen opposite. Also, as soon as current system state is known to be invalid (as kernel has just panicked), it could be safer do not try to make any excessive movements. -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Fri May 1 11:05:25 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1BC3F106567A; Fri, 1 May 2009 11:05:25 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 086E58FC1C; Fri, 1 May 2009 11:05:25 +0000 (UTC) (envelope-from bms@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 n41B5O28041308; Fri, 1 May 2009 11:05:24 GMT (envelope-from bms@svn.freebsd.org) Received: (from bms@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41B5OUY041307; Fri, 1 May 2009 11:05:24 GMT (envelope-from bms@svn.freebsd.org) Message-Id: <200905011105.n41B5OUY041307@svn.freebsd.org> From: Bruce M Simpson Date: Fri, 1 May 2009 11:05:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191718 - head/sys/netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 11:05:26 -0000 Author: bms Date: Fri May 1 11:05:24 2009 New Revision: 191718 URL: http://svn.freebsd.org/changeset/base/191718 Log: Limit scope of acquisition of INP_RLOCK for multicast input filter to the scope of its use, even though this may thrash the lock if the INP is referenced for other purposes. Tested by: David Wolfskill Modified: head/sys/netinet6/udp6_usrreq.c Modified: head/sys/netinet6/udp6_usrreq.c ============================================================================== --- head/sys/netinet6/udp6_usrreq.c Fri May 1 08:03:46 2009 (r191717) +++ head/sys/netinet6/udp6_usrreq.c Fri May 1 11:05:24 2009 (r191718) @@ -279,8 +279,6 @@ udp6_input(struct mbuf **mp, int *offp, continue; } - INP_RLOCK(inp); - /* * Handle socket delivery policy for any-source * and source-specific multicast. [RFC3678] @@ -290,6 +288,8 @@ udp6_input(struct mbuf **mp, int *offp, struct sockaddr_in6 mcaddr; int blocked; + INP_RLOCK(inp); + bzero(&mcaddr, sizeof(struct sockaddr_in6)); mcaddr.sin6_len = sizeof(struct sockaddr_in6); mcaddr.sin6_family = AF_INET6; @@ -304,9 +304,11 @@ udp6_input(struct mbuf **mp, int *offp, if (blocked == MCAST_NOTSMEMBER || blocked == MCAST_MUTED) UDPSTAT_INC(udps_filtermcast); - INP_RUNLOCK(inp); + INP_RUNLOCK(inp); /* XXX */ continue; } + + INP_RUNLOCK(inp); } if (last != NULL) { struct mbuf *n; @@ -423,8 +425,6 @@ udp6_input(struct mbuf **mp, int *offp, return (IPPROTO_DONE); badheadlocked: - if (inp) - INP_RUNLOCK(inp); INP_INFO_RUNLOCK(&V_udbinfo); badunlocked: if (m) From owner-svn-src-all@FreeBSD.ORG Fri May 1 15:36:02 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A99641065674; Fri, 1 May 2009 15:36:02 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 957B88FC21; Fri, 1 May 2009 15:36:02 +0000 (UTC) (envelope-from dchagin@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 n41Fa2wd046455; Fri, 1 May 2009 15:36:02 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41Fa2fY046452; Fri, 1 May 2009 15:36:02 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200905011536.n41Fa2fY046452@svn.freebsd.org> From: Dmitry Chagin Date: Fri, 1 May 2009 15:36:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191719 - in head/sys: amd64/linux32 compat/linux i386/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 15:36:04 -0000 Author: dchagin Date: Fri May 1 15:36:02 2009 New Revision: 191719 URL: http://svn.freebsd.org/changeset/base/191719 Log: Reimplement futexes. Old implemention used Giant to protect the kernel data structures, but at the same time called malloc(M_WAITOK), that could cause the calling thread to sleep and lost Giant protection. User-visible result was the missed wakeup. New implementation uses one sx lock per futex. The sx protects the futex structures and allows to sleep while copyin or copyout are performed. Unlike linux, we return EINVAL when FUTEX_CMP_REQUEUE operation is requested and either caller specified futexes are equial or second futex already exists. This is acceptable since the situation can only occur from the application error, and glibc falls back to old FUTEX_WAKE operation when FUTEX_CMP_REQUEUE returns an error. Approved by: kib (mentor) MFC after: 1 month Modified: head/sys/amd64/linux32/linux32_sysvec.c head/sys/compat/linux/linux_futex.c head/sys/i386/linux/linux_sysvec.c Modified: head/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysvec.c Fri May 1 11:05:24 2009 (r191718) +++ head/sys/amd64/linux32/linux32_sysvec.c Fri May 1 15:36:02 2009 (r191719) @@ -128,7 +128,7 @@ static void exec_linux_setregs(struct th static void linux32_fixlimit(struct rlimit *rl, int which); extern LIST_HEAD(futex_list, futex) futex_list; -extern struct sx futex_sx; +extern struct mtx futex_mtx; static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1117,7 +1117,7 @@ linux_elf_modevent(module_t mod, int typ mtx_init(&emul_lock, "emuldata lock", NULL, MTX_DEF); sx_init(&emul_shared_lock, "emuldata->shared lock"); LIST_INIT(&futex_list); - sx_init(&futex_sx, "futex protection lock"); + mtx_init(&futex_mtx, "ftllk", NULL, MTX_DEF); linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit, NULL, 1000); linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, @@ -1149,7 +1149,7 @@ linux_elf_modevent(module_t mod, int typ linux_device_unregister_handler(*ldhp); mtx_destroy(&emul_lock); sx_destroy(&emul_shared_lock); - sx_destroy(&futex_sx); + mtx_destroy(&futex_mtx); EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag); EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag); Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Fri May 1 11:05:24 2009 (r191718) +++ head/sys/compat/linux/linux_futex.c Fri May 1 15:36:02 2009 (r191719) @@ -62,419 +62,284 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex. #include #include +MALLOC_DEFINE(M_FUTEX, "futex", "Linux futexes"); +MALLOC_DEFINE(M_FUTEX_WP, "futex wp", "Linux futexes wp"); + struct futex; struct waiting_proc { - struct thread *wp_t; - struct futex *wp_new_futex; + uint32_t wp_flags; + struct futex *wp_futex; TAILQ_ENTRY(waiting_proc) wp_list; }; + struct futex { - void *f_uaddr; - int f_refcount; + struct sx f_lck; + uint32_t *f_uaddr; + uint32_t f_refcount; LIST_ENTRY(futex) f_list; TAILQ_HEAD(lf_waiting_proc, waiting_proc) f_waiting_proc; }; LIST_HEAD(futex_list, futex) futex_list; -struct sx futex_sx; /* this protects the LIST of futexes */ - -#define FUTEX_LOCK sx_xlock(&futex_sx) -#define FUTEX_UNLOCK sx_xunlock(&futex_sx) -#define FUTEX_LOCKED 1 -#define FUTEX_UNLOCKED 0 - -#define FUTEX_SYSTEM_LOCK mtx_lock(&Giant) -#define FUTEX_SYSTEM_UNLOCK mtx_unlock(&Giant) - -static struct futex *futex_get(void *, int); -static void futex_put(struct futex *); -static int futex_sleep(struct futex *, struct thread *, unsigned long); -static int futex_wake(struct futex *, int, struct futex *, int); -static int futex_atomic_op(struct thread *td, int encoded_op, caddr_t uaddr); +#define FUTEX_LOCK(f) sx_xlock(&(f)->f_lck) +#define FUTEX_UNLOCK(f) sx_xunlock(&(f)->f_lck) +#define FUTEX_INIT(f) sx_init_flags(&(f)->f_lck, "ftlk", 0) +#define FUTEX_DESTROY(f) sx_destroy(&(f)->f_lck) +#define FUTEX_ASSERT_LOCKED(f) sx_assert(&(f)->f_lck, SA_XLOCKED) + +struct mtx futex_mtx; /* protects the futex list */ +#define FUTEXES_LOCK mtx_lock(&futex_mtx) +#define FUTEXES_UNLOCK mtx_unlock(&futex_mtx) + +/* flags for futex_get() */ +#define FUTEX_CREATE_WP 0x1 /* create waiting_proc */ +#define FUTEX_DONTCREATE 0x2 /* don't create futex if not exists */ +#define FUTEX_DONTEXISTS 0x4 /* return EINVAL if futex exists */ + +/* wp_flags */ +#define FUTEX_WP_REQUEUED 0x1 /* wp requeued - wp moved from wp_list + * of futex where thread sleep to wp_list + * of another futex. + */ +#define FUTEX_WP_REMOVED 0x2 /* wp is woken up and removed from futex + * wp_list to prevent double wakeup. + */ /* support.s */ -int futex_xchgl(int oparg, caddr_t uaddr, int *oldval); -int futex_addl(int oparg, caddr_t uaddr, int *oldval); -int futex_orl(int oparg, caddr_t uaddr, int *oldval); -int futex_andl(int oparg, caddr_t uaddr, int *oldval); -int futex_xorl(int oparg, caddr_t uaddr, int *oldval); +int futex_xchgl(int oparg, uint32_t *uaddr, int *oldval); +int futex_addl(int oparg, uint32_t *uaddr, int *oldval); +int futex_orl(int oparg, uint32_t *uaddr, int *oldval); +int futex_andl(int oparg, uint32_t *uaddr, int *oldval); +int futex_xorl(int oparg, uint32_t *uaddr, int *oldval); -int -linux_sys_futex(struct thread *td, struct linux_sys_futex_args *args) +static void +futex_put(struct futex *f, struct waiting_proc *wp) { - int val; - int ret; - struct l_timespec timeout = {0, 0}; - int error = 0; - struct futex *f; - struct futex *newf; - int timeout_hz; - struct timeval tv = {0, 0}; - struct futex *f2; - int op_ret; - struct linux_emuldata *em; - -#ifdef DEBUG - if (ldebug(sys_futex)) - printf(ARGS(futex, "%p, %i, %i, *, %p, %i"), args->uaddr, args->op, - args->val, args->uaddr2, args->val3); -#endif - - /* - * Our implementation provides only privates futexes. Most of the apps - * should use private futexes but don't claim so. Therefore we treat - * all futexes as private by clearing the FUTEX_PRIVATE_FLAG. It works - * in most cases (ie. when futexes are not shared on file descriptor - * or between different processes.). - */ - args->op = (args->op & ~LINUX_FUTEX_PRIVATE_FLAG); - switch (args->op) { - case LINUX_FUTEX_WAIT: - FUTEX_SYSTEM_LOCK; - - if ((error = copyin(args->uaddr, - &val, sizeof(val))) != 0) { - FUTEX_SYSTEM_UNLOCK; - return error; - } - - if (val != args->val) { - FUTEX_SYSTEM_UNLOCK; - return EWOULDBLOCK; - } - - if (args->timeout != NULL) { - if ((error = copyin(args->timeout, - &timeout, sizeof(timeout))) != 0) { - FUTEX_SYSTEM_UNLOCK; - return error; - } - } - -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAIT %d: val = %d, uaddr = %p, " - "*uaddr = %d, timeout = %d.%09lu\n", - td->td_proc->p_pid, args->val, - args->uaddr, val, timeout.tv_sec, - (unsigned long)timeout.tv_nsec); -#endif - tv.tv_usec = timeout.tv_sec * 1000000 + timeout.tv_nsec / 1000; - timeout_hz = tvtohz(&tv); - - if (timeout.tv_sec == 0 && timeout.tv_nsec == 0) - timeout_hz = 0; - /* - * If the user process requests a non null timeout, - * make sure we do not turn it into an infinite - * timeout because timeout_hz gets null. - * - * We use a minimal timeout of 1/hz. Maybe it would - * make sense to just return ETIMEDOUT without sleeping. - */ - if (((timeout.tv_sec != 0) || (timeout.tv_nsec != 0)) && - (timeout_hz == 0)) - timeout_hz = 1; - - - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - ret = futex_sleep(f, td, timeout_hz); - futex_put(f); - -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAIT %d: uaddr = %p, " - "ret = %d\n", td->td_proc->p_pid, args->uaddr, ret); -#endif - - FUTEX_SYSTEM_UNLOCK; - switch (ret) { - case EWOULDBLOCK: /* timeout */ - return ETIMEDOUT; - break; - case EINTR: /* signal */ - return EINTR; - break; - case 0: /* FUTEX_WAKE received */ -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAIT %d: uaddr = %p, " - "got FUTEX_WAKE\n", - td->td_proc->p_pid, args->uaddr); -#endif - return 0; - break; - default: -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAIT: unexpected ret = %d\n", - ret); -#endif - break; - } - - /* NOTREACHED */ - break; - - case LINUX_FUTEX_WAKE: - FUTEX_SYSTEM_LOCK; - - /* - * XXX: Linux is able to cope with different addresses - * corresponding to the same mapped memory in the sleeping - * and waker process(es). - */ -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAKE %d: uaddr = %p, val = %d\n", - td->td_proc->p_pid, args->uaddr, args->val); -#endif - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - td->td_retval[0] = futex_wake(f, args->val, NULL, 0); - futex_put(f); - - FUTEX_SYSTEM_UNLOCK; - break; - - case LINUX_FUTEX_CMP_REQUEUE: - FUTEX_SYSTEM_LOCK; + FUTEX_ASSERT_LOCKED(f); + if (wp != NULL) { + if ((wp->wp_flags & FUTEX_WP_REMOVED) == 0) + TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); + free(wp, M_FUTEX_WP); + } - if ((error = copyin(args->uaddr, - &val, sizeof(val))) != 0) { - FUTEX_SYSTEM_UNLOCK; - return error; - } + FUTEXES_LOCK; + if (--f->f_refcount == 0) { + LIST_REMOVE(f, f_list); + FUTEXES_UNLOCK; + FUTEX_UNLOCK(f); - if (val != args->val3) { - FUTEX_SYSTEM_UNLOCK; - return EAGAIN; - } + FUTEX_DESTROY(f); + free(f, M_FUTEX); + return; + } - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - newf = futex_get(args->uaddr2, FUTEX_UNLOCKED); - td->td_retval[0] = futex_wake(f, args->val, newf, - (int)(unsigned long)args->timeout); - futex_put(f); - futex_put(newf); + FUTEXES_UNLOCK; + FUTEX_UNLOCK(f); +} - FUTEX_SYSTEM_UNLOCK; - break; +static int +futex_get0(uint32_t *uaddr, struct futex **newf, uint32_t flags) +{ + struct futex *f, *tmpf; - case LINUX_FUTEX_WAKE_OP: - FUTEX_SYSTEM_LOCK; -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX_WAKE_OP: %d: uaddr = %p, op = %d, " - "val = %x, uaddr2 = %p, val3 = %x\n", - td->td_proc->p_pid, args->uaddr, args->op, - args->val, args->uaddr2, args->val3); -#endif - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - f2 = futex_get(args->uaddr2, FUTEX_UNLOCKED); + *newf = tmpf = NULL; - /* - * This function returns positive number as results and - * negative as errors - */ - op_ret = futex_atomic_op(td, args->val3, args->uaddr2); -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("futex_atomic_op ret %d\n", op_ret); -#endif - if (op_ret < 0) { - /* XXX: We don't handle the EFAULT yet. */ - if (op_ret != -EFAULT) { - futex_put(f); - futex_put(f2); - FUTEX_SYSTEM_UNLOCK; - return (-op_ret); +retry: + FUTEXES_LOCK; + LIST_FOREACH(f, &futex_list, f_list) { + if (f->f_uaddr == uaddr) { + if (tmpf != NULL) { + FUTEX_UNLOCK(tmpf); + FUTEX_DESTROY(tmpf); + free(tmpf, M_FUTEX); + } + if (flags & FUTEX_DONTEXISTS) { + FUTEXES_UNLOCK; + return (EINVAL); } - futex_put(f); - futex_put(f2); - - FUTEX_SYSTEM_UNLOCK; - return (EFAULT); - } - - ret = futex_wake(f, args->val, NULL, 0); - futex_put(f); - if (op_ret > 0) { - op_ret = 0; /* - * Linux abuses the address of the timespec parameter - * as the number of retries. + * Increment refcount of the found futex to + * prevent it from deallocation before FUTEX_LOCK() */ - op_ret += futex_wake(f2, - (int)(unsigned long)args->timeout, NULL, 0); - ret += op_ret; - } - futex_put(f2); - td->td_retval[0] = ret; - - FUTEX_SYSTEM_UNLOCK; - break; - - case LINUX_FUTEX_LOCK_PI: - /* not yet implemented */ - return (ENOSYS); + ++f->f_refcount; + FUTEXES_UNLOCK; - case LINUX_FUTEX_UNLOCK_PI: - /* not yet implemented */ - return (ENOSYS); + FUTEX_LOCK(f); + *newf = f; + return (0); + } + } - case LINUX_FUTEX_TRYLOCK_PI: - /* not yet implemented */ - return (ENOSYS); + if (flags & FUTEX_DONTCREATE) { + FUTEXES_UNLOCK; + return (0); + } - case LINUX_FUTEX_REQUEUE: + if (tmpf == NULL) { + FUTEXES_UNLOCK; + tmpf = malloc(sizeof(*tmpf), M_FUTEX, M_WAITOK | M_ZERO); + tmpf->f_uaddr = uaddr; + tmpf->f_refcount = 1; + FUTEX_INIT(tmpf); + TAILQ_INIT(&tmpf->f_waiting_proc); /* - * Glibc does not use this operation since Jun 2004 (2.3.3), - * as it is racy and replaced by FUTEX_CMP_REQUEUE operation. - * Glibc versions prior to 2.3.3 fall back to FUTEX_WAKE when - * FUTEX_REQUEUE returned EINVAL. + * Lock the new futex before an insert into the futex_list + * to prevent futex usage by other. */ - em = em_find(td->td_proc, EMUL_DONTLOCK); - if (em->used_requeue == 0) { - printf("linux(%s (%d)) sys_futex: " - "unsupported futex_requeue op\n", - td->td_proc->p_comm, td->td_proc->p_pid); - em->used_requeue = 1; - } - return (EINVAL); - - default: - printf("linux_sys_futex: unknown op %d\n", - args->op); - return (ENOSYS); + FUTEX_LOCK(tmpf); + goto retry; } + + LIST_INSERT_HEAD(&futex_list, tmpf, f_list); + FUTEXES_UNLOCK; + + *newf = tmpf; return (0); } -static struct futex * -futex_get(void *uaddr, int locked) +static int +futex_get(uint32_t *uaddr, struct waiting_proc **wp, struct futex **f, + uint32_t flags) { - struct futex *f; + int error; - if (locked == FUTEX_UNLOCKED) - FUTEX_LOCK; - LIST_FOREACH(f, &futex_list, f_list) { - if (f->f_uaddr == uaddr) { - f->f_refcount++; - if (locked == FUTEX_UNLOCKED) - FUTEX_UNLOCK; - return f; - } + if (flags & FUTEX_CREATE_WP) { + *wp = malloc(sizeof(struct waiting_proc), M_FUTEX_WP, M_WAITOK); + (*wp)->wp_flags = 0; + } + error = futex_get0(uaddr, f, flags); + if (error) { + if (flags & FUTEX_CREATE_WP) + free(*wp, M_FUTEX_WP); + return (error); + } + if (flags & FUTEX_CREATE_WP) { + TAILQ_INSERT_HEAD(&(*f)->f_waiting_proc, *wp, wp_list); + (*wp)->wp_futex = *f; } - f = malloc(sizeof(*f), M_LINUX, M_WAITOK); - f->f_uaddr = uaddr; - f->f_refcount = 1; - TAILQ_INIT(&f->f_waiting_proc); - LIST_INSERT_HEAD(&futex_list, f, f_list); - if (locked == FUTEX_UNLOCKED) - FUTEX_UNLOCK; - - return f; + return (error); } -static void -futex_put(f) - struct futex *f; +static int +futex_sleep(struct futex *f, struct waiting_proc *wp, unsigned long timeout) { - FUTEX_LOCK; - f->f_refcount--; - if (f->f_refcount == 0) { - LIST_REMOVE(f, f_list); - free(f, M_LINUX); + int error; + + FUTEX_ASSERT_LOCKED(f); + error = sx_sleep(wp, &f->f_lck, PCATCH, "futex", timeout); + if (wp->wp_flags & FUTEX_WP_REQUEUED) { + KASSERT(f != wp->wp_futex, ("futex != wp_futex")); + futex_put(f, NULL); + f = wp->wp_futex; + FUTEX_LOCK(f); } - FUTEX_UNLOCK; - return; + futex_put(f, wp); + return (error); } static int -futex_sleep(struct futex *f, struct thread *td, unsigned long timeout) +futex_wake(struct futex *f, int n) { - struct waiting_proc *wp; - int ret; - - wp = malloc(sizeof(*wp), M_LINUX, M_WAITOK); - wp->wp_t = td; - wp->wp_new_futex = NULL; - FUTEX_LOCK; - TAILQ_INSERT_TAIL(&f->f_waiting_proc, wp, wp_list); - FUTEX_UNLOCK; - -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX --> %d tlseep timeout = %ld\n", - td->td_proc->p_pid, timeout); -#endif - ret = tsleep(wp, PCATCH | PZERO, "linuxfutex", timeout); -#ifdef DEBUG - if (ldebug(sys_futex)) - printf("FUTEX -> %d tsleep returns %d\n", - td->td_proc->p_pid, ret); -#endif + struct waiting_proc *wp, *wpt; + int count = 0; - FUTEX_LOCK; - TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); - FUTEX_UNLOCK; - - /* if we got woken up in futex_wake */ - if ((ret == 0) && (wp->wp_new_futex != NULL)) { - /* suspend us on the new futex */ - ret = futex_sleep(wp->wp_new_futex, td, timeout); - /* and release the old one */ - futex_put(wp->wp_new_futex); + FUTEX_ASSERT_LOCKED(f); + TAILQ_FOREACH_SAFE(wp, &f->f_waiting_proc, wp_list, wpt) { + wp->wp_flags |= FUTEX_WP_REMOVED; + TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); + wakeup_one(wp); + if (++count == n) + break; } - free(wp, M_LINUX); - - return ret; + return (count); } static int -futex_wake(struct futex *f, int n, struct futex *newf, int n2) +futex_requeue(struct futex *f, int n, struct futex *f2, int n2) { - struct waiting_proc *wp; - int count; + struct waiting_proc *wp, *wpt; + int count = 0; - /* - * Linux is very strange it wakes up N threads for - * all operations BUT requeue ones where its N+1 - * mimic this. - */ - count = newf ? 0 : 1; + FUTEX_ASSERT_LOCKED(f); + FUTEX_ASSERT_LOCKED(f2); - FUTEX_LOCK; - TAILQ_FOREACH(wp, &f->f_waiting_proc, wp_list) { - if (count <= n) { + TAILQ_FOREACH_SAFE(wp, &f->f_waiting_proc, wp_list, wpt) { + if (++count <= n) { + wp->wp_flags |= FUTEX_WP_REMOVED; + TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); wakeup_one(wp); - count++; } else { - if (newf != NULL) { - /* futex_put called after tsleep */ - wp->wp_new_futex = futex_get(newf->f_uaddr, - FUTEX_LOCKED); - wakeup_one(wp); - if (count - n >= n2) - break; - } + wp->wp_flags |= FUTEX_WP_REQUEUED; + /* Move wp to wp_list of f2 futex */ + TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); + TAILQ_INSERT_HEAD(&f2->f_waiting_proc, wp, wp_list); + + /* + * Thread which sleeps on wp after waking should + * acquire f2 lock, so increment refcount of f2 to + * prevent it from premature deallocation. + */ + wp->wp_futex = f2; + FUTEXES_LOCK; + ++f2->f_refcount; + FUTEXES_UNLOCK; + if (count - n >= n2) + break; } } - FUTEX_UNLOCK; - return count; + return (count); +} + +static int +futex_wait(struct futex *f, struct waiting_proc *wp, struct l_timespec *ts) +{ + struct l_timespec timeout = {0, 0}; + struct timeval tv = {0, 0}; + int timeout_hz; + int error; + + if (ts != NULL) { + error = copyin(ts, &timeout, sizeof(timeout)); + if (error) + return (error); + } + + tv.tv_usec = timeout.tv_sec * 1000000 + timeout.tv_nsec / 1000; + timeout_hz = tvtohz(&tv); + + if (timeout.tv_sec == 0 && timeout.tv_nsec == 0) + timeout_hz = 0; + + /* + * If the user process requests a non null timeout, + * make sure we do not turn it into an infinite + * timeout because timeout_hz gets null. + * + * We use a minimal timeout of 1/hz. Maybe it would + * make sense to just return ETIMEDOUT without sleeping. + */ + if (((timeout.tv_sec != 0) || (timeout.tv_nsec != 0)) && + (timeout_hz == 0)) + timeout_hz = 1; + + error = futex_sleep(f, wp, timeout_hz); + if (error == EWOULDBLOCK) + error = ETIMEDOUT; + + return (error); } static int -futex_atomic_op(struct thread *td, int encoded_op, caddr_t uaddr) +futex_atomic_op(struct thread *td, int encoded_op, uint32_t *uaddr) { int op = (encoded_op >> 28) & 7; int cmp = (encoded_op >> 24) & 15; @@ -536,14 +401,237 @@ futex_atomic_op(struct thread *td, int e } int +linux_sys_futex(struct thread *td, struct linux_sys_futex_args *args) +{ + int op_ret, val, ret, nrwake; + struct linux_emuldata *em; + struct waiting_proc *wp; + struct futex *f, *f2; + int error = 0; + + /* + * Our implementation provides only privates futexes. Most of the apps + * should use private futexes but don't claim so. Therefore we treat + * all futexes as private by clearing the FUTEX_PRIVATE_FLAG. It works + * in most cases (ie. when futexes are not shared on file descriptor + * or between different processes.). + */ + args->op = (args->op & ~LINUX_FUTEX_PRIVATE_FLAG); + + switch (args->op) { + case LINUX_FUTEX_WAIT: + +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_wait val %d uaddr %p"), + args->val, args->uaddr); +#endif + error = futex_get(args->uaddr, &wp, &f, FUTEX_CREATE_WP); + if (error) + return (error); + error = copyin(args->uaddr, &val, sizeof(val)); + if (error) { + futex_put(f, wp); + return (error); + } + if (val != args->val) { +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_wait uaddr %p WHOOPS %d != %d"), + args->uaddr, args->val, val); +#endif + futex_put(f, wp); + return (EWOULDBLOCK); + } + + error = futex_wait(f, wp, args->timeout); + break; + + case LINUX_FUTEX_WAKE: + + /* + * XXX: Linux is able to cope with different addresses + * corresponding to the same mapped memory in the sleeping + * and waker process(es). + */ +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_wake val %d uaddr %p"), + args->val, args->uaddr); +#endif + error = futex_get(args->uaddr, NULL, &f, FUTEX_DONTCREATE); + if (error) + return (error); + if (f == NULL) { + td->td_retval[0] = 0; + return (error);; + } + td->td_retval[0] = futex_wake(f, args->val); + futex_put(f, NULL); + break; + + case LINUX_FUTEX_CMP_REQUEUE: + +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_cmp_requeue uaddr %p " + "val %d val3 %d uaddr2 %p val2 %d"), + args->uaddr, args->val, args->val3, args->uaddr2, + (int)(unsigned long)args->timeout); +#endif + + /* + * Linux allows this, we would not, it is an incorrect + * usage of declared ABI, so return EINVAL. + */ + if (args->uaddr == args->uaddr2) + return (EINVAL); + error = futex_get0(args->uaddr, &f, 0); + if (error) + return (error); + + /* + * To avoid deadlocks return EINVAL if second futex + * exists at this time. Otherwise create the new futex + * and ignore false positive LOR which thus happens. + * + * Glibc fall back to FUTEX_WAKE in case of any error + * returned by FUTEX_CMP_REQUEUE. + */ + error = futex_get0(args->uaddr2, &f2, FUTEX_DONTEXISTS); + if (error) { + futex_put(f, NULL); + return (error); + } + error = copyin(args->uaddr, &val, sizeof(val)); + if (error) { + futex_put(f2, NULL); + futex_put(f, NULL); + return (error); + } + if (val != args->val3) { +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_cmp_requeue WHOOPS" + " VAL %d != UVAL %d"), args->val, val); +#endif + futex_put(f2, NULL); + futex_put(f, NULL); + return (EAGAIN); + } + + nrwake = (int)(unsigned long)args->timeout; + td->td_retval[0] = futex_requeue(f, args->val, f2, nrwake); + futex_put(f2, NULL); + futex_put(f, NULL); + break; + + case LINUX_FUTEX_WAKE_OP: + +#ifdef DEBUG + if (ldebug(sys_futex)) + printf(ARGS(sys_futex, "futex_wake_op " + "uaddr %p op %d val %x uaddr2 %p val3 %x"), + args->uaddr, args->op, args->val, + args->uaddr2, args->val3); +#endif + error = futex_get0(args->uaddr, &f, 0); + if (error) + return (error); + if (args->uaddr != args->uaddr2) + error = futex_get0(args->uaddr2, &f2, 0); + if (error) { + futex_put(f, NULL); + return (error); + } + + /* + * This function returns positive number as results and + * negative as errors + */ + op_ret = futex_atomic_op(td, args->val3, args->uaddr2); + + if (op_ret < 0) { + /* XXX: We don't handle the EFAULT yet. */ + if (op_ret != -EFAULT) { + if (f2 != NULL) + futex_put(f2, NULL); + futex_put(f, NULL); + return (-op_ret); + } + if (f2 != NULL) + futex_put(f2, NULL); + futex_put(f, NULL); + return (EFAULT); + } + + ret = futex_wake(f, args->val); + + if (op_ret > 0) { + op_ret = 0; + nrwake = (int)(unsigned long)args->timeout; + + if (f2 != NULL) + op_ret += futex_wake(f2, nrwake); + else + op_ret += futex_wake(f, nrwake); + ret += op_ret; + + } + if (f2 != NULL) + futex_put(f2, NULL); + futex_put(f, NULL); + td->td_retval[0] = ret; + break; + + case LINUX_FUTEX_LOCK_PI: + /* not yet implemented */ + return (ENOSYS); + + case LINUX_FUTEX_UNLOCK_PI: + /* not yet implemented */ + return (ENOSYS); + + case LINUX_FUTEX_TRYLOCK_PI: + /* not yet implemented */ + return (ENOSYS); + + case LINUX_FUTEX_REQUEUE: + + /* + * Glibc does not use this operation since version 2.3.3, + * as it is racy and replaced by FUTEX_CMP_REQUEUE operation. + * Glibc versions prior to 2.3.3 fall back to FUTEX_WAKE when + * FUTEX_REQUEUE returned EINVAL. + */ + em = em_find(td->td_proc, EMUL_DONTLOCK); + if (em->used_requeue == 0) { + printf("linux(%s (%d)) sys_futex: " + "unsupported futex_requeue op\n", + td->td_proc->p_comm, td->td_proc->p_pid); + em->used_requeue = 1; + } + return (EINVAL); + + default: + printf("linux_sys_futex: unknown op %d\n", args->op); + return (ENOSYS); + } + + return (error); +} + +int linux_set_robust_list(struct thread *td, struct linux_set_robust_list_args *args) { struct linux_emuldata *em; -#ifdef DEBUG +#ifdef DEBUG if (ldebug(set_robust_list)) - printf(ARGS(set_robust_list, "")); + printf(ARGS(set_robust_list, "head %p len %d"), + args->head, args->len); #endif + if (args->len != sizeof(struct linux_robust_list_head)) return (EINVAL); @@ -598,16 +686,16 @@ linux_get_robust_list(struct thread *td, } static int -handle_futex_death(void *uaddr, pid_t pid, int pi) +handle_futex_death(struct proc *p, uint32_t *uaddr, int pi) { - int uval, nval, mval; + uint32_t uval, nval, mval; struct futex *f; + int error; retry: if (copyin(uaddr, &uval, 4)) return (EFAULT); - - if ((uval & FUTEX_TID_MASK) == pid) { + if ((uval & FUTEX_TID_MASK) == p->p_pid) { mval = (uval & FUTEX_WAITERS) | FUTEX_OWNER_DIED; nval = casuword32(uaddr, uval, mval); @@ -618,8 +706,14 @@ retry: goto retry; if (!pi && (uval & FUTEX_WAITERS)) { - f = futex_get(uaddr, FUTEX_UNLOCKED); - futex_wake(f, 1, NULL, 0); + error = futex_get(uaddr, NULL, &f, + FUTEX_DONTCREATE); + if (error) + return (error); + if (f != NULL) { + futex_wake(f, 1); + futex_put(f, NULL); + } } } @@ -671,10 +765,8 @@ release_futexes(struct proc *p) rc = fetch_robust_entry(&next_entry, PTRIN(&entry->next), &next_pi); if (entry != pending) - if (handle_futex_death((char *)entry + futex_offset, - p->p_pid, pi)) + if (handle_futex_death(p, (uint32_t *)entry + futex_offset, pi)) return; - if (rc) return; @@ -688,6 +780,5 @@ release_futexes(struct proc *p) } if (pending) - handle_futex_death((char *) pending + futex_offset, - p->p_pid, pip); + handle_futex_death(p, (uint32_t *)pending + futex_offset, pip); } Modified: head/sys/i386/linux/linux_sysvec.c ============================================================================== --- head/sys/i386/linux/linux_sysvec.c Fri May 1 11:05:24 2009 (r191718) +++ head/sys/i386/linux/linux_sysvec.c Fri May 1 15:36:02 2009 (r191719) @@ -112,7 +112,7 @@ static int linux_szplatform; const char *linux_platform; extern LIST_HEAD(futex_list, futex) futex_list; -extern struct sx futex_sx; +extern struct mtx futex_mtx; static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1083,7 +1083,7 @@ linux_elf_modevent(module_t mod, int typ mtx_init(&emul_lock, "emuldata lock", NULL, MTX_DEF); sx_init(&emul_shared_lock, "emuldata->shared lock"); LIST_INIT(&futex_list); - sx_init(&futex_sx, "futex protection lock"); + mtx_init(&futex_mtx, "ftllk", NULL, MTX_DEF); linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit, NULL, 1000); linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, linux_schedtail, @@ -1116,7 +1116,7 @@ linux_elf_modevent(module_t mod, int typ linux_device_unregister_handler(*ldhp); mtx_destroy(&emul_lock); sx_destroy(&emul_shared_lock); - sx_destroy(&futex_sx); + mtx_destroy(&futex_mtx); EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag); EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag); From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:05:49 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 912321065672; Fri, 1 May 2009 17:05:49 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 73C8C8FC16; Fri, 1 May 2009 17:05:49 +0000 (UTC) (envelope-from mav@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 n41H5nW7048232; Fri, 1 May 2009 17:05:49 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41H5nVm048230; Fri, 1 May 2009 17:05:49 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905011705.n41H5nVm048230@svn.freebsd.org> From: Alexander Motin Date: Fri, 1 May 2009 17:05:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191720 - in head/sys: amd64/amd64 i386/i386 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:05:50 -0000 Author: mav Date: Fri May 1 17:05:49 2009 New Revision: 191720 URL: http://svn.freebsd.org/changeset/base/191720 Log: Use value -1 instead of 0 for marking unused APIC vectors. This fixes IRQ0 routing on LAPIC-enabled systems. Add hint.apic.0.clock tunable. Setting it 0 disables using LAPIC timers as hard-/stat-/profclock sources falling back to using i8254 and rtc timers. On modern CPUs LAPIC is a part of CPU core which is shutting down when CPU enters C3 or deeper power state. It makes no problems for interrupt processing, as chipset wakes up CPU on interrupt triggering. But entering C3 state kills LAPIC timer and freezes system time, making C3 and deeper states practically unusable. Using i8254 timer allows to avoid this problem. By using i8254 timer my T7700 C2D CPU with UP kernel successfully enters C3 state, saving more then a Watt of total idle power (>10%) in addition to all other power-saving techniques. This technique is not working for SMP yet, as only one CPU receives timer interrupts. But I think that problem could be fixed by forwarding interrupts to other CPUs with IPI. Modified: head/sys/amd64/amd64/local_apic.c head/sys/i386/i386/local_apic.c Modified: head/sys/amd64/amd64/local_apic.c ============================================================================== --- head/sys/amd64/amd64/local_apic.c Fri May 1 15:36:02 2009 (r191719) +++ head/sys/amd64/amd64/local_apic.c Fri May 1 17:05:49 2009 (r191720) @@ -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; @@ -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); @@ -974,7 +980,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: head/sys/i386/i386/local_apic.c ============================================================================== --- head/sys/i386/i386/local_apic.c Fri May 1 15:36:02 2009 (r191719) +++ head/sys/i386/i386/local_apic.c Fri May 1 17:05:49 2009 (r191720) @@ -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? */ @@ -256,6 +256,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; @@ -365,11 +367,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; @@ -809,7 +815,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); @@ -849,7 +855,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; @@ -936,7 +942,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); @@ -978,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) From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:15:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 104C41065670; Fri, 1 May 2009 17:15:30 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8DC68FC14; Fri, 1 May 2009 17:15:29 +0000 (UTC) (envelope-from sam@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 n41HFTL2048515; Fri, 1 May 2009 17:15:29 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41HFTRK048514; Fri, 1 May 2009 17:15:29 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905011715.n41HFTRK048514@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 17:15:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191722 - head/sys/modules X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:15:30 -0000 Author: sam Date: Fri May 1 17:15:29 2009 New Revision: 191722 URL: http://svn.freebsd.org/changeset/base/191722 Log: add ralfw Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Fri May 1 17:12:10 2009 (r191721) +++ head/sys/modules/Makefile Fri May 1 17:15:29 2009 (r191722) @@ -218,6 +218,7 @@ SUBDIR= ${_3dfx} \ ${_pst} \ puc \ ral \ + ralfw \ ${_random} \ rc4 \ ${_rdma} \ From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:16:34 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F9BE106564A; Fri, 1 May 2009 17:16:34 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D857C8FC1D; Fri, 1 May 2009 17:16:33 +0000 (UTC) (envelope-from sam@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 n41HGX0q048580; Fri, 1 May 2009 17:16:33 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41HGXNj048579; Fri, 1 May 2009 17:16:33 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905011716.n41HGXNj048579@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 17:16:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191723 - head/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:16:34 -0000 Author: sam Date: Fri May 1 17:16:33 2009 New Revision: 191723 URL: http://svn.freebsd.org/changeset/base/191723 Log: add uath Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri May 1 17:15:29 2009 (r191722) +++ head/sys/conf/files Fri May 1 17:16:33 2009 (r191723) @@ -1604,6 +1604,7 @@ dev/usb/net/usb_ethernet.c \ # USB WLAN drivers # dev/usb/wlan/if_rum.c optional rum +dev/usb/wlan/if_uath.c optional uath dev/usb/wlan/if_ural.c optional ural dev/usb/wlan/if_zyd.c optional zyd # From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:17:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FF59106566C; Fri, 1 May 2009 17:17:06 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6ECF98FC1E; Fri, 1 May 2009 17:17:06 +0000 (UTC) (envelope-from sam@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 n41HH6L7048629; Fri, 1 May 2009 17:17:06 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41HH6qG048628; Fri, 1 May 2009 17:17:06 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905011717.n41HH6qG048628@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 17:17:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191724 - head/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:17:07 -0000 Author: sam Date: Fri May 1 17:17:06 2009 New Revision: 191724 URL: http://svn.freebsd.org/changeset/base/191724 Log: add uath; sort usb wireless drivers Modified: head/sys/conf/NOTES Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Fri May 1 17:16:33 2009 (r191723) +++ head/sys/conf/NOTES Fri May 1 17:17:06 2009 (r191724) @@ -2474,14 +2474,17 @@ device rue device udav # -# ZyDas ZD1211/ZD1211B wireless ethernet driver -device zyd +# Ralink Technology RT2501USB/RT2601USB wireless driver +device rum +# +# Atheros AR5523 wireless driver +device uath # -# Ralink Technology RT2500USB chispet driver +# Ralink Technology RT2500USB wireless driver device ural # -# Ralink Technology RT2501USB/RT2601USB chispet driver -device rum +# ZyDas ZD1211/ZD1211B wireless driver +device zyd # # debugging options for the USB subsystem From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:18:46 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30D12106566B; Fri, 1 May 2009 17:18:46 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1FABC8FC08; Fri, 1 May 2009 17:18:46 +0000 (UTC) (envelope-from sam@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 n41HIkEU048693; Fri, 1 May 2009 17:18:46 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41HIkRI048692; Fri, 1 May 2009 17:18:46 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905011718.n41HIkRI048692@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 17:18:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191725 - head/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:18:46 -0000 Author: sam Date: Fri May 1 17:18:45 2009 New Revision: 191725 URL: http://svn.freebsd.org/changeset/base/191725 Log: add more tdma fixed rate defaults Modified: head/sys/conf/options Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Fri May 1 17:17:06 2009 (r191724) +++ head/sys/conf/options Fri May 1 17:18:45 2009 (r191725) @@ -800,6 +800,11 @@ TDMA_BINTVAL_DEFAULT opt_tdma.h TDMA_TXRATE_11B_DEFAULT opt_tdma.h TDMA_TXRATE_11G_DEFAULT opt_tdma.h TDMA_TXRATE_11A_DEFAULT opt_tdma.h +TDMA_TXRATE_TURBO_DEFAULT opt_tdma.h +TDMA_TXRATE_HALF_DEFAULT opt_tdma.h +TDMA_TXRATE_QUARTER_DEFAULT opt_tdma.h +TDMA_TXRATE_11NA_DEFAULT opt_tdma.h +TDMA_TXRATE_11NG_DEFAULT opt_tdma.h # Virtualize the network stack VIMAGE opt_global.h From owner-svn-src-all@FreeBSD.ORG Fri May 1 17:20:16 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB28B1065674; Fri, 1 May 2009 17:20:16 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F0ED8FC0A; Fri, 1 May 2009 17:20:16 +0000 (UTC) (envelope-from sam@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 n41HKGxZ048783; Fri, 1 May 2009 17:20:16 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41HKG0p048780; Fri, 1 May 2009 17:20:16 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905011720.n41HKG0p048780@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 17:20:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191726 - in head/sys: amd64/conf i386/conf pc98/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 17:20:17 -0000 Author: sam Date: Fri May 1 17:20:16 2009 New Revision: 191726 URL: http://svn.freebsd.org/changeset/base/191726 Log: o add uath o sort usb wireless drivers Modified: head/sys/amd64/conf/GENERIC head/sys/i386/conf/GENERIC head/sys/pc98/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Fri May 1 17:18:45 2009 (r191725) +++ head/sys/amd64/conf/GENERIC Fri May 1 17:20:16 2009 (r191726) @@ -292,8 +292,10 @@ device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device ural # Ralink Technology RT2500USB wireless NICs device rum # Ralink Technology RT2501USB wireless NICs +device uath # Atheros AR5523 wireless NICs +device ural # Ralink Technology RT2500USB wireless NICs +device zyd # ZyDAS zb1211/zb1211b wireless NICs device urio # Diamond Rio 500 MP3 player # USB Serial devices device uark # Technologies ARK3116 based serial adapters Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Fri May 1 17:18:45 2009 (r191725) +++ head/sys/i386/conf/GENERIC Fri May 1 17:20:16 2009 (r191726) @@ -305,8 +305,9 @@ device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device ural # Ralink Technology RT2500USB wireless NICs device rum # Ralink Technology RT2501USB wireless NICs +device ural # Ralink Technology RT2500USB wireless NICs +device uath # Atheros AR5523 wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs device urio # Diamond Rio 500 MP3 player # USB Serial devices Modified: head/sys/pc98/conf/GENERIC ============================================================================== --- head/sys/pc98/conf/GENERIC Fri May 1 17:18:45 2009 (r191725) +++ head/sys/pc98/conf/GENERIC Fri May 1 17:20:16 2009 (r191726) @@ -261,8 +261,9 @@ device bpf # Berkeley packet filter #device ulpt # Printer #device umass # Disks/Mass storage - Requires scbus and da #device ums # Mouse -#device ural # Ralink Technology RT2500USB wireless NICs #device rum # Ralink Technology RT2501USB wireless NICs +#device uath # Atheros AR5523 wireless NICs +#device ural # Ralink Technology RT2500USB wireless NICs #device zyd # ZyDAS zb1211/zb1211b wireless NICs #device urio # Diamond Rio 500 MP3 player # USB Serial devices From owner-svn-src-all@FreeBSD.ORG Fri May 1 19:46:43 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E151106566B; Fri, 1 May 2009 19:46:43 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 421B58FC14; Fri, 1 May 2009 19:46:43 +0000 (UTC) (envelope-from thompsa@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 n41JkhAn051687; Fri, 1 May 2009 19:46:43 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41Jkhpu051686; Fri, 1 May 2009 19:46:43 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200905011946.n41Jkhpu051686@svn.freebsd.org> From: Andrew Thompson Date: Fri, 1 May 2009 19:46:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191729 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 19:46:43 -0000 Author: thompsa Date: Fri May 1 19:46:42 2009 New Revision: 191729 URL: http://svn.freebsd.org/changeset/base/191729 Log: Reorder the bridge add and delete routines to avoid calling ifpromisc() with the bridge lock held. Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Fri May 1 19:05:07 2009 (r191728) +++ head/sys/net/if_bridge.c Fri May 1 19:46:42 2009 (r191729) @@ -893,29 +893,6 @@ bridge_delete_member(struct bridge_softc BRIDGE_LOCK_ASSERT(sc); - if (!gone) { - switch (ifs->if_type) { - case IFT_ETHER: - case IFT_L2VLAN: - /* - * Take the interface out of promiscuous mode. - */ - (void) ifpromisc(ifs, 0); - break; - - case IFT_GIF: - break; - - default: -#ifdef DIAGNOSTIC - panic("bridge_delete_member: impossible"); -#endif - break; - } - /* reneable any interface capabilities */ - bridge_set_ifcap(sc, bif, bif->bif_savedcaps); - } - if (bif->bif_flags & IFBIF_STP) bstp_disable(&bif->bif_stp); @@ -948,6 +925,28 @@ bridge_delete_member(struct bridge_softc ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt)); BRIDGE_UNLOCK(sc); + if (!gone) { + switch (ifs->if_type) { + case IFT_ETHER: + case IFT_L2VLAN: + /* + * Take the interface out of promiscuous mode. + */ + (void) ifpromisc(ifs, 0); + break; + + case IFT_GIF: + break; + + default: +#ifdef DIAGNOSTIC + panic("bridge_delete_member: impossible"); +#endif + break; + } + /* reneable any interface capabilities */ + bridge_set_ifcap(sc, bif, bif->bif_savedcaps); + } bstp_destroy(&bif->bif_stp); /* prepare to free */ BRIDGE_LOCK(sc); free(bif, M_DEVBUF); @@ -1017,17 +1016,9 @@ bridge_ioctl_add(struct bridge_softc *sc switch (ifs->if_type) { case IFT_ETHER: case IFT_L2VLAN: - /* - * Place the interface into promiscuous mode. - */ - error = ifpromisc(ifs, 1); - if (error) - goto out; - break; - case IFT_GIF: + /* permitted interface types */ break; - default: error = EINVAL; goto out; @@ -1055,6 +1046,20 @@ bridge_ioctl_add(struct bridge_softc *sc /* Set interface capabilities to the intersection set of all members */ bridge_mutecaps(sc); + + switch (ifs->if_type) { + case IFT_ETHER: + case IFT_L2VLAN: + /* + * Place the interface into promiscuous mode. + */ + BRIDGE_UNLOCK(sc); + error = ifpromisc(ifs, 1); + BRIDGE_LOCK(sc); + break; + } + if (error) + bridge_delete_member(sc, bif, 0); out: if (error) { if (bif != NULL) From owner-svn-src-all@FreeBSD.ORG Fri May 1 20:53:38 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6167A1065842; Fri, 1 May 2009 20:53:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F2228FC13; Fri, 1 May 2009 20:53:38 +0000 (UTC) (envelope-from mav@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 n41KrcEF052978; Fri, 1 May 2009 20:53:38 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41KrcdL052976; Fri, 1 May 2009 20:53:38 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905012053.n41KrcdL052976@svn.freebsd.org> From: Alexander Motin Date: Fri, 1 May 2009 20:53:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191730 - in head/sys: amd64/amd64 i386/i386 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 20:53:39 -0000 Author: mav Date: Fri May 1 20:53:37 2009 New Revision: 191730 URL: http://svn.freebsd.org/changeset/base/191730 Log: Small addition to r191720. Restore previous behaviour for the case of unknown interrupt. Invocation of IRQ -1 crashes my system on resume. Returning 0, as it was, is not perfect also, but at least not so dangerous. Modified: head/sys/amd64/amd64/local_apic.c head/sys/i386/i386/local_apic.c Modified: head/sys/amd64/amd64/local_apic.c ============================================================================== --- head/sys/amd64/amd64/local_apic.c Fri May 1 19:46:42 2009 (r191729) +++ head/sys/amd64/amd64/local_apic.c Fri May 1 20:53:37 2009 (r191730) @@ -950,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 Modified: head/sys/i386/i386/local_apic.c ============================================================================== --- head/sys/i386/i386/local_apic.c Fri May 1 19:46:42 2009 (r191729) +++ head/sys/i386/i386/local_apic.c Fri May 1 20:53:37 2009 (r191730) @@ -954,11 +954,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 From owner-svn-src-all@FreeBSD.ORG Fri May 1 21:05:41 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5988410656D5; Fri, 1 May 2009 21:05:41 +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 460F88FC15; Fri, 1 May 2009 21:05:41 +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 n41L5fRV053282; Fri, 1 May 2009 21:05:41 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41L5eAP053273; Fri, 1 May 2009 21:05:40 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905012105.n41L5eAP053273@svn.freebsd.org> From: Robert Watson Date: Fri, 1 May 2009 21:05:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191731 - head/sys/security/mac X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 21:05:42 -0000 Author: rwatson Date: Fri May 1 21:05:40 2009 New Revision: 191731 URL: http://svn.freebsd.org/changeset/base/191731 Log: Rename MAC Framework-internal macros used to invoke policy entry points: MAC_BOOLEAN -> MAC_POLICY_BOOLEAN MAC_BOOLEAN_NOSLEEP -> MAC_POLICY_BOOLEANN_NOSLEEP MAC_CHECK -> MAC_POLICY_CHECK MAC_CHECK_NOSLEEP -> MAC_POLICY_CHECK_NOSLEEP MAC_EXTERNALIZE -> MAC_POLICY_EXTERNALIZE MAC_GRANT -> MAC_POLICY_GRANT MAC_GRANT_NOSLEEP -> MAC_POLICY_GRANT_NOSLEEP MAC_INTERNALIZE -> MAC_POLICY_INTERNALIZE MAC_PERFORM -> MAC_POLICY_PERFORM_CHECK MAC_PERFORM_NOSLEEP -> MAC_POLICY_PERFORM_NOSLEEP This frees up those macro names for use in wrapping calls into the MAC Framework from the remainder of the kernel. Obtained from: TrustedBSD Project Modified: head/sys/security/mac/mac_atalk.c head/sys/security/mac/mac_audit.c head/sys/security/mac/mac_cred.c head/sys/security/mac/mac_inet.c head/sys/security/mac/mac_inet6.c head/sys/security/mac/mac_internal.h head/sys/security/mac/mac_net.c head/sys/security/mac/mac_pipe.c head/sys/security/mac/mac_posix_sem.c head/sys/security/mac/mac_posix_shm.c head/sys/security/mac/mac_priv.c head/sys/security/mac/mac_process.c head/sys/security/mac/mac_socket.c head/sys/security/mac/mac_system.c head/sys/security/mac/mac_sysv_msg.c head/sys/security/mac/mac_sysv_sem.c head/sys/security/mac/mac_sysv_shm.c head/sys/security/mac/mac_vfs.c Modified: head/sys/security/mac/mac_atalk.c ============================================================================== --- head/sys/security/mac/mac_atalk.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_atalk.c Fri May 1 21:05:40 2009 (r191731) @@ -64,7 +64,7 @@ mac_netatalk_aarp_send(struct ifnet *ifp mlabel = mac_mbuf_to_label(m); MAC_IFNET_LOCK(ifp); - MAC_PERFORM_NOSLEEP(netatalk_aarp_send, ifp, ifp->if_label, m, + MAC_POLICY_PERFORM_NOSLEEP(netatalk_aarp_send, ifp, ifp->if_label, m, mlabel); MAC_IFNET_UNLOCK(ifp); } Modified: head/sys/security/mac/mac_audit.c ============================================================================== --- head/sys/security/mac/mac_audit.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_audit.c Fri May 1 21:05:40 2009 (r191731) @@ -66,7 +66,7 @@ mac_cred_check_setaudit(struct ucred *cr { int error; - MAC_CHECK_NOSLEEP(cred_check_setaudit, cred, ai); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setaudit, cred, ai); MAC_CHECK_PROBE2(cred_check_setaudit, error, cred, ai); return (error); @@ -80,7 +80,7 @@ mac_cred_check_setaudit_addr(struct ucre { int error; - MAC_CHECK_NOSLEEP(cred_check_setaudit_addr, cred, aia); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setaudit_addr, cred, aia); MAC_CHECK_PROBE2(cred_check_setaudit_addr, error, cred, aia); return (error); @@ -93,7 +93,7 @@ mac_cred_check_setauid(struct ucred *cre { int error; - MAC_CHECK_NOSLEEP(cred_check_setauid, cred, auid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setauid, cred, auid); MAC_CHECK_PROBE2(cred_check_setauid, error, cred, auid); return (error); @@ -107,7 +107,7 @@ mac_system_check_audit(struct ucred *cre { int error; - MAC_CHECK_NOSLEEP(system_check_audit, cred, record, length); + MAC_POLICY_CHECK_NOSLEEP(system_check_audit, cred, record, length); MAC_CHECK_PROBE3(system_check_audit, error, cred, record, length); return (error); @@ -125,7 +125,7 @@ mac_system_check_auditctl(struct ucred * ASSERT_VOP_LOCKED(vp, "mac_system_check_auditctl"); vl = (vp != NULL) ? vp->v_label : NULL; - MAC_CHECK(system_check_auditctl, cred, vp, vl); + MAC_POLICY_CHECK(system_check_auditctl, cred, vp, vl); MAC_CHECK_PROBE2(system_check_auditctl, error, cred, vp); return (error); @@ -138,7 +138,7 @@ mac_system_check_auditon(struct ucred *c { int error; - MAC_CHECK_NOSLEEP(system_check_auditon, cred, cmd); + MAC_POLICY_CHECK_NOSLEEP(system_check_auditon, cred, cmd); MAC_CHECK_PROBE2(system_check_auditon, error, cred, cmd); return (error); Modified: head/sys/security/mac/mac_cred.c ============================================================================== --- head/sys/security/mac/mac_cred.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_cred.c Fri May 1 21:05:40 2009 (r191731) @@ -82,7 +82,7 @@ mac_cred_label_alloc(void) struct label *label; label = mac_labelzone_alloc(M_WAITOK); - MAC_PERFORM(cred_init_label, label); + MAC_POLICY_PERFORM(cred_init_label, label); return (label); } @@ -100,7 +100,7 @@ void mac_cred_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(cred_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(cred_destroy_label, label); mac_labelzone_free(label); } @@ -127,7 +127,7 @@ void mac_cred_associate_nfsd(struct ucred *cred) { - MAC_PERFORM_NOSLEEP(cred_associate_nfsd, cred); + MAC_POLICY_PERFORM_NOSLEEP(cred_associate_nfsd, cred); } /* @@ -138,7 +138,7 @@ void mac_cred_create_swapper(struct ucred *cred) { - MAC_PERFORM_NOSLEEP(cred_create_swapper, cred); + MAC_POLICY_PERFORM_NOSLEEP(cred_create_swapper, cred); } /* @@ -149,7 +149,7 @@ void mac_cred_create_init(struct ucred *cred) { - MAC_PERFORM_NOSLEEP(cred_create_init, cred); + MAC_POLICY_PERFORM_NOSLEEP(cred_create_init, cred); } int @@ -158,7 +158,7 @@ mac_cred_externalize_label(struct label { int error; - MAC_EXTERNALIZE(cred, label, elements, outbuf, outbuflen); + MAC_POLICY_EXTERNALIZE(cred, label, elements, outbuf, outbuflen); return (error); } @@ -168,7 +168,7 @@ mac_cred_internalize_label(struct label { int error; - MAC_INTERNALIZE(cred, label, string); + MAC_POLICY_INTERNALIZE(cred, label, string); return (error); } @@ -182,7 +182,8 @@ void mac_cred_copy(struct ucred *src, struct ucred *dest) { - MAC_PERFORM_NOSLEEP(cred_copy_label, src->cr_label, dest->cr_label); + MAC_POLICY_PERFORM_NOSLEEP(cred_copy_label, src->cr_label, + dest->cr_label); } /* @@ -194,7 +195,7 @@ void mac_cred_relabel(struct ucred *cred, struct label *newlabel) { - MAC_PERFORM_NOSLEEP(cred_relabel, cred, newlabel); + MAC_POLICY_PERFORM_NOSLEEP(cred_relabel, cred, newlabel); } MAC_CHECK_PROBE_DEFINE2(cred_check_relabel, "struct ucred *", @@ -205,7 +206,7 @@ mac_cred_check_relabel(struct ucred *cre { int error; - MAC_CHECK_NOSLEEP(cred_check_relabel, cred, newlabel); + MAC_POLICY_CHECK_NOSLEEP(cred_check_relabel, cred, newlabel); MAC_CHECK_PROBE2(cred_check_relabel, error, cred, newlabel); return (error); @@ -218,7 +219,7 @@ mac_cred_check_setuid(struct ucred *cred { int error; - MAC_CHECK_NOSLEEP(cred_check_setuid, cred, uid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setuid, cred, uid); MAC_CHECK_PROBE2(cred_check_setuid, error, cred, uid); return (error); @@ -231,7 +232,7 @@ mac_cred_check_seteuid(struct ucred *cre { int error; - MAC_CHECK_NOSLEEP(cred_check_seteuid, cred, euid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_seteuid, cred, euid); MAC_CHECK_PROBE2(cred_check_seteuid, error, cred, euid); return (error); @@ -244,7 +245,7 @@ mac_cred_check_setgid(struct ucred *cred { int error; - MAC_CHECK_NOSLEEP(cred_check_setgid, cred, gid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setgid, cred, gid); MAC_CHECK_PROBE2(cred_check_setgid, error, cred, gid); return (error); @@ -257,7 +258,7 @@ mac_cred_check_setegid(struct ucred *cre { int error; - MAC_CHECK_NOSLEEP(cred_check_setegid, cred, egid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setegid, cred, egid); MAC_CHECK_PROBE2(cred_check_setegid, error, cred, egid); return (error); @@ -271,7 +272,7 @@ mac_cred_check_setgroups(struct ucred *c { int error; - MAC_CHECK_NOSLEEP(cred_check_setgroups, cred, ngroups, gidset); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setgroups, cred, ngroups, gidset); MAC_CHECK_PROBE3(cred_check_setgroups, error, cred, ngroups, gidset); return (error); @@ -285,7 +286,7 @@ mac_cred_check_setreuid(struct ucred *cr { int error; - MAC_CHECK_NOSLEEP(cred_check_setreuid, cred, ruid, euid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setreuid, cred, ruid, euid); MAC_CHECK_PROBE3(cred_check_setreuid, error, cred, ruid, euid); return (error); @@ -299,7 +300,7 @@ mac_cred_check_setregid(struct ucred *cr { int error; - MAC_CHECK_NOSLEEP(cred_check_setregid, cred, rgid, egid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setregid, cred, rgid, egid); MAC_CHECK_PROBE3(cred_check_setregid, error, cred, rgid, egid); return (error); @@ -314,7 +315,7 @@ mac_cred_check_setresuid(struct ucred *c { int error; - MAC_CHECK_NOSLEEP(cred_check_setresuid, cred, ruid, euid, suid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setresuid, cred, ruid, euid, suid); MAC_CHECK_PROBE4(cred_check_setresuid, error, cred, ruid, euid, suid); @@ -330,7 +331,7 @@ mac_cred_check_setresgid(struct ucred *c { int error; - MAC_CHECK_NOSLEEP(cred_check_setresgid, cred, rgid, egid, sgid); + MAC_POLICY_CHECK_NOSLEEP(cred_check_setresgid, cred, rgid, egid, sgid); MAC_CHECK_PROBE4(cred_check_setresgid, error, cred, rgid, egid, sgid); @@ -345,7 +346,7 @@ mac_cred_check_visible(struct ucred *cr1 { int error; - MAC_CHECK_NOSLEEP(cred_check_visible, cr1, cr2); + MAC_POLICY_CHECK_NOSLEEP(cred_check_visible, cr1, cr2); MAC_CHECK_PROBE2(cred_check_visible, error, cr1, cr2); return (error); Modified: head/sys/security/mac/mac_inet.c ============================================================================== --- head/sys/security/mac/mac_inet.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_inet.c Fri May 1 21:05:40 2009 (r191731) @@ -85,11 +85,11 @@ mac_inpcb_label_alloc(int flag) if (label == NULL) return (NULL); if (flag & M_WAITOK) - MAC_CHECK(inpcb_init_label, label, flag); + MAC_POLICY_CHECK(inpcb_init_label, label, flag); else - MAC_CHECK_NOSLEEP(inpcb_init_label, label, flag); + MAC_POLICY_CHECK_NOSLEEP(inpcb_init_label, label, flag); if (error) { - MAC_PERFORM_NOSLEEP(inpcb_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(inpcb_destroy_label, label); mac_labelzone_free(label); return (NULL); } @@ -120,11 +120,11 @@ mac_ipq_label_alloc(int flag) return (NULL); if (flag & M_WAITOK) - MAC_CHECK(ipq_init_label, label, flag); + MAC_POLICY_CHECK(ipq_init_label, label, flag); else - MAC_CHECK_NOSLEEP(ipq_init_label, label, flag); + MAC_POLICY_CHECK_NOSLEEP(ipq_init_label, label, flag); if (error) { - MAC_PERFORM_NOSLEEP(ipq_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(ipq_destroy_label, label); mac_labelzone_free(label); return (NULL); } @@ -148,7 +148,7 @@ static void mac_inpcb_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(inpcb_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(inpcb_destroy_label, label); mac_labelzone_free(label); } @@ -166,7 +166,7 @@ static void mac_ipq_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(ipq_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(ipq_destroy_label, label); mac_labelzone_free(label); } @@ -184,7 +184,7 @@ void mac_inpcb_create(struct socket *so, struct inpcb *inp) { - MAC_PERFORM_NOSLEEP(inpcb_create, so, so->so_label, inp, + MAC_POLICY_PERFORM_NOSLEEP(inpcb_create, so, so->so_label, inp, inp->inp_label); } @@ -195,7 +195,8 @@ mac_ipq_reassemble(struct ipq *q, struct label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ipq_reassemble, q, q->ipq_label, m, label); + MAC_POLICY_PERFORM_NOSLEEP(ipq_reassemble, q, q->ipq_label, m, + label); } void @@ -206,7 +207,8 @@ mac_netinet_fragment(struct mbuf *m, str mlabel = mac_mbuf_to_label(m); fraglabel = mac_mbuf_to_label(frag); - MAC_PERFORM_NOSLEEP(netinet_fragment, m, mlabel, frag, fraglabel); + MAC_POLICY_PERFORM_NOSLEEP(netinet_fragment, m, mlabel, frag, + fraglabel); } void @@ -216,7 +218,7 @@ mac_ipq_create(struct mbuf *m, struct ip label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ipq_create, m, label, q, q->ipq_label); + MAC_POLICY_PERFORM_NOSLEEP(ipq_create, m, label, q, q->ipq_label); } void @@ -227,7 +229,7 @@ mac_inpcb_create_mbuf(struct inpcb *inp, INP_LOCK_ASSERT(inp); mlabel = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(inpcb_create_mbuf, inp, inp->inp_label, m, + MAC_POLICY_PERFORM_NOSLEEP(inpcb_create_mbuf, inp, inp->inp_label, m, mlabel); } @@ -240,7 +242,7 @@ mac_ipq_match(struct mbuf *m, struct ipq label = mac_mbuf_to_label(m); result = 1; - MAC_BOOLEAN_NOSLEEP(ipq_match, &&, m, label, q, q->ipq_label); + MAC_POLICY_BOOLEAN_NOSLEEP(ipq_match, &&, m, label, q, q->ipq_label); return (result); } @@ -253,7 +255,8 @@ mac_netinet_arp_send(struct ifnet *ifp, mlabel = mac_mbuf_to_label(m); MAC_IFNET_LOCK(ifp); - MAC_PERFORM_NOSLEEP(netinet_arp_send, ifp, ifp->if_label, m, mlabel); + MAC_POLICY_PERFORM_NOSLEEP(netinet_arp_send, ifp, ifp->if_label, m, + mlabel); MAC_IFNET_UNLOCK(ifp); } @@ -265,8 +268,8 @@ mac_netinet_icmp_reply(struct mbuf *mrec mrecvlabel = mac_mbuf_to_label(mrecv); msendlabel = mac_mbuf_to_label(msend); - MAC_PERFORM_NOSLEEP(netinet_icmp_reply, mrecv, mrecvlabel, msend, - msendlabel); + MAC_POLICY_PERFORM_NOSLEEP(netinet_icmp_reply, mrecv, mrecvlabel, + msend, msendlabel); } void @@ -276,7 +279,7 @@ mac_netinet_icmp_replyinplace(struct mbu label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(netinet_icmp_replyinplace, m, label); + MAC_POLICY_PERFORM_NOSLEEP(netinet_icmp_replyinplace, m, label); } void @@ -287,7 +290,7 @@ mac_netinet_igmp_send(struct ifnet *ifp, mlabel = mac_mbuf_to_label(m); MAC_IFNET_LOCK(ifp); - MAC_PERFORM_NOSLEEP(netinet_igmp_send, ifp, ifp->if_label, m, + MAC_POLICY_PERFORM_NOSLEEP(netinet_igmp_send, ifp, ifp->if_label, m, mlabel); MAC_IFNET_UNLOCK(ifp); } @@ -299,7 +302,7 @@ mac_netinet_tcp_reply(struct mbuf *m) label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(netinet_tcp_reply, m, label); + MAC_POLICY_PERFORM_NOSLEEP(netinet_tcp_reply, m, label); } void @@ -309,7 +312,7 @@ mac_ipq_update(struct mbuf *m, struct ip label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ipq_update, m, label, q, q->ipq_label); + MAC_POLICY_PERFORM_NOSLEEP(ipq_update, m, label, q, q->ipq_label); } MAC_CHECK_PROBE_DEFINE2(inpcb_check_deliver, "struct inpcb *", @@ -325,7 +328,7 @@ mac_inpcb_check_deliver(struct inpcb *in label = mac_mbuf_to_label(m); - MAC_CHECK_NOSLEEP(inpcb_check_deliver, inp, inp->inp_label, m, + MAC_POLICY_CHECK_NOSLEEP(inpcb_check_deliver, inp, inp->inp_label, m, label); MAC_CHECK_PROBE2(inpcb_check_deliver, error, inp, m); @@ -342,7 +345,8 @@ mac_inpcb_check_visible(struct ucred *cr INP_LOCK_ASSERT(inp); - MAC_CHECK_NOSLEEP(inpcb_check_visible, cred, inp, inp->inp_label); + MAC_POLICY_CHECK_NOSLEEP(inpcb_check_visible, cred, inp, + inp->inp_label); MAC_CHECK_PROBE2(inpcb_check_visible, error, cred, inp); return (error); @@ -355,7 +359,7 @@ mac_inpcb_sosetlabel(struct socket *so, INP_WLOCK_ASSERT(inp); SOCK_LOCK_ASSERT(so); - MAC_PERFORM_NOSLEEP(inpcb_sosetlabel, so, so->so_label, inp, + MAC_POLICY_PERFORM_NOSLEEP(inpcb_sosetlabel, so, so->so_label, inp, inp->inp_label); } @@ -370,8 +374,8 @@ mac_netinet_firewall_reply(struct mbuf * mrecvlabel = mac_mbuf_to_label(mrecv); msendlabel = mac_mbuf_to_label(msend); - MAC_PERFORM_NOSLEEP(netinet_firewall_reply, mrecv, mrecvlabel, msend, - msendlabel); + MAC_POLICY_PERFORM_NOSLEEP(netinet_firewall_reply, mrecv, mrecvlabel, + msend, msendlabel); } void @@ -383,7 +387,7 @@ mac_netinet_firewall_send(struct mbuf *m label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(netinet_firewall_send, m, label); + MAC_POLICY_PERFORM_NOSLEEP(netinet_firewall_send, m, label); } /* @@ -400,7 +404,7 @@ mac_syncache_destroy(struct label **labe { if (*label != NULL) { - MAC_PERFORM_NOSLEEP(syncache_destroy_label, *label); + MAC_POLICY_PERFORM_NOSLEEP(syncache_destroy_label, *label); mac_labelzone_free(*label); *label = NULL; } @@ -422,9 +426,11 @@ mac_syncache_init(struct label **label) * MAC_PERFORM so we can propagate allocation failures back * to the syncache code. */ - MAC_CHECK_NOSLEEP(syncache_init_label, *label, M_NOWAIT); + MAC_POLICY_CHECK_NOSLEEP(syncache_init_label, *label, + M_NOWAIT); if (error) { - MAC_PERFORM_NOSLEEP(syncache_destroy_label, *label); + MAC_POLICY_PERFORM_NOSLEEP(syncache_destroy_label, + *label); mac_labelzone_free(*label); } return (error); @@ -439,7 +445,7 @@ mac_syncache_create(struct label *label, INP_WLOCK_ASSERT(inp); - MAC_PERFORM_NOSLEEP(syncache_create, label, inp); + MAC_POLICY_PERFORM_NOSLEEP(syncache_create, label, inp); } void @@ -451,5 +457,6 @@ mac_syncache_create_mbuf(struct label *s mlabel = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(syncache_create_mbuf, sc_label, m, mlabel); + MAC_POLICY_PERFORM_NOSLEEP(syncache_create_mbuf, sc_label, m, + mlabel); } Modified: head/sys/security/mac/mac_inet6.c ============================================================================== --- head/sys/security/mac/mac_inet6.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_inet6.c Fri May 1 21:05:40 2009 (r191731) @@ -71,11 +71,11 @@ mac_ip6q_label_alloc(int flag) return (NULL); if (flag & M_WAITOK) - MAC_CHECK(ip6q_init_label, label, flag); + MAC_POLICY_CHECK(ip6q_init_label, label, flag); else - MAC_CHECK_NOSLEEP(ip6q_init_label, label, flag); + MAC_POLICY_CHECK_NOSLEEP(ip6q_init_label, label, flag); if (error) { - MAC_PERFORM_NOSLEEP(ip6q_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(ip6q_destroy_label, label); mac_labelzone_free(label); return (NULL); } @@ -99,7 +99,7 @@ static void mac_ip6q_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(ip6q_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(ip6q_destroy_label, label); mac_labelzone_free(label); } @@ -120,7 +120,8 @@ mac_ip6q_reassemble(struct ip6q *q6, str label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ip6q_reassemble, q6, q6->ip6q_label, m, label); + MAC_POLICY_PERFORM_NOSLEEP(ip6q_reassemble, q6, q6->ip6q_label, m, + label); } void @@ -130,7 +131,8 @@ mac_ip6q_create(struct mbuf *m, struct i label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ip6q_create, m, label, q6, q6->ip6q_label); + MAC_POLICY_PERFORM_NOSLEEP(ip6q_create, m, label, q6, + q6->ip6q_label); } int @@ -142,7 +144,8 @@ mac_ip6q_match(struct mbuf *m, struct ip label = mac_mbuf_to_label(m); result = 1; - MAC_BOOLEAN_NOSLEEP(ip6q_match, &&, m, label, q6, q6->ip6q_label); + MAC_POLICY_BOOLEAN_NOSLEEP(ip6q_match, &&, m, label, q6, + q6->ip6q_label); return (result); } @@ -154,7 +157,8 @@ mac_ip6q_update(struct mbuf *m, struct i label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(ip6q_update, m, label, q6, q6->ip6q_label); + MAC_POLICY_PERFORM_NOSLEEP(ip6q_update, m, label, q6, + q6->ip6q_label); } void @@ -164,6 +168,6 @@ mac_netinet6_nd6_send(struct ifnet *ifp, mlabel = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(netinet6_nd6_send, ifp, ifp->if_label, m, + MAC_POLICY_PERFORM_NOSLEEP(netinet6_nd6_send, ifp, ifp->if_label, m, mlabel); } Modified: head/sys/security/mac/mac_internal.h ============================================================================== --- head/sys/security/mac/mac_internal.h Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_internal.h Fri May 1 21:05:40 2009 (r191731) @@ -257,11 +257,11 @@ int vn_setlabel(struct vnode *vp, struct * specific entry point. They come in two forms: one which permits policies * to sleep/block, and another that does not. * - * MAC_CHECK performs the designated check by walking the policy module list - * and checking with each as to how it feels about the request. Note that it - * returns its value via 'error' in the scope of the caller. + * MAC_POLICY_CHECK performs the designated check by walking the policy + * module list and checking with each as to how it feels about the request. + * Note that it returns its value via 'error' in the scope of the caller. */ -#define MAC_CHECK(check, args...) do { \ +#define MAC_POLICY_CHECK(check, args...) do { \ struct mac_policy_conf *mpc; \ \ error = 0; \ @@ -283,7 +283,7 @@ int vn_setlabel(struct vnode *vp, struct } \ } while (0) -#define MAC_CHECK_NOSLEEP(check, args...) do { \ +#define MAC_POLICY_CHECK_NOSLEEP(check, args...) do { \ struct mac_policy_conf *mpc; \ \ error = 0; \ @@ -306,13 +306,13 @@ int vn_setlabel(struct vnode *vp, struct } while (0) /* - * MAC_GRANT performs the designated check by walking the policy module list - * and checking with each as to how it feels about the request. Unlike - * MAC_CHECK, it grants if any policies return '0', and otherwise returns - * EPERM. Note that it returns its value via 'error' in the scope of the - * caller. + * MAC_POLICY_GRANT performs the designated check by walking the policy + * module list and checking with each as to how it feels about the request. + * Unlike MAC_POLICY_CHECK, it grants if any policies return '0', and + * otherwise returns EPERM. Note that it returns its value via 'error' in + * the scope of the caller. */ -#define MAC_GRANT_NOSLEEP(check, args...) do { \ +#define MAC_POLICY_GRANT_NOSLEEP(check, args...) do { \ struct mac_policy_conf *mpc; \ \ error = EPERM; \ @@ -336,13 +336,13 @@ int vn_setlabel(struct vnode *vp, struct } while (0) /* - * MAC_BOOLEAN performs the designated boolean composition by walking the - * module list, invoking each instance of the operation, and combining the - * results using the passed C operator. Note that it returns its value via - * 'result' in the scope of the caller, which should be initialized by the - * caller in a meaningful way to get a meaningful result. + * MAC_POLICY_BOOLEAN performs the designated boolean composition by walking + * the module list, invoking each instance of the operation, and combining + * the results using the passed C operator. Note that it returns its value + * via 'result' in the scope of the caller, which should be initialized by + * the caller in a meaningful way to get a meaningful result. */ -#define MAC_BOOLEAN(operation, composition, args...) do { \ +#define MAC_POLICY_BOOLEAN(operation, composition, args...) do { \ struct mac_policy_conf *mpc; \ \ LIST_FOREACH(mpc, &mac_static_policy_list, mpc_list) { \ @@ -362,7 +362,7 @@ int vn_setlabel(struct vnode *vp, struct } \ } while (0) -#define MAC_BOOLEAN_NOSLEEP(operation, composition, args...) do { \ +#define MAC_POLICY_BOOLEAN_NOSLEEP(operation, composition, args...) do {\ struct mac_policy_conf *mpc; \ \ LIST_FOREACH(mpc, &mac_static_policy_list, mpc_list) { \ @@ -383,13 +383,13 @@ int vn_setlabel(struct vnode *vp, struct } while (0) /* - * MAC_EXTERNALIZE queries each policy to see if it can generate an + * MAC_POLICY_EXTERNALIZE queries each policy to see if it can generate an * externalized version of a label element by name. Policies declare whether * they have matched a particular element name, parsed from the string by - * MAC_EXTERNALIZE, and an error is returned if any element is matched by no - * policy. + * MAC_POLICY_EXTERNALIZE, and an error is returned if any element is matched + * by no policy. */ -#define MAC_EXTERNALIZE(type, label, elementlist, outbuf, \ +#define MAC_POLICY_EXTERNALIZE(type, label, elementlist, outbuf, \ outbuflen) do { \ int claimed, first, ignorenotfound, savedlen; \ char *element_name, *element_temp; \ @@ -415,7 +415,7 @@ int vn_setlabel(struct vnode *vp, struct break; \ } \ claimed = 0; \ - MAC_CHECK(type ## _externalize_label, label, \ + MAC_POLICY_CHECK(type ## _externalize_label, label, \ element_name, &sb, &claimed); \ if (error) \ break; \ @@ -433,11 +433,11 @@ int vn_setlabel(struct vnode *vp, struct } while (0) /* - * MAC_INTERNALIZE presents parsed element names and data to each policy to - * see if any is willing to claim it and internalize the label data. If no - * policies match, an error is returned. + * MAC_POLICY_INTERNALIZE presents parsed element names and data to each + * policy to see if any is willing to claim it and internalize the label + * data. If no policies match, an error is returned. */ -#define MAC_INTERNALIZE(type, label, instring) do { \ +#define MAC_POLICY_INTERNALIZE(type, label, instring) do { \ char *element, *element_name, *element_data; \ int claimed; \ \ @@ -451,7 +451,7 @@ int vn_setlabel(struct vnode *vp, struct break; \ } \ claimed = 0; \ - MAC_CHECK(type ## _internalize_label, label, \ + MAC_POLICY_CHECK(type ## _internalize_label, label, \ element_name, element_data, &claimed); \ if (error) \ break; \ @@ -464,10 +464,10 @@ int vn_setlabel(struct vnode *vp, struct } while (0) /* - * MAC_PERFORM performs the designated operation by walking the policy module - * list and invoking that operation for each policy. + * MAC_POLICY_PERFORM performs the designated operation by walking the policy + * module list and invoking that operation for each policy. */ -#define MAC_PERFORM(operation, args...) do { \ +#define MAC_POLICY_PERFORM(operation, args...) do { \ struct mac_policy_conf *mpc; \ \ LIST_FOREACH(mpc, &mac_static_policy_list, mpc_list) { \ @@ -484,7 +484,7 @@ int vn_setlabel(struct vnode *vp, struct } \ } while (0) -#define MAC_PERFORM_NOSLEEP(operation, args...) do { \ +#define MAC_POLICY_PERFORM_NOSLEEP(operation, args...) do { \ struct mac_policy_conf *mpc; \ \ LIST_FOREACH(mpc, &mac_static_policy_list, mpc_list) { \ Modified: head/sys/security/mac/mac_net.c ============================================================================== --- head/sys/security/mac/mac_net.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_net.c Fri May 1 21:05:40 2009 (r191731) @@ -110,7 +110,7 @@ mac_bpfdesc_label_alloc(void) struct label *label; label = mac_labelzone_alloc(M_WAITOK); - MAC_PERFORM(bpfdesc_init_label, label); + MAC_POLICY_PERFORM(bpfdesc_init_label, label); return (label); } @@ -130,7 +130,7 @@ mac_ifnet_label_alloc(void) struct label *label; label = mac_labelzone_alloc(M_WAITOK); - MAC_PERFORM(ifnet_init_label, label); + MAC_POLICY_PERFORM(ifnet_init_label, label); return (label); } @@ -154,11 +154,11 @@ mac_mbuf_tag_init(struct m_tag *tag, int mac_init_label(label); if (flag & M_WAITOK) - MAC_CHECK(mbuf_init_label, label, flag); + MAC_POLICY_CHECK(mbuf_init_label, label, flag); else - MAC_CHECK_NOSLEEP(mbuf_init_label, label, flag); + MAC_POLICY_CHECK_NOSLEEP(mbuf_init_label, label, flag); if (error) { - MAC_PERFORM_NOSLEEP(mbuf_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(mbuf_destroy_label, label); mac_destroy_label(label); } return (error); @@ -191,7 +191,7 @@ static void mac_bpfdesc_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(bpfdesc_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(bpfdesc_destroy_label, label); mac_labelzone_free(label); } @@ -209,7 +209,7 @@ static void mac_ifnet_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(ifnet_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(ifnet_destroy_label, label); mac_labelzone_free(label); } @@ -230,7 +230,7 @@ mac_mbuf_tag_destroy(struct m_tag *tag) label = (struct label *)(tag+1); - MAC_PERFORM_NOSLEEP(mbuf_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(mbuf_destroy_label, label); mac_destroy_label(label); } @@ -250,7 +250,7 @@ mac_mbuf_tag_copy(struct m_tag *src, str * mac_mbuf_tag_init() is called on the target tag in m_tag_copy(), * so we don't need to call it here. */ - MAC_PERFORM_NOSLEEP(mbuf_copy_label, src_label, dest_label); + MAC_POLICY_PERFORM_NOSLEEP(mbuf_copy_label, src_label, dest_label); } void @@ -261,14 +261,14 @@ mac_mbuf_copy(struct mbuf *m_from, struc src_label = mac_mbuf_to_label(m_from); dest_label = mac_mbuf_to_label(m_to); - MAC_PERFORM_NOSLEEP(mbuf_copy_label, src_label, dest_label); + MAC_POLICY_PERFORM_NOSLEEP(mbuf_copy_label, src_label, dest_label); } static void mac_ifnet_copy_label(struct label *src, struct label *dest) { - MAC_PERFORM_NOSLEEP(ifnet_copy_label, src, dest); + MAC_POLICY_PERFORM_NOSLEEP(ifnet_copy_label, src, dest); } static int @@ -277,7 +277,7 @@ mac_ifnet_externalize_label(struct label { int error; - MAC_EXTERNALIZE(ifnet, label, elements, outbuf, outbuflen); + MAC_POLICY_EXTERNALIZE(ifnet, label, elements, outbuf, outbuflen); return (error); } @@ -287,7 +287,7 @@ mac_ifnet_internalize_label(struct label { int error; - MAC_INTERNALIZE(ifnet, label, string); + MAC_POLICY_INTERNALIZE(ifnet, label, string); return (error); } @@ -297,7 +297,7 @@ mac_ifnet_create(struct ifnet *ifp) { MAC_IFNET_LOCK(ifp); - MAC_PERFORM_NOSLEEP(ifnet_create, ifp, ifp->if_label); + MAC_POLICY_PERFORM_NOSLEEP(ifnet_create, ifp, ifp->if_label); MAC_IFNET_UNLOCK(ifp); } @@ -305,7 +305,7 @@ void mac_bpfdesc_create(struct ucred *cred, struct bpf_d *d) { - MAC_PERFORM_NOSLEEP(bpfdesc_create, cred, d, d->bd_label); + MAC_POLICY_PERFORM_NOSLEEP(bpfdesc_create, cred, d, d->bd_label); } void @@ -317,7 +317,8 @@ mac_bpfdesc_create_mbuf(struct bpf_d *d, label = mac_mbuf_to_label(m); - MAC_PERFORM_NOSLEEP(bpfdesc_create_mbuf, d, d->bd_label, m, label); + MAC_POLICY_PERFORM_NOSLEEP(bpfdesc_create_mbuf, d, d->bd_label, m, + label); } void @@ -328,7 +329,8 @@ mac_ifnet_create_mbuf(struct ifnet *ifp, label = mac_mbuf_to_label(m); MAC_IFNET_LOCK(ifp); - MAC_PERFORM_NOSLEEP(ifnet_create_mbuf, ifp, ifp->if_label, m, label); + MAC_POLICY_PERFORM_NOSLEEP(ifnet_create_mbuf, ifp, ifp->if_label, m, + label); MAC_IFNET_UNLOCK(ifp); } @@ -343,7 +345,7 @@ mac_bpfdesc_check_receive(struct bpf_d * BPFD_LOCK_ASSERT(d); MAC_IFNET_LOCK(ifp); - MAC_CHECK_NOSLEEP(bpfdesc_check_receive, d, d->bd_label, ifp, + MAC_POLICY_CHECK_NOSLEEP(bpfdesc_check_receive, d, d->bd_label, ifp, ifp->if_label); MAC_CHECK_PROBE2(bpfdesc_check_receive, error, d, ifp); MAC_IFNET_UNLOCK(ifp); @@ -365,7 +367,7 @@ mac_ifnet_check_transmit(struct ifnet *i label = mac_mbuf_to_label(m); MAC_IFNET_LOCK(ifp); - MAC_CHECK_NOSLEEP(ifnet_check_transmit, ifp, ifp->if_label, m, + MAC_POLICY_CHECK_NOSLEEP(ifnet_check_transmit, ifp, ifp->if_label, m, label); MAC_CHECK_PROBE2(ifnet_check_transmit, error, ifp, m); MAC_IFNET_UNLOCK(ifp); @@ -463,15 +465,15 @@ mac_ifnet_ioctl_set(struct ucred *cred, } MAC_IFNET_LOCK(ifp); - MAC_CHECK_NOSLEEP(ifnet_check_relabel, cred, ifp, ifp->if_label, - intlabel); + MAC_POLICY_CHECK_NOSLEEP(ifnet_check_relabel, cred, ifp, + ifp->if_label, intlabel); if (error) { MAC_IFNET_UNLOCK(ifp); mac_ifnet_label_free(intlabel); return (error); } - MAC_PERFORM_NOSLEEP(ifnet_relabel, cred, ifp, ifp->if_label, + MAC_POLICY_PERFORM_NOSLEEP(ifnet_relabel, cred, ifp, ifp->if_label, intlabel); MAC_IFNET_UNLOCK(ifp); Modified: head/sys/security/mac/mac_pipe.c ============================================================================== --- head/sys/security/mac/mac_pipe.c Fri May 1 20:53:37 2009 (r191730) +++ head/sys/security/mac/mac_pipe.c Fri May 1 21:05:40 2009 (r191731) @@ -66,7 +66,7 @@ mac_pipe_label_alloc(void) struct label *label; label = mac_labelzone_alloc(M_WAITOK); - MAC_PERFORM(pipe_init_label, label); + MAC_POLICY_PERFORM(pipe_init_label, label); return (label); } @@ -84,7 +84,7 @@ void mac_pipe_label_free(struct label *label) { - MAC_PERFORM_NOSLEEP(pipe_destroy_label, label); + MAC_POLICY_PERFORM_NOSLEEP(pipe_destroy_label, label); mac_labelzone_free(label); } @@ -102,7 +102,7 @@ void mac_pipe_copy_label(struct label *src, struct label *dest) { - MAC_PERFORM_NOSLEEP(pipe_copy_label, src, dest); + MAC_POLICY_PERFORM_NOSLEEP(pipe_copy_label, src, dest); } int @@ -111,7 +111,7 @@ mac_pipe_externalize_label(struct label { int error; - MAC_EXTERNALIZE(pipe, label, elements, outbuf, outbuflen); + MAC_POLICY_EXTERNALIZE(pipe, label, elements, outbuf, outbuflen); return (error); } @@ -121,7 +121,7 @@ mac_pipe_internalize_label(struct label { int error; - MAC_INTERNALIZE(pipe, label, string); + MAC_POLICY_INTERNALIZE(pipe, label, string); return (error); } @@ -130,7 +130,7 @@ void mac_pipe_create(struct ucred *cred, struct pipepair *pp) { - MAC_PERFORM_NOSLEEP(pipe_create, cred, pp, pp->pp_label); + MAC_POLICY_PERFORM_NOSLEEP(pipe_create, cred, pp, pp->pp_label); } static void @@ -138,7 +138,8 @@ mac_pipe_relabel(struct ucred *cred, str struct label *newlabel) { - MAC_PERFORM_NOSLEEP(pipe_relabel, cred, pp, pp->pp_label, newlabel); + MAC_POLICY_PERFORM_NOSLEEP(pipe_relabel, cred, pp, pp->pp_label, + newlabel); } MAC_CHECK_PROBE_DEFINE4(pipe_check_ioctl, "struct ucred *", @@ -152,8 +153,8 @@ mac_pipe_check_ioctl(struct ucred *cred, mtx_assert(&pp->pp_mtx, MA_OWNED); - MAC_CHECK_NOSLEEP(pipe_check_ioctl, cred, pp, pp->pp_label, cmd, - data); + MAC_POLICY_CHECK_NOSLEEP(pipe_check_ioctl, cred, pp, pp->pp_label, + cmd, data); MAC_CHECK_PROBE4(pipe_check_ioctl, error, cred, pp, cmd, data); return (error); @@ -169,7 +170,7 @@ mac_pipe_check_poll(struct ucred *cred, mtx_assert(&pp->pp_mtx, MA_OWNED); - MAC_CHECK_NOSLEEP(pipe_check_poll, cred, pp, pp->pp_label); + MAC_POLICY_CHECK_NOSLEEP(pipe_check_poll, cred, pp, pp->pp_label); MAC_CHECK_PROBE2(pipe_check_poll, error, cred, pp); return (error); @@ -185,7 +186,7 @@ mac_pipe_check_read(struct ucred *cred, mtx_assert(&pp->pp_mtx, MA_OWNED); - MAC_CHECK_NOSLEEP(pipe_check_read, cred, pp, pp->pp_label); + MAC_POLICY_CHECK_NOSLEEP(pipe_check_read, cred, pp, pp->pp_label); MAC_CHECK_PROBE2(pipe_check_read, error, cred, pp); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri May 1 21:31:39 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D059B1065674; Fri, 1 May 2009 21:31:39 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF19D8FC1B; Fri, 1 May 2009 21:31:39 +0000 (UTC) (envelope-from sam@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 n41LVd7i053830; Fri, 1 May 2009 21:31:39 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41LVdTo053829; Fri, 1 May 2009 21:31:39 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905012131.n41LVdTo053829@svn.freebsd.org> From: Sam Leffler Date: Fri, 1 May 2009 21:31:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191732 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 21:31:40 -0000 Author: sam Date: Fri May 1 21:31:39 2009 New Revision: 191732 URL: http://svn.freebsd.org/changeset/base/191732 Log: revert wip Modified: head/sys/net80211/ieee80211_ddb.c Modified: head/sys/net80211/ieee80211_ddb.c ============================================================================== --- head/sys/net80211/ieee80211_ddb.c Fri May 1 21:05:40 2009 (r191731) +++ head/sys/net80211/ieee80211_ddb.c Fri May 1 21:31:39 2009 (r191732) @@ -284,21 +284,12 @@ _db_show_sta(const struct ieee80211_node static void _db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showprocs) { - const char *cp; - int i; - db_printf("%stdma %p:\n", sep, ts); - db_printf("%s features %b version %u slot %u txrate %u bintval %u peer %p\n", sep, - ts->tdma_features, TDMA_F_BITS, ts->tdma_version, ts->tdma_slot, - ts->tdma_txrate, ts->tdma_bintval, ts->tdma_peer); - db_printf("%s slotlen %u slotcnt %u bw[", sep, + db_printf("%s version %u slot %u bintval %u peer %p\n", sep, + ts->tdma_version, ts->tdma_slot, ts->tdma_bintval, ts->tdma_peer); + db_printf("%s slotlen %u slotcnt %u", sep, ts->tdma_slotlen, ts->tdma_slotcnt); - cp = ""; - for (i = 0; i < TDMA_MAXSLOTS; i++) { - db_printf("%s%u", cp, ts->tdma_bw[i]); - cp = ":"; - } - db_printf("] inuse 0x%x active 0x%x count %d\n", + db_printf(" inuse 0x%x active 0x%x count %d\n", ts->tdma_inuse[0], ts->tdma_active[0], ts->tdma_count); if (showprocs) { DB_PRINTSYM(sep, " tdma_newstate", ts->tdma_newstate); From owner-svn-src-all@FreeBSD.ORG Fri May 1 21:43:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96F1C106571A; Fri, 1 May 2009 21:43:04 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69C248FC15; Fri, 1 May 2009 21:43:04 +0000 (UTC) (envelope-from mav@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 n41Lh4Hm054075; Fri, 1 May 2009 21:43:04 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n41Lh4uS054073; Fri, 1 May 2009 21:43:04 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905012143.n41Lh4uS054073@svn.freebsd.org> From: Alexander Motin Date: Fri, 1 May 2009 21:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191733 - in head/sys: amd64/isa isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2009 21:43:06 -0000 Author: mav Date: Fri May 1 21:43:04 2009 New Revision: 191733 URL: http://svn.freebsd.org/changeset/base/191733 Log: Add resume methods to i8254 and atrtc devices. Modified: head/sys/amd64/isa/clock.c head/sys/isa/atrtc.c Modified: head/sys/amd64/isa/clock.c ============================================================================== --- head/sys/amd64/isa/clock.c Fri May 1 21:31:39 2009 (r191732) +++ head/sys/amd64/isa/clock.c Fri May 1 21:43:04 2009 (r191733) @@ -376,6 +376,17 @@ set_i8254_freq(u_int freq, int intr_freq mtx_unlock_spin(&clock_lock); } +static void +i8254_restore(void) +{ + + mtx_lock_spin(&clock_lock); + outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); + outb(TIMER_CNTR0, i8254_real_max_count & 0xff); + outb(TIMER_CNTR0, i8254_real_max_count >> 8); + mtx_unlock_spin(&clock_lock); +} + /* This is separate from startrtclock() so that it can be called early. */ void i8254_init(void) @@ -558,6 +569,14 @@ attimer_attach(device_t dev) return(0); } +static int +attimer_resume(device_t dev) +{ + + i8254_restore(); + return(0); +} + static device_method_t attimer_methods[] = { /* Device interface */ DEVMETHOD(device_probe, attimer_probe), @@ -565,7 +584,7 @@ static device_method_t attimer_methods[] DEVMETHOD(device_detach, bus_generic_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, attimer_resume), { 0, 0 } }; Modified: head/sys/isa/atrtc.c ============================================================================== --- head/sys/isa/atrtc.c Fri May 1 21:31:39 2009 (r191732) +++ head/sys/isa/atrtc.c Fri May 1 21:43:04 2009 (r191733) @@ -190,6 +190,13 @@ atrtc_attach(device_t dev) return(0); } +static int +atrtc_resume(device_t dev) +{ + + atrtc_restore(); + return(0); +} static int atrtc_settime(device_t dev __unused, struct timespec *ts) @@ -264,8 +271,7 @@ static device_method_t atrtc_methods[] = DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), /* XXX stop statclock? */ - DEVMETHOD(device_resume, bus_generic_resume), - /* XXX restart statclock? */ + DEVMETHOD(device_resume, atrtc_resume), /* clock interface */ DEVMETHOD(clock_gettime, atrtc_gettime), From owner-svn-src-all@FreeBSD.ORG Sat May 2 05:02:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEE261065674; Sat, 2 May 2009 05:02:29 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CCD4C8FC08; Sat, 2 May 2009 05:02:29 +0000 (UTC) (envelope-from zec@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 n4252SAD070233; Sat, 2 May 2009 05:02:28 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4252Ssc070230; Sat, 2 May 2009 05:02:28 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <200905020502.n4252Ssc070230@svn.freebsd.org> From: Marko Zec Date: Sat, 2 May 2009 05:02:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191734 - in head/sys: net netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 05:02:31 -0000 Author: zec Date: Sat May 2 05:02:28 2009 New Revision: 191734 URL: http://svn.freebsd.org/changeset/base/191734 Log: Unbreak options VIMAGE + nooptions INVARIANTS kernel builds. Submitted by: julian Approved by: julian (mentor) Modified: head/sys/net/route.c head/sys/netinet/igmp.c head/sys/netinet/tcp_timewait.c Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Fri May 1 21:43:04 2009 (r191733) +++ head/sys/net/route.c Sat May 2 05:02:28 2009 (r191734) @@ -1131,10 +1131,10 @@ bad: int rt_setgate(struct rtentry *rt, struct sockaddr *dst, struct sockaddr *gate) { - INIT_VNET_NET(curvnet); /* XXX dst may be overwritten, can we move this to below */ int dlen = SA_SIZE(dst), glen = SA_SIZE(gate); #ifdef INVARIANTS + INIT_VNET_NET(curvnet); struct radix_node_head *rnh = V_rt_tables[rt->rt_fibnum][dst->sa_family]; #endif Modified: head/sys/netinet/igmp.c ============================================================================== --- head/sys/netinet/igmp.c Fri May 1 21:43:04 2009 (r191733) +++ head/sys/netinet/igmp.c Sat May 2 05:02:28 2009 (r191734) @@ -3617,7 +3617,9 @@ vnet_igmp_iattach(const void *unused __u static int vnet_igmp_idetach(const void *unused __unused) { +#ifdef INVARIANTS INIT_VNET_INET(curvnet); +#endif CTR1(KTR_IGMPV3, "%s: tearing down", __func__); Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Fri May 1 21:43:04 2009 (r191733) +++ head/sys/netinet/tcp_timewait.c Sat May 2 05:02:28 2009 (r191734) @@ -188,9 +188,7 @@ tcp_tw_init(void) void tcp_twstart(struct tcpcb *tp) { -#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) INIT_VNET_INET(tp->t_vnet); -#endif struct tcptw *tw; struct inpcb *inp = tp->t_inpcb; int acknow; From owner-svn-src-all@FreeBSD.ORG Sat May 2 06:12:39 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 081B4106566B; Sat, 2 May 2009 06:12:39 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E8AF28FC16; Sat, 2 May 2009 06:12:38 +0000 (UTC) (envelope-from alc@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 n426CcCL074329; Sat, 2 May 2009 06:12:38 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n426Cc27074327; Sat, 2 May 2009 06:12:38 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <200905020612.n426Cc27074327@svn.freebsd.org> From: Alan Cox Date: Sat, 2 May 2009 06:12:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191735 - in head/sys/mips: include mips X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 06:12:39 -0000 Author: alc Date: Sat May 2 06:12:38 2009 New Revision: 191735 URL: http://svn.freebsd.org/changeset/base/191735 Log: A variety of changes: Reimplement "kernel_pmap" in the standard way. Eliminate unused variables. (These are mostly variables that were discarded by the machine-independent layer after FreeBSD 4.x.) Properly handle a vm_page_alloc() failure in pmap_init(). Eliminate dead or legacy (FreeBSD 4.x) code. Eliminate unnecessary page queues locking. Eliminate some excess white space. Correct the synchronization of pmap_page_exists_quick(). Tested by: gonzo Modified: head/sys/mips/include/pmap.h head/sys/mips/mips/pmap.c Modified: head/sys/mips/include/pmap.h ============================================================================== --- head/sys/mips/include/pmap.h Sat May 2 05:02:28 2009 (r191734) +++ head/sys/mips/include/pmap.h Sat May 2 06:12:38 2009 (r191735) @@ -74,7 +74,7 @@ struct pv_entry; struct md_page { int pv_list_count; int pv_flags; - TAILQ_HEAD(, pv_entry)pv_list; + TAILQ_HEAD(, pv_entry) pv_list; }; #define PV_TABLE_MOD 0x01 /* modified */ @@ -86,8 +86,8 @@ struct md_page { struct pmap { pd_entry_t *pm_segtab; /* KVA of segment table */ - TAILQ_HEAD(, pv_entry)pm_pvlist; /* list of mappings in - * pmap */ + TAILQ_HEAD(, pv_entry) pm_pvlist; /* list of mappings in + * pmap */ int pm_active; /* active on cpus */ struct { u_int32_t asid:ASID_BITS; /* TLB address space tag */ @@ -105,10 +105,12 @@ typedef struct pmap *pmap_t; pt_entry_t *pmap_pte(pmap_t, vm_offset_t); pd_entry_t pmap_segmap(pmap_t pmap, vm_offset_t va); vm_offset_t pmap_kextract(vm_offset_t va); -extern pmap_t kernel_pmap; #define vtophys(va) pmap_kextract(((vm_offset_t) (va))) +extern struct pmap kernel_pmap_store; +#define kernel_pmap (&kernel_pmap_store) + #define PMAP_LOCK(pmap) mtx_lock(&(pmap)->pm_mtx) #define PMAP_LOCK_ASSERT(pmap, type) mtx_assert(&(pmap)->pm_mtx, (type)) #define PMAP_LOCK_DESTROY(pmap) mtx_destroy(&(pmap)->pm_mtx) @@ -132,8 +134,8 @@ extern pmap_t kernel_pmap; typedef struct pv_entry { pmap_t pv_pmap; /* pmap where mapping lies */ vm_offset_t pv_va; /* virtual address for mapping */ - TAILQ_ENTRY(pv_entry)pv_list; - TAILQ_ENTRY(pv_entry)pv_plist; + TAILQ_ENTRY(pv_entry) pv_list; + TAILQ_ENTRY(pv_entry) pv_plist; vm_page_t pv_ptem; /* VM page for pte */ boolean_t pv_wired; /* whether this entry is wired */ } *pv_entry_t; @@ -143,8 +145,6 @@ typedef struct pv_entry { #define PMAP_DIAGNOSTIC #endif -extern vm_offset_t avail_end; -extern vm_offset_t avail_start; extern vm_offset_t phys_avail[]; extern char *ptvmmap; /* poor name! */ extern vm_offset_t virtual_avail; Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sat May 2 05:02:28 2009 (r191734) +++ head/sys/mips/mips/pmap.c Sat May 2 06:12:38 2009 (r191735) @@ -135,12 +135,9 @@ __FBSDID("$FreeBSD$"); #define pmap_va_asid(pmap, va) ((va) | ((pmap)->pm_asid[PCPU_GET(cpuid)].asid << VMTLB_PID_SHIFT)) #define is_kernel_pmap(x) ((x) == kernel_pmap) -static struct pmap kernel_pmap_store; -pmap_t kernel_pmap; +struct pmap kernel_pmap_store; pd_entry_t *kernel_segmap; -vm_offset_t avail_start; /* PA of first available physical page */ -vm_offset_t avail_end; /* PA of last available physical page */ vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ @@ -161,7 +158,6 @@ static void pmap_asid_alloc(pmap_t pmap) static uma_zone_t pvzone; static struct vm_object pvzone_obj; static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; -int pmap_pagedaemon_waken = 0; struct fpage fpages_shared[FPAGES_SHARED]; @@ -412,25 +408,20 @@ again: for (i = 0, j = (virtual_avail >> SEGSHIFT); i < nkpt; i++, j++) kernel_segmap[j] = (pd_entry_t)(pgtab + (i * NPTEPG)); - avail_start = phys_avail[0]; for (i = 0; phys_avail[i + 2]; i += 2) continue; - avail_end = phys_avail[i + 1]; + printf("avail_start:0x%x avail_end:0x%x\n", + phys_avail[0], phys_avail[i + 1]); /* * The kernel's pmap is statically allocated so we don't have to use * pmap_create, which is unlikely to work correctly at this part of * the boot sequence (XXX and which no longer exists). */ - kernel_pmap = &kernel_pmap_store; - PMAP_LOCK_INIT(kernel_pmap); kernel_pmap->pm_segtab = kernel_segmap; kernel_pmap->pm_active = ~0; TAILQ_INIT(&kernel_pmap->pm_pvlist); - printf("avail_start:0x%x avail_end:0x%x\n", - avail_start, avail_end); - kernel_pmap->pm_asid[PCPU_GET(cpuid)].asid = PMAP_ASID_RESERVED; kernel_pmap->pm_asid[PCPU_GET(cpuid)].gen = 0; pmap_max_asid = VMNUM_PIDS; @@ -1011,19 +1002,11 @@ pmap_pinit(pmap_t pmap) /* * allocate the page directory page */ - ptdpg = vm_page_alloc(NULL, NUSERPGTBLS, req); + while ((ptdpg = vm_page_alloc(NULL, NUSERPGTBLS, req)) == NULL) + VM_WAIT; -#if 0 - /* I think we can just delete these, now that PG_BUSY is gone */ - vm_page_lock_queues(); - vm_page_flag_clear(ptdpg, PTE_BUSY); /* not usually mapped */ -#endif ptdpg->valid = VM_PAGE_BITS_ALL; -#if 0 - vm_page_unlock_queues(); -#endif - pmap->pm_segtab = (pd_entry_t *) MIPS_PHYS_TO_CACHED(VM_PAGE_TO_PHYS(ptdpg)); if ((ptdpg->flags & PG_ZERO) == 0) @@ -1193,12 +1176,9 @@ pmap_release(pmap_t pmap) pmap->pm_stats.resident_count)); ptdpg = PHYS_TO_VM_PAGE(MIPS_CACHED_TO_PHYS(pmap->pm_segtab)); - - vm_page_lock_queues(); ptdpg->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(ptdpg); - vm_page_unlock_queues(); } /* @@ -1447,7 +1427,6 @@ static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t mpte, vm_page_t m, boolean_t wired) { - pv_entry_t pv; pv = get_pv_entry(pmap); @@ -1461,7 +1440,6 @@ pmap_insert_entry(pmap_t pmap, vm_offset TAILQ_INSERT_TAIL(&pmap->pm_pvlist, pv, pv_plist); TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list); m->md.pv_list_count++; - } /* @@ -1532,7 +1510,6 @@ pmap_remove_pte(struct pmap *pmap, pt_en pmap_remove_entry(pmap, m, va); } return pmap_unuse_pt(pmap, va, NULL); - } /* @@ -1623,14 +1600,8 @@ pmap_remove_all(vm_page_t m) register pv_entry_t pv; register pt_entry_t *pte, tpte; -#if defined(PMAP_DEBUG) - /* - * XXX This makes pmap_remove_all() illegal for non-managed pages! - */ - if (m->flags & PG_FICTITIOUS) { - panic("pmap_page_protect: illegal for unmanaged page, va: 0x%x", VM_PAGE_TO_PHYS(m)); - } -#endif + KASSERT((m->flags & PG_FICTITIOUS) == 0, + ("pmap_remove_all: page %p is fictitious", m)); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->md.pv_flags & PV_TABLE_REF) @@ -2484,28 +2455,18 @@ pmap_page_exists_quick(pmap_t pmap, vm_p if (m->flags & PG_FICTITIOUS) return FALSE; - vm_page_lock_queues(); - PMAP_LOCK(pmap); - - /* - * Not found, check current mappings returning immediately if found. - */ + mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { if (pv->pv_pmap == pmap) { - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); return TRUE; } loops++; if (loops >= 16) break; } - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); return (FALSE); } -#define PMAP_REMOVE_PAGES_CURPROC_ONLY /* * Remove all pages from specified address space * this aids process exit speeds. Also, this code @@ -2521,13 +2482,10 @@ pmap_remove_pages(pmap_t pmap) pv_entry_t pv, npv; vm_page_t m; -#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); return; } -#endif - vm_page_lock_queues(); PMAP_LOCK(pmap); sched_pin(); @@ -3272,7 +3230,8 @@ pmap_kextract(vm_offset_t va) else if (va >= MIPS_KSEG2_START && va < VM_MAX_KERNEL_ADDRESS) { pt_entry_t *ptep; - if (kernel_pmap) { + /* Is the kernel pmap initialized? */ + if (kernel_pmap->pm_active) { if (va >= (vm_offset_t)virtual_sys_start) { /* Its inside the virtual address range */ ptep = pmap_pte(kernel_pmap, va); From owner-svn-src-all@FreeBSD.ORG Sat May 2 06:25:52 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA9A9106564A; Sat, 2 May 2009 06:25:52 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 95BFF8FC1F; Sat, 2 May 2009 06:25:52 +0000 (UTC) (envelope-from obrien@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 n426Pqrq074644; Sat, 2 May 2009 06:25:52 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n426Pplm074629; Sat, 2 May 2009 06:25:51 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <200905020625.n426Pplm074629@svn.freebsd.org> From: "David E. O'Brien" Date: Sat, 2 May 2009 06:25:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191736 - in vendor/file/dist: . Magdir X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 06:25:53 -0000 Author: obrien Date: Sat May 2 06:25:51 2009 New Revision: 191736 URL: http://svn.freebsd.org/changeset/base/191736 Log: Virgin import of Christos Zoulas's FILE 5.00. Modified: vendor/file/dist/ChangeLog vendor/file/dist/Magdir/animation vendor/file/dist/Magdir/audio vendor/file/dist/Magdir/cafebabe vendor/file/dist/Magdir/compress vendor/file/dist/Magdir/elf vendor/file/dist/Magdir/epoc vendor/file/dist/Magdir/filesystems vendor/file/dist/Magdir/graphviz vendor/file/dist/Magdir/images vendor/file/dist/Magdir/jpeg vendor/file/dist/Magdir/mach vendor/file/dist/Magdir/macintosh vendor/file/dist/Magdir/msdos vendor/file/dist/Magdir/perl vendor/file/dist/Magdir/printer vendor/file/dist/Magdir/timezone vendor/file/dist/Magdir/xwindows vendor/file/dist/Makefile.am vendor/file/dist/Makefile.in vendor/file/dist/README vendor/file/dist/TODO vendor/file/dist/apprentice.c vendor/file/dist/apptype.c vendor/file/dist/ascmagic.c vendor/file/dist/asprintf.c vendor/file/dist/compress.c vendor/file/dist/config.h.in vendor/file/dist/configure vendor/file/dist/configure.ac vendor/file/dist/file.c vendor/file/dist/file.h vendor/file/dist/file.man vendor/file/dist/file_opts.h vendor/file/dist/fsmagic.c vendor/file/dist/funcs.c vendor/file/dist/getopt_long.c vendor/file/dist/is_tar.c vendor/file/dist/libmagic.man vendor/file/dist/magic.c vendor/file/dist/magic.h vendor/file/dist/magic.man vendor/file/dist/patchlevel.h vendor/file/dist/print.c vendor/file/dist/readelf.c vendor/file/dist/softmagic.c vendor/file/dist/vasprintf.c Modified: vendor/file/dist/ChangeLog ============================================================================== --- vendor/file/dist/ChangeLog Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/ChangeLog Sat May 2 06:25:51 2009 (r191736) @@ -1,9 +1,105 @@ +2008-12-12 15:50 Christos Zoulas + + * fix initial offset calculation for non 4K sector files + + * add loop limits to avoid DoS attacks by constructing + looping sector references. + +2008-12-03 13:05 Christos Zoulas + + * fix memory botches on cdf file parsing. + + * exit with non-zero value for any error, not just for the last + file processed. + +2008-11-09 20:42 Charles Longeau + + * Replace all str{cpy,cat} functions with strl{cpy,cat} + * Ensure that strl{cpy,cat} are included in libmagic, + as needed. + +2008-11-06 18:18 Christos Zoulas + + * Handle ID3 format files. + +2008-11-06 23:00 Reuben Thomas + + * Fix --mime, --mime-type and --mime-encoding under new scheme. + + * Rename "ascii" to "text" and add "encoding" test. + + * Return a precise ("utf-16le" or "utf-16be") MIME charset for + UTF-16. + + * Fix error in comment caused by automatic indentation adding + words! + +2008-11-06 10:35 Christos Zoulas + + * use memchr instead of strchr because the string + might not be NUL terminated (Scott MacVicar) + +2008-11-03 07:31 Reuben Thomas + + * Fix a printf with a non-literal format string. + + * Fix formatting and punctuation of help for "--apple". + +2008-10-30 11:00 Reuben Thomas + + * Correct words counts in comments of struct magic. + + * Fix handle_annotation to allow both Apple and MIME types to be + printed, and to return correct code if MIME type is + printed (1, not 0) or if there's an error (-1 not 1). + + * Fix output of charset for MIME type (precede with semi-colon; + fixes Debian bug #501460). + + * Fix potential attacks via conversion specifications in magic + strings. + + * Add a FIXME for Debian bug #488562 (magic files should be + read in a defined order, by sorting the names). + +2008-10-18 16:45 Christos Zoulas + + * Added APPLE file creator/type + +2008-10-12 10:20 Christos Zoulas + + * Added CDF parsing + +2008-10-09 16:40 Christos Zoulas + + * filesystem and msdos patches (Joerg Jenderek) + +2008-10-09 13:20 Christos Zoulas + + * correct --exclude documentation issues: remove troff and fortran + and rename "token" to "tokens". (Randy McMurchy) + +2008-10-01 10:30 Christos Zoulas + + * Read ~/.magic in addition to the default magic file not instead + of, as documented in the man page. + +2008-09-10 21:30 Reuben Thomas + + * Comment out graphviz patterns, as they match too many files. + 2008-08-30 12:54 Christos Zoulas * Don't eat trailing \n in magic enties. * Cast defines to allow compilation using a c++ compiler. +2008-08-25 23:56 Reuben Thomas + + * Add text/x-lua MIME type for Lua scripts. + + * Escape { in regex in graphviz patterns. + 2008-07-26 00:59 Reuben Thomas * Add MIME types for special files. @@ -55,22 +151,22 @@ 2008-05-06 00:13 Robert Byrnes - * src/Makefile.am: + * src/Makefile.am: Ensure that getopt_long and [v]asprintf are included in libmagic, as needed. Remove unnecessary EXTRA_DIST. - * src/Makefile.in: + * src/Makefile.in: Rerun automake. - * src/vasprintf.c (dispatch): + * src/vasprintf.c (dispatch): Fix variable precision bug: be sure to step past '*'. - * src/vasprintf.c (core): + * src/vasprintf.c (core): Remove unreachable code. - * src/apprentice.c (set_test_type): + * src/apprentice.c (set_test_type): Add cast to avoid compiler warning. 2008-04-22 23:45 Christos Zoulas @@ -81,12 +177,12 @@ 2008-04-04 11:00 Christos Zoulas - * >= <= is not supported, so fix the magic and warn about it. + * >= <= is not supported, so fix the magic and warn about it. reported by: Thien-Thi Nguyen 2008-03-27 16:16 Robert Byrnes - * src/readelf.c (donote): + * src/readelf.c (donote): ELF core file command name/line bug fixes and enhancements: Try larger offsets first to avoid false matches @@ -112,7 +208,7 @@ * Clarify UTF-8 BOM message (Reuben Thomas) * Add HTML comment to token list in names.h - + 2007-02-04 15:50 Christos Zoulas * Debian fixes (Reuben Thomas) @@ -152,7 +248,7 @@ 2007-10-28 20:48 Christos Zoulas - * float and double magic support (Behan Webster) + * float and double magic support (Behan Webster) 2007-10-28 20:48 Christos Zoulas @@ -199,7 +295,7 @@ be easily parsed: mimetype [charset=character-set] [encoding=encoding-mime-type] - Remove spurious extra text from some MIME type printouts + Remove spurious extra text from some MIME type printouts (mostly in is_tar). Fix one case where -i produced nothing at all (for a 1-byte file, @@ -229,7 +325,7 @@ 2007-03-15 10:51 Christos Zoulas * fix fortran and nroff reversed tests (Dmitry V. Levin) - + * fix exclude option (Dmitry V. Levin) 2007-02-08 17:30 Christos Zoulas @@ -248,7 +344,7 @@ * Add exclude flag. 2007-01-18 05:29 Anon Ymous - + * Move the "type" detection code from parse() into its own table driven routine. This avoids maintaining multiple lists in file.h. @@ -256,7 +352,7 @@ * Add an optional conditional field (ust before the type field). This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is likely to go away. - + 2007-01-16 23:24 Anon Ymous * Fix an initialization bug in check_mem(). @@ -327,7 +423,7 @@ 2006-12-08 16:32 Christos Zoulas * store and print the line number of the magic - entry for debugging. + entry for debugging. * if the magic entry did not print anything, don't treat it as a match @@ -342,7 +438,7 @@ file_softmagic. 2006-11-25 13:35 Christos Zoulas - + * Don't store the current offset in the magic struct, because it needs to be restored and it was not done properly all the time. Bug @@ -432,7 +528,7 @@ * Look for note sections in non executables. 2005-09-20 13:33 Christos Zoulas - + * Don't print SVR4 Style in core files multiple times (Radek Vokál) @@ -443,9 +539,9 @@ 2005-08-18 09:53 Christos Zoulas * Remove erroreous mention of /etc/magic in the file man page - This is gentoo bug 101639. (Mike Frysinger) + This is gentoo bug 101639. (Mike Frysinger) - * Cross-compile support and detection (Mike Frysinger) + * Cross-compile support and detection (Mike Frysinger) 2005-08-12 10:17 Christos Zoulas @@ -477,20 +573,20 @@ * Avoid NULL pointer dereference in time conversion. 2005-03-06 00:00 Joerg Walter - + * Add indirect magic offset support, and search mode. 2005-01-12 00:00 Stepan Kasal - * src/ascmagic.c (file_ascmagic): Fix three bugs about text files: - If a CRLF text file happens to have CR at offset HOWMANY - 1 - (currently 0xffff), it should not be counted as CR line - terminator. - If a line has length exactly MAXLINELEN, it should not yet be - treated as a ``very long line'', as MAXLINELEN is ``longest sane - line length''. - With CRLF, the line length was not computed correctly, and even - lines of length MAXLINELEN - 1 were treated as ``very long''. + * src/ascmagic.c (file_ascmagic): Fix three bugs about text files: + If a CRLF text file happens to have CR at offset HOWMANY - 1 + (currently 0xffff), it should not be counted as CR line + terminator. + If a line has length exactly MAXLINELEN, it should not yet be + treated as a ``very long line'', as MAXLINELEN is ``longest sane + line length''. + With CRLF, the line length was not computed correctly, and even + lines of length MAXLINELEN - 1 were treated as ``very long''. 2004-12-07 14:15 Christos Zoulas @@ -525,12 +621,12 @@ * Remove 3rd and 4th copyright clause; approved by Ian Darwin. - * Fix small memory leaks; caught by: Tamas Sarlos + * Fix small memory leaks; caught by: Tamas Sarlos 2004-07-24 16:33 Christos Zoulas - * magic.mime update Danny Milosavljevic + * magic.mime update Danny Milosavljevic * FreeBSD version update Oliver Eikemeier Modified: vendor/file/dist/Magdir/animation ============================================================================== --- vendor/file/dist/Magdir/animation Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/animation Sat May 2 06:25:51 2009 (r191736) @@ -325,6 +325,7 @@ # MP2, M1A 0 beshort&0xFFFE 0xFFFC MPEG ADTS, layer II, v1 +!:mime audio/mpeg # rates >2 byte&0xF0 0x10 \b, 32 kbps >2 byte&0xF0 0x20 \b, 48 kbps @@ -399,6 +400,7 @@ # MP3, M2A 0 beshort&0xFFFE 0xFFF2 MPEG ADTS, layer III, v2 +!:mime audio/mpeg # rate >2 byte&0xF0 0x10 \b, 8 kbps >2 byte&0xF0 0x20 \b, 16 kbps @@ -790,3 +792,24 @@ 0 belong 0x00000001 >4 byte&0x1F 0x07 !:mime video/h264 + +# Type: Bink Video +# URL: http://wiki.multimedia.cx/index.php?title=3DBink_Container +# From: 2008-07-18 +0 string BIK Bink Video +>3 regex =[a-z] rev.%s +#>4 ulelong x size %d +>20 ulelong x \b, %d +>24 ulelong x \bx%d +>8 ulelong x \b, %d frames +>32 ulelong x at rate %d/ +>28 ulelong >1 \b%d +>40 ulelong =0 \b, no audio +>40 ulelong !0 \b, %d audio track +>>40 ulelong !1 \bs +# follow properties of the first audio track only +>>48 uleshort x %dHz +>>51 byte&0x20 0 mono +>>51 byte&0x20 !0 stereo +#>>51 byte&0x10 0 FFT +#>>51 byte&0x10 !0 DCT Modified: vendor/file/dist/Magdir/audio ============================================================================== --- vendor/file/dist/Magdir/audio Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/audio Sat May 2 06:25:51 2009 (r191736) @@ -286,43 +286,14 @@ # SGI SoundTrack 0 string _SGI_SoundTrack SGI SoundTrack project file # ID3 version 2 tags -0 string ID3 Audio file with ID3 version 2. -# ??? Normally such a file is an MP3 file, but this will give false positives -!:mime audio/mpeg ->3 ubyte <0xff \b%d -#>4 ubyte <0xff \b%d tag ->2584 string fLaC \b, FLAC encoding ->>2588 byte&0x7f >0 \b, unknown version ->>2588 byte&0x7f 0 \b -# some common bits/sample values ->>>2600 beshort&0x1f0 0x030 \b, 4 bit ->>>2600 beshort&0x1f0 0x050 \b, 6 bit ->>>2600 beshort&0x1f0 0x070 \b, 8 bit ->>>2600 beshort&0x1f0 0x0b0 \b, 12 bit ->>>2600 beshort&0x1f0 0x0f0 \b, 16 bit ->>>2600 beshort&0x1f0 0x170 \b, 24 bit ->>>2600 byte&0xe 0x0 \b, mono ->>>2600 byte&0xe 0x2 \b, stereo ->>>2600 byte&0xe 0x4 \b, 3 channels ->>>2600 byte&0xe 0x6 \b, 4 channels ->>>2600 byte&0xe 0x8 \b, 5 channels ->>>2600 byte&0xe 0xa \b, 6 channels ->>>2600 byte&0xe 0xc \b, 7 channels ->>>2600 byte&0xe 0xe \b, 8 channels -# some common sample rates ->>>2597 belong&0xfffff0 0x0ac440 \b, 44.1 kHz ->>>2597 belong&0xfffff0 0x0bb800 \b, 48 kHz ->>>2597 belong&0xfffff0 0x07d000 \b, 32 kHz ->>>2597 belong&0xfffff0 0x056220 \b, 22.05 kHz ->>>2597 belong&0xfffff0 0x05dc00 \b, 24 kHz ->>>2597 belong&0xfffff0 0x03e800 \b, 16 kHz ->>>2597 belong&0xfffff0 0x02b110 \b, 11.025 kHz ->>>2597 belong&0xfffff0 0x02ee00 \b, 12 kHz ->>>2597 belong&0xfffff0 0x01f400 \b, 8 kHz ->>>2597 belong&0xfffff0 0x177000 \b, 96 kHz ->>>2597 belong&0xfffff0 0x0fa000 \b, 64 kHz ->>>2601 byte&0xf >0 \b, >4G samples ->2584 string !fLaC \b, MP3 encoding +0 string ID3 Audio file with ID3 version 2 +>3 byte x \b.%d +>4 byte x \b.%d +>>5 byte &0x80 \b, unsynchronized frames +>>5 byte &0x40 \b, extended header +>>5 byte &0x20 \b, experimental +>>5 byte &0x10 \b, footer present +>(6.I) indirect x \b, contains: # NSF (NES sound file) magic 0 string NESM\x1a NES Sound File Modified: vendor/file/dist/Magdir/cafebabe ============================================================================== --- vendor/file/dist/Magdir/cafebabe Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/cafebabe Sat May 2 06:25:51 2009 (r191736) @@ -12,16 +12,18 @@ # (and use as a hack). Let's not use 18, because the Mach-O people # might add another one or two as time goes by... # -0 beshort 0xcafe ->2 beshort 0xbabe +0 belong 0xcafebabe !:mime application/x-java-applet ->>2 belong >30 compiled Java class data, ->>>6 beshort x version %d. ->>>4 beshort x \b%d ->>4 belong 1 Mach-O fat file with 1 architecture ->>4 belong >1 ->>>4 belong <20 Mach-O fat file with %ld architectures ->2 beshort 0xd00d JAR compressed with pack200, +>4 belong >30 compiled Java class data, +>>6 beshort x version %d. +>>4 beshort x \b%d + +0 belong 0xcafebabe +>4 belong 1 Mach-O fat file with 1 architecture +>4 belong >1 +>>4 belong <20 Mach-O fat file with %ld architectures + +0 belong 0xcafed00d JAR compressed with pack200, >>5 byte x version %d. >>4 byte x \b%d !:mime application/x-java-pack200 Modified: vendor/file/dist/Magdir/compress ============================================================================== --- vendor/file/dist/Magdir/compress Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/compress Sat May 2 06:25:51 2009 (r191736) @@ -11,6 +11,7 @@ # standard unix compress 0 string \037\235 compress'd data !:mime application/x-compress +!:apple LZIVZIVU >2 byte&0x80 >0 block compressed >2 byte&0x1f x %d bits @@ -76,6 +77,11 @@ !:mime application/x-bzip2 >3 byte >47 \b, block size = %c00k +# lzip +0 string LZIP lzip compressed data +!:mime application/x-lzip +>4 byte x \b, version: %d + # squeeze and crunch # Michael Haardt 0 beshort 0x76FF squeezed data, Modified: vendor/file/dist/Magdir/elf ============================================================================== --- vendor/file/dist/Magdir/elf Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/elf Sat May 2 06:25:51 2009 (r191736) @@ -143,11 +143,13 @@ >>18 leshort 91 picoJava, >>18 leshort 92 OpenRISC, >>18 leshort 93 ARC Cores Tangent-A5, ->>18 leshort 0x3426 OpenRISC (obsolete), ->>18 leshort 0x8472 OpenRISC (obsolete), >>18 leshort 94 Tensilica Xtensa, >>18 leshort 97 NatSemi 32k, >>18 leshort 106 Analog Devices Blackfin, +>>18 leshort 113 Altera Nios II, +>>18 leshort 0xae META, +>>18 leshort 0x3426 OpenRISC (obsolete), +>>18 leshort 0x8472 OpenRISC (obsolete), >>18 leshort 0x9026 Alpha (unofficial), >>20 lelong 0 invalid version >>20 lelong 1 version 1 Modified: vendor/file/dist/Magdir/epoc ============================================================================== --- vendor/file/dist/Magdir/epoc Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/epoc Sat May 2 06:25:51 2009 (r191736) @@ -1,10 +1,11 @@ - #------------------------------------------------------------------------------ -# Epoc 32 : file(1) magic for Epoc Documents [psion/osaris +# EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1] # Stefan Praszalowicz (hpicollo@worldnet.fr) -#0 lelong 0x10000037 Epoc32 +# Useful information for improving this file can be found at: +# http://software.frodo.looijaard.name/psiconv/formats/Index.html +0 lelong 0x10000037 >4 lelong 0x1000006D ->>8 lelong 0x1000007F Word ->>8 lelong 0x10000088 Sheet ->>8 lelong 0x1000007D Sketch ->>8 lelong 0x10000085 TextEd +>>8 lelong 0x1000007F Psion Word +>>8 lelong 0x10000088 Psion Sheet +>>8 lelong 0x1000007D Psion Sketch +>>8 lelong 0x10000085 Psion TextEd Modified: vendor/file/dist/Magdir/filesystems ============================================================================== --- vendor/file/dist/Magdir/filesystems Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/filesystems Sat May 2 06:25:51 2009 (r191736) @@ -104,9 +104,32 @@ >>>346 string des\ Betriebssystems >>>>366 string Betriebssystem\ nicht\ vorhanden \b, Microsoft Windows XP MBR (german) >>>>>0x1B8 ulelong >0 \b, Serial 0x%-.4x ->0x145 string Default:\ F \b, FREE-DOS MBR +#>0x145 string Default:\ F \b, FREE-DOS MBR +#>0x14B string Default:\ F \b, FREE-DOS 1.0 MBR +>0x145 search/7 Default:\ F \b, FREE-DOS MBR +#>>313 string F0\ .\ .\ . +#>>>322 string disk\ 1 +#>>>>382 string FAT3 >64 string no\ active\ partition\ found >>96 string read\ error\ while\ reading\ drive \b, FREE-DOS Beta 0.9 MBR +# Ranish Partition Manager http://www.ranish.com/part/ +>387 search/4 \0\ Error!\r +>>378 search/7 Virus! +>>>397 search/4 Booting\ +>>>>408 search/4 HD1/\0 \b, Ranish MBR ( +>>>>>416 string Writing\ changes... \b2.37 +>>>>>>438 ubyte x \b,0x%x dots +>>>>>>440 ubyte >0 \b,virus check +>>>>>>441 ubyte >0 \b,partition %c +#2.38,2.42,2.44 +>>>>>416 string !Writing\ changes... \b +>>>>>>418 ubyte 1 \bvirus check, +>>>>>>419 ubyte x \b0x%x seconds +>>>>>>420 ubyte&0x0F >0 \b,partition +>>>>>>>420 ubyte&0x0F <5 \b %x +>>>>>>>420 ubyte&0x0F 0Xf \b ask +>>>>>420 ubyte x \b) +# >271 string Operating\ system\ loading >>296 string error\r \b, SYSLINUX MBR (2.10) # http://www.acronis.de/ @@ -124,18 +147,20 @@ >0x40 string SBML # label with 11 characters of FAT 12 bit filesystem >>43 string SMART\ BTMGR ->>>430 string SBMK\ Bad!\r ->>>>3 string SBM \b, Smart Boot Manager ->>>>>6 string >\0 \b, version %s +>>>430 string SBMK\ Bad!\r \b, Smart Boot Manager +# OEM-ID not always "SBM" +#>>>>3 strings SBM +>>>>6 string >\0 \b, version %s >382 string XOSLLOADXCF \b, eXtended Operating System Loader >6 string LILO \b, LInux i386 boot LOader >>120 string LILO \b, version 22.3.4 SuSe >>172 string LILO \b, version 22.5.8 Debian -# updated by Joerg Jenderek +# updated by Joerg Jenderek at Oct 2008 # variables according to grub-0.97/stage1/stage1.S or # http://www.gnu.org/software/grub/manual/grub.html#Embedded-data # usual values are marked with comments to get only informations of strange GRUB loaders ->0 ulelong 0x009048EB +>342 search/60 \0Geom\0 +#>0 ulelong x %x=0x009048EB , 0x2a9048EB 0 >>0x41 ubyte <2 >>>0x3E ubyte >2 \b; GRand Unified Bootloader # 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 @@ -178,15 +203,14 @@ >3 string BCDL >>498 string BCDL\ \ \ \ BIN \b, Bootable CD Loader (1.50Z) # mbr partion table entries -# OEM-ID not Microsoft,SYSLINUX,or MTOOLs +# OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs >3 string !MS >>3 string !SYSLINUX >>>3 string !MTOOL +>>>>3 string !NEWLDR +>>>>>5 string !DOS # not FAT (32 bit) ->>>>82 string !FAT32 -#not IO.SYS ->>>>>472 string !IO\ \ \ \ \ \ SYS ->>>>>>480 string !IO\ \ \ \ \ \ SYS +>>>>>>82 string !FAT32 #not Linux kernel >>>>>>>514 string !HdrS #not BeOS @@ -272,6 +296,11 @@ >>>>>>>>>(1.b+11) ubyte 0xb >>>>>>>>>>(1.b+12) ubyte 0x56 >>>>>>>>>>(1.b+13) ubyte 0xb4 \b, mkdosfs boot message display +>214 string Please\ try\ to\ install\ FreeDOS\ \b, DOS Emulator boot message display +#>>244 string from\ dosemu-freedos-*-bin.tgz\r +#>>>170 string Sorry,\ could\ not\ load\ an\ +#>>>>195 string operating\ system.\r\n +# >103 string This\ is\ not\ a\ bootable\ disk.\ >>132 string Please\ insert\ a\ bootable\ >>>157 string floppy\ and\r\n @@ -374,12 +403,22 @@ >430 string Datentr\204ger\ entfernen\xFF\r\n >>454 string Medienfehler\xFF\r\n >>>469 string Neustart:\ Taste\ dr\201cken\r \b, Microsoft Windows XP Bootloader (4.german) ->>>>368 ubyte&0xDF >0 ->>>>>368 string x %-.5s ->>>>>>373 ubyte&0xDF >0 ->>>>>>>373 string x \b%-.3s ->>>>>376 ubyte&0xDF >0 ->>>>>>376 string x \b.%-.3s +>>>>379 string \0 +>>>>>368 ubyte&0xDF >0 +>>>>>>368 string x %-.5s +>>>>>>>373 ubyte&0xDF >0 +>>>>>>>>373 string x \b%-.3s +>>>>>>376 ubyte&0xDF >0 +>>>>>>>376 string x \b.%-.3s +# variant +>>>>417 ubyte&0xDF >0 +>>>>>417 string x %-.5s +>>>>>>422 ubyte&0xDF >0 +>>>>>>>422 string x \b%-.3s +>>>>>425 ubyte&0xDF >0 +>>>>>>425 string >\ \b.%-.3s +# + #>3 string NTFS\ \ \ \ >389 string Fehler\ beim\ Lesen\ >>407 string des\ Datentr\204gers @@ -567,12 +606,27 @@ >>>489 string Any\ key\ to\ retry \b, DR-DOS Bootloader >>471 string Cannot\ load\ DOS\ >>487 string press\ key\ to\ retry \b, Open-DOS Bootloader +#?? >444 string KERNEL\ \ SYS >>314 string BOOT\ error! \b, FREE-DOS Bootloader >499 string KERNEL\ \ SYS >>305 string BOOT\ err!\0 \b, Free-DOS Bootloader >449 string KERNEL\ \ SYS >>319 string BOOT\ error! \b, FREE-DOS 0.5 Bootloader +# +>449 string Loading\ FreeDOS +>>0x1AF ulelong >0 \b, FREE-DOS 0.95,1.0 Bootloader +>>>497 ubyte&0xDF >0 +>>>>497 string x \b %-.6s +>>>>>503 ubyte&0xDF >0 +>>>>>>503 string x \b%-.1s +>>>>>>>504 ubyte&0xDF >0 +>>>>>>>>504 string x \b%-.1s +>>>>505 ubyte&0xDF >0 +>>>>>505 string x \b.%-.3s +# +>331 string Error!.0 \b, FREE-DOS 1.0 bootloader +# >125 string Loading\ FreeDOS...\r >>311 string BOOT\ error!\r \b, FREE-DOS bootloader >>>441 ubyte&0xDF >0 @@ -706,13 +760,7 @@ #it also hangs with another message ("NF"). >>>>>492 string RENF \b, FAT (12 bit) >>>>>495 string RENF \b, FAT (16 bit) -# added by Joerg Jenderek -# http://syslinux.zytor.com/iso.php -0 ulelong 0x7c40eafa isolinux Loader -# http://syslinux.zytor.com/pxe.php -0 ulelong 0x007c05ea pxelinux Loader -0 ulelong 0x60669c66 pxelinux Loader -# loader end +# x86 bootloader end # updated by Joerg Jenderek at Sep 2007 >3 ubyte 0 #no active flag @@ -732,6 +780,7 @@ # older drives may use Near JuMP instruction E9 xx xx >0 lelong&0x009000EB 0x009000EB >0 lelong&0x000000E9 0x000000E9 +# minimal short forward jump found 03cx?? # maximal short forward jump is 07fx >1 ubyte <0xff \b, code offset 0x%x # mtools-3.9.8/msdos.h @@ -740,91 +789,92 @@ >>11 uleshort&0x000f x >>>11 uleshort <32769 >>>>11 uleshort >31 ->>>>>3 string >\0 \b, OEM-ID "%8.8s" +>>>>>21 ubyte&0xf0 0xF0 +>>>>>>3 string >\0 \b, OEM-ID "%8.8s" #http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC ->>>>>>8 string IHC \b cached by Windows 9M ->>>>>11 uleshort >512 \b, Bytes/sector %u -#>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual) ->>>>>11 uleshort <512 \b, Bytes/sector %u ->>>>>13 ubyte >1 \b, sectors/cluster %u -#>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies) ->>>>>14 uleshort >32 \b, reserved sectors %u -#>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32) -#>>>>>14 uleshort >1 \b, reserved sectors %u -#>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16) ->>>>>14 uleshort <1 \b, reserved sectors %u ->>>>>16 ubyte >2 \b, FATs %u -#>>>>>16 ubyte =2 \b, FATs %u (usual) ->>>>>16 ubyte =1 \b, FAT %u ->>>>>16 ubyte >0 ->>>>>17 uleshort >0 \b, root entries %u -#>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32) ->>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB) -#>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32) ->>>>>21 ubyte >0xF0 \b, Media descriptor 0x%x -#>>>>>21 ubyte =0xF0 \b, Media descriptor 0x%x (usual floppy) ->>>>>21 ubyte <0xF0 \b, Media descriptor 0x%x ->>>>>22 uleshort >0 \b, sectors/FAT %u -#>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32) ->>>>>26 ubyte >2 \b, heads %u -#>>>>>26 ubyte =2 \b, heads %u (usual floppy) ->>>>>26 ubyte =1 \b, heads %u +>>>>>>>8 string IHC \b cached by Windows 9M +>>>>>>11 uleshort >512 \b, Bytes/sector %u +#>>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual) +>>>>>>11 uleshort <512 \b, Bytes/sector %u +>>>>>>13 ubyte >1 \b, sectors/cluster %u +#>>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies) +>>>>>>14 uleshort >32 \b, reserved sectors %u +#>>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32) +#>>>>>>14 uleshort >1 \b, reserved sectors %u +#>>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16) +>>>>>>14 uleshort <1 \b, reserved sectors %u +>>>>>>16 ubyte >2 \b, FATs %u +#>>>>>>16 ubyte =2 \b, FATs %u (usual) +>>>>>>16 ubyte =1 \b, FAT %u +>>>>>>16 ubyte >0 +>>>>>>17 uleshort >0 \b, root entries %u +#>>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32) +>>>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB) +#>>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32) +>>>>>>21 ubyte >0xF0 \b, Media descriptor 0x%x +#>>>>>>21 ubyte =0xF0 \b, Media descriptor 0x%x (usual floppy) +>>>>>>21 ubyte <0xF0 \b, Media descriptor 0x%x +>>>>>>22 uleshort >0 \b, sectors/FAT %u +#>>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32) +>>>>>>26 ubyte >2 \b, heads %u +#>>>>>>26 ubyte =2 \b, heads %u (usual floppy) +>>>>>>26 ubyte =1 \b, heads %u #skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk ->>>>>38 ubyte !0x70 ->>>>>>28 ulelong >0 \b, hidden sectors %u -#>>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy) ->>>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB) -#>>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB) +>>>>>>38 ubyte !0x70 +>>>>>>>28 ulelong >0 \b, hidden sectors %u +#>>>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy) +>>>>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB) +#>>>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB) # FAT<32 specific ->>>>>82 string !FAT32 -#>>>>>>36 ubyte 0x80 \b, physical drive 0x%x=0x80 (usual harddisk) -#>>>>>>36 ubyte 0 \b, physical drive 0x%x=0 (usual floppy) ->>>>>>36 ubyte !0x80 ->>>>>>>36 ubyte !0 \b, physical drive 0x%x ->>>>>>37 ubyte >0 \b, reserved 0x%x -#>>>>>>37 ubyte =0 \b, reserved 0x%x ->>>>>>38 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x) ->>>>>>38 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x) ->>>>>>38 ubyte =0x29 ->>>>>>>39 ulelong x \b, serial number 0x%x ->>>>>>>43 string >>>>>>43 string >NO\ NAME \b, label: "%11.11s" ->>>>>>>43 string =NO\ NAME \b, unlabeled ->>>>>>54 string FAT \b, FAT ->>>>>>>54 string FAT12 \b (12 bit) ->>>>>>>54 string FAT16 \b (16 bit) +>>>>>>82 string !FAT32 +#>>>>>>>36 ubyte 0x80 \b, physical drive 0x%x=0x80 (usual harddisk) +#>>>>>>>36 ubyte 0 \b, physical drive 0x%x=0 (usual floppy) +>>>>>>>36 ubyte !0x80 +>>>>>>>>36 ubyte !0 \b, physical drive 0x%x +>>>>>>>37 ubyte >0 \b, reserved 0x%x +#>>>>>>>37 ubyte =0 \b, reserved 0x%x +>>>>>>>38 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x) +>>>>>>>38 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x) +>>>>>>>38 ubyte =0x29 +>>>>>>>>39 ulelong x \b, serial number 0x%x +>>>>>>>>43 string >>>>>>>43 string >NO\ NAME \b, label: "%11.11s" +>>>>>>>>43 string =NO\ NAME \b, unlabeled +>>>>>>>54 string FAT \b, FAT +>>>>>>>>54 string FAT12 \b (12 bit) +>>>>>>>>54 string FAT16 \b (16 bit) # FAT32 specific ->>>>>82 string FAT32 \b, FAT (32 bit) ->>>>>>36 ulelong x \b, sectors/FAT %u ->>>>>>40 uleshort >0 \b, extension flags %u -#>>>>>>40 uleshort =0 \b, extension flags %u ->>>>>>42 uleshort >0 \b, fsVersion %u -#>>>>>>42 uleshort =0 \b, fsVersion %u (usual) ->>>>>>44 ulelong >2 \b, rootdir cluster %u -#>>>>>>44 ulelong =2 \b, rootdir cluster %u -#>>>>>>44 ulelong =1 \b, rootdir cluster %u ->>>>>>48 uleshort >1 \b, infoSector %u -#>>>>>>48 uleshort =1 \b, infoSector %u (usual) ->>>>>>48 uleshort <1 \b, infoSector %u ->>>>>>50 uleshort >6 \b, Backup boot sector %u -#>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual) ->>>>>>50 uleshort <6 \b, Backup boot sector %u ->>>>>>54 ulelong >0 \b, reserved1 0x%x ->>>>>>58 ulelong >0 \b, reserved2 0x%x ->>>>>>62 ulelong >0 \b, reserved3 0x%x +>>>>>>82 string FAT32 \b, FAT (32 bit) +>>>>>>>36 ulelong x \b, sectors/FAT %u +>>>>>>>40 uleshort >0 \b, extension flags %u +#>>>>>>>40 uleshort =0 \b, extension flags %u +>>>>>>>42 uleshort >0 \b, fsVersion %u +#>>>>>>>42 uleshort =0 \b, fsVersion %u (usual) +>>>>>>>44 ulelong >2 \b, rootdir cluster %u +#>>>>>>>44 ulelong =2 \b, rootdir cluster %u +#>>>>>>>44 ulelong =1 \b, rootdir cluster %u +>>>>>>>48 uleshort >1 \b, infoSector %u +#>>>>>>>48 uleshort =1 \b, infoSector %u (usual) +>>>>>>>48 uleshort <1 \b, infoSector %u +>>>>>>>50 uleshort >6 \b, Backup boot sector %u +#>>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual) +>>>>>>>50 uleshort <6 \b, Backup boot sector %u +>>>>>>>54 ulelong >0 \b, reserved1 0x%x +>>>>>>>58 ulelong >0 \b, reserved2 0x%x +>>>>>>>62 ulelong >0 \b, reserved3 0x%x # same structure as FAT1X ->>>>>>64 ubyte >0x80 \b, physical drive 0x%x -#>>>>>>64 ubyte =0x80 \b, physical drive 0x%x=80 (usual harddisk) ->>>>>>64 ubyte&0x7F >0 \b, physical drive 0x%x -#>>>>>>64 ubyte =0 \b, physical drive 0x%x=0 (usual floppy) ->>>>>>65 ubyte >0 \b, reserved 0x%x ->>>>>>66 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x) ->>>>>>66 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x) ->>>>>>66 ubyte =0x29 ->>>>>>>67 ulelong x \b, serial number 0x%x ->>>>>>>71 string >>>>>71 string >NO\ NAME \b, label: "%11.11s" ->>>>>>71 string =NO\ NAME \b, unlabeled +>>>>>>>64 ubyte >0x80 \b, physical drive 0x%x +#>>>>>>>64 ubyte =0x80 \b, physical drive 0x%x=80 (usual harddisk) +>>>>>>>64 ubyte&0x7F >0 \b, physical drive 0x%x +#>>>>>>>64 ubyte =0 \b, physical drive 0x%x=0 (usual floppy) +>>>>>>>65 ubyte >0 \b, reserved 0x%x +>>>>>>>66 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x) +>>>>>>>66 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x) +>>>>>>>66 ubyte =0x29 +>>>>>>>>67 ulelong x \b, serial number 0x%x +>>>>>>>>71 string >>>>>>71 string >NO\ NAME \b, label: "%11.11s" +>>>>>>>71 string =NO\ NAME \b, unlabeled ### FATs end >0x200 lelong 0x82564557 \b, BSD disklabel # FATX @@ -854,6 +904,13 @@ 0x18b string OS/2 OS/2 Boot Manager +# updated by Joerg Jenderek at Oct 2008!! +# http://syslinux.zytor.com/iso.php +0 ulelong 0x7c40eafa isolinux Loader +# http://syslinux.zytor.com/pxe.php +0 ulelong 0x007c05ea pxelinux Loader +0 ulelong 0x60669c66 pxelinux Loader + # added by Joerg Jenderek # In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or # grub-1.94/kern/i386/pc/startup.S @@ -1324,6 +1381,14 @@ >0x10024 belong x (blocksize %d, >0x10060 string >\0 lockproto %s) +# BTRFS +0x10040 string _BHRfS_M BTRFS Filesystem +>0x1012b string >\0 (label "%s", +>0x10090 lelong x sectorsize %d, +>0x10094 lelong x nodesize %d, +>0x10098 lelong x leafsize %d) + + # dvdisaster's .ecc # From: "Nelson A. de Oliveira" 0 string *dvdisaster* dvdisaster error correction file Modified: vendor/file/dist/Magdir/graphviz ============================================================================== --- vendor/file/dist/Magdir/graphviz Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/graphviz Sat May 2 06:25:51 2009 (r191736) @@ -1,7 +1,10 @@ - #------------------------------------------------------------------------------ # graphviz: file(1) magic for http://www.graphviz.org/ -0 regex/100 [\r\n\t\ ]*graph[\r\n\t\ ]*.*\\{ graphviz graph text -!:mime text/vnd.graphviz -0 regex/100 [\r\n\t\ ]*digraph[\r\n\t\ ]*.*\\{ graphviz digraph text -!:mime text/vnd.graphviz + +# FIXME: These patterns match too generally. For example, the first +# line matches a LaTeX file containing the word "graph" (with a { +# following later) and the second line matches this file. +#0 regex/100 [\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{ graphviz graph text +#!:mime text/vnd.graphviz +#0 regex/100 [\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{ graphviz digraph text +#!:mime text/vnd.graphviz Modified: vendor/file/dist/Magdir/images ============================================================================== --- vendor/file/dist/Magdir/images Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/images Sat May 2 06:25:51 2009 (r191736) @@ -110,6 +110,7 @@ # GIF 0 string GIF8 GIF image data !:mime image/gif +!:apple 8BIMGIFf >4 string 7a \b, version 8%s, >4 string 9a \b, version 8%s, >6 leshort >0 %hd x @@ -600,3 +601,7 @@ # Wavelet Scalar Quantization format used in gray-scale fingerprint images # From Tano M Fotang 0 string \xff\xa0\xff\xa8\x00 Wavelet Scalar Quantization image data + +# JPEG 2000 Code Stream Bitmap +# From Petr Splichal +0 string \xFF\x4F\xFF\x51\x00 JPEG-2000 Code Stream Bitmap data Modified: vendor/file/dist/Magdir/jpeg ============================================================================== --- vendor/file/dist/Magdir/jpeg Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/jpeg Sat May 2 06:25:51 2009 (r191736) @@ -10,6 +10,7 @@ # 0 beshort 0xffd8 JPEG image data !:mime image/jpeg +!:apple 8BIMJPEG !:strength +1 >6 string JFIF \b, JFIF standard # The following added by Erik Rossen 1999-09-06 Modified: vendor/file/dist/Magdir/mach ============================================================================== --- vendor/file/dist/Magdir/mach Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/mach Sat May 2 06:25:51 2009 (r191736) @@ -4,7 +4,7 @@ # Java ByteCode, so they are both handled in the file "cafebabe". # The "feedface" ones are handled herein. #------------------------------------------------------------ -0 lelong&0xfeffffff 0xfeedface Mach-O +0 lelong&0xfffffffe 0xfeedface Mach-O >0 byte 0xcf 64-bit >12 lelong 1 object >12 lelong 2 executable Modified: vendor/file/dist/Magdir/macintosh ============================================================================== --- vendor/file/dist/Magdir/macintosh Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/macintosh Sat May 2 06:25:51 2009 (r191736) @@ -11,6 +11,8 @@ # Stuffit archives are the de facto standard of compression for Macintosh # files obtained from most archives. (franklsm@tuns.ca) 0 string SIT! StuffIt Archive (data) +!:mime application/x-stuffit +!:apple SIT!SIT! >2 string x : %s 0 string SITD StuffIt Deluxe (data) >2 string x : %s @@ -20,6 +22,7 @@ # Newer StuffIt archives (grant@netbsd.org) 0 string StuffIt StuffIt Archive !:mime application/x-stuffit +!:apple SIT!SIT! #>162 string >0 : %s # Macintosh Applications and Installation binaries (franklsm@tuns.ca) Modified: vendor/file/dist/Magdir/msdos ============================================================================== --- vendor/file/dist/Magdir/msdos Sat May 2 06:12:38 2009 (r191735) +++ vendor/file/dist/Magdir/msdos Sat May 2 06:25:51 2009 (r191736) @@ -4,15 +4,15 @@ # # .BAT files (Daniel Quinlan, quinlan@yggdrasil.com) -# updated by Joerg Jenderek +# updated by Joerg Jenderek at Oct 2008 0 string @ ->1 string/cB \ echo\ off MS-DOS batch file text +>1 string/cB \ echo\ off DOS batch file text !:mime text/x-msdos-batch ->1 string/cB echo\ off MS-DOS batch file text +>1 string/cB echo\ off DOS batch file text !:mime text/x-msdos-batch ->1 string/cB rem\ MS-DOS batch file text +>1 string/cB rem\ DOS batch file text !:mime text/x-msdos-batch ->1 string/cB set\ MS-DOS batch file text +>1 string/cB set\ DOS batch file text !:mime text/x-msdos-batch @@ -285,8 +285,9 @@ # Uncommenting only the first two lines will cover about 2/3 of COM files, # but it isn't feasible to match all COM files since there must be at least # two dozen different one-byte "magics". -#0 byte 0xe9 DOS executable (COM) -#>0x1FE leshort 0xAA55 \b, boot code +# test too generic ? +0 byte 0xe9 DOS executable (COM) +>0x1FE leshort 0xAA55 \b, boot code >6 string SFX\ of\ LHarc (%s) 0 belong 0xffffffff DOS executable (device driver) #CMD640X2.SYS @@ -309,25 +310,38 @@ >>77 string >\x40 >>>77 string <\x5B >>>>77 string x \b, name: %.8s -#0 byte 0x8c DOS executable (COM) -# 0xeb conflicts with "sequent" magic -#0 byte 0xeb DOS executable (COM) -#>0x1FE leshort 0xAA55 \b, boot code -#>85 string UPX \b, UPX compressed -#>4 string \ $ARX \b, ARX self-extracting archive -#>4 string \ $LHarc \b, LHarc self-extracting archive -#>0x20e string SFX\ by\ LARC \b, LARC self-extracting archive +# test too generic ? +0 byte 0x8c DOS executable (COM) +# updated by Joerg Jenderek at Oct 2008 +0 ulelong 0xffff10eb DR-DOS executable (COM) +# byte 0xeb conflicts with "sequent" magic leshort 0xn2eb +0 ubeshort&0xeb8d >0xeb00 +# DR-DOS STACKER.COM SCREATE.SYS missed +>0 byte 0xeb DOS executable (COM) +>>0x1FE leshort 0xAA55 \b, boot code +>>85 string UPX \b, UPX compressed +>>4 string \ $ARX \b, ARX self-extracting archive +>>4 string \ $LHarc \b, LHarc self-extracting archive +>>0x20e string SFX\ by\ LARC \b, LARC self-extracting archive +# updated by Joerg Jenderek at Oct 2008 #0 byte 0xb8 COM executable +0 uleshort&0x80ff 0x00b8 # modified by Joerg Jenderek ->1 lelong !0x21cd4cff for DOS +>1 lelong !0x21cd4cff COM executable for DOS # http://syslinux.zytor.com/comboot.php # (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode # start with assembler instructions mov eax,21cd4cffh ->1 lelong 0x21cd4cff (32-bit COMBOOT) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat May 2 07:02:31 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBC32106564A; Sat, 2 May 2009 07:02:31 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B89448FC14; Sat, 2 May 2009 07:02:31 +0000 (UTC) (envelope-from rdivacky@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 n4272VFD075499; Sat, 2 May 2009 07:02:31 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4272VGS075497; Sat, 2 May 2009 07:02:31 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <200905020702.n4272VGS075497@svn.freebsd.org> From: Roman Divacky Date: Sat, 2 May 2009 07:02:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191737 - head/usr.bin/ncal X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 07:02:32 -0000 Author: rdivacky Date: Sat May 2 07:02:31 2009 New Revision: 191737 URL: http://svn.freebsd.org/changeset/base/191737 Log: Mention -h in usage() and manpage. Rename term_{r,e} to term_{so,se}. Suggested by: ru Approved by: ed (mentor) Modified: head/usr.bin/ncal/ncal.1 head/usr.bin/ncal/ncal.c Modified: head/usr.bin/ncal/ncal.1 ============================================================================== --- head/usr.bin/ncal/ncal.1 Sat May 2 06:25:51 2009 (r191736) +++ head/usr.bin/ncal/ncal.1 Sat May 2 07:02:31 2009 (r191737) @@ -33,24 +33,24 @@ .Nd displays a calendar and the date of Easter .Sh SYNOPSIS .Nm -.Op Fl jy +.Op Fl hjy .Oo .Op Ar month .Ar year .Oc .Nm -.Op Fl j +.Op Fl hj .Fl m Ar month .Op Ar year .Nm ncal -.Op Fl jJpwy +.Op Fl hjJpwy .Op Fl s Ar country_code .Oo .Op Ar month .Ar year .Oc .Nm ncal -.Op Fl Jeo +.Op Fl hJeo .Op Ar year .Sh DESCRIPTION The @@ -65,6 +65,8 @@ the current month is displayed. .Pp The options are as follows: .Bl -tag -width indent +.It Fl h +Turns off highlighting of today. .It Fl J Display Julian Calendar, if combined with the .Fl e Modified: head/usr.bin/ncal/ncal.c ============================================================================== --- head/usr.bin/ncal/ncal.c Sat May 2 06:25:51 2009 (r191736) +++ head/usr.bin/ncal/ncal.c Sat May 2 07:02:31 2009 (r191737) @@ -161,7 +161,7 @@ char jdaystr[] = " 1 2 3 4 int flag_weeks; /* user wants number of week */ int nswitch; /* user defined switch date */ int nswitchb; /* switch date for backward compatibility */ -const char *term_r, *term_e; +const char *term_so, *term_se; int today; char *center(char *s, char *t, int w); @@ -207,14 +207,14 @@ main(int argc, char *argv[]) time_t t; struct tm *tm1; - term_e = term_r = NULL; + term_se = term_so = NULL; today = 0; if (isatty(STDOUT_FILENO) && tgetent(tbuf, NULL) == 1) { date dt; /* handy date */ b = cbuf; - term_r = tgetstr("so", &b); - term_e = tgetstr("se", &b); + term_so = tgetstr("so", &b); + term_se = tgetstr("se", &b); t = time(NULL); tm1 = localtime(&t); dt.y = tm1->tm_year + 1900; @@ -272,7 +272,7 @@ main(int argc, char *argv[]) flag_julian_cal = 1; break; case 'h': - term_r = term_e = NULL; + term_so = term_se = NULL; break; case 'e': if (flag_backward) @@ -382,10 +382,10 @@ usage(void) { fputs( - "usage: cal [-jy] [[month] year]\n" - " cal [-j] [-m month] [year]\n" - " ncal [-Jjpwy] [-s country_code] [[month] year]\n" - " ncal [-Jeo] [year]\n", stderr); + "usage: cal [-hjy] [[month] year]\n" + " cal [-hj] [-m month] [year]\n" + " ncal [-hJjpwy] [-s country_code] [[month] year]\n" + " ncal [-hJeo] [year]\n", stderr); exit(EX_USAGE); } @@ -671,8 +671,8 @@ mkmonth(int y, int m, int jd_flag, struc for (i = 0; i != 7; i++) { l = 0; for (j = firstm + i, k = 0; j < last; j += 7, k += dw) { - if (j == today && (term_r != NULL && term_e != NULL)) { - l = strlen(term_r); + if (j == today && (term_so != NULL && term_se != NULL)) { + l = strlen(term_so); if (jd_flag) dt.d = j - jan1 + 1; else @@ -683,11 +683,11 @@ mkmonth(int y, int m, int jd_flag, struc memcpy(mlines->lines[i] + k + l, ds + dt.d * dw, dw); /* highlight on */ - memcpy(mlines->lines[i] + k + 1, term_r, l); + memcpy(mlines->lines[i] + k + 1, term_so, l); /* highlight off */ - memcpy(mlines->lines[i] + k + l + dw, term_e, - strlen(term_e)); - l = strlen(term_e) + strlen(term_r); + memcpy(mlines->lines[i] + k + l + dw, term_se, + strlen(term_se)); + l = strlen(term_se) + strlen(term_so); continue; } if (j >= first) { @@ -790,8 +790,8 @@ mkmonthb(int y, int m, int jd_flag, stru l = 0; for (j = firsts + 7 * i, k = 0; j < last && k != dw * 7; j++, k += dw) { - if (j == today && (term_r != NULL && term_e != NULL)) { - l = strlen(term_r); + if (j == today && (term_so != NULL && term_se != NULL)) { + l = strlen(term_so); if (jd_flag) dt.d = j - jan1 + 1; else @@ -802,11 +802,11 @@ mkmonthb(int y, int m, int jd_flag, stru memcpy(mlines->lines[i] + k + l, ds + dt.d * dw, dw); /* highlight on */ - memcpy(mlines->lines[i] + k + 1, term_r, l); + memcpy(mlines->lines[i] + k + 1, term_so, l); /* highlight off */ - memcpy(mlines->lines[i] + k + l + dw, term_e, - strlen(term_e)); - l = strlen(term_e) + strlen(term_r); + memcpy(mlines->lines[i] + k + l + dw, term_se, + strlen(term_se)); + l = strlen(term_se) + strlen(term_so); continue; } if (j >= first) { From owner-svn-src-all@FreeBSD.ORG Sat May 2 08:16:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C26E2106566C; Sat, 2 May 2009 08:16:26 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AF05F8FC0A; Sat, 2 May 2009 08:16:26 +0000 (UTC) (envelope-from zec@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 n428GQvB076929; Sat, 2 May 2009 08:16:26 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n428GQ6B076923; Sat, 2 May 2009 08:16:26 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <200905020816.n428GQ6B076923@svn.freebsd.org> From: Marko Zec Date: Sat, 2 May 2009 08:16:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191738 - in head/sys: net netinet netinet6 netipsec X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 08:16:27 -0000 Author: zec Date: Sat May 2 08:16:26 2009 New Revision: 191738 URL: http://svn.freebsd.org/changeset/base/191738 Log: Make indentation more uniform accross vnet container structs. This is a purely cosmetic / NOP change. Reviewed by: bz Approved by: julian (mentor) Verified by: svn diff -x -w producing no output Modified: head/sys/net/if_gif.h head/sys/net/vnet.h head/sys/netinet/ip_fw.h head/sys/netinet/vinet.h head/sys/netinet6/vinet6.h head/sys/netipsec/vipsec.h Modified: head/sys/net/if_gif.h ============================================================================== --- head/sys/net/if_gif.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/net/if_gif.h Sat May 2 08:16:26 2009 (r191738) @@ -117,11 +117,11 @@ int gif_encapcheck(const struct mbuf *, */ struct vnet_gif { - LIST_HEAD(, gif_softc) _gif_softc_list; - int _max_gif_nesting; - int _parallel_tunnels; - int _ip_gif_ttl; - int _ip6_gif_hlim; + LIST_HEAD(, gif_softc) _gif_softc_list; + int _max_gif_nesting; + int _parallel_tunnels; + int _ip_gif_ttl; + int _ip6_gif_hlim; }; #ifndef VIMAGE Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/net/vnet.h Sat May 2 08:16:26 2009 (r191738) @@ -36,25 +36,25 @@ #include struct vnet_net { - int _if_index; - struct ifindex_entry *_ifindex_table; - struct ifnethead _ifnet; - struct ifgrouphead _ifg_head; + int _if_index; + struct ifindex_entry * _ifindex_table; + struct ifnethead _ifnet; + struct ifgrouphead _ifg_head; - int _if_indexlim; - struct knlist _ifklist; + int _if_indexlim; + struct knlist _ifklist; - struct rtstat _rtstat; - struct radix_node_head *_rt_tables[RT_MAXFIBS][AF_MAX+1]; - int _rttrash; - uma_zone_t _rtzone; + struct rtstat _rtstat; + struct radix_node_head *_rt_tables[RT_MAXFIBS][AF_MAX+1]; + int _rttrash; + uma_zone_t _rtzone; - struct ifnet *_loif; - LIST_HEAD(, lo_softc) _lo_list; + struct ifnet * _loif; + LIST_HEAD(, lo_softc) _lo_list; - LIST_HEAD(, rawcb) _rawcb_list; + LIST_HEAD(, rawcb) _rawcb_list; - int _ether_ipfw; + int _ether_ipfw; }; /* Size guard. See sys/vimage.h. */ Modified: head/sys/netinet/ip_fw.h ============================================================================== --- head/sys/netinet/ip_fw.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/netinet/ip_fw.h Sat May 2 08:16:26 2009 (r191738) @@ -689,33 +689,33 @@ struct eventhandler_entry; * Stack virtualization support. */ struct vnet_ipfw { - int _fw_enable; - int _fw6_enable; - u_int32_t _set_disable; - int _fw_deny_unknown_exthdrs; - int _fw_verbose; - int _verbose_limit; - int _autoinc_step; - ipfw_dyn_rule **_ipfw_dyn_v; - uma_zone_t _ipfw_dyn_rule_zone; - struct ip_fw_chain _layer3_chain; - u_int32_t _dyn_buckets; - u_int32_t _curr_dyn_buckets; - u_int32_t _dyn_ack_lifetime; - u_int32_t _dyn_syn_lifetime; - u_int32_t _dyn_fin_lifetime; - u_int32_t _dyn_rst_lifetime; - u_int32_t _dyn_udp_lifetime; - u_int32_t _dyn_short_lifetime; - u_int32_t _dyn_keepalive_interval; - u_int32_t _dyn_keepalive_period; - u_int32_t _dyn_keepalive; - u_int32_t _static_count; - u_int32_t _static_len; - u_int32_t _dyn_count; - u_int32_t _dyn_max; - u_int64_t _norule_counter; - struct callout _ipfw_timeout; + int _fw_enable; + int _fw6_enable; + u_int32_t _set_disable; + int _fw_deny_unknown_exthdrs; + int _fw_verbose; + int _verbose_limit; + int _autoinc_step; + ipfw_dyn_rule ** _ipfw_dyn_v; + uma_zone_t _ipfw_dyn_rule_zone; + struct ip_fw_chain _layer3_chain; + u_int32_t _dyn_buckets; + u_int32_t _curr_dyn_buckets; + u_int32_t _dyn_ack_lifetime; + u_int32_t _dyn_syn_lifetime; + u_int32_t _dyn_fin_lifetime; + u_int32_t _dyn_rst_lifetime; + u_int32_t _dyn_udp_lifetime; + u_int32_t _dyn_short_lifetime; + u_int32_t _dyn_keepalive_interval; + u_int32_t _dyn_keepalive_period; + u_int32_t _dyn_keepalive; + u_int32_t _static_count; + u_int32_t _static_len; + u_int32_t _dyn_count; + u_int32_t _dyn_max; + u_int64_t _norule_counter; + struct callout _ipfw_timeout; struct eventhandler_entry *_ifaddr_event_tag; }; Modified: head/sys/netinet/vinet.h ============================================================================== --- head/sys/netinet/vinet.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/netinet/vinet.h Sat May 2 08:16:26 2009 (r191738) @@ -51,166 +51,166 @@ #include struct vnet_inet { - struct in_ifaddrhashhead *_in_ifaddrhashtbl; - struct in_ifaddrhead _in_ifaddrhead; - u_long _in_ifaddrhmask; - - int _arpt_keep; - int _arp_maxtries; - int _useloopback; - int _arp_proxyall; - int _subnetsarelocal; - int _sameprefixcarponly; - - int _ipforwarding; - int _ipstealth; - int _ipfastforward_active; - int _ipsendredirects; - int _ip_defttl; - int _ip_keepfaith; - int _ip_sendsourcequench; - int _ip_do_randomid; - int _ip_checkinterface; - int _ip_output_flowtable_size; - u_short _ip_id; - - uma_zone_t _ipq_zone; - int _nipq; /* Total # of reass queues */ - int _maxnipq; /* Admin. limit on # reass queues. */ - int _maxfragsperpacket; + struct in_ifaddrhashhead *_in_ifaddrhashtbl; + struct in_ifaddrhead _in_ifaddrhead; + u_long _in_ifaddrhmask; + + int _arpt_keep; + int _arp_maxtries; + int _useloopback; + int _arp_proxyall; + int _subnetsarelocal; + int _sameprefixcarponly; + + int _ipforwarding; + int _ipstealth; + int _ipfastforward_active; + int _ipsendredirects; + int _ip_defttl; + int _ip_keepfaith; + int _ip_sendsourcequench; + int _ip_do_randomid; + int _ip_checkinterface; + int _ip_output_flowtable_size; + u_short _ip_id; + + uma_zone_t _ipq_zone; + int _nipq; /* Total # of reass queues */ + int _maxnipq; /* Admin. limit on # reass queues. */ + int _maxfragsperpacket; TAILQ_HEAD(ipqhead, ipq) _ipq[IPREASS_NHASH]; - struct inpcbhead _tcb; /* head of queue of active tcpcb's */ - struct inpcbinfo _tcbinfo; - struct tcpstat _tcpstat; /* tcp statistics */ - struct tcp_hostcache _tcp_hostcache; - struct callout _tcp_hc_callout; - - uma_zone_t _tcp_reass_zone; - uma_zone_t _tcpcb_zone; - uma_zone_t _tcptw_zone; - uma_zone_t _sack_hole_zone; - - struct tcp_syncache _tcp_syncache; - int _tcp_syncookies; - int _tcp_syncookiesonly; - int _tcp_sc_rst_sock_fail; - - struct inpcbhead _divcb; - struct inpcbinfo _divcbinfo; - TAILQ_HEAD(, tcptw) _twq_2msl; - - int _tcp_mssdflt; - int _tcp_v6mssdflt; - int _tcp_minmss; - int _tcp_do_rfc1323; - int _icmp_may_rst; - int _tcp_isn_reseed_interval; - int _tcp_inflight_enable; - int _tcp_inflight_rttthresh; - int _tcp_inflight_min; - int _tcp_inflight_max; - int _tcp_inflight_stab; - int _nolocaltimewait; - int _path_mtu_discovery; - int _ss_fltsz; - int _ss_fltsz_local; - int _tcp_do_newreno; - int _tcp_do_tso; - int _tcp_do_autosndbuf; - int _tcp_autosndbuf_inc; - int _tcp_autosndbuf_max; - int _tcp_do_sack; - int _tcp_sack_maxholes; - int _tcp_sack_globalmaxholes; - int _tcp_sack_globalholes; - int _blackhole; - int _tcp_delack_enabled; - int _drop_synfin; - int _tcp_do_rfc3042; - int _tcp_do_rfc3390; - int _tcp_do_rfc3465; - int _tcp_abc_l_var; - int _tcp_do_ecn; - int _tcp_ecn_maxretries; - int _tcp_insecure_rst; - int _tcp_do_autorcvbuf; - int _tcp_autorcvbuf_inc; - int _tcp_autorcvbuf_max; - int _tcp_reass_maxseg; - int _tcp_reass_qsize; - int _tcp_reass_maxqlen; - int _tcp_reass_overflows; - - u_char _isn_secret[32]; - int _isn_last_reseed; - u_int32_t _isn_offset; - u_int32_t _isn_offset_old; - - struct inpcbhead _udb; - struct inpcbinfo _udbinfo; - struct udpstat _udpstat; - int _udp_blackhole; - - struct inpcbhead _ripcb; - struct inpcbinfo _ripcbinfo; - struct socket *_ip_mrouter; - - struct socket *_ip_rsvpd; - int _ip_rsvp_on; - int _rsvp_on; - - struct icmpstat _icmpstat; - struct ipstat _ipstat; - - LIST_HEAD(, igmp_ifinfo) _igi_head; - struct igmpstat _igmpstat; - int _interface_timers_running; - int _state_change_timers_running; - int _current_state_timers_running; - int _igmp_recvifkludge; - int _igmp_sendra; - int _igmp_sendlocal; - int _igmp_v1enable; - int _igmp_v2enable; - int _igmp_legacysupp; - int _igmp_sgalloc; - int _igmp_default_version; - struct timeval _igmp_gsrdelay; - - int _rtq_timeout; - int _rtq_reallyold; - int _rtq_minreallyold; - int _rtq_toomany; - struct callout _rtq_timer; - - int _ipport_lowfirstauto; - int _ipport_lowlastauto; - int _ipport_firstauto; - int _ipport_lastauto; - int _ipport_hifirstauto; - int _ipport_hilastauto; - int _ipport_reservedhigh; - int _ipport_reservedlow; - int _ipport_randomized; - int _ipport_randomcps; - int _ipport_randomtime; - int _ipport_stoprandom; - int _ipport_tcpallocs; - int _ipport_tcplastcount; - - int _icmpmaskrepl; - u_int _icmpmaskfake; - int _drop_redirect; - int _log_redirect; - int _icmplim; - int _icmplim_output; - char _reply_src[IFNAMSIZ]; - int _icmp_rfi; - int _icmp_quotelen; - int _icmpbmcastecho; + struct inpcbhead _tcb; /* head of queue of active tcpcb's */ + struct inpcbinfo _tcbinfo; + struct tcpstat _tcpstat; /* tcp statistics */ + struct tcp_hostcache _tcp_hostcache; + struct callout _tcp_hc_callout; + + uma_zone_t _tcp_reass_zone; + uma_zone_t _tcpcb_zone; + uma_zone_t _tcptw_zone; + uma_zone_t _sack_hole_zone; + + struct tcp_syncache _tcp_syncache; + int _tcp_syncookies; + int _tcp_syncookiesonly; + int _tcp_sc_rst_sock_fail; + + struct inpcbhead _divcb; + struct inpcbinfo _divcbinfo; + TAILQ_HEAD(, tcptw) _twq_2msl; + + int _tcp_mssdflt; + int _tcp_v6mssdflt; + int _tcp_minmss; + int _tcp_do_rfc1323; + int _icmp_may_rst; + int _tcp_isn_reseed_interval; + int _tcp_inflight_enable; + int _tcp_inflight_rttthresh; + int _tcp_inflight_min; + int _tcp_inflight_max; + int _tcp_inflight_stab; + int _nolocaltimewait; + int _path_mtu_discovery; + int _ss_fltsz; + int _ss_fltsz_local; + int _tcp_do_newreno; + int _tcp_do_tso; + int _tcp_do_autosndbuf; + int _tcp_autosndbuf_inc; + int _tcp_autosndbuf_max; + int _tcp_do_sack; + int _tcp_sack_maxholes; + int _tcp_sack_globalmaxholes; + int _tcp_sack_globalholes; + int _blackhole; + int _tcp_delack_enabled; + int _drop_synfin; + int _tcp_do_rfc3042; + int _tcp_do_rfc3390; + int _tcp_do_rfc3465; + int _tcp_abc_l_var; + int _tcp_do_ecn; + int _tcp_ecn_maxretries; + int _tcp_insecure_rst; + int _tcp_do_autorcvbuf; + int _tcp_autorcvbuf_inc; + int _tcp_autorcvbuf_max; + int _tcp_reass_maxseg; + int _tcp_reass_qsize; + int _tcp_reass_maxqlen; + int _tcp_reass_overflows; + + u_char _isn_secret[32]; + int _isn_last_reseed; + u_int32_t _isn_offset; + u_int32_t _isn_offset_old; + + struct inpcbhead _udb; + struct inpcbinfo _udbinfo; + struct udpstat _udpstat; + int _udp_blackhole; + + struct inpcbhead _ripcb; + struct inpcbinfo _ripcbinfo; + struct socket * _ip_mrouter; + + struct socket * _ip_rsvpd; + int _ip_rsvp_on; + int _rsvp_on; + + struct icmpstat _icmpstat; + struct ipstat _ipstat; + + LIST_HEAD(, igmp_ifinfo) _igi_head; + struct igmpstat _igmpstat; + int _interface_timers_running; + int _state_change_timers_running; + int _current_state_timers_running; + int _igmp_recvifkludge; + int _igmp_sendra; + int _igmp_sendlocal; + int _igmp_v1enable; + int _igmp_v2enable; + int _igmp_legacysupp; + int _igmp_sgalloc; + int _igmp_default_version; + struct timeval _igmp_gsrdelay; + + int _rtq_timeout; + int _rtq_reallyold; + int _rtq_minreallyold; + int _rtq_toomany; + struct callout _rtq_timer; + + int _ipport_lowfirstauto; + int _ipport_lowlastauto; + int _ipport_firstauto; + int _ipport_lastauto; + int _ipport_hifirstauto; + int _ipport_hilastauto; + int _ipport_reservedhigh; + int _ipport_reservedlow; + int _ipport_randomized; + int _ipport_randomcps; + int _ipport_randomtime; + int _ipport_stoprandom; + int _ipport_tcpallocs; + int _ipport_tcplastcount; + + int _icmpmaskrepl; + u_int _icmpmaskfake; + int _drop_redirect; + int _log_redirect; + int _icmplim; + int _icmplim_output; + char _reply_src[IFNAMSIZ]; + int _icmp_rfi; + int _icmp_quotelen; + int _icmpbmcastecho; - int _fw_one_pass; + int _fw_one_pass; }; /* Size guard. See sys/vimage.h. */ Modified: head/sys/netinet6/vinet6.h ============================================================================== --- head/sys/netinet6/vinet6.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/netinet6/vinet6.h Sat May 2 08:16:26 2009 (r191738) @@ -48,112 +48,112 @@ #include struct vnet_inet6 { - struct in6_ifaddr * _in6_ifaddr; + struct in6_ifaddr * _in6_ifaddr; - u_int _frag6_nfragpackets; - u_int _frag6_nfrags; - struct ip6q _ip6q; + u_int _frag6_nfragpackets; + u_int _frag6_nfrags; + struct ip6q _ip6q; - struct in6_addrpolicy _defaultaddrpolicy; + struct in6_addrpolicy _defaultaddrpolicy; TAILQ_HEAD(, addrsel_policyent) _addrsel_policytab; - u_int _in6_maxmtu; - int _ip6_auto_linklocal; - int _rtq_minreallyold6; - int _rtq_reallyold6; - int _rtq_toomany6; - - struct ip6stat _ip6stat; - struct rip6stat _rip6stat; - struct icmp6stat _icmp6stat; - - int _rtq_timeout6; - struct callout _rtq_timer6; - struct callout _rtq_mtutimer; - struct callout _nd6_slowtimo_ch; - struct callout _nd6_timer_ch; - struct callout _in6_tmpaddrtimer_ch; - - int _nd6_inuse; - int _nd6_allocated; - int _nd6_onlink_ns_rfc4861; - struct nd_drhead _nd_defrouter; - struct nd_prhead _nd_prefix; - struct ifnet * _nd6_defifp; - int _nd6_defifindex; - - struct scope6_id _sid_default; - - TAILQ_HEAD(, dadq) _dadq; - int _dad_init; - - int _icmp6errpps_count; - struct timeval _icmp6errppslim_last; - - int _ip6_forwarding; - int _ip6_sendredirects; - int _ip6_defhlim; - int _ip6_defmcasthlim; - int _ip6_accept_rtadv; - int _ip6_maxfragpackets; - int _ip6_maxfrags; - int _ip6_log_interval; - int _ip6_hdrnestlimit; - int _ip6_dad_count; - int _ip6_auto_flowlabel; - int _ip6_use_deprecated; - int _ip6_rr_prune; - int _ip6_mcast_pmtu; - int _ip6_v6only; - int _ip6_keepfaith; - int _ip6stealth; - time_t _ip6_log_time; - - int _pmtu_expire; - int _pmtu_probe; - u_long _rip6_sendspace; - u_long _rip6_recvspace; - int _icmp6_rediraccept; - int _icmp6_redirtimeout; - int _icmp6errppslim; - int _icmp6_nodeinfo; - int _udp6_sendspace; - int _udp6_recvspace; - int _ip6qmaxlen; - int _ip6_prefer_tempaddr; - - int _nd6_prune; - int _nd6_delay; - int _nd6_umaxtries; - int _nd6_mmaxtries; - int _nd6_useloopback; - int _nd6_gctimer; - int _nd6_maxndopt; - int _nd6_maxnudhint; - int _nd6_maxqueuelen; - int _nd6_debug; - int _nd6_recalc_reachtm_interval; - int _dad_ignore_ns; - int _dad_maxtry; - int _ip6_use_tempaddr; - int _ip6_desync_factor; - u_int32_t _ip6_temp_preferred_lifetime; - u_int32_t _ip6_temp_valid_lifetime; - - struct socket * _ip6_mrouter; - int _ip6_mrouter_ver; - int _pim6; - u_int _mrt6debug; - - int _ip6_temp_regen_advance; - int _ip6_use_defzone; - - struct ip6_pktopts _ip6_opts; - - struct timeval _mld_gsrdelay; - LIST_HEAD(, mld_ifinfo) _mli_head; - int _interface_timers_running6; - int _state_change_timers_running6; - int _current_state_timers_running6; + u_int _in6_maxmtu; + int _ip6_auto_linklocal; + int _rtq_minreallyold6; + int _rtq_reallyold6; + int _rtq_toomany6; + + struct ip6stat _ip6stat; + struct rip6stat _rip6stat; + struct icmp6stat _icmp6stat; + + int _rtq_timeout6; + struct callout _rtq_timer6; + struct callout _rtq_mtutimer; + struct callout _nd6_slowtimo_ch; + struct callout _nd6_timer_ch; + struct callout _in6_tmpaddrtimer_ch; + + int _nd6_inuse; + int _nd6_allocated; + int _nd6_onlink_ns_rfc4861; + struct nd_drhead _nd_defrouter; + struct nd_prhead _nd_prefix; + struct ifnet * _nd6_defifp; + int _nd6_defifindex; + + struct scope6_id _sid_default; + + TAILQ_HEAD(, dadq) _dadq; + int _dad_init; + + int _icmp6errpps_count; + struct timeval _icmp6errppslim_last; + + int _ip6_forwarding; + int _ip6_sendredirects; + int _ip6_defhlim; + int _ip6_defmcasthlim; + int _ip6_accept_rtadv; + int _ip6_maxfragpackets; + int _ip6_maxfrags; + int _ip6_log_interval; + int _ip6_hdrnestlimit; + int _ip6_dad_count; + int _ip6_auto_flowlabel; + int _ip6_use_deprecated; + int _ip6_rr_prune; + int _ip6_mcast_pmtu; + int _ip6_v6only; + int _ip6_keepfaith; + int _ip6stealth; + time_t _ip6_log_time; + + int _pmtu_expire; + int _pmtu_probe; + u_long _rip6_sendspace; + u_long _rip6_recvspace; + int _icmp6_rediraccept; + int _icmp6_redirtimeout; + int _icmp6errppslim; + int _icmp6_nodeinfo; + int _udp6_sendspace; + int _udp6_recvspace; + int _ip6qmaxlen; + int _ip6_prefer_tempaddr; + + int _nd6_prune; + int _nd6_delay; + int _nd6_umaxtries; + int _nd6_mmaxtries; + int _nd6_useloopback; + int _nd6_gctimer; + int _nd6_maxndopt; + int _nd6_maxnudhint; + int _nd6_maxqueuelen; + int _nd6_debug; + int _nd6_recalc_reachtm_interval; + int _dad_ignore_ns; + int _dad_maxtry; + int _ip6_use_tempaddr; + int _ip6_desync_factor; + u_int32_t _ip6_temp_preferred_lifetime; + u_int32_t _ip6_temp_valid_lifetime; + + struct socket * _ip6_mrouter; + int _ip6_mrouter_ver; + int _pim6; + u_int _mrt6debug; + + int _ip6_temp_regen_advance; + int _ip6_use_defzone; + + struct ip6_pktopts _ip6_opts; + + struct timeval _mld_gsrdelay; + LIST_HEAD(, mld_ifinfo) _mli_head; + int _interface_timers_running6; + int _state_change_timers_running6; + int _current_state_timers_running6; }; /* Size guard. See sys/vimage.h. */ Modified: head/sys/netipsec/vipsec.h ============================================================================== --- head/sys/netipsec/vipsec.h Sat May 2 07:02:31 2009 (r191737) +++ head/sys/netipsec/vipsec.h Sat May 2 08:16:26 2009 (r191738) @@ -47,8 +47,8 @@ struct vnet_ipsec { int _ipsec_debug; - struct ipsecstat _ipsec4stat; - struct secpolicy _ip4_def_policy; + struct ipsecstat _ipsec4stat; + struct secpolicy _ip4_def_policy; int _ip4_esp_trans_deflev; int _ip4_esp_net_deflev; From owner-svn-src-all@FreeBSD.ORG Sat May 2 08:22:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21F00106564A; Sat, 2 May 2009 08:22:51 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0DB098FC21; Sat, 2 May 2009 08:22:51 +0000 (UTC) (envelope-from obrien@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 n428MnS7077092; Sat, 2 May 2009 08:22:49 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n428MntB077088; Sat, 2 May 2009 08:22:49 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <200905020822.n428MntB077088@svn.freebsd.org> From: "David E. O'Brien" Date: Sat, 2 May 2009 08:22:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191739 - in vendor/file/dist: . Magdir tests X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 08:22:51 -0000 Author: obrien Date: Sat May 2 08:22:49 2009 New Revision: 191739 URL: http://svn.freebsd.org/changeset/base/191739 Log: Virgin import of Christos Zoulas's FILE 5.00. Added: vendor/file/dist/Magdir/wireless vendor/file/dist/Makefile.am-src (contents, props changed) vendor/file/dist/cdf.c (contents, props changed) vendor/file/dist/cdf.h (contents, props changed) vendor/file/dist/cdf_time.c (contents, props changed) vendor/file/dist/encoding.c (contents, props changed) vendor/file/dist/readcdf.c (contents, props changed) Modified: vendor/file/dist/asprintf.c (props changed) vendor/file/dist/elfclass.h (props changed) vendor/file/dist/getopt_long.c (props changed) vendor/file/dist/mygetopt.h (props changed) vendor/file/dist/tests/Makefile.am (props changed) vendor/file/dist/tests/Makefile.in (props changed) vendor/file/dist/tests/test.c (props changed) vendor/file/dist/vasprintf.c (props changed) Added: vendor/file/dist/Magdir/wireless ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/file/dist/Magdir/wireless Sat May 2 08:22:49 2009 (r191739) @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# wireless-regdb: file(1) magic for CRDA wireless-regdb file format +# +0 string RGDB CRDA wireless regulatory database file +>4 belong 19 (Version 1) Added: vendor/file/dist/Makefile.am-src ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/file/dist/Makefile.am-src Sat May 2 08:22:49 2009 (r191739) @@ -0,0 +1,18 @@ +MAGIC = $(pkgdatadir)/magic +lib_LTLIBRARIES = libmagic.la +include_HEADERS = magic.h + +bin_PROGRAMS = file + +AM_CPPFLAGS = -DMAGIC='"$(MAGIC)"' +AM_CFLAGS = @WARNINGS@ + +libmagic_la_SOURCES = magic.c apprentice.c softmagic.c ascmagic.c \ + encoding.c compress.c is_tar.c readelf.c print.c fsmagic.c \ + funcs.c file.h names.h patchlevel.h readelf.h tar.h apptype.c \ + file_opts.h elfclass.h mygetopt.h cdf.c cdf_time.c readcdf.c cdf.h +libmagic_la_LDFLAGS = -no-undefined -version-info 1:0:0 +libmagic_la_LIBADD = $(LTLIBOBJS) + +file_SOURCES = file.c +file_LDADD = libmagic.la Added: vendor/file/dist/cdf.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/file/dist/cdf.c Sat May 2 08:22:49 2009 (r191739) @@ -0,0 +1,1105 @@ +/*- + * Copyright (c) 2008 Christos Zoulas + * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ +/* + * Parse composite document files, the format used in Microsoft Office + * document files before they switched to zipped xml. + * Info from: http://sc.openoffice.org/compdocfileformat.pdf + */ + +#include "file.h" + +#ifndef lint +FILE_RCSID("@(#)$File: cdf.c,v 1.17 2009/02/03 20:27:51 christos Exp $") +#endif + +#include +#ifdef CDF_DEBUG +#include +#endif +#include +#include +#include +#include +#include + +#ifndef EFTYPE +#define EFTYPE EINVAL +#endif + +#include "cdf.h" + +#ifndef __arraycount +#define __arraycount(a) (sizeof(a) / sizeof(a[0])) +#endif + +#ifdef CDF_DEBUG +#define DPRINTF(a) printf a +#else +#define DPRINTF(a) +#endif + +static union { + char s[4]; + uint32_t u; +} cdf_bo; + +#define NEED_SWAP (cdf_bo.u == (uint32_t)0x01020304) + +#define CDF_TOLE8(x) (NEED_SWAP ? cdf_tole8(x) : (uint64_t)(x)) +#define CDF_TOLE4(x) (NEED_SWAP ? cdf_tole4(x) : (uint32_t)(x)) +#define CDF_TOLE2(x) (NEED_SWAP ? cdf_tole2(x) : (uint16_t)(x)) + +/* + * swap a short + */ +uint16_t +cdf_tole2(uint16_t sv) +{ + uint16_t rv; + uint8_t *s = (uint8_t *)(void *)&sv; + uint8_t *d = (uint8_t *)(void *)&rv; + d[0] = s[1]; + d[1] = s[0]; + return rv; +} + +/* + * swap an int + */ +uint32_t +cdf_tole4(uint32_t sv) +{ + uint32_t rv; + uint8_t *s = (uint8_t *)(void *)&sv; + uint8_t *d = (uint8_t *)(void *)&rv; + d[0] = s[3]; + d[1] = s[2]; + d[2] = s[1]; + d[3] = s[0]; + return rv; +} + +/* + * swap a quad + */ +uint64_t +cdf_tole8(uint64_t sv) +{ + uint64_t rv; + uint8_t *s = (uint8_t *)(void *)&sv; + uint8_t *d = (uint8_t *)(void *)&rv; + d[0] = s[7]; + d[1] = s[6]; + d[2] = s[5]; + d[3] = s[4]; + d[4] = s[3]; + d[5] = s[2]; + d[6] = s[1]; + d[7] = s[0]; + return rv; +} + +#define CDF_UNPACK(a) \ + (void)memcpy(&(a), &buf[len], sizeof(a)), len += sizeof(a) +#define CDF_UNPACKA(a) \ + (void)memcpy((a), &buf[len], sizeof(a)), len += sizeof(a) + +void +cdf_swap_header(cdf_header_t *h) +{ + size_t i; + + h->h_magic = CDF_TOLE8(h->h_magic); + h->h_uuid[0] = CDF_TOLE8(h->h_uuid[0]); + h->h_uuid[1] = CDF_TOLE8(h->h_uuid[1]); + h->h_revision = CDF_TOLE2(h->h_revision); + h->h_version = CDF_TOLE2(h->h_version); + h->h_byte_order = CDF_TOLE2(h->h_byte_order); + h->h_sec_size_p2 = CDF_TOLE2(h->h_sec_size_p2); + h->h_short_sec_size_p2 = CDF_TOLE2(h->h_short_sec_size_p2); + h->h_num_sectors_in_sat = CDF_TOLE4(h->h_num_sectors_in_sat); + h->h_secid_first_directory = CDF_TOLE4(h->h_secid_first_directory); + h->h_min_size_standard_stream = + CDF_TOLE4(h->h_min_size_standard_stream); + h->h_secid_first_sector_in_short_sat = + CDF_TOLE4(h->h_secid_first_sector_in_short_sat); + h->h_num_sectors_in_short_sat = + CDF_TOLE4(h->h_num_sectors_in_short_sat); + h->h_secid_first_sector_in_master_sat = + CDF_TOLE4(h->h_secid_first_sector_in_master_sat); + h->h_num_sectors_in_master_sat = + CDF_TOLE4(h->h_num_sectors_in_master_sat); + for (i = 0; i < __arraycount(h->h_master_sat); i++) + h->h_master_sat[i] = CDF_TOLE4(h->h_master_sat[i]); +} + +void +cdf_unpack_header(cdf_header_t *h, char *buf) +{ + size_t i; + size_t len = 0; + + CDF_UNPACK(h->h_magic); + CDF_UNPACKA(h->h_uuid); + CDF_UNPACK(h->h_revision); + CDF_UNPACK(h->h_version); + CDF_UNPACK(h->h_byte_order); + CDF_UNPACK(h->h_sec_size_p2); + CDF_UNPACK(h->h_short_sec_size_p2); + CDF_UNPACKA(h->h_unused0); + CDF_UNPACK(h->h_num_sectors_in_sat); + CDF_UNPACK(h->h_secid_first_directory); + CDF_UNPACKA(h->h_unused1); + CDF_UNPACK(h->h_min_size_standard_stream); + CDF_UNPACK(h->h_secid_first_sector_in_short_sat); + CDF_UNPACK(h->h_num_sectors_in_short_sat); + CDF_UNPACK(h->h_secid_first_sector_in_master_sat); + CDF_UNPACK(h->h_num_sectors_in_master_sat); + for (i = 0; i < __arraycount(h->h_master_sat); i++) + CDF_UNPACK(h->h_master_sat[i]); +} + +void +cdf_swap_dir(cdf_directory_t *d) +{ + d->d_namelen = CDF_TOLE2(d->d_namelen); + d->d_left_child = CDF_TOLE4(d->d_left_child); + d->d_right_child = CDF_TOLE4(d->d_right_child); + d->d_storage = CDF_TOLE4(d->d_storage); + d->d_storage_uuid[0] = CDF_TOLE8(d->d_storage_uuid[0]); + d->d_storage_uuid[1] = CDF_TOLE8(d->d_storage_uuid[1]); + d->d_flags = CDF_TOLE4(d->d_flags); + d->d_created = CDF_TOLE8(d->d_created); + d->d_modified = CDF_TOLE8(d->d_modified); + d->d_stream_first_sector = CDF_TOLE4(d->d_stream_first_sector); + d->d_size = CDF_TOLE4(d->d_size); +} + +void +cdf_swap_class(cdf_classid_t *d) +{ + d->cl_dword = CDF_TOLE4(d->cl_dword); + d->cl_word[0] = CDF_TOLE2(d->cl_word[0]); + d->cl_word[1] = CDF_TOLE2(d->cl_word[1]); +} + +void +cdf_unpack_dir(cdf_directory_t *d, char *buf) +{ + size_t len = 0; + + CDF_UNPACKA(d->d_name); + CDF_UNPACK(d->d_namelen); + CDF_UNPACK(d->d_type); + CDF_UNPACK(d->d_color); + CDF_UNPACK(d->d_left_child); + CDF_UNPACK(d->d_right_child); + CDF_UNPACK(d->d_storage); + CDF_UNPACKA(d->d_storage_uuid); + CDF_UNPACK(d->d_flags); + CDF_UNPACK(d->d_created); + CDF_UNPACK(d->d_modified); + CDF_UNPACK(d->d_stream_first_sector); + CDF_UNPACK(d->d_size); + CDF_UNPACK(d->d_unused0); +} + +int +cdf_read_header(int fd, cdf_header_t *h) +{ + (void)memcpy(cdf_bo.s, "\01\02\03\04", 4); + char buf[512]; + if (lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) + return -1; + if (read(fd, buf, sizeof(buf)) != sizeof(buf)) + return -1; + cdf_unpack_header(h, buf); + cdf_swap_header(h); + if (h->h_magic != CDF_MAGIC) { + DPRINTF(("Bad magic 0x%x != 0x$x\n", h->h_magic, CDF_MAGIC)); + errno = EFTYPE; + return -1; + } + return 0; +} + + +ssize_t +cdf_read_sector(int fd, void *buf, size_t offs, size_t len, + const cdf_header_t *h, cdf_secid_t id) +{ + assert((size_t)CDF_SEC_SIZE(h) == len); + if (lseek(fd, (off_t)CDF_SEC_POS(h, id), SEEK_SET) == (off_t)-1) + return -1; + return read(fd, ((char *)buf) + offs, len); +} + +ssize_t +cdf_read_short_sector(const cdf_stream_t *sst, void *buf, size_t offs, + size_t len, const cdf_header_t *h, cdf_secid_t id) +{ + assert((size_t)CDF_SHORT_SEC_SIZE(h) == len); + (void)memcpy(((char *)buf) + offs, + ((const char *)sst->sst_tab) + CDF_SHORT_SEC_POS(h, id), len); + return len; +} + +/* + * Read the sector allocation table. + */ +int +cdf_read_sat(int fd, cdf_header_t *h, cdf_sat_t *sat) +{ + size_t i, j, k; + size_t ss = CDF_SEC_SIZE(h); + cdf_secid_t *msa, mid; + + for (i = 0; i < __arraycount(h->h_master_sat); i++) + if (h->h_master_sat[i] == CDF_SECID_FREE) + break; + + sat->sat_len = (h->h_num_sectors_in_master_sat + i); + if ((sat->sat_tab = calloc(sat->sat_len, ss)) == NULL) + return -1; + + for (i = 0; i < __arraycount(h->h_master_sat); i++) { + if (h->h_master_sat[i] < 0) + break; + if (cdf_read_sector(fd, sat->sat_tab, ss * i, ss, h, + h->h_master_sat[i]) != (ssize_t)ss) { + DPRINTF(("Reading sector %d", h->h_master_sat[i])); + goto out1; + } + } + + if ((msa = calloc(1, ss)) == NULL) + goto out1; + + mid = h->h_secid_first_sector_in_master_sat; + for (j = 0; j < h->h_num_sectors_in_master_sat; j++) { + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Reading master sector loop limit")); + errno = EFTYPE; + goto out2; + } + if (cdf_read_sector(fd, msa, 0, ss, h, mid) != (ssize_t)ss) { + DPRINTF(("Reading master sector %d", mid)); + goto out2; + } + for (k = 0; k < (ss / sizeof(mid)) - 1; k++, i++) + if (cdf_read_sector(fd, sat->sat_tab, ss * i, ss, h, + CDF_TOLE4(msa[k])) != (ssize_t)ss) { + DPRINTF(("Reading sector %d", + CDF_TOLE4(msa[k]))); + goto out2; + } + mid = CDF_TOLE4(msa[(ss / sizeof(mid)) - 1]); + } + free(msa); + return 0; +out2: + free(msa); +out1: + free(sat->sat_tab); + return -1; +} + +size_t +cdf_count_chain(const cdf_header_t *h, const cdf_sat_t *sat, + cdf_secid_t sid) +{ + size_t i, j, s = CDF_SEC_SIZE(h) / sizeof(cdf_secid_t); + cdf_secid_t maxsector = (cdf_secid_t)(sat->sat_len * s); + + DPRINTF(("Chain:")); + for (j = i = 0; sid >= 0; i++, j++) { + DPRINTF((" %d", sid)); + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Counting chain loop limit")); + errno = EFTYPE; + return (size_t)-1; + } + if (sid > maxsector) { + DPRINTF(("Sector %d > %d\n", sid, maxsector)); + errno = EFTYPE; + return (size_t)-1; + } + sid = CDF_TOLE4(sat->sat_tab[sid]); + } + DPRINTF(("\n")); + return i; +} + +int +cdf_read_long_sector_chain(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + cdf_secid_t sid, size_t len, cdf_stream_t *scn) +{ + size_t ss = CDF_SEC_SIZE(h), i, j; + ssize_t nr; + scn->sst_len = cdf_count_chain(h, sat, sid); + scn->sst_dirlen = len; + + if (scn->sst_len == (size_t)-1) + return -1; + + scn->sst_tab = calloc(scn->sst_len, ss); + if (scn->sst_tab == NULL) + return -1; + + for (j = i = 0; sid >= 0; i++, j++) { + if ((nr = cdf_read_sector(fd, scn->sst_tab, i * ss, ss, h, + sid)) != (ssize_t)ss) { + if (i == scn->sst_len - 1 && nr > 0) { + /* Last sector might be truncated */ + return 0; + } + DPRINTF(("Reading long sector chain %d", sid)); + goto out; + } + sid = CDF_TOLE4(sat->sat_tab[sid]); + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Read long sector chain loop limit")); + errno = EFTYPE; + goto out; + } + } + return 0; +out: + free(scn->sst_tab); + return (size_t)-1; +} + +int +cdf_read_short_sector_chain(const cdf_header_t *h, + const cdf_sat_t *ssat, const cdf_stream_t *sst, + cdf_secid_t sid, size_t len, cdf_stream_t *scn) +{ + size_t ss = CDF_SHORT_SEC_SIZE(h), i, j; + scn->sst_len = cdf_count_chain(h, ssat, sid); + scn->sst_dirlen = len; + + if (scn->sst_len == (size_t)-1) + return -1; + + scn->sst_tab = calloc(scn->sst_len, ss); + if (scn->sst_tab == NULL) + return -1; + + for (j = i = 0; sid >= 0; i++, j++) { + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Read short sector chain loop limit")); + errno = EFTYPE; + goto out; + } + if (cdf_read_short_sector(sst, scn->sst_tab, i * ss, ss, h, + sid) != (ssize_t)ss) { + DPRINTF(("Reading short sector chain %d", sid)); + goto out; + } + sid = CDF_TOLE4(ssat->sat_tab[sid]); + } + return 0; +out: + free(scn->sst_tab); + return (size_t)-1; +} + +int +cdf_read_sector_chain(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + const cdf_sat_t *ssat, const cdf_stream_t *sst, + cdf_secid_t sid, size_t len, cdf_stream_t *scn) +{ + + if (len < h->h_min_size_standard_stream) + return cdf_read_short_sector_chain(h, ssat, sst, sid, len, + scn); + else + return cdf_read_long_sector_chain(fd, h, sat, sid, len, scn); +} + +int +cdf_read_dir(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + cdf_dir_t *dir) +{ + size_t i, j; + size_t ss = CDF_SEC_SIZE(h), ns, nd; + char *buf; + cdf_secid_t sid = h->h_secid_first_directory; + + ns = cdf_count_chain(h, sat, sid); + if (ns == (size_t)-1) + return -1; + + nd = ss / CDF_DIRECTORY_SIZE; + + dir->dir_len = ns * nd; + dir->dir_tab = calloc(dir->dir_len, sizeof(dir->dir_tab[0])); + if (dir->dir_tab == NULL) + return -1; + + if ((buf = malloc(ss)) == NULL) { + free(dir->dir_tab); + return -1; + } + + for (j = i = 0; i < ns; i++, j++) { + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Read dir loop limit")); + errno = EFTYPE; + goto out; + } + if (cdf_read_sector(fd, buf, 0, ss, h, sid) != (ssize_t)ss) { + DPRINTF(("Reading directory sector %d", sid)); + goto out; + } + for (j = 0; j < nd; j++) { + cdf_unpack_dir(&dir->dir_tab[i * nd + j], + &buf[j * CDF_DIRECTORY_SIZE]); + } + sid = CDF_TOLE4(sat->sat_tab[sid]); + } + if (NEED_SWAP) + for (i = 0; i < dir->dir_len; i++) + cdf_swap_dir(&dir->dir_tab[i]); + free(buf); + return 0; +out: + free(dir->dir_tab); + free(buf); + return -1; +} + + +int +cdf_read_ssat(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + cdf_sat_t *ssat) +{ + size_t i, j; + size_t ss = CDF_SEC_SIZE(h); + cdf_secid_t sid = h->h_secid_first_sector_in_short_sat; + + ssat->sat_len = cdf_count_chain(h, sat, sid); + if (ssat->sat_len == (size_t)-1) + return -1; + + ssat->sat_tab = calloc(ssat->sat_len, ss); + if (ssat->sat_tab == NULL) + return -1; + + for (j = i = 0; sid >= 0; i++, j++) { + if (j >= CDF_LOOP_LIMIT) { + DPRINTF(("Read short sat sector loop limit")); + errno = EFTYPE; + goto out; + } + if (cdf_read_sector(fd, ssat->sat_tab, i * ss, ss, h, sid) != + (ssize_t)ss) { + DPRINTF(("Reading short sat sector %d", sid)); + goto out; + } + sid = CDF_TOLE4(sat->sat_tab[sid]); + } + return 0; +out: + free(ssat->sat_tab); + return -1; +} + +int +cdf_read_short_stream(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + const cdf_dir_t *dir, cdf_stream_t *scn) +{ + size_t i; + const cdf_directory_t *d; + + for (i = 0; i < dir->dir_len; i++) + if (dir->dir_tab[i].d_type == CDF_DIR_TYPE_ROOT_STORAGE) + break; + + if (i == dir->dir_len) { + DPRINTF(("Cannot find root storage node\n")); + errno = EFTYPE; + return -1; + } + d = &dir->dir_tab[i]; + + /* If the it is not there, just fake it; some docs don't have it */ + if (d->d_stream_first_sector < 0) { + scn->sst_tab = NULL; + scn->sst_len = 0; + return 0; + } + + return cdf_read_long_sector_chain(fd, h, sat, + d->d_stream_first_sector, d->d_size, scn); +} + +static int +cdf_namecmp(const char *d, const uint16_t *s, size_t l) +{ + for (; l--; d++, s++) + if (*d != CDF_TOLE2(*s)) + return (unsigned char)*d - CDF_TOLE2(*s); + return 0; +} + +int +cdf_read_summary_info(int fd, const cdf_header_t *h, + const cdf_sat_t *sat, const cdf_sat_t *ssat, const cdf_stream_t *sst, + const cdf_dir_t *dir, cdf_stream_t *scn) +{ + size_t i; + const cdf_directory_t *d; + static const char name[] = "\05SummaryInformation"; + + for (i = 0; i < dir->dir_len; i++) + if (dir->dir_tab[i].d_type == CDF_DIR_TYPE_USER_STREAM && + cdf_namecmp(name, dir->dir_tab[i].d_name, sizeof(name)) + == 0) + break; + + if (i == dir->dir_len) { + DPRINTF(("Cannot find summary information section\n")); + errno = EFTYPE; + return -1; + } + d = &dir->dir_tab[i]; + return cdf_read_sector_chain(fd, h, sat, ssat, sst, + d->d_stream_first_sector, d->d_size, scn); +} + +int +cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs, + cdf_property_info_t **info, size_t *count, size_t *maxcount) +{ + const cdf_section_header_t *shp; + cdf_section_header_t sh; + const uint32_t *p, *q, *e; + int16_t s16; + int32_t s32; + uint32_t u32; + int64_t s64; + uint64_t u64; + cdf_timestamp_t tp; + size_t i, o, nelements, j; + cdf_property_info_t *inp; + + shp = (const void *)((const char *)sst->sst_tab + offs); + sh.sh_len = CDF_TOLE4(shp->sh_len); + sh.sh_properties = CDF_TOLE4(shp->sh_properties); + DPRINTF(("section len: %d properties %d\n", sh.sh_len, + sh.sh_properties)); + if (*maxcount) { + *maxcount += sh.sh_properties; + inp = realloc(*info, *maxcount * sizeof(*inp)); + } else { + *maxcount = sh.sh_properties; + inp = malloc(*maxcount * sizeof(*inp)); + } + if (inp == NULL) + goto out; + *info = inp; + inp += *count; + *count += sh.sh_properties; + p = (const void *)((const char *)sst->sst_tab + offs + sizeof(sh)); + e = (const void *)(((const char *)shp) + sh.sh_len); + for (i = 0; i < sh.sh_properties; i++) { + q = (const uint32_t *)((const char *)p + + CDF_TOLE4(p[(i << 1) + 1])) - 2; + if (q > e) { + DPRINTF(("Ran of the end %p > %p\n", q, e)); + goto out; + } + inp[i].pi_id = CDF_TOLE4(p[i << 1]); + inp[i].pi_type = CDF_TOLE4(q[0]); + DPRINTF(("%d) id=%x type=%x offs=%x\n", i, inp[i].pi_id, + inp[i].pi_type, (const char *)q - (const char *)p)); + if (inp[i].pi_type & CDF_VECTOR) { + nelements = CDF_TOLE4(q[1]); + o = 2; + } else { + nelements = 1; + o = 1; + } + if (inp[i].pi_type & (CDF_ARRAY|CDF_BYREF|CDF_RESERVED)) + goto unknown; + switch (inp[i].pi_type & CDF_TYPEMASK) { + case CDF_EMPTY: + break; + case CDF_SIGNED16: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&s16, &q[o], sizeof(s16)); + inp[i].pi_s16 = CDF_TOLE2(s16); + break; + case CDF_SIGNED32: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&s32, &q[o], sizeof(s32)); + inp[i].pi_s32 = CDF_TOLE4(s32); + break; + case CDF_BOOL: + case CDF_UNSIGNED32: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&u32, &q[o], sizeof(u32)); + inp[i].pi_u32 = CDF_TOLE4(u32); + break; + case CDF_SIGNED64: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&s64, &q[o], sizeof(s64)); + inp[i].pi_s64 = CDF_TOLE4(s64); + break; + case CDF_UNSIGNED64: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&u64, &q[o], sizeof(u64)); + inp[i].pi_u64 = CDF_TOLE4(u64); + break; + case CDF_LENGTH32_STRING: + if (nelements > 1) { + size_t nelem = inp - *info; + *maxcount += nelements; + inp = realloc(*info, *maxcount * sizeof(*inp)); + if (inp == NULL) + goto out; + *info = inp; + inp = *info + nelem; + } + DPRINTF(("nelements = %d\n", nelements)); + for (j = 0; j < nelements; j++, i++) { + uint32_t l = CDF_TOLE4(q[o]); + inp[i].pi_str.s_len = l; + inp[i].pi_str.s_buf = (const char *)(&q[o+1]); + DPRINTF(("l = %d, r = %d, s = %s\n", l, + CDF_ROUND(l, sizeof(l)), + inp[i].pi_str.s_buf)); + l = 4 + CDF_ROUND(l, sizeof(l)); + o += l >> 2; + } + i--; + break; + case CDF_FILETIME: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + (void)memcpy(&tp, &q[o], sizeof(tp)); + inp[i].pi_tp = CDF_TOLE8(tp); + break; + case CDF_CLIPBOARD: + if (inp[i].pi_type & CDF_VECTOR) + goto unknown; + break; + default: + unknown: + DPRINTF(("Don't know how to deal with %x\n", + inp[i].pi_type)); + goto out; + } + } + return 0; +out: + free(*info); + return -1; +} + +int +cdf_unpack_summary_info(const cdf_stream_t *sst, cdf_summary_info_header_t *ssi, + cdf_property_info_t **info, size_t *count) +{ + size_t i, maxcount; + const cdf_summary_info_header_t *si = sst->sst_tab; + const cdf_section_declaration_t *sd = (const void *) + ((const char *)sst->sst_tab + CDF_SECTION_DECLARATION_OFFSET); + + ssi->si_byte_order = CDF_TOLE2(si->si_byte_order); + ssi->si_os_version = CDF_TOLE2(si->si_os_version); + ssi->si_os = CDF_TOLE2(si->si_os); + ssi->si_class = si->si_class; + cdf_swap_class(&ssi->si_class); + ssi->si_count = CDF_TOLE2(si->si_count); + *count = 0; + maxcount = 0; + *info = NULL; + for (i = 0; i < CDF_TOLE4(si->si_count); i++) { + if (i >= CDF_LOOP_LIMIT) { + DPRINTF(("Unpack summary info loop limit")); + errno = EFTYPE; + return -1; + } + if (cdf_read_property_info(sst, CDF_TOLE4(sd->sd_offset), + info, count, &maxcount) == -1) + return -1; + } + return 0; +} + + + +int +cdf_print_classid(char *buf, size_t buflen, const cdf_classid_t *id) +{ + return snprintf(buf, buflen, "%.8x-%.4x-%.4x-%.2x%.2x-" + "%.2x%.2x%.2x%.2x%.2x%.2x", id->cl_dword, id->cl_word[0], + id->cl_word[1], id->cl_two[0], id->cl_two[1], id->cl_six[0], + id->cl_six[1], id->cl_six[2], id->cl_six[3], id->cl_six[4], + id->cl_six[5]); +} + +static const struct { + uint32_t v; + const char *n; +} vn[] = { + { CDF_PROPERTY_CODE_PAGE, "Code page" }, + { CDF_PROPERTY_TITLE, "Title" }, + { CDF_PROPERTY_SUBJECT, "Subject" }, + { CDF_PROPERTY_AUTHOR, "Author" }, + { CDF_PROPERTY_KEYWORDS, "Keywords" }, + { CDF_PROPERTY_COMMENTS, "Comments" }, + { CDF_PROPERTY_TEMPLATE, "Template" }, + { CDF_PROPERTY_LAST_SAVED_BY, "Last Saved By" }, + { CDF_PROPERTY_REVISION_NUMBER, "Revision Number" }, + { CDF_PROPERTY_TOTAL_EDITING_TIME, "Total Editing Time" }, + { CDF_PROPERTY_LAST_PRINTED, "Last Printed" }, + { CDF_PROPERTY_CREATE_TIME, "Create Time/Date" }, + { CDF_PROPERTY_LAST_SAVED_TIME, "Last Saved Time/Date" }, + { CDF_PROPERTY_NUMBER_OF_PAGES, "Number of Pages" }, + { CDF_PROPERTY_NUMBER_OF_WORDS, "Number of Words" }, + { CDF_PROPERTY_NUMBER_OF_CHARACTERS, "Number of Characters" }, + { CDF_PROPERTY_THUMBNAIL, "Thumbnail" }, + { CDF_PROPERTY_NAME_OF_APPLICATION, "Name of Creating Application" }, + { CDF_PROPERTY_SECURITY, "Security" }, + { CDF_PROPERTY_LOCALE_ID, "Locale ID" }, +}; + +int +cdf_print_property_name(char *buf, size_t bufsiz, uint32_t p) +{ + size_t i; + + for (i = 0; i < __arraycount(vn); i++) + if (vn[i].v == p) + return snprintf(buf, bufsiz, "%s", vn[i].n); + return snprintf(buf, bufsiz, "0x%x", p); +} + +int +cdf_print_elapsed_time(char *buf, size_t bufsiz, cdf_timestamp_t ts) +{ + size_t len = 0; + int days, hours, mins, secs; + + ts /= CDF_TIME_PREC; + secs = ts % 60; + ts /= 60; + mins = ts % 60; + ts /= 60; + hours = ts % 24; + ts /= 24; + days = ts; + + if (days) { + len += snprintf(buf + len, bufsiz - len, "%dd+", days); + if (len >= bufsiz) + return len; + } + + if (days || hours) { + len += snprintf(buf + len, bufsiz - len, "%.2d:", hours); + if (len >= bufsiz) + return len; + } + + len += snprintf(buf + len, bufsiz - len, "%.2d:", mins); + if (len >= bufsiz) + return len; + + len += snprintf(buf + len, bufsiz - len, "%.2d", secs); + return len; +} + + +#ifdef CDF_DEBUG +void +cdf_dump_header(const cdf_header_t *h) +{ + size_t i; + +#define DUMP(a, b) printf("%40.40s = " a "\n", # b, h->h_ ## b) + DUMP("%d", revision); + DUMP("%d", version); + DUMP("0x%x", byte_order); + DUMP("%d", sec_size_p2); + DUMP("%d", short_sec_size_p2); + DUMP("%d", num_sectors_in_sat); + DUMP("%d", secid_first_directory); + DUMP("%d", min_size_standard_stream); + DUMP("%d", secid_first_sector_in_short_sat); + DUMP("%d", num_sectors_in_short_sat); + DUMP("%d", secid_first_sector_in_master_sat); + DUMP("%d", num_sectors_in_master_sat); + for (i = 0; i < __arraycount(h->h_master_sat); i++) { + if (h->h_master_sat[i] == CDF_SECID_FREE) + break; + printf("%35.35s[%.3zu] = %d\n", + "master_sat", i, h->h_master_sat[i]); + } +} + +void +cdf_dump_sat(const char *prefix, const cdf_header_t *h, const cdf_sat_t *sat) +{ + size_t i, j, s = CDF_SEC_SIZE(h) / sizeof(cdf_secid_t); + + for (i = 0; i < sat->sat_len; i++) { + printf("%s[%zu]:\n", prefix, i); + for (j = 0; j < s; j++) { + printf("%5d, ", CDF_TOLE4(sat->sat_tab[s * i + j])); + if ((j + 1) % 10 == 0) + printf("\n"); + } + printf("\n"); + } +} + +void +cdf_dump(void *v, size_t len) +{ + size_t i, j; + unsigned char *p = v; + char abuf[16]; + printf("%.4x: ", 0); + for (i = 0, j = 0; i < len; i++, p++) { + printf("%.2x ", *p); + abuf[j++] = isprint(*p) ? *p : '.'; + if (j == 16) { + j = 0; + abuf[15] = '\0'; + printf("%s\n%.4x: ", abuf, i + 1); + } + } + printf("\n"); +} + +void +cdf_dump_stream(const cdf_header_t *h, const cdf_stream_t *sst) +{ + size_t ss = sst->sst_dirlen < h->h_min_size_standard_stream ? + CDF_SHORT_SEC_SIZE(h) : CDF_SEC_SIZE(h); + cdf_dump(sst->sst_tab, ss * sst->sst_len); +} + +void +cdf_dump_dir(int fd, const cdf_header_t *h, const cdf_sat_t *sat, + const cdf_sat_t *ssat, const cdf_stream_t *sst, + const cdf_dir_t *dir) +{ + size_t i, j; + cdf_directory_t *d; + char name[__arraycount(d->d_name)]; + cdf_stream_t scn; + struct timespec ts; + + static const char *types[] = { "empty", "user storage", + "user stream", "lockbytes", "property", "root storage" }; + + for (i = 0; i < dir->dir_len; i++) { + d = &dir->dir_tab[i]; + for (j = 0; j < sizeof(name); j++) + name[j] = (char)CDF_TOLE2(d->d_name[j]); + printf("Directory %zu: %s\n", i, name); + if (d->d_type < __arraycount(types)) + printf("Type: %s\n", types[d->d_type]); + else + printf("Type: %d\n", d->d_type); + printf("Color: %s\n", d->d_color ? "black" : "red"); + printf("Left child: %d\n", d->d_left_child); + printf("Right child: %d\n", d->d_right_child); + printf("Flags: 0x%x\n", d->d_flags); + cdf_timestamp_to_timespec(&ts, d->d_created); + printf("Created %s", ctime(&ts.tv_sec)); + cdf_timestamp_to_timespec(&ts, d->d_modified); + printf("Modified %s", ctime(&ts.tv_sec)); + printf("Stream %d\n", d->d_stream_first_sector); + printf("Size %d\n", d->d_size); + switch (d->d_type) { + case CDF_DIR_TYPE_USER_STORAGE: + printf("Storage: %d\n", d->d_storage); + break; + case CDF_DIR_TYPE_USER_STREAM: + if (sst == NULL) + break; + if (cdf_read_sector_chain(fd, h, sat, ssat, sst, + d->d_stream_first_sector, d->d_size, &scn) == -1) { + warn("Can't read stream for %s at %d len %d", + name, d->d_stream_first_sector, d->d_size); + break; + } + cdf_dump_stream(h, &scn); + free(scn.sst_tab); + break; + default: + break; + } + + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat May 2 09:11:25 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC8241065675; Sat, 2 May 2009 09:11:25 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A25388FC15; Sat, 2 May 2009 09:11:25 +0000 (UTC) (envelope-from obrien@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 n429BPDv078108; Sat, 2 May 2009 09:11:25 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n429BPPS078103; Sat, 2 May 2009 09:11:25 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <200905020911.n429BPPS078103@svn.freebsd.org> From: "David E. O'Brien" Date: Sat, 2 May 2009 09:11:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191740 - in vendor/gdb: 4.16 4.16/bfd 4.16/bfd/doc 4.16/bfd/hosts 4.16/contrib 4.16/gdb 4.16/gdb/config 4.16/gdb/config/i386 4.16/gdb/doc 4.16/gdb/gdbserver 4.16/gdb/nlm 4.16/include 4... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 09:11:26 -0000 Author: obrien Date: Sat May 2 09:11:21 2009 New Revision: 191740 URL: http://svn.freebsd.org/changeset/base/191740 Log: Flatten the GDB historic releases. Added: vendor/gdb/4.16/COPYING (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/COPYING vendor/gdb/4.16/COPYING.LIB (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/COPYING.LIB vendor/gdb/4.16/Makefile.in (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/Makefile.in vendor/gdb/4.16/README (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/README vendor/gdb/4.16/bfd/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/bfd/ vendor/gdb/4.16/config.guess (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/config.guess vendor/gdb/4.16/config.sub (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/config.sub vendor/gdb/4.16/configure (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/configure vendor/gdb/4.16/configure.in (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/configure.in vendor/gdb/4.16/gdb/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/gdb/ vendor/gdb/4.16/include/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/include/ vendor/gdb/4.16/install.sh (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/install.sh vendor/gdb/4.16/libiberty/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/libiberty/ vendor/gdb/4.16/move-if-change (props changed) - copied unchanged from r191739, vendor/gdb/4.16/contrib/gdb/move-if-change vendor/gdb/4.16/opcodes/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/opcodes/ vendor/gdb/4.16/readline/ - copied from r191739, vendor/gdb/4.16/contrib/gdb/readline/ vendor/gdb/4.18/COPYING (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/COPYING vendor/gdb/4.18/COPYING.LIB (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/COPYING.LIB vendor/gdb/4.18/Makefile.in (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/Makefile.in vendor/gdb/4.18/README (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/README vendor/gdb/4.18/config-ml.in (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/config-ml.in vendor/gdb/4.18/config.guess (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/config.guess vendor/gdb/4.18/config.if (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/config.if vendor/gdb/4.18/config.sub (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/config.sub vendor/gdb/4.18/configure (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/configure vendor/gdb/4.18/configure.in (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/configure.in vendor/gdb/4.18/gdb/ - copied from r191739, vendor/gdb/4.18/contrib/gdb/gdb/ vendor/gdb/4.18/move-if-change (props changed) - copied unchanged from r191739, vendor/gdb/4.18/contrib/gdb/move-if-change vendor/gdb/5.2.1/COPYING (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/COPYING vendor/gdb/5.2.1/COPYING.LIB (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/COPYING.LIB vendor/gdb/5.2.1/Makefile.in (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/Makefile.in vendor/gdb/5.2.1/README (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/README vendor/gdb/5.2.1/config-ml.in (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/config-ml.in vendor/gdb/5.2.1/config.guess (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/config.guess vendor/gdb/5.2.1/config.if (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/config.if vendor/gdb/5.2.1/config.sub (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/config.sub vendor/gdb/5.2.1/configure (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/configure vendor/gdb/5.2.1/configure.in (props changed) - copied unchanged from r191739, vendor/gdb/5.2.1/contrib/gdb/configure.in vendor/gdb/5.2.1/gdb/ - copied from r191739, vendor/gdb/5.2.1/contrib/gdb/gdb/ vendor/gdb/5.2.1/include/ - copied from r191739, vendor/gdb/5.2.1/contrib/gdb/include/ vendor/gdb/6.1.1/COPYING (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/COPYING vendor/gdb/6.1.1/COPYING.LIB (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/COPYING.LIB vendor/gdb/6.1.1/README (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/README vendor/gdb/6.1.1/config-ml.in (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/config-ml.in vendor/gdb/6.1.1/djunpack.bat (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/djunpack.bat vendor/gdb/6.1.1/gdb/ - copied from r191739, vendor/gdb/6.1.1/contrib/gdb/gdb/ vendor/gdb/6.1.1/gettext.m4 (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/gettext.m4 vendor/gdb/6.1.1/include/ - copied from r191739, vendor/gdb/6.1.1/contrib/gdb/include/ vendor/gdb/6.1.1/install-sh (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/install-sh vendor/gdb/6.1.1/libtool.m4 (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/libtool.m4 vendor/gdb/6.1.1/ltcf-c.sh (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ltcf-c.sh vendor/gdb/6.1.1/ltcf-cxx.sh (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ltcf-cxx.sh vendor/gdb/6.1.1/ltcf-gcj.sh (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ltcf-gcj.sh vendor/gdb/6.1.1/ltconfig (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ltconfig vendor/gdb/6.1.1/ltmain.sh (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ltmain.sh vendor/gdb/6.1.1/md5.sum (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/md5.sum vendor/gdb/6.1.1/missing (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/missing vendor/gdb/6.1.1/mkinstalldirs (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/mkinstalldirs vendor/gdb/6.1.1/move-if-change (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/move-if-change vendor/gdb/6.1.1/src-release (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/src-release vendor/gdb/6.1.1/symlink-tree (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/symlink-tree vendor/gdb/6.1.1/ylwrap (props changed) - copied unchanged from r191739, vendor/gdb/6.1.1/contrib/gdb/ylwrap vendor/gdb/anoncvs_gdb_5_2_branch_20020627/COPYING (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/COPYING vendor/gdb/anoncvs_gdb_5_2_branch_20020627/COPYING.LIB (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/COPYING.LIB vendor/gdb/anoncvs_gdb_5_2_branch_20020627/ChangeLog (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/ChangeLog vendor/gdb/anoncvs_gdb_5_2_branch_20020627/MAINTAINERS (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/MAINTAINERS vendor/gdb/anoncvs_gdb_5_2_branch_20020627/Makefile.in (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/Makefile.in vendor/gdb/anoncvs_gdb_5_2_branch_20020627/README (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/README vendor/gdb/anoncvs_gdb_5_2_branch_20020627/config-ml.in (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/config-ml.in vendor/gdb/anoncvs_gdb_5_2_branch_20020627/config.guess (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/config.guess vendor/gdb/anoncvs_gdb_5_2_branch_20020627/config.if (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/config.if vendor/gdb/anoncvs_gdb_5_2_branch_20020627/config.sub (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/config.sub vendor/gdb/anoncvs_gdb_5_2_branch_20020627/configure (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/configure vendor/gdb/anoncvs_gdb_5_2_branch_20020627/configure.in (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/configure.in vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ - copied from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/gdb/ vendor/gdb/anoncvs_gdb_5_2_branch_20020627/include/ - copied from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/include/ vendor/gdb/anoncvs_gdb_5_2_branch_20020627/move-if-change (props changed) - copied unchanged from r191739, vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/gdb/move-if-change vendor/gdb/marcel_contrib/FREEBSD-diffs (props changed) - copied unchanged from r191739, vendor/gdb/marcel_contrib/contrib/gdb/FREEBSD-diffs vendor/gdb/marcel_contrib/gdb/ - copied from r191739, vendor/gdb/marcel_contrib/contrib/gdb/gdb/ Deleted: vendor/gdb/4.16/contrib/ vendor/gdb/4.18/contrib/ vendor/gdb/5.2.1/contrib/ vendor/gdb/6.1.1/contrib/ vendor/gdb/anoncvs_gdb_5_2_branch_20020627/contrib/ vendor/gdb/marcel_contrib/contrib/ Modified: vendor/gdb/4.16/bfd/COPYING (props changed) vendor/gdb/4.16/bfd/Makefile.in (props changed) vendor/gdb/4.16/bfd/PORTING (props changed) vendor/gdb/4.16/bfd/TODO (props changed) vendor/gdb/4.16/bfd/VERSION (props changed) vendor/gdb/4.16/bfd/acconfig.h (props changed) vendor/gdb/4.16/bfd/aclocal.m4 (props changed) vendor/gdb/4.16/bfd/aix386-core.c (props changed) vendor/gdb/4.16/bfd/aout-adobe.c (props changed) vendor/gdb/4.16/bfd/aout-arm.c (props changed) vendor/gdb/4.16/bfd/aout-encap.c (props changed) vendor/gdb/4.16/bfd/aout-ns32k.c (props changed) vendor/gdb/4.16/bfd/aout-target.h (props changed) vendor/gdb/4.16/bfd/aout0.c (props changed) vendor/gdb/4.16/bfd/aout32.c (props changed) vendor/gdb/4.16/bfd/aout64.c (props changed) vendor/gdb/4.16/bfd/aoutf1.h (props changed) vendor/gdb/4.16/bfd/aoutx.h (props changed) vendor/gdb/4.16/bfd/archive.c (props changed) vendor/gdb/4.16/bfd/archures.c (props changed) vendor/gdb/4.16/bfd/bfd-in.h (props changed) vendor/gdb/4.16/bfd/bfd-in2.h (props changed) vendor/gdb/4.16/bfd/bfd.c (props changed) vendor/gdb/4.16/bfd/binary.c (props changed) vendor/gdb/4.16/bfd/bout.c (props changed) vendor/gdb/4.16/bfd/cache.c (props changed) vendor/gdb/4.16/bfd/cf-i386lynx.c (props changed) vendor/gdb/4.16/bfd/cf-m68klynx.c (props changed) vendor/gdb/4.16/bfd/cf-sparclynx.c (props changed) vendor/gdb/4.16/bfd/cisco-core.c (props changed) vendor/gdb/4.16/bfd/coff-a29k.c (props changed) vendor/gdb/4.16/bfd/coff-alpha.c (props changed) vendor/gdb/4.16/bfd/coff-apollo.c (props changed) vendor/gdb/4.16/bfd/coff-arm.c (props changed) vendor/gdb/4.16/bfd/coff-aux.c (props changed) vendor/gdb/4.16/bfd/coff-go32.c (props changed) vendor/gdb/4.16/bfd/coff-h8300.c (props changed) vendor/gdb/4.16/bfd/coff-h8500.c (props changed) vendor/gdb/4.16/bfd/coff-i386.c (props changed) vendor/gdb/4.16/bfd/coff-i860.c (props changed) vendor/gdb/4.16/bfd/coff-i960.c (props changed) vendor/gdb/4.16/bfd/coff-m68k.c (props changed) vendor/gdb/4.16/bfd/coff-m88k.c (props changed) vendor/gdb/4.16/bfd/coff-mips.c (props changed) vendor/gdb/4.16/bfd/coff-pmac.c (props changed) vendor/gdb/4.16/bfd/coff-ppc.c (props changed) vendor/gdb/4.16/bfd/coff-rs6000.c (props changed) vendor/gdb/4.16/bfd/coff-sh.c (props changed) vendor/gdb/4.16/bfd/coff-sparc.c (props changed) vendor/gdb/4.16/bfd/coff-u68k.c (props changed) vendor/gdb/4.16/bfd/coff-w65.c (props changed) vendor/gdb/4.16/bfd/coff-we32k.c (props changed) vendor/gdb/4.16/bfd/coff-z8k.c (props changed) vendor/gdb/4.16/bfd/coffcode.h (props changed) vendor/gdb/4.16/bfd/coffgen.c (props changed) vendor/gdb/4.16/bfd/cofflink.c (props changed) vendor/gdb/4.16/bfd/coffswap.h (props changed) vendor/gdb/4.16/bfd/config.bfd (props changed) vendor/gdb/4.16/bfd/config.in (props changed) vendor/gdb/4.16/bfd/configure (props changed) vendor/gdb/4.16/bfd/configure.bat (props changed) vendor/gdb/4.16/bfd/configure.host (props changed) vendor/gdb/4.16/bfd/configure.in (props changed) vendor/gdb/4.16/bfd/corefile.c (props changed) vendor/gdb/4.16/bfd/cpu-a29k.c (props changed) vendor/gdb/4.16/bfd/cpu-alpha.c (props changed) vendor/gdb/4.16/bfd/cpu-arm.c (props changed) vendor/gdb/4.16/bfd/cpu-h8300.c (props changed) vendor/gdb/4.16/bfd/cpu-h8500.c (props changed) vendor/gdb/4.16/bfd/cpu-hppa.c (props changed) vendor/gdb/4.16/bfd/cpu-i386.c (props changed) vendor/gdb/4.16/bfd/cpu-i860.c (props changed) vendor/gdb/4.16/bfd/cpu-i960.c (props changed) vendor/gdb/4.16/bfd/cpu-m68k.c (props changed) vendor/gdb/4.16/bfd/cpu-m88k.c (props changed) vendor/gdb/4.16/bfd/cpu-mips.c (props changed) vendor/gdb/4.16/bfd/cpu-ns32k.c (props changed) vendor/gdb/4.16/bfd/cpu-powerpc.c (props changed) vendor/gdb/4.16/bfd/cpu-rs6000.c (props changed) vendor/gdb/4.16/bfd/cpu-sh.c (props changed) vendor/gdb/4.16/bfd/cpu-sparc.c (props changed) vendor/gdb/4.16/bfd/cpu-vax.c (props changed) vendor/gdb/4.16/bfd/cpu-w65.c (props changed) vendor/gdb/4.16/bfd/cpu-we32k.c (props changed) vendor/gdb/4.16/bfd/cpu-z8k.c (props changed) vendor/gdb/4.16/bfd/demo64.c (props changed) vendor/gdb/4.16/bfd/dep-in.sed (props changed) vendor/gdb/4.16/bfd/doc/ChangeLog (props changed) vendor/gdb/4.16/bfd/doc/Makefile.in (props changed) vendor/gdb/4.16/bfd/doc/bfd.texinfo (props changed) vendor/gdb/4.16/bfd/doc/bfdsumm.texi (props changed) vendor/gdb/4.16/bfd/doc/chew.c (props changed) vendor/gdb/4.16/bfd/doc/doc.str (props changed) vendor/gdb/4.16/bfd/doc/proto.str (props changed) vendor/gdb/4.16/bfd/ecoff.c (props changed) vendor/gdb/4.16/bfd/ecofflink.c (props changed) vendor/gdb/4.16/bfd/ecoffswap.h (props changed) vendor/gdb/4.16/bfd/elf-bfd.h (props changed) vendor/gdb/4.16/bfd/elf.c (props changed) vendor/gdb/4.16/bfd/elf32-gen.c (props changed) vendor/gdb/4.16/bfd/elf32-hppa.c (props changed) vendor/gdb/4.16/bfd/elf32-hppa.h (props changed) vendor/gdb/4.16/bfd/elf32-i386.c (props changed) vendor/gdb/4.16/bfd/elf32-i860.c (props changed) vendor/gdb/4.16/bfd/elf32-m68k.c (props changed) vendor/gdb/4.16/bfd/elf32-m88k.c (props changed) vendor/gdb/4.16/bfd/elf32-mips.c (props changed) vendor/gdb/4.16/bfd/elf32-ppc.c (props changed) vendor/gdb/4.16/bfd/elf32-sparc.c (props changed) vendor/gdb/4.16/bfd/elf32.c (props changed) vendor/gdb/4.16/bfd/elf64-gen.c (props changed) vendor/gdb/4.16/bfd/elf64-sparc.c (props changed) vendor/gdb/4.16/bfd/elf64.c (props changed) vendor/gdb/4.16/bfd/elfcode.h (props changed) vendor/gdb/4.16/bfd/elfcore.h (props changed) vendor/gdb/4.16/bfd/elflink.c (props changed) vendor/gdb/4.16/bfd/elflink.h (props changed) vendor/gdb/4.16/bfd/elfxx-target.h (props changed) vendor/gdb/4.16/bfd/filemode.c (props changed) vendor/gdb/4.16/bfd/format.c (props changed) vendor/gdb/4.16/bfd/freebsd.h (props changed) vendor/gdb/4.16/bfd/gen-aout.c (props changed) vendor/gdb/4.16/bfd/genlink.h (props changed) vendor/gdb/4.16/bfd/hash.c (props changed) vendor/gdb/4.16/bfd/host-aout.c (props changed) vendor/gdb/4.16/bfd/hosts/alphalinux.h (props changed) vendor/gdb/4.16/bfd/hosts/decstation.h (props changed) vendor/gdb/4.16/bfd/hosts/delta68.h (props changed) vendor/gdb/4.16/bfd/hosts/dpx2.h (props changed) vendor/gdb/4.16/bfd/hosts/hp300bsd.h (props changed) vendor/gdb/4.16/bfd/hosts/i386bsd.h (props changed) vendor/gdb/4.16/bfd/hosts/i386linux.h (props changed) vendor/gdb/4.16/bfd/hosts/i386mach3.h (props changed) vendor/gdb/4.16/bfd/hosts/i386sco.h (props changed) vendor/gdb/4.16/bfd/hosts/i860mach3.h (props changed) vendor/gdb/4.16/bfd/hosts/m68kaux.h (props changed) vendor/gdb/4.16/bfd/hosts/m68klinux.h (props changed) vendor/gdb/4.16/bfd/hosts/m88kmach3.h (props changed) vendor/gdb/4.16/bfd/hosts/mipsbsd.h (props changed) vendor/gdb/4.16/bfd/hosts/mipsmach3.h (props changed) vendor/gdb/4.16/bfd/hosts/news-mips.h (props changed) vendor/gdb/4.16/bfd/hosts/news.h (props changed) vendor/gdb/4.16/bfd/hosts/pc532mach.h (props changed) vendor/gdb/4.16/bfd/hosts/riscos.h (props changed) vendor/gdb/4.16/bfd/hosts/symmetry.h (props changed) vendor/gdb/4.16/bfd/hosts/tahoe.h (props changed) vendor/gdb/4.16/bfd/hosts/vaxbsd.h (props changed) vendor/gdb/4.16/bfd/hosts/vaxult.h (props changed) vendor/gdb/4.16/bfd/hosts/vaxult2.h (props changed) vendor/gdb/4.16/bfd/hp300bsd.c (props changed) vendor/gdb/4.16/bfd/hp300hpux.c (props changed) vendor/gdb/4.16/bfd/hppa_stubs.h (props changed) vendor/gdb/4.16/bfd/hppabsd-core.c (props changed) vendor/gdb/4.16/bfd/hpux-core.c (props changed) vendor/gdb/4.16/bfd/i386aout.c (props changed) vendor/gdb/4.16/bfd/i386bsd.c (props changed) vendor/gdb/4.16/bfd/i386dynix.c (props changed) vendor/gdb/4.16/bfd/i386freebsd.c (props changed) vendor/gdb/4.16/bfd/i386linux.c (props changed) vendor/gdb/4.16/bfd/i386lynx.c (props changed) vendor/gdb/4.16/bfd/i386mach3.c (props changed) vendor/gdb/4.16/bfd/i386msdos.c (props changed) vendor/gdb/4.16/bfd/i386netbsd.c (props changed) vendor/gdb/4.16/bfd/i386os9k.c (props changed) vendor/gdb/4.16/bfd/ieee.c (props changed) vendor/gdb/4.16/bfd/ihex.c (props changed) vendor/gdb/4.16/bfd/init.c (props changed) vendor/gdb/4.16/bfd/irix-core.c (props changed) vendor/gdb/4.16/bfd/libaout.h (props changed) vendor/gdb/4.16/bfd/libbfd-in.h (props changed) vendor/gdb/4.16/bfd/libbfd.c (props changed) vendor/gdb/4.16/bfd/libbfd.h (props changed) vendor/gdb/4.16/bfd/libcoff-in.h (props changed) vendor/gdb/4.16/bfd/libcoff.h (props changed) vendor/gdb/4.16/bfd/libecoff.h (props changed) vendor/gdb/4.16/bfd/libhppa.h (props changed) vendor/gdb/4.16/bfd/libieee.h (props changed) vendor/gdb/4.16/bfd/libnlm.h (props changed) vendor/gdb/4.16/bfd/liboasys.h (props changed) vendor/gdb/4.16/bfd/linker.c (props changed) vendor/gdb/4.16/bfd/lynx-core.c (props changed) vendor/gdb/4.16/bfd/m68k4knetbsd.c (props changed) vendor/gdb/4.16/bfd/m68klinux.c (props changed) vendor/gdb/4.16/bfd/m68klynx.c (props changed) vendor/gdb/4.16/bfd/m68knetbsd.c (props changed) vendor/gdb/4.16/bfd/m88kmach3.c (props changed) vendor/gdb/4.16/bfd/makefile.dos (props changed) vendor/gdb/4.16/bfd/mipsbsd.c (props changed) vendor/gdb/4.16/bfd/mpw-config.in (props changed) vendor/gdb/4.16/bfd/mpw-make.sed (props changed) vendor/gdb/4.16/bfd/netbsd-core.c (props changed) vendor/gdb/4.16/bfd/netbsd.h (props changed) vendor/gdb/4.16/bfd/newsos3.c (props changed) vendor/gdb/4.16/bfd/nlm-target.h (props changed) vendor/gdb/4.16/bfd/nlm.c (props changed) vendor/gdb/4.16/bfd/nlm32-alpha.c (props changed) vendor/gdb/4.16/bfd/nlm32-i386.c (props changed) vendor/gdb/4.16/bfd/nlm32-ppc.c (props changed) vendor/gdb/4.16/bfd/nlm32-sparc.c (props changed) vendor/gdb/4.16/bfd/nlm32.c (props changed) vendor/gdb/4.16/bfd/nlm64.c (props changed) vendor/gdb/4.16/bfd/nlmcode.h (props changed) vendor/gdb/4.16/bfd/nlmswap.h (props changed) vendor/gdb/4.16/bfd/ns32knetbsd.c (props changed) vendor/gdb/4.16/bfd/oasys.c (props changed) vendor/gdb/4.16/bfd/opncls.c (props changed) vendor/gdb/4.16/bfd/osf-core.c (props changed) vendor/gdb/4.16/bfd/pc532-mach.c (props changed) vendor/gdb/4.16/bfd/pe-arm.c (props changed) vendor/gdb/4.16/bfd/pe-i386.c (props changed) vendor/gdb/4.16/bfd/pe-ppc.c (props changed) vendor/gdb/4.16/bfd/pei-arm.c (props changed) vendor/gdb/4.16/bfd/pei-i386.c (props changed) vendor/gdb/4.16/bfd/pei-ppc.c (props changed) vendor/gdb/4.16/bfd/peicode.h (props changed) vendor/gdb/4.16/bfd/ptrace-core.c (props changed) vendor/gdb/4.16/bfd/reloc.c (props changed) vendor/gdb/4.16/bfd/reloc16.c (props changed) vendor/gdb/4.16/bfd/riscix.c (props changed) vendor/gdb/4.16/bfd/rs6000-core.c (props changed) vendor/gdb/4.16/bfd/section.c (props changed) vendor/gdb/4.16/bfd/som.c (props changed) vendor/gdb/4.16/bfd/som.h (props changed) vendor/gdb/4.16/bfd/sparclynx.c (props changed) vendor/gdb/4.16/bfd/sparcnetbsd.c (props changed) vendor/gdb/4.16/bfd/srec.c (props changed) vendor/gdb/4.16/bfd/stab-syms.c (props changed) vendor/gdb/4.16/bfd/sunos.c (props changed) vendor/gdb/4.16/bfd/syms.c (props changed) vendor/gdb/4.16/bfd/sysdep.h (props changed) vendor/gdb/4.16/bfd/targets.c (props changed) vendor/gdb/4.16/bfd/tekhex.c (props changed) vendor/gdb/4.16/bfd/trad-core.c (props changed) vendor/gdb/4.16/bfd/versados.c (props changed) vendor/gdb/4.16/bfd/xcofflink.c (props changed) vendor/gdb/4.16/gdb/.gdbinit (props changed) vendor/gdb/4.16/gdb/COPYING (props changed) vendor/gdb/4.16/gdb/ChangeLog (props changed) vendor/gdb/4.16/gdb/ChangeLog-93 (props changed) vendor/gdb/4.16/gdb/ChangeLog-94 (props changed) vendor/gdb/4.16/gdb/ChangeLog-95 (props changed) vendor/gdb/4.16/gdb/Makefile.in (props changed) vendor/gdb/4.16/gdb/NEWS (props changed) vendor/gdb/4.16/gdb/README (props changed) vendor/gdb/4.16/gdb/TODO (props changed) vendor/gdb/4.16/gdb/acconfig.h (props changed) vendor/gdb/4.16/gdb/aclocal.m4 (props changed) vendor/gdb/4.16/gdb/alpha-nat.c (props changed) vendor/gdb/4.16/gdb/alpha-tdep.c (props changed) vendor/gdb/4.16/gdb/annotate.c (props changed) vendor/gdb/4.16/gdb/annotate.h (props changed) vendor/gdb/4.16/gdb/arm-convert.s (props changed) vendor/gdb/4.16/gdb/arm-tdep.c (props changed) vendor/gdb/4.16/gdb/arm-xdep.c (props changed) vendor/gdb/4.16/gdb/bcache.c (props changed) vendor/gdb/4.16/gdb/bcache.h (props changed) vendor/gdb/4.16/gdb/blockframe.c (props changed) vendor/gdb/4.16/gdb/breakpoint.c (props changed) vendor/gdb/4.16/gdb/breakpoint.h (props changed) vendor/gdb/4.16/gdb/buildsym.c (props changed) vendor/gdb/4.16/gdb/buildsym.h (props changed) vendor/gdb/4.16/gdb/c-exp.tab.c (props changed) vendor/gdb/4.16/gdb/c-exp.y (props changed) vendor/gdb/4.16/gdb/c-lang.c (props changed) vendor/gdb/4.16/gdb/c-lang.h (props changed) vendor/gdb/4.16/gdb/c-typeprint.c (props changed) vendor/gdb/4.16/gdb/c-valprint.c (props changed) vendor/gdb/4.16/gdb/call-cmds.h (props changed) vendor/gdb/4.16/gdb/callback.c (props changed) vendor/gdb/4.16/gdb/callback.h (props changed) vendor/gdb/4.16/gdb/ch-exp.c (props changed) vendor/gdb/4.16/gdb/ch-lang.c (props changed) vendor/gdb/4.16/gdb/ch-lang.h (props changed) vendor/gdb/4.16/gdb/ch-typeprint.c (props changed) vendor/gdb/4.16/gdb/ch-valprint.c (props changed) vendor/gdb/4.16/gdb/coff-solib.c (props changed) vendor/gdb/4.16/gdb/coff-solib.h (props changed) vendor/gdb/4.16/gdb/coffread.c (props changed) vendor/gdb/4.16/gdb/command.c (props changed) vendor/gdb/4.16/gdb/command.h (props changed) vendor/gdb/4.16/gdb/complaints.c (props changed) vendor/gdb/4.16/gdb/complaints.h (props changed) vendor/gdb/4.16/gdb/config.in (props changed) vendor/gdb/4.16/gdb/config/i386/cygwin32.mh (props changed) vendor/gdb/4.16/gdb/config/i386/cygwin32.mt (props changed) vendor/gdb/4.16/gdb/config/i386/fbsd.mh (props changed) vendor/gdb/4.16/gdb/config/i386/fbsd.mt (props changed) vendor/gdb/4.16/gdb/config/i386/gdbserve.mt (props changed) vendor/gdb/4.16/gdb/config/i386/go32.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386aix.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386aix.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386aout.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386bsd.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386bsd.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386dgux.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386gnu.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386gnu.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386lynx.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386lynx.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386m3.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386m3.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386mach.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386mk.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386mk.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386nw.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386os9k.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386sco.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386sco4.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386sco5.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386sol2.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386sol2.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386v.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386v.mt (props changed) vendor/gdb/4.16/gdb/config/i386/i386v32.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386v4.mh (props changed) vendor/gdb/4.16/gdb/config/i386/i386v4.mt (props changed) vendor/gdb/4.16/gdb/config/i386/linux.mh (props changed) vendor/gdb/4.16/gdb/config/i386/linux.mt (props changed) vendor/gdb/4.16/gdb/config/i386/nbsd.mh (props changed) vendor/gdb/4.16/gdb/config/i386/nbsd.mt (props changed) vendor/gdb/4.16/gdb/config/i386/ncr3000.mh (props changed) vendor/gdb/4.16/gdb/config/i386/ncr3000.mt (props changed) vendor/gdb/4.16/gdb/config/i386/nm-fbsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-gnu.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386aix.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386bsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386lynx.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386mach.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386sco.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386sco4.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386sco5.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386v.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-i386v4.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-linux.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-m3.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-ptx4.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-sun386.h (props changed) vendor/gdb/4.16/gdb/config/i386/nm-symmetry.h (props changed) vendor/gdb/4.16/gdb/config/i386/ptx.mh (props changed) vendor/gdb/4.16/gdb/config/i386/ptx.mt (props changed) vendor/gdb/4.16/gdb/config/i386/ptx4.mh (props changed) vendor/gdb/4.16/gdb/config/i386/ptx4.mt (props changed) vendor/gdb/4.16/gdb/config/i386/sun386.mh (props changed) vendor/gdb/4.16/gdb/config/i386/sun386.mt (props changed) vendor/gdb/4.16/gdb/config/i386/symmetry.mh (props changed) vendor/gdb/4.16/gdb/config/i386/symmetry.mt (props changed) vendor/gdb/4.16/gdb/config/i386/tm-cygwin32.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386aix.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386bsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386gnu.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386lynx.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386m3.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386mk.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386nw.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386os9k.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386v.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-i386v4.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-linux.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-ptx.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-ptx4.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-sun386.h (props changed) vendor/gdb/4.16/gdb/config/i386/tm-symmetry.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-cygwin32.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-go32.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386aix.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386bsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386gnu.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386lynx.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386m3.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386mach.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386mk.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386sco.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386v.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386v32.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-i386v4.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-linux.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-ptx.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-ptx4.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-sun386.h (props changed) vendor/gdb/4.16/gdb/config/i386/xm-symmetry.h (props changed) vendor/gdb/4.16/gdb/config/nm-empty.h (props changed) vendor/gdb/4.16/gdb/config/nm-gnu.h (props changed) vendor/gdb/4.16/gdb/config/nm-lynx.h (props changed) vendor/gdb/4.16/gdb/config/nm-m3.h (props changed) vendor/gdb/4.16/gdb/config/nm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/nm-sysv4.h (props changed) vendor/gdb/4.16/gdb/config/tm-lynx.h (props changed) vendor/gdb/4.16/gdb/config/tm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/tm-sunos.h (props changed) vendor/gdb/4.16/gdb/config/tm-sysv4.h (props changed) vendor/gdb/4.16/gdb/config/xm-aix4.h (props changed) vendor/gdb/4.16/gdb/config/xm-lynx.h (props changed) vendor/gdb/4.16/gdb/config/xm-mpw.h (props changed) vendor/gdb/4.16/gdb/config/xm-nbsd.h (props changed) vendor/gdb/4.16/gdb/config/xm-sysv4.h (props changed) vendor/gdb/4.16/gdb/configure (props changed) vendor/gdb/4.16/gdb/configure.in (props changed) vendor/gdb/4.16/gdb/copying.awk (props changed) vendor/gdb/4.16/gdb/copying.c (props changed) vendor/gdb/4.16/gdb/core-aout.c (props changed) vendor/gdb/4.16/gdb/core-regset.c (props changed) vendor/gdb/4.16/gdb/core-sol2.c (props changed) vendor/gdb/4.16/gdb/corefile.c (props changed) vendor/gdb/4.16/gdb/corelow.c (props changed) vendor/gdb/4.16/gdb/cp-valprint.c (props changed) vendor/gdb/4.16/gdb/cpu32bug-rom.c (props changed) vendor/gdb/4.16/gdb/cxux-nat.c (props changed) vendor/gdb/4.16/gdb/dbxread.c (props changed) vendor/gdb/4.16/gdb/dcache.c (props changed) vendor/gdb/4.16/gdb/dcache.h (props changed) vendor/gdb/4.16/gdb/defs.h (props changed) vendor/gdb/4.16/gdb/demangle.c (props changed) vendor/gdb/4.16/gdb/doc/ChangeLog (props changed) vendor/gdb/4.16/gdb/doc/GDBvn.texi (props changed) vendor/gdb/4.16/gdb/doc/Makefile.in (props changed) vendor/gdb/4.16/gdb/doc/a4rc.sed (props changed) vendor/gdb/4.16/gdb/doc/all-cfg.texi (props changed) vendor/gdb/4.16/gdb/doc/annotate.texi (props changed) vendor/gdb/4.16/gdb/doc/configure.in (props changed) vendor/gdb/4.16/gdb/doc/gdb.texinfo (props changed) vendor/gdb/4.16/gdb/doc/gdbint.texinfo (props changed) vendor/gdb/4.16/gdb/doc/h8-cfg.texi (props changed) vendor/gdb/4.16/gdb/doc/libgdb.texinfo (props changed) vendor/gdb/4.16/gdb/doc/lpsrc.sed (props changed) vendor/gdb/4.16/gdb/doc/psrc.sed (props changed) vendor/gdb/4.16/gdb/doc/refcard.dvi (props changed) vendor/gdb/4.16/gdb/doc/refcard.tex (props changed) vendor/gdb/4.16/gdb/doc/remote.texi (props changed) vendor/gdb/4.16/gdb/doc/stabs.texinfo (props changed) vendor/gdb/4.16/gdb/dwarfread.c (props changed) vendor/gdb/4.16/gdb/elfread.c (props changed) vendor/gdb/4.16/gdb/environ.c (props changed) vendor/gdb/4.16/gdb/environ.h (props changed) vendor/gdb/4.16/gdb/eval.c (props changed) vendor/gdb/4.16/gdb/exc_request.defs (props changed) vendor/gdb/4.16/gdb/exec.c (props changed) vendor/gdb/4.16/gdb/expprint.c (props changed) vendor/gdb/4.16/gdb/expression.h (props changed) vendor/gdb/4.16/gdb/f-exp.tab.c (props changed) vendor/gdb/4.16/gdb/f-exp.y (props changed) vendor/gdb/4.16/gdb/f-lang.c (props changed) vendor/gdb/4.16/gdb/f-lang.h (props changed) vendor/gdb/4.16/gdb/f-typeprint.c (props changed) vendor/gdb/4.16/gdb/f-valprint.c (props changed) vendor/gdb/4.16/gdb/findvar.c (props changed) vendor/gdb/4.16/gdb/fork-child.c (props changed) vendor/gdb/4.16/gdb/frame.h (props changed) vendor/gdb/4.16/gdb/gdb-stabs.h (props changed) vendor/gdb/4.16/gdb/gdb.1 (props changed) vendor/gdb/4.16/gdb/gdb.gdb (props changed) vendor/gdb/4.16/gdb/gdb_stat.h (props changed) vendor/gdb/4.16/gdb/gdb_string.h (props changed) vendor/gdb/4.16/gdb/gdba.el (props changed) vendor/gdb/4.16/gdb/gdbcmd.h (props changed) vendor/gdb/4.16/gdb/gdbcore.h (props changed) vendor/gdb/4.16/gdb/gdbserver/Makefile.in (props changed) vendor/gdb/4.16/gdb/gdbserver/README (props changed) vendor/gdb/4.16/gdb/gdbserver/configure.in (props changed) vendor/gdb/4.16/gdb/gdbserver/gdbreplay.c (props changed) vendor/gdb/4.16/gdb/gdbserver/gdbserver.1 (props changed) vendor/gdb/4.16/gdb/gdbserver/low-hppabsd.c (props changed) vendor/gdb/4.16/gdb/gdbserver/low-linux.c (props changed) vendor/gdb/4.16/gdb/gdbserver/low-lynx.c (props changed) vendor/gdb/4.16/gdb/gdbserver/low-sparc.c (props changed) vendor/gdb/4.16/gdb/gdbserver/low-sun3.c (props changed) vendor/gdb/4.16/gdb/gdbserver/remote-utils.c (props changed) vendor/gdb/4.16/gdb/gdbserver/server.c (props changed) vendor/gdb/4.16/gdb/gdbserver/server.h (props changed) vendor/gdb/4.16/gdb/gdbserver/utils.c (props changed) vendor/gdb/4.16/gdb/gdbtypes.c (props changed) vendor/gdb/4.16/gdb/gdbtypes.h (props changed) vendor/gdb/4.16/gdb/gnu-nat.c (props changed) vendor/gdb/4.16/gdb/gnu-nat.h (props changed) vendor/gdb/4.16/gdb/gnu-regex.c (props changed) vendor/gdb/4.16/gdb/gnu-regex.h (props changed) vendor/gdb/4.16/gdb/go32-xdep.c (props changed) vendor/gdb/4.16/gdb/i386-stub.c (props changed) vendor/gdb/4.16/gdb/i386-tdep.c (props changed) vendor/gdb/4.16/gdb/i386aix-nat.c (props changed) vendor/gdb/4.16/gdb/i386b-nat.c (props changed) vendor/gdb/4.16/gdb/i386gnu-nat.c (props changed) vendor/gdb/4.16/gdb/i386ly-tdep.c (props changed) vendor/gdb/4.16/gdb/i386m3-nat.c (props changed) vendor/gdb/4.16/gdb/i386mach-nat.c (props changed) vendor/gdb/4.16/gdb/i386v-nat.c (props changed) vendor/gdb/4.16/gdb/i386v4-nat.c (props changed) vendor/gdb/4.16/gdb/i387-tdep.c (props changed) vendor/gdb/4.16/gdb/infcmd.c (props changed) vendor/gdb/4.16/gdb/inferior.h (props changed) vendor/gdb/4.16/gdb/inflow.c (props changed) vendor/gdb/4.16/gdb/infptrace.c (props changed) vendor/gdb/4.16/gdb/infrun.c (props changed) vendor/gdb/4.16/gdb/inftarg.c (props changed) vendor/gdb/4.16/gdb/irix4-nat.c (props changed) vendor/gdb/4.16/gdb/irix5-nat.c (props changed) vendor/gdb/4.16/gdb/isi-xdep.c (props changed) vendor/gdb/4.16/gdb/kdb-start.c (props changed) vendor/gdb/4.16/gdb/language.c (props changed) vendor/gdb/4.16/gdb/language.h (props changed) vendor/gdb/4.16/gdb/lynx-nat.c (props changed) vendor/gdb/4.16/gdb/m2-exp.tab.c (props changed) vendor/gdb/4.16/gdb/m2-exp.y (props changed) vendor/gdb/4.16/gdb/m2-lang.c (props changed) vendor/gdb/4.16/gdb/m2-lang.h (props changed) vendor/gdb/4.16/gdb/m2-typeprint.c (props changed) vendor/gdb/4.16/gdb/m2-valprint.c (props changed) vendor/gdb/4.16/gdb/m3-nat.c (props changed) vendor/gdb/4.16/gdb/m68k-stub.c (props changed) vendor/gdb/4.16/gdb/m68k-tdep.c (props changed) vendor/gdb/4.16/gdb/m68knbsd-nat.c (props changed) vendor/gdb/4.16/gdb/m88k-nat.c (props changed) vendor/gdb/4.16/gdb/m88k-tdep.c (props changed) vendor/gdb/4.16/gdb/main.c (props changed) vendor/gdb/4.16/gdb/maint.c (props changed) vendor/gdb/4.16/gdb/mdebugread.c (props changed) vendor/gdb/4.16/gdb/mem-break.c (props changed) vendor/gdb/4.16/gdb/minimon.h (props changed) vendor/gdb/4.16/gdb/minsyms.c (props changed) vendor/gdb/4.16/gdb/mipsread.c (props changed) vendor/gdb/4.16/gdb/mon960-rom.c (props changed) vendor/gdb/4.16/gdb/monitor.c (props changed) vendor/gdb/4.16/gdb/monitor.h (props changed) vendor/gdb/4.16/gdb/mpw-config.in (props changed) vendor/gdb/4.16/gdb/mpw-make.sed (props changed) vendor/gdb/4.16/gdb/msg.defs (props changed) vendor/gdb/4.16/gdb/msg_reply.defs (props changed) vendor/gdb/4.16/gdb/news-xdep.c (props changed) vendor/gdb/4.16/gdb/nindy-tdep.c (props changed) vendor/gdb/4.16/gdb/nlm/Makefile.in (props changed) vendor/gdb/4.16/gdb/nlm/configure (props changed) vendor/gdb/4.16/gdb/nlm/configure.in (props changed) vendor/gdb/4.16/gdb/nlm/gdbserve.c (props changed) vendor/gdb/4.16/gdb/nlm/gdbserve.def (props changed) vendor/gdb/4.16/gdb/nlm/i386.c (props changed) vendor/gdb/4.16/gdb/nlm/i386.h (props changed) vendor/gdb/4.16/gdb/nlm/ppc.c (props changed) vendor/gdb/4.16/gdb/nlm/ppc.h (props changed) vendor/gdb/4.16/gdb/nlm/prelude.c (props changed) vendor/gdb/4.16/gdb/nlmread.c (props changed) vendor/gdb/4.16/gdb/notify.defs (props changed) vendor/gdb/4.16/gdb/ns32k-tdep.c (props changed) vendor/gdb/4.16/gdb/ns32km3-nat.c (props changed) vendor/gdb/4.16/gdb/objfiles.c (props changed) vendor/gdb/4.16/gdb/objfiles.h (props changed) vendor/gdb/4.16/gdb/op50-rom.c (props changed) vendor/gdb/4.16/gdb/os9kread.c (props changed) vendor/gdb/4.16/gdb/osfsolib.c (props changed) vendor/gdb/4.16/gdb/parse.c (props changed) vendor/gdb/4.16/gdb/parser-defs.h (props changed) vendor/gdb/4.16/gdb/partial-stab.h (props changed) vendor/gdb/4.16/gdb/ppcbug-rom.c (props changed) vendor/gdb/4.16/gdb/printcmd.c (props changed) vendor/gdb/4.16/gdb/process_reply.defs (props changed) vendor/gdb/4.16/gdb/procfs.c (props changed) vendor/gdb/4.16/gdb/ptx4-nat.c (props changed) vendor/gdb/4.16/gdb/pyr-tdep.c (props changed) vendor/gdb/4.16/gdb/pyr-xdep.c (props changed) vendor/gdb/4.16/gdb/remote-adapt.c (props changed) vendor/gdb/4.16/gdb/remote-array.c (props changed) vendor/gdb/4.16/gdb/remote-bug.c (props changed) vendor/gdb/4.16/gdb/remote-e7000.c (props changed) vendor/gdb/4.16/gdb/remote-eb.c (props changed) vendor/gdb/4.16/gdb/remote-es.c (props changed) vendor/gdb/4.16/gdb/remote-est.c (props changed) vendor/gdb/4.16/gdb/remote-hms.c (props changed) vendor/gdb/4.16/gdb/remote-mips.c (props changed) vendor/gdb/4.16/gdb/remote-mm.c (props changed) vendor/gdb/4.16/gdb/remote-nindy.c (props changed) vendor/gdb/4.16/gdb/remote-nrom.c (props changed) vendor/gdb/4.16/gdb/remote-os9k.c (props changed) vendor/gdb/4.16/gdb/remote-pa.c (props changed) vendor/gdb/4.16/gdb/remote-rdp.c (props changed) vendor/gdb/4.16/gdb/remote-sim.c (props changed) vendor/gdb/4.16/gdb/remote-sim.h (props changed) vendor/gdb/4.16/gdb/remote-st.c (props changed) vendor/gdb/4.16/gdb/remote-udi.c (props changed) vendor/gdb/4.16/gdb/remote-utils.c (props changed) vendor/gdb/4.16/gdb/remote-utils.h (props changed) vendor/gdb/4.16/gdb/remote-vx.c (props changed) vendor/gdb/4.16/gdb/remote-vx29k.c (props changed) vendor/gdb/4.16/gdb/remote-vx68.c (props changed) vendor/gdb/4.16/gdb/remote-vx960.c (props changed) vendor/gdb/4.16/gdb/remote-vxmips.c (props changed) vendor/gdb/4.16/gdb/remote-vxsparc.c (props changed) vendor/gdb/4.16/gdb/remote.c (props changed) vendor/gdb/4.16/gdb/reply_mig_hack.awk (props changed) vendor/gdb/4.16/gdb/saber.suppress (props changed) vendor/gdb/4.16/gdb/scm-exp.c (props changed) vendor/gdb/4.16/gdb/scm-lang.c (props changed) vendor/gdb/4.16/gdb/scm-lang.h (props changed) vendor/gdb/4.16/gdb/scm-tags.h (props changed) vendor/gdb/4.16/gdb/scm-valprint.c (props changed) vendor/gdb/4.16/gdb/ser-e7kpc.c (props changed) vendor/gdb/4.16/gdb/ser-go32.c (props changed) vendor/gdb/4.16/gdb/ser-mac.c (props changed) vendor/gdb/4.16/gdb/ser-tcp.c (props changed) vendor/gdb/4.16/gdb/ser-unix.c (props changed) vendor/gdb/4.16/gdb/serial.c (props changed) vendor/gdb/4.16/gdb/serial.h (props changed) vendor/gdb/4.16/gdb/signals.h (props changed) vendor/gdb/4.16/gdb/solib.c (props changed) vendor/gdb/4.16/gdb/solib.h (props changed) vendor/gdb/4.16/gdb/somread.c (props changed) vendor/gdb/4.16/gdb/somsolib.c (props changed) vendor/gdb/4.16/gdb/somsolib.h (props changed) vendor/gdb/4.16/gdb/source.c (props changed) vendor/gdb/4.16/gdb/srec.h (props changed) vendor/gdb/4.16/gdb/stabsread.c (props changed) vendor/gdb/4.16/gdb/stabsread.h (props changed) vendor/gdb/4.16/gdb/stack.c (props changed) vendor/gdb/4.16/gdb/standalone.c (props changed) vendor/gdb/4.16/gdb/stop-gdb.c (props changed) vendor/gdb/4.16/gdb/stuff.c (props changed) vendor/gdb/4.16/gdb/symfile.c (props changed) vendor/gdb/4.16/gdb/symfile.h (props changed) vendor/gdb/4.16/gdb/symm-nat.c (props changed) vendor/gdb/4.16/gdb/symm-tdep.c (props changed) vendor/gdb/4.16/gdb/symmisc.c (props changed) vendor/gdb/4.16/gdb/symtab.c (props changed) vendor/gdb/4.16/gdb/symtab.h (props changed) vendor/gdb/4.16/gdb/target.c (props changed) vendor/gdb/4.16/gdb/target.h (props changed) vendor/gdb/4.16/gdb/terminal.h (props changed) vendor/gdb/4.16/gdb/thread.c (props changed) vendor/gdb/4.16/gdb/thread.h (props changed) vendor/gdb/4.16/gdb/top.c (props changed) vendor/gdb/4.16/gdb/top.h (props changed) vendor/gdb/4.16/gdb/typeprint.c (props changed) vendor/gdb/4.16/gdb/typeprint.h (props changed) vendor/gdb/4.16/gdb/umax-xdep.c (props changed) vendor/gdb/4.16/gdb/utils.c (props changed) vendor/gdb/4.16/gdb/valarith.c (props changed) vendor/gdb/4.16/gdb/valops.c (props changed) vendor/gdb/4.16/gdb/valprint.c (props changed) vendor/gdb/4.16/gdb/valprint.h (props changed) vendor/gdb/4.16/gdb/value.h (props changed) vendor/gdb/4.16/gdb/values.c (props changed) vendor/gdb/4.16/gdb/xcoffread.c (props changed) vendor/gdb/4.16/gdb/xcoffsolib.c (props changed) vendor/gdb/4.16/gdb/xcoffsolib.h (props changed) vendor/gdb/4.16/gdb/xmodem.c (props changed) vendor/gdb/4.16/gdb/xmodem.h (props changed) vendor/gdb/4.16/include/COPYING (props changed) vendor/gdb/4.16/include/ChangeLog (props changed) vendor/gdb/4.16/include/ansidecl.h (props changed) vendor/gdb/4.16/include/aout/ChangeLog (props changed) vendor/gdb/4.16/include/aout/adobe.h (props changed) vendor/gdb/4.16/include/aout/aout64.h (props changed) vendor/gdb/4.16/include/aout/ar.h (props changed) vendor/gdb/4.16/include/aout/dynix3.h (props changed) vendor/gdb/4.16/include/aout/encap.h (props changed) vendor/gdb/4.16/include/aout/host.h (props changed) vendor/gdb/4.16/include/aout/hp.h (props changed) vendor/gdb/4.16/include/aout/hp300hpux.h (props changed) vendor/gdb/4.16/include/aout/hppa.h (props changed) vendor/gdb/4.16/include/aout/ranlib.h (props changed) vendor/gdb/4.16/include/aout/reloc.h (props changed) vendor/gdb/4.16/include/aout/stab.def (props changed) vendor/gdb/4.16/include/aout/stab_gnu.h (props changed) vendor/gdb/4.16/include/aout/sun4.h (props changed) vendor/gdb/4.16/include/bfdlink.h (props changed) vendor/gdb/4.16/include/bout.h (props changed) vendor/gdb/4.16/include/coff/ChangeLog (props changed) vendor/gdb/4.16/include/coff/a29k.h (props changed) vendor/gdb/4.16/include/coff/alpha.h (props changed) vendor/gdb/4.16/include/coff/apollo.h (props changed) vendor/gdb/4.16/include/coff/arm.h (props changed) vendor/gdb/4.16/include/coff/aux-coff.h (props changed) vendor/gdb/4.16/include/coff/ecoff.h (props changed) vendor/gdb/4.16/include/coff/h8300.h (props changed) vendor/gdb/4.16/include/coff/h8500.h (props changed) vendor/gdb/4.16/include/coff/i386.h (props changed) vendor/gdb/4.16/include/coff/i860.h (props changed) vendor/gdb/4.16/include/coff/i960.h (props changed) vendor/gdb/4.16/include/coff/internal.h (props changed) vendor/gdb/4.16/include/coff/m68k.h (props changed) vendor/gdb/4.16/include/coff/m88k.h (props changed) vendor/gdb/4.16/include/coff/mips.h (props changed) vendor/gdb/4.16/include/coff/pe.h (props changed) vendor/gdb/4.16/include/coff/powerpc.h (props changed) vendor/gdb/4.16/include/coff/rs6000.h (props changed) vendor/gdb/4.16/include/coff/sh.h (props changed) vendor/gdb/4.16/include/coff/sparc.h (props changed) vendor/gdb/4.16/include/coff/sym.h (props changed) vendor/gdb/4.16/include/coff/symconst.h (props changed) vendor/gdb/4.16/include/coff/w65.h (props changed) vendor/gdb/4.16/include/coff/we32k.h (props changed) vendor/gdb/4.16/include/coff/z8k.h (props changed) vendor/gdb/4.16/include/demangle.h (props changed) vendor/gdb/4.16/include/dis-asm.h (props changed) vendor/gdb/4.16/include/elf/ChangeLog (props changed) vendor/gdb/4.16/include/elf/common.h (props changed) vendor/gdb/4.16/include/elf/dwarf.h (props changed) vendor/gdb/4.16/include/elf/external.h (props changed) vendor/gdb/4.16/include/elf/hppa.h (props changed) vendor/gdb/4.16/include/elf/internal.h (props changed) vendor/gdb/4.16/include/elf/mips.h (props changed) vendor/gdb/4.16/include/elf/ppc.h (props changed) vendor/gdb/4.16/include/elf/sparc.h (props changed) vendor/gdb/4.16/include/floatformat.h (props changed) vendor/gdb/4.16/include/fopen-bin.h (props changed) vendor/gdb/4.16/include/fopen-same.h (props changed) vendor/gdb/4.16/include/gdbm.h (props changed) vendor/gdb/4.16/include/getopt.h (props changed) vendor/gdb/4.16/include/hp-symtab.h (props changed) vendor/gdb/4.16/include/ieee.h (props changed) vendor/gdb/4.16/include/libiberty.h (props changed) vendor/gdb/4.16/include/mpw/ChangeLog (props changed) vendor/gdb/4.16/include/mpw/README (props changed) vendor/gdb/4.16/include/mpw/dir.h (props changed) vendor/gdb/4.16/include/mpw/dirent.h (props changed) vendor/gdb/4.16/include/mpw/fcntl.h (props changed) vendor/gdb/4.16/include/mpw/grp.h (props changed) vendor/gdb/4.16/include/mpw/mpw.h (props changed) vendor/gdb/4.16/include/mpw/pwd.h (props changed) vendor/gdb/4.16/include/mpw/spin.h (props changed) vendor/gdb/4.16/include/mpw/stat.h (props changed) vendor/gdb/4.16/include/mpw/sys/file.h (props changed) vendor/gdb/4.16/include/mpw/sys/param.h (props changed) vendor/gdb/4.16/include/mpw/sys/resource.h (props changed) vendor/gdb/4.16/include/mpw/sys/stat.h (props changed) vendor/gdb/4.16/include/mpw/sys/time.h (props changed) vendor/gdb/4.16/include/mpw/sys/types.h (props changed) vendor/gdb/4.16/include/mpw/utime.h (props changed) vendor/gdb/4.16/include/mpw/varargs.h (props changed) vendor/gdb/4.16/include/nlm/ChangeLog (props changed) vendor/gdb/4.16/include/nlm/alpha-ext.h (props changed) vendor/gdb/4.16/include/nlm/common.h (props changed) vendor/gdb/4.16/include/nlm/external.h (props changed) vendor/gdb/4.16/include/nlm/i386-ext.h (props changed) vendor/gdb/4.16/include/nlm/internal.h (props changed) vendor/gdb/4.16/include/nlm/ppc-ext.h (props changed) vendor/gdb/4.16/include/nlm/sparc32-ext.h (props changed) vendor/gdb/4.16/include/oasys.h (props changed) vendor/gdb/4.16/include/obstack.h (props changed) vendor/gdb/4.16/include/opcode/ChangeLog (props changed) vendor/gdb/4.16/include/opcode/a29k.h (props changed) vendor/gdb/4.16/include/opcode/arm.h (props changed) vendor/gdb/4.16/include/opcode/convex.h (props changed) vendor/gdb/4.16/include/opcode/h8300.h (props changed) vendor/gdb/4.16/include/opcode/hppa.h (props changed) vendor/gdb/4.16/include/opcode/i386.h (props changed) vendor/gdb/4.16/include/opcode/i860.h (props changed) vendor/gdb/4.16/include/opcode/i960.h (props changed) vendor/gdb/4.16/include/opcode/m68k.h (props changed) vendor/gdb/4.16/include/opcode/m88k.h (props changed) vendor/gdb/4.16/include/opcode/mips.h (props changed) vendor/gdb/4.16/include/opcode/np1.h (props changed) vendor/gdb/4.16/include/opcode/ns32k.h (props changed) vendor/gdb/4.16/include/opcode/pn.h (props changed) vendor/gdb/4.16/include/opcode/ppc.h (props changed) vendor/gdb/4.16/include/opcode/pyr.h (props changed) vendor/gdb/4.16/include/opcode/rs6k.h (props changed) vendor/gdb/4.16/include/opcode/sparc.h (props changed) vendor/gdb/4.16/include/opcode/tahoe.h (props changed) vendor/gdb/4.16/include/opcode/vax.h (props changed) vendor/gdb/4.16/include/os9k.h (props changed) vendor/gdb/4.16/include/progress.h (props changed) vendor/gdb/4.16/include/wait.h (props changed) vendor/gdb/4.16/libiberty/COPYING.LIB (props changed) vendor/gdb/4.16/libiberty/ChangeLog (props changed) vendor/gdb/4.16/libiberty/Makefile.in (props changed) vendor/gdb/4.16/libiberty/README (props changed) vendor/gdb/4.16/libiberty/alloca-botch.h (props changed) vendor/gdb/4.16/libiberty/alloca-norm.h (props changed) vendor/gdb/4.16/libiberty/alloca.c (props changed) vendor/gdb/4.16/libiberty/argv.c (props changed) vendor/gdb/4.16/libiberty/atexit.c (props changed) vendor/gdb/4.16/libiberty/basename.c (props changed) vendor/gdb/4.16/libiberty/bcmp.c (props changed) vendor/gdb/4.16/libiberty/bcopy.c (props changed) vendor/gdb/4.16/libiberty/bzero.c (props changed) vendor/gdb/4.16/libiberty/clock.c (props changed) vendor/gdb/4.16/libiberty/concat.c (props changed) vendor/gdb/4.16/libiberty/config.table (props changed) vendor/gdb/4.16/libiberty/config/mh-a68bsd (props changed) vendor/gdb/4.16/libiberty/config/mh-aix (props changed) vendor/gdb/4.16/libiberty/config/mh-apollo68 (props changed) vendor/gdb/4.16/libiberty/config/mh-cxux7 (props changed) vendor/gdb/4.16/libiberty/config/mh-go32 (props changed) vendor/gdb/4.16/libiberty/config/mh-hpbsd (props changed) vendor/gdb/4.16/libiberty/config/mh-irix4 (props changed) vendor/gdb/4.16/libiberty/config/mh-lynxos (props changed) vendor/gdb/4.16/libiberty/config/mh-ncr3000 (props changed) vendor/gdb/4.16/libiberty/config/mh-riscix (props changed) vendor/gdb/4.16/libiberty/config/mh-sysv (props changed) vendor/gdb/4.16/libiberty/config/mh-sysv4 (props changed) vendor/gdb/4.16/libiberty/config/mt-sunos4 (props changed) vendor/gdb/4.16/libiberty/config/mt-vxworks5 (props changed) vendor/gdb/4.16/libiberty/configure.bat (props changed) vendor/gdb/4.16/libiberty/configure.in (props changed) vendor/gdb/4.16/libiberty/copysign.c (props changed) vendor/gdb/4.16/libiberty/cplus-dem.c (props changed) vendor/gdb/4.16/libiberty/dummy.c (props changed) vendor/gdb/4.16/libiberty/fdmatch.c (props changed) vendor/gdb/4.16/libiberty/floatformat.c (props changed) vendor/gdb/4.16/libiberty/functions.def (props changed) vendor/gdb/4.16/libiberty/getcwd.c (props changed) vendor/gdb/4.16/libiberty/getopt.c (props changed) vendor/gdb/4.16/libiberty/getopt1.c (props changed) vendor/gdb/4.16/libiberty/getpagesize.c (props changed) vendor/gdb/4.16/libiberty/getruntime.c (props changed) vendor/gdb/4.16/libiberty/hex.c (props changed) vendor/gdb/4.16/libiberty/index.c (props changed) vendor/gdb/4.16/libiberty/insque.c (props changed) vendor/gdb/4.16/libiberty/makefile.dos (props changed) vendor/gdb/4.16/libiberty/memchr.c (props changed) vendor/gdb/4.16/libiberty/memcmp.c (props changed) vendor/gdb/4.16/libiberty/memcpy.c (props changed) vendor/gdb/4.16/libiberty/memmove.c (props changed) vendor/gdb/4.16/libiberty/memset.c (props changed) vendor/gdb/4.16/libiberty/mpw-config.in (props changed) vendor/gdb/4.16/libiberty/mpw-make.sed (props changed) vendor/gdb/4.16/libiberty/mpw.c (props changed) vendor/gdb/4.16/libiberty/msdos.c (props changed) vendor/gdb/4.16/libiberty/obstack.c (props changed) vendor/gdb/4.16/libiberty/random.c (props changed) vendor/gdb/4.16/libiberty/rename.c (props changed) vendor/gdb/4.16/libiberty/rindex.c (props changed) vendor/gdb/4.16/libiberty/sigsetmask.c (props changed) vendor/gdb/4.16/libiberty/spaces.c (props changed) vendor/gdb/4.16/libiberty/strcasecmp.c (props changed) vendor/gdb/4.16/libiberty/strchr.c (props changed) vendor/gdb/4.16/libiberty/strdup.c (props changed) vendor/gdb/4.16/libiberty/strerror.c (props changed) vendor/gdb/4.16/libiberty/strncasecmp.c (props changed) vendor/gdb/4.16/libiberty/strrchr.c (props changed) vendor/gdb/4.16/libiberty/strsignal.c (props changed) vendor/gdb/4.16/libiberty/strstr.c (props changed) vendor/gdb/4.16/libiberty/strtod.c (props changed) vendor/gdb/4.16/libiberty/strtol.c (props changed) vendor/gdb/4.16/libiberty/strtoul.c (props changed) vendor/gdb/4.16/libiberty/tmpnam.c (props changed) vendor/gdb/4.16/libiberty/vasprintf.c (props changed) vendor/gdb/4.16/libiberty/vfork.c (props changed) vendor/gdb/4.16/libiberty/vfprintf.c (props changed) vendor/gdb/4.16/libiberty/vmsbuild.com (props changed) vendor/gdb/4.16/libiberty/vprintf.c (props changed) vendor/gdb/4.16/libiberty/vsprintf.c (props changed) vendor/gdb/4.16/libiberty/waitpid.c (props changed) vendor/gdb/4.16/libiberty/xatexit.c (props changed) vendor/gdb/4.16/libiberty/xexit.c (props changed) vendor/gdb/4.16/libiberty/xmalloc.c (props changed) vendor/gdb/4.16/libiberty/xstrdup.c (props changed) vendor/gdb/4.16/libiberty/xstrerror.c (props changed) vendor/gdb/4.16/opcodes/ChangeLog (props changed) vendor/gdb/4.16/opcodes/Makefile.in (props changed) vendor/gdb/4.16/opcodes/config.in (props changed) vendor/gdb/4.16/opcodes/configure (props changed) vendor/gdb/4.16/opcodes/configure.in (props changed) vendor/gdb/4.16/opcodes/dis-buf.c (props changed) vendor/gdb/4.16/opcodes/disassemble.c (props changed) vendor/gdb/4.16/opcodes/i386-dis.c (props changed) vendor/gdb/4.16/opcodes/sysdep.h (props changed) vendor/gdb/4.16/opcodes/z8k-dis.c (props changed) vendor/gdb/4.16/readline/doc/ChangeLog (props changed) vendor/gdb/4.16/readline/doc/Makefile.in (props changed) vendor/gdb/4.16/readline/doc/configure.in (props changed) vendor/gdb/4.16/readline/doc/hist.texinfo (props changed) vendor/gdb/4.16/readline/doc/hstech.texinfo (props changed) vendor/gdb/4.16/readline/doc/hsuser.texinfo (props changed) vendor/gdb/4.16/readline/doc/inc-hist.texi (props changed) vendor/gdb/4.16/readline/doc/rlman.texinfo (props changed) vendor/gdb/4.16/readline/doc/rltech.texinfo (props changed) vendor/gdb/4.16/readline/doc/rluser.texinfo (props changed) vendor/gdb/4.18/gdb/COPYING (props changed) vendor/gdb/4.18/gdb/ChangeLog (props changed) vendor/gdb/4.18/gdb/ChangeLog-93 (props changed) vendor/gdb/4.18/gdb/ChangeLog-94 (props changed) vendor/gdb/4.18/gdb/ChangeLog-95 (props changed) vendor/gdb/4.18/gdb/ChangeLog-96 (props changed) vendor/gdb/4.18/gdb/ChangeLog-97 (props changed) vendor/gdb/4.18/gdb/ChangeLog-98 (props changed) vendor/gdb/4.18/gdb/Makefile.in (props changed) vendor/gdb/4.18/gdb/NEWS (props changed) vendor/gdb/4.18/gdb/README (props changed) vendor/gdb/4.18/gdb/TODO (props changed) vendor/gdb/4.18/gdb/abug-rom.c (props changed) vendor/gdb/4.18/gdb/acconfig.h (props changed) vendor/gdb/4.18/gdb/acinclude.m4 (props changed) vendor/gdb/4.18/gdb/aclocal.m4 (props changed) vendor/gdb/4.18/gdb/alpha-nat.c (props changed) vendor/gdb/4.18/gdb/alpha-tdep.c (props changed) vendor/gdb/4.18/gdb/annotate.c (props changed) vendor/gdb/4.18/gdb/annotate.h (props changed) vendor/gdb/4.18/gdb/arc-tdep.c (props changed) vendor/gdb/4.18/gdb/arm-convert.s (props changed) vendor/gdb/4.18/gdb/arm-tdep.c (props changed) vendor/gdb/4.18/gdb/arm-xdep.c (props changed) vendor/gdb/4.18/gdb/ax-gdb.c (props changed) vendor/gdb/4.18/gdb/ax-gdb.h (props changed) vendor/gdb/4.18/gdb/ax-general.c (props changed) vendor/gdb/4.18/gdb/ax.h (props changed) vendor/gdb/4.18/gdb/bcache.c (props changed) vendor/gdb/4.18/gdb/bcache.h (props changed) vendor/gdb/4.18/gdb/blockframe.c (props changed) vendor/gdb/4.18/gdb/breakpoint.c (props changed) vendor/gdb/4.18/gdb/breakpoint.h (props changed) vendor/gdb/4.18/gdb/buildsym.c (props changed) vendor/gdb/4.18/gdb/buildsym.h (props changed) vendor/gdb/4.18/gdb/c-exp.tab.c (props changed) vendor/gdb/4.18/gdb/c-exp.y (props changed) vendor/gdb/4.18/gdb/c-lang.c (props changed) vendor/gdb/4.18/gdb/c-lang.h (props changed) vendor/gdb/4.18/gdb/c-typeprint.c (props changed) vendor/gdb/4.18/gdb/c-valprint.c (props changed) vendor/gdb/4.18/gdb/call-cmds.h (props changed) vendor/gdb/4.18/gdb/ch-exp.c (props changed) vendor/gdb/4.18/gdb/ch-lang.c (props changed) vendor/gdb/4.18/gdb/ch-lang.h (props changed) vendor/gdb/4.18/gdb/ch-typeprint.c (props changed) vendor/gdb/4.18/gdb/ch-valprint.c (props changed) vendor/gdb/4.18/gdb/coff-solib.c (props changed) vendor/gdb/4.18/gdb/coff-solib.h (props changed) vendor/gdb/4.18/gdb/coffread.c (props changed) vendor/gdb/4.18/gdb/command.c (props changed) vendor/gdb/4.18/gdb/command.h (props changed) vendor/gdb/4.18/gdb/complaints.c (props changed) vendor/gdb/4.18/gdb/complaints.h (props changed) vendor/gdb/4.18/gdb/config.in (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-linux.mh (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-linux.mt (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-osf1.mh (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-osf1.mt (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-osf2.mh (props changed) vendor/gdb/4.18/gdb/config/alpha/alpha-osf3.mh (props changed) vendor/gdb/4.18/gdb/config/alpha/nm-linux.h (props changed) vendor/gdb/4.18/gdb/config/alpha/nm-osf.h (props changed) vendor/gdb/4.18/gdb/config/alpha/nm-osf2.h (props changed) vendor/gdb/4.18/gdb/config/alpha/nm-osf3.h (props changed) vendor/gdb/4.18/gdb/config/alpha/tm-alpha.h (props changed) vendor/gdb/4.18/gdb/config/alpha/tm-alphalinux.h (props changed) vendor/gdb/4.18/gdb/config/alpha/xm-alphalinux.h (props changed) vendor/gdb/4.18/gdb/config/alpha/xm-alphaosf.h (props changed) vendor/gdb/4.18/gdb/config/i386/cygwin.mh (props changed) vendor/gdb/4.18/gdb/config/i386/cygwin.mt (props changed) vendor/gdb/4.18/gdb/config/i386/fbsd.mh (props changed) vendor/gdb/4.18/gdb/config/i386/fbsd.mt (props changed) vendor/gdb/4.18/gdb/config/i386/gdbserve.mt (props changed) vendor/gdb/4.18/gdb/config/i386/go32.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386aix.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386aix.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386aout.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386bsd.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386bsd.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386dgux.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386gnu.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386gnu.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386lynx.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386lynx.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386m3.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386m3.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386mach.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386mk.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386mk.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386nw.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386os9k.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386sco.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386sco4.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386sco5.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386sco5.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386sol2.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386sol2.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386v.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386v.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386v32.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386v4.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386v4.mt (props changed) vendor/gdb/4.18/gdb/config/i386/i386v42mp.mh (props changed) vendor/gdb/4.18/gdb/config/i386/i386v42mp.mt (props changed) vendor/gdb/4.18/gdb/config/i386/linux.mh (props changed) vendor/gdb/4.18/gdb/config/i386/linux.mt (props changed) vendor/gdb/4.18/gdb/config/i386/nbsd.mh (props changed) vendor/gdb/4.18/gdb/config/i386/nbsd.mt (props changed) vendor/gdb/4.18/gdb/config/i386/ncr3000.mh (props changed) vendor/gdb/4.18/gdb/config/i386/ncr3000.mt (props changed) vendor/gdb/4.18/gdb/config/i386/nm-fbsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-gnu.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386aix.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386bsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386lynx.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386mach.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386sco.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386sco4.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386sco5.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386sol2.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386v.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386v4.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-i386v42mp.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-linux.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-m3.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-nbsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-ptx4.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-sun386.h (props changed) vendor/gdb/4.18/gdb/config/i386/nm-symmetry.h (props changed) vendor/gdb/4.18/gdb/config/i386/ptx.mh (props changed) vendor/gdb/4.18/gdb/config/i386/ptx.mt (props changed) vendor/gdb/4.18/gdb/config/i386/ptx4.mh (props changed) vendor/gdb/4.18/gdb/config/i386/ptx4.mt (props changed) vendor/gdb/4.18/gdb/config/i386/sun386.mh (props changed) vendor/gdb/4.18/gdb/config/i386/sun386.mt (props changed) vendor/gdb/4.18/gdb/config/i386/symmetry.mh (props changed) vendor/gdb/4.18/gdb/config/i386/symmetry.mt (props changed) vendor/gdb/4.18/gdb/config/i386/tm-cygwin.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-fbsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386aix.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386bsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386gnu.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386lynx.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386m3.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386mk.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386nw.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386os9k.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386sco5.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386sol2.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386v.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386v4.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-i386v42mp.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-linux.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-nbsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-ptx.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-ptx4.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-sun386.h (props changed) vendor/gdb/4.18/gdb/config/i386/tm-symmetry.h (props changed) vendor/gdb/4.18/gdb/config/i386/windows.mh (props changed) vendor/gdb/4.18/gdb/config/i386/xm-cygwin.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-go32.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386aix.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386bsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386gnu.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386lynx.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386m3.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386mach.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386mk.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386sco.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386v.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386v32.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-i386v4.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-linux.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-nbsd.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-ptx.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-ptx4.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-sun386.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-symmetry.h (props changed) vendor/gdb/4.18/gdb/config/i386/xm-windows.h (props changed) vendor/gdb/4.18/gdb/configure (props changed) vendor/gdb/4.18/gdb/configure.host (props changed) vendor/gdb/4.18/gdb/configure.in (props changed) vendor/gdb/4.18/gdb/configure.tgt (props changed) vendor/gdb/4.18/gdb/copying.awk (props changed) vendor/gdb/4.18/gdb/copying.c (props changed) vendor/gdb/4.18/gdb/core-aout.c (props changed) vendor/gdb/4.18/gdb/core-regset.c (props changed) vendor/gdb/4.18/gdb/core-sol2.c (props changed) vendor/gdb/4.18/gdb/corefile.c (props changed) vendor/gdb/4.18/gdb/corelow.c (props changed) vendor/gdb/4.18/gdb/cp-valprint.c (props changed) vendor/gdb/4.18/gdb/cpu32bug-rom.c (props changed) vendor/gdb/4.18/gdb/cxux-nat.c (props changed) vendor/gdb/4.18/gdb/dbxread.c (props changed) vendor/gdb/4.18/gdb/dcache.c (props changed) vendor/gdb/4.18/gdb/dcache.h (props changed) vendor/gdb/4.18/gdb/defs.h (props changed) vendor/gdb/4.18/gdb/demangle.c (props changed) vendor/gdb/4.18/gdb/dink32-rom.c (props changed) vendor/gdb/4.18/gdb/doc/ChangeLog (props changed) vendor/gdb/4.18/gdb/doc/GDBvn.texi (props changed) vendor/gdb/4.18/gdb/doc/HPPA-cfg.texi (props changed) vendor/gdb/4.18/gdb/doc/LRS (props changed) vendor/gdb/4.18/gdb/doc/Makefile.in (props changed) vendor/gdb/4.18/gdb/doc/a4rc.sed (props changed) vendor/gdb/4.18/gdb/doc/agentexpr.texi (props changed) vendor/gdb/4.18/gdb/doc/all-cfg.texi (props changed) vendor/gdb/4.18/gdb/doc/annotate.texi (props changed) vendor/gdb/4.18/gdb/doc/configure (props changed) vendor/gdb/4.18/gdb/doc/configure.in (props changed) vendor/gdb/4.18/gdb/doc/gdb.texinfo (props changed) vendor/gdb/4.18/gdb/doc/gdbint.texinfo (props changed) vendor/gdb/4.18/gdb/doc/h8-cfg.texi (props changed) vendor/gdb/4.18/gdb/doc/libgdb.texinfo (props changed) vendor/gdb/4.18/gdb/doc/lpsrc.sed (props changed) vendor/gdb/4.18/gdb/doc/psrc.sed (props changed) vendor/gdb/4.18/gdb/doc/refcard.tex (props changed) vendor/gdb/4.18/gdb/doc/remote.texi (props changed) vendor/gdb/4.18/gdb/doc/stabs.texinfo (props changed) vendor/gdb/4.18/gdb/dwarf2read.c (props changed) vendor/gdb/4.18/gdb/dwarfread.c (props changed) vendor/gdb/4.18/gdb/elfread.c (props changed) vendor/gdb/4.18/gdb/environ.c (props changed) vendor/gdb/4.18/gdb/environ.h (props changed) vendor/gdb/4.18/gdb/eval.c (props changed) vendor/gdb/4.18/gdb/exc_request.defs (props changed) vendor/gdb/4.18/gdb/exec.c (props changed) vendor/gdb/4.18/gdb/expprint.c (props changed) vendor/gdb/4.18/gdb/expression.h (props changed) vendor/gdb/4.18/gdb/f-exp.tab.c (props changed) vendor/gdb/4.18/gdb/f-exp.y (props changed) vendor/gdb/4.18/gdb/f-lang.c (props changed) vendor/gdb/4.18/gdb/f-lang.h (props changed) vendor/gdb/4.18/gdb/f-typeprint.c (props changed) vendor/gdb/4.18/gdb/f-valprint.c (props changed) vendor/gdb/4.18/gdb/findvar.c (props changed) vendor/gdb/4.18/gdb/fork-child.c (props changed) vendor/gdb/4.18/gdb/fr30-tdep.c (props changed) vendor/gdb/4.18/gdb/frame.h (props changed) vendor/gdb/4.18/gdb/gdb-stabs.h (props changed) vendor/gdb/4.18/gdb/gdb.1 (props changed) vendor/gdb/4.18/gdb/gdb.gdb (props changed) vendor/gdb/4.18/gdb/gdb_stat.h (props changed) vendor/gdb/4.18/gdb/gdb_string.h (props changed) vendor/gdb/4.18/gdb/gdba.el (props changed) vendor/gdb/4.18/gdb/gdbarch.c (props changed) vendor/gdb/4.18/gdb/gdbarch.h (props changed) vendor/gdb/4.18/gdb/gdbcmd.h (props changed) vendor/gdb/4.18/gdb/gdbcore.h (props changed) vendor/gdb/4.18/gdb/gdbinit.in (props changed) vendor/gdb/4.18/gdb/gdbserver/Makefile.in (props changed) vendor/gdb/4.18/gdb/gdbserver/README (props changed) vendor/gdb/4.18/gdb/gdbserver/configure.in (props changed) vendor/gdb/4.18/gdb/gdbserver/gdbreplay.c (props changed) vendor/gdb/4.18/gdb/gdbserver/gdbserver.1 (props changed) vendor/gdb/4.18/gdb/gdbserver/low-hppabsd.c (props changed) vendor/gdb/4.18/gdb/gdbserver/low-linux.c (props changed) vendor/gdb/4.18/gdb/gdbserver/low-lynx.c (props changed) vendor/gdb/4.18/gdb/gdbserver/low-sim.c (props changed) vendor/gdb/4.18/gdb/gdbserver/low-sparc.c (props changed) vendor/gdb/4.18/gdb/gdbserver/low-sun3.c (props changed) vendor/gdb/4.18/gdb/gdbserver/remote-utils.c (props changed) vendor/gdb/4.18/gdb/gdbserver/server.c (props changed) vendor/gdb/4.18/gdb/gdbserver/server.h (props changed) vendor/gdb/4.18/gdb/gdbserver/utils.c (props changed) vendor/gdb/4.18/gdb/gdbthread.h (props changed) vendor/gdb/4.18/gdb/gdbtypes.c (props changed) vendor/gdb/4.18/gdb/gdbtypes.h (props changed) vendor/gdb/4.18/gdb/gnu-nat.c (props changed) vendor/gdb/4.18/gdb/gnu-nat.h (props changed) vendor/gdb/4.18/gdb/gnu-regex.c (props changed) vendor/gdb/4.18/gdb/gnu-regex.h (props changed) vendor/gdb/4.18/gdb/go32-xdep.c (props changed) vendor/gdb/4.18/gdb/hp-psymtab-read.c (props changed) vendor/gdb/4.18/gdb/hp-symtab-read.c (props changed) vendor/gdb/4.18/gdb/hpread.h (props changed) vendor/gdb/4.18/gdb/hpux-thread.c (props changed) vendor/gdb/4.18/gdb/i386-stub.c (props changed) vendor/gdb/4.18/gdb/i386-tdep.c (props changed) vendor/gdb/4.18/gdb/i386aix-nat.c (props changed) vendor/gdb/4.18/gdb/i386b-nat.c (props changed) vendor/gdb/4.18/gdb/i386gnu-nat.c (props changed) vendor/gdb/4.18/gdb/i386ly-tdep.c (props changed) vendor/gdb/4.18/gdb/i386m3-nat.c (props changed) vendor/gdb/4.18/gdb/i386mach-nat.c (props changed) vendor/gdb/4.18/gdb/i386v-nat.c (props changed) vendor/gdb/4.18/gdb/i386v4-nat.c (props changed) vendor/gdb/4.18/gdb/i387-tdep.c (props changed) vendor/gdb/4.18/gdb/infcmd.c (props changed) vendor/gdb/4.18/gdb/inferior.h (props changed) vendor/gdb/4.18/gdb/inflow.c (props changed) vendor/gdb/4.18/gdb/infptrace.c (props changed) vendor/gdb/4.18/gdb/infrun.c (props changed) vendor/gdb/4.18/gdb/inftarg.c (props changed) vendor/gdb/4.18/gdb/infttrace.c (props changed) vendor/gdb/4.18/gdb/irix4-nat.c (props changed) vendor/gdb/4.18/gdb/irix5-nat.c (props changed) vendor/gdb/4.18/gdb/isi-xdep.c (props changed) vendor/gdb/4.18/gdb/jv-exp.tab.c (props changed) vendor/gdb/4.18/gdb/jv-exp.y (props changed) vendor/gdb/4.18/gdb/jv-lang.c (props changed) vendor/gdb/4.18/gdb/jv-lang.h (props changed) vendor/gdb/4.18/gdb/jv-typeprint.c (props changed) vendor/gdb/4.18/gdb/jv-valprint.c (props changed) vendor/gdb/4.18/gdb/kdb-start.c (props changed) vendor/gdb/4.18/gdb/language.c (props changed) vendor/gdb/4.18/gdb/language.h (props changed) vendor/gdb/4.18/gdb/lynx-nat.c (props changed) vendor/gdb/4.18/gdb/m2-exp.tab.c (props changed) vendor/gdb/4.18/gdb/m2-exp.y (props changed) vendor/gdb/4.18/gdb/m2-lang.c (props changed) vendor/gdb/4.18/gdb/m2-lang.h (props changed) vendor/gdb/4.18/gdb/m2-typeprint.c (props changed) vendor/gdb/4.18/gdb/m2-valprint.c (props changed) vendor/gdb/4.18/gdb/m3-nat.c (props changed) vendor/gdb/4.18/gdb/m32r-rom.c (props changed) vendor/gdb/4.18/gdb/m32r-stub.c (props changed) vendor/gdb/4.18/gdb/m32r-tdep.c (props changed) vendor/gdb/4.18/gdb/m68k-stub.c (props changed) vendor/gdb/4.18/gdb/m68k-tdep.c (props changed) vendor/gdb/4.18/gdb/m68klinux-nat.c (props changed) vendor/gdb/4.18/gdb/m68knbsd-nat.c (props changed) vendor/gdb/4.18/gdb/m88k-nat.c (props changed) vendor/gdb/4.18/gdb/m88k-tdep.c (props changed) vendor/gdb/4.18/gdb/main.c (props changed) vendor/gdb/4.18/gdb/maint.c (props changed) vendor/gdb/4.18/gdb/mdebugread.c (props changed) vendor/gdb/4.18/gdb/mem-break.c (props changed) vendor/gdb/4.18/gdb/minimon.h (props changed) vendor/gdb/4.18/gdb/minsyms.c (props changed) vendor/gdb/4.18/gdb/mipsread.c (props changed) vendor/gdb/4.18/gdb/mon960-rom.c (props changed) vendor/gdb/4.18/gdb/monitor.c (props changed) vendor/gdb/4.18/gdb/monitor.h (props changed) vendor/gdb/4.18/gdb/mpw-config.in (props changed) vendor/gdb/4.18/gdb/mpw-make.sed (props changed) vendor/gdb/4.18/gdb/msg.defs (props changed) vendor/gdb/4.18/gdb/msg_reply.defs (props changed) vendor/gdb/4.18/gdb/news-xdep.c (props changed) vendor/gdb/4.18/gdb/nindy-tdep.c (props changed) vendor/gdb/4.18/gdb/nlm/Makefile.in (props changed) vendor/gdb/4.18/gdb/nlm/configure (props changed) vendor/gdb/4.18/gdb/nlm/configure.in (props changed) vendor/gdb/4.18/gdb/nlm/gdbserve.c (props changed) vendor/gdb/4.18/gdb/nlm/gdbserve.def (props changed) vendor/gdb/4.18/gdb/nlm/i386.c (props changed) vendor/gdb/4.18/gdb/nlm/i386.h (props changed) vendor/gdb/4.18/gdb/nlm/ppc.c (props changed) vendor/gdb/4.18/gdb/nlm/ppc.h (props changed) vendor/gdb/4.18/gdb/nlm/prelude.c (props changed) vendor/gdb/4.18/gdb/nlmread.c (props changed) vendor/gdb/4.18/gdb/notify.defs (props changed) vendor/gdb/4.18/gdb/ns32k-tdep.c (props changed) vendor/gdb/4.18/gdb/ns32km3-nat.c (props changed) vendor/gdb/4.18/gdb/ns32knbsd-nat.c (props changed) vendor/gdb/4.18/gdb/objfiles.c (props changed) vendor/gdb/4.18/gdb/objfiles.h (props changed) vendor/gdb/4.18/gdb/ocd.c (props changed) vendor/gdb/4.18/gdb/ocd.h (props changed) vendor/gdb/4.18/gdb/op50-rom.c (props changed) vendor/gdb/4.18/gdb/os9kread.c (props changed) vendor/gdb/4.18/gdb/osfsolib.c (props changed) vendor/gdb/4.18/gdb/parse.c (props changed) vendor/gdb/4.18/gdb/parser-defs.h (props changed) vendor/gdb/4.18/gdb/partial-stab.h (props changed) vendor/gdb/4.18/gdb/ppc-bdm.c (props changed) vendor/gdb/4.18/gdb/ppcbug-rom.c (props changed) vendor/gdb/4.18/gdb/printcmd.c (props changed) vendor/gdb/4.18/gdb/process_reply.defs (props changed) vendor/gdb/4.18/gdb/procfs.c (props changed) vendor/gdb/4.18/gdb/ptx4-nat.c (props changed) vendor/gdb/4.18/gdb/pyr-tdep.c (props changed) vendor/gdb/4.18/gdb/pyr-xdep.c (props changed) vendor/gdb/4.18/gdb/remote-adapt.c (props changed) vendor/gdb/4.18/gdb/remote-array.c (props changed) vendor/gdb/4.18/gdb/remote-bug.c (props changed) vendor/gdb/4.18/gdb/remote-d10v.c (props changed) vendor/gdb/4.18/gdb/remote-e7000.c (props changed) vendor/gdb/4.18/gdb/remote-eb.c (props changed) vendor/gdb/4.18/gdb/remote-es.c (props changed) vendor/gdb/4.18/gdb/remote-est.c (props changed) vendor/gdb/4.18/gdb/remote-hms.c (props changed) vendor/gdb/4.18/gdb/remote-mips.c (props changed) vendor/gdb/4.18/gdb/remote-mm.c (props changed) vendor/gdb/4.18/gdb/remote-nindy.c (props changed) vendor/gdb/4.18/gdb/remote-nrom.c (props changed) vendor/gdb/4.18/gdb/remote-os9k.c (props changed) vendor/gdb/4.18/gdb/remote-rdi.c (props changed) vendor/gdb/4.18/gdb/remote-rdp.c (props changed) vendor/gdb/4.18/gdb/remote-sds.c (props changed) vendor/gdb/4.18/gdb/remote-sim.c (props changed) vendor/gdb/4.18/gdb/remote-st.c (props changed) vendor/gdb/4.18/gdb/remote-udi.c (props changed) vendor/gdb/4.18/gdb/remote-utils.c (props changed) vendor/gdb/4.18/gdb/remote-utils.h (props changed) vendor/gdb/4.18/gdb/remote-vx.c (props changed) vendor/gdb/4.18/gdb/remote-vx29k.c (props changed) vendor/gdb/4.18/gdb/remote-vx68.c (props changed) vendor/gdb/4.18/gdb/remote-vx960.c (props changed) vendor/gdb/4.18/gdb/remote-vxmips.c (props changed) vendor/gdb/4.18/gdb/remote-vxsparc.c (props changed) vendor/gdb/4.18/gdb/remote.c (props changed) vendor/gdb/4.18/gdb/reply_mig_hack.awk (props changed) vendor/gdb/4.18/gdb/saber.suppress (props changed) vendor/gdb/4.18/gdb/scm-exp.c (props changed) vendor/gdb/4.18/gdb/scm-lang.c (props changed) vendor/gdb/4.18/gdb/scm-lang.h (props changed) vendor/gdb/4.18/gdb/scm-tags.h (props changed) vendor/gdb/4.18/gdb/scm-valprint.c (props changed) vendor/gdb/4.18/gdb/ser-e7kpc.c (props changed) vendor/gdb/4.18/gdb/ser-go32.c (props changed) vendor/gdb/4.18/gdb/ser-mac.c (props changed) vendor/gdb/4.18/gdb/ser-ocd.c (props changed) vendor/gdb/4.18/gdb/ser-tcp.c (props changed) vendor/gdb/4.18/gdb/ser-unix.c (props changed) vendor/gdb/4.18/gdb/serial.c (props changed) vendor/gdb/4.18/gdb/serial.h (props changed) vendor/gdb/4.18/gdb/signals.h (props changed) vendor/gdb/4.18/gdb/sol-thread.c (props changed) vendor/gdb/4.18/gdb/solib.c (props changed) vendor/gdb/4.18/gdb/solib.h (props changed) vendor/gdb/4.18/gdb/somread.c (props changed) vendor/gdb/4.18/gdb/somsolib.c (props changed) vendor/gdb/4.18/gdb/somsolib.h (props changed) vendor/gdb/4.18/gdb/source.c (props changed) vendor/gdb/4.18/gdb/srec.h (props changed) vendor/gdb/4.18/gdb/stabsread.c (props changed) vendor/gdb/4.18/gdb/stabsread.h (props changed) vendor/gdb/4.18/gdb/stack.c (props changed) vendor/gdb/4.18/gdb/standalone.c (props changed) vendor/gdb/4.18/gdb/stop-gdb.c (props changed) vendor/gdb/4.18/gdb/stuff.c (props changed) vendor/gdb/4.18/gdb/symfile.c (props changed) vendor/gdb/4.18/gdb/symfile.h (props changed) vendor/gdb/4.18/gdb/symm-nat.c (props changed) vendor/gdb/4.18/gdb/symm-tdep.c (props changed) vendor/gdb/4.18/gdb/symmisc.c (props changed) vendor/gdb/4.18/gdb/symtab.c (props changed) vendor/gdb/4.18/gdb/symtab.h (props changed) vendor/gdb/4.18/gdb/target.c (props changed) vendor/gdb/4.18/gdb/target.h (props changed) vendor/gdb/4.18/gdb/terminal.h (props changed) vendor/gdb/4.18/gdb/thread.c (props changed) vendor/gdb/4.18/gdb/top.c (props changed) vendor/gdb/4.18/gdb/top.h (props changed) vendor/gdb/4.18/gdb/tracepoint.c (props changed) vendor/gdb/4.18/gdb/tracepoint.h (props changed) vendor/gdb/4.18/gdb/tui/ChangeLog (props changed) vendor/gdb/4.18/gdb/tui/Makefile (props changed) vendor/gdb/4.18/gdb/tui/Makefile.in (props changed) vendor/gdb/4.18/gdb/tui/tui.c (props changed) vendor/gdb/4.18/gdb/tui/tui.h (props changed) vendor/gdb/4.18/gdb/tui/tuiCommand.c (props changed) vendor/gdb/4.18/gdb/tui/tuiCommand.h (props changed) vendor/gdb/4.18/gdb/tui/tuiData.c (props changed) vendor/gdb/4.18/gdb/tui/tuiData.h (props changed) vendor/gdb/4.18/gdb/tui/tuiDataWin.c (props changed) vendor/gdb/4.18/gdb/tui/tuiDataWin.h (props changed) vendor/gdb/4.18/gdb/tui/tuiDisassem.c (props changed) vendor/gdb/4.18/gdb/tui/tuiDisassem.h (props changed) vendor/gdb/4.18/gdb/tui/tuiGeneralWin.c (props changed) vendor/gdb/4.18/gdb/tui/tuiGeneralWin.h (props changed) vendor/gdb/4.18/gdb/tui/tuiIO.c (props changed) vendor/gdb/4.18/gdb/tui/tuiIO.h (props changed) vendor/gdb/4.18/gdb/tui/tuiLayout.c (props changed) vendor/gdb/4.18/gdb/tui/tuiLayout.h (props changed) vendor/gdb/4.18/gdb/tui/tuiRegs.c (props changed) vendor/gdb/4.18/gdb/tui/tuiRegs.h (props changed) vendor/gdb/4.18/gdb/tui/tuiSource.c (props changed) vendor/gdb/4.18/gdb/tui/tuiSource.h (props changed) vendor/gdb/4.18/gdb/tui/tuiSourceWin.c (props changed) vendor/gdb/4.18/gdb/tui/tuiSourceWin.h (props changed) vendor/gdb/4.18/gdb/tui/tuiStack.c (props changed) vendor/gdb/4.18/gdb/tui/tuiStack.h (props changed) vendor/gdb/4.18/gdb/tui/tuiWin.c (props changed) vendor/gdb/4.18/gdb/tui/tuiWin.h (props changed) vendor/gdb/4.18/gdb/typeprint.c (props changed) vendor/gdb/4.18/gdb/typeprint.h (props changed) vendor/gdb/4.18/gdb/umax-xdep.c (props changed) vendor/gdb/4.18/gdb/utils.c (props changed) vendor/gdb/4.18/gdb/v850-tdep.c (props changed) vendor/gdb/4.18/gdb/valarith.c (props changed) vendor/gdb/4.18/gdb/valops.c (props changed) vendor/gdb/4.18/gdb/valprint.c (props changed) vendor/gdb/4.18/gdb/valprint.h (props changed) vendor/gdb/4.18/gdb/value.h (props changed) vendor/gdb/4.18/gdb/values.c (props changed) vendor/gdb/4.18/gdb/xcoffread.c (props changed) vendor/gdb/4.18/gdb/xcoffsolib.c (props changed) vendor/gdb/4.18/gdb/xcoffsolib.h (props changed) vendor/gdb/4.18/gdb/xmodem.c (props changed) vendor/gdb/4.18/gdb/xmodem.h (props changed) vendor/gdb/5.2.1/gdb/CONTRIBUTE (props changed) vendor/gdb/5.2.1/gdb/COPYING (props changed) vendor/gdb/5.2.1/gdb/ChangeLog (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1990 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1991 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1992 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1993 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1994 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1995 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1996 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1997 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1998 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-1999 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-2000 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-2001 (props changed) vendor/gdb/5.2.1/gdb/ChangeLog-3.x (props changed) vendor/gdb/5.2.1/gdb/MAINTAINERS (props changed) vendor/gdb/5.2.1/gdb/Makefile.in (props changed) vendor/gdb/5.2.1/gdb/NEWS (props changed) vendor/gdb/5.2.1/gdb/PROBLEMS (props changed) vendor/gdb/5.2.1/gdb/README (props changed) vendor/gdb/5.2.1/gdb/TODO (props changed) vendor/gdb/5.2.1/gdb/abug-rom.c (props changed) vendor/gdb/5.2.1/gdb/acconfig.h (props changed) vendor/gdb/5.2.1/gdb/acinclude.m4 (props changed) vendor/gdb/5.2.1/gdb/aclocal.m4 (props changed) vendor/gdb/5.2.1/gdb/alpha-nat.c (props changed) vendor/gdb/5.2.1/gdb/alpha-tdep.c (props changed) vendor/gdb/5.2.1/gdb/alphabsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/alphafbsd-tdep.c (props changed) vendor/gdb/5.2.1/gdb/annotate.c (props changed) vendor/gdb/5.2.1/gdb/annotate.h (props changed) vendor/gdb/5.2.1/gdb/arc-tdep.c (props changed) vendor/gdb/5.2.1/gdb/arch-utils.c (props changed) vendor/gdb/5.2.1/gdb/arch-utils.h (props changed) vendor/gdb/5.2.1/gdb/arm-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/arm-linux-tdep.c (props changed) vendor/gdb/5.2.1/gdb/arm-tdep.c (props changed) vendor/gdb/5.2.1/gdb/arm-tdep.h (props changed) vendor/gdb/5.2.1/gdb/armnbsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/armnbsd-tdep.c (props changed) vendor/gdb/5.2.1/gdb/ax-gdb.c (props changed) vendor/gdb/5.2.1/gdb/ax-gdb.h (props changed) vendor/gdb/5.2.1/gdb/ax-general.c (props changed) vendor/gdb/5.2.1/gdb/ax.h (props changed) vendor/gdb/5.2.1/gdb/bcache.c (props changed) vendor/gdb/5.2.1/gdb/bcache.h (props changed) vendor/gdb/5.2.1/gdb/blockframe.c (props changed) vendor/gdb/5.2.1/gdb/breakpoint.c (props changed) vendor/gdb/5.2.1/gdb/breakpoint.h (props changed) vendor/gdb/5.2.1/gdb/buildsym.c (props changed) vendor/gdb/5.2.1/gdb/buildsym.h (props changed) vendor/gdb/5.2.1/gdb/c-exp.y (props changed) vendor/gdb/5.2.1/gdb/c-lang.c (props changed) vendor/gdb/5.2.1/gdb/c-lang.h (props changed) vendor/gdb/5.2.1/gdb/c-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/c-valprint.c (props changed) vendor/gdb/5.2.1/gdb/call-cmds.h (props changed) vendor/gdb/5.2.1/gdb/ch-exp.c (props changed) vendor/gdb/5.2.1/gdb/ch-lang.c (props changed) vendor/gdb/5.2.1/gdb/ch-lang.h (props changed) vendor/gdb/5.2.1/gdb/ch-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/ch-valprint.c (props changed) vendor/gdb/5.2.1/gdb/cli-out.c (props changed) vendor/gdb/5.2.1/gdb/cli-out.h (props changed) vendor/gdb/5.2.1/gdb/cli/cli-cmds.c (props changed) vendor/gdb/5.2.1/gdb/cli/cli-cmds.h (props changed) vendor/gdb/5.2.1/gdb/cli/cli-decode.c (props changed) vendor/gdb/5.2.1/gdb/cli/cli-decode.h (props changed) vendor/gdb/5.2.1/gdb/cli/cli-script.c (props changed) vendor/gdb/5.2.1/gdb/cli/cli-script.h (props changed) vendor/gdb/5.2.1/gdb/cli/cli-setshow.c (props changed) vendor/gdb/5.2.1/gdb/cli/cli-setshow.h (props changed) vendor/gdb/5.2.1/gdb/cli/cli-utils.c (props changed) vendor/gdb/5.2.1/gdb/cli/cli-utils.h (props changed) vendor/gdb/5.2.1/gdb/coff-solib.c (props changed) vendor/gdb/5.2.1/gdb/coff-solib.h (props changed) vendor/gdb/5.2.1/gdb/coffread.c (props changed) vendor/gdb/5.2.1/gdb/command.h (props changed) vendor/gdb/5.2.1/gdb/complaints.c (props changed) vendor/gdb/5.2.1/gdb/complaints.h (props changed) vendor/gdb/5.2.1/gdb/completer.c (props changed) vendor/gdb/5.2.1/gdb/completer.h (props changed) vendor/gdb/5.2.1/gdb/config.in (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-osf1.mh (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-osf1.mt (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-osf2.mh (props changed) vendor/gdb/5.2.1/gdb/config/alpha/alpha-osf3.mh (props changed) vendor/gdb/5.2.1/gdb/config/alpha/fbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/alpha/fbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/alpha/nm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/nm-osf.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/nm-osf2.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/nm-osf3.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/tm-alpha.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/tm-alphalinux.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/tm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/xm-alphalinux.h (props changed) vendor/gdb/5.2.1/gdb/config/alpha/xm-alphaosf.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/embed.mt (props changed) vendor/gdb/5.2.1/gdb/config/arm/linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/arm/linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/arm/nbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/arm/nbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/arm/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/nm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/tm-arm.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/tm-embed.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/tm-wince.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/wince.mt (props changed) vendor/gdb/5.2.1/gdb/config/arm/xm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/arm/xm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/cygwin.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/cygwin.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/embed.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/fbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/fbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/gdbserve.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/go32.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/go32.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386aix.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386aix.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386aout.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386bsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386bsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386dgux.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386gnu.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386gnu.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386lynx.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386lynx.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386m3.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386m3.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386mach.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386mk.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386mk.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386nw.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386os9k.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sco.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sco4.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sco5.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sco5.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sol2.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386sol2.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v32.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v4.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v4.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v42mp.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/i386v42mp.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/nbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/nbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/nbsdelf.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/nbsdelf.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/ncr3000.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/ncr3000.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-cygwin.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-gnu.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-go32.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386aix.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386bsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386lynx.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386mach.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386sco.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386sco4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386sco5.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386sol2.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386v.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386v4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-i386v42mp.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-m3.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-nbsdelf.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-obsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-ptx4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-symmetry.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/nm-x86-64.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/obsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/obsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/ptx.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/ptx.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/ptx4.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/ptx4.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/symmetry.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/symmetry.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-cygwin.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-go32.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386aix.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386bsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386gnu.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386lynx.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386m3.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386mk.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386nw.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386os9k.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386sco5.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386sol2.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386v.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386v4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-i386v42mp.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-nbsdelf.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-obsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-ptx.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-ptx4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-symmetry.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/tm-vxworks.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/vxworks.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/x86-64linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/i386/x86-64linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-cygwin.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-go32.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386aix.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386bsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386gnu.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386m3.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386mach.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386mk.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386sco.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386v.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386v32.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-i386v4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-ptx.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-ptx4.h (props changed) vendor/gdb/5.2.1/gdb/config/i386/xm-symmetry.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/aix.mh (props changed) vendor/gdb/5.2.1/gdb/config/ia64/aix.mt (props changed) vendor/gdb/5.2.1/gdb/config/ia64/linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/ia64/linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/ia64/nm-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/tm-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/tm-ia64.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/xm-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/ia64/xm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/none/nm-none.h (props changed) vendor/gdb/5.2.1/gdb/config/none/none.mh (props changed) vendor/gdb/5.2.1/gdb/config/none/none.mt (props changed) vendor/gdb/5.2.1/gdb/config/none/tm-none.h (props changed) vendor/gdb/5.2.1/gdb/config/none/xm-none.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/aix.mh (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/aix.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/gdbserve.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/nbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/nbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/nm-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/nm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/ppc-eabi.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/ppc-sim.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/ppcle-eabi.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/ppcle-sim.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-ppc-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-ppc-eabi.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-ppc-sim.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-ppcle-eabi.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-ppcle-sim.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/tm-vxworks.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/vxworks.mt (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/xm-aix.h (props changed) vendor/gdb/5.2.1/gdb/config/powerpc/xm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/fbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/fbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/linux.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nbsd.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nbsd.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nbsdelf.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-nbsdelf.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-sparclynx.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-sun4os4.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/nm-sun4sol2.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sp64.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sp64linux.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sp64sim.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sp64sol2.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sparc-em.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sparclet.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sparclite.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sparclynx.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sparclynx.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sun4os4.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sun4os4.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sun4sol2.mh (props changed) vendor/gdb/5.2.1/gdb/config/sparc/sun4sol2.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-fbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sp64.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sp64linux.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sp64sim.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sparc.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sparclet.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sparclite.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sparclynx.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-spc-em.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sun4os4.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-sun4sol2.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/tm-vxsparc.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/vxsparc.mt (props changed) vendor/gdb/5.2.1/gdb/config/sparc/xm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/xm-nbsd.h (props changed) vendor/gdb/5.2.1/gdb/config/sparc/xm-sun4sol2.h (props changed) vendor/gdb/5.2.1/gdb/config/tm-linux.h (props changed) vendor/gdb/5.2.1/gdb/config/tm-vxworks.h (props changed) vendor/gdb/5.2.1/gdb/configure (props changed) vendor/gdb/5.2.1/gdb/configure.host (props changed) vendor/gdb/5.2.1/gdb/configure.in (props changed) vendor/gdb/5.2.1/gdb/configure.tgt (props changed) vendor/gdb/5.2.1/gdb/copying.awk (props changed) vendor/gdb/5.2.1/gdb/copying.c (props changed) vendor/gdb/5.2.1/gdb/core-aout.c (props changed) vendor/gdb/5.2.1/gdb/core-regset.c (props changed) vendor/gdb/5.2.1/gdb/core-sol2.c (props changed) vendor/gdb/5.2.1/gdb/corefile.c (props changed) vendor/gdb/5.2.1/gdb/corelow.c (props changed) vendor/gdb/5.2.1/gdb/cp-abi.c (props changed) vendor/gdb/5.2.1/gdb/cp-abi.h (props changed) vendor/gdb/5.2.1/gdb/cp-valprint.c (props changed) vendor/gdb/5.2.1/gdb/dbug-rom.c (props changed) vendor/gdb/5.2.1/gdb/dbxread.c (props changed) vendor/gdb/5.2.1/gdb/dcache.c (props changed) vendor/gdb/5.2.1/gdb/dcache.h (props changed) vendor/gdb/5.2.1/gdb/defs.h (props changed) vendor/gdb/5.2.1/gdb/demangle.c (props changed) vendor/gdb/5.2.1/gdb/dink32-rom.c (props changed) vendor/gdb/5.2.1/gdb/doc/ChangeLog (props changed) vendor/gdb/5.2.1/gdb/doc/GDBvn.texi (props changed) vendor/gdb/5.2.1/gdb/doc/LRS (props changed) vendor/gdb/5.2.1/gdb/doc/Makefile.in (props changed) vendor/gdb/5.2.1/gdb/doc/a4rc.sed (props changed) vendor/gdb/5.2.1/gdb/doc/agentexpr.texi (props changed) vendor/gdb/5.2.1/gdb/doc/all-cfg.texi (props changed) vendor/gdb/5.2.1/gdb/doc/annotate.texi (props changed) vendor/gdb/5.2.1/gdb/doc/configure (props changed) vendor/gdb/5.2.1/gdb/doc/configure.in (props changed) vendor/gdb/5.2.1/gdb/doc/fdl.texi (props changed) vendor/gdb/5.2.1/gdb/doc/gdb.texinfo (props changed) vendor/gdb/5.2.1/gdb/doc/gdbint.texinfo (props changed) vendor/gdb/5.2.1/gdb/doc/gpl.texi (props changed) vendor/gdb/5.2.1/gdb/doc/lpsrc.sed (props changed) vendor/gdb/5.2.1/gdb/doc/psrc.sed (props changed) vendor/gdb/5.2.1/gdb/doc/refcard.tex (props changed) vendor/gdb/5.2.1/gdb/doc/stabs.texinfo (props changed) vendor/gdb/5.2.1/gdb/doublest.c (props changed) vendor/gdb/5.2.1/gdb/doublest.h (props changed) vendor/gdb/5.2.1/gdb/dsrec.c (props changed) vendor/gdb/5.2.1/gdb/dst.h (props changed) vendor/gdb/5.2.1/gdb/dstread.c (props changed) vendor/gdb/5.2.1/gdb/dwarf2cfi.c (props changed) vendor/gdb/5.2.1/gdb/dwarf2cfi.h (props changed) vendor/gdb/5.2.1/gdb/dwarf2read.c (props changed) vendor/gdb/5.2.1/gdb/dwarfread.c (props changed) vendor/gdb/5.2.1/gdb/elfread.c (props changed) vendor/gdb/5.2.1/gdb/environ.c (props changed) vendor/gdb/5.2.1/gdb/environ.h (props changed) vendor/gdb/5.2.1/gdb/eval.c (props changed) vendor/gdb/5.2.1/gdb/event-loop.c (props changed) vendor/gdb/5.2.1/gdb/event-loop.h (props changed) vendor/gdb/5.2.1/gdb/event-top.c (props changed) vendor/gdb/5.2.1/gdb/event-top.h (props changed) vendor/gdb/5.2.1/gdb/exc_request.defs (props changed) vendor/gdb/5.2.1/gdb/exec.c (props changed) vendor/gdb/5.2.1/gdb/expprint.c (props changed) vendor/gdb/5.2.1/gdb/expression.h (props changed) vendor/gdb/5.2.1/gdb/f-exp.y (props changed) vendor/gdb/5.2.1/gdb/f-lang.c (props changed) vendor/gdb/5.2.1/gdb/f-lang.h (props changed) vendor/gdb/5.2.1/gdb/f-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/f-valprint.c (props changed) vendor/gdb/5.2.1/gdb/findvar.c (props changed) vendor/gdb/5.2.1/gdb/fork-child.c (props changed) vendor/gdb/5.2.1/gdb/fr30-tdep.c (props changed) vendor/gdb/5.2.1/gdb/frame.c (props changed) vendor/gdb/5.2.1/gdb/frame.h (props changed) vendor/gdb/5.2.1/gdb/gcore.c (props changed) vendor/gdb/5.2.1/gdb/gdb-events.c (props changed) vendor/gdb/5.2.1/gdb/gdb-events.h (props changed) vendor/gdb/5.2.1/gdb/gdb-events.sh (props changed) vendor/gdb/5.2.1/gdb/gdb-stabs.h (props changed) vendor/gdb/5.2.1/gdb/gdb.1 (props changed) vendor/gdb/5.2.1/gdb/gdb.gdb (props changed) vendor/gdb/5.2.1/gdb/gdb.h (props changed) vendor/gdb/5.2.1/gdb/gdb_assert.h (props changed) vendor/gdb/5.2.1/gdb/gdb_dirent.h (props changed) vendor/gdb/5.2.1/gdb/gdb_indent.sh (props changed) vendor/gdb/5.2.1/gdb/gdb_proc_service.h (props changed) vendor/gdb/5.2.1/gdb/gdb_regex.h (props changed) vendor/gdb/5.2.1/gdb/gdb_stat.h (props changed) vendor/gdb/5.2.1/gdb/gdb_string.h (props changed) vendor/gdb/5.2.1/gdb/gdb_thread_db.h (props changed) vendor/gdb/5.2.1/gdb/gdb_vfork.h (props changed) vendor/gdb/5.2.1/gdb/gdb_wait.h (props changed) vendor/gdb/5.2.1/gdb/gdbarch.c (props changed) vendor/gdb/5.2.1/gdb/gdbarch.h (props changed) vendor/gdb/5.2.1/gdb/gdbarch.sh (props changed) vendor/gdb/5.2.1/gdb/gdbcmd.h (props changed) vendor/gdb/5.2.1/gdb/gdbcore.h (props changed) vendor/gdb/5.2.1/gdb/gdbinit.in (props changed) vendor/gdb/5.2.1/gdb/gdbserver/Makefile.in (props changed) vendor/gdb/5.2.1/gdb/gdbserver/README (props changed) vendor/gdb/5.2.1/gdb/gdbserver/acconfig.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/aclocal.m4 (props changed) vendor/gdb/5.2.1/gdb/gdbserver/config.in (props changed) vendor/gdb/5.2.1/gdb/gdbserver/configure (props changed) vendor/gdb/5.2.1/gdb/gdbserver/configure.in (props changed) vendor/gdb/5.2.1/gdb/gdbserver/configure.srv (props changed) vendor/gdb/5.2.1/gdb/gdbserver/gdbreplay.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/gdbserver.1 (props changed) vendor/gdb/5.2.1/gdb/gdbserver/i387-fp.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/i387-fp.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-arm-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-i386-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-ia64-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-low.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-mips-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-ppc-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/linux-x86-64-low.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-hppabsd.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-lynx.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-nbsd.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-sim.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-sparc.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/low-sun3.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/regcache.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/regcache.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/remote-utils.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/server.c (props changed) vendor/gdb/5.2.1/gdb/gdbserver/server.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/terminal.h (props changed) vendor/gdb/5.2.1/gdb/gdbserver/utils.c (props changed) vendor/gdb/5.2.1/gdb/gdbthread.h (props changed) vendor/gdb/5.2.1/gdb/gdbtypes.c (props changed) vendor/gdb/5.2.1/gdb/gdbtypes.h (props changed) vendor/gdb/5.2.1/gdb/gnu-v2-abi.c (props changed) vendor/gdb/5.2.1/gdb/gnu-v3-abi.c (props changed) vendor/gdb/5.2.1/gdb/gregset.h (props changed) vendor/gdb/5.2.1/gdb/hpacc-abi.c (props changed) vendor/gdb/5.2.1/gdb/hpux-thread.c (props changed) vendor/gdb/5.2.1/gdb/i386-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386-linux-tdep.c (props changed) vendor/gdb/5.2.1/gdb/i386-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386-stub.c (props changed) vendor/gdb/5.2.1/gdb/i386-tdep.c (props changed) vendor/gdb/5.2.1/gdb/i386-tdep.h (props changed) vendor/gdb/5.2.1/gdb/i386aix-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386b-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386bsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386bsd-tdep.c (props changed) vendor/gdb/5.2.1/gdb/i386fbsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386ly-tdep.c (props changed) vendor/gdb/5.2.1/gdb/i386m3-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386mach-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386nbsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386nbsd-tdep.c (props changed) vendor/gdb/5.2.1/gdb/i386v-nat.c (props changed) vendor/gdb/5.2.1/gdb/i386v4-nat.c (props changed) vendor/gdb/5.2.1/gdb/i387-nat.c (props changed) vendor/gdb/5.2.1/gdb/i387-nat.h (props changed) vendor/gdb/5.2.1/gdb/i387-tdep.c (props changed) vendor/gdb/5.2.1/gdb/ia64-aix-nat.c (props changed) vendor/gdb/5.2.1/gdb/ia64-aix-tdep.c (props changed) vendor/gdb/5.2.1/gdb/ia64-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/ia64-linux-tdep.c (props changed) vendor/gdb/5.2.1/gdb/ia64-tdep.c (props changed) vendor/gdb/5.2.1/gdb/inf-loop.c (props changed) vendor/gdb/5.2.1/gdb/inf-loop.h (props changed) vendor/gdb/5.2.1/gdb/infcmd.c (props changed) vendor/gdb/5.2.1/gdb/inferior.h (props changed) vendor/gdb/5.2.1/gdb/inflow.c (props changed) vendor/gdb/5.2.1/gdb/infptrace.c (props changed) vendor/gdb/5.2.1/gdb/infrun.c (props changed) vendor/gdb/5.2.1/gdb/inftarg.c (props changed) vendor/gdb/5.2.1/gdb/infttrace.c (props changed) vendor/gdb/5.2.1/gdb/jv-exp.y (props changed) vendor/gdb/5.2.1/gdb/jv-lang.c (props changed) vendor/gdb/5.2.1/gdb/jv-lang.h (props changed) vendor/gdb/5.2.1/gdb/jv-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/jv-valprint.c (props changed) vendor/gdb/5.2.1/gdb/kod-cisco.c (props changed) vendor/gdb/5.2.1/gdb/kod.c (props changed) vendor/gdb/5.2.1/gdb/kod.h (props changed) vendor/gdb/5.2.1/gdb/language.c (props changed) vendor/gdb/5.2.1/gdb/language.h (props changed) vendor/gdb/5.2.1/gdb/lin-lwp.c (props changed) vendor/gdb/5.2.1/gdb/linespec.c (props changed) vendor/gdb/5.2.1/gdb/linespec.h (props changed) vendor/gdb/5.2.1/gdb/linux-proc.c (props changed) vendor/gdb/5.2.1/gdb/m2-exp.y (props changed) vendor/gdb/5.2.1/gdb/m2-lang.c (props changed) vendor/gdb/5.2.1/gdb/m2-lang.h (props changed) vendor/gdb/5.2.1/gdb/m2-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/m2-valprint.c (props changed) vendor/gdb/5.2.1/gdb/m3-nat.c (props changed) vendor/gdb/5.2.1/gdb/main.c (props changed) vendor/gdb/5.2.1/gdb/maint.c (props changed) vendor/gdb/5.2.1/gdb/mdebugread.c (props changed) vendor/gdb/5.2.1/gdb/mem-break.c (props changed) vendor/gdb/5.2.1/gdb/memattr.c (props changed) vendor/gdb/5.2.1/gdb/memattr.h (props changed) vendor/gdb/5.2.1/gdb/mi/ChangeLog (props changed) vendor/gdb/5.2.1/gdb/mi/gdbmi.texinfo (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmd-break.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmd-disas.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmd-stack.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmd-var.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmds.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-cmds.h (props changed) vendor/gdb/5.2.1/gdb/mi/mi-console.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-console.h (props changed) vendor/gdb/5.2.1/gdb/mi/mi-getopt.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-getopt.h (props changed) vendor/gdb/5.2.1/gdb/mi/mi-main.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-out.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-out.h (props changed) vendor/gdb/5.2.1/gdb/mi/mi-parse.c (props changed) vendor/gdb/5.2.1/gdb/mi/mi-parse.h (props changed) vendor/gdb/5.2.1/gdb/minimon.h (props changed) vendor/gdb/5.2.1/gdb/minsyms.c (props changed) vendor/gdb/5.2.1/gdb/mipsread.c (props changed) vendor/gdb/5.2.1/gdb/monitor.c (props changed) vendor/gdb/5.2.1/gdb/monitor.h (props changed) vendor/gdb/5.2.1/gdb/msg.defs (props changed) vendor/gdb/5.2.1/gdb/msg_reply.defs (props changed) vendor/gdb/5.2.1/gdb/nlm/Makefile.in (props changed) vendor/gdb/5.2.1/gdb/nlm/configure (props changed) vendor/gdb/5.2.1/gdb/nlm/configure.in (props changed) vendor/gdb/5.2.1/gdb/nlm/gdbserve.c (props changed) vendor/gdb/5.2.1/gdb/nlm/gdbserve.def (props changed) vendor/gdb/5.2.1/gdb/nlm/i386.c (props changed) vendor/gdb/5.2.1/gdb/nlm/i386.h (props changed) vendor/gdb/5.2.1/gdb/nlm/ppc.c (props changed) vendor/gdb/5.2.1/gdb/nlm/ppc.h (props changed) vendor/gdb/5.2.1/gdb/nlm/prelude.c (props changed) vendor/gdb/5.2.1/gdb/nlmread.c (props changed) vendor/gdb/5.2.1/gdb/notify.defs (props changed) vendor/gdb/5.2.1/gdb/objfiles.c (props changed) vendor/gdb/5.2.1/gdb/objfiles.h (props changed) vendor/gdb/5.2.1/gdb/ocd.c (props changed) vendor/gdb/5.2.1/gdb/ocd.h (props changed) vendor/gdb/5.2.1/gdb/osfsolib.c (props changed) vendor/gdb/5.2.1/gdb/p-exp.y (props changed) vendor/gdb/5.2.1/gdb/p-lang.c (props changed) vendor/gdb/5.2.1/gdb/p-lang.h (props changed) vendor/gdb/5.2.1/gdb/p-typeprint.c (props changed) vendor/gdb/5.2.1/gdb/p-valprint.c (props changed) vendor/gdb/5.2.1/gdb/parse.c (props changed) vendor/gdb/5.2.1/gdb/parser-defs.h (props changed) vendor/gdb/5.2.1/gdb/ppc-bdm.c (props changed) vendor/gdb/5.2.1/gdb/ppc-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/ppc-linux-tdep.c (props changed) vendor/gdb/5.2.1/gdb/ppc-tdep.h (props changed) vendor/gdb/5.2.1/gdb/ppcbug-rom.c (props changed) vendor/gdb/5.2.1/gdb/ppcnbsd-nat.c (props changed) vendor/gdb/5.2.1/gdb/printcmd.c (props changed) vendor/gdb/5.2.1/gdb/proc-api.c (props changed) vendor/gdb/5.2.1/gdb/proc-events.c (props changed) vendor/gdb/5.2.1/gdb/proc-flags.c (props changed) vendor/gdb/5.2.1/gdb/proc-service.c (props changed) vendor/gdb/5.2.1/gdb/proc-utils.h (props changed) vendor/gdb/5.2.1/gdb/proc-why.c (props changed) vendor/gdb/5.2.1/gdb/process_reply.defs (props changed) vendor/gdb/5.2.1/gdb/procfs.c (props changed) vendor/gdb/5.2.1/gdb/regcache.c (props changed) vendor/gdb/5.2.1/gdb/regcache.h (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-arm.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-i386-linux.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-i386.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-ia64.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-mips.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-ppc.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-sh.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/reg-x86-64.dat (props changed) vendor/gdb/5.2.1/gdb/regformats/regdat.sh (props changed) vendor/gdb/5.2.1/gdb/regformats/regdef.h (props changed) vendor/gdb/5.2.1/gdb/remote-mips.c (props changed) vendor/gdb/5.2.1/gdb/remote-rdi.c (props changed) vendor/gdb/5.2.1/gdb/remote-rdp.c (props changed) vendor/gdb/5.2.1/gdb/remote-sim.c (props changed) vendor/gdb/5.2.1/gdb/remote-st.c (props changed) vendor/gdb/5.2.1/gdb/remote-utils.c (props changed) vendor/gdb/5.2.1/gdb/remote-utils.h (props changed) vendor/gdb/5.2.1/gdb/remote.c (props changed) vendor/gdb/5.2.1/gdb/remote.h (props changed) vendor/gdb/5.2.1/gdb/reply_mig_hack.awk (props changed) vendor/gdb/5.2.1/gdb/saber.suppress (props changed) vendor/gdb/5.2.1/gdb/scm-exp.c (props changed) vendor/gdb/5.2.1/gdb/scm-lang.c (props changed) vendor/gdb/5.2.1/gdb/scm-lang.h (props changed) vendor/gdb/5.2.1/gdb/scm-tags.h (props changed) vendor/gdb/5.2.1/gdb/scm-valprint.c (props changed) vendor/gdb/5.2.1/gdb/ser-pipe.c (props changed) vendor/gdb/5.2.1/gdb/ser-tcp.c (props changed) vendor/gdb/5.2.1/gdb/ser-unix.c (props changed) vendor/gdb/5.2.1/gdb/ser-unix.h (props changed) vendor/gdb/5.2.1/gdb/serial.c (props changed) vendor/gdb/5.2.1/gdb/serial.h (props changed) vendor/gdb/5.2.1/gdb/signals.c (props changed) vendor/gdb/5.2.1/gdb/signals/signals.c (props changed) vendor/gdb/5.2.1/gdb/sol-thread.c (props changed) vendor/gdb/5.2.1/gdb/solib-legacy.c (props changed) vendor/gdb/5.2.1/gdb/solib-osf.c (props changed) vendor/gdb/5.2.1/gdb/solib-sunos.c (props changed) vendor/gdb/5.2.1/gdb/solib-svr4.c (props changed) vendor/gdb/5.2.1/gdb/solib-svr4.h (props changed) vendor/gdb/5.2.1/gdb/solib.c (props changed) vendor/gdb/5.2.1/gdb/solib.h (props changed) vendor/gdb/5.2.1/gdb/solist.h (props changed) vendor/gdb/5.2.1/gdb/source.c (props changed) vendor/gdb/5.2.1/gdb/source.h (props changed) vendor/gdb/5.2.1/gdb/sparc-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/sparc-nat.c (props changed) vendor/gdb/5.2.1/gdb/sparc-stub.c (props changed) vendor/gdb/5.2.1/gdb/sparc-tdep.c (props changed) vendor/gdb/5.2.1/gdb/sparcl-stub.c (props changed) vendor/gdb/5.2.1/gdb/sparcl-tdep.c (props changed) vendor/gdb/5.2.1/gdb/sparclet-rom.c (props changed) vendor/gdb/5.2.1/gdb/sparclet-stub.c (props changed) vendor/gdb/5.2.1/gdb/srec.h (props changed) vendor/gdb/5.2.1/gdb/stabsread.c (props changed) vendor/gdb/5.2.1/gdb/stabsread.h (props changed) vendor/gdb/5.2.1/gdb/stack.c (props changed) vendor/gdb/5.2.1/gdb/standalone.c (props changed) vendor/gdb/5.2.1/gdb/symfile.c (props changed) vendor/gdb/5.2.1/gdb/symfile.h (props changed) vendor/gdb/5.2.1/gdb/symmisc.c (props changed) vendor/gdb/5.2.1/gdb/symtab.c (props changed) vendor/gdb/5.2.1/gdb/symtab.h (props changed) vendor/gdb/5.2.1/gdb/target.c (props changed) vendor/gdb/5.2.1/gdb/target.h (props changed) vendor/gdb/5.2.1/gdb/terminal.h (props changed) vendor/gdb/5.2.1/gdb/thread-db.c (props changed) vendor/gdb/5.2.1/gdb/thread.c (props changed) vendor/gdb/5.2.1/gdb/top.c (props changed) vendor/gdb/5.2.1/gdb/top.h (props changed) vendor/gdb/5.2.1/gdb/tracepoint.c (props changed) vendor/gdb/5.2.1/gdb/tracepoint.h (props changed) vendor/gdb/5.2.1/gdb/typeprint.c (props changed) vendor/gdb/5.2.1/gdb/typeprint.h (props changed) vendor/gdb/5.2.1/gdb/ui-file.c (props changed) vendor/gdb/5.2.1/gdb/ui-file.h (props changed) vendor/gdb/5.2.1/gdb/ui-out.c (props changed) vendor/gdb/5.2.1/gdb/ui-out.h (props changed) vendor/gdb/5.2.1/gdb/utils.c (props changed) vendor/gdb/5.2.1/gdb/uw-thread.c (props changed) vendor/gdb/5.2.1/gdb/valarith.c (props changed) vendor/gdb/5.2.1/gdb/valops.c (props changed) vendor/gdb/5.2.1/gdb/valprint.c (props changed) vendor/gdb/5.2.1/gdb/valprint.h (props changed) vendor/gdb/5.2.1/gdb/value.h (props changed) vendor/gdb/5.2.1/gdb/values.c (props changed) vendor/gdb/5.2.1/gdb/varobj.c (props changed) vendor/gdb/5.2.1/gdb/varobj.h (props changed) vendor/gdb/5.2.1/gdb/version.h (props changed) vendor/gdb/5.2.1/gdb/version.in (props changed) vendor/gdb/5.2.1/gdb/wrapper.c (props changed) vendor/gdb/5.2.1/gdb/wrapper.h (props changed) vendor/gdb/5.2.1/gdb/x86-64-linux-nat.c (props changed) vendor/gdb/5.2.1/gdb/x86-64-linux-tdep.c (props changed) vendor/gdb/5.2.1/gdb/x86-64-tdep.c (props changed) vendor/gdb/5.2.1/gdb/x86-64-tdep.h (props changed) vendor/gdb/5.2.1/gdb/xcoffread.c (props changed) vendor/gdb/5.2.1/gdb/xcoffsolib.c (props changed) vendor/gdb/5.2.1/gdb/xcoffsolib.h (props changed) vendor/gdb/5.2.1/include/gdb/ChangeLog (props changed) vendor/gdb/5.2.1/include/gdb/signals.h (props changed) vendor/gdb/6.1.1/gdb/CONTRIBUTE (props changed) vendor/gdb/6.1.1/gdb/COPYING (props changed) vendor/gdb/6.1.1/gdb/MAINTAINERS (props changed) vendor/gdb/6.1.1/gdb/NEWS (props changed) vendor/gdb/6.1.1/gdb/PROBLEMS (props changed) vendor/gdb/6.1.1/gdb/README (props changed) vendor/gdb/6.1.1/gdb/TODO (props changed) vendor/gdb/6.1.1/gdb/abug-rom.c (props changed) vendor/gdb/6.1.1/gdb/acinclude.m4 (props changed) vendor/gdb/6.1.1/gdb/aclocal.m4 (props changed) vendor/gdb/6.1.1/gdb/ada-exp.c (props changed) vendor/gdb/6.1.1/gdb/ada-exp.y (props changed) vendor/gdb/6.1.1/gdb/ada-lang.c (props changed) vendor/gdb/6.1.1/gdb/ada-lang.h (props changed) vendor/gdb/6.1.1/gdb/ada-lex.l (props changed) vendor/gdb/6.1.1/gdb/ada-tasks.c (props changed) vendor/gdb/6.1.1/gdb/ada-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/ada-valprint.c (props changed) vendor/gdb/6.1.1/gdb/alpha-mdebug-tdep.c (props changed) vendor/gdb/6.1.1/gdb/alpha-nat.c (props changed) vendor/gdb/6.1.1/gdb/alpha-tdep.c (props changed) vendor/gdb/6.1.1/gdb/alpha-tdep.h (props changed) vendor/gdb/6.1.1/gdb/alphabsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/alphabsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/alphabsd-tdep.h (props changed) vendor/gdb/6.1.1/gdb/alphafbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/alphanbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/amd64-nat.c (props changed) vendor/gdb/6.1.1/gdb/amd64-nat.h (props changed) vendor/gdb/6.1.1/gdb/amd64-tdep.c (props changed) vendor/gdb/6.1.1/gdb/amd64-tdep.h (props changed) vendor/gdb/6.1.1/gdb/amd64bsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/amd64fbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/amd64fbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/amd64nbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/amd64nbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/amd64obsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/amd64obsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/annotate.c (props changed) vendor/gdb/6.1.1/gdb/annotate.h (props changed) vendor/gdb/6.1.1/gdb/arch-utils.c (props changed) vendor/gdb/6.1.1/gdb/arch-utils.h (props changed) vendor/gdb/6.1.1/gdb/arm-tdep.c (props changed) vendor/gdb/6.1.1/gdb/arm-tdep.h (props changed) vendor/gdb/6.1.1/gdb/armnbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/armnbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/auxv.c (props changed) vendor/gdb/6.1.1/gdb/auxv.h (props changed) vendor/gdb/6.1.1/gdb/ax-gdb.c (props changed) vendor/gdb/6.1.1/gdb/ax-gdb.h (props changed) vendor/gdb/6.1.1/gdb/ax-general.c (props changed) vendor/gdb/6.1.1/gdb/ax.h (props changed) vendor/gdb/6.1.1/gdb/bcache.c (props changed) vendor/gdb/6.1.1/gdb/bcache.h (props changed) vendor/gdb/6.1.1/gdb/bfd-target.c (props changed) vendor/gdb/6.1.1/gdb/bfd-target.h (props changed) vendor/gdb/6.1.1/gdb/block.c (props changed) vendor/gdb/6.1.1/gdb/block.h (props changed) vendor/gdb/6.1.1/gdb/blockframe.c (props changed) vendor/gdb/6.1.1/gdb/breakpoint.c (props changed) vendor/gdb/6.1.1/gdb/breakpoint.h (props changed) vendor/gdb/6.1.1/gdb/buildsym.c (props changed) vendor/gdb/6.1.1/gdb/buildsym.h (props changed) vendor/gdb/6.1.1/gdb/c-exp.c (props changed) vendor/gdb/6.1.1/gdb/c-exp.y (props changed) vendor/gdb/6.1.1/gdb/c-lang.c (props changed) vendor/gdb/6.1.1/gdb/c-lang.h (props changed) vendor/gdb/6.1.1/gdb/c-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/c-valprint.c (props changed) vendor/gdb/6.1.1/gdb/call-cmds.h (props changed) vendor/gdb/6.1.1/gdb/charset.c (props changed) vendor/gdb/6.1.1/gdb/charset.h (props changed) vendor/gdb/6.1.1/gdb/cli-out.c (props changed) vendor/gdb/6.1.1/gdb/cli-out.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-cmds.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-cmds.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-decode.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-decode.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-dump.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-dump.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-interp.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-logging.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-script.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-script.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-setshow.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-setshow.h (props changed) vendor/gdb/6.1.1/gdb/cli/cli-utils.c (props changed) vendor/gdb/6.1.1/gdb/cli/cli-utils.h (props changed) vendor/gdb/6.1.1/gdb/coff-pe-read.c (props changed) vendor/gdb/6.1.1/gdb/coff-pe-read.h (props changed) vendor/gdb/6.1.1/gdb/coff-solib.c (props changed) vendor/gdb/6.1.1/gdb/coff-solib.h (props changed) vendor/gdb/6.1.1/gdb/coffread.c (props changed) vendor/gdb/6.1.1/gdb/command.h (props changed) vendor/gdb/6.1.1/gdb/complaints.c (props changed) vendor/gdb/6.1.1/gdb/complaints.h (props changed) vendor/gdb/6.1.1/gdb/completer.c (props changed) vendor/gdb/6.1.1/gdb/completer.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/alpha-osf2.mh (props changed) vendor/gdb/6.1.1/gdb/config/alpha/alpha-osf3.mh (props changed) vendor/gdb/6.1.1/gdb/config/alpha/alpha.mt (props changed) vendor/gdb/6.1.1/gdb/config/alpha/fbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/alpha/fbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nm-osf.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nm-osf2.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/nm-osf3.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/tm-alpha.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/tm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/alpha/xm-alphaosf.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/embed.mt (props changed) vendor/gdb/6.1.1/gdb/config/arm/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/arm/nbsdaout.mh (props changed) vendor/gdb/6.1.1/gdb/config/arm/nbsdelf.mh (props changed) vendor/gdb/6.1.1/gdb/config/arm/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/nm-nbsdaout.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/tm-arm.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/tm-embed.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/tm-wince.h (props changed) vendor/gdb/6.1.1/gdb/config/arm/wince.mt (props changed) vendor/gdb/6.1.1/gdb/config/arm/xm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/embed.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/fbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/fbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/fbsd64.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/fbsd64.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/go32.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/go32.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386aout.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386gnu.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386gnu.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386lynx.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386lynx.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386nw.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386sco.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386sco4.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386sco5.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386sol2.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386sol2.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386v.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386v.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386v4.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/i386v42mp.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/nbsd64.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/nbsd64.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/nbsdaout.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/nbsdelf.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/ncr3000.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/ncr3000.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-fbsd64.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-go32.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386gnu.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386lynx.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386sco.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386sco4.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386sco5.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386sol2.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386v.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386v4.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-i386v42mp.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-nbsdaout.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-nto.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nm-obsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/nto.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/nto.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/obsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/obsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/obsd64.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/obsd64.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/obsdaout.mh (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-go32.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-i386.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-i386lynx.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-i386sol2.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-nto.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/tm-vxworks.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/vxworks.mt (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-go32.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-i386.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-i386sco.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-i386v.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-i386v4.h (props changed) vendor/gdb/6.1.1/gdb/config/i386/xm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/ia64/ia64.mt (props changed) vendor/gdb/6.1.1/gdb/config/ia64/tm-ia64.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/decstation.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/embed.mt (props changed) vendor/gdb/6.1.1/gdb/config/mips/littlemips.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/mipsv4.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/mipsv4.mt (props changed) vendor/gdb/6.1.1/gdb/config/mips/nbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/mips/news-mips.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/nm-mips.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/nm-news-mips.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/nm-riscos.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/riscos.mh (props changed) vendor/gdb/6.1.1/gdb/config/mips/tm-mips.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/tm-mipsv4.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/tm-vxmips.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/tm-wince.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/vxmips.mt (props changed) vendor/gdb/6.1.1/gdb/config/mips/wince.mt (props changed) vendor/gdb/6.1.1/gdb/config/mips/xm-mips.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/xm-mipsv4.h (props changed) vendor/gdb/6.1.1/gdb/config/mips/xm-riscos.h (props changed) vendor/gdb/6.1.1/gdb/config/nm-gnu.h (props changed) vendor/gdb/6.1.1/gdb/config/nm-lynx.h (props changed) vendor/gdb/6.1.1/gdb/config/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/nm-nbsdaout.h (props changed) vendor/gdb/6.1.1/gdb/config/nm-sysv4.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/fbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/fbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/nbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/nm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/ppc-eabi.mt (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/ppc-sim.mt (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/tm-ppc-eabi.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/tm-ppcle-eabi.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/tm-ppcle-sim.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/tm-vxworks.h (props changed) vendor/gdb/6.1.1/gdb/config/powerpc/vxworks.mt (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/nm-rs6000.h (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/nm-rs6000ly.h (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/rs6000.mh (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/rs6000.mt (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/rs6000lynx.mh (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/rs6000lynx.mt (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/tm-rs6000.h (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/tm-rs6000ly.h (props changed) vendor/gdb/6.1.1/gdb/config/rs6000/xm-rs6000.h (props changed) vendor/gdb/6.1.1/gdb/config/s390/s390.mh (props changed) vendor/gdb/6.1.1/gdb/config/s390/s390.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/fbsd.mh (props changed) vendor/gdb/6.1.1/gdb/config/sparc/fbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nbsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nbsd64.mh (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nbsd64.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nbsdaout.mh (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nbsdelf.mh (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nm-nbsdaout.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/nm-sol2.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/obsd.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/obsd64.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/sol2-64.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/sol2.mh (props changed) vendor/gdb/6.1.1/gdb/config/sparc/sol2.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/sparc.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/sparc64.mt (props changed) vendor/gdb/6.1.1/gdb/config/sparc/tm-fbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/tm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/tm-nbsd64.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/tm-sol2.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/tm-vxworks.h (props changed) vendor/gdb/6.1.1/gdb/config/sparc/vxworks.mt (props changed) vendor/gdb/6.1.1/gdb/config/tm-lynx.h (props changed) vendor/gdb/6.1.1/gdb/config/tm-nto.h (props changed) vendor/gdb/6.1.1/gdb/config/tm-sunos.h (props changed) vendor/gdb/6.1.1/gdb/config/tm-sysv4.h (props changed) vendor/gdb/6.1.1/gdb/config/tm-vxworks.h (props changed) vendor/gdb/6.1.1/gdb/config/xm-nbsd.h (props changed) vendor/gdb/6.1.1/gdb/config/xm-sysv4.h (props changed) vendor/gdb/6.1.1/gdb/copying.awk (props changed) vendor/gdb/6.1.1/gdb/copying.c (props changed) vendor/gdb/6.1.1/gdb/core-aout.c (props changed) vendor/gdb/6.1.1/gdb/core-regset.c (props changed) vendor/gdb/6.1.1/gdb/corefile.c (props changed) vendor/gdb/6.1.1/gdb/corelow.c (props changed) vendor/gdb/6.1.1/gdb/cp-abi.c (props changed) vendor/gdb/6.1.1/gdb/cp-abi.h (props changed) vendor/gdb/6.1.1/gdb/cp-namespace.c (props changed) vendor/gdb/6.1.1/gdb/cp-support.c (props changed) vendor/gdb/6.1.1/gdb/cp-support.h (props changed) vendor/gdb/6.1.1/gdb/cp-valprint.c (props changed) vendor/gdb/6.1.1/gdb/cpu32bug-rom.c (props changed) vendor/gdb/6.1.1/gdb/dbug-rom.c (props changed) vendor/gdb/6.1.1/gdb/dbxread.c (props changed) vendor/gdb/6.1.1/gdb/dcache.c (props changed) vendor/gdb/6.1.1/gdb/dcache.h (props changed) vendor/gdb/6.1.1/gdb/defs.h (props changed) vendor/gdb/6.1.1/gdb/delta68-nat.c (props changed) vendor/gdb/6.1.1/gdb/demangle.c (props changed) vendor/gdb/6.1.1/gdb/dictionary.c (props changed) vendor/gdb/6.1.1/gdb/dictionary.h (props changed) vendor/gdb/6.1.1/gdb/dink32-rom.c (props changed) vendor/gdb/6.1.1/gdb/disasm.c (props changed) vendor/gdb/6.1.1/gdb/disasm.h (props changed) vendor/gdb/6.1.1/gdb/doc/GDBvn.texi (props changed) vendor/gdb/6.1.1/gdb/doc/LRS (props changed) vendor/gdb/6.1.1/gdb/doc/a4rc.sed (props changed) vendor/gdb/6.1.1/gdb/doc/agentexpr.texi (props changed) vendor/gdb/6.1.1/gdb/doc/all-cfg.texi (props changed) vendor/gdb/6.1.1/gdb/doc/annotate.texinfo (props changed) vendor/gdb/6.1.1/gdb/doc/fdl.texi (props changed) vendor/gdb/6.1.1/gdb/doc/gdb.info-1 (props changed) vendor/gdb/6.1.1/gdb/doc/gdb.info-2 (props changed) vendor/gdb/6.1.1/gdb/doc/gdb.info-3 (props changed) vendor/gdb/6.1.1/gdb/doc/gdb.texinfo (props changed) vendor/gdb/6.1.1/gdb/doc/gdbint.texinfo (props changed) vendor/gdb/6.1.1/gdb/doc/gpl.texi (props changed) vendor/gdb/6.1.1/gdb/doc/lpsrc.sed (props changed) vendor/gdb/6.1.1/gdb/doc/observer.texi (props changed) vendor/gdb/6.1.1/gdb/doc/psrc.sed (props changed) vendor/gdb/6.1.1/gdb/doc/refcard.tex (props changed) vendor/gdb/6.1.1/gdb/doc/stabs.texinfo (props changed) vendor/gdb/6.1.1/gdb/doublest.c (props changed) vendor/gdb/6.1.1/gdb/doublest.h (props changed) vendor/gdb/6.1.1/gdb/dpx2-nat.c (props changed) vendor/gdb/6.1.1/gdb/dsrec.c (props changed) vendor/gdb/6.1.1/gdb/dummy-frame.c (props changed) vendor/gdb/6.1.1/gdb/dummy-frame.h (props changed) vendor/gdb/6.1.1/gdb/dve3900-rom.c (props changed) vendor/gdb/6.1.1/gdb/dwarf2-frame.c (props changed) vendor/gdb/6.1.1/gdb/dwarf2-frame.h (props changed) vendor/gdb/6.1.1/gdb/dwarf2expr.c (props changed) vendor/gdb/6.1.1/gdb/dwarf2expr.h (props changed) vendor/gdb/6.1.1/gdb/dwarf2loc.c (props changed) vendor/gdb/6.1.1/gdb/dwarf2loc.h (props changed) vendor/gdb/6.1.1/gdb/dwarf2read.c (props changed) vendor/gdb/6.1.1/gdb/dwarfread.c (props changed) vendor/gdb/6.1.1/gdb/elfread.c (props changed) vendor/gdb/6.1.1/gdb/environ.c (props changed) vendor/gdb/6.1.1/gdb/environ.h (props changed) vendor/gdb/6.1.1/gdb/eval.c (props changed) vendor/gdb/6.1.1/gdb/event-loop.c (props changed) vendor/gdb/6.1.1/gdb/event-loop.h (props changed) vendor/gdb/6.1.1/gdb/event-top.c (props changed) vendor/gdb/6.1.1/gdb/event-top.h (props changed) vendor/gdb/6.1.1/gdb/exc_request.defs (props changed) vendor/gdb/6.1.1/gdb/exec.c (props changed) vendor/gdb/6.1.1/gdb/exec.h (props changed) vendor/gdb/6.1.1/gdb/expprint.c (props changed) vendor/gdb/6.1.1/gdb/expression.h (props changed) vendor/gdb/6.1.1/gdb/f-exp.c (props changed) vendor/gdb/6.1.1/gdb/f-exp.y (props changed) vendor/gdb/6.1.1/gdb/f-lang.c (props changed) vendor/gdb/6.1.1/gdb/f-lang.h (props changed) vendor/gdb/6.1.1/gdb/f-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/f-valprint.c (props changed) vendor/gdb/6.1.1/gdb/fbsd-proc.c (props changed) vendor/gdb/6.1.1/gdb/findvar.c (props changed) vendor/gdb/6.1.1/gdb/fork-child.c (props changed) vendor/gdb/6.1.1/gdb/frame-base.c (props changed) vendor/gdb/6.1.1/gdb/frame-base.h (props changed) vendor/gdb/6.1.1/gdb/frame-unwind.c (props changed) vendor/gdb/6.1.1/gdb/frame-unwind.h (props changed) vendor/gdb/6.1.1/gdb/frame.c (props changed) vendor/gdb/6.1.1/gdb/frame.h (props changed) vendor/gdb/6.1.1/gdb/gcore.c (props changed) vendor/gdb/6.1.1/gdb/gdb-events.c (props changed) vendor/gdb/6.1.1/gdb/gdb-events.h (props changed) vendor/gdb/6.1.1/gdb/gdb-events.sh (props changed) vendor/gdb/6.1.1/gdb/gdb-stabs.h (props changed) vendor/gdb/6.1.1/gdb/gdb.1 (props changed) vendor/gdb/6.1.1/gdb/gdb.c (props changed) vendor/gdb/6.1.1/gdb/gdb.gdb (props changed) vendor/gdb/6.1.1/gdb/gdb.h (props changed) vendor/gdb/6.1.1/gdb/gdb_assert.h (props changed) vendor/gdb/6.1.1/gdb/gdb_curses.h (props changed) vendor/gdb/6.1.1/gdb/gdb_dirent.h (props changed) vendor/gdb/6.1.1/gdb/gdb_gcore.sh (props changed) vendor/gdb/6.1.1/gdb/gdb_indent.sh (props changed) vendor/gdb/6.1.1/gdb/gdb_locale.h (props changed) vendor/gdb/6.1.1/gdb/gdb_mbuild.sh (props changed) vendor/gdb/6.1.1/gdb/gdb_obstack.h (props changed) vendor/gdb/6.1.1/gdb/gdb_proc_service.h (props changed) vendor/gdb/6.1.1/gdb/gdb_regex.h (props changed) vendor/gdb/6.1.1/gdb/gdb_stat.h (props changed) vendor/gdb/6.1.1/gdb/gdb_string.h (props changed) vendor/gdb/6.1.1/gdb/gdb_thread_db.h (props changed) vendor/gdb/6.1.1/gdb/gdb_vfork.h (props changed) vendor/gdb/6.1.1/gdb/gdb_wait.h (props changed) vendor/gdb/6.1.1/gdb/gdbarch.c (props changed) vendor/gdb/6.1.1/gdb/gdbarch.h (props changed) vendor/gdb/6.1.1/gdb/gdbarch.sh (props changed) vendor/gdb/6.1.1/gdb/gdbcmd.h (props changed) vendor/gdb/6.1.1/gdb/gdbcore.h (props changed) vendor/gdb/6.1.1/gdb/gdbinit.in (props changed) vendor/gdb/6.1.1/gdb/gdbserver/README (props changed) vendor/gdb/6.1.1/gdb/gdbserver/acinclude.m4 (props changed) vendor/gdb/6.1.1/gdb/gdbserver/aclocal.m4 (props changed) vendor/gdb/6.1.1/gdb/gdbserver/gdbreplay.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/gdbserver.1 (props changed) vendor/gdb/6.1.1/gdb/gdbserver/i387-fp.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/i387-fp.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/inferiors.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/mem-break.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/mem-break.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/proc-service.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/regcache.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/regcache.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/remote-utils.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/server.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/server.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/target.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/target.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/terminal.h (props changed) vendor/gdb/6.1.1/gdb/gdbserver/thread-db.c (props changed) vendor/gdb/6.1.1/gdb/gdbserver/utils.c (props changed) vendor/gdb/6.1.1/gdb/gdbthread.h (props changed) vendor/gdb/6.1.1/gdb/gdbtypes.c (props changed) vendor/gdb/6.1.1/gdb/gdbtypes.h (props changed) vendor/gdb/6.1.1/gdb/glibc-tdep.c (props changed) vendor/gdb/6.1.1/gdb/glibc-tdep.h (props changed) vendor/gdb/6.1.1/gdb/gnu-nat.c (props changed) vendor/gdb/6.1.1/gdb/gnu-nat.h (props changed) vendor/gdb/6.1.1/gdb/gnu-v2-abi.c (props changed) vendor/gdb/6.1.1/gdb/gnu-v3-abi.c (props changed) vendor/gdb/6.1.1/gdb/go32-nat.c (props changed) vendor/gdb/6.1.1/gdb/gregset.h (props changed) vendor/gdb/6.1.1/gdb/hpacc-abi.c (props changed) vendor/gdb/6.1.1/gdb/hpread.c (props changed) vendor/gdb/6.1.1/gdb/i386-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386-nto-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386-sol2-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386-stub.c (props changed) vendor/gdb/6.1.1/gdb/i386-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386-tdep.h (props changed) vendor/gdb/6.1.1/gdb/i386bsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386bsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386fbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386fbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386gnu-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386gnu-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386ly-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386nbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386obsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386obsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i386v-nat.c (props changed) vendor/gdb/6.1.1/gdb/i386v4-nat.c (props changed) vendor/gdb/6.1.1/gdb/i387-tdep.c (props changed) vendor/gdb/6.1.1/gdb/i387-tdep.h (props changed) vendor/gdb/6.1.1/gdb/ia64-tdep.c (props changed) vendor/gdb/6.1.1/gdb/ia64-tdep.h (props changed) vendor/gdb/6.1.1/gdb/inf-loop.c (props changed) vendor/gdb/6.1.1/gdb/inf-loop.h (props changed) vendor/gdb/6.1.1/gdb/infcall.c (props changed) vendor/gdb/6.1.1/gdb/infcall.h (props changed) vendor/gdb/6.1.1/gdb/infcmd.c (props changed) vendor/gdb/6.1.1/gdb/inferior.h (props changed) vendor/gdb/6.1.1/gdb/inflow.c (props changed) vendor/gdb/6.1.1/gdb/inflow.h (props changed) vendor/gdb/6.1.1/gdb/infptrace.c (props changed) vendor/gdb/6.1.1/gdb/infrun.c (props changed) vendor/gdb/6.1.1/gdb/inftarg.c (props changed) vendor/gdb/6.1.1/gdb/infttrace.c (props changed) vendor/gdb/6.1.1/gdb/infttrace.h (props changed) vendor/gdb/6.1.1/gdb/interps.c (props changed) vendor/gdb/6.1.1/gdb/interps.h (props changed) vendor/gdb/6.1.1/gdb/jv-exp.c (props changed) vendor/gdb/6.1.1/gdb/jv-exp.y (props changed) vendor/gdb/6.1.1/gdb/jv-lang.c (props changed) vendor/gdb/6.1.1/gdb/jv-lang.h (props changed) vendor/gdb/6.1.1/gdb/jv-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/jv-valprint.c (props changed) vendor/gdb/6.1.1/gdb/kod-cisco.c (props changed) vendor/gdb/6.1.1/gdb/kod.c (props changed) vendor/gdb/6.1.1/gdb/kod.h (props changed) vendor/gdb/6.1.1/gdb/language.c (props changed) vendor/gdb/6.1.1/gdb/language.h (props changed) vendor/gdb/6.1.1/gdb/libunwind-frame.c (props changed) vendor/gdb/6.1.1/gdb/libunwind-frame.h (props changed) vendor/gdb/6.1.1/gdb/lin-lwp.c (props changed) vendor/gdb/6.1.1/gdb/linespec.c (props changed) vendor/gdb/6.1.1/gdb/linespec.h (props changed) vendor/gdb/6.1.1/gdb/lynx-nat.c (props changed) vendor/gdb/6.1.1/gdb/m2-exp.c (props changed) vendor/gdb/6.1.1/gdb/m2-exp.y (props changed) vendor/gdb/6.1.1/gdb/m2-lang.c (props changed) vendor/gdb/6.1.1/gdb/m2-lang.h (props changed) vendor/gdb/6.1.1/gdb/m2-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/m2-valprint.c (props changed) vendor/gdb/6.1.1/gdb/macrocmd.c (props changed) vendor/gdb/6.1.1/gdb/macroexp.c (props changed) vendor/gdb/6.1.1/gdb/macroexp.h (props changed) vendor/gdb/6.1.1/gdb/macroscope.c (props changed) vendor/gdb/6.1.1/gdb/macroscope.h (props changed) vendor/gdb/6.1.1/gdb/macrotab.c (props changed) vendor/gdb/6.1.1/gdb/macrotab.h (props changed) vendor/gdb/6.1.1/gdb/main.c (props changed) vendor/gdb/6.1.1/gdb/main.h (props changed) vendor/gdb/6.1.1/gdb/maint.c (props changed) vendor/gdb/6.1.1/gdb/mdebugread.c (props changed) vendor/gdb/6.1.1/gdb/mem-break.c (props changed) vendor/gdb/6.1.1/gdb/memattr.c (props changed) vendor/gdb/6.1.1/gdb/memattr.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-break.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-disas.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-env.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-file.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-stack.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmd-var.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmds.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-cmds.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-console.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-console.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-getopt.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-getopt.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-interp.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-main.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-main.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-out.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-out.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-parse.c (props changed) vendor/gdb/6.1.1/gdb/mi/mi-parse.h (props changed) vendor/gdb/6.1.1/gdb/mi/mi-symbol-cmds.c (props changed) vendor/gdb/6.1.1/gdb/minimon.h (props changed) vendor/gdb/6.1.1/gdb/minsyms.c (props changed) vendor/gdb/6.1.1/gdb/mips-nat.c (props changed) vendor/gdb/6.1.1/gdb/mips-tdep.c (props changed) vendor/gdb/6.1.1/gdb/mips-tdep.h (props changed) vendor/gdb/6.1.1/gdb/mipsnbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/mipsnbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/mipsnbsd-tdep.h (props changed) vendor/gdb/6.1.1/gdb/mipsread.c (props changed) vendor/gdb/6.1.1/gdb/mipsv4-nat.c (props changed) vendor/gdb/6.1.1/gdb/monitor.c (props changed) vendor/gdb/6.1.1/gdb/monitor.h (props changed) vendor/gdb/6.1.1/gdb/msg.defs (props changed) vendor/gdb/6.1.1/gdb/msg_reply.defs (props changed) vendor/gdb/6.1.1/gdb/nbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/nbsd-tdep.h (props changed) vendor/gdb/6.1.1/gdb/nlmread.c (props changed) vendor/gdb/6.1.1/gdb/notify.defs (props changed) vendor/gdb/6.1.1/gdb/nto-procfs.c (props changed) vendor/gdb/6.1.1/gdb/nto-tdep.c (props changed) vendor/gdb/6.1.1/gdb/nto-tdep.h (props changed) vendor/gdb/6.1.1/gdb/objc-exp.c (props changed) vendor/gdb/6.1.1/gdb/objc-exp.y (props changed) vendor/gdb/6.1.1/gdb/objc-lang.c (props changed) vendor/gdb/6.1.1/gdb/objc-lang.h (props changed) vendor/gdb/6.1.1/gdb/objfiles.c (props changed) vendor/gdb/6.1.1/gdb/objfiles.h (props changed) vendor/gdb/6.1.1/gdb/observer.c (props changed) vendor/gdb/6.1.1/gdb/observer.h (props changed) vendor/gdb/6.1.1/gdb/ocd.c (props changed) vendor/gdb/6.1.1/gdb/ocd.h (props changed) vendor/gdb/6.1.1/gdb/osabi.c (props changed) vendor/gdb/6.1.1/gdb/osabi.h (props changed) vendor/gdb/6.1.1/gdb/p-exp.c (props changed) vendor/gdb/6.1.1/gdb/p-exp.y (props changed) vendor/gdb/6.1.1/gdb/p-lang.c (props changed) vendor/gdb/6.1.1/gdb/p-lang.h (props changed) vendor/gdb/6.1.1/gdb/p-typeprint.c (props changed) vendor/gdb/6.1.1/gdb/p-valprint.c (props changed) vendor/gdb/6.1.1/gdb/pa64solib.c (props changed) vendor/gdb/6.1.1/gdb/pa64solib.h (props changed) vendor/gdb/6.1.1/gdb/parse.c (props changed) vendor/gdb/6.1.1/gdb/parser-defs.h (props changed) vendor/gdb/6.1.1/gdb/ppc-bdm.c (props changed) vendor/gdb/6.1.1/gdb/ppc-sysv-tdep.c (props changed) vendor/gdb/6.1.1/gdb/ppc-tdep.h (props changed) vendor/gdb/6.1.1/gdb/ppcbug-rom.c (props changed) vendor/gdb/6.1.1/gdb/ppcfbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/ppcfbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/ppcfbsd-tdep.h (props changed) vendor/gdb/6.1.1/gdb/ppcnbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/ppcnbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/ppcnbsd-tdep.h (props changed) vendor/gdb/6.1.1/gdb/printcmd.c (props changed) vendor/gdb/6.1.1/gdb/proc-api.c (props changed) vendor/gdb/6.1.1/gdb/proc-events.c (props changed) vendor/gdb/6.1.1/gdb/proc-flags.c (props changed) vendor/gdb/6.1.1/gdb/proc-service.c (props changed) vendor/gdb/6.1.1/gdb/proc-utils.h (props changed) vendor/gdb/6.1.1/gdb/proc-why.c (props changed) vendor/gdb/6.1.1/gdb/process_reply.defs (props changed) vendor/gdb/6.1.1/gdb/procfs.c (props changed) vendor/gdb/6.1.1/gdb/regcache.c (props changed) vendor/gdb/6.1.1/gdb/regcache.h (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-arm.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-i386.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-ia64.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-m68k.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-mips.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-ppc.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-s390.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-s390x.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-sh.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/reg-x86-64.dat (props changed) vendor/gdb/6.1.1/gdb/regformats/regdat.sh (props changed) vendor/gdb/6.1.1/gdb/regformats/regdef.h (props changed) vendor/gdb/6.1.1/gdb/reggroups.c (props changed) vendor/gdb/6.1.1/gdb/reggroups.h (props changed) vendor/gdb/6.1.1/gdb/regset.h (props changed) vendor/gdb/6.1.1/gdb/remote-e7000.c (props changed) vendor/gdb/6.1.1/gdb/remote-est.c (props changed) vendor/gdb/6.1.1/gdb/remote-fileio.c (props changed) vendor/gdb/6.1.1/gdb/remote-fileio.h (props changed) vendor/gdb/6.1.1/gdb/remote-hms.c (props changed) vendor/gdb/6.1.1/gdb/remote-mips.c (props changed) vendor/gdb/6.1.1/gdb/remote-rdi.c (props changed) vendor/gdb/6.1.1/gdb/remote-rdp.c (props changed) vendor/gdb/6.1.1/gdb/remote-sds.c (props changed) vendor/gdb/6.1.1/gdb/remote-sim.c (props changed) vendor/gdb/6.1.1/gdb/remote-st.c (props changed) vendor/gdb/6.1.1/gdb/remote-utils.c (props changed) vendor/gdb/6.1.1/gdb/remote-utils.h (props changed) vendor/gdb/6.1.1/gdb/remote-vx.c (props changed) vendor/gdb/6.1.1/gdb/remote-vx68.c (props changed) vendor/gdb/6.1.1/gdb/remote-vxmips.c (props changed) vendor/gdb/6.1.1/gdb/remote-vxsparc.c (props changed) vendor/gdb/6.1.1/gdb/remote.c (props changed) vendor/gdb/6.1.1/gdb/remote.h (props changed) vendor/gdb/6.1.1/gdb/reply_mig_hack.awk (props changed) vendor/gdb/6.1.1/gdb/rom68k-rom.c (props changed) vendor/gdb/6.1.1/gdb/rs6000-nat.c (props changed) vendor/gdb/6.1.1/gdb/rs6000-tdep.c (props changed) vendor/gdb/6.1.1/gdb/s390-nat.c (props changed) vendor/gdb/6.1.1/gdb/s390-tdep.c (props changed) vendor/gdb/6.1.1/gdb/s390-tdep.h (props changed) vendor/gdb/6.1.1/gdb/scm-exp.c (props changed) vendor/gdb/6.1.1/gdb/scm-lang.c (props changed) vendor/gdb/6.1.1/gdb/scm-lang.h (props changed) vendor/gdb/6.1.1/gdb/scm-tags.h (props changed) vendor/gdb/6.1.1/gdb/scm-valprint.c (props changed) vendor/gdb/6.1.1/gdb/sentinel-frame.c (props changed) vendor/gdb/6.1.1/gdb/sentinel-frame.h (props changed) vendor/gdb/6.1.1/gdb/ser-e7kpc.c (props changed) vendor/gdb/6.1.1/gdb/ser-go32.c (props changed) vendor/gdb/6.1.1/gdb/ser-pipe.c (props changed) vendor/gdb/6.1.1/gdb/ser-tcp.c (props changed) vendor/gdb/6.1.1/gdb/ser-unix.c (props changed) vendor/gdb/6.1.1/gdb/ser-unix.h (props changed) vendor/gdb/6.1.1/gdb/serial.c (props changed) vendor/gdb/6.1.1/gdb/serial.h (props changed) vendor/gdb/6.1.1/gdb/signals/signals.c (props changed) vendor/gdb/6.1.1/gdb/sim-regno.h (props changed) vendor/gdb/6.1.1/gdb/sol-thread.c (props changed) vendor/gdb/6.1.1/gdb/solib-legacy.c (props changed) vendor/gdb/6.1.1/gdb/solib-osf.c (props changed) vendor/gdb/6.1.1/gdb/solib-sunos.c (props changed) vendor/gdb/6.1.1/gdb/solib-svr4.c (props changed) vendor/gdb/6.1.1/gdb/solib-svr4.h (props changed) vendor/gdb/6.1.1/gdb/solib.c (props changed) vendor/gdb/6.1.1/gdb/solib.h (props changed) vendor/gdb/6.1.1/gdb/solist.h (props changed) vendor/gdb/6.1.1/gdb/somread.c (props changed) vendor/gdb/6.1.1/gdb/somsolib.c (props changed) vendor/gdb/6.1.1/gdb/somsolib.h (props changed) vendor/gdb/6.1.1/gdb/source.c (props changed) vendor/gdb/6.1.1/gdb/source.h (props changed) vendor/gdb/6.1.1/gdb/sparc-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparc-nat.h (props changed) vendor/gdb/6.1.1/gdb/sparc-sol2-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparc-sol2-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc-stub.c (props changed) vendor/gdb/6.1.1/gdb/sparc-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc-tdep.h (props changed) vendor/gdb/6.1.1/gdb/sparc64-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparc64-sol2-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc64-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc64-tdep.h (props changed) vendor/gdb/6.1.1/gdb/sparc64fbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparc64fbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc64nbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparc64nbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparc64obsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparcnbsd-nat.c (props changed) vendor/gdb/6.1.1/gdb/sparcnbsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/sparcobsd-tdep.c (props changed) vendor/gdb/6.1.1/gdb/srec.h (props changed) vendor/gdb/6.1.1/gdb/stabsread.c (props changed) vendor/gdb/6.1.1/gdb/stabsread.h (props changed) vendor/gdb/6.1.1/gdb/stack.c (props changed) vendor/gdb/6.1.1/gdb/stack.h (props changed) vendor/gdb/6.1.1/gdb/standalone.c (props changed) vendor/gdb/6.1.1/gdb/std-regs.c (props changed) vendor/gdb/6.1.1/gdb/stop-gdb.c (props changed) vendor/gdb/6.1.1/gdb/sun3-nat.c (props changed) vendor/gdb/6.1.1/gdb/symfile.c (props changed) vendor/gdb/6.1.1/gdb/symfile.h (props changed) vendor/gdb/6.1.1/gdb/symmisc.c (props changed) vendor/gdb/6.1.1/gdb/symtab.c (props changed) vendor/gdb/6.1.1/gdb/symtab.h (props changed) vendor/gdb/6.1.1/gdb/target.c (props changed) vendor/gdb/6.1.1/gdb/target.h (props changed) vendor/gdb/6.1.1/gdb/terminal.h (props changed) vendor/gdb/6.1.1/gdb/thread-db.c (props changed) vendor/gdb/6.1.1/gdb/thread.c (props changed) vendor/gdb/6.1.1/gdb/top.c (props changed) vendor/gdb/6.1.1/gdb/top.h (props changed) vendor/gdb/6.1.1/gdb/tracepoint.c (props changed) vendor/gdb/6.1.1/gdb/tracepoint.h (props changed) vendor/gdb/6.1.1/gdb/trad-frame.c (props changed) vendor/gdb/6.1.1/gdb/trad-frame.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-command.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-command.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-data.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-data.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-disasm.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-disasm.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-file.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-file.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-hooks.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-hooks.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-interp.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-io.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-io.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-layout.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-layout.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-main.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-out.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-regs.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-regs.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-source.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-source.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-stack.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-stack.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-win.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-win.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-windata.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-windata.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-wingeneral.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-wingeneral.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui-winsource.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui-winsource.h (props changed) vendor/gdb/6.1.1/gdb/tui/tui.c (props changed) vendor/gdb/6.1.1/gdb/tui/tui.h (props changed) vendor/gdb/6.1.1/gdb/typeprint.c (props changed) vendor/gdb/6.1.1/gdb/typeprint.h (props changed) vendor/gdb/6.1.1/gdb/ui-file.c (props changed) vendor/gdb/6.1.1/gdb/ui-file.h (props changed) vendor/gdb/6.1.1/gdb/ui-out.c (props changed) vendor/gdb/6.1.1/gdb/ui-out.h (props changed) vendor/gdb/6.1.1/gdb/user-regs.c (props changed) vendor/gdb/6.1.1/gdb/user-regs.h (props changed) vendor/gdb/6.1.1/gdb/utils.c (props changed) vendor/gdb/6.1.1/gdb/uw-thread.c (props changed) vendor/gdb/6.1.1/gdb/valarith.c (props changed) vendor/gdb/6.1.1/gdb/valops.c (props changed) vendor/gdb/6.1.1/gdb/valprint.c (props changed) vendor/gdb/6.1.1/gdb/valprint.h (props changed) vendor/gdb/6.1.1/gdb/value.h (props changed) vendor/gdb/6.1.1/gdb/values.c (props changed) vendor/gdb/6.1.1/gdb/varobj.c (props changed) vendor/gdb/6.1.1/gdb/varobj.h (props changed) vendor/gdb/6.1.1/gdb/version.h (props changed) vendor/gdb/6.1.1/gdb/version.in (props changed) vendor/gdb/6.1.1/gdb/win32-nat.c (props changed) vendor/gdb/6.1.1/gdb/wince-stub.c (props changed) vendor/gdb/6.1.1/gdb/wince-stub.h (props changed) vendor/gdb/6.1.1/gdb/wince.c (props changed) vendor/gdb/6.1.1/gdb/wrapper.c (props changed) vendor/gdb/6.1.1/gdb/wrapper.h (props changed) vendor/gdb/6.1.1/gdb/xcoffread.c (props changed) vendor/gdb/6.1.1/gdb/xcoffsolib.c (props changed) vendor/gdb/6.1.1/gdb/xcoffsolib.h (props changed) vendor/gdb/6.1.1/gdb/xmodem.c (props changed) vendor/gdb/6.1.1/gdb/xmodem.h (props changed) vendor/gdb/6.1.1/include/COPYING (props changed) vendor/gdb/6.1.1/include/MAINTAINERS (props changed) vendor/gdb/6.1.1/include/alloca-conf.h (props changed) vendor/gdb/6.1.1/include/ansidecl.h (props changed) vendor/gdb/6.1.1/include/bfdlink.h (props changed) vendor/gdb/6.1.1/include/bin-bugs.h (props changed) vendor/gdb/6.1.1/include/bout.h (props changed) vendor/gdb/6.1.1/include/demangle.h (props changed) vendor/gdb/6.1.1/include/dis-asm.h (props changed) vendor/gdb/6.1.1/include/dyn-string.h (props changed) vendor/gdb/6.1.1/include/fibheap.h (props changed) vendor/gdb/6.1.1/include/filenames.h (props changed) vendor/gdb/6.1.1/include/floatformat.h (props changed) vendor/gdb/6.1.1/include/fnmatch.h (props changed) vendor/gdb/6.1.1/include/fopen-bin.h (props changed) vendor/gdb/6.1.1/include/fopen-same.h (props changed) vendor/gdb/6.1.1/include/fopen-vms.h (props changed) vendor/gdb/6.1.1/include/gdb/callback.h (props changed) vendor/gdb/6.1.1/include/gdb/fileio.h (props changed) vendor/gdb/6.1.1/include/gdb/remote-sim.h (props changed) vendor/gdb/6.1.1/include/gdb/signals.h (props changed) vendor/gdb/6.1.1/include/gdb/sim-arm.h (props changed) vendor/gdb/6.1.1/include/gdb/sim-d10v.h (props changed) vendor/gdb/6.1.1/include/gdb/sim-frv.h (props changed) vendor/gdb/6.1.1/include/gdb/sim-h8300.h (props changed) vendor/gdb/6.1.1/include/gdb/sim-sh.h (props changed) vendor/gdb/6.1.1/include/gdbm.h (props changed) vendor/gdb/6.1.1/include/getopt.h (props changed) vendor/gdb/6.1.1/include/hashtab.h (props changed) vendor/gdb/6.1.1/include/hp-symtab.h (props changed) vendor/gdb/6.1.1/include/ieee.h (props changed) vendor/gdb/6.1.1/include/libiberty.h (props changed) vendor/gdb/6.1.1/include/md5.h (props changed) vendor/gdb/6.1.1/include/oasys.h (props changed) vendor/gdb/6.1.1/include/objalloc.h (props changed) vendor/gdb/6.1.1/include/obstack.h (props changed) vendor/gdb/6.1.1/include/os9k.h (props changed) vendor/gdb/6.1.1/include/partition.h (props changed) vendor/gdb/6.1.1/include/progress.h (props changed) vendor/gdb/6.1.1/include/safe-ctype.h (props changed) vendor/gdb/6.1.1/include/sort.h (props changed) vendor/gdb/6.1.1/include/splay-tree.h (props changed) vendor/gdb/6.1.1/include/symcat.h (props changed) vendor/gdb/6.1.1/include/ternary.h (props changed) vendor/gdb/6.1.1/include/xregex.h (props changed) vendor/gdb/6.1.1/include/xregex2.h (props changed) vendor/gdb/6.1.1/include/xtensa-isa-internal.h (props changed) vendor/gdb/6.1.1/include/xtensa-isa.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/CONTRIBUTE (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/COPYING (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1990 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1991 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1992 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1993 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1994 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1995 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1996 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1997 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1998 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-1999 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-2000 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-2001 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ChangeLog-3.x (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/MAINTAINERS (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/Makefile.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/NEWS (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/PROBLEMS (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/README (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/TODO (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/abug-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/acconfig.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/acinclude.m4 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/aclocal.m4 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/alpha-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/alpha-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/alphabsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/alphafbsd-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/annotate.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/annotate.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arc-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arch-utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arch-utils.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arm-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arm-linux-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arm-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/arm-tdep.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/armnbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/armnbsd-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ax-gdb.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ax-gdb.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ax-general.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ax.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/bcache.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/bcache.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/blockframe.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/breakpoint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/breakpoint.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/buildsym.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/buildsym.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/c-exp.y (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/c-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/c-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/c-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/c-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/call-cmds.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ch-exp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ch-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ch-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ch-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ch-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli-out.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli-out.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-cmds.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-cmds.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-decode.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-decode.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-script.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-script.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-setshow.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-setshow.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cli/cli-utils.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/coff-solib.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/coff-solib.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/coffread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/command.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/complaints.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/complaints.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/completer.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/completer.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-osf1.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-osf1.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-osf2.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/alpha-osf3.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/fbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/fbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/nm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/nm-osf.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/nm-osf2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/nm-osf3.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/tm-alpha.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/tm-alphalinux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/tm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/xm-alphalinux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/alpha/xm-alphaosf.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/embed.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/nbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/nbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/nm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/tm-arm.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/tm-embed.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/tm-wince.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/wince.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/xm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/arm/xm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/cygwin.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/cygwin.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/embed.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/fbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/fbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/gdbserve.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/go32.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/go32.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386aix.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386aix.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386aout.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386bsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386bsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386dgux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386gnu.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386gnu.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386lynx.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386lynx.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386m3.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386m3.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386mach.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386mk.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386mk.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386nw.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386os9k.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sco.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sco4.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sco5.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sco5.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sol2.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386sol2.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v32.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v4.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v4.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v42mp.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/i386v42mp.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nbsdelf.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nbsdelf.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ncr3000.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ncr3000.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-cygwin.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-gnu.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-go32.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386bsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386lynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386mach.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386sco.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386sco4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386sco5.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386sol2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386v.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386v4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-i386v42mp.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-m3.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-nbsdelf.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-obsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-ptx4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-symmetry.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/nm-x86-64.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/obsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/obsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ptx.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ptx.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ptx4.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/ptx4.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/symmetry.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/symmetry.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-cygwin.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-go32.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386bsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386gnu.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386lynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386m3.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386mk.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386nw.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386os9k.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386sco5.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386sol2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386v.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386v4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-i386v42mp.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-nbsdelf.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-obsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-ptx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-ptx4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-symmetry.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/tm-vxworks.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/vxworks.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/x86-64linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/x86-64linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-cygwin.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-go32.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386bsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386gnu.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386m3.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386mach.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386mk.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386sco.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386v.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386v32.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-i386v4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-ptx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-ptx4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/i386/xm-symmetry.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/aix.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/aix.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/nm-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/tm-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/tm-ia64.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/xm-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/ia64/xm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-gnu.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-lynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-m3.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/nm-sysv4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/none/nm-none.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/none/none.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/none/none.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/none/tm-none.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/none/xm-none.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/aix.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/aix.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/gdbserve.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/nbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/nbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/nm-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/nm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/ppc-eabi.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/ppc-sim.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/ppcle-eabi.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/ppcle-sim.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-ppc-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-ppc-eabi.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-ppc-sim.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-ppcle-eabi.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-ppcle-sim.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/tm-vxworks.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/vxworks.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/xm-aix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/powerpc/xm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/fbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/fbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/linux.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nbsd.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nbsd.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nbsdelf.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-nbsdelf.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-sparclynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-sun4os4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/nm-sun4sol2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sp64.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sp64linux.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sp64sim.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sp64sol2.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sparc-em.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sparclet.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sparclite.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sparclynx.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sparclynx.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sun4os4.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sun4os4.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sun4sol2.mh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/sun4sol2.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-fbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sp64.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sp64linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sp64sim.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sparc.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sparclet.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sparclite.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sparclynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-spc-em.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sun4os4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-sun4sol2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/tm-vxsparc.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/vxsparc.mt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/xm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/xm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/sparc/xm-sun4sol2.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-linux.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-lynx.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-sunos.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-sysv4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/tm-vxworks.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/xm-aix4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/xm-nbsd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/config/xm-sysv4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/configure (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/configure.host (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/configure.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/configure.tgt (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/copying.awk (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/copying.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/core-aout.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/core-regset.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/core-sol2.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/corefile.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/corelow.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cp-abi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cp-abi.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cp-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cpu32bug-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/cxux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dbug-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dbxread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dcache.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dcache.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/defs.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/demangle.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dink32-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/ChangeLog (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/LRS (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/Makefile.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/a4rc.sed (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/agentexpr.texi (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/all-cfg.texi (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/annotate.texi (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/configure (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/configure.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/fdl.texi (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/gdb.texinfo (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/gdbint.texinfo (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/gpl.texi (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/lpsrc.sed (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/psrc.sed (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/refcard.tex (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doc/stabs.texinfo (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doublest.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/doublest.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dsrec.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dst.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dstread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dwarf2cfi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dwarf2cfi.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dwarf2read.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/dwarfread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/elfread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/environ.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/environ.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/eval.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/event-loop.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/event-loop.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/event-top.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/event-top.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/exc_request.defs (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/exec.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/expprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/expression.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/f-exp.y (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/f-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/f-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/f-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/f-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/findvar.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/fork-child.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/fr30-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/frame.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/frame.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gcore.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb-events.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb-events.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb-events.sh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb-stabs.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb.1 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb.gdb (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_assert.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_dirent.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_indent.sh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_proc_service.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_regex.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_stat.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_string.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_thread_db.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_vfork.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdb_wait.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbarch.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbarch.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbarch.sh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbcmd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbcore.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbinit.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/Makefile.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/README (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/acconfig.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/aclocal.m4 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/config.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/configure (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/configure.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/configure.srv (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/gdbreplay.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/gdbserver.1 (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/i387-fp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/i387-fp.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-arm-low.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-i386-low.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-ia64-low.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-low.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-low.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/linux-x86-64-low.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-hppabsd.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-lynx.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-nbsd.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-sim.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-sparc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/low-sun3.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/regcache.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/regcache.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/remote-utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/server.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/server.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/terminal.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbserver/utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbthread.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbtypes.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gdbtypes.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gnu-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gnu-nat.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gnu-v2-abi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gnu-v3-abi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/gregset.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/hpacc-abi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/hpux-thread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-linux-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386-tdep.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386aix-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386b-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386bsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386bsd-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386fbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386gnu-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386ly-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386m3-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386mach-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386nbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386nbsd-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386v-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i386v4-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i387-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i387-nat.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/i387-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ia64-aix-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ia64-aix-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ia64-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ia64-linux-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ia64-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/inf-loop.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/inf-loop.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/infcmd.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/inferior.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/inflow.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/infptrace.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/infrun.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/inftarg.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/infttrace.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/irix4-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/irix5-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/jv-exp.y (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/jv-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/jv-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/jv-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/jv-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/kod-cisco.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/kod.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/kod.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/language.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/language.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/lin-lwp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/linespec.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/linespec.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/linux-proc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/lynx-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m2-exp.y (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m2-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m2-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m2-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m2-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m3-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m32r-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m32r-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m32r-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m68k-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m68k-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m68klinux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m68knbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m88k-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/m88k-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/main.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/maint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mdebugread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mem-break.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/memattr.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/memattr.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/ChangeLog (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/gdbmi.texinfo (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmd-break.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmd-disas.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmd-stack.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmd-var.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmds.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-cmds.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-console.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-console.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-getopt.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-getopt.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-main.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-out.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-out.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-parse.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mi/mi-parse.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/minimon.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/minsyms.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mipsread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/mon960-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/monitor.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/monitor.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/msg.defs (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/msg_reply.defs (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nindy-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/Makefile.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/configure (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/configure.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/gdbserve.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/gdbserve.def (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/i386.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/i386.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/ppc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/ppc.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlm/prelude.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/nlmread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/notify.defs (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ns32k-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ns32knbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/objfiles.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/objfiles.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ocd.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ocd.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/op50-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/os9kread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/osfsolib.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/p-exp.y (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/p-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/p-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/p-typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/p-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/parse.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/parser-defs.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppc-bdm.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppc-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppc-linux-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppc-tdep.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppcbug-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ppcnbsd-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/printcmd.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-api.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-events.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-flags.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-service.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-utils.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/proc-why.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/process_reply.defs (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/procfs.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ptx4-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regcache.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regcache.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-arm.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-i386-linux.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-i386.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-ia64.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-ppc.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/reg-x86-64.dat (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/regdat.sh (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/regformats/regdef.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-adapt.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-array.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-bug.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-e7000.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-eb.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-es.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-est.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-hms.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-mips.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-mm.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-nindy.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-nrom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-os9k.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-rdi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-rdp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-sds.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-sim.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-st.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-udi.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-utils.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vx.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vx29k.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vx68.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vx960.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vxmips.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote-vxsparc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/remote.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/reply_mig_hack.awk (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/saber.suppress (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/scm-exp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/scm-lang.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/scm-lang.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/scm-tags.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/scm-valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-e7kpc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-go32.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-pipe.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-tcp.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-unix.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ser-unix.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/serial.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/serial.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/signals.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/signals/signals.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sol-thread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib-legacy.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib-osf.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib-sunos.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib-svr4.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib-svr4.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solib.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/solist.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/somread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/somsolib.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/somsolib.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/source.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/source.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparc-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparc-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparc-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparc-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparcl-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparcl-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparclet-rom.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/sparclet-stub.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/srec.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/stabsread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/stabsread.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/stack.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/standalone.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/stop-gdb.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symfile.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symfile.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symm-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symm-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symmisc.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symtab.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/symtab.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/target.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/target.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/terminal.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/thread-db.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/thread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/top.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/top.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/tracepoint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/tracepoint.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/typeprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/typeprint.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ui-file.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ui-file.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ui-out.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/ui-out.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/utils.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/uw-thread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/v850-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/valarith.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/valops.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/valprint.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/valprint.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/value.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/values.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/varobj.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/varobj.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/version.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/version.in (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/wrapper.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/wrapper.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/x86-64-linux-nat.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/x86-64-linux-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/x86-64-tdep.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/x86-64-tdep.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/xcoffread.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/xcoffsolib.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/xcoffsolib.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/xmodem.c (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/gdb/xmodem.h (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/include/gdb/ChangeLog (props changed) vendor/gdb/anoncvs_gdb_5_2_branch_20020627/include/gdb/signals.h (props changed) vendor/gdb/marcel_contrib/gdb/config/ia64/fbsd.mh (props changed) vendor/gdb/marcel_contrib/gdb/config/ia64/fbsd.mt (props changed) vendor/gdb/marcel_contrib/gdb/config/ia64/nm-fbsd.h (props changed) vendor/gdb/marcel_contrib/gdb/config/ia64/tm-fbsd.h (props changed) vendor/gdb/marcel_contrib/gdb/ia64-fbsd-nat.c (props changed) vendor/gdb/marcel_contrib/gdb/ia64-fbsd-tdep.c (props changed) Copied: vendor/gdb/4.16/COPYING (from r191739, vendor/gdb/4.16/contrib/gdb/COPYING) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/gdb/4.16/COPYING Sat May 2 09:11:21 2009 (r191740, copy of r191739, vendor/gdb/4.16/contrib/gdb/COPYING) @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Copied: vendor/gdb/4.16/COPYING.LIB (from r191739, vendor/gdb/4.16/contrib/gdb/COPYING.LIB) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/gdb/4.16/COPYING.LIB Sat May 2 09:11:21 2009 (r191740, copy of r191739, vendor/gdb/4.16/contrib/gdb/COPYING.LIB) @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! Copied: vendor/gdb/4.16/Makefile.in (from r191739, vendor/gdb/4.16/contrib/gdb/Makefile.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/gdb/4.16/Makefile.in Sat May 2 09:11:21 2009 (r191740, copy of r191739, vendor/gdb/4.16/contrib/gdb/Makefile.in) @@ -0,0 +1,1366 @@ +# +# Makefile for directory with subdirs to build. +# Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +srcdir = . + +prefix = /usr/local + +exec_prefix = $(prefix) +bindir = $(exec_prefix)/bin +libdir = $(exec_prefix)/lib +tooldir = $(exec_prefix)/$(target) + +program_transform_name = + +datadir = $(prefix)/lib +mandir = $(prefix)/man +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = $(prefix)/info +includedir = $(prefix)/include +docdir = $(datadir)/doc +GDB_NLM_DEPS = + +SHELL = /bin/sh + +INSTALL = $${srcroot}/install.sh -c +INSTALL_PROGRAM = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_XFORM = $(INSTALL) -t='$(program_transform_name)' + +INSTALL_DOSREL = install-dosrel-fake + +AS = as +AR = ar +AR_FLAGS = rc +CC = cc + +# Special variables passed down in EXTRA_GCC_FLAGS. They are defined +# here so that they can be overridden by Makefile fragments. +HOST_CC = $(CC_FOR_BUILD) +HOST_PREFIX = +HOST_PREFIX_1 = loser- + +# We don't specify -g -O because many compilers don't support -g -O, +# and/or -O is broken in and of itself. +CFLAGS = -g +LIBCFLAGS = $(CFLAGS) +CFLAGS_FOR_TARGET = $(CFLAGS) +LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) +PICFLAG = +PICFLAG_FOR_TARGET = + +CXX = gcc + +# Use -O2 to stress test the compiler. +CXXFLAGS = -g -O2 +LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates +CXXFLAGS_FOR_TARGET = $(CXXFLAGS) +LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + +RANLIB = ranlib + +DLLTOOL = dlltool + +NM = nm +# Not plain GZIP, since gzip looks there for extra command-line options. +GZIPPROG = gzip + +# These values are substituted by configure. +DEFAULT_YACC = yacc +DEFAULT_LEX = lex + +BISON = bison -y +LEX = `if [ -f $$r/flex/flex ] ; \ + then echo $$r/flex/flex ; \ + else echo ${DEFAULT_LEX} ; fi` + +M4 = `if [ -f $$r/m4/m4 ] ; \ + then echo $$r/m4/m4 ; \ + else echo m4 ; fi` + +MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ + then echo $$r/texinfo/makeinfo/makeinfo ; \ + else echo makeinfo ; fi` + +# This just becomes part of the MAKEINFO definition passed down to +# sub-makes. It lets flags be given on the command line while still +# using the makeinfo from the object tree. +MAKEINFOFLAGS = + +EXPECT = `if [ -f $$r/expect/expect ] ; \ + then echo $$r/expect/expect ; \ + else echo expect ; fi` + +RUNTEST = `if [ -f $${srcroot}/dejagnu/runtest ] ; \ + then echo $${srcroot}/dejagnu/runtest ; \ + else echo runtest ; fi` + + +# compilers to use to create programs which must be run in the build +# environment. +CC_FOR_BUILD = $(CC) +CXX_FOR_BUILD = $(CXX) + +SUBDIRS = "this is set via configure, don't edit this" +OTHERS = + +# This is set by the configure script to the list of directories which +# should be built using the target tools. +TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup + +# Target libraries are put under this directory: +TARGET_SUBDIR = . # Changed by configure to $(target_alias) if cross. + +# This is set by the configure script to the arguments passed to configure. +CONFIG_ARGUMENTS = + +# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared +# was used. +SET_LIB_PATH = + +# This is the name of the environment variable used for the path to +# the libraries. This may be changed by configure.in. +RPATH_ENVVAR = LD_LIBRARY_PATH + +# configure.in sets SET_LIB_PATH to this if --enable-shared was used. +REALLY_SET_LIB_PATH = \ + $(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes:$$$(RPATH_ENVVAR); \ + export $(RPATH_ENVVAR); + +ALL = all.normal +INSTALL_TARGET = install-dirs \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + install-gcc \ + $(INSTALL_DOSREL) + + +CC_FOR_TARGET = ` \ + if [ -f $$r/gcc/Makefile ] ; then \ + if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \ + echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \ + else \ + echo $$r/gcc/xgcc -B$$r/gcc/; \ + fi; \ + else \ + if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat May 2 10:06:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D90A1065676; Sat, 2 May 2009 10:06:51 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4103E8FC0A; Sat, 2 May 2009 10:06:51 +0000 (UTC) (envelope-from dchagin@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 n42A6nsv079221; Sat, 2 May 2009 10:06:49 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42A6n85079217; Sat, 2 May 2009 10:06:49 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200905021006.n42A6n85079217@svn.freebsd.org> From: Dmitry Chagin Date: Sat, 2 May 2009 10:06:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191741 - in head/sys: amd64/linux32 compat/linux i386/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 10:06:51 -0000 Author: dchagin Date: Sat May 2 10:06:49 2009 New Revision: 191741 URL: http://svn.freebsd.org/changeset/base/191741 Log: Move extern variable definitions to the header file. Approved by: kib (mentor) MFC after: 1 month Modified: head/sys/amd64/linux32/linux32_sysvec.c head/sys/compat/linux/linux_futex.c head/sys/compat/linux/linux_futex.h head/sys/i386/linux/linux_sysvec.c Modified: head/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- head/sys/amd64/linux32/linux32_sysvec.c Sat May 2 09:11:21 2009 (r191740) +++ head/sys/amd64/linux32/linux32_sysvec.c Sat May 2 10:06:49 2009 (r191741) @@ -76,6 +76,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -127,9 +128,6 @@ static void exec_linux_setregs(struct th u_long stack, u_long ps_strings); static void linux32_fixlimit(struct rlimit *rl, int which); -extern LIST_HEAD(futex_list, futex) futex_list; -extern struct mtx futex_mtx; - static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; static eventhandler_tag linux_exec_tag; Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Sat May 2 09:11:21 2009 (r191740) +++ head/sys/compat/linux/linux_futex.c Sat May 2 10:06:49 2009 (r191741) @@ -81,7 +81,7 @@ struct futex { TAILQ_HEAD(lf_waiting_proc, waiting_proc) f_waiting_proc; }; -LIST_HEAD(futex_list, futex) futex_list; +struct futex_list futex_list; #define FUTEX_LOCK(f) sx_xlock(&(f)->f_lck) #define FUTEX_UNLOCK(f) sx_xunlock(&(f)->f_lck) Modified: head/sys/compat/linux/linux_futex.h ============================================================================== --- head/sys/compat/linux/linux_futex.h Sat May 2 09:11:21 2009 (r191740) +++ head/sys/compat/linux/linux_futex.h Sat May 2 10:06:49 2009 (r191741) @@ -36,6 +36,9 @@ #ifndef _LINUX_FUTEX_H #define _LINUX_FUTEX_H +extern LIST_HEAD(futex_list, futex) futex_list; +extern struct mtx futex_mtx; + #define LINUX_FUTEX_WAIT 0 #define LINUX_FUTEX_WAKE 1 #define LINUX_FUTEX_FD 2 /* unused */ Modified: head/sys/i386/linux/linux_sysvec.c ============================================================================== --- head/sys/i386/linux/linux_sysvec.c Sat May 2 09:11:21 2009 (r191740) +++ head/sys/i386/linux/linux_sysvec.c Sat May 2 10:06:49 2009 (r191741) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -111,9 +112,6 @@ static register_t *linux_copyout_strings static int linux_szplatform; const char *linux_platform; -extern LIST_HEAD(futex_list, futex) futex_list; -extern struct mtx futex_mtx; - static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; static eventhandler_tag linux_exec_tag; From owner-svn-src-all@FreeBSD.ORG Sat May 2 10:51:40 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D049A10656BF; Sat, 2 May 2009 10:51:40 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6F4808FC19; Sat, 2 May 2009 10:51:40 +0000 (UTC) (envelope-from dchagin@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 n42Apef1083034; Sat, 2 May 2009 10:51:40 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42ApetI083033; Sat, 2 May 2009 10:51:40 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200905021051.n42ApetI083033@svn.freebsd.org> From: Dmitry Chagin Date: Sat, 2 May 2009 10:51:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191742 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 10:51:42 -0000 Author: dchagin Date: Sat May 2 10:51:40 2009 New Revision: 191742 URL: http://svn.freebsd.org/changeset/base/191742 Log: Linux socketpair() call expects explicit specified protocol for AF_LOCAL domain unlike FreeBSD which expects 0 in this case. Approved by: kib (mentor) MFC after: 1 month Modified: head/sys/compat/linux/linux_socket.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Sat May 2 10:06:49 2009 (r191741) +++ head/sys/compat/linux/linux_socket.c Sat May 2 10:51:40 2009 (r191742) @@ -859,7 +859,10 @@ linux_socketpair(struct thread *td, stru return (EINVAL); bsd_args.type = args->type; - bsd_args.protocol = args->protocol; + if (bsd_args.domain == AF_LOCAL && args->protocol == PF_UNIX) + bsd_args.protocol = 0; + else + bsd_args.protocol = args->protocol; bsd_args.rsv = (int *)PTRIN(args->rsv); return (socketpair(td, &bsd_args)); } From owner-svn-src-all@FreeBSD.ORG Sat May 2 11:59:57 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0FC10106564A; Sat, 2 May 2009 11:59:57 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F2FBD8FC12; Sat, 2 May 2009 11:59:56 +0000 (UTC) (envelope-from hrs@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 n42BxuB6084286; Sat, 2 May 2009 11:59:56 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42BxuDF084285; Sat, 2 May 2009 11:59:56 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200905021159.n42BxuDF084285@svn.freebsd.org> From: Hiroki Sato Date: Sat, 2 May 2009 11:59:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191743 - head/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 11:59:57 -0000 Author: hrs Date: Sat May 2 11:59:56 2009 New Revision: 191743 URL: http://svn.freebsd.org/changeset/base/191743 Log: Fix typos: s,Novatal,Novatel, s,/sys/dev/u3g.c,/sys/dev/usb/serial/u3g.c, MFC after: 3 days Modified: head/share/man/man4/u3g.4 Modified: head/share/man/man4/u3g.4 ============================================================================== --- head/share/man/man4/u3g.4 Sat May 2 10:51:40 2009 (r191742) +++ head/share/man/man4/u3g.4 Sat May 2 11:59:56 2009 (r191743) @@ -66,13 +66,13 @@ Qualcomm Inc. CDMA MSM .It Huawei B190, E220 ('') .It -Novatal U740, MC950D, X950D, etc. +Novatel U740, MC950D, X950D, etc. .It Sierra MC875U, MC8775U, etc. .El .Pp (See -.Pa /sys/dev/u3g.c +.Pa /sys/dev/usb/serial/u3g.c for the complete list of supported cards for each vendor mentioned above.) .Pp From owner-svn-src-all@FreeBSD.ORG Sat May 2 12:20:44 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EFCCE1065670; Sat, 2 May 2009 12:20:43 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE3708FC22; Sat, 2 May 2009 12:20:43 +0000 (UTC) (envelope-from mav@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 n42CKhHT084720; Sat, 2 May 2009 12:20:43 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42CKh4A084716; Sat, 2 May 2009 12:20:43 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905021220.n42CKh4A084716@svn.freebsd.org> From: Alexander Motin Date: Sat, 2 May 2009 12:20:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191744 - in head/sys/amd64: amd64 include isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 12:20:44 -0000 Author: mav Date: Sat May 2 12:20:43 2009 New Revision: 191744 URL: http://svn.freebsd.org/changeset/base/191744 Log: Add support for using i8254 and rtc timers as event sources for amd64 SMP system. Redistribute hard-/stat-/profclock events to other CPUs using IPIs. Modified: head/sys/amd64/amd64/mp_machdep.c head/sys/amd64/include/apicvar.h head/sys/amd64/include/clock.h head/sys/amd64/isa/clock.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Sat May 2 11:59:56 2009 (r191743) +++ head/sys/amd64/amd64/mp_machdep.c Sat May 2 12:20:43 2009 (r191744) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1124,6 +1125,15 @@ ipi_bitmap_handler(struct trapframe fram sched_preempt(curthread); /* Nothing to do for AST */ + + if (ipi_bitmap & (1 << IPI_HARDCLOCK)) + hardclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_STATCLOCK)) + statclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_PROFCLOCK)) + profclockintr(&frame); } /* Modified: head/sys/amd64/include/apicvar.h ============================================================================== --- head/sys/amd64/include/apicvar.h Sat May 2 11:59:56 2009 (r191743) +++ head/sys/amd64/include/apicvar.h Sat May 2 12:20:43 2009 (r191744) @@ -126,7 +126,10 @@ /* IPIs handled by IPI_BITMAPED_VECTOR (XXX ups is there a better place?) */ #define IPI_AST 0 /* Generate software trap. */ #define IPI_PREEMPT 1 -#define IPI_BITMAP_LAST IPI_PREEMPT +#define IPI_HARDCLOCK 2 +#define IPI_STATCLOCK 3 +#define IPI_PROFCLOCK 4 +#define IPI_BITMAP_LAST IPI_PROFCLOCK #define IPI_IS_BITMAPED(x) ((x) <= IPI_BITMAP_LAST) #define IPI_STOP (APIC_IPI_INTS + 7) /* Stop CPU until restarted. */ Modified: head/sys/amd64/include/clock.h ============================================================================== --- head/sys/amd64/include/clock.h Sat May 2 11:59:56 2009 (r191743) +++ head/sys/amd64/include/clock.h Sat May 2 12:20:43 2009 (r191744) @@ -24,6 +24,12 @@ extern int tsc_is_invariant; void i8254_init(void); +struct trapframe; + +int hardclockintr(struct trapframe *frame); +int statclockintr(struct trapframe *frame); +int profclockintr(struct trapframe *frame); + /* * Driver to clock driver interface. */ Modified: head/sys/amd64/isa/clock.c ============================================================================== --- head/sys/amd64/isa/clock.c Sat May 2 11:59:56 2009 (r191743) +++ head/sys/amd64/isa/clock.c Sat May 2 12:20:43 2009 (r191744) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -62,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #ifdef DEV_ISA @@ -112,6 +114,35 @@ static struct timecounter i8254_timecoun 0 /* quality */ }; +int +hardclockintr(struct trapframe *frame) +{ + + if (PCPU_GET(cpuid) == 0) + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + else + hardclock_cpu(TRAPF_USERMODE(frame)); + return (FILTER_HANDLED); +} + +int +statclockintr(struct trapframe *frame) +{ + + if (profprocs != 0) + profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + statclock(TRAPF_USERMODE(frame)); + return (FILTER_HANDLED); +} + +int +profclockintr(struct trapframe *frame) +{ + + profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + return (FILTER_HANDLED); +} + static int clkintr(struct trapframe *frame) { @@ -128,7 +159,14 @@ clkintr(struct trapframe *frame) mtx_unlock_spin(&clock_lock); } KASSERT(!using_lapic_timer, ("clk interrupt enabled with lapic timer")); - hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_HARDCLOCK); +#endif + if (PCPU_GET(cpuid) == 0) + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + else + hardclock_cpu(TRAPF_USERMODE(frame)); return (FILTER_HANDLED); } @@ -209,10 +247,19 @@ rtcintr(struct trapframe *frame) if (profprocs != 0) { if (--pscnt == 0) pscnt = psdiv; +#ifdef SMP + if (pscnt != psdiv && smp_started) + ipi_all_but_self(IPI_PROFCLOCK); +#endif profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); } - if (pscnt == psdiv) + if (pscnt == psdiv) { +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_STATCLOCK); +#endif statclock(TRAPF_USERMODE(frame)); + } } return(flag ? FILTER_HANDLED : FILTER_STRAY); } From owner-svn-src-all@FreeBSD.ORG Sat May 2 12:59:47 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99662106566C; Sat, 2 May 2009 12:59:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 87C898FC0C; Sat, 2 May 2009 12:59:47 +0000 (UTC) (envelope-from mav@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 n42CxlT1085529; Sat, 2 May 2009 12:59:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42Cxl0u085525; Sat, 2 May 2009 12:59:47 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905021259.n42Cxl0u085525@svn.freebsd.org> From: Alexander Motin Date: Sat, 2 May 2009 12:59:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191745 - in head/sys/i386: i386 include isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 12:59:48 -0000 Author: mav Date: Sat May 2 12:59:47 2009 New Revision: 191745 URL: http://svn.freebsd.org/changeset/base/191745 Log: Add support for using i8254 and rtc timers as event sources for i386 SMP system. Redistribute hard-/stat-/profclock events to other CPUs using IPI. Modified: head/sys/i386/i386/mp_machdep.c head/sys/i386/include/apicvar.h head/sys/i386/include/clock.h head/sys/i386/isa/clock.c Modified: head/sys/i386/i386/mp_machdep.c ============================================================================== --- head/sys/i386/i386/mp_machdep.c Sat May 2 12:20:43 2009 (r191744) +++ head/sys/i386/i386/mp_machdep.c Sat May 2 12:59:47 2009 (r191745) @@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1284,6 +1285,15 @@ ipi_bitmap_handler(struct trapframe fram #endif /* Nothing to do for AST */ } + + if (ipi_bitmap & (1 << IPI_HARDCLOCK)) + hardclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_STATCLOCK)) + statclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_PROFCLOCK)) + profclockintr(&frame); } /* Modified: head/sys/i386/include/apicvar.h ============================================================================== --- head/sys/i386/include/apicvar.h Sat May 2 12:20:43 2009 (r191744) +++ head/sys/i386/include/apicvar.h Sat May 2 12:59:47 2009 (r191745) @@ -137,7 +137,10 @@ /* IPIs handled by IPI_BITMAPED_VECTOR (XXX ups is there a better place?) */ #define IPI_AST 0 /* Generate software trap. */ #define IPI_PREEMPT 1 -#define IPI_BITMAP_LAST IPI_PREEMPT +#define IPI_HARDCLOCK 2 +#define IPI_STATCLOCK 3 +#define IPI_PROFCLOCK 4 +#define IPI_BITMAP_LAST IPI_PROFCLOCK #define IPI_IS_BITMAPED(x) ((x) <= IPI_BITMAP_LAST) #define IPI_STOP (APIC_IPI_INTS + 7) /* Stop CPU until restarted. */ Modified: head/sys/i386/include/clock.h ============================================================================== --- head/sys/i386/include/clock.h Sat May 2 12:20:43 2009 (r191744) +++ head/sys/i386/include/clock.h Sat May 2 12:59:47 2009 (r191745) @@ -24,6 +24,12 @@ extern int tsc_is_invariant; void i8254_init(void); +struct trapframe; + +int hardclockintr(struct trapframe *frame); +int statclockintr(struct trapframe *frame); +int profclockintr(struct trapframe *frame); + /* * Driver to clock driver interface. */ Modified: head/sys/i386/isa/clock.c ============================================================================== --- head/sys/i386/isa/clock.c Sat May 2 12:20:43 2009 (r191744) +++ head/sys/i386/isa/clock.c Sat May 2 12:59:47 2009 (r191745) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -69,6 +70,7 @@ __FBSDID("$FreeBSD$"); #endif #include #include +#include #include #ifdef DEV_ISA @@ -127,6 +129,35 @@ static struct timecounter i8254_timecoun 0 /* quality */ }; +int +hardclockintr(struct trapframe *frame) +{ + + if (PCPU_GET(cpuid) == 0) + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + else + hardclock_cpu(TRAPF_USERMODE(frame)); + return (FILTER_HANDLED); +} + +int +statclockintr(struct trapframe *frame) +{ + + if (profprocs != 0) + profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + statclock(TRAPF_USERMODE(frame)); + return (FILTER_HANDLED); +} + +int +profclockintr(struct trapframe *frame) +{ + + profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + return (FILTER_HANDLED); +} + static int clkintr(struct trapframe *frame) { @@ -155,7 +186,14 @@ clkintr(struct trapframe *frame) (*lapic_cyclic_clock_func[cpu])(frame); #endif - hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_HARDCLOCK); +#endif + if (PCPU_GET(cpuid) == 0) + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + else + hardclock_cpu(TRAPF_USERMODE(frame)); #ifdef DEV_MCA /* Reset clock interrupt by asserting bit 7 of port 0x61 */ if (MCA_system) @@ -241,10 +279,19 @@ rtcintr(struct trapframe *frame) if (profprocs != 0) { if (--pscnt == 0) pscnt = psdiv; +#ifdef SMP + if (pscnt != psdiv && smp_started) + ipi_all_but_self(IPI_PROFCLOCK); +#endif profclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); } - if (pscnt == psdiv) + if (pscnt == psdiv) { +#ifdef SMP + if (smp_started) + ipi_all_but_self(IPI_STATCLOCK); +#endif statclock(TRAPF_USERMODE(frame)); + } } return(flag ? FILTER_HANDLED : FILTER_STRAY); } From owner-svn-src-all@FreeBSD.ORG Sat May 2 15:14:19 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E6751065673; Sat, 2 May 2009 15:14:19 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 59C5B8FC12; Sat, 2 May 2009 15:14:19 +0000 (UTC) (envelope-from thompsa@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 n42FEJ9j088110; Sat, 2 May 2009 15:14:19 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42FEJ6u088104; Sat, 2 May 2009 15:14:19 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200905021514.n42FEJ6u088104@svn.freebsd.org> From: Andrew Thompson Date: Sat, 2 May 2009 15:14:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191746 - in head/sys: dev/if_ndis dev/ipw dev/iwi dev/iwn dev/usb/wlan dev/wi dev/wpi net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 15:14:20 -0000 Author: thompsa Date: Sat May 2 15:14:18 2009 New Revision: 191746 URL: http://svn.freebsd.org/changeset/base/191746 Log: Create a taskqueue for each wireless interface which provides a serialised sleepable context for net80211 driver callbacks. This removes the need for USB and firmware based drivers to roll their own code to defer the chip programming for state changes, scan requests, channel changes and mcast/promisc updates. When a driver callback completes the hardware state is now guaranteed to have been updated and is in sync with net80211 layer. This nukes around 1300 lines of code from the wireless device drivers making them more readable and less race prone. The net80211 layer has been updated as follows - all state/channel changes are serialised on the taskqueue. - ieee80211_new_state() always queues and can now be called from any context - scanning runs from a single taskq function and executes to completion. driver callbacks are synchronous so the channel, phy mode and rx filters are guaranteed to be set in hardware before probe request frames are transmitted. Help and contributions from Sam Leffler. Reviewed by: sam Deleted: head/sys/dev/usb/wlan/usb_wlan.h Modified: head/sys/dev/if_ndis/if_ndis.c head/sys/dev/if_ndis/if_ndisvar.h head/sys/dev/ipw/if_ipw.c head/sys/dev/ipw/if_ipwvar.h head/sys/dev/iwi/if_iwi.c head/sys/dev/iwi/if_iwivar.h head/sys/dev/iwn/if_iwn.c head/sys/dev/iwn/if_iwnvar.h head/sys/dev/usb/wlan/if_rum.c head/sys/dev/usb/wlan/if_rumvar.h head/sys/dev/usb/wlan/if_uath.c head/sys/dev/usb/wlan/if_uathvar.h head/sys/dev/usb/wlan/if_ural.c head/sys/dev/usb/wlan/if_uralvar.h head/sys/dev/usb/wlan/if_zyd.c head/sys/dev/usb/wlan/if_zydreg.h head/sys/dev/wi/if_wi.c head/sys/dev/wi/if_wivar.h head/sys/dev/wpi/if_wpi.c head/sys/dev/wpi/if_wpivar.h head/sys/net80211/ieee80211.c head/sys/net80211/ieee80211_freebsd.h head/sys/net80211/ieee80211_ioctl.c head/sys/net80211/ieee80211_node.c head/sys/net80211/ieee80211_node.h head/sys/net80211/ieee80211_proto.c head/sys/net80211/ieee80211_scan.c head/sys/net80211/ieee80211_scan.h head/sys/net80211/ieee80211_scan_sta.c head/sys/net80211/ieee80211_var.h Modified: head/sys/dev/if_ndis/if_ndis.c ============================================================================== --- head/sys/dev/if_ndis/if_ndis.c Sat May 2 12:59:47 2009 (r191745) +++ head/sys/dev/if_ndis/if_ndis.c Sat May 2 15:14:18 2009 (r191746) @@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include @@ -173,7 +172,7 @@ static int ndis_newstate (struct ieee802 int); static int ndis_nettype_chan (uint32_t); static int ndis_nettype_mode (uint32_t); -static void ndis_scan (void *, int); +static void ndis_scan (void *); static void ndis_scan_results (struct ndis_softc *); static void ndis_scan_start (struct ieee80211com *); static void ndis_scan_end (struct ieee80211com *); @@ -184,8 +183,6 @@ static void ndis_init (void *); static void ndis_stop (struct ndis_softc *); static int ndis_ifmedia_upd (struct ifnet *); static void ndis_ifmedia_sts (struct ifnet *, struct ifmediareq *); -static void ndis_auth (void *, int); -static void ndis_assoc (void *, int); static int ndis_get_assoc (struct ndis_softc *, ndis_wlan_bssid_ex **); static int ndis_probe_offload (struct ndis_softc *); static int ndis_set_offload (struct ndis_softc *); @@ -741,13 +738,7 @@ ndis_attach(dev) uint32_t arg; int r; - sc->ndis_tq = taskqueue_create("nids_taskq", M_NOWAIT | M_ZERO, - taskqueue_thread_enqueue, &sc->ndis_tq); - taskqueue_start_threads(&sc->ndis_tq, 1, PI_NET, "%s taskq", - device_get_nameunit(dev)); - TASK_INIT(&sc->ndis_scantask, 0, ndis_scan, sc); - TASK_INIT(&sc->ndis_authtask, 0, ndis_auth, sc); - TASK_INIT(&sc->ndis_assoctask, 0, ndis_assoc, sc); + callout_init(&sc->ndis_scan_callout, CALLOUT_MPSAFE); ifp->if_ioctl = ndis_ioctl_80211; ic->ic_ifp = ifp; @@ -1054,12 +1045,6 @@ ndis_detach(dev) } else NDIS_UNLOCK(sc); - if (sc->ndis_80211) { - taskqueue_drain(sc->ndis_tq, &sc->ndis_scantask); - taskqueue_drain(sc->ndis_tq, &sc->ndis_authtask); - taskqueue_drain(sc->ndis_tq, &sc->ndis_assoctask); - } - if (sc->ndis_tickitem != NULL) IoFreeWorkItem(sc->ndis_tickitem); if (sc->ndis_startitem != NULL) @@ -1121,8 +1106,6 @@ ndis_detach(dev) if (sc->ndis_iftype == PCIBus) bus_dma_tag_destroy(sc->ndis_parent_tag); - if (sc->ndis_80211) - taskqueue_free(sc->ndis_tq); return(0); } @@ -2419,30 +2402,6 @@ ndis_setstate_80211(sc) } static void -ndis_auth(void *arg, int npending) -{ - struct ndis_softc *sc = arg; - struct ifnet *ifp = sc->ifp; - struct ieee80211com *ic = ifp->if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); - - vap->iv_state = IEEE80211_S_AUTH; - ndis_auth_and_assoc(sc, vap); -} - -static void -ndis_assoc(void *arg, int npending) -{ - struct ndis_softc *sc = arg; - struct ifnet *ifp = sc->ifp; - struct ieee80211com *ic = ifp->if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); - - vap->iv_state = IEEE80211_S_ASSOC; - ndis_auth_and_assoc(sc, vap); -} - -static void ndis_auth_and_assoc(sc, vap) struct ndis_softc *sc; struct ieee80211vap *vap; @@ -2656,9 +2615,6 @@ ndis_auth_and_assoc(sc, vap) if (rval) device_printf (sc->ndis_dev, "set ssid failed: %d\n", rval); - if (vap->iv_state == IEEE80211_S_AUTH) - ieee80211_new_state(vap, IEEE80211_S_ASSOC, 0); - return; } @@ -3304,13 +3260,18 @@ ndis_newstate(struct ieee80211vap *vap, return nvp->newstate(vap, nstate, arg); case IEEE80211_S_ASSOC: if (ostate != IEEE80211_S_AUTH) { - taskqueue_enqueue(sc->ndis_tq, &sc->ndis_assoctask); - return EINPROGRESS; + IEEE80211_UNLOCK(ic); + ndis_auth_and_assoc(sc, vap); + IEEE80211_LOCK(ic); } break; case IEEE80211_S_AUTH: - taskqueue_enqueue(sc->ndis_tq, &sc->ndis_authtask); - return EINPROGRESS; + IEEE80211_UNLOCK(ic); + ndis_auth_and_assoc(sc, vap); + if (vap->iv_state == IEEE80211_S_AUTH) /* XXX */ + ieee80211_new_state(vap, IEEE80211_S_ASSOC, 0); + IEEE80211_LOCK(ic); + break; default: break; } @@ -3318,54 +3279,18 @@ ndis_newstate(struct ieee80211vap *vap, } static void -ndis_scan(void *arg, int npending) +ndis_scan(void *arg) { struct ndis_softc *sc = arg; struct ieee80211com *ic; struct ieee80211vap *vap; - struct ieee80211_scan_state *ss; - ndis_80211_ssid ssid; - int error, len; ic = sc->ifp->if_l2com; - ss = ic->ic_scan; vap = TAILQ_FIRST(&ic->ic_vaps); - if (!NDIS_INITIALIZED(sc)) { - DPRINTF(("%s: scan aborted\n", __func__)); - ieee80211_cancel_scan(vap); - return; - } - - len = sizeof(ssid); - bzero((char *)&ssid, len); - if (ss->ss_nssid == 0) - ssid.ns_ssidlen = 1; - else { - /* Perform a directed scan */ - ssid.ns_ssidlen = ss->ss_ssid[0].len; - bcopy(ss->ss_ssid[0].ssid, ssid.ns_ssid, ssid.ns_ssidlen); - } - - error = ndis_set_info(sc, OID_802_11_SSID, &ssid, &len); - if (error) - DPRINTF(("%s: set ESSID failed\n", __func__)); - - len = 0; - error = ndis_set_info(sc, OID_802_11_BSSID_LIST_SCAN, - NULL, &len); - if (error) { - DPRINTF(("%s: scan command failed\n", __func__)); - ieee80211_cancel_scan(vap); - return; - } - - pause("ssidscan", hz * 3); - if (!NDIS_INITIALIZED(sc)) - /* The interface was downed while we were sleeping */ - return; - + NDIS_LOCK(sc); ndis_scan_results(sc); + NDIS_UNLOCK(sc); ieee80211_scan_done(vap); } @@ -3496,8 +3421,48 @@ ndis_scan_start(struct ieee80211com *ic) { struct ifnet *ifp = ic->ic_ifp; struct ndis_softc *sc = ifp->if_softc; + struct ieee80211vap *vap; + struct ieee80211_scan_state *ss; + ndis_80211_ssid ssid; + int error, len; + + ss = ic->ic_scan; + vap = TAILQ_FIRST(&ic->ic_vaps); + + NDIS_LOCK(sc); + if (!NDIS_INITIALIZED(sc)) { + DPRINTF(("%s: scan aborted\n", __func__)); + NDIS_UNLOCK(sc); + ieee80211_cancel_scan(vap); + return; + } - taskqueue_enqueue(sc->ndis_tq, &sc->ndis_scantask); + len = sizeof(ssid); + bzero((char *)&ssid, len); + if (ss->ss_nssid == 0) + ssid.ns_ssidlen = 1; + else { + /* Perform a directed scan */ + ssid.ns_ssidlen = ss->ss_ssid[0].len; + bcopy(ss->ss_ssid[0].ssid, ssid.ns_ssid, ssid.ns_ssidlen); + } + + error = ndis_set_info(sc, OID_802_11_SSID, &ssid, &len); + if (error) + DPRINTF(("%s: set ESSID failed\n", __func__)); + + len = 0; + error = ndis_set_info(sc, OID_802_11_BSSID_LIST_SCAN, + NULL, &len); + if (error) { + DPRINTF(("%s: scan command failed\n", __func__)); + NDIS_UNLOCK(sc); + ieee80211_cancel_scan(vap); + return; + } + NDIS_UNLOCK(sc); + /* Set a timer to collect the results */ + callout_reset(&sc->ndis_scan_callout, hz * 3, ndis_scan, sc); } static void Modified: head/sys/dev/if_ndis/if_ndisvar.h ============================================================================== --- head/sys/dev/if_ndis/if_ndisvar.h Sat May 2 12:59:47 2009 (r191745) +++ head/sys/dev/if_ndis/if_ndisvar.h Sat May 2 15:14:18 2009 (r191746) @@ -180,6 +180,7 @@ struct ndis_softc { ndis_miniport_block *ndis_block; ndis_miniport_characteristics *ndis_chars; interface_type ndis_type; + struct callout ndis_scan_callout; struct callout ndis_stat_callout; int ndis_maxpkts; ndis_oid *ndis_oids; @@ -219,10 +220,6 @@ struct ndis_softc { struct ifqueue ndis_rxqueue; kspin_lock ndis_rxlock; - struct taskqueue *ndis_tq; /* private task queue */ - struct task ndis_scantask; - struct task ndis_authtask; - struct task ndis_assoctask; int (*ndis_newstate)(struct ieee80211com *, enum ieee80211_state, int); int ndis_tx_timer; Modified: head/sys/dev/ipw/if_ipw.c ============================================================================== --- head/sys/dev/ipw/if_ipw.c Sat May 2 12:59:47 2009 (r191745) +++ head/sys/dev/ipw/if_ipw.c Sat May 2 15:14:18 2009 (r191746) @@ -118,10 +118,6 @@ static void ipw_media_status(struct ifne static int ipw_newstate(struct ieee80211vap *, enum ieee80211_state, int); static uint16_t ipw_read_prom_word(struct ipw_softc *, uint8_t); static void ipw_rx_cmd_intr(struct ipw_softc *, struct ipw_soft_buf *); -static void ipw_assocsuccess(void *, int); -static void ipw_assocfailed(void *, int); -static void ipw_scandone(void *, int); -static void ipw_bmiss(void *, int); static void ipw_rx_newstate_intr(struct ipw_softc *, struct ipw_soft_buf *); static void ipw_rx_data_intr(struct ipw_softc *, struct ipw_status *, struct ipw_soft_bd *, struct ipw_soft_buf *); @@ -147,8 +143,8 @@ static int ipw_reset(struct ipw_softc *) static int ipw_load_ucode(struct ipw_softc *, const char *, int); static int ipw_load_firmware(struct ipw_softc *, const char *, int); static int ipw_config(struct ipw_softc *); -static void ipw_assoc_task(void *, int); -static void ipw_disassoc_task(void *, int); +static void ipw_assoc(struct ieee80211com *, struct ieee80211vap *); +static void ipw_disassoc(struct ieee80211com *, struct ieee80211vap *); static void ipw_init_task(void *, int); static void ipw_init(void *); static void ipw_init_locked(struct ipw_softc *); @@ -166,7 +162,6 @@ static void ipw_read_mem_1(struct ipw_so #endif static void ipw_write_mem_1(struct ipw_softc *, bus_size_t, const uint8_t *, bus_size_t); -static void ipw_scan_task(void *, int); static int ipw_scan(struct ipw_softc *); static void ipw_scan_start(struct ieee80211com *); static void ipw_scan_end(struct ieee80211com *); @@ -239,8 +234,6 @@ ipw_attach(device_t dev) MTX_DEF | MTX_RECURSE); TASK_INIT(&sc->sc_init_task, 0, ipw_init_task, sc); - TASK_INIT(&sc->sc_scan_task, 0, ipw_scan_task, sc); - TASK_INIT(&sc->sc_bmiss_task, 0, ipw_bmiss, sc); callout_init_mtx(&sc->sc_wdtimer, &sc->sc_mtx, 0); if (pci_get_powerstate(dev) != PCI_POWERSTATE_D0) { @@ -417,9 +410,7 @@ ipw_detach(device_t dev) ieee80211_ifdetach(ic); callout_drain(&sc->sc_wdtimer); - taskqueue_drain(taskqueue_swi, &sc->sc_init_task); - taskqueue_drain(taskqueue_swi, &sc->sc_scan_task); - taskqueue_drain(taskqueue_swi, &sc->sc_bmiss_task); + ieee80211_draintask(ic, &sc->sc_init_task); ipw_release(sc); @@ -511,12 +502,6 @@ ipw_vap_create(struct ieee80211com *ic, return NULL; vap = &ivp->vap; - TASK_INIT(&ivp->assoc_task, 0, ipw_assoc_task, vap); - TASK_INIT(&ivp->disassoc_task, 0, ipw_disassoc_task, vap); - TASK_INIT(&ivp->assoc_success_task, 0, ipw_assocsuccess, vap); - TASK_INIT(&ivp->assoc_failed_task, 0, ipw_assocfailed, vap); - TASK_INIT(&ivp->scandone_task, 0, ipw_scandone, vap); - ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid, mac); /* override with driver methods */ ivp->newstate = vap->iv_newstate; @@ -894,11 +879,15 @@ ipw_newstate(struct ieee80211vap *vap, e struct ieee80211com *ic = vap->iv_ic; struct ifnet *ifp = ic->ic_ifp; struct ipw_softc *sc = ifp->if_softc; + enum ieee80211_state ostate; DPRINTF(("%s: %s -> %s flags 0x%x\n", __func__, ieee80211_state_name[vap->iv_state], ieee80211_state_name[nstate], sc->flags)); + ostate = vap->iv_state; + IEEE80211_UNLOCK(ic); + switch (nstate) { case IEEE80211_S_RUN: if (ic->ic_opmode == IEEE80211_M_IBSS) { @@ -910,39 +899,33 @@ ipw_newstate(struct ieee80211vap *vap, e * AUTH -> RUN transition and we want to do nothing. * This is all totally bogus and needs to be redone. */ - if (vap->iv_state == IEEE80211_S_SCAN) { - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->assoc_task); - return EINPROGRESS; - } + if (ostate == IEEE80211_S_SCAN) + ipw_assoc(ic, vap); } break; case IEEE80211_S_INIT: if (sc->flags & IPW_FLAG_ASSOCIATED) - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->disassoc_task); + ipw_disassoc(ic, vap); break; case IEEE80211_S_AUTH: - taskqueue_enqueue(taskqueue_swi, &IPW_VAP(vap)->assoc_task); - return EINPROGRESS; + ipw_assoc(ic, vap); + break; case IEEE80211_S_ASSOC: /* * If we are not transitioning from AUTH the resend the * association request. */ - if (vap->iv_state != IEEE80211_S_AUTH) { - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->assoc_task); - return EINPROGRESS; - } + if (ostate != IEEE80211_S_AUTH) + ipw_assoc(ic, vap); break; default: break; } + IEEE80211_LOCK(ic); return ivp->newstate(vap, nstate, arg); } @@ -1020,38 +1003,6 @@ ipw_rx_cmd_intr(struct ipw_softc *sc, st } static void -ipw_assocsuccess(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_new_state(vap, IEEE80211_S_RUN, -1); -} - -static void -ipw_assocfailed(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); -} - -static void -ipw_scandone(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_scan_done(vap); -} - -static void -ipw_bmiss(void *arg, int npending) -{ - struct ieee80211com *ic = arg; - - ieee80211_beacon_miss(ic); -} - -static void ipw_rx_newstate_intr(struct ipw_softc *sc, struct ipw_soft_buf *sbuf) { #define IEEESTATE(vap) ieee80211_state_name[vap->iv_state] @@ -1076,8 +1027,7 @@ ipw_rx_newstate_intr(struct ipw_softc *s } sc->flags &= ~IPW_FLAG_ASSOCIATING; sc->flags |= IPW_FLAG_ASSOCIATED; - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->assoc_success_task); + ieee80211_new_state(vap, IEEE80211_S_RUN, -1); break; case IPW_STATE_SCANNING: @@ -1091,7 +1041,7 @@ ipw_rx_newstate_intr(struct ipw_softc *s */ if (sc->flags & IPW_FLAG_ASSOCIATED) { /* XXX probably need to issue disassoc to fw */ - taskqueue_enqueue(taskqueue_swi, &sc->sc_bmiss_task); + ieee80211_beacon_miss(ic); } break; @@ -1110,8 +1060,7 @@ ipw_rx_newstate_intr(struct ipw_softc *s break; } if (sc->flags & IPW_FLAG_SCANNING) { - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->scandone_task); + ieee80211_scan_done(vap); sc->flags &= ~IPW_FLAG_SCANNING; sc->sc_scan_timer = 0; } @@ -1122,8 +1071,7 @@ ipw_rx_newstate_intr(struct ipw_softc *s IEEESTATE(vap), sc->flags)); sc->flags &= ~(IPW_FLAG_ASSOCIATING | IPW_FLAG_ASSOCIATED); if (vap->iv_state == IEEE80211_S_RUN) - taskqueue_enqueue(taskqueue_swi, - &IPW_VAP(vap)->assoc_failed_task); + ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); break; case IPW_STATE_DISABLED: @@ -1432,6 +1380,16 @@ ipw_tx_intr(struct ipw_softc *sc) } static void +ipw_fatal_error_intr(struct ipw_softc *sc) +{ + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + + device_printf(sc->sc_dev, "firmware error\n"); + ieee80211_runtask(ic, &sc->sc_init_task); +} + +static void ipw_intr(void *arg) { struct ipw_softc *sc = arg; @@ -1440,10 +1398,9 @@ ipw_intr(void *arg) IPW_LOCK(sc); - if ((r = CSR_READ_4(sc, IPW_CSR_INTR)) == 0 || r == 0xffffffff) { - IPW_UNLOCK(sc); - return; - } + r = CSR_READ_4(sc, IPW_CSR_INTR); + if (r == 0 || r == 0xffffffff) + goto done; /* disable interrupts */ CSR_WRITE_4(sc, IPW_CSR_INTR_MASK, 0); @@ -1452,9 +1409,8 @@ ipw_intr(void *arg) CSR_WRITE_4(sc, IPW_CSR_INTR, r); if (r & (IPW_INTR_FATAL_ERROR | IPW_INTR_PARITY_ERROR)) { - device_printf(sc->sc_dev, "firmware error\n"); - taskqueue_enqueue(taskqueue_swi, &sc->sc_init_task); - r = 0; /* don't process more interrupts */ + ipw_fatal_error_intr(sc); + goto done; } if (r & IPW_INTR_FW_INIT_DONE) @@ -1468,7 +1424,7 @@ ipw_intr(void *arg) /* re-enable interrupts */ CSR_WRITE_4(sc, IPW_CSR_INTR_MASK, IPW_INTR_MASK); - +done: IPW_UNLOCK(sc); } @@ -2181,20 +2137,6 @@ ipw_setscanopts(struct ipw_softc *sc, ui return ipw_cmd(sc, IPW_CMD_SET_SCAN_OPTIONS, &opts, sizeof(opts)); } -/* - * Handler for sc_scan_task. This is a simple wrapper around ipw_scan(). - */ -static void -ipw_scan_task(void *context, int pending) -{ - struct ipw_softc *sc = context; - IPW_LOCK_DECL; - - IPW_LOCK(sc); - ipw_scan(sc); - IPW_UNLOCK(sc); -} - static int ipw_scan(struct ipw_softc *sc) { @@ -2258,11 +2200,9 @@ ipw_setchannel(struct ipw_softc *sc, str } static void -ipw_assoc_task(void *context, int pending) +ipw_assoc(struct ieee80211com *ic, struct ieee80211vap *vap) { - struct ieee80211vap *vap = context; struct ifnet *ifp = vap->iv_ic->ic_ifp; - struct ieee80211com *ic = ifp->if_l2com; struct ipw_softc *sc = ifp->if_softc; struct ieee80211_node *ni = vap->iv_bss; struct ipw_security security; @@ -2353,9 +2293,8 @@ done: } static void -ipw_disassoc_task(void *context, int pending) +ipw_disassoc(struct ieee80211com *ic, struct ieee80211vap *vap) { - struct ieee80211vap *vap = context; struct ifnet *ifp = vap->iv_ic->ic_ifp; struct ieee80211_node *ni = vap->iv_bss; struct ipw_softc *sc = ifp->if_softc; @@ -2729,8 +2668,7 @@ ipw_scan_start(struct ieee80211com *ic) IPW_LOCK_DECL; IPW_LOCK(sc); - if (!(sc->flags & IPW_FLAG_SCANNING)) - taskqueue_enqueue(taskqueue_swi, &sc->sc_scan_task); + ipw_scan(sc); IPW_UNLOCK(sc); } Modified: head/sys/dev/ipw/if_ipwvar.h ============================================================================== --- head/sys/dev/ipw/if_ipwvar.h Sat May 2 12:59:47 2009 (r191745) +++ head/sys/dev/ipw/if_ipwvar.h Sat May 2 15:14:18 2009 (r191746) @@ -78,11 +78,6 @@ struct ipw_tx_radiotap_header { struct ipw_vap { struct ieee80211vap vap; - struct task assoc_task; - struct task disassoc_task; - struct task assoc_success_task; - struct task assoc_failed_task; - struct task scandone_task; int (*newstate)(struct ieee80211vap *, enum ieee80211_state, int); @@ -95,9 +90,6 @@ struct ipw_softc { struct mtx sc_mtx; struct task sc_init_task; - struct task sc_scan_task; - struct task sc_chan_task; - struct task sc_bmiss_task; struct callout sc_wdtimer; /* watchdog timer */ uint32_t flags; Modified: head/sys/dev/iwi/if_iwi.c ============================================================================== --- head/sys/dev/iwi/if_iwi.c Sat May 2 12:59:47 2009 (r191745) +++ head/sys/dev/iwi/if_iwi.c Sat May 2 15:14:18 2009 (r191746) @@ -158,9 +158,6 @@ static int iwi_wme_update(struct ieee802 static uint16_t iwi_read_prom_word(struct iwi_softc *, uint8_t); static void iwi_frame_intr(struct iwi_softc *, struct iwi_rx_data *, int, struct iwi_frame *); -static void iwi_authsuccess(void *, int); -static void iwi_assocsuccess(void *, int); -static void iwi_assocfailed(void *, int); static void iwi_notification_intr(struct iwi_softc *, struct iwi_notif *); static void iwi_rx_intr(struct iwi_softc *); static void iwi_tx_intr(struct iwi_softc *, struct iwi_tx_ring *); @@ -186,16 +183,11 @@ static void iwi_put_firmware(struct iwi_ static int iwi_scanchan(struct iwi_softc *, unsigned long, int); static void iwi_scan_start(struct ieee80211com *); static void iwi_scan_end(struct ieee80211com *); -static void iwi_scanabort(void *, int); static void iwi_set_channel(struct ieee80211com *); static void iwi_scan_curchan(struct ieee80211_scan_state *, unsigned long maxdwell); -#if 0 -static void iwi_scan_allchan(struct ieee80211com *, unsigned long maxdwell); -#endif static void iwi_scan_mindwell(struct ieee80211_scan_state *); -static void iwi_ops(void *, int); -static int iwi_queue_cmd(struct iwi_softc *, int, unsigned long); static int iwi_auth_and_assoc(struct iwi_softc *, struct ieee80211vap *); +static void iwi_disassoc(void *, int); static int iwi_disassociate(struct iwi_softc *, int quiet); static void iwi_init_locked(struct iwi_softc *); static void iwi_init(void *); @@ -292,24 +284,14 @@ iwi_attach(device_t dev) ic = ifp->if_l2com; IWI_LOCK_INIT(sc); - IWI_CMD_LOCK_INIT(sc); sc->sc_unr = new_unrhdr(1, IWI_MAX_IBSSNODE-1, &sc->sc_mtx); - sc->sc_tq = taskqueue_create("iwi_taskq", M_NOWAIT | M_ZERO, - taskqueue_thread_enqueue, &sc->sc_tq); - taskqueue_start_threads(&sc->sc_tq, 1, PI_NET, "%s taskq", - device_get_nameunit(dev)); - sc->sc_tq2 = taskqueue_create("iwi_taskq2", M_NOWAIT | M_ZERO, - taskqueue_thread_enqueue, &sc->sc_tq2); - taskqueue_start_threads(&sc->sc_tq2, 1, PI_NET, "%s taskq2", - device_get_nameunit(dev)); - TASK_INIT(&sc->sc_radiontask, 0, iwi_radio_on, sc); TASK_INIT(&sc->sc_radiofftask, 0, iwi_radio_off, sc); TASK_INIT(&sc->sc_restarttask, 0, iwi_restart, sc); - TASK_INIT(&sc->sc_opstask, 0, iwi_ops, sc); - TASK_INIT(&sc->sc_scanaborttask, 0, iwi_scanabort, sc); + TASK_INIT(&sc->sc_disassoctask, 0, iwi_disassoc, sc); + callout_init_mtx(&sc->sc_wdtimer, &sc->sc_mtx, 0); callout_init_mtx(&sc->sc_rftimer, &sc->sc_mtx, 0); @@ -483,8 +465,10 @@ iwi_detach(device_t dev) ieee80211_ifdetach(ic); /* NB: do early to drain any pending tasks */ - taskqueue_free(sc->sc_tq); - taskqueue_free(sc->sc_tq2); + ieee80211_draintask(ic, &sc->sc_radiontask); + ieee80211_draintask(ic, &sc->sc_radiofftask); + ieee80211_draintask(ic, &sc->sc_restarttask); + ieee80211_draintask(ic, &sc->sc_disassoctask); iwi_put_firmware(sc); iwi_release_fw_dma(sc); @@ -504,7 +488,6 @@ iwi_detach(device_t dev) delete_unrhdr(sc->sc_unr); IWI_LOCK_DESTROY(sc); - IWI_CMD_LOCK_DESTROY(sc); if_free(ifp); @@ -552,10 +535,6 @@ iwi_vap_create(struct ieee80211com *ic, ivp->iwi_newstate = vap->iv_newstate; vap->iv_newstate = iwi_newstate; - TASK_INIT(&ivp->iwi_authsuccess_task, 0, iwi_authsuccess, vap); - TASK_INIT(&ivp->iwi_assocsuccess_task, 0, iwi_assocsuccess, vap); - TASK_INIT(&ivp->iwi_assocfailed_task, 0, iwi_assocfailed, vap); - /* complete setup */ ieee80211_vap_attach(vap, ieee80211_media_change, iwi_media_status); ic->ic_opmode = opmode; @@ -987,21 +966,21 @@ iwi_newstate(struct ieee80211vap *vap, e ieee80211_state_name[vap->iv_state], ieee80211_state_name[nstate], sc->flags)); + IEEE80211_UNLOCK(ic); + IWI_LOCK(sc); switch (nstate) { case IEEE80211_S_INIT: - IWI_LOCK(sc); /* * NB: don't try to do this if iwi_stop_master has * shutdown the firmware and disabled interrupts. */ if (vap->iv_state == IEEE80211_S_RUN && (sc->flags & IWI_FLAG_FW_INITED)) - iwi_queue_cmd(sc, IWI_DISASSOC, 1); - IWI_UNLOCK(sc); + iwi_disassociate(sc, 0); break; case IEEE80211_S_AUTH: - iwi_queue_cmd(sc, IWI_AUTH, arg); - return EINPROGRESS; + iwi_auth_and_assoc(sc, vap); + break; case IEEE80211_S_RUN: if (vap->iv_opmode == IEEE80211_M_IBSS && vap->iv_state == IEEE80211_S_SCAN) { @@ -1013,8 +992,7 @@ iwi_newstate(struct ieee80211vap *vap, e * AUTH -> RUN transition and we want to do nothing. * This is all totally bogus and needs to be redone. */ - iwi_queue_cmd(sc, IWI_ASSOC, 0); - return EINPROGRESS; + iwi_auth_and_assoc(sc, vap); } break; case IEEE80211_S_ASSOC: @@ -1025,11 +1003,13 @@ iwi_newstate(struct ieee80211vap *vap, e */ if (vap->iv_state == IEEE80211_S_AUTH) break; - iwi_queue_cmd(sc, IWI_ASSOC, arg); - return EINPROGRESS; + iwi_auth_and_assoc(sc, vap); + break; default: break; } + IWI_UNLOCK(sc); + IEEE80211_LOCK(ic); return ivp->iwi_newstate(vap, nstate, arg); } @@ -1106,6 +1086,7 @@ static int iwi_wme_update(struct ieee80211com *ic) { struct iwi_softc *sc = ic->ic_ifp->if_softc; + struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); /* * We may be called to update the WME parameters in @@ -1115,7 +1096,9 @@ iwi_wme_update(struct ieee80211com *ic) * will get sent down to the adapter as part of the * work iwi_auth_and_assoc does. */ - return iwi_queue_cmd(sc, IWI_SET_WME, 0); + if (vap->iv_state == IEEE80211_S_RUN) + (void) iwi_wme_setparams(sc, ic); + return (0); } static int @@ -1389,30 +1372,6 @@ iwi_checkforqos(struct ieee80211vap *vap */ static void -iwi_authsuccess(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_new_state(vap, IEEE80211_S_ASSOC, -1); -} - -static void -iwi_assocsuccess(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_new_state(vap, IEEE80211_S_RUN, -1); -} - -static void -iwi_assocfailed(void *arg, int npending) -{ - struct ieee80211vap *vap = arg; - - ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); -} - -static void iwi_notification_intr(struct iwi_softc *sc, struct iwi_notif *notif) { struct ifnet *ifp = sc->sc_ifp; @@ -1454,8 +1413,7 @@ iwi_notification_intr(struct iwi_softc * switch (auth->state) { case IWI_AUTH_SUCCESS: DPRINTFN(2, ("Authentication succeeeded\n")); - taskqueue_enqueue(taskqueue_swi, - &IWI_VAP(vap)->iwi_authsuccess_task); + ieee80211_new_state(vap, IEEE80211_S_ASSOC, -1); break; case IWI_AUTH_FAIL: /* @@ -1472,8 +1430,7 @@ iwi_notification_intr(struct iwi_softc * DPRINTFN(2, ("Deauthenticated\n")); vap->iv_stats.is_rx_deauth++; } - taskqueue_enqueue(taskqueue_swi, - &IWI_VAP(vap)->iwi_assocfailed_task); + ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); break; case IWI_AUTH_SENT_1: case IWI_AUTH_RECV_2: @@ -1506,8 +1463,7 @@ iwi_notification_intr(struct iwi_softc * iwi_checkforqos(vap, (const struct ieee80211_frame *)(assoc+1), le16toh(notif->len) - sizeof(*assoc)); - taskqueue_enqueue(taskqueue_swi, - &IWI_VAP(vap)->iwi_assocsuccess_task); + ieee80211_new_state(vap, IEEE80211_S_RUN, -1); break; case IWI_ASSOC_INIT: sc->flags &= ~IWI_FLAG_ASSOCIATED; @@ -1515,16 +1471,14 @@ iwi_notification_intr(struct iwi_softc * case IWI_FW_ASSOCIATING: DPRINTFN(2, ("Association failed\n")); IWI_STATE_END(sc, IWI_FW_ASSOCIATING); - taskqueue_enqueue(taskqueue_swi, - &IWI_VAP(vap)->iwi_assocfailed_task); + ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); break; case IWI_FW_DISASSOCIATING: DPRINTFN(2, ("Dissassociated\n")); IWI_STATE_END(sc, IWI_FW_DISASSOCIATING); vap->iv_stats.is_rx_disassoc++; - taskqueue_enqueue(taskqueue_swi, - &IWI_VAP(vap)->iwi_assocfailed_task); + ieee80211_new_state(vap, IEEE80211_S_SCAN, -1); break; } break; @@ -1563,7 +1517,7 @@ iwi_notification_intr(struct iwi_softc * * to disassociate and then on completion we'll * kick the state machine to scan. */ - iwi_queue_cmd(sc, IWI_DISASSOC, 1); + ieee80211_runtask(ic, &sc->sc_disassoctask); } } break; @@ -1664,6 +1618,29 @@ iwi_tx_intr(struct iwi_softc *sc, struct } static void +iwi_fatal_error_intr(struct iwi_softc *sc) +{ + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + + device_printf(sc->sc_dev, "firmware error\n"); + ieee80211_runtask(ic, &sc->sc_restarttask); + + sc->flags &= ~IWI_FLAG_BUSY; + sc->sc_busy_timer = 0; + wakeup(sc); +} + +static void +iwi_radio_off_intr(struct iwi_softc *sc) +{ + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + + ieee80211_runtask(ic, &sc->sc_radiofftask); +} + +static void iwi_intr(void *arg) { struct iwi_softc *sc = arg; @@ -1681,12 +1658,8 @@ iwi_intr(void *arg) CSR_WRITE_4(sc, IWI_CSR_INTR, r); if (r & IWI_INTR_FATAL_ERROR) { - device_printf(sc->sc_dev, "firmware error\n"); - taskqueue_enqueue(sc->sc_tq2, &sc->sc_restarttask); - - sc->flags &= ~IWI_FLAG_BUSY; - sc->sc_busy_timer = 0; - wakeup(sc); + iwi_fatal_error_intr(sc); + goto done; } if (r & IWI_INTR_FW_INITED) { @@ -1695,7 +1668,7 @@ iwi_intr(void *arg) } if (r & IWI_INTR_RADIO_OFF) - taskqueue_enqueue(sc->sc_tq, &sc->sc_radiofftask); + iwi_radio_off_intr(sc); if (r & IWI_INTR_CMD_DONE) { sc->flags &= ~IWI_FLAG_BUSY; @@ -1722,7 +1695,7 @@ iwi_intr(void *arg) /* XXX rate-limit */ device_printf(sc->sc_dev, "parity error\n"); } - +done: IWI_UNLOCK(sc); } @@ -2008,6 +1981,7 @@ iwi_watchdog(void *arg) { struct iwi_softc *sc = arg; struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; IWI_LOCK_ASSERT(sc); @@ -2015,25 +1989,25 @@ iwi_watchdog(void *arg) if (--sc->sc_tx_timer == 0) { if_printf(ifp, "device timeout\n"); ifp->if_oerrors++; - taskqueue_enqueue(sc->sc_tq2, &sc->sc_restarttask); + ieee80211_runtask(ic, &sc->sc_restarttask); } } if (sc->sc_state_timer > 0) { if (--sc->sc_state_timer == 0) { if_printf(ifp, "firmware stuck in state %d, resetting\n", sc->fw_state); - taskqueue_enqueue(sc->sc_tq2, &sc->sc_restarttask); if (sc->fw_state == IWI_FW_SCANNING) { struct ieee80211com *ic = ifp->if_l2com; ieee80211_cancel_scan(TAILQ_FIRST(&ic->ic_vaps)); } + ieee80211_runtask(ic, &sc->sc_restarttask); sc->sc_state_timer = 3; } } if (sc->sc_busy_timer > 0) { if (--sc->sc_busy_timer == 0) { if_printf(ifp, "firmware command timeout, resetting\n"); - taskqueue_enqueue(sc->sc_tq2, &sc->sc_restarttask); + ieee80211_runtask(ic, &sc->sc_restarttask); } } callout_reset(&sc->sc_wdtimer, hz, iwi_watchdog, sc); @@ -2665,7 +2639,7 @@ scan_band(const struct ieee80211_channel * Start a scan on the current channel or all channels. */ static int -iwi_scanchan(struct iwi_softc *sc, unsigned long maxdwell, int mode) +iwi_scanchan(struct iwi_softc *sc, unsigned long maxdwell, int allchan) { struct ieee80211com *ic; struct ieee80211_channel *chan; @@ -2712,7 +2686,7 @@ iwi_scanchan(struct iwi_softc *sc, unsig return (error); } - if (mode == IWI_SCAN_ALLCHAN) { + if (allchan) { int i, next, band, b, bstart; /* * Convert scan list to run-length encoded channel list @@ -2781,20 +2755,6 @@ iwi_scanchan(struct iwi_softc *sc, unsig return (iwi_cmd(sc, IWI_CMD_SCAN_EXT, &scan, sizeof scan)); } -static void -iwi_scanabort(void *arg, int npending) -{ - struct iwi_softc *sc = arg; - IWI_LOCK_DECL; - - IWI_LOCK(sc); - sc->flags &= ~IWI_FLAG_CHANNEL_SCAN; - /* NB: make sure we're still scanning */ - if (sc->fw_state == IWI_FW_SCANNING) - iwi_cmd(sc, IWI_CMD_ABORT_SCAN, NULL, 0); - IWI_UNLOCK(sc); -} - static int iwi_set_sensitivity(struct iwi_softc *sc, int8_t rssi_dbm) { @@ -2986,6 +2946,17 @@ done: return (error); } +static void +iwi_disassoc(void *arg, int pending) +{ + struct iwi_softc *sc = arg; + IWI_LOCK_DECL; + + IWI_LOCK(sc); + iwi_disassociate(sc, 0); + IWI_UNLOCK(sc); +} + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sat May 2 16:23:45 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44C1E106566B; Sat, 2 May 2009 16:23:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2FF688FC18; Sat, 2 May 2009 16:23:45 +0000 (UTC) (envelope-from hrs@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 n42GNjWZ089583; Sat, 2 May 2009 16:23:45 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42GNjvR089580; Sat, 2 May 2009 16:23:45 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <200905021623.n42GNjvR089580@svn.freebsd.org> From: Hiroki Sato Date: Sat, 2 May 2009 16:23:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191748 - in stable/7/release/doc: en_US.ISO8859-1/errata en_US.ISO8859-1/relnotes share/sgml X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 16:23:46 -0000 Author: hrs Date: Sat May 2 16:23:44 2009 New Revision: 191748 URL: http://svn.freebsd.org/changeset/base/191748 Log: - Update Errata for 7.2R: disc1 booting problem on some motherboards. - Update &release.*; - Fix a typo. Approved by: re (implicit) Modified: stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml stable/7/release/doc/en_US.ISO8859-1/relnotes/article.sgml stable/7/release/doc/share/sgml/release.ent Modified: stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml ============================================================================== --- stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml Sat May 2 15:37:46 2009 (r191747) +++ stable/7/release/doc/en_US.ISO8859-1/errata/article.sgml Sat May 2 16:23:44 2009 (r191748) @@ -16,7 +16,7 @@ %release; - + ]>
@@ -163,191 +163,15 @@ Open Issues - [20090105] As in the Announcement of 7.1-RELEASE, certain Intel NICs - will come up as &man.igb.4; instead of &man.em.4; in this - release. There are only 3 PCI ID's that should have - their name changed from &man.em.4; to &man.igb.4;: - - - - 0x10A78086 - - - - 0x10A98086 - - - - 0x10D68086 - - - - You should be able to determine if your card will - change names by running the following command: - - &prompt.user; pciconf -l -. . . -em0@pci0:0:25:0: class=0x020000 card=0x02381028 chip=0x10c08086 rev=0x02 hdr=0x00 - - and for the line representing your NIC (should be named - em on older systems, - e.g. em0 or em1, etc) - check the fourth column. If that says - chip=0x10a78086 (or one of the other two IDs - given above) you will have the adapter's name change. - + [20090501] Some machines do not recognize the i386 disc1 as + bootable and fall through to booting off the next boot device. + All affected machines did see the other discs as bootable. As a + workaround, you can boot using the bootonly or livefs CDROM and + then swap in disc1 once sysinstall starts. Late-Breaking News and Corrections - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned that the &man.procstat.1; utility has been added. - This is a process inspection utility which provides both some of - the missing functionality from &man.procfs.5; and new - functionality for monitoring and debugging specific - processes. - - [20090105] The Release Notes for 7.1-RELEASE should have mentioned - changes that the &man.ae.4; driver has been added to provide support - for the Attansic/Atheros L2 FastEthernet controllers. - This driver is not enabled in GENERIC - kernels for this release. - - [20090105] The Release Notes for 7.1-RELEASE included the - following misdescriptions: - - - - In the entry of &man.linux.4; ABI support, - get_setaffinity() should have been - sched_setaffinity(). - - - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the &man.jme.4; driver has been added to - provide support for PCIe adapters based on JMicron JMC250 - gigabit Ethernet and JMC260 fast Ethernet controllers. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the &man.age.4; driver has been added to - provide support for Attansic/Atheros L1 gigabit Ethernet - controller. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the &man.malo.4; driver has been added to - provide support for Marvell Libertas 88W8335 based PCI network - adapters. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the bm(4) driver has been added to - provide support for Apple Big Mac (BMAC) Ethernet controller, - found on various Apple G3 models. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the et(4) driver has been added to - provide support for Agere ET1310 10/100/Gigabit Ethernet - controller. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned changes that the &man.glxsb.4; driver has been added - to provide support for the Security Block in AMD Geode LX - processors. - - [20090105] The Release Notes for 7.1-RELEASE should have - mentioned that &os; now supports multiple routing tables. To - enable this, the following steps are needed: - - - - Add the following kernel configuration option and - rebuild the kernel. The 2 is the number - of FIB (Forward Information Base, synonym for a routing - table here). The maximum value is 16. - - options ROUTETABLES=2 - - The procedure for rebuilding the &os; kernel is - described in the &os; - Handbook. - - This number can be modified on boot time. To do so, add - the following to /boot/loader.conf and - reboot the system: - - net.fibs=6 - - - - Set a loader tunable net.my_fibnum if - needed. This means the default number of routing tables. - If not specified, 0 will be used. - - - - Set a loader tunable - net.add_addr_allfibs if needed. This - enables to add routes to all FIBs for new interfaces by - default. When this is set to 0, it will - only allocate routes on interface changes for the FIB of the - caller when adding a new set of addresses to an interface. - Note that this tunable is set to 1 by - default. - - - - To select one of the FIBs, the new &man.setfib.1; utility - can be used. This set an associated FIB with the process. For - example: - - &prompt.root; setfib -3 ping target.example.com - - The FIB #3 will be used for the &man.ping.8; command. - - The FIB which the packet will be associated with will be - determined in the following rules: - - - - All packets which have a FIB associated with them will - use the FIB. If not, FIB #0 will be used. - - - - A packet received on an interface for forwarding uses - FIB #0. - - - - A TCP listen socket associated with an FIB will generate - accept sockets which are associated with the same FIB. - - - - A packet generated in response to other packet uses the - FIB associated with the packet being responded to. - - - - A packet generated on tunnel interfaces such as - &man.gif.4; and &man.tun.4; will be encapsulated using the - FIB of the process which set up the tunnel. - - - - Routing messages will be associated with the process's - FIB. - - - - Also, the &man.ipfw.8; now supports an action rule - setfib. The following action: - - setfib fibnum - - will make the matched packet use the FIB specified in - fibnum. The rule processing - continues at the next rule. + No news.
Modified: stable/7/release/doc/en_US.ISO8859-1/relnotes/article.sgml ============================================================================== --- stable/7/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sat May 2 15:37:46 2009 (r191747) +++ stable/7/release/doc/en_US.ISO8859-1/relnotes/article.sgml Sat May 2 16:23:44 2009 (r191748) @@ -226,7 +226,7 @@ will update unmodified userland utilities, as well as unmodified GENERIC or SMP kernels distributed as a part of an official &os; release. The &man.freebsd-update.8; utility requires that the - host being upgraded have Internet connectivity.
+ host being upgraded has Internet connectivity.
An older form of binary upgrade is supported through the Upgrade option from the main Modified: stable/7/release/doc/share/sgml/release.ent ============================================================================== --- stable/7/release/doc/share/sgml/release.ent Sat May 2 15:37:46 2009 (r191747) +++ stable/7/release/doc/share/sgml/release.ent Sat May 2 16:23:44 2009 (r191748) @@ -6,12 +6,12 @@ - + - + - + @@ -39,7 +39,7 @@ - + From owner-svn-src-all@FreeBSD.ORG Sat May 2 18:06:15 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 959D91065675; Sat, 2 May 2009 18:06:15 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 82A128FC15; Sat, 2 May 2009 18:06:15 +0000 (UTC) (envelope-from marius@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 n42I6FGe091536; Sat, 2 May 2009 18:06:15 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42I6Fmh091535; Sat, 2 May 2009 18:06:15 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <200905021806.n42I6Fmh091535@svn.freebsd.org> From: Marius Strobl Date: Sat, 2 May 2009 18:06:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org X-SVN-Group: stable-6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191749 - in stable/6/sys: . contrib/pf dev/cxgb dev/dcons X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 18:06:16 -0000 Author: marius Date: Sat May 2 18:06:15 2009 New Revision: 191749 URL: http://svn.freebsd.org/changeset/base/191749 Log: MFC: r190756 Fix logic in MOD_LOAD handler to call dcons_attach after all successful dcons_drv_init invocations. Testing return value for 0 does not work for cases where dcons_drv_init was called already as part of low level console initialization. Modified: stable/6/sys/ (props changed) stable/6/sys/contrib/pf/ (props changed) stable/6/sys/dev/cxgb/ (props changed) stable/6/sys/dev/dcons/dcons_os.c Modified: stable/6/sys/dev/dcons/dcons_os.c ============================================================================== --- stable/6/sys/dev/dcons/dcons_os.c Sat May 2 16:23:44 2009 (r191748) +++ stable/6/sys/dev/dcons/dcons_os.c Sat May 2 18:06:15 2009 (r191749) @@ -674,8 +674,9 @@ dcons_modevent(module_t mode, int type, case MOD_LOAD: ret = dcons_drv_init(1); #if __FreeBSD_version >= 500000 - if (ret == 0) { + if (ret != -1) dcons_attach(); + if (ret == 0) { dcons_cnprobe(&dcons_consdev); dcons_cninit(&dcons_consdev); cnadd(&dcons_consdev); From owner-svn-src-all@FreeBSD.ORG Sat May 2 20:16:56 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13452106566B; Sat, 2 May 2009 20:16:56 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 00EF88FC0A; Sat, 2 May 2009 20:16:56 +0000 (UTC) (envelope-from sam@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 n42KGtZt094143; Sat, 2 May 2009 20:16:55 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42KGtkM094138; Sat, 2 May 2009 20:16:55 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905022016.n42KGtkM094138@svn.freebsd.org> From: Sam Leffler Date: Sat, 2 May 2009 20:16:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191753 - in head/sys: dev/ath net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 20:16:56 -0000 Author: sam Date: Sat May 2 20:16:55 2009 New Revision: 191753 URL: http://svn.freebsd.org/changeset/base/191753 Log: make superg/fast-frames state dynamically-allocated (and indirect off the com structure instead of embedded); this reduces the overhead when not configured and reduces visibility of the contents Modified: head/sys/dev/ath/if_ath.c head/sys/net80211/ieee80211_superg.c head/sys/net80211/ieee80211_superg.h head/sys/net80211/ieee80211_var.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Sat May 2 20:13:37 2009 (r191752) +++ head/sys/dev/ath/if_ath.c Sat May 2 20:16:55 2009 (r191753) @@ -3995,12 +3995,7 @@ rx_next: if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { #ifdef IEEE80211_SUPPORT_SUPERG - if (ic->ic_stageqdepth) { - ieee80211_age_stageq(ic, WME_AC_VO, 100); - ieee80211_age_stageq(ic, WME_AC_VI, 100); - ieee80211_age_stageq(ic, WME_AC_BE, 100); - ieee80211_age_stageq(ic, WME_AC_BK, 100); - } + ieee80211_ff_age_all(ic, 100); #endif if (!IFQ_IS_EMPTY(&ifp->if_snd)) ath_start(ifp); @@ -4980,7 +4975,7 @@ ath_tx_processq(struct ath_softc *sc, st * Flush fast-frame staging queue when traffic slows. */ if (txq->axq_depth <= 1) - ieee80211_flush_stageq(ic, txq->axq_ac); + ieee80211_ff_flush(ic, txq->axq_ac); #endif return nacked; } Modified: head/sys/net80211/ieee80211_superg.c ============================================================================== --- head/sys/net80211/ieee80211_superg.c Sat May 2 20:13:37 2009 (r191752) +++ head/sys/net80211/ieee80211_superg.c Sat May 2 20:16:55 2009 (r191753) @@ -90,17 +90,38 @@ int ieee80211_ffagemax = -1; /* max time void ieee80211_superg_attach(struct ieee80211com *ic) { + struct ieee80211_superg *sg; + + if (ic->ic_caps & IEEE80211_C_FF) { + sg = (struct ieee80211_superg *) malloc( + sizeof(struct ieee80211_superg), M_80211_VAP, + M_NOWAIT | M_ZERO); + if (sg == NULL) { + printf("%s: cannot allocate SuperG state block\n", + __func__); + return; + } + ic->ic_superg = sg; + } ieee80211_ffagemax = msecs_to_ticks(150); } void ieee80211_superg_detach(struct ieee80211com *ic) { + if (ic->ic_superg != NULL) { + free(ic->ic_superg, M_80211_VAP); + ic->ic_superg = NULL; + } } void ieee80211_superg_vattach(struct ieee80211vap *vap) { + struct ieee80211com *ic = vap->iv_ic; + + if (ic->ic_superg == NULL) /* NB: can't do fast-frames w/o state */ + vap->iv_caps &= ~IEEE80211_C_FF; if (vap->iv_caps & IEEE80211_C_FF) vap->iv_flags |= IEEE80211_F_FF; /* NB: we only implement sta mode */ @@ -527,8 +548,10 @@ ff_flush(struct mbuf *head, struct mbuf * Age frames on the staging queue. */ void -ieee80211_ff_age(struct ieee80211com *ic, struct ieee80211_stageq *sq, int quanta) +ieee80211_ff_age(struct ieee80211com *ic, struct ieee80211_stageq *sq, + int quanta) { + struct ieee80211_superg *sg = ic->ic_superg; struct mbuf *m, *head; struct ieee80211_node *ni; struct ieee80211_tx_ampdu *tap; @@ -546,7 +569,7 @@ ieee80211_ff_age(struct ieee80211com *ic sq->head = m->m_nextpkt; sq->depth--; - ic->ic_stageqdepth--; + sg->ff_stageqdepth--; } if (m == NULL) sq->tail = NULL; @@ -631,6 +654,7 @@ ieee80211_ff_check(struct ieee80211_node { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; + struct ieee80211_superg *sg = ic->ic_superg; const int pri = M_WME_GETAC(m); struct ieee80211_stageq *sq; struct ieee80211_tx_ampdu *tap; @@ -669,7 +693,7 @@ ieee80211_ff_check(struct ieee80211_node IEEE80211_UNLOCK(ic); return m; } - sq = &ic->ic_ff_stageq[pri]; + sq = &sg->ff_stageq[pri]; /* * Check the txop limit to insure the aggregate fits. */ @@ -730,7 +754,7 @@ ieee80211_ff_check(struct ieee80211_node tap->txa_private = m; stageq_add(sq, m); - ic->ic_stageqdepth++; + sg->ff_stageqdepth++; IEEE80211_UNLOCK(ic); IEEE80211_NOTE(vap, IEEE80211_MSG_SUPERG, ni, @@ -755,6 +779,7 @@ void ieee80211_ff_node_cleanup(struct ieee80211_node *ni) { struct ieee80211com *ic = ni->ni_ic; + struct ieee80211_superg *sg = ic->ic_superg; struct ieee80211_tx_ampdu *tap; struct mbuf *m, *head; int ac; @@ -766,7 +791,7 @@ ieee80211_ff_node_cleanup(struct ieee802 m = tap->txa_private; if (m != NULL) { tap->txa_private = NULL; - stageq_remove(&ic->ic_ff_stageq[ac], m); + stageq_remove(&sg->ff_stageq[ac], m); m->m_nextpkt = head; head = m; } Modified: head/sys/net80211/ieee80211_superg.h ============================================================================== --- head/sys/net80211/ieee80211_superg.h Sat May 2 20:13:37 2009 (r191752) +++ head/sys/net80211/ieee80211_superg.h Sat May 2 20:16:55 2009 (r191753) @@ -57,6 +57,18 @@ struct ieee80211_ath_ie { #define ATH_OUI_SUBTYPE 0x01 #ifdef _KERNEL +struct ieee80211_stageq { + struct mbuf *head; /* frames linked w/ m_nextpkt */ + struct mbuf *tail; /* last frame in queue */ + int depth; /* # items on head */ +}; + +struct ieee80211_superg { + /* fast-frames staging q */ + struct ieee80211_stageq ff_stageq[WME_NUM_AC]; + int ff_stageqdepth; /* cumulative depth */ +}; + void ieee80211_superg_attach(struct ieee80211com *); void ieee80211_superg_detach(struct ieee80211com *); void ieee80211_superg_vattach(struct ieee80211vap *); @@ -72,20 +84,33 @@ void ieee80211_ff_node_init(struct ieee8 void ieee80211_ff_node_cleanup(struct ieee80211_node *); struct mbuf *ieee80211_ff_check(struct ieee80211_node *, struct mbuf *); -void ieee80211_ff_age(struct ieee80211com *, struct ieee80211_stageq *, int); +void ieee80211_ff_age(struct ieee80211com *, struct ieee80211_stageq *, + int quanta); static __inline void -ieee80211_flush_stageq(struct ieee80211com *ic, int ac) +ieee80211_ff_flush(struct ieee80211com *ic, int ac) { - if (ic->ic_ff_stageq[ac].depth) - ieee80211_ff_age(ic, &ic->ic_ff_stageq[ac], 0x7fffffff); + struct ieee80211_superg *sg = ic->ic_superg; + + if (sg != NULL && sg->ff_stageq[ac].depth) + ieee80211_ff_age(ic, &sg->ff_stageq[ac], 0x7fffffff); } static __inline void -ieee80211_age_stageq(struct ieee80211com *ic, int ac, int quanta) +ieee80211_ff_age_all(struct ieee80211com *ic, int quanta) { - if (ic->ic_ff_stageq[ac].depth) - ieee80211_ff_age(ic, &ic->ic_ff_stageq[ac], quanta); + struct ieee80211_superg *sg = ic->ic_superg; + + if (sg != NULL && sg->ff_stageqdepth) { + if (sg->ff_stageq[WME_AC_VO].depth) + ieee80211_ff_age(ic, &sg->ff_stageq[WME_AC_VO], quanta); + if (sg->ff_stageq[WME_AC_VI].depth) + ieee80211_ff_age(ic, &sg->ff_stageq[WME_AC_VI], quanta); + if (sg->ff_stageq[WME_AC_BE].depth) + ieee80211_ff_age(ic, &sg->ff_stageq[WME_AC_BE], quanta); + if (sg->ff_stageq[WME_AC_BK].depth) + ieee80211_ff_age(ic, &sg->ff_stageq[WME_AC_BK], quanta); + } } struct mbuf *ieee80211_ff_encap(struct ieee80211vap *, struct mbuf *, Modified: head/sys/net80211/ieee80211_var.h ============================================================================== --- head/sys/net80211/ieee80211_var.h Sat May 2 20:13:37 2009 (r191752) +++ head/sys/net80211/ieee80211_var.h Sat May 2 20:16:55 2009 (r191753) @@ -110,12 +110,7 @@ struct ieee80211_tdma_param; struct ieee80211_rate_table; struct ieee80211_tx_ampdu; struct ieee80211_rx_ampdu; - -struct ieee80211_stageq { - struct mbuf *head; /* frames linked w/ m_nextpkt */ - struct mbuf *tail; /* last frame in queue */ - int depth; /* # items on head */ -}; +struct ieee80211_superg; struct ieee80211com { struct ifnet *ic_ifp; /* associated device */ @@ -211,9 +206,8 @@ struct ieee80211com { int ic_lastnonerp; /* last time non-ERP sta noted*/ int ic_lastnonht; /* last time non-HT sta noted */ - /* fast-frames staging q */ - struct ieee80211_stageq ic_ff_stageq[WME_NUM_AC]; - int ic_stageqdepth; /* cumulative depth */ + /* optional state for Atheros SuperG protocol extensions */ + struct ieee80211_superg *ic_superg; /* virtual ap create/delete */ struct ieee80211vap* (*ic_vap_create)(struct ieee80211com *, From owner-svn-src-all@FreeBSD.ORG Sat May 2 20:18:18 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6154106566B; Sat, 2 May 2009 20:18:18 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A40658FC12; Sat, 2 May 2009 20:18:18 +0000 (UTC) (envelope-from sam@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 n42KIIle094214; Sat, 2 May 2009 20:18:18 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42KIIJM094213; Sat, 2 May 2009 20:18:18 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905022018.n42KIIJM094213@svn.freebsd.org> From: Sam Leffler Date: Sat, 2 May 2009 20:18:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191754 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 20:18:19 -0000 Author: sam Date: Sat May 2 20:18:18 2009 New Revision: 191754 URL: http://svn.freebsd.org/changeset/base/191754 Log: whitespace Modified: head/sys/net80211/ieee80211_adhoc.c Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Sat May 2 20:16:55 2009 (r191753) +++ head/sys/net80211/ieee80211_adhoc.c Sat May 2 20:18:18 2009 (r191754) @@ -648,6 +648,7 @@ adhoc_input(struct ieee80211_node *ni, s IEEE80211_NODE_STAT(ni, rx_ctrl); vap->iv_recv_ctl(ni, m, subtype); goto out; + default: IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY, wh, "bad", "frame type 0x%x", type); From owner-svn-src-all@FreeBSD.ORG Sat May 2 20:21:21 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C4D76106566C; Sat, 2 May 2009 20:21:21 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B35568FC17; Sat, 2 May 2009 20:21:21 +0000 (UTC) (envelope-from sam@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 n42KLLXa094311; Sat, 2 May 2009 20:21:21 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42KLLc1094310; Sat, 2 May 2009 20:21:21 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905022021.n42KLLc1094310@svn.freebsd.org> From: Sam Leffler Date: Sat, 2 May 2009 20:21:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191755 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 20:21:22 -0000 Author: sam Date: Sat May 2 20:21:21 2009 New Revision: 191755 URL: http://svn.freebsd.org/changeset/base/191755 Log: o dump tx/rx seq#'s for qos tid's o improve check for when to dump rx ampdu state Modified: head/sys/net80211/ieee80211_ddb.c Modified: head/sys/net80211/ieee80211_ddb.c ============================================================================== --- head/sys/net80211/ieee80211_ddb.c Sat May 2 20:18:18 2009 (r191754) +++ head/sys/net80211/ieee80211_ddb.c Sat May 2 20:21:21 2009 (r191755) @@ -238,6 +238,15 @@ _db_show_sta(const struct ieee80211_node ni->ni_ies.ath_ie); db_printf("\t htcap_ie %p htinfo_ie %p]\n", ni->ni_ies.htcap_ie, ni->ni_ies.htinfo_ie); + if (ni->ni_flags & IEEE80211_NODE_QOS) { + for (i = 0; i < WME_NUM_TID; i++) { + if (ni->ni_txseqs[i] || ni->ni_rxseqs[i]) + db_printf("\t[%u] txseq %u rxseq %u fragno %u\n", + i, ni->ni_txseqs[i], + ni->ni_rxseqs[i] >> IEEE80211_SEQ_SEQ_SHIFT, + ni->ni_rxseqs[i] & IEEE80211_SEQ_FRAG_MASK); + } + } db_printf("\ttxseq %u rxseq %u fragno %u rxfragstamp %u\n", ni->ni_txseqs[IEEE80211_NONQOS_TID], ni->ni_rxseqs[IEEE80211_NONQOS_TID] >> IEEE80211_SEQ_SEQ_SHIFT, @@ -271,8 +280,7 @@ _db_show_sta(const struct ieee80211_node if (ni->ni_tx_ampdu[i].txa_flags & IEEE80211_AGGR_SETUP) _db_show_txampdu("\t", i, &ni->ni_tx_ampdu[i]); for (i = 0; i < WME_NUM_TID; i++) - if (ni->ni_rx_ampdu[i].rxa_nframes || - ni->ni_rx_ampdu[i].rxa_qframes) + if (ni->ni_rx_ampdu[i].rxa_flags) _db_show_rxampdu("\t", i, &ni->ni_rx_ampdu[i]); db_printf("\tinact %u inact_reload %u txrate %u\n", From owner-svn-src-all@FreeBSD.ORG Sat May 2 20:25:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB1881065670; Sat, 2 May 2009 20:25:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF4FC8FC08; Sat, 2 May 2009 20:25:22 +0000 (UTC) (envelope-from sam@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 n42KPMki094434; Sat, 2 May 2009 20:25:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42KPMqp094431; Sat, 2 May 2009 20:25:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905022025.n42KPMqp094431@svn.freebsd.org> From: Sam Leffler Date: Sat, 2 May 2009 20:25:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191756 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 20:25:23 -0000 Author: sam Date: Sat May 2 20:25:22 2009 New Revision: 191756 URL: http://svn.freebsd.org/changeset/base/191756 Log: promote ieee80211_seq typedef Modified: head/sys/net80211/ieee80211.h head/sys/net80211/ieee80211_ht.h head/sys/net80211/ieee80211_node.h Modified: head/sys/net80211/ieee80211.h ============================================================================== --- head/sys/net80211/ieee80211.h Sat May 2 20:21:21 2009 (r191755) +++ head/sys/net80211/ieee80211.h Sat May 2 20:25:22 2009 (r191756) @@ -36,6 +36,8 @@ /* is 802.11 address multicast/broadcast? */ #define IEEE80211_IS_MULTICAST(_a) (*(_a) & 0x01) +typedef uint16_t ieee80211_seq; + /* IEEE 802.11 PLCP header */ struct ieee80211_plcp_hdr { uint16_t i_sfd; Modified: head/sys/net80211/ieee80211_ht.h ============================================================================== --- head/sys/net80211/ieee80211_ht.h Sat May 2 20:21:21 2009 (r191755) +++ head/sys/net80211/ieee80211_ht.h Sat May 2 20:25:22 2009 (r191756) @@ -35,8 +35,6 @@ /* threshold for aging overlapping non-HT bss */ #define IEEE80211_NONHT_PRESENT_AGE msecs_to_ticks(60*1000) -typedef uint16_t ieee80211_seq; - struct ieee80211_tx_ampdu { struct ieee80211_node *txa_ni; /* back pointer */ u_short txa_flags; Modified: head/sys/net80211/ieee80211_node.h ============================================================================== --- head/sys/net80211/ieee80211_node.h Sat May 2 20:21:21 2009 (r191755) +++ head/sys/net80211/ieee80211_node.h Sat May 2 20:25:22 2009 (r191756) @@ -137,9 +137,9 @@ struct ieee80211_node { uint32_t *ni_challenge; /* shared-key challenge */ struct ieee80211_ies ni_ies; /* captured ie's */ /* tx seq per-tid */ - uint16_t ni_txseqs[IEEE80211_TID_SIZE]; + ieee80211_seq ni_txseqs[IEEE80211_TID_SIZE]; /* rx seq previous per-tid*/ - uint16_t ni_rxseqs[IEEE80211_TID_SIZE]; + ieee80211_seq ni_rxseqs[IEEE80211_TID_SIZE]; uint32_t ni_rxfragstamp; /* time stamp of last rx frag */ struct mbuf *ni_rxfrag[3]; /* rx frag reassembly */ struct ieee80211_key ni_ucastkey; /* unicast key */ From owner-svn-src-all@FreeBSD.ORG Sat May 2 20:28:56 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17FC0106566C; Sat, 2 May 2009 20:28:56 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0678D8FC0A; Sat, 2 May 2009 20:28:56 +0000 (UTC) (envelope-from sam@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 n42KStlm094534; Sat, 2 May 2009 20:28:55 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42KStE3094533; Sat, 2 May 2009 20:28:55 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905022028.n42KStE3094533@svn.freebsd.org> From: Sam Leffler Date: Sat, 2 May 2009 20:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191757 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 20:28:56 -0000 Author: sam Date: Sat May 2 20:28:55 2009 New Revision: 191757 URL: http://svn.freebsd.org/changeset/base/191757 Log: don't say "ac WME_AC_BE"; remove "ac" Modified: head/sys/net80211/ieee80211_ddb.c Modified: head/sys/net80211/ieee80211_ddb.c ============================================================================== --- head/sys/net80211/ieee80211_ddb.c Sat May 2 20:25:22 2009 (r191756) +++ head/sys/net80211/ieee80211_ddb.c Sat May 2 20:28:55 2009 (r191757) @@ -183,7 +183,7 @@ DB_SHOW_ALL_COMMAND(vaps, db_show_all_va static void _db_show_txampdu(const char *sep, int ix, const struct ieee80211_tx_ampdu *tap) { - db_printf("%stxampdu[%d]: %p flags %b ac %s\n", + db_printf("%stxampdu[%d]: %p flags %b %s\n", sep, ix, tap, tap->txa_flags, IEEE80211_AGGR_BITS, ieee80211_wme_acnames[tap->txa_ac]); db_printf("%s token %u lastsample %d pkts %d avgpps %d qbytes %d qframes %d\n", From owner-svn-src-all@FreeBSD.ORG Sat May 2 21:40:03 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02C57106564A; Sat, 2 May 2009 21:40:03 +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 8CFA78FC16; Sat, 2 May 2009 21:40:02 +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 n42Lc1s6029173; Sat, 2 May 2009 15:38:02 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sat, 02 May 2009 15:38:08 -0600 (MDT) Message-Id: <20090502.153808.-896932641.imp@bsdimp.com> To: mav@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <200905012143.n41Lh4uS054073@svn.freebsd.org> References: <200905012143.n41Lh4uS054073@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-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191733 - in head/sys: amd64/isa isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 21:40:03 -0000 In message: <200905012143.n41Lh4uS054073@svn.freebsd.org> Alexander Motin writes: : Author: mav : Date: Fri May 1 21:43:04 2009 : New Revision: 191733 : URL: http://svn.freebsd.org/changeset/base/191733 : : Log: : Add resume methods to i8254 and atrtc devices. This likely obviates the need for pmtimer.c now. You might want to investigate... : Modified: : head/sys/amd64/isa/clock.c : head/sys/isa/atrtc.c Shouldn't there be one for i386 too? Warner : Modified: head/sys/amd64/isa/clock.c : ============================================================================== : --- head/sys/amd64/isa/clock.c Fri May 1 21:31:39 2009 (r191732) : +++ head/sys/amd64/isa/clock.c Fri May 1 21:43:04 2009 (r191733) : @@ -376,6 +376,17 @@ set_i8254_freq(u_int freq, int intr_freq : mtx_unlock_spin(&clock_lock); : } : : +static void : +i8254_restore(void) : +{ : + : + mtx_lock_spin(&clock_lock); : + outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT); : + outb(TIMER_CNTR0, i8254_real_max_count & 0xff); : + outb(TIMER_CNTR0, i8254_real_max_count >> 8); : + mtx_unlock_spin(&clock_lock); : +} : + : /* This is separate from startrtclock() so that it can be called early. */ : void : i8254_init(void) : @@ -558,6 +569,14 @@ attimer_attach(device_t dev) : return(0); : } : : +static int : +attimer_resume(device_t dev) : +{ : + : + i8254_restore(); : + return(0); : +} : + : static device_method_t attimer_methods[] = { : /* Device interface */ : DEVMETHOD(device_probe, attimer_probe), : @@ -565,7 +584,7 @@ static device_method_t attimer_methods[] : DEVMETHOD(device_detach, bus_generic_detach), : DEVMETHOD(device_shutdown, bus_generic_shutdown), : DEVMETHOD(device_suspend, bus_generic_suspend), : - DEVMETHOD(device_resume, bus_generic_resume), : + DEVMETHOD(device_resume, attimer_resume), : { 0, 0 } : }; : : : Modified: head/sys/isa/atrtc.c : ============================================================================== : --- head/sys/isa/atrtc.c Fri May 1 21:31:39 2009 (r191732) : +++ head/sys/isa/atrtc.c Fri May 1 21:43:04 2009 (r191733) : @@ -190,6 +190,13 @@ atrtc_attach(device_t dev) : return(0); : } : : +static int : +atrtc_resume(device_t dev) : +{ : + : + atrtc_restore(); : + return(0); : +} : : static int : atrtc_settime(device_t dev __unused, struct timespec *ts) : @@ -264,8 +271,7 @@ static device_method_t atrtc_methods[] = : DEVMETHOD(device_shutdown, bus_generic_shutdown), : DEVMETHOD(device_suspend, bus_generic_suspend), : /* XXX stop statclock? */ : - DEVMETHOD(device_resume, bus_generic_resume), : - /* XXX restart statclock? */ : + DEVMETHOD(device_resume, atrtc_resume), : : /* clock interface */ : DEVMETHOD(clock_gettime, atrtc_gettime), : From owner-svn-src-all@FreeBSD.ORG Sat May 2 22:07:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CD0F106566C; Sat, 2 May 2009 22:07:06 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 32DF78FC19; Sat, 2 May 2009 22:07:04 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 241810446; Sun, 03 May 2009 01:07:04 +0300 Message-ID: <49FCC404.6090105@FreeBSD.org> Date: Sun, 03 May 2009 01:07:00 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: "M. Warner Losh" References: <200905012143.n41Lh4uS054073@svn.freebsd.org> <20090502.153808.-896932641.imp@bsdimp.com> In-Reply-To: <20090502.153808.-896932641.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r191733 - in head/sys: amd64/isa isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 22:07:06 -0000 M. Warner Losh wrote: > : Author: mav > : Date: Fri May 1 21:43:04 2009 > : New Revision: 191733 > : URL: http://svn.freebsd.org/changeset/base/191733 > : > : Log: > : Add resume methods to i8254 and atrtc devices. > > This likely obviates the need for pmtimer.c now. You might want to > investigate... Yes, I have seen it. > : Modified: > : head/sys/amd64/isa/clock.c > : head/sys/isa/atrtc.c > > Shouldn't there be one for i386 too? For i386 it is done by pmtimer now (that's why I haven't done it there), but there is no pmtimer driver for amd64. Actually both ways are not so perfect, as both restore timer interrupts quite late on resume process. In my case it is not fatal as i8254 is anyway ticking by default, just slower. But it seems to increase my system resume time to 10 seconds instead of usual 4-5. May be we should somehow enforce order of device resuming, or build some special event timers control infrastructure alike to PIC one. Also, except restoring clocks interrupts, pmtimer restores system time on wakeup. For amd64 it is implemented in MD resume code now. We should decide which way to go. I don't very like pmtimer approach, as there is no any newbus relations between it and i8254/atrtc drivers. -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Sat May 2 22:22:00 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E813E106564A; Sat, 2 May 2009 22:22:00 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D72168FC17; Sat, 2 May 2009 22:22:00 +0000 (UTC) (envelope-from kmacy@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 n42MM0eL096961; Sat, 2 May 2009 22:22:00 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42MM0QI096960; Sat, 2 May 2009 22:22:00 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200905022222.n42MM0QI096960@svn.freebsd.org> From: Kip Macy Date: Sat, 2 May 2009 22:22:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191759 - head/sys/i386/xen X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 22:22:01 -0000 Author: kmacy Date: Sat May 2 22:22:00 2009 New Revision: 191759 URL: http://svn.freebsd.org/changeset/base/191759 Log: fix XEN compilation Modified: head/sys/i386/xen/mp_machdep.c Modified: head/sys/i386/xen/mp_machdep.c ============================================================================== --- head/sys/i386/xen/mp_machdep.c Sat May 2 20:39:43 2009 (r191758) +++ head/sys/i386/xen/mp_machdep.c Sat May 2 22:22:00 2009 (r191759) @@ -142,6 +142,9 @@ int apic_cpuids[MAX_APIC_ID + 1]; /* Holds pending bitmap based IPIs per CPU */ static volatile u_int cpu_ipi_pending[MAXCPU]; +static int cpu_logical; +static int cpu_cores; + static void assign_cpu_ids(void); static void set_interrupt_apic_ids(void); int start_all_aps(void); From owner-svn-src-all@FreeBSD.ORG Sat May 2 22:30:33 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EB1E106566C; Sat, 2 May 2009 22:30:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4D6488FC0A; Sat, 2 May 2009 22:30:33 +0000 (UTC) (envelope-from mav@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 n42MUX5a097148; Sat, 2 May 2009 22:30:33 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n42MUXAs097147; Sat, 2 May 2009 22:30:33 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200905022230.n42MUXAs097147@svn.freebsd.org> From: Alexander Motin Date: Sat, 2 May 2009 22:30:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191760 - head/sys/dev/acpica X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 May 2009 22:30:33 -0000 Author: mav Date: Sat May 2 22:30:33 2009 New Revision: 191760 URL: http://svn.freebsd.org/changeset/base/191760 Log: Avoid comparing negative signed to positive unsignad values. It was leading to a bug, when C-state does not decrease on sleep shorter then declared transition latency. Fixing this deprecates workaround for broken C-states on some hardware. By the way, change state selecting logic a bit. Instead of last sleep time use short-time average of it. Global interrupts rate in system is a quite random value, to corellate subsequent sleeps so directly. Modified: head/sys/dev/acpica/acpi_cpu.c Modified: head/sys/dev/acpica/acpi_cpu.c ============================================================================== --- head/sys/dev/acpica/acpi_cpu.c Sat May 2 22:22:00 2009 (r191759) +++ head/sys/dev/acpica/acpi_cpu.c Sat May 2 22:30:33 2009 (r191760) @@ -882,43 +882,13 @@ acpi_cpu_idle() return; } - /* - * If we slept 100 us or more, use the lowest Cx state. Otherwise, - * find the lowest state that has a latency less than or equal to - * the length of our last sleep. - */ - cx_next_idx = sc->cpu_cx_lowest; - if (sc->cpu_prev_sleep < 100) { - /* - * If we sleep too short all the time, this system may not implement - * C2/3 correctly (i.e. reads return immediately). In this case, - * back off and use the next higher level. - * It seems that when you have a dual core cpu (like the Intel Core Duo) - * that both cores will get out of C3 state as soon as one of them - * requires it. This breaks the sleep detection logic as the sleep - * counter is local to each cpu. Disable the sleep logic for now as a - * workaround if there's more than one CPU. The right fix would probably - * be to add quirks for system that don't really support C3 state. - */ - if (mp_ncpus < 2 && sc->cpu_prev_sleep <= 1) { - sc->cpu_short_slp++; - if (sc->cpu_short_slp == 1000 && sc->cpu_cx_lowest != 0) { - if (sc->cpu_non_c3 == sc->cpu_cx_lowest && sc->cpu_non_c3 != 0) - sc->cpu_non_c3--; - sc->cpu_cx_lowest--; - sc->cpu_short_slp = 0; - device_printf(sc->cpu_dev, - "too many short sleeps, backing off to C%d\n", - sc->cpu_cx_lowest + 1); - } - } else - sc->cpu_short_slp = 0; - - for (i = sc->cpu_cx_lowest; i >= 0; i--) - if (sc->cpu_cx_states[i].trans_lat <= sc->cpu_prev_sleep) { - cx_next_idx = i; - break; - } + /* Find the lowest state that has small enougth latency. */ + cx_next_idx = 0; + for (i = sc->cpu_cx_lowest; i >= 0; i--) { + if (sc->cpu_cx_states[i].trans_lat * 3 <= sc->cpu_prev_sleep) { + cx_next_idx = i; + break; + } } /* @@ -943,10 +913,10 @@ acpi_cpu_idle() /* * Execute HLT (or equivalent) and wait for an interrupt. We can't * calculate the time spent in C1 since the place we wake up is an - * ISR. Assume we slept one quantum and return. + * ISR. Assume we slept half of quantum and return. */ if (cx_next->type == ACPI_STATE_C1) { - sc->cpu_prev_sleep = 1000000 / hz; + sc->cpu_prev_sleep = (sc->cpu_prev_sleep * 3 + 500000 / hz) / 4; acpi_cpu_c1(); return; } @@ -989,9 +959,9 @@ acpi_cpu_idle() } ACPI_ENABLE_IRQS(); - /* Find the actual time asleep in microseconds, minus overhead. */ + /* Find the actual time asleep in microseconds. */ end_time = acpi_TimerDelta(end_time, start_time); - sc->cpu_prev_sleep = PM_USEC(end_time) - cx_next->trans_lat; + sc->cpu_prev_sleep = (sc->cpu_prev_sleep * 3 + PM_USEC(end_time)) / 4; } /*