From owner-p4-projects@FreeBSD.ORG Thu Jan 1 20:36:34 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A4A016A4D0; Thu, 1 Jan 2004 20:36:34 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7491E16A4CE for ; Thu, 1 Jan 2004 20:36:34 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F04D543D2D for ; Thu, 1 Jan 2004 20:36:32 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i024aW0B051841 for ; Thu, 1 Jan 2004 20:36:32 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i024aWjr051838 for perforce@freebsd.org; Thu, 1 Jan 2004 20:36:32 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 20:36:32 -0800 (PST) Message-Id: <200401020436.i024aWjr051838@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44660 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 04:36:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=44660 Change 44660 by sam@sam_ebb on 2004/01/01 20:35:34 save battery fix for i600m Affected files ... .. //depot/projects/netperf+sockets/sys/contrib/dev/acpica/dsmthdat.c#4 edit Differences ... ==== //depot/projects/netperf+sockets/sys/contrib/dev/acpica/dsmthdat.c#4 (text+ko) ==== @@ -663,6 +663,7 @@ ACPI_NAMESPACE_NODE *Node; ACPI_OPERAND_OBJECT *CurrentObjDesc; ACPI_OPERAND_OBJECT *NewObjDesc; + UINT8 ObjType; ACPI_FUNCTION_TRACE ("DsStoreObjectToLocal"); @@ -697,7 +698,11 @@ * take a copy of the object before we store. */ NewObjDesc = ObjDesc; - if (ObjDesc->Common.ReferenceCount > 1) + ObjType = ACPI_GET_OBJECT_TYPE(ObjDesc); + if (ObjDesc->Common.ReferenceCount > 1 && + ObjType != ACPI_TYPE_BUFFER && + ObjType != ACPI_TYPE_PACKAGE && + ObjType != ACPI_TYPE_REGION) { Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState); if (ACPI_FAILURE (Status)) From owner-p4-projects@FreeBSD.ORG Thu Jan 1 20:37:38 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3768B16A4D0; Thu, 1 Jan 2004 20:37:38 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1227416A4CE for ; Thu, 1 Jan 2004 20:37:38 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7AB9343D1F for ; Thu, 1 Jan 2004 20:37:35 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i024bZ0B051895 for ; Thu, 1 Jan 2004 20:37:35 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i024bYZU051892 for perforce@freebsd.org; Thu, 1 Jan 2004 20:37:35 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 20:37:35 -0800 (PST) Message-Id: <200401020437.i024bYZU051892@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44662 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 04:37:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=44662 Change 44662 by sam@sam_ebb on 2004/01/01 20:36:55 o mbuf tag inlining optimizations o add free method to mbuf tags for zone allocation Affected files ... .. //depot/projects/netperf+sockets/sys/kern/uipc_mbuf2.c#3 edit .. //depot/projects/netperf+sockets/sys/sys/mbuf.h#5 edit Differences ... ==== //depot/projects/netperf+sockets/sys/kern/uipc_mbuf2.c#3 (text+ko) ==== @@ -310,6 +310,17 @@ return n; } +/* Free a packet tag. */ +static void +_m_tag_free(struct m_tag *t) +{ +#ifdef MAC + if (t->m_tag_id == PACKET_TAG_MACLABEL) + mac_destroy_mbuf_tag(t); +#endif + free(t, M_PACKET_TAGS); +} + /* Get a packet tag structure along with specified data following. */ struct m_tag * m_tag_alloc(u_int32_t cookie, int type, int len, int wait) @@ -321,39 +332,11 @@ t = malloc(len + sizeof(struct m_tag), M_PACKET_TAGS, wait); if (t == NULL) return NULL; - t->m_tag_id = type; - t->m_tag_len = len; - t->m_tag_cookie = cookie; + m_tag_setup(t, cookie, type, len); + t->m_tag_free = _m_tag_free; return t; } -/* Free a packet tag. */ -void -m_tag_free(struct m_tag *t) -{ -#ifdef MAC - if (t->m_tag_id == PACKET_TAG_MACLABEL) - mac_destroy_mbuf_tag(t); -#endif - free(t, M_PACKET_TAGS); -} - -/* Prepend a packet tag. */ -void -m_tag_prepend(struct mbuf *m, struct m_tag *t) -{ - KASSERT(m && t, ("m_tag_prepend: null argument, m %p t %p", m, t)); - SLIST_INSERT_HEAD(&m->m_pkthdr.tags, t, m_tag_link); -} - -/* Unlink a packet tag. */ -void -m_tag_unlink(struct mbuf *m, struct m_tag *t) -{ - KASSERT(m && t, ("m_tag_unlink: null argument, m %p t %p", m, t)); - SLIST_REMOVE(&m->m_pkthdr.tags, t, m_tag, m_tag_link); -} - /* Unlink and free a packet tag. */ void m_tag_delete(struct mbuf *m, struct m_tag *t) @@ -473,24 +456,3 @@ } return 1; } - -/* Initialize tags on an mbuf. */ -void -m_tag_init(struct mbuf *m) -{ - SLIST_INIT(&m->m_pkthdr.tags); -} - -/* Get first tag in chain. */ -struct m_tag * -m_tag_first(struct mbuf *m) -{ - return SLIST_FIRST(&m->m_pkthdr.tags); -} - -/* Get next tag in chain. */ -struct m_tag * -m_tag_next(struct mbuf *m, struct m_tag *t) -{ - return SLIST_NEXT(t, m_tag_link); -} ==== //depot/projects/netperf+sockets/sys/sys/mbuf.h#5 (text+ko) ==== @@ -83,6 +83,7 @@ u_int16_t m_tag_id; /* Tag ID */ u_int16_t m_tag_len; /* Length of data */ u_int32_t m_tag_cookie; /* ABI/Module ID */ + void (*m_tag_free)(struct m_tag *); }; /* @@ -552,19 +553,82 @@ /* Packet tag routines. */ struct m_tag *m_tag_alloc(u_int32_t, int, int, int); -void m_tag_free(struct m_tag *); -void m_tag_prepend(struct mbuf *, struct m_tag *); -void m_tag_unlink(struct mbuf *, struct m_tag *); void m_tag_delete(struct mbuf *, struct m_tag *); void m_tag_delete_chain(struct mbuf *, struct m_tag *); struct m_tag *m_tag_locate(struct mbuf *, u_int32_t, int, struct m_tag *); struct m_tag *m_tag_copy(struct m_tag *, int); int m_tag_copy_chain(struct mbuf *, struct mbuf *, int); -void m_tag_init(struct mbuf *); -struct m_tag *m_tag_first(struct mbuf *); -struct m_tag *m_tag_next(struct mbuf *, struct m_tag *); void m_tag_delete_nonpersistent(struct mbuf *); +/* + * Initialize the list of tags associated with an mbuf. + */ +static __inline void +m_tag_init(struct mbuf *m) +{ + SLIST_INIT(&m->m_pkthdr.tags); +} + +/* + * Setup the contents of a tag. Note that this does not + * fillin the free method; the caller is expected to do that. + * + * XXX probably should be called m_tag_init; but that was + * already taken. + */ +static __inline void +m_tag_setup(struct m_tag *t, u_int32_t cookie, int type, int len) +{ + t->m_tag_id = type; + t->m_tag_len = len; + t->m_tag_cookie = cookie; +} + +/* + * Reclaim resources associated with a tag. + */ +static __inline void +m_tag_free(struct m_tag *t) +{ + (*t->m_tag_free)(t); +} + +/* + * Return the first tag associated with an mbuf. + */ +static __inline struct m_tag * +m_tag_first(struct mbuf *m) +{ + return SLIST_FIRST(&m->m_pkthdr.tags); +} + +/* + * Return the next tag in the list of tags associated with an mbuf. + */ +static __inline struct m_tag * +m_tag_next(struct mbuf *m, struct m_tag *t) +{ + return SLIST_NEXT(t, m_tag_link); +} + +/* + * Prepend a tag to the list of tags associated with an mbuf. + */ +static __inline void +m_tag_prepend(struct mbuf *m, struct m_tag *t) +{ + SLIST_INSERT_HEAD(&m->m_pkthdr.tags, t, m_tag_link); +} + +/* + * Unlink a tag from the list of tags associated with an mbuf. + */ +static __inline void +m_tag_unlink(struct mbuf *m, struct m_tag *t) +{ + SLIST_REMOVE(&m->m_pkthdr.tags, t, m_tag, m_tag_link); +} + /* These are for OpenBSD compatibility. */ #define MTAG_ABI_COMPAT 0 /* compatibility ABI */ @@ -577,7 +641,8 @@ static __inline struct m_tag * m_tag_find(struct mbuf *m, int type, struct m_tag *start) { - return m_tag_locate(m, MTAG_ABI_COMPAT, type, start); + return SLIST_EMPTY(&m->m_pkthdr.tags) ? + NULL : m_tag_locate(m, MTAG_ABI_COMPAT, type, start); } #endif /* _KERNEL */ From owner-p4-projects@FreeBSD.ORG Thu Jan 1 20:38:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D71E416A4D0; Thu, 1 Jan 2004 20:38:38 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B131316A4CE for ; Thu, 1 Jan 2004 20:38:38 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E81043D2D for ; Thu, 1 Jan 2004 20:38:37 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i024cb0B051917 for ; Thu, 1 Jan 2004 20:38:37 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i024ca9e051914 for perforce@freebsd.org; Thu, 1 Jan 2004 20:38:36 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 20:38:36 -0800 (PST) Message-Id: <200401020438.i024ca9e051914@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44663 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 04:38:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=44663 Change 44663 by sam@sam_ebb on 2004/01/01 20:37:35 manage vlan tags with a private zone Affected files ... .. //depot/projects/netperf+sockets/sys/net/if_vlan.c#3 edit .. //depot/projects/netperf+sockets/sys/net/if_vlan_var.h#2 edit Differences ... ==== //depot/projects/netperf+sockets/sys/net/if_vlan.c#3 (text+ko) ==== @@ -53,6 +53,7 @@ #include #include #include +#include #include #include @@ -101,6 +102,7 @@ SYSCTL_NODE(_net_link, IFT_L2VLAN, vlan, CTLFLAG_RW, 0, "IEEE 802.1Q VLAN"); SYSCTL_NODE(_net_link_vlan, PF_LINK, link, CTLFLAG_RW, 0, "for consistency"); +static uma_zone_t vlan_zone; /* for vlan packet tags */ static MALLOC_DEFINE(M_VLAN, VLANNAME, "802.1Q Virtual LAN Interface"); static LIST_HEAD(, ifvlan) ifv_list; @@ -217,6 +219,9 @@ case MOD_LOAD: LIST_INIT(&ifv_list); VLAN_LOCK_INIT(); + vlan_zone = uma_zcreate("vlan", + sizeof(struct m_tag)+sizeof(u_int), + NULL, NULL, NULL, NULL, UMA_ALIGN_INT, 0); vlan_input_p = vlan_input; if_clone_attach(&vlan_cloner); break; @@ -225,6 +230,7 @@ vlan_input_p = NULL; while (!LIST_EMPTY(&ifv_list)) vlan_clone_destroy(&LIST_FIRST(&ifv_list)->ifv_if); + uma_zdestroy(vlan_zone); VLAN_LOCK_DESTROY(); break; } @@ -295,6 +301,25 @@ } static void +vlan_tag_free(struct m_tag *t) +{ + uma_zfree(vlan_zone, t); +} + +struct m_tag * +vlan_tag_alloc(int flags) +{ + struct m_tag *mtag; + + mtag = uma_zalloc(vlan_zone, flags); + if (mtag) { + m_tag_setup(mtag, MTAG_VLAN, MTAG_VLAN_TAG, sizeof(u_int)); + mtag->m_tag_free = vlan_tag_free; + } + return mtag; +} + +static void vlan_start(struct ifnet *ifp) { struct ifvlan *ifv; @@ -331,10 +356,7 @@ * packet tag that holds it. */ if (p->if_capabilities & IFCAP_VLAN_HWTAGGING) { - struct m_tag *mtag = m_tag_alloc(MTAG_VLAN, - MTAG_VLAN_TAG, - sizeof (u_int), - M_NOWAIT); + struct m_tag *mtag = vlan_tag_alloc(M_NOWAIT); if (mtag == NULL) { ifp->if_oerrors++; m_freem(m); ==== //depot/projects/netperf+sockets/sys/net/if_vlan_var.h#2 (text+ko) ==== @@ -98,8 +98,7 @@ #define VLAN_INPUT_TAG(_ifp, _m, _t, _errcase) do { \ struct m_tag *mtag; \ - mtag = m_tag_alloc(MTAG_VLAN, MTAG_VLAN_TAG, \ - sizeof (u_int), M_NOWAIT); \ + mtag = vlan_tag_alloc(M_NOWAIT); \ if (mtag == NULL) { \ (_ifp)->if_ierrors++; \ m_freem(_m); \ @@ -113,6 +112,8 @@ ((_ifp)->if_nvlans != 0 ? \ m_tag_locate((_m), MTAG_VLAN, MTAG_VLAN_TAG, NULL) : NULL) #define VLAN_TAG_VALUE(_mt) (*(u_int *)((_mt)+1)) + +extern struct m_tag *vlan_tag_alloc(int flags); #endif /* _KERNEL */ #endif /* _NET_IF_VLAN_VAR_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Jan 1 20:41:42 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7BC6116A4D0; Thu, 1 Jan 2004 20:41:42 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5658016A4CE for ; Thu, 1 Jan 2004 20:41:42 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8260943D1D for ; Thu, 1 Jan 2004 20:41:41 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i024ff0B053062 for ; Thu, 1 Jan 2004 20:41:41 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i024ffnO053056 for perforce@freebsd.org; Thu, 1 Jan 2004 20:41:41 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 20:41:41 -0800 (PST) Message-Id: <200401020441.i024ffnO053056@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44664 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 04:41:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=44664 Change 44664 by sam@sam_ebb on 2004/01/01 20:41:20 shim ifmedia_removeall for NetBSD Affected files ... .. //depot/projects/netperf+sockets/sys/net80211/ieee80211.c#3 edit .. //depot/projects/netperf+sockets/sys/net80211/ieee80211_compat.h#2 edit Differences ... ==== //depot/projects/netperf+sockets/sys/net80211/ieee80211.c#3 (text+ko) ==== @@ -162,11 +162,7 @@ ieee80211_proto_detach(ifp); ieee80211_crypto_detach(ifp); ieee80211_node_detach(ifp); -#ifdef __FreeBSD__ ifmedia_removeall(&ic->ic_media); -#else - ifmedia_delete_instance(&ic->ic_media, IFM_INST_ANY); -#endif #if NBPFILTER > 0 bpfdetach(ifp); #endif ==== //depot/projects/netperf+sockets/sys/net80211/ieee80211_compat.h#2 (text+ko) ==== @@ -58,6 +58,9 @@ splx(s); return refcnt; } + +#define ifmedia_removeall(_media) \ + ifmedia_delete_instance((_media), IFM_INST_ANY) #endif /* __NetBSD__ */ #ifdef __FreeBSD__ From owner-p4-projects@FreeBSD.ORG Thu Jan 1 21:29:24 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6FF8D16A4D0; Thu, 1 Jan 2004 21:29:24 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1837016A4CE for ; Thu, 1 Jan 2004 21:29:24 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 50AC843D46 for ; Thu, 1 Jan 2004 21:29:17 -0800 (PST) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i025TH0B068690 for ; Thu, 1 Jan 2004 21:29:17 -0800 (PST) (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i025SdSV068682 for perforce@freebsd.org; Thu, 1 Jan 2004 21:28:39 -0800 (PST) (envelope-from imp@freebsd.org) Date: Thu, 1 Jan 2004 21:28:39 -0800 (PST) Message-Id: <200401020528.i025SdSV068682@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Subject: PERFORCE change 44668 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 05:29:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=44668 Change 44668 by imp@imp_pacopaco on 2004/01/01 21:28:31 IFC @44666 Affected files ... .. //depot/projects/power/sys/alpha/alpha/db_trace.c#3 integrate .. //depot/projects/power/sys/alpha/alpha/dump_machdep.c#2 integrate .. //depot/projects/power/sys/alpha/alpha/elf_machdep.c#3 integrate .. //depot/projects/power/sys/alpha/alpha/mp_machdep.c#3 integrate .. //depot/projects/power/sys/alpha/alpha/vm_machdep.c#3 integrate .. //depot/projects/power/sys/alpha/conf/GENERIC#4 integrate .. //depot/projects/power/sys/alpha/conf/GENERIC.hints#2 integrate .. //depot/projects/power/sys/alpha/include/ioctl_bt848.h#2 integrate .. //depot/projects/power/sys/alpha/include/kse.h#2 delete .. //depot/projects/power/sys/alpha/linux/linux_proto.h#3 integrate .. //depot/projects/power/sys/alpha/linux/linux_syscall.h#3 integrate .. //depot/projects/power/sys/alpha/linux/linux_sysent.c#3 integrate .. //depot/projects/power/sys/alpha/linux/linux_sysvec.c#3 integrate .. //depot/projects/power/sys/alpha/linux/syscalls.conf#2 integrate .. //depot/projects/power/sys/alpha/linux/syscalls.master#3 integrate .. //depot/projects/power/sys/alpha/osf1/osf1_proto.h#3 integrate .. //depot/projects/power/sys/alpha/osf1/osf1_syscall.h#3 integrate .. //depot/projects/power/sys/alpha/osf1/osf1_sysent.c#3 integrate .. //depot/projects/power/sys/alpha/osf1/syscalls.conf#2 integrate .. //depot/projects/power/sys/alpha/osf1/syscalls.master#3 integrate .. //depot/projects/power/sys/alpha/pci/apecs.c#3 integrate .. //depot/projects/power/sys/amd64/acpica/madt.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/amd64-gdbstub.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/amd64_mem.c#4 integrate .. //depot/projects/power/sys/amd64/amd64/apic_vector.S#2 integrate .. //depot/projects/power/sys/amd64/amd64/critical.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/elf_machdep.c#3 integrate .. //depot/projects/power/sys/amd64/amd64/fpu.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/local_apic.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/machdep.c#5 integrate .. //depot/projects/power/sys/amd64/amd64/mem.c#3 integrate .. //depot/projects/power/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/power/sys/amd64/amd64/mptable.c#2 integrate .. //depot/projects/power/sys/amd64/amd64/nexus.c#4 integrate .. //depot/projects/power/sys/amd64/amd64/pmap.c#5 integrate .. //depot/projects/power/sys/amd64/amd64/vm_machdep.c#4 integrate .. //depot/projects/power/sys/amd64/ia32/ia32_signal.c#3 integrate .. //depot/projects/power/sys/amd64/ia32/ia32_sigtramp.S#1 branch .. //depot/projects/power/sys/amd64/include/apicreg.h#2 integrate .. //depot/projects/power/sys/amd64/include/cpufunc.h#3 integrate .. //depot/projects/power/sys/amd64/include/critical.h#2 integrate .. //depot/projects/power/sys/amd64/include/kse.h#2 delete .. //depot/projects/power/sys/amd64/include/mutex.h#2 integrate .. //depot/projects/power/sys/amd64/include/param.h#3 integrate .. //depot/projects/power/sys/amd64/include/pcvt_ioctl.h#1 branch .. //depot/projects/power/sys/amd64/include/runq.h#2 integrate .. //depot/projects/power/sys/amd64/include/vmparam.h#4 integrate .. //depot/projects/power/sys/amd64/pci/pci_bus.c#4 integrate .. //depot/projects/power/sys/amd64/pci/pci_cfgreg.c#2 integrate .. //depot/projects/power/sys/boot/Makefile#2 integrate .. //depot/projects/power/sys/boot/efi/include/efiapi.h#2 integrate .. //depot/projects/power/sys/boot/ficl/Makefile#2 integrate .. //depot/projects/power/sys/boot/ficl/loader.c#2 integrate .. //depot/projects/power/sys/boot/ficl/powerpc/sysdep.c#1 branch .. //depot/projects/power/sys/boot/ficl/powerpc/sysdep.h#1 branch .. //depot/projects/power/sys/boot/i386/Makefile#2 integrate .. //depot/projects/power/sys/boot/i386/boot0/Makefile#2 integrate .. //depot/projects/power/sys/boot/i386/boot0/boot0.s#3 integrate .. //depot/projects/power/sys/boot/i386/boot0/boot0sio.s#1 branch .. //depot/projects/power/sys/boot/i386/boot0sio/Makefile#1 branch .. //depot/projects/power/sys/boot/i386/cdboot/cdboot.s#2 integrate .. //depot/projects/power/sys/boot/ia64/libski/acpi_stub.c#2 integrate .. //depot/projects/power/sys/boot/ofw/common/main.c#2 integrate .. //depot/projects/power/sys/boot/ofw/libofw/devicename.c#2 integrate .. //depot/projects/power/sys/boot/ofw/libofw/elf_freebsd.c#2 integrate .. //depot/projects/power/sys/boot/ofw/libofw/libofw.h#2 integrate .. //depot/projects/power/sys/boot/ofw/libofw/ofw_copy.c#2 integrate .. //depot/projects/power/sys/boot/ofw/libofw/ofw_disk.c#2 integrate .. //depot/projects/power/sys/boot/powerpc/loader/Makefile#2 integrate .. //depot/projects/power/sys/boot/powerpc/loader/conf.c#2 integrate .. //depot/projects/power/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_proto.h#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate .. //depot/projects/power/sys/compat/freebsd32/freebsd32_util.h#2 integrate .. //depot/projects/power/sys/compat/freebsd32/syscalls.conf#2 integrate .. //depot/projects/power/sys/compat/freebsd32/syscalls.master#3 integrate .. //depot/projects/power/sys/compat/ia32/ia32_sigtramp.S#2 delete .. //depot/projects/power/sys/compat/ia32/ia32_sysvec.c#4 integrate .. //depot/projects/power/sys/compat/ia32/ia32_util.h#3 integrate .. //depot/projects/power/sys/compat/linprocfs/linprocfs.c#3 integrate .. //depot/projects/power/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/power/sys/compat/ndis/cfg_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/hal_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/kern_ndis.c#1 branch .. //depot/projects/power/sys/compat/ndis/ndis_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/ntoskrnl_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/pe_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/resource_var.h#1 branch .. //depot/projects/power/sys/compat/ndis/subr_hal.c#1 branch .. //depot/projects/power/sys/compat/ndis/subr_ndis.c#1 branch .. //depot/projects/power/sys/compat/ndis/subr_ntoskrnl.c#1 branch .. //depot/projects/power/sys/compat/ndis/subr_pe.c#1 branch .. //depot/projects/power/sys/compat/svr4/svr4_proto.h#2 integrate .. //depot/projects/power/sys/compat/svr4/svr4_syscall.h#2 integrate .. //depot/projects/power/sys/compat/svr4/svr4_syscallnames.c#2 integrate .. //depot/projects/power/sys/compat/svr4/svr4_sysent.c#2 integrate .. //depot/projects/power/sys/compat/svr4/svr4_sysvec.c#3 integrate .. //depot/projects/power/sys/compat/svr4/syscalls.conf#2 integrate .. //depot/projects/power/sys/compat/svr4/syscalls.master#2 integrate .. //depot/projects/power/sys/conf/Makefile.alpha#2 integrate .. //depot/projects/power/sys/conf/Makefile.powerpc#2 integrate .. //depot/projects/power/sys/conf/NOTES#5 integrate .. //depot/projects/power/sys/conf/files#5 integrate .. //depot/projects/power/sys/conf/files.amd64#4 integrate .. //depot/projects/power/sys/conf/files.i386#3 integrate .. //depot/projects/power/sys/conf/files.ia64#4 integrate .. //depot/projects/power/sys/conf/files.pc98#3 integrate .. //depot/projects/power/sys/conf/kern.mk#3 integrate .. //depot/projects/power/sys/conf/kern.post.mk#4 integrate .. //depot/projects/power/sys/conf/kern.pre.mk#4 integrate .. //depot/projects/power/sys/conf/kmod.mk#4 integrate .. //depot/projects/power/sys/conf/ldscript.i386#3 integrate .. //depot/projects/power/sys/conf/majors#5 integrate .. //depot/projects/power/sys/conf/newvers.sh#3 integrate .. //depot/projects/power/sys/conf/options#5 integrate .. //depot/projects/power/sys/conf/options.i386#4 integrate .. //depot/projects/power/sys/conf/options.pc98#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acconfig.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acdisasm.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acenv.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acevents.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acexcep.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acglobal.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acmacros.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acobject.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acstruct.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/actbl.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/actbl1.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/actbl2.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/actypes.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/acutils.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/common/adisasm.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbcmds.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbdisply.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbexec.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbfileio.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbstats.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dbutils.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dmobject.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dmresrc.c#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dmresrcl.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsfield.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsinit.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsmethod.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsmthdat.c#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsopcode.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dsutils.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dswexec.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dswload.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dswscope.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/dswstate.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evgpe.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evgpeblk.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evmisc.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evregion.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evrgnini.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/evxfregn.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exconfig.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/excreate.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exdump.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exfield.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exfldio.c#4 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exmisc.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exmutex.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exoparg1.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exoparg3.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exprep.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exregion.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exresnte.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exresolv.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exresop.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exstore.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exstoren.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exsystem.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/exutils.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/hwacpi.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/hwregs.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/hwsleep.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsaccess.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsalloc.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsdump.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsdumpdv.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsinit.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsobject.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nssearch.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsutils.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/nsxfname.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/osunixxf.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/psargs.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/psparse.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/psxface.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rsaddr.c#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rscalc.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rscreate.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rsdump.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rsirq.c#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/rslist.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbconvrt.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbget.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbgetall.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbinstal.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbrsdt.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbxface.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/tbxfroot.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/utalloc.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/utdebug.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/utdelete.c#3 integrate .. //depot/projects/power/sys/contrib/dev/acpica/uteval.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/utglobal.c#2 integrate .. //depot/projects/power/sys/contrib/dev/acpica/utobject.c#2 integrate .. //depot/projects/power/sys/contrib/dev/ath/ah.h#4 integrate .. //depot/projects/power/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#4 integrate .. //depot/projects/power/sys/contrib/dev/ath/version.h#4 integrate .. //depot/projects/power/sys/contrib/ipfilter/netinet/ip_log.c#3 integrate .. //depot/projects/power/sys/dev/aac/aac_cam.c#2 integrate .. //depot/projects/power/sys/dev/acpica/acpi.c#8 integrate .. //depot/projects/power/sys/dev/acpica/acpi_cmbat.c#4 integrate .. //depot/projects/power/sys/dev/acpica/acpi_cpu.c#4 integrate .. //depot/projects/power/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/power/sys/dev/acpica/acpi_pci_link.c#3 integrate .. //depot/projects/power/sys/dev/acpica/acpi_pcib.c#4 integrate .. //depot/projects/power/sys/dev/acpica/acpi_thermal.c#4 integrate .. //depot/projects/power/sys/dev/acpica/acpivar.h#6 integrate .. //depot/projects/power/sys/dev/acpica/madt.h#2 delete .. //depot/projects/power/sys/dev/aic7xxx/ahc_eisa.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/ahc_pci.c#5 integrate .. //depot/projects/power/sys/dev/aic7xxx/ahd_pci.c#5 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7770.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx.seq#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx_inline.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx_osm.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx.reg#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx.seq#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx_93cx6.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx_osm.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic7xxx_pci.c#3 integrate .. //depot/projects/power/sys/dev/aic7xxx/aic_osm_lib.c#1 branch .. //depot/projects/power/sys/dev/aic7xxx/aic_osm_lib.h#1 branch .. //depot/projects/power/sys/dev/aic7xxx/aicasm/aicasm.c#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l#2 integrate .. //depot/projects/power/sys/dev/aic7xxx/aicasm/aicasm_scan.l#2 integrate .. //depot/projects/power/sys/dev/an/if_aironet_ieee.h#2 integrate .. //depot/projects/power/sys/dev/an/if_an.c#3 integrate .. //depot/projects/power/sys/dev/an/if_an_isa.c#2 integrate .. //depot/projects/power/sys/dev/an/if_an_pccard.c#3 integrate .. //depot/projects/power/sys/dev/an/if_an_pci.c#2 integrate .. //depot/projects/power/sys/dev/an/if_anreg.h#3 integrate .. //depot/projects/power/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/power/sys/dev/ata/ata-isa.c#2 integrate .. //depot/projects/power/sys/dev/ata/ata-lowlevel.c#4 integrate .. //depot/projects/power/sys/dev/ata/ata-pci.c#4 integrate .. //depot/projects/power/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/power/sys/dev/ata/ata-queue.c#3 integrate .. //depot/projects/power/sys/dev/ata/atapi-cam.c#4 integrate .. //depot/projects/power/sys/dev/ata/atapi-cd.c#5 integrate .. //depot/projects/power/sys/dev/ath/if_ath.c#5 integrate .. //depot/projects/power/sys/dev/ath/if_athioctl.h#3 integrate .. //depot/projects/power/sys/dev/bge/if_bge.c#4 integrate .. //depot/projects/power/sys/dev/bktr/bktr_audio.c#2 integrate .. //depot/projects/power/sys/dev/bktr/bktr_card.c#2 integrate .. //depot/projects/power/sys/dev/bktr/bktr_core.c#4 integrate .. //depot/projects/power/sys/dev/bktr/bktr_i2c.c#2 integrate .. //depot/projects/power/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/power/sys/dev/bktr/bktr_tuner.c#2 integrate .. //depot/projects/power/sys/dev/bktr/ioctl_bt848.h#1 branch .. //depot/projects/power/sys/dev/bktr/ioctl_meteor.h#1 branch .. //depot/projects/power/sys/dev/bktr/msp34xx.c#2 integrate .. //depot/projects/power/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/power/sys/dev/ciss/cissreg.h#2 integrate .. //depot/projects/power/sys/dev/cx/cronyxfw.h#1 branch .. //depot/projects/power/sys/dev/cx/csigma.c#1 branch .. //depot/projects/power/sys/dev/cx/csigmafw.h#1 branch .. //depot/projects/power/sys/dev/cx/cxddk.c#1 branch .. //depot/projects/power/sys/dev/cx/cxddk.h#1 branch .. //depot/projects/power/sys/dev/cx/cxreg.h#1 branch .. //depot/projects/power/sys/dev/cx/if_cx.c#1 branch .. //depot/projects/power/sys/dev/cx/machdep.h#1 branch .. //depot/projects/power/sys/dev/cx/ng_cx.h#1 branch .. //depot/projects/power/sys/dev/dgb/dgb.c#2 delete .. //depot/projects/power/sys/dev/dgb/dgbios.h#2 delete .. //depot/projects/power/sys/dev/dgb/dgfep.h#2 delete .. //depot/projects/power/sys/dev/dgb/dgreg.h#2 delete .. //depot/projects/power/sys/dev/drm/drm_bufs.h#4 integrate .. //depot/projects/power/sys/dev/drm/drm_dma.h#3 integrate .. //depot/projects/power/sys/dev/ed/if_ed.c#4 integrate .. //depot/projects/power/sys/dev/ed/if_ed_pccard.c#4 integrate .. //depot/projects/power/sys/dev/em/if_em.c#4 integrate .. //depot/projects/power/sys/dev/en/midway.c#3 integrate .. //depot/projects/power/sys/dev/fatm/if_fatm.c#3 integrate .. //depot/projects/power/sys/dev/fe/if_fe.c#3 integrate .. //depot/projects/power/sys/dev/firewire/fwohci.c#4 integrate .. //depot/projects/power/sys/dev/firewire/sbp.h#3 integrate .. //depot/projects/power/sys/dev/firewire/sbp_targ.c#3 integrate .. //depot/projects/power/sys/dev/gem/if_gem_pci.c#2 integrate .. //depot/projects/power/sys/dev/gfb/gfb_pci.c#3 integrate .. //depot/projects/power/sys/dev/hatm/if_hatm_intr.c#4 integrate .. //depot/projects/power/sys/dev/hea/eni.c#2 delete .. //depot/projects/power/sys/dev/hea/eni.h#2 delete .. //depot/projects/power/sys/dev/hea/eni_buffer.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_globals.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_if.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_init.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_intr.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_receive.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_stats.h#2 delete .. //depot/projects/power/sys/dev/hea/eni_suni.h#2 delete .. //depot/projects/power/sys/dev/hea/eni_transmit.c#2 delete .. //depot/projects/power/sys/dev/hea/eni_var.h#2 delete .. //depot/projects/power/sys/dev/hea/eni_vcm.c#2 delete .. //depot/projects/power/sys/dev/hea/hea_freebsd.c#2 delete .. //depot/projects/power/sys/dev/hea/hea_freebsd.h#2 delete .. //depot/projects/power/sys/dev/hea/hea_pci.c#2 delete .. //depot/projects/power/sys/dev/hifn/hifn7751.c#3 integrate .. //depot/projects/power/sys/dev/idt/idt.c#3 integrate .. //depot/projects/power/sys/dev/idt/idt_harp.c#2 integrate .. //depot/projects/power/sys/dev/if_ndis/if_ndis.c#1 branch .. //depot/projects/power/sys/dev/if_ndis/if_ndisvar.h#1 branch .. //depot/projects/power/sys/dev/iicbus/if_ic.c#3 integrate .. //depot/projects/power/sys/dev/ips/ips_commands.c#4 integrate .. //depot/projects/power/sys/dev/led/led.c#3 integrate .. //depot/projects/power/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/power/sys/dev/lmc/if_lmc.c#2 delete .. //depot/projects/power/sys/dev/lmc/if_lmc_common.c#2 delete .. //depot/projects/power/sys/dev/lmc/if_lmc_fbsd3.c#2 delete .. //depot/projects/power/sys/dev/lmc/if_lmc_media.c#2 delete .. //depot/projects/power/sys/dev/lmc/if_lmcioctl.h#2 delete .. //depot/projects/power/sys/dev/lmc/if_lmcvar.h#2 delete .. //depot/projects/power/sys/dev/lnc/if_lnc.c#3 integrate .. //depot/projects/power/sys/dev/md/md.c#4 integrate .. //depot/projects/power/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/power/sys/dev/my/if_my.c#3 integrate .. //depot/projects/power/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/power/sys/dev/ofw/ofw_disk.c#3 integrate .. //depot/projects/power/sys/dev/owi/if_owi.c#4 integrate .. //depot/projects/power/sys/dev/pccard/pccarddevs#5 integrate .. //depot/projects/power/sys/dev/pccard/pccarddevs.h#5 integrate .. //depot/projects/power/sys/dev/pccbb/pccbb.c#4 integrate .. //depot/projects/power/sys/dev/pci/pci.c#6 integrate .. //depot/projects/power/sys/dev/ppbus/if_plip.c#3 integrate .. //depot/projects/power/sys/dev/puc/pucdata.c#4 integrate .. //depot/projects/power/sys/dev/raidframe/rf_freebsdkintf.c#3 integrate .. //depot/projects/power/sys/dev/ray/if_ray.c#3 integrate .. //depot/projects/power/sys/dev/re/if_re.c#5 integrate .. //depot/projects/power/sys/dev/sio/sio.c#4 integrate .. //depot/projects/power/sys/dev/sio/sio_ebus.c#2 integrate .. //depot/projects/power/sys/dev/sio/sio_isa.c#2 integrate .. //depot/projects/power/sys/dev/sio/sio_puc.c#2 integrate .. //depot/projects/power/sys/dev/sn/if_sn.c#4 integrate .. //depot/projects/power/sys/dev/sound/pcm/channel.c#4 integrate .. //depot/projects/power/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/power/sys/dev/sound/pcm/sound.c#2 integrate .. //depot/projects/power/sys/dev/stg/tmc18c30.c#2 integrate .. //depot/projects/power/sys/dev/sym/sym_hipd.c#2 integrate .. //depot/projects/power/sys/dev/twe/twe.c#2 integrate .. //depot/projects/power/sys/dev/twe/twe_compat.h#2 integrate .. //depot/projects/power/sys/dev/twe/twe_freebsd.c#2 integrate .. //depot/projects/power/sys/dev/twe/twe_tables.h#2 integrate .. //depot/projects/power/sys/dev/twe/tweio.h#2 integrate .. //depot/projects/power/sys/dev/twe/twereg.h#3 integrate .. //depot/projects/power/sys/dev/twe/twevar.h#2 integrate .. //depot/projects/power/sys/dev/tx/if_tx.c#3 integrate .. //depot/projects/power/sys/dev/usb/ehci_pci.c#4 integrate .. //depot/projects/power/sys/dev/usb/if_aue.c#4 integrate .. //depot/projects/power/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/power/sys/dev/usb/if_cue.c#5 integrate .. //depot/projects/power/sys/dev/usb/if_rue.c#4 integrate .. //depot/projects/power/sys/dev/usb/ohci.c#4 integrate .. //depot/projects/power/sys/dev/usb/ohci_pci.c#4 integrate .. //depot/projects/power/sys/dev/usb/ohcivar.h#2 integrate .. //depot/projects/power/sys/dev/usb/umass.c#3 integrate .. //depot/projects/power/sys/dev/usb/usbdevs#4 integrate .. //depot/projects/power/sys/dev/usb/usbdevs.h#4 integrate .. //depot/projects/power/sys/dev/usb/usbdevs_data.h#4 integrate .. //depot/projects/power/sys/dev/usb/uscanner.c#3 integrate .. //depot/projects/power/sys/dev/vinum/vinum.c#2 integrate .. //depot/projects/power/sys/dev/vinum/vinumconfig.c#3 integrate .. //depot/projects/power/sys/dev/vinum/vinumrevive.c#3 integrate .. //depot/projects/power/sys/dev/wi/if_wi.c#4 integrate .. //depot/projects/power/sys/dev/wi/if_wi_pccard.c#3 integrate .. //depot/projects/power/sys/dev/wi/if_wireg.h#2 integrate .. //depot/projects/power/sys/dev/wi/if_wivar.h#2 integrate .. //depot/projects/power/sys/dev/xe/if_xe.c#4 integrate .. //depot/projects/power/sys/fs/msdosfs/bootsect.h#2 integrate .. //depot/projects/power/sys/fs/msdosfs/bpb.h#2 integrate .. //depot/projects/power/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/power/sys/fs/msdosfs/direntry.h#3 integrate .. //depot/projects/power/sys/fs/msdosfs/fat.h#2 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_conv.c#3 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_denode.c#3 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_vfsops.c#4 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfs_vnops.c#3 integrate .. //depot/projects/power/sys/fs/msdosfs/msdosfsmount.h#3 integrate .. //depot/projects/power/sys/fs/ntfs/ntfs_subr.c#3 integrate .. //depot/projects/power/sys/fs/nullfs/null_vnops.c#2 integrate .. //depot/projects/power/sys/fs/nwfs/nwfs_vfsops.c#3 integrate .. //depot/projects/power/sys/fs/procfs/procfs.c#2 integrate .. //depot/projects/power/sys/fs/procfs/procfs_ctl.c#2 integrate .. //depot/projects/power/sys/fs/procfs/procfs_ioctl.c#2 integrate .. //depot/projects/power/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/power/sys/fs/procfs/procfs_rlimit.c#2 integrate .. //depot/projects/power/sys/fs/procfs/procfs_status.c#2 integrate .. //depot/projects/power/sys/fs/procfs/procfs_type.c#2 integrate .. //depot/projects/power/sys/fs/pseudofs/pseudofs.c#2 integrate .. //depot/projects/power/sys/fs/pseudofs/pseudofs.h#2 integrate .. //depot/projects/power/sys/fs/smbfs/smbfs_vfsops.c#4 integrate .. //depot/projects/power/sys/fs/smbfs/smbfs_vnops.c#3 integrate .. //depot/projects/power/sys/fs/udf/udf_vnops.c#4 integrate .. //depot/projects/power/sys/geom/geom.h#3 integrate .. //depot/projects/power/sys/geom/geom_disk.c#3 integrate .. //depot/projects/power/sys/geom/geom_dump.c#2 integrate .. //depot/projects/power/sys/geom/geom_event.c#4 integrate .. //depot/projects/power/sys/geom/geom_io.c#3 integrate .. //depot/projects/power/sys/geom/geom_pc98.c#2 integrate .. //depot/projects/power/sys/i386/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/power/sys/i386/acpica/madt.c#2 integrate .. //depot/projects/power/sys/i386/conf/GENERIC#4 integrate .. //depot/projects/power/sys/i386/conf/NOTES#5 integrate .. //depot/projects/power/sys/i386/i386/apic_vector.s#2 integrate .. //depot/projects/power/sys/i386/i386/elf_machdep.c#3 integrate .. //depot/projects/power/sys/i386/i386/local_apic.c#2 integrate .. //depot/projects/power/sys/i386/i386/machdep.c#5 integrate .. //depot/projects/power/sys/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/power/sys/i386/i386/mptable.c#2 integrate .. //depot/projects/power/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/power/sys/i386/i386/vm_machdep.c#4 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_isc_syscall.h#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_isc_sysent.c#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_proto.h#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_syscall.h#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_sysent.c#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_xenix.h#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_xenix_syscall.h#2 integrate .. //depot/projects/power/sys/i386/ibcs2/ibcs2_xenix_sysent.c#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.conf#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.isc#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.isc.conf#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.master#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.xenix#2 integrate .. //depot/projects/power/sys/i386/ibcs2/syscalls.xenix.conf#2 integrate .. //depot/projects/power/sys/i386/include/apicreg.h#2 integrate .. //depot/projects/power/sys/i386/include/cpu.h#2 integrate .. //depot/projects/power/sys/i386/include/cronyx.h#2 delete .. //depot/projects/power/sys/i386/include/cserial.h#1 branch .. //depot/projects/power/sys/i386/include/ioctl_bt848.h#2 integrate .. //depot/projects/power/sys/i386/include/kse.h#2 delete .. //depot/projects/power/sys/i386/include/pcvt_ioctl.h#2 integrate .. //depot/projects/power/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/power/sys/i386/include/smp.h#3 integrate .. //depot/projects/power/sys/i386/isa/cronyx.c#2 delete .. //depot/projects/power/sys/i386/isa/cx.c#3 delete .. //depot/projects/power/sys/i386/isa/cxreg.h#2 delete .. //depot/projects/power/sys/i386/isa/cy.c#4 integrate .. //depot/projects/power/sys/i386/isa/if_cx.c#3 delete .. //depot/projects/power/sys/i386/isa/loran.c#2 delete .. //depot/projects/power/sys/i386/linux/linux_proto.h#3 integrate .. //depot/projects/power/sys/i386/linux/linux_syscall.h#3 integrate .. //depot/projects/power/sys/i386/linux/linux_sysent.c#3 integrate .. //depot/projects/power/sys/i386/linux/linux_sysvec.c#3 integrate .. //depot/projects/power/sys/i386/linux/syscalls.conf#2 integrate .. //depot/projects/power/sys/i386/linux/syscalls.master#3 integrate .. //depot/projects/power/sys/i386/pci/pci_cfgreg.c#4 integrate .. //depot/projects/power/sys/ia64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/power/sys/ia64/acpica/madt.c#2 integrate .. //depot/projects/power/sys/ia64/ia32/Makefile#2 delete .. //depot/projects/power/sys/ia64/ia32/ia32.h#2 delete .. //depot/projects/power/sys/ia64/ia32/ia32_misc.c#2 delete .. //depot/projects/power/sys/ia64/ia32/ia32_proto.h#3 delete .. //depot/projects/power/sys/ia64/ia32/ia32_signal.c#1 branch .. //depot/projects/power/sys/ia64/ia32/ia32_sigtramp.c#1 branch .. //depot/projects/power/sys/ia64/ia32/ia32_syscall.h#3 delete .. //depot/projects/power/sys/ia64/ia32/ia32_sysent.c#3 delete .. //depot/projects/power/sys/ia64/ia32/ia32_sysvec.c#3 delete .. //depot/projects/power/sys/ia64/ia32/ia32_util.h#2 delete .. //depot/projects/power/sys/ia64/ia32/syscalls.conf#2 delete .. //depot/projects/power/sys/ia64/ia32/syscalls.master#3 delete .. //depot/projects/power/sys/ia64/ia64/dump_machdep.c#2 integrate .. //depot/projects/power/sys/ia64/ia64/elf_machdep.c#4 integrate .. //depot/projects/power/sys/ia64/ia64/machdep.c#5 integrate .. //depot/projects/power/sys/ia64/ia64/trap.c#5 integrate .. //depot/projects/power/sys/ia64/ia64/vm_machdep.c#5 integrate .. //depot/projects/power/sys/ia64/include/cpufunc.h#2 integrate .. //depot/projects/power/sys/ia64/include/ioctl_bt848.h#2 delete .. //depot/projects/power/sys/ia64/include/ioctl_meteor.h#2 delete .. //depot/projects/power/sys/ia64/include/kse.h#2 delete .. //depot/projects/power/sys/ia64/include/runq.h#2 integrate .. //depot/projects/power/sys/ia64/include/ucontext.h#3 integrate .. //depot/projects/power/sys/isa/psm.c#3 integrate .. //depot/projects/power/sys/kern/imgact_elf.c#3 integrate .. //depot/projects/power/sys/kern/init_sysent.c#4 integrate .. //depot/projects/power/sys/kern/kern_clock.c#3 integrate .. //depot/projects/power/sys/kern/kern_descrip.c#3 integrate .. //depot/projects/power/sys/kern/kern_event.c#4 integrate .. //depot/projects/power/sys/kern/kern_exec.c#4 integrate .. //depot/projects/power/sys/kern/kern_prot.c#5 integrate .. //depot/projects/power/sys/kern/kern_sig.c#5 integrate .. //depot/projects/power/sys/kern/kern_subr.c#3 integrate .. //depot/projects/power/sys/kern/kern_switch.c#4 integrate .. //depot/projects/power/sys/kern/kern_thread.c#3 integrate .. //depot/projects/power/sys/kern/kern_timeout.c#3 integrate .. //depot/projects/power/sys/kern/makesyscalls.sh#2 integrate .. //depot/projects/power/sys/kern/sched_4bsd.c#5 integrate .. //depot/projects/power/sys/kern/sched_ule.c#5 integrate .. //depot/projects/power/sys/kern/subr_mbpool.c#2 integrate .. //depot/projects/power/sys/kern/subr_mbuf.c#3 integrate .. //depot/projects/power/sys/kern/subr_prf.c#2 integrate .. //depot/projects/power/sys/kern/subr_smp.c#5 integrate .. //depot/projects/power/sys/kern/subr_taskqueue.c#3 integrate .. //depot/projects/power/sys/kern/subr_turnstile.c#2 integrate .. //depot/projects/power/sys/kern/sys_pipe.c#4 integrate .. //depot/projects/power/sys/kern/syscalls.c#4 integrate .. //depot/projects/power/sys/kern/syscalls.master#4 integrate .. //depot/projects/power/sys/kern/sysv_sem.c#4 integrate .. //depot/projects/power/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/power/sys/kern/uipc_syscalls.c#4 integrate .. //depot/projects/power/sys/kern/vfs_bio.c#5 integrate .. //depot/projects/power/sys/kern/vfs_subr.c#6 integrate .. //depot/projects/power/sys/kern/vfs_syscalls.c#4 integrate .. //depot/projects/power/sys/kern/vfs_vnops.c#3 integrate .. //depot/projects/power/sys/libkern/iconv_xlat16.c#2 integrate .. //depot/projects/power/sys/modules/Makefile#5 integrate .. //depot/projects/power/sys/modules/acpi/Makefile#4 integrate .. //depot/projects/power/sys/modules/acpi/acpi/Makefile#1 branch .. //depot/projects/power/sys/modules/cam/Makefile#2 integrate .. //depot/projects/power/sys/modules/crypto/Makefile#2 integrate .. //depot/projects/power/sys/modules/cx/Makefile#1 branch .. //depot/projects/power/sys/modules/hea/Makefile#2 delete .. //depot/projects/power/sys/modules/if_ndis/Makefile#1 branch .. //depot/projects/power/sys/modules/ndis/Makefile#1 branch .. //depot/projects/power/sys/modules/raidframe/Makefile#2 integrate .. //depot/projects/power/sys/modules/sio/Makefile#1 branch .. //depot/projects/power/sys/modules/ukbd/Makefile#2 integrate .. //depot/projects/power/sys/net/bpf.c#4 integrate .. //depot/projects/power/sys/net/bpf.h#4 integrate .. //depot/projects/power/sys/net/bridge.c#4 integrate .. //depot/projects/power/sys/net/if.c#5 integrate .. //depot/projects/power/sys/net/if_disc.c#4 integrate .. //depot/projects/power/sys/net/if_ef.c#3 integrate .. //depot/projects/power/sys/net/if_faith.c#4 integrate .. //depot/projects/power/sys/net/if_gif.c#3 integrate .. //depot/projects/power/sys/net/if_gre.c#3 integrate .. //depot/projects/power/sys/net/if_gre.h#2 integrate .. //depot/projects/power/sys/net/if_loop.c#5 integrate .. //depot/projects/power/sys/net/if_stf.c#4 integrate .. //depot/projects/power/sys/net/if_tun.c#5 integrate .. //depot/projects/power/sys/net/if_var.h#5 integrate .. //depot/projects/power/sys/net/route.c#5 integrate .. //depot/projects/power/sys/net80211/ieee80211_radiotap.h#2 integrate .. //depot/projects/power/sys/netgraph/atm/ng_atm.c#3 integrate .. //depot/projects/power/sys/netgraph/atm/ngatmbase.c#2 integrate .. //depot/projects/power/sys/netgraph/atm/sscfu/ng_sscfu.c#2 integrate .. //depot/projects/power/sys/netgraph/atm/uni/ng_uni.c#2 integrate .. //depot/projects/power/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#3 integrate .. //depot/projects/power/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#3 integrate .. //depot/projects/power/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_base.c#4 integrate .. //depot/projects/power/sys/netgraph/ng_bridge.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_eiface.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_eiface.h#3 integrate .. //depot/projects/power/sys/netgraph/ng_etf.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_ether.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_ether.h#2 integrate .. //depot/projects/power/sys/netgraph/ng_iface.c#3 integrate .. //depot/projects/power/sys/netgraph/ng_ksocket.c#2 integrate .. //depot/projects/power/sys/netgraph/ng_parse.c#2 integrate .. //depot/projects/power/sys/netgraph/ng_parse.h#3 integrate .. //depot/projects/power/sys/netgraph/ng_pppoe.c#2 integrate .. //depot/projects/power/sys/netinet/if_ether.c#4 integrate .. //depot/projects/power/sys/netinet/in.c#3 integrate .. //depot/projects/power/sys/netinet/ip_dummynet.c#6 integrate .. //depot/projects/power/sys/netinet/ip_fastfwd.c#2 integrate .. //depot/projects/power/sys/netinet/ip_fw2.c#5 integrate .. //depot/projects/power/sys/netinet/ip_gre.c#2 integrate .. //depot/projects/power/sys/netinet/ip_mroute.c#5 integrate .. //depot/projects/power/sys/netinet/tcp_hostcache.c#3 integrate .. //depot/projects/power/sys/netinet/tcp_subr.c#6 integrate .. //depot/projects/power/sys/netinet6/in6_src.c#5 integrate .. //depot/projects/power/sys/netinet6/ip6_fw.c#4 integrate .. //depot/projects/power/sys/netinet6/ip6_mroute.c#4 integrate .. //depot/projects/power/sys/netinet6/ip6_output.c#6 integrate .. //depot/projects/power/sys/netinet6/nd6.c#5 integrate .. //depot/projects/power/sys/netipsec/ipsec_mbuf.c#3 integrate .. //depot/projects/power/sys/netkey/key.c#6 integrate .. //depot/projects/power/sys/nfs4client/nfs4_idmap.c#2 integrate .. //depot/projects/power/sys/nfsserver/nfs_srvsubs.c#2 integrate .. //depot/projects/power/sys/opencrypto/crmbuf.c#2 delete .. //depot/projects/power/sys/opencrypto/cryptodev.h#2 integrate .. //depot/projects/power/sys/opencrypto/cryptosoft.c#2 integrate .. //depot/projects/power/sys/pc98/conf/NOTES#3 integrate .. //depot/projects/power/sys/pc98/pc98/sio.c#4 integrate .. //depot/projects/power/sys/pc98/pc98/sio_cbus.c#2 integrate .. //depot/projects/power/sys/pci/cy_pci.c#2 integrate .. //depot/projects/power/sys/pci/if_dc.c#6 integrate .. //depot/projects/power/sys/pci/if_dcreg.h#4 integrate .. //depot/projects/power/sys/pci/if_pcn.c#3 integrate .. //depot/projects/power/sys/pci/if_rl.c#4 integrate .. //depot/projects/power/sys/pci/if_sf.c#3 integrate .. //depot/projects/power/sys/pci/if_sis.c#5 integrate .. //depot/projects/power/sys/pci/if_sisreg.h#3 integrate .. //depot/projects/power/sys/pci/if_sk.c#5 integrate .. //depot/projects/power/sys/pci/if_ste.c#3 integrate .. //depot/projects/power/sys/pci/if_tl.c#3 integrate .. //depot/projects/power/sys/pci/if_vr.c#3 integrate .. //depot/projects/power/sys/pci/if_wb.c#3 integrate .. //depot/projects/power/sys/pci/if_xl.c#5 integrate .. //depot/projects/power/sys/pci/meteor.c#2 delete .. //depot/projects/power/sys/pci/meteor_reg.h#2 delete .. //depot/projects/power/sys/powerpc/include/cpufunc.h#2 integrate .. //depot/projects/power/sys/powerpc/include/kse.h#2 delete .. //depot/projects/power/sys/powerpc/include/powerpc.h#2 integrate .. //depot/projects/power/sys/powerpc/powermac/ata_macio.c#3 integrate .. //depot/projects/power/sys/powerpc/powerpc/db_interface.c#2 integrate .. //depot/projects/power/sys/powerpc/powerpc/elf_machdep.c#3 integrate .. //depot/projects/power/sys/powerpc/powerpc/machdep.c#4 integrate .. //depot/projects/power/sys/powerpc/powerpc/ofw_machdep.c#2 integrate .. //depot/projects/power/sys/powerpc/powerpc/pmap.c#3 integrate .. //depot/projects/power/sys/powerpc/powerpc/vm_machdep.c#3 integrate .. //depot/projects/power/sys/security/mac/mac_net.c#4 integrate .. //depot/projects/power/sys/security/mac/mac_process.c#4 integrate .. //depot/projects/power/sys/security/mac_biba/mac_biba.c#3 integrate .. //depot/projects/power/sys/security/mac_lomac/mac_lomac.c#4 integrate .. //depot/projects/power/sys/security/mac_mls/mac_mls.c#3 integrate .. //depot/projects/power/sys/security/mac_partition/mac_partition.c#3 integrate .. //depot/projects/power/sys/security/mac_stub/mac_stub.c#3 integrate .. //depot/projects/power/sys/security/mac_test/mac_test.c#3 integrate .. //depot/projects/power/sys/sparc64/include/kse.h#2 delete .. //depot/projects/power/sys/sparc64/pci/psycho.c#2 integrate .. //depot/projects/power/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/power/sys/sparc64/sparc64/bus_machdep.c#2 integrate .. //depot/projects/power/sys/sparc64/sparc64/db_trace.c#2 integrate .. //depot/projects/power/sys/sparc64/sparc64/dump_machdep.c#2 integrate .. //depot/projects/power/sys/sparc64/sparc64/elf_machdep.c#3 integrate .. //depot/projects/power/sys/sparc64/sparc64/mp_machdep.c#3 integrate .. //depot/projects/power/sys/sparc64/sparc64/ofw_machdep.c#3 integrate .. //depot/projects/power/sys/sparc64/sparc64/vm_machdep.c#3 integrate .. //depot/projects/power/sys/sys/_null.h#1 branch .. //depot/projects/power/sys/sys/copyright.h#2 integrate .. //depot/projects/power/sys/sys/iconv.h#4 integrate .. //depot/projects/power/sys/sys/imgact_elf.h#2 integrate .. //depot/projects/power/sys/sys/ioctl_bt848.h#2 delete .. //depot/projects/power/sys/sys/ioctl_meteor.h#2 delete .. //depot/projects/power/sys/sys/kse.h#2 integrate .. //depot/projects/power/sys/sys/mac.h#4 integrate .. //depot/projects/power/sys/sys/mac_policy.h#3 integrate .. //depot/projects/power/sys/sys/mbuf.h#6 integrate .. //depot/projects/power/sys/sys/param.h#4 integrate .. //depot/projects/power/sys/sys/proc.h#5 integrate .. //depot/projects/power/sys/sys/sf_buf.h#2 integrate .. //depot/projects/power/sys/sys/smp.h#3 integrate .. //depot/projects/power/sys/sys/socket.h#3 integrate .. //depot/projects/power/sys/sys/stddef.h#2 integrate .. //depot/projects/power/sys/sys/syscall.h#4 integrate .. //depot/projects/power/sys/sys/syscall.mk#4 integrate .. //depot/projects/power/sys/sys/sysproto.h#4 integrate .. //depot/projects/power/sys/sys/systm.h#3 integrate .. //depot/projects/power/sys/sys/uio.h#3 integrate .. //depot/projects/power/sys/sys/umtx.h#2 integrate .. //depot/projects/power/sys/sys/vnode.h#5 integrate .. //depot/projects/power/sys/ufs/ffs/ffs_vfsops.c#4 integrate .. //depot/projects/power/sys/vm/swap_pager.c#5 integrate .. //depot/projects/power/sys/vm/uma_core.c#5 integrate .. //depot/projects/power/sys/vm/uma_int.h#3 integrate .. //depot/projects/power/sys/vm/vm_fault.c#4 integrate .. //depot/projects/power/sys/vm/vm_kern.c#4 integrate .. //depot/projects/power/sys/vm/vm_map.c#4 integrate .. //depot/projects/power/sys/vm/vm_mmap.c#4 integrate .. //depot/projects/power/sys/vm/vm_object.c#5 integrate .. //depot/projects/power/sys/vm/vm_page.c#4 integrate Differences ... ==== //depot/projects/power/sys/alpha/alpha/db_trace.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.16 2003/11/29 11:57:02 jeff Exp $ */ +/* $FreeBSD: src/sys/alpha/alpha/db_trace.c,v 1.17 2003/12/23 02:36:41 peter Exp $ */ /* $NetBSD: db_trace.c,v 1.9 2000/12/13 03:16:36 mycroft Exp $ */ /*- @@ -99,7 +99,7 @@ { (uintptr_t)&XentSys, "syscall" }, { (uintptr_t)&XentUna, "unaligned access fault" }, { (uintptr_t)&XentRestart, "console restart" }, - { NULL } + { 0, NULL } }; @@ -180,7 +180,7 @@ { int i; - for (i = 0; special_symbols[i].ss_val != NULL; ++i) + for (i = 0; special_symbols[i].ss_val != 0; ++i) if (v == special_symbols[i].ss_val) return 1; return 0; @@ -339,7 +339,7 @@ if (sym_is_trapsymbol(symval)) { tf = (struct trapframe *)frame; - for (i = 0; special_symbols[i].ss_val != NULL; ++i) + for (i = 0; special_symbols[i].ss_val != 0; ++i) if (symval == special_symbols[i].ss_val) db_printf("--- %s", special_symbols[i].ss_note); ==== //depot/projects/power/sys/alpha/alpha/dump_machdep.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/dump_machdep.c,v 1.5 2003/08/22 07:20:25 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/dump_machdep.c,v 1.6 2003/12/23 02:36:41 peter Exp $"); #include #include @@ -88,7 +88,7 @@ dumplo = di->mediaoffset + di->mediasize - Maxmem * (off_t)PAGE_SIZE; dumplo -= sizeof kdh * 2; - i = di->dumper(di->priv, &kdh, NULL, dumplo, sizeof kdh); + i = di->dumper(di->priv, &kdh, 0, dumplo, sizeof kdh); if (i) printf("\nDump failed writing header (%d)\n", i); dumplo += sizeof kdh; @@ -111,7 +111,7 @@ printf(" %d", count / (1024 * 1024 / PAGE_SIZE)); mb = i; } - i = di->dumper(di->priv, va, NULL, dumplo, left * PAGE_SIZE); + i = di->dumper(di->priv, va, 0, dumplo, left * PAGE_SIZE); if (i) break; count += left; @@ -120,10 +120,10 @@ } if (i) printf("\nDump failed writing data (%d)\n", i); - i = di->dumper(di->priv, &kdh, NULL, dumplo, sizeof kdh); + i = di->dumper(di->priv, &kdh, 0, dumplo, sizeof kdh); if (i) printf("\nDump failed writing trailer (%d)\n", i); - di->dumper(di->priv, NULL, NULL, 0, 0); /* tell them we are done */ + di->dumper(di->priv, NULL, 0, 0, 0); /* tell them we are done */ printf("\nDump complete\n"); return; } ==== //depot/projects/power/sys/alpha/alpha/elf_machdep.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/elf_machdep.c,v 1.16 2003/09/25 01:10:22 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/elf_machdep.c,v 1.17 2003/12/23 02:42:38 peter Exp $"); #include #include @@ -81,15 +81,31 @@ ELFOSABI_FREEBSD, EM_ALPHA, "FreeBSD", - "", + NULL, "/libexec/ld-elf.so.1", - &elf64_freebsd_sysvec + &elf64_freebsd_sysvec, + NULL, }; SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY, (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_info); +static Elf64_Brandinfo freebsd_brand_oinfo = { + ELFOSABI_FREEBSD, + EM_ALPHA, + "FreeBSD", + NULL, + "/usr/libexec/ld-elf.so.1", + &elf64_freebsd_sysvec, + NULL, + }; + +SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf64_insert_brand_entry, + &freebsd_brand_oinfo); + + /* Process one elf relocation with addend. */ static int elf_reloc_internal(linker_file_t lf, const void *data, int type, int local) ==== //depot/projects/power/sys/alpha/alpha/mp_machdep.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.50 2003/11/30 22:08:24 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.51 2003/12/03 14:57:25 jhb Exp $"); #include "opt_kstack_pages.h" @@ -339,7 +339,6 @@ continue; mp_maxid = i; } - mp_maxid++; } int ==== //depot/projects/power/sys/alpha/alpha/vm_machdep.c#3 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.96 2003/11/16 23:40:05 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.99 2003/12/28 08:57:08 silby Exp $"); #include "opt_kstack_pages.h" @@ -415,6 +415,7 @@ mtx_lock(&sf_freelist.sf_lock); while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) { sf_buf_alloc_want++; + mbstat.sf_allocwait++; error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM|PCATCH, "sfbufa", 0); sf_buf_alloc_want--; @@ -428,6 +429,8 @@ if (sf != NULL) { SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); sf->m = m; + nsfbufsused++; + nsfbufspeak = imax(nsfbufspeak, nsfbufsused); } mtx_unlock(&sf_freelist.sf_lock); return (sf); @@ -457,6 +460,7 @@ sf->m = NULL; mtx_lock(&sf_freelist.sf_lock); SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); + nsfbufsused--; if (sf_buf_alloc_want > 0) wakeup_one(&sf_freelist); mtx_unlock(&sf_freelist.sf_lock); ==== //depot/projects/power/sys/alpha/conf/GENERIC#4 (text+ko) ==== @@ -12,13 +12,13 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.164 2003/11/13 02:04:34 jeff Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.165 2003/12/08 05:20:34 obrien Exp $ machine alpha cpu EV4 @@ -62,7 +62,7 @@ options PSEUDOFS #Pseudo-filesystem framework options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] options COMPAT_FREEBSD4 #Compatible with FreeBSD4 -options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI +options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI options KTRACE #ktrace(1) syscall trace support options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues @@ -111,8 +111,10 @@ device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) +# RAID controllers interfaced to the SCSI subsystem +device amr # AMI MegaRAID + # RAID controllers -device amr # AMI MegaRAID device mlx # Mylex DAC960 family # atkbdc0 controls both the keyboard and the PS/2 mouse @@ -139,12 +141,12 @@ device lpt # Printer device ppi # Parallel port interface device #device vpo # Requires scbus and da - + # If you've got a "dumb" serial or parallel PCI card that is # supported by the puc(4) glue driver, uncomment the following # line to enable it (connects to the sio and/or ppc drivers): #device puc - + # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') device txp # 3Com 3cR990 (``Typhoon'') ==== //depot/projects/power/sys/alpha/conf/GENERIC.hints#2 (text+ko) ==== @@ -1,10 +1,11 @@ -# $FreeBSD: src/sys/alpha/conf/GENERIC.hints,v 1.6 2002/11/14 14:59:27 jhb Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC.hints,v 1.7 2003/12/05 00:57:11 des Exp $ hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" hint.fdc.0.drq="2" hint.fd.0.at="fdc0" hint.fd.0.drive="0" +hint.fd.0.flags="4" hint.ata.0.at="isa" hint.ata.0.port="0x1F0" hint.ata.0.irq="14" ==== //depot/projects/power/sys/alpha/include/ioctl_bt848.h#2 (text+ko) ==== @@ -1,298 +1,38 @@ -/* - * extensions to ioctl_meteor.h for the bt848 cards +/*- + * Copyright (c) 2003 David O'Brien + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/ioctl_bt848.h,v 1.2 2000/10/27 07:07:24 roger Exp $ + * $FreeBSD: src/sys/alpha/include/ioctl_bt848.h,v 1.3 2003/12/08 07:22:41 obrien Exp $ */ -#ifndef _MACHINE_IOCTL_BT848_H_ -#define _MACHINE_IOCTL_BT848_H_ +#ifndef _MACHINE_IOCTL_BT848_H_ +#define _MACHINE_IOCTL_BT848_H_ -/* - * frequency sets - */ -#define CHNLSET_NABCST 1 -#define CHNLSET_CABLEIRC 2 -#define CHNLSET_CABLEHRC 3 -#define CHNLSET_WEUROPE 4 -#define CHNLSET_JPNBCST 5 -#define CHNLSET_JPNCABLE 6 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jan 1 21:53:53 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE21216A4D0; Thu, 1 Jan 2004 21:53:52 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C947B16A4CE for ; Thu, 1 Jan 2004 21:53:52 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5C86F43D31 for ; Thu, 1 Jan 2004 21:53:48 -0800 (PST) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i025rm0B074521 for ; Thu, 1 Jan 2004 21:53:48 -0800 (PST) (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i025rlX0074518 for perforce@freebsd.org; Thu, 1 Jan 2004 21:53:47 -0800 (PST) (envelope-from imp@freebsd.org) Date: Thu, 1 Jan 2004 21:53:47 -0800 (PST) Message-Id: <200401020553.i025rlX0074518@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Subject: PERFORCE change 44670 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 05:53:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=44670 Change 44670 by imp@imp_pacopaco on 2004/01/01 21:53:31 Integrate from newcard to get imp's power/resource stuff. Affected files ... .. //depot/projects/power/sys/dev/pci/pci.c#7 integrate .. //depot/projects/power/sys/dev/pci/pci_pci.c#4 integrate .. //depot/projects/power/sys/dev/pci/pci_private.h#5 integrate .. //depot/projects/power/sys/dev/pci/pci_user.c#4 integrate .. //depot/projects/power/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/power/sys/dev/pci/pcivar.h#4 integrate Differences ... ==== //depot/projects/power/sys/dev/pci/pci.c#7 (text+ko) ==== @@ -68,8 +68,9 @@ static int pci_porten(device_t pcib, int b, int s, int f); static int pci_memen(device_t pcib, int b, int s, int f); -static int pci_add_map(device_t pcib, int b, int s, int f, - int reg, struct resource_list *rl); +static int pci_add_map(device_t pcib, device_t bus, device_t dev, + int b, int s, int f, int reg, + struct resource_list *rl); static void pci_add_resources(device_t pcib, device_t bus, device_t dev); static int pci_probe(device_t dev); @@ -615,6 +616,7 @@ return (EINVAL); } pci_set_command_bit(dev, child, bit); + /* Some devices seem to need a brief stall here, what do to? */ command = PCI_READ_CONFIG(dev, child, PCIR_COMMAND, 2); if (command & bit) return (0); @@ -721,11 +723,12 @@ * register is a 32bit map register or 2 if it is a 64bit register. */ static int -pci_add_map(device_t pcib, int b, int s, int f, int reg, - struct resource_list *rl) +pci_add_map(device_t pcib, device_t bus, device_t dev, + int b, int s, int f, int reg, struct resource_list *rl) { uint32_t map; uint64_t base; + uint64_t start, end, count; uint8_t ln2size; uint8_t ln2range; uint32_t testval; @@ -733,7 +736,6 @@ int type; map = PCIB_READ_CONFIG(pcib, b, s, f, reg, 4); - PCIB_WRITE_CONFIG(pcib, b, s, f, reg, 0xffffffff, 4); testval = PCIB_READ_CONFIG(pcib, b, s, f, reg, 4); PCIB_WRITE_CONFIG(pcib, b, s, f, reg, map, 4); @@ -759,10 +761,9 @@ (type == SYS_RES_IOPORT && ln2size < 3)) return (1); - if (ln2range == 64) { + if (ln2range == 64) /* Read the other half of a 64bit map register */ base |= (uint64_t) PCIB_READ_CONFIG(pcib, b, s, f, reg + 4, 4) << 32; - } if (bootverbose) { printf("\tmap[%02x]: type %x, range %2d, base %08x, size %2d", @@ -778,9 +779,10 @@ /* * This code theoretically does the right thing, but has - * undesirable side effects in some cases where - * peripherals respond oddly to having these bits - * enabled. Leave them alone by default. + * undesirable side effects in some cases where peripherals + * respond oddly to having these bits enabled. Let the user + * be able to turn them off (since pci_enable_io_modes is 1 by + * default). */ if (pci_enable_io_modes) { /* Turn on resources that have been left off by a lazy BIOS */ @@ -802,13 +804,21 @@ } /* * If base is 0, then we have problems. It is best to ignore - * such entires for the moment. XXX + * such entires for the moment. These will be allocated later if + * the driver specifically requests them. */ if (base == 0) return 1; - resource_list_add(rl, type, reg, base, base + (1 << ln2size) - 1, - (1 << ln2size)); + start = base; + end = base + (1 << ln2size) - 1; + count = 1 << ln2size; + resource_list_add(rl, type, reg, start, end, count); + /* + * Not quite sure what to do on failure of allocating the resource + * since I can postulate several right answers. + */ + resource_list_alloc(rl, bus, dev, type, ®, start, end, count, 0); return ((ln2range == 64) ? 2 : 1); } @@ -824,14 +834,13 @@ b = cfg->bus; s = cfg->slot; f = cfg->func; - for (i = 0; i < cfg->nummaps;) { - i += pci_add_map(pcib, b, s, f, PCIR_BAR(i), rl); - } + for (i = 0; i < cfg->nummaps;) + i += pci_add_map(pcib, bus, dev, b, s, f, PCIR_BAR(i), rl); for (q = &pci_quirks[0]; q->devid; q++) { if (q->devid == ((cfg->device << 16) | cfg->vendor) && q->type == PCI_QUIRK_MAP_REG) - pci_add_map(pcib, b, s, f, q->arg1, rl); + pci_add_map(pcib, bus, dev, b, s, f, q->arg1, rl); } if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { @@ -892,6 +901,7 @@ pcib = device_get_parent(bus); dinfo->cfg.dev = device_add_child(bus, NULL, -1); device_set_ivars(dinfo->cfg.dev, dinfo); + pci_cfg_save(dinfo->cfg.dev, dinfo, 0); pci_cfg_restore(dinfo->cfg.dev, dinfo); pci_add_resources(pcib, bus, dinfo->cfg.dev); pci_print_verbose(dinfo); @@ -1421,18 +1431,74 @@ } #endif /* DDB */ +/* + * XXX I'm not sure the following is good for 64-bit bars. + */ +static struct resource * +pci_alloc_map(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct pci_devinfo *dinfo = device_get_ivars(child); + struct resource_list *rl = &dinfo->resources; + struct resource_list_entry *rle; + struct resource *res; + uint32_t map, testval; + + /* + * Weed out the bogons, and figure out how large the BAR/map is. + */ + map = pci_read_config(child, *rid, 4); + if (pci_maptype(map) & PCI_MAPMEM) { + if (type != SYS_RES_MEMORY) { + device_printf(child, "rid %#x says memory, driver wants %d failed.\n", *rid, type); + return (NULL); + } + } else { + if (type != SYS_RES_IOPORT) { + device_printf(child, "rid %#x says ioport, driver wants %d failed.\n", *rid, type); + return (NULL); + } + } + pci_write_config(child, *rid, 0xffffffff, 4); + testval = pci_read_config(child, *rid, 4); + + /* + * Allocate enough resource, and then write back the + * appropriate bar for that resource (this is the part + * I'm not sure is good for 64-bit bars). + */ + count = 1 << pci_mapsize(testval); + res = BUS_ALLOC_RESOURCE(device_get_parent(dev), child, type, rid, + start, end, count, flags); + if (res == NULL) { + device_printf(child, "%#lx bytes of rid %#x res %d failed.\n", + count, *rid, type); + pci_write_config(child, *rid, map, 4); + return (NULL); + } + resource_list_add(rl, type, *rid, start, end, count); + rle = resource_list_find(rl, type, *rid); + if (rle == NULL) + panic("pci_alloc_map: unexpedly can't find resource."); + rle->res = res; + device_printf(child, "Lazy allocation of %#lx bytes rid %#x type %d at %#lx\n", + count, *rid, type, rman_get_start(res)); + pci_write_config(child, *rid, rman_get_start(res), 4); + return (res); +} + + struct resource * pci_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { struct pci_devinfo *dinfo = device_get_ivars(child); struct resource_list *rl = &dinfo->resources; + struct resource_list_entry *rle; pcicfgregs *cfg = &dinfo->cfg; /* * Perform lazy resource allocation - * - * XXX add support here for SYS_RES_IOPORT and SYS_RES_MEMORY */ if (device_get_parent(child) == dev) { switch (type) { @@ -1458,16 +1524,39 @@ if (*rid < PCIR_BAR(cfg->nummaps)) { /* * Enable the I/O mode. We should - * also be allocating resources - * too. XXX + * also be assigning resources too + * when none are present. The + * resource_list_alloc kind of sorta does + * this... */ if (PCI_ENABLE_IO(dev, child, type)) return (NULL); } + rle = resource_list_find(rl, type, *rid); + if (rle == NULL) + return (pci_alloc_map(dev, child, type, rid, + start, end, count, flags)); break; } + /* + * If we've already allocated the resource, then + * return it now. But first we may need to activate + * it, since we don't allocate the resource as active + * above. Normally this would be done down in the + * nexus, but since we short-circuit that path we have + * to do its job here. Not sure if we should free the + * resource if it fails to activate. + */ + rle = resource_list_find(rl, type, *rid); + if (rle != NULL && rle->res != NULL) { + device_printf(child, "Bus reserved %#lx bytes for rid %#x type %d at %#lx\n", rman_get_size(rle->res), *rid, type, rman_get_start(rle->res)); + if ((flags & RF_ACTIVE) && + bus_generic_activate_resource(dev, child, type, + *rid, rle->res) != 0) + return NULL; + return (rle->res); + } } - return (resource_list_alloc(rl, dev, child, type, rid, start, end, count, flags)); } @@ -1511,13 +1600,9 @@ struct resource_list * pci_get_resource_list (device_t dev, device_t child) { - struct pci_devinfo * dinfo = device_get_ivars(child); - struct resource_list * rl = &dinfo->resources; + struct pci_devinfo *dinfo = device_get_ivars(child); - if (!rl) - return (NULL); - - return (rl); + return (&dinfo->resources); } uint32_t @@ -1604,35 +1689,77 @@ static void pci_cfg_restore(device_t dev, struct pci_devinfo *dinfo) { -#define NBAR 7 int i; - uint32_t bar[NBAR]; + /* + * Only do header type 0 devices. Type 1 devices are bridges, which + * we know need special treatment. Type 2 devices are cardbus bridges + * which also require special treatment. Other types are unknown, and + * we err on the side of safety by ignoring them. + */ if (dinfo->cfg.hdrtype != 0) return; - for (i = 0; i < NBAR; i++) - bar[i] = pci_read_config(dev, PCIR_MAPS + i * 4, 4); printf("pci%d:%d:%d: setting power state D0\n", dinfo->cfg.bus, dinfo->cfg.slot, dinfo->cfg.func); pci_set_powerstate(dev, PCI_POWERSTATE_D0); - for (i = 0; i < NBAR; i++) - pci_write_config(dev, PCIR_MAPS + i * 4, bar[i], 4); + for (i = 0; i < dinfo->cfg.nummaps; i++) + pci_write_config(dev, PCIR_MAPS + i * 4, dinfo->cfg.bar[i], 4); + pci_write_config(dev, PCIR_COMMAND, dinfo->cfg.cmdreg, 2); + pci_write_config(dev, PCIR_INTLINE, dinfo->cfg.intline, 1); + pci_write_config(dev, PCIR_INTPIN, dinfo->cfg.intpin, 1); pci_write_config(dev, PCIR_MINGNT, dinfo->cfg.mingnt, 1); pci_write_config(dev, PCIR_MAXLAT, dinfo->cfg.maxlat, 1); - if (dinfo->cfg.intpin > 0 && PCI_INTERRUPT_VALID(dinfo->cfg.intline)) - dinfo->cfg.intline = PCI_ASSIGN_INTERRUPT( - device_get_parent(dev), dev); - pci_write_config(dev, PCIR_INTLINE, dinfo->cfg.intline, 1); - pci_write_config(dev, PCIR_INTPIN, dinfo->cfg.intpin, 1); + pci_write_config(dev, PCIR_CACHELNSZ, dinfo->cfg.cachelnsz, 1); + pci_write_config(dev, PCIR_LATTIMER, dinfo->cfg.lattimer, 1); } static void pci_cfg_save(device_t dev, struct pci_devinfo *dinfo, int setstate) { + int i; uint32_t cls; + /* + * Only do header type 0 devices. Type 1 devices are bridges, which + * we know need special treatment. Type 2 devices are cardbus bridges + * which also require special treatment. Other types are unknown, and + * we err on the side of safety by ignoring them. Powering down + * bridges should not be undertaken lightly. + */ if (dinfo->cfg.hdrtype != 0) return; + for (i = 0; i < dinfo->cfg.nummaps; i++) + dinfo->cfg.bar[i] = pci_read_config(dev, PCIR_MAPS + i * 4, 4); + + /* + * Some drivers apparently write to these registers w/o + * updating our cahced copy. No harm happens if we update the + * copy, so do so here so we can restore them. The COMMAND + * register is modified by the bus w/o updating the cache. This + * should represent the normally writable portion of the 'defined' + * part of type 0 headers. In theory we also need to save/restore + * the PCI capability structures we know about, but apart from power + * we don't know any that are writable. + */ + dinfo->cfg.cmdreg = pci_read_config(dev, PCIR_COMMAND, 2); + dinfo->cfg.intline = pci_read_config(dev, PCIR_INTLINE, 1); + dinfo->cfg.intpin = pci_read_config(dev, PCIR_INTPIN, 1); + dinfo->cfg.mingnt = pci_read_config(dev, PCIR_MINGNT, 1); + dinfo->cfg.maxlat = pci_read_config(dev, PCIR_MAXLAT, 1); + dinfo->cfg.cachelnsz = pci_read_config(dev, PCIR_CACHELNSZ, 1); + dinfo->cfg.lattimer = pci_read_config(dev, PCIR_LATTIMER, 1); + + /* + * don't set the state for display devices and for memory devices + * since bad things happen. we should (a) have drivers that can easily + * detach and (b) use generic drivers for these devices so that some + * device actually attaches. We need to make sure that when we + * implement (a) we don't power the device down on a reattach. + * + * John and Nate also tell me that we should be running the power up + * and power down hooks when we change power state for those nodes + * that have ACPI hooks in the tree. + */ cls = pci_get_class(dev); if (setstate && cls != PCIC_DISPLAY && cls != PCIC_MEMORY) { pci_set_powerstate(dev, PCI_POWERSTATE_D3); ==== //depot/projects/power/sys/dev/pci/pci_pci.c#4 (text+ko) ==== @@ -311,144 +311,133 @@ pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { - struct pcib_softc *sc = device_get_softc(dev); - int ok; + struct pcib_softc *sc = device_get_softc(dev); + int ok; - /* - * If this is a "default" allocation against this rid, we can't work - * out where it's coming from (we should actually never see these) so we - * just have to punt. - */ - if ((start == 0) && (end == ~0)) { - device_printf(dev, "can't decode default resource id %d for %s%d, bypassing\n", - *rid, device_get_name(child), device_get_unit(child)); - } else { /* * Fail the allocation for this range if it's not supported. */ switch (type) { case SYS_RES_IOPORT: - ok = 1; - if (!pcib_is_isa_io(start)) { - ok = 0; - if (pcib_is_io_open(sc)) - ok = (start >= sc->iobase && end <= sc->iolimit); - if (!pci_allow_unsupported_io_range) { - if (!ok) { - if (start < sc->iobase) - start = sc->iobase; - if (end > sc->iolimit) - end = sc->iolimit; - } - } else { - if (start < sc->iobase) - printf("start (%lx) < sc->iobase (%x)\n", start, - sc->iobase); - if (end > sc->iolimit) - printf("end (%lx) > sc->iolimit (%x)\n", - end, sc->iolimit); - if (end < start) - printf("end (%lx) < start (%lx)\n", end, start); + ok = 1; + if (!pcib_is_isa_io(start)) { + ok = 0; + if (pcib_is_io_open(sc)) + ok = (start >= sc->iobase && end <= sc->iolimit); + if (!pci_allow_unsupported_io_range) { + if (!ok) { + if (start < sc->iobase) + start = sc->iobase; + if (end > sc->iolimit) + end = sc->iolimit; + } + } else { + if (start < sc->iobase) + printf("start (%lx) < sc->iobase (%x)\n", start, + sc->iobase); + if (end > sc->iolimit) + printf("end (%lx) > sc->iolimit (%x)\n", + end, sc->iolimit); + if (end < start) + printf("end (%lx) < start (%lx)\n", end, start); + } + } + if (end < start) { + start = 0; + end = 0; + ok = 0; + } + if (!ok) { + device_printf(dev, "device %s%d requested unsupported I/O " + "range 0x%lx-0x%lx (decoding 0x%x-0x%x)\n", + device_get_name(child), device_get_unit(child), start, end, + sc->iobase, sc->iolimit); + return (NULL); } - } - if (end < start) { - start = 0; - end = 0; - ok = 0; - } - if (!ok) { - device_printf(dev, "device %s%d requested unsupported I/O " - "range 0x%lx-0x%lx (decoding 0x%x-0x%x)\n", - device_get_name(child), device_get_unit(child), start, end, - sc->iobase, sc->iolimit); - return (NULL); - } - if (bootverbose) - device_printf(sc->dev, "device %s%d requested decoded I/O range 0x%lx-0x%lx\n", - device_get_name(child), device_get_unit(child), start, end); - break; + if (bootverbose) + device_printf(sc->dev, "device %s%d requested decoded I/O range 0x%lx-0x%lx\n", + device_get_name(child), device_get_unit(child), start, end); + break; case SYS_RES_MEMORY: - ok = 1; - if (!pcib_is_isa_mem(start)) { - ok = 0; - if (pcib_is_nonprefetch_open(sc)) - ok = ok || (start >= sc->membase && end <= sc->memlimit); - if (pcib_is_prefetch_open(sc)) - ok = ok || (start >= sc->pmembase && end <= sc->pmemlimit); - if (!pci_allow_unsupported_io_range) { - if (!ok) { - ok = 1; - if (flags & RF_PREFETCHABLE) { - if (pcib_is_prefetch_open(sc)) { - if (start < sc->pmembase) - start = sc->pmembase; - if (end > sc->pmemlimit) - end = sc->pmemlimit; - } else { - ok = 0; - } - } else { /* non-prefetchable */ - if (pcib_is_nonprefetch_open(sc)) { - if (start < sc->membase) - start = sc->membase; - if (end > sc->memlimit) - end = sc->memlimit; - } else { - ok = 0; - } + ok = 1; + if (!pcib_is_isa_mem(start)) { + ok = 0; + if (pcib_is_nonprefetch_open(sc)) + ok = ok || (start >= sc->membase && end <= sc->memlimit); + if (pcib_is_prefetch_open(sc)) + ok = ok || (start >= sc->pmembase && end <= sc->pmemlimit); + if (!pci_allow_unsupported_io_range) { + if (!ok) { + ok = 1; + if (flags & RF_PREFETCHABLE) { + if (pcib_is_prefetch_open(sc)) { + if (start < sc->pmembase) + start = sc->pmembase; + if (end > sc->pmemlimit) + end = sc->pmemlimit; + } else { + ok = 0; + } + } else { /* non-prefetchable */ + if (pcib_is_nonprefetch_open(sc)) { + if (start < sc->membase) + start = sc->membase; + if (end > sc->memlimit) + end = sc->memlimit; + } else { + ok = 0; + } + } + } + } else if (!ok) { + ok = 1; /* pci_allow_unsupported_ranges -> always ok */ + if (pcib_is_nonprefetch_open(sc)) { + if (start < sc->membase) + printf("start (%lx) < sc->membase (%x)\n", + start, sc->membase); + if (end > sc->memlimit) + printf("end (%lx) > sc->memlimit (%x)\n", + end, sc->memlimit); + } + if (pcib_is_prefetch_open(sc)) { + if (start < sc->pmembase) + printf("start (%lx) < sc->pmembase (%x)\n", + start, sc->pmembase); + if (end > sc->pmemlimit) + printf("end (%lx) > sc->pmemlimit (%x)\n", + end, sc->memlimit); + } + if (end < start) + printf("end (%lx) < start (%lx)\n", end, start); } - } - } else if (!ok) { - ok = 1; /* pci_allow_unsupported_ranges -> always ok */ - if (pcib_is_nonprefetch_open(sc)) { - if (start < sc->membase) - printf("start (%lx) < sc->membase (%x)\n", - start, sc->membase); - if (end > sc->memlimit) - printf("end (%lx) > sc->memlimit (%x)\n", - end, sc->memlimit); - } - if (pcib_is_prefetch_open(sc)) { - if (start < sc->pmembase) - printf("start (%lx) < sc->pmembase (%x)\n", - start, sc->pmembase); - if (end > sc->pmemlimit) - printf("end (%lx) > sc->pmemlimit (%x)\n", - end, sc->memlimit); - } - if (end < start) - printf("end (%lx) < start (%lx)\n", end, start); + } + if (end < start) { + start = 0; + end = 0; + ok = 0; } - } - if (end < start) { - start = 0; - end = 0; - ok = 0; - } - if (!ok && bootverbose) - device_printf(dev, - "device %s%d requested unsupported memory range " - "0x%lx-0x%lx (decoding 0x%x-0x%x, 0x%x-0x%x)\n", - device_get_name(child), device_get_unit(child), start, - end, sc->membase, sc->memlimit, sc->pmembase, - sc->pmemlimit); - if (!ok) - return (NULL); - if (bootverbose) - device_printf(sc->dev, "device %s%d requested decoded memory range 0x%lx-0x%lx\n", - device_get_name(child), device_get_unit(child), start, end); - break; + if (!ok && bootverbose) + device_printf(dev, + "device %s%d requested unsupported memory range " + "0x%lx-0x%lx (decoding 0x%x-0x%x, 0x%x-0x%x)\n", + device_get_name(child), device_get_unit(child), start, + end, sc->membase, sc->memlimit, sc->pmembase, + sc->pmemlimit); + if (!ok) + return (NULL); + if (bootverbose) + device_printf(sc->dev,"device %s%d requested decoded memory range 0x%lx-0x%lx\n", + device_get_name(child), device_get_unit(child), start, end); + break; default: - break; + break; } - } - - /* - * Bridge is OK decoding this resource, so pass it up. - */ - return(bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); + /* + * Bridge is OK decoding this resource, so pass it up. + */ + return (bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); } /* ==== //depot/projects/power/sys/dev/pci/pci_private.h#5 (text+ko) ==== ==== //depot/projects/power/sys/dev/pci/pci_user.c#4 (text+ko) ==== @@ -429,4 +429,3 @@ return (error); } - ==== //depot/projects/power/sys/dev/pci/pcireg.h#4 (text+ko) ==== ==== //depot/projects/power/sys/dev/pci/pcivar.h#4 (text+ko) ==== @@ -66,16 +66,12 @@ uint16_t msi_data; /* Location of MSI data word */ }; -/* Additional data saved on power events */ -struct pci_save -{ - uint32_t bar[7]; /* 7 bars to save */ -}; - /* config header information common to all header types */ typedef struct pcicfg { struct device *dev; /* device which owns this */ + uint32_t bar[PCI_MAXMAPS_0]; /* BARs */ + uint16_t subvendor; /* card vendor ID */ uint16_t subdevice; /* card device ID, assigned by card vendor */ uint16_t vendor; /* chip vendor ID */ From owner-p4-projects@FreeBSD.ORG Thu Jan 1 22:02:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4773D16A4D0; Thu, 1 Jan 2004 22:02:02 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 09DC416A4CE for ; Thu, 1 Jan 2004 22:02:02 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C5B143D1F for ; Thu, 1 Jan 2004 22:01:59 -0800 (PST) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i0261w0B076072 for ; Thu, 1 Jan 2004 22:01:58 -0800 (PST) (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i0261wk0076063 for perforce@freebsd.org; Thu, 1 Jan 2004 22:01:58 -0800 (PST) (envelope-from imp@freebsd.org) Date: Thu, 1 Jan 2004 22:01:58 -0800 (PST) Message-Id: <200401020601.i0261wk0076063@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Subject: PERFORCE change 44671 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 06:02:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=44671 Change 44671 by imp@imp_pacopaco on 2004/01/01 22:01:40 Go ahead and integrate the cardbus changes, many of which are relevant to power. Affected files ... .. //depot/projects/power/sys/dev/pccbb/pccbb.c#5 integrate .. //depot/projects/power/sys/dev/pccbb/pccbbdevid.h#2 integrate .. //depot/projects/power/sys/dev/pccbb/pccbbreg.h#2 integrate .. //depot/projects/power/sys/dev/pccbb/pccbbvar.h#2 integrate Differences ... ==== //depot/projects/power/sys/dev/pccbb/pccbb.c#5 (text+ko) ==== @@ -1,6 +1,6 @@ /* * Copyright (c) 2002-2003 M. Warner Losh. - * Copyright (c) 2000,2001 Jonathan Chen. + * Copyright (c) 2000-2001 Jonathan Chen. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -683,8 +683,9 @@ static int cbb_attach(device_t brdev) { + static int curr_bus_number = 1; /* XXX EVILE BAD (see below) */ struct cbb_softc *sc = (struct cbb_softc *)device_get_softc(brdev); - int rid; + int rid, bus; mtx_init(&sc->mtx, device_get_nameunit(brdev), "cbb", MTX_DEF); cv_init(&sc->cv, "cbb cv"); @@ -698,55 +699,16 @@ STAILQ_INIT(&sc->intr_handlers); #ifndef BURN_BRIDGES cbb_powerstate_d0(brdev); +#endif - /* - * The PCI bus code should assign us memory in the absense - * of the BIOS doing so. However, 'should' isn't 'is,' so we kludge - * up something here until the PCI/acpi code properly assigns the - * resource. - */ -#endif rid = CBBR_SOCKBASE; sc->base_res = bus_alloc_resource(brdev, SYS_RES_MEMORY, &rid, 0, ~0, 1, RF_ACTIVE); if (!sc->base_res) { -#ifdef BURN_BRIDGES device_printf(brdev, "Could not map register memory\n"); mtx_destroy(&sc->mtx); cv_destroy(&sc->cv); return (ENOMEM); -#else - uint32_t sockbase; - /* - * Generally, the BIOS will assign this memory for us. - * However, newer BIOSes do not because the MS design - * documents have mandated that this is for the OS - * to assign rather than the BIOS. This driver shouldn't - * be doing this, but until the pci bus code (or acpi) - * does this, we allow CardBus bridges to work on more - * machines. - */ - pci_write_config(brdev, rid, 0xfffffffful, 4); - sockbase = pci_read_config(brdev, rid, 4); - sockbase = (sockbase & 0xfffffff0ul) & - -(sockbase & 0xfffffff0ul); - sc->base_res = bus_generic_alloc_resource( - device_get_parent(brdev), brdev, SYS_RES_MEMORY, - &rid, cbb_start_mem, ~0, sockbase, - RF_ACTIVE | rman_make_alignment_flags(sockbase)); - if (!sc->base_res) { - device_printf(brdev, - "Could not grab register memory\n"); - mtx_destroy(&sc->mtx); - cv_destroy(&sc->cv); - return (ENOMEM); - } - sc->flags |= CBB_KLUDGE_ALLOC; - pci_write_config(brdev, CBBR_SOCKBASE, - rman_get_start(sc->base_res), 4); - DEVPRINTF((brdev, "PCI Memory allocated: %08lx\n", - rman_get_start(sc->base_res))); -#endif } else { DEVPRINTF((brdev, "Found memory at %08lx\n", rman_get_start(sc->base_res))); @@ -759,6 +721,25 @@ sc->exca.chipset = EXCA_CARDBUS; cbb_chipinit(sc); + /* + * This is a gross hack. We should be scanning the entire pci + * tree, assigning bus numbers in a way such that we (1) can + * reserve 1 extra bus just in case and (2) all sub busses + * are in an appropriate range. + */ + bus = pci_read_config(brdev, PCIR_SECBUS_2, 1); + DEVPRINTF((brdev, "Secondary bus is %d\n", bus)); + if (bus == 0) { + bus = curr_bus_number; + DEVPRINTF((brdev, "Secondary bus set to %d subbus %d\n", bus, + bus + 1)); + sc->secbus = bus; + sc->subbus = bus + 1; + pci_write_config(brdev, PCIR_SECBUS_2, bus, 1); + pci_write_config(brdev, PCIR_SUBBUS_2, bus + 1, 1); + curr_bus_number += 2; + } + /* attach children */ sc->cbdev = device_add_child(brdev, "cardbus", -1); if (sc->cbdev == NULL) @@ -812,19 +793,13 @@ device_printf(brdev, "unable to create event thread.\n"); panic("cbb_create_event_thread"); } - return (0); err: if (sc->irq_res) bus_release_resource(brdev, SYS_RES_IRQ, 0, sc->irq_res); if (sc->base_res) { - if (sc->flags & CBB_KLUDGE_ALLOC) - bus_generic_release_resource(device_get_parent(brdev), - brdev, SYS_RES_MEMORY, CBBR_SOCKBASE, - sc->base_res); - else - bus_release_resource(brdev, SYS_RES_MEMORY, - CBBR_SOCKBASE, sc->base_res); + bus_release_resource(brdev, SYS_RES_MEMORY, CBBR_SOCKBASE, + sc->base_res); } mtx_destroy(&sc->mtx); cv_destroy(&sc->cv); @@ -863,12 +838,8 @@ mtx_unlock(&sc->mtx); bus_release_resource(brdev, SYS_RES_IRQ, 0, sc->irq_res); - if (sc->flags & CBB_KLUDGE_ALLOC) - bus_generic_release_resource(device_get_parent(brdev), - brdev, SYS_RES_MEMORY, CBBR_SOCKBASE, sc->base_res); - else - bus_release_resource(brdev, SYS_RES_MEMORY, - CBBR_SOCKBASE, sc->base_res); + bus_release_resource(brdev, SYS_RES_MEMORY, CBBR_SOCKBASE, + sc->base_res); mtx_destroy(&sc->mtx); cv_destroy(&sc->cv); return (0); @@ -1124,7 +1095,6 @@ */ sockevent = cbb_get(sc, CBB_SOCKET_EVENT); if (sockevent != 0) { - DPRINTF(("CBB EVENT 0x%x\n", sockevent)); /* ack the interrupt */ cbb_setb(sc, CBB_SOCKET_EVENT, sockevent); @@ -1146,7 +1116,6 @@ cbb_setb(sc, CBB_SOCKET_MASK, CBB_SOCKET_MASK_CD); sc->flags &= ~CBB_CARD_OK; cbb_disable_func_intr(sc); - DPRINTF(("Waking up thread\n")); cv_signal(&sc->cv); mtx_unlock(&sc->mtx); } @@ -1340,13 +1309,17 @@ * detect the voltage for the card, and set it. Since the power * used is the square of the voltage, lower voltages is a big win * and what Windows does (and what Microsoft prefers). The MS paper - * also talks about preferring the CIS entry as well. + * also talks about preferring the CIS entry as well. In addition, + * we power up with OE disabled. We'll set it later in the power + * up sequence. */ static int cbb_do_power(device_t brdev) { + struct cbb_softc *sc = device_get_softc(brdev); int voltage; + exca_clrb(&sc->exca, EXCA_PWRCTL, EXCA_PWRCTL_OE); /* Prefer lowest voltage supported */ voltage = cbb_detect_voltage(brdev); cbb_power(brdev, CARD_OFF); @@ -1632,6 +1605,7 @@ start = cbb_start_mem; if (end < start) end = start; + /* This is now suspect: */ if (RF_ALIGNMENT(flags) < CBB_MEMALIGN_BITS) flags = (flags & ~RF_ALIGNMENT_MASK) | rman_make_alignment_flags(CBB_MEMALIGN); @@ -1956,11 +1930,14 @@ static uint32_t cbb_read_config(device_t brdev, int b, int s, int f, int reg, int width) { + uint32_t rv; + /* * Pass through to the next ppb up the chain (i.e. our grandparent). */ - return (PCIB_READ_CONFIG(device_get_parent(device_get_parent(brdev)), - b, s, f, reg, width)); + rv = PCIB_READ_CONFIG(device_get_parent(device_get_parent(brdev)), + b, s, f, reg, width); + return (rv); } static void ==== //depot/projects/power/sys/dev/pccbb/pccbbdevid.h#2 (text+ko) ==== ==== //depot/projects/power/sys/dev/pccbb/pccbbreg.h#2 (text+ko) ==== ==== //depot/projects/power/sys/dev/pccbb/pccbbvar.h#2 (text+ko) ==== @@ -67,7 +67,6 @@ struct cv cv; u_int32_t flags; #define CBB_CARD_OK 0x08000000 -#define CBB_KLUDGE_ALLOC 0x10000000 #define CBB_16BIT_CARD 0x20000000 #define CBB_KTHREAD_RUNNING 0x40000000 #define CBB_KTHREAD_DONE 0x80000000 From owner-p4-projects@FreeBSD.ORG Thu Jan 1 22:18:26 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 48E6C16A4D0; Thu, 1 Jan 2004 22:18:26 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 21BFE16A4CE for ; Thu, 1 Jan 2004 22:18:26 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F39A343D2F for ; Thu, 1 Jan 2004 22:18:22 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i026IM0B079536 for ; Thu, 1 Jan 2004 22:18:22 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i026ILv0079533 for perforce@freebsd.org; Thu, 1 Jan 2004 22:18:21 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 22:18:21 -0800 (PST) Message-Id: <200401020618.i026ILv0079533@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44673 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 06:18:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=44673 Change 44673 by sam@sam_ebb on 2004/01/01 22:18:09 IFC Affected files ... .. //depot/projects/netperf/sys/amd64/amd64/pmap.c#20 integrate .. //depot/projects/netperf/sys/compat/ndis/kern_ndis.c#7 integrate .. //depot/projects/netperf/sys/compat/ndis/ndis_var.h#6 integrate .. //depot/projects/netperf/sys/compat/ndis/subr_ndis.c#8 integrate .. //depot/projects/netperf/sys/compat/ndis/subr_ntoskrnl.c#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_thermal.c#6 integrate .. //depot/projects/netperf/sys/dev/ed/if_ed_pccard.c#6 integrate .. //depot/projects/netperf/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/netperf/sys/dev/ips/ips_commands.c#5 integrate .. //depot/projects/netperf/sys/dev/pccard/pccarddevs#10 integrate .. //depot/projects/netperf/sys/dev/pccard/pccarddevs.h#10 integrate .. //depot/projects/netperf/sys/dev/puc/pucdata.c#9 integrate .. //depot/projects/netperf/sys/dev/usb/ubsa.c#6 integrate .. //depot/projects/netperf/sys/dev/usb/ucom.c#6 integrate .. //depot/projects/netperf/sys/dev/usb/ufm.c#5 integrate .. //depot/projects/netperf/sys/dev/usb/usbdevs#9 integrate .. //depot/projects/netperf/sys/dev/usb/usbdevs.h#9 integrate .. //depot/projects/netperf/sys/dev/usb/usbdevs_data.h#9 integrate .. //depot/projects/netperf/sys/dev/usb/uvscom.c#4 integrate .. //depot/projects/netperf/sys/i386/acpica/acpi_wakecode.S#7 integrate .. //depot/projects/netperf/sys/i386/pci/pci_cfgreg.c#6 integrate .. //depot/projects/netperf/sys/sys/copyright.h#2 integrate .. //depot/projects/netperf/sys/vm/vm_kern.c#10 integrate .. //depot/projects/netperf/sys/vm/vm_map.c#17 integrate .. //depot/projects/netperf/sys/vm/vm_object.c#12 integrate .. //depot/projects/netperf/sys/vm/vm_page.c#13 integrate Differences ... ==== //depot/projects/netperf/sys/amd64/amd64/pmap.c#20 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.449 2003/12/22 01:01:31 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.450 2004/01/01 07:08:52 alc Exp $"); /* * Manages physical address maps. @@ -1079,14 +1079,11 @@ while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) VM_WAIT; - vm_page_lock_queues(); - vm_page_flag_clear(pml4pg, PG_BUSY); - vm_page_unlock_queues(); pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg)); if ((pml4pg->flags & PG_ZERO) == 0) - bzero(pmap->pm_pml4, PAGE_SIZE); + pagezero(pmap->pm_pml4); mtx_lock_spin(&allpmaps_lock); LIST_INSERT_HEAD(&allpmaps, pmap, pm_list); @@ -1254,7 +1251,6 @@ } vm_page_lock_queues(); - vm_page_flag_clear(m, PG_ZERO); vm_page_wakeup(m); vm_page_unlock_queues(); @@ -1424,7 +1420,6 @@ m = PHYS_TO_VM_PAGE(pmap->pm_pml4[PML4PML4I]); m->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); - vm_page_busy(m); vm_page_free(m); vm_page_unlock_queues(); } ==== //depot/projects/netperf/sys/compat/ndis/kern_ndis.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.16 2003/12/29 23:51:58 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.18 2004/01/02 04:31:06 wpaul Exp $"); #include #include @@ -52,6 +52,8 @@ #include #include +#include + #include #include #include @@ -82,6 +84,8 @@ __stdcall static void ndis_getdone_func(ndis_handle, ndis_status); __stdcall static void ndis_resetdone_func(ndis_handle, ndis_status, uint8_t); +static uma_zone_t ndis_packet_zone, ndis_buffer_zone; + /* * This allows us to export our symbols to other modules. * Note that we call ourselves 'ndisapi' to avoid a namespace @@ -91,7 +95,28 @@ static int ndis_modevent(module_t mod, int cmd, void *arg) { - return(0); + int error = 0; + + switch (cmd) { + case MOD_LOAD: + ndis_packet_zone = uma_zcreate("NDIS packet", + sizeof(ndis_packet), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + ndis_buffer_zone = uma_zcreate("NDIS buffer", + sizeof(ndis_buffer), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + break; + case MOD_UNLOAD: + case MOD_SHUTDOWN: + uma_zdestroy(ndis_packet_zone); + uma_zdestroy(ndis_buffer_zone); + break; + default: + error = EINVAL; + break; + } + + return(error); } DEV_MODULE(ndisapi, ndis_modevent, NULL); MODULE_VERSION(ndisapi, 1); @@ -104,7 +129,10 @@ void *sbuf; uint32_t slen; { - printf ("status: %x\n", status); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status: %x\n", status); return; } @@ -112,7 +140,10 @@ ndis_statusdone_func(adapter) ndis_handle adapter; { - printf ("status complete\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status complete\n"); return; } @@ -148,7 +179,10 @@ ndis_status status; uint8_t addressingreset; { - printf ("reset done...\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "reset done...\n"); return; } @@ -170,8 +204,8 @@ &rid, 0UL, ~0UL, 0x1000, RF_ACTIVE); if (sc->ndis_res_am == NULL) { - printf("ndis%d: failed to allocate attribute memory\n", - sc->ndis_unit); + device_printf(sc->ndis_dev, + "failed to allocate attribute memory\n"); return(ENXIO); } @@ -179,8 +213,8 @@ sc->ndis_dev, rid, 0, NULL); if (error) { - printf("ndis%d: CARD_SET_MEMORY_OFFSET() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_MEMORY_OFFSET() returned 0x%x\n", error); return(error); } @@ -188,8 +222,8 @@ sc->ndis_dev, SYS_RES_MEMORY, rid, PCCARD_A_MEM_ATTR); if (error) { - printf("ndis%d: CARD_SET_RES_FLAGS() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_RES_FLAGS() returned 0x%x\n", error); return(error); } @@ -369,7 +403,7 @@ while(b0 != NULL) { next = b0->nb_next; - free (b0, M_DEVBUF); + uma_zfree (ndis_buffer_zone, b0); b0 = next; } @@ -384,7 +418,7 @@ return; ndis_free_bufs(p->np_private.npp_head); - free(p, M_DEVBUF); + uma_zfree(ndis_packet_zone, p); return; } @@ -538,7 +572,7 @@ /* If caller didn't supply a packet, make one. */ if (*p == NULL) { - *p = malloc(sizeof(ndis_packet), M_DEVBUF, M_NOWAIT|M_ZERO); + *p = uma_zalloc(ndis_packet_zone, M_NOWAIT|M_ZERO); if (*p == NULL) return(ENOMEM); @@ -551,7 +585,7 @@ for (m = m0; m != NULL; m = m->m_next) { if (m->m_len == 0) continue; - buf = malloc(sizeof(ndis_buffer), M_DEVBUF, M_NOWAIT|M_ZERO); + buf = uma_zalloc(ndis_buffer_zone, M_NOWAIT | M_ZERO); if (buf == NULL) { ndis_free_packet(*p); *p = NULL; @@ -567,6 +601,7 @@ } priv->npp_tail = buf; + priv->npp_totlen = m0->m_pkthdr.len; return(0); } @@ -671,7 +706,13 @@ for (i = 0; i < cnt; i++) { p = packets[i]; - if (p->np_oob.npo_status == NDIS_STATUS_PENDING) + /* + * Either the driver already handed the packet to + * ndis_txeof() due to a failure, or it wants to keep + * it and release it asynchronously later. Skip to the + * next one. + */ + if (p == NULL || p->np_oob.npo_status == NDIS_STATUS_PENDING) continue; idx = p->np_txidx; m = p->np_m0; ==== //depot/projects/netperf/sys/compat/ndis/ndis_var.h#6 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.9 2003/12/26 03:31:34 wpaul Exp $ + * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.10 2003/12/30 21:33:26 wpaul Exp $ */ #ifndef _NDIS_VAR_H_ @@ -100,17 +100,6 @@ #define NDIS_STATUS_REQUEST_ABORTED 0xC001000C #define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D #define NDIS_STATUS_CLOSING_INDICATING 0xC001000E -#define NDIS_STATUS_BAD_VERSION 0xC0010004 -#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005 -#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006 -#define NDIS_STATUS_OPEN_FAILED 0xC0010007 -#define NDIS_STATUS_DEVICE_FAILED 0xC0010008 -#define NDIS_STATUS_MULTICAST_FULL 0xC0010009 -#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A -#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B -#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C -#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D -#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E #define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB #define NDIS_STATUS_INVALID_PACKET 0xC001000F #define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010 @@ -192,134 +181,141 @@ */ /* Required OIDs */ -#define OID_GEN_SUPPORTED_LIST 0x00010101 -#define OID_GEN_HARDWARE_STATUS 0x00010102 -#define OID_GEN_MEDIA_SUPPORTED 0x00010103 -#define OID_GEN_MEDIA_IN_USE 0x00010104 -#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 -#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 -#define OID_GEN_LINK_SPEED 0x00010107 -#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 -#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 -#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A -#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B -#define OID_GEN_VENDOR_ID 0x0001010C -#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D -#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E -#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F -#define OID_GEN_DRIVER_VERSION 0x00010110 -#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 -#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 -#define OID_GEN_MAC_OPTIONS 0x00010113 -#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 -#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 -#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 -#define OID_GEN_SUPPORTED_GUIDS 0x00010117 -#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ -#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ -#define OID_GEN_MACHINE_NAME 0x0001021A -#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ -#define OID_GEN_VLAN_ID 0x0001021C +#define OID_GEN_SUPPORTED_LIST 0x00010101 +#define OID_GEN_HARDWARE_STATUS 0x00010102 +#define OID_GEN_MEDIA_SUPPORTED 0x00010103 +#define OID_GEN_MEDIA_IN_USE 0x00010104 +#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 +#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 +#define OID_GEN_LINK_SPEED 0x00010107 +#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 +#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A +#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B +#define OID_GEN_VENDOR_ID 0x0001010C +#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D +#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E +#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F +#define OID_GEN_DRIVER_VERSION 0x00010110 +#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 +#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 +#define OID_GEN_MAC_OPTIONS 0x00010113 +#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 +#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 +#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 +#define OID_GEN_SUPPORTED_GUIDS 0x00010117 +#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ +#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ +#define OID_GEN_MACHINE_NAME 0x0001021A +#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ +#define OID_GEN_VLAN_ID 0x0001021C /* Optional OIDs. */ -#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 -#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 +#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 +#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 /* Required statistics OIDs. */ -#define OID_GEN_XMIT_OK 0x00020101 -#define OID_GEN_RCV_OK 0x00020102 -#define OID_GEN_XMIT_ERROR 0x00020103 -#define OID_GEN_RCV_ERROR 0x00020104 -#define OID_GEN_RCV_NO_BUFFER 0x00020105 +#define OID_GEN_XMIT_OK 0x00020101 +#define OID_GEN_RCV_OK 0x00020102 +#define OID_GEN_XMIT_ERROR 0x00020103 +#define OID_GEN_RCV_ERROR 0x00020104 +#define OID_GEN_RCV_NO_BUFFER 0x00020105 /* Optional OID statistics */ -#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 -#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 -#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 -#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 -#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 -#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 -#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 -#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 -#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 -#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A -#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B -#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C -#define OID_GEN_RCV_CRC_ERROR 0x0002020D -#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E -#define OID_GEN_GET_TIME_CAPS 0x0002020F -#define OID_GEN_GET_NETCARD_TIME 0x00020210 -#define OID_GEN_NETCARD_LOAD 0x00020211 -#define OID_GEN_DEVICE_PROFILE 0x00020212 +#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 +#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 +#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 +#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 +#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 +#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 +#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 +#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A +#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B +#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C +#define OID_GEN_RCV_CRC_ERROR 0x0002020D +#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E +#define OID_GEN_GET_TIME_CAPS 0x0002020F +#define OID_GEN_GET_NETCARD_TIME 0x00020210 +#define OID_GEN_NETCARD_LOAD 0x00020211 +#define OID_GEN_DEVICE_PROFILE 0x00020212 /* 802.3 (ethernet) OIDs */ -#define OID_802_3_PERMANENT_ADDRESS 0x01010101 -#define OID_802_3_CURRENT_ADDRESS 0x01010102 -#define OID_802_3_MULTICAST_LIST 0x01010103 -#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 -#define OID_802_3_MAC_OPTIONS 0x01010105 -#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 -#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 -#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 -#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 -#define OID_802_3_XMIT_DEFERRED 0x01020201 -#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 -#define OID_802_3_RCV_OVERRUN 0x01020203 -#define OID_802_3_XMIT_UNDERRUN 0x01020204 -#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 -#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 -#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 +#define OID_802_3_PERMANENT_ADDRESS 0x01010101 +#define OID_802_3_CURRENT_ADDRESS 0x01010102 +#define OID_802_3_MULTICAST_LIST 0x01010103 +#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +#define OID_802_3_MAC_OPTIONS 0x01010105 +#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 +#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 +#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 +#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 +#define OID_802_3_XMIT_DEFERRED 0x01020201 +#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 +#define OID_802_3_RCV_OVERRUN 0x01020203 +#define OID_802_3_XMIT_UNDERRUN 0x01020204 +#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 +#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 +#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 /* PnP and power management OIDs */ -#define OID_PNP_CAPABILITIES 0xFD010100 -#define OID_PNP_SET_POWER 0xFD010101 -#define OID_PNP_QUERY_POWER 0xFD010102 -#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 -#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 -#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 -#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 +#define OID_PNP_CAPABILITIES 0xFD010100 +#define OID_PNP_SET_POWER 0xFD010101 +#define OID_PNP_QUERY_POWER 0xFD010102 +#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 +#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 +#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 +#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 /* PnP/PM Statistics (Optional). */ -#define OID_PNP_WAKE_UP_OK 0xFD020200 -#define OID_PNP_WAKE_UP_ERROR 0xFD020201 +#define OID_PNP_WAKE_UP_OK 0xFD020200 +#define OID_PNP_WAKE_UP_ERROR 0xFD020201 /* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */ -#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 -#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 -#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 +#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 +#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 +#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 /* 802.11 OIDs */ -#define OID_802_11_BSSID 0x0D010101 -#define OID_802_11_SSID 0x0D010102 -#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 -#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 -#define OID_802_11_TX_POWER_LEVEL 0x0D010205 -#define OID_802_11_RSSI 0x0D010206 -#define OID_802_11_RSSI_TRIGGER 0x0D010207 -#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 -#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 -#define OID_802_11_RTS_THRESHOLD 0x0D01020A -#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B -#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C -#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D -#define OID_802_11_SUPPORTED_RATES 0x0D01020E -#define OID_802_11_DESIRED_RATES 0x0D010210 -#define OID_802_11_CONFIGURATION 0x0D010211 -#define OID_802_11_STATISTICS 0x0D020212 -#define OID_802_11_ADD_WEP 0x0D010113 -#define OID_802_11_REMOVE_WEP 0x0D010114 -#define OID_802_11_DISASSOCIATE 0x0D010115 -#define OID_802_11_POWER_MODE 0x0D010216 -#define OID_802_11_BSSID_LIST 0x0D010217 -#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 -#define OID_802_11_PRIVACY_FILTER 0x0D010119 -#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A -#define OID_802_11_WEP_STATUS 0x0D01011B -#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_BSSID 0x0D010101 +#define OID_802_11_SSID 0x0D010102 +#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 +#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 +#define OID_802_11_TX_POWER_LEVEL 0x0D010205 +#define OID_802_11_RSSI 0x0D010206 +#define OID_802_11_RSSI_TRIGGER 0x0D010207 +#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 +#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 +#define OID_802_11_RTS_THRESHOLD 0x0D01020A +#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B +#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C +#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D +#define OID_802_11_SUPPORTED_RATES 0x0D01020E +#define OID_802_11_DESIRED_RATES 0x0D010210 +#define OID_802_11_CONFIGURATION 0x0D010211 +#define OID_802_11_STATISTICS 0x0D020212 +#define OID_802_11_ADD_WEP 0x0D010113 +#define OID_802_11_REMOVE_WEP 0x0D010114 +#define OID_802_11_DISASSOCIATE 0x0D010115 +#define OID_802_11_POWER_MODE 0x0D010216 +#define OID_802_11_BSSID_LIST 0x0D010217 +#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 +#define OID_802_11_PRIVACY_FILTER 0x0D010119 +#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A +#define OID_802_11_WEP_STATUS 0x0D01011B +#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS +#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_ADD_KEY 0x0D01011D +#define OID_802_11_REMOVE_KEY 0x0D01011E +#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F +#define OID_802_11_TEST 0x0D010120 /* structures/definitions for 802.11 */ #define NDIS_80211_NETTYPE_11FH 0x00000000 #define NDIS_80211_NETTYPE_11DS 0x00000001 +#define NDIS_80211_NETTYPE_11OFDM5 0x00000002 +#define NDIS_80211_NETTYPE_11OFDM24 0x00000003 struct ndis_80211_nettype_list { uint32_t ntl_items; @@ -376,11 +372,14 @@ uint32_t nw_length; uint32_t nw_keyidx; uint32_t nw_keylen; - uint32_t nw_keydata[1]; + uint8_t nw_keydata[256]; }; typedef struct ndis_80211_wep ndis_80211_wep; +#define NDIS_80211_WEPKEY_TX 0x80000000 +#define NDIS_80211_WEPKEY_PERCLIENT 0x40000000 + #define NDIS_80211_NET_INFRA_IBSS 0x00000000 #define NDIS_80211_NET_INFRA_BSS 0x00000001 #define NDIS_80211_NET_INFRA_AUTO 0x00000002 @@ -388,8 +387,12 @@ #define NDIS_80211_AUTHMODE_OPEN 0x00000000 #define NDIS_80211_AUTHMODE_SHARED 0x00000001 #define NDIS_80211_AUTHMODE_AUTO 0x00000002 +#define NDIS_80211_AUTHMODE_WPA 0x00000003 +#define NDIS_80211_AUTHMODE_WPAPSK 0x00000004 +#define NDIS_80211_AUTHMODE_WPANONE 0x00000005 typedef uint8_t ndis_80211_rates[8]; +typedef uint8_t ndis_80211_rates_ex[16]; typedef uint8_t ndis_80211_macaddr[6]; struct ndis_80211_ssid { @@ -421,6 +424,42 @@ typedef struct ndis_80211_bssid_list ndis_80211_bssid_list; +struct ndis_wlan_bssid_ex { + uint32_t nwbx_len; + ndis_80211_macaddr nwbx_macaddr; + uint8_t nwbx_rsvd[2]; + ndis_80211_ssid nwbx_ssid; + uint32_t nwbx_privacy; + ndis_80211_rssi nwbx_rssi; + uint32_t nwbx_nettype; + ndis_80211_config nwbx_config; + uint32_t nwbx_netinfra; + ndis_80211_rates_ex nwbx_supportedrates; + uint32_t nwbx_ielen; + uint32_t nwbx_ies[1]; +}; + +typedef struct ndis_wlan_bssid_ex ndis_wlan_bssid_ex; + +struct ndis_80211_bssid_list_ex { + uint32_t nblx_items; + ndis_wlan_bssid nblx_bssid[1]; +}; + +typedef struct ndis_80211_bssid_list_ex ndis_80211_bssid_list_ex; + +struct ndis_80211_fixed_ies { + uint8_t nfi_tstamp[8]; + uint16_t nfi_beaconint; + uint16_t nfi_caps; +}; + +struct ndis_80211_variable_ies { + uint8_t nvi_elemid; + uint8_t nvi_len; + uint8_t nvi_data[1]; +}; + typedef uint32_t ndis_80211_fragthresh; typedef uint32_t ndis_80211_rtsthresh; typedef uint32_t ndis_80211_antenna; @@ -429,12 +468,111 @@ #define NDIS_80211_PRIVFILT_8021XWEP 0x00000001 #define NDIS_80211_WEPSTAT_ENABLED 0x00000000 +#define NDIS_80211_WEPSTAT_ENC1ENABLED NDIS_80211_WEPSTAT_ENABLED #define NDIS_80211_WEPSTAT_DISABLED 0x00000001 +#define NDIS_80211_WEPSTAT_ENCDISABLED NDIS_80211_WEPSTAT_DISABLED #define NDIS_80211_WEPSTAT_KEYABSENT 0x00000002 +#define NDIS_80211_WEPSTAT_ENC1KEYABSENT NDIS_80211_WEPSTAT_KEYABSENT #define NDIS_80211_WEPSTAT_NOTSUPPORTED 0x00000003 +#define NDIS_80211_WEPSTAT_ENCNOTSUPPORTED NDIS_80211_WEPSTAT_NOTSUPPORTED +#define NDIS_80211_WEPSTAT_ENC2ENABLED 0x00000004 +#define NDIS_80211_WEPSTAT_ENC2KEYABSENT 0x00000005 +#define NDIS_80211_WEPSTAT_ENC3ENABLED 0x00000006 +#define NDIS_80211_WEPSTAT_ENC3KEYABSENT 0x00000007 #define NDIS_80211_RELOADDEFAULT_WEP 0x00000000 +#define NDIS_80211_STATUSTYPE_AUTH 0x00000000 + +struct ndis_80211_status_indication { + uint32_t nsi_type; +}; + +typedef struct ndis_80211_status_indication ndis_80211_status_indication; + +struct ndis_80211_auth_request { + uint32_t nar_len; + ndis_80211_macaddr nar_bssid; + uint32_t nar_flags; +}; + +typedef struct ndis_80211_auth_request ndis_80211_auth_request; + +struct ndis_80211_key { + uint32_t nk_len; + uint32_t nk_keyidx; + uint32_t nk_keylen; + ndis_80211_macaddr nk_bssid; + uint64_t nk_keyrsc; + uint8_t nk_keydata[256]; +}; + +typedef struct ndis_80211_key ndis_80211_key; + +struct ndis_80211_remove_key { + uint32_t nk_len; + uint32_t nk_keyidx; + ndis_80211_macaddr nk_bssid; +}; + +typedef struct ndis_80211_remove_key ndis_80211_remove_key; + +#define NDIS_80211_AI_REQFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_REQFI_LISTENINTERVAL 0x00000002 +#define NDIS_80211_AI_REQFI_CURRENTAPADDRESS 0x00000004 + +#define NDIS_80211_AI_RESFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_RESFI_STATUSCODE 0x00000002 +#define NDIS_80211_AI_RESFI_ASSOCIATIONID 0x00000004 + +struct ndis_80211_ai_reqfi { + uint16_t naq_caps; + uint16_t naq_listentint; + ndis_80211_macaddr naq_currentapaddr; +}; + +typedef struct ndis_80211_ai_reqfi ndis_80211_ai_reqfi; + +struct ndis_80211_ai_resfi { + uint16_t nas_caps; + uint16_t nas_statuscode; + uint16_t nas_associd; +}; + +typedef struct ndis_80211_ai_resfi ndis_80211_ai_resfi; + +struct ndis_80211_assoc_info { + uint32_t nai_len; + uint16_t nai_avail_req_fixed_ies; + ndis_80211_ai_reqfi nai_req_fixed_ies; + uint32_t nai_req_ielen; + uint32_t nai_offset_req_ies; + uint16_t nai_avail_resp_fixed_ies; + ndis_80211_ai_resfi nai_resp_fixed_iex; + uint32_t nai_resp_ielen; + uint32_t nai_offset_resp_ies; +}; + +typedef struct ndis_80211_assoc_info ndis_80211_assoc_info; + +struct ndis_80211_auth_event { + ndis_80211_status_indication nae_status; + ndis_80211_auth_request nae_request[1]; +}; + +typedef struct ndis_80211_auth_event ndis_80211_auth_event; + +struct ndis_80211_test { + uint32_t nt_len; + uint32_t nt_type; + union { + ndis_80211_auth_event nt_authevent; + uint32_t nt_rssitrigger; + } u; +}; + +typedef struct ndis_80211_test ndis_80211_test; + /* * Attribures of NDIS drivers. Not all drivers support * all attributes. ==== //depot/projects/netperf/sys/compat/ndis/subr_ndis.c#8 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.18 2003/12/28 21:36:03 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.19 2004/01/02 04:31:06 wpaul Exp $"); /* * This file implements a translation layer between the BSD networking @@ -769,12 +769,13 @@ block = (ndis_miniport_block *)adapter; - printf ("NDIS ERROR: %x\n", code); - printf ("NDIS NUMERRORS: %x\n", numerrors); + device_printf (block->nmb_dev, "NDIS ERROR: %x\n", code); + device_printf (block->nmb_dev, "NDIS NUMERRORS: %x\n", numerrors); va_start(ap, numerrors); for (i = 0; i < numerrors; i++) - printf ("argptr: %p\n", va_arg(ap, void *)); + device_printf (block->nmb_dev, "argptr: %p\n", + va_arg(ap, void *)); va_end(ap); return; @@ -1829,7 +1830,7 @@ block = (ndis_miniport_block *)adapter; *list = block->nmb_rlist; - printf ("assign PCI resources...\n"); + device_printf (block->nmb_dev, "assign PCI resources...\n"); return (NDIS_STATUS_SUCCESS); } ==== //depot/projects/netperf/sys/compat/ndis/subr_ntoskrnl.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.4 2003/12/25 00:40:02 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.5 2003/12/31 04:12:57 wpaul Exp $"); #include #include @@ -489,8 +489,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock(&ntoskrnl_interlock); oldhead = head->slh_list.slh_next; @@ -506,7 +505,7 @@ slist_header *head; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); + __asm__ __volatile__ ("" : "=c" (head)); mtx_lock(&ntoskrnl_interlock); first = head->slh_list.slh_next; @@ -524,8 +523,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock((struct mtx *)*lock); oldhead = head->slh_list.slh_next; @@ -542,8 +540,7 @@ kspin_lock *lock; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (lock)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (lock)); mtx_lock((struct mtx *)*lock); first = head->slh_list.slh_next; ==== //depot/projects/netperf/sys/dev/acpica/acpi_thermal.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.33 2003/10/25 05:03:24 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.34 2003/12/31 19:11:19 njl Exp $"); #include "opt_acpi.h" #include @@ -50,8 +50,8 @@ #define TZ_KELVTOC(x) (((x) - TZ_ZEROC) / 10), (((x) - TZ_ZEROC) % 10) #define TZ_NOTIFY_TEMPERATURE 0x80 -#define TZ_NOTIFY_DEVICES 0x81 -#define TZ_NOTIFY_LEVELS 0x82 +#define TZ_NOTIFY_LEVELS 0x81 +#define TZ_NOTIFY_DEVICES 0x82 /* Check for temperature changes every 30 seconds by default */ #define TZ_POLLRATE 30 ==== //depot/projects/netperf/sys/dev/ed/if_ed_pccard.c#6 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.54 2003/10/31 18:31:58 brooks Exp $ + * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.55 2003/12/31 04:25:00 kato Exp $ */ #include "opt_ed.h" @@ -179,6 +179,7 @@ { PCMCIA_CARD(SVEC, COMBOCARD, 0), 0}, { PCMCIA_CARD(SVEC, LANCARD, 0), 0}, { PCMCIA_CARD(SYNERGY21, S21810, 0), 0}, + { PCMCIA_CARD(TDK, LAK_CD031, 0), 0}, { PCMCIA_CARD(TELECOMDEVICE, TCD_HPC100, 0), NE2000DVF_AX88190 }, { PCMCIA_CARD(XIRCOM, CFE_10, 0), 0}, { PCMCIA_CARD(ZONET, ZEN, 0), 0}, ==== //depot/projects/netperf/sys/dev/if_ndis/if_ndis.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.16 2003/12/29 23:51:59 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.19 2004/01/02 04:31:05 wpaul Exp $"); #include "opt_bdg.h" @@ -53,8 +53,6 @@ #include -#include /* for vtophys */ -#include /* for vtophys */ #include #include #include @@ -104,6 +102,7 @@ ndis_packet **, uint32_t); static __stdcall void ndis_linksts (ndis_handle, ndis_status, void *, uint32_t); +static __stdcall void ndis_linksts_done (ndis_handle); static void ndis_intr (void *); static void ndis_tick (void *); @@ -142,15 +141,28 @@ }; static driver_t ndis_driver = { +#ifdef NDIS_DEVNAME + NDIS_DEVNAME, +#else "ndis", +#endif ndis_methods, sizeof(struct ndis_softc) }; static devclass_t ndis_devclass; +#ifdef NDIS_MODNAME +#define NDIS_MODNAME_OVERRIDE_PCI(x) \ + DRIVER_MODULE(x, pci, ndis_driver, ndis_devclass, 0, 0) +#define NDIS_MODNAME_OVERRIDE_CARDBUS(x) \ + DRIVER_MODULE(x, cardbus, ndis_driver, ndis_devclass, 0, 0) +NDIS_MODNAME_OVERRIDE_PCI(NDIS_MODNAME); +NDIS_MODNAME_OVERRIDE_CARDBUS(NDIS_MODNAME); +#else DRIVER_MODULE(ndis, pci, ndis_driver, ndis_devclass, 0, 0); DRIVER_MODULE(ndis, cardbus, ndis_driver, ndis_devclass, 0, 0); +#endif /* * Program the 64-bit multicast hash filter. @@ -241,42 +253,43 @@ SYS_RES_IOPORT, &sc->ndis_io_rid, 0, ~0, 1, RF_ACTIVE); if (sc->ndis_res_io == NULL) { - printf("ndis%d: couldn't map " - "iospace\n", unit); + device_printf(dev, + "couldn't map iospace"); error = ENXIO; goto fail; } break; case SYS_RES_MEMORY: - if (sc->ndis_res_altmem != NULL) { - printf ("ndis%d: too many memory " - "resources", sc->ndis_unit); + if (sc->ndis_res_altmem != NULL && + sc->ndis_res_mem != NULL) { + device_printf(dev, + "too many memory resources"); error = ENXIO; goto fail; } - if (sc->ndis_res_mem == NULL) { - sc->ndis_mem_rid = rle->rid; - sc->ndis_res_mem = + if (rle->rid == PCIR_BAR(2)) { + sc->ndis_altmem_rid = rle->rid; + sc->ndis_res_altmem = bus_alloc_resource(dev, SYS_RES_MEMORY, - &sc->ndis_mem_rid, + &sc->ndis_altmem_rid, 0, ~0, 1, RF_ACTIVE); - if (sc->ndis_res_mem == NULL) { - printf("ndis%d: couldn't map " - "memory\n", unit); + if (sc->ndis_res_altmem == NULL) { + device_printf(dev, + "couldn't map alt memory"); error = ENXIO; goto fail; } } else { - sc->ndis_altmem_rid = rle->rid; - sc->ndis_res_altmem = + sc->ndis_mem_rid = rle->rid; + sc->ndis_res_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, - &sc->ndis_altmem_rid, + &sc->ndis_mem_rid, 0, ~0, 1, RF_ACTIVE); - if (sc->ndis_res_altmem == NULL) { - printf("ndis%d: couldn't map " - "alt memory\n", unit); + if (sc->ndis_res_mem == NULL) { + device_printf(dev, + "couldn't map memory"); error = ENXIO; goto fail; } @@ -288,8 +301,8 @@ SYS_RES_IRQ, &rid, 0, ~0, 1, RF_SHAREABLE | RF_ACTIVE); if (sc->ndis_irq == NULL) { - printf("ndis%d: couldn't map " - "interrupt\n", unit); + device_printf(dev, + "couldn't map interrupt"); error = ENXIO; goto fail; } @@ -310,7 +323,7 @@ ndis_intr, sc, &sc->ndis_intrhand); if (error) { - printf("ndis%d: couldn't set up irq\n", unit); + device_printf(dev, "couldn't set up irq\n"); goto fail; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jan 1 22:22:33 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A58416A4D0; Thu, 1 Jan 2004 22:22:33 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 63F0B16A4CE for ; Thu, 1 Jan 2004 22:22:33 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3D52243D39 for ; Thu, 1 Jan 2004 22:22:30 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i026MU0B081371 for ; Thu, 1 Jan 2004 22:22:30 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i026MSJC081367 for perforce@freebsd.org; Thu, 1 Jan 2004 22:22:28 -0800 (PST) (envelope-from sam@freebsd.org) Date: Thu, 1 Jan 2004 22:22:28 -0800 (PST) Message-Id: <200401020622.i026MSJC081367@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44675 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 06:22:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=44675 Change 44675 by sam@sam_ebb on 2004/01/01 22:21:52 IFC Affected files ... .. //depot/projects/netperf+sockets/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/netperf+sockets/sys/compat/ndis/kern_ndis.c#7 integrate .. //depot/projects/netperf+sockets/sys/compat/ndis/ndis_var.h#6 integrate .. //depot/projects/netperf+sockets/sys/compat/ndis/subr_ndis.c#7 integrate .. //depot/projects/netperf+sockets/sys/compat/ndis/subr_ntoskrnl.c#4 integrate .. //depot/projects/netperf+sockets/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/netperf+sockets/sys/dev/ed/if_ed_pccard.c#3 integrate .. //depot/projects/netperf+sockets/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/netperf+sockets/sys/dev/ips/ips_commands.c#3 integrate .. //depot/projects/netperf+sockets/sys/dev/pccard/pccarddevs#4 integrate .. //depot/projects/netperf+sockets/sys/dev/pccard/pccarddevs.h#4 integrate .. //depot/projects/netperf+sockets/sys/dev/puc/pucdata.c#4 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/ubsa.c#3 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/ucom.c#3 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/ufm.c#2 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/usbdevs#4 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/usbdevs.h#4 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/usbdevs_data.h#4 integrate .. //depot/projects/netperf+sockets/sys/dev/usb/uvscom.c#3 integrate .. //depot/projects/netperf+sockets/sys/i386/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/netperf+sockets/sys/i386/pci/pci_cfgreg.c#3 integrate .. //depot/projects/netperf+sockets/sys/sys/copyright.h#2 integrate .. //depot/projects/netperf+sockets/sys/vm/vm_kern.c#4 integrate .. //depot/projects/netperf+sockets/sys/vm/vm_map.c#4 integrate .. //depot/projects/netperf+sockets/sys/vm/vm_object.c#4 integrate .. //depot/projects/netperf+sockets/sys/vm/vm_page.c#4 integrate Differences ... ==== //depot/projects/netperf+sockets/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.449 2003/12/22 01:01:31 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.450 2004/01/01 07:08:52 alc Exp $"); /* * Manages physical address maps. @@ -1079,14 +1079,11 @@ while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) VM_WAIT; - vm_page_lock_queues(); - vm_page_flag_clear(pml4pg, PG_BUSY); - vm_page_unlock_queues(); pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg)); if ((pml4pg->flags & PG_ZERO) == 0) - bzero(pmap->pm_pml4, PAGE_SIZE); + pagezero(pmap->pm_pml4); mtx_lock_spin(&allpmaps_lock); LIST_INSERT_HEAD(&allpmaps, pmap, pm_list); @@ -1254,7 +1251,6 @@ } vm_page_lock_queues(); - vm_page_flag_clear(m, PG_ZERO); vm_page_wakeup(m); vm_page_unlock_queues(); @@ -1424,7 +1420,6 @@ m = PHYS_TO_VM_PAGE(pmap->pm_pml4[PML4PML4I]); m->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); - vm_page_busy(m); vm_page_free(m); vm_page_unlock_queues(); } ==== //depot/projects/netperf+sockets/sys/compat/ndis/kern_ndis.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.16 2003/12/29 23:51:58 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.18 2004/01/02 04:31:06 wpaul Exp $"); #include #include @@ -52,6 +52,8 @@ #include #include +#include + #include #include #include @@ -82,6 +84,8 @@ __stdcall static void ndis_getdone_func(ndis_handle, ndis_status); __stdcall static void ndis_resetdone_func(ndis_handle, ndis_status, uint8_t); +static uma_zone_t ndis_packet_zone, ndis_buffer_zone; + /* * This allows us to export our symbols to other modules. * Note that we call ourselves 'ndisapi' to avoid a namespace @@ -91,7 +95,28 @@ static int ndis_modevent(module_t mod, int cmd, void *arg) { - return(0); + int error = 0; + + switch (cmd) { + case MOD_LOAD: + ndis_packet_zone = uma_zcreate("NDIS packet", + sizeof(ndis_packet), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + ndis_buffer_zone = uma_zcreate("NDIS buffer", + sizeof(ndis_buffer), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + break; + case MOD_UNLOAD: + case MOD_SHUTDOWN: + uma_zdestroy(ndis_packet_zone); + uma_zdestroy(ndis_buffer_zone); + break; + default: + error = EINVAL; + break; + } + + return(error); } DEV_MODULE(ndisapi, ndis_modevent, NULL); MODULE_VERSION(ndisapi, 1); @@ -104,7 +129,10 @@ void *sbuf; uint32_t slen; { - printf ("status: %x\n", status); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status: %x\n", status); return; } @@ -112,7 +140,10 @@ ndis_statusdone_func(adapter) ndis_handle adapter; { - printf ("status complete\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status complete\n"); return; } @@ -148,7 +179,10 @@ ndis_status status; uint8_t addressingreset; { - printf ("reset done...\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "reset done...\n"); return; } @@ -170,8 +204,8 @@ &rid, 0UL, ~0UL, 0x1000, RF_ACTIVE); if (sc->ndis_res_am == NULL) { - printf("ndis%d: failed to allocate attribute memory\n", - sc->ndis_unit); + device_printf(sc->ndis_dev, + "failed to allocate attribute memory\n"); return(ENXIO); } @@ -179,8 +213,8 @@ sc->ndis_dev, rid, 0, NULL); if (error) { - printf("ndis%d: CARD_SET_MEMORY_OFFSET() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_MEMORY_OFFSET() returned 0x%x\n", error); return(error); } @@ -188,8 +222,8 @@ sc->ndis_dev, SYS_RES_MEMORY, rid, PCCARD_A_MEM_ATTR); if (error) { - printf("ndis%d: CARD_SET_RES_FLAGS() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_RES_FLAGS() returned 0x%x\n", error); return(error); } @@ -369,7 +403,7 @@ while(b0 != NULL) { next = b0->nb_next; - free (b0, M_DEVBUF); + uma_zfree (ndis_buffer_zone, b0); b0 = next; } @@ -384,7 +418,7 @@ return; ndis_free_bufs(p->np_private.npp_head); - free(p, M_DEVBUF); + uma_zfree(ndis_packet_zone, p); return; } @@ -538,7 +572,7 @@ /* If caller didn't supply a packet, make one. */ if (*p == NULL) { - *p = malloc(sizeof(ndis_packet), M_DEVBUF, M_NOWAIT|M_ZERO); + *p = uma_zalloc(ndis_packet_zone, M_NOWAIT|M_ZERO); if (*p == NULL) return(ENOMEM); @@ -551,7 +585,7 @@ for (m = m0; m != NULL; m = m->m_next) { if (m->m_len == 0) continue; - buf = malloc(sizeof(ndis_buffer), M_DEVBUF, M_NOWAIT|M_ZERO); + buf = uma_zalloc(ndis_buffer_zone, M_NOWAIT | M_ZERO); if (buf == NULL) { ndis_free_packet(*p); *p = NULL; @@ -567,6 +601,7 @@ } priv->npp_tail = buf; + priv->npp_totlen = m0->m_pkthdr.len; return(0); } @@ -671,7 +706,13 @@ for (i = 0; i < cnt; i++) { p = packets[i]; - if (p->np_oob.npo_status == NDIS_STATUS_PENDING) + /* + * Either the driver already handed the packet to + * ndis_txeof() due to a failure, or it wants to keep + * it and release it asynchronously later. Skip to the + * next one. + */ + if (p == NULL || p->np_oob.npo_status == NDIS_STATUS_PENDING) continue; idx = p->np_txidx; m = p->np_m0; ==== //depot/projects/netperf+sockets/sys/compat/ndis/ndis_var.h#6 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.9 2003/12/26 03:31:34 wpaul Exp $ + * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.10 2003/12/30 21:33:26 wpaul Exp $ */ #ifndef _NDIS_VAR_H_ @@ -100,17 +100,6 @@ #define NDIS_STATUS_REQUEST_ABORTED 0xC001000C #define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D #define NDIS_STATUS_CLOSING_INDICATING 0xC001000E -#define NDIS_STATUS_BAD_VERSION 0xC0010004 -#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005 -#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006 -#define NDIS_STATUS_OPEN_FAILED 0xC0010007 -#define NDIS_STATUS_DEVICE_FAILED 0xC0010008 -#define NDIS_STATUS_MULTICAST_FULL 0xC0010009 -#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A -#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B -#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C -#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D -#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E #define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB #define NDIS_STATUS_INVALID_PACKET 0xC001000F #define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010 @@ -192,134 +181,141 @@ */ /* Required OIDs */ -#define OID_GEN_SUPPORTED_LIST 0x00010101 -#define OID_GEN_HARDWARE_STATUS 0x00010102 -#define OID_GEN_MEDIA_SUPPORTED 0x00010103 -#define OID_GEN_MEDIA_IN_USE 0x00010104 -#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 -#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 -#define OID_GEN_LINK_SPEED 0x00010107 -#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 -#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 -#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A -#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B -#define OID_GEN_VENDOR_ID 0x0001010C -#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D -#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E -#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F -#define OID_GEN_DRIVER_VERSION 0x00010110 -#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 -#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 -#define OID_GEN_MAC_OPTIONS 0x00010113 -#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 -#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 -#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 -#define OID_GEN_SUPPORTED_GUIDS 0x00010117 -#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ -#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ -#define OID_GEN_MACHINE_NAME 0x0001021A -#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ -#define OID_GEN_VLAN_ID 0x0001021C +#define OID_GEN_SUPPORTED_LIST 0x00010101 +#define OID_GEN_HARDWARE_STATUS 0x00010102 +#define OID_GEN_MEDIA_SUPPORTED 0x00010103 +#define OID_GEN_MEDIA_IN_USE 0x00010104 +#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 +#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 +#define OID_GEN_LINK_SPEED 0x00010107 +#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 +#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A +#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B +#define OID_GEN_VENDOR_ID 0x0001010C +#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D +#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E +#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F +#define OID_GEN_DRIVER_VERSION 0x00010110 +#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 +#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 +#define OID_GEN_MAC_OPTIONS 0x00010113 +#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 +#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 +#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 +#define OID_GEN_SUPPORTED_GUIDS 0x00010117 +#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ +#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ +#define OID_GEN_MACHINE_NAME 0x0001021A +#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ +#define OID_GEN_VLAN_ID 0x0001021C /* Optional OIDs. */ -#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 -#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 +#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 +#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 /* Required statistics OIDs. */ -#define OID_GEN_XMIT_OK 0x00020101 -#define OID_GEN_RCV_OK 0x00020102 -#define OID_GEN_XMIT_ERROR 0x00020103 -#define OID_GEN_RCV_ERROR 0x00020104 -#define OID_GEN_RCV_NO_BUFFER 0x00020105 +#define OID_GEN_XMIT_OK 0x00020101 +#define OID_GEN_RCV_OK 0x00020102 +#define OID_GEN_XMIT_ERROR 0x00020103 +#define OID_GEN_RCV_ERROR 0x00020104 +#define OID_GEN_RCV_NO_BUFFER 0x00020105 /* Optional OID statistics */ -#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 -#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 -#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 -#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 -#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 -#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 -#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 -#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 -#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 -#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A -#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B -#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C -#define OID_GEN_RCV_CRC_ERROR 0x0002020D -#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E -#define OID_GEN_GET_TIME_CAPS 0x0002020F -#define OID_GEN_GET_NETCARD_TIME 0x00020210 -#define OID_GEN_NETCARD_LOAD 0x00020211 -#define OID_GEN_DEVICE_PROFILE 0x00020212 +#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 +#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 +#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 +#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 +#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 +#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 +#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 +#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A +#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B +#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C +#define OID_GEN_RCV_CRC_ERROR 0x0002020D +#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E +#define OID_GEN_GET_TIME_CAPS 0x0002020F +#define OID_GEN_GET_NETCARD_TIME 0x00020210 +#define OID_GEN_NETCARD_LOAD 0x00020211 +#define OID_GEN_DEVICE_PROFILE 0x00020212 /* 802.3 (ethernet) OIDs */ -#define OID_802_3_PERMANENT_ADDRESS 0x01010101 -#define OID_802_3_CURRENT_ADDRESS 0x01010102 -#define OID_802_3_MULTICAST_LIST 0x01010103 -#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 -#define OID_802_3_MAC_OPTIONS 0x01010105 -#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 -#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 -#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 -#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 -#define OID_802_3_XMIT_DEFERRED 0x01020201 -#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 -#define OID_802_3_RCV_OVERRUN 0x01020203 -#define OID_802_3_XMIT_UNDERRUN 0x01020204 -#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 -#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 -#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 +#define OID_802_3_PERMANENT_ADDRESS 0x01010101 +#define OID_802_3_CURRENT_ADDRESS 0x01010102 +#define OID_802_3_MULTICAST_LIST 0x01010103 +#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +#define OID_802_3_MAC_OPTIONS 0x01010105 +#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 +#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 +#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 +#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 +#define OID_802_3_XMIT_DEFERRED 0x01020201 +#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 +#define OID_802_3_RCV_OVERRUN 0x01020203 +#define OID_802_3_XMIT_UNDERRUN 0x01020204 +#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 +#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 +#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 /* PnP and power management OIDs */ -#define OID_PNP_CAPABILITIES 0xFD010100 -#define OID_PNP_SET_POWER 0xFD010101 -#define OID_PNP_QUERY_POWER 0xFD010102 -#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 -#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 -#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 -#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 +#define OID_PNP_CAPABILITIES 0xFD010100 +#define OID_PNP_SET_POWER 0xFD010101 +#define OID_PNP_QUERY_POWER 0xFD010102 +#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 +#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 +#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 +#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 /* PnP/PM Statistics (Optional). */ -#define OID_PNP_WAKE_UP_OK 0xFD020200 -#define OID_PNP_WAKE_UP_ERROR 0xFD020201 +#define OID_PNP_WAKE_UP_OK 0xFD020200 +#define OID_PNP_WAKE_UP_ERROR 0xFD020201 /* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */ -#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 -#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 -#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 +#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 +#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 +#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 /* 802.11 OIDs */ -#define OID_802_11_BSSID 0x0D010101 -#define OID_802_11_SSID 0x0D010102 -#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 -#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 -#define OID_802_11_TX_POWER_LEVEL 0x0D010205 -#define OID_802_11_RSSI 0x0D010206 -#define OID_802_11_RSSI_TRIGGER 0x0D010207 -#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 -#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 -#define OID_802_11_RTS_THRESHOLD 0x0D01020A -#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B -#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C -#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D -#define OID_802_11_SUPPORTED_RATES 0x0D01020E -#define OID_802_11_DESIRED_RATES 0x0D010210 -#define OID_802_11_CONFIGURATION 0x0D010211 -#define OID_802_11_STATISTICS 0x0D020212 -#define OID_802_11_ADD_WEP 0x0D010113 -#define OID_802_11_REMOVE_WEP 0x0D010114 -#define OID_802_11_DISASSOCIATE 0x0D010115 -#define OID_802_11_POWER_MODE 0x0D010216 -#define OID_802_11_BSSID_LIST 0x0D010217 -#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 -#define OID_802_11_PRIVACY_FILTER 0x0D010119 -#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A -#define OID_802_11_WEP_STATUS 0x0D01011B -#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_BSSID 0x0D010101 +#define OID_802_11_SSID 0x0D010102 +#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 +#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 +#define OID_802_11_TX_POWER_LEVEL 0x0D010205 +#define OID_802_11_RSSI 0x0D010206 +#define OID_802_11_RSSI_TRIGGER 0x0D010207 +#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 +#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 +#define OID_802_11_RTS_THRESHOLD 0x0D01020A +#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B +#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C +#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D +#define OID_802_11_SUPPORTED_RATES 0x0D01020E +#define OID_802_11_DESIRED_RATES 0x0D010210 +#define OID_802_11_CONFIGURATION 0x0D010211 +#define OID_802_11_STATISTICS 0x0D020212 +#define OID_802_11_ADD_WEP 0x0D010113 +#define OID_802_11_REMOVE_WEP 0x0D010114 +#define OID_802_11_DISASSOCIATE 0x0D010115 +#define OID_802_11_POWER_MODE 0x0D010216 +#define OID_802_11_BSSID_LIST 0x0D010217 +#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 +#define OID_802_11_PRIVACY_FILTER 0x0D010119 +#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A +#define OID_802_11_WEP_STATUS 0x0D01011B +#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS +#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_ADD_KEY 0x0D01011D +#define OID_802_11_REMOVE_KEY 0x0D01011E +#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F +#define OID_802_11_TEST 0x0D010120 /* structures/definitions for 802.11 */ #define NDIS_80211_NETTYPE_11FH 0x00000000 #define NDIS_80211_NETTYPE_11DS 0x00000001 +#define NDIS_80211_NETTYPE_11OFDM5 0x00000002 +#define NDIS_80211_NETTYPE_11OFDM24 0x00000003 struct ndis_80211_nettype_list { uint32_t ntl_items; @@ -376,11 +372,14 @@ uint32_t nw_length; uint32_t nw_keyidx; uint32_t nw_keylen; - uint32_t nw_keydata[1]; + uint8_t nw_keydata[256]; }; typedef struct ndis_80211_wep ndis_80211_wep; +#define NDIS_80211_WEPKEY_TX 0x80000000 +#define NDIS_80211_WEPKEY_PERCLIENT 0x40000000 + #define NDIS_80211_NET_INFRA_IBSS 0x00000000 #define NDIS_80211_NET_INFRA_BSS 0x00000001 #define NDIS_80211_NET_INFRA_AUTO 0x00000002 @@ -388,8 +387,12 @@ #define NDIS_80211_AUTHMODE_OPEN 0x00000000 #define NDIS_80211_AUTHMODE_SHARED 0x00000001 #define NDIS_80211_AUTHMODE_AUTO 0x00000002 +#define NDIS_80211_AUTHMODE_WPA 0x00000003 +#define NDIS_80211_AUTHMODE_WPAPSK 0x00000004 +#define NDIS_80211_AUTHMODE_WPANONE 0x00000005 typedef uint8_t ndis_80211_rates[8]; +typedef uint8_t ndis_80211_rates_ex[16]; typedef uint8_t ndis_80211_macaddr[6]; struct ndis_80211_ssid { @@ -421,6 +424,42 @@ typedef struct ndis_80211_bssid_list ndis_80211_bssid_list; +struct ndis_wlan_bssid_ex { + uint32_t nwbx_len; + ndis_80211_macaddr nwbx_macaddr; + uint8_t nwbx_rsvd[2]; + ndis_80211_ssid nwbx_ssid; + uint32_t nwbx_privacy; + ndis_80211_rssi nwbx_rssi; + uint32_t nwbx_nettype; + ndis_80211_config nwbx_config; + uint32_t nwbx_netinfra; + ndis_80211_rates_ex nwbx_supportedrates; + uint32_t nwbx_ielen; + uint32_t nwbx_ies[1]; +}; + +typedef struct ndis_wlan_bssid_ex ndis_wlan_bssid_ex; + +struct ndis_80211_bssid_list_ex { + uint32_t nblx_items; + ndis_wlan_bssid nblx_bssid[1]; +}; + +typedef struct ndis_80211_bssid_list_ex ndis_80211_bssid_list_ex; + +struct ndis_80211_fixed_ies { + uint8_t nfi_tstamp[8]; + uint16_t nfi_beaconint; + uint16_t nfi_caps; +}; + +struct ndis_80211_variable_ies { + uint8_t nvi_elemid; + uint8_t nvi_len; + uint8_t nvi_data[1]; +}; + typedef uint32_t ndis_80211_fragthresh; typedef uint32_t ndis_80211_rtsthresh; typedef uint32_t ndis_80211_antenna; @@ -429,12 +468,111 @@ #define NDIS_80211_PRIVFILT_8021XWEP 0x00000001 #define NDIS_80211_WEPSTAT_ENABLED 0x00000000 +#define NDIS_80211_WEPSTAT_ENC1ENABLED NDIS_80211_WEPSTAT_ENABLED #define NDIS_80211_WEPSTAT_DISABLED 0x00000001 +#define NDIS_80211_WEPSTAT_ENCDISABLED NDIS_80211_WEPSTAT_DISABLED #define NDIS_80211_WEPSTAT_KEYABSENT 0x00000002 +#define NDIS_80211_WEPSTAT_ENC1KEYABSENT NDIS_80211_WEPSTAT_KEYABSENT #define NDIS_80211_WEPSTAT_NOTSUPPORTED 0x00000003 +#define NDIS_80211_WEPSTAT_ENCNOTSUPPORTED NDIS_80211_WEPSTAT_NOTSUPPORTED +#define NDIS_80211_WEPSTAT_ENC2ENABLED 0x00000004 +#define NDIS_80211_WEPSTAT_ENC2KEYABSENT 0x00000005 +#define NDIS_80211_WEPSTAT_ENC3ENABLED 0x00000006 +#define NDIS_80211_WEPSTAT_ENC3KEYABSENT 0x00000007 #define NDIS_80211_RELOADDEFAULT_WEP 0x00000000 +#define NDIS_80211_STATUSTYPE_AUTH 0x00000000 + +struct ndis_80211_status_indication { + uint32_t nsi_type; +}; + +typedef struct ndis_80211_status_indication ndis_80211_status_indication; + +struct ndis_80211_auth_request { + uint32_t nar_len; + ndis_80211_macaddr nar_bssid; + uint32_t nar_flags; +}; + +typedef struct ndis_80211_auth_request ndis_80211_auth_request; + +struct ndis_80211_key { + uint32_t nk_len; + uint32_t nk_keyidx; + uint32_t nk_keylen; + ndis_80211_macaddr nk_bssid; + uint64_t nk_keyrsc; + uint8_t nk_keydata[256]; +}; + +typedef struct ndis_80211_key ndis_80211_key; + +struct ndis_80211_remove_key { + uint32_t nk_len; + uint32_t nk_keyidx; + ndis_80211_macaddr nk_bssid; +}; + +typedef struct ndis_80211_remove_key ndis_80211_remove_key; + +#define NDIS_80211_AI_REQFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_REQFI_LISTENINTERVAL 0x00000002 +#define NDIS_80211_AI_REQFI_CURRENTAPADDRESS 0x00000004 + +#define NDIS_80211_AI_RESFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_RESFI_STATUSCODE 0x00000002 +#define NDIS_80211_AI_RESFI_ASSOCIATIONID 0x00000004 + +struct ndis_80211_ai_reqfi { + uint16_t naq_caps; + uint16_t naq_listentint; + ndis_80211_macaddr naq_currentapaddr; +}; + +typedef struct ndis_80211_ai_reqfi ndis_80211_ai_reqfi; + +struct ndis_80211_ai_resfi { + uint16_t nas_caps; + uint16_t nas_statuscode; + uint16_t nas_associd; +}; + +typedef struct ndis_80211_ai_resfi ndis_80211_ai_resfi; + +struct ndis_80211_assoc_info { + uint32_t nai_len; + uint16_t nai_avail_req_fixed_ies; + ndis_80211_ai_reqfi nai_req_fixed_ies; + uint32_t nai_req_ielen; + uint32_t nai_offset_req_ies; + uint16_t nai_avail_resp_fixed_ies; + ndis_80211_ai_resfi nai_resp_fixed_iex; + uint32_t nai_resp_ielen; + uint32_t nai_offset_resp_ies; +}; + +typedef struct ndis_80211_assoc_info ndis_80211_assoc_info; + +struct ndis_80211_auth_event { + ndis_80211_status_indication nae_status; + ndis_80211_auth_request nae_request[1]; +}; + +typedef struct ndis_80211_auth_event ndis_80211_auth_event; + +struct ndis_80211_test { + uint32_t nt_len; + uint32_t nt_type; + union { + ndis_80211_auth_event nt_authevent; + uint32_t nt_rssitrigger; + } u; +}; + +typedef struct ndis_80211_test ndis_80211_test; + /* * Attribures of NDIS drivers. Not all drivers support * all attributes. ==== //depot/projects/netperf+sockets/sys/compat/ndis/subr_ndis.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.18 2003/12/28 21:36:03 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.19 2004/01/02 04:31:06 wpaul Exp $"); /* * This file implements a translation layer between the BSD networking @@ -769,12 +769,13 @@ block = (ndis_miniport_block *)adapter; - printf ("NDIS ERROR: %x\n", code); - printf ("NDIS NUMERRORS: %x\n", numerrors); + device_printf (block->nmb_dev, "NDIS ERROR: %x\n", code); + device_printf (block->nmb_dev, "NDIS NUMERRORS: %x\n", numerrors); va_start(ap, numerrors); for (i = 0; i < numerrors; i++) - printf ("argptr: %p\n", va_arg(ap, void *)); + device_printf (block->nmb_dev, "argptr: %p\n", + va_arg(ap, void *)); va_end(ap); return; @@ -1829,7 +1830,7 @@ block = (ndis_miniport_block *)adapter; *list = block->nmb_rlist; - printf ("assign PCI resources...\n"); + device_printf (block->nmb_dev, "assign PCI resources...\n"); return (NDIS_STATUS_SUCCESS); } ==== //depot/projects/netperf+sockets/sys/compat/ndis/subr_ntoskrnl.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.4 2003/12/25 00:40:02 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.5 2003/12/31 04:12:57 wpaul Exp $"); #include #include @@ -489,8 +489,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock(&ntoskrnl_interlock); oldhead = head->slh_list.slh_next; @@ -506,7 +505,7 @@ slist_header *head; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); + __asm__ __volatile__ ("" : "=c" (head)); mtx_lock(&ntoskrnl_interlock); first = head->slh_list.slh_next; @@ -524,8 +523,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock((struct mtx *)*lock); oldhead = head->slh_list.slh_next; @@ -542,8 +540,7 @@ kspin_lock *lock; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (lock)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (lock)); mtx_lock((struct mtx *)*lock); first = head->slh_list.slh_next; ==== //depot/projects/netperf+sockets/sys/dev/acpica/acpi_thermal.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.33 2003/10/25 05:03:24 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.34 2003/12/31 19:11:19 njl Exp $"); #include "opt_acpi.h" #include @@ -50,8 +50,8 @@ #define TZ_KELVTOC(x) (((x) - TZ_ZEROC) / 10), (((x) - TZ_ZEROC) % 10) #define TZ_NOTIFY_TEMPERATURE 0x80 -#define TZ_NOTIFY_DEVICES 0x81 -#define TZ_NOTIFY_LEVELS 0x82 +#define TZ_NOTIFY_LEVELS 0x81 +#define TZ_NOTIFY_DEVICES 0x82 /* Check for temperature changes every 30 seconds by default */ #define TZ_POLLRATE 30 ==== //depot/projects/netperf+sockets/sys/dev/ed/if_ed_pccard.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.54 2003/10/31 18:31:58 brooks Exp $ + * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.55 2003/12/31 04:25:00 kato Exp $ */ #include "opt_ed.h" @@ -179,6 +179,7 @@ { PCMCIA_CARD(SVEC, COMBOCARD, 0), 0}, { PCMCIA_CARD(SVEC, LANCARD, 0), 0}, { PCMCIA_CARD(SYNERGY21, S21810, 0), 0}, + { PCMCIA_CARD(TDK, LAK_CD031, 0), 0}, { PCMCIA_CARD(TELECOMDEVICE, TCD_HPC100, 0), NE2000DVF_AX88190 }, { PCMCIA_CARD(XIRCOM, CFE_10, 0), 0}, { PCMCIA_CARD(ZONET, ZEN, 0), 0}, ==== //depot/projects/netperf+sockets/sys/dev/if_ndis/if_ndis.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.16 2003/12/29 23:51:59 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.19 2004/01/02 04:31:05 wpaul Exp $"); #include "opt_bdg.h" @@ -53,8 +53,6 @@ #include -#include /* for vtophys */ -#include /* for vtophys */ #include #include #include @@ -104,6 +102,7 @@ ndis_packet **, uint32_t); static __stdcall void ndis_linksts (ndis_handle, ndis_status, void *, uint32_t); +static __stdcall void ndis_linksts_done (ndis_handle); static void ndis_intr (void *); static void ndis_tick (void *); @@ -142,15 +141,28 @@ }; static driver_t ndis_driver = { +#ifdef NDIS_DEVNAME + NDIS_DEVNAME, +#else "ndis", +#endif ndis_methods, sizeof(struct ndis_softc) }; static devclass_t ndis_devclass; +#ifdef NDIS_MODNAME +#define NDIS_MODNAME_OVERRIDE_PCI(x) \ + DRIVER_MODULE(x, pci, ndis_driver, ndis_devclass, 0, 0) +#define NDIS_MODNAME_OVERRIDE_CARDBUS(x) \ + DRIVER_MODULE(x, cardbus, ndis_driver, ndis_devclass, 0, 0) +NDIS_MODNAME_OVERRIDE_PCI(NDIS_MODNAME); +NDIS_MODNAME_OVERRIDE_CARDBUS(NDIS_MODNAME); +#else DRIVER_MODULE(ndis, pci, ndis_driver, ndis_devclass, 0, 0); DRIVER_MODULE(ndis, cardbus, ndis_driver, ndis_devclass, 0, 0); +#endif /* * Program the 64-bit multicast hash filter. @@ -241,42 +253,43 @@ SYS_RES_IOPORT, &sc->ndis_io_rid, 0, ~0, 1, RF_ACTIVE); if (sc->ndis_res_io == NULL) { - printf("ndis%d: couldn't map " - "iospace\n", unit); + device_printf(dev, + "couldn't map iospace"); error = ENXIO; goto fail; } break; case SYS_RES_MEMORY: - if (sc->ndis_res_altmem != NULL) { - printf ("ndis%d: too many memory " - "resources", sc->ndis_unit); + if (sc->ndis_res_altmem != NULL && + sc->ndis_res_mem != NULL) { + device_printf(dev, + "too many memory resources"); error = ENXIO; goto fail; } - if (sc->ndis_res_mem == NULL) { - sc->ndis_mem_rid = rle->rid; - sc->ndis_res_mem = + if (rle->rid == PCIR_BAR(2)) { + sc->ndis_altmem_rid = rle->rid; + sc->ndis_res_altmem = bus_alloc_resource(dev, SYS_RES_MEMORY, - &sc->ndis_mem_rid, + &sc->ndis_altmem_rid, 0, ~0, 1, RF_ACTIVE); - if (sc->ndis_res_mem == NULL) { - printf("ndis%d: couldn't map " - "memory\n", unit); + if (sc->ndis_res_altmem == NULL) { + device_printf(dev, + "couldn't map alt memory"); error = ENXIO; goto fail; } } else { - sc->ndis_altmem_rid = rle->rid; - sc->ndis_res_altmem = + sc->ndis_mem_rid = rle->rid; + sc->ndis_res_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, - &sc->ndis_altmem_rid, + &sc->ndis_mem_rid, 0, ~0, 1, RF_ACTIVE); - if (sc->ndis_res_altmem == NULL) { - printf("ndis%d: couldn't map " - "alt memory\n", unit); + if (sc->ndis_res_mem == NULL) { + device_printf(dev, + "couldn't map memory"); error = ENXIO; goto fail; } @@ -288,8 +301,8 @@ SYS_RES_IRQ, &rid, 0, ~0, 1, RF_SHAREABLE | RF_ACTIVE); if (sc->ndis_irq == NULL) { - printf("ndis%d: couldn't map " - "interrupt\n", unit); + device_printf(dev, + "couldn't map interrupt"); error = ENXIO; goto fail; } @@ -310,7 +323,7 @@ ndis_intr, sc, &sc->ndis_intrhand); if (error) { - printf("ndis%d: couldn't set up irq\n", unit); + device_printf(dev, "couldn't set up irq\n"); goto fail; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jan 2 13:32:59 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CF73416A4D1; Fri, 2 Jan 2004 13:32:58 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A703C16A4CF for ; Fri, 2 Jan 2004 13:32:58 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F1B8543D5F for ; Fri, 2 Jan 2004 13:32:00 -0800 (PST) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i02LW00B002133 for ; Fri, 2 Jan 2004 13:32:00 -0800 (PST) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i02LW04o002114 for perforce@freebsd.org; Fri, 2 Jan 2004 13:32:00 -0800 (PST) (envelope-from jhb@freebsd.org) Date: Fri, 2 Jan 2004 13:32:00 -0800 (PST) Message-Id: <200401022132.i02LW04o002114@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 44699 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 21:32:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=44699 Change 44699 by jhb@jhb_blue on 2004/01/02 13:31:49 IFC @44696. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#20 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#35 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#44 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#3 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#3 integrate .. //depot/projects/smpng/sys/conf/kern.post.mk#29 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#27 integrate .. //depot/projects/smpng/sys/conf/options.i386#38 integrate .. //depot/projects/smpng/sys/conf/options.pc98#35 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#20 integrate .. //depot/projects/smpng/sys/dev/an/if_aironet_ieee.h#8 integrate .. //depot/projects/smpng/sys/dev/an/if_an.c#35 integrate .. //depot/projects/smpng/sys/dev/an/if_an_isa.c#10 integrate .. //depot/projects/smpng/sys/dev/an/if_an_pccard.c#12 integrate .. //depot/projects/smpng/sys/dev/an/if_an_pci.c#16 integrate .. //depot/projects/smpng/sys/dev/an/if_anreg.h#11 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#20 integrate .. //depot/projects/smpng/sys/dev/fb/creator.c#3 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/smpng/sys/dev/ips/ips_commands.c#7 integrate .. //depot/projects/smpng/sys/dev/pccard/pccarddevs#34 integrate .. //depot/projects/smpng/sys/dev/pccard/pccarddevs.h#34 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#22 integrate .. //depot/projects/smpng/sys/dev/usb/ubsa.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/ucom.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/ufm.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#42 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs.h#42 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#42 integrate .. //depot/projects/smpng/sys/dev/usb/uvscom.c#11 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#30 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_wakecode.S#7 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#71 integrate .. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#23 integrate .. //depot/projects/smpng/sys/kern/subr_power.c#5 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf2.c#12 integrate .. //depot/projects/smpng/sys/net/if_gre.c#12 integrate .. //depot/projects/smpng/sys/net/if_gre.h#5 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#23 integrate .. //depot/projects/smpng/sys/net/if_vlan_var.h#9 integrate .. //depot/projects/smpng/sys/netinet/in.c#18 integrate .. //depot/projects/smpng/sys/netinet/ip_gre.c#9 integrate .. //depot/projects/smpng/sys/pc98/conf/NOTES#17 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#43 integrate .. //depot/projects/smpng/sys/sys/copyright.h#5 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#32 integrate .. //depot/projects/smpng/sys/vm/vm_kern.c#23 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#52 integrate .. //depot/projects/smpng/sys/vm/vm_meter.c#16 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#48 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#45 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#20 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.449 2003/12/22 01:01:31 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.450 2004/01/01 07:08:52 alc Exp $"); /* * Manages physical address maps. @@ -1079,14 +1079,11 @@ while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) VM_WAIT; - vm_page_lock_queues(); - vm_page_flag_clear(pml4pg, PG_BUSY); - vm_page_unlock_queues(); pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg)); if ((pml4pg->flags & PG_ZERO) == 0) - bzero(pmap->pm_pml4, PAGE_SIZE); + pagezero(pmap->pm_pml4); mtx_lock_spin(&allpmaps_lock); LIST_INSERT_HEAD(&allpmaps, pmap, pm_list); @@ -1254,7 +1251,6 @@ } vm_page_lock_queues(); - vm_page_flag_clear(m, PG_ZERO); vm_page_wakeup(m); vm_page_unlock_queues(); @@ -1424,7 +1420,6 @@ m = PHYS_TO_VM_PAGE(pmap->pm_pml4[PML4PML4I]); m->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); - vm_page_busy(m); vm_page_free(m); vm_page_unlock_queues(); } ==== //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#35 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.79 2003/12/07 17:38:20 des Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.80 2004/01/02 19:29:31 alc Exp $"); #include #include @@ -143,9 +143,11 @@ swapused = j * PAGE_SIZE; swapfree = swaptotal - swapused; memshared = 0; + mtx_lock(&vm_object_list_mtx); TAILQ_FOREACH(object, &vm_object_list, object_list) if (object->shadow_count > 1) memshared += object->resident_page_count; + mtx_unlock(&vm_object_list_mtx); memshared *= PAGE_SIZE; /* * We'd love to be able to write: ==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#44 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.150 2003/11/16 15:07:10 sobomax Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.151 2004/01/02 19:29:31 alc Exp $"); #include "opt_mac.h" @@ -145,10 +145,11 @@ sysinfo.freeram = sysinfo.totalram - cnt.v_wire_count * PAGE_SIZE; sysinfo.sharedram = 0; - for (object = TAILQ_FIRST(&vm_object_list); object != NULL; - object = TAILQ_NEXT(object, object_list)) + mtx_lock(&vm_object_list_mtx); + TAILQ_FOREACH(object, &vm_object_list, object_list) if (object->shadow_count > 1) sysinfo.sharedram += object->resident_page_count; + mtx_unlock(&vm_object_list_mtx); sysinfo.sharedram *= PAGE_SIZE; sysinfo.bufferram = 0; ==== //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.15 2003/12/26 07:01:05 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.18 2004/01/02 04:31:06 wpaul Exp $"); #include #include @@ -52,6 +52,8 @@ #include #include +#include + #include #include #include @@ -82,6 +84,8 @@ __stdcall static void ndis_getdone_func(ndis_handle, ndis_status); __stdcall static void ndis_resetdone_func(ndis_handle, ndis_status, uint8_t); +static uma_zone_t ndis_packet_zone, ndis_buffer_zone; + /* * This allows us to export our symbols to other modules. * Note that we call ourselves 'ndisapi' to avoid a namespace @@ -91,7 +95,28 @@ static int ndis_modevent(module_t mod, int cmd, void *arg) { - return(0); + int error = 0; + + switch (cmd) { + case MOD_LOAD: + ndis_packet_zone = uma_zcreate("NDIS packet", + sizeof(ndis_packet), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + ndis_buffer_zone = uma_zcreate("NDIS buffer", + sizeof(ndis_buffer), NULL, NULL, NULL, + NULL, UMA_ALIGN_PTR, 0); + break; + case MOD_UNLOAD: + case MOD_SHUTDOWN: + uma_zdestroy(ndis_packet_zone); + uma_zdestroy(ndis_buffer_zone); + break; + default: + error = EINVAL; + break; + } + + return(error); } DEV_MODULE(ndisapi, ndis_modevent, NULL); MODULE_VERSION(ndisapi, 1); @@ -104,7 +129,10 @@ void *sbuf; uint32_t slen; { - printf ("status: %x\n", status); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status: %x\n", status); return; } @@ -112,7 +140,10 @@ ndis_statusdone_func(adapter) ndis_handle adapter; { - printf ("status complete\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "status complete\n"); return; } @@ -148,7 +179,10 @@ ndis_status status; uint8_t addressingreset; { - printf ("reset done...\n"); + ndis_miniport_block *block; + block = adapter; + + device_printf (block->nmb_dev, "reset done...\n"); return; } @@ -170,8 +204,8 @@ &rid, 0UL, ~0UL, 0x1000, RF_ACTIVE); if (sc->ndis_res_am == NULL) { - printf("ndis%d: failed to allocate attribute memory\n", - sc->ndis_unit); + device_printf(sc->ndis_dev, + "failed to allocate attribute memory\n"); return(ENXIO); } @@ -179,8 +213,8 @@ sc->ndis_dev, rid, 0, NULL); if (error) { - printf("ndis%d: CARD_SET_MEMORY_OFFSET() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_MEMORY_OFFSET() returned 0x%x\n", error); return(error); } @@ -188,8 +222,8 @@ sc->ndis_dev, SYS_RES_MEMORY, rid, PCCARD_A_MEM_ATTR); if (error) { - printf("ndis%d: CARD_SET_RES_FLAGS() returned 0x%x\n", - sc->ndis_unit, error); + device_printf(sc->ndis_dev, + "CARD_SET_RES_FLAGS() returned 0x%x\n", error); return(error); } @@ -369,7 +403,7 @@ while(b0 != NULL) { next = b0->nb_next; - free (b0, M_DEVBUF); + uma_zfree (ndis_buffer_zone, b0); b0 = next; } @@ -384,7 +418,7 @@ return; ndis_free_bufs(p->np_private.npp_head); - free(p, M_DEVBUF); + uma_zfree(ndis_packet_zone, p); return; } @@ -397,9 +431,13 @@ ndis_resource_list *rl = NULL; cm_partial_resource_desc *prd = NULL; ndis_miniport_block *block; + device_t dev; + struct resource_list *brl; + struct resource_list_entry *brle; sc = arg; block = &sc->ndis_block; + dev = sc->ndis_dev; rl = malloc(sizeof(ndis_resource_list) + (sizeof(cm_partial_resource_desc) * (sc->ndis_rescnt - 1)), @@ -411,33 +449,35 @@ rl->cprl_version = 5; rl->cprl_version = 1; rl->cprl_count = sc->ndis_rescnt; - prd = rl->cprl_partial_descs; - if (sc->ndis_res_io) { - prd->cprd_type = CmResourceTypePort; - prd->u.cprd_port.cprd_start.np_quad = - rman_get_start(sc->ndis_res_io); - prd->u.cprd_port.cprd_len = - rman_get_size(sc->ndis_res_io); - prd++; - } - if (sc->ndis_res_mem) { - prd->cprd_type = CmResourceTypeMemory; - prd->u.cprd_mem.cprd_start.np_quad = - rman_get_start(sc->ndis_res_mem); - prd->u.cprd_mem.cprd_len = - rman_get_size(sc->ndis_res_mem); - prd++; - } - - if (sc->ndis_irq) { - prd->cprd_type = CmResourceTypeInterrupt; - prd->u.cprd_intr.cprd_level = - rman_get_start(sc->ndis_irq); - prd->u.cprd_intr.cprd_vector = - rman_get_start(sc->ndis_irq); - prd->u.cprd_intr.cprd_affinity = 0; + brl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); + if (brl != NULL) { + SLIST_FOREACH(brle, brl, link) { + switch (brle->type) { + case SYS_RES_IOPORT: + prd->cprd_type = CmResourceTypePort; + prd->u.cprd_port.cprd_start.np_quad = + brle->start; + prd->u.cprd_port.cprd_len = brle->count; + break; + case SYS_RES_MEMORY: + prd->cprd_type = CmResourceTypeMemory; + prd->u.cprd_port.cprd_start.np_quad = + brle->start; + prd->u.cprd_port.cprd_len = brle->count; + break; + case SYS_RES_IRQ: + prd->cprd_type = CmResourceTypeInterrupt; + prd->u.cprd_intr.cprd_level = brle->start; + prd->u.cprd_intr.cprd_vector = brle->start; + prd->u.cprd_intr.cprd_affinity = 0; + break; + default: + break; + } + prd++; + } } block->nmb_rlist = rl; @@ -532,7 +572,7 @@ /* If caller didn't supply a packet, make one. */ if (*p == NULL) { - *p = malloc(sizeof(ndis_packet), M_DEVBUF, M_NOWAIT|M_ZERO); + *p = uma_zalloc(ndis_packet_zone, M_NOWAIT|M_ZERO); if (*p == NULL) return(ENOMEM); @@ -545,7 +585,7 @@ for (m = m0; m != NULL; m = m->m_next) { if (m->m_len == 0) continue; - buf = malloc(sizeof(ndis_buffer), M_DEVBUF, M_NOWAIT|M_ZERO); + buf = uma_zalloc(ndis_buffer_zone, M_NOWAIT | M_ZERO); if (buf == NULL) { ndis_free_packet(*p); *p = NULL; @@ -561,6 +601,7 @@ } priv->npp_tail = buf; + priv->npp_totlen = m0->m_pkthdr.len; return(0); } @@ -665,7 +706,13 @@ for (i = 0; i < cnt; i++) { p = packets[i]; - if (p->np_oob.npo_status == NDIS_STATUS_PENDING) + /* + * Either the driver already handed the packet to + * ndis_txeof() due to a failure, or it wants to keep + * it and release it asynchronously later. Skip to the + * next one. + */ + if (p == NULL || p->np_oob.npo_status == NDIS_STATUS_PENDING) continue; idx = p->np_txidx; m = p->np_m0; ==== //depot/projects/smpng/sys/compat/ndis/ndis_var.h#3 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.9 2003/12/26 03:31:34 wpaul Exp $ + * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.10 2003/12/30 21:33:26 wpaul Exp $ */ #ifndef _NDIS_VAR_H_ @@ -100,17 +100,6 @@ #define NDIS_STATUS_REQUEST_ABORTED 0xC001000C #define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D #define NDIS_STATUS_CLOSING_INDICATING 0xC001000E -#define NDIS_STATUS_BAD_VERSION 0xC0010004 -#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005 -#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006 -#define NDIS_STATUS_OPEN_FAILED 0xC0010007 -#define NDIS_STATUS_DEVICE_FAILED 0xC0010008 -#define NDIS_STATUS_MULTICAST_FULL 0xC0010009 -#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A -#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B -#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C -#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D -#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E #define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB #define NDIS_STATUS_INVALID_PACKET 0xC001000F #define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010 @@ -192,134 +181,141 @@ */ /* Required OIDs */ -#define OID_GEN_SUPPORTED_LIST 0x00010101 -#define OID_GEN_HARDWARE_STATUS 0x00010102 -#define OID_GEN_MEDIA_SUPPORTED 0x00010103 -#define OID_GEN_MEDIA_IN_USE 0x00010104 -#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 -#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 -#define OID_GEN_LINK_SPEED 0x00010107 -#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 -#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 -#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A -#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B -#define OID_GEN_VENDOR_ID 0x0001010C -#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D -#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E -#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F -#define OID_GEN_DRIVER_VERSION 0x00010110 -#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 -#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 -#define OID_GEN_MAC_OPTIONS 0x00010113 -#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 -#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 -#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 -#define OID_GEN_SUPPORTED_GUIDS 0x00010117 -#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ -#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ -#define OID_GEN_MACHINE_NAME 0x0001021A -#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ -#define OID_GEN_VLAN_ID 0x0001021C +#define OID_GEN_SUPPORTED_LIST 0x00010101 +#define OID_GEN_HARDWARE_STATUS 0x00010102 +#define OID_GEN_MEDIA_SUPPORTED 0x00010103 +#define OID_GEN_MEDIA_IN_USE 0x00010104 +#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 +#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 +#define OID_GEN_LINK_SPEED 0x00010107 +#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 +#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 +#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A +#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B +#define OID_GEN_VENDOR_ID 0x0001010C +#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D +#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E +#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F +#define OID_GEN_DRIVER_VERSION 0x00010110 +#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 +#define OID_GEN_PROTOCOL_OPTIONS 0x00010112 +#define OID_GEN_MAC_OPTIONS 0x00010113 +#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 +#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 +#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 +#define OID_GEN_SUPPORTED_GUIDS 0x00010117 +#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */ +#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */ +#define OID_GEN_MACHINE_NAME 0x0001021A +#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */ +#define OID_GEN_VLAN_ID 0x0001021C /* Optional OIDs. */ -#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 -#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 +#define OID_GEN_MEDIA_CAPABILITIES 0x00010201 +#define OID_GEN_PHYSICAL_MEDIUM 0x00010202 /* Required statistics OIDs. */ -#define OID_GEN_XMIT_OK 0x00020101 -#define OID_GEN_RCV_OK 0x00020102 -#define OID_GEN_XMIT_ERROR 0x00020103 -#define OID_GEN_RCV_ERROR 0x00020104 -#define OID_GEN_RCV_NO_BUFFER 0x00020105 +#define OID_GEN_XMIT_OK 0x00020101 +#define OID_GEN_RCV_OK 0x00020102 +#define OID_GEN_XMIT_ERROR 0x00020103 +#define OID_GEN_RCV_ERROR 0x00020104 +#define OID_GEN_RCV_NO_BUFFER 0x00020105 /* Optional OID statistics */ -#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 -#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 -#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 -#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 -#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 -#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 -#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 -#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 -#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 -#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A -#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B -#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C -#define OID_GEN_RCV_CRC_ERROR 0x0002020D -#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E -#define OID_GEN_GET_TIME_CAPS 0x0002020F -#define OID_GEN_GET_NETCARD_TIME 0x00020210 -#define OID_GEN_NETCARD_LOAD 0x00020211 -#define OID_GEN_DEVICE_PROFILE 0x00020212 +#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 +#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 +#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 +#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 +#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 +#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 +#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 +#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 +#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 +#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A +#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B +#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C +#define OID_GEN_RCV_CRC_ERROR 0x0002020D +#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E +#define OID_GEN_GET_TIME_CAPS 0x0002020F +#define OID_GEN_GET_NETCARD_TIME 0x00020210 +#define OID_GEN_NETCARD_LOAD 0x00020211 +#define OID_GEN_DEVICE_PROFILE 0x00020212 /* 802.3 (ethernet) OIDs */ -#define OID_802_3_PERMANENT_ADDRESS 0x01010101 -#define OID_802_3_CURRENT_ADDRESS 0x01010102 -#define OID_802_3_MULTICAST_LIST 0x01010103 -#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 -#define OID_802_3_MAC_OPTIONS 0x01010105 -#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 -#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 -#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 -#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 -#define OID_802_3_XMIT_DEFERRED 0x01020201 -#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 -#define OID_802_3_RCV_OVERRUN 0x01020203 -#define OID_802_3_XMIT_UNDERRUN 0x01020204 -#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 -#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 -#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 +#define OID_802_3_PERMANENT_ADDRESS 0x01010101 +#define OID_802_3_CURRENT_ADDRESS 0x01010102 +#define OID_802_3_MULTICAST_LIST 0x01010103 +#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 +#define OID_802_3_MAC_OPTIONS 0x01010105 +#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 +#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 +#define OID_802_3_XMIT_ONE_COLLISION 0x01020102 +#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 +#define OID_802_3_XMIT_DEFERRED 0x01020201 +#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 +#define OID_802_3_RCV_OVERRUN 0x01020203 +#define OID_802_3_XMIT_UNDERRUN 0x01020204 +#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 +#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 +#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 /* PnP and power management OIDs */ -#define OID_PNP_CAPABILITIES 0xFD010100 -#define OID_PNP_SET_POWER 0xFD010101 -#define OID_PNP_QUERY_POWER 0xFD010102 -#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 -#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 -#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 -#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 +#define OID_PNP_CAPABILITIES 0xFD010100 +#define OID_PNP_SET_POWER 0xFD010101 +#define OID_PNP_QUERY_POWER 0xFD010102 +#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 +#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 +#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 +#define OID_PNP_ENABLE_WAKE_UP 0xFD010106 /* PnP/PM Statistics (Optional). */ -#define OID_PNP_WAKE_UP_OK 0xFD020200 -#define OID_PNP_WAKE_UP_ERROR 0xFD020201 +#define OID_PNP_WAKE_UP_OK 0xFD020200 +#define OID_PNP_WAKE_UP_ERROR 0xFD020201 /* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */ -#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 -#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 -#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 +#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 +#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 +#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 /* 802.11 OIDs */ -#define OID_802_11_BSSID 0x0D010101 -#define OID_802_11_SSID 0x0D010102 -#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 -#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 -#define OID_802_11_TX_POWER_LEVEL 0x0D010205 -#define OID_802_11_RSSI 0x0D010206 -#define OID_802_11_RSSI_TRIGGER 0x0D010207 -#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 -#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 -#define OID_802_11_RTS_THRESHOLD 0x0D01020A -#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B -#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C -#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D -#define OID_802_11_SUPPORTED_RATES 0x0D01020E -#define OID_802_11_DESIRED_RATES 0x0D010210 -#define OID_802_11_CONFIGURATION 0x0D010211 -#define OID_802_11_STATISTICS 0x0D020212 -#define OID_802_11_ADD_WEP 0x0D010113 -#define OID_802_11_REMOVE_WEP 0x0D010114 -#define OID_802_11_DISASSOCIATE 0x0D010115 -#define OID_802_11_POWER_MODE 0x0D010216 -#define OID_802_11_BSSID_LIST 0x0D010217 -#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 -#define OID_802_11_PRIVACY_FILTER 0x0D010119 -#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A -#define OID_802_11_WEP_STATUS 0x0D01011B -#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_BSSID 0x0D010101 +#define OID_802_11_SSID 0x0D010102 +#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 +#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 +#define OID_802_11_TX_POWER_LEVEL 0x0D010205 +#define OID_802_11_RSSI 0x0D010206 +#define OID_802_11_RSSI_TRIGGER 0x0D010207 +#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 +#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 +#define OID_802_11_RTS_THRESHOLD 0x0D01020A +#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B +#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C +#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D +#define OID_802_11_SUPPORTED_RATES 0x0D01020E +#define OID_802_11_DESIRED_RATES 0x0D010210 +#define OID_802_11_CONFIGURATION 0x0D010211 +#define OID_802_11_STATISTICS 0x0D020212 +#define OID_802_11_ADD_WEP 0x0D010113 +#define OID_802_11_REMOVE_WEP 0x0D010114 +#define OID_802_11_DISASSOCIATE 0x0D010115 +#define OID_802_11_POWER_MODE 0x0D010216 +#define OID_802_11_BSSID_LIST 0x0D010217 +#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 +#define OID_802_11_PRIVACY_FILTER 0x0D010119 +#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A +#define OID_802_11_WEP_STATUS 0x0D01011B +#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS +#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C +#define OID_802_11_ADD_KEY 0x0D01011D +#define OID_802_11_REMOVE_KEY 0x0D01011E +#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F +#define OID_802_11_TEST 0x0D010120 /* structures/definitions for 802.11 */ #define NDIS_80211_NETTYPE_11FH 0x00000000 #define NDIS_80211_NETTYPE_11DS 0x00000001 +#define NDIS_80211_NETTYPE_11OFDM5 0x00000002 +#define NDIS_80211_NETTYPE_11OFDM24 0x00000003 struct ndis_80211_nettype_list { uint32_t ntl_items; @@ -376,11 +372,14 @@ uint32_t nw_length; uint32_t nw_keyidx; uint32_t nw_keylen; - uint32_t nw_keydata[1]; + uint8_t nw_keydata[256]; }; typedef struct ndis_80211_wep ndis_80211_wep; +#define NDIS_80211_WEPKEY_TX 0x80000000 +#define NDIS_80211_WEPKEY_PERCLIENT 0x40000000 + #define NDIS_80211_NET_INFRA_IBSS 0x00000000 #define NDIS_80211_NET_INFRA_BSS 0x00000001 #define NDIS_80211_NET_INFRA_AUTO 0x00000002 @@ -388,8 +387,12 @@ #define NDIS_80211_AUTHMODE_OPEN 0x00000000 #define NDIS_80211_AUTHMODE_SHARED 0x00000001 #define NDIS_80211_AUTHMODE_AUTO 0x00000002 +#define NDIS_80211_AUTHMODE_WPA 0x00000003 +#define NDIS_80211_AUTHMODE_WPAPSK 0x00000004 +#define NDIS_80211_AUTHMODE_WPANONE 0x00000005 typedef uint8_t ndis_80211_rates[8]; +typedef uint8_t ndis_80211_rates_ex[16]; typedef uint8_t ndis_80211_macaddr[6]; struct ndis_80211_ssid { @@ -421,6 +424,42 @@ typedef struct ndis_80211_bssid_list ndis_80211_bssid_list; +struct ndis_wlan_bssid_ex { + uint32_t nwbx_len; + ndis_80211_macaddr nwbx_macaddr; + uint8_t nwbx_rsvd[2]; + ndis_80211_ssid nwbx_ssid; + uint32_t nwbx_privacy; + ndis_80211_rssi nwbx_rssi; + uint32_t nwbx_nettype; + ndis_80211_config nwbx_config; + uint32_t nwbx_netinfra; + ndis_80211_rates_ex nwbx_supportedrates; + uint32_t nwbx_ielen; + uint32_t nwbx_ies[1]; +}; + +typedef struct ndis_wlan_bssid_ex ndis_wlan_bssid_ex; + +struct ndis_80211_bssid_list_ex { + uint32_t nblx_items; + ndis_wlan_bssid nblx_bssid[1]; +}; + +typedef struct ndis_80211_bssid_list_ex ndis_80211_bssid_list_ex; + +struct ndis_80211_fixed_ies { + uint8_t nfi_tstamp[8]; + uint16_t nfi_beaconint; + uint16_t nfi_caps; +}; + +struct ndis_80211_variable_ies { + uint8_t nvi_elemid; + uint8_t nvi_len; + uint8_t nvi_data[1]; +}; + typedef uint32_t ndis_80211_fragthresh; typedef uint32_t ndis_80211_rtsthresh; typedef uint32_t ndis_80211_antenna; @@ -429,12 +468,111 @@ #define NDIS_80211_PRIVFILT_8021XWEP 0x00000001 #define NDIS_80211_WEPSTAT_ENABLED 0x00000000 +#define NDIS_80211_WEPSTAT_ENC1ENABLED NDIS_80211_WEPSTAT_ENABLED #define NDIS_80211_WEPSTAT_DISABLED 0x00000001 +#define NDIS_80211_WEPSTAT_ENCDISABLED NDIS_80211_WEPSTAT_DISABLED #define NDIS_80211_WEPSTAT_KEYABSENT 0x00000002 +#define NDIS_80211_WEPSTAT_ENC1KEYABSENT NDIS_80211_WEPSTAT_KEYABSENT #define NDIS_80211_WEPSTAT_NOTSUPPORTED 0x00000003 +#define NDIS_80211_WEPSTAT_ENCNOTSUPPORTED NDIS_80211_WEPSTAT_NOTSUPPORTED +#define NDIS_80211_WEPSTAT_ENC2ENABLED 0x00000004 +#define NDIS_80211_WEPSTAT_ENC2KEYABSENT 0x00000005 +#define NDIS_80211_WEPSTAT_ENC3ENABLED 0x00000006 +#define NDIS_80211_WEPSTAT_ENC3KEYABSENT 0x00000007 #define NDIS_80211_RELOADDEFAULT_WEP 0x00000000 +#define NDIS_80211_STATUSTYPE_AUTH 0x00000000 + +struct ndis_80211_status_indication { + uint32_t nsi_type; +}; + +typedef struct ndis_80211_status_indication ndis_80211_status_indication; + +struct ndis_80211_auth_request { + uint32_t nar_len; + ndis_80211_macaddr nar_bssid; + uint32_t nar_flags; +}; + +typedef struct ndis_80211_auth_request ndis_80211_auth_request; + +struct ndis_80211_key { + uint32_t nk_len; + uint32_t nk_keyidx; + uint32_t nk_keylen; + ndis_80211_macaddr nk_bssid; + uint64_t nk_keyrsc; + uint8_t nk_keydata[256]; +}; + +typedef struct ndis_80211_key ndis_80211_key; + +struct ndis_80211_remove_key { + uint32_t nk_len; + uint32_t nk_keyidx; + ndis_80211_macaddr nk_bssid; +}; + +typedef struct ndis_80211_remove_key ndis_80211_remove_key; + +#define NDIS_80211_AI_REQFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_REQFI_LISTENINTERVAL 0x00000002 +#define NDIS_80211_AI_REQFI_CURRENTAPADDRESS 0x00000004 + +#define NDIS_80211_AI_RESFI_CAPABILITIES 0x00000001 +#define NDIS_80211_AI_RESFI_STATUSCODE 0x00000002 +#define NDIS_80211_AI_RESFI_ASSOCIATIONID 0x00000004 + +struct ndis_80211_ai_reqfi { + uint16_t naq_caps; + uint16_t naq_listentint; + ndis_80211_macaddr naq_currentapaddr; +}; + +typedef struct ndis_80211_ai_reqfi ndis_80211_ai_reqfi; + +struct ndis_80211_ai_resfi { + uint16_t nas_caps; + uint16_t nas_statuscode; + uint16_t nas_associd; +}; + +typedef struct ndis_80211_ai_resfi ndis_80211_ai_resfi; + +struct ndis_80211_assoc_info { + uint32_t nai_len; + uint16_t nai_avail_req_fixed_ies; + ndis_80211_ai_reqfi nai_req_fixed_ies; + uint32_t nai_req_ielen; + uint32_t nai_offset_req_ies; + uint16_t nai_avail_resp_fixed_ies; + ndis_80211_ai_resfi nai_resp_fixed_iex; + uint32_t nai_resp_ielen; + uint32_t nai_offset_resp_ies; +}; + +typedef struct ndis_80211_assoc_info ndis_80211_assoc_info; + +struct ndis_80211_auth_event { + ndis_80211_status_indication nae_status; + ndis_80211_auth_request nae_request[1]; +}; + +typedef struct ndis_80211_auth_event ndis_80211_auth_event; + +struct ndis_80211_test { + uint32_t nt_len; + uint32_t nt_type; + union { + ndis_80211_auth_event nt_authevent; + uint32_t nt_rssitrigger; + } u; +}; + +typedef struct ndis_80211_test ndis_80211_test; + /* * Attribures of NDIS drivers. Not all drivers support * all attributes. ==== //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.18 2003/12/28 21:36:03 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.19 2004/01/02 04:31:06 wpaul Exp $"); /* * This file implements a translation layer between the BSD networking @@ -769,12 +769,13 @@ block = (ndis_miniport_block *)adapter; - printf ("NDIS ERROR: %x\n", code); - printf ("NDIS NUMERRORS: %x\n", numerrors); + device_printf (block->nmb_dev, "NDIS ERROR: %x\n", code); + device_printf (block->nmb_dev, "NDIS NUMERRORS: %x\n", numerrors); va_start(ap, numerrors); for (i = 0; i < numerrors; i++) - printf ("argptr: %p\n", va_arg(ap, void *)); + device_printf (block->nmb_dev, "argptr: %p\n", + va_arg(ap, void *)); va_end(ap); return; @@ -1829,7 +1830,7 @@ block = (ndis_miniport_block *)adapter; *list = block->nmb_rlist; - printf ("assign PCI resources...\n"); + device_printf (block->nmb_dev, "assign PCI resources...\n"); return (NDIS_STATUS_SUCCESS); } ==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.4 2003/12/25 00:40:02 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.5 2003/12/31 04:12:57 wpaul Exp $"); #include #include @@ -489,8 +489,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock(&ntoskrnl_interlock); oldhead = head->slh_list.slh_next; @@ -506,7 +505,7 @@ slist_header *head; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); + __asm__ __volatile__ ("" : "=c" (head)); mtx_lock(&ntoskrnl_interlock); first = head->slh_list.slh_next; @@ -524,8 +523,7 @@ slist_entry *entry; slist_entry *oldhead; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (entry)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (entry)); mtx_lock((struct mtx *)*lock); oldhead = head->slh_list.slh_next; @@ -542,8 +540,7 @@ kspin_lock *lock; slist_entry *first; - __asm__("movl %%ecx, %%ecx" : "=c" (head)); - __asm__("movl %%edx, %%edx" : "=d" (lock)); + __asm__ __volatile__ ("" : "=c" (head), "=d" (lock)); mtx_lock((struct mtx *)*lock); first = head->slh_list.slh_next; ==== //depot/projects/smpng/sys/conf/kern.post.mk#29 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.post.mk,v 1.56 2003/12/29 11:34:33 bde Exp $ +# $FreeBSD: src/sys/conf/kern.post.mk,v 1.57 2003/12/30 07:54:39 bde Exp $ # Part of a unified Makefile for building kernels. This part includes all # the definitions that need to be after all the % directives except %RULES @@ -113,7 +113,7 @@ NM=${NM} sh $S/kern/genassym.sh genassym.o > ${.TARGET} genassym.o: $S/$M/$M/genassym.c - ${CC} -c ${CFLAGS:N-fno-common} -Wno-inline $S/$M/$M/genassym.c + ${CC} -c ${CFLAGS:N-fno-common} $S/$M/$M/genassym.c ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h ==== //depot/projects/smpng/sys/conf/kern.pre.mk#27 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.38 2003/12/29 11:34:33 bde Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.39 2003/12/30 09:01:29 bde Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -47,8 +47,7 @@ CFLAGS+= -DGPROF -falign-functions=16 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jan 2 14:04:52 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9BD2116A4D0; Fri, 2 Jan 2004 14:04:52 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 76CE616A4CE for ; Fri, 2 Jan 2004 14:04:52 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 164A743D39 for ; Fri, 2 Jan 2004 14:04:51 -0800 (PST) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i02M4o0B010559 for ; Fri, 2 Jan 2004 14:04:50 -0800 (PST) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i02M4ob5010556 for perforce@freebsd.org; Fri, 2 Jan 2004 14:04:50 -0800 (PST) (envelope-from jhb@freebsd.org) Date: Fri, 2 Jan 2004 14:04:50 -0800 (PST) Message-Id: <200401022204.i02M4ob5010556@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 44709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 22:04:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=44709 Change 44709 by jhb@jhb_blue on 2004/01/02 14:04:27 Bah, stupid bug. Affected files ... .. //depot/projects/smpng/sys/modules/crash/crash.c#8 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash/crash.c#8 (text+ko) ==== @@ -234,9 +234,9 @@ break; case 18: bzero(&test1_mtx, sizeof(test1_mtx)); - bzero(&test1_mtx, sizeof(test2_mtx)); + bzero(&test2_mtx, sizeof(test2_mtx)); mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); - mtx_init(&test1_mtx, "test2", NULL, MTX_DEF | + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF | MTX_RECURSE); #define TRYLOCK_TEST(lock, descr) do { \ status = mtx_trylock((lock)); \ From owner-p4-projects@FreeBSD.ORG Fri Jan 2 15:09:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DD0DB16A4D0; Fri, 2 Jan 2004 15:09:49 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B63F016A4CE; Fri, 2 Jan 2004 15:09:49 -0800 (PST) Received: from ebb.errno.com (ebb.errno.com [66.127.85.87]) by mx1.FreeBSD.org (Postfix) with ESMTP id 563B543D5E; Fri, 2 Jan 2004 15:09:48 -0800 (PST) (envelope-from sam@errno.com) Received: from 66.127.85.91 ([66.127.85.91]) (authenticated bits=0) by ebb.errno.com (8.12.9/8.12.9) with ESMTP id i02N9lHQ067949 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Fri, 2 Jan 2004 15:09:48 -0800 (PST) (envelope-from sam@errno.com) From: Sam Leffler Organization: Errno Consulting To: John Baldwin , Perforce Change Reviews Date: Fri, 2 Jan 2004 15:13:38 -0800 User-Agent: KMail/1.5.3 References: <200401022204.i02M4ob5010556@repoman.freebsd.org> In-Reply-To: <200401022204.i02M4ob5010556@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200401021513.38759.sam@errno.com> Subject: Re: PERFORCE change 44709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 23:09:50 -0000 On Friday 02 January 2004 02:04 pm, John Baldwin wrote: > http://perforce.freebsd.org/chv.cgi?CH=44709 > > Change 44709 by jhb@jhb_blue on 2004/01/02 14:04:27 > > Bah, stupid bug. > > Affected files ... > > .. //depot/projects/smpng/sys/modules/crash/crash.c#8 edit > > Differences ... > > ==== //depot/projects/smpng/sys/modules/crash/crash.c#8 (text+ko) ==== > > @@ -234,9 +234,9 @@ > break; > case 18: > bzero(&test1_mtx, sizeof(test1_mtx)); > - bzero(&test1_mtx, sizeof(test2_mtx)); > + bzero(&test2_mtx, sizeof(test2_mtx)); > mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); > - mtx_init(&test1_mtx, "test2", NULL, MTX_DEF | > + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF | > MTX_RECURSE); > #define TRYLOCK_TEST(lock, descr) do { \ > status = mtx_trylock((lock)); \ Bah bah, bogus assertions. Sam From owner-p4-projects@FreeBSD.ORG Fri Jan 2 15:11:49 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 957E316A4D0; Fri, 2 Jan 2004 15:11:49 -0800 (PST) Delivered-To: perforce@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 931) id 6E6E316A4CF; Fri, 2 Jan 2004 15:11:49 -0800 (PST) Date: Fri, 2 Jan 2004 17:11:49 -0600 From: Juli Mallett To: Sam Leffler Message-ID: <20040102231149.GA69929@FreeBSD.org> References: <200401022204.i02M4ob5010556@repoman.freebsd.org> <200401021513.38759.sam@errno.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200401021513.38759.sam@errno.com> User-Agent: Mutt/1.4.1i X-Title: Code Maven X-Towel: Yes X-Negacore: Yes X-Authentication-Warning: localhost: juli pwned teh intarweb cc: Perforce Change Reviews cc: John Baldwin Subject: Re: PERFORCE change 44709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 23:11:50 -0000 * Sam Leffler [ Date: 2004-01-02 ] [ w.r.t. Re: PERFORCE change 44709 for review ] > On Friday 02 January 2004 02:04 pm, John Baldwin wrote: > > http://perforce.freebsd.org/chv.cgi?CH=44709 > > > > Change 44709 by jhb@jhb_blue on 2004/01/02 14:04:27 > > > > Bah, stupid bug. > > > > Affected files ... > > > > .. //depot/projects/smpng/sys/modules/crash/crash.c#8 edit > > > > Differences ... > > > > ==== //depot/projects/smpng/sys/modules/crash/crash.c#8 (text+ko) ==== > > > > @@ -234,9 +234,9 @@ > > break; > > case 18: > > bzero(&test1_mtx, sizeof(test1_mtx)); > > - bzero(&test1_mtx, sizeof(test2_mtx)); > > + bzero(&test2_mtx, sizeof(test2_mtx)); > > mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); > > - mtx_init(&test1_mtx, "test2", NULL, MTX_DEF | > > + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF | > > MTX_RECURSE); > > #define TRYLOCK_TEST(lock, descr) do { \ > > status = mtx_trylock((lock)); \ > > Bah bah, bogus assertions. Agreed. I want something to *initialize* these things. I hate one bit of code I have at work: sc->[all fields] = [appropriate values for fields] bzero(&sc->mtx, sizeof sc->mtx); mtx_init(&sc->mtx, "blah", NULL, MTX_DEF); *shrug* -- juli mallett. email: jmallett@freebsd.org; efnet: juli; aim: bsdflata; you can't get me to burn out though you try to break my spirit and me. From owner-p4-projects@FreeBSD.ORG Fri Jan 2 17:22:56 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 700F716A4D0; Fri, 2 Jan 2004 17:22:56 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4B85316A4CE for ; Fri, 2 Jan 2004 17:22:56 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B1B243D41 for ; Fri, 2 Jan 2004 17:22:55 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i031Mt0B060417 for ; Fri, 2 Jan 2004 17:22:55 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i031MtsM060414 for perforce@freebsd.org; Fri, 2 Jan 2004 17:22:55 -0800 (PST) (envelope-from sam@freebsd.org) Date: Fri, 2 Jan 2004 17:22:55 -0800 (PST) Message-Id: <200401030122.i031MtsM060414@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44718 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2004 01:22:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=44718 Change 44718 by sam@sam_ebb on 2004/01/02 17:22:48 protect socket decl with ifdef _KERNEL; user apps can't grok the mutex in the sockbufs Affected files ... .. //depot/projects/netperf+sockets/sys/sys/socketvar.h#8 edit Differences ... ==== //depot/projects/netperf+sockets/sys/sys/socketvar.h#8 (text+ko) ==== @@ -37,6 +37,7 @@ #ifndef _SYS_SOCKETVAR_H_ #define _SYS_SOCKETVAR_H_ +#ifdef _KERNEL #include /* for TAILQ macros */ #include /* for struct selinfo */ #include @@ -152,6 +153,8 @@ #define SOCK_UNLOCK(_so) SOCKBUF_UNLOCK(&(_so)->so_rcv) #define SOCK_LOCK_ASSERT(_so) SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv) +#endif /* _KERNEL */ + /* * Socket state bits. */ @@ -203,6 +206,7 @@ uid_t so_uid; /* XXX */ }; +#ifdef _KERNEL /* * Macros for sockets and socket buffering. */ @@ -328,8 +332,6 @@ sowakeup_locked((so), &(so)->so_snd); \ } while (0) -#ifdef _KERNEL - /* * Argument structure for sosetopt et seq. This is in the KERNEL * section because it will never be visible to user code. From owner-p4-projects@FreeBSD.ORG Sat Jan 3 08:06:33 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A651F16A4D0; Sat, 3 Jan 2004 08:06:33 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C25216A4CE for ; Sat, 3 Jan 2004 08:06:33 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B221543D4C for ; Sat, 3 Jan 2004 08:06:31 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i03G6V0B075057 for ; Sat, 3 Jan 2004 08:06:31 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i03G6VmC075054 for perforce@freebsd.org; Sat, 3 Jan 2004 08:06:31 -0800 (PST) (envelope-from sam@freebsd.org) Date: Sat, 3 Jan 2004 08:06:31 -0800 (PST) Message-Id: <200401031606.i03G6VmC075054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 44738 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jan 2004 16:06:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=44738 Change 44738 by sam@sam_ebb on 2004/01/03 08:06:29 remove unneeded ifdef _KERNEL stuff; the real culprit was a dangling p4 resolve that lost some includes Affected files ... .. //depot/projects/netperf+sockets/sys/sys/socketvar.h#9 edit Differences ... ==== //depot/projects/netperf+sockets/sys/sys/socketvar.h#9 (text+ko) ==== @@ -37,7 +37,6 @@ #ifndef _SYS_SOCKETVAR_H_ #define _SYS_SOCKETVAR_H_ -#ifdef _KERNEL #include /* for TAILQ macros */ #include /* for struct selinfo */ #include @@ -153,8 +152,6 @@ #define SOCK_UNLOCK(_so) SOCKBUF_UNLOCK(&(_so)->so_rcv) #define SOCK_LOCK_ASSERT(_so) SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv) -#endif /* _KERNEL */ - /* * Socket state bits. */