From owner-svn-src-user@FreeBSD.ORG Fri Dec 28 14:47:40 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 42A0F9F0; Fri, 28 Dec 2012 14:47:40 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 244DA8FC0A; Fri, 28 Dec 2012 14:47:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBSElen0044548; Fri, 28 Dec 2012 14:47:40 GMT (envelope-from mjacob@svn.freebsd.org) Received: (from mjacob@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBSElYkA044511; Fri, 28 Dec 2012 14:47:34 GMT (envelope-from mjacob@svn.freebsd.org) Message-Id: <201212281447.qBSElYkA044511@svn.freebsd.org> From: Matt Jacob Date: Fri, 28 Dec 2012 14:47:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r244773 - in user/mjacob/sys: arm/broadcom/bcm2835 arm/versatile dev/ath/ath_hal/ar5416 dev/pci dev/usb dev/usb/quirk geom kern net netgraph/bluetooth/drivers/ubt netinet netinet6 netpf... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Dec 2012 14:47:40 -0000 Author: mjacob Date: Fri Dec 28 14:47:34 2012 New Revision: 244773 URL: http://svnweb.freebsd.org/changeset/base/244773 Log: MFC @ 244664 Modified: user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_fb.c user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_systimer.c user/mjacob/sys/arm/versatile/versatile_clcd.c user/mjacob/sys/dev/ath/ath_hal/ar5416/ar5416phy.h user/mjacob/sys/dev/pci/pci_user.c user/mjacob/sys/dev/usb/quirk/usb_quirk.c user/mjacob/sys/dev/usb/usbdevs user/mjacob/sys/geom/geom_io.c user/mjacob/sys/kern/subr_syscall.c user/mjacob/sys/kern/vfs_mount.c user/mjacob/sys/kern/vfs_subr.c user/mjacob/sys/net/if_stf.c user/mjacob/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c user/mjacob/sys/netinet/in.c user/mjacob/sys/netinet/ip_carp.c user/mjacob/sys/netinet/sctp_pcb.c user/mjacob/sys/netinet/sctp_usrreq.c user/mjacob/sys/netinet/sctputil.c user/mjacob/sys/netinet/tcp_reass.c user/mjacob/sys/netinet/tcp_syncache.c user/mjacob/sys/netinet6/in6.c user/mjacob/sys/netpfil/pf/if_pflog.c user/mjacob/sys/netpfil/pf/if_pfsync.c user/mjacob/sys/netpfil/pf/pf.c user/mjacob/sys/netpfil/pf/pf_if.c user/mjacob/sys/netpfil/pf/pf_ioctl.c user/mjacob/sys/netpfil/pf/pf_lb.c user/mjacob/sys/netpfil/pf/pf_norm.c user/mjacob/sys/netpfil/pf/pf_osfp.c user/mjacob/sys/netpfil/pf/pf_ruleset.c user/mjacob/sys/netpfil/pf/pf_table.c user/mjacob/sys/sys/buf_ring.h user/mjacob/sys/tools/vnode_if.awk Directory Properties: user/mjacob/sys/ (props changed) Modified: user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_fb.c ============================================================================== --- user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_fb.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_fb.c Fri Dec 28 14:47:34 2012 (r244773) @@ -94,6 +94,12 @@ static struct argb bcmfb_palette[16] = { {0x00, 0xff, 0xff, 0xff} }; +/* mouse pointer from dev/syscons/scgfbrndr.c */ +static u_char mouse_pointer[16] = { + 0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x68, + 0x0c, 0x0c, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00 +}; + #define FB_WIDTH 640 #define FB_HEIGHT 480 #define FB_DEPTH 24 @@ -420,10 +426,141 @@ static video_switch_t bcmfbvidsw = { VIDEO_DRIVER(bcmfb, bcmfbvidsw, bcmfb_configure); -extern sc_rndr_sw_t txtrndrsw; -RENDERER(bcmfb, 0, txtrndrsw, gfb_set); +static vr_init_t bcmrend_init; +static vr_clear_t bcmrend_clear; +static vr_draw_border_t bcmrend_draw_border; +static vr_draw_t bcmrend_draw; +static vr_set_cursor_t bcmrend_set_cursor; +static vr_draw_cursor_t bcmrend_draw_cursor; +static vr_blink_cursor_t bcmrend_blink_cursor; +static vr_set_mouse_t bcmrend_set_mouse; +static vr_draw_mouse_t bcmrend_draw_mouse; + +/* + * We use our own renderer; this is because we must emulate a hardware + * cursor. + */ +static sc_rndr_sw_t bcmrend = { + bcmrend_init, + bcmrend_clear, + bcmrend_draw_border, + bcmrend_draw, + bcmrend_set_cursor, + bcmrend_draw_cursor, + bcmrend_blink_cursor, + bcmrend_set_mouse, + bcmrend_draw_mouse +}; + +RENDERER(bcmfb, 0, bcmrend, gfb_set); RENDERER_MODULE(bcmfb, gfb_set); +static void +bcmrend_init(scr_stat* scp) +{ +} + +static void +bcmrend_clear(scr_stat* scp, int c, int attr) +{ +} + +static void +bcmrend_draw_border(scr_stat* scp, int color) +{ +} + +static void +bcmrend_draw(scr_stat* scp, int from, int count, int flip) +{ + video_adapter_t* adp = scp->sc->adp; + int i, c, a; + + if (!flip) { + /* Normal printing */ + vidd_puts(adp, from, (uint16_t*)sc_vtb_pointer(&scp->vtb, from), count); + } else { + /* This is for selections and such: invert the color attribute */ + for (i = count; i-- > 0; ++from) { + c = sc_vtb_getc(&scp->vtb, from); + a = sc_vtb_geta(&scp->vtb, from) >> 8; + vidd_putc(adp, from, c, (a >> 4) | ((a & 0xf) << 4)); + } + } +} + +static void +bcmrend_set_cursor(scr_stat* scp, int base, int height, int blink) +{ +} + +static void +bcmrend_draw_cursor(scr_stat* scp, int off, int blink, int on, int flip) +{ + video_adapter_t* adp = scp->sc->adp; + struct video_adapter_softc *sc; + int row, col; + uint8_t *addr; + int i, j, bytes; + + sc = (struct video_adapter_softc *)adp; + + if (scp->curs_attr.height <= 0) + return; + + if (sc->fb_addr == 0) + return; + + if (off >= adp->va_info.vi_width * adp->va_info.vi_height) + return; + + /* calculate the coordinates in the video buffer */ + row = (off / adp->va_info.vi_width) * adp->va_info.vi_cheight; + col = (off % adp->va_info.vi_width) * adp->va_info.vi_cwidth; + + addr = (uint8_t *)sc->fb_addr + + (row + sc->ymargin)*(sc->stride) + + (sc->depth/8) * (col + sc->xmargin); + + bytes = sc->depth/8; + + /* our cursor consists of simply inverting the char under it */ + for (i = 0; i < adp->va_info.vi_cheight; i++) { + for (j = 0; j < adp->va_info.vi_cwidth; j++) { + switch (sc->depth) { + case 32: + case 24: + addr[bytes*j + 2] ^= 0xff; + /* FALLTHROUGH */ + case 16: + addr[bytes*j + 1] ^= 0xff; + addr[bytes*j] ^= 0xff; + break; + default: + break; + } + } + + addr += sc->stride; + } +} + +static void +bcmrend_blink_cursor(scr_stat* scp, int at, int flip) +{ +} + +static void +bcmrend_set_mouse(scr_stat* scp) +{ +} + +static void +bcmrend_draw_mouse(scr_stat* scp, int x, int y, int on) +{ + vidd_putm(scp->sc->adp, x, y, mouse_pointer, 0xffffffff, 16, 8); +} + static uint16_t bcmfb_static_window[ROW*COL]; extern u_char dflt_font_16[]; Modified: user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_systimer.c ============================================================================== --- user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_systimer.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/arm/broadcom/bcm2835/bcm2835_systimer.c Fri Dec 28 14:47:34 2012 (r244773) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #define DEFAULT_TIMER 3 #define DEFAULT_FREQUENCY 1000000 +#define MIN_PERIOD 100LLU #define SYSTIMER_CS 0x00 #define SYSTIMER_CLO 0x04 @@ -123,17 +124,24 @@ bcm_systimer_start(struct eventtimer *et struct systimer *st = et->et_priv; uint32_t clo; uint32_t count; + register_t s; if (first != NULL) { - st->enabled = 1; count = (st->et.et_frequency * (first->frac >> 32)) >> 32; if (first->sec != 0) count += st->et.et_frequency * first->sec; + s = intr_disable(); clo = bcm_systimer_tc_read_4(SYSTIMER_CLO); clo += count; + /* + * Clear pending interrupts + */ + bcm_systimer_tc_write_4(SYSTIMER_CS, (1 << st->index)); bcm_systimer_tc_write_4(SYSTIMER_C0 + st->index*4, clo); + st->enabled = 1; + intr_restore(s); return (0); } @@ -154,7 +162,13 @@ static int bcm_systimer_intr(void *arg) { struct systimer *st = (struct systimer *)arg; + uint32_t cs; + + cs = bcm_systimer_tc_read_4(SYSTIMER_CS); + if ((cs & (1 << st->index)) == 0) + return (FILTER_STRAY); + /* ACK interrupt */ bcm_systimer_tc_write_4(SYSTIMER_CS, (1 << st->index)); if (st->enabled) { if (st->et.et_active) { @@ -226,7 +240,7 @@ bcm_systimer_attach(device_t dev) sc->st[DEFAULT_TIMER].et.et_frequency = sc->sysclk_freq; sc->st[DEFAULT_TIMER].et.et_min_period.sec = 0; sc->st[DEFAULT_TIMER].et.et_min_period.frac = - ((0x00000002LLU << 32) / sc->st[DEFAULT_TIMER].et.et_frequency) << 32; + ((MIN_PERIOD << 32) / sc->st[DEFAULT_TIMER].et.et_frequency) << 32; sc->st[DEFAULT_TIMER].et.et_max_period.sec = 0xfffffff0U / sc->st[DEFAULT_TIMER].et.et_frequency; sc->st[DEFAULT_TIMER].et.et_max_period.frac = ((0xfffffffeLLU << 32) / sc->st[DEFAULT_TIMER].et.et_frequency) << 32; Modified: user/mjacob/sys/arm/versatile/versatile_clcd.c ============================================================================== --- user/mjacob/sys/arm/versatile/versatile_clcd.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/arm/versatile/versatile_clcd.c Fri Dec 28 14:47:34 2012 (r244773) @@ -194,6 +194,12 @@ static struct argb versatilefb_palette[1 {0x00, 0xff, 0xff, 0xff} }; +/* mouse pointer from dev/syscons/scgfbrndr.c */ +static u_char mouse_pointer[16] = { + 0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x68, + 0x0c, 0x0c, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00 +}; + #define FB_WIDTH 640 #define FB_HEIGHT 480 #define FB_DEPTH 16 @@ -450,10 +456,131 @@ static video_switch_t versatilefbvidsw = VIDEO_DRIVER(versatilefb, versatilefbvidsw, versatilefb_configure); -extern sc_rndr_sw_t txtrndrsw; -RENDERER(versatilefb, 0, txtrndrsw, gfb_set); +static vr_init_t clcdr_init; +static vr_clear_t clcdr_clear; +static vr_draw_border_t clcdr_draw_border; +static vr_draw_t clcdr_draw; +static vr_set_cursor_t clcdr_set_cursor; +static vr_draw_cursor_t clcdr_draw_cursor; +static vr_blink_cursor_t clcdr_blink_cursor; +static vr_set_mouse_t clcdr_set_mouse; +static vr_draw_mouse_t clcdr_draw_mouse; + +/* + * We use our own renderer; this is because we must emulate a hardware + * cursor. + */ +static sc_rndr_sw_t clcdrend = { + clcdr_init, + clcdr_clear, + clcdr_draw_border, + clcdr_draw, + clcdr_set_cursor, + clcdr_draw_cursor, + clcdr_blink_cursor, + clcdr_set_mouse, + clcdr_draw_mouse +}; + +RENDERER(versatilefb, 0, clcdrend, gfb_set); RENDERER_MODULE(versatilefb, gfb_set); +static void +clcdr_init(scr_stat* scp) +{ +} + +static void +clcdr_clear(scr_stat* scp, int c, int attr) +{ +} + +static void +clcdr_draw_border(scr_stat* scp, int color) +{ +} + +static void +clcdr_draw(scr_stat* scp, int from, int count, int flip) +{ + video_adapter_t* adp = scp->sc->adp; + int i, c, a; + + if (!flip) { + /* Normal printing */ + vidd_puts(adp, from, (uint16_t*)sc_vtb_pointer(&scp->vtb, from), count); + } else { + /* This is for selections and such: invert the color attribute */ + for (i = count; i-- > 0; ++from) { + c = sc_vtb_getc(&scp->vtb, from); + a = sc_vtb_geta(&scp->vtb, from) >> 8; + vidd_putc(adp, from, c, (a >> 4) | ((a & 0xf) << 4)); + } + } +} + +static void +clcdr_set_cursor(scr_stat* scp, int base, int height, int blink) +{ +} + +static void +clcdr_draw_cursor(scr_stat* scp, int off, int blink, int on, int flip) +{ + video_adapter_t* adp = scp->sc->adp; + struct video_adapter_softc *sc; + int row, col; + uint8_t *addr; + int i,j; + + sc = (struct video_adapter_softc *)adp; + + if (scp->curs_attr.height <= 0) + return; + + if (sc->fb_addr == 0) + return; + + if (off >= adp->va_info.vi_width * adp->va_info.vi_height) + return; + + /* calculate the coordinates in the video buffer */ + row = (off / adp->va_info.vi_width) * adp->va_info.vi_cheight; + col = (off % adp->va_info.vi_width) * adp->va_info.vi_cwidth; + + addr = (uint8_t *)sc->fb_addr + + (row + sc->ymargin)*(sc->stride) + + (sc->depth/8) * (col + sc->xmargin); + + /* our cursor consists of simply inverting the char under it */ + for (i = 0; i < adp->va_info.vi_cheight; i++) { + for (j = 0; j < adp->va_info.vi_cwidth; j++) { + + addr[2*j] ^= 0xff; + addr[2*j + 1] ^= 0xff; + } + + addr += sc->stride; + } +} + +static void +clcdr_blink_cursor(scr_stat* scp, int at, int flip) +{ +} + +static void +clcdr_set_mouse(scr_stat* scp) +{ +} + +static void +clcdr_draw_mouse(scr_stat* scp, int x, int y, int on) +{ + vidd_putm(scp->sc->adp, x, y, mouse_pointer, 0xffffffff, 16, 8); + +} + static uint16_t versatilefb_static_window[ROW*COL]; extern u_char dflt_font_16[]; @@ -629,6 +756,7 @@ versatilefb_read_hw_cursor(video_adapter static int versatilefb_set_hw_cursor(video_adapter_t *adp, int col, int row) { + return (0); } @@ -753,6 +881,9 @@ versatilefb_putc(video_adapter_t *adp, v if (sc->fb_addr == 0) return (0); + if (off >= adp->va_info.vi_width * adp->va_info.vi_height) + return (0); + row = (off / adp->va_info.vi_width) * adp->va_info.vi_cheight; col = (off % adp->va_info.vi_width) * adp->va_info.vi_cwidth; p = sc->font + c*VERSATILE_FONT_HEIGHT; Modified: user/mjacob/sys/dev/ath/ath_hal/ar5416/ar5416phy.h ============================================================================== --- user/mjacob/sys/dev/ath/ath_hal/ar5416/ar5416phy.h Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/dev/ath/ath_hal/ar5416/ar5416phy.h Fri Dec 28 14:47:34 2012 (r244773) @@ -57,6 +57,20 @@ #define AR_BT_DISABLE_BT_ANT 0x00100000 #define AR_BT_DISABLE_BT_ANT_S 20 +#define AR_PHY_SPECTRAL_SCAN 0x9910 +#define AR_PHY_SPECTRAL_SCAN_ENA 0x00000001 +#define AR_PHY_SPECTRAL_SCAN_ENA_S 0 +#define AR_PHY_SPECTRAL_SCAN_ACTIVE 0x00000002 +#define AR_PHY_SPECTRAL_SCAN_ACTIVE_S 1 +#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD 0x000000F0 +#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_S 4 +#define AR_PHY_SPECTRAL_SCAN_PERIOD 0x0000FF00 +#define AR_PHY_SPECTRAL_SCAN_PERIOD_S 8 +#define AR_PHY_SPECTRAL_SCAN_COUNT 0x00FF0000 +#define AR_PHY_SPECTRAL_SCAN_COUNT_S 16 +#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT 0x01000000 +#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_S 24 + /* For AR_PHY_RADAR0 */ #define AR_PHY_RADAR_0_FFT_ENA 0x80000000 @@ -64,6 +78,8 @@ #define AR_PHY_RADAR_EXT_ENA 0x00004000 #define AR_PHY_RADAR_1 0x9958 +#define AR_PHY_RADAR_1_BIN_THRESH_SEL 0x07000000 +#define AR_PHY_RADAR_1_BIN_THRESH_SEL_S 24 #define AR_PHY_RADAR_1_RELPWR_ENA 0x00800000 #define AR_PHY_RADAR_1_USE_FIR128 0x00400000 #define AR_PHY_RADAR_1_RELPWR_THRESH 0x003F0000 Modified: user/mjacob/sys/dev/pci/pci_user.c ============================================================================== --- user/mjacob/sys/dev/pci/pci_user.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/dev/pci/pci_user.c Fri Dec 28 14:47:34 2012 (r244773) @@ -425,12 +425,12 @@ pci_ioctl(struct cdev *dev, u_long cmd, #ifdef COMPAT_FREEBSD32 struct pci_conf_io32 *cio32 = NULL; struct pci_conf_old32 conf_old32; - struct pci_match_conf_old32 *pattern_buf_old32; + struct pci_match_conf_old32 *pattern_buf_old32 = NULL; #endif struct pci_conf_old conf_old; struct pci_io iodata; struct pci_io_old *io_old; - struct pci_match_conf_old *pattern_buf_old; + struct pci_match_conf_old *pattern_buf_old = NULL; io_old = NULL; @@ -470,10 +470,8 @@ pci_ioctl(struct cdev *dev, u_long cmd, #ifdef PRE7_COMPAT #ifdef COMPAT_FREEBSD32 case PCIOCGETCONF_OLD32: - pattern_buf_old32 = NULL; #endif case PCIOCGETCONF_OLD: - pattern_buf_old = NULL; #endif case PCIOCGETCONF: Modified: user/mjacob/sys/dev/usb/quirk/usb_quirk.c ============================================================================== --- user/mjacob/sys/dev/usb/quirk/usb_quirk.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/dev/usb/quirk/usb_quirk.c Fri Dec 28 14:47:34 2012 (r244773) @@ -482,6 +482,7 @@ static struct usb_quirk_entry usb_quirks * after issuing non-supported commands: */ USB_QUIRK(ALCOR, DUMMY, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE, UQ_MSC_NO_TEST_UNIT_READY, UQ_MATCH_VENDOR_ONLY), + USB_QUIRK(APPLE, DUMMY, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY), USB_QUIRK(FEIYA, DUMMY, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY), USB_QUIRK(REALTEK, DUMMY, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY), USB_QUIRK(INITIO, DUMMY, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY), Modified: user/mjacob/sys/dev/usb/usbdevs ============================================================================== --- user/mjacob/sys/dev/usb/usbdevs Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/dev/usb/usbdevs Fri Dec 28 14:47:34 2012 (r244773) @@ -1050,6 +1050,7 @@ product AOX USB101 0x0008 Ethernet product APC UPS 0x0002 Uninterruptible Power Supply /* Apple Computer products */ +product APPLE DUMMY 0x0000 Dummy product product APPLE IMAC_KBD 0x0201 USB iMac Keyboard product APPLE KBD 0x0202 USB Keyboard M2452 product APPLE EXT_KBD 0x020c Apple Extended USB Keyboard Modified: user/mjacob/sys/geom/geom_io.c ============================================================================== --- user/mjacob/sys/geom/geom_io.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/geom/geom_io.c Fri Dec 28 14:47:34 2012 (r244773) @@ -567,6 +567,9 @@ g_io_deliver(struct bio *bp, int error) printf("ENOMEM %p on %p(%s)\n", bp, pp, pp->name); bp->bio_children = 0; bp->bio_inbed = 0; + bp->bio_driver1 = NULL; + bp->bio_driver2 = NULL; + bp->bio_pflags = 0; g_io_request(bp, cp); pace++; return; Modified: user/mjacob/sys/kern/subr_syscall.c ============================================================================== --- user/mjacob/sys/kern/subr_syscall.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/kern/subr_syscall.c Fri Dec 28 14:47:34 2012 (r244773) @@ -78,7 +78,7 @@ syscallenter(struct thread *td, struct s ktrsyscall(sa->code, sa->narg, sa->args); #endif KTR_START4(KTR_SYSC, "syscall", syscallname(p, sa->code), - td, "pid:%d", td->td_proc->p_pid, "arg0:%p", sa->args[0], + (uintptr_t)td, "pid:%d", td->td_proc->p_pid, "arg0:%p", sa->args[0], "arg1:%p", sa->args[1], "arg2:%p", sa->args[2]); if (error == 0) { @@ -152,7 +152,7 @@ syscallenter(struct thread *td, struct s } retval: KTR_STOP4(KTR_SYSC, "syscall", syscallname(p, sa->code), - td, "pid:%d", td->td_proc->p_pid, "error:%d", error, + (uintptr_t)td, "pid:%d", td->td_proc->p_pid, "error:%d", error, "retval0:%#lx", td->td_retval[0], "retval1:%#lx", td->td_retval[1]); if (traced) { Modified: user/mjacob/sys/kern/vfs_mount.c ============================================================================== --- user/mjacob/sys/kern/vfs_mount.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/kern/vfs_mount.c Fri Dec 28 14:47:34 2012 (r244773) @@ -559,7 +559,7 @@ vfs_donmount(struct thread *td, uint64_t if (error || fstype[fstypelen - 1] != '\0') { error = EINVAL; if (errmsg != NULL) - strncpy(errmsg, "Invalid fstype", errmsg_len); + strlcpy(errmsg, "Invalid fstype", errmsg_len); goto bail; } fspathlen = 0; @@ -567,7 +567,7 @@ vfs_donmount(struct thread *td, uint64_t if (error || fspath[fspathlen - 1] != '\0') { error = EINVAL; if (errmsg != NULL) - strncpy(errmsg, "Invalid fspath", errmsg_len); + strlcpy(errmsg, "Invalid fspath", errmsg_len); goto bail; } @@ -1447,7 +1447,7 @@ vfs_filteropt(struct vfsoptlist *opts, c if (ret != 0) { TAILQ_FOREACH(opt, opts, link) { if (strcmp(opt->name, "errmsg") == 0) { - strncpy((char *)opt->value, errmsg, opt->len); + strlcpy((char *)opt->value, errmsg, opt->len); break; } } Modified: user/mjacob/sys/kern/vfs_subr.c ============================================================================== --- user/mjacob/sys/kern/vfs_subr.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/kern/vfs_subr.c Fri Dec 28 14:47:34 2012 (r244773) @@ -4724,12 +4724,6 @@ mnt_vnode_markerfree_active(struct vnode *mvp = NULL; } -#ifdef SMP -#define ALWAYS_YIELD (mp_ncpus == 1) -#else -#define ALWAYS_YIELD 1 -#endif - static struct vnode * mnt_vnode_next_active(struct vnode **mvp, struct mount *mp) { @@ -4746,7 +4740,7 @@ restart: continue; } if (!VI_TRYLOCK(vp)) { - if (ALWAYS_YIELD || should_yield()) { + if (mp_ncpus == 1 || should_yield()) { TAILQ_INSERT_BEFORE(vp, *mvp, v_actfreelist); mtx_unlock(&vnode_free_list_mtx); kern_yield(PRI_USER); @@ -4777,7 +4771,6 @@ restart: KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); return (vp); } -#undef ALWAYS_YIELD struct vnode * __mnt_vnode_next_active(struct vnode **mvp, struct mount *mp) Modified: user/mjacob/sys/net/if_stf.c ============================================================================== --- user/mjacob/sys/net/if_stf.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/net/if_stf.c Fri Dec 28 14:47:34 2012 (r244773) @@ -127,6 +127,11 @@ static int stf_route_cache = 1; SYSCTL_INT(_net_link_stf, OID_AUTO, route_cache, CTLFLAG_RW, &stf_route_cache, 0, "Caching of IPv4 routes for 6to4 Output"); +static int stf_permit_rfc1918 = 0; +TUNABLE_INT("net.link.stf.permit_rfc1918", &stf_permit_rfc1918); +SYSCTL_INT(_net_link_stf, OID_AUTO, permit_rfc1918, CTLFLAG_RW | CTLFLAG_TUN, + &stf_permit_rfc1918, 0, "Permit the use of private IPv4 addresses"); + #define STFUNIT 0 #define IN6_IS_ADDR_6TO4(x) (ntohs((x)->s6_addr16[0]) == 0x2002) @@ -581,9 +586,10 @@ isrfc1918addr(in) * returns 1 if private address range: * 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 */ - if ((ntohl(in->s_addr) & 0xff000000) >> 24 == 10 || + if (stf_permit_rfc1918 == 0 && ( + (ntohl(in->s_addr) & 0xff000000) >> 24 == 10 || (ntohl(in->s_addr) & 0xfff00000) >> 16 == 172 * 256 + 16 || - (ntohl(in->s_addr) & 0xffff0000) >> 16 == 192 * 256 + 168) + (ntohl(in->s_addr) & 0xffff0000) >> 16 == 192 * 256 + 168)) return 1; return 0; Modified: user/mjacob/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- user/mjacob/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Fri Dec 28 14:47:34 2012 (r244773) @@ -398,6 +398,12 @@ static const STRUCT_USB_HOST_ID ubt_devs /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */ { USB_VPI(USB_VENDOR_AVM, 0x3800, 0) }, + + /* Broadcom USB dongles, mostly BCM20702 and BCM20702A0 */ + { USB_VENDOR(USB_VENDOR_BROADCOM), + USB_IFACE_CLASS(UICLASS_VENDOR), + USB_IFACE_SUBCLASS(UDSUBCLASS_RF), + USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) }, }; /* @@ -1760,7 +1766,7 @@ static device_method_t ubt_methods[] = DEVMETHOD(device_probe, ubt_probe), DEVMETHOD(device_attach, ubt_attach), DEVMETHOD(device_detach, ubt_detach), - { 0, 0 } + DEVMETHOD_END }; static driver_t ubt_driver = Modified: user/mjacob/sys/netinet/in.c ============================================================================== --- user/mjacob/sys/netinet/in.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/in.c Fri Dec 28 14:47:34 2012 (r244773) @@ -799,7 +799,7 @@ in_ifinit(struct ifnet *ifp, struct in_i int masksupplied, int vhid) { register u_long i = ntohl(sin->sin_addr.s_addr); - int flags = RTF_UP, error = 0; + int flags, error = 0; IN_IFADDR_WLOCK(); if (ia->ia_addr.sin_family == AF_INET) @@ -819,14 +819,19 @@ in_ifinit(struct ifnet *ifp, struct in_i return (error); /* - * Give the interface a chance to initialize - * if this is its first address, - * and to validate the address if necessary. + * Give the interface a chance to initialize if this is its first + * address, and to validate the address if necessary. + * + * Historically, drivers managed IFF_UP flag theirselves, so we + * need to check whether driver did that. */ + flags = ifp->if_flags; if (ifp->if_ioctl != NULL && (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia)) != 0) /* LIST_REMOVE(ia, ia_hash) is done in in_control */ return (error); + if ((ifp->if_flags & IFF_UP) && (flags & IFF_UP) == 0) + if_up(ifp); /* * Be compatible with network classes, if netmask isn't supplied, @@ -843,9 +848,11 @@ in_ifinit(struct ifnet *ifp, struct in_i } ia->ia_subnet = i & ia->ia_subnetmask; in_socktrim(&ia->ia_sockmask); + /* * Add route for the network. */ + flags = RTF_UP; ia->ia_ifa.ifa_metric = ifp->if_metric; if (ifp->if_flags & IFF_BROADCAST) { if (ia->ia_subnetmask == IN_RFC3021_MASK) Modified: user/mjacob/sys/netinet/ip_carp.c ============================================================================== --- user/mjacob/sys/netinet/ip_carp.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/ip_carp.c Fri Dec 28 14:47:34 2012 (r244773) @@ -192,6 +192,7 @@ static int carp_log = 1; /* Log level. static int carp_demotion = 0; /* Global advskew demotion. */ static int carp_senderr_adj = CARP_MAXSKEW; /* Send error demotion factor */ static int carp_ifdown_adj = CARP_MAXSKEW; /* Iface down demotion factor */ +static int carp_demote_adj_sysctl(SYSCTL_HANDLER_ARGS); SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW, 0, "CARP"); SYSCTL_INT(_net_inet_carp, OID_AUTO, allow, CTLFLAG_RW, &carp_allow, 0, @@ -200,8 +201,9 @@ SYSCTL_INT(_net_inet_carp, OID_AUTO, pre "High-priority backup preemption mode"); SYSCTL_INT(_net_inet_carp, OID_AUTO, log, CTLFLAG_RW, &carp_log, 0, "CARP log level"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, demotion, CTLFLAG_RW, &carp_demotion, 0, - "Demotion factor (skew of advskew)"); +SYSCTL_PROC(_net_inet_carp, OID_AUTO, demotion, CTLTYPE_INT|CTLFLAG_RW, + 0, 0, carp_demote_adj_sysctl, "I", + "Adjust demotion factor (skew of advskew)"); SYSCTL_INT(_net_inet_carp, OID_AUTO, senderr_demotion_factor, CTLFLAG_RW, &carp_senderr_adj, 0, "Send error demotion factor adjustment"); SYSCTL_INT(_net_inet_carp, OID_AUTO, ifdown_demotion_factor, CTLFLAG_RW, @@ -288,12 +290,6 @@ static struct mtx carp_mtx; static struct task carp_sendall_task = TASK_INITIALIZER(0, carp_send_ad_all, NULL); -static __inline uint16_t -carp_cksum(struct mbuf *m, int len) -{ - return (in_cksum(m, len)); -} - static void carp_hmac_prepare(struct carp_softc *sc) { @@ -476,7 +472,7 @@ carp_input(struct mbuf *m, int hlen) /* verify the CARP checksum */ m->m_data += iplen; - if (carp_cksum(m, len - iplen)) { + if (in_cksum(m, len - iplen)) { CARPSTATS_INC(carps_badsum); CARP_DEBUG("%s: checksum failed on %s\n", __func__, m->m_pkthdr.rcvif->if_xname); @@ -535,7 +531,7 @@ carp6_input(struct mbuf **mp, int *offp, /* verify the CARP checksum */ m->m_data += *offp; - if (carp_cksum(m, sizeof(*ch))) { + if (in_cksum(m, sizeof(*ch))) { CARPSTATS_INC(carps_badsum); CARP_DEBUG("%s: checksum failed, on %s\n", __func__, m->m_pkthdr.rcvif->if_xname); @@ -807,7 +803,7 @@ carp_send_ad_locked(struct carp_softc *s goto resched; m->m_data += sizeof(*ip); - ch_ptr->carp_cksum = carp_cksum(m, len - sizeof(*ip)); + ch_ptr->carp_cksum = in_cksum(m, len - sizeof(*ip)); m->m_data -= sizeof(*ip); CARPSTATS_INC(carps_opackets); @@ -880,7 +876,7 @@ carp_send_ad_locked(struct carp_softc *s goto resched; m->m_data += sizeof(*ip6); - ch_ptr->carp_cksum = carp_cksum(m, len - sizeof(*ip6)); + ch_ptr->carp_cksum = in_cksum(m, len - sizeof(*ip6)); m->m_data -= sizeof(*ip6); CARPSTATS_INC(carps_opackets6); @@ -1999,11 +1995,26 @@ carp_sc_state(struct carp_softc *sc) static void carp_demote_adj(int adj, char *reason) { - carp_demotion += adj; + atomic_add_int(&carp_demotion, adj); CARP_LOG("demoted by %d to %d (%s)\n", adj, carp_demotion, reason); taskqueue_enqueue(taskqueue_swi, &carp_sendall_task); } +static int +carp_demote_adj_sysctl(SYSCTL_HANDLER_ARGS) +{ + int new, error; + + new = carp_demotion; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error || !req->newptr) + return (error); + + carp_demote_adj(new, "sysctl"); + + return (0); +} + #ifdef INET extern struct domain inetdomain; static struct protosw in_carp_protosw = { Modified: user/mjacob/sys/netinet/sctp_pcb.c ============================================================================== --- user/mjacob/sys/netinet/sctp_pcb.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/sctp_pcb.c Fri Dec 28 14:47:34 2012 (r244773) @@ -2694,9 +2694,9 @@ sctp_inpcb_bind(struct socket *so, struc ip_inp = (struct inpcb *)so->so_pcb; #ifdef SCTP_DEBUG if (addr) { - SCTPDBG(SCTP_DEBUG_PCB1, "Bind called port:%d\n", + SCTPDBG(SCTP_DEBUG_PCB1, "Bind called port: %d\n", ntohs(((struct sockaddr_in *)addr)->sin_port)); - SCTPDBG(SCTP_DEBUG_PCB1, "Addr :"); + SCTPDBG(SCTP_DEBUG_PCB1, "Addr: "); SCTPDBG_ADDR(SCTP_DEBUG_PCB1, addr); } #endif Modified: user/mjacob/sys/netinet/sctp_usrreq.c ============================================================================== --- user/mjacob/sys/netinet/sctp_usrreq.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/sctp_usrreq.c Fri Dec 28 14:47:34 2012 (r244773) @@ -547,27 +547,21 @@ try_again: static int sctp_bind(struct socket *so, struct sockaddr *addr, struct thread *p) { - struct sctp_inpcb *inp = NULL; - int error; + struct sctp_inpcb *inp; -#ifdef INET - if (addr && addr->sa_family != AF_INET) { - /* must be a v4 address! */ - SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); - return (EINVAL); - } -#endif /* INET6 */ - if (addr && (addr->sa_len != sizeof(struct sockaddr_in))) { - SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); - return (EINVAL); - } inp = (struct sctp_inpcb *)so->so_pcb; if (inp == NULL) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); return (EINVAL); } - error = sctp_inpcb_bind(so, addr, NULL, p); - return (error); + if (addr != NULL) { + if ((addr->sa_family != AF_INET) || + (addr->sa_len != sizeof(struct sockaddr_in))) { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); + return (EINVAL); + } + } + return (sctp_inpcb_bind(so, addr, NULL, p)); } #endif Modified: user/mjacob/sys/netinet/sctputil.c ============================================================================== --- user/mjacob/sys/netinet/sctputil.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/sctputil.c Fri Dec 28 14:47:34 2012 (r244773) @@ -4955,7 +4955,7 @@ sctp_get_ifa_hash_val(struct sockaddr *a } #endif #ifdef INET6 - case INET6: + case AF_INET6: { struct sockaddr_in6 *sin6; uint32_t hash_of_addr; Modified: user/mjacob/sys/netinet/tcp_reass.c ============================================================================== --- user/mjacob/sys/netinet/tcp_reass.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/tcp_reass.c Fri Dec 28 14:47:34 2012 (r244773) @@ -160,7 +160,7 @@ tcp_reass_sysctl_qsize(SYSCTL_HANDLER_AR int qsize; qsize = uma_zone_get_cur(V_tcp_reass_zone); - return (sysctl_handle_int(oidp, &qsize, sizeof(qsize), req)); + return (sysctl_handle_int(oidp, &qsize, 0, req)); } int Modified: user/mjacob/sys/netinet/tcp_syncache.c ============================================================================== --- user/mjacob/sys/netinet/tcp_syncache.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet/tcp_syncache.c Fri Dec 28 14:47:34 2012 (r244773) @@ -312,7 +312,7 @@ syncache_sysctl_count(SYSCTL_HANDLER_ARG int count; count = uma_zone_get_cur(V_tcp_syncache.zone); - return (sysctl_handle_int(oidp, &count, sizeof(count), req)); + return (sysctl_handle_int(oidp, &count, 0, req)); } /* Modified: user/mjacob/sys/netinet6/in6.c ============================================================================== --- user/mjacob/sys/netinet6/in6.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netinet6/in6.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1874,9 +1874,18 @@ in6_ifinit(struct ifnet *ifp, struct in6 ia->ia_addr = *sin6; if (ifacount <= 1 && ifp->if_ioctl) { + int flags; + + /* + * Historically, drivers managed IFF_UP flag theirselves, so we + * need to check whether driver did that. + */ + flags = ifp->if_flags; error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia); if (error) return (error); + if ((ifp->if_flags & IFF_UP) && (flags & IFF_UP) == 0) + if_up(ifp); } ia->ia_ifa.ifa_metric = ifp->if_metric; Modified: user/mjacob/sys/netpfil/pf/if_pflog.c ============================================================================== --- user/mjacob/sys/netpfil/pf/if_pflog.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/if_pflog.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,5 +1,4 @@ -/* $OpenBSD: if_pflog.c,v 1.26 2007/10/18 21:58:18 mpf Exp $ */ -/* +/*- * The authors of this code are John Ioannidis (ji@tla.org), * Angelos D. Keromytis (kermit@csd.uch.gr) and * Niels Provos (provos@physnet.uni-hamburg.de). @@ -31,6 +30,8 @@ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR * PURPOSE. + * + * $OpenBSD: if_pflog.c,v 1.26 2007/10/18 21:58:18 mpf Exp $ */ #include Modified: user/mjacob/sys/netpfil/pf/if_pfsync.c ============================================================================== --- user/mjacob/sys/netpfil/pf/if_pfsync.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/if_pfsync.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,7 +1,6 @@ -/* $OpenBSD: if_pfsync.c,v 1.110 2009/02/24 05:39:19 dlg Exp $ */ - -/* +/*- * Copyright (c) 2002 Michael Shalayeff + * Copyright (c) 2012 Gleb Smirnoff * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +25,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -/* +/*- * Copyright (c) 2009 David Gwynne * * Permission to use, copy, modify, and distribute this software for any @@ -43,6 +42,8 @@ */ /* + * $OpenBSD: if_pfsync.c,v 1.110 2009/02/24 05:39:19 dlg Exp $ + * * Revisions picked from OpenBSD after revision 1.110 import: * 1.119 - don't m_copydata() beyond the len of mbuf in pfsync_input() * 1.118, 1.124, 1.148, 1.149, 1.151, 1.171 - fixes to bulk updates Modified: user/mjacob/sys/netpfil/pf/pf.c ============================================================================== --- user/mjacob/sys/netpfil/pf/pf.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/pf.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,8 +1,7 @@ -/* $OpenBSD: pf.c,v 1.634 2009/02/27 12:37:45 henning Exp $ */ - -/* +/*- * Copyright (c) 2001 Daniel Hartmeier * Copyright (c) 2002 - 2008 Henning Brauer + * Copyright (c) 2012 Gleb Smirnoff * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,10 +32,10 @@ * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537. * + * $OpenBSD: pf.c,v 1.634 2009/02/27 12:37:45 henning Exp $ */ #include - __FBSDID("$FreeBSD$"); #include "opt_inet.h" Modified: user/mjacob/sys/netpfil/pf/pf_if.c ============================================================================== --- user/mjacob/sys/netpfil/pf/pf_if.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/pf_if.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,10 +1,9 @@ -/* $OpenBSD: pf_if.c,v 1.54 2008/06/14 16:55:28 mk Exp $ */ - -/* - * Copyright 2005 Henning Brauer - * Copyright 2005 Ryan McBride +/*- * Copyright (c) 2001 Daniel Hartmeier * Copyright (c) 2003 Cedric Berger + * Copyright (c) 2005 Henning Brauer + * Copyright (c) 2005 Ryan McBride + * Copyright (c) 2012 Gleb Smirnoff * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,10 +29,11 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * $OpenBSD: pf_if.c,v 1.54 2008/06/14 16:55:28 mk Exp $ */ #include - __FBSDID("$FreeBSD$"); #include "opt_inet.h" Modified: user/mjacob/sys/netpfil/pf/pf_ioctl.c ============================================================================== --- user/mjacob/sys/netpfil/pf/pf_ioctl.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/pf_ioctl.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,8 +1,7 @@ -/* $OpenBSD: pf_ioctl.c,v 1.213 2009/02/15 21:46:12 mbalmer Exp $ */ - -/* +/*- * Copyright (c) 2001 Daniel Hartmeier * Copyright (c) 2002,2003 Henning Brauer + * Copyright (c) 2012 Gleb Smirnoff * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,6 +32,7 @@ * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537. * + * $OpenBSD: pf_ioctl.c,v 1.213 2009/02/15 21:46:12 mbalmer Exp $ */ #include Modified: user/mjacob/sys/netpfil/pf/pf_lb.c ============================================================================== --- user/mjacob/sys/netpfil/pf/pf_lb.c Fri Dec 28 14:06:49 2012 (r244772) +++ user/mjacob/sys/netpfil/pf/pf_lb.c Fri Dec 28 14:47:34 2012 (r244773) @@ -1,6 +1,4 @@ -/* $OpenBSD: pf_lb.c,v 1.2 2009/02/12 02:13:15 sthen Exp $ */ - -/* +/*- * Copyright (c) 2001 Daniel Hartmeier * Copyright (c) 2002 - 2008 Henning Brauer * All rights reserved. @@ -33,6 +31,7 @@ * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537. * + * $OpenBSD: pf_lb.c,v 1.2 2009/02/12 02:13:15 sthen Exp $ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***