From owner-p4-projects@FreeBSD.ORG Sun Jun 8 10:48:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 548911065671; Sun, 8 Jun 2008 10:48:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16DFE106564A for ; Sun, 8 Jun 2008 10:48:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E47588FC1B for ; Sun, 8 Jun 2008 10:48:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58Amn0m092140 for ; Sun, 8 Jun 2008 10:48:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58AmniS092138 for perforce@freebsd.org; Sun, 8 Jun 2008 10:48:49 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 10:48:49 GMT Message-Id: <200806081048.m58AmniS092138@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143106 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 10:48:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=143106 Change 143106 by hselasky@hselasky_laptop001 on 2008/06/08 10:48:23 Some corrections, compile fixes and optimisations found after review. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#56 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_ural.c#56 (text+ko) ==== @@ -900,7 +900,8 @@ } static void -ural_config_copy_chan(struct ural_config_copy_chan *cc, struct ieee80211_channel *c) +ural_config_copy_chan(struct ural_config_copy_chan *cc, + struct ieee80211com *ic, struct ieee80211_channel *c) { if (!c) return; @@ -943,8 +944,8 @@ ic = ifp->if_l2com; if (ic) { - ural_config_copy_chan(&cc->ic_curchan, ic->ic_curchan); - ural_config_copy_chan(&cc->ic_bsschan, ic->ic_bsschan); + ural_config_copy_chan(&cc->ic_curchan, ic, ic->ic_curchan); + ural_config_copy_chan(&cc->ic_bsschan, ic, ic->ic_bsschan); vap = TAILQ_FIRST(&ic->ic_vaps); if (vap) { ni = vap->iv_bss; @@ -1108,13 +1109,16 @@ if (ni) { /* send the frame to the 802.11 layer */ - ieee80211_input(ni, m, rssi, RAL_NOISE_FLOOR, 0); - + if (ieee80211_input(ni, m, rssi, RAL_NOISE_FLOOR, 0)) { + /* ignore */ + } /* node is no longer needed */ ieee80211_free_node(ni); } else { /* broadcast */ - ieee80211_input_all(ic, m, rssi, RAL_NOISE_FLOOR, 0); + if (ieee80211_input_all(ic, m, rssi, RAL_NOISE_FLOOR, 0)) { + /* ignore */ + } } mtx_lock(&(sc->sc_mtx)); @@ -1311,6 +1315,7 @@ struct ifnet *ifp = sc->sc_ifp; struct mbuf *m; uint16_t temp_len; + uint8_t align; switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: @@ -1347,16 +1352,17 @@ temp_len = m->m_pkthdr.len; /* make transfer length 16-bit aligned */ - if (temp_len & 1) { - /* zero the extra byte */ - usbd_bzero(xfer->frbuffers, temp_len, 1); - temp_len++; + align = (temp_len & 1); + + /* check if we need to add two extra bytes */ + if (((temp_len + align) % 64) == 0) { + align += 2; } - /* check if we need to add two extra bytes */ - if ((temp_len % 64) == 0) { + /* check if we need to align length */ + if (align != 0) { /* zero the extra bytes */ - usbd_bzero(xfer->frbuffers, temp_len, 2); - temp_len += 2; + usbd_bzero(xfer->frbuffers, temp_len, align); + temp_len += align; } DPRINTF(sc, 10, "sending frame len=%u xferlen=%u\n", m->m_pkthdr.len, temp_len); @@ -2570,7 +2576,7 @@ } tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_bsschan)]; - m->m_pkthdr.rcvif = (void *)ni; + m->m_pkthdr.rcvif = (void *)ieee80211_ref_node(ni); ural_setup_desc_and_tx(sc, m, RAL_TX_IFS_NEWBACKOFF | RAL_TX_TIMESTAMP, tp->mgmtrate); return; @@ -2679,7 +2685,7 @@ return; } mprot->m_pkthdr.rcvif = (void *)ieee80211_ref_node(ni); - ural_setup_desc_and_tx(sc, mprot, flags, rate); + ural_setup_desc_and_tx(sc, mprot, flags, protrate); return; } From owner-p4-projects@FreeBSD.ORG Sun Jun 8 10:52:54 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9453E1065672; Sun, 8 Jun 2008 10:52:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 555BB1065670 for ; Sun, 8 Jun 2008 10:52:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D6F78FC19 for ; Sun, 8 Jun 2008 10:52:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58Aqspf092487 for ; Sun, 8 Jun 2008 10:52:54 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58AqsM8092485 for perforce@freebsd.org; Sun, 8 Jun 2008 10:52:54 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 10:52:54 GMT Message-Id: <200806081052.m58AqsM8092485@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143107 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 10:52:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=143107 Change 143107 by hselasky@hselasky_laptop001 on 2008/06/08 10:52:49 Integrate RUM USB WLAN driver @143078 separately, hence there was a ton of changes to integrate after Sam & Co :-) Some small bugs were found and corrected. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_rum.c#29 edit .. //depot/projects/usb/src/sys/dev/usb/if_rumreg.h#5 edit .. //depot/projects/usb/src/sys/dev/usb/if_rumvar.h#6 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_rum.c#29 (text+ko) ==== @@ -1,7 +1,7 @@ /*- * Copyright (c) 2005-2007 Damien Bergamini * Copyright (c) 2006 Niall O'Higgins - * Copyright (c) 2007 Hans Petter Selasky + * Copyright (c) 2007-2008 Hans Petter Selasky * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -22,7 +22,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_rum.c,v 1.23 2008/06/07 18:38:02 sam Exp $"); /*- * Ralink Technology RT2501USB/RT2601USB chipset driver @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -102,15 +103,11 @@ static usbd_config_td_command_t rum_cfg_scan_end; static usbd_config_td_command_t rum_cfg_select_band; static usbd_config_td_command_t rum_cfg_set_chan; -static usbd_config_td_command_t rum_cfg_pre_set_run; -static usbd_config_td_command_t rum_cfg_set_run; static usbd_config_td_command_t rum_cfg_enable_tsf_sync; -static usbd_config_td_command_t rum_cfg_disable_tsf_sync; static usbd_config_td_command_t rum_cfg_enable_mrr; static usbd_config_td_command_t rum_cfg_update_slot; static usbd_config_td_command_t rum_cfg_select_antenna; static usbd_config_td_command_t rum_cfg_set_txpreamble; -static usbd_config_td_command_t rum_cfg_set_basicrates; static usbd_config_td_command_t rum_cfg_update_promisc; static usbd_config_td_command_t rum_cfg_pre_init; static usbd_config_td_command_t rum_cfg_init; @@ -118,26 +115,19 @@ static usbd_config_td_command_t rum_cfg_stop; static usbd_config_td_command_t rum_cfg_amrr_timeout; static usbd_config_td_command_t rum_cfg_prepare_beacon; +static usbd_config_td_command_t rum_cfg_newstate; static const char *rum_get_rf(uint32_t rev); static int rum_ioctl_cb(struct ifnet *ifp, u_long cmd, caddr_t data); -static int rum_media_change_cb(struct ifnet *ifp); -static int rum_newstate_cb(struct ieee80211com *ic, enum ieee80211_state nstate, int arg); -static int rum_reset_cb(struct ifnet *ifp); static void rum_std_command(struct ieee80211com *ic, usbd_config_td_command_t *func); static void rum_scan_start_cb(struct ieee80211com *); static void rum_scan_end_cb(struct ieee80211com *); static void rum_set_channel_cb(struct ieee80211com *); -static uint16_t rum_ack_rate(const struct ieee80211com *ic, uint16_t rate); static uint16_t rum_cfg_eeprom_read_2(struct rum_softc *sc, uint16_t addr); -static uint16_t rum_rxrate(const struct rum_rx_desc *desc); -static uint16_t rum_txtime(struct rum_softc *sc, uint16_t len, uint16_t rate, uint32_t flags); static uint32_t rum_cfg_bbp_disbusy(struct rum_softc *sc); static uint32_t rum_cfg_read(struct rum_softc *sc, uint16_t reg); static uint8_t rum_cfg_bbp_init(struct rum_softc *sc); static uint8_t rum_cfg_bbp_read(struct rum_softc *sc, uint8_t reg); -static uint8_t rum_plcp_signal(uint16_t rate); -static uint8_t rum_bulk_write_callback_sub(struct usbd_xfer *xfer, struct mbuf *m, struct ieee80211_node *ni, uint32_t flags, uint16_t rate); static void rum_cfg_amrr_start(struct rum_softc *sc); static void rum_cfg_bbp_write(struct rum_softc *sc, uint8_t reg, uint8_t val); static void rum_cfg_do_request(struct rum_softc *sc, usb_device_request_t *req, void *data); @@ -152,11 +142,27 @@ static void rum_cfg_write_multi(struct rum_softc *sc, uint16_t reg, void *buf, uint16_t len); static void rum_end_of_commands(struct rum_softc *sc); static void rum_init_cb(void *arg); -static void rum_setup_tx_desc(struct rum_softc *sc, uint32_t flags, uint16_t xflags, uint16_t len, uint16_t rate); static void rum_start_cb(struct ifnet *ifp); static void rum_watchdog(void *arg); +static uint8_t rum_get_rssi(struct rum_softc *sc, uint8_t raw); -static uint8_t rum_get_rssi(struct rum_softc *sc, uint8_t raw); + +static struct ieee80211vap *rum_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); +static void rum_vap_delete(struct ieee80211vap *); +static struct ieee80211_node *rum_node_alloc(struct ieee80211_node_table *); +static void rum_newassoc(struct ieee80211_node *, int); +static void rum_cfg_disable_tsf_sync(struct rum_softc *sc); +static void rum_cfg_set_run(struct rum_softc *sc, struct rum_config_copy *cc); +static void rum_fill_write_queue(struct rum_softc *sc); +static void rum_tx_clean_queue(struct rum_softc *sc); +static void rum_tx_freem(struct mbuf *m); +static void rum_tx_mgt(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni); +static struct ieee80211vap *rum_get_vap(struct rum_softc *sc); +static void rum_tx_data(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni); +static void rum_tx_prot(struct rum_softc *sc, const struct mbuf *m, struct ieee80211_node *ni, uint8_t prot, uint16_t rate); +static void rum_tx_raw(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni, const struct ieee80211_bpf_params *params); +static int rum_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params); +static void rum_setup_desc_and_tx(struct rum_softc *sc, struct mbuf *m, uint32_t flags, uint16_t xflags, uint16_t rate); /* various supported device vendors/products */ static const struct usb_devno rum_devs[] = { @@ -528,8 +534,8 @@ rum_cfg_pre_stop(sc, NULL, 0); - ic = &(sc->sc_ic); - ifp = ic->ic_ifp; + ifp = sc->sc_ifp; + ic = ifp->if_l2com; mtx_unlock(&(sc->sc_mtx)); @@ -749,27 +755,22 @@ rum_cfg_first_time_setup(struct rum_softc *sc, struct rum_config_copy *cc, uint16_t refcount) { - struct ieee80211com *ic = &(sc->sc_ic); + struct ieee80211com *ic; struct ifnet *ifp; uint32_t tmp; - uint32_t bands; uint16_t i; + uint8_t bands; /* setup RX tap header */ - sc->sc_rxtap_len = sizeof(sc->sc_rxtap.h); - sc->sc_rxtap.h.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); - sc->sc_rxtap.h.wr_ihdr.it_present = htole32(RT2573_RX_RADIOTAP_PRESENT); + sc->sc_rxtap_len = sizeof(sc->sc_rxtap); + sc->sc_rxtap.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); + sc->sc_rxtap.wr_ihdr.it_present = htole32(RT2573_RX_RADIOTAP_PRESENT); /* setup TX tap header */ - sc->sc_txtap_len = sizeof(sc->sc_txtap.h); - sc->sc_txtap.h.wt_ihdr.it_len = htole16(sc->sc_txtap_len); - sc->sc_txtap.h.wt_ihdr.it_present = htole32(RT2573_TX_RADIOTAP_PRESENT); + sc->sc_txtap_len = sizeof(sc->sc_txtap); + sc->sc_txtap.wt_ihdr.it_len = htole16(sc->sc_txtap_len); + sc->sc_txtap.wt_ihdr.it_present = htole32(RT2573_TX_RADIOTAP_PRESENT); - /* setup AMRR */ - ieee80211_amrr_init(&sc->sc_amrr, ic, - IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD, - IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD); - /* retrieve RT2573 rev. no */ for (i = 0; i < 100; i++) { @@ -797,7 +798,7 @@ mtx_unlock(&(sc->sc_mtx)); - ifp = if_alloc(IFT_ETHER); + ifp = if_alloc(IFT_IEEE80211); mtx_lock(&(sc->sc_mtx)); @@ -807,6 +808,7 @@ } sc->sc_evilhack = ifp; sc->sc_ifp = ifp; + ic = ifp->if_l2com; ifp->if_softc = sc; if_initname(ifp, "rum", sc->sc_unit); @@ -821,12 +823,11 @@ ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ - ic->ic_opmode = IEEE80211_M_STA;/* default to BSS mode */ - ic->ic_state = IEEE80211_S_INIT; /* set device capabilities */ ic->ic_caps = - IEEE80211_C_IBSS /* IBSS mode supported */ + IEEE80211_C_STA /* station mode supported */ + | IEEE80211_C_IBSS /* IBSS mode supported */ | IEEE80211_C_MONITOR /* monitor mode supported */ | IEEE80211_C_HOSTAP /* HostAp mode supported */ | IEEE80211_C_TXPMGT /* tx power management */ @@ -839,7 +840,7 @@ bands = 0; setbit(&bands, IEEE80211_MODE_11B); setbit(&bands, IEEE80211_MODE_11G); - ieee80211_init_channels(ic, 0, CTRY_DEFAULT, bands, 0, 1); + ieee80211_init_channels(ic, NULL, &bands); if ((sc->sc_rf_rev == RT2573_RF_5225) || (sc->sc_rf_rev == RT2573_RF_5226)) { @@ -878,27 +879,23 @@ mtx_lock(&(sc->sc_mtx)); - /* enable SW bmiss handling in sta mode */ - ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS; + ic->ic_newassoc = &rum_newassoc; + ic->ic_raw_xmit = &rum_raw_xmit_cb; + ic->ic_node_alloc = &rum_node_alloc; - /* overrides */ - sc->sc_newstate = ic->ic_newstate; - ic->ic_newstate = &rum_newstate_cb; -#if 0 - ic->ic_raw_xmit = &rum_raw_xmit_cb; -#endif - ic->ic_reset = &rum_reset_cb; ic->ic_scan_start = &rum_scan_start_cb; ic->ic_scan_end = &rum_scan_end_cb; ic->ic_set_channel = &rum_set_channel_cb; + ic->ic_vap_create = &rum_vap_create; + ic->ic_vap_delete = &rum_vap_delete; + + sc->sc_rates = ieee80211_get_ratetable(ic->ic_curchan); mtx_unlock(&(sc->sc_mtx)); - ieee80211_media_init(ic, rum_media_change_cb, ieee80211_media_status); + bpfattach(ifp, DLT_IEEE802_11_RADIO, + sizeof(struct ieee80211_frame) + sizeof(sc->sc_txtap)); - bpfattach2(ifp, DLT_IEEE802_11_RADIO, - sizeof(struct ieee80211_frame) + 64, &sc->sc_drvbpf); - if (bootverbose) { ieee80211_announce(ic); } @@ -912,10 +909,32 @@ { sc->sc_flags &= ~RUM_FLAG_WAIT_COMMAND; - if ((sc->sc_flags & RUM_FLAG_LL_READY) && - (sc->sc_flags & RUM_FLAG_HL_READY)) { - /* start write transfer, if not started */ - usbd_transfer_start(sc->sc_xfer[0]); + /* start write transfer, if not started */ + usbd_transfer_start(sc->sc_xfer[0]); + return; +} + +static void +rum_config_copy_chan(struct rum_config_copy_chan *cc, + struct ieee80211com *ic, struct ieee80211_channel *c) +{ + if (!c) + return; + cc->chan_to_ieee = + ieee80211_chan2ieee(ic, c); + if (c != IEEE80211_CHAN_ANYC) { + cc->chan_to_mode = + ieee80211_chan2mode(c); + if (IEEE80211_IS_CHAN_B(c)) + cc->chan_is_b = 1; + if (IEEE80211_IS_CHAN_A(c)) + cc->chan_is_a = 1; + if (IEEE80211_IS_CHAN_2GHZ(c)) + cc->chan_is_2ghz = 1; + if (IEEE80211_IS_CHAN_5GHZ(c)) + cc->chan_is_5ghz = 1; + if (IEEE80211_IS_CHAN_ANYG(c)) + cc->chan_is_g = 1; } return; } @@ -924,46 +943,46 @@ rum_config_copy(struct rum_softc *sc, struct rum_config_copy *cc, uint16_t refcount) { - struct ieee80211com *ic = &(sc->sc_ic); - struct ieee80211_channel *c = ic->ic_curchan; - struct ifnet *ifp = ic->ic_ifp; + struct ifnet *ifp; + struct ieee80211com *ic; + struct ieee80211_node *ni; + struct ieee80211vap *vap; + const struct ieee80211_txparam *tp; bzero(cc, sizeof(*cc)); - if (c) { - cc->ic_curchan.chan_to_ieee = ieee80211_chan2ieee(ic, c); - cc->ic_curchan.chan_is_b = IEEE80211_IS_CHAN_B(c) ? 1 : 0; - cc->ic_curchan.chan_is_a = IEEE80211_IS_CHAN_A(c) ? 1 : 0; - if (c != IEEE80211_CHAN_ANYC) { - cc->ic_curchan.chan_is_2ghz = IEEE80211_IS_CHAN_2GHZ(c) ? 1 : 0; - cc->ic_curchan.chan_is_5ghz = IEEE80211_IS_CHAN_5GHZ(c) ? 1 : 0; - } - } - if (ic->ic_bss) { - if ((ic->ic_bss->ni_chan) && - (ic->ic_bss->ni_chan != IEEE80211_CHAN_ANYC)) { - cc->ic_bss.ni_chan.chan_is_5ghz = - IEEE80211_IS_CHAN_5GHZ(ic->ic_bss->ni_chan) ? 1 : 0; - } - cc->ic_bss.ni_intval = ic->ic_bss->ni_intval; - bcopy(ic->ic_bss->ni_bssid, cc->ic_bss.ni_bssid, - sizeof(cc->ic_bss.ni_bssid)); - } - cc->ic_opmode = ic->ic_opmode; - cc->ic_state = ic->ic_state; - cc->ic_flags = ic->ic_flags; - + ifp = sc->sc_ifp; if (ifp) { cc->if_flags = ifp->if_flags; bcopy(ifp->if_broadcastaddr, cc->if_broadcastaddr, sizeof(cc->if_broadcastaddr)); - } - cc->ic_txpowlimit = ic->ic_txpowlimit; - cc->ic_curmode = ic->ic_curmode; - bcopy(ic->ic_myaddr, cc->ic_myaddr, - sizeof(cc->ic_myaddr)); + ic = ifp->if_l2com; + if (ic) { + rum_config_copy_chan(&cc->ic_curchan, ic, ic->ic_curchan); + rum_config_copy_chan(&cc->ic_bsschan, ic, ic->ic_bsschan); + vap = TAILQ_FIRST(&ic->ic_vaps); + if (vap) { + ni = vap->iv_bss; + if (ni) { + cc->iv_bss.ni_intval = ni->ni_intval; + bcopy(ni->ni_bssid, cc->iv_bss.ni_bssid, + sizeof(cc->iv_bss.ni_bssid)); + } + tp = vap->iv_txparms + cc->ic_bsschan.chan_to_mode; + if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) { + cc->iv_bss.fixed_rate_none = 1; + } + } + cc->ic_opmode = ic->ic_opmode; + cc->ic_flags = ic->ic_flags; + cc->ic_txpowlimit = ic->ic_txpowlimit; + cc->ic_curmode = ic->ic_curmode; + bcopy(ic->ic_myaddr, cc->ic_myaddr, + sizeof(cc->ic_myaddr)); + } + } sc->sc_flags |= RUM_FLAG_WAIT_COMMAND; return; } @@ -984,54 +1003,14 @@ } } -/* quickly determine if a given rate is CCK or OFDM */ -#define RUM_RATE_IS_OFDM(rate) (((rate) >= 12) && ((rate) != 22)) - -#define RUM_ACK_SIZE 14 /* 10 + 4(FCS) */ -#define RUM_CTS_SIZE 14 /* 10 + 4(FCS) */ - -static uint16_t -rum_rxrate(const struct rum_rx_desc *desc) -{ - if (le32toh(desc->flags) & RT2573_RX_OFDM) { - /* reverse function of "rum_plcp_signal()" */ - switch (desc->rate) { - case 0xb:return (12); - case 0xf: - return (18); - case 0xa: - return (24); - case 0xe: - return (36); - case 0x9: - return (48); - case 0xd: - return (72); - case 0x8: - return (96); - case 0xc: - return (108); - } - } else { - if (desc->rate == 10) - return (2); - if (desc->rate == 20) - return (4); - if (desc->rate == 55) - return (11); - if (desc->rate == 110) - return (22); - } - return (2); /* should not get here */ -} - static void rum_bulk_read_callback(struct usbd_xfer *xfer) { struct rum_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = ic->ic_ifp; - struct ieee80211_node *ni = NULL; + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + struct ieee80211_node *ni; + struct mbuf *m = NULL; uint32_t flags; uint32_t max_len; @@ -1092,20 +1071,20 @@ DPRINTF(sc, 0, "real length=%d bytes, rssi=%d\n", m->m_len, rssi); - if (bpf_peers_present(sc->sc_drvbpf)) { - struct rum_rx_radiotap_header *tap = &(sc->sc_rxtap.h); + if (bpf_peers_present(ifp->if_bpf)) { + struct rum_rx_radiotap_header *tap = &(sc->sc_rxtap); tap->wr_flags = IEEE80211_RADIOTAP_F_FCS; - tap->wr_rate = rum_rxrate(&sc->sc_rx_desc); + tap->wr_rate = ieee80211_plcp2rate(sc->sc_rx_desc.rate, + (sc->sc_rx_desc.flags & htole32(RT2573_RX_OFDM)) ? + IEEE80211_T_OFDM : IEEE80211_T_CCK); tap->wr_chan_freq = htole16(ic->ic_curchan->ic_freq); tap->wr_chan_flags = htole16(ic->ic_curchan->ic_flags); tap->wr_antenna = sc->sc_rx_ant; tap->wr_antsignal = rssi; - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m); + bpf_mtap2(ifp->if_bpf, tap, sc->sc_rxtap_len, m); } - ni = ieee80211_find_rxnode(ic, (void *)(m->m_data)); - case USBD_ST_SETUP: tr_setup: @@ -1124,11 +1103,17 @@ if (m) { mtx_unlock(&(sc->sc_mtx)); - /* send the frame to the 802.11 layer */ - ieee80211_input(ic, m, ni, rssi, RT2573_NOISE_FLOOR, 0); - - mtx_lock(&(sc->sc_mtx)); - + ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *)); + if (ni != NULL) { + if (ieee80211_input(ni, m, rssi, RT2573_NOISE_FLOOR, 0)) { + /* ignore */ + } + ieee80211_free_node(ni); + } else { + if (ieee80211_input_all(ic, m, rssi, RT2573_NOISE_FLOOR, 0)) { + /* ignore */ + } + } /* node is no longer needed */ ieee80211_free_node(ni); } @@ -1159,76 +1144,14 @@ return; } -/* - * Return the expected ack rate for a frame transmitted at rate "rate". - */ -static uint16_t -rum_ack_rate(const struct ieee80211com *ic, uint16_t rate) -{ - switch (rate) { - /* CCK rates */ - case 2: - return (2); - case 4: - case 11: - case 22: - return (ic->ic_curmode == IEEE80211_MODE_11B) ? 4 : rate; - - /* OFDM rates */ - case 12: - case 18: - return (12); - case 24: - case 36: - return (24); - case 48: - case 72: - case 96: - case 108: - return (48); - } - - /* default to 1Mbps */ - return (2); -} - -/* - * Compute the duration (in us) needed to transmit "len" bytes at rate "rate". - * The function automatically determines the operating mode depending on the - * given rate. "flags" indicates whether short preamble is in use or not. - */ -static uint16_t -rum_txtime(struct rum_softc *sc, uint16_t len, uint16_t rate, uint32_t flags) -{ - uint16_t txtime; - - if (rate < 2) { - DPRINTF(sc, 0, "rate < 2!\n"); - - /* avoid division by zero */ - rate = 2; - } - if (RUM_RATE_IS_OFDM(rate)) { - /* IEEE Std 802.11a-1999, pp. 37 */ - txtime = (8 + (4 * len) + 3 + rate - 1) / rate; - txtime = 16 + 4 + (4 * txtime) + 6; - } else { - /* IEEE Std 802.11b-1999, pp. 28 */ - txtime = ((16 * len) + rate - 1) / rate; - if ((rate != 2) && (flags & IEEE80211_F_SHPREAMBLE)) - txtime += 72 + 24; - else - txtime += 144 + 48; - } - return (txtime); -} - static uint8_t rum_plcp_signal(uint16_t rate) { + ; /* indent fix */ switch (rate) { - /* CCK rates (returned values are device-dependent) */ - case 2:return (0x0); + /* CCK rates (NB: not IEEE std, device-specific) */ + case 2: + return (0x0); case 4: return (0x1); case 11: @@ -1254,26 +1177,70 @@ case 108: return (0xc); - /* unsupported rates (should not get there) */ + /* XXX unsupported/unknown rate */ default: return (0xff); } } +/* + * We assume that "m->m_pkthdr.rcvif" is pointing to the "ni" that + * should be freed, when "rum_setup_desc_and_tx" is called. + */ + static void -rum_setup_tx_desc(struct rum_softc *sc, uint32_t flags, uint16_t xflags, - uint16_t len, uint16_t rate) +rum_setup_desc_and_tx(struct rum_softc *sc, struct mbuf *m, uint32_t flags, + uint16_t xflags, uint16_t rate) { - struct ieee80211com *ic = &(sc->sc_ic); + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + struct mbuf *mm; + enum ieee80211_phytype phytype; uint16_t plcp_length; + uint16_t len; uint8_t remainder; + uint8_t is_beacon; + + if (xflags & RT2573_TX_BEACON) { + xflags &= ~RT2573_TX_BEACON; + is_beacon = 1; + } else { + is_beacon = 0; + } + if (sc->sc_tx_queue.ifq_len >= IFQ_MAXLEN) { + /* free packet */ + rum_tx_freem(m); + ifp->if_oerrors++; + return; + } + if (!((sc->sc_flags & RUM_FLAG_LL_READY) && + (sc->sc_flags & RUM_FLAG_HL_READY))) { + /* free packet */ + rum_tx_freem(m); + ifp->if_oerrors++; + return; + } if (rate < 2) { DPRINTF(sc, 0, "rate < 2!\n"); /* avoid division by zero */ rate = 2; } + ic->ic_lastdata = ticks; + if (bpf_peers_present(ifp->if_bpf)) { + struct rum_tx_radiotap_header *tap = &(sc->sc_txtap); + + tap->wt_flags = 0; + tap->wt_rate = rate; + tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq); + tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags); + tap->wt_antenna = sc->sc_tx_ant; + + bpf_mtap2(ifp->if_bpf, tap, sc->sc_txtap_len, m); + } + len = m->m_pkthdr.len; + flags |= RT2573_TX_VALID; flags |= (len << 16); @@ -1289,7 +1256,9 @@ len += IEEE80211_CRC_LEN; - if (RUM_RATE_IS_OFDM(rate)) { + phytype = ieee80211_rate2phytype(sc->sc_rates, rate); + + if (phytype == IEEE80211_T_OFDM) { sc->sc_tx_desc.flags |= htole32(RT2573_TX_OFDM); plcp_length = (len & 0xfff); @@ -1311,150 +1280,54 @@ sc->sc_tx_desc.plcp_signal |= 0x08; } } - return; -} -/*------------------------------------------------------------------------* - * rum_bulk_write_callback_sub - * - * Returns: - * 0: Success - * Else: Failure - *------------------------------------------------------------------------*/ -static uint8_t -rum_bulk_write_callback_sub(struct usbd_xfer *xfer, struct mbuf *m, - struct ieee80211_node *ni, uint32_t flags, uint16_t rate) -{ - struct rum_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ieee80211_frame *wh; - struct ieee80211_key *k; - uint32_t temp_len; - uint16_t dur; - uint8_t align; - uint8_t type; - uint8_t sub_type; - - wh = mtod(m, struct ieee80211_frame *); - - if (wh->i_fc[1] & IEEE80211_FC1_WEP) { - k = ieee80211_crypto_encap(ic, ni, m); - if (k == NULL) { - return (1); - } - /* - * packet header may have moved, reset our - * local pointer - */ - wh = mtod(m, struct ieee80211_frame *); + if (sizeof(sc->sc_tx_desc) > MHLEN) { + DPRINTF(sc, 0, "No room for header structure!\n"); + rum_tx_freem(m); + return; + } + mm = m_gethdr(M_NOWAIT, MT_DATA); + if (mm == NULL) { + DPRINTF(sc, 0, "Could not allocate header mbuf!\n"); + rum_tx_freem(m); + return; } - if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { + bcopy(&(sc->sc_tx_desc), mm->m_data, sizeof(sc->sc_tx_desc)); + mm->m_len = sizeof(sc->sc_tx_desc); + mm->m_next = m; + mm->m_pkthdr.len = mm->m_len + m->m_pkthdr.len; + mm->m_pkthdr.rcvif = NULL; - type = (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK); - sub_type = (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); + if (is_beacon) { - if (type == IEEE80211_FC0_TYPE_DATA) { - - flags |= (RT2573_TX_NEED_ACK | - RT2573_TX_MORE_FRAG); - - dur = rum_txtime(sc, RUM_ACK_SIZE, rum_ack_rate(ic, rate), - ic->ic_flags) + sc->sc_sifs; - - USETW(wh->i_dur, dur); - - } else if ((type == IEEE80211_FC0_TYPE_MGT) && - (sub_type == IEEE80211_FC0_SUBTYPE_BEACON)) { - - /* do nothing */ - - } else { - - flags |= RT2573_TX_NEED_ACK; - - dur = rum_txtime(sc, RUM_ACK_SIZE, rum_ack_rate(ic, rate), - ic->ic_flags) + sc->sc_sifs; - - USETW(wh->i_dur, dur); - - /* - * tell hardware to add timestamp for probe - * responses - */ - if ((type == IEEE80211_FC0_TYPE_MGT) && - (sub_type == IEEE80211_FC0_SUBTYPE_PROBE_RESP)) { - flags |= RT2573_TX_TIMESTAMP; - } + if (mm->m_pkthdr.len > sizeof(sc->sc_beacon_buf)) { + DPRINTF(sc, -1, "Truncating beacon" + ", %u bytes!\n", mm->m_pkthdr.len); + mm->m_pkthdr.len = sizeof(sc->sc_beacon_buf); } - } - ic->ic_lastdata = ticks; + m_copydata(mm, 0, mm->m_pkthdr.len, sc->sc_beacon_buf); - if (m->m_pkthdr.len > MCLBYTES) { - DPRINTF(sc, 0, "data overflow, %u bytes\n", - m->m_pkthdr.len); - m->m_pkthdr.len = MCLBYTES; + /* copy the first 24 bytes of Tx descriptor into NIC memory */ + rum_cfg_write_multi(sc, RT2573_HW_BEACON_BASE0, + sc->sc_beacon_buf, mm->m_pkthdr.len); + rum_tx_freem(mm); + return; } - if (bpf_peers_present(sc->sc_drvbpf)) { - struct rum_tx_radiotap_header *tap = &(sc->sc_txtap.h); + /* start write transfer, if not started */ + _IF_ENQUEUE(&(sc->sc_tx_queue), mm); - tap->wt_flags = 0; - tap->wt_rate = rate; - tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq); - tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags); - tap->wt_antenna = sc->sc_tx_ant; - - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m); - } - rum_setup_tx_desc(sc, flags, 0, m->m_pkthdr.len, rate); - - usbd_copy_in(xfer->frbuffers, 0, &(sc->sc_tx_desc), - RT2573_TX_DESC_SIZE); - - usbd_m_copy_in(xfer->frbuffers, RT2573_TX_DESC_SIZE, - m, 0, m->m_pkthdr.len); - - /* compute transfer length */ - temp_len = (RT2573_TX_DESC_SIZE + m->m_pkthdr.len); - - /* make transfer length 32-bit aligned */ - if (temp_len & 3) { - align = (-(temp_len)) & 3; - /* zero the extra byte(s) */ - usbd_bzero(xfer->frbuffers, temp_len, align); - temp_len += align; - } - /* check if we need to add four extra bytes */ - if ((temp_len % 64) == 0) { - /* zero the extra bytes */ - usbd_bzero(xfer->frbuffers, temp_len, 4); - temp_len += 4; - } - DPRINTF(sc, 10, "sending frame len=%u rate=%u xferlen=%u\n", - m->m_pkthdr.len, rate, temp_len); - - if (m->m_flags & M_TXCB) { - ieee80211_process_callback(ni, m, 0); - } - m_freem(m); - - if (ni) { - ieee80211_free_node(ni); - } - xfer->frlengths[0] = temp_len; - usbd_start_hardware(xfer); - return (0); + usbd_transfer_start(sc->sc_xfer[0]); + return; } static void rum_bulk_write_callback(struct usbd_xfer *xfer) { struct rum_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = sc->sc_ic.ic_ifp; - struct ieee80211_node *ni = NULL; - struct ether_header *eh; - struct mbuf *m = NULL; - uint16_t rate; + struct ifnet *ifp = sc->sc_ifp; + struct mbuf *m; + uint16_t temp_len; + uint8_t align; switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: @@ -1463,101 +1336,58 @@ ifp->if_opackets++; case USBD_ST_SETUP: -tr_setup: if (sc->sc_flags & RUM_FLAG_WRITE_STALL) { usbd_transfer_start(sc->sc_xfer[2]); - goto done; + break; } if (sc->sc_flags & RUM_FLAG_WAIT_COMMAND) { /* * don't send anything while a command is pending ! */ - goto done; + break; } - IF_DEQUEUE(&(ic->ic_mgtq), m); + rum_fill_write_queue(sc); - if (m) { - - ni = (void *)(m->m_pkthdr.rcvif); - m->m_pkthdr.rcvif = NULL; - - if (bpf_peers_present(ic->ic_rawbpf)) { - bpf_mtap(ic->ic_rawbpf, m); - } - rate = (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan) ? 12 : 2); - - if (rum_bulk_write_callback_sub(xfer, m, ni, 0, rate)) { - goto error; - } - goto done; - } - if (ic->ic_state != IEEE80211_S_RUN) { - goto done; - } - IFQ_DRV_DEQUEUE(&ifp->if_snd, m); + _IF_DEQUEUE(&(sc->sc_tx_queue), m); if (m) { - /* - * Cancel any background scan. - */ - if (ic->ic_flags & IEEE80211_F_SCAN) { - ieee80211_cancel_scan(ic); + if (m->m_pkthdr.len > (MCLBYTES + RT2573_TX_DESC_SIZE)) { + DPRINTF(sc, -1, "data overflow, %u bytes\n", + m->m_pkthdr.len); + m->m_pkthdr.len = (MCLBYTES + RT2573_TX_DESC_SIZE); } - if (m->m_len < sizeof(struct ether_header)) { - m = m_pullup(m, sizeof(struct ether_header)); + usbd_m_copy_in(xfer->frbuffers, 0, + m, 0, m->m_pkthdr.len); - if (m == NULL) { - goto error; - } - } - eh = mtod(m, struct ether_header *); - ni = ieee80211_find_txnode(ic, eh->ether_dhost); - if (ni == NULL) { - goto error; - } - BPF_MTAP(ifp, m); + /* compute transfer length */ + temp_len = m->m_pkthdr.len; - m = ieee80211_encap(ic, m, ni); + /* make transfer length 32-bit aligned */ + align = (-(temp_len)) & 3; - if (m == NULL) { - goto error; + /* check if we need to add four extra bytes */ + if (((temp_len + align) % 64) == 0) { + align += 4; } - if (bpf_peers_present(ic->ic_rawbpf)) { - bpf_mtap(ic->ic_rawbpf, m); + /* check if we need to align length */ + if (align != 0) { + /* zero the extra bytes */ + usbd_bzero(xfer->frbuffers, temp_len, align); + temp_len += align; } - if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) - rate = ic->ic_fixed_rate; - else - rate = ni->ni_rates.rs_rates[ni->ni_txrate]; + DPRINTF(sc, 10, "sending frame len=%u ferlen=%u\n", + m->m_pkthdr.len, temp_len); - rate &= IEEE80211_RATE_VAL; + xfer->frlengths[0] = temp_len; + usbd_start_hardware(xfer); - if (rum_bulk_write_callback_sub(xfer, m, ni, 0, rate)) { - goto error; - } - goto done; - } -done: - return; + /* free mbuf and node */ + rum_tx_freem(m); -error: - if (m) { - - if (m->m_flags & M_TXCB) { - ieee80211_process_callback(ni, m, 0); - } - m_freem(m); - m = NULL; } - if (ni) { - ieee80211_free_node(ni); - ni = NULL; - } - ifp->if_oerrors++; + break; - goto tr_setup; - default: /* Error */ DPRINTF(sc, 10, "transfer error, %s\n", usbd_errstr(xfer->error)); @@ -1568,10 +1398,9 @@ usbd_transfer_start(sc->sc_xfer[2]); } ifp->if_oerrors++; - return; - - + break; } + return; } static void @@ -1595,12 +1424,7 @@ mtx_assert(&(sc->sc_mtx), MA_OWNED); - if ((sc->sc_amrr_timer) && - (--sc->sc_amrr_timer == 0)) { - - /* restart timeout */ - sc->sc_amrr_timer = 1; - + if (sc->sc_amrr_timer) { usbd_config_td_queue_command (&(sc->sc_config_td), NULL, &rum_cfg_amrr_timeout, 0, 0); @@ -1631,14 +1455,13 @@ rum_ioctl_cb(struct ifnet *ifp, u_long cmd, caddr_t data) { struct rum_softc *sc = ifp->if_softc; - struct ieee80211com *ic = &(sc->sc_ic); + struct ieee80211com *ic = ifp->if_l2com; int error = 0; - mtx_lock(&(sc->sc_mtx)); - switch (cmd) { case SIOCSIFFLAGS: + mtx_lock(&(sc->sc_mtx)); if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING) { usbd_config_td_queue_command @@ -1656,30 +1479,20 @@ &rum_cfg_stop, 0, 0); } } + mtx_unlock(&(sc->sc_mtx)); + break; + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 8 11:09:11 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A61A106567F; Sun, 8 Jun 2008 11:09:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C016C1065672 for ; Sun, 8 Jun 2008 11:09:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 984278FC18 for ; Sun, 8 Jun 2008 11:09:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58B9AgO095002 for ; Sun, 8 Jun 2008 11:09:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58B9AQL095000 for perforce@freebsd.org; Sun, 8 Jun 2008 11:09:10 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 11:09:10 GMT Message-Id: <200806081109.m58B9AQL095000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143108 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 11:09:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=143108 Change 143108 by hselasky@hselasky_laptop001 on 2008/06/08 11:08:18 Style changes. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_rum.c#30 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_rum.c#30 (text+ko) ==== @@ -145,8 +145,6 @@ static void rum_start_cb(struct ifnet *ifp); static void rum_watchdog(void *arg); static uint8_t rum_get_rssi(struct rum_softc *sc, uint8_t raw); - - static struct ieee80211vap *rum_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void rum_vap_delete(struct ieee80211vap *); static struct ieee80211_node *rum_node_alloc(struct ieee80211_node_table *); @@ -990,8 +988,10 @@ static const char * rum_get_rf(uint32_t rev) { + ; /* indent fix */ switch (rev) { - case RT2573_RF_2527:return "RT2527 (MIMO XR)"; + case RT2573_RF_2527: + return "RT2527 (MIMO XR)"; case RT2573_RF_2528: return "RT2528"; case RT2573_RF_5225: @@ -2012,9 +2012,9 @@ rx_ant = sc->sc_rx_ant; is_5ghz = cc->ic_curchan.chan_is_5ghz; - if ((sc->sc_rf_rev == RT2573_RF_5226) || - (sc->sc_rf_rev == RT2573_RF_5225)) { - + switch (sc->sc_rf_rev) { + case RT2573_RF_5226: + case RT2573_RF_5225: if (rx_ant == 0) { /* Diversity */ bbp4 |= 0x02; @@ -2035,9 +2035,10 @@ else bbp77 &= ~0x03; } - } else if ((sc->sc_rf_rev == RT2573_RF_2528) || - (sc->sc_rf_rev == RT2573_RF_2527)) { + break; + case RT2573_RF_2528: + case RT2573_RF_2527: if (rx_ant == 0) { /* Diversity */ bbp4 |= 0x22; @@ -2050,6 +2051,9 @@ bbp4 |= 0x21; bbp77 &= ~0x03; } + break; + default: + break; } bbp4 &= ~(sc->sc_ftype << 5); From owner-p4-projects@FreeBSD.ORG Sun Jun 8 14:41:47 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47DC61065670; Sun, 8 Jun 2008 14:41:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0985A106566B for ; Sun, 8 Jun 2008 14:41:47 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E25488FC12 for ; Sun, 8 Jun 2008 14:41:46 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58EfkRG031847 for ; Sun, 8 Jun 2008 14:41:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58Efkdv031845 for perforce@freebsd.org; Sun, 8 Jun 2008 14:41:46 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 14:41:46 GMT Message-Id: <200806081441.m58Efkdv031845@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143118 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 14:41:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=143118 Change 143118 by hselasky@hselasky_laptop001 on 2008/06/08 14:41:43 Integrate ZYD USB WLAN driver @143078 separately, hence there was a ton of changes to integrate after Sam & Co :-) Some small bugs were found and corrected, for example some places the IEEE802.11 node was not freed when an error occurred, though the associated mbuf was freed. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_zyd.c#38 edit .. //depot/projects/usb/src/sys/dev/usb/if_zydreg.h#15 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_zyd.c#38 (text+ko) ==== @@ -1,6 +1,6 @@ /* $OpenBSD: if_zyd.c,v 1.52 2007/02/11 00:08:04 jsg Exp $ */ /* $NetBSD: if_zyd.c,v 1.7 2007/06/21 04:04:29 kiyohara Exp $ */ -/* $FreeBSD: src/sys/dev/usb/if_zyd.c,v 1.11 2007/12/01 08:53:03 kevlo Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_zyd.c,v 1.18 2008/06/07 18:38:02 sam Exp $ */ /*- * Copyright (c) 2006 by Damien Bergamini @@ -20,7 +20,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_zyd.c $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_zyd.c,v 1.18 2008/06/07 18:38:02 sam Exp $"); /* * ZyDAS ZD1211/ZD1211B USB WLAN driver @@ -52,6 +52,7 @@ #include #include #include +#include #define usbd_config_td_cc zyd_config_copy #define usbd_config_td_softc zyd_softc @@ -77,18 +78,12 @@ SYSCTL_INT(_hw_usb_zyd, OID_AUTO, debug, CTLFLAG_RW, &zyd_debug, 0, "zyd debug level"); #else -#define DPRINTF(...) +#define DPRINTF(...) do { } while (0) #endif #undef INDEXES #define INDEXES(a) (sizeof(a) / sizeof((a)[0])) -struct mq { /* mini-queue */ - struct mbuf *ifq_head; - struct mbuf *ifq_tail; - uint16_t ifq_len; -}; - static device_probe_t zyd_probe; static device_attach_t zyd_attach; static device_detach_t zyd_detach; @@ -103,7 +98,6 @@ static usbd_callback_t zyd_bulk_write_callback; static usbd_config_td_command_t zyd_cfg_first_time_setup; -static usbd_config_td_command_t zyd_cfg_set_run; static usbd_config_td_command_t zyd_cfg_update_promisc; static usbd_config_td_command_t zyd_cfg_set_chan; static usbd_config_td_command_t zyd_cfg_pre_init; @@ -117,7 +111,6 @@ static usbd_config_td_command_t zyd_cfg_amrr_timeout; static uint8_t zyd_plcp2ieee(uint8_t signal, uint8_t isofdm); -static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211_node_table *nt); static void zyd_cfg_usbrequest(struct zyd_softc *sc, usb_device_request_t *req, uint8_t *data); static void zyd_cfg_usb_intr_read(struct zyd_softc *sc, void *data, uint32_t size); static void zyd_cfg_usb_intr_write(struct zyd_softc *sc, const void *data, uint16_t code, uint32_t size); @@ -143,9 +136,6 @@ static void zyd_cfg_set_mac_addr(struct zyd_softc *sc, const uint8_t *addr); static void zyd_cfg_switch_radio(struct zyd_softc *sc, uint8_t onoff); static void zyd_cfg_set_bssid(struct zyd_softc *sc, uint8_t *addr); -static int zyd_media_change_cb(struct ifnet *ifp); -static int zyd_newstate_cb(struct ieee80211com *ic, enum ieee80211_state nstate, int arg); -static uint8_t zyd_plcp_signal(uint8_t rate); static void zyd_start_transfers(struct zyd_softc *sc); static void zyd_start_cb(struct ifnet *ifp); static void zyd_init_cb(void *arg); @@ -157,6 +147,21 @@ static void zyd_scan_end_cb(struct ieee80211com *ic); static void zyd_set_channel_cb(struct ieee80211com *ic); static void zyd_cfg_set_led(struct zyd_softc *sc, uint32_t which, uint8_t on); +static struct ieee80211vap *zyd_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); +static void zyd_vap_delete(struct ieee80211vap *); +static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211_node_table *); +static void zyd_cfg_set_run(struct zyd_softc *sc, struct zyd_config_copy *cc); +static void zyd_fill_write_queue(struct zyd_softc *sc); +static void zyd_tx_clean_queue(struct zyd_softc *sc); +static void zyd_tx_freem(struct mbuf *m); +static void zyd_tx_mgt(struct zyd_softc *sc, struct mbuf *m, struct ieee80211_node *ni); +static struct ieee80211vap *zyd_get_vap(struct zyd_softc *sc); +static void zyd_tx_data(struct zyd_softc *sc, struct mbuf *m, struct ieee80211_node *ni); +static int zyd_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params); +static void zyd_setup_desc_and_tx(struct zyd_softc *sc, struct mbuf *m, uint16_t rate); +static int zyd_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg); +static void zyd_cfg_amrr_start(struct zyd_softc *sc); +static void zyd_update_mcast(struct ifnet *ifp); static const struct zyd_phy_pair zyd_def_phy[] = ZYD_DEF_PHY; static const struct zyd_phy_pair zyd_def_phyB[] = ZYD_DEF_PHYB; @@ -346,16 +351,6 @@ } } -/* ARGUSED */ -static struct ieee80211_node * -zyd_node_alloc_cb(struct ieee80211_node_table *nt __unused) -{ - struct zyd_node *zn; - - zn = malloc(sizeof(struct zyd_node), M_80211_NODE, M_WAITOK | M_ZERO); - return ((zn != NULL) ? (&zn->ni) : NULL); -} - /* * USB request basic wrapper */ @@ -461,8 +456,8 @@ handle_notif_retrystatus:{ struct zyd_notif_retry *retry = (void *)(cmd->data); - struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = sc->sc_ifp; + struct ieee80211vap *vap; struct ieee80211_node *ni; DPRINTF(sc, 0, "retry intr: rate=0x%x " @@ -472,21 +467,21 @@ retry->macaddr[5], le16toh(retry->count) & 0xff, le16toh(retry->count)); - /* - * Find the node to which the packet was sent and update its - * retry statistics. In BSS mode, this node is the AP we're - * associated to so no lookup is actually needed. - */ - if (ic->ic_opmode != IEEE80211_M_STA) { - ni = ieee80211_find_node(&ic->ic_sta, retry->macaddr); - } else { - ni = ic->ic_bss; + vap = zyd_get_vap(sc); + if ((vap != NULL) && (sc->sc_amrr_timer)) { + /* + * Find the node to which the packet was sent + * and update its retry statistics. In BSS + * mode, this node is the AP we're associated + * to so no lookup is actually needed. + */ + ni = ieee80211_find_txnode(vap, retry->macaddr); + if (ni != NULL) { + ieee80211_amrr_tx_complete(&ZYD_NODE(ni)->amn, + IEEE80211_AMRR_FAILURE, 1); + ieee80211_free_node(ni); + } } - if (ni == NULL) { - goto tr_setup; - } - ((struct zyd_node *)ni)->amn.amn_retrycnt++; - if (retry->count & htole16(0x100)) { ifp->if_oerrors++; /* too many retries */ } @@ -800,7 +795,7 @@ } static void -zyd_bulk_read_callback_sub(struct usbd_xfer *xfer, struct mq *mq, +zyd_bulk_read_callback_sub(struct usbd_xfer *xfer, struct zyd_ifq *mq, uint32_t offset, uint16_t len) { enum { @@ -853,7 +848,7 @@ usbd_copy_out(xfer->frbuffers, offset + sizeof(plcp), m->m_data, len); - if (bpf_peers_present(sc->sc_drvbpf)) { + if (bpf_peers_present(ifp->if_bpf)) { struct zyd_rx_radiotap_header *tap = &sc->sc_rxtap; tap->wr_flags = 0; @@ -867,7 +862,7 @@ tap->wr_antsignal = stat.rssi + -95; tap->wr_antnoise = -95; /* XXX */ - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m); + bpf_mtap2(ifp->if_bpf, tap, sc->sc_rxtap_len, m); } if (sizeof(m->m_hdr.pad) > 0) { m->m_hdr.pad[0] = stat.rssi; /* XXX hack */ @@ -881,16 +876,17 @@ zyd_bulk_read_callback(struct usbd_xfer *xfer) { struct zyd_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = ic->ic_ifp; + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; struct ieee80211_node *ni; struct zyd_rx_desc rx_desc; - struct mq mq = {NULL, NULL, 0}; + struct zyd_ifq mq = {NULL, NULL, 0}; struct mbuf *m; uint32_t offset; uint16_t len16; uint8_t x; uint8_t rssi; + int8_t nf; switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: @@ -964,12 +960,20 @@ rssi = m->m_hdr.pad[0]; /* XXX hack */ - ni = ieee80211_find_rxnode(ic, mtod(m, void *)); - ieee80211_input(ic, m, ni, (rssi > 63) ? - 127 : (2 * rssi), -95 /* XXX */ , 0); + rssi = (rssi > 63) ? 127 : 2 * rssi; + nf = -95; /* XXX */ - /* node is no longer needed */ - ieee80211_free_node(ni); + ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *)); + if (ni != NULL) { + if (ieee80211_input(ni, m, rssi, nf, 0)) { + /* ignore */ + } + ieee80211_free_node(ni); + } else { + if (ieee80211_input_all(ic, m, rssi, nf, 0)) { + /* ignore */ + } + } } mtx_lock(&(sc->sc_mtx)); @@ -1904,13 +1908,23 @@ zyd_cfg_first_time_setup(struct zyd_softc *sc, struct zyd_config_copy *cc, uint16_t refcount) { - struct ieee80211com *ic = &sc->sc_ic; + struct ieee80211com *ic; struct ifnet *ifp; const uint8_t *fw_ptr; uint32_t fw_len; - uint32_t bands; + uint8_t bands; usbd_status_t err; + /* setup RX tap header */ + sc->sc_rxtap_len = sizeof(sc->sc_rxtap); + sc->sc_rxtap.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); + sc->sc_rxtap.wr_ihdr.it_present = htole32(ZYD_RX_RADIOTAP_PRESENT); + + /* setup TX tap header */ + sc->sc_txtap_len = sizeof(sc->sc_txtap); + sc->sc_txtap.wt_ihdr.it_len = htole16(sc->sc_txtap_len); + sc->sc_txtap.wt_ihdr.it_present = htole32(ZYD_TX_RADIOTAP_PRESENT); + if (sc->sc_mac_rev == ZYD_ZD1211) { fw_ptr = zd1211_firmware; fw_len = sizeof(zd1211_firmware); @@ -1953,7 +1967,7 @@ mtx_unlock(&(sc->sc_mtx)); - ifp = if_alloc(IFT_ETHER); + ifp = if_alloc(IFT_IEEE80211); mtx_lock(&(sc->sc_mtx)); @@ -1964,6 +1978,7 @@ } sc->sc_evilhack = ifp; sc->sc_ifp = ifp; + ic = ifp->if_l2com; ifp->if_softc = sc; if_initname(ifp, "zyd", sc->sc_unit); @@ -1980,11 +1995,11 @@ ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; ic->ic_opmode = IEEE80211_M_STA; - ic->ic_state = IEEE80211_S_INIT; /* Set device capabilities */ ic->ic_caps = - IEEE80211_C_MONITOR /* monitor mode */ + IEEE80211_C_STA /* station mode supported */ + | IEEE80211_C_MONITOR /* monitor mode */ | IEEE80211_C_SHPREAMBLE /* short preamble supported */ | IEEE80211_C_SHSLOT /* short slot time supported */ | IEEE80211_C_BGSCAN /* capable of bg scanning */ @@ -1994,7 +2009,7 @@ bands = 0; setbit(&bands, IEEE80211_MODE_11B); setbit(&bands, IEEE80211_MODE_11G); - ieee80211_init_channels(ic, 0, CTRY_DEFAULT, bands, 0, 1); + ieee80211_init_channels(ic, NULL, &bands); mtx_unlock(&(sc->sc_mtx)); @@ -2003,42 +2018,26 @@ mtx_lock(&(sc->sc_mtx)); ic->ic_node_alloc = &zyd_node_alloc_cb; + ic->ic_raw_xmit = &zyd_raw_xmit_cb; ic->ic_newassoc = &zyd_newassoc_cb; - /* enable s/w bmiss handling in sta mode */ - ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS; ic->ic_scan_start = &zyd_scan_start_cb; ic->ic_scan_end = &zyd_scan_end_cb; ic->ic_set_channel = &zyd_set_channel_cb; + ic->ic_vap_create = &zyd_vap_create; + ic->ic_vap_delete = &zyd_vap_delete; + ic->ic_update_mcast = zyd_update_mcast; - /* override state transition machine */ - sc->sc_newstate = ic->ic_newstate; - ic->ic_newstate = &zyd_newstate_cb; + sc->sc_rates = ieee80211_get_ratetable(ic->ic_curchan); mtx_unlock(&(sc->sc_mtx)); - /* setup ifmedia interface */ - ieee80211_media_init(ic, &zyd_media_change_cb, &ieee80211_media_status); - - /* setup automatic rate adjustment */ - ieee80211_amrr_init(&sc->sc_amrr, ic, - IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD, - IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD); - - bpfattach2(ifp, DLT_IEEE802_11_RADIO, + bpfattach(ifp, DLT_IEEE802_11_RADIO, sizeof(struct ieee80211_frame) + - sizeof(sc->sc_txtap), &sc->sc_drvbpf); + sizeof(sc->sc_txtap)); mtx_lock(&(sc->sc_mtx)); - sc->sc_rxtap_len = sizeof(sc->sc_rxtap); - sc->sc_rxtap.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); - sc->sc_rxtap.wr_ihdr.it_present = htole32(ZYD_RX_RADIOTAP_PRESENT); - - sc->sc_txtap_len = sizeof(sc->sc_txtap); - sc->sc_txtap.wt_ihdr.it_len = htole16(sc->sc_txtap_len); - sc->sc_txtap.wt_ihdr.it_present = htole32(ZYD_TX_RADIOTAP_PRESENT); - if (bootverbose) { ieee80211_announce(ic); } @@ -2065,8 +2064,8 @@ zyd_cfg_pre_stop(sc, NULL, 0); - ic = &(sc->sc_ic); - ifp = ic->ic_ifp; + ifp = sc->sc_ifp; + ic = ifp->if_l2com; mtx_unlock(&(sc->sc_mtx)); @@ -2090,38 +2089,52 @@ return (0); } -static int -zyd_media_change_cb(struct ifnet *ifp) +static void +zyd_cfg_newstate(struct zyd_softc *sc, + struct zyd_config_copy *cc, uint16_t refcount) { - struct zyd_softc *sc = ifp->if_softc; - int error; + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); + struct zyd_vap *uvp = ZYD_VAP(vap); + enum ieee80211_state ostate; + enum ieee80211_state nstate; + int arg; + + ostate = vap->iv_state; + nstate = sc->sc_ns_state; + arg = sc->sc_ns_arg; + + switch (nstate) { + case IEEE80211_S_INIT: + if (ostate == IEEE80211_S_RUN) { + /* do nothing */ + } + break; - mtx_lock(&(sc->sc_mtx)); + case IEEE80211_S_RUN: + zyd_cfg_set_run(sc, cc); + break; - error = ieee80211_media_change(ifp); - if (error != ENETRESET) { - goto done; - } else { - error = 0; + default: + break; } - if ((ifp->if_flags & IFF_UP) && - (ifp->if_drv_flags & IFF_DRV_RUNNING)) { - usbd_config_td_queue_command - (&(sc->sc_config_td), &zyd_cfg_pre_init, - &zyd_cfg_init, 0, 0); - } -done: mtx_unlock(&(sc->sc_mtx)); - - return (error); + IEEE80211_LOCK(ic); + uvp->newstate(vap, nstate, arg); + if (vap->iv_newstate_cb != NULL) + vap->iv_newstate_cb(vap, nstate, arg); + IEEE80211_UNLOCK(ic); + mtx_lock(&(sc->sc_mtx)); + return; } static void zyd_cfg_set_run(struct zyd_softc *sc, - struct zyd_config_copy *cc, uint16_t refcount) + struct zyd_config_copy *cc) { - zyd_cfg_set_chan(sc, cc, refcount); + zyd_cfg_set_chan(sc, cc, 0); if (cc->ic_opmode != IEEE80211_M_MONITOR) { /* turn link LED on */ @@ -2130,61 +2143,43 @@ /* make data LED blink upon Tx */ zyd_cfg_write32(sc, sc->sc_firmware_base + ZYD_FW_LINK_STATUS, 1); - zyd_cfg_set_bssid(sc, cc->ic_bss.ni_bssid); + zyd_cfg_set_bssid(sc, cc->iv_bss.ni_bssid); } - return; -} - -static void -zyd_cfg_pre_set_run(struct zyd_softc *sc, - struct zyd_config_copy *cc, uint16_t refcount) -{ - struct ieee80211com *ic = &(sc->sc_ic); - - /* immediate configuration */ - - zyd_config_copy(sc, cc, 0); - - /* enable automatic rate adaptation in STA mode */ - if ((ic->ic_opmode == IEEE80211_M_STA) && - (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE)) { - /* fake a join to init the tx rate */ - zyd_newassoc_cb(ic->ic_bss, 1); + if (cc->iv_bss.fixed_rate_none) { + /* enable automatic rate adaptation */ + zyd_cfg_amrr_start(sc); } return; } static int -zyd_newstate_cb(struct ieee80211com *ic, enum ieee80211_state nstate, int arg) +zyd_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { + struct ieee80211com *ic = vap->iv_ic; struct zyd_softc *sc = ic->ic_ifp->if_softc; + DPRINTF(sc, 0, "setting new state: %d\n", nstate); + mtx_lock(&(sc->sc_mtx)); - DPRINTF(sc, 0, "setting new state %d\n", nstate); - - /* set new state first! */ - (sc->sc_newstate) (ic, nstate, arg); + /* store next state */ + sc->sc_ns_state = nstate; + sc->sc_ns_arg = arg; /* stop timers */ - sc->sc_amrr_timer = 0; - switch (nstate) { - case IEEE80211_S_RUN: - usbd_config_td_queue_command - (&(sc->sc_config_td), &zyd_cfg_pre_set_run, - &zyd_cfg_set_run, 0, 0); - break; - default: - break; - } + /* + * USB configuration can only be done from the USB configuration + * thread: + */ + usbd_config_td_queue_command + (&(sc->sc_config_td), &zyd_config_copy, + &zyd_cfg_newstate, 0, 0); - sc->sc_newstate(ic, nstate, -1); - mtx_unlock(&(sc->sc_mtx)); - return (0); + return EINPROGRESS; } static void @@ -2218,7 +2213,7 @@ ; /* fix for indent */ switch (rate) { - /* CCK rates */ + /* CCK rates (NB: not IEEE std, device-specific) */ case 2: return (0x0); case 4: @@ -2246,7 +2241,7 @@ case 108: return (0xc); - /* unsupported rates (should not get there) */ + /* XXX unsupported/unknown rate */ default: return (0xff); } @@ -2259,6 +2254,8 @@ mtx_lock(&(sc->sc_mtx)); + sc->sc_rates = ieee80211_get_ratetable(ic->ic_curchan); + usbd_config_td_queue_command (&(sc->sc_config_td), &zyd_config_copy, func, 0, 0); @@ -2304,7 +2301,7 @@ zyd_cfg_scan_end(struct zyd_softc *sc, struct zyd_config_copy *cc, uint16_t refcount) { - zyd_cfg_set_bssid(sc, cc->ic_bss.ni_bssid); + zyd_cfg_set_bssid(sc, cc->iv_bss.ni_bssid); return; } @@ -2370,8 +2367,8 @@ zyd_cfg_pre_init(struct zyd_softc *sc, struct zyd_config_copy *cc, uint16_t refcount) { - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = sc->sc_ic.ic_ifp; + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; zyd_cfg_pre_stop(sc, cc, 0); @@ -2381,13 +2378,6 @@ IEEE80211_ADDR_COPY(ic->ic_myaddr, IF_LLADDR(ifp)); - if (ic->ic_opmode != IEEE80211_M_MONITOR) { - if (ic->ic_roaming != IEEE80211_ROAMING_MANUAL) { - ieee80211_new_state(ic, IEEE80211_S_SCAN, -1); - } - } else { - ieee80211_new_state(ic, IEEE80211_S_RUN, -1); - } return; } @@ -2455,17 +2445,13 @@ zyd_cfg_pre_stop(struct zyd_softc *sc, struct zyd_config_copy *cc, uint16_t refcount) { - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = ic->ic_ifp; + struct ifnet *ifp = sc->sc_ifp; if (cc) { /* copy the needed configuration */ zyd_config_copy(sc, cc, refcount); } if (ifp) { - - ieee80211_new_state(ic, IEEE80211_S_INIT, -1); /* free all nodes */ - /* clear flags */ ifp->if_drv_flags &= ~IFF_DRV_RUNNING; } @@ -2479,14 +2465,9 @@ usbd_transfer_stop(sc->sc_xfer[ZYD_TR_BULK_DT_RD]); usbd_transfer_stop(sc->sc_xfer[ZYD_TR_BULK_CS_WR]); usbd_transfer_stop(sc->sc_xfer[ZYD_TR_BULK_CS_RD]); -#if 0 - /* clean up beacon transmission */ - if (sc->sc_bcn_mbuf) { - m_freem(sc->sc_bcn_mbuf); - sc->sc_bcn_mbuf = NULL; - sc->sc_flags &= ~ZYD_FLAG_SEND_BCN_FRAME; - } -#endif + + /* clean up transmission */ + zyd_tx_clean_queue(sc); return; } @@ -2509,6 +2490,21 @@ } static void +zyd_update_mcast(struct ifnet *ifp) +{ + struct zyd_softc *sc = ifp->if_softc; + + mtx_lock(&(sc->sc_mtx)); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + usbd_config_td_queue_command + (&(sc->sc_config_td), &zyd_config_copy, + &zyd_cfg_update_promisc, 0, 0); + } + mtx_unlock(&(sc->sc_mtx)); + return; +} + +static void zyd_cfg_set_rxfilter(struct zyd_softc *sc, struct zyd_config_copy *cc, uint16_t refcount) { @@ -2569,9 +2565,7 @@ struct zyd_softc *sc = ifp->if_softc; mtx_lock(&(sc->sc_mtx)); - - zyd_start_transfers(sc); - + usbd_transfer_start(sc->sc_xfer[ZYD_TR_BULK_DT_WR]); mtx_unlock(&(sc->sc_mtx)); return; @@ -2591,156 +2585,112 @@ return; } -/*------------------------------------------------------------------------* - * zyd_bulk_write_callback - data write "thread" - * - * Returns: - * 0: Success - * Else: Error - *------------------------------------------------------------------------*/ -static uint8_t -zyd_bulk_write_callback_sub(struct usbd_xfer *xfer, struct mbuf *m, - struct ieee80211_node *ni, uint8_t flags, uint16_t rate) +/* + * We assume that "m->m_pkthdr.rcvif" is pointing to the "ni" that + * should be freed, when "zyd_setup_desc_and_tx" is called. + */ +static void +zyd_setup_desc_and_tx(struct zyd_softc *sc, struct mbuf *m, + uint16_t rate) { - struct zyd_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ieee80211_frame *wh; - struct ieee80211_key *k; - struct zyd_tx_desc tx_desc; - uint16_t temp_len; - uint16_t pkt_len; - uint16_t rem_len; - uint8_t type; - uint8_t sub_type; + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + struct mbuf *mm; + enum ieee80211_phytype phytype; + uint16_t len; + uint16_t totlen; + uint16_t pktlen; + uint8_t remainder; - wh = mtod(m, struct ieee80211_frame *); - - if (wh->i_fc[1] & IEEE80211_FC1_WEP) { - k = ieee80211_crypto_encap(ic, ni, m); - if (k == NULL) { - return (1); - } - /* - * packet header may have moved, reset our - * local pointer - */ - wh = mtod(m, struct ieee80211_frame *); + if (sc->sc_tx_queue.ifq_len >= IFQ_MAXLEN) { + /* free packet */ + zyd_tx_freem(m); + ifp->if_oerrors++; + return; } - bzero(&tx_desc, sizeof(tx_desc)); - - temp_len = m->m_pkthdr.len + IEEE80211_CRC_LEN; - - /* fill Tx descriptor */ - tx_desc.len = htole16(temp_len); - - /* decode some fields from the outgoing frame */ - type = (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK); - sub_type = (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); - - if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - - if (type == IEEE80211_FC0_TYPE_DATA) { - - flags |= ZYD_TX_FLAG_BACKOFF; - - /* - * multicast frames are not sent at OFDM rates in - * 802.11b/g - */ - if (temp_len > ic->ic_rtsthreshold) { - flags |= ZYD_TX_FLAG_RTS; - } else if (ZYD_RATE_IS_OFDM(rate) && - (ic->ic_flags & IEEE80211_F_USEPROT)) { - if (ic->ic_protmode == IEEE80211_PROT_CTSONLY) - flags |= ZYD_TX_FLAG_CTS_TO_SELF; - else if (ic->ic_protmode == IEEE80211_PROT_RTSCTS) - flags |= ZYD_TX_FLAG_RTS; - } - } - } else { - rate = ic->ic_mcast_rate; - flags |= ZYD_TX_FLAG_MULTICAST; + if (!((sc->sc_flags & ZYD_FLAG_LL_READY) && + (sc->sc_flags & ZYD_FLAG_HL_READY))) { + /* free packet */ + zyd_tx_freem(m); + ifp->if_oerrors++; + return; } + if (rate < 2) { + DPRINTF(sc, 0, "rate < 2!\n"); - if ((type == IEEE80211_FC0_TYPE_CTL) && - (sub_type == IEEE80211_FC0_SUBTYPE_PS_POLL)) { - flags |= ZYD_TX_FLAG_TYPE(ZYD_TX_TYPE_PS_POLL); + /* avoid division by zero */ + rate = 2; } - tx_desc.flags = flags; - tx_desc.phy = zyd_plcp_signal(rate); - if (ZYD_RATE_IS_OFDM(rate)) { - tx_desc.phy |= ZYD_TX_PHY_OFDM; - if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan)) - tx_desc.phy |= ZYD_TX_PHY_5GHZ; - } else if (rate != 2 && (ic->ic_flags & IEEE80211_F_SHPREAMBLE)) - tx_desc.phy |= ZYD_TX_PHY_SHPREAMBLE; - - /* actual transmit length */ - pkt_len = sizeof(struct zyd_tx_desc) + ZYD_HW_PADDING; - if (sc->sc_mac_rev == ZYD_ZD1211) - pkt_len += temp_len; - tx_desc.pktlen = htole16(pkt_len); - - if (rate == 0) { - DPRINTF(sc, -1, "rate is zero!\n"); - tx_desc.plcp_length = 0; - } else { - tx_desc.plcp_length = ((16 * temp_len) + rate - 1) / rate; - } - tx_desc.plcp_service = 0; - if (rate == 22) { - rem_len = (16 * temp_len) % 22; - if ((rem_len > 0) && (rem_len < 7)) { - tx_desc.plcp_service |= ZYD_PLCP_LENGEXT; - } - } ic->ic_lastdata = ticks; - if (bpf_peers_present(sc->sc_drvbpf)) { - struct zyd_tx_radiotap_header *tap = &sc->sc_txtap; + if (bpf_peers_present(ifp->if_bpf)) { + struct zyd_tx_radiotap_header *tap = &(sc->sc_txtap); tap->wt_flags = 0; tap->wt_rate = rate; tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq); tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags); - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m); + bpf_mtap2(ifp->if_bpf, tap, sc->sc_txtap_len, m); } - usbd_copy_in(xfer->frbuffers, 0, &(tx_desc), sizeof(tx_desc)); + len = m->m_pkthdr.len; + totlen = m->m_pkthdr.len + IEEE80211_CRC_LEN; + phytype = ieee80211_rate2phytype(sc->sc_rates, rate); - usbd_m_copy_in(xfer->frbuffers, sizeof(tx_desc), - m, 0, m->m_pkthdr.len); + sc->sc_tx_desc.len = htole16(totlen); + sc->sc_tx_desc.phy = zyd_plcp_signal(rate); + if (phytype == IEEE80211_T_OFDM) { + sc->sc_tx_desc.phy |= ZYD_TX_PHY_OFDM; + if (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan)) + sc->sc_tx_desc.phy |= ZYD_TX_PHY_5GHZ; + } else if (rate != 2 && (ic->ic_flags & IEEE80211_F_SHPREAMBLE)) + sc->sc_tx_desc.phy |= ZYD_TX_PHY_SHPREAMBLE; - /* compute transfer length */ - temp_len = (sizeof(tx_desc) + m->m_pkthdr.len); + /* actual transmit length (XXX why +10?) */ + pktlen = sizeof(struct zyd_tx_desc) + 10; + if (sc->sc_mac_rev == ZYD_ZD1211) + pktlen += totlen; + sc->sc_tx_desc.pktlen = htole16(pktlen); - DPRINTF(sc, 10, "sending frame len=%u rate=%u xferlen=%u\n", - m->m_pkthdr.len, rate, temp_len); + sc->sc_tx_desc.plcp_length = ((16 * totlen) + rate - 1) / rate; + sc->sc_tx_desc.plcp_service = 0; + if (rate == 22) { + remainder = (16 * totlen) % 22; + if ((remainder != 0) && (remainder < 7)) + sc->sc_tx_desc.plcp_service |= ZYD_PLCP_LENGEXT; + } + if (sizeof(sc->sc_tx_desc) > MHLEN) { + DPRINTF(sc, 0, "No room for header structure!\n"); + zyd_tx_freem(m); + return; + } + mm = m_gethdr(M_NOWAIT, MT_DATA); + if (mm == NULL) { + DPRINTF(sc, 0, "Could not allocate header mbuf!\n"); + zyd_tx_freem(m); + return; + } + bcopy(&(sc->sc_tx_desc), mm->m_data, sizeof(sc->sc_tx_desc)); + mm->m_len = sizeof(sc->sc_tx_desc); - if (m->m_flags & M_TXCB) { - ieee80211_process_callback(ni, m, 0); - } - xfer->frlengths[0] = temp_len; + mm->m_next = m; + mm->m_pkthdr.len = mm->m_len + m->m_pkthdr.len; + mm->m_pkthdr.rcvif = NULL; - m_freem(m); + /* start write transfer, if not started */ + _IF_ENQUEUE(&(sc->sc_tx_queue), mm); - if (ni) { - ieee80211_free_node(ni); - } - usbd_start_hardware(xfer); - return (0); + usbd_transfer_start(sc->sc_xfer[0]); + return; } static void zyd_bulk_write_callback(struct usbd_xfer *xfer) { struct zyd_softc *sc = xfer->priv_sc; - struct ieee80211com *ic = &(sc->sc_ic); - struct ifnet *ifp = sc->sc_ic.ic_ifp; - struct ieee80211_node *ni = NULL; - struct ether_header *eh; - struct mbuf *m = NULL; - uint8_t rate; + struct ifnet *ifp = sc->sc_ifp; + struct mbuf *m; + uint16_t temp_len; DPRINTF(sc, 0, "\n"); @@ -2751,7 +2701,6 @@ ifp->if_opackets++; case USBD_ST_SETUP: -tr_setup: if (sc->sc_flags & ZYD_FLAG_BULK_WRITE_STALL) { usbd_transfer_start(sc->sc_xfer[ZYD_TR_BULK_CS_WR]); DPRINTF(sc, 10, "write stalled\n"); @@ -2764,106 +2713,34 @@ DPRINTF(sc, 10, "wait command\n"); break; } -#if 0 - if (sc->sc_flags & ZYD_FLAG_SEND_BCN_FRAME) { - sc->sc_flags &= ~ZYD_FLAG_SEND_BCN_FRAME; + zyd_fill_write_queue(sc); - m = sc->sc_bcn_mbuf; - sc->sc_bcn_mbuf = NULL; + _IF_DEQUEUE(&(sc->sc_tx_queue), m); - if (zyd_bulk_write_callback_sub - (xfer, m, NULL, sc->sc_bcn_flags, sc->sc_bcn_rate)) { - goto error; - } - break; - } -#endif - - IF_DEQUEUE(&(ic->ic_mgtq), m); - if (m) { - - ni = (void *)m->m_pkthdr.rcvif; - m->m_pkthdr.rcvif = NULL; - - if (bpf_peers_present(ic->ic_rawbpf)) { - bpf_mtap(ic->ic_rawbpf, m); + if (m->m_pkthdr.len > ZYD_MAX_TXBUFSZ) { + DPRINTF(sc, -1, "data overflow, %u bytes\n", + m->m_pkthdr.len); + m->m_pkthdr.len = ZYD_MAX_TXBUFSZ; } - rate = IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan) ? 12 : 2; + usbd_m_copy_in(xfer->frbuffers, 0, + m, 0, m->m_pkthdr.len); - if (zyd_bulk_write_callback_sub(xfer, m, - ni, 0, rate)) { - goto error; - } - break; - } - if (ic->ic_state != IEEE80211_S_RUN) { - break; - } - IFQ_DEQUEUE(&ifp->if_snd, m); + /* get transfer length */ + temp_len = m->m_pkthdr.len; - if (m) { + DPRINTF(sc, 10, "sending frame len=%u xferlen=%u\n", + m->m_pkthdr.len, temp_len); - /* - * Cancel any background scan. - */ - if (ic->ic_flags & IEEE80211_F_SCAN) { - ieee80211_cancel_scan(ic); - } - if (m->m_len < sizeof(struct ether_header)) { - m = m_pullup(m, sizeof(struct ether_header)); + xfer->frlengths[0] = temp_len; - if (m == NULL) { - goto error; - } - } - eh = mtod(m, struct ether_header *); - ni = ieee80211_find_txnode(ic, eh->ether_dhost); - if (ni == NULL) { - goto error; - } - BPF_MTAP(ifp, m); + usbd_start_hardware(xfer); - m = ieee80211_encap(ic, m, ni); - - if (m == NULL) { - goto error; - } - if (bpf_peers_present(ic->ic_rawbpf)) { - bpf_mtap(ic->ic_rawbpf, m); - } - if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) - rate = ic->ic_fixed_rate; - else - rate = ni->ni_rates.rs_rates[ni->ni_txrate]; - - rate &= IEEE80211_RATE_VAL; - - if (zyd_bulk_write_callback_sub(xfer, m, - ni, 0, rate)) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 8 14:46:55 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3EF5D106567C; Sun, 8 Jun 2008 14:46:55 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9FAD1065670 for ; Sun, 8 Jun 2008 14:46:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BD01B8FC12 for ; Sun, 8 Jun 2008 14:46:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58Eks87032305 for ; Sun, 8 Jun 2008 14:46:54 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58Ekq8g032299 for perforce@freebsd.org; Sun, 8 Jun 2008 14:46:52 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 14:46:52 GMT Message-Id: <200806081446.m58Ekq8g032299@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143120 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 14:46:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=143120 Change 143120 by hselasky@hselasky_laptop001 on 2008/06/08 14:46:42 IFC @ 143078 Affected files ... .. //depot/projects/usb/src/sys/Makefile#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/exception.S#5 integrate .. //depot/projects/usb/src/sys/amd64/amd64/genassym.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#8 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#9 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#8 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC#10 integrate .. //depot/projects/usb/src/sys/amd64/conf/NOTES#10 integrate .. //depot/projects/usb/src/sys/amd64/include/clock.h#5 integrate .. //depot/projects/usb/src/sys/amd64/include/cpufunc.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/pcpu.h#4 integrate .. //depot/projects/usb/src/sys/amd64/isa/clock.c#7 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_dummy.c#6 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_proto.h#7 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_syscall.h#7 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysent.c#7 integrate .. //depot/projects/usb/src/sys/amd64/linux32/syscalls.master#7 integrate .. //depot/projects/usb/src/sys/arm/arm/identcpu.c#5 integrate .. //depot/projects/usb/src/sys/arm/arm/machdep.c#7 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#10 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_twi.c#5 integrate .. //depot/projects/usb/src/sys/arm/at91/uart_dev_at91usart.c#6 integrate .. //depot/projects/usb/src/sys/arm/conf/AVILA#6 integrate .. //depot/projects/usb/src/sys/arm/conf/BWCT#4 integrate .. //depot/projects/usb/src/sys/arm/conf/CRB#3 integrate .. //depot/projects/usb/src/sys/arm/conf/EP80219#6 integrate .. //depot/projects/usb/src/sys/arm/conf/GUMSTIX#1 branch .. //depot/projects/usb/src/sys/arm/conf/GUMSTIX.hints#1 branch .. //depot/projects/usb/src/sys/arm/conf/HL200#3 integrate .. //depot/projects/usb/src/sys/arm/conf/IQ31244#7 integrate .. //depot/projects/usb/src/sys/arm/conf/KB920X#8 integrate .. //depot/projects/usb/src/sys/arm/conf/SIMICS#7 integrate .. //depot/projects/usb/src/sys/arm/conf/SKYEYE#6 integrate .. //depot/projects/usb/src/sys/arm/include/intr.h#5 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_ost.c#4 integrate .. //depot/projects/usb/src/sys/arm/xscale/pxa/files.pxa#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/if_smc_smi.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_gpio.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_icu.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_machdep.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_obio.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_smi.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_space.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxa_timer.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxareg.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/pxavar.h#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/std.pxa#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/uart_bus_pxa.c#1 branch .. //depot/projects/usb/src/sys/arm/xscale/pxa/uart_cpu_pxa.c#1 branch .. //depot/projects/usb/src/sys/boot/common/ufsread.c#3 integrate .. //depot/projects/usb/src/sys/boot/forth/loader.conf#8 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biossmap.c#4 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_string.c#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/machine/endian.h#2 delete .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/acl.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/atomic.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/bitmap.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/byteorder.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/callb.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cmn_err.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cpupart.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cpuvar.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cyclic.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/cyclic_impl.h#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/dkio.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/feature_tests.h#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/kmem.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/lock.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/mntent.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/objfs.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/pcpu.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/sema.h#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/sysmacros.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/ctf/ctf_mod.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/ctf/ctf_subr.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/lockstat.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/profile.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/sdt_subr.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/systrace.c#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/cmn_err.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/cpupart.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/cpuvar.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/ctf.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/ctf_api.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/isa_defs.h#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/sdt.h#2 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/vmem.h#2 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/intel/sys/fasttrap_isa.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/sparc/sys/fasttrap_isa.h#1 branch .. //depot/projects/usb/src/sys/cddl/dev/cyclic/amd64/cyclic_machdep.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/cyclic/cyclic.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/cyclic/cyclic_test.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/cyclic/i386/cyclic_machdep.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtmalloc/dtmalloc.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/dis_tables.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/dis_tables.h#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/dtrace_asm.S#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/dtrace_isa.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/amd64/instr_size.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_anon.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_cddl.h#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_clone.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_debug.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_hacks.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_load.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_modevent.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_sysctl.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_test.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_unload.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_vtime.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/dis_tables.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/dis_tables.h#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/dtrace_asm.S#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/dtrace_isa.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/dtrace/i386/instr_size.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/fbt/fbt.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/profile/profile.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/prototype.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/sdt/sdt.c#1 branch .. //depot/projects/usb/src/sys/cddl/dev/systrace/systrace.c#1 branch .. //depot/projects/usb/src/sys/compat/linux/linux_emul.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_emul.h#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_file.c#8 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_futex.c#5 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_futex.h#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_mib.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_misc.c#9 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_stats.c#7 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_util.c#5 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#7 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#7 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_misc.c#8 integrate .. //depot/projects/usb/src/sys/conf/Makefile.amd64#4 integrate .. //depot/projects/usb/src/sys/conf/NOTES#12 integrate .. //depot/projects/usb/src/sys/conf/files#27 integrate .. //depot/projects/usb/src/sys/conf/files.amd64#8 integrate .. //depot/projects/usb/src/sys/conf/files.i386#8 integrate .. //depot/projects/usb/src/sys/conf/files.pc98#8 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#8 integrate .. //depot/projects/usb/src/sys/conf/files.sparc64#6 integrate .. //depot/projects/usb/src/sys/conf/files.sun4v#5 integrate .. //depot/projects/usb/src/sys/conf/kern.mk#6 integrate .. //depot/projects/usb/src/sys/conf/kern.post.mk#6 integrate .. //depot/projects/usb/src/sys/conf/kern.pre.mk#9 integrate .. //depot/projects/usb/src/sys/conf/ldscript.mips#2 integrate .. //depot/projects/usb/src/sys/conf/ldscript.mips.cfe#2 integrate .. //depot/projects/usb/src/sys/conf/newvers.sh#3 integrate .. //depot/projects/usb/src/sys/conf/options#9 integrate .. //depot/projects/usb/src/sys/conf/options.amd64#6 integrate .. //depot/projects/usb/src/sys/conf/options.arm#7 integrate .. //depot/projects/usb/src/sys/conf/options.i386#6 integrate .. //depot/projects/usb/src/sys/conf/options.pc98#5 integrate .. //depot/projects/usb/src/sys/contrib/dev/iwn/LICENSE#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-4965-4.44.17.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/LICENSE#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/Makefile#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/rt2561.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/rt2561s.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/rt2661.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/rt2661_ucode.h#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ral/rt2860.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#6 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#6 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#7 integrate .. //depot/projects/usb/src/sys/contrib/rdma/core_priv.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_addr.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_cache.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_cm.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_fmr_pool.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_mad.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_marshall.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_pack.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_sa.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_smi.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_umem.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_user_cm.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_user_mad.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_user_sa.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_user_verbs.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/ib_verbs.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/iw_cm.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/krping/getopt.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/krping/getopt.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/krping/krping.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/krping/krping.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/krping/krping_dev.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_addr.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_cache.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_cm.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_cm_ib.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_cma.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_device.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_iwcm.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_user_cm.h#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/rdma_verbs.c#1 branch .. //depot/projects/usb/src/sys/contrib/rdma/types.h#1 branch .. //depot/projects/usb/src/sys/ddb/db_capture.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_ibm.c#6 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_sony.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#6 integrate .. //depot/projects/usb/src/sys/dev/age/if_age.c#1 branch .. //depot/projects/usb/src/sys/dev/age/if_agereg.h#1 branch .. //depot/projects/usb/src/sys/dev/age/if_agevar.h#1 branch .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-chipset.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#10 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-dma.c#6 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-lowlevel.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.c#6 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#8 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#6 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.c#7 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-fd.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-tape.c#5 integrate .. //depot/projects/usb/src/sys/dev/ath/ah_osdep.c#4 integrate .. //depot/projects/usb/src/sys/dev/ath/ah_osdep.h#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/amrr/amrr.c#5 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/amrr/amrr.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/onoe/onoe.c#5 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/onoe/onoe.h#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/sample/sample.c#5 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_rate/sample/sample.h#4 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#8 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath_pci.c#7 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athioctl.h#4 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athrate.h#4 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#6 integrate .. //depot/projects/usb/src/sys/dev/awi/am79c930.c#2 delete .. //depot/projects/usb/src/sys/dev/awi/am79c930reg.h#2 delete .. //depot/projects/usb/src/sys/dev/awi/am79c930var.h#2 delete .. //depot/projects/usb/src/sys/dev/awi/awi.c#5 delete .. //depot/projects/usb/src/sys/dev/awi/awireg.h#2 delete .. //depot/projects/usb/src/sys/dev/awi/awivar.h#4 delete .. //depot/projects/usb/src/sys/dev/awi/if_awi_pccard.c#4 delete .. //depot/projects/usb/src/sys/dev/bce/if_bce.c#9 integrate .. //depot/projects/usb/src/sys/dev/bfe/if_bfe.c#7 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#9 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bgereg.h#8 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_i2c.c#4 integrate .. //depot/projects/usb/src/sys/dev/ciss/ciss.c#9 integrate .. //depot/projects/usb/src/sys/dev/cnw/if_cnw.c#4 integrate .. //depot/projects/usb/src/sys/dev/coretemp/coretemp.c#3 integrate .. //depot/projects/usb/src/sys/dev/cs/if_cs.c#3 integrate .. //depot/projects/usb/src/sys/dev/cs/if_cs_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/cs/if_cs_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/cs/if_csreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/cs/if_csvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_config.h#4 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_l2t.c#4 delete .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_l2t.h#4 delete .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#5 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_offload.c#4 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_offload.h#4 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_osdep.h#5 integrate .. //depot/projects/usb/src/sys/dev/cxgb/t3cdev.h#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_defs.h#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_l2t.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_l2t.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_tom.c#2 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c#2 integrate .. //depot/projects/usb/src/sys/dev/dcons/dcons_os.c#6 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_82571.c#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_82571.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_api.c#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_api.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_defines.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_hw.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_ich8lan.c#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_ich8lan.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_osdep.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_phy.c#4 integrate .. //depot/projects/usb/src/sys/dev/em/e1000_phy.h#4 integrate .. //depot/projects/usb/src/sys/dev/em/if_em.c#9 integrate .. //depot/projects/usb/src/sys/dev/em/if_em.h#7 integrate .. //depot/projects/usb/src/sys/dev/fe/if_fe.c#4 integrate .. //depot/projects/usb/src/sys/dev/fe/if_fe_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/fe/if_fevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/firewire.c#6 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohci.c#5 integrate .. //depot/projects/usb/src/sys/dev/harp/if_harp.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_aali.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_buffer.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_command.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_globals.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_if.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_include.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_init.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_intr.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_output.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_receive.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_slave.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_stats.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_stats.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_timer.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_transmit.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_var.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/fore_vcm.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/hfa_eisa.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/hfa_freebsd.c#2 delete .. //depot/projects/usb/src/sys/dev/hfa/hfa_freebsd.h#2 delete .. //depot/projects/usb/src/sys/dev/hfa/hfa_pci.c#3 delete .. //depot/projects/usb/src/sys/dev/hfa/hfa_sbus.c#2 delete .. //depot/projects/usb/src/sys/dev/hme/if_hme.c#5 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hme_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hme_sbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hmereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hmevar.h#3 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb.c#5 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb_var.h#2 integrate .. //depot/projects/usb/src/sys/dev/idt/idt.c#2 delete .. //depot/projects/usb/src/sys/dev/idt/idt_harp.c#2 delete .. //depot/projects/usb/src/sys/dev/idt/idt_pci.c#4 delete .. //depot/projects/usb/src/sys/dev/idt/idtreg.h#3 delete .. //depot/projects/usb/src/sys/dev/idt/idtvar.h#2 delete .. //depot/projects/usb/src/sys/dev/ie/if_ie.c#2 integrate .. //depot/projects/usb/src/sys/dev/ie/if_ie_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/ie/if_ievar.h#2 integrate .. //depot/projects/usb/src/sys/dev/ieee488/upd7210.c#2 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndisvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_82575.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_api.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_api.h#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_defines.h#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_hw.h#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_mac.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_manage.h#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_osdep.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_osdep.h#2 integrate .. //depot/projects/usb/src/sys/dev/igb/e1000_phy.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/if_igb.c#2 integrate .. //depot/projects/usb/src/sys/dev/igb/if_igb.h#2 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicsmb.c#3 integrate .. //depot/projects/usb/src/sys/dev/ipw/if_ipw.c#7 integrate .. //depot/projects/usb/src/sys/dev/ipw/if_ipwvar.h#5 integrate .. //depot/projects/usb/src/sys/dev/iscsi/initiator/iscsi.c#2 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#8 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwivar.h#4 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#1 branch .. //depot/projects/usb/src/sys/dev/iwn/if_iwnreg.h#1 branch .. //depot/projects/usb/src/sys/dev/iwn/if_iwnvar.h#1 branch .. //depot/projects/usb/src/sys/dev/ixgbe/LICENSE#2 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/README#1 branch .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_82598.c#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_api.c#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_api.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_common.c#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_common.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_osdep.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_phy.c#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_phy.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe_type.h#3 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/tcp_lro.c#1 branch .. //depot/projects/usb/src/sys/dev/ixgbe/tcp_lro.h#1 branch .. //depot/projects/usb/src/sys/dev/jme/if_jme.c#1 branch .. //depot/projects/usb/src/sys/dev/jme/if_jmereg.h#1 branch .. //depot/projects/usb/src/sys/dev/jme/if_jmevar.h#1 branch .. //depot/projects/usb/src/sys/dev/k8temp/k8temp.c#2 integrate .. //depot/projects/usb/src/sys/dev/led/led.c#3 integrate .. //depot/projects/usb/src/sys/dev/malo/if_malo.c#2 integrate .. //depot/projects/usb/src/sys/dev/malo/if_malo.h#2 integrate .. //depot/projects/usb/src/sys/dev/md/md.c#6 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi.c#9 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_ioctl.h#4 integrate .. //depot/projects/usb/src/sys/dev/mii/atphy.c#1 branch .. //depot/projects/usb/src/sys/dev/mii/atphyreg.h#1 branch .. //depot/projects/usb/src/sys/dev/mii/brgphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphyreg.h#4 integrate .. //depot/projects/usb/src/sys/dev/mii/ciphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/jmphy.c#1 branch .. //depot/projects/usb/src/sys/dev/mii/jmphyreg.h#1 branch .. //depot/projects/usb/src/sys/dev/mii/miidevs#8 integrate .. //depot/projects/usb/src/sys/dev/mii/smcphy.c#1 branch .. //depot/projects/usb/src/sys/dev/mpt/mpt.h#8 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_cam.c#8 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_pci.c#7 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_raid.c#6 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_user.c#1 branch .. //depot/projects/usb/src/sys/dev/nve/if_nve.c#6 integrate .. //depot/projects/usb/src/sys/dev/nve/if_nvereg.h#3 integrate .. //depot/projects/usb/src/sys/dev/ofw/ofw_console.c#5 integrate .. //depot/projects/usb/src/sys/dev/pccard/pccard_cis.c#4 integrate .. //depot/projects/usb/src/sys/dev/pci/pcivar.h#8 integrate .. //depot/projects/usb/src/sys/dev/puc/pucdata.c#5 integrate .. //depot/projects/usb/src/sys/dev/ral/if_ral_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/ral/if_ralrate.c#2 delete .. //depot/projects/usb/src/sys/dev/ral/if_ralrate.h#2 delete .. //depot/projects/usb/src/sys/dev/ral/rt2560.c#8 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560reg.h#4 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560var.h#5 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661.c#8 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661_ucode.h#2 delete .. //depot/projects/usb/src/sys/dev/ral/rt2661var.h#4 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe.h#4 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_ebus.c#3 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_macio.c#3 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_quicc.c#2 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_sbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_core.c#4 integrate .. //depot/projects/usb/src/sys/dev/si/si.c#3 integrate .. //depot/projects/usb/src/sys/dev/si/si.h#2 integrate .. //depot/projects/usb/src/sys/dev/sio/sio.c#6 integrate .. //depot/projects/usb/src/sys/dev/smbus/smb.c#4 integrate .. //depot/projects/usb/src/sys/dev/smc/if_smc.c#1 branch .. //depot/projects/usb/src/sys/dev/smc/if_smcreg.h#1 branch .. //depot/projects/usb/src/sys/dev/smc/if_smcvar.h#1 branch .. //depot/projects/usb/src/sys/dev/snc/dp83932.c#2 integrate .. //depot/projects/usb/src/sys/dev/snc/dp83932subr.c#2 integrate .. //depot/projects/usb/src/sys/dev/snc/dp83932var.h#2 integrate .. //depot/projects/usb/src/sys/dev/snc/if_sncreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#7 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.c#6 integrate .. //depot/projects/usb/src/sys/dev/speaker/spkr.c#4 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_defs.h#2 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_fw.h#2 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_fw1.h#3 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_fw2.h#3 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_hipd.c#6 integrate .. //depot/projects/usb/src/sys/dev/ti/if_ti.c#7 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_core.c#4 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_dev_ns8250.c#5 integrate .. //depot/projects/usb/src/sys/dev/usb/ehci.c#79 edit .. //depot/projects/usb/src/sys/dev/usb/if_axe.c#50 edit .. //depot/projects/usb/src/sys/dev/usb/if_rum.c#31 edit .. //depot/projects/usb/src/sys/dev/usb/if_udav.c#46 edit .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#57 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#64 edit .. //depot/projects/usb/src/sys/dev/usb/ubsa.c#41 edit .. //depot/projects/usb/src/sys/dev/usb/uipaq.c#25 edit .. //depot/projects/usb/src/sys/dev/usb/umass.c#48 edit .. //depot/projects/usb/src/sys/dev/usb/ums.c#43 edit .. //depot/projects/usb/src/sys/dev/usb/usb.c#35 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#18 edit .. //depot/projects/usb/src/sys/dev/usb/uscanner.c#28 edit .. //depot/projects/usb/src/sys/dev/vx/if_vx.c#2 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wavelan_ieee.h#4 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wi.c#7 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wi_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wi_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/wi/if_wivar.h#4 integrate .. //depot/projects/usb/src/sys/dev/wi/spectrum24t_cf.h#2 delete .. //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#3 integrate .. //depot/projects/usb/src/sys/dev/wpi/if_wpivar.h#3 integrate .. //depot/projects/usb/src/sys/dev/xe/if_xe.c#3 integrate .. //depot/projects/usb/src/sys/dev/xe/if_xe_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/xe/if_xevar.h#2 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_int.h#4 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vnops.c#8 integrate .. //depot/projects/usb/src/sys/fs/fdescfs/fdesc.h#2 integrate .. //depot/projects/usb/src/sys/fs/fdescfs/fdesc_vfsops.c#5 integrate .. //depot/projects/usb/src/sys/fs/fdescfs/fdesc_vnops.c#4 integrate .. //depot/projects/usb/src/sys/fs/ntfs/ntfs_subr.c#4 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vnops.c#6 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union.h#5 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_subr.c#7 integrate .. //depot/projects/usb/src/sys/fs/unionfs/union_vnops.c#9 integrate .. //depot/projects/usb/src/sys/geom/geom_dev.c#6 integrate .. //depot/projects/usb/src/sys/geom/geom_subr.c#5 integrate .. //depot/projects/usb/src/sys/geom/part/g_part.c#6 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_apm.c#6 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_bsd.c#2 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_gpt.c#6 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_mbr.c#3 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_pc98.c#2 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_vtoc8.c#2 integrate .. //depot/projects/usb/src/sys/geom/vinum/geom_vinum_share.c#3 integrate .. //depot/projects/usb/src/sys/i386/bios/apm.c#5 integrate .. //depot/projects/usb/src/sys/i386/conf/GENERIC#9 integrate .. //depot/projects/usb/src/sys/i386/conf/NOTES#9 integrate .. //depot/projects/usb/src/sys/i386/conf/PAE#7 integrate .. //depot/projects/usb/src/sys/i386/cpufreq/est.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/exception.s#4 integrate .. //depot/projects/usb/src/sys/i386/i386/genassym.c#5 integrate .. //depot/projects/usb/src/sys/i386/i386/identcpu.c#7 integrate .. //depot/projects/usb/src/sys/i386/i386/local_apic.c#8 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#9 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#9 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#8 integrate .. //depot/projects/usb/src/sys/i386/include/clock.h#5 integrate .. //depot/projects/usb/src/sys/i386/include/cpufunc.h#3 integrate .. //depot/projects/usb/src/sys/i386/include/pcpu.h#4 integrate .. //depot/projects/usb/src/sys/i386/isa/clock.c#8 integrate .. //depot/projects/usb/src/sys/i386/isa/pmtimer.c#3 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_dummy.c#6 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_proto.h#7 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_syscall.h#7 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_sysent.c#7 integrate .. //depot/projects/usb/src/sys/i386/linux/syscalls.master#7 integrate .. //depot/projects/usb/src/sys/i4b/capi/README#2 delete .. //depot/projects/usb/src/sys/i4b/capi/capi.h#2 delete .. //depot/projects/usb/src/sys/i4b/capi/capi_l4if.c#3 delete .. //depot/projects/usb/src/sys/i4b/capi/capi_llif.c#3 delete .. //depot/projects/usb/src/sys/i4b/capi/capi_msgs.c#3 delete .. //depot/projects/usb/src/sys/i4b/capi/capi_msgs.h#2 delete .. //depot/projects/usb/src/sys/i4b/capi/iavc/iavc.h#2 delete .. //depot/projects/usb/src/sys/i4b/capi/iavc/iavc_card.c#3 delete .. //depot/projects/usb/src/sys/i4b/capi/iavc/iavc_isa.c#4 delete .. //depot/projects/usb/src/sys/i4b/capi/iavc/iavc_lli.c#3 delete .. //depot/projects/usb/src/sys/i4b/capi/iavc/iavc_pci.c#4 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_ctl.c#3 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_ing.c#3 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_ipr.c#4 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_isppp.c#3 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_rbch.c#3 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_tel.c#3 delete .. //depot/projects/usb/src/sys/i4b/driver/i4b_trace.c#3 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_cause.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_debug.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_global.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_ioctl.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_isdnq931.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_l1l2.h#3 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_l2l3.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_l3l4.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_mbuf.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_rbch_ioctl.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_tel_ioctl.h#2 delete .. //depot/projects/usb/src/sys/i4b/include/i4b_trace.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/i4b_hdlc.c#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/i4b_hdlc.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/i4b_l1.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/i4b_l1dmux.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/i4b_l1lib.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi/i4b_ifpi_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi/i4b_ifpi_isac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi/i4b_ifpi_l1.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi/i4b_ifpi_l1fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_isacsx.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_isacsx.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_l1.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_l1fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpnp/i4b_ifpnp_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpnp/i4b_ifpnp_isac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpnp/i4b_ifpnp_l1.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ifpnp/i4b_ifpnp_l1fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc_drv.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc_l1if.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_asuscom_ipac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_avm_a1.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_bchan.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_ctx_s0P.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_diva.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_drn_ngo.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_dynalink.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_elsa_pcc16.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_elsa_qs1i.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_elsa_qs1p.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_hscx.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_hscx.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_ipac.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isac.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isic.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isic.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isic_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isic_isa.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_isic_pnp.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_itk_ix1.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_l1.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_l1fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_siemens_isurf.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_sws.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_tel_s016.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_tel_s0163.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_tel_s08.c#5 delete .. //depot/projects/usb/src/sys/i4b/layer1/isic/i4b_usr_sti.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_hdlc.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_itjc_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_itjc_isac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_itjc_l1.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_itjc_l1fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/itjc/i4b_itjc_pci.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_bchan.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_dchan.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_ext.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_l1if.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_iwic_pci.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer1/iwic/i4b_w6692.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_iframe.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_l2.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_l2.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_l2fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_l2fsm.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_l2timer.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_lme.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_mbuf.c#2 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_sframe.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_tei.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_uframe.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer2/i4b_util.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l2if.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l3.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l3fsm.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l3fsm.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l3timer.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_l4if.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_q931.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_q931.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_q932fac.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer3/i4b_q932fac.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer4/i4b_i4bdrv.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer4/i4b_l4.c#3 delete .. //depot/projects/usb/src/sys/i4b/layer4/i4b_l4.h#2 delete .. //depot/projects/usb/src/sys/i4b/layer4/i4b_l4mgmt.c#4 delete .. //depot/projects/usb/src/sys/i4b/layer4/i4b_l4timer.c#3 delete .. //depot/projects/usb/src/sys/ia64/conf/DEFAULTS#7 integrate .. //depot/projects/usb/src/sys/ia64/ia64/clock.c#5 integrate .. //depot/projects/usb/src/sys/ia64/ia64/interrupt.c#7 integrate .. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/usb/src/sys/ia64/ia64/mp_machdep.c#6 integrate .. //depot/projects/usb/src/sys/ia64/ia64/pmap.c#11 integrate .. //depot/projects/usb/src/sys/ia64/include/atomic.h#4 integrate .. //depot/projects/usb/src/sys/ia64/include/vmparam.h#8 integrate .. //depot/projects/usb/src/sys/kern/Make.tags.inc#6 integrate .. //depot/projects/usb/src/sys/kern/imgact_elf.c#6 integrate .. //depot/projects/usb/src/sys/kern/init_sysent.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_conf.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_cpu.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_cpuset.c#2 integrate .. //depot/projects/usb/src/sys/kern/kern_ctf.c#1 branch .. //depot/projects/usb/src/sys/kern/kern_descrip.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_dtrace.c#1 branch .. //depot/projects/usb/src/sys/kern/kern_event.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_exit.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_fork.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_kthread.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_linker.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_lock.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_lockf.c#5 integrate .. //depot/projects/usb/src/sys/kern/kern_malloc.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_proc.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_rwlock.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_sdt.c#1 branch .. //depot/projects/usb/src/sys/kern/kern_sig.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_switch.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_sx.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_thr.c#7 integrate .. //depot/projects/usb/src/sys/kern/kern_umtx.c#8 integrate .. //depot/projects/usb/src/sys/kern/link_elf.c#8 integrate .. //depot/projects/usb/src/sys/kern/link_elf_obj.c#7 integrate .. //depot/projects/usb/src/sys/kern/linker_if.m#3 integrate .. //depot/projects/usb/src/sys/kern/sched_4bsd.c#8 integrate .. //depot/projects/usb/src/sys/kern/sched_ule.c#8 integrate .. //depot/projects/usb/src/sys/kern/subr_blist.c#2 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#10 integrate .. //depot/projects/usb/src/sys/kern/subr_clist.c#1 branch .. //depot/projects/usb/src/sys/kern/subr_clock.c#5 integrate .. //depot/projects/usb/src/sys/kern/subr_kdb.c#5 integrate .. //depot/projects/usb/src/sys/kern/subr_lock.c#8 integrate .. //depot/projects/usb/src/sys/kern/subr_param.c#3 integrate .. //depot/projects/usb/src/sys/kern/subr_rtc.c#2 integrate .. //depot/projects/usb/src/sys/kern/subr_smp.c#6 integrate .. //depot/projects/usb/src/sys/kern/subr_witness.c#8 integrate .. //depot/projects/usb/src/sys/kern/sys_pipe.c#8 integrate .. //depot/projects/usb/src/sys/kern/sys_socket.c#7 integrate .. //depot/projects/usb/src/sys/kern/syscalls.c#7 integrate .. //depot/projects/usb/src/sys/kern/syscalls.master#7 integrate .. //depot/projects/usb/src/sys/kern/systrace_args.c#6 integrate .. //depot/projects/usb/src/sys/kern/tty.c#7 integrate .. //depot/projects/usb/src/sys/kern/tty_cons.c#5 integrate .. //depot/projects/usb/src/sys/kern/tty_subr.c#3 delete .. //depot/projects/usb/src/sys/kern/tty_tty.c#5 integrate .. //depot/projects/usb/src/sys/kern/uipc_mbuf.c#8 integrate .. //depot/projects/usb/src/sys/kern/uipc_sem.c#7 integrate .. //depot/projects/usb/src/sys/kern/uipc_sockbuf.c#7 integrate .. //depot/projects/usb/src/sys/kern/uipc_socket.c#9 integrate .. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#9 integrate .. //depot/projects/usb/src/sys/kern/vfs_export.c#4 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#8 integrate .. //depot/projects/usb/src/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/usb/src/sys/mips/conf/ADM5120#2 integrate .. //depot/projects/usb/src/sys/mips/conf/IDT#2 integrate .. //depot/projects/usb/src/sys/mips/conf/MALTA#2 integrate .. //depot/projects/usb/src/sys/mips/conf/QEMU#2 integrate .. //depot/projects/usb/src/sys/mips/conf/SENTRY5#2 integrate .. //depot/projects/usb/src/sys/mips/include/am29lv081b.h#2 delete .. //depot/projects/usb/src/sys/mips/include/cp0.h#2 delete .. //depot/projects/usb/src/sys/mips/include/float.h#2 integrate .. //depot/projects/usb/src/sys/mips/include/pmap.h#2 integrate .. //depot/projects/usb/src/sys/mips/mips/machdep.c#2 integrate .. //depot/projects/usb/src/sys/mips/mips/mips_subr.c#2 delete .. //depot/projects/usb/src/sys/mips/mips/pmap.c#2 integrate .. //depot/projects/usb/src/sys/modules/Makefile#13 integrate .. //depot/projects/usb/src/sys/modules/age/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ath_rate_amrr/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/ath_rate_onoe/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/ath_rate_sample/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/awi/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/cnw/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/cxgb/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/cxgb/cxgb/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/cxgb/iw_cxgb/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/cxgb/tom/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/cyclic/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/Makefile.inc#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/dtmalloc/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/dtrace/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/dtrace_test/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/dtraceall/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/dtraceall/dtraceall.c#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/fasttrap/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/fbt/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/lockstat/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/profile/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/prototype/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/sdt/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/dtrace/systrace/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/em/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/esp/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/firmware/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/harp/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hfa/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hfa/Makefile.inc#2 delete .. //depot/projects/usb/src/sys/modules/hfa/eisa/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hfa/hfa/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hfa/pci/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hfa/sbus/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/hme/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/idt/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/isp/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/ispfw/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/iwn/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/iwnfw/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ixgbe/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/jme/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/le/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/malo/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/mii/Makefile#5 integrate .. //depot/projects/usb/src/sys/modules/mpt/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/netgraph/atm/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/netgraph/atm/atmpif/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/opensolaris/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ral/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/ralfw/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ralfw/Makefile.inc#1 branch .. //depot/projects/usb/src/sys/modules/ralfw/rt2561/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ralfw/rt2561s/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/ralfw/rt2661/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/addr/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/cma/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/core/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/iwcm/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/rdma/krping/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/scc/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/sound/driver/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/wlan/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/wlan_acl/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan_amrr/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan_ccmp/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan_rssadapt/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/wlan_scan_ap/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/wlan_scan_sta/Makefile#2 delete .. //depot/projects/usb/src/sys/modules/wlan_tkip/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan_wep/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan_xauth/Makefile#2 integrate .. //depot/projects/usb/src/sys/net/bpf.c#8 integrate .. //depot/projects/usb/src/sys/net/ethernet.h#7 integrate .. //depot/projects/usb/src/sys/net/if.c#8 integrate .. //depot/projects/usb/src/sys/net/if_atmsubr.c#5 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#8 integrate .. //depot/projects/usb/src/sys/net/if_fwsubr.c#7 integrate .. //depot/projects/usb/src/sys/net/if_gif.c#6 integrate .. //depot/projects/usb/src/sys/net/if_gif.h#2 integrate .. //depot/projects/usb/src/sys/net/if_gre.c#6 integrate .. //depot/projects/usb/src/sys/net/if_gre.h#2 integrate .. //depot/projects/usb/src/sys/net/if_iso88025subr.c#5 integrate .. //depot/projects/usb/src/sys/net/if_loop.c#7 integrate .. //depot/projects/usb/src/sys/net/if_media.h#7 integrate .. //depot/projects/usb/src/sys/net/if_stf.c#5 integrate .. //depot/projects/usb/src/sys/net/if_var.h#6 integrate .. //depot/projects/usb/src/sys/net/radix_mpath.c#2 integrate .. //depot/projects/usb/src/sys/net/radix_mpath.h#2 integrate .. //depot/projects/usb/src/sys/net/route.c#7 integrate .. //depot/projects/usb/src/sys/net/route.h#3 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#7 integrate .. //depot/projects/usb/src/sys/net80211/_ieee80211.h#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.h#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_acl.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_adhoc.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_adhoc.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_amrr.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_amrr.h#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_ccmp.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_none.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_tkip.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto_wep.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_dfs.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_dfs.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.h#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_hostap.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_hostap.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_ht.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ht.h#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_input.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#5 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_monitor.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_monitor.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#5 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_phy.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_phy.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_power.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_power.h#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.h#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_regdomain.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_regdomain.h#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_rssadapt.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_rssadapt.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_scan.c#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan.h#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_scan_ap.c#3 delete .. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_sta.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_sta.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_wds.c#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_wds.h#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_xauth.c#3 integrate .. //depot/projects/usb/src/sys/netatalk/at_extern.h#3 integrate .. //depot/projects/usb/src/sys/netatalk/at_proto.c#3 integrate .. //depot/projects/usb/src/sys/netatm/atm.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_aal5.c#3 delete .. //depot/projects/usb/src/sys/netatm/atm_cm.c#3 delete .. //depot/projects/usb/src/sys/netatm/atm_cm.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_device.c#2 delete .. //depot/projects/usb/src/sys/netatm/atm_if.c#3 delete .. //depot/projects/usb/src/sys/netatm/atm_if.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_ioctl.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_pcb.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_proto.c#3 delete .. //depot/projects/usb/src/sys/netatm/atm_sap.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_sigmgr.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_signal.c#2 delete .. //depot/projects/usb/src/sys/netatm/atm_socket.c#2 delete .. //depot/projects/usb/src/sys/netatm/atm_stack.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/atm_sys.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_usrreq.c#4 delete .. //depot/projects/usb/src/sys/netatm/atm_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/atm_vc.h#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm.h#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_event.c#3 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_if.c#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_input.c#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_load.c#3 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_output.c#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_serv.h#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_usrreq.c#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/ipatm/ipatm_vcm.c#2 delete .. //depot/projects/usb/src/sys/netatm/port.h#3 delete .. //depot/projects/usb/src/sys/netatm/queue.h#2 delete .. //depot/projects/usb/src/sys/netatm/sigpvc/sigpvc_if.c#3 delete .. //depot/projects/usb/src/sys/netatm/sigpvc/sigpvc_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/sigpvc/sigpvc_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_arp.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_cls.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_cls.h#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_if.c#3 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_kxdr.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_kxdr.h#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_msg.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_print.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_proto.c#3 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_util.c#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/spans/spans_xdr.x#2 delete .. //depot/projects/usb/src/sys/netatm/uni/q2110_sigaa.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/q2110_sigcpcs.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/q2110_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/qsaal1_sigaa.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/qsaal1_sigcpcs.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/qsaal1_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscf_uni.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscf_uni.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscf_uni_lower.c#3 delete .. //depot/projects/usb/src/sys/netatm/uni/sscf_uni_upper.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscf_uni_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_lower.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_misc.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_pdu.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_pdu.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_sigaa.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_sigcpcs.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_timer.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_upper.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/sscop_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uni.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uni_load.c#3 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp.c#3 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp_cache.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp_input.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp_output.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp_timer.c#3 delete .. //depot/projects/usb/src/sys/netatm/uni/uniarp_vcm.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uniip.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/uniip_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_decode.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_decode.h#3 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_encode.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_if.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_mbuf.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_mbuf.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_msg.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_msg.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_print.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_print.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_proto.c#3 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_sigmgr_state.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_subr.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_util.c#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_var.h#2 delete .. //depot/projects/usb/src/sys/netatm/uni/unisig_vc_state.c#2 delete >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 8 15:04:13 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D76771065671; Sun, 8 Jun 2008 15:04:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98BC91065672 for ; Sun, 8 Jun 2008 15:04:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7B9D68FC15 for ; Sun, 8 Jun 2008 15:04:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58F4CZU034715 for ; Sun, 8 Jun 2008 15:04:12 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58F4CtW034713 for perforce@freebsd.org; Sun, 8 Jun 2008 15:04:12 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 15:04:12 GMT Message-Id: <200806081504.m58F4CtW034713@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 15:04:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=143121 Change 143121 by hselasky@hselasky_laptop001 on 2008/06/08 15:03:46 IFC @ 143119 Catch up with Sam's latest changes. Affected files ... .. //depot/projects/usb/src/sys/compat/linux/linux_file.c#9 integrate .. //depot/projects/usb/src/sys/conf/NOTES#13 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#9 integrate .. //depot/projects/usb/src/sys/dev/age/if_age.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#9 integrate .. //depot/projects/usb/src/sys/dev/bm/if_bm.c#1 branch .. //depot/projects/usb/src/sys/dev/bm/if_bmreg.h#1 branch .. //depot/projects/usb/src/sys/dev/bm/if_bmvar.h#1 branch .. //depot/projects/usb/src/sys/dev/dc/if_dc.c#7 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#9 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#2 integrate .. //depot/projects/usb/src/sys/dev/mii/lxtphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560.c#9 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/if_rum.c#32 edit .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#58 edit .. //depot/projects/usb/src/sys/dev/usb/if_zyd.c#39 edit .. //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#4 integrate .. //depot/projects/usb/src/sys/mips/include/pte.h#2 integrate .. //depot/projects/usb/src/sys/mips/mips/trap.c#2 integrate .. //depot/projects/usb/src/sys/modules/Makefile#14 integrate .. //depot/projects/usb/src/sys/modules/bm/Makefile#1 branch .. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#8 integrate .. //depot/projects/usb/src/sys/powerpc/conf/GENERIC#9 integrate .. //depot/projects/usb/src/sys/powerpc/conf/NOTES#8 integrate .. //depot/projects/usb/src/sys/powerpc/include/dbdma.h#1 branch .. //depot/projects/usb/src/sys/powerpc/powermac/dbdma.c#1 branch .. //depot/projects/usb/src/sys/powerpc/powermac/dbdmavar.h#1 branch Differences ... ==== //depot/projects/usb/src/sys/compat/linux/linux_file.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.113 2008/04/23 15:56:33 rdivacky Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.114 2008/06/08 11:09:25 rdivacky Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -289,7 +289,7 @@ */ struct l_dirent { - l_long d_ino; + l_ulong d_ino; l_off_t d_off; l_ushort d_reclen; char d_name[LINUX_NAME_MAX + 1]; @@ -446,7 +446,7 @@ if (justone) { /* readdir(2) case. */ - linux_dirent.d_ino = (l_long)bdp->d_fileno; + linux_dirent.d_ino = bdp->d_fileno; linux_dirent.d_off = (l_off_t)linuxreclen; linux_dirent.d_reclen = (l_ushort)bdp->d_namlen; strcpy(linux_dirent.d_name, bdp->d_name); ==== //depot/projects/usb/src/sys/conf/NOTES#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1492 2008/05/27 01:54:45 yongari Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1494 2008/06/08 01:58:11 marcel Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # ==== //depot/projects/usb/src/sys/conf/files.powerpc#9 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.powerpc,v 1.77 2008/04/30 00:50:50 marcel Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.79 2008/06/07 22:58:32 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -27,6 +27,7 @@ crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb +dev/bm/if_bm.c optional bm powermac dev/fb/fb.c optional sc dev/hwpmc/hwpmc_powerpc.c optional hwpmc dev/kbd/kbd.c optional sc @@ -107,6 +108,7 @@ powerpc/ofw/ofw_syscons.c optional sc aim powerpc/powermac/ata_kauai.c optional powermac ata powerpc/powermac/ata_macio.c optional powermac ata +powerpc/powermac/dbdma.c optional powermac pci powerpc/powermac/grackle.c optional powermac pci powerpc/powermac/hrowpic.c optional powermac pci powerpc/powermac/macio.c optional powermac pci ==== //depot/projects/usb/src/sys/dev/age/if_age.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ /* Driver for Attansic Technology Corp. L1 Gigabit Ethernet. */ #include -__FBSDID("$FreeBSD: src/sys/dev/age/if_age.c,v 1.1 2008/05/19 01:39:59 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/age/if_age.c,v 1.2 2008/06/08 14:42:43 rpaulo Exp $"); #include #include @@ -387,7 +387,7 @@ * specification such that driver could not use * pci_get_vpd_readonly(9) with keyword 'NA'. * Search VPD data starting at address 0x0100. The data - * chwould be used as initializers to set AGE_PAR0, + * should be used as initializers to set AGE_PAR0, * AGE_PAR1 register including other PCI configuration * registers. */ ==== //depot/projects/usb/src/sys/dev/ath/if_ath.c#9 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.190 2008/05/29 00:14:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.191 2008/06/07 18:38:02 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -169,7 +169,8 @@ struct ath_descdma *, ath_bufhead *); static int ath_desc_alloc(struct ath_softc *); static void ath_desc_free(struct ath_softc *); -static struct ieee80211_node *ath_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *ath_node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); static void ath_node_free(struct ieee80211_node *); static void ath_node_getsignal(const struct ieee80211_node *, int8_t *, int8_t *); @@ -3659,9 +3660,9 @@ } static struct ieee80211_node * -ath_node_alloc(struct ieee80211_node_table *nt) +ath_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { - struct ieee80211com *ic = nt->nt_ic; + struct ieee80211com *ic = vap->iv_ic; struct ath_softc *sc = ic->ic_ifp->if_softc; const size_t space = sizeof(struct ath_node) + sc->sc_rc->arc_space; struct ath_node *an; ==== //depot/projects/usb/src/sys/dev/dc/if_dc.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.194 2008/03/24 17:38:24 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.195 2008/06/08 02:52:26 yongari Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -1141,7 +1141,7 @@ static void dc_setfilt_admtek(struct dc_softc *sc) { - uint32_t eaddr[(ETHER_ADDR_LEN+3)/4]; + uint8_t eaddr[ETHER_ADDR_LEN]; struct ifnet *ifp; struct ifmultiaddr *ifma; int h = 0; @@ -1151,8 +1151,9 @@ /* Init our MAC address. */ bcopy(IF_LLADDR(sc->dc_ifp), eaddr, ETHER_ADDR_LEN); - CSR_WRITE_4(sc, DC_AL_PAR0, eaddr[0]); - CSR_WRITE_4(sc, DC_AL_PAR1, eaddr[1]); + CSR_WRITE_4(sc, DC_AL_PAR0, eaddr[3] << 24 | eaddr[2] << 16 | + eaddr[1] << 8 | eaddr[0]); + CSR_WRITE_4(sc, DC_AL_PAR1, eaddr[5] << 8 | eaddr[4]); /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) @@ -1812,7 +1813,7 @@ u_int32_t command; struct dc_softc *sc; struct ifnet *ifp; - u_int32_t revision; + u_int32_t reg, revision; int error = 0, rid, mac_offset; int i; u_int8_t *mac; @@ -2052,8 +2053,15 @@ break; case DC_TYPE_AL981: case DC_TYPE_AN985: - eaddr[0] = CSR_READ_4(sc, DC_AL_PAR0); - eaddr[1] = CSR_READ_4(sc, DC_AL_PAR1); + reg = CSR_READ_4(sc, DC_AL_PAR0); + mac = (uint8_t *)&eaddr[0]; + mac[0] = (reg >> 0) & 0xff; + mac[1] = (reg >> 8) & 0xff; + mac[2] = (reg >> 16) & 0xff; + mac[3] = (reg >> 24) & 0xff; + reg = CSR_READ_4(sc, DC_AL_PAR1); + mac[4] = (reg >> 0) & 0xff; + mac[5] = (reg >> 8) & 0xff; break; case DC_TYPE_CONEXANT: bcopy(sc->dc_srom + DC_CONEXANT_EE_NODEADDR, &eaddr, ==== //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#9 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.62 2008/05/12 00:15:28 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.63 2008/06/07 18:38:02 sam Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -147,7 +147,8 @@ int); static void iwi_reset_rx_ring(struct iwi_softc *, struct iwi_rx_ring *); static void iwi_free_rx_ring(struct iwi_softc *, struct iwi_rx_ring *); -static struct ieee80211_node *iwi_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *iwi_node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); static void iwi_node_free(struct ieee80211_node *); static void iwi_media_status(struct ifnet *, struct ifmediareq *); static int iwi_newstate(struct ieee80211vap *, enum ieee80211_state, int); @@ -903,14 +904,14 @@ } static struct ieee80211_node * -iwi_node_alloc(struct ieee80211_node_table *nt) +iwi_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { struct iwi_node *in; in = malloc(sizeof (struct iwi_node), M_80211_NODE, M_NOWAIT | M_ZERO); if (in == NULL) return NULL; - + /* XXX assign sta table entry for adhoc */ in->in_station = -1; return &in->in_node; ==== //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwn/if_iwn.c,v 1.6 2008/05/26 07:40:14 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwn/if_iwn.c,v 1.7 2008/06/07 18:38:02 sam Exp $"); #include #include @@ -103,7 +103,8 @@ int); void iwn_reset_tx_ring(struct iwn_softc *, struct iwn_tx_ring *); void iwn_free_tx_ring(struct iwn_softc *, struct iwn_tx_ring *); -struct ieee80211_node *iwn_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *iwn_node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); void iwn_newassoc(struct ieee80211_node *, int); int iwn_media_change(struct ifnet *); int iwn_newstate(struct ieee80211vap *, enum ieee80211_state, int); @@ -941,7 +942,7 @@ } struct ieee80211_node * -iwn_node_alloc(struct ieee80211_node_table *ic) +iwn_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { return malloc(sizeof (struct iwn_node), M_80211_NODE,M_NOWAIT | M_ZERO); } ==== //depot/projects/usb/src/sys/dev/mii/lxtphy.c#4 (text+ko) ==== @@ -68,7 +68,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mii/lxtphy.c,v 1.19 2007/01/12 22:27:46 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mii/lxtphy.c,v 1.20 2008/06/07 22:58:32 marcel Exp $"); /* * driver for Level One's LXT-970 ethernet 10/100 PHY @@ -139,6 +139,7 @@ struct mii_softc *sc; struct mii_attach_args *ma; struct mii_data *mii; + const char *nic; sc = device_get_softc(dev); ma = device_get_ivars(dev); @@ -159,6 +160,15 @@ PHY_READ(sc, MII_BMSR) & ma->mii_capmask; device_printf(dev, " "); + /* + * On Apple BMAC controllers, we end up in a weird state + * of partially-completed autonegotiation on boot. So + * force autonegotation to try again. + */ + nic = device_get_name(device_get_parent(sc->mii_dev)); + if (strcmp(nic, "bm") == 0) + sc->mii_flags |= MIIF_FORCEANEG | MIIF_NOISOLATE; + #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, 0, sc->mii_inst), MII_MEDIA_100_TX); ==== //depot/projects/usb/src/sys/dev/ral/rt2560.c#9 (text) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ral/rt2560.c,v 1.25 2008/05/12 00:32:52 sam Exp $ */ +/* $FreeBSD: src/sys/dev/ral/rt2560.c,v 1.26 2008/06/07 18:38:02 sam Exp $ */ /*- * Copyright (c) 2005, 2006 @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ral/rt2560.c,v 1.25 2008/05/12 00:32:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ral/rt2560.c,v 1.26 2008/06/07 18:38:02 sam Exp $"); /*- * Ralink Technology RT2560 chipset driver @@ -104,8 +104,8 @@ struct rt2560_rx_ring *); static void rt2560_free_rx_ring(struct rt2560_softc *, struct rt2560_rx_ring *); -static struct ieee80211_node *rt2560_node_alloc( - struct ieee80211_node_table *); +static struct ieee80211_node *rt2560_node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); static void rt2560_newassoc(struct ieee80211_node *, int); static int rt2560_newstate(struct ieee80211vap *, enum ieee80211_state, int); @@ -767,7 +767,8 @@ } static struct ieee80211_node * -rt2560_node_alloc(struct ieee80211_node_table *nt) +rt2560_node_alloc(struct ieee80211vap *vap, + const uint8_t mac[IEEE80211_ADDR_LEN]) { struct rt2560_node *rn; ==== //depot/projects/usb/src/sys/dev/ral/rt2661.c#9 (text) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ral/rt2661.c,v 1.25 2008/05/12 00:32:52 sam Exp $ */ +/* $FreeBSD: src/sys/dev/ral/rt2661.c,v 1.26 2008/06/07 18:38:02 sam Exp $ */ /*- * Copyright (c) 2006 @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ral/rt2661.c,v 1.25 2008/05/12 00:32:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ral/rt2661.c,v 1.26 2008/06/07 18:38:02 sam Exp $"); /*- * Ralink Technology RT2561, RT2561S and RT2661 chipset driver @@ -101,8 +101,8 @@ struct rt2661_rx_ring *); static void rt2661_free_rx_ring(struct rt2661_softc *, struct rt2661_rx_ring *); -static struct ieee80211_node *rt2661_node_alloc( - struct ieee80211_node_table *); +static struct ieee80211_node *rt2661_node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); static void rt2661_newassoc(struct ieee80211_node *, int); static int rt2661_newstate(struct ieee80211vap *, enum ieee80211_state, int); @@ -776,7 +776,8 @@ } static struct ieee80211_node * -rt2661_node_alloc(struct ieee80211_node_table *nt) +rt2661_node_alloc(struct ieee80211vap *vap, + const uint8_t mac[IEEE80211_ADDR_LEN]) { struct rt2661_node *rn; ==== //depot/projects/usb/src/sys/dev/usb/if_rum.c#32 (text+ko) ==== @@ -147,7 +147,7 @@ static uint8_t rum_get_rssi(struct rum_softc *sc, uint8_t raw); static struct ieee80211vap *rum_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void rum_vap_delete(struct ieee80211vap *); -static struct ieee80211_node *rum_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *rum_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]); static void rum_newassoc(struct ieee80211_node *, int); static void rum_cfg_disable_tsf_sync(struct rum_softc *sc); static void rum_cfg_set_run(struct rum_softc *sc, struct rum_config_copy *cc); @@ -2395,7 +2395,6 @@ /* init AMRR */ ieee80211_amrr_node_init(&RUM_VAP(vap)->amrr, &RUM_NODE(ni)->amn, ni); - XXX; /* enable AMRR timer */ @@ -2614,8 +2613,10 @@ return; } +/* ARGUSED */ static struct ieee80211_node * -rum_node_alloc(struct ieee80211_node_table *nt) +rum_node_alloc(struct ieee80211vap *vap __unused, + const uint8_t mac[IEEE80211_ADDR_LEN] __unused) { struct rum_node *rn; ==== //depot/projects/usb/src/sys/dev/usb/if_ural.c#58 (text+ko) ==== @@ -1,3 +1,5 @@ +/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.74 2008/06/07 18:38:02 sam Exp $ */ + /*- * Copyright (c) 2005, 2006 * Damien Bergamini @@ -26,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.73 2008/05/12 00:32:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.74 2008/06/07 18:38:02 sam Exp $"); /*- * Ralink Technology RT2500USB chipset driver @@ -151,7 +153,7 @@ static void ural_cfg_amrr_start(struct ural_softc *sc); static struct ieee80211vap *ural_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void ural_vap_delete(struct ieee80211vap *); -static struct ieee80211_node *ural_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *ural_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]); static void ural_newassoc(struct ieee80211_node *, int); static void ural_cfg_disable_tsf_sync(struct ural_softc *sc); static void ural_cfg_set_run(struct ural_softc *sc, struct ural_config_copy *cc); @@ -2304,8 +2306,6 @@ /* init AMRR */ ieee80211_amrr_node_init(&URAL_VAP(vap)->amrr, &URAL_NODE(ni)->amn, ni); - XXX; - /* enable AMRR timer */ sc->sc_amrr_timer = 1; @@ -2402,8 +2402,10 @@ return; } +/* ARGUSED */ static struct ieee80211_node * -ural_node_alloc(struct ieee80211_node_table *nt) +ural_node_alloc(struct ieee80211vap *vap __unused, + const uint8_t mac[IEEE80211_ADDR_LEN] __unused) { struct ural_node *un; ==== //depot/projects/usb/src/sys/dev/usb/if_zyd.c#39 (text+ko) ==== @@ -149,7 +149,7 @@ static void zyd_cfg_set_led(struct zyd_softc *sc, uint32_t which, uint8_t on); static struct ieee80211vap *zyd_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void zyd_vap_delete(struct ieee80211vap *); -static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211_node_table *); +static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]); static void zyd_cfg_set_run(struct zyd_softc *sc, struct zyd_config_copy *cc); static void zyd_fill_write_queue(struct zyd_softc *sc); static void zyd_tx_clean_queue(struct zyd_softc *sc); @@ -3045,8 +3045,10 @@ free(zvp, M_80211_VAP); } +/* ARGUSED */ static struct ieee80211_node * -zyd_node_alloc_cb(struct ieee80211_node_table *nt) +zyd_node_alloc_cb(struct ieee80211vap *vap __unused, + const uint8_t mac[IEEE80211_ADDR_LEN] __unused) { struct zyd_node *zn; ==== //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#4 (text+ko) ==== @@ -19,7 +19,7 @@ #define VERSION "20071127" #include -__FBSDID("$FreeBSD: src/sys/dev/wpi/if_wpi.c,v 1.14 2008/05/16 04:15:54 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wpi/if_wpi.c,v 1.15 2008/06/07 18:38:02 sam Exp $"); /* * Driver for Intel PRO/Wireless 3945ABG 802.11 network adapters. @@ -170,7 +170,8 @@ int, int); static void wpi_reset_tx_ring(struct wpi_softc *, struct wpi_tx_ring *); static void wpi_free_tx_ring(struct wpi_softc *, struct wpi_tx_ring *); -static struct ieee80211_node *wpi_node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *wpi_node_alloc(struct ieee80211vap *, + const uint8_t mac[IEEE80211_ADDR_LEN]); static int wpi_newstate(struct ieee80211vap *, enum ieee80211_state, int); static void wpi_mem_lock(struct wpi_softc *); static void wpi_mem_unlock(struct wpi_softc *); @@ -1246,7 +1247,8 @@ /* ARGSUSED */ static struct ieee80211_node * -wpi_node_alloc(struct ieee80211_node_table *ic) +wpi_node_alloc(struct ieee80211vap *vap __unused, + const uint8_t mac[IEEE80211_ADDR_LEN] __unused) { struct wpi_node *wn; ==== //depot/projects/usb/src/sys/mips/include/pte.h#2 (text+ko) ==== @@ -40,7 +40,7 @@ * from: Utah Hdr: pte.h 1.11 89/09/03 * from: @(#)pte.h 8.1 (Berkeley) 6/10/93 * JNPR: pte.h,v 1.1.4.1 2007/09/10 06:20:19 girish - * $FreeBSD: src/sys/mips/include/pte.h,v 1.1 2008/04/13 07:22:52 imp Exp $ + * $FreeBSD: src/sys/mips/include/pte.h,v 1.2 2008/06/08 08:56:46 wkoszek Exp $ */ #ifndef _MACHINE_PTE_H_ @@ -121,7 +121,7 @@ #define vad_to_pfn64(x) ((quad_t)(x) >> PTE_SHIFT) & PTE_FRAME) #define pfn_to_vad(x) (((x) & PTE_FRAME) << PTE_SHIFT) -/* User viritual to pte offset in page table */ +/* User virtual to pte offset in page table */ #define vad_to_pte_offset(adr) (((adr) >> PGSHIFT) & (NPTEPG -1)) #define mips_pg_v(entry) ((entry) & PTE_V) ==== //depot/projects/usb/src/sys/mips/mips/trap.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ * JNPR: trap.c,v 1.13.2.2 2007/08/29 10:03:49 girish */ #include -__FBSDID("$FreeBSD: src/sys/mips/mips/trap.c,v 1.1 2008/04/13 07:27:37 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/mips/mips/trap.c,v 1.2 2008/06/08 08:56:46 wkoszek Exp $"); #include "opt_ddb.h" #include "opt_global.h" @@ -140,7 +140,7 @@ MipsKernGenException, /* coprocessor unusable */ MipsKernGenException, /* arithmetic overflow */ MipsKernGenException, /* trap exception */ - MipsKernGenException, /* viritual coherence exception inst */ + MipsKernGenException, /* virtual coherence exception inst */ MipsKernGenException, /* floating point exception */ MipsKernGenException, /* reserved */ MipsKernGenException, /* reserved */ @@ -157,7 +157,7 @@ MipsKernGenException, /* reserved */ MipsKernGenException, /* reserved */ MipsKernGenException, /* reserved */ - MipsKernGenException, /* viritual coherence exception data */ + MipsKernGenException, /* virtual coherence exception data */ /* * The user exception handlers. */ @@ -210,7 +210,7 @@ "coprocessor unusable", "arithmetic overflow", "trap", - "viritual coherency instruction", + "virtual coherency instruction", "floating point", "reserved 16", "reserved 17", @@ -227,7 +227,7 @@ "reserved 28", "reserved 29", "reserved 30", - "viritual coherency data", + "virtual coherency data", }; #if !defined(SMP) && (defined(DDB) || defined(DEBUG)) ==== //depot/projects/usb/src/sys/modules/Makefile#14 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/Makefile,v 1.571 2008/05/28 20:26:25 jhb Exp $ +# $FreeBSD: src/sys/modules/Makefile,v 1.572 2008/06/07 22:58:32 marcel Exp $ .include @@ -40,6 +40,7 @@ bge \ ${_bios} \ ${_bktr} \ + ${_bm} \ bridgestp \ cam \ ${_canbepm} \ @@ -629,6 +630,7 @@ _ath_rate_amrr= ath_rate_amrr _ath_rate_onoe= ath_rate_onoe _ath_rate_sample=ath_rate_sample +_bm= bm _nvram= powermac_nvram _smbfs= smbfs .endif ==== //depot/projects/usb/src/sys/net80211/ieee80211_node.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.95 2008/05/28 23:18:17 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.99 2008/06/07 18:38:02 sam Exp $"); #include "opt_wlan.h" @@ -67,7 +67,8 @@ static int ieee80211_sta_join1(struct ieee80211_node *); -static struct ieee80211_node *node_alloc(struct ieee80211_node_table *); +static struct ieee80211_node *node_alloc(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); static void node_cleanup(struct ieee80211_node *); static void node_free(struct ieee80211_node *); static void node_age(struct ieee80211_node *); @@ -723,7 +724,7 @@ } static struct ieee80211_node * -node_alloc(struct ieee80211_node_table *nt) +node_alloc(struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN]) { struct ieee80211_node *ni; @@ -948,7 +949,7 @@ struct ieee80211_node *ni; int hash; - ni = ic->ic_node_alloc(nt); + ni = ic->ic_node_alloc(vap, macaddr); if (ni == NULL) { vap->iv_stats.is_rx_nodealloc++; return NULL; @@ -996,7 +997,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni; - ni = ic->ic_node_alloc(&ic->ic_sta); + ni = ic->ic_node_alloc(vap, macaddr); if (ni != NULL) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, "%s %p<%s>\n", __func__, ni, ether_sprintf(macaddr)); @@ -1482,21 +1483,30 @@ static void _ieee80211_free_node(struct ieee80211_node *ni) { - struct ieee80211vap *vap = ni->ni_vap; struct ieee80211_node_table *nt = ni->ni_table; + /* + * NB: careful about referencing the vap as it may be + * gone if the last reference was held by a driver. + * We know the com will always be present so it's safe + * to use ni_ic below to reclaim resources. + */ +#if 0 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, "%s %p<%s> in %s table\n", __func__, ni, ether_sprintf(ni->ni_macaddr), nt != NULL ? nt->nt_name : ""); - - if (vap->iv_aid_bitmap != NULL) - IEEE80211_AID_CLR(vap, ni->ni_associd); +#endif + if (ni->ni_associd != 0) { + struct ieee80211vap *vap = ni->ni_vap; + if (vap->iv_aid_bitmap != NULL) + IEEE80211_AID_CLR(vap, ni->ni_associd); + } if (nt != NULL) { TAILQ_REMOVE(&nt->nt_node, ni, ni_list); LIST_REMOVE(ni, ni_hash); } - vap->iv_ic->ic_node_free(ni); + ni->ni_ic->ic_node_free(ni); } void @@ -1551,9 +1561,8 @@ int ieee80211_node_delucastkey(struct ieee80211_node *ni) { - struct ieee80211vap *vap = ni->ni_vap; - /* XXX is ni_table safe? */ - struct ieee80211_node_table *nt = &ni->ni_ic->ic_sta; + struct ieee80211com *ic = ni->ni_ic; + struct ieee80211_node_table *nt = &ic->ic_sta; struct ieee80211_node *nikey; ieee80211_keyix keyix; int isowned, status; @@ -1573,20 +1582,23 @@ isowned = IEEE80211_NODE_IS_LOCKED(nt); if (!isowned) IEEE80211_NODE_LOCK(nt); - keyix = ni->ni_ucastkey.wk_rxkeyix; - status = ieee80211_crypto_delkey(vap, &ni->ni_ucastkey); - if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax) { - nikey = nt->nt_keyixmap[keyix]; - nt->nt_keyixmap[keyix] = NULL;; - } else - nikey = NULL; + nikey = NULL; + status = 1; /* NB: success */ + if (!IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) { + keyix = ni->ni_ucastkey.wk_rxkeyix; + status = ieee80211_crypto_delkey(ni->ni_vap, &ni->ni_ucastkey); + if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax) { + nikey = nt->nt_keyixmap[keyix]; + nt->nt_keyixmap[keyix] = NULL;; + } + } if (!isowned) IEEE80211_NODE_UNLOCK(nt); if (nikey != NULL) { KASSERT(nikey == ni, ("key map out of sync, ni %p nikey %p", ni, nikey)); - IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, + IEEE80211_DPRINTF(ni->ni_vap, IEEE80211_MSG_NODE, "%s: delete key map entry %p<%s> refcnt %d\n", __func__, ni, ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)-1); @@ -2077,8 +2089,8 @@ (ieee80211_iter_func *) ieee80211_dump_node, nt); } -void -ieee80211_notify_erp(struct ieee80211com *ic) +static void +ieee80211_notify_erp_locked(struct ieee80211com *ic) { struct ieee80211vap *vap; @@ -2089,6 +2101,14 @@ ieee80211_beacon_notify(vap, IEEE80211_BEACON_ERP); } +void +ieee80211_notify_erp(struct ieee80211com *ic) +{ + IEEE80211_LOCK(ic); + ieee80211_notify_erp_locked(ic); + IEEE80211_UNLOCK(ic); +} + /* * Handle a station joining an 11g network. */ @@ -2151,7 +2171,7 @@ IEEE80211_DPRINTF(ni->ni_vap, IEEE80211_MSG_ASSOC, "%s: enable use of protection\n", __func__); ic->ic_flags |= IEEE80211_F_USEPROT; - ieee80211_notify_erp(ic); + ieee80211_notify_erp_locked(ic); } } else ni->ni_flags |= IEEE80211_NODE_ERP; @@ -2177,8 +2197,7 @@ break; } if (aid >= vap->iv_max_aid) { - IEEE80211_SEND_MGMT(ni, resp, - IEEE80211_REASON_ASSOC_TOOMANY); + IEEE80211_SEND_MGMT(ni, resp, IEEE80211_STATUS_TOOMANY); ieee80211_node_leave(ni); return; } @@ -2241,7 +2260,7 @@ ic->ic_flags |= IEEE80211_F_SHPREAMBLE; ic->ic_flags &= ~IEEE80211_F_USEBARKER; } - ieee80211_notify_erp(ic); + ieee80211_notify_erp_locked(ic); } /* ==== //depot/projects/usb/src/sys/net80211/ieee80211_var.h#8 (text+ko) ==== @@ -23,7 +23,7 @@ * (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/net80211/ieee80211_var.h,v 1.58 2008/05/28 23:19:20 sam Exp $ + * $FreeBSD: src/sys/net80211/ieee80211_var.h,v 1.59 2008/06/07 18:38:02 sam Exp $ */ #ifndef _NET80211_IEEE80211_VAR_H_ #define _NET80211_IEEE80211_VAR_H_ @@ -227,7 +227,8 @@ /* new station association callback/notification */ void (*ic_newassoc)(struct ieee80211_node *, int); /* node state management */ - struct ieee80211_node* (*ic_node_alloc)(struct ieee80211_node_table *); + struct ieee80211_node* (*ic_node_alloc)(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); void (*ic_node_free)(struct ieee80211_node *); void (*ic_node_cleanup)(struct ieee80211_node *); void (*ic_node_age)(struct ieee80211_node *); ==== //depot/projects/usb/src/sys/powerpc/conf/GENERIC#9 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/powerpc/conf/GENERIC,v 1.78 2008/05/21 03:36:53 obrien Exp $ +# $FreeBSD: src/sys/powerpc/conf/GENERIC,v 1.79 2008/06/07 22:58:32 marcel Exp $ cpu AIM ident GENERIC @@ -106,6 +106,7 @@ # PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support device bge # Broadcom BCM570xx Gigabit Ethernet +device bm # Apple BMAC Ethernet device gem # Sun GEM/Sun ERI/Apple GMAC device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) ==== //depot/projects/usb/src/sys/powerpc/conf/NOTES#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/powerpc/conf/NOTES,v 1.17 2008/04/27 22:33:42 marcel Exp $ +# $FreeBSD: src/sys/powerpc/conf/NOTES,v 1.18 2008/06/08 01:58:11 marcel Exp $ # # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. @@ -24,6 +24,7 @@ # Standard busses device pci +device bm # Apple BMAC (Big Mac Ethernet) device ofwd # Open Firmware disks From owner-p4-projects@FreeBSD.ORG Sun Jun 8 15:44:54 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 01E7C1065675; Sun, 8 Jun 2008 15:44:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B726A1065673 for ; Sun, 8 Jun 2008 15:44:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7F3668FC14 for ; Sun, 8 Jun 2008 15:44:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58FirHs037991 for ; Sun, 8 Jun 2008 15:44:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58FirtH037989 for perforce@freebsd.org; Sun, 8 Jun 2008 15:44:53 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 15:44:53 GMT Message-Id: <200806081544.m58FirtH037989@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143123 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 15:44:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=143123 Change 143123 by hselasky@hselasky_laptop001 on 2008/06/08 15:44:32 Compile fix. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ums.c#44 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ums.c#44 (text+ko) ==== @@ -59,6 +59,8 @@ #include #include +#include "usbdevs.h" + #ifdef USB_DEBUG #define DPRINTF(n,fmt,...) \ do { if (ums_debug > (n)) { \ From owner-p4-projects@FreeBSD.ORG Sun Jun 8 17:58:51 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 751571065673; Sun, 8 Jun 2008 17:58:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 365F61065670 for ; Sun, 8 Jun 2008 17:58:51 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe03.swip.net [212.247.154.65]) by mx1.freebsd.org (Postfix) with ESMTP id 7CA9D8FC21 for ; Sun, 8 Jun 2008 17:58:50 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=yL8b0sc9nZwA:15 a=-SX32B4Fm2IA:10 a=UlUzKLwsL7l1WSYqPADo3w==:17 a=6I5d2MoRAAAA:8 a=LHLz_nmGF45C4_2UbgwA:9 a=pUrHvpkKyBif-KjOKJ0A:7 a=G9cS-AoDIx4L7SrivRwfsjA861sA:4 a=50e4U0PicR4A:10 Received: from [62.113.132.30] (account mc467741@c2i.net [62.113.132.30] verified) by mailfe03.swip.net (CommuniGate Pro SMTP 5.1.13) with ESMTPA id 972689029 for perforce@freebsd.org; Sun, 08 Jun 2008 19:58:46 +0200 From: Hans Petter Selasky To: Perforce Change Reviews Date: Sun, 8 Jun 2008 20:00:15 +0200 User-Agent: KMail/1.9.7 References: <200806081504.m58F4CtW034713@repoman.freebsd.org> In-Reply-To: <200806081504.m58F4CtW034713@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200806082000.15982.hselasky@c2i.net> Cc: Subject: Re: PERFORCE change 143121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 17:58:51 -0000 Hi, I got the following when trying to boot my P4 branch on an ARM board: Fatal kernel mode data abort: 'Alignment Fault 3' trapframe: 0xc6641988 FSR=00000003, FAR=6f6c203a, spsr=600000d3 r0 =60000093, r1 =c150c230, r2 =c150c230, r3 =00000002 r4 =c14558e0, r5 =00000000, r6 =6f6c203a, r7 =c150c230 r8 =c6641aa0, r9 =c6641e30, r10=00000000, r11=c66419f4 r12=c66419d4, ssp=c66419d4, slr=c01f7130, pc =c00b4f1c [thread pid 30 tid 100045 ] Stopped at _thread_lock_flags+0x24: ldr r4, [r6] db> bt Tracing pid 30 tid 100045 td 0xc150c230 db_trace_thread() at db_trace_thread+0x10 scp=0xc01f3a38 rlv=0xc00190bc (db_skip_to_eol+0x498) rsp=0xc6641688 rfp=0xc66416a4 ------ scp=0xc01f63cc rlv=0xc0205b3c (irq_entry+0x98) rsp=0xc6641aa0 rfp=0xc6641b08 r6=0x000001b0 r5=0xffff1004 r4=0xc0aa0728 vop_stdlock() at vop_stdlock+0x10 scp=0xc0121858 rlv=0xc020f6a4 (VOP_LOCK1_APV+0x74) rsp=0xc6641b0c rfp=0xc6641b20 VOP_LOCK1_APV() at VOP_LOCK1_APV+0x10 scp=0xc020f640 rlv=0xc01c7380 (ffs_flushfiles+0x361c) rsp=0xc6641b24 rfp=0xc6641b30 r5=0xc6641b50 r4=0xc0aa7f4c ffs_flushfiles() at ffs_flushfiles+0x3614 scp=0xc01c7378 rlv=0xc020f6a4 (VOP_LOCK1_APV+0x74) rsp=0xc6641b34 rfp=0xc6641b48 VOP_LOCK1_APV() at VOP_LOCK1_APV+0x10 scp=0xc020f640 rlv=0xc0137ffc (_vn_lock+0x48) rsp=0xc6641b4c rfp=0xc6641b84 r5=0xc1498a78 r4=0x00080400 _vn_lock() at _vn_lock+0x10 scp=0xc0137fc4 rlv=0xc01245a0 (lookup+0xe4) rsp=0xc6641b88 rfp=0xc6641be0 r8=0xc150c230 r7=0xc14f2d00 r6=0xc6641cc0 r5=0xc1498a78 r4=0x00000000 lookup() at lookup+0x10 scp=0xc01244cc rlv=0xc01254c0 (namei+0x3dc) rsp=0xc6641be4 rfp=0xc6641c48 r10=0x00000000 r9=0xc6641e30 r8=0xc150c230 r7=0xc14f2d00 r6=0xc6641cec r5=0xc6641cc0 r4=0x00000000 namei() at namei+0x10 scp=0xc01250f4 rlv=0xc0130974 (kern_statat+0x64) rsp=0xc6641c4c rfp=0xc6641d34 r10=0xc14f72b0 r8=0xbfffe398 r7=0xc6641cc0 r6=0x00000000 r5=0xc6641d54 r4=0xc150c230 kern_statat() at kern_statat+0x10 scp=0xc0130920 rlv=0xc0130b24 (kern_stat+0x28) rsp=0xc6641d38 rfp=0xc6641d4c r10=0xc14f72b0 r8=0x000000bc r7=0xc6641eac r6=0x00000000 r5=0xc6641d54 r4=0xc6641e30 kern_stat() at kern_stat+0x10 scp=0xc0130b0c rlv=0xc0130bac (stat+0x28) rsp=0xc6641d50 rfp=0xc6641dd4 stat() at stat+0x10 scp=0xc0130b94 rlv=0xc0200c30 (swi_handler+0x2d4) rsp=0xc6641dd8 rfp=0xc6641ea8 r5=0xc150c230 r4=0x00000002 swi_handler() at swi_handler+0x10 scp=0xc020096c rlv=0xc01f548c (swi_entry+0x40) rsp=0xc6641eac rfp=0xbfffdf38 r10=0x00104800 r9=0x00000000 r8=0x00000000 r7=0xbfffe398 r6=0x00000000 r5=0x0010c160 r4=0x00000000 Any clues ? --HPS On Sunday 08 June 2008, Hans Petter Selasky wrote: > http://perforce.freebsd.org/chv.cgi?CH=143121 > > Change 143121 by hselasky@hselasky_laptop001 on 2008/06/08 15:03:46 > > > IFC @ 143119 > > Catch up with Sam's latest changes. > From owner-p4-projects@FreeBSD.ORG Sun Jun 8 18:14:24 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30E161065673; Sun, 8 Jun 2008 18:14:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6FAB106566B for ; Sun, 8 Jun 2008 18:14:23 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BFD9E8FC1D for ; Sun, 8 Jun 2008 18:14:23 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58IENuc068012 for ; Sun, 8 Jun 2008 18:14:23 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58IEN1S068010 for perforce@freebsd.org; Sun, 8 Jun 2008 18:14:23 GMT (envelope-from sam@freebsd.org) Date: Sun, 8 Jun 2008 18:14:23 GMT Message-Id: <200806081814.m58IEN1S068010@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 Cc: Subject: PERFORCE change 143124 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 18:14:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=143124 Change 143124 by sam@sam_ebb on 2008/06/08 18:14:11 handle max_linkhdr large enough to force overflow of an inline mbuf when forming the tcpip hdr Affected files ... .. //depot/projects/vap/sys/netinet/tcp_output.c#9 edit .. //depot/projects/vap/sys/netinet/tcp_subr.c#10 edit .. //depot/projects/vap/sys/netinet/tcp_syncache.c#10 edit .. //depot/projects/vap/sys/netinet/tcp_timewait.c#4 edit .. //depot/projects/vap/sys/sys/mbuf.h#14 edit Differences ... ==== //depot/projects/vap/sys/netinet/tcp_output.c#9 (text+ko) ==== @@ -735,14 +735,10 @@ } } -/*#ifdef DIAGNOSTIC*/ -#ifdef INET6 +#ifdef DIAGNOSTIC if (max_linkhdr + hdrlen > MCLBYTES) -#else - if (max_linkhdr + hdrlen > MHLEN) + panic("tcphdr too big"); #endif - panic("tcphdr too big"); -/*#endif*/ /* * Grab a header mbuf, attaching a copy of data to @@ -751,7 +747,7 @@ */ if (len) { struct mbuf *mb; - u_int moff; + u_int moff, trailingspace; if ((tp->t_flags & TF_FORCEDATA) && len == 1) tcpstat.tcps_sndprobe++; @@ -775,23 +771,18 @@ m->m_len += hdrlen; m->m_data -= hdrlen; #else - MGETHDR(m, M_DONTWAIT, MT_DATA); + if (hdrlen + max_linkhdr <= MHLEN) { + m = m_gethdr(M_DONTWAIT, MT_DATA); + trailingspace = MHLEN - (hdrlen + max_linkhdr); + } else { + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + trailingspace = MCLBYTES - (hdrlen + max_linkhdr); + } if (m == NULL) { SOCKBUF_UNLOCK(&so->so_snd); error = ENOBUFS; goto out; } -#ifdef INET6 - if (MHLEN < hdrlen + max_linkhdr) { - MCLGET(m, M_DONTWAIT); - if ((m->m_flags & M_EXT) == 0) { - SOCKBUF_UNLOCK(&so->so_snd); - m_freem(m); - error = ENOBUFS; - goto out; - } - } -#endif m->m_data += max_linkhdr; m->m_len = hdrlen; @@ -801,7 +792,7 @@ */ mb = sbsndptr(&so->so_snd, off, len, &moff); - if (len <= MHLEN - hdrlen - max_linkhdr) { + if (len <= trailingspace) { m_copydata(mb, moff, (int)len, mtod(m, caddr_t) + hdrlen); m->m_len += len; @@ -834,7 +825,7 @@ tcpstat.tcps_sndurg++; else tcpstat.tcps_sndwinup++; - +#if 0 MGETHDR(m, M_DONTWAIT, MT_DATA); if (m == NULL) { error = ENOBUFS; @@ -848,6 +839,21 @@ #endif m->m_data += max_linkhdr; m->m_len = hdrlen; +#else + if (hdrlen + max_linkhdr <= MHLEN) + m = m_gethdr(M_DONTWAIT, MT_DATA); + else + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + if (m == NULL) { + error = ENOBUFS; + goto out; + } + if (hdrlen + max_linkhdr <= MHLEN) + MH_ALIGN(m, hdrlen); + else + MCL_ALIGN(m, hdrlen); + m->m_len = hdrlen; +#endif } SOCKBUF_UNLOCK_ASSERT(&so->so_snd); m->m_pkthdr.rcvif = (struct ifnet *)0; ==== //depot/projects/vap/sys/netinet/tcp_subr.c#10 (text+ko) ==== @@ -291,7 +291,7 @@ #endif /* INET6 */ if (max_protohdr < TCP_MINPROTOHDR) max_protohdr = TCP_MINPROTOHDR; - if (max_linkhdr + TCP_MINPROTOHDR > MHLEN) + if (max_linkhdr + TCP_MINPROTOHDR > MCLBYTES) panic("tcp_init"); #undef TCP_MINPROTOHDR /* @@ -412,7 +412,7 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m, tcp_seq ack, tcp_seq seq, int flags) { - int tlen; + int hdrlen, tlen; int win = 0; struct ip *ip; struct tcphdr *nth; @@ -446,11 +446,28 @@ } } if (m == NULL) { +#if 0 m = m_gethdr(M_DONTWAIT, MT_DATA); if (m == NULL) return; tlen = 0; m->m_data += max_linkhdr; +#else +#ifdef INET6 + if (isipv6) + hdrlen = sizeof (struct ip6_hdr) + + sizeof (struct tcphdr); + else +#endif + hdrlen = sizeof (struct tcpiphdr); + if (hdrlen + max_linkhdr <= MHLEN) + m = m_gethdr(M_DONTWAIT, MT_DATA); + else + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + if (m == NULL) + return; + m->m_data += max_linkhdr; +#endif #ifdef INET6 if (isipv6) { bcopy((caddr_t)ip6, mtod(m, caddr_t), ==== //depot/projects/vap/sys/netinet/tcp_syncache.c#10 (text+ko) ==== @@ -1285,12 +1285,19 @@ if (sc->sc_peer_mss) mssopt = max( min(sc->sc_peer_mss, mssopt), tcp_minmss); +#if 0 /* XXX: Assume that the entire packet will fit in a header mbuf. */ KASSERT(max_linkhdr + tlen + TCP_MAXOLEN <= MHLEN, ("syncache: mbuf too small")); /* Create the IP+TCP header from scratch. */ m = m_gethdr(M_DONTWAIT, MT_DATA); +#else + if (max_linkhdr + tlen + TCP_MAXOLEN <= MHLEN) + m = m_gethdr(M_DONTWAIT, MT_DATA); + else + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); +#endif if (m == NULL) return (ENOBUFS); #ifdef MAC ==== //depot/projects/vap/sys/netinet/tcp_timewait.c#4 (text+ko) ==== @@ -534,7 +534,20 @@ INP_WLOCK_ASSERT(inp); +#ifdef INET6 + if (isipv6) + hdrlen = sizeof(struct ip6_hdr) + sizeof(struct tcphdr); + else +#endif + hdrlen = sizeof(struct tcpiphdr); +#if 0 m = m_gethdr(M_DONTWAIT, MT_DATA); +#else + if (max_linkhdr + hdrlen + TCP_MAXOLEN <= MHLEN) + m = m_gethdr(M_DONTWAIT, MT_DATA); + else + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); +#endif if (m == NULL) return (ENOBUFS); m->m_data += max_linkhdr; @@ -545,14 +558,12 @@ #ifdef INET6 if (isipv6) { - hdrlen = sizeof(struct ip6_hdr) + sizeof(struct tcphdr); ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)(ip6 + 1); tcpip_fillheaders(inp, ip6, th); } else #endif { - hdrlen = sizeof(struct tcpiphdr); ip = mtod(m, struct ip *); th = (struct tcphdr *)(ip + 1); tcpip_fillheaders(inp, ip, th); @@ -572,9 +583,9 @@ m->m_len = hdrlen + optlen; m->m_pkthdr.len = m->m_len; - +#if 0 KASSERT(max_linkhdr + m->m_len <= MHLEN, ("tcptw: mbuf too small")); - +#endif th->th_seq = htonl(tw->snd_nxt); th->th_ack = htonl(tw->rcv_nxt); th->th_off = (sizeof(struct tcphdr) + optlen) >> 2; ==== //depot/projects/vap/sys/sys/mbuf.h#14 (text+ko) ==== @@ -677,6 +677,17 @@ } while (0) /* + * As above, for mbufs allocated with m_getcl. + */ +#define MCL_ALIGN(m, len) do { \ + KASSERT((m)->m_flags & M_PKTHDR && ((m)->m_flags & M_EXT), \ + ("%s: MCL_ALIGN not PKTHDR cluster", __func__)); \ + KASSERT((m)->m_data == (m)->m_ext.ext_buf, \ + ("%s: MCL_ALIGN not a virgin mbuf", __func__)); \ + (m)->m_data += (MCLBYTES - (len)) & ~(sizeof(long) - 1); \ +} while (0) + +/* * Compute the amount of space available before the current start of data in * an mbuf. * From owner-p4-projects@FreeBSD.ORG Sun Jun 8 19:04:14 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6789B1065675; Sun, 8 Jun 2008 19:04:14 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2970E106566B for ; Sun, 8 Jun 2008 19:04:14 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 06AAC8FC0C for ; Sun, 8 Jun 2008 19:04:14 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58J4DmH072960 for ; Sun, 8 Jun 2008 19:04:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58J4DGl072958 for perforce@freebsd.org; Sun, 8 Jun 2008 19:04:13 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 19:04:13 GMT Message-Id: <200806081904.m58J4DGl072958@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143127 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 19:04:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=143127 Change 143127 by hselasky@hselasky_laptop001 on 2008/06/08 19:03:27 Fix panics when at USB WLAN device detach. Sam: Please import this patch into your tree. The system was crashing every time I unplugged the WLAN stick. Affected files ... .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#8 edit Differences ... ==== //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#8 (text+ko) ==== @@ -241,6 +241,8 @@ FREEAPPIE(vap->iv_appie_assocresp); FREEAPPIE(vap->iv_appie_wpa); #undef FREEAPPIE + callout_drain(&vap->iv_swbmiss); + callout_drain(&vap->iv_mgtsend); } /* From owner-p4-projects@FreeBSD.ORG Sun Jun 8 19:09:19 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8E2C5106567D; Sun, 8 Jun 2008 19:09:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FD4F1065679 for ; Sun, 8 Jun 2008 19:09:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D0978FC18 for ; Sun, 8 Jun 2008 19:09:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58J9J9f073462 for ; Sun, 8 Jun 2008 19:09:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58J9JZS073460 for perforce@freebsd.org; Sun, 8 Jun 2008 19:09:19 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 19:09:19 GMT Message-Id: <200806081909.m58J9JZS073460@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143128 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 19:09:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=143128 Change 143128 by hselasky@hselasky_laptop001 on 2008/06/08 19:08:52 Final USB WLAN patches after IFC @ 143078 . URAL, RUM and ZYD USB WLAN adapters have been tested and found to work in STA mode at least. Sam: The USB WLAN drivers were writing to "ic_myaddr" at "(void *)0", because the IC structure is no longer in the softc. So you need to store it in the softc and then copy it to the IC later. Look at the "sc_myaddr" lines in the diff. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_rum.c#33 edit .. //depot/projects/usb/src/sys/dev/usb/if_rumvar.h#7 edit .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#59 edit .. //depot/projects/usb/src/sys/dev/usb/if_uralvar.h#22 edit .. //depot/projects/usb/src/sys/dev/usb/if_zyd.c#40 edit .. //depot/projects/usb/src/sys/dev/usb/if_zydreg.h#16 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_rum.c#33 (text+ko) ==== @@ -162,6 +162,8 @@ static int rum_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params); static void rum_setup_desc_and_tx(struct rum_softc *sc, struct mbuf *m, uint32_t flags, uint16_t xflags, uint16_t rate); static int rum_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg); +static void rum_update_mcast_cb(struct ifnet *ifp); +static void rum_update_promisc_cb(struct ifnet *ifp); /* various supported device vendors/products */ static const struct usb_devno rum_devs[] = { @@ -823,6 +825,8 @@ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; IFQ_SET_READY(&ifp->if_snd); + bcopy(sc->sc_myaddr, ic->ic_myaddr, sizeof(ic->ic_myaddr)); + ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ ic->ic_opmode = IEEE80211_M_STA; @@ -885,7 +889,8 @@ ic->ic_newassoc = &rum_newassoc; ic->ic_raw_xmit = &rum_raw_xmit_cb; ic->ic_node_alloc = &rum_node_alloc; - + ic->ic_update_mcast = &rum_update_mcast_cb; + ic->ic_update_promisc = &rum_update_promisc_cb; ic->ic_scan_start = &rum_scan_start_cb; ic->ic_scan_end = &rum_scan_end_cb; ic->ic_set_channel = &rum_set_channel_cb; @@ -1113,14 +1118,15 @@ if (ieee80211_input(ni, m, rssi, RT2573_NOISE_FLOOR, 0)) { /* ignore */ } + /* node is no longer needed */ ieee80211_free_node(ni); } else { if (ieee80211_input_all(ic, m, rssi, RT2573_NOISE_FLOOR, 0)) { /* ignore */ } } - /* node is no longer needed */ - ieee80211_free_node(ni); + + mtx_lock(&(sc->sc_mtx)); } return; @@ -1461,18 +1467,13 @@ { struct rum_softc *sc = ifp->if_softc; struct ieee80211com *ic = ifp->if_l2com; - int error = 0; + int error; switch (cmd) { case SIOCSIFFLAGS: - mtx_lock(&(sc->sc_mtx)); if (ifp->if_flags & IFF_UP) { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - usbd_config_td_queue_command - (&(sc->sc_config_td), &rum_config_copy, - &rum_cfg_update_promisc, 0, 0); - } else { + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { usbd_config_td_queue_command (&(sc->sc_config_td), &rum_cfg_pre_init, &rum_cfg_init, 0, 0); @@ -1485,6 +1486,7 @@ } } mtx_unlock(&(sc->sc_mtx)); + error = 0; break; case SIOCGIFMEDIA: @@ -1495,9 +1497,6 @@ default: error = ether_ioctl(ifp, cmd, data); } - - if (!error) - ieee80211_start_all(ic); return (error); } @@ -2078,12 +2077,10 @@ static void rum_cfg_read_eeprom(struct rum_softc *sc) { - struct ifnet *ifp = sc->sc_ifp; - struct ieee80211com *ic = ifp->if_l2com; uint16_t val; /* read MAC address */ - rum_cfg_eeprom_read(sc, RT2573_EEPROM_ADDRESS, ic->ic_myaddr, 6); + rum_cfg_eeprom_read(sc, RT2573_EEPROM_ADDRESS, sc->sc_myaddr, 6); val = rum_cfg_eeprom_read_2(sc, RT2573_EEPROM_ANTENNA); sc->sc_rf_rev = (val >> 11) & 0x1f; @@ -2269,7 +2266,6 @@ /* clear STA registers */ rum_cfg_read_multi(sc, RT2573_STA_CSR0, sc->sc_sta, sizeof(sc->sc_sta)); - /* set MAC address */ rum_cfg_set_macaddr(sc, cc->ic_myaddr); @@ -2286,12 +2282,21 @@ if ((sc->sc_flags & RUM_FLAG_LL_READY) && (sc->sc_flags & RUM_FLAG_HL_READY)) { + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; /* * start the USB transfers, if not already started: */ usbd_transfer_start(sc->sc_xfer[1]); usbd_transfer_start(sc->sc_xfer[0]); + + /* + * start IEEE802.11 layer + */ + mtx_unlock(&(sc->sc_mtx)); + ieee80211_start_all(ic); + mtx_lock(&(sc->sc_mtx)); } /* update Rx filter */ tmp = rum_cfg_read(sc, RT2573_TXRX_CSR0) & 0xffff; @@ -2925,3 +2930,23 @@ mtx_unlock(&(sc->sc_mtx)); return (0); } + +static void +rum_update_mcast_cb(struct ifnet *ifp) +{ + /* not supported */ + return; +} + +static void +rum_update_promisc_cb(struct ifnet *ifp) +{ + struct rum_softc *sc = ifp->if_softc; + + mtx_lock(&(sc->sc_mtx)); + usbd_config_td_queue_command + (&(sc->sc_config_td), &rum_config_copy, + &rum_cfg_update_promisc, 0, 0); + mtx_unlock(&(sc->sc_mtx)); + return; +} ==== //depot/projects/usb/src/sys/dev/usb/if_rumvar.h#7 (text+ko) ==== @@ -164,6 +164,7 @@ uint8_t sc_amrr_timer; uint8_t sc_name[32]; uint8_t sc_beacon_buf[0x800]; + uint8_t sc_myaddr[IEEE80211_ADDR_LEN]; int8_t sc_rssi_2ghz_corr; int8_t sc_rssi_5ghz_corr; ==== //depot/projects/usb/src/sys/dev/usb/if_ural.c#59 (text+ko) ==== @@ -168,6 +168,8 @@ static void ural_tx_raw(struct ural_softc *sc, struct mbuf *m, struct ieee80211_node *ni, const struct ieee80211_bpf_params *params); static int ural_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params); static void ural_setup_desc_and_tx(struct ural_softc *sc, struct mbuf *m, uint32_t flags, uint16_t rate); +static void ural_update_mcast_cb(struct ifnet *ifp); +static void ural_update_promisc_cb(struct ifnet *ifp); /* various supported device vendors/products */ static const struct usb_devno ural_devs[] = { @@ -835,6 +837,8 @@ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; IFQ_SET_READY(&ifp->if_snd); + bcopy(sc->sc_myaddr, ic->ic_myaddr, sizeof(ic->ic_myaddr)); + ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ ic->ic_opmode = IEEE80211_M_STA; @@ -870,7 +874,8 @@ ic->ic_newassoc = &ural_newassoc; ic->ic_raw_xmit = &ural_raw_xmit_cb; ic->ic_node_alloc = &ural_node_alloc; - + ic->ic_update_mcast = &ural_update_mcast_cb; + ic->ic_update_promisc = &ural_update_promisc_cb; ic->ic_scan_start = &ural_scan_start_cb; ic->ic_scan_end = &ural_scan_end_cb; ic->ic_set_channel = &ural_set_channel_cb; @@ -1208,6 +1213,8 @@ uint16_t len; uint8_t remainder; + DPRINTF(sc, 0, "in\n"); + if (sc->sc_tx_queue.ifq_len >= IFQ_MAXLEN) { /* free packet */ ural_tx_freem(m); @@ -1297,6 +1304,8 @@ ural_tx_freem(m); return; } + DPRINTF(sc, 0, " %u %u (out)\n", sizeof(sc->sc_tx_desc), m->m_pkthdr.len); + bcopy(&(sc->sc_tx_desc), mm->m_data, sizeof(sc->sc_tx_desc)); mm->m_len = sizeof(sc->sc_tx_desc); @@ -1451,18 +1460,14 @@ { struct ural_softc *sc = ifp->if_softc; struct ieee80211com *ic = ifp->if_l2com; - int error = 0; + int error; switch (cmd) { case SIOCSIFFLAGS: mtx_lock(&(sc->sc_mtx)); if (ifp->if_flags & IFF_UP) { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { usbd_config_td_queue_command - (&(sc->sc_config_td), &ural_config_copy, - &ural_cfg_update_promisc, 0, 0); - } else { - usbd_config_td_queue_command (&(sc->sc_config_td), &ural_cfg_pre_init, &ural_cfg_init, 0, 0); } @@ -1474,6 +1479,7 @@ } } mtx_unlock(&(sc->sc_mtx)); + error = 0; break; case SIOCGIFMEDIA: @@ -1484,8 +1490,6 @@ default: error = ether_ioctl(ifp, cmd, data); } - if (!error) - ieee80211_start_all(ic); return (error); } @@ -2028,8 +2032,6 @@ static void ural_cfg_read_eeprom(struct ural_softc *sc) { - struct ifnet *ifp = sc->sc_ifp; - struct ieee80211com *ic = ifp->if_l2com; uint16_t val; ural_cfg_eeprom_read(sc, RAL_EEPROM_CONFIG0, &val, 2); @@ -2046,8 +2048,8 @@ DPRINTF(sc, 0, "val = 0x%04x\n", val); /* read MAC address */ - ural_cfg_eeprom_read(sc, RAL_EEPROM_ADDRESS, ic->ic_myaddr, - sizeof(ic->ic_myaddr)); + ural_cfg_eeprom_read(sc, RAL_EEPROM_ADDRESS, sc->sc_myaddr, + sizeof(sc->sc_myaddr)); /* read default values for BBP registers */ ural_cfg_eeprom_read(sc, RAL_EEPROM_BBP_BASE, sc->sc_bbp_prom, @@ -2199,12 +2201,21 @@ if ((sc->sc_flags & URAL_FLAG_LL_READY) && (sc->sc_flags & URAL_FLAG_HL_READY)) { + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; /* * start the USB transfers, if not already started: */ usbd_transfer_start(sc->sc_xfer[1]); usbd_transfer_start(sc->sc_xfer[0]); + + /* + * start IEEE802.11 layer + */ + mtx_unlock(&(sc->sc_mtx)); + ieee80211_start_all(ic); + mtx_lock(&(sc->sc_mtx)); } /* * start Rx @@ -2751,3 +2762,23 @@ mtx_unlock(&(sc->sc_mtx)); return (0); } + +static void +ural_update_mcast_cb(struct ifnet *ifp) +{ + /* not supported */ + return; +} + +static void +ural_update_promisc_cb(struct ifnet *ifp) +{ + struct ural_softc *sc = ifp->if_softc; + + mtx_lock(&(sc->sc_mtx)); + usbd_config_td_queue_command + (&(sc->sc_config_td), &ural_config_copy, + &ural_cfg_update_promisc, 0, 0); + mtx_unlock(&(sc->sc_mtx)); + return; +} ==== //depot/projects/usb/src/sys/dev/usb/if_uralvar.h#22 (text+ko) ==== @@ -156,4 +156,5 @@ uint8_t sc_nb_ant; uint8_t sc_amrr_timer; uint8_t sc_name[32]; + uint8_t sc_myaddr[IEEE80211_ADDR_LEN]; }; ==== //depot/projects/usb/src/sys/dev/usb/if_zyd.c#40 (text+ko) ==== @@ -136,7 +136,6 @@ static void zyd_cfg_set_mac_addr(struct zyd_softc *sc, const uint8_t *addr); static void zyd_cfg_switch_radio(struct zyd_softc *sc, uint8_t onoff); static void zyd_cfg_set_bssid(struct zyd_softc *sc, uint8_t *addr); -static void zyd_start_transfers(struct zyd_softc *sc); static void zyd_start_cb(struct ifnet *ifp); static void zyd_init_cb(void *arg); static int zyd_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data); @@ -161,7 +160,8 @@ static void zyd_setup_desc_and_tx(struct zyd_softc *sc, struct mbuf *m, uint16_t rate); static int zyd_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg); static void zyd_cfg_amrr_start(struct zyd_softc *sc); -static void zyd_update_mcast(struct ifnet *ifp); +static void zyd_update_mcast_cb(struct ifnet *ifp); +static void zyd_update_promisc_cb(struct ifnet *ifp); static const struct zyd_phy_pair zyd_def_phy[] = ZYD_DEF_PHY; static const struct zyd_phy_pair zyd_def_phyB[] = ZYD_DEF_PHYB; @@ -1815,13 +1815,13 @@ /* read MAC address */ zyd_cfg_read32(sc, ZYD_EEPROM_MAC_ADDR_P1, &tmp); - sc->sc_ic.ic_myaddr[0] = tmp & 0xff; - sc->sc_ic.ic_myaddr[1] = tmp >> 8; - sc->sc_ic.ic_myaddr[2] = tmp >> 16; - sc->sc_ic.ic_myaddr[3] = tmp >> 24; + sc->sc_myaddr[0] = tmp & 0xff; + sc->sc_myaddr[1] = tmp >> 8; + sc->sc_myaddr[2] = tmp >> 16; + sc->sc_myaddr[3] = tmp >> 24; zyd_cfg_read32(sc, ZYD_EEPROM_MAC_ADDR_P2, &tmp); - sc->sc_ic.ic_myaddr[4] = tmp & 0xff; - sc->sc_ic.ic_myaddr[5] = tmp >> 8; + sc->sc_myaddr[4] = tmp & 0xff; + sc->sc_myaddr[5] = tmp >> 8; zyd_cfg_read32(sc, ZYD_EEPROM_POD, &tmp); sc->sc_rf_rev = tmp & 0x0f; @@ -1960,10 +1960,10 @@ printf("%s: HMAC ZD1211%s, FW %02x.%02x, RF %s, PA %x, address %02x:%02x:%02x:%02x:%02x:%02x\n", sc->sc_name, (sc->sc_mac_rev == ZYD_ZD1211) ? "" : "B", sc->sc_fw_rev >> 8, sc->sc_fw_rev & 0xff, zyd_rf_name(sc->sc_rf_rev), - sc->sc_pa_rev, sc->sc_ic.ic_myaddr[0], - sc->sc_ic.ic_myaddr[1], sc->sc_ic.ic_myaddr[2], - sc->sc_ic.ic_myaddr[3], sc->sc_ic.ic_myaddr[4], - sc->sc_ic.ic_myaddr[5]); + sc->sc_pa_rev, sc->sc_myaddr[0], + sc->sc_myaddr[1], sc->sc_myaddr[2], + sc->sc_myaddr[3], sc->sc_myaddr[4], + sc->sc_myaddr[5]); mtx_unlock(&(sc->sc_mtx)); @@ -1991,7 +1991,8 @@ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; IFQ_SET_READY(&ifp->if_snd); - /* Network interface setup */ + bcopy(sc->sc_myaddr, ic->ic_myaddr, sizeof(ic->ic_myaddr)); + ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; ic->ic_opmode = IEEE80211_M_STA; @@ -2026,7 +2027,8 @@ ic->ic_set_channel = &zyd_set_channel_cb; ic->ic_vap_create = &zyd_vap_create; ic->ic_vap_delete = &zyd_vap_delete; - ic->ic_update_mcast = zyd_update_mcast; + ic->ic_update_mcast = &zyd_update_mcast_cb; + ic->ic_update_promisc = &zyd_update_promisc_cb; sc->sc_rates = ieee80211_get_ratetable(ic->ic_curchan); @@ -2436,6 +2438,24 @@ ZYD_FLAG_BULK_WRITE_STALL | ZYD_FLAG_LL_READY); + if ((sc->sc_flags & ZYD_FLAG_LL_READY) && + (sc->sc_flags & ZYD_FLAG_HL_READY)) { + struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; + + /* + * start the USB transfers, if not already started: + */ + usbd_transfer_start(sc->sc_xfer[1]); + usbd_transfer_start(sc->sc_xfer[0]); + + /* + * start IEEE802.11 layer + */ + mtx_unlock(&(sc->sc_mtx)); + ieee80211_start_all(ic); + mtx_lock(&(sc->sc_mtx)); + } return; } @@ -2490,16 +2510,27 @@ } static void -zyd_update_mcast(struct ifnet *ifp) +zyd_update_mcast_cb(struct ifnet *ifp) +{ + struct zyd_softc *sc = ifp->if_softc; + + mtx_lock(&(sc->sc_mtx)); + usbd_config_td_queue_command + (&(sc->sc_config_td), &zyd_config_copy, + &zyd_cfg_update_promisc, 0, 0); + mtx_unlock(&(sc->sc_mtx)); + return; +} + +static void +zyd_update_promisc_cb(struct ifnet *ifp) { struct zyd_softc *sc = ifp->if_softc; mtx_lock(&(sc->sc_mtx)); - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - usbd_config_td_queue_command - (&(sc->sc_config_td), &zyd_config_copy, - &zyd_cfg_update_promisc, 0, 0); - } + usbd_config_td_queue_command + (&(sc->sc_config_td), &zyd_config_copy, + &zyd_cfg_update_promisc, 0, 0); mtx_unlock(&(sc->sc_mtx)); return; } @@ -2545,21 +2576,6 @@ } static void -zyd_start_transfers(struct zyd_softc *sc) -{ - if ((sc->sc_flags & ZYD_FLAG_LL_READY) && - (sc->sc_flags & ZYD_FLAG_HL_READY)) { - - /* - * start the USB transfers, if not already started: - */ - usbd_transfer_start(sc->sc_xfer[ZYD_TR_BULK_DT_WR]); - usbd_transfer_start(sc->sc_xfer[ZYD_TR_BULK_DT_RD]); - } - return; -} - -static void zyd_start_cb(struct ifnet *ifp) { struct zyd_softc *sc = ifp->if_softc; @@ -2567,7 +2583,6 @@ mtx_lock(&(sc->sc_mtx)); usbd_transfer_start(sc->sc_xfer[ZYD_TR_BULK_DT_WR]); mtx_unlock(&(sc->sc_mtx)); - return; } @@ -2775,18 +2790,13 @@ { struct zyd_softc *sc = ifp->if_softc; struct ieee80211com *ic = ifp->if_l2com; - int error = 0; + int error; switch (cmd) { case SIOCSIFFLAGS: - mtx_lock(&(sc->sc_mtx)); if (ifp->if_flags & IFF_UP) { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - usbd_config_td_queue_command - (&(sc->sc_config_td), &zyd_config_copy, - &zyd_cfg_update_promisc, 0, 0); - } else { + if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { usbd_config_td_queue_command (&(sc->sc_config_td), &zyd_cfg_pre_init, &zyd_cfg_init, 0, 0); @@ -2799,6 +2809,7 @@ } } mtx_unlock(&(sc->sc_mtx)); + error = 0; break; case SIOCGIFMEDIA: @@ -2811,8 +2822,6 @@ error = ether_ioctl(ifp, cmd, data); break; } - if (!error) - ieee80211_start_all(ic); return (error); } @@ -2934,7 +2943,8 @@ { sc->sc_flags &= ~ZYD_FLAG_WAIT_COMMAND; - zyd_start_transfers(sc); + /* start write transfer, if not started */ + usbd_transfer_start(sc->sc_xfer[0]); return; } ==== //depot/projects/usb/src/sys/dev/usb/if_zydreg.h#16 (text+ko) ==== @@ -1218,13 +1218,10 @@ struct zyd_softc { void *sc_evilhack; /* XXX this pointer must be first */ - struct ieee80211_amrr sc_amrr; - struct ieee80211com sc_ic; struct zyd_rf sc_rf; struct usb_callout sc_watchdog; struct mtx sc_mtx; struct usbd_config_td sc_config_td; - struct ieee80211_beacon_offsets sc_bo; struct zyd_rx_radiotap_header sc_rxtap; struct zyd_tx_radiotap_header sc_txtap; struct zyd_cmd sc_intr_ibuf; @@ -1233,11 +1230,8 @@ struct zyd_ifq sc_tx_queue; struct ifnet *sc_ifp; - int (*sc_newstate) (struct ieee80211com *, - enum ieee80211_state, int); struct usbd_device *sc_udev; struct usbd_xfer *sc_xfer[ZYD_N_TRANSFER]; - struct bpf_if *sc_drvbpf; const struct ieee80211_rate_table *sc_rates; enum ieee80211_state sc_ns_state; @@ -1280,4 +1274,5 @@ uint8_t sc_amrr_timer; uint8_t sc_name[16]; + uint8_t sc_myaddr[IEEE80211_ADDR_LEN]; }; From owner-p4-projects@FreeBSD.ORG Sun Jun 8 22:11:37 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 21A6B1065677; Sun, 8 Jun 2008 22:11:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D733B106566C for ; Sun, 8 Jun 2008 22:11:36 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe15.swip.net [212.247.155.193]) by mx1.freebsd.org (Postfix) with ESMTP id 66BF38FC19 for ; Sun, 8 Jun 2008 22:11:36 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=yL8b0sc9nZwA:15 a=-SX32B4Fm2IA:10 a=UlUzKLwsL7l1WSYqPADo3w==:17 a=br34o5LcbUIDz3Ce2RIA:9 a=8_Uj2T42bnQ7VETILPfY4ATInGAA:4 a=50e4U0PicR4A:10 Received: from [62.113.132.30] (account mc467741@c2i.net [62.113.132.30] verified) by mailfe15.swip.net (CommuniGate Pro SMTP 5.1.13) with ESMTPA id 226399329 for perforce@freebsd.org; Sun, 08 Jun 2008 23:11:32 +0200 From: Hans Petter Selasky To: Perforce Change Reviews Date: Sun, 8 Jun 2008 23:13:03 +0200 User-Agent: KMail/1.9.7 References: <200806081504.m58F4CtW034713@repoman.freebsd.org> <200806082000.15982.hselasky@c2i.net> In-Reply-To: <200806082000.15982.hselasky@c2i.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200806082313.03865.hselasky@c2i.net> Cc: Subject: Re: PERFORCE change 143121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 22:11:37 -0000 Hi, It might look like that my "init" executable in the file system is out of date. The kernel boots fine up to the following point: Trying to mount root from ufs:/dev/md0 warning: no time-of-day clock registered, system time will not be set accurately Jun 4 20:32:47 init: login_getclass: unknown class 'daemon' Fatal kernel mode data abort: 'Alignment Fault 3' trapframe: 0xc67f7a24 --HPS From owner-p4-projects@FreeBSD.ORG Sun Jun 8 22:12:24 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FBD0106568A; Sun, 8 Jun 2008 22:12:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F00A1065679 for ; Sun, 8 Jun 2008 22:12:24 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 095438FC0A for ; Sun, 8 Jun 2008 22:12:24 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58MCOMn006243 for ; Sun, 8 Jun 2008 22:12:24 GMT (envelope-from andenore@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58MCNQi006241 for perforce@freebsd.org; Sun, 8 Jun 2008 22:12:23 GMT (envelope-from andenore@FreeBSD.org) Date: Sun, 8 Jun 2008 22:12:23 GMT Message-Id: <200806082212.m58MCNQi006241@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andenore@FreeBSD.org using -f From: Anders Nore To: Perforce Change Reviews Cc: Subject: PERFORCE change 143136 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 22:12:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=143136 Change 143136 by andenore@andenore_laptop on 2008/06/08 22:11:43 Alot of syntax changing, mostly spaces replaced by tabs. I have added a pkg_convert program that converts some of the data to a bdb database, and the information is used in the pkg_info program by the functions isinstalledpkg() and matchinstalled(). A set of database helper functions is added to the library as well. Affected files ... .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/Makefile#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/Makefile#1 add .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/converter.c#1 add .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/pkg_convert.1#1 add .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/create/Makefile#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/delete/Makefile#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/Makefile#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/main.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/perform.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/show.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/database.c#1 add .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/lib.h#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/match.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/plist.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/str.c#2 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/version/Makefile#2 edit Differences ... ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/create/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/delete/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/main.c#2 (text+ko) ==== @@ -51,193 +51,197 @@ whead = malloc(sizeof(struct which_head)); if (whead == NULL) err(2, NULL); - TAILQ_INIT(whead); + TAILQ_INIT(whead); - pkgs = start = argv; - if (argc == 1) { - MatchType = MATCH_ALL; - Flags = SHOW_INDEX; - } - else while ((ch = getopt(argc, argv, Options)) != -1) { - switch(ch) { - case 'a': - MatchType = MATCH_ALL; - break; + if(cacheExists() == TRUE) { + openDatabase(PKG_DBCACHE_FILE); + } - case 'b': - UseBlkSz = TRUE; - break; - - case 'v': - Verbose++; - /* Reasonable definition of 'everything' */ - Flags = SHOW_COMMENT | SHOW_DESC | SHOW_PLIST | SHOW_INSTALL | - SHOW_DEINSTALL | SHOW_REQUIRE | SHOW_DISPLAY | SHOW_MTREE; - break; - - case 'E': - Flags |= SHOW_PKGNAME; - break; - - case 'I': - Flags |= SHOW_INDEX; - break; - - case 'p': - Flags |= SHOW_PREFIX; - break; - - case 'c': - Flags |= SHOW_COMMENT; - break; - - case 'd': - Flags |= SHOW_DESC; - break; - - case 'D': - Flags |= SHOW_DISPLAY; - break; - - case 'f': - Flags |= SHOW_PLIST; - break; - - case 'g': - Flags |= SHOW_CKSUM; - break; - - case 'G': - MatchType = MATCH_EXACT; - break; - - case 'i': - Flags |= SHOW_INSTALL; - break; - - case 'j': - Flags |= SHOW_REQUIRE; - break; - - case 'k': - Flags |= SHOW_DEINSTALL; - break; - - case 'K': - KeepPackage = TRUE; - break; - - case 'r': - Flags |= SHOW_DEPEND; - break; - - case 'R': - Flags |= SHOW_REQBY; - break; - - case 'L': - Flags |= SHOW_FILES; - break; - - case 'm': - Flags |= SHOW_MTREE; - break; - - case 's': - Flags |= SHOW_SIZE; - break; - - case 'o': - Flags |= SHOW_ORIGIN; - break; - - case 'O': - LookUpOrigin = strdup(optarg); - if (LookUpOrigin == NULL) - err(2, NULL); - break; - - case 'V': - Flags |= SHOW_FMTREV; - break; - - case 'l': - InfoPrefix = optarg; - break; - - case 'q': - Quiet = TRUE; - break; - - case 'Q': - Quiet = TRUE; - QUIET = TRUE; - break; - - case 't': - strlcpy(PlayPen, optarg, sizeof(PlayPen)); - break; - - case 'x': - MatchType = MATCH_REGEX; - break; - - case 'X': - MatchType = MATCH_EREGEX; - break; - - case 'e': - CheckPkg = optarg; - break; - - case 'W': - { - struct which_entry *entp; - - entp = calloc(1, sizeof(struct which_entry)); - if (entp == NULL) - err(2, NULL); - - strlcpy(entp->file, optarg, PATH_MAX); - entp->skip = FALSE; - TAILQ_INSERT_TAIL(whead, entp, next); - break; - } - - case 'P': - Flags = SHOW_PTREV; - break; - - case 'h': - case '?': - default: - usage(); - break; - } + pkgs = start = argv; + if (argc == 1) { + MatchType = MATCH_ALL; + Flags = SHOW_INDEX; + } else + while ((ch = getopt(argc, argv, Options)) != -1) { + switch(ch) { + case 'a': + MatchType = MATCH_ALL; + break; + + case 'b': + UseBlkSz = TRUE; + break; + + case 'v': + Verbose++; + /* Reasonable definition of 'everything' */ + Flags = SHOW_COMMENT | SHOW_DESC | SHOW_PLIST | SHOW_INSTALL | + SHOW_DEINSTALL | SHOW_REQUIRE | SHOW_DISPLAY | SHOW_MTREE; + break; + + case 'E': + Flags |= SHOW_PKGNAME; + break; + + case 'I': + Flags |= SHOW_INDEX; + break; + + case 'p': + Flags |= SHOW_PREFIX; + break; + + case 'c': + Flags |= SHOW_COMMENT; + break; + + case 'd': + Flags |= SHOW_DESC; + break; + + case 'D': + Flags |= SHOW_DISPLAY; + break; + + case 'f': + Flags |= SHOW_PLIST; + break; + + case 'g': + Flags |= SHOW_CKSUM; + break; + + case 'G': + MatchType = MATCH_EXACT; + break; + + case 'i': + Flags |= SHOW_INSTALL; + break; + + case 'j': + Flags |= SHOW_REQUIRE; + break; + + case 'k': + Flags |= SHOW_DEINSTALL; + break; + + case 'K': + KeepPackage = TRUE; + break; + + case 'r': + Flags |= SHOW_DEPEND; + break; + + case 'R': + Flags |= SHOW_REQBY; + break; + + case 'L': + Flags |= SHOW_FILES; + break; + + case 'm': + Flags |= SHOW_MTREE; + break; + + case 's': + Flags |= SHOW_SIZE; + break; + + case 'o': + Flags |= SHOW_ORIGIN; + break; + + case 'O': + LookUpOrigin = strdup(optarg); + if (LookUpOrigin == NULL) + err(2, NULL); + break; + + case 'V': + Flags |= SHOW_FMTREV; + break; + + case 'l': + InfoPrefix = optarg; + break; + + case 'q': + Quiet = TRUE; + break; + + case 'Q': + Quiet = TRUE; + QUIET = TRUE; + break; + + case 't': + strlcpy(PlayPen, optarg, sizeof(PlayPen)); + break; + + case 'x': + MatchType = MATCH_REGEX; + break; + + case 'X': + MatchType = MATCH_EREGEX; + break; + + case 'e': + CheckPkg = optarg; + break; + + case 'W': + { + struct which_entry *entp; + + entp = calloc(1, sizeof(struct which_entry)); + if (entp == NULL) + err(2, NULL); + + strlcpy(entp->file, optarg, PATH_MAX); + entp->skip = FALSE; + TAILQ_INSERT_TAIL(whead, entp, next); + break; + } + + case 'P': + Flags = SHOW_PTREV; + break; + + case 'h': + case '?': + default: + usage(); + break; + } } argc -= optind; argv += optind; - if (Flags & SHOW_PTREV) { - if (!Quiet) - printf("Package tools revision: "); - printf("%d\n", PKG_INSTALL_VERSION); - exit(0); - } + if (Flags & SHOW_PTREV) { + if (!Quiet) + printf("Package tools revision: "); + printf("%d\n", PKG_INSTALL_VERSION); + exit(0); + } /* Set some reasonable defaults */ - if (!Flags) - Flags = SHOW_COMMENT | SHOW_DESC | SHOW_REQBY; + if (!Flags) + Flags = SHOW_COMMENT | SHOW_DESC | SHOW_REQBY; /* Get all the remaining package names, if any */ - while (*argv) { + while (*argv) { /* * Don't try to apply heuristics if arguments are regexs or if * the argument refers to an existing file. */ if (MatchType != MATCH_REGEX && MatchType != MATCH_EREGEX && !isfile(*argv) && !isURL(*argv)) - while ((pkgs_split = strrchr(*argv, (int)'/')) != NULL) { + while ((pkgs_split = strrchr(*argv, (int)'/')) != NULL) { *pkgs_split++ = '\0'; /* * If character after the '/' is alphanumeric or shell @@ -246,18 +250,19 @@ * quest. */ if (isalnum(*pkgs_split) || ((MatchType == MATCH_GLOB) && \ - strpbrk(pkgs_split, "*?[]") != NULL)) { - *argv = pkgs_split; - break; + strpbrk(pkgs_split, "*?[]") != NULL)) { + *argv = pkgs_split; + break; } } *pkgs++ = *argv++; - } + } /* If no packages, yelp */ if (pkgs == start && MatchType != MATCH_ALL && !CheckPkg && TAILQ_EMPTY(whead) && LookUpOrigin == NULL) - warnx("missing package name(s)"), usage(); + warnx("missing package name(s)"), usage(); + *pkgs = NULL; return pkg_perform(start); } @@ -265,7 +270,7 @@ static void usage() { - fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n", + fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n", "usage: pkg_info [-bcdDEfgGiIjkKLmopPqQrRsvVxX] [-e package] [-l prefix]", " [-t template] -a | pkg-name ...", " pkg_info [-qQ] -W filename", ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/perform.c#2 (text+ko) ==== @@ -43,44 +43,44 @@ signal(SIGINT, cleanup); /* Overriding action? */ - if (Flags & SHOW_PKGNAME) { - return matched_packages(pkgs); - } else if (CheckPkg) { - return isinstalledpkg(CheckPkg) > 0 ? 0 : 1; + if (Flags & SHOW_PKGNAME) { + return matched_packages(pkgs); + } else if (CheckPkg) { + return isinstalledpkg(CheckPkg) > 0 ? 0 : 1; /* Not reached */ - } else if (!TAILQ_EMPTY(whead)) { - return find_pkg(whead); - } else if (LookUpOrigin != NULL) { - return find_pkgs_by_origin(LookUpOrigin); - } + } else if (!TAILQ_EMPTY(whead)) { + return find_pkg(whead); + } else if (LookUpOrigin != NULL) { + return find_pkgs_by_origin(LookUpOrigin); + } - if (MatchType != MATCH_EXACT) { - matched = matchinstalled(MatchType, pkgs, &errcode); - if (errcode != 0) - return 1; - /* Not reached */ - - if (matched != NULL) - pkgs = matched; - else switch (MatchType) { - case MATCH_GLOB: - break; - case MATCH_ALL: - warnx("no packages installed"); - return 0; - /* Not reached */ - case MATCH_REGEX: - case MATCH_EREGEX: - warnx("no packages match pattern(s)"); - return 1; - /* Not reached */ - default: - break; - } + if (MatchType != MATCH_EXACT) { + matched = matchinstalled(MatchType, pkgs, &errcode); + if (errcode != 0) + return 1; + /* Not reached */ + + if (matched != NULL) + pkgs = matched; + else switch (MatchType) { + case MATCH_GLOB: + break; + case MATCH_ALL: + warnx("no packages installed"); + return 0; + /* Not reached */ + case MATCH_REGEX: + case MATCH_EREGEX: + warnx("no packages match pattern(s)"); + return 1; + /* Not reached */ + default: + break; + } } for (i = 0; pkgs[i]; i++) - err_cnt += pkg_do(pkgs[i]); + err_cnt += pkg_do(pkgs[i]); return err_cnt; } @@ -100,93 +100,92 @@ int code = 0; if (isURL(pkg)) { - if ((cp = fileGetURL(NULL, pkg, KeepPackage)) != NULL) { - if (!getcwd(fname, FILENAME_MAX)) - upchuck("getcwd"); - isTMP = TRUE; + if ((cp = fileGetURL(NULL, pkg, KeepPackage)) != NULL) { + if (!getcwd(fname, FILENAME_MAX)) + upchuck("getcwd"); + isTMP = TRUE; + } else { + goto bail; + } + } else if (fexists(pkg) && isfile(pkg)) { + int len; + + if (*pkg != '/') { + if (!getcwd(fname, FILENAME_MAX)) + upchuck("getcwd"); + len = strlen(fname); + snprintf(&fname[len], FILENAME_MAX - len, "/%s", pkg); + } + else + strcpy(fname, pkg); + cp = fname; } else { - goto bail; + if ((cp = fileFindByPath(NULL, pkg)) != NULL) + strncpy(fname, cp, FILENAME_MAX); } - } - else if (fexists(pkg) && isfile(pkg)) { - int len; - if (*pkg != '/') { - if (!getcwd(fname, FILENAME_MAX)) - upchuck("getcwd"); - len = strlen(fname); - snprintf(&fname[len], FILENAME_MAX - len, "/%s", pkg); + if (cp) { + if (!isURL(pkg)) { + /* + * Apply a crude heuristic to see how much space the package will + * take up once it's unpacked. I've noticed that most packages + * compress an average of 75%, but we're only unpacking the + files so + * be very optimistic. + */ + if (stat(fname, &sb) == FAIL) { + warnx("can't stat package file '%s'", fname); + code = 1; + goto bail; + } + Home = make_playpen(PlayPen, sb.st_size / 2); + if (unpack(fname, "'+*'")) { + warnx("error during unpacking, no info for '%s' available", pkg); + code = 1; + goto bail; + } + } + } + /* It's not an uninstalled package, try and find it among the installed */ + else { + int isinstalled = isinstalledpkg(pkg); + if (isinstalled < 0) { + warnx("the package info for package '%s' is corrupt", pkg); + return 1; + } else if (isinstalled == 0) { + warnx("can't find package '%s' installed or in a file!", pkg); + return 1; + } + sprintf(log_dir, "%s/%s", LOG_DIR, pkg); + if (chdir(log_dir) == FAIL) { + warnx("can't change directory to '%s'!", log_dir); + return 1; + } + installed = TRUE; } - else - strcpy(fname, pkg); - cp = fname; - } - else { - if ((cp = fileFindByPath(NULL, pkg)) != NULL) - strncpy(fname, cp, FILENAME_MAX); - } - if (cp) { - if (!isURL(pkg)) { - /* - * Apply a crude heuristic to see how much space the package will - * take up once it's unpacked. I've noticed that most packages - * compress an average of 75%, but we're only unpacking the + files so - * be very optimistic. - */ - if (stat(fname, &sb) == FAIL) { - warnx("can't stat package file '%s'", fname); - code = 1; - goto bail; - } - Home = make_playpen(PlayPen, sb.st_size / 2); - if (unpack(fname, "'+*'")) { - warnx("error during unpacking, no info for '%s' available", pkg); + + /* Suck in the contents list */ + plist.head = plist.tail = NULL; + fp = fopen(CONTENTS_FNAME, "r"); + if (!fp) { + warnx("unable to open %s file", CONTENTS_FNAME); code = 1; goto bail; - } } - } - /* It's not an uninstalled package, try and find it among the installed */ - else { - int isinstalled = isinstalledpkg(pkg); - if (isinstalled < 0) { - warnx("the package info for package '%s' is corrupt", pkg); - return 1; - } else if (isinstalled == 0) { - warnx("can't find package '%s' installed or in a file!", pkg); - return 1; - } - sprintf(log_dir, "%s/%s", LOG_DIR, pkg); - if (chdir(log_dir) == FAIL) { - warnx("can't change directory to '%s'!", log_dir); - return 1; - } - installed = TRUE; - } + /* If we have a prefix, add it now */ + read_plist(&plist, fp); + fclose(fp); - /* Suck in the contents list */ - plist.head = plist.tail = NULL; - fp = fopen(CONTENTS_FNAME, "r"); - if (!fp) { - warnx("unable to open %s file", CONTENTS_FNAME); - code = 1; - goto bail; - } - /* If we have a prefix, add it now */ - read_plist(&plist, fp); - fclose(fp); - - /* + /* * Index is special info type that has to override all others to make * any sense. */ - if (Flags & SHOW_INDEX) { - char tmp[FILENAME_MAX]; + if (Flags & SHOW_INDEX) { + char tmp[FILENAME_MAX]; - snprintf(tmp, FILENAME_MAX, "%-19s ", pkg); - show_index(tmp, COMMENT_FNAME); - } - else { + snprintf(tmp, FILENAME_MAX, "%-19s ", pkg); + show_index(tmp, COMMENT_FNAME); + } + else { /* Start showing the package contents */ if (!Quiet) printf("%sInformation for %s:\n\n", InfoPrefix, pkg); @@ -329,6 +328,7 @@ /* * Look through package dbs in LOG_DIR and find which * packages installed the files in which_list. + * TODO: Speedup with bdb cache */ static int find_pkg(struct which_head *which_list) ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/show.c#2 (text+ko) ==== @@ -248,7 +248,12 @@ } } -/* Calculate and show size of all installed package files (except ignored ones) */ +/* Calculate and show size of all installed package files (except ignored ones) + * TODO: Make size easier to read (It should be unnecessary to set BLOCKSIZE in + * environment). If the files are static in size, maybe it could be cached + * instead of calculated every time. Could also be made default to show. + * + */ void show_size(const char *title, Package *plist) { ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/lib.h#2 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include #include +#include /* Macros */ #define SUCCESS (0) @@ -70,6 +71,8 @@ #define PKG_DBDIR "PKG_DBDIR" /* macro to get name of directory where we put logging information */ #define LOG_DIR (getenv(PKG_DBDIR) ? getenv(PKG_DBDIR) : DEF_LOG_DIR) +/* Path to the BDB cache file */ +#define PKG_DBCACHE_FILE "/usr/home/duckjen/projects/soc2008/src/usr.sbin/pkg_install/pkgcache.db" /* The names of our "special" files */ #define CONTENTS_FNAME "+CONTENTS" @@ -114,6 +117,8 @@ #define PLIST_FMT_VER_MAJOR 1 #define PLIST_FMT_VER_MINOR 1 +#define DEBUG(s) printf(s) + enum _plist_t { PLIST_FILE, PLIST_CWD, PLIST_CMD, PLIST_CHMOD, PLIST_CHOWN, PLIST_CHGRP, PLIST_COMMENT, PLIST_IGNORE, @@ -173,6 +178,8 @@ void str_lowercase(char *); char *strconcat(const char *, const char *); char *get_string(char *, int, FILE *); +char **get_string_array(char *str, char delim); +void free_string_array(char **str_arr); /* File */ Boolean fexists(const char *); @@ -238,11 +245,24 @@ int verscmp(Package *, int, int); int version_cmp(const char *, const char *); +/* Database */ +Boolean cacheExists(); +DB *opendb(const char *filename); +void openDatabase(const char *filename); +int dbput(const DB *db, DBT *key, DBT *data); +int dbget(const DB *db, DBT *key, DBT *data); +char *dbgetdata(const char *aKey); +Boolean dbKeyExists(const char *aKey); +int closedb(DB *db); +int dbscan(const DB *db, DBT *key, DBT *data); + /* Externs */ extern Boolean Quiet; extern Boolean Fake; -extern Boolean Force; +extern Boolean Force; +extern Boolean CacheExists; extern int AutoAnswer; extern int Verbose; +extern DB *database; #endif /* _INST_LIB_LIB_H_ */ ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/match.c#2 (text+ko) ==== @@ -53,6 +53,8 @@ * Returns NULL-terminated list with matching names. * Names in list returned are dynamically allocated and should * not be altered by the caller. + * + * TODO: Make use of bdb cache to speed things up */ char ** matchinstalled(match_t MatchType, char **patterns, int *retval) @@ -67,80 +69,95 @@ store = storecreate(store); if (store == NULL) { - if (retval != NULL) - *retval = 1; - return NULL; + if (retval != NULL) + *retval = 1; + + return NULL; } if (retval != NULL) - *retval = 0; + *retval = 0; if (!isdir(paths[0])) { - if (retval != NULL) - *retval = 1; - return NULL; - /* Not reached */ + if (retval != NULL) + *retval = 1; + return NULL; + /* Not reached */ } /* Count number of patterns */ if (patterns != NULL) { - for (len = 0; patterns[len]; len++) {} - lmatched = alloca(sizeof(*lmatched) * len); - if (lmatched == NULL) { - warnx("%s(): alloca() failed", __func__); - if (retval != NULL) - *retval = 1; - return NULL; - } + for (len = 0; patterns[len]; len++) {} + lmatched = alloca(sizeof(*lmatched) * len); + if (lmatched == NULL) { + warnx("%s(): alloca() failed", __func__); + if (retval != NULL) + *retval = 1; + return NULL; + } } else - len = 0; - - for (i = 0; i < len; i++) + len = 0; + + for (i = 0; i < len; i++) lmatched[i] = FALSE; - ftsp = fts_open((char * const *)(uintptr_t)paths, FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, fname_cmp); - if (ftsp != NULL) { - while ((f = fts_read(ftsp)) != NULL) { - if (f->fts_info == FTS_D && f->fts_level == 1) { - fts_set(ftsp, f, FTS_SKIP); - matched = NULL; - errcode = 0; - if (MatchType == MATCH_ALL) - matched = f->fts_name; - else - for (i = 0; patterns[i]; i++) { - errcode = pattern_match(MatchType, patterns[i], f->fts_name); - if (errcode == 1) { - matched = f->fts_name; - lmatched[i] = TRUE; - errcode = 0; + /* TODO: Make use of cache to get directory names */ + if (CacheExists == TRUE) { + DEBUG("USING CACHE\n"); + DBT key, data; + while(dbscan(database, &key, &data) == 0) { + matched = key.data; + DEBUG(matched); + storeappend(store, matched); + } + return store->store; + } else { + DEBUG("Does not use cache!\n"); + } + + ftsp = fts_open((char * const *)(uintptr_t)paths, FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, fname_cmp); + if (ftsp != NULL) { + while ((f = fts_read(ftsp)) != NULL) { + if (f->fts_info == FTS_D && f->fts_level == 1) { + fts_set(ftsp, f, FTS_SKIP); + matched = NULL; + errcode = 0; + if (MatchType == MATCH_ALL) + matched = f->fts_name; + else + for (i = 0; patterns[i]; i++) { + errcode = pattern_match(MatchType, patterns[i], f->fts_name); + if (errcode == 1) { + matched = f->fts_name; + lmatched[i] = TRUE; + errcode = 0; + } + if (matched != NULL || errcode != 0) + break; + } + if (errcode == 0 && matched != NULL) + errcode = storeappend(store, matched); + if (errcode != 0) { + if (retval != NULL) + *retval = 1; + return NULL; + /* Not reached */ + } } - if (matched != NULL || errcode != 0) - break; - } - if (errcode == 0 && matched != NULL) - errcode = storeappend(store, matched); - if (errcode != 0) { - if (retval != NULL) - *retval = 1; - return NULL; - /* Not reached */ } - } + fts_close(ftsp); } - fts_close(ftsp); - } - if (MatchType == MATCH_GLOB) { - for (i = 0; i < len; i++) - if (lmatched[i] == FALSE) - storeappend(store, patterns[i]); - } + if (MatchType == MATCH_GLOB) { + for (i = 0; i < len; i++) + if (lmatched[i] == FALSE) + storeappend(store, patterns[i]); + } - if (store->used == 0) - return NULL; - else - return store->store; + if (store->used == 0) + return NULL; + else + return store->store; } int @@ -236,6 +253,7 @@ /* * Synopsis is similar to matchinstalled(), but use origin * as a key for matching packages. + * TODO: Use bdb cache */ char ** matchallbyorigin(const char **origins, int *retval) @@ -359,35 +377,43 @@ * * Return 1 if the specified package is installed, * 0 if not, and -1 if an error occured. + * TODO: Use bdb cache lookup */ int isinstalledpkg(const char *name) { - int result; - char *buf, *buf2; - struct iip_memo *memo; + int result; + char *buf, *buf2; + struct iip_memo *memo; - LIST_FOREACH(memo, &iip_memo, iip_link) { + LIST_FOREACH(memo, &iip_memo, iip_link) { if (strcmp(memo->iip_name, name) == 0) - return memo->iip_result; - } - - buf2 = NULL; - asprintf(&buf, "%s/%s", LOG_DIR, name); - if (buf == NULL) - goto errout; - if (!isdir(buf) || access(buf, R_OK) == FAIL) { - result = 0; - } else { - asprintf(&buf2, "%s/%s", buf, CONTENTS_FNAME); - if (buf2 == NULL) - goto errout; + return memo->iip_result; + } + + /* If we have cache available use it to perform fast lookup */ + if(CacheExists) { + return dbKeyExists(name); + } else + DEBUG("Not using cache!\n"); + + buf2 = NULL; + asprintf(&buf, "%s/%s", LOG_DIR, name); + if (buf == NULL) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 8 22:13:25 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DF251065672; Sun, 8 Jun 2008 22:13:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FFCB106566C for ; Sun, 8 Jun 2008 22:13:25 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 322938FC13 for ; Sun, 8 Jun 2008 22:13:25 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58MDPfx006336 for ; Sun, 8 Jun 2008 22:13:25 GMT (envelope-from andenore@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58MDPvU006334 for perforce@freebsd.org; Sun, 8 Jun 2008 22:13:25 GMT (envelope-from andenore@FreeBSD.org) Date: Sun, 8 Jun 2008 22:13:25 GMT Message-Id: <200806082213.m58MDPvU006334@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andenore@FreeBSD.org using -f From: Anders Nore To: Perforce Change Reviews Cc: Subject: PERFORCE change 143137 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 22:13:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=143137 Change 143137 by andenore@andenore_laptop on 2008/06/08 22:12:29 Added the converter program. Affected files ... .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/Makefile#2 edit Differences ... ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/Makefile#2 (text+ko) ==== @@ -2,7 +2,7 @@ .include -SUBDIR= lib add create delete info updating version +SUBDIR= lib add create delete info updating version convert .include From owner-p4-projects@FreeBSD.ORG Sun Jun 8 22:55:07 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8346B1065682; Sun, 8 Jun 2008 22:55:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40D3A1065687 for ; Sun, 8 Jun 2008 22:55:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 136D88FC29 for ; Sun, 8 Jun 2008 22:55:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58Mt6nL009672 for ; Sun, 8 Jun 2008 22:55:06 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58Mt6UP009670 for perforce@freebsd.org; Sun, 8 Jun 2008 22:55:06 GMT (envelope-from gabor@freebsd.org) Date: Sun, 8 Jun 2008 22:55:06 GMT Message-Id: <200806082255.m58Mt6UP009670@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143138 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 22:55:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=143138 Change 143138 by gabor@gabor_server on 2008/06/08 22:55:06 - Improve the distinction of text and binary files Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/binary.c#4 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/binary.c#4 (text+ko) ==== @@ -41,7 +41,7 @@ #include "grep.h" -#define isbinary(ch) (!isprint((ch)) && !isspace((ch)) && (ch) != '\b') +#define isbinary(ch) (!isspace((ch)) && iscntrl((ch))) int bin_file(FILE *f) From owner-p4-projects@FreeBSD.ORG Mon Jun 9 01:37:51 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 58B3E1065673; Mon, 9 Jun 2008 01:37:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A9191065671 for ; Mon, 9 Jun 2008 01:37:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 063C88FC13 for ; Mon, 9 Jun 2008 01:37:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m591bo1V041456 for ; Mon, 9 Jun 2008 01:37:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m591bolR041454 for perforce@freebsd.org; Mon, 9 Jun 2008 01:37:50 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 9 Jun 2008 01:37:50 GMT Message-Id: <200806090137.m591bolR041454@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143142 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 01:37:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=143142 Change 143142 by hselasky@hselasky_laptop001 on 2008/06/09 01:37:00 USB cache sync bugfix. After countless hours of debugging I finally saw the light why the OHCI did not work on ARM. I had switched flush and invalidate on the SETUP packet! Grrr. Now it finally works like it should! Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#126 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#126 (text+ko) ==== @@ -1990,9 +1990,11 @@ xfer->flags_int.control_hdr) { /* special case */ if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) { + /* The device controller writes to memory */ + xfer->frbuffers[0].isread = 1; + } else { + /* The host controller reads from memory */ xfer->frbuffers[0].isread = 0; - } else { - xfer->frbuffers[0].isread = 1; } } else { /* default case */ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:43:01 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1164B1065675; Mon, 9 Jun 2008 02:43:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6B14106566B for ; Mon, 9 Jun 2008 02:43:00 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 935468FC1A for ; Mon, 9 Jun 2008 02:43:00 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592h0BA047833 for ; Mon, 9 Jun 2008 02:43:00 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592h0kV047831 for perforce@freebsd.org; Mon, 9 Jun 2008 02:43:00 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:43:00 GMT Message-Id: <200806090243.m592h0kV047831@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143143 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:43:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=143143 Change 143143 by jb@freebsd3 on 2008/06/09 02:42:35 Add CTF conversion to the kernel makefile. Affected files ... .. //depot/projects/dtrace6/src/usr.sbin/config/mkmakefile.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/usr.sbin/config/mkmakefile.c#2 (text+ko) ==== @@ -734,7 +734,7 @@ printf("config: don't know rules for %s\n", np); break; } - snprintf(cmd, sizeof(cmd), "${%s_%c%s}", ftype, + snprintf(cmd, sizeof(cmd), "${%s_%c%s}\r\n\t${NORMAL_CTFCONVERT}", ftype, toupper(och), ftp->f_flags & NOWERROR ? "_NOWERROR" : ""); compilewith = cmd; From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:47:05 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B416106567F; Mon, 9 Jun 2008 02:47:05 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0B081065670 for ; Mon, 9 Jun 2008 02:47:04 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CB8DF8FC1A for ; Mon, 9 Jun 2008 02:47:04 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592l4Ao048167 for ; Mon, 9 Jun 2008 02:47:04 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592l4NW048165 for perforce@freebsd.org; Mon, 9 Jun 2008 02:47:04 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:47:04 GMT Message-Id: <200806090247.m592l4NW048165@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143144 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:47:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=143144 Change 143144 by jb@freebsd3 on 2008/06/09 02:46:25 Add the generation of the functions required by the systrace kernel module, better known as the DTrace syscall provider. Note that this requires the kernel option BREAK_SYSENT_ABI at the moment because it requires extra fields in struct sysent which affects ABI compatibility. It might be possible to find an ABI-compatible implementation at the expense of performance, but this is compilicated by the way that syscalls are hooked into struct proc. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/makesyscalls.sh#2 edit .. //depot/projects/dtrace6/src/sys/kern/syscalls.c#3 edit .. //depot/projects/dtrace6/src/sys/sys/syscall.h#3 edit .. //depot/projects/dtrace6/src/sys/sys/syscall.mk#3 edit .. //depot/projects/dtrace6/src/sys/sys/sysent.h#2 edit .. //depot/projects/dtrace6/src/sys/sys/sysproto.h#3 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/makesyscalls.sh#2 (text+ko) ==== @@ -18,6 +18,7 @@ syscallprefix="SYS_" switchname="sysent" namesname="syscallnames" +systrace="systrace_args.c" # tmp files: sysdcl="sysent.dcl.$$" @@ -29,10 +30,11 @@ sysinc="sysinc.switch.$$" sysarg="sysarg.switch.$$" sysprotoend="sysprotoend.$$" +systracetmp="systrace.$$" -trap "rm $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $sysent $sysinc $sysarg $sysprotoend" 0 +trap "rm $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp" 0 -touch $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $sysent $sysinc $sysarg $sysprotoend +touch $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp case $# in 0) echo "usage: $0 input-file " 1>&2 @@ -73,6 +75,8 @@ sysnames = \"$sysnames\" syshdr = \"$syshdr\" sysmk = \"$sysmk\" + systrace = \"$systrace\" + systracetmp = \"$systracetmp\" compat = \"$compat\" compat4 = \"$compat4\" syscallprefix = \"$syscallprefix\" @@ -102,6 +106,10 @@ printf "# FreeBSD system call names.\n" > sysmk printf "# DO NOT EDIT-- this file is automatically generated.\n" > sysmk printf "# $%s$\n", "FreeBSD" > sysmk + + printf "/*\n * System call argument to DTrace register array converstion.\n *\n" > systrace + printf " * DO NOT EDIT-- this file is automatically generated.\n" > systrace + printf " * $%s$\n", "FreeBSD" > systrace } NR == 1 { gsub("[$]FreeBSD: ", "", $0) @@ -110,6 +118,11 @@ printf " * created from%s\n */\n\n", $0 > syssw printf "\n/* The casts are bogus but will do for now. */\n" > sysent + printf "#ifdef BREAK_SYSENT_ABI\n" > sysent + printf "#define SYSTRACE_EXTRA , NULL, 0, 0\n" > sysent + printf "#else\n" > sysent + printf "#define SYSTRACE_EXTRA\n" > sysent + printf "#endif\n" > sysent printf "struct sysent %s[] = {\n",switchname > sysent printf " * created from%s\n */\n\n", $0 > sysarg @@ -140,6 +153,13 @@ printf "# created from%s\nMIASM = ", $0 > sysmk + printf " * This file is part of the DTrace syscall provider.\n */\n\n" > systrace + printf "static void\nsystrace_args(int sysnum, void *params, u_int64_t *uarg, int *n_args)\n{\n" > systrace + printf "\tint64_t *iarg = (int64_t *) uarg;\n" > systrace + printf "\tswitch (sysnum) {\n" > systrace + + printf "static void\nsystrace_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systracetmp + printf "\tswitch (sysnum) {\n" > systracetmp next } NF == 0 || $1 ~ /^;/ { @@ -323,6 +343,30 @@ $3 == "STD" || $3 == "NODEF" || $3 == "NOARGS" || $3 == "NOPROTO" \ || $3 == "NOIMPL" || $3 == "NOSTD" { parseline() + printf("\t/* %s */\n\tcase %d: {\n", funcname, syscall) > systrace + printf("\t/* %s */\n\tcase %d:\n", funcname, syscall) > systracetmp + if (argc > 0) { + printf("\t\tswitch(ndx) {\n") > systracetmp + printf("\t\tstruct %s *p = params;\n", argalias) > systrace + for (i = 1; i <= argc; i++) { + printf("\t\tcase %d:\n\t\t\tp = \"%s\";\n\t\t\tbreak;\n", i - 1, argtype[i]) > systracetmp + if (index(argtype[i], "*") > 0 || argtype[i] == "caddr_t") + printf("\t\tuarg[%d] = (intptr_t) p->%s; /* %s */\n", \ + i - 1, \ + argname[i], argtype[i]) > systrace + else if (substr(argtype[i], 1, 1) == "u" || argtype[i] == "size_t") + printf("\t\tuarg[%d] = p->%s; /* %s */\n", \ + i - 1, \ + argname[i], argtype[i]) > systrace + else + printf("\t\tiarg[%d] = p->%s; /* %s */\n", \ + i - 1, \ + argname[i], argtype[i]) > systrace + } + printf("\t\tdefault:\n\t\t\tbreak;\n\t\t};\n") > systracetmp + } + printf("\t\t*n_args = %d;\n\t\tbreak;\n\t}\n", argc) > systrace + printf("\t\tbreak;\n") > systracetmp if ((!nosys || funcname != "nosys") && \ (funcname != "lkmnosys") && (funcname != "lkmressys")) { if (argc != 0 && $3 != "NOARGS" && $3 != "NOPROTO") { @@ -355,13 +399,13 @@ printf("\t{ %s%s, (sy_call_t *)", mpsafe, argssize) > sysent column = 8 + 2 + length(mpsafe) + length(argssize) + 15 if ($3 == "NOIMPL") { - printf("%s },", "nosys, AUE_NULL") > sysent + printf("%s SYSTRACE_EXTRA },", "nosys, AUE_NULL") > sysent column = column + length("nosys") + 3 } else if ($3 == "NOSTD") { - printf("%s },", "lkmressys, AUE_NULL") > sysent + printf("%s SYSTRACE_EXTRA },", "lkmressys, AUE_NULL") > sysent column = column + length("lkmressys") + 3 } else { - printf("%s, %s },", funcname, auditev) > sysent + printf("%s, %s SYSTRACE_EXTRA },", funcname, auditev) > sysent column = column + length(funcname) + length(auditev) + 3 } align_sysent_comment(column) @@ -406,7 +450,7 @@ argalias) > sysarg printf("%s\t%s%s(struct thread *, struct %s *);\n", rettype, prefix, funcname, argalias) > outdcl - printf("\t{ %s(%s%s,%s), %s },", + printf("\t{ %s(%s%s,%s), %s SYSTRACE_EXTRA },", wrap, mpsafe, argssize, funcname, auditev) > sysent align_sysent_comment(8 + 9 + length(mpsafe) + \ length(argssize) + 1 + length(funcname) + length(auditev) + 4) @@ -422,7 +466,7 @@ ncompat++ parseline() printf("%s\to%s();\n", rettype, funcname) > syscompatdcl - printf("\t{ compat(%s%s,%s), %s },", + printf("\t{ compat(%s%s,%s), %s SYSTRACE_EXTRA },", mpsafe, argssize, funcname, auditev) > sysent align_sysent_comment(8 + 9 + length(mpsafe) + \ length(argssize) + 1 + length(funcname) + length(auditev) + 4) @@ -436,7 +480,7 @@ next } $3 == "OBSOL" { - printf("\t{ 0, (sy_call_t *)nosys, AUE_NULL },") > sysent + printf("\t{ 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA },") > sysent align_sysent_comment(34) printf("/* %d = obsolete %s */\n", syscall, comment) > sysent printf("\t\"obs_%s\",\t\t\t/* %d = obsolete %s */\n", @@ -447,7 +491,7 @@ next } $3 == "UNIMPL" { - printf("\t{ 0, (sy_call_t *)nosys, AUE_NULL },\t\t\t/* %d = %s */\n", + printf("\t{ 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA },\t\t\t/* %d = %s */\n", syscall, comment) > sysent printf("\t\"#%d\",\t\t\t/* %d = %s */\n", syscall, syscall, comment) > sysnames @@ -495,6 +539,8 @@ printf("};\n") > sysnames printf("#define\t%sMAXSYSCALL\t%d\n", syscallprefix, syscall) \ > syshdr + printf "\tdefault:\n\t\t*n_args = 0;\n\t\tbreak;\n\t};\n}\n" > systrace + printf "\tdefault:\n\t\tbreak;\n\t};\n\tif (p != NULL)\n\t\tstrlcpy(desc, p, descsz);\n}\n" > systracetmp } ' cat $sysinc $sysent >> $syssw @@ -502,4 +548,5 @@ $syscompat $syscompatdcl \ $syscompat4 $syscompat4dcl \ $sysprotoend > $sysproto +cat $systracetmp >> $systrace ==== //depot/projects/dtrace6/src/sys/kern/syscalls.c#3 (text+ko) ==== @@ -2,7 +2,7 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/syscalls.c,v 1.181.2.6 2008/04/24 10:52:30 dfr Exp $ + * $FreeBSD$ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.6 2008/04/24 10:46:19 dfr Exp */ ==== //depot/projects/dtrace6/src/sys/sys/syscall.h#3 (text+ko) ==== @@ -2,7 +2,7 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/syscall.h,v 1.178.2.6 2008/04/24 10:52:30 dfr Exp $ + * $FreeBSD$ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.6 2008/04/24 10:46:19 dfr Exp */ ==== //depot/projects/dtrace6/src/sys/sys/syscall.mk#3 (text+ko) ==== @@ -1,6 +1,6 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD: src/sys/sys/syscall.mk,v 1.133.2.6 2008/04/24 10:52:30 dfr Exp $ +# $FreeBSD$ # created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.6 2008/04/24 10:46:19 dfr Exp MIASM = \ syscall.o \ ==== //depot/projects/dtrace6/src/sys/sys/sysent.h#2 (text+ko) ==== @@ -35,14 +35,32 @@ #include struct rlimit; +struct sysent; struct thread; typedef int sy_call_t(struct thread *, void *); +/* Used by the machine dependent syscall() code. */ +typedef void (*systrace_probe_func_t)(u_int32_t, int, struct sysent *, void *); + +/* + * Used by loaded syscalls to convert arguments to a DTrace array + * of 64-bit arguments. + */ +typedef void (*systrace_args_func_t)(void *, u_int64_t *, int *); + +extern systrace_probe_func_t systrace_probe_func; + struct sysent { /* system call table */ int sy_narg; /* number of arguments */ sy_call_t *sy_call; /* implementing function */ au_event_t sy_auevent; /* audit event associated with syscall */ +#ifdef BREAK_SYSENT_ABI + systrace_args_func_t sy_systrace_args_func; + /* optional argument conversion function. */ + u_int32_t sy_entry; /* DTrace entry ID for systrace. */ + u_int32_t sy_return; /* DTrace return ID for systrace. */ +#endif }; #define SYF_ARGMASK 0x0000FFFF @@ -92,6 +110,9 @@ extern struct sysentvec elf_freebsd_sysvec; extern struct sysentvec null_sysvec; extern struct sysent sysent[]; +#ifndef BREAK_SYSENT_ABI +extern struct sysent_extra sysent_extra[]; +#endif #define NO_SYSCALL (-1) ==== //depot/projects/dtrace6/src/sys/sys/sysproto.h#3 (text+ko) ==== @@ -2,7 +2,7 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.177.2.6 2008/04/24 10:52:30 dfr Exp $ + * $FreeBSD$ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.6 2008/04/24 10:46:19 dfr Exp */ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:48:06 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 53A971065677; Mon, 9 Jun 2008 02:48:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14919106566C for ; Mon, 9 Jun 2008 02:48:06 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F412D8FC12 for ; Mon, 9 Jun 2008 02:48:05 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592m59k048231 for ; Mon, 9 Jun 2008 02:48:05 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592m5ha048229 for perforce@freebsd.org; Mon, 9 Jun 2008 02:48:05 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:48:05 GMT Message-Id: <200806090248.m592m5ha048229@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143145 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:48:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=143145 Change 143145 by jb@freebsd3 on 2008/06/09 02:47:36 Add supposrt to send IPIs to just one or more CPUs. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/subr_smp.c#2 edit .. //depot/projects/dtrace6/src/sys/sys/smp.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/subr_smp.c#2 (text+ko) ==== @@ -75,6 +75,9 @@ SYSCTL_NODE(_kern, OID_AUTO, smp, CTLFLAG_RD, NULL, "Kernel SMP"); +SYSCTL_INT(_kern_smp, OID_AUTO, maxid, CTLFLAG_RD, &mp_maxid, 0, + "Max CPU ID."); + SYSCTL_INT(_kern_smp, OID_AUTO, maxcpus, CTLFLAG_RD, &mp_maxcpus, 0, "Max number of CPUs that the system was compiled for."); @@ -105,11 +108,12 @@ "Forwarding of roundrobin to all other CPUs"); /* Variables needed for SMP rendezvous. */ -static void (*smp_rv_setup_func)(void *arg); -static void (*smp_rv_action_func)(void *arg); -static void (*smp_rv_teardown_func)(void *arg); -static void *smp_rv_func_arg; -static volatile int smp_rv_waiters[2]; +static volatile cpumask_t smp_rv_cpumask; +static void (*volatile smp_rv_setup_func)(void *arg); +static void (*volatile smp_rv_action_func)(void *arg); +static void (*volatile smp_rv_teardown_func)(void *arg); +static void * volatile smp_rv_func_arg; +static volatile int smp_rv_waiters[3]; /* * Shared mutex to restrict busywaits between smp_rendezvous() and @@ -149,7 +153,7 @@ mp_ncpus); cpu_mp_announce(); } -SYSINIT(cpu_mp, SI_SUB_CPU, SI_ORDER_SECOND, mp_start, NULL) +SYSINIT(cpu_mp, SI_SUB_CPU, SI_ORDER_THIRD, mp_start, NULL) void forward_signal(struct thread *td) @@ -330,32 +334,57 @@ void smp_rendezvous_action(void) { + cpumask_t map = smp_rv_cpumask; + int i, ncpus = 0; + void* local_func_arg = smp_rv_func_arg; + void (*local_setup_func)(void*) = smp_rv_setup_func; + void (*local_action_func)(void*) = smp_rv_action_func; + void (*local_teardown_func)(void*) = smp_rv_teardown_func; + + for (i = 0; i < MAXCPU; i++) + if (((1 << i) & map) != 0 && pcpu_find(i) != NULL) + ncpus++; + /* Ensure we have up-to-date values. */ + atomic_add_acq_int(&smp_rv_waiters[0], 1); + while (smp_rv_waiters[0] < ncpus) + cpu_spinwait(); + /* setup function */ - if (smp_rv_setup_func != NULL) - smp_rv_setup_func(smp_rv_func_arg); - /* spin on entry rendezvous */ - atomic_add_int(&smp_rv_waiters[0], 1); - while (atomic_load_acq_int(&smp_rv_waiters[0]) < mp_ncpus) - ; /* nothing */ + if (local_setup_func != smp_no_rendevous_barrier) { + if (smp_rv_setup_func != NULL) + smp_rv_setup_func(smp_rv_func_arg); + + /* spin on entry rendezvous */ + atomic_add_int(&smp_rv_waiters[1], 1); + while (smp_rv_waiters[1] < ncpus) + cpu_spinwait(); + } + /* action function */ - if (smp_rv_action_func != NULL) - smp_rv_action_func(smp_rv_func_arg); + if (local_action_func != NULL) + local_action_func(local_func_arg); + /* spin on exit rendezvous */ - atomic_add_int(&smp_rv_waiters[1], 1); - while (atomic_load_acq_int(&smp_rv_waiters[1]) < mp_ncpus) - ; /* nothing */ + atomic_add_int(&smp_rv_waiters[2], 1); + if (local_teardown_func == smp_no_rendevous_barrier) + return; + while (smp_rv_waiters[2] < ncpus) + cpu_spinwait(); + /* teardown function */ - if (smp_rv_teardown_func != NULL) - smp_rv_teardown_func(smp_rv_func_arg); + if (local_teardown_func != NULL) + local_teardown_func(local_func_arg); } void -smp_rendezvous(void (* setup_func)(void *), - void (* action_func)(void *), - void (* teardown_func)(void *), - void *arg) +smp_rendezvous_cpus(cpumask_t map, + void (* setup_func)(void *), + void (* action_func)(void *), + void (* teardown_func)(void *), + void *arg) { + int i, ncpus = 0; if (!smp_started) { if (setup_func != NULL) @@ -366,27 +395,48 @@ teardown_func(arg); return; } + + for (i = 0; i < MAXCPU; i++) + if (((1 << i) & map) != 0 && pcpu_find(i) != NULL) + ncpus++; /* obtain rendezvous lock */ mtx_lock_spin(&smp_ipi_mtx); /* set static function pointers */ + smp_rv_cpumask = map & ~(1 << curcpu); smp_rv_setup_func = setup_func; smp_rv_action_func = action_func; smp_rv_teardown_func = teardown_func; smp_rv_func_arg = arg; - smp_rv_waiters[0] = 0; smp_rv_waiters[1] = 0; + smp_rv_waiters[2] = 0; + atomic_store_rel_int(&smp_rv_waiters[0], 0); /* signal other processors, which will enter the IPI with interrupts off */ - ipi_all_but_self(IPI_RENDEZVOUS); + ipi_selected(map, IPI_RENDEZVOUS); + + /* Check if the current CPU is in the map */ + if ((map & (1 << curcpu)) != 0) + /* call executor function for the current CPU */ + smp_rendezvous_action(); - /* call executor function */ - smp_rendezvous_action(); + if (teardown_func == smp_no_rendevous_barrier) + while (atomic_load_acq_int(&smp_rv_waiters[2]) < ncpus) + cpu_spinwait(); /* release lock */ mtx_unlock_spin(&smp_ipi_mtx); } + +void +smp_rendezvous(void (* setup_func)(void *), + void (* action_func)(void *), + void (* teardown_func)(void *), + void *arg) +{ + smp_rendezvous_cpus(all_cpus, setup_func, action_func, teardown_func, arg); +} #else /* !SMP */ /* @@ -405,9 +455,24 @@ mp_setvariables_for_up, NULL) void -smp_rendezvous(void (* setup_func)(void *), - void (* action_func)(void *), - void (* teardown_func)(void *), +smp_rendezvous_cpus(cpumask_t map, + void (*setup_func)(void *), + void (*action_func)(void *), + void (*teardown_func)(void *), + void *arg) +{ + if (setup_func != NULL) + setup_func(arg); + if (action_func != NULL) + action_func(arg); + if (teardown_func != NULL) + teardown_func(arg); +} + +void +smp_rendezvous(void (*setup_func)(void *), + void (*action_func)(void *), + void (*teardown_func)(void *), void *arg) { @@ -419,3 +484,11 @@ teardown_func(arg); } #endif /* SMP */ + +void +smp_no_rendevous_barrier(void *dummy) +{ +#ifdef SMP + KASSERT((!smp_started),("smp_no_rendevous called and smp is started")); +#endif +} ==== //depot/projects/dtrace6/src/sys/sys/smp.h#2 (text+ko) ==== @@ -106,10 +106,16 @@ int stop_cpus_nmi(cpumask_t); #endif #endif /* SMP */ +void smp_no_rendevous_barrier(void *); void smp_rendezvous(void (*)(void *), void (*)(void *), void (*)(void *), void *arg); +void smp_rendezvous_cpus(cpumask_t, + void (*)(void *), + void (*)(void *), + void (*)(void *), + void *arg); #endif /* !LOCORE */ #endif /* _KERNEL */ #endif /* _SYS_SMP_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:49:07 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B4C2106566C; Mon, 9 Jun 2008 02:49:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3DC8D106564A for ; Mon, 9 Jun 2008 02:49:07 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29D168FC1D for ; Mon, 9 Jun 2008 02:49:07 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592n6x7048308 for ; Mon, 9 Jun 2008 02:49:06 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592n6B7048306 for perforce@freebsd.org; Mon, 9 Jun 2008 02:49:06 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:49:06 GMT Message-Id: <200806090249.m592n6B7048306@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143146 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:49:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=143146 Change 143146 by jb@freebsd3 on 2008/06/09 02:48:27 Backout some code that was replaced by an event handler based implementation. Affected files ... .. //depot/projects/dtrace6/src/sys/sys/proc.h#6 edit Differences ... ==== //depot/projects/dtrace6/src/sys/sys/proc.h#6 (text+ko) ==== @@ -158,6 +158,8 @@ struct td_sched; struct trapframe; struct turnstile; +struct kdtrace_proc; +struct kdtrace_thread; /* * Here we define the three structures used for process information. @@ -334,6 +336,8 @@ struct mdthread td_md; /* (k) Any machine-dependent fields. */ struct td_sched *td_sched; /* (*) Scheduler-specific data. */ struct kaudit_record *td_ar; /* (k) Active audit record, if any. */ + struct kdtrace_thread *td_dtrace; /* (*) DTrace-specific data. */ + int td_errno; /* Error returned by last syscall. */ } __attribute__ ((aligned (THREAD_ALIGN))); /* @@ -619,6 +623,7 @@ struct p_sched *p_sched; /* (*) Scheduler-specific data. */ struct auditinfo_addr *p_au; /* (c) Process audit properties. */ STAILQ_HEAD(, ktr_request) p_ktr; /* (o) KTR event queue. */ + struct kdtrace_proc *p_dtrace; /* (*) DTrace-specific data. */ }; #define p_session p_pgrp->pg_session @@ -859,21 +864,6 @@ extern u_long ps_arg_cache_limit; extern int sched_quantum; /* Scheduling quantum in ticks. */ -/* - * Space to append to struct thread for DTrace specific thread - * variables. This space is after the 'struct td_sched'. - */ -#define KDTRACE_THREAD_SIZE 128 - -/* Offset from 'struct thread *' to the opaque DTrace fields. */ -extern int kdtrace_thread_offset; - -/* Overall per-thread allocation size. */ -extern int kdtrace_thread_size; - -/* DTrace data for the primary thread in proc0. */ -extern char kdtrace_thread0[]; - LIST_HEAD(proclist, proc); TAILQ_HEAD(procqueue, proc); TAILQ_HEAD(threadqueue, thread); From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:50:08 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A57821065678; Mon, 9 Jun 2008 02:50:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 675C11065671 for ; Mon, 9 Jun 2008 02:50:08 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 532788FC1C for ; Mon, 9 Jun 2008 02:50:08 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592o8uL048411 for ; Mon, 9 Jun 2008 02:50:08 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592o80x048409 for perforce@freebsd.org; Mon, 9 Jun 2008 02:50:08 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:50:08 GMT Message-Id: <200806090250.m592o80x048409@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143147 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:50:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=143147 Change 143147 by jb@freebsd3 on 2008/06/09 02:49:20 Add support for the DTrace dtmalloc provider. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/kern_malloc.c#2 edit .. //depot/projects/dtrace6/src/sys/sys/malloc.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/kern_malloc.c#2 (text+ko) ==== @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD: src/sys/kern/kern_malloc.c,v 1.142.2.8 2006/03/06 08:42:07 ps Exp $"); #include "opt_ddb.h" +#include "opt_kdtrace.h" #include "opt_vm.h" #include @@ -72,6 +73,12 @@ #include +#ifdef KDTRACE_HOOKS +#include + +dtrace_malloc_probe_func_t dtrace_malloc_probe; +#endif + /* * When realloc() is called, if the new size is sufficiently smaller than * the old size, realloc() will allocate a new, smaller block to avoid @@ -222,6 +229,17 @@ } if (zindx != -1) mtsp->mts_size |= 1 << zindx; + +#ifdef KDTRACE_HOOKS + if (dtrace_malloc_probe != NULL) { + uint32_t probe_id = mtip->mti_probes[DTMALLOC_PROBE_MALLOC]; + if (probe_id != 0) + (dtrace_malloc_probe)(probe_id, + (uintptr_t) mtp, (uintptr_t) mtip, + (uintptr_t) mtsp, size, zindx); + } +#endif + critical_exit(); } @@ -247,6 +265,17 @@ mtsp = &mtip->mti_stats[curcpu]; mtsp->mts_memfreed += size; mtsp->mts_numfrees++; + +#ifdef KDTRACE_HOOKS + if (dtrace_malloc_probe != NULL) { + uint32_t probe_id = mtip->mti_probes[DTMALLOC_PROBE_FREE]; + if (probe_id != 0) + (dtrace_malloc_probe)(probe_id, + (uintptr_t) mtp, (uintptr_t) mtip, + (uintptr_t) mtsp, size, 0); + } +#endif + critical_exit(); } @@ -839,6 +868,40 @@ SYSCTL_INT(_kern, OID_AUTO, malloc_count, CTLFLAG_RD, &kmemcount, 0, "Count of kernel malloc types"); +void +malloc_type_list(malloc_type_list_func_t *func, void *arg) +{ + struct malloc_type *mtp, **bufmtp; + int count, i; + size_t buflen; + + mtx_lock(&malloc_mtx); +restart: + mtx_assert(&malloc_mtx, MA_OWNED); + count = kmemcount; + mtx_unlock(&malloc_mtx); + + buflen = sizeof(struct malloc_type *) * count; + bufmtp = malloc(buflen, M_TEMP, M_WAITOK); + + mtx_lock(&malloc_mtx); + + if (count < kmemcount) { + free(bufmtp, M_TEMP); + goto restart; + } + + for (mtp = kmemstatistics, i = 0; mtp != NULL; mtp = mtp->ks_next, i++) + bufmtp[i] = mtp; + + mtx_unlock(&malloc_mtx); + + for (i = 0; i < count; i++) + (func)(bufmtp[i], arg); + + free(bufmtp, M_TEMP); +} + #ifdef DDB DB_SHOW_COMMAND(malloc, db_show_malloc) { ==== //depot/projects/dtrace6/src/sys/sys/malloc.h#2 (text+ko) ==== @@ -80,7 +80,16 @@ uint64_t _mts_reserved3; /* Reserved field. */ }; +/* + * Index definitions for the mti_probes[] array. + */ +#define DTMALLOC_PROBE_MALLOC 0 +#define DTMALLOC_PROBE_FREE 1 +#define DTMALLOC_PROBE_MAX 2 + struct malloc_type_internal { + uint32_t mti_probes[DTMALLOC_PROBE_MAX]; + /* DTrace probe ID array. */ struct malloc_type_stats mti_stats[MAXCPU]; }; @@ -173,6 +182,11 @@ extern struct mtx malloc_mtx; +/* + * Function type used when iterating over the list of malloc types. + */ +typedef void malloc_type_list_func_t(struct malloc_type *, void *); + /* XXX struct malloc_type is unused for contig*(). */ void contigfree(void *addr, unsigned long size, struct malloc_type *type); void *contigmalloc(unsigned long size, struct malloc_type *type, int flags, @@ -184,6 +198,7 @@ int malloc_last_fail(void); void malloc_type_allocated(struct malloc_type *type, unsigned long size); void malloc_type_freed(struct malloc_type *type, unsigned long size); +void malloc_type_list(malloc_type_list_func_t *, void *); void malloc_uninit(void *); void *realloc(void *addr, unsigned long size, struct malloc_type *type, int flags); From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:51:10 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CE03F106566B; Mon, 9 Jun 2008 02:51:09 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 903D8106567D for ; Mon, 9 Jun 2008 02:51:09 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C78D8FC12 for ; Mon, 9 Jun 2008 02:51:09 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592p9W0048513 for ; Mon, 9 Jun 2008 02:51:09 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592p9Ba048511 for perforce@freebsd.org; Mon, 9 Jun 2008 02:51:09 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:51:09 GMT Message-Id: <200806090251.m592p9Ba048511@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143148 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:51:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=143148 Change 143148 by jb@freebsd3 on 2008/06/09 02:50:11 Add the SYSININT states for the DTrace kernel modules. Affected files ... .. //depot/projects/dtrace6/src/sys/sys/kernel.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/sys/kernel.h#2 (text+ko) ==== @@ -118,6 +118,7 @@ SI_SUB_EVENTHANDLER = 0x1C00000, /* eventhandler init */ SI_SUB_KLD = 0x2000000, /* KLD and module setup */ SI_SUB_CPU = 0x2100000, /* CPU resource(s)*/ + SI_SUB_KDTRACE = 0x2140000, /* Kernel dtrace hooks */ SI_SUB_MAC = 0x2180000, /* TrustedBSD MAC subsystem */ SI_SUB_MAC_POLICY = 0x21C0000, /* TrustedBSD MAC policies */ SI_SUB_MAC_LATE = 0x21D0000, /* TrustedBSD MAC subsystem */ @@ -125,6 +126,8 @@ SI_SUB_VM_CONF = 0x2300000, /* config VM, set limits*/ SI_SUB_RUN_QUEUE = 0x2400000, /* set up run queue*/ SI_SUB_KTRACE = 0x2480000, /* ktrace */ + SI_SUB_OPENSOLARIS = 0x2490000, /* OpenSolaris compatibility */ + SI_SUB_CYCLIC = 0x24A0000, /* Cyclic timers */ SI_SUB_AUDIT = 0x24C0000, /* audit */ SI_SUB_CREATE_INIT = 0x2500000, /* create init process*/ SI_SUB_SCHED_IDLE = 0x2600000, /* required idle procs */ @@ -135,6 +138,9 @@ SI_SUB_DEVFS = 0x2F00000, /* devfs ready for devices */ SI_SUB_INIT_IF = 0x3000000, /* prep for net interfaces */ SI_SUB_NETGRAPH = 0x3010000, /* Let Netgraph initialize */ + SI_SUB_DTRACE = 0x3020000, /* DTrace subsystem */ + SI_SUB_DTRACE_PROVIDER = 0x3048000, /* DTrace providers */ + SI_SUB_DTRACE_ANON = 0x308C000, /* DTrace anon enabling */ SI_SUB_DRIVERS = 0x3100000, /* Let Drivers initialize */ SI_SUB_CONFIGURE = 0x3800000, /* Configure devices */ SI_SUB_VFS = 0x4000000, /* virtual filesystem*/ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 02:52:11 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1DBA71065673; Mon, 9 Jun 2008 02:52:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBD6F106568B for ; Mon, 9 Jun 2008 02:52:10 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A6FCC8FC22 for ; Mon, 9 Jun 2008 02:52:10 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m592qAVt048577 for ; Mon, 9 Jun 2008 02:52:10 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m592qAv4048574 for perforce@freebsd.org; Mon, 9 Jun 2008 02:52:10 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 02:52:10 GMT Message-Id: <200806090252.m592qAv4048574@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143149 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 02:52:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=143149 Change 143149 by jb@freebsd3 on 2008/06/09 02:51:12 Add the linker method for the DTrace kernel modules. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/kern_linker.c#4 edit .. //depot/projects/dtrace6/src/sys/kern/linker_if.m#2 edit .. //depot/projects/dtrace6/src/sys/sys/linker.h#5 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/kern_linker.c#4 (text+ko) ==== @@ -68,7 +68,13 @@ linker_file_t linker_kernel_file; -static struct mtx kld_mtx; /* kernel linker mutex */ +static struct mtx kld_mtx; /* kernel linker lock */ + +/* + * Load counter used by clients to determine if a linker file has been + * re-loaded. This counter is incremented for each file load. + */ +static int loadcnt; static linker_class_list_t classes; static linker_file_list_t linker_files; @@ -475,6 +481,22 @@ return (lf); } +int +linker_file_foreach(linker_predicate_t *predicate, void *context) +{ + linker_file_t lf; + int retval = 0; + + mtx_lock(&kld_mtx); + TAILQ_FOREACH(lf, &linker_files, link) { + retval = predicate(lf, context); + if (retval != 0) + break; + } + mtx_unlock(&kld_mtx); + return (retval); +} + linker_file_t linker_make_file(const char *pathname, linker_class_t lc) { @@ -496,6 +518,9 @@ LINKER_GET_NEXT_FILE_ID(lf->id); lf->ndeps = 0; lf->deps = NULL; + lf->loadcnt = ++loadcnt; + lf->sdt_probes = NULL; + lf->sdt_nprobes = 0; STAILQ_INIT(&lf->common); TAILQ_INIT(&lf->modules); mtx_lock(&kld_mtx); @@ -601,6 +626,12 @@ } int +linker_ctf_get(linker_file_t file, linker_ctf_t *lc) +{ + return (LINKER_CTF_GET(file, lc)); +} + +int linker_file_add_dependency(linker_file_t file, linker_file_t dep) { linker_file_t *newdeps; @@ -629,8 +660,17 @@ linker_file_lookup_set(linker_file_t file, const char *name, void *firstp, void *lastp, int *countp) { + return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp)); +} - return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp)); +/* + * List all functions in a file. + */ +int +linker_file_function_listall(linker_file_t lf, + linker_function_nameval_callback_t callback_func, void *arg) +{ + return (LINKER_EACH_FUNCTION_NAMEVAL(lf, callback_func, arg)); } caddr_t @@ -850,7 +890,13 @@ lf = linker_find_file_by_id(fileid); if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); - if (lf->userrefs == 0) { + + /* Check if there are DTrace probes enabled on this file. */ + if (lf->nenabled > 0) { + printf("kldunload: attempt to unload file that has" + " DTrace probes enabled\n"); + error = EBUSY; + } else if (lf->userrefs == 0) { /* * XXX: maybe LINKER_UNLOAD_FORCE should override ? */ @@ -975,10 +1021,21 @@ int kldstat(struct thread *td, struct kldstat_args *uap) { + struct kld_file_stat stat; linker_file_t lf; - int error = 0; - int namelen, version, version_num; - struct kld_file_stat *stat; + int error, namelen, version, version_num; + + /* + * Check the version of the user's structure. + */ + if ((error = copyin(&uap->stat->version, &version, sizeof(version))) != 0) + return (error); + if (version == sizeof(struct kld_file_stat_1)) + version_num = 1; + else if (version == sizeof(struct kld_file_stat)) + version_num = 2; + else + return (EINVAL); #ifdef MAC error = mac_check_kld_stat(td->td_ucred); @@ -987,57 +1044,33 @@ #endif mtx_lock(&Giant); - lf = linker_find_file_by_id(uap->fileid); if (lf == NULL) { - error = ENOENT; - goto out; + mtx_unlock(&Giant); + return (ENOENT); } - stat = uap->stat; - /* - * Check the version of the user's structure. - */ - if ((error = copyin(&stat->version, &version, sizeof(version))) != 0) - goto out; - if (version == sizeof(struct kld_file_stat_1)) - version_num = 1; - else if (version == sizeof(struct kld_file_stat)) - version_num = 2; - else { - error = EINVAL; - goto out; - } - /* Version 1 fields: */ namelen = strlen(lf->filename) + 1; if (namelen > MAXPATHLEN) namelen = MAXPATHLEN; - if ((error = copyout(lf->filename, &stat->name[0], namelen)) != 0) - goto out; - if ((error = copyout(&lf->refs, &stat->refs, sizeof(int))) != 0) - goto out; - if ((error = copyout(&lf->id, &stat->id, sizeof(int))) != 0) - goto out; - if ((error = copyout(&lf->address, &stat->address, - sizeof(caddr_t))) != 0) - goto out; - if ((error = copyout(&lf->size, &stat->size, sizeof(size_t))) != 0) - goto out; + bcopy(lf->filename, &stat.name[0], namelen); + stat.refs = lf->refs; + stat.id = lf->id; + stat.address = lf->address; + stat.size = lf->size; if (version_num > 1) { /* Version 2 fields: */ namelen = strlen(lf->pathname) + 1; if (namelen > MAXPATHLEN) namelen = MAXPATHLEN; - if ((error = copyout(lf->pathname, &stat->pathname[0], - namelen)) != 0) - goto out; + bcopy(lf->pathname, &stat.pathname[0], namelen); } + mtx_unlock(&Giant); td->td_retval[0] = 0; -out: - mtx_unlock(&Giant); - return (error); + + return (copyout(&stat, uap->stat, sizeof(struct kld_file_stat))); } /* ==== //depot/projects/dtrace6/src/sys/kern/linker_if.m#2 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/kern/linker_if.m,v 1.6 2005/01/06 23:35:39 imp Exp $ +# $FreeBSD: src/sys/kern/linker_if.m,v 1.8 2008/05/23 04:06:49 jb Exp $ # #include @@ -64,6 +64,17 @@ }; # +# Call the callback with each specified function and it's value +# defined in the file. +# Stop and return the error if the callback returns an error. +# +METHOD int each_function_nameval { + linker_file_t file; + linker_function_nameval_callback_t callback; + void* opaque; +}; + +# # Search for a linker set in a file. Return a pointer to the first # entry (which is itself a pointer), and the number of entries. # "stop" points to the entry beyond the last valid entry. @@ -85,6 +96,15 @@ }; # +# Load CTF data if necessary and if there is a .SUNW_ctf section +# in the ELF file, returning info in the linker CTF structure. +# +METHOD int ctf_get { + linker_file_t file; + linker_ctf_t *lc; +}; + +# # Load a file, returning the new linker_file_t in *result. If # the class does not recognise the file type, zero should be # returned, without modifying *result. If the file is ==== //depot/projects/dtrace6/src/sys/sys/linker.h#5 (text+ko) ==== @@ -59,6 +59,8 @@ size_t size; } linker_symval_t; +typedef int (*linker_function_nameval_callback_t)(linker_file_t, int, linker_symval_t *, void *); + struct common_symbol { STAILQ_ENTRY(common_symbol) link; char* name; @@ -113,6 +115,11 @@ extern linker_file_t linker_kernel_file; /* + * Function type used when iterating over the list of linker files. + */ +typedef int linker_predicate_t(linker_file_t, void *); + +/* * Add a new file class to the linker. */ int linker_add_class(linker_class_t _cls); @@ -139,6 +146,13 @@ linker_file_t _file); /* + * Iterate over all of the currently loaded linker files calling the + * predicate function while the function returns 0. Returns the value + * returned by the last predicate function. + */ +int linker_file_foreach(linker_predicate_t *_predicate, void *_context); + +/* * Find a currently loaded file given its filename. */ linker_file_t linker_find_file_by_name(const char* _filename); @@ -171,6 +185,12 @@ int _deps); /* + * List all functions in a file. + */ +int linker_file_function_listall(linker_file_t, + linker_function_nameval_callback_t, void *); + +/* * Lookup a linker set in a file. Return pointers to the first entry, * last + 1, and count of entries. Use: for (p = start; p < stop; p++) {} * void *start is really: "struct yoursetmember ***start;" @@ -271,6 +291,20 @@ const Elf_Sym *elf_get_sym(linker_file_t _lf, Elf_Size _symidx); const char *elf_get_symname(linker_file_t _lf, Elf_Size _symidx); +typedef struct linker_ctf { + const uint8_t *ctftab; /* Decompressed CTF data. */ + int ctfcnt; /* Number of CTF data bytes. */ + const Elf_Sym *symtab; /* Ptr to the symbol table. */ + int nsym; /* Number of symbols. */ + const char *strtab; /* Ptr to the string table. */ + int strcnt; /* Number of string bytes. */ + uint32_t **ctfoffp; /* Ptr to array of obj/fnc offsets. */ + uint32_t **typoffp; /* Ptr to array of type offsets. */ + long *typlenp; /* Ptr to number of type data entries. */ +} linker_ctf_t; + +int linker_ctf_get(linker_file_t, linker_ctf_t *); + int elf_cpu_load_file(linker_file_t); int elf_cpu_unload_file(linker_file_t); From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:03:22 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6555B1065678; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 213C81065670 for ; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0CB3A8FC18 for ; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5933LCl050638 for ; Mon, 9 Jun 2008 03:03:21 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5933LQN050636 for perforce@freebsd.org; Mon, 9 Jun 2008 03:03:21 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:03:21 GMT Message-Id: <200806090303.m5933LQN050636@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143150 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:03:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=143150 Change 143150 by jb@freebsd3 on 2008/06/09 03:02:24 Add CTF support. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/kern_ctf.c#1 add .. //depot/projects/dtrace6/src/sys/kern/link_elf.c#2 edit .. //depot/projects/dtrace6/src/sys/kern/link_elf_obj.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/link_elf.c#2 (text+ko) ==== @@ -60,6 +60,10 @@ #include +#ifdef DDB_CTF +#include +#endif + #include "linker_if.h" #define MAXSEGS 4 @@ -96,11 +100,18 @@ long ddbstrcnt; /* number of bytes in string table */ caddr_t symbase; /* malloc'ed symbold base */ caddr_t strbase; /* malloc'ed string base */ + caddr_t ctftab; /* CTF table */ + long ctfcnt; /* number of bytes in CTF table */ + caddr_t ctfoff; /* CTF offset table */ + caddr_t typoff; /* Type offset table */ + long typlen; /* Number of type entries. */ #ifdef GDB struct link_map gdb; /* hooks for gdb */ #endif } *elf_file_t; +#include + static int link_elf_link_common_finish(linker_file_t); static int link_elf_link_preload(linker_class_t cls, const char*, linker_file_t*); @@ -119,6 +130,9 @@ static int link_elf_each_function_name(linker_file_t, int (*)(const char *, void *), void *); +static int link_elf_each_function_nameval(linker_file_t, + linker_function_nameval_callback_t, + void *); static void link_elf_reloc_local(linker_file_t); static Elf_Addr elf_lookup(linker_file_t lf, Elf_Size symidx, int deps); @@ -132,6 +146,8 @@ KOBJMETHOD(linker_link_preload_finish, link_elf_link_preload_finish), KOBJMETHOD(linker_lookup_set, link_elf_lookup_set), KOBJMETHOD(linker_each_function_name, link_elf_each_function_name), + KOBJMETHOD(linker_each_function_nameval, link_elf_each_function_nameval), + KOBJMETHOD(linker_ctf_get, link_elf_ctf_get), { 0, 0 } }; @@ -899,6 +915,12 @@ free(ef->symbase, M_LINKER); if (ef->strbase) free(ef->strbase, M_LINKER); + if (ef->ctftab) + free(ef->ctftab, M_LINKER); + if (ef->ctfoff) + free(ef->ctfoff, M_LINKER); + if (ef->typoff) + free(ef->typoff, M_LINKER); } static void @@ -1216,6 +1238,30 @@ return (0); } +static int +link_elf_each_function_nameval(linker_file_t file, + linker_function_nameval_callback_t callback, void *opaque) +{ + linker_symval_t symval; + elf_file_t ef = (elf_file_t)file; + const Elf_Sym* symp; + int i, error; + + /* Exhaustive search */ + for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { + if (symp->st_value != 0 && + ELF_ST_TYPE(symp->st_info) == STT_FUNC) { + error = link_elf_symbol_values(file, (c_linker_sym_t) symp, &symval); + if (error) + return (error); + error = callback(file, i, &symval, opaque); + if (error) + return (error); + } + } + return (0); +} + #ifdef __ia64__ /* * Each KLD has its own GP. The GP value for each load module is given by ==== //depot/projects/dtrace6/src/sys/kern/link_elf_obj.c#2 (text+ko) ==== @@ -56,6 +56,10 @@ #include +#ifdef DDB_CTF +#include +#endif + #include "linker_if.h" typedef struct { @@ -104,8 +108,15 @@ caddr_t shstrtab; /* Section name string table */ long shstrcnt; /* number of bytes in string table */ + caddr_t ctftab; /* CTF table */ + long ctfcnt; /* number of bytes in CTF table */ + caddr_t ctfoff; /* CTF offset table */ + caddr_t typoff; /* Type offset table */ + long typlen; /* Number of type entries. */ } *elf_file_t; +#include + static int link_elf_link_preload(linker_class_t cls, const char *, linker_file_t *); static int link_elf_link_preload_finish(linker_file_t); @@ -122,6 +133,9 @@ void ***, void ***, int *); static int link_elf_each_function_name(linker_file_t, int (*)(const char *, void *), void *); +static int link_elf_each_function_nameval(linker_file_t, + linker_function_nameval_callback_t, + void *); static void link_elf_reloc_local(linker_file_t); static Elf_Addr elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps); @@ -136,6 +150,8 @@ KOBJMETHOD(linker_link_preload_finish, link_elf_link_preload_finish), KOBJMETHOD(linker_lookup_set, link_elf_lookup_set), KOBJMETHOD(linker_each_function_name, link_elf_each_function_name), + KOBJMETHOD(linker_each_function_nameval, link_elf_each_function_nameval), + KOBJMETHOD(linker_ctf_get, link_elf_ctf_get), { 0, 0 } }; @@ -808,6 +824,12 @@ free(ef->relatab, M_LINKER); if (ef->progtab) free(ef->progtab, M_LINKER); + if (ef->ctftab) + free(ef->ctftab, M_LINKER); + if (ef->ctfoff) + free(ef->ctfoff, M_LINKER); + if (ef->typoff) + free(ef->typoff, M_LINKER); if (file->filename != NULL) preload_delete_name(file->filename); /* XXX reclaim module memory? */ @@ -840,6 +862,12 @@ free(ef->ddbstrtab, M_LINKER); if (ef->shstrtab) free(ef->shstrtab, M_LINKER); + if (ef->ctftab) + free(ef->ctftab, M_LINKER); + if (ef->ctfoff) + free(ef->ctfoff, M_LINKER); + if (ef->typoff) + free(ef->typoff, M_LINKER); } static const char * @@ -1061,6 +1089,30 @@ return (0); } +static int +link_elf_each_function_nameval(linker_file_t file, + linker_function_nameval_callback_t callback, void *opaque) +{ + linker_symval_t symval; + elf_file_t ef = (elf_file_t)file; + const Elf_Sym* symp; + int i, error; + + /* Exhaustive search */ + for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { + if (symp->st_value != 0 && + ELF_ST_TYPE(symp->st_info) == STT_FUNC) { + error = link_elf_symbol_values(file, (c_linker_sym_t) symp, &symval); + if (error) + return (error); + error = callback(file, i, &symval, opaque); + if (error) + return (error); + } + } + return (0); +} + /* * Symbol lookup function that can be used when the symbol index is known (ie * in relocations). It uses the symbol index instead of doing a fully fledged From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:03:23 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C6991065730; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 338AC1065676 for ; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CFD08FC1B for ; Mon, 9 Jun 2008 03:03:22 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5933MY9050643 for ; Mon, 9 Jun 2008 03:03:22 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5933LWO050641 for perforce@freebsd.org; Mon, 9 Jun 2008 03:03:21 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:03:21 GMT Message-Id: <200806090303.m5933LWO050641@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143151 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:03:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=143151 Change 143151 by jb@freebsd3 on 2008/06/09 03:02:52 Regen. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/init_sysent.c#3 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/init_sysent.c#3 (text+ko) ==== @@ -2,7 +2,7 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.195.2.6 2008/04/24 10:52:30 dfr Exp $ + * $FreeBSD$ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.6 2008/04/24 10:46:19 dfr Exp */ @@ -28,461 +28,466 @@ #endif /* The casts are bogus but will do for now. */ +#ifdef BREAK_SYSENT_ABI +#define SYSTRACE_EXTRA , NULL, 0, 0 +#else +#define SYSTRACE_EXTRA +#endif struct sysent sysent[] = { - { SYF_MPSAFE | 0, (sy_call_t *)nosys, AUE_NULL }, /* 0 = syscall */ - { SYF_MPSAFE | AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT }, /* 1 = exit */ - { SYF_MPSAFE | 0, (sy_call_t *)fork, AUE_FORK }, /* 2 = fork */ - { SYF_MPSAFE | AS(read_args), (sy_call_t *)read, AUE_NULL }, /* 3 = read */ - { SYF_MPSAFE | AS(write_args), (sy_call_t *)write, AUE_NULL }, /* 4 = write */ - { SYF_MPSAFE | AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC }, /* 5 = open */ - { SYF_MPSAFE | AS(close_args), (sy_call_t *)close, AUE_CLOSE }, /* 6 = close */ - { SYF_MPSAFE | AS(wait_args), (sy_call_t *)wait4, AUE_WAIT4 }, /* 7 = wait4 */ - { compat(SYF_MPSAFE | AS(ocreat_args),creat), AUE_CREAT }, /* 8 = old creat */ - { SYF_MPSAFE | AS(link_args), (sy_call_t *)link, AUE_LINK }, /* 9 = link */ - { SYF_MPSAFE | AS(unlink_args), (sy_call_t *)unlink, AUE_UNLINK }, /* 10 = unlink */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 11 = obsolete execv */ - { SYF_MPSAFE | AS(chdir_args), (sy_call_t *)chdir, AUE_CHDIR }, /* 12 = chdir */ - { SYF_MPSAFE | AS(fchdir_args), (sy_call_t *)fchdir, AUE_FCHDIR }, /* 13 = fchdir */ - { SYF_MPSAFE | AS(mknod_args), (sy_call_t *)mknod, AUE_MKNOD }, /* 14 = mknod */ - { SYF_MPSAFE | AS(chmod_args), (sy_call_t *)chmod, AUE_CHMOD }, /* 15 = chmod */ - { SYF_MPSAFE | AS(chown_args), (sy_call_t *)chown, AUE_CHOWN }, /* 16 = chown */ - { SYF_MPSAFE | AS(obreak_args), (sy_call_t *)obreak, AUE_NULL }, /* 17 = break */ - { compat4(SYF_MPSAFE | AS(freebsd4_getfsstat_args),getfsstat), AUE_GETFSSTAT }, /* 18 = old getfsstat */ - { compat(SYF_MPSAFE | AS(olseek_args),lseek), AUE_LSEEK }, /* 19 = old lseek */ - { SYF_MPSAFE | 0, (sy_call_t *)getpid, AUE_GETPID }, /* 20 = getpid */ - { AS(mount_args), (sy_call_t *)mount, AUE_MOUNT }, /* 21 = mount */ - { AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT }, /* 22 = unmount */ - { SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID }, /* 23 = setuid */ - { SYF_MPSAFE | 0, (sy_call_t *)getuid, AUE_GETUID }, /* 24 = getuid */ - { SYF_MPSAFE | 0, (sy_call_t *)geteuid, AUE_GETEUID }, /* 25 = geteuid */ - { SYF_MPSAFE | AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE }, /* 26 = ptrace */ - { SYF_MPSAFE | AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG }, /* 27 = recvmsg */ - { SYF_MPSAFE | AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG }, /* 28 = sendmsg */ - { SYF_MPSAFE | AS(recvfrom_args), (sy_call_t *)recvfrom, AUE_RECVFROM }, /* 29 = recvfrom */ - { SYF_MPSAFE | AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT }, /* 30 = accept */ - { SYF_MPSAFE | AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME }, /* 31 = getpeername */ - { SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME }, /* 32 = getsockname */ - { SYF_MPSAFE | AS(access_args), (sy_call_t *)access, AUE_ACCESS }, /* 33 = access */ - { SYF_MPSAFE | AS(chflags_args), (sy_call_t *)chflags, AUE_CHFLAGS }, /* 34 = chflags */ - { SYF_MPSAFE | AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS }, /* 35 = fchflags */ - { SYF_MPSAFE | 0, (sy_call_t *)sync, AUE_SYNC }, /* 36 = sync */ - { SYF_MPSAFE | AS(kill_args), (sy_call_t *)kill, AUE_KILL }, /* 37 = kill */ - { compat(SYF_MPSAFE | AS(ostat_args),stat), AUE_STAT }, /* 38 = old stat */ - { SYF_MPSAFE | 0, (sy_call_t *)getppid, AUE_GETPPID }, /* 39 = getppid */ - { compat(SYF_MPSAFE | AS(olstat_args),lstat), AUE_LSTAT }, /* 40 = old lstat */ - { SYF_MPSAFE | AS(dup_args), (sy_call_t *)dup, AUE_DUP }, /* 41 = dup */ - { SYF_MPSAFE | 0, (sy_call_t *)pipe, AUE_PIPE }, /* 42 = pipe */ - { SYF_MPSAFE | 0, (sy_call_t *)getegid, AUE_GETEGID }, /* 43 = getegid */ - { SYF_MPSAFE | AS(profil_args), (sy_call_t *)profil, AUE_PROFILE }, /* 44 = profil */ - { SYF_MPSAFE | AS(ktrace_args), (sy_call_t *)ktrace, AUE_KTRACE }, /* 45 = ktrace */ - { compat(SYF_MPSAFE | AS(osigaction_args),sigaction), AUE_SIGACTION }, /* 46 = old sigaction */ - { SYF_MPSAFE | 0, (sy_call_t *)getgid, AUE_GETGID }, /* 47 = getgid */ - { compat(SYF_MPSAFE | AS(osigprocmask_args),sigprocmask), AUE_SIGPROCMASK }, /* 48 = old sigprocmask */ - { SYF_MPSAFE | AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN }, /* 49 = getlogin */ - { SYF_MPSAFE | AS(setlogin_args), (sy_call_t *)setlogin, AUE_SETLOGIN }, /* 50 = setlogin */ - { SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct, AUE_ACCT }, /* 51 = acct */ - { compat(SYF_MPSAFE | 0,sigpending), AUE_SIGPENDING }, /* 52 = old sigpending */ - { SYF_MPSAFE | AS(sigaltstack_args), (sy_call_t *)sigaltstack, AUE_SIGPENDING }, /* 53 = sigaltstack */ - { SYF_MPSAFE | AS(ioctl_args), (sy_call_t *)ioctl, AUE_IOCTL }, /* 54 = ioctl */ - { SYF_MPSAFE | AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT }, /* 55 = reboot */ - { SYF_MPSAFE | AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE }, /* 56 = revoke */ - { SYF_MPSAFE | AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK }, /* 57 = symlink */ - { SYF_MPSAFE | AS(readlink_args), (sy_call_t *)readlink, AUE_READLINK }, /* 58 = readlink */ - { SYF_MPSAFE | AS(execve_args), (sy_call_t *)execve, AUE_EXECVE }, /* 59 = execve */ - { SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask, AUE_UMASK }, /* 60 = umask */ - { SYF_MPSAFE | AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT }, /* 61 = chroot */ - { compat(SYF_MPSAFE | AS(ofstat_args),fstat), AUE_FSTAT }, /* 62 = old fstat */ - { compat(SYF_MPSAFE | AS(getkerninfo_args),getkerninfo), AUE_NULL }, /* 63 = old getkerninfo */ - { compat(SYF_MPSAFE | 0,getpagesize), AUE_NULL }, /* 64 = old getpagesize */ - { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync, AUE_MSYNC }, /* 65 = msync */ - { SYF_MPSAFE | 0, (sy_call_t *)vfork, AUE_VFORK }, /* 66 = vfork */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 67 = obsolete vread */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 68 = obsolete vwrite */ - { SYF_MPSAFE | AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK }, /* 69 = sbrk */ - { SYF_MPSAFE | AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK }, /* 70 = sstk */ - { compat(SYF_MPSAFE | AS(ommap_args),mmap), AUE_MMAP }, /* 71 = old mmap */ - { SYF_MPSAFE | AS(ovadvise_args), (sy_call_t *)ovadvise, AUE_O_VADVISE }, /* 72 = vadvise */ - { SYF_MPSAFE | AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP }, /* 73 = munmap */ - { SYF_MPSAFE | AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT }, /* 74 = mprotect */ - { SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE }, /* 75 = madvise */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 76 = obsolete vhangup */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 77 = obsolete vlimit */ - { SYF_MPSAFE | AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE }, /* 78 = mincore */ - { SYF_MPSAFE | AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS }, /* 79 = getgroups */ - { SYF_MPSAFE | AS(setgroups_args), (sy_call_t *)setgroups, AUE_SETGROUPS }, /* 80 = setgroups */ - { SYF_MPSAFE | 0, (sy_call_t *)getpgrp, AUE_GETPGRP }, /* 81 = getpgrp */ - { SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP }, /* 82 = setpgid */ - { SYF_MPSAFE | AS(setitimer_args), (sy_call_t *)setitimer, AUE_SETITIMER }, /* 83 = setitimer */ - { compat(SYF_MPSAFE | 0,wait), AUE_WAIT4 }, /* 84 = old wait */ - { SYF_MPSAFE | AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON }, /* 85 = swapon */ - { SYF_MPSAFE | AS(getitimer_args), (sy_call_t *)getitimer, AUE_GETITIMER }, /* 86 = getitimer */ - { compat(SYF_MPSAFE | AS(gethostname_args),gethostname), AUE_SYSCTL }, /* 87 = old gethostname */ - { compat(SYF_MPSAFE | AS(sethostname_args),sethostname), AUE_SYSCTL }, /* 88 = old sethostname */ - { SYF_MPSAFE | 0, (sy_call_t *)getdtablesize, AUE_GETDTABLESIZE }, /* 89 = getdtablesize */ - { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2 }, /* 90 = dup2 */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 91 = getdopt */ - { SYF_MPSAFE | AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL }, /* 92 = fcntl */ - { SYF_MPSAFE | AS(select_args), (sy_call_t *)select, AUE_SELECT }, /* 93 = select */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 94 = setdopt */ - { SYF_MPSAFE | AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC }, /* 95 = fsync */ - { SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY }, /* 96 = setpriority */ - { SYF_MPSAFE | AS(socket_args), (sy_call_t *)socket, AUE_SOCKET }, /* 97 = socket */ - { SYF_MPSAFE | AS(connect_args), (sy_call_t *)connect, AUE_CONNECT }, /* 98 = connect */ - { compat(SYF_MPSAFE | AS(accept_args),accept), AUE_ACCEPT }, /* 99 = old accept */ - { SYF_MPSAFE | AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY }, /* 100 = getpriority */ - { compat(SYF_MPSAFE | AS(osend_args),send), AUE_SEND }, /* 101 = old send */ - { compat(SYF_MPSAFE | AS(orecv_args),recv), AUE_RECV }, /* 102 = old recv */ - { compat(SYF_MPSAFE | AS(osigreturn_args),sigreturn), AUE_SIGRETURN }, /* 103 = old sigreturn */ - { SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind, AUE_BIND }, /* 104 = bind */ - { SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT }, /* 105 = setsockopt */ - { SYF_MPSAFE | AS(listen_args), (sy_call_t *)listen, AUE_LISTEN }, /* 106 = listen */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 107 = obsolete vtimes */ - { compat(SYF_MPSAFE | AS(osigvec_args),sigvec), AUE_NULL }, /* 108 = old sigvec */ - { compat(SYF_MPSAFE | AS(osigblock_args),sigblock), AUE_NULL }, /* 109 = old sigblock */ - { compat(SYF_MPSAFE | AS(osigsetmask_args),sigsetmask), AUE_NULL }, /* 110 = old sigsetmask */ - { compat(SYF_MPSAFE | AS(osigsuspend_args),sigsuspend), AUE_NULL }, /* 111 = old sigsuspend */ - { compat(SYF_MPSAFE | AS(osigstack_args),sigstack), AUE_NULL }, /* 112 = old sigstack */ - { compat(SYF_MPSAFE | AS(orecvmsg_args),recvmsg), AUE_RECVMSG }, /* 113 = old recvmsg */ - { compat(SYF_MPSAFE | AS(osendmsg_args),sendmsg), AUE_SENDMSG }, /* 114 = old sendmsg */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 115 = obsolete vtrace */ - { SYF_MPSAFE | AS(gettimeofday_args), (sy_call_t *)gettimeofday, AUE_GETTIMEOFDAY }, /* 116 = gettimeofday */ - { SYF_MPSAFE | AS(getrusage_args), (sy_call_t *)getrusage, AUE_GETRUSAGE }, /* 117 = getrusage */ - { SYF_MPSAFE | AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT }, /* 118 = getsockopt */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 119 = resuba */ - { SYF_MPSAFE | AS(readv_args), (sy_call_t *)readv, AUE_READV }, /* 120 = readv */ - { SYF_MPSAFE | AS(writev_args), (sy_call_t *)writev, AUE_WRITEV }, /* 121 = writev */ - { SYF_MPSAFE | AS(settimeofday_args), (sy_call_t *)settimeofday, AUE_SETTIMEOFDAY }, /* 122 = settimeofday */ - { SYF_MPSAFE | AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN }, /* 123 = fchown */ - { SYF_MPSAFE | AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD }, /* 124 = fchmod */ - { compat(SYF_MPSAFE | AS(recvfrom_args),recvfrom), AUE_RECVFROM }, /* 125 = old recvfrom */ - { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID }, /* 126 = setreuid */ - { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID }, /* 127 = setregid */ - { SYF_MPSAFE | AS(rename_args), (sy_call_t *)rename, AUE_RENAME }, /* 128 = rename */ - { compat(SYF_MPSAFE | AS(otruncate_args),truncate), AUE_TRUNCATE }, /* 129 = old truncate */ - { compat(SYF_MPSAFE | AS(oftruncate_args),ftruncate), AUE_FTRUNCATE }, /* 130 = old ftruncate */ - { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK }, /* 131 = flock */ - { SYF_MPSAFE | AS(mkfifo_args), (sy_call_t *)mkfifo, AUE_MKFIFO }, /* 132 = mkfifo */ - { SYF_MPSAFE | AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO }, /* 133 = sendto */ - { SYF_MPSAFE | AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN }, /* 134 = shutdown */ - { SYF_MPSAFE | AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR }, /* 135 = socketpair */ - { SYF_MPSAFE | AS(mkdir_args), (sy_call_t *)mkdir, AUE_MKDIR }, /* 136 = mkdir */ - { SYF_MPSAFE | AS(rmdir_args), (sy_call_t *)rmdir, AUE_RMDIR }, /* 137 = rmdir */ - { SYF_MPSAFE | AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES }, /* 138 = utimes */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 139 = obsolete 4.2 sigreturn */ - { SYF_MPSAFE | AS(adjtime_args), (sy_call_t *)adjtime, AUE_ADJTIME }, /* 140 = adjtime */ - { compat(SYF_MPSAFE | AS(ogetpeername_args),getpeername), AUE_GETPEERNAME }, /* 141 = old getpeername */ - { compat(SYF_MPSAFE | 0,gethostid), AUE_SYSCTL }, /* 142 = old gethostid */ - { compat(SYF_MPSAFE | AS(osethostid_args),sethostid), AUE_SYSCTL }, /* 143 = old sethostid */ - { compat(SYF_MPSAFE | AS(ogetrlimit_args),getrlimit), AUE_GETRLIMIT }, /* 144 = old getrlimit */ - { compat(SYF_MPSAFE | AS(osetrlimit_args),setrlimit), AUE_SETRLIMIT }, /* 145 = old setrlimit */ - { compat(SYF_MPSAFE | AS(okillpg_args),killpg), AUE_KILLPG }, /* 146 = old killpg */ - { SYF_MPSAFE | 0, (sy_call_t *)setsid, AUE_SETSID }, /* 147 = setsid */ - { SYF_MPSAFE | AS(quotactl_args), (sy_call_t *)quotactl, AUE_QUOTACTL }, /* 148 = quotactl */ - { compat(SYF_MPSAFE | 0,quota), AUE_O_QUOTA }, /* 149 = old quota */ - { compat(SYF_MPSAFE | AS(getsockname_args),getsockname), AUE_GETSOCKNAME }, /* 150 = old getsockname */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 151 = sem_lock */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 152 = sem_wakeup */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 153 = asyncdaemon */ - { SYF_MPSAFE | AS(nlm_syscall_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 154 = nlm_syscall */ - { SYF_MPSAFE | AS(nfssvc_args), (sy_call_t *)nosys, AUE_NULL }, /* 155 = nfssvc */ - { compat(AS(ogetdirentries_args),getdirentries), AUE_GETDIRENTRIES }, /* 156 = old getdirentries */ - { compat4(SYF_MPSAFE | AS(freebsd4_statfs_args),statfs), AUE_STATFS }, /* 157 = old statfs */ - { compat4(SYF_MPSAFE | AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS }, /* 158 = old fstatfs */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 159 = nosys */ - { SYF_MPSAFE | AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH }, /* 160 = lgetfh */ - { SYF_MPSAFE | AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH }, /* 161 = getfh */ - { SYF_MPSAFE | AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_SYSCTL }, /* 162 = getdomainname */ - { SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL }, /* 163 = setdomainname */ - { SYF_MPSAFE | AS(uname_args), (sy_call_t *)uname, AUE_NULL }, /* 164 = uname */ - { SYF_MPSAFE | AS(sysarch_args), (sy_call_t *)sysarch, AUE_NULL }, /* 165 = sysarch */ - { SYF_MPSAFE | AS(rtprio_args), (sy_call_t *)rtprio, AUE_NULL }, /* 166 = rtprio */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 167 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 168 = nosys */ - { SYF_MPSAFE | AS(semsys_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 169 = semsys */ - { SYF_MPSAFE | AS(msgsys_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 170 = msgsys */ - { SYF_MPSAFE | AS(shmsys_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 171 = shmsys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 172 = nosys */ - { SYF_MPSAFE | AS(pread_args), (sy_call_t *)pread, AUE_PREAD }, /* 173 = pread */ - { SYF_MPSAFE | AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE }, /* 174 = pwrite */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 175 = nosys */ - { SYF_MPSAFE | AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME }, /* 176 = ntp_adjtime */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 177 = sfork */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 178 = getdescriptor */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 179 = setdescriptor */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 180 = nosys */ - { SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID }, /* 181 = setgid */ - { SYF_MPSAFE | AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID }, /* 182 = setegid */ - { SYF_MPSAFE | AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID }, /* 183 = seteuid */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 184 = lfs_bmapv */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 185 = lfs_markv */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 186 = lfs_segclean */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 187 = lfs_segwait */ - { SYF_MPSAFE | AS(stat_args), (sy_call_t *)stat, AUE_STAT }, /* 188 = stat */ - { SYF_MPSAFE | AS(fstat_args), (sy_call_t *)fstat, AUE_FSTAT }, /* 189 = fstat */ - { SYF_MPSAFE | AS(lstat_args), (sy_call_t *)lstat, AUE_LSTAT }, /* 190 = lstat */ - { SYF_MPSAFE | AS(pathconf_args), (sy_call_t *)pathconf, AUE_PATHCONF }, /* 191 = pathconf */ - { SYF_MPSAFE | AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF }, /* 192 = fpathconf */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 193 = nosys */ - { SYF_MPSAFE | AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT }, /* 194 = getrlimit */ - { SYF_MPSAFE | AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT }, /* 195 = setrlimit */ - { SYF_MPSAFE | AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES }, /* 196 = getdirentries */ - { SYF_MPSAFE | AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP }, /* 197 = mmap */ - { SYF_MPSAFE | 0, (sy_call_t *)nosys, AUE_NULL }, /* 198 = __syscall */ - { SYF_MPSAFE | AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK }, /* 199 = lseek */ - { SYF_MPSAFE | AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE }, /* 200 = truncate */ - { SYF_MPSAFE | AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE }, /* 201 = ftruncate */ - { SYF_MPSAFE | AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL }, /* 202 = __sysctl */ - { SYF_MPSAFE | AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK }, /* 203 = mlock */ - { SYF_MPSAFE | AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK }, /* 204 = munlock */ - { SYF_MPSAFE | AS(undelete_args), (sy_call_t *)undelete, AUE_UNDELETE }, /* 205 = undelete */ - { SYF_MPSAFE | AS(futimes_args), (sy_call_t *)futimes, AUE_FUTIMES }, /* 206 = futimes */ - { SYF_MPSAFE | AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID }, /* 207 = getpgid */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 208 = newreboot */ - { SYF_MPSAFE | AS(poll_args), (sy_call_t *)poll, AUE_POLL }, /* 209 = poll */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 210 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 211 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 212 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 213 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 214 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 215 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 216 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 217 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 218 = lkmnosys */ - { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL }, /* 219 = lkmnosys */ - { SYF_MPSAFE | AS(__semctl_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 220 = __semctl */ - { SYF_MPSAFE | AS(semget_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 221 = semget */ - { SYF_MPSAFE | AS(semop_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 222 = semop */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 223 = semconfig */ - { SYF_MPSAFE | AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 224 = msgctl */ - { SYF_MPSAFE | AS(msgget_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 225 = msgget */ - { SYF_MPSAFE | AS(msgsnd_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 226 = msgsnd */ - { SYF_MPSAFE | AS(msgrcv_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 227 = msgrcv */ - { SYF_MPSAFE | AS(shmat_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 228 = shmat */ - { SYF_MPSAFE | AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 229 = shmctl */ - { SYF_MPSAFE | AS(shmdt_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 230 = shmdt */ - { SYF_MPSAFE | AS(shmget_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 231 = shmget */ - { SYF_MPSAFE | AS(clock_gettime_args), (sy_call_t *)clock_gettime, AUE_NULL }, /* 232 = clock_gettime */ - { SYF_MPSAFE | AS(clock_settime_args), (sy_call_t *)clock_settime, AUE_NULL }, /* 233 = clock_settime */ - { SYF_MPSAFE | AS(clock_getres_args), (sy_call_t *)clock_getres, AUE_NULL }, /* 234 = clock_getres */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 235 = timer_create */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 236 = timer_delete */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 237 = timer_settime */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 238 = timer_gettime */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 239 = timer_getoverrun */ - { SYF_MPSAFE | AS(nanosleep_args), (sy_call_t *)nanosleep, AUE_NULL }, /* 240 = nanosleep */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 241 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 242 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 243 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 244 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 245 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 246 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 247 = nosys */ - { SYF_MPSAFE | AS(ntp_gettime_args), (sy_call_t *)ntp_gettime, AUE_NULL }, /* 248 = ntp_gettime */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 249 = nosys */ - { SYF_MPSAFE | AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT }, /* 250 = minherit */ - { SYF_MPSAFE | AS(rfork_args), (sy_call_t *)rfork, AUE_RFORK }, /* 251 = rfork */ - { SYF_MPSAFE | AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL }, /* 252 = openbsd_poll */ - { SYF_MPSAFE | 0, (sy_call_t *)issetugid, AUE_ISSETUGID }, /* 253 = issetugid */ - { SYF_MPSAFE | AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN }, /* 254 = lchown */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 255 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 256 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 257 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 258 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 259 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 260 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 261 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 262 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 263 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 264 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 265 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 266 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 267 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 268 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 269 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 270 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 271 = nosys */ - { SYF_MPSAFE | AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS }, /* 272 = getdents */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 273 = nosys */ - { SYF_MPSAFE | AS(lchmod_args), (sy_call_t *)lchmod, AUE_LCHMOD }, /* 274 = lchmod */ - { SYF_MPSAFE | AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN }, /* 275 = netbsd_lchown */ - { SYF_MPSAFE | AS(lutimes_args), (sy_call_t *)lutimes, AUE_LUTIMES }, /* 276 = lutimes */ - { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync, AUE_MSYNC }, /* 277 = netbsd_msync */ - { SYF_MPSAFE | AS(nstat_args), (sy_call_t *)nstat, AUE_STAT }, /* 278 = nstat */ - { SYF_MPSAFE | AS(nfstat_args), (sy_call_t *)nfstat, AUE_FSTAT }, /* 279 = nfstat */ - { SYF_MPSAFE | AS(nlstat_args), (sy_call_t *)nlstat, AUE_LSTAT }, /* 280 = nlstat */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 281 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 282 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 283 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 284 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 285 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 286 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 287 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 288 = nosys */ - { SYF_MPSAFE | AS(preadv_args), (sy_call_t *)preadv, AUE_NULL }, /* 289 = preadv */ - { SYF_MPSAFE | AS(pwritev_args), (sy_call_t *)pwritev, AUE_NULL }, /* 290 = pwritev */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 291 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 292 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 293 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 294 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 295 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 296 = nosys */ - { compat4(SYF_MPSAFE | AS(freebsd4_fhstatfs_args),fhstatfs), AUE_FHSTATFS }, /* 297 = old fhstatfs */ - { SYF_MPSAFE | AS(fhopen_args), (sy_call_t *)fhopen, AUE_FHOPEN }, /* 298 = fhopen */ - { SYF_MPSAFE | AS(fhstat_args), (sy_call_t *)fhstat, AUE_FHSTAT }, /* 299 = fhstat */ - { SYF_MPSAFE | AS(modnext_args), (sy_call_t *)modnext, AUE_NULL }, /* 300 = modnext */ - { SYF_MPSAFE | AS(modstat_args), (sy_call_t *)modstat, AUE_NULL }, /* 301 = modstat */ - { SYF_MPSAFE | AS(modfnext_args), (sy_call_t *)modfnext, AUE_NULL }, /* 302 = modfnext */ - { SYF_MPSAFE | AS(modfind_args), (sy_call_t *)modfind, AUE_NULL }, /* 303 = modfind */ - { SYF_MPSAFE | AS(kldload_args), (sy_call_t *)kldload, AUE_MODLOAD }, /* 304 = kldload */ - { SYF_MPSAFE | AS(kldunload_args), (sy_call_t *)kldunload, AUE_MODUNLOAD }, /* 305 = kldunload */ - { SYF_MPSAFE | AS(kldfind_args), (sy_call_t *)kldfind, AUE_NULL }, /* 306 = kldfind */ - { SYF_MPSAFE | AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL }, /* 307 = kldnext */ - { SYF_MPSAFE | AS(kldstat_args), (sy_call_t *)kldstat, AUE_NULL }, /* 308 = kldstat */ - { SYF_MPSAFE | AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL }, /* 309 = kldfirstmod */ - { SYF_MPSAFE | AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID }, /* 310 = getsid */ - { SYF_MPSAFE | AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID }, /* 311 = setresuid */ - { SYF_MPSAFE | AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID }, /* 312 = setresgid */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 313 = obsolete signanosleep */ - { AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 314 = aio_return */ - { AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 315 = aio_suspend */ - { AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 316 = aio_cancel */ - { AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 317 = aio_error */ - { AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 318 = aio_read */ - { AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 319 = aio_write */ - { AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 320 = lio_listio */ - { SYF_MPSAFE | 0, (sy_call_t *)yield, AUE_NULL }, /* 321 = yield */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 322 = obsolete thr_sleep */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 323 = obsolete thr_wakeup */ - { SYF_MPSAFE | AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL }, /* 324 = mlockall */ - { SYF_MPSAFE | 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL }, /* 325 = munlockall */ - { SYF_MPSAFE | AS(__getcwd_args), (sy_call_t *)__getcwd, AUE_NULL }, /* 326 = __getcwd */ - { SYF_MPSAFE | AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL }, /* 327 = sched_setparam */ - { SYF_MPSAFE | AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL }, /* 328 = sched_getparam */ - { SYF_MPSAFE | AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL }, /* 329 = sched_setscheduler */ - { SYF_MPSAFE | AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL }, /* 330 = sched_getscheduler */ - { SYF_MPSAFE | 0, (sy_call_t *)sched_yield, AUE_NULL }, /* 331 = sched_yield */ - { SYF_MPSAFE | AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL }, /* 332 = sched_get_priority_max */ - { SYF_MPSAFE | AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL }, /* 333 = sched_get_priority_min */ - { SYF_MPSAFE | AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL }, /* 334 = sched_rr_get_interval */ - { SYF_MPSAFE | AS(utrace_args), (sy_call_t *)utrace, AUE_NULL }, /* 335 = utrace */ - { compat4(SYF_MPSAFE | AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE }, /* 336 = old sendfile */ - { SYF_MPSAFE | AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL }, /* 337 = kldsym */ - { SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail, AUE_JAIL }, /* 338 = jail */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 339 = pioctl */ - { SYF_MPSAFE | AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK }, /* 340 = sigprocmask */ - { SYF_MPSAFE | AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND }, /* 341 = sigsuspend */ - { compat4(SYF_MPSAFE | AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION }, /* 342 = old sigaction */ - { SYF_MPSAFE | AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING }, /* 343 = sigpending */ - { compat4(SYF_MPSAFE | AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN }, /* 344 = old sigreturn */ - { SYF_MPSAFE | AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT }, /* 345 = sigtimedwait */ - { SYF_MPSAFE | AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL }, /* 346 = sigwaitinfo */ - { SYF_MPSAFE | AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL }, /* 347 = __acl_get_file */ - { SYF_MPSAFE | AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL }, /* 348 = __acl_set_file */ - { SYF_MPSAFE | AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL }, /* 349 = __acl_get_fd */ - { SYF_MPSAFE | AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL }, /* 350 = __acl_set_fd */ - { SYF_MPSAFE | AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file, AUE_NULL }, /* 351 = __acl_delete_file */ - { SYF_MPSAFE | AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL }, /* 352 = __acl_delete_fd */ - { SYF_MPSAFE | AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL }, /* 353 = __acl_aclcheck_file */ - { SYF_MPSAFE | AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL }, /* 354 = __acl_aclcheck_fd */ - { SYF_MPSAFE | AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL }, /* 355 = extattrctl */ - { SYF_MPSAFE | AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE }, /* 356 = extattr_set_file */ - { SYF_MPSAFE | AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE }, /* 357 = extattr_get_file */ - { SYF_MPSAFE | AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE }, /* 358 = extattr_delete_file */ - { AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 359 = aio_waitcomplete */ - { SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID }, /* 360 = getresuid */ - { SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID }, /* 361 = getresgid */ - { SYF_MPSAFE | 0, (sy_call_t *)kqueue, AUE_NULL }, /* 362 = kqueue */ - { SYF_MPSAFE | AS(kevent_args), (sy_call_t *)kevent, AUE_NULL }, /* 363 = kevent */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 364 = __cap_get_proc */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 365 = __cap_set_proc */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 366 = __cap_get_fd */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 367 = __cap_get_file */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 368 = __cap_set_fd */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 369 = __cap_set_file */ - { AS(nosys_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 370 = lkmressys */ - { SYF_MPSAFE | AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD }, /* 371 = extattr_set_fd */ - { SYF_MPSAFE | AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD }, /* 372 = extattr_get_fd */ - { SYF_MPSAFE | AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD }, /* 373 = extattr_delete_fd */ - { SYF_MPSAFE | AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL }, /* 374 = __setugid */ - { AS(nfsclnt_args), (sy_call_t *)nosys, AUE_NULL }, /* 375 = nfsclnt */ - { SYF_MPSAFE | AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS }, /* 376 = eaccess */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 377 = afs_syscall */ - { AS(nmount_args), (sy_call_t *)nmount, AUE_NMOUNT }, /* 378 = nmount */ - { SYF_MPSAFE | 0, (sy_call_t *)kse_exit, AUE_NULL }, /* 379 = kse_exit */ - { SYF_MPSAFE | AS(kse_wakeup_args), (sy_call_t *)kse_wakeup, AUE_NULL }, /* 380 = kse_wakeup */ - { SYF_MPSAFE | AS(kse_create_args), (sy_call_t *)kse_create, AUE_NULL }, /* 381 = kse_create */ - { SYF_MPSAFE | AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt, AUE_NULL }, /* 382 = kse_thr_interrupt */ - { SYF_MPSAFE | AS(kse_release_args), (sy_call_t *)kse_release, AUE_NULL }, /* 383 = kse_release */ - { SYF_MPSAFE | AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc, AUE_NULL }, /* 384 = __mac_get_proc */ - { SYF_MPSAFE | AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc, AUE_NULL }, /* 385 = __mac_set_proc */ - { SYF_MPSAFE | AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd, AUE_NULL }, /* 386 = __mac_get_fd */ - { SYF_MPSAFE | AS(__mac_get_file_args), (sy_call_t *)__mac_get_file, AUE_NULL }, /* 387 = __mac_get_file */ - { SYF_MPSAFE | AS(__mac_set_fd_args), (sy_call_t *)__mac_set_fd, AUE_NULL }, /* 388 = __mac_set_fd */ - { SYF_MPSAFE | AS(__mac_set_file_args), (sy_call_t *)__mac_set_file, AUE_NULL }, /* 389 = __mac_set_file */ - { SYF_MPSAFE | AS(kenv_args), (sy_call_t *)kenv, AUE_NULL }, /* 390 = kenv */ - { SYF_MPSAFE | AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS }, /* 391 = lchflags */ - { SYF_MPSAFE | AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL }, /* 392 = uuidgen */ - { SYF_MPSAFE | AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE }, /* 393 = sendfile */ - { SYF_MPSAFE | AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL }, /* 394 = mac_syscall */ - { SYF_MPSAFE | AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT }, /* 395 = getfsstat */ - { SYF_MPSAFE | AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS }, /* 396 = statfs */ - { SYF_MPSAFE | AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS }, /* 397 = fstatfs */ - { SYF_MPSAFE | AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_NULL }, /* 398 = fhstatfs */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 399 = nosys */ - { SYF_MPSAFE | AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 400 = ksem_close */ - { SYF_MPSAFE | AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 401 = ksem_post */ - { SYF_MPSAFE | AS(ksem_wait_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 402 = ksem_wait */ - { SYF_MPSAFE | AS(ksem_trywait_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 403 = ksem_trywait */ - { SYF_MPSAFE | AS(ksem_init_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 404 = ksem_init */ - { SYF_MPSAFE | AS(ksem_open_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 405 = ksem_open */ - { SYF_MPSAFE | AS(ksem_unlink_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 406 = ksem_unlink */ - { SYF_MPSAFE | AS(ksem_getvalue_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 407 = ksem_getvalue */ - { SYF_MPSAFE | AS(ksem_destroy_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 408 = ksem_destroy */ - { SYF_MPSAFE | AS(__mac_get_pid_args), (sy_call_t *)__mac_get_pid, AUE_NULL }, /* 409 = __mac_get_pid */ - { SYF_MPSAFE | AS(__mac_get_link_args), (sy_call_t *)__mac_get_link, AUE_NULL }, /* 410 = __mac_get_link */ - { SYF_MPSAFE | AS(__mac_set_link_args), (sy_call_t *)__mac_set_link, AUE_NULL }, /* 411 = __mac_set_link */ - { SYF_MPSAFE | AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK }, /* 412 = extattr_set_link */ - { SYF_MPSAFE | AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK }, /* 413 = extattr_get_link */ - { SYF_MPSAFE | AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK }, /* 414 = extattr_delete_link */ - { SYF_MPSAFE | AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL }, /* 415 = __mac_execve */ - { SYF_MPSAFE | AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION }, /* 416 = sigaction */ - { SYF_MPSAFE | AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN }, /* 417 = sigreturn */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 418 = __xstat */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 419 = __xfstat */ - { 0, (sy_call_t *)nosys, AUE_NULL }, /* 420 = __xlstat */ - { SYF_MPSAFE | AS(getcontext_args), (sy_call_t *)getcontext, AUE_NULL }, /* 421 = getcontext */ - { SYF_MPSAFE | AS(setcontext_args), (sy_call_t *)setcontext, AUE_NULL }, /* 422 = setcontext */ - { SYF_MPSAFE | AS(swapcontext_args), (sy_call_t *)swapcontext, AUE_NULL }, /* 423 = swapcontext */ - { SYF_MPSAFE | AS(swapoff_args), (sy_call_t *)swapoff, AUE_SWAPOFF }, /* 424 = swapoff */ - { SYF_MPSAFE | AS(__acl_get_link_args), (sy_call_t *)__acl_get_link, AUE_NULL }, /* 425 = __acl_get_link */ - { SYF_MPSAFE | AS(__acl_set_link_args), (sy_call_t *)__acl_set_link, AUE_NULL }, /* 426 = __acl_set_link */ - { SYF_MPSAFE | AS(__acl_delete_link_args), (sy_call_t *)__acl_delete_link, AUE_NULL }, /* 427 = __acl_delete_link */ - { SYF_MPSAFE | AS(__acl_aclcheck_link_args), (sy_call_t *)__acl_aclcheck_link, AUE_NULL }, /* 428 = __acl_aclcheck_link */ - { SYF_MPSAFE | AS(sigwait_args), (sy_call_t *)sigwait, AUE_SIGWAIT }, /* 429 = sigwait */ - { SYF_MPSAFE | AS(thr_create_args), (sy_call_t *)thr_create, AUE_NULL }, /* 430 = thr_create */ - { SYF_MPSAFE | AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL }, /* 431 = thr_exit */ - { SYF_MPSAFE | AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL }, /* 432 = thr_self */ - { SYF_MPSAFE | AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL }, /* 433 = thr_kill */ - { SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL }, /* 434 = _umtx_lock */ - { SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL }, /* 435 = _umtx_unlock */ - { SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL }, /* 436 = jail_attach */ - { SYF_MPSAFE | AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD }, /* 437 = extattr_list_fd */ - { SYF_MPSAFE | AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE }, /* 438 = extattr_list_file */ - { SYF_MPSAFE | AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK }, /* 439 = extattr_list_link */ - { SYF_MPSAFE | AS(kse_switchin_args), (sy_call_t *)kse_switchin, AUE_NULL }, /* 440 = kse_switchin */ - { SYF_MPSAFE | AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 441 = ksem_timedwait */ - { SYF_MPSAFE | AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL }, /* 442 = thr_suspend */ - { SYF_MPSAFE | AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL }, /* 443 = thr_wake */ - { SYF_MPSAFE | AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_NULL }, /* 444 = kldunloadf */ - { SYF_MPSAFE | AS(audit_args), (sy_call_t *)audit, AUE_AUDIT }, /* 445 = audit */ - { SYF_MPSAFE | AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON }, /* 446 = auditon */ - { SYF_MPSAFE | AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID }, /* 447 = getauid */ - { SYF_MPSAFE | AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID }, /* 448 = setauid */ - { SYF_MPSAFE | AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT }, /* 449 = getaudit */ - { SYF_MPSAFE | AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT }, /* 450 = setaudit */ - { SYF_MPSAFE | AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR }, /* 451 = getaudit_addr */ - { SYF_MPSAFE | AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR }, /* 452 = setaudit_addr */ - { SYF_MPSAFE | AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL }, /* 453 = auditctl */ - { SYF_MPSAFE | AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL }, /* 454 = _umtx_op */ - { SYF_MPSAFE | AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL }, /* 455 = thr_new */ + { SYF_MPSAFE | 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 0 = syscall */ + { SYF_MPSAFE | AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT SYSTRACE_EXTRA }, /* 1 = exit */ + { SYF_MPSAFE | 0, (sy_call_t *)fork, AUE_FORK SYSTRACE_EXTRA }, /* 2 = fork */ + { SYF_MPSAFE | AS(read_args), (sy_call_t *)read, AUE_NULL SYSTRACE_EXTRA }, /* 3 = read */ + { SYF_MPSAFE | AS(write_args), (sy_call_t *)write, AUE_NULL SYSTRACE_EXTRA }, /* 4 = write */ + { SYF_MPSAFE | AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC SYSTRACE_EXTRA }, /* 5 = open */ + { SYF_MPSAFE | AS(close_args), (sy_call_t *)close, AUE_CLOSE SYSTRACE_EXTRA }, /* 6 = close */ + { SYF_MPSAFE | AS(wait_args), (sy_call_t *)wait4, AUE_WAIT4 SYSTRACE_EXTRA }, /* 7 = wait4 */ + { compat(SYF_MPSAFE | AS(ocreat_args),creat), AUE_CREAT SYSTRACE_EXTRA }, /* 8 = old creat */ + { SYF_MPSAFE | AS(link_args), (sy_call_t *)link, AUE_LINK SYSTRACE_EXTRA }, /* 9 = link */ + { SYF_MPSAFE | AS(unlink_args), (sy_call_t *)unlink, AUE_UNLINK SYSTRACE_EXTRA }, /* 10 = unlink */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 11 = obsolete execv */ + { SYF_MPSAFE | AS(chdir_args), (sy_call_t *)chdir, AUE_CHDIR SYSTRACE_EXTRA }, /* 12 = chdir */ + { SYF_MPSAFE | AS(fchdir_args), (sy_call_t *)fchdir, AUE_FCHDIR SYSTRACE_EXTRA }, /* 13 = fchdir */ + { SYF_MPSAFE | AS(mknod_args), (sy_call_t *)mknod, AUE_MKNOD SYSTRACE_EXTRA }, /* 14 = mknod */ + { SYF_MPSAFE | AS(chmod_args), (sy_call_t *)chmod, AUE_CHMOD SYSTRACE_EXTRA }, /* 15 = chmod */ + { SYF_MPSAFE | AS(chown_args), (sy_call_t *)chown, AUE_CHOWN SYSTRACE_EXTRA }, /* 16 = chown */ + { SYF_MPSAFE | AS(obreak_args), (sy_call_t *)obreak, AUE_NULL SYSTRACE_EXTRA }, /* 17 = break */ + { compat4(SYF_MPSAFE | AS(freebsd4_getfsstat_args),getfsstat), AUE_GETFSSTAT SYSTRACE_EXTRA }, /* 18 = old getfsstat */ + { compat(SYF_MPSAFE | AS(olseek_args),lseek), AUE_LSEEK SYSTRACE_EXTRA }, /* 19 = old lseek */ + { SYF_MPSAFE | 0, (sy_call_t *)getpid, AUE_GETPID SYSTRACE_EXTRA }, /* 20 = getpid */ + { AS(mount_args), (sy_call_t *)mount, AUE_MOUNT SYSTRACE_EXTRA }, /* 21 = mount */ + { AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT SYSTRACE_EXTRA }, /* 22 = unmount */ + { SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID SYSTRACE_EXTRA }, /* 23 = setuid */ + { SYF_MPSAFE | 0, (sy_call_t *)getuid, AUE_GETUID SYSTRACE_EXTRA }, /* 24 = getuid */ + { SYF_MPSAFE | 0, (sy_call_t *)geteuid, AUE_GETEUID SYSTRACE_EXTRA }, /* 25 = geteuid */ + { SYF_MPSAFE | AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE SYSTRACE_EXTRA }, /* 26 = ptrace */ + { SYF_MPSAFE | AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG SYSTRACE_EXTRA }, /* 27 = recvmsg */ + { SYF_MPSAFE | AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG SYSTRACE_EXTRA }, /* 28 = sendmsg */ + { SYF_MPSAFE | AS(recvfrom_args), (sy_call_t *)recvfrom, AUE_RECVFROM SYSTRACE_EXTRA }, /* 29 = recvfrom */ + { SYF_MPSAFE | AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT SYSTRACE_EXTRA }, /* 30 = accept */ + { SYF_MPSAFE | AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME SYSTRACE_EXTRA }, /* 31 = getpeername */ + { SYF_MPSAFE | AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME SYSTRACE_EXTRA }, /* 32 = getsockname */ + { SYF_MPSAFE | AS(access_args), (sy_call_t *)access, AUE_ACCESS SYSTRACE_EXTRA }, /* 33 = access */ + { SYF_MPSAFE | AS(chflags_args), (sy_call_t *)chflags, AUE_CHFLAGS SYSTRACE_EXTRA }, /* 34 = chflags */ + { SYF_MPSAFE | AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS SYSTRACE_EXTRA }, /* 35 = fchflags */ + { SYF_MPSAFE | 0, (sy_call_t *)sync, AUE_SYNC SYSTRACE_EXTRA }, /* 36 = sync */ + { SYF_MPSAFE | AS(kill_args), (sy_call_t *)kill, AUE_KILL SYSTRACE_EXTRA }, /* 37 = kill */ + { compat(SYF_MPSAFE | AS(ostat_args),stat), AUE_STAT SYSTRACE_EXTRA }, /* 38 = old stat */ + { SYF_MPSAFE | 0, (sy_call_t *)getppid, AUE_GETPPID SYSTRACE_EXTRA }, /* 39 = getppid */ + { compat(SYF_MPSAFE | AS(olstat_args),lstat), AUE_LSTAT SYSTRACE_EXTRA }, /* 40 = old lstat */ + { SYF_MPSAFE | AS(dup_args), (sy_call_t *)dup, AUE_DUP SYSTRACE_EXTRA }, /* 41 = dup */ + { SYF_MPSAFE | 0, (sy_call_t *)pipe, AUE_PIPE SYSTRACE_EXTRA }, /* 42 = pipe */ + { SYF_MPSAFE | 0, (sy_call_t *)getegid, AUE_GETEGID SYSTRACE_EXTRA }, /* 43 = getegid */ + { SYF_MPSAFE | AS(profil_args), (sy_call_t *)profil, AUE_PROFILE SYSTRACE_EXTRA }, /* 44 = profil */ + { SYF_MPSAFE | AS(ktrace_args), (sy_call_t *)ktrace, AUE_KTRACE SYSTRACE_EXTRA }, /* 45 = ktrace */ + { compat(SYF_MPSAFE | AS(osigaction_args),sigaction), AUE_SIGACTION SYSTRACE_EXTRA }, /* 46 = old sigaction */ + { SYF_MPSAFE | 0, (sy_call_t *)getgid, AUE_GETGID SYSTRACE_EXTRA }, /* 47 = getgid */ + { compat(SYF_MPSAFE | AS(osigprocmask_args),sigprocmask), AUE_SIGPROCMASK SYSTRACE_EXTRA }, /* 48 = old sigprocmask */ + { SYF_MPSAFE | AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN SYSTRACE_EXTRA }, /* 49 = getlogin */ + { SYF_MPSAFE | AS(setlogin_args), (sy_call_t *)setlogin, AUE_SETLOGIN SYSTRACE_EXTRA }, /* 50 = setlogin */ + { SYF_MPSAFE | AS(acct_args), (sy_call_t *)acct, AUE_ACCT SYSTRACE_EXTRA }, /* 51 = acct */ + { compat(SYF_MPSAFE | 0,sigpending), AUE_SIGPENDING SYSTRACE_EXTRA }, /* 52 = old sigpending */ + { SYF_MPSAFE | AS(sigaltstack_args), (sy_call_t *)sigaltstack, AUE_SIGPENDING SYSTRACE_EXTRA }, /* 53 = sigaltstack */ + { SYF_MPSAFE | AS(ioctl_args), (sy_call_t *)ioctl, AUE_IOCTL SYSTRACE_EXTRA }, /* 54 = ioctl */ + { SYF_MPSAFE | AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT SYSTRACE_EXTRA }, /* 55 = reboot */ + { SYF_MPSAFE | AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE SYSTRACE_EXTRA }, /* 56 = revoke */ + { SYF_MPSAFE | AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK SYSTRACE_EXTRA }, /* 57 = symlink */ + { SYF_MPSAFE | AS(readlink_args), (sy_call_t *)readlink, AUE_READLINK SYSTRACE_EXTRA }, /* 58 = readlink */ + { SYF_MPSAFE | AS(execve_args), (sy_call_t *)execve, AUE_EXECVE SYSTRACE_EXTRA }, /* 59 = execve */ + { SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask, AUE_UMASK SYSTRACE_EXTRA }, /* 60 = umask */ + { SYF_MPSAFE | AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT SYSTRACE_EXTRA }, /* 61 = chroot */ + { compat(SYF_MPSAFE | AS(ofstat_args),fstat), AUE_FSTAT SYSTRACE_EXTRA }, /* 62 = old fstat */ + { compat(SYF_MPSAFE | AS(getkerninfo_args),getkerninfo), AUE_NULL SYSTRACE_EXTRA }, /* 63 = old getkerninfo */ + { compat(SYF_MPSAFE | 0,getpagesize), AUE_NULL SYSTRACE_EXTRA }, /* 64 = old getpagesize */ + { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync, AUE_MSYNC SYSTRACE_EXTRA }, /* 65 = msync */ + { SYF_MPSAFE | 0, (sy_call_t *)vfork, AUE_VFORK SYSTRACE_EXTRA }, /* 66 = vfork */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 67 = obsolete vread */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 68 = obsolete vwrite */ + { SYF_MPSAFE | AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK SYSTRACE_EXTRA }, /* 69 = sbrk */ + { SYF_MPSAFE | AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK SYSTRACE_EXTRA }, /* 70 = sstk */ + { compat(SYF_MPSAFE | AS(ommap_args),mmap), AUE_MMAP SYSTRACE_EXTRA }, /* 71 = old mmap */ + { SYF_MPSAFE | AS(ovadvise_args), (sy_call_t *)ovadvise, AUE_O_VADVISE SYSTRACE_EXTRA }, /* 72 = vadvise */ + { SYF_MPSAFE | AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP SYSTRACE_EXTRA }, /* 73 = munmap */ + { SYF_MPSAFE | AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT SYSTRACE_EXTRA }, /* 74 = mprotect */ + { SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE SYSTRACE_EXTRA }, /* 75 = madvise */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 76 = obsolete vhangup */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 77 = obsolete vlimit */ + { SYF_MPSAFE | AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE SYSTRACE_EXTRA }, /* 78 = mincore */ + { SYF_MPSAFE | AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS SYSTRACE_EXTRA }, /* 79 = getgroups */ + { SYF_MPSAFE | AS(setgroups_args), (sy_call_t *)setgroups, AUE_SETGROUPS SYSTRACE_EXTRA }, /* 80 = setgroups */ + { SYF_MPSAFE | 0, (sy_call_t *)getpgrp, AUE_GETPGRP SYSTRACE_EXTRA }, /* 81 = getpgrp */ + { SYF_MPSAFE | AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP SYSTRACE_EXTRA }, /* 82 = setpgid */ + { SYF_MPSAFE | AS(setitimer_args), (sy_call_t *)setitimer, AUE_SETITIMER SYSTRACE_EXTRA }, /* 83 = setitimer */ + { compat(SYF_MPSAFE | 0,wait), AUE_WAIT4 SYSTRACE_EXTRA }, /* 84 = old wait */ + { SYF_MPSAFE | AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON SYSTRACE_EXTRA }, /* 85 = swapon */ + { SYF_MPSAFE | AS(getitimer_args), (sy_call_t *)getitimer, AUE_GETITIMER SYSTRACE_EXTRA }, /* 86 = getitimer */ + { compat(SYF_MPSAFE | AS(gethostname_args),gethostname), AUE_SYSCTL SYSTRACE_EXTRA }, /* 87 = old gethostname */ + { compat(SYF_MPSAFE | AS(sethostname_args),sethostname), AUE_SYSCTL SYSTRACE_EXTRA }, /* 88 = old sethostname */ + { SYF_MPSAFE | 0, (sy_call_t *)getdtablesize, AUE_GETDTABLESIZE SYSTRACE_EXTRA }, /* 89 = getdtablesize */ + { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2 SYSTRACE_EXTRA }, /* 90 = dup2 */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 91 = getdopt */ + { SYF_MPSAFE | AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL SYSTRACE_EXTRA }, /* 92 = fcntl */ + { SYF_MPSAFE | AS(select_args), (sy_call_t *)select, AUE_SELECT SYSTRACE_EXTRA }, /* 93 = select */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 94 = setdopt */ + { SYF_MPSAFE | AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC SYSTRACE_EXTRA }, /* 95 = fsync */ + { SYF_MPSAFE | AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY SYSTRACE_EXTRA }, /* 96 = setpriority */ + { SYF_MPSAFE | AS(socket_args), (sy_call_t *)socket, AUE_SOCKET SYSTRACE_EXTRA }, /* 97 = socket */ + { SYF_MPSAFE | AS(connect_args), (sy_call_t *)connect, AUE_CONNECT SYSTRACE_EXTRA }, /* 98 = connect */ + { compat(SYF_MPSAFE | AS(accept_args),accept), AUE_ACCEPT SYSTRACE_EXTRA }, /* 99 = old accept */ + { SYF_MPSAFE | AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY SYSTRACE_EXTRA }, /* 100 = getpriority */ + { compat(SYF_MPSAFE | AS(osend_args),send), AUE_SEND SYSTRACE_EXTRA }, /* 101 = old send */ + { compat(SYF_MPSAFE | AS(orecv_args),recv), AUE_RECV SYSTRACE_EXTRA }, /* 102 = old recv */ + { compat(SYF_MPSAFE | AS(osigreturn_args),sigreturn), AUE_SIGRETURN SYSTRACE_EXTRA }, /* 103 = old sigreturn */ + { SYF_MPSAFE | AS(bind_args), (sy_call_t *)bind, AUE_BIND SYSTRACE_EXTRA }, /* 104 = bind */ + { SYF_MPSAFE | AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT SYSTRACE_EXTRA }, /* 105 = setsockopt */ + { SYF_MPSAFE | AS(listen_args), (sy_call_t *)listen, AUE_LISTEN SYSTRACE_EXTRA }, /* 106 = listen */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 107 = obsolete vtimes */ + { compat(SYF_MPSAFE | AS(osigvec_args),sigvec), AUE_NULL SYSTRACE_EXTRA }, /* 108 = old sigvec */ + { compat(SYF_MPSAFE | AS(osigblock_args),sigblock), AUE_NULL SYSTRACE_EXTRA }, /* 109 = old sigblock */ + { compat(SYF_MPSAFE | AS(osigsetmask_args),sigsetmask), AUE_NULL SYSTRACE_EXTRA }, /* 110 = old sigsetmask */ + { compat(SYF_MPSAFE | AS(osigsuspend_args),sigsuspend), AUE_NULL SYSTRACE_EXTRA }, /* 111 = old sigsuspend */ + { compat(SYF_MPSAFE | AS(osigstack_args),sigstack), AUE_NULL SYSTRACE_EXTRA }, /* 112 = old sigstack */ + { compat(SYF_MPSAFE | AS(orecvmsg_args),recvmsg), AUE_RECVMSG SYSTRACE_EXTRA }, /* 113 = old recvmsg */ + { compat(SYF_MPSAFE | AS(osendmsg_args),sendmsg), AUE_SENDMSG SYSTRACE_EXTRA }, /* 114 = old sendmsg */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 115 = obsolete vtrace */ + { SYF_MPSAFE | AS(gettimeofday_args), (sy_call_t *)gettimeofday, AUE_GETTIMEOFDAY SYSTRACE_EXTRA }, /* 116 = gettimeofday */ + { SYF_MPSAFE | AS(getrusage_args), (sy_call_t *)getrusage, AUE_GETRUSAGE SYSTRACE_EXTRA }, /* 117 = getrusage */ + { SYF_MPSAFE | AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT SYSTRACE_EXTRA }, /* 118 = getsockopt */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 119 = resuba */ + { SYF_MPSAFE | AS(readv_args), (sy_call_t *)readv, AUE_READV SYSTRACE_EXTRA }, /* 120 = readv */ + { SYF_MPSAFE | AS(writev_args), (sy_call_t *)writev, AUE_WRITEV SYSTRACE_EXTRA }, /* 121 = writev */ + { SYF_MPSAFE | AS(settimeofday_args), (sy_call_t *)settimeofday, AUE_SETTIMEOFDAY SYSTRACE_EXTRA }, /* 122 = settimeofday */ + { SYF_MPSAFE | AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN SYSTRACE_EXTRA }, /* 123 = fchown */ + { SYF_MPSAFE | AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD SYSTRACE_EXTRA }, /* 124 = fchmod */ + { compat(SYF_MPSAFE | AS(recvfrom_args),recvfrom), AUE_RECVFROM SYSTRACE_EXTRA }, /* 125 = old recvfrom */ + { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID SYSTRACE_EXTRA }, /* 126 = setreuid */ + { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID SYSTRACE_EXTRA }, /* 127 = setregid */ + { SYF_MPSAFE | AS(rename_args), (sy_call_t *)rename, AUE_RENAME SYSTRACE_EXTRA }, /* 128 = rename */ + { compat(SYF_MPSAFE | AS(otruncate_args),truncate), AUE_TRUNCATE SYSTRACE_EXTRA }, /* 129 = old truncate */ + { compat(SYF_MPSAFE | AS(oftruncate_args),ftruncate), AUE_FTRUNCATE SYSTRACE_EXTRA }, /* 130 = old ftruncate */ + { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK SYSTRACE_EXTRA }, /* 131 = flock */ + { SYF_MPSAFE | AS(mkfifo_args), (sy_call_t *)mkfifo, AUE_MKFIFO SYSTRACE_EXTRA }, /* 132 = mkfifo */ + { SYF_MPSAFE | AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO SYSTRACE_EXTRA }, /* 133 = sendto */ + { SYF_MPSAFE | AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN SYSTRACE_EXTRA }, /* 134 = shutdown */ + { SYF_MPSAFE | AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR SYSTRACE_EXTRA }, /* 135 = socketpair */ + { SYF_MPSAFE | AS(mkdir_args), (sy_call_t *)mkdir, AUE_MKDIR SYSTRACE_EXTRA }, /* 136 = mkdir */ + { SYF_MPSAFE | AS(rmdir_args), (sy_call_t *)rmdir, AUE_RMDIR SYSTRACE_EXTRA }, /* 137 = rmdir */ + { SYF_MPSAFE | AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES SYSTRACE_EXTRA }, /* 138 = utimes */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 139 = obsolete 4.2 sigreturn */ + { SYF_MPSAFE | AS(adjtime_args), (sy_call_t *)adjtime, AUE_ADJTIME SYSTRACE_EXTRA }, /* 140 = adjtime */ + { compat(SYF_MPSAFE | AS(ogetpeername_args),getpeername), AUE_GETPEERNAME SYSTRACE_EXTRA }, /* 141 = old getpeername */ + { compat(SYF_MPSAFE | 0,gethostid), AUE_SYSCTL SYSTRACE_EXTRA }, /* 142 = old gethostid */ + { compat(SYF_MPSAFE | AS(osethostid_args),sethostid), AUE_SYSCTL SYSTRACE_EXTRA }, /* 143 = old sethostid */ + { compat(SYF_MPSAFE | AS(ogetrlimit_args),getrlimit), AUE_GETRLIMIT SYSTRACE_EXTRA }, /* 144 = old getrlimit */ + { compat(SYF_MPSAFE | AS(osetrlimit_args),setrlimit), AUE_SETRLIMIT SYSTRACE_EXTRA }, /* 145 = old setrlimit */ + { compat(SYF_MPSAFE | AS(okillpg_args),killpg), AUE_KILLPG SYSTRACE_EXTRA }, /* 146 = old killpg */ + { SYF_MPSAFE | 0, (sy_call_t *)setsid, AUE_SETSID SYSTRACE_EXTRA }, /* 147 = setsid */ + { SYF_MPSAFE | AS(quotactl_args), (sy_call_t *)quotactl, AUE_QUOTACTL SYSTRACE_EXTRA }, /* 148 = quotactl */ + { compat(SYF_MPSAFE | 0,quota), AUE_O_QUOTA SYSTRACE_EXTRA }, /* 149 = old quota */ + { compat(SYF_MPSAFE | AS(getsockname_args),getsockname), AUE_GETSOCKNAME SYSTRACE_EXTRA }, /* 150 = old getsockname */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 151 = sem_lock */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 152 = sem_wakeup */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 153 = asyncdaemon */ + { SYF_MPSAFE | AS(nlm_syscall_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 154 = nlm_syscall */ + { SYF_MPSAFE | AS(nfssvc_args), (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 155 = nfssvc */ + { compat(AS(ogetdirentries_args),getdirentries), AUE_GETDIRENTRIES SYSTRACE_EXTRA }, /* 156 = old getdirentries */ + { compat4(SYF_MPSAFE | AS(freebsd4_statfs_args),statfs), AUE_STATFS SYSTRACE_EXTRA }, /* 157 = old statfs */ + { compat4(SYF_MPSAFE | AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS SYSTRACE_EXTRA }, /* 158 = old fstatfs */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 159 = nosys */ + { SYF_MPSAFE | AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH SYSTRACE_EXTRA }, /* 160 = lgetfh */ + { SYF_MPSAFE | AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH SYSTRACE_EXTRA }, /* 161 = getfh */ + { SYF_MPSAFE | AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_SYSCTL SYSTRACE_EXTRA }, /* 162 = getdomainname */ + { SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL SYSTRACE_EXTRA }, /* 163 = setdomainname */ + { SYF_MPSAFE | AS(uname_args), (sy_call_t *)uname, AUE_NULL SYSTRACE_EXTRA }, /* 164 = uname */ + { SYF_MPSAFE | AS(sysarch_args), (sy_call_t *)sysarch, AUE_NULL SYSTRACE_EXTRA }, /* 165 = sysarch */ + { SYF_MPSAFE | AS(rtprio_args), (sy_call_t *)rtprio, AUE_NULL SYSTRACE_EXTRA }, /* 166 = rtprio */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 167 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 168 = nosys */ + { SYF_MPSAFE | AS(semsys_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 169 = semsys */ + { SYF_MPSAFE | AS(msgsys_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 170 = msgsys */ + { SYF_MPSAFE | AS(shmsys_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 171 = shmsys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 172 = nosys */ + { SYF_MPSAFE | AS(pread_args), (sy_call_t *)pread, AUE_PREAD SYSTRACE_EXTRA }, /* 173 = pread */ + { SYF_MPSAFE | AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE SYSTRACE_EXTRA }, /* 174 = pwrite */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 175 = nosys */ + { SYF_MPSAFE | AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME SYSTRACE_EXTRA }, /* 176 = ntp_adjtime */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 177 = sfork */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 178 = getdescriptor */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 179 = setdescriptor */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 180 = nosys */ + { SYF_MPSAFE | AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID SYSTRACE_EXTRA }, /* 181 = setgid */ + { SYF_MPSAFE | AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID SYSTRACE_EXTRA }, /* 182 = setegid */ + { SYF_MPSAFE | AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID SYSTRACE_EXTRA }, /* 183 = seteuid */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 184 = lfs_bmapv */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 185 = lfs_markv */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 186 = lfs_segclean */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 187 = lfs_segwait */ + { SYF_MPSAFE | AS(stat_args), (sy_call_t *)stat, AUE_STAT SYSTRACE_EXTRA }, /* 188 = stat */ + { SYF_MPSAFE | AS(fstat_args), (sy_call_t *)fstat, AUE_FSTAT SYSTRACE_EXTRA }, /* 189 = fstat */ + { SYF_MPSAFE | AS(lstat_args), (sy_call_t *)lstat, AUE_LSTAT SYSTRACE_EXTRA }, /* 190 = lstat */ + { SYF_MPSAFE | AS(pathconf_args), (sy_call_t *)pathconf, AUE_PATHCONF SYSTRACE_EXTRA }, /* 191 = pathconf */ + { SYF_MPSAFE | AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF SYSTRACE_EXTRA }, /* 192 = fpathconf */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 193 = nosys */ + { SYF_MPSAFE | AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT SYSTRACE_EXTRA }, /* 194 = getrlimit */ + { SYF_MPSAFE | AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT SYSTRACE_EXTRA }, /* 195 = setrlimit */ + { SYF_MPSAFE | AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES SYSTRACE_EXTRA }, /* 196 = getdirentries */ + { SYF_MPSAFE | AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP SYSTRACE_EXTRA }, /* 197 = mmap */ + { SYF_MPSAFE | 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 198 = __syscall */ + { SYF_MPSAFE | AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK SYSTRACE_EXTRA }, /* 199 = lseek */ + { SYF_MPSAFE | AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE SYSTRACE_EXTRA }, /* 200 = truncate */ + { SYF_MPSAFE | AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE SYSTRACE_EXTRA }, /* 201 = ftruncate */ + { SYF_MPSAFE | AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL SYSTRACE_EXTRA }, /* 202 = __sysctl */ + { SYF_MPSAFE | AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK SYSTRACE_EXTRA }, /* 203 = mlock */ + { SYF_MPSAFE | AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK SYSTRACE_EXTRA }, /* 204 = munlock */ + { SYF_MPSAFE | AS(undelete_args), (sy_call_t *)undelete, AUE_UNDELETE SYSTRACE_EXTRA }, /* 205 = undelete */ + { SYF_MPSAFE | AS(futimes_args), (sy_call_t *)futimes, AUE_FUTIMES SYSTRACE_EXTRA }, /* 206 = futimes */ + { SYF_MPSAFE | AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID SYSTRACE_EXTRA }, /* 207 = getpgid */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 208 = newreboot */ + { SYF_MPSAFE | AS(poll_args), (sy_call_t *)poll, AUE_POLL SYSTRACE_EXTRA }, /* 209 = poll */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 210 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 211 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 212 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 213 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 214 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 215 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 216 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 217 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 218 = lkmnosys */ + { AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL SYSTRACE_EXTRA }, /* 219 = lkmnosys */ + { SYF_MPSAFE | AS(__semctl_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 220 = __semctl */ + { SYF_MPSAFE | AS(semget_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 221 = semget */ + { SYF_MPSAFE | AS(semop_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 222 = semop */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 223 = semconfig */ + { SYF_MPSAFE | AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 224 = msgctl */ + { SYF_MPSAFE | AS(msgget_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 225 = msgget */ + { SYF_MPSAFE | AS(msgsnd_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 226 = msgsnd */ + { SYF_MPSAFE | AS(msgrcv_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 227 = msgrcv */ + { SYF_MPSAFE | AS(shmat_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 228 = shmat */ + { SYF_MPSAFE | AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 229 = shmctl */ + { SYF_MPSAFE | AS(shmdt_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 230 = shmdt */ + { SYF_MPSAFE | AS(shmget_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 231 = shmget */ + { SYF_MPSAFE | AS(clock_gettime_args), (sy_call_t *)clock_gettime, AUE_NULL SYSTRACE_EXTRA }, /* 232 = clock_gettime */ + { SYF_MPSAFE | AS(clock_settime_args), (sy_call_t *)clock_settime, AUE_NULL SYSTRACE_EXTRA }, /* 233 = clock_settime */ + { SYF_MPSAFE | AS(clock_getres_args), (sy_call_t *)clock_getres, AUE_NULL SYSTRACE_EXTRA }, /* 234 = clock_getres */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 235 = timer_create */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 236 = timer_delete */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 237 = timer_settime */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 238 = timer_gettime */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 239 = timer_getoverrun */ + { SYF_MPSAFE | AS(nanosleep_args), (sy_call_t *)nanosleep, AUE_NULL SYSTRACE_EXTRA }, /* 240 = nanosleep */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 241 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 242 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 243 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 244 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 245 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 246 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 247 = nosys */ + { SYF_MPSAFE | AS(ntp_gettime_args), (sy_call_t *)ntp_gettime, AUE_NULL SYSTRACE_EXTRA }, /* 248 = ntp_gettime */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 249 = nosys */ + { SYF_MPSAFE | AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT SYSTRACE_EXTRA }, /* 250 = minherit */ + { SYF_MPSAFE | AS(rfork_args), (sy_call_t *)rfork, AUE_RFORK SYSTRACE_EXTRA }, /* 251 = rfork */ + { SYF_MPSAFE | AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL SYSTRACE_EXTRA }, /* 252 = openbsd_poll */ + { SYF_MPSAFE | 0, (sy_call_t *)issetugid, AUE_ISSETUGID SYSTRACE_EXTRA }, /* 253 = issetugid */ + { SYF_MPSAFE | AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN SYSTRACE_EXTRA }, /* 254 = lchown */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 255 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 256 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 257 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 258 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 259 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 260 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 261 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 262 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 263 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 264 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 265 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 266 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 267 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 268 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 269 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 270 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 271 = nosys */ + { SYF_MPSAFE | AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS SYSTRACE_EXTRA }, /* 272 = getdents */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 273 = nosys */ + { SYF_MPSAFE | AS(lchmod_args), (sy_call_t *)lchmod, AUE_LCHMOD SYSTRACE_EXTRA }, /* 274 = lchmod */ + { SYF_MPSAFE | AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN SYSTRACE_EXTRA }, /* 275 = netbsd_lchown */ + { SYF_MPSAFE | AS(lutimes_args), (sy_call_t *)lutimes, AUE_LUTIMES SYSTRACE_EXTRA }, /* 276 = lutimes */ + { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync, AUE_MSYNC SYSTRACE_EXTRA }, /* 277 = netbsd_msync */ + { SYF_MPSAFE | AS(nstat_args), (sy_call_t *)nstat, AUE_STAT SYSTRACE_EXTRA }, /* 278 = nstat */ + { SYF_MPSAFE | AS(nfstat_args), (sy_call_t *)nfstat, AUE_FSTAT SYSTRACE_EXTRA }, /* 279 = nfstat */ + { SYF_MPSAFE | AS(nlstat_args), (sy_call_t *)nlstat, AUE_LSTAT SYSTRACE_EXTRA }, /* 280 = nlstat */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 281 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 282 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 283 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 284 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 285 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 286 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 287 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 288 = nosys */ + { SYF_MPSAFE | AS(preadv_args), (sy_call_t *)preadv, AUE_NULL SYSTRACE_EXTRA }, /* 289 = preadv */ + { SYF_MPSAFE | AS(pwritev_args), (sy_call_t *)pwritev, AUE_NULL SYSTRACE_EXTRA }, /* 290 = pwritev */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 291 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 292 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 293 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 294 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 295 = nosys */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 296 = nosys */ + { compat4(SYF_MPSAFE | AS(freebsd4_fhstatfs_args),fhstatfs), AUE_FHSTATFS SYSTRACE_EXTRA }, /* 297 = old fhstatfs */ + { SYF_MPSAFE | AS(fhopen_args), (sy_call_t *)fhopen, AUE_FHOPEN SYSTRACE_EXTRA }, /* 298 = fhopen */ + { SYF_MPSAFE | AS(fhstat_args), (sy_call_t *)fhstat, AUE_FHSTAT SYSTRACE_EXTRA }, /* 299 = fhstat */ + { SYF_MPSAFE | AS(modnext_args), (sy_call_t *)modnext, AUE_NULL SYSTRACE_EXTRA }, /* 300 = modnext */ + { SYF_MPSAFE | AS(modstat_args), (sy_call_t *)modstat, AUE_NULL SYSTRACE_EXTRA }, /* 301 = modstat */ + { SYF_MPSAFE | AS(modfnext_args), (sy_call_t *)modfnext, AUE_NULL SYSTRACE_EXTRA }, /* 302 = modfnext */ + { SYF_MPSAFE | AS(modfind_args), (sy_call_t *)modfind, AUE_NULL SYSTRACE_EXTRA }, /* 303 = modfind */ + { SYF_MPSAFE | AS(kldload_args), (sy_call_t *)kldload, AUE_MODLOAD SYSTRACE_EXTRA }, /* 304 = kldload */ + { SYF_MPSAFE | AS(kldunload_args), (sy_call_t *)kldunload, AUE_MODUNLOAD SYSTRACE_EXTRA }, /* 305 = kldunload */ + { SYF_MPSAFE | AS(kldfind_args), (sy_call_t *)kldfind, AUE_NULL SYSTRACE_EXTRA }, /* 306 = kldfind */ + { SYF_MPSAFE | AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL SYSTRACE_EXTRA }, /* 307 = kldnext */ + { SYF_MPSAFE | AS(kldstat_args), (sy_call_t *)kldstat, AUE_NULL SYSTRACE_EXTRA }, /* 308 = kldstat */ + { SYF_MPSAFE | AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL SYSTRACE_EXTRA }, /* 309 = kldfirstmod */ + { SYF_MPSAFE | AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID SYSTRACE_EXTRA }, /* 310 = getsid */ + { SYF_MPSAFE | AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID SYSTRACE_EXTRA }, /* 311 = setresuid */ + { SYF_MPSAFE | AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID SYSTRACE_EXTRA }, /* 312 = setresgid */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 313 = obsolete signanosleep */ + { AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 314 = aio_return */ + { AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 315 = aio_suspend */ + { AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 316 = aio_cancel */ + { AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 317 = aio_error */ + { AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 318 = aio_read */ + { AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 319 = aio_write */ + { AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 320 = lio_listio */ + { SYF_MPSAFE | 0, (sy_call_t *)yield, AUE_NULL SYSTRACE_EXTRA }, /* 321 = yield */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 322 = obsolete thr_sleep */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 323 = obsolete thr_wakeup */ + { SYF_MPSAFE | AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL SYSTRACE_EXTRA }, /* 324 = mlockall */ + { SYF_MPSAFE | 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL SYSTRACE_EXTRA }, /* 325 = munlockall */ + { SYF_MPSAFE | AS(__getcwd_args), (sy_call_t *)__getcwd, AUE_NULL SYSTRACE_EXTRA }, /* 326 = __getcwd */ + { SYF_MPSAFE | AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL SYSTRACE_EXTRA }, /* 327 = sched_setparam */ + { SYF_MPSAFE | AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL SYSTRACE_EXTRA }, /* 328 = sched_getparam */ + { SYF_MPSAFE | AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL SYSTRACE_EXTRA }, /* 329 = sched_setscheduler */ + { SYF_MPSAFE | AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL SYSTRACE_EXTRA }, /* 330 = sched_getscheduler */ + { SYF_MPSAFE | 0, (sy_call_t *)sched_yield, AUE_NULL SYSTRACE_EXTRA }, /* 331 = sched_yield */ + { SYF_MPSAFE | AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL SYSTRACE_EXTRA }, /* 332 = sched_get_priority_max */ + { SYF_MPSAFE | AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL SYSTRACE_EXTRA }, /* 333 = sched_get_priority_min */ + { SYF_MPSAFE | AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL SYSTRACE_EXTRA }, /* 334 = sched_rr_get_interval */ + { SYF_MPSAFE | AS(utrace_args), (sy_call_t *)utrace, AUE_NULL SYSTRACE_EXTRA }, /* 335 = utrace */ + { compat4(SYF_MPSAFE | AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE SYSTRACE_EXTRA }, /* 336 = old sendfile */ + { SYF_MPSAFE | AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL SYSTRACE_EXTRA }, /* 337 = kldsym */ + { SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail, AUE_JAIL SYSTRACE_EXTRA }, /* 338 = jail */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 339 = pioctl */ + { SYF_MPSAFE | AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK SYSTRACE_EXTRA }, /* 340 = sigprocmask */ + { SYF_MPSAFE | AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND SYSTRACE_EXTRA }, /* 341 = sigsuspend */ + { compat4(SYF_MPSAFE | AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION SYSTRACE_EXTRA }, /* 342 = old sigaction */ + { SYF_MPSAFE | AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING SYSTRACE_EXTRA }, /* 343 = sigpending */ + { compat4(SYF_MPSAFE | AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN SYSTRACE_EXTRA }, /* 344 = old sigreturn */ + { SYF_MPSAFE | AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT SYSTRACE_EXTRA }, /* 345 = sigtimedwait */ + { SYF_MPSAFE | AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL SYSTRACE_EXTRA }, /* 346 = sigwaitinfo */ + { SYF_MPSAFE | AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL SYSTRACE_EXTRA }, /* 347 = __acl_get_file */ + { SYF_MPSAFE | AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL SYSTRACE_EXTRA }, /* 348 = __acl_set_file */ + { SYF_MPSAFE | AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL SYSTRACE_EXTRA }, /* 349 = __acl_get_fd */ + { SYF_MPSAFE | AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL SYSTRACE_EXTRA }, /* 350 = __acl_set_fd */ + { SYF_MPSAFE | AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file, AUE_NULL SYSTRACE_EXTRA }, /* 351 = __acl_delete_file */ + { SYF_MPSAFE | AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL SYSTRACE_EXTRA }, /* 352 = __acl_delete_fd */ + { SYF_MPSAFE | AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL SYSTRACE_EXTRA }, /* 353 = __acl_aclcheck_file */ + { SYF_MPSAFE | AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL SYSTRACE_EXTRA }, /* 354 = __acl_aclcheck_fd */ + { SYF_MPSAFE | AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL SYSTRACE_EXTRA }, /* 355 = extattrctl */ + { SYF_MPSAFE | AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE SYSTRACE_EXTRA }, /* 356 = extattr_set_file */ + { SYF_MPSAFE | AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE SYSTRACE_EXTRA }, /* 357 = extattr_get_file */ + { SYF_MPSAFE | AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE SYSTRACE_EXTRA }, /* 358 = extattr_delete_file */ + { AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 359 = aio_waitcomplete */ + { SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID SYSTRACE_EXTRA }, /* 360 = getresuid */ + { SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID SYSTRACE_EXTRA }, /* 361 = getresgid */ + { SYF_MPSAFE | 0, (sy_call_t *)kqueue, AUE_NULL SYSTRACE_EXTRA }, /* 362 = kqueue */ + { SYF_MPSAFE | AS(kevent_args), (sy_call_t *)kevent, AUE_NULL SYSTRACE_EXTRA }, /* 363 = kevent */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 364 = __cap_get_proc */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 365 = __cap_set_proc */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 366 = __cap_get_fd */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 367 = __cap_get_file */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 368 = __cap_set_fd */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 369 = __cap_set_file */ + { AS(nosys_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 370 = lkmressys */ + { SYF_MPSAFE | AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD SYSTRACE_EXTRA }, /* 371 = extattr_set_fd */ + { SYF_MPSAFE | AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD SYSTRACE_EXTRA }, /* 372 = extattr_get_fd */ + { SYF_MPSAFE | AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD SYSTRACE_EXTRA }, /* 373 = extattr_delete_fd */ + { SYF_MPSAFE | AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL SYSTRACE_EXTRA }, /* 374 = __setugid */ + { AS(nfsclnt_args), (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 375 = nfsclnt */ + { SYF_MPSAFE | AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS SYSTRACE_EXTRA }, /* 376 = eaccess */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 377 = afs_syscall */ + { AS(nmount_args), (sy_call_t *)nmount, AUE_NMOUNT SYSTRACE_EXTRA }, /* 378 = nmount */ + { SYF_MPSAFE | 0, (sy_call_t *)kse_exit, AUE_NULL SYSTRACE_EXTRA }, /* 379 = kse_exit */ + { SYF_MPSAFE | AS(kse_wakeup_args), (sy_call_t *)kse_wakeup, AUE_NULL SYSTRACE_EXTRA }, /* 380 = kse_wakeup */ + { SYF_MPSAFE | AS(kse_create_args), (sy_call_t *)kse_create, AUE_NULL SYSTRACE_EXTRA }, /* 381 = kse_create */ + { SYF_MPSAFE | AS(kse_thr_interrupt_args), (sy_call_t *)kse_thr_interrupt, AUE_NULL SYSTRACE_EXTRA }, /* 382 = kse_thr_interrupt */ + { SYF_MPSAFE | AS(kse_release_args), (sy_call_t *)kse_release, AUE_NULL SYSTRACE_EXTRA }, /* 383 = kse_release */ + { SYF_MPSAFE | AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc, AUE_NULL SYSTRACE_EXTRA }, /* 384 = __mac_get_proc */ + { SYF_MPSAFE | AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc, AUE_NULL SYSTRACE_EXTRA }, /* 385 = __mac_set_proc */ + { SYF_MPSAFE | AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd, AUE_NULL SYSTRACE_EXTRA }, /* 386 = __mac_get_fd */ + { SYF_MPSAFE | AS(__mac_get_file_args), (sy_call_t *)__mac_get_file, AUE_NULL SYSTRACE_EXTRA }, /* 387 = __mac_get_file */ + { SYF_MPSAFE | AS(__mac_set_fd_args), (sy_call_t *)__mac_set_fd, AUE_NULL SYSTRACE_EXTRA }, /* 388 = __mac_set_fd */ + { SYF_MPSAFE | AS(__mac_set_file_args), (sy_call_t *)__mac_set_file, AUE_NULL SYSTRACE_EXTRA }, /* 389 = __mac_set_file */ + { SYF_MPSAFE | AS(kenv_args), (sy_call_t *)kenv, AUE_NULL SYSTRACE_EXTRA }, /* 390 = kenv */ + { SYF_MPSAFE | AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS SYSTRACE_EXTRA }, /* 391 = lchflags */ + { SYF_MPSAFE | AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL SYSTRACE_EXTRA }, /* 392 = uuidgen */ + { SYF_MPSAFE | AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE SYSTRACE_EXTRA }, /* 393 = sendfile */ + { SYF_MPSAFE | AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL SYSTRACE_EXTRA }, /* 394 = mac_syscall */ + { SYF_MPSAFE | AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT SYSTRACE_EXTRA }, /* 395 = getfsstat */ + { SYF_MPSAFE | AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS SYSTRACE_EXTRA }, /* 396 = statfs */ + { SYF_MPSAFE | AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS SYSTRACE_EXTRA }, /* 397 = fstatfs */ + { SYF_MPSAFE | AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_NULL SYSTRACE_EXTRA }, /* 398 = fhstatfs */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 399 = nosys */ + { SYF_MPSAFE | AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 400 = ksem_close */ + { SYF_MPSAFE | AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 401 = ksem_post */ + { SYF_MPSAFE | AS(ksem_wait_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 402 = ksem_wait */ + { SYF_MPSAFE | AS(ksem_trywait_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 403 = ksem_trywait */ + { SYF_MPSAFE | AS(ksem_init_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 404 = ksem_init */ + { SYF_MPSAFE | AS(ksem_open_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 405 = ksem_open */ + { SYF_MPSAFE | AS(ksem_unlink_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 406 = ksem_unlink */ + { SYF_MPSAFE | AS(ksem_getvalue_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 407 = ksem_getvalue */ + { SYF_MPSAFE | AS(ksem_destroy_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 408 = ksem_destroy */ + { SYF_MPSAFE | AS(__mac_get_pid_args), (sy_call_t *)__mac_get_pid, AUE_NULL SYSTRACE_EXTRA }, /* 409 = __mac_get_pid */ + { SYF_MPSAFE | AS(__mac_get_link_args), (sy_call_t *)__mac_get_link, AUE_NULL SYSTRACE_EXTRA }, /* 410 = __mac_get_link */ + { SYF_MPSAFE | AS(__mac_set_link_args), (sy_call_t *)__mac_set_link, AUE_NULL SYSTRACE_EXTRA }, /* 411 = __mac_set_link */ + { SYF_MPSAFE | AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK SYSTRACE_EXTRA }, /* 412 = extattr_set_link */ + { SYF_MPSAFE | AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK SYSTRACE_EXTRA }, /* 413 = extattr_get_link */ + { SYF_MPSAFE | AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK SYSTRACE_EXTRA }, /* 414 = extattr_delete_link */ + { SYF_MPSAFE | AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL SYSTRACE_EXTRA }, /* 415 = __mac_execve */ + { SYF_MPSAFE | AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION SYSTRACE_EXTRA }, /* 416 = sigaction */ + { SYF_MPSAFE | AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN SYSTRACE_EXTRA }, /* 417 = sigreturn */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 418 = __xstat */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 419 = __xfstat */ + { 0, (sy_call_t *)nosys, AUE_NULL SYSTRACE_EXTRA }, /* 420 = __xlstat */ + { SYF_MPSAFE | AS(getcontext_args), (sy_call_t *)getcontext, AUE_NULL SYSTRACE_EXTRA }, /* 421 = getcontext */ + { SYF_MPSAFE | AS(setcontext_args), (sy_call_t *)setcontext, AUE_NULL SYSTRACE_EXTRA }, /* 422 = setcontext */ + { SYF_MPSAFE | AS(swapcontext_args), (sy_call_t *)swapcontext, AUE_NULL SYSTRACE_EXTRA }, /* 423 = swapcontext */ + { SYF_MPSAFE | AS(swapoff_args), (sy_call_t *)swapoff, AUE_SWAPOFF SYSTRACE_EXTRA }, /* 424 = swapoff */ + { SYF_MPSAFE | AS(__acl_get_link_args), (sy_call_t *)__acl_get_link, AUE_NULL SYSTRACE_EXTRA }, /* 425 = __acl_get_link */ + { SYF_MPSAFE | AS(__acl_set_link_args), (sy_call_t *)__acl_set_link, AUE_NULL SYSTRACE_EXTRA }, /* 426 = __acl_set_link */ + { SYF_MPSAFE | AS(__acl_delete_link_args), (sy_call_t *)__acl_delete_link, AUE_NULL SYSTRACE_EXTRA }, /* 427 = __acl_delete_link */ + { SYF_MPSAFE | AS(__acl_aclcheck_link_args), (sy_call_t *)__acl_aclcheck_link, AUE_NULL SYSTRACE_EXTRA }, /* 428 = __acl_aclcheck_link */ + { SYF_MPSAFE | AS(sigwait_args), (sy_call_t *)sigwait, AUE_SIGWAIT SYSTRACE_EXTRA }, /* 429 = sigwait */ + { SYF_MPSAFE | AS(thr_create_args), (sy_call_t *)thr_create, AUE_NULL SYSTRACE_EXTRA }, /* 430 = thr_create */ + { SYF_MPSAFE | AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL SYSTRACE_EXTRA }, /* 431 = thr_exit */ + { SYF_MPSAFE | AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL SYSTRACE_EXTRA }, /* 432 = thr_self */ + { SYF_MPSAFE | AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL SYSTRACE_EXTRA }, /* 433 = thr_kill */ + { SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL SYSTRACE_EXTRA }, /* 434 = _umtx_lock */ + { SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL SYSTRACE_EXTRA }, /* 435 = _umtx_unlock */ + { SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL SYSTRACE_EXTRA }, /* 436 = jail_attach */ + { SYF_MPSAFE | AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD SYSTRACE_EXTRA }, /* 437 = extattr_list_fd */ + { SYF_MPSAFE | AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE SYSTRACE_EXTRA }, /* 438 = extattr_list_file */ + { SYF_MPSAFE | AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK SYSTRACE_EXTRA }, /* 439 = extattr_list_link */ + { SYF_MPSAFE | AS(kse_switchin_args), (sy_call_t *)kse_switchin, AUE_NULL SYSTRACE_EXTRA }, /* 440 = kse_switchin */ + { SYF_MPSAFE | AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL SYSTRACE_EXTRA }, /* 441 = ksem_timedwait */ + { SYF_MPSAFE | AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL SYSTRACE_EXTRA }, /* 442 = thr_suspend */ + { SYF_MPSAFE | AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL SYSTRACE_EXTRA }, /* 443 = thr_wake */ + { SYF_MPSAFE | AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_NULL SYSTRACE_EXTRA }, /* 444 = kldunloadf */ + { SYF_MPSAFE | AS(audit_args), (sy_call_t *)audit, AUE_AUDIT SYSTRACE_EXTRA }, /* 445 = audit */ + { SYF_MPSAFE | AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON SYSTRACE_EXTRA }, /* 446 = auditon */ + { SYF_MPSAFE | AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID SYSTRACE_EXTRA }, /* 447 = getauid */ + { SYF_MPSAFE | AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID SYSTRACE_EXTRA }, /* 448 = setauid */ + { SYF_MPSAFE | AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT SYSTRACE_EXTRA }, /* 449 = getaudit */ + { SYF_MPSAFE | AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT SYSTRACE_EXTRA }, /* 450 = setaudit */ + { SYF_MPSAFE | AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR SYSTRACE_EXTRA }, /* 451 = getaudit_addr */ + { SYF_MPSAFE | AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR SYSTRACE_EXTRA }, /* 452 = setaudit_addr */ + { SYF_MPSAFE | AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL SYSTRACE_EXTRA }, /* 453 = auditctl */ + { SYF_MPSAFE | AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL SYSTRACE_EXTRA }, /* 454 = _umtx_op */ + { SYF_MPSAFE | AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL SYSTRACE_EXTRA }, /* 455 = thr_new */ }; From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:04:23 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B3FCD1065683; Mon, 9 Jun 2008 03:04:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 763D4106567B for ; Mon, 9 Jun 2008 03:04:23 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 492358FC1E for ; Mon, 9 Jun 2008 03:04:23 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5934Nea050789 for ; Mon, 9 Jun 2008 03:04:23 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5934NnE050787 for perforce@freebsd.org; Mon, 9 Jun 2008 03:04:23 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:04:23 GMT Message-Id: <200806090304.m5934NnE050787@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143152 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:04:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=143152 Change 143152 by jb@freebsd3 on 2008/06/09 03:03:37 Hook the cyclic and opensolaris kernel modules into the build. Affected files ... .. //depot/projects/dtrace6/src/sys/modules/Makefile#7 edit Differences ... ==== //depot/projects/dtrace6/src/sys/modules/Makefile#7 (text+ko) ==== @@ -65,6 +65,7 @@ cue \ ${_cx} \ cxgb \ + ${_cyclic} \ dc \ dcons \ dcons_crom \ @@ -191,6 +192,7 @@ ${_nve} \ ${_nwfs} \ ${_oltr} \ + ${_opensolaris} \ ${_osf1} \ ${_padlock} \ patm \ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:05:24 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4DC31065675; Mon, 9 Jun 2008 03:05:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8695A1065673 for ; Mon, 9 Jun 2008 03:05:24 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 728A68FC1B for ; Mon, 9 Jun 2008 03:05:24 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5935Osl050963 for ; Mon, 9 Jun 2008 03:05:24 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5935Ol6050961 for perforce@freebsd.org; Mon, 9 Jun 2008 03:05:24 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:05:24 GMT Message-Id: <200806090305.m5935Ol6050961@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143153 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:05:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=143153 Change 143153 by jb@freebsd3 on 2008/06/09 03:04:33 Add virtual time support for DTrace. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/sched_4bsd.c#2 edit .. //depot/projects/dtrace6/src/sys/kern/sched_ule.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/sched_4bsd.c#2 (text+ko) ==== @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.77.2.1 2006/06/16 22:11:55 jhb Exp $"); #include "opt_hwpmc_hooks.h" +#include "opt_kdtrace.h" #define kse td_sched @@ -59,6 +60,12 @@ #include #endif +#ifdef KDTRACE_HOOKS +#include +int dtrace_vtime_active; +dtrace_vtime_switch_func_t dtrace_vtime_switch_func; +#endif + /* * INVERSE_ESTCPU_WEIGHT is only suitable for statclock() frequencies in * the range 100-256 Hz (approximately). @@ -970,6 +977,16 @@ if (PMC_PROC_IS_USING_PMCS(td->td_proc)) PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT); #endif + +#ifdef KDTRACE_HOOKS + /* + * If DTrace has set the active vtime enum to anything + * other than INACTIVE (0), then it should have set the + * function to call. + */ + if (dtrace_vtime_active) + (*dtrace_vtime_switch_func)(newtd); +#endif cpu_switch(td, newtd); #ifdef HWPMC_HOOKS if (PMC_PROC_IS_USING_PMCS(td->td_proc)) ==== //depot/projects/dtrace6/src/sys/kern/sched_ule.c#2 (text+ko) ==== @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.153.2.3 2005/09/27 12:00:31 davidxu Exp $"); #include "opt_hwpmc_hooks.h" +#include "opt_kdtrace.h" #include "opt_sched.h" #define kse td_sched @@ -58,6 +59,12 @@ #include #endif +#ifdef KDTRACE_HOOKS +#include +int dtrace_vtime_active; +dtrace_vtime_switch_func_t dtrace_vtime_switch_func; +#endif + #include #include @@ -1386,6 +1393,16 @@ if (PMC_PROC_IS_USING_PMCS(td->td_proc)) PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT); #endif + +#ifdef KDTRACE_HOOKS + /* + * If DTrace has set the active vtime enum to anything + * other than INACTIVE (0), then it should have set the + * function to call. + */ + if (dtrace_vtime_active) + (*dtrace_vtime_switch_func)(newtd); +#endif cpu_switch(td, newtd); #ifdef HWPMC_HOOKS if (PMC_PROC_IS_USING_PMCS(td->td_proc)) From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:06:26 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED9D3106567F; Mon, 9 Jun 2008 03:06:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AFB87106567D for ; Mon, 9 Jun 2008 03:06:25 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF588FC12 for ; Mon, 9 Jun 2008 03:06:25 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5936PWu051033 for ; Mon, 9 Jun 2008 03:06:25 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5936Pgt051031 for perforce@freebsd.org; Mon, 9 Jun 2008 03:06:25 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:06:25 GMT Message-Id: <200806090306.m5936Pgt051031@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143154 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:06:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=143154 Change 143154 by jb@freebsd3 on 2008/06/09 03:05:50 Set the function size in the END() macro. Affected files ... .. //depot/projects/dtrace6/src/sys/i386/include/asm.h#2 edit .. //depot/projects/dtrace6/src/sys/i386/include/asmacros.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/i386/include/asm.h#2 (text+ko) ==== @@ -71,6 +71,7 @@ #define _ENTRY(x) _START_ENTRY; \ .globl CNAME(x); .type CNAME(x),@function; CNAME(x): +#define END(x) .size x, . - x #ifdef PROF #define ALTENTRY(x) _ENTRY(x); \ ==== //depot/projects/dtrace6/src/sys/i386/include/asmacros.h#2 (text+ko) ==== @@ -59,6 +59,8 @@ #define NON_GPROF_ENTRY(name) GEN_ENTRY(name) #define NON_GPROF_RET .byte 0xc3 /* opcode for `ret' */ +#define END(name) .size name, . - name + #ifdef LOCORE #define PCPU(member) %fs:PC_ ## member #define PCPU_ADDR(member, reg) movl %fs:PC_PRVSPACE,reg; \ From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:07:27 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 243E01065674; Mon, 9 Jun 2008 03:07:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9814106567E for ; Mon, 9 Jun 2008 03:07:26 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C59438FC0A for ; Mon, 9 Jun 2008 03:07:26 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5937QBH051127 for ; Mon, 9 Jun 2008 03:07:26 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5937QIG051125 for perforce@freebsd.org; Mon, 9 Jun 2008 03:07:26 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:07:26 GMT Message-Id: <200806090307.m5937QIG051125@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143155 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:07:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=143155 Change 143155 by jb@freebsd3 on 2008/06/09 03:06:46 Backout code that is now implemented via event handler hooks. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/init_main.c#4 edit .. //depot/projects/dtrace6/src/sys/kern/kern_thread.c#5 edit Differences ... ==== //depot/projects/dtrace6/src/sys/kern/init_main.c#4 (text+ko) ==== @@ -99,15 +99,6 @@ struct vmspace vmspace0; struct proc *initproc; -/* DTrace data for the primary thread in proc0. */ -char kdtrace_thread0[KDTRACE_THREAD_SIZE]; - -/* Offset from 'struct thread *' to the opaque DTrace fields. */ -int kdtrace_thread_offset; - -/* Overall per-thread allocation size. */ -int kdtrace_thread_size; - int boothowto = 0; /* initialized so that it can be patched */ SYSCTL_INT(_debug, OID_AUTO, boothowto, CTLFLAG_RD, &boothowto, 0, ""); int bootverbose; @@ -187,18 +178,6 @@ int verbose; #endif - /* Get the size of 'struct thread' plus 'struct td_sched' */ - kdtrace_thread_offset = sched_sizeof_thread(); - - /* - * Allow for the DTrace-specific thread data after - * struct td_sched. This space is allocated opaquely to - * avoid license issues. The value of KDTRACE_THREAD_SIZE - * set in sys/proc.h must be larger than that required by - * the DTrace kernel modules. - */ - kdtrace_thread_size = kdtrace_thread_offset + KDTRACE_THREAD_SIZE; - if (sysinit == NULL) { sysinit = SET_BEGIN(sysinit_set); sysinit_end = SET_LIMIT(sysinit_set); ==== //depot/projects/dtrace6/src/sys/kern/kern_thread.c#5 (text+ko) ==== @@ -308,7 +308,7 @@ mtx_init(&tid_lock, "TID lock", NULL, MTX_DEF); tid_unrhdr = new_unrhdr(PID_MAX + 1, INT_MAX, &tid_lock); - thread_zone = uma_zcreate("THREAD", kdtrace_thread_size, + thread_zone = uma_zcreate("THREAD", sched_sizeof_thread(), thread_ctor, thread_dtor, thread_init, thread_fini, THREAD_ALIGN - 1, 0); ksegrp_zone = uma_zcreate("KSEGRP", sched_sizeof_ksegrp(), From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:08:29 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4267C106566C; Mon, 9 Jun 2008 03:08:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 032CD106564A for ; Mon, 9 Jun 2008 03:08:29 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EE9028FC17 for ; Mon, 9 Jun 2008 03:08:27 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5938Ri8051195 for ; Mon, 9 Jun 2008 03:08:27 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5938R35051193 for perforce@freebsd.org; Mon, 9 Jun 2008 03:08:27 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:08:27 GMT Message-Id: <200806090308.m5938R35051193@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143156 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:08:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=143156 Change 143156 by jb@freebsd3 on 2008/06/09 03:08:03 Add the cyclic hooks and modify the structure type to suit releng6. Affected files ... .. //depot/projects/dtrace6/src/sys/i386/i386/local_apic.c#3 edit .. //depot/projects/dtrace6/src/sys/sys/dtrace_bsd.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/i386/i386/local_apic.c#3 (text+ko) ==== @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD: src/sys/i386/i386/local_apic.c,v 1.17.2.14 2007/10/05 15:22:36 jhb Exp $"); #include "opt_hwpmc_hooks.h" +#include "opt_kdtrace.h" #include "opt_ddb.h" @@ -51,6 +52,7 @@ #include #include +#include #include #include #include @@ -64,6 +66,11 @@ #include #endif +#ifdef KDTRACE_HOOKS +#include +cyclic_clock_func_t lapic_cyclic_clock_func[MAXCPU]; +#endif + /* Sanity checks on IDT vectors. */ CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS == APIC_TIMER_INT); CTASSERT(APIC_TIMER_INT < APIC_LOCAL_INTS); @@ -662,6 +669,17 @@ (*la->la_timer_count)++; critical_enter(); +#ifdef KDTRACE_HOOKS + /* + * If the DTrace hooks are configured and a callback function + * has been registered, then call it to process the high speed + * timers. + */ + int cpu = PCPU_GET(cpuid); + if (lapic_cyclic_clock_func[cpu] != NULL) + (*lapic_cyclic_clock_func[cpu])(&frame); +#endif + /* Fire hardclock at hz. */ la->la_hard_ticks += hz; if (la->la_hard_ticks >= lapic_timer_hz) { ==== //depot/projects/dtrace6/src/sys/sys/dtrace_bsd.h#2 (text+ko) ==== @@ -32,6 +32,7 @@ #define _SYS_DTRACE_BSD_H /* Forward definitions: */ +struct clockframe; struct trapframe; struct thread; @@ -39,7 +40,7 @@ * Cyclic clock function type definition used to hook the cyclic * subsystem into the appropriate timer interrupt. */ -typedef void (*cyclic_clock_func_t)(struct trapframe *); +typedef void (*cyclic_clock_func_t)(struct clockframe *); /* * These external variables are actually machine-dependent, so From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:09:29 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 753E61065670; Mon, 9 Jun 2008 03:09:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37388106566B for ; Mon, 9 Jun 2008 03:09:29 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 238DD8FC1C for ; Mon, 9 Jun 2008 03:09:29 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5939Srb051266 for ; Mon, 9 Jun 2008 03:09:28 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5939SHQ051264 for perforce@freebsd.org; Mon, 9 Jun 2008 03:09:28 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:09:28 GMT Message-Id: <200806090309.m5939SHQ051264@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143157 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:09:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=143157 Change 143157 by jb@freebsd3 on 2008/06/09 03:08:43 Use the releng6 compatible types. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/dev/dtrace/i386/dtrace_isa.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/dev/dtrace/i386/dtrace_isa.c#2 (text+ko) ==== @@ -34,7 +34,6 @@ #include #include -#include #include #include @@ -51,6 +50,12 @@ uint32_t dtrace_fuword32_nocheck(void *); uint64_t dtrace_fuword64_nocheck(void *); +struct i386_frame { + struct i386_frame *f_frame; + int f_retaddr; + int f_arg0; +}; + void dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes, uint32_t *intrpc) From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:11:32 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9259B1065684; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 544B91065679 for ; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 401BA8FC14 for ; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593BWG8051489 for ; Mon, 9 Jun 2008 03:11:32 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593BWaf051487 for perforce@freebsd.org; Mon, 9 Jun 2008 03:11:32 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:11:32 GMT Message-Id: <200806090311.m593BWaf051487@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143158 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:11:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=143158 Change 143158 by jb@freebsd3 on 2008/06/09 03:10:30 Add the hooks for the syscall (systrace) provider. Note that this requires an ABI change, so a separate kernel option is required to make it work. BREAK_SYSENT_ABI should be obvious. Affected files ... .. //depot/projects/dtrace6/src/sys/i386/i386/trap.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/i386/i386/trap.c#2 (text+ko) ==== @@ -49,6 +49,7 @@ #include "opt_hwpmc_hooks.h" #include "opt_isa.h" #include "opt_kdb.h" +#include "opt_kdtrace.h" #include "opt_ktrace.h" #include "opt_npx.h" #include "opt_trap.h" @@ -109,6 +110,26 @@ static void trap_fatal(struct trapframe *, vm_offset_t); void dblfault_handler(void); +#ifdef KDTRACE_HOOKS +#include + +/* + * This is a hook which is initialised by the dtrace module + * to handle traps which might occur during DTrace probe + * execution. + */ +dtrace_trap_func_t dtrace_trap_func; + +dtrace_doubletrap_func_t dtrace_doubletrap_func; + +/* + * This is a hook which is initialised by the systrace module + * when it is loaded. This keeps the DTrace syscall provider + * implementation opaque. + */ +systrace_probe_func_t systrace_probe_func; +#endif + extern inthand_t IDTVEC(lcall_syscall); #define MAX_TRAP_MSG 30 @@ -215,6 +236,25 @@ goto out; #endif +#ifdef KDTRACE_HOOKS + /* + * A trap can occur while DTrace executes a probe. Before + * executing the probe, DTrace blocks re-scheduling and sets + * a flag in it's per-cpu flags to indicate that it doesn't + * want to fault. On returning from the the probe, the no-fault + * flag is cleared and finally re-scheduling is enabled. + * + * If the DTrace kernel module has registered a trap handler, + * call it and if it returns non-zero, assume that it has + * handled the trap and modified the trap frame so that this + * function can return normally. + */ + if ((type == T_PROTFLT || type == T_PAGEFLT) && + dtrace_trap_func != NULL) + if ((*dtrace_trap_func)(&frame, type)) + goto out; +#endif + if ((frame.tf_eflags & PSL_I) == 0) { /* * Buggy application or kernel code has disabled @@ -855,6 +895,10 @@ void dblfault_handler() { +#ifdef KDTRACE_HOOKS + if (dtrace_doubletrap_func != NULL) + (*dtrace_doubletrap_func)(); +#endif printf("\nFatal double fault:\n"); printf("eip = 0x%x\n", PCPU_GET(common_tss.tss_eip)); printf("esp = 0x%x\n", PCPU_GET(common_tss.tss_esp)); @@ -980,9 +1024,34 @@ PTRACESTOP_SC(p, td, S_PT_SCE); +#if defined(KDTRACE_HOOKS) && defined(BREAK_SYSENT_ABI) + /* + * If the systrace module has registered it's probe + * callback and if there is a probe active for the + * syscall 'entry', process the probe. + */ + if (systrace_probe_func != NULL && callp->sy_entry != 0) + (*systrace_probe_func)(callp->sy_entry, code, callp, + args); +#endif + AUDIT_SYSCALL_ENTER(code, td); error = (*callp->sy_call)(td, args); AUDIT_SYSCALL_EXIT(error, td); + + /* Save the latest error return value. */ + td->td_errno = error; + +#if defined(KDTRACE_HOOKS) && defined(BREAK_SYSENT_ABI) + /* + * If the systrace module has registered it's probe + * callback and if there is a probe active for the + * syscall 'return', process the probe. + */ + if (systrace_probe_func != NULL && callp->sy_return != 0) + (*systrace_probe_func)(callp->sy_return, code, callp, + args); +#endif } switch (error) { From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:11:33 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 55287106567E; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 766F3106567A for ; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 629218FC19 for ; Mon, 9 Jun 2008 03:11:32 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593BW71051494 for ; Mon, 9 Jun 2008 03:11:32 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593BWpV051492 for perforce@freebsd.org; Mon, 9 Jun 2008 03:11:32 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:11:32 GMT Message-Id: <200806090311.m593BWpV051492@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143159 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:11:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=143159 Change 143159 by jb@freebsd3 on 2008/06/09 03:11:29 Add the exception handling hooks for the DTrace Function Boundary Trace Provider (fbt). Affected files ... .. //depot/projects/dtrace6/src/sys/i386/i386/exception.s#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/i386/i386/exception.s#2 (text+ko) ==== @@ -31,6 +31,7 @@ */ #include "opt_apic.h" +#include "opt_kdtrace.h" #include "opt_npx.h" #include @@ -40,7 +41,24 @@ #include "assym.s" #define SEL_RPL_MASK 0x0003 +#define GSEL_KPL 0x0020 /* GSEL(GCODE_SEL, SEL_KPL) */ + +#ifdef KDTRACE_HOOKS + .bss + .globl dtrace_invop_jump_addr + .align 4 + .type dtrace_invop_jump_addr, @object + .size dtrace_invop_jump_addr, 4 +dtrace_invop_jump_addr: + .zero 4 + .globl dtrace_invop_calltrap_addr + .align 4 + .type dtrace_invop_calltrap_addr, @object + .size dtrace_invop_calltrap_addr, 4 +dtrace_invop_calltrap_addr: + .zero 8 +#endif .text /*****************************************************************************/ @@ -86,8 +104,10 @@ pushl $0; TRAP(T_OFLOW) IDTVEC(bnd) pushl $0; TRAP(T_BOUND) +#ifndef KDTRACE_HOOKS IDTVEC(ill) pushl $0; TRAP(T_PRIVINFLT) +#endif IDTVEC(dna) pushl $0; TRAP(T_DNA) IDTVEC(fpusegm) @@ -145,6 +165,45 @@ jmp doreti /* + * Privileged instruction fault. + */ +#ifdef KDTRACE_HOOKS + SUPERALIGN_TEXT +IDTVEC(ill) + /* Check if there is no DTrace hook registered. */ + cmpl $0,dtrace_invop_jump_addr + je norm_ill + + /* Check if this is a user fault. */ + cmpl $GSEL_KPL, 4(%esp) /* Check the code segment. */ + + /* If so, just handle it as a normal trap. */ + jne norm_ill + + /* + * This is a kernel instruction fault that might have been caused + * by a DTrace provider. + */ + pushal /* Push all registers onto the stack. */ + + /* + * Set our jump address for the jump back in the event that + * the exception wasn't caused by DTrace at all. + */ + movl $norm_ill, dtrace_invop_calltrap_addr + + /* Jump to the code hooked in by DTrace. */ + jmpl *dtrace_invop_jump_addr + + /* + * Process the instruction fault in the normal way. + */ +norm_ill: + pushl $0 + TRAP(T_PRIVINFLT) +#endif + +/* * SYSCALL CALL GATE (old entry point for a.out binaries) * * The intersegment call has been set up to specify one dummy parameter. From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:14:36 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C5741065670; Mon, 9 Jun 2008 03:14:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C293F1065682 for ; Mon, 9 Jun 2008 03:14:35 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AEB4A8FC14 for ; Mon, 9 Jun 2008 03:14:35 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593EZ9p051709 for ; Mon, 9 Jun 2008 03:14:35 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593EZJD051707 for perforce@freebsd.org; Mon, 9 Jun 2008 03:14:35 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:14:35 GMT Message-Id: <200806090314.m593EZJD051707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143160 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:14:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=143160 Change 143160 by jb@freebsd3 on 2008/06/09 03:14:13 Add kernel option: - DDB_CTF to add CTF support. This has a runtime memory impact. - KDTRACE_HOOKS for all the DTrace kernel hooks. Without this you can't load any of the DTrace kernel modules. - BREAK_SYSENT_ABI to allow syscall tracing with DTrace. The word 'break' means what you think it does. :-) Affected files ... .. //depot/projects/dtrace6/src/sys/conf/options#3 edit .. //depot/projects/dtrace6/src/sys/i386/conf/GENERIC#4 edit Differences ... ==== //depot/projects/dtrace6/src/sys/conf/options#3 (text+ko) ==== @@ -48,6 +48,7 @@ # Debugging options. DDB +DDB_CTF opt_ddb.h DDB_NUMSYM opt_ddb.h GDB GDBSPEED opt_gdb.h @@ -65,6 +66,7 @@ NO_ADAPTIVE_RWLOCKS ALQ AUDIT opt_global.h +BREAK_SYSENT_ABI opt_global.h CODA_COMPAT_5 opt_coda.h COMPAT_43 opt_compat.h COMPAT_FREEBSD4 opt_compat.h @@ -97,6 +99,7 @@ GEOM_UZIP opt_geom.h GEOM_VOL opt_geom.h GEOM_ZERO opt_geom.h +KDTRACE_HOOKS opt_kdtrace.h KSTACK_MAX_PAGES KSTACK_PAGES KTRACE ==== //depot/projects/dtrace6/src/sys/i386/conf/GENERIC#4 (text+ko) ==== @@ -58,6 +58,11 @@ options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev options ADAPTIVE_GIANT # Giant mutex is adaptive. +options BREAK_SYSENT_ABI +options KDTRACE_HOOKS +options DDB_CTF +options KDB # Enable kernel debugger support. +options DDB # Support DDB. device apic # I/O APIC From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:15:37 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 37CED1065685; Mon, 9 Jun 2008 03:15:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECC27106567C for ; Mon, 9 Jun 2008 03:15:36 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D8BAA8FC19 for ; Mon, 9 Jun 2008 03:15:36 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Fal1051850 for ; Mon, 9 Jun 2008 03:15:36 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593FaDk051848 for perforce@freebsd.org; Mon, 9 Jun 2008 03:15:36 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:15:36 GMT Message-Id: <200806090315.m593FaDk051848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143161 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:15:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=143161 Change 143161 by jb@freebsd3 on 2008/06/09 03:14:52 Add support for CTF conversion in the kernel objects. Affected files ... .. //depot/projects/dtrace6/src/sys/conf/kern.pre.mk#4 edit Differences ... ==== //depot/projects/dtrace6/src/sys/conf/kern.pre.mk#4 (text+ko) ==== @@ -111,6 +111,12 @@ NORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c +.if defined(CTFCONVERT) +NORMAL_CTFCONVERT= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.else +NORMAL_CTFCONVERT= +.endif + NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} @@ -119,6 +125,10 @@ SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} SYSTEM_OBJS+= hack.So +.if defined(CTFMERGE) +SYSTEM_CTFMERGE= ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SYSTEM_OBJS} vers.o +LD+= -g +.endif SYSTEM_LD= @${LD} -Bdynamic -T $S/conf/ldscript.$M \ -warn-common -export-dynamic -dynamic-linker /red/herring \ -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:16:38 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 90ED01065672; Mon, 9 Jun 2008 03:16:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 218271065670 for ; Mon, 9 Jun 2008 03:16:38 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0DD558FC13 for ; Mon, 9 Jun 2008 03:16:38 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Gbhn051936 for ; Mon, 9 Jun 2008 03:16:37 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593GbLN051934 for perforce@freebsd.org; Mon, 9 Jun 2008 03:16:37 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:16:37 GMT Message-Id: <200806090316.m593GbLN051934@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143162 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:16:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=143162 Change 143162 by jb@freebsd3 on 2008/06/09 03:16:22 Update to suit releng6 types. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/dev/cyclic/amd64/cyclic_machdep.c#2 edit .. //depot/projects/dtrace6/src/sys/cddl/dev/cyclic/i386/cyclic_machdep.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/dev/cyclic/amd64/cyclic_machdep.c#2 (text+ko) ==== @@ -80,16 +80,16 @@ * initialiser as the callback for high speed timer events. */ static void -cyclic_clock(struct trapframe *frame) +cyclic_clock(struct clockframe *frame) { cpu_t *c = &solaris_cpu[curcpu]; if (c->cpu_cyclic != NULL && gethrtime() >= exp_due[curcpu]) { - if (TRAPF_USERMODE(frame)) { + if (CLKF_USERMODE(frame)) { c->cpu_profile_pc = 0; - c->cpu_profile_upc = TRAPF_PC(frame); + c->cpu_profile_upc = CLKF_PC(frame); } else { - c->cpu_profile_pc = TRAPF_PC(frame); + c->cpu_profile_pc = CLKF_PC(frame); c->cpu_profile_upc = 0; } ==== //depot/projects/dtrace6/src/sys/cddl/dev/cyclic/i386/cyclic_machdep.c#2 (text+ko) ==== @@ -80,16 +80,16 @@ * initialiser as the callback for high speed timer events. */ static void -cyclic_clock(struct trapframe *frame) +cyclic_clock(struct clockframe *frame) { cpu_t *c = &solaris_cpu[curcpu]; if (c->cpu_cyclic != NULL && gethrtime() >= exp_due[curcpu]) { - if (TRAPF_USERMODE(frame)) { + if (CLKF_USERMODE(frame)) { c->cpu_profile_pc = 0; - c->cpu_profile_upc = TRAPF_PC(frame); + c->cpu_profile_upc = CLKF_PC(frame); } else { - c->cpu_profile_pc = TRAPF_PC(frame); + c->cpu_profile_pc = CLKF_PC(frame); c->cpu_profile_upc = 0; } From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:17:39 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A2B51065691; Mon, 9 Jun 2008 03:17:39 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4AEF51065679 for ; Mon, 9 Jun 2008 03:17:39 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3747B8FC3C for ; Mon, 9 Jun 2008 03:17:39 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593HdNV051996 for ; Mon, 9 Jun 2008 03:17:39 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593Hdvx051994 for perforce@freebsd.org; Mon, 9 Jun 2008 03:17:39 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:17:39 GMT Message-Id: <200806090317.m593Hdvx051994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143163 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:17:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=143163 Change 143163 by jb@freebsd3 on 2008/06/09 03:17:09 DTrace needs struct stack support routines. Affected files ... .. //depot/projects/dtrace6/src/sys/conf/files.amd64#6 edit .. //depot/projects/dtrace6/src/sys/conf/files.i386#6 edit Differences ... ==== //depot/projects/dtrace6/src/sys/conf/files.amd64#6 (text+ko) ==== @@ -96,7 +96,7 @@ amd64/amd64/cpu_switch.S standard amd64/amd64/db_disasm.c optional ddb amd64/amd64/db_interface.c optional ddb -amd64/amd64/db_trace.c optional ddb +amd64/amd64/db_trace.c optional ddb kdtrace_hooks amd64/amd64/dump_machdep.c standard amd64/amd64/elf_machdep.c standard amd64/amd64/exception.S standard ==== //depot/projects/dtrace6/src/sys/conf/files.i386#6 (text+ko) ==== @@ -295,7 +295,7 @@ i386/i386/busdma_machdep.c standard i386/i386/db_disasm.c optional ddb i386/i386/db_interface.c optional ddb -i386/i386/db_trace.c optional ddb +i386/i386/db_trace.c optional ddb kdtrace_hooks i386/i386/dump_machdep.c standard i386/i386/elan-mmcr.c optional cpu_elan i386/i386/elan-mmcr.c optional cpu_soekris From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:18:40 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B462910656AB; Mon, 9 Jun 2008 03:18:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74F02106567D for ; Mon, 9 Jun 2008 03:18:40 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 610908FC23 for ; Mon, 9 Jun 2008 03:18:40 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Ieeq052099 for ; Mon, 9 Jun 2008 03:18:40 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593IeGL052097 for perforce@freebsd.org; Mon, 9 Jun 2008 03:18:40 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:18:40 GMT Message-Id: <200806090318.m593IeGL052097@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143164 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:18:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=143164 Change 143164 by jb@freebsd3 on 2008/06/09 03:18:34 DTrace needs the syscall names. Add support for Statcially Defined Tracing. CTF support needs zlib. Affected files ... .. //depot/projects/dtrace6/src/sys/conf/files#6 edit Differences ... ==== //depot/projects/dtrace6/src/sys/conf/files#6 (text+ko) ==== @@ -1347,6 +1347,7 @@ kern/kern_prot.c standard kern/kern_resource.c standard kern/kern_rwlock.c standard +kern/kern_sdt.c optional kdtrace_hooks kern/kern_sema.c standard kern/kern_shutdown.c standard kern/kern_sig.c standard @@ -1407,6 +1408,7 @@ kern/sys_process.c standard kern/sys_socket.c standard kern/syscalls.c optional witness +kern/syscalls.c optional kdtrace_hooks kern/sysv_ipc.c standard kern/sysv_msg.c optional sysvmsg kern/sysv_sem.c optional sysvsem @@ -1546,6 +1548,7 @@ net/zlib.c optional crypto net/zlib.c optional geom_uzip net/zlib.c optional netgraph_deflate +net/zlib.c optional ddb_ctf net80211/ieee80211.c optional wlan net80211/ieee80211_acl.c optional wlan_acl net80211/ieee80211_amrr.c optional wlan_amrr @@ -2038,4 +2041,4 @@ xdr/xdr_mbuf.c optional nfslockd xdr/xdr_mem.c optional nfslockd xdr/xdr_reference.c optional nfslockd -xdr/xdr_sizeof.c optional nfslockd+xdr/xdr_sizeof.c optional nfslockd From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:20:43 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2977B10656AB; Mon, 9 Jun 2008 03:20:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DDF451065680 for ; Mon, 9 Jun 2008 03:20:42 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C9FFE8FC1D for ; Mon, 9 Jun 2008 03:20:42 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593KgHT052337 for ; Mon, 9 Jun 2008 03:20:42 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593Kg51052335 for perforce@freebsd.org; Mon, 9 Jun 2008 03:20:42 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:20:42 GMT Message-Id: <200806090320.m593Kg51052335@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143165 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:20:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=143165 Change 143165 by jb@freebsd3 on 2008/06/09 03:20:11 The DTrace syscall provider on releng6 breaks the sysent ABI, so it has to be enabled using the BREAK_SYSENT_ABI kernel option. The rest of DTrace functions without this. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/dev/systrace/systrace.c#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/dev/systrace/systrace.c#2 (text+ko) ==== @@ -131,6 +131,7 @@ * function registered. If so, it is a syscall registered * by a loaded module. */ +#ifdef BREAK_SYSENT_ABI if (sysent->sy_systrace_args_func != NULL) /* * Convert the syscall parameters using the registered @@ -144,6 +145,7 @@ * into thhe array of 64-bit values that DTrace * expects. */ +#endif systrace_args(sysnum, params, uargs, &n_args); /* Process the probe using the converted argments. */ @@ -207,21 +209,25 @@ static void systrace_enable(void *arg, dtrace_id_t id, void *parg) { +#ifdef BREAK_SYSENT_ABI int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg); if (SYSTRACE_ISENTRY((uintptr_t)parg)) sysent[sysnum].sy_entry = id; else sysent[sysnum].sy_return = id; +#endif } static void systrace_disable(void *arg, dtrace_id_t id, void *parg) { +#ifdef BREAK_SYSENT_ABI int sysnum = SYSTRACE_SYSNUM((uintptr_t)parg); sysent[sysnum].sy_entry = 0; sysent[sysnum].sy_return = 0; +#endif } static void @@ -261,6 +267,10 @@ switch (type) { case MOD_LOAD: +#ifndef BREAK_SYSENT_ABI + printf("systrace: The BREAK_SYSENT_ABI kernel option is required to use the DTrace syscall provider!\n"); + error = EOPNOTSUPP; +#endif break; case MOD_UNLOAD: From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:21:44 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 389381065679; Mon, 9 Jun 2008 03:21:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EED561065670 for ; Mon, 9 Jun 2008 03:21:43 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DA9E68FC0A for ; Mon, 9 Jun 2008 03:21:43 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Lhv7052408 for ; Mon, 9 Jun 2008 03:21:43 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593Lh8G052406 for perforce@freebsd.org; Mon, 9 Jun 2008 03:21:43 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:21:43 GMT Message-Id: <200806090321.m593Lh8G052406@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143167 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:21:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=143167 Change 143167 by jb@freebsd3 on 2008/06/09 03:20:52 Update to reflect the releng6 ABI. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/compat/opensolaris/sys/vnode.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/compat/opensolaris/sys/vnode.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.6 2008/03/28 22:16:06 jb Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.6.2.1 2008/04/17 01:23:30 jb Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -170,12 +170,12 @@ td->td_proc->p_fd->fd_cdir = rootvnode; NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, pnamep, td); - error = vn_open_cred(&nd, &filemode, createmode, td->td_ucred, NULL); + error = vn_open_cred(&nd, &filemode, createmode, td->td_ucred, 0); NDFREE(&nd, NDF_ONLY_PNBUF); if (error == 0) { /* We just unlock so we hold a reference. */ VN_HOLD(nd.ni_vp); - VOP_UNLOCK(nd.ni_vp, 0); + VOP_UNLOCK(nd.ni_vp, 0, td); *vpp = nd.ni_vp; } return (error); @@ -213,6 +213,7 @@ static __inline int zfs_vop_fsync(vnode_t *vp, int flag, cred_t *cr) { + struct thread *td = curthread; struct mount *mp; int error, vfslocked; @@ -221,9 +222,9 @@ vfslocked = VFS_LOCK_GIANT(vp->v_mount); if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) goto drop; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); - error = VOP_FSYNC(vp, MNT_WAIT, curthread); - VOP_UNLOCK(vp, 0); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + error = VOP_FSYNC(vp, MNT_WAIT, td); + VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); drop: VFS_UNLOCK_GIANT(vfslocked); From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:22:46 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D49E1065682; Mon, 9 Jun 2008 03:22:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E24B106568F for ; Mon, 9 Jun 2008 03:22:46 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0EF8A8FC26 for ; Mon, 9 Jun 2008 03:22:45 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Mi4q052498 for ; Mon, 9 Jun 2008 03:22:44 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593MiNO052496 for perforce@freebsd.org; Mon, 9 Jun 2008 03:22:44 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:22:44 GMT Message-Id: <200806090322.m593MiNO052496@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143168 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:22:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=143168 Change 143168 by jb@freebsd3 on 2008/06/09 03:21:47 Hmmm. releng6 lock structures seem to be big. Hack around this. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/compat/opensolaris/sys/cpuvar.h#2 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/compat/opensolaris/sys/cpuvar.h#2 (text+ko) ==== @@ -54,7 +54,7 @@ extern solaris_cpu_t solaris_cpu[]; -#define CPU_CACHE_COHERENCE_SIZE 64 +#define CPU_CACHE_COHERENCE_SIZE 128 /* * The cpu_core structure consists of per-CPU state available in any context. From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:24:47 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9203C1065673; Mon, 9 Jun 2008 03:24:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 546B6106566B for ; Mon, 9 Jun 2008 03:24:47 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 40ABD8FC14 for ; Mon, 9 Jun 2008 03:24:47 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593OlRx052632 for ; Mon, 9 Jun 2008 03:24:47 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593Olxd052630 for perforce@freebsd.org; Mon, 9 Jun 2008 03:24:47 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:24:47 GMT Message-Id: <200806090324.m593Olxd052630@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143169 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:24:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=143169 Change 143169 by jb@freebsd3 on 2008/06/09 03:23:53 No destroy_dev_sched() on releng6. More work required on this. Comment out the lock related stuff because that is still work in progress in current. Affected files ... .. //depot/projects/dtrace6/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#3 edit Differences ... ==== //depot/projects/dtrace6/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#3 (text) ==== @@ -121,6 +121,7 @@ #include #include #include +#include #include #include #include "dtrace_cddl.h" @@ -3163,6 +3164,7 @@ uintptr_t rw; } r; #else +#ifdef DOODAD union { struct mtx *mi; uintptr_t mx; @@ -3172,6 +3174,7 @@ uintptr_t sx; } s; #endif +#endif switch (subr) { case DIF_SUBR_RAND: @@ -3274,17 +3277,16 @@ * Ideally, it would be nice if all these shared a common lock * object. */ +#ifdef DOODAD case DIF_SUBR_MUTEX_OWNED: /* XXX - need to use dtrace_canload() and dtrace_loadptr() */ m.mx = tupregs[0].dttk_value; -#ifdef DOODAD if (LO_CLASSINDEX(&(m.mi->lock_object)) < 2) { regs[rd] = !(m.mi->mtx_lock & MTX_UNOWNED); } else { regs[rd] = !(m.mi->mtx_lock & SX_UNLOCKED); } -#endif break; case DIF_SUBR_MUTEX_OWNER: @@ -3337,6 +3339,7 @@ regs[rd] = ((s.si->sx_lock & SX_LOCK_EXCLUSIVE_WAITERS) || !(s.si->sx_lock & SX_LOCK_SHARED)); break; +#endif #endif /* ! defined(sun) */ case DIF_SUBR_BCOPY: { @@ -5594,7 +5597,7 @@ #if defined(sun) debug_enter(c); #else - kdb_enter(KDB_WHY_DTRACE, "breakpoint action"); + kdb_enter("DTrace breakpoint action"); #endif } @@ -15399,8 +15402,10 @@ mutex_exit(&dtrace_lock); mutex_exit(&cpu_lock); +#ifdef DOODAD /* Schedule this cloned device to be destroyed. */ destroy_dev_sched(dev); +#endif return (0); } From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:25:49 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D53E0106567B; Mon, 9 Jun 2008 03:25:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96D691065672 for ; Mon, 9 Jun 2008 03:25:48 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A07E8FC15 for ; Mon, 9 Jun 2008 03:25:48 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Pmv9052736 for ; Mon, 9 Jun 2008 03:25:48 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593PmE1052734 for perforce@freebsd.org; Mon, 9 Jun 2008 03:25:48 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:25:48 GMT Message-Id: <200806090325.m593PmE1052734@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143170 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:25:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=143170 Change 143170 by jb@freebsd3 on 2008/06/09 03:25:34 Add the kernel support for Statically Defined Tracing. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/kern_sdt.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:26:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 09CD41065686; Mon, 9 Jun 2008 03:26:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BFE441065678 for ; Mon, 9 Jun 2008 03:26:49 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 929CF8FC15 for ; Mon, 9 Jun 2008 03:26:49 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Qn7t052831 for ; Mon, 9 Jun 2008 03:26:49 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593QniR052829 for perforce@freebsd.org; Mon, 9 Jun 2008 03:26:49 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:26:49 GMT Message-Id: <200806090326.m593QniR052829@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143171 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:26:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=143171 Change 143171 by jb@freebsd3 on 2008/06/09 03:26:29 Add the generated source file from 'make sysent' which is used by the systrace kernel module, otherwise known as the DTrace syscall provider. Affected files ... .. //depot/projects/dtrace6/src/sys/kern/systrace_args.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:28:52 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1DCF1106567F; Mon, 9 Jun 2008 03:28:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D400D106567C for ; Mon, 9 Jun 2008 03:28:51 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C00678FC14 for ; Mon, 9 Jun 2008 03:28:51 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593Sp5B052961 for ; Mon, 9 Jun 2008 03:28:51 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593SplC052959 for perforce@freebsd.org; Mon, 9 Jun 2008 03:28:51 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:28:51 GMT Message-Id: <200806090328.m593SplC052959@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143172 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:28:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=143172 Change 143172 by jb@freebsd3 on 2008/06/09 03:28:22 Add the DTrace kernel module makefiles. Note that the fbt Makefile requires -O2 demoted to -O on releng6 to avoid gcc optimizing code to use memset() which doesn't exist in the FreeBSD kernel. Affected files ... .. //depot/projects/dtrace6/src/sys/modules/cyclic/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/Makefile.inc#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/dtmalloc/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/dtrace/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/dtrace_test/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/dtraceall/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/dtraceall/dtraceall.c#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/fasttrap/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/fbt/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/fbt/yyy#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/lockstat/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/profile/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/prototype/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/sdt/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/dtrace/systrace/Makefile#1 add .. //depot/projects/dtrace6/src/sys/modules/opensolaris/Makefile#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:49:55 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0912A1065671; Mon, 9 Jun 2008 03:49:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BFB92106566B for ; Mon, 9 Jun 2008 03:49:54 +0000 (UTC) (envelope-from ticso@cicely7.cicely.de) Received: from raven.bwct.de (raven.bwct.de [85.159.14.73]) by mx1.freebsd.org (Postfix) with ESMTP id 29D0E8FC1A for ; Mon, 9 Jun 2008 03:49:53 +0000 (UTC) (envelope-from ticso@cicely7.cicely.de) Received: from cicely5.cicely.de ([10.1.1.7]) by raven.bwct.de (8.13.4/8.13.4) with ESMTP id m593KwvB035215 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 9 Jun 2008 05:20:59 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (cicely7.cicely.de [10.1.1.9]) by cicely5.cicely.de (8.14.2/8.14.2) with ESMTP id m593Ku2s050775 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 9 Jun 2008 05:20:56 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (localhost [127.0.0.1]) by cicely7.cicely.de (8.14.2/8.14.2) with ESMTP id m593Kp3V082655; Mon, 9 Jun 2008 05:20:51 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: (from ticso@localhost) by cicely7.cicely.de (8.14.2/8.14.2/Submit) id m593Korn082654; Mon, 9 Jun 2008 05:20:50 +0200 (CEST) (envelope-from ticso) Date: Mon, 9 Jun 2008 05:20:50 +0200 From: Bernd Walter To: Hans Petter Selasky Message-ID: <20080609032050.GR71712@cicely7.cicely.de> References: <200806081504.m58F4CtW034713@repoman.freebsd.org> <200806082000.15982.hselasky@c2i.net> <200806082313.03865.hselasky@c2i.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200806082313.03865.hselasky@c2i.net> X-Operating-System: FreeBSD cicely7.cicely.de 7.0-STABLE i386 User-Agent: Mutt/1.5.11 X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED=-1.8, BAYES_00=-2.599 autolearn=ham version=3.2.3 X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on cicely12.cicely.de Cc: Perforce Change Reviews Subject: Re: PERFORCE change 143121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ticso@cicely.de List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:49:55 -0000 On Sun, Jun 08, 2008 at 11:13:03PM +0200, Hans Petter Selasky wrote: > Hi, > > It might look like that my "init" executable in the file system is out of > date. The kernel boots fine up to the following point: > > Trying to mount root from ufs:/dev/md0 > warning: no time-of-day clock registered, system time will not be set > accurately > Jun 4 20:32:47 init: login_getclass: unknown class 'daemon' > Fatal kernel mode data abort: 'Alignment Fault 3' > trapframe: 0xc67f7a24 We've seen this at least on RM9200 from time to time - not sure about other arm. Try adding or removing a driver to your kernel and see if it helps. It's some kind of heisenbug, because a small unrelated change and the problem is away, which makes is hard to debug. See arm@ mail archives for more details. IIRC it happened earlier during boot, so this can still be something different after all. Even with an out of date init the kernel shouldn't panic with an alignment fault. -- B.Walter http://www.bwct.de Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm. From owner-p4-projects@FreeBSD.ORG Mon Jun 9 03:51:15 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A9FD710656C0; Mon, 9 Jun 2008 03:51:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B10C1065680 for ; Mon, 9 Jun 2008 03:51:15 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 549B48FC1D for ; Mon, 9 Jun 2008 03:51:15 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m593pFIj054730 for ; Mon, 9 Jun 2008 03:51:15 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m593pE2H054724 for perforce@freebsd.org; Mon, 9 Jun 2008 03:51:14 GMT (envelope-from jb@freebsd.org) Date: Mon, 9 Jun 2008 03:51:14 GMT Message-Id: <200806090351.m593pE2H054724@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 143174 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 03:51:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=143174 Change 143174 by jb@freebsd3 on 2008/06/09 03:50:56 IFC Affected files ... .. //depot/projects/dtrace/doc/el_GR.ISO8859-7/articles/Makefile#7 integrate .. //depot/projects/dtrace/doc/el_GR.ISO8859-7/articles/compiz-fusion/Makefile#1 branch .. //depot/projects/dtrace/doc/el_GR.ISO8859-7/articles/compiz-fusion/article.sgml#1 branch .. //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#81 integrate .. //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#11 integrate .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/faq/book.sgml#21 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/config/chapter.sgml#3 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/install/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/mail/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml#4 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/config/chapter.sgml#5 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml#6 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/install/chapter.sgml#6 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml#6 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/mail/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml#4 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/serialcomms/chapter.sgml#4 integrate .. //depot/projects/dtrace/doc/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml#2 integrate .. //depot/projects/dtrace/doc/ru_RU.KOI8-R/books/handbook/users/chapter.sgml#5 integrate .. //depot/projects/dtrace/doc/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml#5 integrate .. //depot/projects/dtrace/ports/MOVED#95 integrate .. //depot/projects/dtrace/ports/Mk/bsd.emacs.mk#11 integrate .. //depot/projects/dtrace/ports/Mk/bsd.sites.mk#32 integrate .. //depot/projects/dtrace/ports/Tools/portbuild/scripts/straslivy.py#2 integrate .. //depot/projects/dtrace/ports/Tools/scripts/bump_revision.pl#3 integrate .. //depot/projects/dtrace/ports/UPDATING#77 integrate .. //depot/projects/dtrace/src/LOCKS#5 integrate .. //depot/projects/dtrace/src/MAINTAINERS#17 integrate .. //depot/projects/dtrace/src/UPDATING#33 integrate .. //depot/projects/dtrace/src/bin/ln/ln.1#5 integrate .. //depot/projects/dtrace/src/bin/ln/ln.c#5 integrate .. //depot/projects/dtrace/src/bin/sh/alias.c#4 integrate .. //depot/projects/dtrace/src/contrib/cvs/src/classify.c#6 integrate .. //depot/projects/dtrace/src/contrib/ncurses/FREEBSD-vendor#3 integrate .. //depot/projects/dtrace/src/etc/rc.d/Makefile#19 integrate .. //depot/projects/dtrace/src/etc/rc.d/NETWORKING#7 integrate .. //depot/projects/dtrace/src/etc/rc.d/defaultroute#1 branch .. //depot/projects/dtrace/src/etc/rc.d/routing#6 integrate .. //depot/projects/dtrace/src/etc/rc.firewall#9 integrate .. //depot/projects/dtrace/src/games/morse/morse.6#4 integrate .. //depot/projects/dtrace/src/games/morse/morse.c#4 integrate .. //depot/projects/dtrace/src/include/pthread.h#6 integrate .. //depot/projects/dtrace/src/lib/libc/include/namespace.h#7 integrate .. //depot/projects/dtrace/src/lib/libc/include/un-namespace.h#7 integrate .. //depot/projects/dtrace/src/lib/libthr/pthread.map#14 integrate .. //depot/projects/dtrace/src/lib/libthr/thread/thr_clean.c#5 integrate .. //depot/projects/dtrace/src/lib/libthr/thread/thr_private.h#22 integrate .. //depot/projects/dtrace/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#24 integrate .. //depot/projects/dtrace/src/release/ia64/boot_crunch.conf#6 integrate .. //depot/projects/dtrace/src/sbin/fsck_ffs/main.c#9 integrate .. //depot/projects/dtrace/src/sbin/geom/Makefile#6 integrate .. //depot/projects/dtrace/src/sbin/geom/class/label/geom_label.c#7 integrate .. //depot/projects/dtrace/src/sbin/geom/class/part/geom_part.c#5 integrate .. //depot/projects/dtrace/src/sbin/geom/class/part/gpart.8#3 integrate .. //depot/projects/dtrace/src/sbin/geom/core/geom.c#9 integrate .. //depot/projects/dtrace/src/sbin/geom/misc/subr.c#5 integrate .. //depot/projects/dtrace/src/sbin/geom/misc/subr.h#6 integrate .. //depot/projects/dtrace/src/sbin/mount/mount.8#11 integrate .. //depot/projects/dtrace/src/sbin/natd/natd.c#5 integrate .. //depot/projects/dtrace/src/share/man/man4/ddb.4#17 integrate .. //depot/projects/dtrace/src/share/man/man4/ubsa.4#7 integrate .. //depot/projects/dtrace/src/share/man/man9/VOP_LOCK.9#8 integrate .. //depot/projects/dtrace/src/share/syscons/keymaps/colemak.iso15.acc.kbd#2 integrate .. //depot/projects/dtrace/src/sys/arm/conf/GUMSTIX#1 branch .. //depot/projects/dtrace/src/sys/arm/conf/GUMSTIX.hints#1 branch .. //depot/projects/dtrace/src/sys/arm/include/intr.h#6 integrate .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/files.pxa#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/if_smc_smi.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_gpio.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_icu.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_machdep.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_obio.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_smi.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_space.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxa_timer.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxareg.h#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/pxavar.h#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/std.pxa#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/uart_bus_pxa.c#1 branch .. //depot/projects/dtrace/src/sys/arm/xscale/pxa/uart_cpu_pxa.c#1 branch .. //depot/projects/dtrace/src/sys/boot/common/ufsread.c#6 integrate .. //depot/projects/dtrace/src/sys/boot/i386/libi386/biossmap.c#6 integrate .. //depot/projects/dtrace/src/sys/compat/linux/linux_file.c#17 integrate .. //depot/projects/dtrace/src/sys/compat/linux/linux_mib.c#5 integrate .. //depot/projects/dtrace/src/sys/compat/linux/linux_stats.c#13 integrate .. //depot/projects/dtrace/src/sys/compat/linux/linux_util.c#9 integrate .. //depot/projects/dtrace/src/sys/conf/NOTES#58 integrate .. //depot/projects/dtrace/src/sys/conf/files#95 integrate .. //depot/projects/dtrace/src/sys/conf/files.powerpc#20 integrate .. //depot/projects/dtrace/src/sys/conf/newvers.sh#5 integrate .. //depot/projects/dtrace/src/sys/conf/options.arm#13 integrate .. //depot/projects/dtrace/src/sys/contrib/pf/net/pf_ioctl.c#13 integrate .. //depot/projects/dtrace/src/sys/dev/age/if_age.c#2 integrate .. //depot/projects/dtrace/src/sys/dev/ath/if_ath.c#24 integrate .. //depot/projects/dtrace/src/sys/dev/bktr/bktr_i2c.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/bm/if_bm.c#1 branch .. //depot/projects/dtrace/src/sys/dev/bm/if_bmreg.h#1 branch .. //depot/projects/dtrace/src/sys/dev/bm/if_bmvar.h#1 branch .. //depot/projects/dtrace/src/sys/dev/cs/if_cs.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/cs/if_cs_isa.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/cs/if_cs_pccard.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/cs/if_csreg.h#4 integrate .. //depot/projects/dtrace/src/sys/dev/cs/if_csvar.h#5 integrate .. //depot/projects/dtrace/src/sys/dev/dc/if_dc.c#15 integrate .. //depot/projects/dtrace/src/sys/dev/fe/if_fe.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/fe/if_fe_pccard.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/fe/if_fevar.h#4 integrate .. //depot/projects/dtrace/src/sys/dev/ichsmb/ichsmb.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/ichsmb/ichsmb_pci.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/ichsmb/ichsmb_var.h#4 integrate .. //depot/projects/dtrace/src/sys/dev/ie/if_ie.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/ie/if_ie_isa.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/ie/if_ievar.h#5 integrate .. //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndis.c#19 integrate .. //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndisvar.h#9 integrate .. //depot/projects/dtrace/src/sys/dev/iicbus/iicsmb.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/iwi/if_iwi.c#18 integrate .. //depot/projects/dtrace/src/sys/dev/iwn/if_iwn.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/mii/lxtphy.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/mii/miidevs#19 integrate .. //depot/projects/dtrace/src/sys/dev/mii/smcphy.c#1 branch .. //depot/projects/dtrace/src/sys/dev/ral/rt2560.c#16 integrate .. //depot/projects/dtrace/src/sys/dev/ral/rt2661.c#15 integrate .. //depot/projects/dtrace/src/sys/dev/si/si.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/si/si.h#4 integrate .. //depot/projects/dtrace/src/sys/dev/smbus/smb.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/smc/if_smc.c#1 branch .. //depot/projects/dtrace/src/sys/dev/smc/if_smcreg.h#1 branch .. //depot/projects/dtrace/src/sys/dev/smc/if_smcvar.h#1 branch .. //depot/projects/dtrace/src/sys/dev/usb/if_rum.c#10 integrate .. //depot/projects/dtrace/src/sys/dev/usb/if_ural.c#17 integrate .. //depot/projects/dtrace/src/sys/dev/usb/if_zyd.c#13 integrate .. //depot/projects/dtrace/src/sys/dev/usb/ubsa.c#10 integrate .. //depot/projects/dtrace/src/sys/dev/usb/usbdevs#38 integrate .. //depot/projects/dtrace/src/sys/dev/wpi/if_wpi.c#13 integrate .. //depot/projects/dtrace/src/sys/dev/xe/if_xe.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/xe/if_xe_pccard.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/xe/if_xevar.h#4 integrate .. //depot/projects/dtrace/src/sys/fs/devfs/devfs_vnops.c#22 integrate .. //depot/projects/dtrace/src/sys/kern/tty_tty.c#7 integrate .. //depot/projects/dtrace/src/sys/kern/vfs_mount.c#34 integrate .. //depot/projects/dtrace/src/sys/mips/include/pte.h#2 integrate .. //depot/projects/dtrace/src/sys/mips/mips/trap.c#2 integrate .. //depot/projects/dtrace/src/sys/modules/Makefile#48 integrate .. //depot/projects/dtrace/src/sys/modules/bm/Makefile#1 branch .. //depot/projects/dtrace/src/sys/net80211/ieee80211_node.c#13 integrate .. //depot/projects/dtrace/src/sys/net80211/ieee80211_var.h#13 integrate .. //depot/projects/dtrace/src/sys/netinet/ip_carp.c#12 integrate .. //depot/projects/dtrace/src/sys/netinet/tcp_subr.c#23 integrate .. //depot/projects/dtrace/src/sys/netinet/tcp_timer.c#11 integrate .. //depot/projects/dtrace/src/sys/nlm/nlm_prot_impl.c#8 integrate .. //depot/projects/dtrace/src/sys/pci/amdpm.c#7 integrate .. //depot/projects/dtrace/src/sys/pci/amdsmb.c#8 integrate .. //depot/projects/dtrace/src/sys/pci/intpm.c#9 integrate .. //depot/projects/dtrace/src/sys/pci/nfsmb.c#11 integrate .. //depot/projects/dtrace/src/sys/pci/viapm.c#8 integrate .. //depot/projects/dtrace/src/sys/powerpc/aim/trap.c#5 integrate .. //depot/projects/dtrace/src/sys/powerpc/conf/GENERIC#18 integrate .. //depot/projects/dtrace/src/sys/powerpc/conf/NOTES#15 integrate .. //depot/projects/dtrace/src/sys/powerpc/include/dbdma.h#1 branch .. //depot/projects/dtrace/src/sys/powerpc/powermac/dbdma.c#1 branch .. //depot/projects/dtrace/src/sys/powerpc/powermac/dbdmavar.h#1 branch .. //depot/projects/dtrace/src/sys/security/audit/audit.c#17 integrate .. //depot/projects/dtrace/src/sys/sys/ttydefaults.h#4 integrate .. //depot/projects/dtrace/src/sys/vm/vm_page.c#35 integrate .. //depot/projects/dtrace/src/tools/tools/mctest/mctest.1#3 integrate .. //depot/projects/dtrace/src/tools/tools/mctest/mctest.cc#4 integrate .. //depot/projects/dtrace/src/tools/tools/mctest/mctest_run.sh#2 integrate .. //depot/projects/dtrace/src/usr.bin/lex/ccl.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/dfa.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/ecs.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/flex.skl#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/flexdef.h#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/gen.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/initscan.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/lex.1#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/misc.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/nfa.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/parse.y#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/scan.l#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/sym.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/lex/tblcmp.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/rev/rev.c#5 integrate .. //depot/projects/dtrace/src/usr.bin/su/su.c#8 integrate .. //depot/projects/dtrace/src/usr.sbin/config/Makefile#6 integrate .. //depot/projects/dtrace/src/usr.sbin/pkg_install/Makefile#9 integrate .. //depot/projects/dtrace/src/usr.sbin/ppp/physical.c#5 integrate .. //depot/projects/dtrace/src/usr.sbin/rpc.lockd/lockd.c#12 integrate .. //depot/projects/dtrace/src/usr.sbin/setfib/setfib.c#2 integrate .. //depot/projects/dtrace/src/usr.sbin/sicontrol/Makefile#4 integrate .. //depot/projects/dtrace/src/usr.sbin/sicontrol/sicontrol.c#5 integrate .. //depot/projects/dtrace/src/usr.sbin/timed/timed/timed.c#4 integrate .. //depot/projects/dtrace/src/usr.sbin/tzsetup/paths.h#4 delete .. //depot/projects/dtrace/src/usr.sbin/tzsetup/tzsetup.c#4 integrate .. //depot/projects/dtrace/www/en/donations/wantlist.sgml#32 integrate .. //depot/projects/dtrace/www/en/releng/index.sgml#30 integrate .. //depot/projects/dtrace/www/share/sgml/news.xml#50 integrate .. //depot/projects/dtrace/www/share/sgml/templates.events.xsl#5 integrate .. //depot/projects/dtrace/www/share/sgml/usergroups.xml#22 integrate Differences ... ==== //depot/projects/dtrace/doc/el_GR.ISO8859-7/articles/Makefile#7 (text+ko) ==== @@ -1,9 +1,10 @@ -# $FreeBSD: doc/el_GR.ISO8859-7/articles/Makefile,v 1.13 2008/05/29 18:08:01 manolis Exp $ +# $FreeBSD: doc/el_GR.ISO8859-7/articles/Makefile,v 1.14 2008/06/05 08:09:49 manolis Exp $ # # %SOURCE% en_US.ISO8859-1/articles/Makefile # %SRCID% 1.39 SUBDIR = +SUBDIR+= compiz-fusion SUBDIR+= cvs-freebsd SUBDIR+= dialup-firewall SUBDIR+= explaining-bsd ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#81 (text+ko) ==== @@ -1,4 +1,4 @@ - + aaron@FreeBSD.org"> @@ -430,6 +430,8 @@ itojun@itojun.org"> +ivoras@FreeBSD.org"> + iwasaki@FreeBSD.org"> jadawin@FreeBSD.org"> ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#3 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -1329,3 +1329,7 @@ &pgpkey.tabthorpe; + + &a.ivoras; + &pgpkey.ivoras; + ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#3 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -108,6 +108,7 @@ + ==== //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#3 (text+ko) ==== @@ -17,7 +17,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1089 2008/05/31 13:27:16 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1090 2008/06/05 13:37:40 rafan Exp $ 2000 @@ -442,7 +442,7 @@ v408 to v416. ncurses has been updated from - 5.6-20061217 to 5.6-20080209. + 5.6-20061217 to 5.6-20080503. OpenPAM has been updated from the Figwort release to the Hydrangea release. ==== //depot/projects/docproj_hu/www/en/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/Makefile,v 1.145 2008/04/21 01:41:45 murray Exp $ +# $FreeBSD: www/en/Makefile,v 1.146 2008/06/13 08:52:47 remko Exp $ .if exists(Makefile.conf) .include "Makefile.conf" @@ -63,6 +63,7 @@ SUBDIR+= java SUBDIR+= kse SUBDIR+= marketing +SUBDIR+= multimedia SUBDIR+= news SUBDIR+= platforms SUBDIR+= portmgr ==== //depot/projects/docproj_hu/www/en/developers.sgml#3 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.194 2008/05/24 08:37:37 manolis Exp $ +$FreeBSD: www/en/developers.sgml,v 1.195 2008/06/12 22:13:27 ivoras Exp $ --> @@ -217,6 +217,7 @@ + ==== //depot/projects/docproj_hu/www/en/multimedia/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/multimedia/Makefile,v 1.2 2007/05/15 21:53:43 keramida Exp $ +# $FreeBSD: www/en/multimedia/Makefile,v 1.3 2008/06/12 19:02:27 remko Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -10,30 +10,30 @@ .include "Makefile.inc" .endif -INDEXLINK= multimedia.html +#all: build +all: build + cd output && make all DIRPRFX=multimedia/output/ -FXML = multimedia-input.xml -FHTML = \ - multimedia.html.intro \ - multimedia.html.pre \ - multimedia.html.post -FLIST = multimedia.created -FSCRIPT = multimedia.pl +install: + cd output && make install DIRPRFX=multimedia/output/ -.if exists(${FLIST}) -DATA!= cat ${FLIST} -.else -DATA= ${INDEXLINK} -.endif +TEMPLATES= multimedia.sgml.intro \ + multimedia.sgml.post \ + multimedia.sgml.pre \ + multimedia.html.intro \ + multimedia.html.post \ + multimedia.html.pre \ + multimedia-input.xml -all: ${FLIST} - clean: - if test -f ${FLIST} ; then \ - xargs ${RM} < ${FLIST} && ${RM} ${FLIST} ; \ - fi + -${RM} output/* -${FLIST}: ${FSCRIPT} ${FXML} ${FHTML} - perl -Tw ${FSCRIPT} +build: + (test -d output || ${MKDIR} output ) && \ + cd output && \ + ${LN} -fs ../Makefile.output Makefile && \ + ( for f in ${TEMPLATES}; do ${LN} -fs ../$$f $$f; done ) && \ + ${PERL} -Tw ../multimedia.pl && \ + ${RM} -f *.html .include "${WEB_PREFIX}/share/mk/web.site.mk" ==== //depot/projects/docproj_hu/www/en/multimedia/multimedia-input.xml#3 (text+ko) ==== @@ -317,12 +317,12 @@ Certification.

See the following links for more information: +

    -
  • https://register.bsdcertification.org/register/get-a-bsdcg-id -
  • http://reedmedia.net/books/freebsd-basics -
  • http://www.osbr.ca +
  • https://register.bsdcertification.org/register/get-a-bsdcg-id
  • +
  • http://reedmedia.net/books/freebsd-basics
  • +
  • http://www.osbr.ca
-

]]> http://bsdtalk.blogspot.com/2008/01/bsdtalk139-dru-lavigne.html bsdtalk,interview,dru lavigne,the best of freebsd basics @@ -347,17 +347,19 @@ Central Syslog Setting up a central syslog server. +

    -
  • If you are concerned about the security of your logs, use a dedicated machine and lock it down. -
  • Keep clocks in sync. -
  • You may need to change log rotation schedule in /etc/newsyslog.conf. You can rotate based in size and/or time. This can be as much a policy decision as a hardware decision. -
  • On central log host, change syslogd flags to listen to network. Each BSD does this differently, so check the man pages. Also, check out the -n flag for busy environments. -
  • Make sure host firewall allows syslog traffic through. -
  • Be careful to limit syslog traffic to just the trusted network or hosts. FreeBSD man page refers to syslogd as a "remote disk filling service". -
  • For heavy logging environments, it is important to have a dedicated network. A down syslogd server can create a lot of "ARP who-has" broadcasts. -
  • Most network devices such as printers and commercial firewalls support sending to a central syslog server. Take a look at "Snare" for Windows hosts. -
  • To send messages from a Unix host, specify the host name prepended with @ instead of a file for logging in /etc/syslog.conf. For example, change /var/log/xferlog to @loghost.mydomain.biz. You can also copy and edit the line to have it log to both a local file and a remote host. +
  • If you are concerned about the security of your logs, use a dedicated machine and lock it down.
  • +
  • Keep clocks in sync.
  • +
  • You may need to change log rotation schedule in /etc/newsyslog.conf. You can rotate based in size and/or time. This can be as much a policy decision as a hardware decision.
  • +
  • On central log host, change syslogd flags to listen to network. Each BSD does this differently, so check the man pages. Also, check out the -n flag for busy environments.
  • +
  • Make sure host firewall allows syslog traffic through.
  • +
  • Be careful to limit syslog traffic to just the trusted network or hosts. FreeBSD man page refers to syslogd as a "remote disk filling service".
  • +
  • For heavy logging environments, it is important to have a dedicated network. A down syslogd server can create a lot of "ARP who-has" broadcasts.
  • +
  • Most network devices such as printers and commercial firewalls support sending to a central syslog server. Take a look at "Snare" for Windows hosts.
  • +
  • To send messages from a Unix host, specify the host name prepended with @ instead of a file for logging in /etc/syslog.conf. For example, change /var/log/xferlog to @loghost.mydomain.biz. You can also copy and edit the line to have it log to both a local file and a remote host.
]]>
http://bsdtalk.blogspot.com/2008/01/bsdtalk138-central-syslog.html @@ -646,18 +648,20 @@ Why I like the CLI Why I like the CLI: +

    -
  • Uses minimal resources. Less space, less memory, fewer dependencies. -
  • Transparency. GUI hides internals, limits options. -
  • Similar between Unix-like systems. GUI tools seem to change every week. -
  • Remote management. SSH rocks. -
  • Everything is text. Configs, devices, output. CLI is natural complement. -
  • Pipes and scripts. One time is hard, a thousand times is easy. -
  • Only need a few tools. Grep, sed, awk, vi, cron. -
  • Text config files. Easy to version, share, and comment. -
  • Requires reading skills instead of clicking skills. -
  • Much faster when you know what you are doing. +
  • Uses minimal resources. Less space, less memory, fewer dependencies.
  • +
  • Transparency. GUI hides internals, limits options.
  • +
  • Similar between Unix-like systems. GUI tools seem to change every week.
  • +
  • Remote management. SSH rocks.
  • +
  • Everything is text. Configs, devices, output. CLI is natural complement.
  • +
  • Pipes and scripts. One time is hard, a thousand times is easy.
  • +
  • Only need a few tools. Grep, sed, awk, vi, cron.
  • +
  • Text config files. Easy to version, share, and comment.
  • +
  • Requires reading skills instead of clicking skills.
  • +
  • Much faster when you know what you are doing.
]]>
http://bsdtalk.blogspot.com/2007/08/bsdtalk127-why-i-like-cli.html @@ -917,22 +921,22 @@ One Time Passwords -
  • Important when you don't trust the computer you are using, such as a library computer or internet kiosk. -
  • Available by default in Free/Net/Open BSD. -
  • FreeBSD uses OPIE, Net/Open use S/Key. -
  • One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed. -
  • Initial setup should be done directly on the server. -
  • "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD. -
  • Enter a pass phrase that is not your regular account password. -
  • Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246". -
  • Generate a list of the next 10 passwords and write them down, using "opiekey -n 10 497 pc5246" or "skey -n 10 497 pc5246". -
  • When you log in from a remote machine that might have a keystroke logger, you can now use a one time password instead of your regular password. -
  • For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge. -
  • For NetBSD, the system will always present you with the s/key challenge if it is configured for your account, although you can still use your regular password. -
  • FreeBSD by default will force you to use a one time password if it is configured for your account. -
  • If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess. -
  • Instead of carrying a list of passwords around, you can use s/key generators on a portable device that you trust, such as a palm pilot. -
  • For more info, check the man pages. +
  • Important when you don't trust the computer you are using, such as a library computer or internet kiosk.
  • +
  • Available by default in Free/Net/Open BSD.
  • +
  • FreeBSD uses OPIE, Net/Open use S/Key.
  • +
  • One time passwords are based on your pass phrase, a non-repeating sequence number, and a seed.
  • +
  • Initial setup should be done directly on the server.
  • +
  • "skeyinit" for Net/Open, "opiepasswd -c" for FreeBSD.
  • +
  • Enter a pass phrase that is not your regular account password.
  • +
  • Find your current sequence number and seed with "opieinfo" or "skeyinfo", for example: "497 pc5246".
  • +
  • Generate a list of the next 10 passwords and write them down, using "opiekey -n 10 497 pc5246" or "skey -n 10 497 pc5246".
  • +
  • When you log in from a remote machine that might have a keystroke logger, you can now use a one time password instead of your regular password.
  • +
  • For OpenBSD, log in as account:skey, for example "bob:skey", which will cause the system to present the s/key challenge.
  • +
  • For NetBSD, the system will always present you with the s/key challenge if it is configured for your account, although you can still use your regular password.
  • +
  • FreeBSD by default will force you to use a one time password if it is configured for your account.
  • +
  • If you want both OPIE and password authentication, FreeBSD allows you to list trusted networks or hosts in /etc/opieaccess.
  • +
  • Instead of carrying a list of passwords around, you can use s/key generators on a portable device that you trust, such as a palm pilot.
  • +
  • For more info, check the man pages.
  • ]]>
    http://bsdtalk.blogspot.com/2007/06/bsdtalk117-one-time-passwords.html @@ -1279,20 +1283,19 @@ Getting to know X - Getting to know the X Window System.
    + Getting to know the X Window System.
    Make sure you are in a text only mode. You might need to change how the system boots, or boot into single user mode. -

    +

      -
    • "startx" to make sure X is working right. -
    • "X" by itself gives the basic grey screen. -
    • "ctrl" and "alt" and "backspace" keys at the same time will zap X. -
    • "X & xterm -display :0" -
    • "xterm -geometry +300+300" -
    • "twm" or "metacity" +
    • "startx" to make sure X is working right.
    • +
    • "X" by itself gives the basic grey screen.
    • +
    • "ctrl" and "alt" and "backspace" keys at the same time will zap X.
    • +
    • "X & xterm -display :0"
    • +
    • "xterm -geometry +300+300"
    • +
    • "twm" or "metacity"
    -

    ]]>
    http://bsdtalk.blogspot.com/2007/03/bsdtalk104-getting-to-know-x.html bsdtalk,X @@ -3202,7 +3205,7 @@ UKUUG LISA 2006 took place in Durham, UK in March, 2006. On this page, you can find my slides from this conference. -
    +
    OpenBSM is a BSD-licensed implementation of Sun's Basic Security Module (BSM) API and file format, and is the foundation of the TrustedBSD audit @@ -3235,12 +3238,12 @@ spanning the BSD's. On this page, you can find my slides from the FreeBSD developer summit and full conference. -
    +
    Status report on the TrustedBSD Project: introduction and status regarding Audit, plus a TODO list; introduction to the priv(9) work recently merged to 7.x. -
    +
    The FreeBSD Project is one of the oldest and most successful open source operating system projects, seeing wide deployment across the IT industry. From @@ -3332,7 +3335,7 @@ to attend the conference itself, and my talks were presented in absentia by Poul-Henning Kamp and Ed Maste, who have my greatest appreciation! -
    +
    The FreeBSD SMPng Project has spent the past five years redesigning and reimplementing SMP support for the FreeBSD operating system, moving from a @@ -3364,7 +3367,7 @@ BSDCan 2004 took place at the University of Ottawa in Ottawa, Canada. On this page, you can find my slides from the conference. -
    +
    Robert Watson will describe a variety of pieces of work done as part of the TrustedBSD Project, including the TrustedBSD MAC Framework, Audit facilities for @@ -3781,7 +3784,7 @@ as an IPv6 router and tunneling system will also be covered.

    - Bio
    + Bio
    Gene Cronk, CISSP-ISSAP, NSA-IAM is a freelance network security consultant, specializing in *NIX solutions. He has been working with computers for @@ -3862,19 +3865,19 @@ beat the price.

    We plan on covering the following topics: +

      -
    • what it is -
    • how it works -
    • where to get it -
    • how to install it -
    • how to configure it -
    • how to customize it for your environment -
    • where the data is stored -
    • how to write a basic plug-in +
    • what it is
    • +
    • how it works
    • +
    • where to get it
    • +
    • how to install it
    • +
    • how to configure it
    • +
    • how to customize it for your environment
    • +
    • where the data is stored
    • +
    • how to write a basic plug-in
    -

    - About the Speaker
    + About the Speaker
    Marc Spitzer started as a VAX/VMS operator who taught himself some basic scripting in DCL to help me remember how to do procedures that did not come @@ -3941,7 +3944,7 @@ surprisingly useful (and fun)- for developers, sysadmins, and anyone working with BSD systems.

    - About the speaker
    + About the speaker
    Isaac Levy, (ike) is a freelance BSD hadker based in NYC. He runs Diversaform Inc. as an engine to make his hacking feed itself, (and ike). Diversaform @@ -3984,7 +3987,7 @@ of such attacks on servers designed to provide network intensive services such as HTTP or routing.

    - About the speaker
    + About the speaker
    Steven Kreuzer is currently employed by Right Media as a Systems Administrator focusing on building and managing high transaction infrastructures around @@ -4102,7 +4105,7 @@ the global policy. Our goal is a coherent, enterprise-wide response to any network threat.

    - Biography
    + Biography
    Matthew Burnside is a Ph.D. student in the Computer Science department at Columbia University, in New York. He works for Professor Angelos Keromytis in @@ -4188,9 +4191,9 @@ New York City BSD Con 2006: BSD is Dying - A Cautionary Tale of Sex and Greed - BSD is Dying
    - A Cautionary Tale of Sex and Greed
    - Jason Dixon
    + BSD is Dying
    + A Cautionary Tale of Sex and Greed
    + Jason Dixon
    October 28, 2006

    First and foremost, I would like to thank the unique @@ -4333,23 +4336,23 @@ understandable by everyone, (even techs without UNIX knowledge), and the gear is cheap - this saves time and money. -
    +
    In the meantime, the features of your average Linksys or Netgear router often leave MUCH to be desired, (https auth management, for one simple example). -
    +
    Enter m0n0wall and PFSense, 2 BSD based packaged router/firewall solutions that are as solid and full featured as you`d expect from any BSD system- PLUS THEY HAVE HTML WEB INTERFACES FOR MANAGEMENT! -
    +
    m0n0wall and PFSense become an easy sell in any small professional enviornment, any competent tech can manage the network within minutes... At home, in every hackers home network, they free the hacker to have trusted tools available, but are as time-saving as using any Linksys router. -
    +
    m0n0wall and PFSense are both light and clean, designed to run on embedded systems- (Soekris, WRAP), but are monsters when unleashed on even @@ -4358,7 +4361,7 @@ to manage the router for your DSL when you get home? But then doesn`t it bug you to use a chincey Linksys box? -
    +
    Ike has been a member of NYC*BUG since we first launched in January 2004. He is a long-time member of the Lower East Side Mac Unix User Group. He has @@ -4384,7 +4387,7 @@ millions of messages to OKCupid`s subscribers. Topics covered will be system tuning and sendmail hacks used in house to achieve massive throughput. -
    +
    Alfred Perlstein is the CTO of OKcupid.com, the largest free online dating site. He has been a FreeBSD hacker for five years, he`s worked on NFS, @@ -4458,14 +4461,14 @@ Episode 06 of "FreeBSD for all" uploaded - This week we talk about- + This week we talk about +

      -
    • Macromedia plugin -
    • FreeBSD-Linux differences part 2 -
    • John Baldwin Introduction -
    • Podcast anouncement - call for co-hosts! +
    • Macromedia plugin
    • +
    • FreeBSD-Linux differences part 2
    • +
    • John Baldwin Introduction
    • +
    • Podcast anouncement - call for co-hosts!
    -

    ]]> http://freebsdforall.blogspot.com/2006/06/episode-06.html freebsd for all,talk,john baldwin,freebsd vs linux @@ -4497,10 +4500,10 @@ Our Topic: FreeBSD's ACPI implementation: The details. -
    +
    Our Speaker: Nate Lawson, FreeBSD Committer. -
    +
    Our Topic: FreeBSD's ACPI implementation is based on code for ACPI released by Intel. Nate and others wrote the glue code to make this code @@ -4521,12 +4524,12 @@ Our Topic: Network Protocol Development Tools and Techniques for FreeBSD -
    +
    Our Speaker: George Neville-Neil, co-author of the "Design and Implementation of the FreeBSD Operating System" "daemon" book. -
    +
    Our Topic: While computers have gotten faster and more powerful the tools we use to develop network protocols, such @@ -4538,10 +4541,10 @@ developing a library for use in protocol testing. This talk will cover three topics:
      -
    1. Developing and testing kernel code with Virtual Machines -
    2. Finding good tests for networking code +
    3. Developing and testing kernel code with Virtual Machines
    4. +
    5. Finding good tests for networking code
    6. Packet Construction Set (PCS) a new library for - writing protocol tests + writing protocol tests
    ]]>
    bafug,presentation,freebsd,packet construction set,george neville-neil @@ -4960,7 +4963,7 @@ slides - + 1:06:07 Google Video mp4 @@ -5065,13 +5068,13 @@

    ]]>
    google,presentation,freebsd,freebsd project,robert watson 321 Mb 51 minutes @@ -5728,7 +5731,7 @@ category in the FreeBSD ports tree and has become the maintainer of over 20 of the hamradio ports. She also contributed to the FreeBSD + href="http://www.hamsexy.com/wiki/index.php?title=FreeBSD&redirect=no">FreeBSD entry at Hampedia, the Wikipedia for ham operators.

    @@ -6057,7 +6060,7 @@ bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,embedded,rafal jaworowski - + 6 pages 58 Kb PDF file @@ -6075,7 +6078,7 @@ bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,smp,robert watson - + 8 pages 70 Kb PDF file @@ -6093,7 +6096,7 @@ bsdcan,bsdcan2008,devsummit,devsummit2008,freebsd,portmgr,erwin lansing - + 14 pages 146 Kb PDF file @@ -6240,20 +6243,22 @@ PBI installer for PC-BSD desktops.

    The presentation will be divided into two main sections: -
    +
    The Push Button Installer (PBI) Format +

      -
    • The basics of the PBI format -
    • The PBI format construction -
    • Add & Remove scripting support within PBI +
    • The basics of the PBI format
    • +
    • The PBI format construction
    • +
    • Add & Remove scripting support within PBI
    +

    Building PBIs from Ports "Auto-magically" +

      -
    • The PBI build server & standalone software -
    • Module creation & configuration -
    • Converting messy ports into PBIs +
    • The PBI build server & standalone software
    • +
    • Module creation & configuration
    • +
    • Converting messy ports into PBIs
    -

    ]]> bsdcan,bsdcan2008,slides,pc-bsd,ports,pbi,kris moore @@ -6478,7 +6483,7 @@ Beer, prizes, secrets, Works In Progress

    The traditional closing... -
    +
    with some new and interesting twists. Sleep in if you must, but don't miss this session.

    @@ -6637,40 +6642,39 @@ cover the in-kernel debugger DDB and the external debugger kgdb which is used to perform post-mortem analysis on kernel crash dumps. -

    +

    Introduction to Debugging the FreeBSD Kernel

    • Basic crash messages, what a crash looks like
        -
      • typical panic() invocation -
      • page fault example -
      +
    • typical panic() invocation
    • +
    • page fault example
    • +
  • "live" debugging with DDB
      -
    • stack traces -
    • ps -
    • deadlock examples -
    • show lockchain -
    • show sleepchain -
    • Adding new DDB commands -
    +
  • stack traces
  • +
  • ps
  • +
  • deadlock examples
  • +
  • show lockchain
  • +
  • show sleepchain
  • +
  • Adding new DDB commands
  • +
  • KGDB
      -
    • inspecting processes and threads -
    • working with kernel modules -
    • using scripts to extend -
    +
  • inspecting processes and threads
  • +
  • working with kernel modules
  • +
  • using scripts to extend
  • +
  • examining crashdumps using utilities
      -
    • ps, netstat, etc. -
    +
  • ps, netstat, etc.
  • +
  • debugging strategies
      -
    • kernel crashes -
    • system hangs -
    +
  • kernel crashes
  • +
  • system hangs
  • + -

    ]]> bsdcan,bsdcan2008,slides,paper,debugging,freebsd,john baldwin @@ -6715,18 +6719,18 @@ This talk discusses the port of the DTrace facility to FreeBSD and demonstrates examples on a live FreeBSD system. +

      -
    • Introduction to the D language - probes, predicates and actions. -
    • dtrace(8) and libdtrace - the userland side of the DTrace story. -
    • The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel. -
    • DTrace kernel hooks and the problem of code licensed under Sun's CDDL. -
    • What does a DTrace probe actually do? -
    • DTrace safety and how it is implemented. -
    • Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables. -
    • The DTrace test suite. -
    • A brief list of things to do to port the DTrace facility to other BSD-derived operating systems. +
    • Introduction to the D language - probes, predicates and actions.
    • +
    • dtrace(8) and libdtrace - the userland side of the DTrace story.
    • +
    • The DTrace kernel module, it's ioctl interface to userland and the provider infrastructure in the kernel.
    • +
    • DTrace kernel hooks and the problem of code licensed under Sun's CDDL.
    • +
    • What does a DTrace probe actually do?
    • +
    • DTrace safety and how it is implemented.
    • +
    • Build system changes to add CTF (Compact C Type Format) data to objects, shared libraries and executables.
    • +
    • The DTrace test suite.
    • +
    • A brief list of things to do to port the DTrace facility to other BSD-derived operating systems.
    -

    ]]> bsdcan,bsdcan2008,slides,dtrace,freebsd,john birrell @@ -6889,12 +6893,12 @@ to the user. Then we will shift gears and discuss the extended socket API that is available to SCTP users and will cover such items as: +

      -
    • The two socket programming models -
    • Extended system calls that support the SCTP feature set. -
    • What model may fit you best +
    • The two socket programming models
    • +
    • Extended system calls that support the SCTP feature set.
    • +
    • What model may fit you best
    -

    ]]> bsdcan,bsdcan2008,abstract,freebsd,sctp,randall stewart @@ -6957,7 +6961,7 @@ Opening session Welcome to BSDCan 2008 -
    +
    Traditional greetings ]]>
    bsdcan,bsdcan2008,slides,dan langille @@ -6976,8 +6980,8 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ - Kirk McKusick - Code Reading of Locally-Connected Sockets
    + The 2007 BSDCan conference
    + Kirk McKusick - Code Reading of Locally-Connected Sockets
    ]]>
    bsdcan,bsdcan2007,talks,kirk mckusick @@ -6995,8 +6999,8 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ - Erwin Lansing - The state of the FreeBSD Ports Tree
    + The 2007 BSDCan conference
    + Erwin Lansing - The state of the FreeBSD Ports Tree
    ]]>
    bsdcan,bsdcan2007,talks,erwin lansing,ports @@ -7032,8 +7036,8 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ - Kris Kennaway - Scalability Update 2007
    + The 2007 BSDCan conference
    + Kris Kennaway - Scalability Update 2007
    Progress on FreeBSD SMP performance and scalablity since BSDCan Dev Summit 2006 ]]>
    @@ -7053,7 +7057,7 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ + The 2007 BSDCan conference
    Qing Li - Routing, ARP and ND6 ]]>
    bsdcan,bsdcan2007,talks,qing li,routing arp and nd6 @@ -7072,7 +7076,7 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ + The 2007 BSDCan conference
    Marko Zec explains the vimage architecture ]]>
    bsdcan,bsdcan2007,talks,marko zec,vimage @@ -7091,7 +7095,7 @@ BSDCan-2007 - Videos http://people.freebsd.org/~julian/BSDCan-2007/ + The 2007 BSDCan conference
    Max Laier - PFIL, firewalls and locking ]]>
    bsdcan,bsdcan2007,talks,max laier,ipf @@ -7202,7 +7206,7 @@ + by Colin Percival (cperciva@FreeBSD.org)
    (Note: use ^L to get back in non-fullscreen mode) ]]>
    bsdcan,bsdcan2007,pdf,portsnap,freebsd,colin percival ==== //depot/projects/docproj_hu/www/en/multimedia/multimedia.pl#3 (text+ko) ==== @@ -2,13 +2,14 @@ # # $Id$ -# $FreeBSD: www/en/multimedia/multimedia.pl,v 1.2 2008/05/30 15:22:01 remko Exp $ +# $FreeBSD: www/en/multimedia/multimedia.pl,v 1.3 2008/06/12 19:02:27 remko Exp $ # use strict; use XML::Parser; use Data::Dumper; use POSIX; +use IO::File; my @months = ( "", "January", "February", "March", @@ -17,7 +18,9 @@ "November", "December" ); -my @createdfiles = (); +my @createdhtml = (); +my @createdsgml = (); +my @createdxml = (); my @tree = (); my @values = (); @@ -28,6 +31,7 @@ my %sources; my $sid = ""; my %tags; +my $tag = ""; sub addtags { my $tags = shift; @@ -78,12 +82,23 @@ && $treeindex == 5) { $items[$ci]{fc}++; } + + if ($treeindex == 3 && + $element eq "tags") { + $tag = ""; + } } sub xml_end { my $expat = shift; my $element = shift; + if ($treeindex == 3 && + $element eq "tags") { + @{$items[$ci]{tags}} = split(/,/, $tag); + addtags($tag); + } + $values[$treeindex] = (); $treeindex--; } @@ -122,8 +137,7 @@ return; } if ($tree[3] eq "tags") { - @{$items[$ci]{tags}} = split(/,/, $value); - addtags($value); + $tag .= $value; return; } @@ -240,92 +254,110 @@ # HTML overview output # sub print_htmlitem { + my $fhandle = shift; my $item = shift; my %item = %{$item}; my $source = shift; my %source = %{$source}; - print FOUT "
  • "; + print $fhandle "

  • "; if (defined $item{overview}) { - print FOUT "$item{title}\n"; + print $fhandle "$item{title}\n"; } else { my %media = %{$item{files}{0}}; - print FOUT "$item{title}\n"; + print $fhandle "$item{title}\n"; if (defined $media{size} || defined $media{length}) { my $s = ""; - print FOUT "("; + print $fhandle "("; if (defined $media{size}) { - print FOUT "$media{size}"; + print $fhandle "$media{size}"; $s = ", "; } if (defined $media{length}) { - print FOUT "$s$media{length}"; + print $fhandle "$s$media{length}"; $s = ", "; } - print FOUT ")"; + print $fhandle ")"; } } - print FOUT "
    Source: ", + print $fhandle "
    Source:
    ", $source{name}, "
    \n"; - print FOUT "Added: ", + print $fhandle "Added: ", substr($item{added}, 6, 2), " ", $months[substr($item{added}, 4, 2)], " ", substr($item{added}, 0, 4), "
    \n"; - print FOUT "Tags: "; + print $fhandle "Tags: "; { my $first = 1; foreach my $t (@{$item{tags}}) { - print FOUT ", " if (!$first); + print $fhandle ", " if (!$first); # join(", ", @{$item{$t}}), "
    \n"; my $th = $t; $th =~ s/ /_/g; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 14 18:07:46 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 576121065686; Sat, 14 Jun 2008 18:07:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19CA11065684 for ; Sat, 14 Jun 2008 18:07:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 092588FC16 for ; Sat, 14 Jun 2008 18:07:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EI7jUL046173 for ; Sat, 14 Jun 2008 18:07:45 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EI7jlG046171 for perforce@freebsd.org; Sat, 14 Jun 2008 18:07:45 GMT (envelope-from gabor@freebsd.org) Date: Sat, 14 Jun 2008 18:07:45 GMT Message-Id: <200806141807.m5EI7jlG046171@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143452 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 18:07:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=143452 Change 143452 by gabor@gabor_server on 2008/06/14 18:06:45 - Revise some translation and add some more translated paragraphs Affected files ... .. //depot/projects/docproj_es/src/release/doc/es_ES.ISO8859-1/readme/article.sgml#6 edit Differences ... ==== //depot/projects/docproj_es/src/release/doc/es_ES.ISO8859-1/readme/article.sgml#6 (text+ko) ==== @@ -13,7 +13,7 @@ &os; &release.current; LEEME - The &os; Project + El Proyecto &os; $FreeBSD$ @@ -98,14 +98,15 @@ La &release.type; es primeramente para los que quieran - beneficiarse de las funciones nuevas cuanto antes o los que - quieran echar un mano al proceso del desarrollo de &os;. Aunque - el equipo del desarrollo de &os; invierte todos sus esfuerzos - para hacer cada &release.type; funcionar como se supone, - &release.branch; es primeramente una versión en curso. + El tipo &release.type; de releases se saca para los que + quieren beneficiarse de la nueva tecnología disponible + en esta versión o para los que quieren participar en el + desarrollo de &os;. Aunque el equipo del desarrollo de &os; + hace todo lo posible para asegurar que cada release &release.type; + funcione somo se supone, &release.branch; es primeramente una + versión en curso. - Los requisitos de usar esta &release.type; son un buen nivel + Los requisitos de usar esta &release.type; son nivel superior de conocimientos técnicos con &os; y una comprensión del proceso de del desarrollo de &os; &release.branch; (como se ha aclarado en la lista &a.current;). @@ -121,32 +122,32 @@ This &release.type; is aimed primarily at early adopters - and various other users who want to get involved with the - ongoing development of &os;. While the &os; development team - tries its best to ensure that each &release.type; works as - advertised, &release.branch; is very much a - work-in-progress. + El tipo &release.type; de releases se saca para los que + quieren beneficiarse de la nueva tecnología disponible + en esta versión o para los que quieren participar en el + desarrollo de &os;. Aunque el equipo del desarrollo de &os; + hace todo lo posible para asegurar que cada release &release.type; + funcione somo se supone, &release.branch; es primeramente una + versión en curso. - The basic requirements for using this &release.type; are - technical proficiency with &os; and an understanding of the - ongoing development process of &os; &release.branch; (as - discussed on the &a.current;). + Los requisitos de usar esta &release.type; son nivel superior + de conocimientos técnicos con &os; y una comprensión + del proceso de del desarrollo de &os; &release.branch; + (como se ha aclarado en la lista &a.current;). - For those more interested in doing business with &os; than - in experimenting with new &os; technology, formal releases - (such as &release.prev.stable;) are frequently more appropriate. - Releases undergo a period of testing and quality assurance - checking to ensure high reliability and dependability. - + Para los que estén más interesados en hacer + comercio con &os; que experimentar con las nuevas tecnologías + en &os;, las releases oficiales (como p.ej. &release.prev.stable;) + son más adecuadas. Cada release pasa un proceso de + prueba y aseguración de calidad para asegurar el alta + fiabilidad. ]]> This &release.type; of &os; is suitable for all users. It - has undergone a period of testing and quality assurance - checking to ensure the highest reliability and - dependability. + Este tipo &release.type; de &os; es adecuado para cada usuario. + Ha pasado un proceso debprueba y aseguración de calidad para + asegurar el alta fiabilidad. ]]> @@ -154,71 +155,73 @@ - Obtaining &os; + Conseguir &os; - &os; may be obtained in a variety of ways. This section - focuses on those ways that are primarily useful for obtaining a - complete &os; distribution, rather than updating an existing - installation. + &os; se puede conseguir de varios modos. Esta sección se + enfoca en los métodos que son primeramente para conseguir la + distribución completa de &os; en vez de actualizar una + instalación existente. - CDROM and DVD + CDROM y DVD - &os; -RELEASE distributions may be ordered on CDROM or DVD - from several publishers. This is frequently the most - convenient way to obtain &os; for new installations, as it - provides a convenient way to quickly reinstall the system if - necessary. Some distributions include some of the optional, - precompiled packages from the &os; Ports - Collection, or other extra material. + Distribuciones &os; -RELEASE se pueden pedir en CDROM o DVD + de varios distribuidores. Frecuentemente, ésta es la manera + más cómoda de conseguir &os; para nuevas instalaciones, + porque ofrece un método rápido de reinstalar el sisteme + si es necesario. Algunas distribuciones incluyen + packages precompilados de Ports Collection + de &os; o material extra. - A list of the CDROM and DVD publishers known to the - project are listed in the Obtaining - &os; appendix to the Handbook. + Una lista de los distribuidores de discos CDROM y DVD se + encuentra en el apendice Conseguir + &os; del Handbook. FTP - You can use FTP to retrieve &os; and any or all of its - optional packages from , which is the official - &os; release site, or any of its - mirrors. + FTP se puede usar para conseguir &os; y todos sus paquetes + opcionales desde , que es el sitio oficial de + las releases de &os;, o desde cualquiera de sus sitios + espejos. - Lists of locations that mirror &os; can be found in the - FTP - Sites section of the Handbook, or on the Web pages. - Finding a close (in networking terms) mirror from which to - download the distribution is highly recommended. + Listas de las locaciones que espejan &os; se encuentra en la + sección Sitios FTP + del Handbook, o en el sitio web . + Encontrar un sitio cercano (en el punto de vista de la red) + para descargar la distribución está + bastante recomendado. - Additional mirror sites are always welcome. Contact - freebsd-admin@FreeBSD.org for more details on - becoming an official mirror site. You can also find useful - information for mirror sites at the Mirroring - &os; article. + Adicionales sitios espejos siempre están bienvenidos. + Póngase en contacto con freebsd-admin@FreeBSD.org + para conseguir más detalles sobre crear un oficial sitio + espejo. También encontrará informaciones útiles + en el artículo Espejar &os;. - Mirrors generally contain the ISO images generally used to - create a CDROM of a &os; release. They usually also contain - floppy disk images (for applicable platforms), as well as the - files necessary to do an installation over the network. - Finally mirrors sites usually contain a set of packages for - the most current release. + Espejos normalmente tienen las imágenes ISO que se + usan para crear un CDROM de una release de &os;. Ellos generalmente + también tienen imágenes de discos floppy (para + plataformas usables) y los ficheros necesarios para realizar + una instalación en línea. Aparte de esto, sitios + espejos tendrán una rama de packages + para las últimas releases. - Contacting the &os; Project + Contactar el Proyecto &os; - Email and Mailing Lists + Email y listas de distribución - For any questions or general technical support issues, - please send mail to the &a.questions;. + En case de cuestiones o problemas técnicos generales, + por favor envíe un correo a &a.questions;. If you're tracking the &release.branch; development efforts, you must join the &a.current;, in order to From owner-p4-projects@FreeBSD.ORG Sat Jun 14 18:08:48 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D4FDF1065672; Sat, 14 Jun 2008 18:08:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95DC9106566B for ; Sat, 14 Jun 2008 18:08:47 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8481A8FC1C for ; Sat, 14 Jun 2008 18:08:47 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EI8lpZ046240 for ; Sat, 14 Jun 2008 18:08:47 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EI8lvw046238 for perforce@freebsd.org; Sat, 14 Jun 2008 18:08:47 GMT (envelope-from gabor@freebsd.org) Date: Sat, 14 Jun 2008 18:08:47 GMT Message-Id: <200806141808.m5EI8lvw046238@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143453 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 18:08:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=143453 Change 143453 by gabor@gabor_server on 2008/06/14 18:07:48 IFC Affected files ... .. //depot/projects/docproj_es/doc/en_US.ISO8859-1/share/sgml/authors.ent#2 integrate .. //depot/projects/docproj_es/doc/en_US.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#2 integrate .. //depot/projects/docproj_es/doc/en_US.ISO8859-1/share/sgml/mailing-lists.ent#2 integrate .. //depot/projects/docproj_es/doc/share/pgpkeys/ed.key#1 branch .. //depot/projects/docproj_es/doc/share/pgpkeys/ivoras.key#1 branch .. //depot/projects/docproj_es/doc/share/pgpkeys/manolis.key#1 branch .. //depot/projects/docproj_es/doc/share/pgpkeys/pgpkeys-developers.sgml#2 integrate .. //depot/projects/docproj_es/doc/share/pgpkeys/pgpkeys.ent#2 integrate .. //depot/projects/docproj_es/doc/share/pgpkeys/stas.key#2 integrate .. //depot/projects/docproj_es/doc/share/sgml/freebsd.dsl#2 integrate .. //depot/projects/docproj_es/doc/share/sgml/man-refs.ent#2 integrate .. //depot/projects/docproj_es/src/release/doc/en_US.ISO8859-1/readme/article.sgml#2 integrate .. //depot/projects/docproj_es/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#2 integrate .. //depot/projects/docproj_es/src/release/doc/share/sgml/release.ent#2 integrate .. //depot/projects/docproj_es/www/en/Makefile#2 integrate .. //depot/projects/docproj_es/www/en/developers.sgml#2 integrate .. //depot/projects/docproj_es/www/en/docproj/translations.sgml#4 integrate .. //depot/projects/docproj_es/www/en/docs/books.sgml#3 integrate .. //depot/projects/docproj_es/www/en/donations/wantlist.sgml#2 integrate .. //depot/projects/docproj_es/www/en/gifs/Makefile#2 integrate .. //depot/projects/docproj_es/www/en/gifs/apachepower.gif#2 delete .. //depot/projects/docproj_es/www/en/gifs/light_button.png#1 branch .. //depot/projects/docproj_es/www/en/gnome/index.xsl#2 integrate .. //depot/projects/docproj_es/www/en/internal/about.sgml#2 integrate .. //depot/projects/docproj_es/www/en/multimedia/Makefile#2 integrate .. //depot/projects/docproj_es/www/en/multimedia/Makefile.inc#1 branch .. //depot/projects/docproj_es/www/en/multimedia/Makefile.output#1 branch .. //depot/projects/docproj_es/www/en/multimedia/multimedia-input.xml#2 integrate .. //depot/projects/docproj_es/www/en/multimedia/multimedia.pl#2 integrate .. //depot/projects/docproj_es/www/en/multimedia/multimedia.sgml.intro#1 branch .. //depot/projects/docproj_es/www/en/multimedia/multimedia.sgml.post#1 branch .. //depot/projects/docproj_es/www/en/multimedia/multimedia.sgml.pre#1 branch .. //depot/projects/docproj_es/www/en/news/news.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/alpha.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/amd64.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/amd64/motherboards.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/arm.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/mips.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/pc98.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/ppc.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/sparc.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/sun4v.sgml#2 integrate .. //depot/projects/docproj_es/www/en/platforms/xbox.sgml#2 integrate .. //depot/projects/docproj_es/www/en/projects/ideas/ideas.xml#3 integrate .. //depot/projects/docproj_es/www/en/releng/index.sgml#2 integrate .. //depot/projects/docproj_es/www/en/security/security.sgml#2 integrate .. //depot/projects/docproj_es/www/share/sgml/commercial.consult.xml#2 integrate .. //depot/projects/docproj_es/www/share/sgml/commercial.isp.xml#2 integrate .. //depot/projects/docproj_es/www/share/sgml/events.xml#3 integrate .. //depot/projects/docproj_es/www/share/sgml/news.xml#3 integrate .. //depot/projects/docproj_es/www/share/sgml/templates.events.xsl#2 integrate .. //depot/projects/docproj_es/www/share/sgml/usergroups.xml#3 integrate Differences ... ==== //depot/projects/docproj_es/doc/en_US.ISO8859-1/share/sgml/authors.ent#2 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.445 2008/04/22 15:26:14 pgj Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.449 2008/06/12 22:13:27 ivoras Exp $ --> aaron@FreeBSD.org"> @@ -292,6 +292,8 @@ dwmalone@FreeBSD.org"> +ed@FreeBSD.org"> + edwin@FreeBSD.org"> ehaupt@FreeBSD.org"> @@ -428,6 +430,8 @@ itojun@itojun.org"> +ivoras@FreeBSD.org"> + iwasaki@FreeBSD.org"> jadawin@FreeBSD.org"> @@ -624,6 +628,8 @@ maho@FreeBSD.org"> +manolis@FreeBSD.org"> + marcel@FreeBSD.org"> marck@FreeBSD.org"> ==== //depot/projects/docproj_es/doc/en_US.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#2 (text+ko) ==== @@ -1,5 +1,5 @@ @@ -349,6 +349,10 @@ FreeBSD realtime extensions mailing list"> freebsd-realtime"> + +FreeBSD Ruby mailing list"> +freebsd-ruby"> + FreeBSD SCSI subsystem mailing list"> freebsd-scsi"> ==== //depot/projects/docproj_es/doc/share/pgpkeys/pgpkeys-developers.sgml#2 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -34,11 +34,21 @@ &pgpkey.mat; + + &a.araujo; + &pgpkey.araujo; + + &a.asami; &pgpkey.asami; + + &a.jadawin; + &pgpkey.jadawin; + + &a.timur; &pgpkey.timur; @@ -374,11 +384,21 @@ &pgpkey.gioria; + + &a.daichi; + &pgpkey.daichi; + + &a.mnag; &pgpkey.mnag; + + &a.grehan; + &pgpkey.grehan; + + &a.jmg; &pgpkey.jmg; @@ -434,6 +454,11 @@ &pgpkey.mich; + + &a.lwhsu; + &pgpkey.lwhsu; + + &a.foxfair; &pgpkey.foxfair; @@ -494,6 +519,11 @@ &pgpkey.fjoe; + + &a.manolis; + &pgpkey.manolis; + + &a.jkim; &pgpkey.jkim; @@ -564,6 +594,11 @@ &pgpkey.erwin; + + &a.laszlof; + &pgpkey.laszlof; + + &a.lawrance; &pgpkey.lawrance; @@ -644,6 +679,11 @@ &pgpkey.arved; + + &a.dryice; + &pgpkey.dryice; + + &a.nemoliu; &pgpkey.nemoliu; @@ -704,6 +744,11 @@ &pgpkey.matusita; + + &a.mm; + &pgpkey.mm; + + &a.tmclaugh; &pgpkey.tmclaugh; @@ -764,6 +809,11 @@ &pgpkey.max; + + &a.maho; + &pgpkey.maho; + + &a.yoichi; &pgpkey.yoichi; @@ -789,6 +839,11 @@ &pgpkey.anders; + + &a.lofi; + &pgpkey.lofi; + + &a.obrien; &pgpkey.obrien; @@ -854,6 +909,11 @@ &pgpkey.krion; + + &a.sepotvin; + &pgpkey.sepotvin; + + &a.markp; &pgpkey.markp; @@ -944,6 +1004,11 @@ &pgpkey.wosch; + + &a.ed; + &pgpkey.ed; + + &a.das; &pgpkey.das; @@ -989,11 +1054,21 @@ &pgpkey.nork; + + &a.syrinx; + &pgpkey.syrinx; + + &a.vanilla; &pgpkey.vanilla; + + &a.bms; + &pgpkey.bms; + + &a.demon; &pgpkey.demon; @@ -1254,3 +1329,7 @@ &pgpkey.tabthorpe; + + &a.ivoras; + &pgpkey.ivoras; + ==== //depot/projects/docproj_es/doc/share/pgpkeys/pgpkeys.ent#2 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -75,6 +75,7 @@ + @@ -107,6 +108,7 @@ + @@ -158,6 +160,7 @@ + ==== //depot/projects/docproj_es/doc/share/pgpkeys/stas.key#2 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -7,6 +7,8 @@ Key fingerprint = F21E D6CC 5626 9609 6CE2 A385 2BF5 5993 EB26 9581 uid Stanislav Sedov uid Stanislav Sedov +uid Stanislav Sedov (Corporate email) +uid Stanislav Sedov sub 1024g/B47898B1 2006-05-20 [expires: 2011-05-19] ]]> ==== //depot/projects/docproj_es/doc/share/sgml/freebsd.dsl#2 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -211,12 +211,12 @@ (u (string-append "http://www.FreeBSD.org/cgi/man.cgi?query=" (data r) "&" "amp;" "sektion=" (data m)))) (case v - (("current") (string-append u "&" "amp;" "manpath=FreeBSD+7-current")) + (("current") (string-append u "&" "amp;" "manpath=FreeBSD+8-current")) (("xfree86") (string-append u "&" "amp;" "manpath=XFree86+4.5.0")) (("xorg") (string-append u "&" "amp;" "manpath=X11R7.2")) (("netbsd") (string-append u "&" "amp;" "manpath=NetBSD+3.0")) (("openbsd") (string-append u "&" "amp;" "manpath=OpenBSD+4.1")) - (("ports") (string-append u "&" "amp;" "manpath=FreeBSD+6.2-RELEASE+and+Ports")) + (("ports") (string-append u "&" "amp;" "manpath=FreeBSD+7.0-RELEASE+and+Ports")) (else u)))) (element application ($bold-seq$)) ==== //depot/projects/docproj_es/doc/share/sgml/man-refs.ent#2 (text+ko) ==== @@ -20,7 +20,7 @@ lexicographical order by the entity (i.e., the dots used in place of special characters should not be expanded when comparing). - $FreeBSD: doc/share/sgml/man-refs.ent,v 1.461 2008/04/20 18:15:46 hrs Exp $ + $FreeBSD: doc/share/sgml/man-refs.ent,v 1.462 2008/05/31 13:14:38 hrs Exp $ --> @@ -3437,6 +3437,7 @@ + ==== //depot/projects/docproj_es/src/release/doc/en_US.ISO8859-1/readme/article.sgml#2 (text+ko) ==== @@ -12,7 +12,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/readme/article.sgml,v 1.40 2007/08/18 17:11:14 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/readme/article.sgml,v 1.41 2008/05/31 13:45:35 hrs Exp $ 2000 @@ -23,6 +23,7 @@ 2005 2006 2007 + 2008 The &os; Documentation Project @@ -58,8 +59,8 @@ Intel Itanium Processor based computers (&arch.ia64;), NEC PC-9801/9821 series PCs and compatibles (&arch.pc98;), and &ultrasparc; machines (&arch.sparc64;). Versions - for the &powerpc; (&arch.powerpc;), and &mips; (mips) - architectures are currently under + for the &arm; (&arch.arm;), &mips; (&arch.mips;), and + &powerpc; (&arch.powerpc;) architectures are currently under development as well. &os; works with a wide variety of peripherals and configurations and can be used for everything from software development to games to Internet Service ==== //depot/projects/docproj_es/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#2 (text+ko) ==== @@ -17,7 +17,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1088 2008/04/20 18:17:33 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1090 2008/06/05 13:37:40 rafan Exp $ 2000 @@ -208,6 +208,8 @@ The &man.cmx.4; driver, a driver for Omnikey CardMan 4040 PCMCIA smartcard readers, has been added. + The &man.syscons.4; driver now supports Colemak keyboard layout. + The &man.uslcom.4; driver, a driver for Silicon Laboratories CP2101/CP2102-based USB serial adapters, has been imported from OpenBSD. @@ -228,6 +230,10 @@ client/desktop adapters. A new igb driver will support new server adapters. + The &man.jme.4; driver has been added to provide support + for PCIe network adapters based on JMicron JMC250 Gigabit + Ethernet and JMC260 Fast Ethernet controllers. + The &man.malo.4; driver has been added to provide support for Marvell Libertas 88W8335 based PCI network adapters. @@ -263,6 +269,10 @@ the net.bpf.zerocopy_enable sysctl variable to 1. + ISDN4BSD(I4B), netatm, and all + related subsystems have been removed due to lack of + multi-processor support. + A bug in TCP options padding, where the wrong padding bytes were used, has been fixed. @@ -320,6 +330,11 @@ supports a flag, which is equivalent to specifying the flags. + BSD-licensed version of &man.cpio.1; based on + libarchive, has replaced the GNU cpio. + Note that the GNU cpio is still installed as + gcpio. + The &man.env.1; program now supports which will completely unset the given variable @@ -332,6 +347,10 @@ of primaries that were present in GNU find but not &os; &man.find.1;. + &man.jexec.8; now supports option to specify the + jail where the command will be executed. + &man.kgdb.1; now supports a new add-kld command to make it easier to debug crash dumps with kernel modules. @@ -343,6 +362,11 @@ &man.nc.1; now supports a switch to disable the use of TCP options. + The &man.ping6.8; utility now returns 2 + when the packet transmission was successful but no responses + were received (this is the same behavior as &man.ping.8;). + It returned a non-zero value before this change. + The &man.procstat.1; utility has been added to display detailed information about processes. @@ -357,6 +381,17 @@ flag to enable &man.compress.1;-style compression/decompression. + The &man.tar.1; utility now supports a + flag to ignore user/group names + on create and extract. + + The &man.tar.1; utility now supports an + flag to sparsify files on extraction. + + The &man.tar.1; utility now supports a + flag to substitute filenames based on the specified regular + expression. + The &man.tcgetsid.3; library function has been added to return the process group ID for the session leader for the controlling terminal. It is defined in IEEE Std 1003.1-2001 @@ -407,7 +442,7 @@ v408 to v416. ncurses has been updated from - 5.6-20061217 to 5.6-20080209. + 5.6-20061217 to 5.6-20080503. OpenPAM has been updated from the Figwort release to the Hydrangea release. @@ -427,6 +462,13 @@ Ports/Packages Collection Infrastructure + The &man.pkg.create.1; utility now supports + . When this option is specified and a + package tarball exists, it will not be overwritten. This is + useful when multiple packages are saved with several consecutive + runs of &man.pkg.create.1; with the + options. + The pkg_sign and pkg_check utilities for cryptographically signing &os; packages have been removed. They were only useful for packages compressed using &man.gzip.1;; however ==== //depot/projects/docproj_es/src/release/doc/share/sgml/release.ent#2 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -54,6 +54,7 @@ + ==== //depot/projects/docproj_es/www/en/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/Makefile,v 1.145 2008/04/21 01:41:45 murray Exp $ +# $FreeBSD: www/en/Makefile,v 1.146 2008/06/13 08:52:47 remko Exp $ .if exists(Makefile.conf) .include "Makefile.conf" @@ -63,6 +63,7 @@ SUBDIR+= java SUBDIR+= kse SUBDIR+= marketing +SUBDIR+= multimedia SUBDIR+= news SUBDIR+= platforms SUBDIR+= portmgr ==== //depot/projects/docproj_es/www/en/developers.sgml#2 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.192 2008/04/22 15:29:45 pgj Exp $ +$FreeBSD: www/en/developers.sgml,v 1.195 2008/06/12 22:13:27 ivoras Exp $ --> @@ -148,6 +148,7 @@ + @@ -216,6 +217,7 @@ + @@ -314,6 +316,7 @@ + ==== //depot/projects/docproj_es/www/en/docproj/translations.sgml#4 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -165,22 +165,13 @@

    The FreeBSD Dutch Documentation Project

    E-Mail: remko@FreeBSD.org
    -
    Mailing lists available
    -
    Send an email to majordomo@majordomo.elvandar.org - "subscribe freebsd-doc-nl" in the body of the - message for subscribing to the FreeBSD-doc-nl discussions - mailing list in Dutch.
    -
    Send an email to majordomo@majordomo.elvandar.org - "subscribe freebsd-doc-nl-cvs" in the body of the - message for subscribing to the FreeBSD-doc-nl-cvs CVS mailing - list.
    Released documents
    -
    Handbook (80% complete)
    -
    Work in progress
    +
    Handbook (85% complete)
    +
    Work in progress (gets periodically build from perforce)
    Handbook
    Web page
    +
    Repository of the ongoing work
    +
    Perforce
    @@ -280,7 +271,13 @@
    Documents available
    Web, - some articles. + some articles, + Handbook. +
    +
    Repositories of ongoing work
    +
    + Perforce + (doc, www and src/release/doc).
    ==== //depot/projects/docproj_es/www/en/docs/books.sgml#3 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -140,6 +140,10 @@ A list of organizations and individuals who have helped enhance FreeBSD.

    +

    CUPS on &os; + (cups)
    + How to setup CUPS with &os;.

    +

    Setting up a CVS repository - The FreeBSD way (cvs-freebsd)
    How to set up a CVS repository that uses the same CVSROOT @@ -196,11 +200,11 @@ useful information from the -questions mailing list.

    Writing - a GEOM Class(geom-class)
    + a GEOM Class (geom-class)
    A guide to GEOM internals, and writing your own class.

    Implementing - UFS journaling on a desktop PC(gjournal-desktop)
    + UFS journaling on a desktop PC (gjournal-desktop)
    A guide to create UFS partitions configured with journaling for desktop use.

    @@ -225,6 +229,11 @@ (laptop)
    Information about running FreeBSD on a laptop.

    +

    LDAP Authentication + (ldap-auth)
    + A practical guide about setting up an LDAP server on + &os; and how to use it for authenticating users.

    +

    FreeBSD: An Open Source Alternative to Linux (linux-comparison)
    A white paper explaining the differences between Linux ==== //depot/projects/docproj_es/www/en/donations/wantlist.sgml#2 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -221,14 +221,6 @@ More memory allows for better workloads when testing code in SMP setups. - - marcel - CA, USA - Memory kits for the SGI O2. No 256MB (2x128MB) kits as that - requires PROM version 4.4 or higher. Preferably 128MB (2x64MB) - kits. At most 4 kits fit the O2, so 4 kits of 128MB would be - ideal. - markm ==== //depot/projects/docproj_es/www/en/gifs/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/gifs/Makefile,v 1.60 2008/02/12 19:52:02 remko Exp $ +# $FreeBSD: www/en/gifs/Makefile,v 1.61 2008/05/26 17:13:47 gabor Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -7,8 +7,8 @@ .include "../Makefile.inc" .endif -DATA= apache.gif apachepower.gif daemon.gif doc.gif -DATA+= home.gif littlelogo.gif new.gif power-button.gif +DATA= apache.gif daemon.gif doc.gif +DATA+= home.gif light_button.png littlelogo.gif new.gif power-button.gif DATA+= powerlogo.gif ugu_icon.gif wclogo.gif topbar.gif DATA+= flash0.gif flash1.gif soft0.gif soft1.gif support0.gif support1.gif DATA+= docs0.gif docs1.gif vendors0.gif vendors1.gif search0.gif search1.gif ==== //depot/projects/docproj_es/www/en/gnome/index.xsl#2 (text+ko) ==== @@ -4,7 +4,7 @@ ]> - + -

    GNOME is a complete desktop environment, and a - comprehensive suite of applications. In GNOME, - everything is easy to use, attractive, powerful, - and works the way you expect.

    - -

    The - GNOME - desktop is a window-based desktop - environment that provides many business, - productivity, and entertainment - applications, and makes non-GNOME programs - faster and easier to run. The - GNOME development - platform is a collection of - application-development tools and libraries - used by many programs, such as Mozilla - Firefox.

    +

    GNOME is a complete graphical desktop for X, + including everything from a window manager to + web browsers, audio players, office programs, and + more.

    The FreeBSD GNOME Project is a team of devoted developers and users that manage the integration of GNOME and FreeBSD.

    +

    How to install GNOME

    + +

    The easiest way to install GNOME is to install either of + the following ports:

    +
      +
    • x11/gnome2 (the full desktop)
    • +
    • x11/gnome2-lite (the minimum desktop environment)
    • +
    + +

    And, as desired, one or all of:

    +
      +
    • x11/gnome2-fifth-toe (common applications)
    • +
    • x11/gnome2-power-tools (tools/toys for power users)
    • +
    • editors/gnome2-office (office productivity)
    • +
    • devel/gnome2-hacker-tools (development tools)
    • +
    +

    Upgrading to GNOME 2.22?

    If you are upgrading from GNOME 2.20 to GNOME 2.22, read the @@ -147,11 +150,11 @@

    Resources

    Related Projects

    ==== //depot/projects/docproj_es/www/en/internal/about.sgml#2 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -35,9 +35,9 @@

    The Software

    - Powered by Apache

    - These pages are served up by the versatile and efficient Apache http server. In + lighttpd fly light.

    + These pages are served up by the fast, secure and flexible lighttpd webserver. In addition, there are a few locally crafted CGI scripts. Indexing of these pages and the mailing list archive are provided by freewais-sf, a derivative of the CNIDR freewais.

    ==== //depot/projects/docproj_es/www/en/multimedia/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/multimedia/Makefile,v 1.2 2007/05/15 21:53:43 keramida Exp $ +# $FreeBSD: www/en/multimedia/Makefile,v 1.3 2008/06/12 19:02:27 remko Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -10,30 +10,30 @@ .include "Makefile.inc" .endif -INDEXLINK= multimedia.html +#all: build +all: build + cd output && make all DIRPRFX=multimedia/output/ -FXML = multimedia-input.xml -FHTML = \ - multimedia.html.intro \ - multimedia.html.pre \ - multimedia.html.post -FLIST = multimedia.created -FSCRIPT = multimedia.pl +install: + cd output && make install DIRPRFX=multimedia/output/ -.if exists(${FLIST}) -DATA!= cat ${FLIST} -.else -DATA= ${INDEXLINK} -.endif +TEMPLATES= multimedia.sgml.intro \ + multimedia.sgml.post \ + multimedia.sgml.pre \ + multimedia.html.intro \ + multimedia.html.post \ + multimedia.html.pre \ + multimedia-input.xml -all: ${FLIST} >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 14 18:32:22 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A22C1065677; Sat, 14 Jun 2008 18:32:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A924E106567B for ; Sat, 14 Jun 2008 18:32:21 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 98B6C8FC19 for ; Sat, 14 Jun 2008 18:32:21 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EIWLFp048451 for ; Sat, 14 Jun 2008 18:32:21 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EIWLHL048449 for perforce@freebsd.org; Sat, 14 Jun 2008 18:32:21 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 14 Jun 2008 18:32:21 GMT Message-Id: <200806141832.m5EIWLHL048449@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 143458 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 18:32:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=143458 Change 143458 by gk@gk_h1 on 2008/06/14 18:31:45 in ipfw: s/mac/ether/ (to be consistent with the rest of the world and futere layer2 filtering in pf). retain mac and mac-type options for backward compatibility Affected files ... .. //depot/projects/soc2008/gk_l2filter/sbin-ipfw/ipfw2.c#4 edit .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#5 edit .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#6 edit Differences ... ==== //depot/projects/soc2008/gk_l2filter/sbin-ipfw/ipfw2.c#4 (text+ko) ==== @@ -294,10 +294,10 @@ TOK_TCPACK, TOK_TCPWIN, TOK_ICMPTYPES, - TOK_MAC, - TOK_MAC_SRC, - TOK_MAC_DST, - TOK_MACTYPE, + TOK_ETHER, + TOK_ETHER_SRC, + TOK_ETHER_DST, + TOK_ETHER_TYPE, TOK_VERREVPATH, TOK_VERSRCREACH, TOK_ANTISPOOF, @@ -477,11 +477,13 @@ { "dst-port", TOK_DSTPORT }, { "src-port", TOK_SRCPORT }, { "proto", TOK_PROTO }, - { "MAC", TOK_MAC }, - { "mac", TOK_MAC }, - { "src-mac", TOK_MAC_SRC }, - { "dst-mac", TOK_MAC_DST }, - { "mac-type", TOK_MACTYPE }, + { "MAC", TOK_ETHER }, + { "mac", TOK_ETHER }, + { "ether", TOK_ETHER }, + { "src-ether", TOK_ETHER_SRC }, + { "dst-ether", TOK_ETHER_DST }, + { "mac-type", TOK_ETHER_TYPE }, + { "ether-type", TOK_ETHER_TYPE }, { "verrevpath", TOK_VERREVPATH }, { "versrcreach", TOK_VERSRCREACH }, { "antispoof", TOK_ANTISPOOF }, @@ -663,7 +665,7 @@ {"ipid", O_IPID}, {"iplen", O_IPLEN}, {"ipttl", O_IPTTL}, - {"mac-type", O_MAC_TYPE}, + {"ether-type", O_ETHER_TYPE}, {"tcpdatalen", O_TCPDATALEN}, {"tagged", O_TAGGED}, {NULL, 0} @@ -1134,10 +1136,10 @@ } /* - * prints a MAC address/mask pair + * prints a ethernet (MAC) address/mask pair */ static void -print_mac(uint8_t *addr, uint8_t *mask) +print_ether(uint8_t *addr, uint8_t *mask) { int l = contigmask(mask, 48); @@ -1421,7 +1423,7 @@ * The first argument is the list of fields we have, the second is * the list of fields we want to be printed. * - * Special cases if we have provided a MAC header: + * Special cases if we have provided a ethernet header: * + if the rule does not contain IP addresses/ports, do not print them; * + if the rule does not contain an IP proto, print "all" instead of "ip"; * @@ -1811,32 +1813,32 @@ if (cmd->len & F_NOT && cmd->opcode != O_IN) printf(" not"); switch(cmd->opcode) { - case O_MACADDR2: { - ipfw_insn_mac *m = (ipfw_insn_mac *)cmd; + case O_ETHERADDR2: { + ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; - printf(" mac"); - print_mac(m->addr, m->mask); - print_mac(m->addr + 6, m->mask + 6); + printf(" ether"); + print_ether(m->addr, m->mask); + print_ether(m->addr + 6, m->mask + 6); } break; - case O_MAC_SRC: { - ipfw_insn_mac *m = (ipfw_insn_mac *)cmd; + case O_ETHER_SRC: { + ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; - printf(" src-mac"); - print_mac(m->addr + 6, m->mask + 6); + printf(" src-ether"); + print_ether(m->addr + 6, m->mask + 6); } break; - case O_MAC_DST: { - ipfw_insn_mac *m = (ipfw_insn_mac *)cmd; + case O_ETHER_DST: { + ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; - printf(" dst-mac"); - print_mac(m->addr, m->mask); + printf(" dst-ether"); + print_ether(m->addr, m->mask); } break; - case O_MAC_TYPE: + case O_ETHER_TYPE: print_newports((ipfw_insn_u16 *)cmd, IPPROTO_ETHERTYPE, cmd->opcode); break; @@ -4466,12 +4468,12 @@ } static void -get_mac_addr_mask(const char *p, uint8_t *addr, uint8_t *mask) +get_ether_addr_mask(const char *p, uint8_t *addr, uint8_t *mask) { int i, l; char *ap, *ptr, *optr; - struct ether_addr *mac; - const char *macset = "0123456789abcdefABCDEF:"; + struct ether_addr *ether; + const char *etherset = "0123456789abcdefABCDEF:"; if (strcmp(p, "any") == 0) { for (i = 0; i < ETHER_ADDR_LEN; i++) @@ -4482,11 +4484,11 @@ optr = ptr = strdup(p); if ((ap = strsep(&ptr, "&/")) != NULL && *ap != 0) { l = strlen(ap); - if (strspn(ap, macset) != l || (mac = ether_aton(ap)) == NULL) - errx(EX_DATAERR, "Incorrect MAC address"); - bcopy(mac, addr, ETHER_ADDR_LEN); + if (strspn(ap, etherset) != l || (ether = ether_aton(ap)) == NULL) + errx(EX_DATAERR, "Incorrect ethernet (MAC) address"); + bcopy(ether, addr, ETHER_ADDR_LEN); } else - errx(EX_DATAERR, "Incorrect MAC address"); + errx(EX_DATAERR, "Incorrect ethernet (MAC) address"); if (ptr != NULL) { /* we have mask? */ if (p[ptr - optr - 1] == '/') { /* mask len */ @@ -4497,10 +4499,10 @@ mask[i] = (l >= 8) ? 0xff: (~0) << (8 - l); } else { /* mask */ l = strlen(ptr); - if (strspn(ptr, macset) != l || - (mac = ether_aton(ptr)) == NULL) + if (strspn(ptr, etherset) != l || + (ether = ether_aton(ptr)) == NULL) errx(EX_DATAERR, "Incorrect mask"); - bcopy(mac, mask, ETHER_ADDR_LEN); + bcopy(ether, mask, ETHER_ADDR_LEN); } } else { /* default mask: ff:ff:ff:ff:ff:ff */ for (i = 0; i < ETHER_ADDR_LEN; i++) @@ -4572,68 +4574,68 @@ * two microinstructions, and returns the pointer to the last one. */ static ipfw_insn * -add_mac(ipfw_insn *cmd, int ac, char *av[]) +add_ether(ipfw_insn *cmd, int ac, char *av[]) { - ipfw_insn_mac *mac; + ipfw_insn_ether *ether; if (ac < 2) - errx(EX_DATAERR, "MAC dst src"); + errx(EX_DATAERR, "ether dst src"); - cmd->opcode = O_MACADDR2; - cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_mac); + cmd->opcode = O_ETHERADDR2; + cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); - mac = (ipfw_insn_mac *)cmd; - get_mac_addr_mask(av[0], mac->addr, mac->mask); /* dst */ - get_mac_addr_mask(av[1], &(mac->addr[ETHER_ADDR_LEN]), - &(mac->mask[ETHER_ADDR_LEN])); /* src */ + ether = (ipfw_insn_ether *)cmd; + get_ether_addr_mask(av[0], ether->addr, ether->mask); /* dst */ + get_ether_addr_mask(av[1], &(ether->addr[ETHER_ADDR_LEN]), + &(ether->mask[ETHER_ADDR_LEN])); /* src */ return cmd; } static ipfw_insn * -add_mac_src(ipfw_insn *cmd, int ac, char *av[]) +add_ether_src(ipfw_insn *cmd, int ac, char *av[]) { - ipfw_insn_mac *mac; + ipfw_insn_ether *ether; if (ac < 1) - errx(EX_DATAERR, "src-mac src"); + errx(EX_DATAERR, "src-ether src"); - cmd->opcode = O_MAC_SRC; - cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_mac); + cmd->opcode = O_ETHER_SRC; + cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); - mac = (ipfw_insn_mac *)cmd; - bzero(mac->addr, ETHER_ADDR_LEN); - bzero(mac->mask, ETHER_ADDR_LEN); - get_mac_addr_mask(av[0], &(mac->addr[ETHER_ADDR_LEN]), - &(mac->mask[ETHER_ADDR_LEN])); /* src */ + ether = (ipfw_insn_ether *)cmd; + bzero(ether->addr, ETHER_ADDR_LEN); + bzero(ether->mask, ETHER_ADDR_LEN); + get_ether_addr_mask(av[0], &(ether->addr[ETHER_ADDR_LEN]), + &(ether->mask[ETHER_ADDR_LEN])); /* src */ return cmd; } static ipfw_insn * -add_mac_dst(ipfw_insn *cmd, int ac, char *av[]) +add_ether_dst(ipfw_insn *cmd, int ac, char *av[]) { - ipfw_insn_mac *mac; + ipfw_insn_ether *ether; if (ac < 1) - errx(EX_DATAERR, "dst-mac dst"); + errx(EX_DATAERR, "dst-ether dst"); - cmd->opcode = O_MAC_DST; - cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_mac); + cmd->opcode = O_ETHER_DST; + cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); - mac = (ipfw_insn_mac *)cmd; - bzero(mac->addr + ETHER_ADDR_LEN, ETHER_ADDR_LEN); - bzero(mac->mask + ETHER_ADDR_LEN, ETHER_ADDR_LEN); - get_mac_addr_mask(av[0], mac->addr, mac->mask); /* dst */ + ether = (ipfw_insn_ether *)cmd; + bzero(ether->addr + ETHER_ADDR_LEN, ETHER_ADDR_LEN); + bzero(ether->mask + ETHER_ADDR_LEN, ETHER_ADDR_LEN); + get_ether_addr_mask(av[0], ether->addr, ether->mask); /* dst */ return cmd; } static ipfw_insn * -add_mactype(ipfw_insn *cmd, int ac, char *av) +add_ethertype(ipfw_insn *cmd, int ac, char *av) { if (ac < 1) - errx(EX_DATAERR, "missing MAC type"); + errx(EX_DATAERR, "missing ether-type argument"); if (strcmp(av, "any") != 0) { /* we have a non-null type */ fill_newports((ipfw_insn_u16 *)cmd, av, IPPROTO_ETHERTYPE); - cmd->opcode = O_MAC_TYPE; + cmd->opcode = O_ETHER_TYPE; return cmd; } else return NULL; @@ -5641,28 +5643,28 @@ *av); break; - case TOK_MAC: - if (add_mac(cmd, ac, av)) { + case TOK_ETHER: + if (add_ether(cmd, ac, av)) { ac -= 2; av += 2; } break; - case TOK_MAC_SRC: - if (add_mac_src(cmd, ac, av)) { + case TOK_ETHER_SRC: + if (add_ether_src(cmd, ac, av)) { ac--; av++; } break; - case TOK_MAC_DST: - if (add_mac_dst(cmd, ac, av)) { + case TOK_ETHER_DST: + if (add_ether_dst(cmd, ac, av)) { ac--; av++; } break; - case TOK_MACTYPE: - NEED1("missing mac type"); - if (!add_mactype(cmd, ac, *av)) - errx(EX_DATAERR, "invalid mac type %s", *av); + case TOK_ETHER_TYPE: + NEED1("missing ether type"); + if (!add_ethertype(cmd, ac, *av)) + errx(EX_DATAERR, "invalid ether type %s", *av); ac--; av++; break; @@ -5966,10 +5968,10 @@ if (lookup_host(*av, (struct in_addr *)&ent.addr) != 0) errx(EX_NOHOST, "hostname ``%s'' unknown", *av); ac--; av++; - ent.mac_addr = 0; - if (do_add && ac >= 2 && strcmp(*av, "mac") == 0) { + ent.ether_addr = 0; + if (do_add && ac >= 2 && strcmp(*av, "ether") == 0) { uint8_t mask[8]; - get_mac_addr_mask(av[1], (uint8_t*)&ent.mac_addr, mask); + get_ether_addr_mask(av[1], (uint8_t*)&ent.ether_addr, mask); ac-=2; av+=2; } if (do_add && ac) { @@ -6021,7 +6023,7 @@ for (a = 0; a < tbl->cnt; a++) { unsigned int tval; char tval_buf[128]; - char tmac_buf[128]; + char tether_buf[128]; tval = tbl->ent[a].value; if (do_value_as_ip) { /* inet_ntoa expects network order */ @@ -6031,17 +6033,17 @@ } else { snprintf(tval_buf, sizeof(tval_buf), "%u", tval); } - if (tbl->ent[a].mac_addr) { - uint8_t *x = (uint8_t *)&tbl->ent[a].mac_addr; - snprintf(tmac_buf, sizeof(tmac_buf), "mac %02x:%02x:%02x:%02x:%02x:%02x ", + if (tbl->ent[a].ether_addr) { + uint8_t *x = (uint8_t *)&tbl->ent[a].ether_addr; + snprintf(tether_buf, sizeof(tether_buf), "ether %02x:%02x:%02x:%02x:%02x:%02x ", x[0], x[1], x[2], x[3], x[4], x[5]); } else { - tmac_buf[0] = 0; + tether_buf[0] = 0; } printf("%s/%u %s%s\n", inet_ntoa(*(struct in_addr *)&tbl->ent[a].addr), - tbl->ent[a].masklen, tmac_buf, tval_buf); + tbl->ent[a].masklen, tether_buf, tval_buf); } } else errx(EX_USAGE, "invalid table command %s", *av); ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#5 (text+ko) ==== @@ -67,10 +67,10 @@ O_IP_DSTPORT, /* (n)port list:mask 4 byte ea */ O_PROTO, /* arg1=protocol */ - O_MACADDR2, /* 2 mac addr:mask */ - O_MAC_SRC, /* 2 mac addr:mask */ - O_MAC_DST, /* 2 mac addr:mask */ - O_MAC_TYPE, /* same as srcport */ + O_ETHERADDR2, /* 2 ethernet (mac) addr:mask */ + O_ETHER_SRC, /* 2 ethernet (mac) addr:mask */ + O_ETHER_DST, /* 2 ethernet (mac) addr:mask */ + O_ETHER_TYPE, /* same as srcport */ O_LAYER2, /* none */ O_IN, /* none */ @@ -263,13 +263,13 @@ } ipfw_insn_sa; /* - * This is used for MAC addr-mask pairs. + * This is used for ethernet (MAC) addr-mask pairs. */ -typedef struct _ipfw_insn_mac { +typedef struct _ipfw_insn_ether { ipfw_insn o; u_char addr[12]; /* dst[6] + src[6] */ u_char mask[12]; /* dst[6] + src[6] */ -} ipfw_insn_mac; +} ipfw_insn_ether; /* * This is used for interface match rules (recv xx, xmit xx). @@ -533,7 +533,7 @@ */ typedef struct _ipfw_table_entry { in_addr_t addr; /* network address */ - u_int64_t mac_addr; /* mac address */ + u_int64_t ether_addr; /* ethernet address */ u_int32_t value; /* value */ u_int16_t tbl; /* table number */ u_int8_t masklen; /* mask length */ ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#6 (text+ko) ==== @@ -153,7 +153,7 @@ struct table_entry { struct radix_node rn[2]; struct sockaddr_in addr, mask; - u_int64_t mac_addr; + u_int64_t ether_addr; u_int32_t value; }; @@ -880,7 +880,7 @@ } if (hlen == 0) { /* non-ip */ - snprintf(SNPARGS(proto, 0), "MAC"); + snprintf(SNPARGS(proto, 0), "ether"); } else { int len; @@ -1753,7 +1753,7 @@ static int add_table_entry(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, - uint8_t mlen, u_int64_t mac_addr, uint32_t value) + uint8_t mlen, u_int64_t ether_addr, uint32_t value) { struct radix_node_head *rnh; struct table_entry *ent; @@ -1768,7 +1768,7 @@ ent->addr.sin_len = ent->mask.sin_len = 8; ent->mask.sin_addr.s_addr = htonl(mlen ? ~((1 << (32 - mlen)) - 1) : 0); ent->addr.sin_addr.s_addr = addr & ent->mask.sin_addr.s_addr; - ent->mac_addr = mac_addr; + ent->ether_addr = ether_addr; IPFW_WLOCK(&layer3_chain); if (rnh->rnh_addaddr(&ent->addr, &ent->mask, rnh, (void *)ent) == NULL) { @@ -1876,8 +1876,8 @@ sa.sin_addr.s_addr = addr; ent = (struct table_entry *)(rnh->rnh_lookup(&sa, NULL, rnh)); if (ent != NULL) { - if (ea && ent->mac_addr) { - if (ent->mac_addr != ((*(u_int64_t*)ea))) + if (ea && ent->ether_addr) { + if (ent->ether_addr != ((*(u_int64_t*)ea))) return (0); } *val = ent->value; @@ -1924,7 +1924,7 @@ else ent->masklen = 33 - ffs(ntohl(n->mask.sin_addr.s_addr)); ent->addr = n->addr.sin_addr.s_addr; - ent->mac_addr = n->mac_addr; + ent->ether_addr = n->ether_addr; ent->value = n->value; tbl->cnt++; return (0); @@ -2054,7 +2054,7 @@ * * args->m (in/out) The packet; we set to NULL when/if we nuke it. * Starts with the IP header. - * args->eh (in) Mac header if present, or NULL for layer3 packet. + * args->eh (in) ethernet header if present, or NULL for layer3 packet. * args->L3offset Number of bytes bypassed if we came from L2. * e.g. often sizeof(eh) ** NOTYET ** * args->oif Outgoing interface, or NULL if packet is incoming. @@ -2090,7 +2090,7 @@ * the implementation of the various instructions to make sure * that they still work. * - * args->eh The MAC header. It is non-null for a layer2 + * args->eh The ethernet header. It is non-null for a layer2 * packet, it is NULL for a layer-3 packet. * **notyet** * args->L3offset Offset in the packet to the L3 (IP or equiv.) header. @@ -2590,14 +2590,14 @@ m->m_pkthdr.rcvif, (ipfw_insn_if *)cmd); break; - case O_MACADDR2: - case O_MAC_SRC: - case O_MAC_DST: - if (args->eh != NULL) { /* have MAC header */ + case O_ETHERADDR2: + case O_ETHER_SRC: + case O_ETHER_DST: + if (args->eh != NULL) { /* have ethernet header */ u_int32_t *want = (u_int32_t *) - ((ipfw_insn_mac *)cmd)->addr; + ((ipfw_insn_ether *)cmd)->addr; u_int32_t *mask = (u_int32_t *) - ((ipfw_insn_mac *)cmd)->mask; + ((ipfw_insn_ether *)cmd)->mask; u_int32_t *hdr = (u_int32_t *)args->eh; match = @@ -2607,8 +2607,8 @@ } break; - case O_MAC_TYPE: - if (args->eh != NULL) { /* have MAC header */ + case O_ETHER_TYPE: + if (args->eh != NULL) { /* have ethernet header */ u_int16_t *p = ((ipfw_insn_u16 *)cmd)->ports; int i; @@ -3895,10 +3895,10 @@ goto bad_size; break; - case O_MACADDR2: - case O_MAC_SRC: - case O_MAC_DST: - if (cmdlen != F_INSN_SIZE(ipfw_insn_mac)) + case O_ETHERADDR2: + case O_ETHER_SRC: + case O_ETHER_DST: + if (cmdlen != F_INSN_SIZE(ipfw_insn_ether)) goto bad_size; break; @@ -3912,7 +3912,7 @@ goto bad_size; break; - case O_MAC_TYPE: + case O_ETHER_TYPE: case O_IP_SRCPORT: case O_IP_DSTPORT: /* XXX artificial limit, 30 port pairs */ if (cmdlen < 2 || cmdlen > 31) @@ -4280,7 +4280,7 @@ if (error) break; error = add_table_entry(&layer3_chain, ent.tbl, - ent.addr, ent.masklen, ent.mac_addr, ent.value); + ent.addr, ent.masklen, ent.ether_addr, ent.value); } break; From owner-p4-projects@FreeBSD.ORG Sat Jun 14 19:01:52 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 396321065676; Sat, 14 Jun 2008 19:01:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D672D1065670 for ; Sat, 14 Jun 2008 19:01:51 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C7A188FC1A for ; Sat, 14 Jun 2008 19:01:51 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EJ1pYO051268 for ; Sat, 14 Jun 2008 19:01:51 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EJ1pBN051266 for perforce@freebsd.org; Sat, 14 Jun 2008 19:01:51 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 14 Jun 2008 19:01:51 GMT Message-Id: <200806141901.m5EJ1pBN051266@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 143462 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 19:01:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=143462 Change 143462 by gk@gk_h1 on 2008/06/14 19:01:12 remove O_FORWARD_MAC. it is not impemented and not supported by userland. and likely it will never be :) Affected files ... .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#6 edit .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#7 edit Differences ... ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#6 (text+ko) ==== @@ -125,7 +125,6 @@ O_DIVERT, /* arg1=port number */ O_TEE, /* arg1=port number */ O_FORWARD_IP, /* fwd sockaddr */ - O_FORWARD_MAC, /* fwd mac */ O_NAT, /* nope */ /* ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#7 (text+ko) ==== @@ -2549,11 +2549,6 @@ match = 1; break; - case O_FORWARD_MAC: - printf("ipfw: opcode %d unimplemented\n", - cmd->opcode); - break; - case O_GID: case O_UID: case O_JAIL: @@ -3964,7 +3959,6 @@ if (cmdlen != F_INSN_SIZE(ipfw_insn_nat)) goto bad_size; goto check_action; - case O_FORWARD_MAC: /* XXX not implemented yet */ case O_CHECK_STATE: case O_COUNT: case O_ACCEPT: From owner-p4-projects@FreeBSD.ORG Sat Jun 14 19:15:05 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 833F2106567B; Sat, 14 Jun 2008 19:15:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4550D1065678 for ; Sat, 14 Jun 2008 19:15:05 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3517A8FC20 for ; Sat, 14 Jun 2008 19:15:05 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EJF5hF053393 for ; Sat, 14 Jun 2008 19:15:05 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EJF5ak053391 for perforce@freebsd.org; Sat, 14 Jun 2008 19:15:05 GMT (envelope-from gk@FreeBSD.org) Date: Sat, 14 Jun 2008 19:15:05 GMT Message-Id: <200806141915.m5EJF5ak053391@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 143463 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 19:15:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=143463 Change 143463 by gk@gk_h1 on 2008/06/14 19:14:27 add ipfw_ether_addr - wrapper struct for mac address. remove support for ethernet address mask. support any and multicast addresses instead. mac address mask is not supported by any another firewall i've seen. and it looks like it was added as a small optimization trick (to simplify comparasion of 2 mac addresses) remove O_ETHERADDR2. replace it with 2 commands: O_ETHER_SRC and O_ETHER_DST. ipfw mac (ether) is supported for backward campatibility. Affected files ... .. //depot/projects/soc2008/gk_l2filter/sbin-ipfw/ipfw2.c#5 edit .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#7 edit .. //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#8 edit Differences ... ==== //depot/projects/soc2008/gk_l2filter/sbin-ipfw/ipfw2.c#5 (text+ko) ==== @@ -1139,21 +1139,16 @@ * prints a ethernet (MAC) address/mask pair */ static void -print_ether(uint8_t *addr, uint8_t *mask) +print_ether(ipfw_ether_addr *addr) { - int l = contigmask(mask, 48); - - if (l == 0) + if ((addr->flags & IP_FW_EA_CHECK) == 0) { printf(" any"); - else { + } else if (addr->flags & IP_FW_EA_MULTICAST) { + printf(" multicast"); + } else { + u_char *ea = addr->octet; printf(" %02x:%02x:%02x:%02x:%02x:%02x", - addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]); - if (l == -1) - printf("&%02x:%02x:%02x:%02x:%02x:%02x", - mask[0], mask[1], mask[2], - mask[3], mask[4], mask[5]); - else if (l < 48) - printf("/%d", l); + ea[0], ea[1], ea[2], ea[3], ea[4], ea[5]); } } @@ -1813,20 +1808,11 @@ if (cmd->len & F_NOT && cmd->opcode != O_IN) printf(" not"); switch(cmd->opcode) { - case O_ETHERADDR2: { - ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; - - printf(" ether"); - print_ether(m->addr, m->mask); - print_ether(m->addr + 6, m->mask + 6); - } - break; - case O_ETHER_SRC: { ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; printf(" src-ether"); - print_ether(m->addr + 6, m->mask + 6); + print_ether(&m->ether); } break; @@ -1834,7 +1820,7 @@ ipfw_insn_ether *m = (ipfw_insn_ether *)cmd; printf(" dst-ether"); - print_ether(m->addr, m->mask); + print_ether(&m->ether); } break; @@ -4468,50 +4454,27 @@ } static void -get_ether_addr_mask(const char *p, uint8_t *addr, uint8_t *mask) +get_ether_addr(const char *p, ipfw_ether_addr *addr) { int i, l; - char *ap, *ptr, *optr; struct ether_addr *ether; const char *etherset = "0123456789abcdefABCDEF:"; + bzero(addr, sizeof(*addr)); if (strcmp(p, "any") == 0) { - for (i = 0; i < ETHER_ADDR_LEN; i++) - addr[i] = mask[i] = 0; + return; + } + if (strcmp(p, "multicast") == 0) { + addr->flags = IP_FW_EA_CHECK | IP_FW_EA_MULTICAST; return; } - optr = ptr = strdup(p); - if ((ap = strsep(&ptr, "&/")) != NULL && *ap != 0) { - l = strlen(ap); - if (strspn(ap, etherset) != l || (ether = ether_aton(ap)) == NULL) - errx(EX_DATAERR, "Incorrect ethernet (MAC) address"); - bcopy(ether, addr, ETHER_ADDR_LEN); - } else + if (strspn(p, etherset) != strlen(p) || + (ether = ether_aton(p)) == NULL) errx(EX_DATAERR, "Incorrect ethernet (MAC) address"); - if (ptr != NULL) { /* we have mask? */ - if (p[ptr - optr - 1] == '/') { /* mask len */ - l = strtol(ptr, &ap, 10); - if (*ap != 0 || l > ETHER_ADDR_LEN * 8 || l < 0) - errx(EX_DATAERR, "Incorrect mask length"); - for (i = 0; l > 0 && i < ETHER_ADDR_LEN; l -= 8, i++) - mask[i] = (l >= 8) ? 0xff: (~0) << (8 - l); - } else { /* mask */ - l = strlen(ptr); - if (strspn(ptr, etherset) != l || - (ether = ether_aton(ptr)) == NULL) - errx(EX_DATAERR, "Incorrect mask"); - bcopy(ether, mask, ETHER_ADDR_LEN); - } - } else { /* default mask: ff:ff:ff:ff:ff:ff */ - for (i = 0; i < ETHER_ADDR_LEN; i++) - mask[i] = 0xff; - } - for (i = 0; i < ETHER_ADDR_LEN; i++) - addr[i] &= mask[i]; - - free(optr); + memcpy(addr->octet, ether, ETHER_ADDR_LEN); + addr->flags = IP_FW_EA_CHECK; } /* @@ -4574,58 +4537,34 @@ * two microinstructions, and returns the pointer to the last one. */ static ipfw_insn * -add_ether(ipfw_insn *cmd, int ac, char *av[]) +add_ether(ipfw_insn *cmd, int opcode, char *arg) { ipfw_insn_ether *ether; - if (ac < 2) - errx(EX_DATAERR, "ether dst src"); - - cmd->opcode = O_ETHERADDR2; + cmd->opcode = opcode; cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); ether = (ipfw_insn_ether *)cmd; - get_ether_addr_mask(av[0], ether->addr, ether->mask); /* dst */ - get_ether_addr_mask(av[1], &(ether->addr[ETHER_ADDR_LEN]), - &(ether->mask[ETHER_ADDR_LEN])); /* src */ + get_ether_addr(arg, ðer->ether); return cmd; } static ipfw_insn * add_ether_src(ipfw_insn *cmd, int ac, char *av[]) { - ipfw_insn_ether *ether; - if (ac < 1) errx(EX_DATAERR, "src-ether src"); - cmd->opcode = O_ETHER_SRC; - cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); - - ether = (ipfw_insn_ether *)cmd; - bzero(ether->addr, ETHER_ADDR_LEN); - bzero(ether->mask, ETHER_ADDR_LEN); - get_ether_addr_mask(av[0], &(ether->addr[ETHER_ADDR_LEN]), - &(ether->mask[ETHER_ADDR_LEN])); /* src */ - return cmd; + return add_ether(cmd, O_ETHER_SRC, av[0]); } static ipfw_insn * add_ether_dst(ipfw_insn *cmd, int ac, char *av[]) { - ipfw_insn_ether *ether; - if (ac < 1) errx(EX_DATAERR, "dst-ether dst"); - cmd->opcode = O_ETHER_DST; - cmd->len = (cmd->len & (F_NOT | F_OR)) | F_INSN_SIZE(ipfw_insn_ether); - - ether = (ipfw_insn_ether *)cmd; - bzero(ether->addr + ETHER_ADDR_LEN, ETHER_ADDR_LEN); - bzero(ether->mask + ETHER_ADDR_LEN, ETHER_ADDR_LEN); - get_ether_addr_mask(av[0], ether->addr, ether->mask); /* dst */ - return cmd; + return add_ether(cmd, O_ETHER_DST, av[0]); } static ipfw_insn * @@ -5644,8 +5583,11 @@ break; case TOK_ETHER: - if (add_ether(cmd, ac, av)) { - ac -= 2; av += 2; + if (ac >= 2 && add_ether_dst(cmd, ac, av)) { + /* + * XXX will not allocate next command here + */ + av[0] = strdup("src-ether"); } break; @@ -5968,10 +5910,9 @@ if (lookup_host(*av, (struct in_addr *)&ent.addr) != 0) errx(EX_NOHOST, "hostname ``%s'' unknown", *av); ac--; av++; - ent.ether_addr = 0; + bzero(&ent.ether_addr, sizeof(ent.ether_addr)); if (do_add && ac >= 2 && strcmp(*av, "ether") == 0) { - uint8_t mask[8]; - get_ether_addr_mask(av[1], (uint8_t*)&ent.ether_addr, mask); + get_ether_addr(av[1], &ent.ether_addr); ac-=2; av+=2; } if (do_add && ac) { @@ -6033,7 +5974,7 @@ } else { snprintf(tval_buf, sizeof(tval_buf), "%u", tval); } - if (tbl->ent[a].ether_addr) { + if (tbl->ent[a].ether_addr.flags & IP_FW_EA_CHECK) { uint8_t *x = (uint8_t *)&tbl->ent[a].ether_addr; snprintf(tether_buf, sizeof(tether_buf), "ether %02x:%02x:%02x:%02x:%02x:%02x ", x[0], x[1], x[2], x[3], x[4], x[5]); ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw.h#7 (text+ko) ==== @@ -67,7 +67,6 @@ O_IP_DSTPORT, /* (n)port list:mask 4 byte ea */ O_PROTO, /* arg1=protocol */ - O_ETHERADDR2, /* 2 ethernet (mac) addr:mask */ O_ETHER_SRC, /* 2 ethernet (mac) addr:mask */ O_ETHER_DST, /* 2 ethernet (mac) addr:mask */ O_ETHER_TYPE, /* same as srcport */ @@ -264,10 +263,19 @@ /* * This is used for ethernet (MAC) addr-mask pairs. */ + +#define IP_FW_EA_INIT 0x01 +#define IP_FW_EA_CHECK 0x02 +#define IP_FW_EA_MULTICAST 0x04 + +typedef struct _ip_fw_ether_addr { + u_char octet[6]; + u_int16_t flags; +} ipfw_ether_addr; + typedef struct _ipfw_insn_ether { ipfw_insn o; - u_char addr[12]; /* dst[6] + src[6] */ - u_char mask[12]; /* dst[6] + src[6] */ + ipfw_ether_addr ether; } ipfw_insn_ether; /* @@ -532,7 +540,7 @@ */ typedef struct _ipfw_table_entry { in_addr_t addr; /* network address */ - u_int64_t ether_addr; /* ethernet address */ + ipfw_ether_addr ether_addr; /* ethernet address */ u_int32_t value; /* value */ u_int16_t tbl; /* table number */ u_int8_t masklen; /* mask length */ ==== //depot/projects/soc2008/gk_l2filter/sys-netinet/ip_fw2.c#8 (text+ko) ==== @@ -150,10 +150,29 @@ ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; +static __inline int ether_addr_allow(ipfw_ether_addr *want, + struct ether_addr *ea) +{ + static ipfw_ether_addr mask = { + .octet = { 0xff, 0xff, 0xff, 0xff, 0xff,0xff }, + .flags = 0 + }; + if ((want->flags & IP_FW_EA_CHECK) == 0) + return (1); + if (want->flags & IP_FW_EA_MULTICAST) { + return (ETHER_IS_MULTICAST(ea->octet)); + } + +#define EA_CMP(a) (*((u_int64_t*)(a)) & *((u_int64_t*)&mask)) + return (EA_CMP(want) == EA_CMP(ea)); +#undef EA_CMP + +} + struct table_entry { struct radix_node rn[2]; struct sockaddr_in addr, mask; - u_int64_t ether_addr; + ipfw_ether_addr ether_addr; u_int32_t value; }; @@ -1753,7 +1772,7 @@ static int add_table_entry(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, - uint8_t mlen, u_int64_t ether_addr, uint32_t value) + uint8_t mlen, ipfw_ether_addr *ether_addr, uint32_t value) { struct radix_node_head *rnh; struct table_entry *ent; @@ -1768,7 +1787,7 @@ ent->addr.sin_len = ent->mask.sin_len = 8; ent->mask.sin_addr.s_addr = htonl(mlen ? ~((1 << (32 - mlen)) - 1) : 0); ent->addr.sin_addr.s_addr = addr & ent->mask.sin_addr.s_addr; - ent->ether_addr = ether_addr; + ent->ether_addr = *ether_addr; IPFW_WLOCK(&layer3_chain); if (rnh->rnh_addaddr(&ent->addr, &ent->mask, rnh, (void *)ent) == NULL) { @@ -1876,10 +1895,8 @@ sa.sin_addr.s_addr = addr; ent = (struct table_entry *)(rnh->rnh_lookup(&sa, NULL, rnh)); if (ent != NULL) { - if (ea && ent->ether_addr) { - if (ent->ether_addr != ((*(u_int64_t*)ea))) + if (ea && !ether_addr_allow(&ent->ether_addr, ea)) return (0); - } *val = ent->value; return (1); } @@ -2585,20 +2602,15 @@ m->m_pkthdr.rcvif, (ipfw_insn_if *)cmd); break; - case O_ETHERADDR2: case O_ETHER_SRC: case O_ETHER_DST: if (args->eh != NULL) { /* have ethernet header */ - u_int32_t *want = (u_int32_t *) - ((ipfw_insn_ether *)cmd)->addr; - u_int32_t *mask = (u_int32_t *) - ((ipfw_insn_ether *)cmd)->mask; - u_int32_t *hdr = (u_int32_t *)args->eh; - - match = - ( want[0] == (hdr[0] & mask[0]) && - want[1] == (hdr[1] & mask[1]) && - want[2] == (hdr[2] & mask[2]) ); + ipfw_ether_addr *want = + &(((ipfw_insn_ether *)cmd)->ether); + match = ether_addr_allow(want, (struct ether_addr *) + (cmd->opcode == O_ETHER_SRC ? + args->eh->ether_shost : + args->eh->ether_dhost)); } break; @@ -3890,7 +3902,6 @@ goto bad_size; break; - case O_ETHERADDR2: case O_ETHER_SRC: case O_ETHER_DST: if (cmdlen != F_INSN_SIZE(ipfw_insn_ether)) @@ -4274,7 +4285,7 @@ if (error) break; error = add_table_entry(&layer3_chain, ent.tbl, - ent.addr, ent.masklen, ent.ether_addr, ent.value); + ent.addr, ent.masklen, &ent.ether_addr, ent.value); } break; From owner-p4-projects@FreeBSD.ORG Sat Jun 14 19:44:35 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 841DC1065678; Sat, 14 Jun 2008 19:44:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EBFD1065672 for ; Sat, 14 Jun 2008 19:44:35 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2F0EC8FC1B for ; Sat, 14 Jun 2008 19:44:35 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EJiZeR055865 for ; Sat, 14 Jun 2008 19:44:35 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EJiZJW055863 for perforce@freebsd.org; Sat, 14 Jun 2008 19:44:35 GMT (envelope-from gabor@freebsd.org) Date: Sat, 14 Jun 2008 19:44:35 GMT Message-Id: <200806141944.m5EJiZJW055863@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143466 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 19:44:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=143466 Change 143466 by gabor@gabor_server on 2008/06/14 19:44:15 - Add some checks after calling malloc - Improve --color, it almost works now Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/util.c#16 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#16 (text+ko) ==== @@ -228,19 +228,24 @@ /* XXX: this color stuff does not work yet :( */ char *tmp, *begin, *matched, *end; - begin = malloc(strlen(l->dat) - pmatch.rm_so + 2); - matched = malloc((pmatch.rm_eo - pmatch.rm_so + 1) * sizeof(char)); - end = malloc(strlen(l->dat) - pmatch.rm_eo + 1); + if ((begin = malloc(strlen(l->dat) - pmatch.rm_so + 20)) == NULL) + errx(2, NULL); + if ((matched = malloc((pmatch.rm_eo - pmatch.rm_so + 20) * sizeof(char))) == NULL) + errx(2, NULL); + if ((end = malloc(strlen(l->dat) - pmatch.rm_eo + 20)) == NULL) + errx(2, NULL); strlcpy(begin, l->dat, pmatch.rm_so + 1); strlcpy(matched, &(l->dat[pmatch.rm_so]), pmatch.rm_eo - pmatch.rm_so + 1); - strlcpy(end, &(l->dat[pmatch.rm_eo]), strlen(l->dat) - strlen(begin) - strlen(matched) + 1); + strlcpy(end, &(l->dat[pmatch.rm_eo]), strlen(l->dat) - pmatch.rm_eo + 1); + asprintf(&tmp, "%s\33[%sm%s\33[00m%s", begin, color, matched, end); free(begin); free(matched); free(end); + l->len += strlen(color) + 8; l->dat = tmp; } if (r == 0 && oflag) { From owner-p4-projects@FreeBSD.ORG Sat Jun 14 22:22:14 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB001106566C; Sat, 14 Jun 2008 22:22:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CC5E1065678 for ; Sat, 14 Jun 2008 22:22:14 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6B8AA8FC19 for ; Sat, 14 Jun 2008 22:22:14 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EMMECb083326 for ; Sat, 14 Jun 2008 22:22:14 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EMMEiK083324 for perforce@freebsd.org; Sat, 14 Jun 2008 22:22:14 GMT (envelope-from gabor@freebsd.org) Date: Sat, 14 Jun 2008 22:22:14 GMT Message-Id: <200806142222.m5EMMEiK083324@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143474 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 22:22:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=143474 Change 143474 by gabor@gabor_server on 2008/06/14 22:22:06 - Fix --color Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/util.c#17 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#17 (text+ko) ==== @@ -224,7 +224,7 @@ if (pmatch.rm_so != 0 || pmatch.rm_eo != l->len) r = REG_NOMATCH; } - if ((r == 0) && (color != NULL) && !oflag) { + if ((r == 0) && (color != NULL) && !oflag && !nottext) { /* XXX: this color stuff does not work yet :( */ char *tmp, *begin, *matched, *end; @@ -248,7 +248,7 @@ l->len += strlen(color) + 8; l->dat = tmp; } - if (r == 0 && oflag) { + if (r == 0 && oflag && !nottext) { char *tmp, *matched; if ((matched = malloc((pmatch.rm_eo - pmatch.rm_so + 2) * sizeof(char))) == NULL) From owner-p4-projects@FreeBSD.ORG Sat Jun 14 22:57:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 807C81065672; Sat, 14 Jun 2008 22:57:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42BEF106564A for ; Sat, 14 Jun 2008 22:57:50 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 30CA38FC0C for ; Sat, 14 Jun 2008 22:57:50 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5EMvo8t087951 for ; Sat, 14 Jun 2008 22:57:50 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5EMvo0n087949 for perforce@freebsd.org; Sat, 14 Jun 2008 22:57:50 GMT (envelope-from gabor@freebsd.org) Date: Sat, 14 Jun 2008 22:57:50 GMT Message-Id: <200806142257.m5EMvo0n087949@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 143475 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jun 2008 22:57:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=143475 Change 143475 by gabor@gabor_server on 2008/06/14 22:56:55 - Implement -J / --bz2decompress Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/binary.c#6 edit .. //depot/projects/soc2008/gabor_textproc/grep/file.c#5 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.1#10 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/binary.c#6 (text+ko) ==== ==== //depot/projects/soc2008/gabor_textproc/grep/file.c#5 (text+ko) ==== @@ -66,18 +66,32 @@ static char * bzfgetln(BZFILE *f, size_t *len) { - int bzerror; + size_t n; + char c; + int bzerr = 0; + + for (n = 0; ; ++n) { + BZ2_bzRead(&bzerr, f, &c, 1); + + if ((bzerr == BZ_STREAM_END) || (bzerr == BZ_SEQUENCE_ERROR)) { + if (n == 0) + return (NULL); + else + break; + } else if (bzerr != BZ_OK) + err(2, NULL); - if (lnbuflen != *len) - { - lnbuflen = *len; - lnbuf = grep_realloc(lnbuf, ++lnbuflen); + if (n >= lnbuflen) { + lnbuflen *= 2; + lnbuf = grep_realloc(lnbuf, ++lnbuflen); + } + if (c == '\n') + break; + lnbuf[n] = c; } - if (BZ2_bzRead(&bzerror, f, lnbuf, *len) > 0) - return (lnbuf); - else - return (NULL); + *len = n; + return (lnbuf); } static char * @@ -197,7 +211,7 @@ case FILE_GZIP: return (gzbin_file(f->gzf)); case FILE_BZIP: -/*XXX +/* XXX: we cannot seek in bzip2 files, just suppose that it is not binary return (bzbin_file(f->bzf)); */ return (0); default: ==== //depot/projects/soc2008/gabor_textproc/grep/grep.1#10 (text+ko) ==== @@ -29,7 +29,7 @@ .\" .\" @(#)grep.1 8.3 (Berkeley) 4/18/94 .\" -.Dd 13 Jun, 2008 +.Dd 15 Jun, 2008 .Dt GREP 1 .Os .Sh NAME @@ -39,7 +39,7 @@ .Sh SYNOPSIS .Nm grep .Bk -words -.Op Fl abcdDEFGHhIiLlmnOoPqRSsUVvwxZ +.Op Fl abcdDEFGHhIiJLlmnOoPqRSsUVvwxZ .Op Fl A Ar num .Op Fl B Ar num .Op Fl C Ns Op Ar num @@ -227,6 +227,10 @@ By default, .Nm grep is case sensitive. +.It Fl J, Fl Fl bz2decompress +Decompress the +.Xr bzip2 1 +compressed file before looking for the text. .It Fl L , Fl Fl files-without-match Only the names of files not containing selected lines are written to standard output. @@ -418,7 +422,7 @@ specification. .Pp The flags -.Op Fl AaBbCGHhILoPRSUVwZ +.Op Fl AaBbCDdGHhIJLmoPRSUVwZ are extensions to that specification, and the behaviour of the .Fl f flag when used with an empty pattern file is left undefined.