From owner-p4-projects@FreeBSD.ORG Sun Nov 25 00:28:48 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B509416A41B; Sun, 25 Nov 2007 00:28: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 4FD1716A419 for ; Sun, 25 Nov 2007 00:28: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 2FA9D13C43E for ; Sun, 25 Nov 2007 00:28: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 lAP0Smus091282 for ; Sun, 25 Nov 2007 00:28:48 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAP0SmXT091279 for perforce@freebsd.org; Sun, 25 Nov 2007 00:28:48 GMT (envelope-from jb@freebsd.org) Date: Sun, 25 Nov 2007 00:28:48 GMT Message-Id: <200711250028.lAP0SmXT091279@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 129474 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, 25 Nov 2007 00:28:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=129474 Change 129474 by jb@jb_freebsd1 on 2007/11/25 00:28:28 Add all the CTF conversion stuff back in. Affected files ... .. //depot/projects/dtrace/src/share/mk/sys.mk#16 edit Differences ... ==== //depot/projects/dtrace/src/share/mk/sys.mk#16 (text+ko) ==== @@ -45,6 +45,10 @@ .endif .endif +.if ${MACHINE_ARCH} != "amd64" && ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "sparc64" +NO_CTF= 1 +.endif + # C Type Format data is required for DTrace CTFFLAGS ?= -L VERSION @@ -136,9 +140,15 @@ # SINGLE SUFFIX RULES .c: ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .f: ${FC} ${FFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .sh: cp ${.IMPSRC} ${.TARGET} @@ -148,21 +158,33 @@ .c.o: ${CC} ${CFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .f.o: ${FC} ${FFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .y.o: ${YACC} ${YFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} -c y.tab.c rm -f y.tab.c mv y.tab.o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .l.o: ${LEX} ${LFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} -c lex.yy.c rm -f lex.yy.c mv lex.yy.o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .y.c: ${YACC} ${YFLAGS} ${.IMPSRC} @@ -200,21 +222,39 @@ .c: ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .c.o: ${CC} ${CFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .cc .cpp .cxx .C: ${CXX} ${CXXFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .cc.o .cpp.o .cxx.o .C.o: ${CXX} ${CXXFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .m.o: ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .p.o: ${PC} ${PFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .e .r .F .f: ${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} \ @@ -225,23 +265,38 @@ .S.o: ${CC} ${CFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .asm.o: ${CC} -x assembler-with-cpp ${CFLAGS} -c ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .s.o: ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif # XXX not -j safe .y.o: ${YACC} ${YFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET} rm -f y.tab.c +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .l.o: ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c ${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET} rm -f ${.PREFIX}.tmp.c +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif # XXX not -j safe .y.c: @@ -253,22 +308,34 @@ .s.out .c.out .o.out: ${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .f.out .F.out .r.out .e.out: ${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \ ${LDLIBS} -o ${.TARGET} rm -f ${.PREFIX}.o +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif # XXX not -j safe .y.out: ${YACC} ${YFLAGS} ${.IMPSRC} ${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET} rm -f y.tab.c +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif .l.out: ${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c ${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET} rm -f ${.PREFIX}.tmp.c +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif # FreeBSD build pollution. Hide it in the non-POSIX part of the ifdef. __MAKE_CONF?=/etc/make.conf From owner-p4-projects@FreeBSD.ORG Sun Nov 25 00:29:50 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0DAD916A419; Sun, 25 Nov 2007 00:29: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 C76AA16A417 for ; Sun, 25 Nov 2007 00:29: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 8A63813C468 for ; Sun, 25 Nov 2007 00:29: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 lAP0Tngi091308 for ; Sun, 25 Nov 2007 00:29:49 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAP0TnqW091305 for perforce@freebsd.org; Sun, 25 Nov 2007 00:29:49 GMT (envelope-from jb@freebsd.org) Date: Sun, 25 Nov 2007 00:29:49 GMT Message-Id: <200711250029.lAP0TnqW091305@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 129475 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, 25 Nov 2007 00:29:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=129475 Change 129475 by jb@jb_freebsd1 on 2007/11/25 00:29:30 YAOSCHF. Yet Another OpenSolaris Compatibility Header File. Many more to come. :-( Affected files ... .. //depot/projects/dtrace/src/compat/opensolaris/include/alloca.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Nov 25 09:35:40 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F0E916A420; Sun, 25 Nov 2007 09:35: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 2654916A417 for ; Sun, 25 Nov 2007 09:35:40 +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 14BB813C459 for ; Sun, 25 Nov 2007 09:35:40 +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 lAP9ZehB075226 for ; Sun, 25 Nov 2007 09:35:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAP9Zdn2075223 for perforce@freebsd.org; Sun, 25 Nov 2007 09:35:39 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 09:35:39 GMT Message-Id: <200711250935.lAP9Zdn2075223@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 129486 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, 25 Nov 2007 09:35:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=129486 Change 129486 by hselasky@hselasky_laptop001 on 2007/11/25 09:35:02 Give the CPU cache flush and invalidate functions more sensible names so that we don't get confused. The change was scripted by: [ -f src/$F ] && (cat src/$F | sed -e "s/usbd_page_dma_enter/usbd_page_cpu_flush/g" | sed -e "s/usbd_page_dma_exit/usbd_page_cpu_invalidate/g" > temp ) && ((diff temp src/$F > /dev/null) || (cat temp > src/$F)) Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#50 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#40 edit .. //depot/projects/usb/src/sys/dev/usb/uhci.c#42 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#51 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#57 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#50 (text+ko) ==== @@ -211,7 +211,7 @@ sc->sc_eintrs = EHCI_NORMAL_INTRS; - usbd_page_dma_exit(&(sc->sc_hw_page)); + usbd_page_cpu_invalidate(&(sc->sc_hw_page)); for (i = 0; i < EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { hw_ptr->intr_start[i].qh_self = @@ -332,7 +332,7 @@ sc->sc_async_p_last = &(hw_ptr->async_start); - usbd_page_dma_enter(&(sc->sc_hw_page)); + usbd_page_cpu_flush(&(sc->sc_hw_page)); #ifdef USB_DEBUG if (ehcidebug) { @@ -684,11 +684,11 @@ { uint8_t temp; - usbd_page_dma_exit(sqtd->page); + usbd_page_cpu_invalidate(sqtd->page); printf("QTD(%p) at 0x%08x:\n", sqtd, le32toh(sqtd->qtd_self)); ehci_dump_qtd(sqtd); temp = (sqtd->qtd_next & htole32(EHCI_LINK_TERMINATE)) ? 1 : 0; - usbd_page_dma_enter(sqtd->page); + usbd_page_cpu_flush(sqtd->page); return (temp); } @@ -713,7 +713,7 @@ { uint32_t endp, endphub; - usbd_page_dma_exit(qh->page); + usbd_page_cpu_invalidate(qh->page); printf("QH(%p) at 0x%08x:\n", qh, le32toh(qh->qh_self) & ~0x1F); printf(" link="); ehci_dump_link(qh->qh_link, 1); @@ -738,14 +738,14 @@ printf("\n"); printf("Overlay qTD:\n"); ehci_dump_qtd((void *)&qh->qh_qtd); - usbd_page_dma_enter(qh->page); + usbd_page_cpu_flush(qh->page); return; } static void ehci_dump_sitd(ehci_sitd_t *sitd) { - usbd_page_dma_exit(sitd->page); + usbd_page_cpu_invalidate(sitd->page); printf("SITD(%p) at 0x%08x\n", sitd, le32toh(sitd->sitd_self) & ~0x1F); printf(" next=0x%08x\n", le32toh(sitd->sitd_next)); printf(" portaddr=0x%08x dir=%s addr=%d endpt=0x%x port=0x%x huba=0x%x\n", @@ -766,14 +766,14 @@ le32toh(sitd->sitd_bp[1]), le32toh(sitd->sitd_bp_hi[0]), le32toh(sitd->sitd_bp_hi[1])); - usbd_page_dma_enter(sitd->page); + usbd_page_cpu_flush(sitd->page); return; } static void ehci_dump_itd(ehci_itd_t *itd) { - usbd_page_dma_exit(itd->page); + usbd_page_cpu_invalidate(itd->page); printf("ITD(%p) at 0x%08x\n", itd, le32toh(itd->itd_self) & ~0x1F); printf(" next=0x%08x\n", le32toh(itd->itd_next)); printf(" status[0]=0x%08x; <%s>\n", le32toh(itd->itd_status[0]), @@ -815,7 +815,7 @@ le32toh(itd->itd_bp_hi[4]), le32toh(itd->itd_bp_hi[5]), le32toh(itd->itd_bp_hi[6])); - usbd_page_dma_enter(itd->page); + usbd_page_cpu_flush(itd->page); return; } @@ -858,15 +858,15 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(std->page); + usbd_page_cpu_invalidate(std->page); std->next = last->next; std->sitd_next = last->sitd_next; std->prev = last; - usbd_page_dma_enter(std->page); - usbd_page_dma_exit(last->page); + usbd_page_cpu_flush(std->page); + usbd_page_cpu_invalidate(last->page); /* * the last->next->prev is never followed: std->next->prev = std; @@ -874,7 +874,7 @@ last->next = std; last->sitd_next = std->sitd_self; - usbd_page_dma_enter(last->page); + usbd_page_cpu_flush(last->page); return (std); } @@ -887,15 +887,15 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(std->page); + usbd_page_cpu_invalidate(std->page); std->next = last->next; std->itd_next = last->itd_next; std->prev = last; - usbd_page_dma_enter(std->page); - usbd_page_dma_exit(last->page); + usbd_page_cpu_flush(std->page); + usbd_page_cpu_invalidate(last->page); /* * the last->next->prev is never followed: std->next->prev = std; @@ -903,7 +903,7 @@ last->next = std; last->itd_next = std->itd_self; - usbd_page_dma_enter(last->page); + usbd_page_cpu_flush(last->page); return (std); } @@ -916,15 +916,15 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(sqh->page); + usbd_page_cpu_invalidate(sqh->page); sqh->next = last->next; sqh->qh_link = last->qh_link; sqh->prev = last; - usbd_page_dma_enter(sqh->page); - usbd_page_dma_exit(last->page); + usbd_page_cpu_flush(sqh->page); + usbd_page_cpu_invalidate(last->page); /* * the last->next->prev is never followed: sqh->next->prev = sqh; @@ -933,7 +933,7 @@ last->next = sqh; last->qh_link = sqh->qh_self; - usbd_page_dma_enter(last->page); + usbd_page_cpu_flush(last->page); #ifdef USB_DEBUG if (ehcidebug > 5) { @@ -952,17 +952,17 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(std->prev->page); + usbd_page_cpu_invalidate(std->prev->page); std->prev->next = std->next; std->prev->sitd_next = std->sitd_next; - usbd_page_dma_enter(std->prev->page); + usbd_page_cpu_flush(std->prev->page); if (std->next) { - usbd_page_dma_exit(std->next->page); + usbd_page_cpu_invalidate(std->next->page); std->next->prev = std->prev; - usbd_page_dma_enter(std->next->page); + usbd_page_cpu_flush(std->next->page); } return ((last == std) ? std->prev : last); } @@ -975,17 +975,17 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(std->prev->page); + usbd_page_cpu_invalidate(std->prev->page); std->prev->next = std->next; std->prev->itd_next = std->itd_next; - usbd_page_dma_enter(std->prev->page); + usbd_page_cpu_flush(std->prev->page); if (std->next) { - usbd_page_dma_exit(std->next->page); + usbd_page_cpu_invalidate(std->next->page); std->next->prev = std->prev; - usbd_page_dma_enter(std->next->page); + usbd_page_cpu_flush(std->next->page); } return ((last == std) ? std->prev : last); } @@ -1000,19 +1000,19 @@ /* only remove if not removed from a queue */ if (sqh->prev) { - usbd_page_dma_exit(sqh->prev->page); + usbd_page_cpu_invalidate(sqh->prev->page); sqh->prev->next = sqh->next; sqh->prev->qh_link = sqh->qh_link; - usbd_page_dma_enter(sqh->prev->page); + usbd_page_cpu_flush(sqh->prev->page); if (sqh->next) { - usbd_page_dma_exit(sqh->next->page); + usbd_page_cpu_invalidate(sqh->next->page); sqh->next->prev = sqh->prev; - usbd_page_dma_enter(sqh->next->page); + usbd_page_cpu_flush(sqh->next->page); } - usbd_page_dma_exit(sqh->page); + usbd_page_cpu_invalidate(sqh->page); /* * set the Terminate-bit in the e_next of the QH, in case @@ -1022,7 +1022,7 @@ sqh->qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE); - usbd_page_dma_enter(sqh->page); + usbd_page_cpu_flush(sqh->page); last = ((last == sqh) ? sqh->prev : last); @@ -1044,9 +1044,9 @@ while (1) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = le32toh(td->qtd_status); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); len = EHCI_QTD_GET_BYTES(status); @@ -1211,11 +1211,11 @@ /* isochronous full speed transfer */ - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = le32toh(td->sitd_status); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); if (!(status & EHCI_SITD_ACTIVE)) { ehci_device_done(xfer, USBD_NORMAL_COMPLETION); @@ -1226,7 +1226,7 @@ /* isochronous high speed transfer */ - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = ((!(td->itd_status[0] & htole32(EHCI_ITD_ACTIVE))) && (!(td->itd_status[1] & htole32(EHCI_ITD_ACTIVE))) && @@ -1237,7 +1237,7 @@ (!(td->itd_status[6] & htole32(EHCI_ITD_ACTIVE))) && (!(td->itd_status[7] & htole32(EHCI_ITD_ACTIVE)))); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); if (status) { ehci_device_done(xfer, USBD_NORMAL_COMPLETION); @@ -1255,9 +1255,9 @@ td = xfer->td_transfer_cache; while (1) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = le32toh(td->qtd_status); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* * if there is an active TD the transfer isn't done @@ -1598,7 +1598,7 @@ continue; } - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* fill out current TD */ @@ -1678,7 +1678,7 @@ td->qtd_altnext = qtd_altnext; td->alt_next = td_alt_next; - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); } if (precompute) { @@ -1838,14 +1838,14 @@ } td = temp.td; - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* the last TD terminates the transfer: */ td->qtd_next = htole32(EHCI_LINK_TERMINATE); td->qtd_altnext = htole32(EHCI_LINK_TERMINATE); td->qtd_status |= htole32(EHCI_QTD_IOC); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* must have at least one frame! */ @@ -1863,7 +1863,7 @@ qh = xfer->qh_start; - usbd_page_dma_exit(qh->page); + usbd_page_cpu_invalidate(qh->page); /* the "qh_link" field is filled when the QH is added */ @@ -1925,7 +1925,7 @@ qh->qh_qtd.qtd_next = td->qtd_self; qh->qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE); - usbd_page_dma_enter(qh->page); + usbd_page_cpu_flush(qh->page); EHCI_APPEND_QH(qh, *qh_last); return; @@ -1999,9 +1999,9 @@ ehci_dump_sitd(td); } #endif - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = le32toh(td->sitd_status); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* check for active transfers */ if (status & EHCI_SITD_ACTIVE) { @@ -2060,9 +2060,9 @@ } #endif - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); status = le32toh(td->itd_status[td_no]); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); if (status & EHCI_ITD_ACTIVE) { need_delay = 1; @@ -2453,7 +2453,7 @@ /* initialize all TD's */ for (td = xfer->td_start; td; td = td->obj_next) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); td->sitd_portaddr = sitd_portaddr; @@ -2465,7 +2465,7 @@ */ td->sitd_back = htole32(EHCI_LINK_TERMINATE); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); } return; } @@ -2593,7 +2593,7 @@ */ sa = usbd_fs_isoc_schedule_alloc(fss, *plen); - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); td->sitd_bp[0] = htole32(buf_res.physaddr); @@ -2647,7 +2647,7 @@ (EHCI_SITD_ACTIVE | EHCI_SITD_SET_LEN(*plen)); } - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); #ifdef USB_DEBUG if (ehcidebug > 15) { @@ -2712,7 +2712,7 @@ /* initialize all TD's */ for (td = xfer->td_start; td; td = td->obj_next) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* set TD inactive */ td->itd_status[0] = 0; @@ -2741,7 +2741,7 @@ /* set transfer multiplier */ td->itd_bp[2] = htole32(xfer->max_packet_count & 3); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); } return; } @@ -2856,7 +2856,7 @@ *plen = xfer->max_frame_size; } if (td_no == 0) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* update page address */ td->itd_bp[page_no] &= htole32(0xFFF); @@ -2928,7 +2928,7 @@ td_no++; if ((td_no == 8) || (nframes == 0)) { - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); #ifdef USB_DEBUG if (ehcidebug > 15) { DPRINTFN(15, ("HS-TD %d\n", nframes)); @@ -3744,7 +3744,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); td = page_info.buffer; @@ -3755,7 +3755,7 @@ last_obj = td; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ehci_itd_t); } @@ -3770,7 +3770,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); td = page_info.buffer; @@ -3781,7 +3781,7 @@ last_obj = td; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ehci_sitd_t); } @@ -3796,7 +3796,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); qtd = page_info.buffer; @@ -3807,7 +3807,7 @@ last_obj = qtd; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ehci_qtd_t); } @@ -3830,7 +3830,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); qh = page_info.buffer; @@ -3841,7 +3841,7 @@ last_obj = qh; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ehci_qh_t); } ==== //depot/projects/usb/src/sys/dev/usb/ohci.c#40 (text+ko) ==== @@ -282,7 +282,7 @@ sc->sc_eintrs = OHCI_NORMAL_INTRS; - usbd_page_dma_exit(&(sc->sc_hw_page)); + usbd_page_cpu_invalidate(&(sc->sc_hw_page)); /* * setup self pointers @@ -346,7 +346,7 @@ hw_ptr->intr_start[i | (OHCI_NO_EDS / 2)].ed_self; } - usbd_page_dma_enter(&(sc->sc_hw_page)); + usbd_page_cpu_flush(&(sc->sc_hw_page)); LIST_INIT(&sc->sc_interrupt_list_head); @@ -518,11 +518,11 @@ hw_ptr = sc->sc_hw_ptr; - usbd_page_dma_exit(&(sc->sc_hw_page)); + usbd_page_cpu_invalidate(&(sc->sc_hw_page)); DPRINTF((" HCCA: frame_number=0x%04x done_head=0x%08x\n", le32toh(hw_ptr->hcca.hcca_frame_number), le32toh(hw_ptr->hcca.hcca_done_head))); - usbd_page_dma_enter(&(sc->sc_hw_page)); + usbd_page_cpu_flush(&(sc->sc_hw_page)); return; } static void @@ -542,7 +542,7 @@ uint32_t td_flags; uint8_t temp; - usbd_page_dma_exit(std->page); + usbd_page_cpu_invalidate(std->page); td_flags = le32toh(std->td_flags); temp = (std->td_next == 0); @@ -562,7 +562,7 @@ le32toh(std->td_next), le32toh(std->td_be)); - usbd_page_dma_enter(std->page); + usbd_page_cpu_flush(std->page); return (temp); } @@ -573,7 +573,7 @@ uint16_t i; uint8_t temp; - usbd_page_dma_exit(sitd->page); + usbd_page_cpu_invalidate(sitd->page); itd_flags = le32toh(sitd->itd_flags); temp = (sitd->itd_next == 0); @@ -594,7 +594,7 @@ } printf("\n"); - usbd_page_dma_enter(sitd->page); + usbd_page_cpu_flush(sitd->page); return (temp); } @@ -615,7 +615,7 @@ uint32_t ed_flags; uint32_t ed_headp; - usbd_page_dma_exit(sed->page); + usbd_page_cpu_invalidate(sed->page); ed_flags = le32toh(sed->ed_flags); ed_headp = le32toh(sed->ed_headp); @@ -637,7 +637,7 @@ le32toh(sed->ed_headp), le32toh(sed->ed_next)); - usbd_page_dma_enter(sed->page); + usbd_page_cpu_flush(sed->page); return; } @@ -652,7 +652,7 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_dma_exit(sed->page); + usbd_page_cpu_invalidate(sed->page); sed->next = last->next; sed->ed_next = last->ed_next; @@ -661,8 +661,8 @@ sed->prev = last; - usbd_page_dma_enter(sed->page); - usbd_page_dma_exit(last->page); + usbd_page_cpu_flush(sed->page); + usbd_page_cpu_invalidate(last->page); /* * the last->next->prev is never followed: sed->next->prev = sed; @@ -671,7 +671,7 @@ last->next = sed; last->ed_next = sed->ed_self; - usbd_page_dma_enter(last->page); + usbd_page_cpu_flush(last->page); return (sed); } @@ -686,19 +686,19 @@ /* only remove if not removed from a queue */ if (sed->prev) { - usbd_page_dma_exit(sed->prev->page); + usbd_page_cpu_invalidate(sed->prev->page); sed->prev->next = sed->next; sed->prev->ed_next = sed->ed_next; - usbd_page_dma_enter(sed->prev->page); + usbd_page_cpu_flush(sed->prev->page); if (sed->next) { - usbd_page_dma_exit(sed->next->page); + usbd_page_cpu_invalidate(sed->next->page); sed->next->prev = sed->prev; - usbd_page_dma_enter(sed->next->page); + usbd_page_cpu_flush(sed->next->page); } - usbd_page_dma_exit(sed->page); + usbd_page_cpu_invalidate(sed->page); /* * terminate transfer in case the transferred packet was @@ -707,7 +707,7 @@ sed->ed_flags |= htole32(OHCI_ED_SKIP); sed->ed_headp = sed->ed_tailp; - usbd_page_dma_enter(sed->page); + usbd_page_cpu_flush(sed->page); last = ((last == sed) ? sed->prev : last); @@ -739,7 +739,7 @@ ohci_dump_itd(td); } #endif - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); nframes = td->frames; olen = &td->itd_offset[0]; @@ -764,7 +764,7 @@ olen++; } - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); if (((void *)td) == xfer->td_transfer_last) { break; @@ -821,7 +821,7 @@ while (1) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); phy_start = le32toh(td->td_cbp); td_flags = le32toh(td->td_flags); cc = OHCI_TD_GET_CC(td_flags); @@ -848,7 +848,7 @@ xfer->frlengths[xfer->aframes] -= temp; } } - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* Check for last transfer */ if (((void *)td) == xfer->td_transfer_last) { @@ -961,11 +961,11 @@ while (1) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); phy_start = le32toh(td->td_cbp); td_flags = le32toh(td->td_flags); td_next = le32toh(td->td_next); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* Check for last transfer */ if (((void *)td) == xfer->td_transfer_last) { @@ -1001,9 +1001,9 @@ ed = xfer->qh_start; - usbd_page_dma_exit(ed->page); + usbd_page_cpu_invalidate(ed->page); ed->ed_headp = td->td_self; - usbd_page_dma_enter(ed->page); + usbd_page_cpu_flush(ed->page); DPRINTFN(12, ("xfer=%p following alt next\n", xfer)); } @@ -1033,11 +1033,11 @@ } DPRINTFN(12, ("xfer=%p checking transfer\n", xfer)); - usbd_page_dma_exit(ed->page); + usbd_page_cpu_invalidate(ed->page); ed_flags = le32toh(ed->ed_flags); ed_headp = le32toh(ed->ed_headp); ed_tailp = le32toh(ed->ed_tailp); - usbd_page_dma_enter(ed->page); + usbd_page_cpu_flush(ed->page); if ((ed_flags & OHCI_ED_SKIP) || (ed_headp & OHCI_HALTED) || @@ -1135,7 +1135,7 @@ status = 0; - usbd_page_dma_exit(&(sc->sc_hw_page)); + usbd_page_cpu_invalidate(&(sc->sc_hw_page)); done = le32toh(hw_ptr->hcca.hcca_done_head); /* @@ -1163,7 +1163,7 @@ status = OREAD4(sc, OHCI_INTERRUPT_STATUS) & ~OHCI_WDH; } - usbd_page_dma_enter(&(sc->sc_hw_page)); + usbd_page_cpu_flush(&(sc->sc_hw_page)); if (status == 0) { /* nothing to be done (PCI shared * interrupt) */ @@ -1400,7 +1400,7 @@ continue; } - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* fill out current TD */ td->td_flags = temp->td_flags; @@ -1445,7 +1445,7 @@ td->alt_next = td_alt_next; - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); } if (precompute) { @@ -1593,13 +1593,13 @@ } td = temp.td; - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); td->td_next = htole32(OHCI_TD_NEXT_END); td->td_flags &= ~htole32(OHCI_TD_INTR_MASK); td->td_flags |= htole32(OHCI_TD_SET_DI(1)); - usbd_page_dma_enter(td->page); + usbd_page_cpu_flush(td->page); /* must have at least one frame! */ @@ -1615,7 +1615,7 @@ ed = xfer->qh_start; - usbd_page_dma_exit(ed->page); + usbd_page_cpu_invalidate(ed->page); ed_flags = (OHCI_ED_SET_FA(xfer->address) | OHCI_ED_SET_EN(UE_GET_ADDR(xfer->endpoint)) | @@ -1628,7 +1628,7 @@ } ed->ed_flags = htole32(ed_flags); - usbd_page_dma_enter(ed->page); + usbd_page_cpu_flush(ed->page); td = xfer->td_transfer_first; @@ -1711,14 +1711,14 @@ xfer, xfer->pipe, error)); for (ed = xfer->qh_start; ed; ed = ed->obj_next) { - usbd_page_dma_exit(ed->page); + usbd_page_cpu_invalidate(ed->page); if ((!(ed->ed_flags & htole32(OHCI_ED_SKIP))) && (!(ed->ed_headp & htole32(OHCI_HALTED))) && ((ed->ed_headp ^ ed->ed_tailp) & htole32(-0x10))) { need_delay = 1; } - usbd_page_dma_enter(ed->page); + usbd_page_cpu_flush(ed->page); } if (methods == &ohci_device_bulk_methods) { @@ -1979,9 +1979,9 @@ DPRINTFN(5, ("xfer=%p next=%d nframes=%d\n", xfer, xfer->pipe->isoc_next, xfer->nframes)); - usbd_page_dma_exit(&(sc->sc_hw_page)); + usbd_page_cpu_invalidate(&(sc->sc_hw_page)); nframes = le32toh(hw_ptr->hcca.hcca_frame_number); - usbd_page_dma_enter(&(sc->sc_hw_page)); + usbd_page_cpu_flush(&(sc->sc_hw_page)); if ((LIST_FIRST(&(xfer->pipe->list_head)) == NULL) || (((nframes - xfer->pipe->isoc_next) & 0xFFFF) < xfer->nframes) || @@ -2049,7 +2049,7 @@ if ((ncur == OHCI_ITD_NOFFSET) || (OHCI_PAGE(buf_res.physaddr) != bp0) || (nframes == 0)) { - usbd_page_dma_exit(td->page); + usbd_page_cpu_invalidate(td->page); /* fill current ITD */ td->itd_flags = htole32( @@ -2081,18 +2081,18 @@ /* link the last TD with the next one */ td_last->itd_next = td->itd_self; } - usbd_page_dma_enter(td_last->page); + usbd_page_cpu_flush(td_last->page); } } - usbd_page_dma_exit(td_last->page); + usbd_page_cpu_invalidate(td_last->page); /* update the last TD */ td_last->itd_flags &= ~htole32(OHCI_ITD_NOINTR); td_last->itd_flags |= htole32(OHCI_ITD_SET_DI(0)); td_last->itd_next = 0; - usbd_page_dma_enter(td_last->page); + usbd_page_cpu_flush(td_last->page); xfer->td_transfer_last = td_last; @@ -2104,7 +2104,7 @@ #endif ed = xfer->qh_start; - usbd_page_dma_exit(ed->page); + usbd_page_cpu_invalidate(ed->page); if (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN) ed_flags = (OHCI_ED_DIR_IN | OHCI_ED_FORMAT_ISO); @@ -2120,7 +2120,7 @@ } ed->ed_flags = htole32(ed_flags); - usbd_page_dma_enter(ed->page); + usbd_page_cpu_flush(ed->page); td = xfer->td_transfer_first; @@ -2719,7 +2719,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); td = page_info.buffer; @@ -2730,7 +2730,7 @@ last_obj = td; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ohci_td_t); } @@ -2745,7 +2745,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); itd = page_info.buffer; @@ -2756,7 +2756,7 @@ last_obj = itd; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ohci_itd_t); } @@ -2778,7 +2778,7 @@ usbd_get_page(&(parm->pc), parm->size[1], &page_info); - usbd_page_dma_exit(page_info.page); + usbd_page_cpu_invalidate(page_info.page); ed = page_info.buffer; @@ -2789,7 +2789,7 @@ last_obj = ed; - usbd_page_dma_enter(page_info.page); + usbd_page_cpu_flush(page_info.page); } parm->size[1] += sizeof(ohci_ed_t); } ==== //depot/projects/usb/src/sys/dev/usb/uhci.c#42 (text+ko) ==== @@ -230,12 +230,12 @@ /* copy data to fixup location */ - usbd_page_dma_exit(ml->fix_res.page); + usbd_page_cpu_invalidate(ml->fix_res.page); usbd_copy_out(ml->buf_pc, ml->buf_offset, ml->fix_res.buffer, td->len); - usbd_page_dma_enter(ml->fix_res.page); + usbd_page_cpu_flush(ml->fix_res.page); } /* prepare next fixup */ @@ -388,7 +388,7 @@ sc->sc_saved_sof = 0x40; /* default value */ sc->sc_saved_frnum = 0; /* default frame number */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Nov 25 09:38:44 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B1F816A420; Sun, 25 Nov 2007 09:38: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 A1C2516A41A for ; Sun, 25 Nov 2007 09:38:43 +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 9196713C447 for ; Sun, 25 Nov 2007 09:38:43 +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 lAP9chkJ075315 for ; Sun, 25 Nov 2007 09:38:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAP9chF0075312 for perforce@freebsd.org; Sun, 25 Nov 2007 09:38:43 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 09:38:43 GMT Message-Id: <200711250938.lAP9chF0075312@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 129487 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, 25 Nov 2007 09:38:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=129487 Change 129487 by hselasky@hselasky_laptop001 on 2007/11/25 09:37:53 Remove misleading comments. TODO: The use of invalidate and flush can be optimized ! Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#52 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#52 (text+ko) ==== @@ -2245,9 +2245,6 @@ /*------------------------------------------------------------------------* * usbd_page_cpu_invalidate - invalidate CPU cache - * - * NOTE: Make sure that this function does not appear alone without a - * "usbd_page_cpu_flush()" call unless you know what you are doing ! *------------------------------------------------------------------------*/ void usbd_page_cpu_invalidate(struct usbd_page *page) @@ -2481,9 +2478,6 @@ /*------------------------------------------------------------------------* * usbd_page_cpu_invalidate - invalidate CPU cache - * - * NOTE: Make sure that this function does not appear alone without a - * "usbd_page_cpu_flush()" call unless you know what you are doing ! *------------------------------------------------------------------------*/ void usbd_page_cpu_invalidate(struct usbd_page *page) From owner-p4-projects@FreeBSD.ORG Sun Nov 25 09:45:52 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A33DC16A418; Sun, 25 Nov 2007 09:45: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 E899916A41B for ; Sun, 25 Nov 2007 09:45: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 D79CF13C461 for ; Sun, 25 Nov 2007 09:45: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 lAP9jpZZ075618 for ; Sun, 25 Nov 2007 09:45:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAP9jpCI075615 for perforce@freebsd.org; Sun, 25 Nov 2007 09:45:51 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 09:45:51 GMT Message-Id: <200711250945.lAP9jpCI075615@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 129488 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, 25 Nov 2007 09:45:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=129488 Change 129488 by hselasky@hselasky_laptop001 on 2007/11/25 09:45:05 Style change. Make all function comment boxes 75 chars wide so that they fit on a single line when printed. Scripted by: [ -f src/$F ] && (cat src/$F | sed -e "s/[*]----*----[*]/*-------- ----------------------------------- -----------------------------*/g" > temp ) && ((diff temp src/$F > /dev/null) || (cat temp > src/$F)) Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#51 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#41 edit .. //depot/projects/usb/src/sys/dev/usb/uhci.c#43 edit .. //depot/projects/usb/src/sys/dev/usb/usb.h#20 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#53 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#58 edit .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#47 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#51 (text+ko) ==== @@ -2224,9 +2224,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci bulk support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_device_bulk_open(struct usbd_xfer *xfer) { @@ -2274,9 +2274,9 @@ .start = ehci_device_bulk_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci control support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_device_ctrl_open(struct usbd_xfer *xfer) { @@ -2324,9 +2324,9 @@ .start = ehci_device_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_device_intr_open(struct usbd_xfer *xfer) { @@ -2430,9 +2430,9 @@ .start = ehci_device_intr_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci full speed isochronous support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_device_isoc_fs_open(struct usbd_xfer *xfer) { @@ -2700,9 +2700,9 @@ .start = ehci_device_isoc_fs_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci high speed isochronous support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_device_isoc_hs_open(struct usbd_xfer *xfer) { @@ -2981,12 +2981,12 @@ .start = ehci_device_isoc_hs_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci root control support - *---------------------------------------------------------------------------* + *------------------------------------------------------------------------* * simulate a hardware hub by handling * all the necessary requests - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_root_ctrl_open(struct usbd_xfer *xfer) @@ -3542,9 +3542,9 @@ .start = ehci_root_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ehci root interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ehci_root_intr_open(struct usbd_xfer *xfer) { ==== //depot/projects/usb/src/sys/dev/usb/ohci.c#41 (text+ko) ==== @@ -1758,9 +1758,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci bulk support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_device_bulk_open(struct usbd_xfer *xfer) { @@ -1808,9 +1808,9 @@ .start = ohci_device_bulk_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci control support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_device_ctrl_open(struct usbd_xfer *xfer) { @@ -1858,9 +1858,9 @@ .start = ohci_device_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_device_intr_open(struct usbd_xfer *xfer) { @@ -1940,9 +1940,9 @@ .start = ohci_device_intr_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci isochronous support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_device_isoc_open(struct usbd_xfer *xfer) { @@ -2155,12 +2155,12 @@ .start = ohci_device_isoc_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci root control support - *---------------------------------------------------------------------------* + *------------------------------------------------------------------------* * simulate a hardware hub by handling * all the necessary requests - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_root_ctrl_open(struct usbd_xfer *xfer) @@ -2597,9 +2597,9 @@ .start = ohci_root_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ohci root interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void ohci_root_intr_open(struct usbd_xfer *xfer) { ==== //depot/projects/usb/src/sys/dev/usb/uhci.c#43 (text+ko) ==== @@ -1989,9 +1989,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci bulk support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_device_bulk_open(struct usbd_xfer *xfer) { @@ -2048,9 +2048,9 @@ .start = uhci_device_bulk_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci control support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_device_ctrl_open(struct usbd_xfer *xfer) { @@ -2113,9 +2113,9 @@ .start = uhci_device_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_device_intr_open(struct usbd_xfer *xfer) { @@ -2203,9 +2203,9 @@ .start = uhci_device_intr_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci isochronous support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_device_isoc_open(struct usbd_xfer *xfer) { @@ -2407,12 +2407,12 @@ .start = uhci_device_isoc_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci root control support - *---------------------------------------------------------------------------* + *------------------------------------------------------------------------* * simulate a hardware hub by handling * all the necessary requests - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_root_ctrl_open(struct usbd_xfer *xfer) @@ -2964,9 +2964,9 @@ .start = uhci_root_ctrl_start, }; -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * uhci root interrupt support - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void uhci_root_intr_open(struct usbd_xfer *xfer) { ==== //depot/projects/usb/src/sys/dev/usb/usb.h#20 (text+ko) ==== @@ -550,9 +550,9 @@ #define USB_UNCONFIG_NO 0 #define USB_UNCONFIG_INDEX 0xFF -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * ioctl() related stuff - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ struct usb_ctl_request { int ucr_addr; usb_device_request_t ucr_request; ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#53 (text+ko) ==== @@ -1727,11 +1727,11 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * allocate mbufs to an usbd interface queue * * returns a pointer that eventually should be passed to "free()" - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void * usbd_alloc_mbufs(struct malloc_type *type, struct usbd_ifqueue *ifq, uint32_t block_size, uint16_t block_number) @@ -1774,9 +1774,9 @@ return (free_ptr); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_get_page - lookup DMA-able memory for the given offset - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_get_page(struct usbd_page_cache *pc, uint32_t offset, struct usbd_page_search *res) @@ -1811,9 +1811,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_copy_in - copy directly to DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_copy_in(struct usbd_page_cache *cache, uint32_t offset, const void *ptr, uint32_t len) @@ -1844,9 +1844,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_m_copy_in - copy a mbuf chain directly into DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ struct usbd_m_copy_in_arg { struct usbd_page_cache *cache; uint32_t dst_offset; @@ -1917,9 +1917,9 @@ return (error); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_copy_out - copy directly from DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_copy_out(struct usbd_page_cache *cache, uint32_t offset, void *ptr, uint32_t len) @@ -1950,9 +1950,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_bzero - zero DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_bzero(struct usbd_page_cache *cache, uint32_t offset, uint32_t len) { @@ -1981,13 +1981,13 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_page_alloc - allocate multiple DMA-able memory pages * * Returns: * 1: failure * 0: success - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint8_t usbd_page_alloc(bus_dma_tag_t tag, struct usbd_page *page, uint32_t npages) @@ -2026,9 +2026,9 @@ return (0); /* success */ } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_page_free - free multiple DMA-able memory pages - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_page_free(struct usbd_page *page, uint32_t npages) { @@ -2038,9 +2038,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_page_cache_init - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_page_cache_init(struct usbd_page_cache *pc, struct usbd_page *page_ptr, uint32_t offset, uint32_t size) @@ -2051,9 +2051,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_page_fit_obj - fit object function - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint32_t usbd_page_fit_obj(uint32_t size, uint32_t obj_len) { @@ -2077,9 +2077,9 @@ return (adj); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_mem_alloc - allocate DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void * usbd_mem_alloc(bus_dma_tag_t parent, struct usbd_page *page, uint32_t size, uint8_t align_power) @@ -2102,9 +2102,9 @@ return (ptr); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_mem_free - free DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_mem_free(struct usbd_page *page) { @@ -2120,9 +2120,9 @@ } #ifdef __FreeBSD__ -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * bus_dmamap_load_callback - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void bus_dmamap_load_callback(void *arg, bus_dma_segment_t *segs, int nseg, int error) @@ -2136,9 +2136,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_dma_tag_alloc - allocate a bus-DMA tag - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ bus_dma_tag_t usbd_dma_tag_alloc(bus_dma_tag_t parent, uint32_t seg_size, uint32_t alignment, uint32_t max_size) @@ -2165,9 +2165,9 @@ return (tag); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_dma_tag_free - free a bus-DMA tag - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_dma_tag_free(bus_dma_tag_t tag) { @@ -2175,9 +2175,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_mem_alloc_sub - allocate DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void * usbd_mem_alloc_sub(bus_dma_tag_t tag, struct usbd_page *page, uint32_t size, uint32_t alignment) @@ -2216,9 +2216,9 @@ return (ptr); } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_mem_free_sub - free DMA-able memory - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_mem_free_sub(struct usbd_page *page) { @@ -2265,9 +2265,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_dma_load_mem_callback - internal callback - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void usbd_dma_load_mem_callback(void *arg, bus_dma_segment_t *segs, int nseg, int error) { @@ -2313,9 +2313,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_dma_load_mem - load DMA memory if any - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_dma_load_mem(struct usbd_xfer *xfer, struct usbd_dma_load_mem_info *info) { @@ -2500,9 +2500,9 @@ #endif -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_pio_load_mem - load virtual memory if any - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_pio_load_mem(struct usbd_xfer *xfer, struct usbd_dma_load_mem_info *info) { @@ -2553,9 +2553,9 @@ return; } -/*------------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_make_str_desc - convert an ASCII string into a UNICODE string - *------------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint8_t usbd_make_str_desc(void *ptr, uint16_t max_len, const char *s) { @@ -2591,9 +2591,9 @@ return (totlen); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * mtx_drop_recurse - drop mutex recurse level - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint32_t mtx_drop_recurse(struct mtx *mtx) { @@ -2609,9 +2609,9 @@ return (recurse_level); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * mtx_pickup_recurse - pickup mutex recurse level - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void mtx_pickup_recurse(struct mtx *mtx, uint32_t recurse_level) { @@ -2624,9 +2624,9 @@ } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_thread - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void usbd_config_td_thread(void *arg) { @@ -2723,7 +2723,7 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_setup * * NOTE: the structure pointed to by "ctd" must be zeroed before calling @@ -2732,7 +2732,7 @@ * Return values: * 0: success * else: failure - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint8_t usbd_config_td_setup(struct usbd_config_td *ctd, void *priv_sc, struct mtx *priv_mtx, @@ -2771,9 +2771,9 @@ return (1); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_dummy_cmd - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void usbd_config_td_dummy_cmd(struct usbd_config_td_softc *sc, struct usbd_config_td_cc *cc, @@ -2782,12 +2782,12 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_stop * * NOTE: If the structure pointed to by "ctd" is all zero, * this function does nothing. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_config_td_stop(struct usbd_config_td *ctd) { @@ -2826,12 +2826,12 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_unsetup * * NOTE: If the structure pointed to by "ctd" is all zero, * this function does nothing. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_config_td_unsetup(struct usbd_config_td *ctd) { @@ -2844,9 +2844,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_queue_command - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_config_td_queue_command(struct usbd_config_td *ctd, usbd_config_td_command_t *command_pre_func, @@ -2933,13 +2933,13 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_is_gone * * Return values: * 0: config thread is running * else: config thread is gone - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint8_t usbd_config_td_is_gone(struct usbd_config_td *ctd) { @@ -2948,7 +2948,7 @@ return (ctd->flag_config_td_gone ? 1 : 0); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_config_td_sleep * * NOTE: this function can only be called from the config thread @@ -2956,7 +2956,7 @@ * Return values: * 0: normal delay * else: config thread is gone - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint8_t usbd_config_td_sleep(struct usbd_config_td *ctd, uint32_t timeout) { @@ -2985,9 +2985,9 @@ return (is_gone); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_ether_get_mbuf - get a new ethernet mbuf - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ struct mbuf * usbd_ether_get_mbuf(void) { @@ -3001,9 +3001,9 @@ return (m_new); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * device_delete_all_children - delete all children of a device - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ int32_t device_delete_all_children(device_t dev) { @@ -3024,9 +3024,9 @@ return (error); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_isoc_time_expand - expand time counter from 7-bit to 16-bit - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ uint16_t usbd_isoc_time_expand(struct usbd_bus *bus, uint16_t isoc_time_curr) { ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#58 (text+ko) ==== @@ -573,9 +573,9 @@ (m)->last_packet = 0; \ } while (0) -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * structures used by the usbd config thread system - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ struct usbd_config_td_softc; struct usbd_config_td_cc; @@ -604,9 +604,9 @@ uint16_t command_ref; } __aligned(USB_HOST_ALIGN); -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * structures used by probe and attach - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ struct usb_devno { uint16_t ud_vendor; uint16_t ud_product; @@ -653,9 +653,9 @@ #define UMATCH_GENERIC (-140) #define UMATCH_NONE (ENXIO) -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * prototypes - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ /* prototypes from usb_subr.c */ ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#47 (text+ko) ==== @@ -666,7 +666,7 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_setup - setup an array of USB transfers * * NOTE: must always call unsetup after setup @@ -675,7 +675,7 @@ * * The idea is that the USB device driver should pre-allocate all * its transfers by one call to this function. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ usbd_status usbd_transfer_setup(struct usbd_device *udev, uint8_t iface_index, @@ -874,12 +874,12 @@ return (parm.err); } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_drop_refcount * * This function is called from various places, and its job is to * wakeup "usbd_transfer_unsetup", when is safe to free the memory. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void usbd_drop_refcount(struct usbd_memory_info *info) { @@ -896,13 +896,13 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_unsetup - unsetup/free an array of USB transfers * * NOTE: if the transfer was in progress, the callback will * called with "xfer->error=USBD_CANCELLED", before this * function returns - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_transfer_unsetup(struct usbd_xfer **pxfer, uint16_t n_setup) { @@ -1270,9 +1270,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_start_hardware - start USB hardware for the given transfer - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_start_hardware(struct usbd_xfer *xfer) { @@ -1384,9 +1384,9 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_pipe_enter_wrapper - factored out code - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ static void usbd_pipe_enter_wrapper(struct usbd_xfer *xfer) { @@ -1543,7 +1543,7 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_start - start an USB transfer * * NOTE: Calling this function more than one time will only @@ -1551,7 +1551,7 @@ * completes. * NOTE: if USBD_USE_POLLING is set in "xfer->flags", then this * function will spin until transfer is completed - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_transfer_start(struct usbd_xfer *xfer) { @@ -1605,12 +1605,12 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_stop - stop an USB transfer * * NOTE: Calling this function more than one time will only * result in a single transfer stop. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_transfer_stop(struct usbd_xfer *xfer) { @@ -1674,13 +1674,13 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_drain * * This function will stop the USB transfer and wait for any * additional BUS-DMA operations to complete. Buffers that are loaded * into DMA can safely be freed after that this function has returned. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_transfer_drain(struct usbd_xfer *xfer) { @@ -1754,12 +1754,12 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_callback_wrapper * * This is a wrapper for USB callbacks, which handles * recursation, which can happen during boot. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_callback_wrapper(struct usbd_xfer *xfer) { @@ -1798,11 +1798,11 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_do_callback * * This function is used to call back a list of USB callbacks. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_do_callback(struct usbd_xfer **pp_xfer, struct thread *td) { @@ -1853,11 +1853,11 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_enqueue * * This function is used to add an USB transfer to the pipe transfer list. - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ void usbd_transfer_enqueue(struct usbd_xfer *xfer) { @@ -1910,7 +1910,7 @@ return; } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_transfer_dequeue * * This function: @@ -1922,7 +1922,7 @@ * NOTE: In some special cases the USB transfer will not be removed from * the pipe queue, but remain first. To enforce USB transfer removal call * this function passing the error code "USBD_CANCELLED". - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ #undef LIST_PREV #define LIST_PREV(head,elm,field) \ (((elm) == LIST_FIRST(head)) ? ((__typeof(elm))0) : \ @@ -2054,9 +2054,9 @@ } } -/*---------------------------------------------------------------------------* +/*------------------------------------------------------------------------* * usbd_do_request_flags and usbd_do_request - *---------------------------------------------------------------------------*/ + *------------------------------------------------------------------------*/ usbd_status usbd_do_request_flags(struct usbd_device *udev, struct mtx *mtx, usb_device_request_t *req, void *data, From owner-p4-projects@FreeBSD.ORG Sun Nov 25 10:24:35 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3BA9816A46B; Sun, 25 Nov 2007 10:24: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 DAC2316A418 for ; Sun, 25 Nov 2007 10:24:34 +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 CA5A113C457 for ; Sun, 25 Nov 2007 10:24:34 +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 lAPAOYll078163 for ; Sun, 25 Nov 2007 10:24:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPAOY8k078160 for perforce@freebsd.org; Sun, 25 Nov 2007 10:24:34 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 10:24:34 GMT Message-Id: <200711251024.lAPAOY8k078160@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 129490 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, 25 Nov 2007 10:24:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=129490 Change 129490 by hselasky@hselasky_laptop001 on 2007/11/25 10:24:32 Update documentation. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/README#21 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/README#21 (text+ko) ==== @@ -258,17 +258,19 @@ force_short_xfer This flag forces the last transmitted USB packet to be short. A short packet has a length of less than "xfer->max_packet_size", - which derives from "wMaxPacketSize". + which derives from "wMaxPacketSize". This flag can be changed + during operation. short_xfer_ok This flag allows the received transfer length, "xfer->actlen" to be less than "xfer->sumlen" upon completion of a transfer. + This flag can be changed during operation. use_polling This flag can be used with any callback and will cause the "usbd_transfer_start()" function to wait using "DELAY()", without exiting any mutexes, until the transfer is finished or - has timed out. + has timed out. This flag can be changed during operation. NOTE: If polling is used the "timeout" field should be non-zero! NOTE: USBD_CANCELLED is returned in case of timeout @@ -284,12 +286,12 @@ 2) The failing USB transfer performs a successful transfer. The purpose of this flag is to avoid races when multiple - transfers are queued for execution on an USB endpoint, and - the first executing transfer fails leading to the need - for clearing of stall for example. In this case this flag - is used to prevent the following USB transfers from being - executed at the same time the clear-stall command is - executed on the USB control endpoint. + transfers are queued for execution on an USB endpoint, and the + first executing transfer fails leading to the need for + clearing of stall for example. In this case this flag is used + to prevent the following USB transfers from being executed at + the same time the clear-stall command is executed on the USB + control endpoint. This flag can be changed during operation. "BOF" is short for "Block On Failure" @@ -304,17 +306,26 @@ stored in the "xfer->max_data_length". For control transfers the USB kernel will allocate additional space for the 8-bytes of SETUP header. These 8-bytes are not counted by the - "xfer->max_data_length" variable. + "xfer->max_data_length" variable. This flag can not be changed + during operation. ext_buffer Setting this flag will cause that no DMA data buffer will be allocated. Instead the USB client can use its own DMA buffer. + This flag can not be changed during operation. manual_status Setting this flag causes that the STATUS stage of a control transfer needs to be sent separately like a zero-length USB frame. This flag has currently no effect on non-control transfers. This flag is mostly useful for the USB device side. + This flag can be changed during operation. + + bdma_enable + Setting this flag allows you to load virtual buffers directly + into DMA. Virtual buffers are loaded by a call to + "usbd_set_frame_data()". This flag can not be changed during + operation. - The "bufsize" field sets the total buffer size in bytes. If this field is zero, "wMaxPacketSize" will be used, multiplied by the From owner-p4-projects@FreeBSD.ORG Sun Nov 25 10:38:02 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C01A16A421; Sun, 25 Nov 2007 10:38: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 3C68216A41A for ; Sun, 25 Nov 2007 10:38:01 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29F7713C448 for ; Sun, 25 Nov 2007 10:38:01 +0000 (UTC) (envelope-from delphij@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 lAPAc0jo078639 for ; Sun, 25 Nov 2007 10:38:01 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPAbnIJ078634 for perforce@freebsd.org; Sun, 25 Nov 2007 10:37:49 GMT (envelope-from delphij@freebsd.org) Date: Sun, 25 Nov 2007 10:37:49 GMT Message-Id: <200711251037.lAPAbnIJ078634@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 129491 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, 25 Nov 2007 10:38:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=129491 Change 129491 by delphij@charlie on 2007/11/25 10:37:46 IFC Affected files ... .. //depot/projects/delphij_fork/ObsoleteFiles.inc#14 integrate .. //depot/projects/delphij_fork/contrib/binutils/opcodes/ppc-dis.c#2 integrate .. //depot/projects/delphij_fork/contrib/tcpdump/tcpdump.c#3 integrate .. //depot/projects/delphij_fork/etc/etc.amd64/ttys#3 integrate .. //depot/projects/delphij_fork/etc/etc.arm/ttys#4 integrate .. //depot/projects/delphij_fork/etc/etc.i386/ttys#3 integrate .. //depot/projects/delphij_fork/etc/etc.ia64/ttys#3 integrate .. //depot/projects/delphij_fork/etc/etc.powerpc/ttys#3 integrate .. //depot/projects/delphij_fork/etc/etc.sparc64/ttys#3 integrate .. //depot/projects/delphij_fork/etc/periodic/security/100.chksetuid#2 integrate .. //depot/projects/delphij_fork/gnu/lib/libobjc/Makefile#3 integrate .. //depot/projects/delphij_fork/include/dirent.h#2 integrate .. //depot/projects/delphij_fork/kerberos5/lib/Makefile.inc#2 integrate .. //depot/projects/delphij_fork/lib/libc/gdtoa/_ldtoa.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/gen/closedir.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/authdes_prot.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/authunix_prot.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/key_prot_xdr.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/rpc_callmsg.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/rpc_prot.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/rpcb_prot.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/rpc/rpcb_st_xdr.c#2 integrate .. //depot/projects/delphij_fork/lib/libc/sparc64/fpu/fpu_explode.c#2 integrate .. //depot/projects/delphij_fork/lib/libdisk/libdisk.3#3 integrate .. //depot/projects/delphij_fork/lib/libdisk/libdisk.h#2 integrate .. //depot/projects/delphij_fork/lib/libelf/elf.3#3 integrate .. //depot/projects/delphij_fork/lib/libelf/libelf_data.c#2 integrate .. //depot/projects/delphij_fork/lib/libgssapi/Makefile#2 integrate .. //depot/projects/delphij_fork/lib/libkse/Makefile#3 integrate .. //depot/projects/delphij_fork/lib/libpmc/Makefile#2 integrate .. //depot/projects/delphij_fork/lib/libpmc/pmc.3#2 integrate .. //depot/projects/delphij_fork/lib/libpmc/pmc_allocate.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_attach.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_capabilities.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_configure_logfile.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_disable.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_event_names_of_class.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_get_driver_stats.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_get_msr.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_init.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_name_of_capability.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_read.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_set.3#1 branch .. //depot/projects/delphij_fork/lib/libpmc/pmc_start.3#1 branch .. //depot/projects/delphij_fork/lib/libthr/Makefile#4 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_mutex.c#4 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_private.h#4 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_rtld.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_sem.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_sig.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_suspend_np.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_umtx.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_umtx.h#2 integrate .. //depot/projects/delphij_fork/lib/libutil/pty.c#2 integrate .. //depot/projects/delphij_fork/libexec/rtld-elf/powerpc/reloc.c#3 integrate .. //depot/projects/delphij_fork/libexec/tftpd/Makefile#2 integrate .. //depot/projects/delphij_fork/libexec/tftpd/tftpd.8#2 integrate .. //depot/projects/delphij_fork/libexec/tftpd/tftpd.c#2 integrate .. //depot/projects/delphij_fork/release/Makefile#7 integrate .. //depot/projects/delphij_fork/sbin/clri/clri.c#2 integrate .. //depot/projects/delphij_fork/sbin/geom/class/nop/gnop.8#2 integrate .. //depot/projects/delphij_fork/sbin/init/init.c#2 integrate .. //depot/projects/delphij_fork/sbin/ping6/ping6.8#2 integrate .. //depot/projects/delphij_fork/sbin/ping6/ping6.c#2 integrate .. //depot/projects/delphij_fork/share/colldef/sv_SE.ISO8859-1.src#2 integrate .. //depot/projects/delphij_fork/share/colldef/sv_SE.ISO8859-15.src#2 integrate .. //depot/projects/delphij_fork/share/man/man4/hwpmc.4#3 integrate .. //depot/projects/delphij_fork/share/man/man4/msk.4#2 integrate .. //depot/projects/delphij_fork/share/man/man9/Makefile#6 integrate .. //depot/projects/delphij_fork/share/man/man9/rwlock.9#2 integrate .. //depot/projects/delphij_fork/share/man/man9/sx.9#2 integrate .. //depot/projects/delphij_fork/share/man/man9/timeout.9#2 integrate .. //depot/projects/delphij_fork/share/mk/bsd.sys.mk#2 integrate .. //depot/projects/delphij_fork/share/mk/sys.mk#5 integrate .. //depot/projects/delphij_fork/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/delphij_fork/sys/amd64/amd64/intr_machdep.c#2 integrate .. //depot/projects/delphij_fork/sys/conf/files#12 integrate .. //depot/projects/delphij_fork/sys/conf/kmod.mk#4 integrate .. //depot/projects/delphij_fork/sys/contrib/pf/net/pf.c#4 integrate .. //depot/projects/delphij_fork/sys/contrib/pf/net/pf_if.c#3 integrate .. //depot/projects/delphij_fork/sys/contrib/pf/net/pf_ioctl.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/aac/aac_debug.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/delphij_fork/sys/dev/ata/ata-disk.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ata/ata-dma.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ata/atapi-cd.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/ata/atapi-fd.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ata/atapi-tape.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/bce/if_bce.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/bfe/if_bfe.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/dc/if_dc.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_80003es2lan.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_80003es2lan.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82540.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82541.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82541.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82542.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82543.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82543.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82571.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82571.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82575.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_82575.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_api.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_api.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_defines.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_hw.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_ich8lan.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_ich8lan.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_mac.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_mac.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_manage.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_manage.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_nvm.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_nvm.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_osdep.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_phy.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_phy.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/e1000_regs.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/if_em.c#5 integrate .. //depot/projects/delphij_fork/sys/dev/em/if_em.h#3 integrate .. //depot/projects/delphij_fork/sys/dev/lge/if_lge.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/msk/if_msk.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/nfe/if_nfe.c#6 integrate .. //depot/projects/delphij_fork/sys/dev/nge/if_nge.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/re/if_re.c#8 integrate .. //depot/projects/delphij_fork/sys/dev/sk/if_sk.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/sound/pci/hda/hdac.c#4 integrate .. //depot/projects/delphij_fork/sys/dev/stge/if_stge.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ti/if_ti.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/usb/if_rum.c#4 integrate .. //depot/projects/delphij_fork/sys/dev/usb/if_zyd.c#5 integrate .. //depot/projects/delphij_fork/sys/dev/usb/usbdevs#10 integrate .. //depot/projects/delphij_fork/sys/dev/vge/if_vge.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/vx/if_vx_pci.c#2 integrate .. //depot/projects/delphij_fork/sys/geom/eli/g_eli_crypto.c#3 integrate .. //depot/projects/delphij_fork/sys/i386/i386/genassym.c#4 integrate .. //depot/projects/delphij_fork/sys/i386/i386/intr_machdep.c#2 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/interrupt.c#4 integrate .. //depot/projects/delphij_fork/sys/kern/kern_lock.c#3 integrate .. //depot/projects/delphij_fork/sys/kern/kern_proc.c#5 integrate .. //depot/projects/delphij_fork/sys/kern/kern_timeout.c#4 integrate .. //depot/projects/delphij_fork/sys/kern/kern_umtx.c#2 integrate .. //depot/projects/delphij_fork/sys/kern/subr_witness.c#4 integrate .. //depot/projects/delphij_fork/sys/kern/sys_pipe.c#3 integrate .. //depot/projects/delphij_fork/sys/kern/tty_pty.c#3 integrate .. //depot/projects/delphij_fork/sys/kern/vfs_cache.c#3 integrate .. //depot/projects/delphij_fork/sys/net/ieee8023ad_lacp.c#3 integrate .. //depot/projects/delphij_fork/sys/net/if_lagg.c#6 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211.c#3 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211.h#5 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_ht.c#5 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_node.c#4 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_output.c#5 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_proto.c#4 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_scan_sta.c#6 integrate .. //depot/projects/delphij_fork/sys/net80211/ieee80211_var.h#4 integrate .. //depot/projects/delphij_fork/sys/netatalk/aarp.c#3 integrate .. //depot/projects/delphij_fork/sys/netatalk/ddp_output.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet/libalias/alias_util.c#2 integrate .. //depot/projects/delphij_fork/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/delphij_fork/sys/netinet/tcp_subr.c#9 integrate .. //depot/projects/delphij_fork/sys/netinet/tcp_syncache.c#6 integrate .. //depot/projects/delphij_fork/sys/netinet6/ip6_output.c#3 integrate .. //depot/projects/delphij_fork/sys/nfsclient/nfs_vnops.c#2 integrate .. //depot/projects/delphij_fork/sys/pci/if_rl.c#3 integrate .. //depot/projects/delphij_fork/sys/pci/if_sf.c#2 integrate .. //depot/projects/delphij_fork/sys/pci/if_ste.c#2 integrate .. //depot/projects/delphij_fork/sys/pci/if_vr.c#3 integrate .. //depot/projects/delphij_fork/sys/pci/if_xl.c#4 integrate .. //depot/projects/delphij_fork/sys/powerpc/powerpc/intr_machdep.c#4 integrate .. //depot/projects/delphij_fork/sys/sparc64/sparc64/intr_machdep.c#3 integrate .. //depot/projects/delphij_fork/sys/sun4v/include/stdarg.h#2 integrate .. //depot/projects/delphij_fork/sys/sys/callout.h#3 integrate .. //depot/projects/delphij_fork/sys/sys/linker.h#4 integrate .. //depot/projects/delphij_fork/sys/sys/lockmgr.h#2 integrate .. //depot/projects/delphij_fork/sys/sys/mutex.h#5 integrate .. //depot/projects/delphij_fork/sys/sys/umtx.h#2 integrate .. //depot/projects/delphij_fork/sys/vm/vm_contig.c#3 integrate .. //depot/projects/delphij_fork/sys/vm/vm_page.c#9 integrate .. //depot/projects/delphij_fork/sys/vm/vm_pageout.c#4 integrate .. //depot/projects/delphij_fork/sys/vm/vnode_pager.c#4 integrate .. //depot/projects/delphij_fork/usr.bin/netstat/Makefile#2 integrate .. //depot/projects/delphij_fork/usr.bin/rpcgen/rpc_cout.c#2 integrate .. //depot/projects/delphij_fork/usr.bin/tail/read.c#4 integrate .. //depot/projects/delphij_fork/usr.sbin/acpi/acpidb/Makefile#2 integrate .. //depot/projects/delphij_fork/usr.sbin/kldxref/Makefile#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/Makefile#4 integrate .. //depot/projects/delphij_fork/usr.sbin/rpc.yppasswdd/Makefile#2 integrate .. //depot/user/howardsu/truss/ObsoleteFiles.inc#28 integrate .. //depot/user/howardsu/truss/UPDATING#21 integrate .. //depot/user/howardsu/truss/contrib/binutils/opcodes/ppc-dis.c#2 integrate .. //depot/user/howardsu/truss/contrib/tcpdump/tcpdump.c#3 integrate .. //depot/user/howardsu/truss/etc/etc.amd64/ttys#4 integrate .. //depot/user/howardsu/truss/etc/etc.arm/ttys#5 integrate .. //depot/user/howardsu/truss/etc/etc.i386/ttys#4 integrate .. //depot/user/howardsu/truss/etc/etc.ia64/ttys#4 integrate .. //depot/user/howardsu/truss/etc/etc.powerpc/ttys#5 integrate .. //depot/user/howardsu/truss/etc/etc.sparc64/ttys#4 integrate .. //depot/user/howardsu/truss/etc/periodic/security/100.chksetuid#2 integrate .. //depot/user/howardsu/truss/gnu/lib/libobjc/Makefile#4 integrate .. //depot/user/howardsu/truss/gnu/usr.bin/cc/cc_tools/Makefile#4 integrate .. //depot/user/howardsu/truss/include/dirent.h#2 integrate .. //depot/user/howardsu/truss/kerberos5/lib/Makefile.inc#2 integrate .. //depot/user/howardsu/truss/lib/libc/gdtoa/_ldtoa.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/gen/closedir.c#3 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/authdes_prot.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/authunix_prot.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/key_prot_xdr.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/rpc_callmsg.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/rpc_prot.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/rpcb_prot.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/rpc/rpcb_st_xdr.c#2 integrate .. //depot/user/howardsu/truss/lib/libc/sparc64/fpu/fpu_explode.c#3 integrate .. //depot/user/howardsu/truss/lib/libdisk/libdisk.3#2 integrate .. //depot/user/howardsu/truss/lib/libdisk/libdisk.h#2 integrate .. //depot/user/howardsu/truss/lib/libelf/elf.3#3 integrate .. //depot/user/howardsu/truss/lib/libelf/libelf_data.c#2 integrate .. //depot/user/howardsu/truss/lib/libgssapi/Makefile#2 integrate .. //depot/user/howardsu/truss/lib/libkse/Makefile#2 integrate .. //depot/user/howardsu/truss/lib/libkse/thread/thr_spec.c#2 integrate .. //depot/user/howardsu/truss/lib/libpmc/Makefile#2 integrate .. //depot/user/howardsu/truss/lib/libpmc/pmc.3#4 integrate .. //depot/user/howardsu/truss/lib/libpmc/pmc_allocate.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_attach.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_capabilities.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_configure_logfile.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_disable.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_event_names_of_class.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_get_driver_stats.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_get_msr.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_init.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_name_of_capability.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_read.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_set.3#1 branch .. //depot/user/howardsu/truss/lib/libpmc/pmc_start.3#1 branch .. //depot/user/howardsu/truss/lib/libthr/Makefile#8 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_mutex.c#5 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_private.h#5 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_rtld.c#2 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_sem.c#3 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_sig.c#3 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_suspend_np.c#3 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_umtx.c#4 integrate .. //depot/user/howardsu/truss/lib/libthr/thread/thr_umtx.h#3 integrate .. //depot/user/howardsu/truss/lib/libutil/pty.c#3 integrate .. //depot/user/howardsu/truss/libexec/rtld-elf/powerpc/reloc.c#3 integrate .. //depot/user/howardsu/truss/libexec/tftpd/Makefile#2 integrate .. //depot/user/howardsu/truss/libexec/tftpd/tftpd.8#3 integrate .. //depot/user/howardsu/truss/libexec/tftpd/tftpd.c#2 integrate .. //depot/user/howardsu/truss/release/Makefile#9 integrate .. //depot/user/howardsu/truss/sbin/clri/clri.c#2 integrate .. //depot/user/howardsu/truss/sbin/devd/Makefile#2 integrate .. //depot/user/howardsu/truss/sbin/geom/class/nop/gnop.8#2 integrate .. //depot/user/howardsu/truss/sbin/init/init.c#3 integrate .. //depot/user/howardsu/truss/sbin/mount_ntfs/mount_ntfs.8#3 integrate .. //depot/user/howardsu/truss/sbin/ping6/ping6.8#2 integrate .. //depot/user/howardsu/truss/sbin/ping6/ping6.c#4 integrate .. //depot/user/howardsu/truss/share/colldef/sv_SE.ISO8859-1.src#2 integrate .. //depot/user/howardsu/truss/share/colldef/sv_SE.ISO8859-15.src#2 integrate .. //depot/user/howardsu/truss/share/man/man4/hwpmc.4#4 integrate .. //depot/user/howardsu/truss/share/man/man4/msk.4#3 integrate .. //depot/user/howardsu/truss/share/man/man9/Makefile#10 integrate .. //depot/user/howardsu/truss/share/man/man9/rwlock.9#4 integrate .. //depot/user/howardsu/truss/share/man/man9/sx.9#6 integrate .. //depot/user/howardsu/truss/share/man/man9/timeout.9#2 integrate .. //depot/user/howardsu/truss/share/mk/bsd.sys.mk#5 integrate .. //depot/user/howardsu/truss/share/mk/sys.mk#8 integrate .. //depot/user/howardsu/truss/sys/amd64/amd64/genassym.c#7 integrate .. //depot/user/howardsu/truss/sys/amd64/amd64/intr_machdep.c#6 integrate .. //depot/user/howardsu/truss/sys/conf/files#37 integrate .. //depot/user/howardsu/truss/sys/conf/kmod.mk#6 integrate .. //depot/user/howardsu/truss/sys/contrib/pf/net/pf.c#7 integrate .. //depot/user/howardsu/truss/sys/contrib/pf/net/pf_if.c#4 integrate .. //depot/user/howardsu/truss/sys/contrib/pf/net/pf_ioctl.c#5 integrate .. //depot/user/howardsu/truss/sys/dev/aac/aac_debug.c#2 integrate .. //depot/user/howardsu/truss/sys/dev/acpica/acpi_battery.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/asmc/asmc.c#2 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-all.h#6 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-chipset.c#11 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-disk.c#6 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-dma.c#5 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-pci.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/ata/ata-pci.h#7 integrate .. //depot/user/howardsu/truss/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/ata/atapi-fd.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/ata/atapi-tape.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/bce/if_bce.c#8 integrate .. //depot/user/howardsu/truss/sys/dev/bfe/if_bfe.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/dc/if_dc.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_80003es2lan.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_80003es2lan.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82540.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82541.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82541.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82542.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82543.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82543.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82571.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82571.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82575.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_82575.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_api.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_api.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_defines.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_hw.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_ich8lan.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_ich8lan.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_mac.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_mac.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_manage.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_manage.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_nvm.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_nvm.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_osdep.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_phy.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_phy.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/e1000_regs.h#3 integrate .. //depot/user/howardsu/truss/sys/dev/em/if_em.c#12 integrate .. //depot/user/howardsu/truss/sys/dev/em/if_em.h#6 integrate .. //depot/user/howardsu/truss/sys/dev/lge/if_lge.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/msk/if_msk.c#7 integrate .. //depot/user/howardsu/truss/sys/dev/msk/if_mskreg.h#4 integrate .. //depot/user/howardsu/truss/sys/dev/nfe/if_nfe.c#8 integrate .. //depot/user/howardsu/truss/sys/dev/nge/if_nge.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/nve/if_nve.c#5 integrate .. //depot/user/howardsu/truss/sys/dev/re/if_re.c#12 integrate .. //depot/user/howardsu/truss/sys/dev/sk/if_sk.c#6 integrate .. //depot/user/howardsu/truss/sys/dev/sound/pci/hda/hdac.c#13 integrate .. //depot/user/howardsu/truss/sys/dev/stge/if_stge.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/ti/if_ti.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/usb/if_rum.c#9 integrate .. //depot/user/howardsu/truss/sys/dev/usb/if_zyd.c#4 integrate .. //depot/user/howardsu/truss/sys/dev/usb/usbdevs#20 integrate .. //depot/user/howardsu/truss/sys/dev/vge/if_vge.c#3 integrate .. //depot/user/howardsu/truss/sys/dev/vx/if_vx_pci.c#3 integrate .. //depot/user/howardsu/truss/sys/fs/msdosfs/msdosfs_vfsops.c#11 integrate .. //depot/user/howardsu/truss/sys/geom/eli/g_eli_crypto.c#4 integrate .. //depot/user/howardsu/truss/sys/i386/i386/genassym.c#6 integrate .. //depot/user/howardsu/truss/sys/i386/i386/intr_machdep.c#6 integrate .. //depot/user/howardsu/truss/sys/ia64/ia64/interrupt.c#7 integrate .. //depot/user/howardsu/truss/sys/kern/init_main.c#10 integrate .. //depot/user/howardsu/truss/sys/kern/kern_lock.c#6 integrate .. //depot/user/howardsu/truss/sys/kern/kern_mutex.c#12 integrate .. //depot/user/howardsu/truss/sys/kern/kern_proc.c#10 integrate .. //depot/user/howardsu/truss/sys/kern/kern_rmlock.c#2 integrate .. //depot/user/howardsu/truss/sys/kern/kern_rwlock.c#10 integrate .. //depot/user/howardsu/truss/sys/kern/kern_sx.c#11 integrate .. //depot/user/howardsu/truss/sys/kern/kern_timeout.c#6 integrate .. //depot/user/howardsu/truss/sys/kern/kern_umtx.c#5 integrate .. //depot/user/howardsu/truss/sys/kern/subr_witness.c#13 integrate .. //depot/user/howardsu/truss/sys/kern/sys_pipe.c#5 integrate .. //depot/user/howardsu/truss/sys/kern/tty_pty.c#5 integrate .. //depot/user/howardsu/truss/sys/kern/vfs_cache.c#8 integrate .. //depot/user/howardsu/truss/sys/net/ieee8023ad_lacp.c#7 integrate .. //depot/user/howardsu/truss/sys/net/if_lagg.c#10 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211.c#6 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211.h#8 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_ht.c#4 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_node.c#7 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_output.c#7 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_proto.c#8 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_scan_sta.c#6 integrate .. //depot/user/howardsu/truss/sys/net80211/ieee80211_var.h#7 integrate .. //depot/user/howardsu/truss/sys/netatalk/aarp.c#4 integrate .. //depot/user/howardsu/truss/sys/netatalk/ddp_output.c#4 integrate .. //depot/user/howardsu/truss/sys/netinet/libalias/alias_util.c#3 integrate .. //depot/user/howardsu/truss/sys/netinet/tcp_output.c#14 integrate .. //depot/user/howardsu/truss/sys/netinet/tcp_subr.c#22 integrate .. //depot/user/howardsu/truss/sys/netinet/tcp_syncache.c#17 integrate .. //depot/user/howardsu/truss/sys/netinet6/ip6_output.c#6 integrate .. //depot/user/howardsu/truss/sys/nfsclient/nfs_vnops.c#5 integrate .. //depot/user/howardsu/truss/sys/pci/if_rl.c#4 integrate .. //depot/user/howardsu/truss/sys/pci/if_sf.c#3 integrate .. //depot/user/howardsu/truss/sys/pci/if_ste.c#4 integrate .. //depot/user/howardsu/truss/sys/pci/if_vr.c#6 integrate .. //depot/user/howardsu/truss/sys/pci/if_xl.c#5 integrate .. //depot/user/howardsu/truss/sys/powerpc/include/atomic.h#3 integrate .. //depot/user/howardsu/truss/sys/powerpc/powerpc/intr_machdep.c#6 integrate .. //depot/user/howardsu/truss/sys/sparc64/conf/DEFAULTS#4 integrate .. //depot/user/howardsu/truss/sys/sparc64/sparc64/intr_machdep.c#5 integrate .. //depot/user/howardsu/truss/sys/sun4v/include/stdarg.h#2 integrate .. //depot/user/howardsu/truss/sys/sys/callout.h#4 integrate .. //depot/user/howardsu/truss/sys/sys/linker.h#4 integrate .. //depot/user/howardsu/truss/sys/sys/lock.h#5 integrate .. //depot/user/howardsu/truss/sys/sys/lockmgr.h#4 integrate .. //depot/user/howardsu/truss/sys/sys/mutex.h#11 integrate .. //depot/user/howardsu/truss/sys/sys/umtx.h#4 integrate .. //depot/user/howardsu/truss/sys/vm/vm_contig.c#9 integrate .. //depot/user/howardsu/truss/sys/vm/vm_page.c#17 integrate .. //depot/user/howardsu/truss/sys/vm/vm_pageout.c#13 integrate .. //depot/user/howardsu/truss/sys/vm/vnode_pager.c#8 integrate .. //depot/user/howardsu/truss/tools/sched/schedgraph.py#5 integrate .. //depot/user/howardsu/truss/usr.bin/netstat/Makefile#4 integrate .. //depot/user/howardsu/truss/usr.bin/rpcgen/rpc_cout.c#2 integrate .. //depot/user/howardsu/truss/usr.bin/tail/read.c#4 integrate .. //depot/user/howardsu/truss/usr.sbin/acpi/acpidb/Makefile#3 integrate .. //depot/user/howardsu/truss/usr.sbin/acpi/acpidump/acpi.c#4 integrate .. //depot/user/howardsu/truss/usr.sbin/kldxref/Makefile#2 integrate .. //depot/user/howardsu/truss/usr.sbin/nscd/Makefile#4 integrate .. //depot/user/howardsu/truss/usr.sbin/rpc.yppasswdd/Makefile#2 integrate Differences ... ==== //depot/projects/delphij_fork/ObsoleteFiles.inc#14 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.118 2007/11/16 04:03:08 marcel Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.120 2007/11/21 10:49:33 ru Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -204,7 +204,7 @@ # 20070605: sched_core removal OLD_FILES+=usr/share/man/man4/sched_core.4.gz # 20070603: BIND 9.4.1 import -OLD_LIBS+=lib/liblwres.so.10 +OLD_LIBS+=usr/lib/liblwres.so.10 # 20070521: shared library version bump OLD_LIBS+=lib/libatm.so.4 OLD_LIBS+=lib/libbegemot.so.2 @@ -3963,6 +3963,20 @@ # - usr/share/tmac/mm/locale # - usr/share/tmac/mm/se_locale # - var/yp/Makefile + +# 20071119: shared library version bump +OLD_LIBS+=usr/lib/libasn1.so.8 +OLD_LIBS+=usr/lib/libgssapi.so.8 +OLD_LIBS+=usr/lib/libhdb.so.8 +OLD_LIBS+=usr/lib/libkadm5clnt.so.8 +OLD_LIBS+=usr/lib/libkadm5srv.so.8 +OLD_LIBS+=usr/lib/libkafs5.so.8 +OLD_LIBS+=usr/lib/libkrb5.so.8 +OLD_LIBS+=usr/lib/libobjc.so.2 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libgssapi.so.8 +OLD_LIBS+=usr/lib32/libobjc.so.2 +.endif # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so ==== //depot/projects/delphij_fork/contrib/binutils/opcodes/ppc-dis.c#2 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/contrib/binutils/opcodes/ppc-dis.c,v 1.2 2007/11/23 23:54:44 jb Exp $ */ /* ppc-dis.c -- Disassemble PowerPC instructions Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. @@ -45,6 +46,7 @@ powerpc_dialect (struct disassemble_info *info) { int dialect = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC; + void *pd = &info->private_data; if (BFD_DEFAULT_TARGET_SIZE == 64) dialect |= PPC_OPCODE_64; @@ -91,7 +93,7 @@ dialect |= PPC_OPCODE_64; } - ((struct dis_private *) &info->private_data)->dialect = dialect; + ((struct dis_private *) pd)->dialect = dialect; return dialect; } @@ -100,7 +102,8 @@ int print_insn_big_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 1, dialect); } @@ -109,7 +112,8 @@ int print_insn_little_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 0, dialect); } ==== //depot/projects/delphij_fork/contrib/tcpdump/tcpdump.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.253.2.13 2007/09/12 19:48:51 guy Exp $ (LBL)"; #endif -/* $FreeBSD: src/contrib/tcpdump/tcpdump.c,v 1.12 2007/10/16 02:31:48 mlaier Exp $ */ +/* $FreeBSD: src/contrib/tcpdump/tcpdump.c,v 1.13 2007/11/21 12:52:26 mlaier Exp $ */ /* * tcpdump - monitor tcp/ip traffic on an ethernet. @@ -1132,6 +1132,7 @@ if (pcap_stats(pd, &stat) < 0) { (void)fprintf(stderr, "pcap_stats: %s\n", pcap_geterr(pd)); + infoprint = 0; return; } ==== //depot/projects/delphij_fork/etc/etc.amd64/ttys#3 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/etc.amd64/ttys,v 1.12 2007/11/15 16:22:58 rwatson Exp $ +# $FreeBSD: src/etc/etc.amd64/ttys,v 1.13 2007/11/19 20:49:41 jhb Exp $ # @(#)ttys 5.1 (Berkeley) 4/17/89 # # This file specifies various information about terminals on the system. @@ -307,6 +307,262 @@ ttySt none network ttySu none network ttySv none network +ttyl0 none network +ttyl1 none network +ttyl2 none network +ttyl3 none network +ttyl4 none network +ttyl5 none network +ttyl6 none network +ttyl7 none network +ttyl8 none network +ttyl9 none network +ttyla none network +ttylb none network +ttylc none network +ttyld none network +ttyle none network +ttylf none network +ttylg none network +ttylh none network +ttyli none network +ttylj none network +ttylk none network +ttyll none network +ttylm none network +ttyln none network +ttylo none network +ttylp none network +ttylq none network +ttylr none network +ttyls none network +ttylt none network +ttylu none network +ttylv none network +ttym0 none network +ttym1 none network +ttym2 none network +ttym3 none network +ttym4 none network +ttym5 none network +ttym6 none network +ttym7 none network +ttym8 none network +ttym9 none network +ttyma none network +ttymb none network +ttymc none network +ttymd none network +ttyme none network +ttymf none network +ttymg none network +ttymh none network +ttymi none network +ttymj none network +ttymk none network +ttyml none network +ttymm none network +ttymn none network +ttymo none network +ttymp none network +ttymq none network +ttymr none network +ttyms none network +ttymt none network +ttymu none network +ttymv none network +ttyn0 none network +ttyn1 none network +ttyn2 none network +ttyn3 none network +ttyn4 none network +ttyn5 none network +ttyn6 none network +ttyn7 none network +ttyn8 none network +ttyn9 none network +ttyna none network +ttynb none network +ttync none network +ttynd none network +ttyne none network +ttynf none network +ttyng none network +ttynh none network +ttyni none network +ttynj none network +ttynk none network +ttynl none network +ttynm none network +ttynn none network +ttyno none network +ttynp none network +ttynq none network +ttynr none network +ttyns none network +ttynt none network +ttynu none network +ttynv none network +ttyo0 none network +ttyo1 none network +ttyo2 none network +ttyo3 none network +ttyo4 none network +ttyo5 none network +ttyo6 none network +ttyo7 none network +ttyo8 none network +ttyo9 none network +ttyoa none network +ttyob none network +ttyoc none network +ttyod none network +ttyoe none network +ttyof none network +ttyog none network +ttyoh none network +ttyoi none network +ttyoj none network +ttyok none network +ttyol none network +ttyom none network +ttyon none network +ttyoo none network +ttyop none network +ttyoq none network +ttyor none network +ttyos none network +ttyot none network +ttyou none network +ttyov none network +ttyL0 none network +ttyL1 none network +ttyL2 none network +ttyL3 none network +ttyL4 none network +ttyL5 none network +ttyL6 none network +ttyL7 none network +ttyL8 none network +ttyL9 none network +ttyLa none network +ttyLb none network +ttyLc none network +ttyLd none network +ttyLe none network +ttyLf none network +ttyLg none network +ttyLh none network +ttyLi none network +ttyLj none network +ttyLk none network +ttyLl none network +ttyLm none network +ttyLn none network +ttyLo none network +ttyLp none network +ttyLq none network +ttyLr none network +ttyLs none network +ttyLt none network +ttyLu none network +ttyLv none network +ttyM0 none network +ttyM1 none network +ttyM2 none network +ttyM3 none network +ttyM4 none network +ttyM5 none network +ttyM6 none network +ttyM7 none network +ttyM8 none network +ttyM9 none network +ttyMa none network +ttyMb none network +ttyMc none network +ttyMd none network +ttyMe none network +ttyMf none network +ttyMg none network +ttyMh none network +ttyMi none network +ttyMj none network +ttyMk none network +ttyMl none network +ttyMm none network +ttyMn none network +ttyMo none network +ttyMp none network +ttyMq none network +ttyMr none network +ttyMs none network +ttyMt none network +ttyMu none network +ttyMv none network +ttyN0 none network +ttyN1 none network +ttyN2 none network +ttyN3 none network +ttyN4 none network +ttyN5 none network +ttyN6 none network +ttyN7 none network +ttyN8 none network +ttyN9 none network +ttyNa none network +ttyNb none network +ttyNc none network +ttyNd none network +ttyNe none network +ttyNf none network +ttyNg none network +ttyNh none network +ttyNi none network +ttyNj none network +ttyNk none network +ttyNl none network +ttyNm none network +ttyNn none network +ttyNo none network +ttyNp none network +ttyNq none network +ttyNr none network +ttyNs none network +ttyNt none network +ttyNu none network +ttyNv none network +ttyO0 none network +ttyO1 none network +ttyO2 none network +ttyO3 none network +ttyO4 none network +ttyO5 none network +ttyO6 none network +ttyO7 none network +ttyO8 none network +ttyO9 none network +ttyOa none network +ttyOb none network +ttyOc none network +ttyOd none network +ttyOe none network +ttyOf none network +ttyOg none network +ttyOh none network +ttyOi none network +ttyOj none network +ttyOk none network +ttyOl none network +ttyOm none network +ttyOn none network +ttyOo none network +ttyOp none network +ttyOq none network +ttyOr none network +ttyOs none network +ttyOt none network +ttyOu none network +ttyOv none network pts/0 none network pts/1 none network pts/2 none network ==== //depot/projects/delphij_fork/etc/etc.arm/ttys#4 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/etc/etc.arm/ttys,v 1.5 2007/11/15 16:22:59 rwatson Exp $ +# $FreeBSD: src/etc/etc.arm/ttys,v 1.6 2007/11/19 20:49:41 jhb Exp $ # @(#)ttys 5.1 (Berkeley) 4/17/89 # # This file specifies various information about terminals on the system. @@ -307,6 +307,262 @@ ttySt none network ttySu none network ttySv none network +ttyl0 none network +ttyl1 none network +ttyl2 none network +ttyl3 none network +ttyl4 none network +ttyl5 none network +ttyl6 none network +ttyl7 none network +ttyl8 none network +ttyl9 none network +ttyla none network +ttylb none network +ttylc none network +ttyld none network +ttyle none network +ttylf none network +ttylg none network +ttylh none network +ttyli none network +ttylj none network +ttylk none network +ttyll none network +ttylm none network +ttyln none network +ttylo none network +ttylp none network +ttylq none network +ttylr none network +ttyls none network +ttylt none network +ttylu none network +ttylv none network +ttym0 none network +ttym1 none network +ttym2 none network +ttym3 none network +ttym4 none network +ttym5 none network +ttym6 none network +ttym7 none network +ttym8 none network +ttym9 none network +ttyma none network +ttymb none network +ttymc none network +ttymd none network +ttyme none network +ttymf none network +ttymg none network +ttymh none network +ttymi none network +ttymj none network +ttymk none network +ttyml none network +ttymm none network +ttymn none network +ttymo none network +ttymp none network +ttymq none network +ttymr none network +ttyms none network +ttymt none network +ttymu none network +ttymv none network +ttyn0 none network +ttyn1 none network +ttyn2 none network +ttyn3 none network +ttyn4 none network +ttyn5 none network +ttyn6 none network +ttyn7 none network +ttyn8 none network +ttyn9 none network +ttyna none network +ttynb none network +ttync none network +ttynd none network +ttyne none network +ttynf none network +ttyng none network +ttynh none network +ttyni none network +ttynj none network +ttynk none network +ttynl none network +ttynm none network +ttynn none network +ttyno none network +ttynp none network +ttynq none network +ttynr none network +ttyns none network +ttynt none network +ttynu none network +ttynv none network +ttyo0 none network +ttyo1 none network +ttyo2 none network +ttyo3 none network +ttyo4 none network +ttyo5 none network +ttyo6 none network +ttyo7 none network +ttyo8 none network +ttyo9 none network +ttyoa none network +ttyob none network +ttyoc none network +ttyod none network +ttyoe none network +ttyof none network +ttyog none network +ttyoh none network +ttyoi none network +ttyoj none network +ttyok none network +ttyol none network +ttyom none network +ttyon none network +ttyoo none network +ttyop none network +ttyoq none network +ttyor none network +ttyos none network +ttyot none network +ttyou none network +ttyov none network +ttyL0 none network +ttyL1 none network +ttyL2 none network +ttyL3 none network +ttyL4 none network +ttyL5 none network +ttyL6 none network +ttyL7 none network +ttyL8 none network +ttyL9 none network +ttyLa none network +ttyLb none network +ttyLc none network +ttyLd none network +ttyLe none network +ttyLf none network +ttyLg none network +ttyLh none network +ttyLi none network +ttyLj none network +ttyLk none network +ttyLl none network +ttyLm none network +ttyLn none network +ttyLo none network +ttyLp none network +ttyLq none network +ttyLr none network +ttyLs none network +ttyLt none network +ttyLu none network +ttyLv none network +ttyM0 none network +ttyM1 none network +ttyM2 none network +ttyM3 none network +ttyM4 none network +ttyM5 none network +ttyM6 none network +ttyM7 none network +ttyM8 none network +ttyM9 none network +ttyMa none network +ttyMb none network +ttyMc none network +ttyMd none network +ttyMe none network +ttyMf none network +ttyMg none network +ttyMh none network +ttyMi none network +ttyMj none network +ttyMk none network +ttyMl none network +ttyMm none network +ttyMn none network +ttyMo none network +ttyMp none network +ttyMq none network +ttyMr none network +ttyMs none network +ttyMt none network +ttyMu none network +ttyMv none network +ttyN0 none network +ttyN1 none network +ttyN2 none network >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Nov 25 10:53:18 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4BD1E16A418; Sun, 25 Nov 2007 10:53:18 +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 BE9AF16A419 for ; Sun, 25 Nov 2007 10:53:17 +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 AD56913C45A for ; Sun, 25 Nov 2007 10:53:17 +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 lAPArHIu079209 for ; Sun, 25 Nov 2007 10:53:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPArHqh079206 for perforce@freebsd.org; Sun, 25 Nov 2007 10:53:17 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 10:53:17 GMT Message-Id: <200711251053.lAPArHqh079206@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 129492 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, 25 Nov 2007 10:53:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=129492 Change 129492 by hselasky@hselasky_laptop001 on 2007/11/25 10:53:09 Add BUS-DMA sync operations when loading virtual memory. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#54 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#59 edit .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#48 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#54 (text+ko) ==== @@ -2244,6 +2244,28 @@ } /*------------------------------------------------------------------------* + * usbd_dma_load_pre_sync - flush CPU cache, if any + *------------------------------------------------------------------------*/ +void +usbd_dma_load_pre_sync(struct usbd_xfer *xfer) +{ + bus_dmamap_sync(xfer->udev->bus->dma_tag_1b, xfer->dma_tx_map, + BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); + return; +} + +/*------------------------------------------------------------------------* + * usbd_dma_load_post_sync - invalidate CPU cache, if any + *------------------------------------------------------------------------*/ +void +usbd_dma_load_post_sync(struct usbd_xfer *xfer) +{ + bus_dmamap_sync(xfer->udev->bus->dma_tag_1b, xfer->dma_rx_map, + BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD); + return; +} + +/*------------------------------------------------------------------------* * usbd_page_cpu_invalidate - invalidate CPU cache *------------------------------------------------------------------------*/ void @@ -2269,7 +2291,8 @@ * usbd_dma_load_mem_callback - internal callback *------------------------------------------------------------------------*/ static void -usbd_dma_load_mem_callback(void *arg, bus_dma_segment_t *segs, int nseg, int error) +usbd_dma_load_mem_callback(void *arg, bus_dma_segment_t *segs, + int nseg, int error) { struct usbd_page_cache *pc; struct usbd_xfer *xfer; ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#59 (text+ko) ==== @@ -710,6 +710,8 @@ void usbd_dma_tag_free(bus_dma_tag_t tag); void *usbd_mem_alloc_sub(bus_dma_tag_t tag, struct usbd_page *page, uint32_t size, uint32_t alignment); void usbd_mem_free_sub(struct usbd_page *page); +void usbd_dma_load_pre_sync(struct usbd_xfer *xfer); +void usbd_dma_load_post_sync(struct usbd_xfer *xfer); void usbd_page_cpu_invalidate(struct usbd_page *page); void usbd_page_cpu_flush(struct usbd_page *page); void usbd_pio_load_mem(struct usbd_xfer *xfer, struct usbd_dma_load_mem_info *info); ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#48 (text+ko) ==== @@ -1520,6 +1520,9 @@ /* report error */ usbd_premature_callback(xfer, USBD_DMA_LOAD_FAILED); } else { + if (xfer->flags_int.bdma_enable) { + usbd_dma_load_pre_sync(xfer); + } /* finally start the hardware */ usbd_pipe_enter_wrapper(xfer); } @@ -1777,10 +1780,16 @@ xfer->usb_state = USBD_ST_SETUP; } else { xfer->flags_int.transferring = 0; - if (xfer->error) + if (xfer->error) { xfer->usb_state = USBD_ST_ERROR; - else + } else { xfer->usb_state = USBD_ST_TRANSFERRED; + + if (xfer->flags.bdma_enable && + xfer->flags_int.bdma_enable) { + usbd_dma_load_post_sync(xfer); + } + } } /* call processing routine */ From owner-p4-projects@FreeBSD.ORG Sun Nov 25 10:56:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2EAE016A468; Sun, 25 Nov 2007 10:56: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 93DAD16A41A for ; Sun, 25 Nov 2007 10:56:21 +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 6B36813C455 for ; Sun, 25 Nov 2007 10:56:21 +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 lAPAuL0C079324 for ; Sun, 25 Nov 2007 10:56:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPAuLZF079321 for perforce@freebsd.org; Sun, 25 Nov 2007 10:56:21 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 10:56:21 GMT Message-Id: <200711251056.lAPAuLZF079321@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 129493 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, 25 Nov 2007 10:56:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=129493 Change 129493 by hselasky@hselasky_laptop001 on 2007/11/25 10:56:08 Refactor code a little bit. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#49 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#49 (text+ko) ==== @@ -1625,7 +1625,9 @@ } mtx_assert(xfer->priv_mtx, MA_OWNED); - if (xfer->flags_int.open) { + if (!xfer->flags_int.open) { + return; + } /* * close transfer */ @@ -1673,7 +1675,6 @@ */ usbd_callback_wrapper(xfer); } - } return; } From owner-p4-projects@FreeBSD.ORG Sun Nov 25 10:59:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2BE7E16A468; Sun, 25 Nov 2007 10:59: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 D6CFF16A418 for ; Sun, 25 Nov 2007 10:59:24 +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 C5E6E13C44B for ; Sun, 25 Nov 2007 10:59:24 +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 lAPAxOVq079452 for ; Sun, 25 Nov 2007 10:59:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPAxO6K079449 for perforce@freebsd.org; Sun, 25 Nov 2007 10:59:24 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 10:59:24 GMT Message-Id: <200711251059.lAPAxO6K079449@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 129494 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, 25 Nov 2007 10:59:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129494 Change 129494 by hselasky@hselasky_laptop001 on 2007/11/25 10:58:43 Style change. Result from running "usb_style.sh". Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#50 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#50 (text+ko) ==== @@ -1628,53 +1628,53 @@ if (!xfer->flags_int.open) { return; } - /* - * close transfer - */ - mtx_lock(xfer->usb_mtx); + /* + * close transfer + */ + mtx_lock(xfer->usb_mtx); - /* - * NOTE: we need to exclude the - * host controller driver from - * reading "flags_int" when we - * clear "flags_int.open" ! - */ - xfer->flags_int.open = 0; + /* + * NOTE: we need to exclude the + * host controller driver from + * reading "flags_int" when we + * clear "flags_int.open" ! + */ + xfer->flags_int.open = 0; - (xfer->pipe->methods->close) (xfer); + (xfer->pipe->methods->close) (xfer); - /* - * By clearing the "usb_thread" variable we are signalling - * that a different thread has handled the callback. This - * prevents other threads that are about to call the - * callback, to actually call the callback. - */ - xfer->usb_thread = NULL; - mtx_unlock(xfer->usb_mtx); + /* + * By clearing the "usb_thread" variable we are signalling + * that a different thread has handled the callback. This + * prevents other threads that are about to call the + * callback, to actually call the callback. + */ + xfer->usb_thread = NULL; + mtx_unlock(xfer->usb_mtx); - /* always set error */ - xfer->error = USBD_CANCELLED; + /* always set error */ + xfer->error = USBD_CANCELLED; - state = xfer->flags_int.bdma_state; + state = xfer->flags_int.bdma_state; + /* + * Update BUS-DMA state to cancelling, if needed + */ + if ((state == USBD_BDMA_ST_LOADING) || + (state == USBD_BDMA_ST_CANCEL_AND_LOAD)) { + xfer->flags_int.bdma_state = USBD_BDMA_ST_CANCELLING; + } + /* + * Check if we are doing a transfer and if so + * do a Cancel Callback + */ + if (xfer->flags_int.transferring) { /* - * Update BUS-DMA state to cancelling, if needed + * call callback, which will clear + * "flags_int.transferring" */ - if ((state == USBD_BDMA_ST_LOADING) || - (state == USBD_BDMA_ST_CANCEL_AND_LOAD)) { - xfer->flags_int.bdma_state = USBD_BDMA_ST_CANCELLING; - } - /* - * Check if we are doing a transfer and if so - * do a Cancel Callback - */ - if (xfer->flags_int.transferring) { - /* - * call callback, which will clear - * "flags_int.transferring" - */ - usbd_callback_wrapper(xfer); - } + usbd_callback_wrapper(xfer); + } return; } From owner-p4-projects@FreeBSD.ORG Sun Nov 25 11:01:28 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E56BD16A418; Sun, 25 Nov 2007 11:01: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 7F20316A421 for ; Sun, 25 Nov 2007 11:01:27 +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 6E76513C4CE for ; Sun, 25 Nov 2007 11:01:27 +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 lAPB1RHC079584 for ; Sun, 25 Nov 2007 11:01:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPB1RCn079581 for perforce@freebsd.org; Sun, 25 Nov 2007 11:01:27 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 11:01:27 GMT Message-Id: <200711251101.lAPB1RCn079581@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 129495 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, 25 Nov 2007 11:01:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=129495 Change 129495 by hselasky@hselasky_laptop001 on 2007/11/25 11:01:06 Refactor code. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#51 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#51 (text+ko) ==== @@ -1577,7 +1577,10 @@ (xfer->pipe->methods->open) (xfer); mtx_unlock(xfer->usb_mtx); } - if (!xfer->flags_int.transferring) { + if (xfer->flags_int.transferring) { + return; + } + /* call callback */ usbd_callback_wrapper(xfer); @@ -1604,7 +1607,6 @@ (bus->methods->do_poll) (bus); } } - } return; } From owner-p4-projects@FreeBSD.ORG Sun Nov 25 11:02:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 88E8016A41A; Sun, 25 Nov 2007 11:02:30 +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 41B7B16A480 for ; Sun, 25 Nov 2007 11:02:30 +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 B1B2213C458 for ; Sun, 25 Nov 2007 11:02:28 +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 lAPB2Sp4079624 for ; Sun, 25 Nov 2007 11:02:28 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPB2Sd6079621 for perforce@freebsd.org; Sun, 25 Nov 2007 11:02:28 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 11:02:28 GMT Message-Id: <200711251102.lAPB2Sd6079621@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 129496 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, 25 Nov 2007 11:02:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=129496 Change 129496 by hselasky@hselasky_laptop001 on 2007/11/25 11:02:11 Style change. Result from running "usb_style.sh". Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#52 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#52 (text+ko) ==== @@ -1580,33 +1580,32 @@ if (xfer->flags_int.transferring) { return; } + /* call callback */ + usbd_callback_wrapper(xfer); - /* call callback */ - usbd_callback_wrapper(xfer); + /* + * wait for completion if polling is selected + */ + if (xfer->flags.use_polling) { + timeout = xfer->timeout + 1; + bus = xfer->udev->bus; - /* - * wait for completion if polling is selected - */ - if (xfer->flags.use_polling) { - timeout = xfer->timeout + 1; - bus = xfer->udev->bus; + while (xfer->flags_int.transferring) { + if (!timeout--) { + /* stop the transfer */ + usbd_transfer_stop(xfer); + break; + } + /* delay one millisecond */ + DELAY(1000); - while (xfer->flags_int.transferring) { - if (!timeout--) { - /* stop the transfer */ - usbd_transfer_stop(xfer); - break; - } - /* delay one millisecond */ - DELAY(1000); - - /* - * call the interrupt handler, which will - * call usbd_callback_wrapper(): - */ - (bus->methods->do_poll) (bus); - } + /* + * call the interrupt handler, which will + * call usbd_callback_wrapper(): + */ + (bus->methods->do_poll) (bus); } + } return; } From owner-p4-projects@FreeBSD.ORG Sun Nov 25 12:09:42 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56AED16A41B; Sun, 25 Nov 2007 12:09:41 +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 05AFE16A417 for ; Sun, 25 Nov 2007 12:09:41 +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 E88CD13C442 for ; Sun, 25 Nov 2007 12:09:40 +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 lAPC9evU085103 for ; Sun, 25 Nov 2007 12:09:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPC9eva085100 for perforce@freebsd.org; Sun, 25 Nov 2007 12:09:40 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 12:09:40 GMT Message-Id: <200711251209.lAPC9eva085100@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 129498 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, 25 Nov 2007 12:09:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=129498 Change 129498 by hselasky@hselasky_laptop001 on 2007/11/25 12:09:11 Final step into adding support for loading of virtual buffers into DMA. Add code that allocates and frees BUS-DMA maps. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#55 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#60 edit .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#53 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#55 (text+ko) ==== @@ -2244,6 +2244,51 @@ } /*------------------------------------------------------------------------* + * usbd_dma_load_setup - allocate BUS-DMA maps + *------------------------------------------------------------------------*/ +void +usbd_dma_load_setup(struct usbd_setup_params *parm) +{ + struct usbd_xfer *xfer; + + if (parm->buf == NULL) { + return; + } + xfer = parm->curr_xfer; + + if (bus_dmamap_create(xfer->udev->bus->dma_tag_1b, 0, + &(xfer->dma_tx_map))) { + xfer->dma_tx_map = NULL; + parm->err = USBD_NOMEM; + return; + } + if (bus_dmamap_create(xfer->udev->bus->dma_tag_1b, 0, + &(xfer->dma_rx_map))) { + xfer->dma_rx_map = NULL; + parm->err = USBD_NOMEM; + return; + } + return; +} + +/*------------------------------------------------------------------------* + * usbd_dma_load_unsetup - release BUS-DMA maps + *------------------------------------------------------------------------*/ +void +usbd_dma_load_unsetup(struct usbd_xfer *xfer) +{ + if (xfer->dma_tx_map) { + bus_dmamap_destroy(xfer->udev->bus->dma_tag_1b, + xfer->dma_tx_map); + } + if (xfer->dma_rx_map) { + bus_dmamap_destroy(xfer->udev->bus->dma_tag_1b, + xfer->dma_rx_map); + } + return; +} + +/*------------------------------------------------------------------------* * usbd_dma_load_pre_sync - flush CPU cache, if any *------------------------------------------------------------------------*/ void ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#60 (text+ko) ==== @@ -710,6 +710,8 @@ void usbd_dma_tag_free(bus_dma_tag_t tag); void *usbd_mem_alloc_sub(bus_dma_tag_t tag, struct usbd_page *page, uint32_t size, uint32_t alignment); void usbd_mem_free_sub(struct usbd_page *page); +void usbd_dma_load_setup(struct usbd_setup_params *parm); +void usbd_dma_load_unsetup(struct usbd_xfer *xfer); void usbd_dma_load_pre_sync(struct usbd_xfer *xfer); void usbd_dma_load_post_sync(struct usbd_xfer *xfer); void usbd_page_cpu_invalidate(struct usbd_page *page); ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#53 (text+ko) ==== @@ -678,12 +678,9 @@ *------------------------------------------------------------------------*/ usbd_status usbd_transfer_setup(struct usbd_device *udev, - uint8_t iface_index, - struct usbd_xfer **ppxfer, - const struct usbd_config *setup_start, - uint16_t n_setup, - void *priv_sc, - struct mtx *priv_mtx) + uint8_t iface_index, struct usbd_xfer **ppxfer, + const struct usbd_config *setup_start, uint16_t n_setup, + void *priv_sc, struct mtx *priv_mtx) { struct usbd_xfer dummy; struct usbd_setup_params parm; @@ -813,6 +810,10 @@ (udev->bus->methods->xfer_setup) (&parm); + if (xfer->flags.bdma_enable && + xfer->flags_int.bdma_enable) { + usbd_dma_load_setup(&parm); + } if (parm.err) { goto done; } @@ -959,6 +960,8 @@ usb_callout_drain(&(xfer->timeout_handle)); + usbd_dma_load_unsetup(xfer); + if (xfer->usb_root) { info = xfer->usb_root; From owner-p4-projects@FreeBSD.ORG Sun Nov 25 13:56:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0CAE816A41A; Sun, 25 Nov 2007 13:56: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 99BFE16A417 for ; Sun, 25 Nov 2007 13:56:35 +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 6FD0313C46E for ; Sun, 25 Nov 2007 13:56:35 +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 lAPDuZFP099057 for ; Sun, 25 Nov 2007 13:56:35 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPDuZFE099054 for perforce@freebsd.org; Sun, 25 Nov 2007 13:56:35 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 13:56:35 GMT Message-Id: <200711251356.lAPDuZFE099054@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 129505 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, 25 Nov 2007 13:56:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=129505 Change 129505 by hselasky@hselasky_laptop001 on 2007/11/25 13:56:06 Add extra error check. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#54 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#54 (text+ko) ==== @@ -812,6 +812,9 @@ if (xfer->flags.bdma_enable && xfer->flags_int.bdma_enable) { + if (parm.err) { + goto done; + } usbd_dma_load_setup(&parm); } if (parm.err) { From owner-p4-projects@FreeBSD.ORG Sun Nov 25 13:59:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9925C16A469; Sun, 25 Nov 2007 13:59: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 4C5EF16A419 for ; Sun, 25 Nov 2007 13:59:39 +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 39ABB13C4DD for ; Sun, 25 Nov 2007 13:59:39 +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 lAPDxdYu099176 for ; Sun, 25 Nov 2007 13:59:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPDxcoA099173 for perforce@freebsd.org; Sun, 25 Nov 2007 13:59:38 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 13:59:38 GMT Message-Id: <200711251359.lAPDxcoA099173@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 129506 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, 25 Nov 2007 13:59:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=129506 Change 129506 by hselasky@hselasky_laptop001 on 2007/11/25 13:58:45 Temporary patches to get loading for virtual buffers working. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#56 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#61 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#56 (text+ko) ==== @@ -2088,7 +2088,7 @@ uint32_t alignment = (1 << align_power); void *ptr; - tag = usbd_dma_tag_alloc(parent, size, alignment, size); + tag = usbd_dma_tag_alloc(parent, size, alignment, size, 1); if (tag == NULL) { return (NULL); @@ -2127,12 +2127,11 @@ bus_dmamap_load_callback(void *arg, bus_dma_segment_t *segs, int nseg, int error) { - *((bus_size_t *)arg) = nseg ? segs->ds_addr : 0; + __KASSERT(nseg == 1, ("Invalid number of segments, %d!\n", nseg)); + __KASSERT(error == 0, ("Could not load memory into DMA!\n")); + + *((bus_size_t *)arg) = segs->ds_addr; - if (error) { - printf("%s: %s: error=%d\n", - __FILE__, __FUNCTION__, error); - } return; } @@ -2141,7 +2140,7 @@ *------------------------------------------------------------------------*/ bus_dma_tag_t usbd_dma_tag_alloc(bus_dma_tag_t parent, uint32_t seg_size, - uint32_t alignment, uint32_t max_size) + uint32_t alignment, uint32_t max_size, uint8_t single_seg) { bus_dma_tag_t tag; @@ -2154,7 +2153,7 @@ /* filter */ NULL, /* filterarg */ NULL, /* maxsize */ max_size, - /* nsegments */ 1, + /* nsegments */ (single_seg ? 1 : ((16 * 1024 * 1024) / USB_PAGE_SIZE)), /* maxsegsz */ seg_size, /* flags */ 0, /* lock */ NULL, @@ -2352,6 +2351,9 @@ mtx_lock(xfer->priv_mtx); if (error) { + printf("%s: %s: error=%d\n", + __FILE__, __FUNCTION__, error); + xfer->flags_int.bdma_error = 1; } else { __KASSERT(nseg > 0, ("Invalid number of segments!\n")); @@ -2450,7 +2452,7 @@ bus_dma_tag_t usbd_dma_tag_alloc(bus_dma_tag_t parent, uint32_t seg_size, - uint32_t alignment, uint32_t max_size) + uint32_t alignment, uint32_t max_size, uint8_t single_seg) { /* FreeBSD specific */ return (parent); @@ -3141,15 +3143,14 @@ } } bus->dma_tag_1b = - usbd_dma_tag_alloc(parent_tag, USB_PAGE_SIZE, 1, - 0 - 1); + usbd_dma_tag_alloc(parent_tag, USB_PAGE_SIZE, 1, 0 - 1, 0); if (bus->dma_tag_1b == NULL) { goto error; } bus->dma_tag_ps = - usbd_dma_tag_alloc(parent_tag, USB_PAGE_SIZE, USB_PAGE_SIZE, - USB_PAGE_SIZE); + usbd_dma_tag_alloc(parent_tag, USB_PAGE_SIZE, + USB_PAGE_SIZE, USB_PAGE_SIZE, 1); if (bus->dma_tag_ps == NULL) { goto error; ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#61 (text+ko) ==== @@ -706,7 +706,7 @@ uint32_t usbd_page_fit_obj(uint32_t size, uint32_t obj_len); void *usbd_mem_alloc(bus_dma_tag_t parent, struct usbd_page *page, uint32_t size, uint8_t align_power); void usbd_mem_free(struct usbd_page *page); -bus_dma_tag_t usbd_dma_tag_alloc(bus_dma_tag_t parent, uint32_t seg_size, uint32_t alignment, uint32_t max_size); +bus_dma_tag_t usbd_dma_tag_alloc(bus_dma_tag_t parent, uint32_t seg_size, uint32_t alignment, uint32_t max_size, uint8_t single_seg); void usbd_dma_tag_free(bus_dma_tag_t tag); void *usbd_mem_alloc_sub(bus_dma_tag_t tag, struct usbd_page *page, uint32_t size, uint32_t alignment); void usbd_mem_free_sub(struct usbd_page *page); From owner-p4-projects@FreeBSD.ORG Sun Nov 25 14:00:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EAD0B16A420; Sun, 25 Nov 2007 14:00: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 AF8A916A418 for ; Sun, 25 Nov 2007 14:00:40 +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 927EB13C478 for ; Sun, 25 Nov 2007 14:00:40 +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 lAPE0e3t099277 for ; Sun, 25 Nov 2007 14:00:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPE0ewZ099274 for perforce@freebsd.org; Sun, 25 Nov 2007 14:00:40 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 25 Nov 2007 14:00:40 GMT Message-Id: <200711251400.lAPE0ewZ099274@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 129507 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, 25 Nov 2007 14:00:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=129507 Change 129507 by hselasky@hselasky_laptop001 on 2007/11/25 14:00:35 Add code that makes UMASS load virtual buffers directly into DMA. Testing did not reveal significantly increased throughput when using this feature. Only less CPU usage. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/umass.c#32 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/umass.c#32 (text+ko) ==== @@ -121,6 +121,13 @@ #include +#if 0 +/* this enables loading of virtual buffers into DMA */ +#define UMASS_USB_FLAGS .bdma_enable=1,.ext_buffer=1, +#else +#define UMASS_USB_FLAGS +#endif + #ifdef USB_DEBUG #define DIF(m, x) \ do { \ @@ -1097,7 +1104,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, .bufsize = UMASS_BULK_SIZE, - .flags = {.proxy_buffer = 1,.short_xfer_ok = 1,}, + .flags = {.proxy_buffer = 1,.short_xfer_ok = 1, UMASS_USB_FLAGS}, .callback = &umass_t_bbb_data_read_callback, .timeout = 0, /* overwritten later */ }, @@ -1117,7 +1124,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .bufsize = UMASS_BULK_SIZE, - .flags = {.proxy_buffer = 1,.short_xfer_ok = 1,}, + .flags = {.proxy_buffer = 1,.short_xfer_ok = 1, UMASS_USB_FLAGS}, .callback = &umass_t_bbb_data_write_callback, .timeout = 0, /* overwritten later */ }, @@ -1195,7 +1202,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, .bufsize = UMASS_BULK_SIZE, - .flags = {.proxy_buffer = 1,.short_xfer_ok = 1,}, + .flags = {.proxy_buffer = 1,.short_xfer_ok = 1, UMASS_USB_FLAGS}, .callback = &umass_t_cbi_data_read_callback, .timeout = 0, /* overwritten later */ }, @@ -1215,7 +1222,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .bufsize = UMASS_BULK_SIZE, - .flags = {.proxy_buffer = 1,.short_xfer_ok = 1,}, + .flags = {.proxy_buffer = 1,.short_xfer_ok = 1, UMASS_USB_FLAGS}, .callback = &umass_t_cbi_data_write_callback, .timeout = 0, /* overwritten later */ }, @@ -1893,9 +1900,10 @@ switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: - usbd_copy_out(&(xfer->buf_data), 0, - sc->sc_transfer.data_ptr, xfer->actlen); - + if (!xfer->flags.bdma_enable) { + usbd_copy_out(&(xfer->buf_data), 0, + sc->sc_transfer.data_ptr, xfer->actlen); + } sc->sc_transfer.data_rem -= xfer->actlen; sc->sc_transfer.data_ptr += xfer->actlen; sc->sc_transfer.actlen += xfer->actlen; @@ -1918,6 +1926,10 @@ xfer->timeout = sc->sc_transfer.data_timeout; xfer->frlengths[0] = max_bulk; + if (xfer->flags.bdma_enable) { + usbd_set_frame_data(xfer, sc->sc_transfer.data_ptr, + max_bulk, 0); + } usbd_start_hardware(xfer); return; @@ -1970,8 +1982,13 @@ xfer->timeout = sc->sc_transfer.data_timeout; xfer->frlengths[0] = max_bulk; - usbd_copy_in(&(xfer->buf_data), 0, - sc->sc_transfer.data_ptr, max_bulk); + if (xfer->flags.bdma_enable) { + usbd_set_frame_data(xfer, sc->sc_transfer.data_ptr, + max_bulk, 0); + } else { + usbd_copy_in(&(xfer->buf_data), 0, + sc->sc_transfer.data_ptr, max_bulk); + } usbd_start_hardware(xfer); return; @@ -2386,9 +2403,10 @@ switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: - usbd_copy_out(&(xfer->buf_data), 0, - sc->sc_transfer.data_ptr, xfer->actlen); - + if (!xfer->flags.bdma_enable) { + usbd_copy_out(&(xfer->buf_data), 0, + sc->sc_transfer.data_ptr, xfer->actlen); + } sc->sc_transfer.data_rem -= xfer->actlen; sc->sc_transfer.data_ptr += xfer->actlen; sc->sc_transfer.actlen += xfer->actlen; @@ -2463,8 +2481,13 @@ } xfer->timeout = sc->sc_transfer.data_timeout; - usbd_copy_in(&(xfer->buf_data), 0, - sc->sc_transfer.data_ptr, max_bulk); + if (xfer->flags.bdma_enable) { + usbd_set_frame_data(xfer, sc->sc_transfer.data_ptr, + max_bulk, 0); + } else { + usbd_copy_in(&(xfer->buf_data), 0, + sc->sc_transfer.data_ptr, max_bulk); + } xfer->frlengths[0] = max_bulk; usbd_start_hardware(xfer); From owner-p4-projects@FreeBSD.ORG Sun Nov 25 22:29:55 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A239716A41A; Sun, 25 Nov 2007 22:29: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 0EEF216A418 for ; Sun, 25 Nov 2007 22:29:54 +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 F0EED13C467 for ; Sun, 25 Nov 2007 22:29:53 +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 lAPMTrV5047211 for ; Sun, 25 Nov 2007 22:29:53 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPMTrfV047208 for perforce@freebsd.org; Sun, 25 Nov 2007 22:29:53 GMT (envelope-from jb@freebsd.org) Date: Sun, 25 Nov 2007 22:29:53 GMT Message-Id: <200711252229.lAPMTrfV047208@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 129522 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, 25 Nov 2007 22:29:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=129522 Change 129522 by jb@jb_freebsd1 on 2007/11/25 22:29:01 IFC Affected files ... .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#12 integrate .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#48 integrate .. //depot/projects/dtrace/src/lib/libpmc/Makefile#5 integrate .. //depot/projects/dtrace/src/lib/libpmc/pmc.3#5 integrate .. //depot/projects/dtrace/src/lib/libpmc/pmc_attach.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_capabilities.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_configure_logfile.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_get_driver_stats.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_get_msr.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_init.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_read.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_set.3#1 branch .. //depot/projects/dtrace/src/lib/libpmc/pmc_start.3#1 branch .. //depot/projects/dtrace/src/share/man/man4/hwpmc.4#9 integrate .. //depot/projects/dtrace/src/share/man/man9/rwlock.9#8 integrate .. //depot/projects/dtrace/src/share/man/man9/sx.9#7 integrate .. //depot/projects/dtrace/src/sys/net/if_lagg.c#4 integrate .. //depot/projects/dtrace/src/sys/net/pfil.c#4 integrate .. //depot/projects/dtrace/src/sys/net/pfil.h#5 integrate .. //depot/projects/dtrace/src/sys/vm/vm_contig.c#10 integrate .. //depot/projects/dtrace/src/sys/vm/vm_pageout.c#9 integrate .. //depot/projects/dtrace/src/sys/vm/vm_pageout.h#4 integrate .. //depot/projects/dtrace/src/usr.bin/make/main.c#6 integrate .. //depot/projects/dtrace/www/en/releases/6.3R/Makefile#1 branch .. //depot/projects/dtrace/www/en/releases/6.3R/schedule.sgml#1 branch .. //depot/projects/dtrace/www/en/releases/7.0R/schedule.sgml#6 integrate .. //depot/projects/dtrace/www/en/releases/Makefile#5 integrate .. //depot/projects/dtrace/www/en/where.sgml#14 integrate .. //depot/projects/dtrace/www/share/sgml/navibar.ent#7 integrate Differences ... ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#12 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -901,8 +901,8 @@ &prompt.root; ifconfig ath0 up scan SSID BSSID CHAN RATE S:N INT CAPS -dlinkap 00:13:46:49:41:76 6 54M 29:0 100 EPS WPA WME -freebsdap 00:11:95:c3:0d:ac 1 54M 22:0 100 EPS WPA +dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME +freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPA You must mark the interface @@ -1143,7 +1143,7 @@ parameters you have set up for selecting an access point: - ifconfig_ath0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here" + ifconfig_ath0="ssid your_ssid_here inet 192.168.1.100 netmask 255.255.255.0" @@ -1635,8 +1635,8 @@ WEP can be set up with ifconfig: - &prompt.root; ifconfig ath0 inet 192.168.1.100 netmask 255.255.255.0 ssid my_net \ - wepmode on weptxkey 3 wepkey 3:0x3456789012 + &prompt.root; ifconfig ath0 ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012 \ + inet 192.168.1.100 netmask 255.255.255.0 @@ -1698,7 +1698,7 @@ On the box A: - &prompt.root; ifconfig ath0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc + &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0 &prompt.root; ifconfig ath0 ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 @@ -1717,14 +1717,14 @@ &prompt.root; ifconfig ath0 up scan SSID BSSID CHAN RATE S:N INT CAPS - freebsdap 02:11:95:c3:0d:ac 2 54M 19:0 100 IS + freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 IS The I in the output confirms the machine A is in ad-hoc mode. We just have to configure B with a different IP address: - &prompt.root; ifconfig ath0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc + &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0 &prompt.root; ifconfig ath0 ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1 ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#48 (text+ko) ==== @@ -1,7 +1,7 @@ 602115 + 6.3-RELEASE + 603000 + + + 6.3-STABLE after 6.3-RELEASE. + 603100 + + 7.0-CURRENT. 700000 ==== //depot/projects/dtrace/src/lib/libpmc/Makefile#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libpmc/Makefile,v 1.8 2007/11/24 11:05:36 jkoshy Exp $ +# $FreeBSD: src/lib/libpmc/Makefile,v 1.10 2007/11/25 06:38:55 jkoshy Exp $ LIB= pmc @@ -7,38 +7,42 @@ WARNS?= 6 -MAN= pmc.3 pmc_allocate.3 pmc_disable.3 pmc_event_names_of_class.3 +MAN= pmc.3 +MAN+= pmc_allocate.3 +MAN+= pmc_attach.3 +MAN+= pmc_capabilities.3 +MAN+= pmc_configure_logfile.3 +MAN+= pmc_disable.3 +MAN+= pmc_event_names_of_class.3 +MAN+= pmc_get_driver_stats.3 +MAN+= pmc_get_msr.3 +MAN+= pmc_init.3 MAN+= pmc_name_of_capability.3 +MAN+= pmc_read.3 +MAN+= pmc_set.3 +MAN+= pmc_start.3 MAN+= pmclog.3 MLINKS+= \ pmc_allocate.3 pmc_release.3 \ - pmc.3 pmc_attach.3 \ - pmc.3 pmc_configure_logfile.3 \ - pmc.3 pmc_cpuinfo.3 \ - pmc.3 pmc_detach.3 \ + pmc_attach.3 pmc_detach.3 \ + pmc_capabilities.3 pmc_ncpu.3 \ + pmc_capabilities.3 pmc_npmc.3 \ + pmc_capabilities.3 pmc_pmcinfo.3 \ + pmc_capabilities.3 pmc_cpuinfo.3 \ + pmc_capabilities.3 pmc_width.3 \ + pmc_configure_logfile.3 pmc_flush_logfile.3 \ + pmc_configure_logfile.3 pmc_writelog.3 \ pmc_disable.3 pmc_enable.3 \ - pmc.3 pmc_flush_logfile.3 \ - pmc.3 pmc_get_driver_stats.3 \ - pmc.3 pmc_init.3 \ pmc_name_of_capability.3 pmc_name_of_class.3 \ pmc_name_of_capability.3 pmc_name_of_cputype.3 \ pmc_name_of_capability.3 pmc_name_of_disposition.3 \ pmc_name_of_capability.3 pmc_name_of_event.3 \ pmc_name_of_capability.3 pmc_name_of_mode.3 \ pmc_name_of_capability.3 pmc_name_of_state.3 \ - pmc.3 pmc_ncpu.3 \ - pmc.3 pmc_npmc.3 \ - pmc.3 pmc_pmcinfo.3 \ - pmc.3 pmc_read.3 \ - pmc.3 pmc_rw.3 \ - pmc.3 pmc_set.3 \ - pmc.3 pmc_start.3 \ - pmc.3 pmc_stop.3 \ - pmc.3 pmc_width.3 \ - pmc.3 pmc_write.3 \ - pmc.3 pmc_writelog.3 \ - pmc.3 pmc_x86_get_msr.3 + pmc_read.3 pmc_rw.3 \ + pmc_read.3 pmc_write.3 \ + pmc_start.3 pmc_stop.3 MLINKS+= \ pmclog.3 pmclog_open.3 \ ==== //depot/projects/dtrace/src/lib/libpmc/pmc.3#5 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2006 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2003-2007 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -21,304 +21,305 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.13 2007/04/12 09:16:54 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.14 2007/11/25 06:50:31 jkoshy Exp $ .\" -.Dd February 25, 2006 +.Dd November 25, 2007 .Os .Dt PMC 3 .Sh NAME -.Nm pmc_allocate , -.Nm pmc_attach , -.Nm pmc_capabilities , -.Nm pmc_configure_logfile , -.Nm pmc_cpuinfo , -.Nm pmc_detach , -.Nm pmc_disable , -.Nm pmc_enable , -.Nm pmc_event_names_of_class , -.Nm pmc_flush_logfile , -.Nm pmc_get_driver_stats , -.Nm pmc_get_msr , -.Nm pmc_init , -.Nm pmc_name_of_capability , -.Nm pmc_name_of_class , -.Nm pmc_name_of_cputype , -.Nm pmc_name_of_event , -.Nm pmc_name_of_mode , -.Nm pmc_name_of_state , -.Nm pmc_ncpu , -.Nm pmc_npmc , -.Nm pmc_pmcinfo , -.Nm pmc_read , -.Nm pmc_release , -.Nm pmc_rw , -.Nm pmc_set , -.Nm pmc_start , -.Nm pmc_stop , -.Nm pmc_width , -.Nm pmc_write , -.Nm pmc_writelog -.Nd programming API for using hardware performance monitoring counters +.Nm pmc +.Nd library for accessing hardware performance monitoring counters .Sh LIBRARY .Lb libpmc .Sh SYNOPSIS .In pmc.h -.Ft int -.Fo pmc_allocate -.Fa "const char *eventspecifier" -.Fa "enum pmc_mode mode" -.Fa "uint32_t flags" -.Fa "int cpu" -.Fa "pmc_id_t *pmcid" -.Fc -.Ft int -.Fn pmc_attach "pmc_id_t pmcid" "pid_t pid" -.Ft int -.Fn pmc_capabilities "pmc_id_t pmc" "uint32_t *caps" -.Ft int -.Fn pmc_configure_logfile "int fd" -.Ft int -.Fn pmc_cpuinfo "const struct pmc_cpuinfo **cpu_info" -.Ft int -.Fn pmc_detach "pmc_id_t pmcid" "pid_t pid" -.Ft int -.Fn pmc_disable "int cpu" "int pmc" -.Ft int -.Fn pmc_enable "int cpu" "int pmc" -.Ft int -.Fo pmc_event_names_of_class -.Fa "enum pmc_class cl" -.Fa "const char ***eventnames" -.Fa "int *nevents" -.Fc -.Ft int -.Fn pmc_flush_logfile void -.Ft int -.Fn pmc_get_driver_stats "struct pmc_driverstats *gms" -.Ft int -.Fn pmc_get_msr "pmc_id_t pmc" "uint32_t *msr" -.Ft int -.Fn pmc_init void -.Ft "const char *" -.Fn pmc_name_of_capability "enum pmc_caps pc" -.Ft "const char *" -.Fn pmc_name_of_class "enum pmc_class pc" -.Ft "const char *" -.Fn pmc_name_of_cputype "enum pmc_cputype ct" -.Ft "const char *" -.Fn pmc_name_of_disposition "enum pmc_disp pd" -.Ft "const char *" -.Fn pmc_name_of_event "enum pmc_event pe" -.Ft "const char *" -.Fn pmc_name_of_mode "enum pmc_mode pm" -.Ft "const char *" -.Fn pmc_name_of_state "enum pmc_state ps" -.Ft int -.Fn pmc_ncpu void -.Ft int -.Fn pmc_npmc "int cpu" -.Ft int -.Fn pmc_pmcinfo "int cpu" "struct pmc_pmcinfo **pmc_info" -.Ft int -.Fn pmc_read "pmc_id_t pmc" "pmc_value_t *value" -.Ft int -.Fn pmc_release "pmc_id_t pmc" -.Ft int -.Fn pmc_rw "pmc_id_t pmc" "pmc_value_t newvalue" "pmc_value_t *oldvaluep" -.Ft int -.Fn pmc_set "pmc_id_t pmc" "pmc_value_t value" -.Ft int -.Fn pmc_start "pmc_id_t pmc" -.Ft int -.Fn pmc_stop "pmc_id_t pmc" -.Ft int -.Fn pmc_write "pmc_id_t pmc" "pmc_value_t value" -.Ft int -.Fn pmc_writelog "uint32_t userdata" -.Ft int -.Fn pmc_width "pmc_id_t pmc" "uint32_t *width" .Sh DESCRIPTION -These functions implement a high-level library for using the -system's hardware performance counters. +The +.Lb libpmc +provides a programming interface that allows applications to use +hardware performance counters to gather performance data about +specific processes or for the system as a whole. +The library is implemented using the lower-level facilities offered by +the +.Xr hwpmc 4 +driver. +.Ss Key Concepts +Performance monitoring counters (PMCs) are represented by the library +using a software abstraction. +These +.Dq abstract +PMCs can have one two scopes: +.Bl -bullet +.It +System scope. +These PMCs measure events in a whole-system manner, i.e., independent +of the currently executing thread. +System scope PMCs are allocated on specific CPUs and do not +migrate between CPUs. +Non-privileged process are allowed to allocate system scope PMCs if the +.Xr hwpmc 4 +sysctl tunable: +.Va security.bsd.unprivileged_syspmcs +is non-zero. +.It +Process scope. +These PMCs only measure hardware events when the processes they are +attached to are executing on a CPU. +In an SMP system, process scope PMCs migrate between CPUs along with +their target processes. +.El .Pp -PMCs are allocated using -.Fn pmc_allocate , -released using -.Fn pmc_release -and read using -.Fn pmc_read . -Allocated PMCs may be started or stopped at any time using -.Fn pmc_start -and -.Fn pmc_stop -respectively. -An allocated PMC may be of -.Dq global -scope, meaning that the PMC measures system-wide events, or -.Dq process-private -scope, meaning that the PMC only counts hardware events when -the allocating process (or, optionally, its children) -are active. +Orthogonal to PMC scope, PMCs may be allocated in one of two +operational modes: +.Bl -bullet +.It +Counting PMCs measure events according to their scope +(system or process). +The application needs to explicitly read these counters +to retrieve their value. +.It +Sampling PMCs cause the CPU to be periodically interrupted +and information about its state of execution to be collected. +Sampling PMCs are used to profile specific processes and kernel +threads or to profile the system as a whole. +.El .Pp -PMCs may further be in -.Dq "counting mode" , -or in -.Dq "sampling mode" . -Sampling mode PMCs deliver an interrupt to the CPU after -a configured number of hardware events have been seen. -A process-private sampling mode PMC will cause its owner -process to get periodic -.Dv SIGPROF -interrupts, while a global sampling mode PMC is used to -do system-wide statistical sampling (see -.Xr hwpmc 4 ) . -The sampling rate desired of a sampling-mode PMC is set using -.Fn pmc_set . -Counting mode PMCs do not interrupt the CPU; their values -can be read using -.Fn pmc_read . +The scope and operational mode for a software PMC are specified at +PMC allocation time. +An application is allowed to allocate multiple PMCs subject +to availability of hardware resources. .Pp -System-wide statistical sampling is configured by allocating -at least one sampling mode PMC with -global scope, and when a log file is configured using -.Fn pmc_configure_logfile . -The -.Xr hwpmc 4 -driver manages system-wide statistical sampling; for more -information please see -.Xr hwpmc 4 . -.Ss Application Programming Interface -The function -.Fn pmc_init -initializes the -.Nm pmc -library. -This function must be called first, before any of the other -functions in the library. -.Pp -The function -.Fn pmc_allocate -allocates a counter that counts the events named by -.Fa eventspecifier , -and writes the allocated counter ID to -.Fa *pmcid . -Argument -.Fa eventspecifier -comprises an PMC event name followed by an optional comma separated -list of keywords and qualifiers. -The allowed syntax for -.Fa eventspecifier -is processor architecture specific and is listed in section +The library uses human-readable strings to name the event being +measured by hardware. +The syntax used for specifying a hardware event along with additional +event specific qualifiers (if any) is described in detail in section .Sx "EVENT SPECIFIERS" below. -The desired PMC mode is specified by -.Fa mode , -and any mode specific modifiers are specified using -.Fa flags . -The -.Fa cpu -argument is the value -.Dv PMC_CPU_ANY , -or names the CPU the allocation is to be on. -Requesting a specific CPU only makes sense for global PMCs; -process-private PMC allocations should always specify -.Dv PMC_CPU_ANY . .Pp -By default, a PMC configured in process-virtual counting mode is set up -to profile its owner process. -The function -.Fn pmc_attach -may be used to attach the PMC to a different process. -It -needs to be called before the counter is first started -with -.Fn pmc_start . -The function -.Fn pmc_detach -may be used to detach a PMC from a process it was attached to -using a prior call to -.Fn pmc_attach . +PMCs are associated with the process that allocated them and +will be automatically reclaimed by the system when the process exits. +Additionally, process-scope PMCs have to be attached to one or more +target processes before they can perform measurements. +A process-scope PMC may be attached to those target processes +that its owner process would otherwise be permitted to debug. +An owner process may attach PMCs to itself allowing +it to measure its own behavior. +Additionally, on some machine architectures, such self-attached PMCs +may be read cheaply using specialized instructions supported by the +processor. .Pp -The function -.Fn pmc_release -releases a PMC previously allocated with -.Fn pmc_allocate . -This function call implicitly detaches the PMC from all its target -processes. -.Pp -An allocated PMC may be started and stopped using -.Fn pmc_start +Certain kinds of PMCs require that a log file be configured before +they may be started. +These include: +.Bl -bullet -compact +.It +System scope sampling PMCs. +.It +Process scope sampling PMCs. +.It +Process scope counting PMCs that have been configured to report PMC +readings on process context switches or process exits. +.El +Upto one log file may be configured per owner process. +Events logged to a log file may be subsequently analyzed using the +.Xr pmclog 3 +family of functions. +.Ss Supported CPUs +The CPUs known to the PMC library are named by the +.Vt "enum pmc_cputype" +enumeration. +Supported CPUs include: +.Bl -tag -width PMC_CPU_INTEL_PIII -compact +.It PMC_CPU_AMD_K7 +.Tn "AMD Athlon" +CPUs. +.It PMC_CPU_AMD_K8 +.Tn "AMD Athlon64" +CPUs. +.It PMC_CPU_INTEL_P6 +.Tn Intel +.Tn "Pentium Pro" +CPUs. +.It PMC_CPU_INTEL_PII +.Tn "Intel Pentium II" +CPUs. +.It PMC_CPU_INTEL_PIII +.Tn "Intel Pentium III" +CPUs. +.It PMC_CPU_INTEL_PM +.Tn "Intel Pentium M" +CPUs. +.It PMC_CPU_INTEL_PIV +.Tn "Intel Pentium 4" +CPUs. +.El +.Ss Supported PMCs +PMC supported by this library are named by the +.Vt enum pmc_class +enumeration. +Supported PMC kinds include: +.Bl -tag -width PMC_CLASS_TSC -compact +.It PMC_CLASS_TSC +The timestamp counter on i386 and amd64 architecture CPUs. +.It PMC_CLASS_K7 +Programmable hardware counters present in +.Tn "AMD Athlon" +CPUs. +.It PMC_CLASS_K8 +Programmable hardware counters present in +.Tn "AMD Athlon64" +CPUs. +.It PMC_CLASS_P6 +Programmable hardware counters present in +.Tn Intel +.Tn "Pentium Pro" , +.Tn "Pentium II" , +.Tn "Pentium III" , +.Tn "Celeron" , and -.Fn pmc_stop -respectively. +.Tn "Pentium M" +CPUs. +.It PMC_CLASS_P4 +Programmable hardware counters present in +.Tn "Intel Pentium 4" +CPUs. +.El +.Ss PMC Capabilities .Pp -The current value of a PMC may be read with -.Fn pmc_read -and written using -.Fn pmc_write , -provided the underlying hardware supports these operations on -the allocated PMC. -The read and write operation may be combined using -.Fn pmc_rw . -.Pp -The function -.Fn pmc_capabilities -sets argument -.Fa caps -to a bitmask of capabilities supported by the PMC denoted by -argument +Capabilities of performance monitoring hardware are denoted using +the +.Vt "enum pmc_caps" +enumeration. +Supported capabilities include: +.Bl -tag -width "PMC_CAP_INTERRUPT" -compact +.It PMC_CAP_EDGE +The ability to count negated to asserted transitions of the hardware +conditions being probed for. +.It PMC_CAP_INTERRUPT +The ability to interrupt the CPU. +.It PMC_CAP_INVERT +The ability to invert the sense of the hardware conditions being +measured. +.It PMC_CAP_READ +PMC hardware allows the CPU to read performance counters. +.It PMC_CAP_QUALIFIER +The hardware allows monitored to be further qualified in some +system dependent way. +.It PMC_CAP_SYSTEM +The ability to restrict counting of hardware events to when the CPU is +running privileged code. +.It PMC_CAP_THRESHOLD +The ability to ignore simultaneous hardware events below a +programmable threshold. +.It PMC_CAP_USER +The ability to restrict counting of hardware events to those when the +CPU is running unprivileged code. +.It PMC_CAP_WRITE +PMC hardware allows CPUs write to counters. +.El +.Ss Functional Grouping +This section contains a brief overview of the available functionality +in the PMC library. +Each function listed here is described further in its own manual page. +.Bl -tag -width indent +.It Administration +.Bl -tag -compact +.It Fn pmc_disable , Fn pmc_enable +Administratively disable (enable) specific performance monitoring +counter hardware. +Counters that are disabled will not be available to applications to +use. +.El +.It "Convenience Functions" +.Bl -tag -compact +.It Fn pmc_event_names_of_class +Returns a list of event names supported by a given PMC type. +.It Fn pmc_name_of_capability +Convert a +.Dv PMC_CAP_* +flag to a human-readable string. +.It Fn pmc_name_of_class +Convert a +.Dv PMC_CLASS_* +constant to a human-readable string. +.It Fn pmc_name_of_cputype +Return a human-readable name for a CPU type. +.It Fn pmc_name_of_disposition +Return a human-readable string describing a PMC's disposition. +.It Fn pmc_name_of_event +Convert a numeric event code to a human-readable string. +.It Fn pmc_name_of_mode +Convert a +.Dv PMC_MODE_* +constant to a human-readable name. +.It Fn pmc_name_of_state +Return a human-readable string describing a PMC's current state. +.El +.It "Library Initialization" +.Bl -tag -compact +.It Fn pmc_init +Initialize the library. +This function must be called before any other library function. +.El +.It "Log File Handling" +.Bl -tag -compact +.It Fn pmc_configure_logfile +Configure a log file for +.Xr hwpmc 4 +to write logged events to. +.It Fn pmc_flush_logfile +Flush all pending log data in +.Xr hwpmc 4 Ns Ap s +buffers. +.It Fn pmc_writelog +Append arbitrary user data to the current log file. +.El +.It "PMC Management" +.Bl -tag -compact +.It Fn pmc_allocate , Fn pmc_release +Allocate (free) a PMC. +.It Fn pmc_attach , Fn pmc_detach +Attach (detach) a process scope PMC to a target. +.It Fn pmc_read , Fn pmc_write , Fn pmc_rw +Read (write) a value from (to) a PMC. +.It Fn pmc_start , Fn pmc_stop +Start (stop) a software PMC. +.It Fn pmc_set +Set the reload value for a sampling PMC. +.El +.It "Queries" +.Bl -tag -compact +.It Fn pmc_capabilities +Retrieve the capabilities for a given PMC. +.It Fn pmc_cpuinfo +Retrieve information about the CPUs and PMC hardware present in the +system. +.It Fn pmc_get_driver_stats +Retrieve statistics maintained by +.Xr hwpmc 4 . +.It Fn pmc_ncpu +Determine the number of CPUs in the system. +.It Fn pmc_npmc +Return the number of hardware PMCs present in a given CPU. +.It Fn pmc_pmcinfo +Return information about the state of a given CPU's PMCs. +.It Fn pmc_width +Determine the width of a hardware counter in bits. +.El +.It "x86 Architecture Specific API" +.Bl -tag -compact +.It Fn pmc_get_msr +Returns the processor model specific register number +associated with .Fa pmc . -The function -.Fn pmc_width -sets argument -.Fa width -to the width of the PMC denoted by argument -.Fa pmc . -.Pp -The -.Fn pmc_configure_logfile -function causes the -.Xr hwpmc 4 -driver to log performance data to file corresponding -to the process' file handle -.Fa fd . -If argument -.Fa fd -is \-1, then any previously configured logging is reset -and all data queued to be written are discarded. -.Pp -The -.Fn pmc_flush_logfile -function will send all data queued inside the -.Xr hwpmc 4 -driver to the configured log file before returning. -The -.Fn pmc_writelog -function will append a log entry containing the argument -.Fa userdata -to the log file. -.Pp -The function -.Fn pmc_set -configures a sampling PMC -.Fa pmc -to interrupt every -.Fa value -events. -For counting PMCs, -.Fn pmc_set -sets the initial value of the PMC to -.Fa value . -.Pp -The function -.Fn pmc_get_driver_statistics -copies a snapshot of the usage statistics maintained by -.Xr hwpmc 4 -into the memory area pointed to by argument -.Fa gms . +Applications may then use the x86 +.Ic RDPMC +instruction to directly read the contents of the PMC. +.El +.El .Ss Signal Handling Requirements Applications using PMCs are required to handle the following signals: -.Bl -tag -width indent +.Bl -tag -width ".Dv SIGBUS" .It Dv SIGBUS When the .Xr hwpmc 4 @@ -344,88 +345,50 @@ .Fn pmc_flush_logfile . .El .El -.Ss Convenience Functions -The function -.Fn pmc_ncpu -returns the number of CPUs present in the system. -.Pp -The function -.Fn pmc_npmc -returns the number of PMCs supported on CPU -.Fa cpu . -The function -.Fn pmc_cpuinfo -sets argument -.Fa cpu_info -to point to an internal structure with information about the system's CPUs. -The caller should not -.Fn free -this pointer value. -Function -.Fn pmc_pmcinfo -returns information about the current state of CPU -.Fa cpu Ns 's -PMCs. -This function sets argument -.Fa *pmc_info -to point to a memory area allocated with -.Xr calloc 3 . -The caller is expected to -.Fn free -the area when done. -.Pp -The functions -.Fn pmc_name_of_capability , -.Fn pmc_name_of_class , -.Fn pmc_name_of_cputype , -.Fn pmc_name_of_disposition , -.Fn pmc_name_of_event , -.Fn pmc_name_of_mode -and -.Fn pmc_name_of_state -are useful for code wanting to print error messages. -They return -.Vt "const char *" -pointers to human-readable representations of their arguments. -These return values should not be freed using -.Xr free 3 . -.Pp -The function -.Fn pmc_event_names_of_class -returns a list of event names supported by a given PMC class -.Fa cl . -On successful return, an array of -.Vt "const char *" -pointers to the names of valid events supported by class -.Fa cl -is allocated by the library using -.Xr malloc 3 , -and a pointer to this array is returned in the location pointed to by -.Fa eventnames . -The number of pointers allocated is returned in the location pointed -to by -.Fa nevents . -.Ss Administration -Individual PMCs may be enabled or disabled on a given CPU using -.Fn pmc_enable -and -.Fn pmc_disable -respectively. -For these functions, -.Fa cpu -is the CPU number, and -.Fa pmc -is the index of the PMC to be operated on. -Only the super-user is allowed to enable and disable PMCs. -.Ss x86 Architecture Specific API -The -.Fn pmc_get_msr -function returns the processor model specific register number -associated with -.Fa pmc . -Applications may use the x86 -.Ic RDPMC -instruction to directly read the contents of the PMC. +.Ss Typical Program Flow +.Bl -enum +.It +An application would first invoke function +.Fn pmc_init +to allow the library to initialize itself. +.It +Signal handling would then be set up. +.It +Next the application would allocate the PMCs it desires using function +.Fn pmc_allocate . +.It +Initial values for PMCs may be set using function +.Fn pmc_set . +.It +If a log file is necessary for the PMCs to work, it would +be configured using function +.Fn pmc_configure_logfile . +.It +Process scope PMCs would then be attached to their target processes +using function +.Fn pmc_attach . +.It +The PMCs would then be started using function +.Fn pmc_start . +.It +Once started, the values of counting PMCs may be read using function +.Fn pmc_start . +For PMCs that write events to the log file, this logged data would be +read and parsed using the +.Xr pmclog 3 +family of functions. +.It +PMCs are stopped using function +.Fn pmc_stop , +and process scope PMCs are detached from their targets using +function +.Fn pmc_detach . +.It +Before the process exits, its may release its PMCs using function +.Fn pmc_release . +Any configured log file may be closed using function +.Fn pmc_configure_logfile . +.El .Sh EVENT SPECIFIERS Event specifiers are strings comprising of an event name, followed by optional parameters modifying the semantics of the hardware event @@ -3226,51 +3189,7 @@ cascaded event counter pair in a single operation. .Ss "Precise Event Based Sampling" Support for precise event based sampling is currently -unimplemented in -.Xr hwpmc 4 . -.Sh IMPLEMENTATION NOTES -On the i386 architecture, -.Fx -has historically allowed the use of the RDTSC instruction from -user-mode (i.e., at a processor CPL of 3) by any process. -This behaviour is preserved by -.Xr hwpmc 4 . -.Sh RETURN VALUES -The -.Fn pmc_name_of_capability , -.Fn pmc_name_of_class , -.Fn pmc_name_of_cputype , -.Fn pmc_name_of_disposition , -.Fn pmc_name_of_event , -.Fn pmc_name_of_mode , -and -.Fn pmc_name_of_state -functions return a pointer to the human readable form of their argument. -These pointers may point to statically allocated storage and must -not be passed to -.Fn free . -In case of an error, these functions return -.Dv NULL -and set the global variable -.Va errno . -.Pp -The functions -.Fn pmc_ncpu -and -.Fn pmc_npmc -return the number of CPUs and number of PMCs configured respectively; -in case of an error they return the value -\-1 -and set the global variable -.Va errno . -.Pp -All other functions return the value -0 -if successful; otherwise the value -\-1 -is returned and the global variable -.Va errno -is set to indicate the error. +unimplemented. .Sh COMPATIBILITY The interface between the .Nm pmc @@ -3288,123 +3207,7 @@ .Nm pmc API is .Ud -.Sh ERRORS -A call to -.Fn pmc_init -may fail with the following errors in addition to those returned by -.Xr modfind 2 , -.Xr modstat 2 -and -.Xr hwpmc 4 : -.Bl -tag -width Er -.It Bq Er ENXIO -An unknown CPU type was encountered during initialization. -.It Bq Er EPROGMISMATCH -The version number of the >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Nov 25 23:48:12 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 17B8A16A47E; Sun, 25 Nov 2007 23:48: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 B14CF16A47A for ; Sun, 25 Nov 2007 23:48:11 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C53113C478 for ; Sun, 25 Nov 2007 23:48:11 +0000 (UTC) (envelope-from kmacy@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 lAPNmB5X051701 for ; Sun, 25 Nov 2007 23:48:11 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPNmB4i051692 for perforce@freebsd.org; Sun, 25 Nov 2007 23:48:11 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 25 Nov 2007 23:48:11 GMT Message-Id: <200711252348.lAPNmB4i051692@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129523 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, 25 Nov 2007 23:48:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=129523 Change 129523 by kmacy@kmacy:storage:toestack on 2007/11/25 23:48:11 fix test_and_clear to have the intended effect of tested and clearing a bit by index Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_osdep.h#11 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_osdep.h#11 (text+ko) ==== @@ -299,7 +299,7 @@ #define t3_os_sleep(x) DELAY((x) * 1000) -#define test_and_clear_bit(bit, p) atomic_cmpset_int((p), ((*(p)) | bit), ((*(p)) & ~bit)) +#define test_and_clear_bit(bit, p) atomic_cmpset_int((p), ((*(p)) | (1< Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4737616A46E; Sun, 25 Nov 2007 23:54: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 DE97B16A46B for ; Sun, 25 Nov 2007 23:54:18 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B680F13C4E5 for ; Sun, 25 Nov 2007 23:54:18 +0000 (UTC) (envelope-from kmacy@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 lAPNsIOC051964 for ; Sun, 25 Nov 2007 23:54:18 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPNsI22051961 for perforce@freebsd.org; Sun, 25 Nov 2007 23:54:18 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 25 Nov 2007 23:54:18 GMT Message-Id: <200711252354.lAPNsI22051961@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129524 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, 25 Nov 2007 23:54:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=129524 Change 129524 by kmacy@kmacy:storage:toestack on 2007/11/25 23:53:39 remove noisy printf Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.h#10 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.h#10 (text+ko) ==== @@ -141,8 +141,6 @@ struct l2t_entry *e) { if (__predict_true(e->state == L2T_STATE_VALID)) { - printf ("l2t_entry state is valid\n"); - return cxgb_ofld_send(dev, (struct mbuf *)m); } printf("send slow\n"); From owner-p4-projects@FreeBSD.ORG Sun Nov 25 23:55:20 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 452FC16A46B; Sun, 25 Nov 2007 23:55:20 +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 063E516A418 for ; Sun, 25 Nov 2007 23:55:20 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E99FB13C447 for ; Sun, 25 Nov 2007 23:55:19 +0000 (UTC) (envelope-from kmacy@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 lAPNtJX3052046 for ; Sun, 25 Nov 2007 23:55:19 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPNtJoR052043 for perforce@freebsd.org; Sun, 25 Nov 2007 23:55:19 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 25 Nov 2007 23:55:19 GMT Message-Id: <200711252355.lAPNtJoR052043@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129525 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, 25 Nov 2007 23:55:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=129525 Change 129525 by kmacy@kmacy:storage:toestack on 2007/11/25 23:55:19 remove reference to unused values Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_main.c#14 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_main.c#14 (text+ko) ==== @@ -182,7 +182,6 @@ #define SGE_MSIX_COUNT (SGE_QSETS + 1) -extern int collapse_mbufs; /* * The driver uses the best interrupt scheme available on a platform in the * order MSI-X, MSI, legacy pin interrupts. This parameter determines which @@ -918,10 +917,6 @@ ifp->if_start = cxgb_start; #ifdef IFNET_MULTIQUEUE - if (ifnet_multiqueue == 0) { - device_printf(dev, "cxgb compiled with multi-queue support, but kernel doesn't support it\n"); - return (EDOOFUS); - } ifp->if_flags |= IFF_MULTIQ; ifp->if_mq_start = cxgb_pcpu_start; #endif From owner-p4-projects@FreeBSD.ORG Sun Nov 25 23:56:21 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C10E716A421; Sun, 25 Nov 2007 23:56:21 +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 71EF416A420 for ; Sun, 25 Nov 2007 23:56:21 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4A12813C459 for ; Sun, 25 Nov 2007 23:56:21 +0000 (UTC) (envelope-from kmacy@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 lAPNuLvF052098 for ; Sun, 25 Nov 2007 23:56:21 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPNuL5W052095 for perforce@freebsd.org; Sun, 25 Nov 2007 23:56:21 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 25 Nov 2007 23:56:21 GMT Message-Id: <200711252356.lAPNuL5W052095@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129526 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, 25 Nov 2007 23:56:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=129526 Change 129526 by kmacy@kmacy:storage:toestack on 2007/11/25 23:56:04 handle 16k cluster usage Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/sys/uipc_mvec.c#6 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/sys/uipc_mvec.c#6 (text+ko) ==== @@ -402,7 +402,7 @@ cxgb_cache_put(zone_jumbo9, cl); break; case EXT_JUMBO16: - uma_zfree(zone_jumbo16, cl); + cxgb_cache_put(zone_jumbo16, cl); break; case EXT_SFBUF: case EXT_NET_DRV: From owner-p4-projects@FreeBSD.ORG Sun Nov 25 23:58:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 05BB216A468; Sun, 25 Nov 2007 23:58: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 A82F416A417 for ; Sun, 25 Nov 2007 23:58:23 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9042713C461 for ; Sun, 25 Nov 2007 23:58:23 +0000 (UTC) (envelope-from kmacy@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 lAPNwNNL052197 for ; Sun, 25 Nov 2007 23:58:23 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAPNwNi7052194 for perforce@freebsd.org; Sun, 25 Nov 2007 23:58:23 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 25 Nov 2007 23:58:23 GMT Message-Id: <200711252358.lAPNwNi7052194@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129527 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, 25 Nov 2007 23:58:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=129527 Change 129527 by kmacy@kmacy:storage:toestack on 2007/11/25 23:57:34 reduce debugging noise somewhate add malloc type for cxgb Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#19 edit .. //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.h#6 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#19 (text+ko) ==== @@ -66,11 +66,8 @@ #include #include -/* - * XXX - */ #define VALIDATE_TID 0 - +MALLOC_DEFINE(M_CXGB, "cxgb", "Chelsio 10 Gigabit Ethernet and services"); TAILQ_HEAD(, cxgb_client) client_list; TAILQ_HEAD(, t3cdev) ofld_dev_list; @@ -734,7 +731,7 @@ unsigned int hwtid; struct toe_tid_entry *toe_tid; - printf("do_hwtid_rpl opcode=0x%x\n", p->opcode); + DPRINTF("do_hwtid_rpl opcode=0x%x\n", p->opcode); hwtid = G_TID(ntohl(p->opcode_tid)); toe_tid = lookup_tid(&(T3C_DATA (dev))->tid_maps, hwtid); @@ -972,7 +969,7 @@ unsigned int opcode = G_OPCODE(ntohl(m0->m_pkthdr.csum_data)); int ret; - printf("processing op=0x%x m=%p data=%p\n", opcode, m0, m0->m_data); + DPRINTF("processing op=0x%x m=%p data=%p\n", opcode, m0, m0->m_data); ret = cpl_handlers[opcode] (dev, m0); @@ -1133,7 +1130,7 @@ cxgb_alloc_mem(unsigned long size) { - return malloc(size, M_DEVBUF, M_ZERO|M_NOWAIT); + return malloc(size, M_CXGB, M_ZERO|M_NOWAIT); } /* @@ -1142,7 +1139,7 @@ void cxgb_free_mem(void *addr) { - free(addr, M_DEVBUF); + free(addr, M_CXGB); } @@ -1228,7 +1225,7 @@ struct mtutab mtutab; unsigned int l2t_capacity; - t = malloc(sizeof(*t), M_DEVBUF, M_WAITOK|M_ZERO); + t = malloc(sizeof(*t), M_CXGB, M_WAITOK|M_ZERO); if (!t) return (ENOMEM); @@ -1292,7 +1289,7 @@ t3_free_l2t(L2DATA(dev)); L2DATA(dev) = NULL; out_free: - free(t, M_DEVBUF); + free(t, M_CXGB); return (err); } @@ -1314,7 +1311,7 @@ T3C_DATA(tdev) = NULL; t3_free_l2t(L2DATA(tdev)); L2DATA(tdev) = NULL; - free(t, M_DEVBUF); + free(t, M_CXGB); } ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.h#6 (text+ko) ==== @@ -47,6 +47,8 @@ #include #endif +MALLOC_DECLARE(M_CXGB); + struct adapter; struct cxgb_client; From owner-p4-projects@FreeBSD.ORG Mon Nov 26 00:00:26 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 837D616A46C; Mon, 26 Nov 2007 00:00:26 +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 308C216A418 for ; Mon, 26 Nov 2007 00:00:26 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1B2E313C465 for ; Mon, 26 Nov 2007 00:00:26 +0000 (UTC) (envelope-from kmacy@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 lAQ00PIL052353 for ; Mon, 26 Nov 2007 00:00:25 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ00PL5052350 for perforce@freebsd.org; Mon, 26 Nov 2007 00:00:25 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 26 Nov 2007 00:00:25 GMT Message-Id: <200711260000.lAQ00PL5052350@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129528 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, 26 Nov 2007 00:00:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=129528 Change 129528 by kmacy@kmacy:storage:toestack on 2007/11/25 23:59:32 use 16k clusters for jumbo frames fix case where we were skipping over returning credits turn off IMM DATA printfs add debugging for q stop / restart Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/cxgb_sge.c#13 edit .. //depot/projects/toestack/sys/dev/cxgb/sys/cxgb_support.c#3 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/cxgb_sge.c#13 (text+ko) ==== @@ -1513,6 +1513,8 @@ struct sge_qset *qs = txq_to_qset(q, qid); + printf("stopping q\n"); + setbit(&qs->txq_stopped, qid); smp_mb(); @@ -1585,7 +1587,7 @@ mtx_unlock(&q->lock); printf("no desc available\n"); - return (-1); + return (ENOSPC); } goto again; } @@ -1618,6 +1620,8 @@ struct sge_txq *q = &qs->txq[TXQ_CTRL]; adapter_t *adap = qs->port->adapter; + printf("Restart_ctrlq\n"); + mtx_lock(&q->lock); again: reclaim_completed_tx_imm(q); @@ -1997,6 +2001,8 @@ ret = check_desc_avail(adap, q, m, ndesc, TXQ_OFLD); if (__predict_false(ret)) { if (ret == 1) { + printf("no ofld desc avail\n"); + m_set_priority(m, ndesc); /* save for restart */ mtx_unlock(&q->lock); return (EINTR); @@ -2181,16 +2187,24 @@ { struct adapter *sc = qs->port->adapter; + if (isset(&qs->txq_stopped, TXQ_OFLD) && should_restart_tx(&qs->txq[TXQ_OFLD]) && test_and_clear_bit(TXQ_OFLD, &qs->txq_stopped)) { qs->txq[TXQ_OFLD].restarts++; + printf("restarting TXQ_OFLD\n"); taskqueue_enqueue(sc->tq, &qs->txq[TXQ_OFLD].qresume_task); } + printf("stopped=0x%x restart=%d processed=%d cleaned=%d in_use=%d\n", + qs->txq_stopped, should_restart_tx(&qs->txq[TXQ_CTRL]), + qs->txq[TXQ_CTRL].processed, qs->txq[TXQ_CTRL].cleaned, + qs->txq[TXQ_CTRL].in_use); + if (isset(&qs->txq_stopped, TXQ_CTRL) && should_restart_tx(&qs->txq[TXQ_CTRL]) && test_and_clear_bit(TXQ_CTRL, &qs->txq_stopped)) { qs->txq[TXQ_CTRL].restarts++; + printf("restarting TXQ_CTRL\n"); taskqueue_enqueue(sc->tq, &qs->txq[TXQ_CTRL].qresume_task); } } @@ -2303,9 +2317,9 @@ q->fl[0].zone = zone_clust; q->fl[0].type = EXT_CLUSTER; if (jumbo_phys_contig) { - q->fl[1].buf_size = MJUM9BYTES - sizeof(uint32_t) - sizeof(struct m_hdr) - sizeof(struct pkthdr) - sizeof(struct m_ext_); - q->fl[1].zone = zone_jumbo9; - q->fl[1].type = EXT_JUMBO9; + q->fl[1].buf_size = MJUM16BYTES - sizeof(uint32_t) - sizeof(struct m_hdr) - sizeof(struct pkthdr) - sizeof(struct m_ext_); + q->fl[1].zone = zone_jumbo16; + q->fl[1].type = EXT_JUMBO16; } else { q->fl[1].buf_size = MJUMPAGESIZE - sizeof(uint32_t) - sizeof(struct m_hdr) - sizeof(struct pkthdr) - sizeof(struct m_ext_); q->fl[1].zone = zone_jumbop; @@ -2736,7 +2750,7 @@ } else if (flags & F_RSPD_IMM_DATA_VALID) { #ifdef DISABLE_MBUF_IOVEC - printf("IMM DATA VALID opcode=0x%x rspq->cidx=%d\n", r->rss_hdr.opcode, rspq->cidx); + DPRINTF("IMM DATA VALID opcode=0x%x rspq->cidx=%d\n", r->rss_hdr.opcode, rspq->cidx); if(get_imm_packet(adap, r, &rspq->rspq_mh) == 0) { rspq->next_holdoff = NOMEM_INTR_DELAY; @@ -2748,7 +2762,7 @@ #else struct mbuf *m = NULL; - printf("IMM DATA VALID opcode=0x%x rspq->cidx=%d\n", r->rss_hdr.opcode, rspq->cidx); + DPRINTF("IMM DATA VALID opcode=0x%x rspq->cidx=%d\n", r->rss_hdr.opcode, rspq->cidx); if (rspq->rspq_mbuf == NULL) rspq->rspq_mbuf = m_gethdr(M_DONTWAIT, MT_DATA); else @@ -2794,13 +2808,14 @@ DPRINTF("pure response\n"); rspq->pure_rsps++; } +#ifndef DISABLE_MBUF_IOVEC + skip: +#endif if (flags & RSPD_CTRL_MASK) { sleeping |= flags & RSPD_GTS_MASK; handle_rsp_cntrl_info(qs, flags); } -#ifndef DISABLE_MBUF_IOVEC - skip: -#endif + r++; if (__predict_false(++rspq->cidx == rspq->size)) { rspq->cidx = 0; @@ -2824,13 +2839,15 @@ ngathered = rx_offload(&adap->tdev, rspq, rspq->rspq_mh.mh_head, offload_mbufs, ngathered); rspq->rspq_mh.mh_head = NULL; + DPRINTF("received offload packet\n"); + } else if (eth && eop) { prefetch(mtod(rspq->rspq_mh.mh_head, uint8_t *)); prefetch(mtod(rspq->rspq_mh.mh_head, uint8_t *) + L1_CACHE_BYTES); t3_rx_eth_lro(adap, rspq, rspq->rspq_mh.mh_head, ethpad, rss_hash, rss_csum, lro); - + DPRINTF("received tunnel packet\n"); rspq->rspq_mh.mh_head = NULL; } @@ -2846,9 +2863,12 @@ check_ring_db(adap, qs, sleeping); smp_mb(); /* commit Tx queue processed updates */ - if (__predict_false(qs->txq_stopped != 0)) + if (__predict_false(qs->txq_stopped != 0)) { + printf("restarting tx on %p\n", qs); + restart_tx(qs); - + } + __refill_fl_lt(adap, &qs->fl[0], 512); __refill_fl_lt(adap, &qs->fl[1], 512); budget -= budget_left; ==== //depot/projects/toestack/sys/dev/cxgb/sys/cxgb_support.c#3 (text+ko) ==== @@ -127,7 +127,7 @@ return (err); if (jumbo_phys_contig) - ccp->ccp_jumbo_zone = zone_jumbo9; + ccp->ccp_jumbo_zone = zone_jumbo16; else ccp->ccp_jumbo_zone = zone_jumbop; From owner-p4-projects@FreeBSD.ORG Mon Nov 26 00:00:27 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0DDB516A510; Mon, 26 Nov 2007 00:00:26 +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 4F6EC16A469 for ; Mon, 26 Nov 2007 00:00:26 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3CE8713C4CE for ; Mon, 26 Nov 2007 00:00:26 +0000 (UTC) (envelope-from kmacy@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 lAQ00QMa052359 for ; Mon, 26 Nov 2007 00:00:26 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ00QrU052356 for perforce@freebsd.org; Mon, 26 Nov 2007 00:00:26 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 26 Nov 2007 00:00:26 GMT Message-Id: <200711260000.lAQ00QrU052356@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129529 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, 26 Nov 2007 00:00:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=129529 Change 129529 by kmacy@kmacy:storage:toestack on 2007/11/26 00:00:25 unhook toepcb from its tcpcb use cxgb malloc type Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.c#13 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.c#13 (text+ko) ==== @@ -144,8 +144,6 @@ return (NULL); toepcb_init(toep); - toepcb_hold(toep); - return (toep); } @@ -153,6 +151,7 @@ toepcb_init(struct toepcb *toep) { bzero(toep, sizeof(*toep)); + toep->tp_refcount = 1; } void @@ -164,11 +163,20 @@ void toepcb_release(struct toepcb *toep) { + struct tcpcb *tp; + + if (toep->tp_refcount == 1) { /* * XXX clear our reference on the inpcb */ cxgb_remove_tid(TOM_DATA(toep->tp_toedev)->cdev, NULL, toep->tp_tid); + if ((tp = toep->tp_tp) != NULL) { + INP_LOCK(tp->t_inpcb); + tp->t_flags &= ~TF_TOE; + tp->t_toe = NULL; + INP_UNLOCK(tp->t_inpcb); + } free(toep, M_DEVBUF); return; } @@ -200,7 +208,7 @@ struct toedev *tdev; struct adap_ports *port_info; - t = malloc(sizeof(*t), M_DEVBUF, M_NOWAIT|M_ZERO); + t = malloc(sizeof(*t), M_CXGB, M_NOWAIT|M_ZERO); if (!t) return; @@ -208,7 +216,7 @@ if (cdev->ctl(cdev, GET_WR_LEN, &wr_len) < 0) goto out_free_tom; - port_info = malloc(sizeof(*port_info), M_DEVBUF, M_NOWAIT|M_ZERO); + port_info = malloc(sizeof(*port_info), M_CXGB, M_NOWAIT|M_ZERO); if (!port_info) goto out_free_tom; @@ -247,9 +255,9 @@ return; out_free_all: - free(port_info, M_DEVBUF); + free(port_info, M_CXGB); out_free_tom: - free(t, M_DEVBUF); + free(t, M_CXGB); return; } From owner-p4-projects@FreeBSD.ORG Mon Nov 26 00:03:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4959516A46C; Mon, 26 Nov 2007 00:03:30 +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 062F116A421 for ; Mon, 26 Nov 2007 00:03:30 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E765E13C474 for ; Mon, 26 Nov 2007 00:03:29 +0000 (UTC) (envelope-from kmacy@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 lAQ03T8J053611 for ; Mon, 26 Nov 2007 00:03:29 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ03T6Q053608 for perforce@freebsd.org; Mon, 26 Nov 2007 00:03:29 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 26 Nov 2007 00:03:29 GMT Message-Id: <200711260003.lAQ03T6Q053608@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129530 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, 26 Nov 2007 00:03:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=129530 Change 129530 by kmacy@kmacy:storage:toestack on 2007/11/26 00:03:19 - add a bunch of missed wakeups - set socket as not being able to receive more data when it receives a fin so that the blocking read will return 0 - add inpcb locking for serializing toepcb access - add some debugging printfs for current edge cases Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 (text+ko) ==== @@ -368,18 +368,28 @@ struct mbuf *m; struct cpl_close_con_req *req; struct tom_data *d; - struct tcpcb *tp = sototcpcb(so); - struct toepcb *toep = tp->t_toe; - unsigned int tid = toep->tp_tid; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp; + struct toepcb *toep; + unsigned int tid; + + + INP_LOCK(inp); + tp = sototcpcb(so); + toep = tp->t_toe; - d = TOM_DATA(toep->tp_toedev); - if (tp->t_state != TCPS_SYN_SENT) t3_push_frames(so, 1); - if (toep->tp_flags & TP_FIN_SENT) + if (toep->tp_flags & TP_FIN_SENT) { + INP_UNLOCK(inp); return; - + } + + tid = toep->tp_tid; + + d = TOM_DATA(toep->tp_toedev); + m = m_gethdr_nofail(sizeof(*req)); toep->tp_flags |= TP_FIN_SENT; @@ -389,7 +399,7 @@ req->wr.wr_lo = htonl(V_WR_TID(tid)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, tid)); req->rsvd = htonl(toep->tp_write_seq); - + INP_UNLOCK(inp); /* * XXX - need to defer shutdown while there is still data in the queue * @@ -459,15 +469,15 @@ if (!((tp->t_state == TCPS_ESTABLISHED) || (tp->t_state == TCPS_FIN_WAIT_1) || (tp->t_state == TCPS_FIN_WAIT_2))) return; - so = tp->t_inpcb->inp_socket; + SOCKBUF_LOCK(&so->so_rcv); read = toep->tp_enqueued_bytes - so->so_rcv.sb_cc; toep->tp_copied_seq += read; toep->tp_enqueued_bytes -= read; credits = toep->tp_copied_seq - toep->tp_rcv_wup; DPRINTF("copied_seq=%u rcv_wup=%u credits=%u\n", toep->tp_copied_seq, toep->tp_rcv_wup, credits); - + SOCKBUF_UNLOCK(&so->so_rcv); /* * XXX this won't accurately reflect credit return - we need * to look at the difference between the amount that has been @@ -512,7 +522,7 @@ struct socket *so; printf("cxgb_toe_disconnect\n"); - + so = tp->t_inpcb->inp_socket; close_conn(so); return (0); @@ -544,6 +554,7 @@ static int cxgb_toe_rcvd(struct tcpcb *tp) { + INP_LOCK_ASSERT(tp->t_inpcb); t3_cleanup_rbuf(tp); return (0); @@ -564,7 +575,7 @@ struct cpl_set_tcb_field *req; struct tcpcb *tp = sototcpcb(so); struct toepcb *toep = tp->t_toe; - + req = mtod(m, struct cpl_set_tcb_field *); m->m_pkthdr.len = m->m_len = sizeof(*req); req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); @@ -588,7 +599,7 @@ if (toep == NULL) return; - + if (tp->t_state == TCPS_CLOSED || (toep->tp_flags & TP_ABORT_SHUTDOWN)) return; @@ -728,6 +739,7 @@ if (!m) return (ENOMEM); + INP_LOCK_ASSERT(tp->t_inpcb); m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, so)); req = mtod(m, struct cpl_get_tcb *); m->m_pkthdr.len = m->m_len = sizeof(*req); @@ -855,10 +867,6 @@ cxgb_remove_tid(cdev, (void *)so, tid); toepcb_release(toep); } -#ifdef notyet - t3_set_ca_ops(so, &tcp_init_congestion_ops); -#endif - TOE_DEV(so) = NULL; #if 0 log(LOG_INFO, "closing TID %u, state %u\n", tid, tp->t_state); #endif @@ -936,16 +944,11 @@ struct toepcb *toep; struct t3c_data *td = T3C_DATA(TOM_DATA(dev)->cdev); - toep = malloc(sizeof(struct toepcb), M_DEVBUF, M_NOWAIT); - + toep = toepcb_alloc(); if (toep == NULL) return (ENOMEM); printf("initializing offload socket\n"); - - toepcb_init(toep); - toepcb_hold(toep); - tp->t_toe = toep; toep->tp_toedev = dev; @@ -1309,7 +1312,7 @@ tp = sototcpcb(so); if ((err = t3_set_cong_control(so, name)) == 0) - tp->t_cong_control = strdup(name, M_DEVBUF); + tp->t_cong_control = strdup(name, M_CXGB); else return (err); } else { @@ -1370,6 +1373,8 @@ struct socket *so = toeptoso(toep); int len = be16toh(hdr->len); + INP_LOCK(tp->t_inpcb); + #ifdef notyet if (__predict_false(sk_no_receive(sk))) { handle_excess_rx(so, skb); @@ -1424,11 +1429,18 @@ "new_rx_data: seq 0x%x len %u", TCP_SKB_CB(skb)->seq, skb->len); #endif + SOCKBUF_LOCK(&so->so_rcv); + if (sb_notify(&so->so_rcv)) + printf("rx_data so=%p flags=0x%x len=%d\n", so, so->so_rcv.sb_flags, m->m_pkthdr.len); + + + sbappendstream_locked(&so->so_rcv, m); + INP_UNLOCK(tp->t_inpcb); - sbappend(&so->so_rcv, m); - if (__predict_true((so->so_state & SS_NOFDREF) == 0)) - sorwakeup(so); + sorwakeup_locked(so); + else + SOCKBUF_UNLOCK(&so->so_rcv); } /* @@ -1686,13 +1698,18 @@ struct toepcb *toep = tp->t_toe; int keep = 0, dead = (so->so_state & SS_NOFDREF); + printf("do_peer_fin state=%d dead=%d\n", tp->t_state, !!dead); + #ifdef T3_TRACE T3_TRACE0(TIDTB(sk),"do_peer_fin:"); #endif - if (!is_t3a(TOE_DEV(so)) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) + if (!is_t3a(TOE_DEV(so)) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) { + printf("abort_pending set\n"); + goto out; - + } + #ifdef notyet if (ULP_MODE(tp) == ULP_MODE_TCPDDP) { keep = handle_peer_close_data(so, skb); @@ -1702,8 +1719,12 @@ sk->sk_shutdown |= RCV_SHUTDOWN; sock_set_flag(so, SOCK_DONE); #endif + if (TCPS_HAVERCVDFIN(tp->t_state) == 0) + socantrcvmore(so); switch (tp->t_state) { case TCPS_SYN_RECEIVED: + tp->t_starttime = ticks; + /* FALLTHROUGH */ case TCPS_ESTABLISHED: tp->t_state = TCPS_CLOSE_WAIT; break; @@ -1737,6 +1758,11 @@ } if (!dead) { + printf("waking up waiters on %p rcv_notify=%d flags=0x%x\n", so, sb_notify(&so->so_rcv), so->so_rcv.sb_flags); + + sorwakeup(so); + sowwakeup(so); + wakeup(&so->so_timeo); #ifdef notyet sk->sk_state_change(sk); @@ -1778,6 +1804,8 @@ tp->snd_una = ntohl(rpl->snd_nxt) - 1; /* exclude FIN */ + printf("process_close_con_rpl(%p) state=%d dead=%d\n", so, tp->t_state, + !!(so->so_state & SS_NOFDREF)); if (!is_t3a(TOE_DEV(so)) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) goto out; @@ -1787,9 +1815,10 @@ if (toep->tp_flags & TP_ABORT_RPL_PENDING) { INP_INFO_WLOCK(&tcbinfo); INP_LOCK(inp); - tcp_close(tp); + tp = tcp_close(tp); INP_INFO_WUNLOCK(&tcbinfo); - INP_UNLOCK(inp); + if (tp) + INP_UNLOCK(inp); } else enter_timewait(so); break; @@ -1802,9 +1831,10 @@ t3_release_offload_resources(so); INP_INFO_WLOCK(&tcbinfo); INP_LOCK(inp); - tcp_close(tp); + tp = tcp_close(tp); INP_INFO_WUNLOCK(&tcbinfo); - INP_UNLOCK(inp); + if (tp) + INP_UNLOCK(inp); break; case TCPS_FIN_WAIT_1: @@ -1817,7 +1847,7 @@ */ sowwakeup(so); sorwakeup(so); - + wakeup(&so->so_timeo); } else printf("FIN_WAIT1 shutdown handling incomplete\n"); @@ -1881,9 +1911,9 @@ !is_t3a(TOE_DEV(so))) { if (toep->tp_flags & TP_ABORT_REQ_RCVD) panic("TP_ABORT_REQ_RCVD set"); - t3_release_offload_resources(so); INP_INFO_WLOCK(&tcbinfo); INP_LOCK(tp->t_inpcb); + t3_release_offload_resources(so); tcp_close(tp); INP_INFO_WUNLOCK(&tcbinfo); INP_UNLOCK(tp->t_inpcb); @@ -2057,9 +2087,9 @@ */ if (__predict_false(parenttp->t_state == TCPS_LISTEN)) { cleanup_syn_rcv_conn(child, parent); - t3_release_offload_resources(child); INP_INFO_WLOCK(&tcbinfo); INP_LOCK(inp); + t3_release_offload_resources(child); tcp_close(childtp); INP_INFO_WUNLOCK(&tcbinfo); INP_UNLOCK(inp); @@ -2136,14 +2166,14 @@ #endif /* * SYN_RECV needs special processing. If abort_syn_rcv() - * returns 0 is has taken care of the abort.2 + * returns 0 is has taken care of the abort. */ if ((tp->t_state == TCPS_SYN_RECEIVED) && !abort_syn_rcv(so, m)) return; - t3_release_offload_resources(so); INP_INFO_WLOCK(&tcbinfo); INP_LOCK(tp->t_inpcb); + t3_release_offload_resources(so); tcp_close(tp); INP_INFO_WUNLOCK(&tcbinfo); INP_UNLOCK(tp->t_inpcb); @@ -2385,6 +2415,7 @@ * entry already exists - free toepcb * and l2t */ + printf("syncache entry present\n"); toepcb_release(toep); break; case SC_DROP: @@ -2393,6 +2424,7 @@ * either it timed out, or it was evicted * we need to explicitly release the tid */ + printf("syncache entry dropped\n"); toepcb_release(toep); break; default: @@ -2990,6 +3022,8 @@ struct tom_data *d = TOM_DATA(tdev); struct tcpcb *tp = sototcpcb(so); struct toepcb *toep = tp->t_toe; + + INP_LOCK(tp->t_inpcb); /* * It's OK if the TID is currently in use, the owning socket may have @@ -3002,6 +3036,7 @@ toep->tp_qset = G_QNUM(ntohl(m->m_pkthdr.csum_data)); socket_act_establish(so, m); + INP_UNLOCK(tp->t_inpcb); return 0; } @@ -3020,6 +3055,8 @@ int bytes = 0; DPRINTF("wr_ack: snd_una=%u credits=%d\n", snd_una, credits); + + INP_LOCK(tp->t_inpcb); toep->tp_wr_avail += credits; if (toep->tp_wr_unacked > toep->tp_wr_max - toep->tp_wr_avail) @@ -3090,14 +3127,16 @@ } if (bytes) { DPRINTF("sbdrop(%d)\n", bytes); - - sbdrop(&so->so_snd, bytes); + SOCKBUF_LOCK(&so->so_snd); + sbdrop_locked(&so->so_snd, bytes); + sowwakeup_locked(so); } if (so->so_snd.sb_sndptroff < so->so_snd.sb_cc) t3_push_frames(so, 0); out_free: + INP_UNLOCK(tp->t_inpcb); m_free(m); } From owner-p4-projects@FreeBSD.ORG Mon Nov 26 00:13:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B50016A41B; Mon, 26 Nov 2007 00:13:41 +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 B102316A41A for ; Mon, 26 Nov 2007 00:13:40 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8689213C458 for ; Mon, 26 Nov 2007 00:13:40 +0000 (UTC) (envelope-from julian@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 lAQ0De8S054365 for ; Mon, 26 Nov 2007 00:13:40 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ0De9l054362 for perforce@freebsd.org; Mon, 26 Nov 2007 00:13:40 GMT (envelope-from julian@freebsd.org) Date: Mon, 26 Nov 2007 00:13:40 GMT Message-Id: <200711260013.lAQ0De9l054362@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 129531 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, 26 Nov 2007 00:13:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=129531 Change 129531 by julian@julian_trafmon1 on 2007/11/26 00:13:23 get rid of old branches Affected files ... .. //depot/doc/obliterate#12 edit Differences ... ==== //depot/doc/obliterate#12 (text+ko) ==== @@ -15,6 +15,11 @@ //depot/user/jb/kse_opt/... //depot/user/maxim/advl/... //depot/user/maxim/wip/... +//depot/user/julian/julian_ipi +//depot/user/julian/julian_nokseg +//depot/user/julian/nsched2 +//depot/user/julian/nsched3 +//depot/user/julian/rmkseg # clients: gnagelhout silby_patrocles # dead machines: njl_mrspecial mharvan_twoflower From owner-p4-projects@FreeBSD.ORG Mon Nov 26 05:27:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3FFBC16A46D; Mon, 26 Nov 2007 05:27: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 D91AE16A41A for ; Mon, 26 Nov 2007 05:27:23 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C8FDB13C4DD for ; Mon, 26 Nov 2007 05:27:23 +0000 (UTC) (envelope-from kmacy@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 lAQ5RNnb090241 for ; Mon, 26 Nov 2007 05:27:23 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ5RNSw090238 for perforce@freebsd.org; Mon, 26 Nov 2007 05:27:23 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 26 Nov 2007 05:27:23 GMT Message-Id: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129544 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, 26 Nov 2007 05:27:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=129544 Change 129544 by kmacy@kmacy:storage:toestack on 2007/11/26 05:26:43 disable merging of data into existing mbufs if new SB_TOE flag is set Affected files ... .. //depot/projects/toestack/sys/kern/uipc_sockbuf.c#3 edit .. //depot/projects/toestack/sys/sys/socketvar.h#2 edit Differences ... ==== //depot/projects/toestack/sys/kern/uipc_sockbuf.c#3 (text+ko) ==== @@ -760,6 +760,7 @@ } if (n && (n->m_flags & M_EOR) == 0 && M_WRITABLE(n) && + !(sb->sb_flags & SB_TOE) && m->m_len <= MCLBYTES / 4 && /* XXX: Don't copy too much */ m->m_len <= M_TRAILINGSPACE(n) && n->m_type == m->m_type) { ==== //depot/projects/toestack/sys/sys/socketvar.h#2 (text+ko) ==== @@ -130,6 +130,7 @@ #define SB_NOINTR 0x40 /* operations not interruptible */ #define SB_AIO 0x80 /* AIO operations queued */ #define SB_KNOTE 0x100 /* kernel note attached */ +#define SB_TOE 0x200 /* socket buffer for TOE connection */ #define SB_AUTOSIZE 0x800 /* automatically size socket buffer */ void (*so_upcall)(struct socket *, void *, int); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 05:33:31 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1146616A421; Mon, 26 Nov 2007 05:33:31 +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 9E8BC16A418 for ; Mon, 26 Nov 2007 05:33:30 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8DACD13C448 for ; Mon, 26 Nov 2007 05:33:30 +0000 (UTC) (envelope-from kmacy@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 lAQ5XUVu090489 for ; Mon, 26 Nov 2007 05:33:30 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ5XUhA090486 for perforce@freebsd.org; Mon, 26 Nov 2007 05:33:30 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 26 Nov 2007 05:33:30 GMT Message-Id: <200711260533.lAQ5XUhA090486@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129545 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, 26 Nov 2007 05:33:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=129545 Change 129545 by kmacy@kmacy:storage:toestack on 2007/11/26 05:33:29 - set SB_TOE on socket buffers so as not to mess up accounting - pass toepcb to cxgb_alloc_atid so that all rpl routines expect a toepcb Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#26 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#26 (text+ko) ==== @@ -265,7 +265,7 @@ cdev = d->cdev; last = tail = so->so_snd.sb_sndptr ? so->so_snd.sb_sndptr : so->so_snd.sb_mb; total_bytes = 0; - DPRINTF("tail=%p snd.cc=%d tp_last=%p\n", tail, so->so_snd.sb_cc, + printf("tail=%p snd.cc=%d tp_last=%p\n", tail, so->so_snd.sb_cc, toep->tp_m_last); if (last && toep->tp_m_last == last) { @@ -273,7 +273,8 @@ last = tail = tail->m_next; } - if ((toep->tp_wr_avail == 0 ) || (tail == NULL)) { + if ((toep->tp_wr_avail == 0 ) || (tail == NULL)) { + DPRINTF("wr_avail=%d tail=%p\n", toep->tp_wr_avail, tail); SOCKBUF_UNLOCK(&so->so_snd); return (0); } @@ -298,6 +299,9 @@ */ segp->ds_addr = (bus_addr_t)tail->m_data; segp->ds_len = tail->m_len; + DPRINTF("count=%d wr_needed=%d ds_addr=%p ds_len=%d\n", + count, mbuf_wrs[count], tail->m_data, tail->m_len); + segp++; tail = tail->m_next; } @@ -308,7 +312,9 @@ toep->tp_m_last = NULL; } else toep->tp_m_last = so->so_snd.sb_sndptr = last; - + + DPRINTF("toep->tp_m_last=%p\n", toep->tp_m_last); + so->so_snd.sb_sndptroff += bytes; total_bytes += bytes; toep->tp_write_seq += bytes; @@ -812,13 +818,10 @@ static inline void free_atid(struct t3cdev *cdev, unsigned int tid) { - struct socket *so = cxgb_free_atid(cdev, tid); - if (so) { - struct tcpcb *tp = sototcpcb(so); - struct toepcb *toep = tp->t_toe; + struct toepcb *toep = cxgb_free_atid(cdev, tid); + if (toep) toepcb_release(toep); - } } /* @@ -936,21 +939,20 @@ * Assign offload parameters to some socket fields. This code is used by * both active and passive opens. */ -static inline int +static inline void init_offload_socket(struct socket *so, struct toedev *dev, unsigned int tid, - struct l2t_entry *e, struct rtentry *dst) + struct l2t_entry *e, struct rtentry *dst, struct toepcb *toep) { struct tcpcb *tp = sototcpcb(so); - struct toepcb *toep; struct t3c_data *td = T3C_DATA(TOM_DATA(dev)->cdev); - toep = toepcb_alloc(); - if (toep == NULL) - return (ENOMEM); printf("initializing offload socket\n"); + so->so_rcv.sb_flags |= SB_TOE; + so->so_snd.sb_flags |= SB_TOE; + tp->t_toe = toep; - + toep->tp_tp = tp; toep->tp_toedev = dev; toep->tp_tid = tid; @@ -968,7 +970,6 @@ reset_wr_list(tp); DPRINTF("initialization done\n"); - return (0); } /* @@ -1120,7 +1121,9 @@ do_act_open_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) { struct toepcb *toep = (struct toepcb *)ctx; - struct socket *so = toeptoso(toep); + struct socket *so; + + so = toeptoso(toep); #ifdef notyet struct cpl_act_open_rpl *rpl = cplhdr(m); @@ -1178,9 +1181,13 @@ struct rtentry *dst = inp->inp_route.ro_rt; struct toepcb *toep; /* allocated by init_offload_socket */ - int atid, err; + int atid; - if ((atid = cxgb_alloc_atid(d->cdev, d->client, so)) < 0) + toep = toepcb_alloc(); + if (toep == NULL) + goto out_err; + + if ((atid = cxgb_alloc_atid(d->cdev, d->client, toep)) < 0) goto out_err; e = t3_l2t_get(d->cdev, dst, egress_ifp); @@ -1188,21 +1195,23 @@ goto free_tid; m = m_gethdr(MT_DATA, M_WAITOK); - m_set_toep(m, tp->t_toe); #if 0 m->m_toe.mt_toepcb = tp->t_toe; set_arp_failure_handler((struct mbuf *)m, act_open_req_arp_failure); #endif - if ((err = init_offload_socket(so, tdev, atid, e, dst))) - return (err); - + init_offload_socket(so, tdev, atid, e, dst, toep); + install_offload_ops(so); + mk_act_open_req(so, m, atid, e); soisconnecting(so); + toep = tp->t_toe; + m_set_toep(m, tp->t_toe); + + DPRINTF("toep=%p toep->tp_tp=%p\n", toep, toep->tp_tp); + l2t_send(d->cdev, (struct mbuf *)m, e); - - toep = tp->t_toe; if (toep->tp_ulp_mode) t3_enable_ddp(so, 0); return (0); @@ -1432,6 +1441,19 @@ SOCKBUF_LOCK(&so->so_rcv); if (sb_notify(&so->so_rcv)) printf("rx_data so=%p flags=0x%x len=%d\n", so, so->so_rcv.sb_flags, m->m_pkthdr.len); + if (m->m_pkthdr.len == 80) { + int i; + uint64_t *data; + + data = mtod(m, uint64_t *); + printf("80 byte packet:\n"); + for (i = 0; i < 10; i++, data++) { + uint8_t *dp = (uint8_t *)data; + + printf("%02x%02x%02x%02x%02x%02x%02x%02x\n", + dp[0],dp[1],dp[2],dp[3],dp[4],dp[5],dp[6],dp[7]); + } + } sbappendstream_locked(&so->so_rcv, m); @@ -2862,6 +2884,8 @@ } tp = sototcpcb(so); + so->so_snd.sb_flags |= SB_TOE; + so->so_rcv.sb_flags |= SB_TOE; toep->tp_tp = tp; tp->t_toe = toep; reset_wr_list(tp); @@ -3017,11 +3041,11 @@ struct cpl_act_establish *req = cplhdr(m); unsigned int tid = GET_TID(req); unsigned int atid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); - struct socket *so = (struct socket *)ctx; - struct toedev *tdev = TOE_DEV(so); + struct toepcb *toep = (struct toepcb *)ctx; + struct tcpcb *tp = toep->tp_tp; + struct socket *so = toeptoso(toep); + struct toedev *tdev = TOE_DEV(so); /* blow up here if link was down */ struct tom_data *d = TOM_DATA(tdev); - struct tcpcb *tp = sototcpcb(so); - struct toepcb *toep = tp->t_toe; INP_LOCK(tp->t_inpcb); @@ -3134,7 +3158,7 @@ if (so->so_snd.sb_sndptroff < so->so_snd.sb_cc) t3_push_frames(so, 0); - + out_free: INP_UNLOCK(tp->t_inpcb); m_free(m); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 07:41:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E09D16A421; Mon, 26 Nov 2007 07:41: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 D88DC16A41A for ; Mon, 26 Nov 2007 07:41:24 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C816C13C45B for ; Mon, 26 Nov 2007 07:41:24 +0000 (UTC) (envelope-from zhouzhouyi@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 lAQ7fOH1005965 for ; Mon, 26 Nov 2007 07:41:24 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQ7fOxk005962 for perforce@freebsd.org; Mon, 26 Nov 2007 07:41:24 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Mon, 26 Nov 2007 07:41:24 GMT Message-Id: <200711260741.lAQ7fOxk005962@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 129551 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, 26 Nov 2007 07:41:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129551 Change 129551 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/26 07:41:00 set limit for the log Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#3 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#14 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#9 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/tools/regression/mactest/pipe_io.c,v 1.6 2006/11/07 23:28:30 jkim Exp $ + * $FreeBSD$ */ #include @@ -45,8 +45,6 @@ #include #include "mactest.h" -#define BEGINLOG _IO('m',1) -int logfd; static void usage(void) @@ -130,7 +128,7 @@ fprintf(stderr, "too few arguments\n"); usage(); } - logfd = open("/dev/mactest", O_RDWR); + logfd = open(LOGDEV, O_RDWR); ioctl(logfd, BEGINLOG, NULL); if (pipe(fd) < 0) { @@ -160,6 +158,9 @@ } mac_free(label); } + + + switch (fork()) { case -1: perror("fork"); @@ -184,9 +185,10 @@ exit(-1); } close(fd[1]); + for (;;) { - i = read(fd[0], buf, 256); /* any small size should - * do */ + i = read(fd[0], buf, 256); + if (i == 0) break; if (i < 0) { @@ -195,12 +197,15 @@ exit(1); } } + exit(0); } default: break; } + close(logfd); + { mac_t label; @@ -219,13 +224,16 @@ exit(-1); } } + + + close(fd[0]); memset(buf, 0, sizeof buf); for (i = 0; i < 2; i++) write_frame(fd[1], buf, sizeof buf); - close(logfd); + machookmatch(macconf_file, pid); ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#14 (text+ko) ==== @@ -133,7 +133,8 @@ buffer = malloc(2560, M_MAC_TEST_LOG, M_NOWAIT); \ if (!buffer) \ badmem = 1; \ - bzero(buffer, 2048); \ + else \ + bzero(buffer, 2048); \ element1 = buffer + 512; buffer1 = element1 + 256; \ flagbuffer = buffer + 1024; \ submitbuffer = buffer + 1536; \ ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#9 (text+ko) ==== @@ -85,7 +85,9 @@ static struct vnode *logvnode = 0; +static int loglength = 0; +#define LOGMAX 1000 static int mac_test_log_open(struct cdev *dev, int oflags, int devtype, struct thread *td) @@ -154,7 +156,7 @@ VOP_UNLOCK(logvnode, 0, curthread); vn_finished_write(mp); - + loglength = 0; bad: NDFREE(&nd, NDF_ONLY_PNBUF); VFS_UNLOCK_GIANT(vfslocked); @@ -204,7 +206,9 @@ if (!mac_test_can_log) return; - + if (loglength > LOGMAX) + return; + mte = malloc(sizeof(*mte), M_MAC_TEST_LOG, M_NOWAIT | M_ZERO); if (NULL == mte) { return; @@ -219,6 +223,7 @@ bcopy(record, mte->mte_record, record_len); mte->mte_record_len = record_len; mtx_lock(&mac_test_submit_mtx); + loglength++; TAILQ_INSERT_TAIL(&mac_test_log_list, mte, mte_queue); mtx_unlock(&mac_test_submit_mtx); cv_signal(&mac_test_worker_cv); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 12:15:19 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A6B6716A419; Mon, 26 Nov 2007 12:15: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 DB06216A418 for ; Mon, 26 Nov 2007 12:15:18 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id B534413C45B for ; Mon, 26 Nov 2007 12:15:18 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 1E21546C4B; Mon, 26 Nov 2007 06:59:30 -0500 (EST) Date: Mon, 26 Nov 2007 11:55:49 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Kip Macy In-Reply-To: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> Message-ID: <20071126115044.J65286@fledge.watson.org> References: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews Subject: Re: PERFORCE change 129544 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, 26 Nov 2007 12:15:20 -0000 On Mon, 26 Nov 2007, Kip Macy wrote: > http://perforce.freebsd.org/chv.cgi?CH=129544 > > Change 129544 by kmacy@kmacy:storage:toestack on 2007/11/26 05:26:43 > > disable merging of data into existing mbufs if > new SB_TOE flag is set One of the reasons we compact socket buffers with TCP and other stream protocols is that if you're dealing with an application/protocol that spits out data in small chunks (i.e., a series of printfs) and nagel is disabled, you end up with a series of packets that make quite inefficient use of mbufs, as the space wasted per chunk of data is significant. Not only that, we bill for space in socket buffers based on the space held by the full mbuf, not just the data in the mbuf when it comes to socket buffer resource limits, so you can rapidly fill up socket buffer limits without compaction in this type of scenario. I'm not sure which protocols this would affect, but I'd imagine that RPC-like protocols supporting asynchronous operation (so that you get a series of replies and responses in flight at once) might be relevant, such as IMAP. On an unrelated not, if we want a non-coalescing modes for socket bufferss, we should probably also give it a name like "SB_NOCOALESCE" rather than something TOE-specific. Robert N M Watson Computer Laboratory University of Cambridge From owner-p4-projects@FreeBSD.ORG Mon Nov 26 14:09:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EEFF416A421; Mon, 26 Nov 2007 14: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 9532B16A417 for ; Mon, 26 Nov 2007 14:09:29 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 84A4013C4EC for ; Mon, 26 Nov 2007 14:09:29 +0000 (UTC) (envelope-from rpaulo@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 lAQE9Tro050498 for ; Mon, 26 Nov 2007 14:09:29 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQE9TMH050495 for perforce@freebsd.org; Mon, 26 Nov 2007 14:09:29 GMT (envelope-from rpaulo@FreeBSD.org) Date: Mon, 26 Nov 2007 14:09:29 GMT Message-Id: <200711261409.lAQE9TMH050495@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 129560 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, 26 Nov 2007 14:09:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=129560 Change 129560 by rpaulo@rpaulo_zoo on 2007/11/26 14:08:46 * Correct a sequence number check. * Ignore TH_ECE and TH_CWR in the header prediction check. Tested in the netperf cluster. The tcpdump was analysed with wireshark and no packets were lost when ECN was enabled. Affected files ... .. //depot/projects/tcpecn/netinet/tcp_input.c#3 edit Differences ... ==== //depot/projects/tcpecn/netinet/tcp_input.c#3 (text+ko) ==== @@ -968,7 +968,7 @@ * Ignore if we are already trying to recover. */ if ((thflags & TH_ECE) && - SEQ_GEQ(tp->snd_una, tp->snd_recover)) + SEQ_LEQ(th->th_ack, tp->snd_recover)) tcp_congestion_exp(tp); } @@ -1040,8 +1040,7 @@ */ if (tp->t_state == TCPS_ESTABLISHED && th->th_seq == tp->rcv_nxt && - (thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK|TH_ECE|TH_CWR)) - == TH_ACK && + (thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK && tp->snd_nxt == tp->snd_max && tiwin && tiwin == tp->snd_wnd && ((tp->t_flags & (TF_NEEDSYN|TF_NEEDFIN)) == 0) && From owner-p4-projects@FreeBSD.ORG Mon Nov 26 17:35:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2418216A418; Mon, 26 Nov 2007 17:35: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 B158C16A421 for ; Mon, 26 Nov 2007 17:35:31 +0000 (UTC) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.freebsd.org (Postfix) with ESMTP id 89CFE13C47E for ; Mon, 26 Nov 2007 17:35:31 +0000 (UTC) (envelope-from sam@errno.com) Received: from trouble.errno.com (trouble.errno.com [10.0.0.248]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id lAQHDktt004902 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 26 Nov 2007 09:13:48 -0800 (PST) (envelope-from sam@errno.com) Message-ID: <474AFECF.4010402@errno.com> Date: Mon, 26 Nov 2007 09:13:51 -0800 From: Sam Leffler User-Agent: Thunderbird 2.0.0.9 (X11/20071125) MIME-Version: 1.0 To: Robert Watson References: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> <20071126115044.J65286@fledge.watson.org> In-Reply-To: <20071126115044.J65286@fledge.watson.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-DCC-Rhyolite-Metrics: o.com; whitelist Cc: Perforce Change Reviews , Kip Macy Subject: Re: PERFORCE change 129544 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, 26 Nov 2007 17:35:32 -0000 Robert Watson wrote: > > On Mon, 26 Nov 2007, Kip Macy wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=129544 >> >> Change 129544 by kmacy@kmacy:storage:toestack on 2007/11/26 05:26:43 >> >> disable merging of data into existing mbufs if >> new SB_TOE flag is set > > One of the reasons we compact socket buffers with TCP and other stream > protocols is that if you're dealing with an application/protocol that > spits out data in small chunks (i.e., a series of printfs) and nagel > is disabled, you end up with a series of packets that make quite > inefficient use of mbufs, as the space wasted per chunk of data is > significant. Not only that, we bill for space in socket buffers based > on the space held by the full mbuf, not just the data in the mbuf when > it comes to socket buffer resource limits, so you can rapidly fill up > socket buffer limits without compaction in this type of scenario. I'm > not sure which protocols this would affect, but I'd imagine that > RPC-like protocols supporting asynchronous operation (so that you get > a series of replies and responses in flight at once) might be > relevant, such as IMAP. > > On an unrelated not, if we want a non-coalescing modes for socket > bufferss, we should probably also give it a name like "SB_NOCOALESCE" > rather than something TOE-specific. There used to be a record boundary indication to inhibit coalescing. Sam From owner-p4-projects@FreeBSD.ORG Mon Nov 26 19:51:46 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2FE216A41A; Mon, 26 Nov 2007 19:51: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 471D816A417 for ; Mon, 26 Nov 2007 19:51:46 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 374A113C459 for ; Mon, 26 Nov 2007 19:51:46 +0000 (UTC) (envelope-from rpaulo@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 lAQJpklE033690 for ; Mon, 26 Nov 2007 19:51:46 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQJpkbt033687 for perforce@freebsd.org; Mon, 26 Nov 2007 19:51:46 GMT (envelope-from rpaulo@FreeBSD.org) Date: Mon, 26 Nov 2007 19:51:46 GMT Message-Id: <200711261951.lAQJpkbt033687@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 129573 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, 26 Nov 2007 19:51:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=129573 Change 129573 by rpaulo@rpaulo_zoo on 2007/11/26 19:51:27 Add a tcpstat variable counting the number of times the congestion window was reduced due to ECN. Affected files ... .. //depot/projects/tcpecn/netinet/tcp_input.c#4 edit .. //depot/projects/tcpecn/netinet/tcp_var.h#3 edit Differences ... ==== //depot/projects/tcpecn/netinet/tcp_input.c#4 (text+ko) ==== @@ -968,8 +968,10 @@ * Ignore if we are already trying to recover. */ if ((thflags & TH_ECE) && - SEQ_LEQ(th->th_ack, tp->snd_recover)) + SEQ_LEQ(th->th_ack, tp->snd_recover)) { + tcpstat.tcps_ecn_rcwnd++; tcp_congestion_exp(tp); + } } /* ==== //depot/projects/tcpecn/netinet/tcp_var.h#3 (text+ko) ==== @@ -438,6 +438,7 @@ u_long tcps_ecn_ect0; /* ECN Capable Transport */ u_long tcps_ecn_ect1; /* ECN Capable Transport */ u_long tcps_ecn_shs; /* ECN successful handshakes */ + u_long tcps_ecn_rcwd; /* # times ECN reduced the cwd */ }; /* From owner-p4-projects@FreeBSD.ORG Mon Nov 26 19:55:52 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA96016A46C; Mon, 26 Nov 2007 19:55: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 5853016A41B for ; Mon, 26 Nov 2007 19:55:51 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3081A13C442 for ; Mon, 26 Nov 2007 19:55:51 +0000 (UTC) (envelope-from rpaulo@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 lAQJtpwq033901 for ; Mon, 26 Nov 2007 19:55:51 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQJtpun033898 for perforce@freebsd.org; Mon, 26 Nov 2007 19:55:51 GMT (envelope-from rpaulo@FreeBSD.org) Date: Mon, 26 Nov 2007 19:55:51 GMT Message-Id: <200711261955.lAQJtpun033898@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 129575 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, 26 Nov 2007 19:55:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=129575 Change 129575 by rpaulo@rpaulo_zoo on 2007/11/26 19:55:33 Oops, typo: s/rcwd/rcwnd/g Affected files ... .. //depot/projects/tcpecn/netinet/tcp_var.h#4 edit Differences ... ==== //depot/projects/tcpecn/netinet/tcp_var.h#4 (text+ko) ==== @@ -438,7 +438,7 @@ u_long tcps_ecn_ect0; /* ECN Capable Transport */ u_long tcps_ecn_ect1; /* ECN Capable Transport */ u_long tcps_ecn_shs; /* ECN successful handshakes */ - u_long tcps_ecn_rcwd; /* # times ECN reduced the cwd */ + u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */ }; /* From owner-p4-projects@FreeBSD.ORG Mon Nov 26 20:21:20 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2308116A46E; Mon, 26 Nov 2007 20:21:20 +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 C647416A421 for ; Mon, 26 Nov 2007 20:21: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 9D14D13C4D3 for ; Mon, 26 Nov 2007 20:21: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 lAQKLJuO036153 for ; Mon, 26 Nov 2007 20:21:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQKLJIl036150 for perforce@freebsd.org; Mon, 26 Nov 2007 20:21:19 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 26 Nov 2007 20:21:19 GMT Message-Id: <200711262021.lAQKLJIl036150@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 129579 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, 26 Nov 2007 20:21:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=129579 Change 129579 by hselasky@hselasky_laptop001 on 2007/11/26 20:21:13 Add new USB ID to "ugensa". Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ugensa.c#13 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ugensa.c#13 (text+ko) ==== @@ -175,6 +175,7 @@ {USB_VENDOR_NOVATEL, USB_PRODUCT_NOVATEL_CDMA_MODEM}, {USB_VENDOR_KYOCERA2, USB_PRODUCT_KYOCERA2_CDMA_MSM_K}, {USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_AIRCARD580}, + {USB_VENDOR_HP, USB_PRODUCT_HP_49GPLUS}, }; #define ugensa_lookup(v, p) usb_lookup(ugensa_devs, v, p) From owner-p4-projects@FreeBSD.ORG Mon Nov 26 20:25:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1ABA816A41B; Mon, 26 Nov 2007 20:25: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 9E35C16A417 for ; Mon, 26 Nov 2007 20:25:24 +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 7429013C44B for ; Mon, 26 Nov 2007 20:25:24 +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 lAQKPOX3036326 for ; Mon, 26 Nov 2007 20:25:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQKPO3b036323 for perforce@freebsd.org; Mon, 26 Nov 2007 20:25:24 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 26 Nov 2007 20:25:24 GMT Message-Id: <200711262025.lAQKPO3b036323@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 129580 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, 26 Nov 2007 20:25:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129580 Change 129580 by hselasky@hselasky_laptop001 on 2007/11/26 20:24:39 Bugfix. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 (text+ko) ==== @@ -707,7 +707,7 @@ for (p = str - 1; p; p = strchr(p, ';')) { p++; /* skip ';' */ if (strncmp(p, "MFG:", 4) == 0 || - strncmp(p, "MANUFACTURER:", 14) == 0 || + strncmp(p, "MANUFACTURER:", 13) == 0 || strncmp(p, "MDL:", 4) == 0 || strncmp(p, "MODEL:", 6) == 0) { q = strchr(p, ';'); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 21:00:03 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 392BC16A421; Mon, 26 Nov 2007 21:00:03 +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 BFAAA16A419 for ; Mon, 26 Nov 2007 21:00:02 +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 A977113C45A for ; Mon, 26 Nov 2007 21:00:02 +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 lAQL02mS046285 for ; Mon, 26 Nov 2007 21:00:02 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQL02Kk046276 for perforce@freebsd.org; Mon, 26 Nov 2007 21:00:02 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 26 Nov 2007 21:00:02 GMT Message-Id: <200711262100.lAQL02Kk046276@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 129582 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, 26 Nov 2007 21:00:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=129582 Change 129582 by hselasky@hselasky_laptop001 on 2007/11/26 20:59:30 Get rid of the ULPT watchdog. Throttle BULK IN transfer on reception of 4 consequtive ZLPs, by setting the "interval" field in the USB transfer. Remove superfluent "UQ_BROKEN_BIDIR" quirk. Make ULPT use a proxy buffer and "max_data_length". This is for the future. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#30 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#30 (text+ko) ==== @@ -72,7 +72,6 @@ #define ULPT_BSIZE (1<<17) /* bytes */ #define ULPT_IFQ_MAXLEN 2 /* units */ -#define ULPT_WATCHDOG_INTERVAL 5 /* times per second */ #define ULPT_N_TRANSFER 6 /* units */ #define UR_GET_DEVICE_ID 0x00 @@ -87,21 +86,20 @@ struct ulpt_softc { struct usb_cdev sc_cdev; - struct usb_callout sc_watchdog; struct mtx sc_mtx; device_t sc_dev; struct usbd_xfer *sc_xfer[ULPT_N_TRANSFER]; uint8_t sc_flags; -#define ULPT_FLAG_NO_READ 0x01 /* device has no read endpoint */ -#define ULPT_FLAG_DUMP_READ 0x02 /* device is not opened for read */ #define ULPT_FLAG_READ_STALL 0x04 /* read transfer stalled */ #define ULPT_FLAG_WRITE_STALL 0x08 /* write transfer stalled */ #define ULPT_FLAG_RESETTING 0x10 /* device is resetting */ uint8_t sc_iface_no; uint8_t sc_last_status; + uint8_t sc_zlps; /* number of consequtive zero length + * packets received */ }; /* prototypes */ @@ -118,39 +116,6 @@ static usbd_callback_t ulpt_reset_callback; static void -ulpt_watchdog(void *__sc) -{ - struct ulpt_softc *sc = __sc; - - mtx_assert(&(sc->sc_mtx), MA_OWNED); - - DPRINTF(2, "start sc=%p\n", sc); - - /* start reading of status, if not already started */ - - usbd_transfer_start(sc->sc_xfer[2]); - - if ((sc->sc_flags & (ULPT_FLAG_NO_READ | - ULPT_FLAG_DUMP_READ)) && - (!(sc->sc_flags & ULPT_FLAG_RESETTING)) && - (sc->sc_cdev.sc_flags & (USB_CDEV_FLAG_OPEN_READ | - USB_CDEV_FLAG_OPEN_WRITE)) && - (!(sc->sc_cdev.sc_flags & USB_CDEV_FLAG_CLOSING_READ))) { - - /* start reading of data, if not already started */ - - usbd_transfer_start(sc->sc_xfer[1]); - } - usb_callout_reset(&(sc->sc_watchdog), - hz / ULPT_WATCHDOG_INTERVAL, - &ulpt_watchdog, sc); - - mtx_unlock(&(sc->sc_mtx)); - - return; -} - -static void ulpt_write_callback(struct usbd_xfer *xfer) { struct ulpt_softc *sc = xfer->priv_sc; @@ -164,7 +129,7 @@ return; } if (usb_cdev_get_data(&(sc->sc_cdev), &(xfer->buf_data), 0, - ULPT_BSIZE, &actlen, 0)) { + xfer->max_data_length, &actlen, 0)) { xfer->frlengths[0] = actlen; usbd_start_hardware(xfer); @@ -203,9 +168,22 @@ switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: - if (sc->sc_flags & (ULPT_FLAG_NO_READ | ULPT_FLAG_DUMP_READ)) { - return; + + if (xfer->actlen == 0) { + + if (sc->sc_zlps == 4) { + /* enable BULK throttle */ + xfer->interval = 500; /* ms */ + } else { + sc->sc_zlps++; + } + } else { + /* disable BULK throttle */ + + xfer->interval = 0; + sc->sc_zlps = 0; } + usb_cdev_put_data(&(sc->sc_cdev), &(xfer->buf_data), 0, xfer->actlen, 1); @@ -223,6 +201,10 @@ return; default: /* Error */ + /* disable BULK throttle */ + xfer->interval = 0; + sc->sc_zlps = 0; + if (xfer->error != USBD_CANCELLED) { /* try to clear stall first */ sc->sc_flags |= ULPT_FLAG_READ_STALL; @@ -272,9 +254,9 @@ else if (new_status & LPS_NERR) log(LOG_NOTICE, "%s: output error\n", device_get_nameunit(sc->sc_dev)); - return; case USBD_ST_SETUP: +tr_setup: req.bmRequestType = UT_READ_CLASS_INTERFACE; req.bRequest = UR_GET_PORT_STATUS; USETW(req.wValue, 0); @@ -292,6 +274,9 @@ default: /* Error */ DPRINTF(0, "error=%s\n", usbd_errstr(xfer->error)); + if (xfer->error != USBD_CANCELLED) { + goto tr_setup; + } return; } } @@ -354,7 +339,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .bufsize = ULPT_BSIZE, - .flags = {.pipe_bof = 1,.force_short_xfer = 1,}, + .flags = {.pipe_bof = 1,.force_short_xfer = 1,.proxy_buffer = 1}, .callback = &ulpt_write_callback, }, @@ -363,7 +348,7 @@ .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, .bufsize = ULPT_BSIZE, - .flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, + .flags = {.pipe_bof = 1,.short_xfer_ok = 1,.proxy_buffer = 1}, .callback = &ulpt_read_callback, }, @@ -374,6 +359,7 @@ .bufsize = sizeof(usb_device_request_t) + 1, .callback = &ulpt_status_callback, .timeout = 1000, /* 1 second */ + .interval = 1000, /* 1 second */ }, [3] = { @@ -478,11 +464,6 @@ goto done; } } - if (cdev->sc_flags & USB_CDEV_FLAG_OPEN_READ) { - sc->sc_flags &= ~ULPT_FLAG_DUMP_READ; - } else { - sc->sc_flags |= ULPT_FLAG_DUMP_READ; - } done: return (error); } @@ -541,9 +522,6 @@ mtx_init(&(sc->sc_mtx), "ulpt lock", NULL, MTX_DEF | MTX_RECURSE); - usb_callout_init_mtx(&(sc->sc_watchdog), - &(sc->sc_mtx), CALLOUT_RETURNUNLOCKED); - /* search through all the descriptors looking for bidir mode */ while (iface_alt_index < 32) { @@ -592,13 +570,7 @@ DPRINTF(0, "error=%s\n", usbd_errstr(error)); goto detach; } - if (usbd_get_quirks(uaa->device)->uq_flags & UQ_BROKEN_BIDIR) { - /* this device doesn't handle reading properly. */ - sc->sc_flags |= ULPT_FLAG_NO_READ; - } - device_printf(sc->sc_dev, "using %s-directional mode\n", - (sc->sc_flags & ULPT_FLAG_NO_READ) ? "uni" : "bi"); - + device_printf(sc->sc_dev, "using bi-directional mode\n"); #if 0 /* @@ -654,16 +626,14 @@ error = usb_cdev_attach(&(sc->sc_cdev), sc, &(sc->sc_mtx), p_buf, UID_ROOT, GID_OPERATOR, 0644, - ULPT_BSIZE, ULPT_IFQ_MAXLEN, - ULPT_BSIZE, ULPT_IFQ_MAXLEN); + sc->sc_xfer[1]->max_data_length, ULPT_IFQ_MAXLEN, + sc->sc_xfer[0]->max_data_length, ULPT_IFQ_MAXLEN); if (error) { goto detach; } - /* start watchdog (returns unlocked) */ + /* start reading of status */ - mtx_lock(&(sc->sc_mtx)); - - ulpt_watchdog(sc); + usbd_transfer_start(sc->sc_xfer[2]); return (0); @@ -681,14 +651,8 @@ usb_cdev_detach(&(sc->sc_cdev)); - mtx_lock(&(sc->sc_mtx)); - usb_callout_stop(&(sc->sc_watchdog)); - mtx_unlock(&(sc->sc_mtx)); - usbd_transfer_unsetup(sc->sc_xfer, ULPT_N_TRANSFER); - usb_callout_drain(&(sc->sc_watchdog)); - mtx_destroy(&(sc->sc_mtx)); return (0); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 21:06:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1F7AE16A473; Mon, 26 Nov 2007 21:06:10 +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 BD45A16A46C for ; Mon, 26 Nov 2007 21:06: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 9B84713C4D5 for ; Mon, 26 Nov 2007 21:06: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 lAQL69Nf047717 for ; Mon, 26 Nov 2007 21:06:09 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQL6975047714 for perforce@freebsd.org; Mon, 26 Nov 2007 21:06:09 GMT (envelope-from jb@freebsd.org) Date: Mon, 26 Nov 2007 21:06:09 GMT Message-Id: <200711262106.lAQL6975047714@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 129583 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, 26 Nov 2007 21:06:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=129583 Change 129583 by jb@jb_freebsd1 on 2007/11/26 21:05:38 IFC Affected files ... .. //depot/projects/dtrace/src/contrib/less/NEWS#9 integrate .. //depot/projects/dtrace/src/contrib/less/README#9 integrate .. //depot/projects/dtrace/src/contrib/less/less.man#9 integrate .. //depot/projects/dtrace/src/contrib/less/less.nro#9 integrate .. //depot/projects/dtrace/src/contrib/less/lessecho.man#7 integrate .. //depot/projects/dtrace/src/contrib/less/lessecho.nro#7 integrate .. //depot/projects/dtrace/src/contrib/less/lesskey.man#9 integrate .. //depot/projects/dtrace/src/contrib/less/lesskey.nro#9 integrate .. //depot/projects/dtrace/src/contrib/less/search.c#8 integrate .. //depot/projects/dtrace/src/contrib/less/version.c#9 integrate .. //depot/projects/dtrace/src/lib/libelf/gelf_xlatetof.3#6 integrate .. //depot/projects/dtrace/src/lib/libelf/libelf_xlate.c#7 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_spec.c#4 integrate .. //depot/projects/dtrace/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#14 integrate .. //depot/projects/dtrace/src/release/picobsd/tinyware/msg/msg.c#4 integrate .. //depot/projects/dtrace/src/sbin/ipfw/ipfw.8#16 integrate .. //depot/projects/dtrace/src/share/man/man9/sx.9#8 integrate .. //depot/projects/dtrace/src/sys/contrib/ipfilter/netinet/fil.c#9 integrate .. //depot/projects/dtrace/src/sys/contrib/ipfilter/netinet/ip_auth.c#8 integrate .. //depot/projects/dtrace/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#9 integrate .. //depot/projects/dtrace/src/sys/dev/agp/agp_i810.c#2 integrate .. //depot/projects/dtrace/src/sys/dev/ata/ata-chipset.c#21 integrate .. //depot/projects/dtrace/src/sys/dev/em/if_em.c#16 integrate .. //depot/projects/dtrace/src/sys/dev/ichsmb/ichsmb_pci.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/usb/usbdevs#21 integrate .. //depot/projects/dtrace/src/sys/i386/linux/linux_machdep.c#12 integrate .. //depot/projects/dtrace/src/sys/pci/if_rl.c#9 integrate .. //depot/projects/dtrace/src/sys/pci/if_rlreg.h#9 integrate .. //depot/projects/dtrace/src/sys/powerpc/include/atomic.h#6 integrate .. //depot/projects/dtrace/www/en/releases/7.0R/todo.sgml#2 integrate Differences ... ==== //depot/projects/dtrace/src/contrib/less/NEWS#9 (text+ko) ==== @@ -13,7 +13,7 @@ ====================================================================== - Major changes between "less" versions 409 and 415 + Major changes between "less" versions 409 and 416 * New --follow-name option makes F command follow the name of a file rather than the file descriptor if an open file is renamed. ==== //depot/projects/dtrace/src/contrib/less/README#9 (text+ko) ==== @@ -1,7 +1,7 @@ - Less, version 415 + Less, version 416 - This is the distribution of less, version 415, released 15 Nov 2007. + This is the distribution of less, version 416, released 22 Nov 2007. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or ==== //depot/projects/dtrace/src/contrib/less/less.man#9 (text+ko) ==== @@ -445,8 +445,8 @@ buffer space is used for each file (unless the file is a pipe; see the -B option). The -b option specifies instead that n kilobytes of buffer space should be used for each file. If n is - -1, buffer space is unlimited; that is, the entire file is read - into memory. + -1, buffer space is unlimited; that is, the entire file can be + read into memory. -B or --auto-buffers By default, when data is read from a pipe, buffers are allocated @@ -456,8 +456,8 @@ buffers for pipes, so that only 64K (or the amount of space specified by the -b option) is used for the pipe. Warning: use of -B can result in erroneous display, since only the most - recently viewed part of the file is kept in memory; any earlier - data is lost. + recently viewed part of the piped data is kept in memory; any + earlier data is lost. -c or --clear-screen Causes full screen repaints to be painted from the top line @@ -533,42 +533,44 @@ -jn or --jump-target=n Specifies a line on the screen where the "target" line is to be - positioned. A target line is the object of a text search, tag - search, jump to a line number, jump to a file percentage, or - jump to a marked position. The screen line may be specified by - a number: the top line on the screen is 1, the next is 2, and so - on. The number may be negative to specify a line relative to - the bottom of the screen: the bottom line on the screen is -1, - the second to the bottom is -2, and so on. Alternately, the - screen line may be specified as a fraction of the height of the - screen, starting with a decimal point: .5 is in the middle of - the screen, .3 is three tenths down from the first line, and so - on. If the line is specified as a fraction, the actual line + positioned. The target line is the line specified by any com- + mand to search for a pattern, jump to a line number, jump to a + file percentage or jump to a tag. The screen line may be speci- + fied by a number: the top line on the screen is 1, the next is + 2, and so on. The number may be negative to specify a line rel- + ative to the bottom of the screen: the bottom line on the screen + is -1, the second to the bottom is -2, and so on. Alternately, + the screen line may be specified as a fraction of the height of + the screen, starting with a decimal point: .5 is in the middle + of the screen, .3 is three tenths down from the first line, and + so on. If the line is specified as a fraction, the actual line number is recalculated if the terminal window is resized, so that the target line remains at the specified fraction of the - screen height. If the -j option is used, searches begin at the - line immediately after the target line. For example, if "-j4" - is used, the target line is the fourth line on the screen, so - searches begin at the fifth line on the screen. + screen height. If any form of the -j option is used, forward + searches begin at the line immediately after the target line, + and backward searches begin at the target line. For example, if + "-j4" is used, the target line is the fourth line on the screen, + so forward searches begin at the fifth line on the screen. -J or --status-column - Displays a status column at the left edge of the screen. The - status column shows the lines that matched the current search. - The status column is also used if the -w or -W option is in + Displays a status column at the left edge of the screen. The + status column shows the lines that matched the current search. + The status column is also used if the -w or -W option is in effect. -kfilename or --lesskey-file=filename - Causes less to open and interpret the named file as a lesskey + Causes less to open and interpret the named file as a lesskey (1) file. Multiple -k options may be specified. If the LESSKEY - or LESSKEY_SYSTEM environment variable is set, or if a lesskey + or LESSKEY_SYSTEM environment variable is set, or if a lesskey file is found in a standard place (see KEY BINDINGS), it is also used as a lesskey file. -K or --quit-on-intr - Causes less to exit immediately when an interrupt character - (usually ^C) is typed. Normally, an interrupt character causes - less to stop whatever it is doing and return to its command - prompt. + Causes less to exit immediately when an interrupt character + (usually ^C) is typed. Normally, an interrupt character causes + less to stop whatever it is doing and return to its command + prompt. Note that use of this option makes it impossible to + return to the command prompt from the "F" command. -L or --no-lessopen Ignore the LESSOPEN environment variable (see the INPUT PREPRO- @@ -739,8 +741,8 @@ -xn,... or --tabs=n,... Sets tab stops. If only one n is specified, tab stops are set at multiples of n. If multiple values separated by commas are - specified, tab stops are set at those positions, and then - continue with the same spacing as the last two. For example, + specified, tab stops are set at those positions, and then con- + tinue with the same spacing as the last two. For example, -x9,17 will set tabs at positions 9, 17, 25, 33, etc. The default for n is 8. @@ -1159,10 +1161,10 @@ is followed by a single character (shown as X above) which spec- ifies the line whose byte offset is to be used. If the charac- ter is a "t", the byte offset of the top line in the display is - used, an "m" means use the middle line, a "b" means use the - bottom line, a "B" means use the line just after the bottom - line, and a "j" means use the "target" line, as specified by the - -j option. + used, an "m" means use the middle line, a "b" means use the bot- + tom line, a "B" means use the line just after the bottom line, + and a "j" means use the "target" line, as specified by the -j + option. %B Replaced by the size of the current input file. @@ -1509,10 +1511,10 @@ expressions turned off via ^R, and also does not occur when less is compiled to use the PCRE regular expression library. - In certain cases, when search highlighting is enabled and a search - pattern begins with a ^, more text than the matching string may be - highlighted. (This problem does not occur when less is compiled to use - the POSIX regular expression package.) + In certain cases, when search highlighting is enabled and a search pat- + tern begins with a ^, more text than the matching string may be high- + lighted. (This problem does not occur when less is compiled to use the + POSIX regular expression package.) On some systems, setlocale claims that ASCII characters 0 thru 31 are control characters rather than binary characters. This causes less to @@ -1554,4 +1556,4 @@ - Version 415: 15 Nov 2007 LESS(1) + Version 416: 22 Nov 2007 LESS(1) ==== //depot/projects/dtrace/src/contrib/less/less.nro#9 (text+ko) ==== @@ -1,4 +1,4 @@ -.TH LESS 1 "Version 415: 15 Nov 2007" +.TH LESS 1 "Version 416: 22 Nov 2007" .SH NAME less \- opposite of more .SH SYNOPSIS @@ -462,7 +462,7 @@ The \-b option specifies instead that \fIn\fP kilobytes of buffer space should be used for each file. If \fIn\fP is \-1, buffer space is unlimited; that is, -the entire file is read into memory. +the entire file can be read into memory. .IP "\-B or \-\-auto-buffers" By default, when data is read from a pipe, buffers are allocated automatically as needed. @@ -473,7 +473,7 @@ (or the amount of space specified by the \-b option) is used for the pipe. Warning: use of \-B can result in erroneous display, since only the -most recently viewed part of the file is kept in memory; +most recently viewed part of the piped data is kept in memory; any earlier data is lost. .IP "\-c or \-\-clear-screen" Causes full screen repaints to be painted from the top line down. @@ -555,9 +555,9 @@ .IP "\-j\fIn\fP or \-\-jump-target=\fIn\fP" Specifies a line on the screen where the "target" line is to be positioned. -A target line is the object of a text search, -tag search, jump to a line number, -jump to a file percentage, or jump to a marked position. +The target line is the line specified by any command to +search for a pattern, jump to a line number, +jump to a file percentage or jump to a tag. The screen line may be specified by a number: the top line on the screen is 1, the next is 2, and so on. The number may be negative to specify a line relative to the bottom @@ -569,10 +569,11 @@ If the line is specified as a fraction, the actual line number is recalculated if the terminal window is resized, so that the target line remains at the specified fraction of the screen height. -If the \-j option is used, searches begin at the line immediately -after the target line. +If any form of the \-j option is used, +forward searches begin at the line immediately after the target line, +and backward searches begin at the target line. For example, if "\-j4" is used, the target line is the -fourth line on the screen, so searches begin at the fifth line +fourth line on the screen, so forward searches begin at the fifth line on the screen. .IP "\-J or \-\-status-column" Displays a status column at the left edge of the screen. @@ -597,6 +598,8 @@ Normally, an interrupt character causes .I less to stop whatever it is doing and return to its command prompt. +Note that use of this option makes it impossible to return to the +command prompt from the "F" command. .IP "\-L or \-\-no-lessopen" Ignore the LESSOPEN environment variable (see the INPUT PREPROCESSOR section below). ==== //depot/projects/dtrace/src/contrib/less/lessecho.man#7 (text+ko) ==== @@ -46,4 +46,4 @@ - Version 415: 15 Nov 2007 LESSECHO(1) + Version 416: 22 Nov 2007 LESSECHO(1) ==== //depot/projects/dtrace/src/contrib/less/lessecho.nro#7 (text+ko) ==== @@ -1,4 +1,4 @@ -.TH LESSECHO 1 "Version 415: 15 Nov 2007" +.TH LESSECHO 1 "Version 416: 22 Nov 2007" .SH NAME lessecho \- expand metacharacters .SH SYNOPSIS ==== //depot/projects/dtrace/src/contrib/less/lesskey.man#9 (text+ko) ==== @@ -357,4 +357,4 @@ - Version 415: 15 Nov 2007 LESSKEY(1) + Version 416: 22 Nov 2007 LESSKEY(1) ==== //depot/projects/dtrace/src/contrib/less/lesskey.nro#9 (text+ko) ==== @@ -1,4 +1,4 @@ -.TH LESSKEY 1 "Version 415: 15 Nov 2007" +.TH LESSKEY 1 "Version 416: 22 Nov 2007" .SH NAME lesskey \- specify key bindings for less .SH SYNOPSIS ==== //depot/projects/dtrace/src/contrib/less/search.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/search.c,v 1.10 2007/11/16 22:24:31 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/search.c,v 1.11 2007/11/26 08:58:07 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -120,13 +120,16 @@ int len; int ops; { - if (utf_mode && (ops & CVT_TO_LC)) + if (utf_mode) /* - * Converting case can cause a UTF-8 string to increase in length. - * Multiplying by 3 is the worst case. + * Just copying a string in UTF-8 mode can cause it to grow + * in length. + * Six output bytes for one input byte is the worst case + * (and unfortunately is far more than is needed in any + * non-pathological situation, so this is very wasteful). */ - len *= 3; - return len+1; + len *= 6; + return len + 1; } /* ==== //depot/projects/dtrace/src/contrib/less/version.c#9 (text+ko) ==== @@ -701,6 +701,7 @@ v413 11/6/07 Fix search highlight bug with non-ASCII text. v414 11/6/07 Fix display bug with no-wrap terminals. v415 11/14/07 Add --follow-name option. +v416 11/22/07 Fix crash when searching text with invalid UTF-8 sequences. */ -char version[] = "415"; +char version[] = "416"; ==== //depot/projects/dtrace/src/lib/libelf/gelf_xlatetof.3#6 (text+ko) ==== @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libelf/gelf_xlatetof.3,v 1.2 2006/11/13 09:46:16 ru Exp $ +.\" $FreeBSD: src/lib/libelf/gelf_xlatetof.3,v 1.3 2007/11/26 03:09:33 jkoshy Exp $ .\" .Dd July 24, 2006 .Os @@ -208,12 +208,6 @@ .It Bq Er ELF_E_DATA The .Ar src -argument had a zero -.Va d_size -field. -.It Bq Er ELF_E_DATA -The -.Ar src argument specified a buffer size that was not an integral multiple of its underlying type. .It Bq Er ELF_E_DATA ==== //depot/projects/dtrace/src/lib/libelf/libelf_xlate.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libelf/libelf_xlate.c,v 1.2 2006/12/24 09:45:10 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/lib/libelf/libelf_xlate.c,v 1.3 2007/11/26 03:09:33 jkoshy Exp $"); #include #include @@ -78,8 +78,8 @@ return (NULL); } - if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize)(src->d_type, - (size_t) 1, src->d_version)) == 0) + if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize) + (src->d_type, (size_t) 1, src->d_version)) == 0) return (NULL); msz = _libelf_msize(src->d_type, elfclass, src->d_version); @@ -132,8 +132,8 @@ dst->d_type = src->d_type; dst->d_size = dsz; - if (db == sb && encoding == LIBELF_PRIVATE(byteorder) && - fsz == msz) + if (src->d_size == 0 || + (db == sb && encoding == LIBELF_PRIVATE(byteorder) && fsz == msz)) return (dst); /* nothing more to do */ (_libelf_get_translator(src->d_type, direction, elfclass))(dst->d_buf, ==== //depot/projects/dtrace/src/lib/libkse/thread/thr_spec.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libkse/thread/thr_spec.c,v 1.26 2007/11/19 02:09:07 davidxu Exp $ + * $FreeBSD: src/lib/libkse/thread/thr_spec.c,v 1.27 2007/11/26 02:35:17 davidxu Exp $ */ #include #include @@ -63,9 +63,13 @@ int _pthread_key_create(pthread_key_t *key, void (*destructor) (void *)) { - struct pthread *curthread = _get_curthread(); + struct pthread *curthread; int i; + if (_thr_initial == NULL) + _libpthread_init(NULL); + curthread = _get_curthread(); + /* Lock the key table: */ THR_LOCK_ACQUIRE(curthread, &_keytable_lock); for (i = 0; i < PTHREAD_KEYS_MAX; i++) { @@ -90,13 +94,9 @@ int _pthread_key_delete(pthread_key_t key) { - struct pthread *curthread; + struct pthread *curthread = _get_curthread(); int ret = 0; - if (_thr_initial == NULL) - _libpthread_init(NULL); - curthread = _get_curthread(); - if ((unsigned int)key < PTHREAD_KEYS_MAX) { /* Lock the key table: */ THR_LOCK_ACQUIRE(curthread, &_keytable_lock); ==== //depot/projects/dtrace/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#14 (text+ko) ==== @@ -20,7 +20,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1075 2007/11/16 22:28:00 delphij Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1076 2007/11/26 08:58:52 delphij Exp $ 2000 @@ -210,7 +210,7 @@ 4.1.23 to 4.1.28. less has been updated from - v408 to v415. + v408 to v416. sendmail has been updated from 8.14.1 to 8.14.2. &merged; ==== //depot/projects/dtrace/src/release/picobsd/tinyware/msg/msg.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/release/picobsd/tinyware/msg/msg.c,v 1.3 2001/07/03 19:51:53 tmm Exp $ + * $FreeBSD: src/release/picobsd/tinyware/msg/msg.c,v 1.4 2007/11/26 05:03:55 sam Exp $ */ /* @@ -32,6 +32,7 @@ #include +#include #include #include @@ -45,13 +46,13 @@ /* We use sysctlbyname, because the oid is unknown (OID_AUTO) */ /* get the buffer size */ - i=sysctlbyname(mib,NULL,&len,NULL,NULL); + i=sysctlbyname(mib,NULL,&len,NULL,0); if(i) { perror("buffer sizing"); exit(-1); } buf=(char *)malloc(len*sizeof(char)); - i=sysctlbyname(mib,buf,&len,NULL,NULL); + i=sysctlbyname(mib,buf,&len,NULL,0); if(i) { perror("retrieving data"); exit(-1); ==== //depot/projects/dtrace/src/sbin/ipfw/ipfw.8#16 (text+ko) ==== @@ -1,7 +1,7 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.206 2007/11/17 21:54:57 oleg Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.207 2007/11/26 00:36:40 danger Exp $ .\" -.Dd November 17, 2007 +.Dd November 26, 2007 .Dt IPFW 8 .Os .Sh NAME @@ -527,7 +527,7 @@ This can be useful for a number of applications such as random packet drop or (in conjunction with -.Xr dummynet 4 ) +.Nm dummynet ) to simulate the effect of multiple paths leading to out-of-order packet delivery. .Pp @@ -543,7 +543,7 @@ .Dv LOG_SECURITY facility. The logging only occurs if the sysctl variable -.Em net.inet.ip.fw.verbose +.Va net.inet.ip.fw.verbose is set to 1 (which is the default when the kernel is compiled with .Dv IPFIREWALL_VERBOSE ) @@ -554,7 +554,7 @@ If no .Cm logamount is specified, the limit is taken from the sysctl variable -.Em net.inet.ip.fw.verbose_limit . +.Va net.inet.ip.fw.verbose_limit . In both cases, a value of 0 removes the logging limit. .Pp Once the limit is reached, logging can be re-enabled by @@ -656,7 +656,7 @@ .Nm .Cm disable Ar altq . The usage of -.Em net.inet.ip.fw.one_pass +.Va net.inet.ip.fw.one_pass is irrelevant to ALTQ traffic shaping, as the actual rule action is followed always after adding an ALTQ tag. .El @@ -750,7 +750,7 @@ Section for further information. .It Cm pipe Ar pipe_nr Pass packet to a -.Xr dummynet 4 +.Nm dummynet .Dq pipe (for bandwidth limitation, delay, etc.). See the @@ -760,12 +760,12 @@ the .Xr sysctl 8 variable -.Em net.inet.ip.fw.one_pass +.Va net.inet.ip.fw.one_pass is not set, the packet is passed again to the firewall code starting from the next rule. .It Cm queue Ar queue_nr Pass packet to a -.Xr dummynet 4 +.Nm dummynet .Dq queue (for bandwidth limitation using WF2Q+). .It Cm reject @@ -823,12 +823,12 @@ The search terminates. If packet is later returned from netgraph it is either accepted or continues with the next rule, depending on -.Em net.inet.ip.fw.one_pass +.Va net.inet.ip.fw.one_pass sysctl variable. .It Cm ngtee Ar cookie A copy of packet is diverted into netgraph, original packet is either accepted or continues with the next rule, depending on -.Em net.inet.ip.fw.one_pass +.Va net.inet.ip.fw.one_pass sysctl variable. See .Xr ng_ipfw 4 @@ -1165,7 +1165,7 @@ .Ar types . The list may be specified as any combination of individual types (numeric) separated by commas. -.Em Ranges are not allowed. +.Em Ranges are not allowed . The supported ICMP types are: .Pp echo reply @@ -1203,7 +1203,7 @@ .Ar types . The list may be specified as any combination of individual types (numeric) separated by commas. -.Em Ranges are not allowed. +.Em Ranges are not allowed . .It Cm in | out Matches incoming or outgoing packets, respectively. .Cm in @@ -1743,7 +1743,7 @@ .Sh TRAFFIC SHAPER (DUMMYNET) CONFIGURATION .Nm is also the user interface for the -.Xr dummynet 4 +.Nm dummynet traffic shaper. .Pp .Nm dummynet @@ -1756,15 +1756,36 @@ TCP connection, or from/to a given host, or entire subnet, or a protocol type, etc. .Pp -There are two modes of dummynet operation: normal and fast. -Normal mode tries to emulate real link: dummynet scheduler ensures packet will -not leave pipe faster than it would be on real link with given bandwidth. -Fast mode allows certain packets to bypass dummynet scheduler (if packet flow -does not exceed pipe's bandwidth). Thus fast mode requires less cpu cycles -per packet (in average) but packet latency can be significantly lower comparing -to real link with same bandwidth. Default is normal mode, fast mode can be -enabled by setting net.inet.ip.dummynet.io_fast sysctl(8) variable to non-zero -value. +There are two modes of +.Nm dummynet +operation: +.Dq normal +and +.Dq fast . +The +.Dq normal +mode tries to emulate a real link: the +.Nm dummynet +scheduler ensures that the packet will not leave the pipe faster than it +would on the real link with a given bandwidth. +The +.Dq fast +mode allows certain packets to bypass the +.Nm dummynet +scheduler (if packet flow does not exceed pipe's bandwidth). +This is the reason why the +.Dq fast +mode requires less CPU cycles per packet (on average) and packet latency +can be significantly lower in comparison to a real link with the same +bandwidth. +The default mode is +.Dq normal . +The +.Dq fast +mode can be enabled by setting the +.Va net.inet.ip.dummynet.io_fast +.Xr sysctl 8 +variable to a non-zero value. .Pp Packets belonging to the same flow are then passed to either of two different objects, which implement the traffic regulation: @@ -1869,7 +1890,7 @@ Default value is 64 controlled by the .Xr sysctl 8 variable -.Em net.inet.ip.dummynet.hash_size , +.Va net.inet.ip.dummynet.hash_size , allowed range is 16 to 65536. .Pp .It Cm mask Ar mask-specifier @@ -1912,7 +1933,9 @@ where the latter means all bits in all fields are significant. .Pp .It Cm noerror -When a packet is dropped by a dummynet queue or pipe, the error +When a packet is dropped by a +.Nm dummynet +queue or pipe, the error is normally reported to the caller routine in the kernel, in the same way as it happens when a device queue fills up. Setting this @@ -1958,30 +1981,33 @@ (thresholds are computed in bytes if the queue has been defined in bytes, in slots otherwise). The -.Xr dummynet 4 +.Nm dummynet also supports the gentle RED variant (gred). Three .Xr sysctl 8 variables can be used to control the RED behaviour: .Bl -tag -width indent -.It Em net.inet.ip.dummynet.red_lookup_depth +.It Va net.inet.ip.dummynet.red_lookup_depth specifies the accuracy in computing the average queue when the link is idle (defaults to 256, must be greater than zero) -.It Em net.inet.ip.dummynet.red_avg_pkt_size +.It Va net.inet.ip.dummynet.red_avg_pkt_size specifies the expected average packet size (defaults to 512, must be greater than zero) -.It Em net.inet.ip.dummynet.red_max_pkt_size +.It Va net.inet.ip.dummynet.red_max_pkt_size specifies the expected maximum packet size, only used when queue thresholds are in bytes (defaults to 1500, must be greater than zero). .El .El .Pp -When used with IPv6 data, dummynet currently has several limitations. +When used with IPv6 data, +.Nm dummynet +currently has several limitations. Information necessary to route link-local packets to an -interface is not avalable after processing by dummynet so those packets -are dropped in the output path. +interface is not available after processing by +.Nm dummynet +so those packets are dropped in the output path. Care should be taken to insure that link-local packets are not passed to -dummynet. +.Nm dummynet . .Sh CHECKLIST Here are some important points to consider when designing your rules: @@ -2095,7 +2121,7 @@ .El .Pp To let the packet continue after being (de)aliased, set the sysctl variable -.Em net.inet.ip.fw.one_pass +.Va net.inet.ip.fw.one_pass to 0. For more information about aliasing modes, refer to .Xr libalias 3 @@ -2121,71 +2147,80 @@ .Xr sysctl 8 command what value is actually in use) and meaning: .Bl -tag -width indent -.It Em net.inet.ip.dummynet.expire : No 1 +.It Va net.inet.ip.dummynet.expire : No 1 Lazily delete dynamic pipes/queue once they have no pending traffic. You can disable this by setting the variable to 0, in which case the pipes/queues will only be deleted when the threshold is reached. -.It Em net.inet.ip.dummynet.hash_size : No 64 +.It Va net.inet.ip.dummynet.hash_size : No 64 Default size of the hash table used for dynamic pipes/queues. This value is used when no .Cm buckets option is specified when configuring a pipe/queue. -.It Em net.inet.ip.dummynet.io_fast : No 0 -If set to non-zero value enables "fast" mode of dummynet operation (see above). -.It Em net.inet.ip.dummynet.io_pkt -Number of packets passed to by dummynet. -.It Em net.inet.ip.dummynet.io_pkt_drop -Number of packets dropped by dummynet. -.It Em net.inet.ip.dummynet.io_pkt_fast -Number of packets bypassed dummynet scheduler. -.It Em net.inet.ip.dummynet.max_chain_len : No 16 +.It Va net.inet.ip.dummynet.io_fast : No 0 +If set to a non-zero value, +the +.Dq fast +mode of +.Nm dummynet +operation (see above) is enabled. +.It Va net.inet.ip.dummynet.io_pkt +Number of packets passed to +.Nm dummynet . +.It Va net.inet.ip.dummynet.io_pkt_drop +Number of packets dropped by +.Nm dummynet . +.It Va net.inet.ip.dummynet.io_pkt_fast +Number of packets bypassed by the +.Nm dummynet +scheduler. +.It Va net.inet.ip.dummynet.max_chain_len : No 16 Target value for the maximum number of pipes/queues in a hash bucket. The product .Cm max_chain_len*hash_size is used to determine the threshold over which empty pipes/queues will be expired even when .Cm net.inet.ip.dummynet.expire=0 . -.It Em net.inet.ip.dummynet.red_lookup_depth : No 256 -.It Em net.inet.ip.dummynet.red_avg_pkt_size : No 512 -.It Em net.inet.ip.dummynet.red_max_pkt_size : No 1500 +.It Va net.inet.ip.dummynet.red_lookup_depth : No 256 +.It Va net.inet.ip.dummynet.red_avg_pkt_size : No 512 +.It Va net.inet.ip.dummynet.red_max_pkt_size : No 1500 Parameters used in the computations of the drop probability for the RED algorithm. -.It Em net.inet.ip.fw.autoinc_step : No 100 +.It Va net.inet.ip.fw.autoinc_step : No 100 Delta between rule numbers when auto-generating them. The value must be in the range 1..1000. -.It Em net.inet.ip.fw.curr_dyn_buckets : Em net.inet.ip.fw.dyn_buckets +.It Va net.inet.ip.fw.curr_dyn_buckets : Va net.inet.ip.fw.dyn_buckets The current number of buckets in the hash table for dynamic rules (readonly). -.It Em net.inet.ip.fw.debug : No 1 +.It Va net.inet.ip.fw.debug : No 1 Controls debugging messages produced by .Nm . -.It Em net.inet.ip.fw.dyn_buckets : No 256 +.It Va net.inet.ip.fw.dyn_buckets : No 256 The number of buckets in the hash table for dynamic rules. Must be a power of 2, up to 65536. It only takes effect when all dynamic rules have expired, so you are advised to use a .Cm flush command to make sure that the hash table is resized. -.It Em net.inet.ip.fw.dyn_count : No 3 +.It Va net.inet.ip.fw.dyn_count : No 3 Current number of dynamic rules (read-only). -.It Em net.inet.ip.fw.dyn_keepalive : No 1 +.It Va net.inet.ip.fw.dyn_keepalive : No 1 Enables generation of keepalive packets for .Cm keep-state rules on TCP sessions. A keepalive is generated to both sides of the connection every 5 seconds for the last 20 seconds of the lifetime of the rule. -.It Em net.inet.ip.fw.dyn_max : No 8192 +.It Va net.inet.ip.fw.dyn_max : No 8192 Maximum number of dynamic rules. When you hit this limit, no more dynamic rules can be installed until old ones expire. -.It Em net.inet.ip.fw.dyn_ack_lifetime : No 300 -.It Em net.inet.ip.fw.dyn_syn_lifetime : No 20 -.It Em net.inet.ip.fw.dyn_fin_lifetime : No 1 -.It Em net.inet.ip.fw.dyn_rst_lifetime : No 1 -.It Em net.inet.ip.fw.dyn_udp_lifetime : No 5 -.It Em net.inet.ip.fw.dyn_short_lifetime : No 30 +.It Va net.inet.ip.fw.dyn_ack_lifetime : No 300 +.It Va net.inet.ip.fw.dyn_syn_lifetime : No 20 +.It Va net.inet.ip.fw.dyn_fin_lifetime : No 1 +.It Va net.inet.ip.fw.dyn_rst_lifetime : No 1 +.It Va net.inet.ip.fw.dyn_udp_lifetime : No 5 +.It Va net.inet.ip.fw.dyn_short_lifetime : No 30 These variables control the lifetime, in seconds, of dynamic rules. Upon the initial SYN exchange the lifetime is kept short, @@ -2198,31 +2233,31 @@ must be strictly lower than 5 seconds, the period of repetition of keepalives. The firewall enforces that. -.It Em net.inet.ip.fw.enable : No 1 +.It Va net.inet.ip.fw.enable : No 1 Enables the firewall. Setting this variable to 0 lets you run your machine without firewall even if compiled in. -.It Em net.inet6.ip6.fw.enable : No 1 +.It Va net.inet6.ip6.fw.enable : No 1 provides the same functionality as above for the IPv6 case. -.It Em net.inet.ip.fw.one_pass : No 1 +.It Va net.inet.ip.fw.one_pass : No 1 When set, the packet exiting from the -.Xr dummynet 4 +.Nm dummynet pipe or from .Xr ng_ipfw 4 node is not passed though the firewall again. Otherwise, after an action, the packet is reinjected into the firewall at the next rule. -.It Em net.inet.ip.fw.verbose : No 1 +.It Va net.inet.ip.fw.verbose : No 1 Enables verbose messages. -.It Em net.inet.ip.fw.verbose_limit : No 0 +.It Va net.inet.ip.fw.verbose_limit : No 0 Limits the number of messages produced by a verbose firewall. -.It Em net.inet6.ip6.fw.deny_unknown_exthdrs : No 1 +.It Va net.inet6.ip6.fw.deny_unknown_exthdrs : No 1 If enabled packets with unknown IPv6 Extension Headers will be denied. -.It Em net.link.ether.ipfw : No 0 +.It Va net.link.ether.ipfw : No 0 Controls whether layer-2 packets are passed to .Nm . Default is no. -.It Em net.link.bridge.ipfw : No 0 +.It Va net.link.bridge.ipfw : No 0 Controls whether bridged packets are passed to .Nm . Default is no. @@ -2370,7 +2405,7 @@ The following rules show some of the applications of .Nm and -.Xr dummynet 4 +.Nm dummynet for simulations and the like. .Pp This rule drops random incoming packets with a probability @@ -2378,7 +2413,9 @@ .Pp .Dl "ipfw add prob 0.05 deny ip from any to any in" .Pp -A similar effect can be achieved making use of dummynet pipes: +A similar effect can be achieved making use of +.Nm dummynet +pipes: .Pp .Dl "ipfw add pipe 10 ip from any to any" .Dl "ipfw pipe 10 config plr 0.05" @@ -2593,7 +2630,7 @@ .Nm utility first appeared in .Fx 2.0 . -.Xr dummynet 4 +.Nm dummynet was introduced in .Fx 2.2.8 . Stateful extensions were introduced in @@ -2618,7 +2655,7 @@ as part of a Summer of Code 2005 project. .Pp Work on -.Xr dummynet 4 +.Nm dummynet traffic shaper supported by Akamba Corp. .Sh BUGS The syntax has grown over the years and sometimes it might be confusing. ==== //depot/projects/dtrace/src/share/man/man9/sx.9#8 (text+ko) ==== @@ -24,9 +24,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/sx.9,v 1.42 2007/11/25 01:55:53 attilio Exp $ +.\" $FreeBSD: src/share/man/man9/sx.9,v 1.43 2007/11/26 15:21:21 brueffer Exp $ .\" -.Dd February 1, 2006 +.Dd November 25, 2007 .Dt SX 9 .Os .Sh NAME ==== //depot/projects/dtrace/src/sys/contrib/ipfilter/netinet/fil.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.54 2007/10/30 15:23:26 darrenr Exp $ */ +/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.55 2007/11/26 08:18:19 darrenr Exp $ */ /* * Copyright (C) 1993-2003 by Darren Reed. @@ -17,7 +17,7 @@ #include #if defined(__NetBSD__) # if (NetBSD >= 199905) && !defined(IPFILTER_LKM) && defined(_KERNEL) -# if (__NetBSD_Version__ < 399001400) +# if (__NetBSD_Version__ < 301000000) # include "opt_ipfilter_log.h" # else # include "opt_ipfilter.h" @@ -155,7 +155,7 @@ #if !defined(lint) static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed"; -static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.54 2007/10/30 15:23:26 darrenr Exp $"; +static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.55 2007/11/26 08:18:19 darrenr Exp $"; /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; */ #endif @@ -2307,8 +2307,7 @@ if (FR_ISAUTH(pass)) { if (fr_newauth(fin->fin_m, fin) != 0) { #ifdef _KERNEL - if ((pass & FR_RETMASK) == 0) - fin->fin_m = *fin->fin_mp = NULL; + fin->fin_m = *fin->fin_mp = NULL; #else ; #endif @@ -2600,7 +2599,8 @@ * Here rather than fr_firewall because fr_checkauth may decide * to return a packet for "keep state" */ - if ((pass & FR_KEEPSTATE) && !(fin->fin_flx & FI_STATE)) { + if ((pass & FR_KEEPSTATE) && (fin->fin_m != NULL) && + !(fin->fin_flx & FI_STATE)) { if (fr_addstate(fin, NULL, 0) != NULL) { ATOMIC_INCL(frstats[out].fr_ads); } else { ==== //depot/projects/dtrace/src/sys/contrib/ipfilter/netinet/ip_auth.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_auth.c,v 1.46 2007/10/30 15:23:26 darrenr Exp $ */ +/* $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_auth.c,v 1.47 2007/11/26 08:18:19 darrenr Exp $ */ /* * Copyright (C) 1998-2003 by Darren Reed & Guido van Rooij. @@ -120,7 +120,7 @@ /* END OF INCLUDES */ #if !defined(lint) -static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_auth.c,v 1.46 2007/10/30 15:23:26 darrenr Exp $"; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Nov 26 21:47:01 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2AE4216A47C; Mon, 26 Nov 2007 21:47: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 C4A9C16A46B for ; Mon, 26 Nov 2007 21:47:00 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AD19D13C4E1 for ; Mon, 26 Nov 2007 21:47:00 +0000 (UTC) (envelope-from peter@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 lAQLl0SV049467 for ; Mon, 26 Nov 2007 21:47:00 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQLktrf049461 for perforce@freebsd.org; Mon, 26 Nov 2007 21:46:55 GMT (envelope-from peter@freebsd.org) Date: Mon, 26 Nov 2007 21:46:55 GMT Message-Id: <200711262146.lAQLktrf049461@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129587 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, 26 Nov 2007 21:47:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=129587 Change 129587 by peter@peter_daintree on 2007/11/26 21:46:44 IFC @129585 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#40 integrate .. //depot/projects/hammer/UPDATING#110 integrate .. //depot/projects/hammer/bin/ln/ln.1#8 integrate .. //depot/projects/hammer/bin/ln/ln.c#7 integrate .. //depot/projects/hammer/bin/sh/Makefile#9 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ppc-dis.c#4 integrate .. //depot/projects/hammer/contrib/csup/mux.c#2 integrate .. //depot/projects/hammer/contrib/gdb/gdb/i386fbsd-nat.c#3 integrate .. //depot/projects/hammer/contrib/less/LICENSE#4 integrate .. //depot/projects/hammer/contrib/less/Makefile.dsm#2 delete .. //depot/projects/hammer/contrib/less/NEWS#7 integrate .. //depot/projects/hammer/contrib/less/README#7 integrate .. //depot/projects/hammer/contrib/less/ch.c#6 integrate .. //depot/projects/hammer/contrib/less/command.c#6 integrate .. //depot/projects/hammer/contrib/less/configure#6 integrate .. //depot/projects/hammer/contrib/less/configure.ac#5 integrate .. //depot/projects/hammer/contrib/less/decode.c#5 integrate .. //depot/projects/hammer/contrib/less/defines.ds#5 integrate .. //depot/projects/hammer/contrib/less/defines.h.in#5 integrate .. //depot/projects/hammer/contrib/less/defines.o2#5 integrate .. //depot/projects/hammer/contrib/less/defines.o9#4 integrate .. //depot/projects/hammer/contrib/less/defines.wn#5 integrate .. //depot/projects/hammer/contrib/less/edit.c#5 integrate .. //depot/projects/hammer/contrib/less/filename.c#6 integrate .. //depot/projects/hammer/contrib/less/funcs.h#6 integrate .. //depot/projects/hammer/contrib/less/less.h#6 integrate .. //depot/projects/hammer/contrib/less/less.man#7 integrate .. //depot/projects/hammer/contrib/less/less.nro#7 integrate .. //depot/projects/hammer/contrib/less/lessecho.man#5 integrate .. //depot/projects/hammer/contrib/less/lessecho.nro#5 integrate .. //depot/projects/hammer/contrib/less/lesskey.man#7 integrate .. //depot/projects/hammer/contrib/less/lesskey.nro#7 integrate .. //depot/projects/hammer/contrib/less/line.c#7 integrate .. //depot/projects/hammer/contrib/less/optfunc.c#6 integrate .. //depot/projects/hammer/contrib/less/opttbl.c#5 integrate .. //depot/projects/hammer/contrib/less/screen.c#7 integrate .. //depot/projects/hammer/contrib/less/search.c#7 integrate .. //depot/projects/hammer/contrib/less/tags.c#5 integrate .. //depot/projects/hammer/contrib/less/version.c#7 integrate .. //depot/projects/hammer/contrib/tcpdump/tcpdump.c#8 integrate .. //depot/projects/hammer/etc/etc.amd64/ttys#6 integrate .. //depot/projects/hammer/etc/etc.arm/ttys#5 integrate .. //depot/projects/hammer/etc/etc.i386/ttys#4 integrate .. //depot/projects/hammer/etc/etc.ia64/ttys#6 integrate .. //depot/projects/hammer/etc/etc.powerpc/ttys#6 integrate .. //depot/projects/hammer/etc/etc.sparc64/ttys#13 integrate .. //depot/projects/hammer/etc/periodic/security/100.chksetuid#6 integrate .. //depot/projects/hammer/gnu/lib/libobjc/Makefile#19 integrate .. //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#23 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/arm/Makefile#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/arm/init.c#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h#2 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/kgdb/kgdb.h#6 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/kgdb/kthr.c#7 integrate .. //depot/projects/hammer/gnu/usr.bin/gdb/kgdb/trgt_i386.c#5 integrate .. //depot/projects/hammer/include/dirent.h#5 integrate .. //depot/projects/hammer/kerberos5/lib/Makefile.inc#8 integrate .. //depot/projects/hammer/lib/Makefile#65 integrate .. //depot/projects/hammer/lib/libc/gdtoa/_ldtoa.c#3 integrate .. //depot/projects/hammer/lib/libc/gen/closedir.c#3 integrate .. //depot/projects/hammer/lib/libc/net/Makefile.inc#20 integrate .. //depot/projects/hammer/lib/libc/rpc/authdes_prot.c#2 integrate .. //depot/projects/hammer/lib/libc/rpc/authunix_prot.c#3 integrate .. //depot/projects/hammer/lib/libc/rpc/key_prot_xdr.c#3 integrate .. //depot/projects/hammer/lib/libc/rpc/rpc_callmsg.c#3 integrate .. //depot/projects/hammer/lib/libc/rpc/rpc_prot.c#3 integrate .. //depot/projects/hammer/lib/libc/rpc/rpcb_prot.c#5 integrate .. //depot/projects/hammer/lib/libc/rpc/rpcb_st_xdr.c#2 integrate .. //depot/projects/hammer/lib/libc/sparc64/fpu/fpu_explode.c#4 integrate .. //depot/projects/hammer/lib/libdisk/libdisk.3#12 integrate .. //depot/projects/hammer/lib/libdisk/libdisk.h#16 integrate .. //depot/projects/hammer/lib/libelf/elf.3#3 integrate .. //depot/projects/hammer/lib/libelf/gelf_xlatetof.3#2 integrate .. //depot/projects/hammer/lib/libelf/libelf_data.c#2 integrate .. //depot/projects/hammer/lib/libelf/libelf_xlate.c#2 integrate .. //depot/projects/hammer/lib/libgssapi/Makefile#2 integrate .. //depot/projects/hammer/lib/libkse/Makefile#2 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_spec.c#2 integrate .. //depot/projects/hammer/lib/libpmc/Makefile#4 integrate .. //depot/projects/hammer/lib/libpmc/pmc.3#12 integrate .. //depot/projects/hammer/lib/libpmc/pmc_allocate.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_attach.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_capabilities.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_configure_logfile.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_disable.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_event_names_of_class.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_get_driver_stats.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_get_msr.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_init.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_name_of_capability.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_read.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_set.3#1 branch .. //depot/projects/hammer/lib/libpmc/pmc_start.3#1 branch .. //depot/projects/hammer/lib/libsdp/search.c#5 integrate .. //depot/projects/hammer/lib/libthr/Makefile#24 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#35 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_private.h#37 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_rtld.c#3 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_sem.c#7 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_sig.c#15 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_suspend_np.c#8 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_umtx.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_umtx.h#5 integrate .. //depot/projects/hammer/lib/libthread_db/arch/arm/libpthread_md.c#1 branch .. //depot/projects/hammer/lib/libutil/expand_number.3#3 integrate .. //depot/projects/hammer/lib/libutil/expand_number.c#2 integrate .. //depot/projects/hammer/lib/libutil/libutil.h#9 integrate .. //depot/projects/hammer/lib/libutil/pty.c#6 integrate .. //depot/projects/hammer/libexec/rtld-elf/powerpc/reloc.c#9 integrate .. //depot/projects/hammer/libexec/tftpd/Makefile#2 integrate .. //depot/projects/hammer/libexec/tftpd/tftpd.8#6 integrate .. //depot/projects/hammer/libexec/tftpd/tftpd.c#12 integrate .. //depot/projects/hammer/release/Makefile#96 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/article.sgml#25 integrate .. //depot/projects/hammer/release/picobsd/tinyware/msg/msg.c#2 integrate .. //depot/projects/hammer/sbin/clri/clri.c#7 integrate .. //depot/projects/hammer/sbin/devd/Makefile#9 integrate .. //depot/projects/hammer/sbin/geom/class/journal/gjournal.8#2 integrate .. //depot/projects/hammer/sbin/geom/class/nop/gnop.8#13 integrate .. //depot/projects/hammer/sbin/geom/class/virstor/geom_virstor.c#2 integrate .. //depot/projects/hammer/sbin/init/init.c#12 integrate .. //depot/projects/hammer/sbin/ipf/ipftest/Makefile#3 integrate .. //depot/projects/hammer/sbin/ipfw/ipfw.8#62 integrate .. //depot/projects/hammer/sbin/mdconfig/mdconfig.c#26 integrate .. //depot/projects/hammer/sbin/mount_ntfs/mount_ntfs.8#6 integrate .. //depot/projects/hammer/sbin/ping6/ping6.8#6 integrate .. //depot/projects/hammer/sbin/ping6/ping6.c#11 integrate .. //depot/projects/hammer/sbin/spppcontrol/spppcontrol.c#3 integrate .. //depot/projects/hammer/share/colldef/sv_SE.ISO8859-1.src#2 integrate .. //depot/projects/hammer/share/colldef/sv_SE.ISO8859-15.src#2 integrate .. //depot/projects/hammer/share/man/man4/hwpmc.4#16 integrate .. //depot/projects/hammer/share/man/man4/msk.4#4 integrate .. //depot/projects/hammer/share/man/man9/Makefile#74 integrate .. //depot/projects/hammer/share/man/man9/rwlock.9#6 integrate .. //depot/projects/hammer/share/man/man9/sx.9#16 integrate .. //depot/projects/hammer/share/man/man9/timeout.9#14 integrate .. //depot/projects/hammer/share/mk/bsd.sys.mk#16 integrate .. //depot/projects/hammer/share/mk/sys.mk#26 integrate .. //depot/projects/hammer/sys/amd64/amd64/db_trace.c#39 integrate .. //depot/projects/hammer/sys/amd64/amd64/exception.S#47 integrate .. //depot/projects/hammer/sys/amd64/amd64/genassym.c#48 integrate .. //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#51 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#162 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#165 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#100 integrate .. //depot/projects/hammer/sys/arm/arm/pmap.c#44 integrate .. //depot/projects/hammer/sys/arm/conf/HL200#1 branch .. //depot/projects/hammer/sys/boot/i386/cdboot/cdboot.s#7 integrate .. //depot/projects/hammer/sys/boot/i386/gptboot/gptldr.S#2 integrate .. //depot/projects/hammer/sys/boot/i386/pmbr/pmbr.s#2 integrate .. //depot/projects/hammer/sys/boot/pc98/cdboot/cdboot.s#3 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_all.h#10 integrate .. //depot/projects/hammer/sys/conf/files#164 integrate .. //depot/projects/hammer/sys/conf/kmod.mk#66 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/fil.c#19 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/ip_auth.c#13 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#8 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf.c#35 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_if.c#11 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_ioctl.c#26 integrate .. //depot/projects/hammer/sys/dev/aac/aac_debug.c#10 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_battery.c#19 integrate .. //depot/projects/hammer/sys/dev/agp/agp_i810.c#2 integrate .. //depot/projects/hammer/sys/dev/an/if_an.c#37 integrate .. //depot/projects/hammer/sys/dev/an/if_anreg.h#9 integrate .. //depot/projects/hammer/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.h#45 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#82 integrate .. //depot/projects/hammer/sys/dev/ata/ata-disk.c#45 integrate .. //depot/projects/hammer/sys/dev/ata/ata-dma.c#29 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.c#44 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.h#50 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-cd.c#39 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-fd.c#22 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-tape.c#22 integrate .. //depot/projects/hammer/sys/dev/bce/if_bce.c#10 integrate .. //depot/projects/hammer/sys/dev/bfe/if_bfe.c#29 integrate .. //depot/projects/hammer/sys/dev/bge/if_bge.c#76 integrate .. //depot/projects/hammer/sys/dev/dc/dcphy.c#5 integrate .. //depot/projects/hammer/sys/dev/dc/if_dc.c#13 integrate .. //depot/projects/hammer/sys/dev/em/e1000_80003es2lan.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_80003es2lan.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82540.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82541.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82541.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82542.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82543.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82543.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82571.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82571.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82575.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_82575.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_api.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_api.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_defines.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_hw.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_ich8lan.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_ich8lan.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_mac.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_mac.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_manage.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_manage.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_nvm.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_nvm.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_osdep.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_phy.c#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_phy.h#3 integrate .. //depot/projects/hammer/sys/dev/em/e1000_regs.h#3 integrate .. //depot/projects/hammer/sys/dev/em/if_em.c#70 integrate .. //depot/projects/hammer/sys/dev/em/if_em.h#34 integrate .. //depot/projects/hammer/sys/dev/ichsmb/ichsmb_pci.c#12 integrate .. //depot/projects/hammer/sys/dev/ichwd/ichwd.c#11 integrate .. //depot/projects/hammer/sys/dev/ichwd/ichwd.h#5 integrate .. //depot/projects/hammer/sys/dev/lge/if_lge.c#35 integrate .. //depot/projects/hammer/sys/dev/mii/amphy.c#12 integrate .. //depot/projects/hammer/sys/dev/mii/e1000phy.c#12 integrate .. //depot/projects/hammer/sys/dev/mii/nsphy.c#12 integrate .. //depot/projects/hammer/sys/dev/mii/rlphy.c#15 integrate .. //depot/projects/hammer/sys/dev/mii/tdkphy.c#12 integrate .. //depot/projects/hammer/sys/dev/mii/ukphy_subr.c#6 integrate .. //depot/projects/hammer/sys/dev/msk/if_msk.c#8 integrate .. //depot/projects/hammer/sys/dev/msk/if_mskreg.h#4 integrate .. //depot/projects/hammer/sys/dev/nfe/if_nfe.c#8 integrate .. //depot/projects/hammer/sys/dev/nge/if_nge.c#42 integrate .. //depot/projects/hammer/sys/dev/nve/if_nve.c#22 integrate .. //depot/projects/hammer/sys/dev/pci/pci.c#64 integrate .. //depot/projects/hammer/sys/dev/re/if_re.c#52 integrate .. //depot/projects/hammer/sys/dev/sk/if_sk.c#8 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac.c#11 integrate .. //depot/projects/hammer/sys/dev/stge/if_stge.c#5 integrate .. //depot/projects/hammer/sys/dev/ti/if_ti.c#7 integrate .. //depot/projects/hammer/sys/dev/txp/if_txp.c#29 integrate .. //depot/projects/hammer/sys/dev/usb/ehci_pci.c#25 integrate .. //depot/projects/hammer/sys/dev/usb/if_rum.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/if_zyd.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/uhci_pci.c#17 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#91 integrate .. //depot/projects/hammer/sys/dev/vge/if_vge.c#19 integrate .. //depot/projects/hammer/sys/dev/vx/if_vx_pci.c#14 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_vfsops.c#48 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_vfsops.c#33 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs.h#6 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_subr.c#6 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_vfsops.c#9 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_vnops.c#6 integrate .. //depot/projects/hammer/sys/geom/eli/g_eli_crypto.c#6 integrate .. //depot/projects/hammer/sys/geom/label/g_label_reiserfs.c#3 integrate .. //depot/projects/hammer/sys/i386/i386/genassym.c#22 integrate .. //depot/projects/hammer/sys/i386/i386/intr_machdep.c#25 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#101 integrate .. //depot/projects/hammer/sys/i386/linux/linux_machdep.c#28 integrate .. //depot/projects/hammer/sys/ia64/ia64/interrupt.c#28 integrate .. //depot/projects/hammer/sys/ia64/ia64/pmap.c#63 integrate .. //depot/projects/hammer/sys/kern/init_main.c#49 integrate .. //depot/projects/hammer/sys/kern/kern_fork.c#68 integrate .. //depot/projects/hammer/sys/kern/kern_kse.c#40 integrate .. //depot/projects/hammer/sys/kern/kern_kthread.c#15 integrate .. //depot/projects/hammer/sys/kern/kern_linker.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_lock.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_mutex.c#50 integrate .. //depot/projects/hammer/sys/kern/kern_proc.c#61 integrate .. //depot/projects/hammer/sys/kern/kern_rmlock.c#2 integrate .. //depot/projects/hammer/sys/kern/kern_rwlock.c#13 integrate .. //depot/projects/hammer/sys/kern/kern_sx.c#19 integrate .. //depot/projects/hammer/sys/kern/kern_thr.c#40 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#101 integrate .. //depot/projects/hammer/sys/kern/kern_timeout.c#26 integrate .. //depot/projects/hammer/sys/kern/kern_umtx.c#28 integrate .. //depot/projects/hammer/sys/kern/linker_if.m#4 integrate .. //depot/projects/hammer/sys/kern/subr_witness.c#66 integrate .. //depot/projects/hammer/sys/kern/sys_pipe.c#36 integrate .. //depot/projects/hammer/sys/kern/tty_pty.c#36 integrate .. //depot/projects/hammer/sys/kern/vfs_cache.c#24 integrate .. //depot/projects/hammer/sys/net/ieee8023ad_lacp.c#6 integrate .. //depot/projects/hammer/sys/net/if_lagg.c#10 integrate .. //depot/projects/hammer/sys/net/pfil.c#10 integrate .. //depot/projects/hammer/sys/net/pfil.h#8 integrate .. //depot/projects/hammer/sys/net80211/ieee80211.c#31 integrate .. //depot/projects/hammer/sys/net80211/ieee80211.h#16 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_ht.c#6 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_node.c#44 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_output.c#33 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_proto.c#32 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan_sta.c#6 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_var.h#32 integrate .. //depot/projects/hammer/sys/netatalk/aarp.c#22 integrate .. //depot/projects/hammer/sys/netatalk/ddp_output.c#15 integrate .. //depot/projects/hammer/sys/netinet/ip_dummynet.c#45 integrate .. //depot/projects/hammer/sys/netinet/libalias/alias_util.c#6 integrate .. //depot/projects/hammer/sys/netinet/tcp_output.c#46 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#78 integrate .. //depot/projects/hammer/sys/netinet/tcp_syncache.c#52 integrate .. //depot/projects/hammer/sys/netinet6/ip6_output.c#45 integrate .. //depot/projects/hammer/sys/netipsec/keysock.c#16 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#54 integrate .. //depot/projects/hammer/sys/pci/if_rl.c#58 integrate .. //depot/projects/hammer/sys/pci/if_rlreg.h#28 integrate .. //depot/projects/hammer/sys/pci/if_sf.c#43 integrate .. //depot/projects/hammer/sys/pci/if_ste.c#48 integrate .. //depot/projects/hammer/sys/pci/if_vr.c#46 integrate .. //depot/projects/hammer/sys/pci/if_xl.c#68 integrate .. //depot/projects/hammer/sys/powerpc/include/atomic.h#10 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/intr_machdep.c#14 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/mmu_if.m#7 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/mmu_oea.c#5 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/pmap_dispatch.c#9 integrate .. //depot/projects/hammer/sys/sparc64/conf/DEFAULTS#5 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/intr_machdep.c#16 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/pmap.c#48 integrate .. //depot/projects/hammer/sys/sun4v/include/stdarg.h#2 integrate .. //depot/projects/hammer/sys/sun4v/sun4v/pmap.c#5 integrate .. //depot/projects/hammer/sys/sys/callout.h#9 integrate .. //depot/projects/hammer/sys/sys/eventhandler.h#11 integrate .. //depot/projects/hammer/sys/sys/linker.h#19 integrate .. //depot/projects/hammer/sys/sys/lock.h#21 integrate .. //depot/projects/hammer/sys/sys/lockmgr.h#13 integrate .. //depot/projects/hammer/sys/sys/mutex.h#34 integrate .. //depot/projects/hammer/sys/sys/umtx.h#16 integrate .. //depot/projects/hammer/sys/vm/pmap.h#30 integrate .. //depot/projects/hammer/sys/vm/vm_contig.c#37 integrate .. //depot/projects/hammer/sys/vm/vm_object.c#70 integrate .. //depot/projects/hammer/sys/vm/vm_page.c#64 integrate .. //depot/projects/hammer/sys/vm/vm_pageout.c#47 integrate .. //depot/projects/hammer/sys/vm/vm_pageout.h#11 integrate .. //depot/projects/hammer/sys/vm/vnode_pager.c#42 integrate .. //depot/projects/hammer/tools/regression/priv/Makefile#4 integrate .. //depot/projects/hammer/tools/regression/priv/main.c#4 integrate .. //depot/projects/hammer/tools/regression/priv/main.h#4 integrate .. //depot/projects/hammer/tools/regression/priv/priv_netinet_ipsec.c#2 integrate .. //depot/projects/hammer/tools/sched/schedgraph.py#9 integrate .. //depot/projects/hammer/usr.bin/fstat/zfs/zfs.c#2 integrate .. //depot/projects/hammer/usr.bin/less/defines.h#5 integrate .. //depot/projects/hammer/usr.bin/lsvfs/lsvfs.c#4 integrate .. //depot/projects/hammer/usr.bin/make/main.c#42 integrate .. //depot/projects/hammer/usr.bin/netstat/Makefile#16 integrate .. //depot/projects/hammer/usr.bin/rpcgen/rpc_cout.c#7 integrate .. //depot/projects/hammer/usr.bin/tail/read.c#6 integrate .. //depot/projects/hammer/usr.bin/tip/tip/Makefile#3 integrate .. //depot/projects/hammer/usr.sbin/IPXrouted/trace.c#5 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidb/Makefile#6 integrate .. //depot/projects/hammer/usr.sbin/acpi/acpidump/acpi.c#16 integrate .. //depot/projects/hammer/usr.sbin/arp/Makefile#4 integrate .. //depot/projects/hammer/usr.sbin/freebsd-update/freebsd-update.sh#6 integrate .. //depot/projects/hammer/usr.sbin/kldxref/Makefile#6 integrate .. //depot/projects/hammer/usr.sbin/nscd/Makefile#4 integrate .. //depot/projects/hammer/usr.sbin/ppp/chap.h#2 integrate .. //depot/projects/hammer/usr.sbin/ppp/physical.h#4 integrate .. //depot/projects/hammer/usr.sbin/rpc.yppasswdd/Makefile#6 integrate .. //depot/projects/hammer/usr.sbin/sa/db.c#2 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#40 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.117 2007/11/08 17:43:13 imp Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.120 2007/11/21 10:49:33 ru Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -16,6 +16,12 @@ # 20071108: Removed very crunch OLDCARD support file OLD_FILES+=etc/defaults/pccard.conf +# 20071104: Removed bsdlabel, fdisk and gpt from rescue on ia64. +.if ${TARGET_ARCH} == "ia64" +OLD_FILES+=rescue/bsdlabel +OLD_FILES+=rescue/fdisk +OLD_FILES+=rescue/gpt +.endif # 20071025: rc.d/nfslocking superceeded by rc.d/lockd and rc.d/statd OLD_FILES+=etc/rc.d/nfslocking # 20070930: rename of cached to nscd @@ -198,7 +204,7 @@ # 20070605: sched_core removal OLD_FILES+=usr/share/man/man4/sched_core.4.gz # 20070603: BIND 9.4.1 import -OLD_LIBS+=lib/liblwres.so.10 +OLD_LIBS+=usr/lib/liblwres.so.10 # 20070521: shared library version bump OLD_LIBS+=lib/libatm.so.4 OLD_LIBS+=lib/libbegemot.so.2 @@ -3957,6 +3963,20 @@ # - usr/share/tmac/mm/locale # - usr/share/tmac/mm/se_locale # - var/yp/Makefile + +# 20071119: shared library version bump +OLD_LIBS+=usr/lib/libasn1.so.8 +OLD_LIBS+=usr/lib/libgssapi.so.8 +OLD_LIBS+=usr/lib/libhdb.so.8 +OLD_LIBS+=usr/lib/libkadm5clnt.so.8 +OLD_LIBS+=usr/lib/libkadm5srv.so.8 +OLD_LIBS+=usr/lib/libkafs5.so.8 +OLD_LIBS+=usr/lib/libkrb5.so.8 +OLD_LIBS+=usr/lib/libobjc.so.2 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libgssapi.so.8 +OLD_LIBS+=usr/lib32/libobjc.so.2 +.endif # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so ==== //depot/projects/hammer/UPDATING#110 (text+ko) ==== @@ -21,6 +21,17 @@ developers choose to disable these features on build machines to maximize performance. +20071118: + The AT keyboard emulation of sunkbd(4) has been turned on + by default. In order to make the special symbols of the Sun + keyboards driven by sunkbd(4) work under X these now have + to be configured the same way as Sun USB keyboards driven + by ukbd(4) (which also does AT keyboard emulation), f.e.: + + Option "XkbLayout" "us" + Option "XkbRules" "xorg" + Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" + 20071024: It has been decided that it is desirable to provide ABI backwards compatibility to the FreeBSD 4/5/6 versions of the @@ -934,4 +945,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.511 2007/10/24 20:51:43 marius Exp $ +$FreeBSD: src/UPDATING,v 1.512 2007/11/18 18:11:16 marius Exp $ ==== //depot/projects/hammer/bin/ln/ln.1#8 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ln.1 8.2 (Berkeley) 12/30/93 -.\" $FreeBSD: src/bin/ln/ln.1,v 1.31 2006/02/14 11:08:05 glebius Exp $ +.\" $FreeBSD: src/bin/ln/ln.1,v 1.32 2007/11/17 21:01:22 ru Exp $ .\" .Dd February 14, 2006 .Dt LN 1 @@ -41,11 +41,15 @@ .Nd make links .Sh SYNOPSIS .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file .Op Ar target_file .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file ... .Ar target_dir .Nm link ==== //depot/projects/hammer/bin/ln/ln.c#7 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.34 2006/02/14 11:08:05 glebius Exp $"); +__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.36 2007/11/17 21:01:22 ru Exp $"); #include #include @@ -69,7 +69,7 @@ main(int argc, char *argv[]) { struct stat sb; - char *p, *sourcedir; + char *p, *targetdir; int ch, exitval; /* @@ -134,34 +134,34 @@ case 0: usage(); /* NOTREACHED */ - case 1: /* ln target */ + case 1: /* ln source */ exit(linkit(argv[0], ".", 1)); - case 2: /* ln target source */ + case 2: /* ln source target */ exit(linkit(argv[0], argv[1], 0)); default: ; } - /* ln target1 target2 directory */ - sourcedir = argv[argc - 1]; - if (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)) { + /* ln source1 source2 directory */ + targetdir = argv[argc - 1]; + if (hflag && lstat(targetdir, &sb) == 0 && S_ISLNK(sb.st_mode)) { /* * We were asked not to follow symlinks, but found one at * the target--simulate "not a directory" error */ errno = ENOTDIR; - err(1, "%s", sourcedir); + err(1, "%s", targetdir); } - if (stat(sourcedir, &sb)) - err(1, "%s", sourcedir); + if (stat(targetdir, &sb)) + err(1, "%s", targetdir); if (!S_ISDIR(sb.st_mode)) usage(); - for (exitval = 0; *argv != sourcedir; ++argv) - exitval |= linkit(*argv, sourcedir, 1); + for (exitval = 0; *argv != targetdir; ++argv) + exitval |= linkit(*argv, targetdir, 1); exit(exitval); } int -linkit(const char *target, const char *source, int isdir) +linkit(const char *source, const char *target, int isdir) { struct stat sb; const char *p; @@ -169,57 +169,57 @@ char path[PATH_MAX]; if (!sflag) { - /* If target doesn't exist, quit now. */ - if (stat(target, &sb)) { - warn("%s", target); + /* If source doesn't exist, quit now. */ + if (stat(source, &sb)) { + warn("%s", source); return (1); } /* Only symbolic links to directories. */ if (S_ISDIR(sb.st_mode)) { errno = EISDIR; - warn("%s", target); + warn("%s", source); return (1); } } /* - * If the source is a directory (and not a symlink if hflag), - * append the target's name. + * If the target is a directory (and not a symlink if hflag), + * append the source's name. */ if (isdir || - (lstat(source, &sb) == 0 && S_ISDIR(sb.st_mode)) || - (!hflag && stat(source, &sb) == 0 && S_ISDIR(sb.st_mode))) { - if ((p = strrchr(target, '/')) == NULL) - p = target; + (lstat(target, &sb) == 0 && S_ISDIR(sb.st_mode)) || + (!hflag && stat(target, &sb) == 0 && S_ISDIR(sb.st_mode))) { + if ((p = strrchr(source, '/')) == NULL) + p = source; else ++p; - if (snprintf(path, sizeof(path), "%s/%s", source, p) >= + if (snprintf(path, sizeof(path), "%s/%s", target, p) >= (ssize_t)sizeof(path)) { errno = ENAMETOOLONG; - warn("%s", target); + warn("%s", source); return (1); } - source = path; + target = path; } - exists = !lstat(source, &sb); + exists = !lstat(target, &sb); /* * If the file exists, then unlink it forcibly if -f was specified * and interactively if -i was specified. */ if (fflag && exists) { if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } else if (iflag && exists) { fflush(stdout); - fprintf(stderr, "replace %s? ", source); + fprintf(stderr, "replace %s? ", target); first = ch = getchar(); while(ch != '\n' && ch != EOF) @@ -230,23 +230,23 @@ } if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } /* Attempt the link. */ - if ((*linkf)(target, source)) { - warn("%s", source); + if ((*linkf)(source, target)) { + warn("%s", target); return (1); } if (vflag) - (void)printf("%s %c> %s\n", source, linkch, target); + (void)printf("%s %c> %s\n", target, linkch, source); return (0); } @@ -254,8 +254,8 @@ usage(void) { (void)fprintf(stderr, "%s\n%s\n%s\n", - "usage: ln [-Ffhinsv] source_file [target_file]", - " ln [-Ffhinsv] source_file ... target_dir", + "usage: ln [-s [-F]] [-f | -i] [-hnv] source_file [target_file]", + " ln [-s [-F]] [-f | -i] [-hnv] source_file ... target_dir", " link source_file target_file"); exit(1); } ==== //depot/projects/hammer/bin/sh/Makefile#9 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.4 (Berkeley) 5/5/95 -# $FreeBSD: src/bin/sh/Makefile,v 1.46 2006/04/17 17:55:11 schweikh Exp $ +# $FreeBSD: src/bin/sh/Makefile,v 1.47 2007/11/18 01:53:07 jb Exp $ PROG= sh INSTALLFLAGS= -S @@ -22,7 +22,7 @@ CFLAGS+=-DSHELL -I. -I${.CURDIR} # for debug: # CFLAGS+= -g -DDEBUG=2 -WARNS?= 3 +WARNS?= 2 WFORMAT=0 .PATH: ${.CURDIR}/bltin \ ==== //depot/projects/hammer/contrib/binutils/opcodes/ppc-dis.c#4 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/contrib/binutils/opcodes/ppc-dis.c,v 1.2 2007/11/23 23:54:44 jb Exp $ */ /* ppc-dis.c -- Disassemble PowerPC instructions Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. @@ -45,6 +46,7 @@ powerpc_dialect (struct disassemble_info *info) { int dialect = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC; + void *pd = &info->private_data; if (BFD_DEFAULT_TARGET_SIZE == 64) dialect |= PPC_OPCODE_64; @@ -91,7 +93,7 @@ dialect |= PPC_OPCODE_64; } - ((struct dis_private *) &info->private_data)->dialect = dialect; + ((struct dis_private *) pd)->dialect = dialect; return dialect; } @@ -100,7 +102,8 @@ int print_insn_big_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 1, dialect); } @@ -109,7 +112,8 @@ int print_insn_little_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 0, dialect); } ==== //depot/projects/hammer/contrib/csup/mux.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/mux.c,v 1.1.1.1 2006/03/03 04:11:28 mux Exp $ + * $FreeBSD: src/contrib/csup/mux.c,v 1.2 2007/11/18 00:25:18 jb Exp $ */ #include @@ -782,7 +782,7 @@ struct buf *buf; uint32_t winsize; uint16_t hdrsize, size, len; - int error, id, iovcnt, what; + int error, id, iovcnt, what = 0; m = (struct mux *)arg; again: ==== //depot/projects/hammer/contrib/gdb/gdb/i386fbsd-nat.c#3 (text+ko) ==== @@ -91,7 +91,7 @@ #ifdef KERN_PS_STRINGS { int mib[2]; - int ps_strings; + u_long ps_strings; size_t len; mib[0] = CTL_KERN; ==== //depot/projects/hammer/contrib/less/LICENSE#4 (text+ko) ==== @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2005 Mark Nudelman +Copyright (C) 1984-2007 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ==== //depot/projects/hammer/contrib/less/NEWS#7 (text+ko) ==== @@ -13,6 +13,17 @@ ====================================================================== + Major changes between "less" versions 409 and 416 + +* New --follow-name option makes F command follow the name of a file + rather than the file descriptor if an open file is renamed. + +* Make searching with -i/-I work correctly with non-ASCII text. + +* Fix DJGPP build. + +====================================================================== + Major changes between "less" versions 406 and 409 * Support CSI escape sequences, like SGR escape sequences. @@ -698,3 +709,4 @@ + ==== //depot/projects/hammer/contrib/less/README#7 (text+ko) ==== @@ -1,7 +1,7 @@ - Less, version 409 + Less, version 416 - This is the distribution of less, version 409, released 12 Oct 2007. + This is the distribution of less, version 416, released 22 Nov 2007. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or ==== //depot/projects/hammer/contrib/less/ch.c#6 (text+ko) ==== @@ -21,6 +21,12 @@ #include #endif +#if HAVE_STAT_INO +#include +extern dev_t curr_dev; +extern ino_t curr_ino; +#endif + typedef POSITION BLOCKNUM; public int ignore_eoi; @@ -98,6 +104,8 @@ extern int autobuf; extern int sigs; extern int secure; +extern int screen_trashed; +extern int follow_mode; extern constant char helpdata[]; extern constant int size_helpdata; extern IFILE curr_ifile; @@ -195,7 +203,7 @@ */ if (!(ch_flags & CH_CANSEEK)) return ('?'); - if (lseek(ch_file, (off_t)pos, 0) == BAD_LSEEK) + if (lseek(ch_file, (off_t)pos, SEEK_SET) == BAD_LSEEK) { error("seek error", NULL_PARG); clear_eol(); @@ -276,6 +284,25 @@ #endif #endif slept = TRUE; + +#if HAVE_STAT_INO + if (follow_mode == FOLLOW_NAME) + { + /* See whether the file's i-number has changed. + * If so, force the file to be closed and + * reopened. */ + struct stat st; + int r = stat(get_filename(curr_ifile), &st); + if (r == 0 && (st.st_ino != curr_ino || + st.st_dev != curr_dev)) + { + /* screen_trashed=2 causes + * make_display to reopen the file. */ + screen_trashed = 2; + return (EOI); + } + } +#endif } if (sigs) return (EOI); @@ -648,7 +675,7 @@ } #endif - if (lseek(ch_file, (off_t)0, 0) == BAD_LSEEK) + if (lseek(ch_file, (off_t)0, SEEK_SET) == BAD_LSEEK) { /* * Warning only; even if the seek fails for some reason, @@ -711,7 +738,7 @@ while (ch_bufhead != END_OF_CHAIN) { bp = ch_bufhead; - bp->next->prev = bp->prev;; + bp->next->prev = bp->prev; bp->prev->next = bp->next; free(bp); } @@ -737,7 +764,7 @@ return (0); } #endif - return (lseek(f, (off_t)1, 0) != BAD_LSEEK); + return (lseek(f, (off_t)1, SEEK_SET) != BAD_LSEEK); } /* ==== //depot/projects/hammer/contrib/less/command.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/command.c,v 1.8 2007/06/21 10:44:50 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/command.c,v 1.9 2007/11/16 22:24:31 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -558,6 +558,21 @@ } /* + * Discard any buffered file data. + */ + static void +clear_buffers() +{ + if (!(ch_getflags() & CH_CANSEEK)) + return; + ch_flush(); + clr_linenum(); +#if HILITE_SEARCH + clr_hilite(); +#endif +} + +/* * Make sure the screen is displayed. */ static void @@ -580,11 +595,20 @@ jump_loc(initial_scrpos.pos, initial_scrpos.ln); } else if (screen_trashed) { - int save_top_scroll; - save_top_scroll = top_scroll; + int save_top_scroll = top_scroll; + int save_ignore_eoi = ignore_eoi; top_scroll = 1; + ignore_eoi = 0; + if (screen_trashed == 2) + { + /* Special case used by ignore_eoi: re-open the input file + * and jump to the end of the file. */ + reopen_curr_ifile(); + jump_forw(); + } repaint(); top_scroll = save_top_scroll; + ignore_eoi = save_ignore_eoi; } } @@ -1115,7 +1139,10 @@ ignore_eoi = 1; hit_eof = 0; while (!sigs) + { + make_display(); forward(1, 0, 0); + } ignore_eoi = 0; /* * This gets us back in "F mode" after processing @@ -1154,14 +1181,7 @@ * Flush buffers, then repaint screen. * Don't flush the buffers on a pipe! */ - if (ch_getflags() & CH_CANSEEK) - { - ch_flush(); - clr_linenum(); -#if HILITE_SEARCH - clr_hilite(); -#endif - } + clear_buffers(); /* FALLTHRU */ case A_REPAINT: /* @@ -1263,7 +1283,8 @@ /* * Define abbreviation for a commonly used sequence below. */ -#define DO_SEARCH() if (number <= 0) number = 1; \ +#define DO_SEARCH() \ + if (number <= 0) number = 1; \ mca_search(); \ cmd_exec(); \ multi_search((char *)NULL, (int) number); ==== //depot/projects/hammer/contrib/less/configure#6 (text+ko) ==== @@ -3611,6 +3611,73 @@ # Checks for general libraries. +{ echo "$as_me:$LINENO: checking for tgoto in -ltinfo" >&5 +echo $ECHO_N "checking for tgoto in -ltinfo... $ECHO_C" >&6; } +if test "${ac_cv_lib_tinfo_tgoto+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltinfo $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Nov 26 22:09:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1052016A46C; Mon, 26 Nov 2007 22:09: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 C8F7016A41A for ; Mon, 26 Nov 2007 22:09: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 B5AAE13C455 for ; Mon, 26 Nov 2007 22:09: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 lAQM9OLu051456 for ; Mon, 26 Nov 2007 22:09:24 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQM9OS7051453 for perforce@freebsd.org; Mon, 26 Nov 2007 22:09:24 GMT (envelope-from jb@freebsd.org) Date: Mon, 26 Nov 2007 22:09:24 GMT Message-Id: <200711262209.lAQM9OS7051453@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 129590 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, 26 Nov 2007 22:09:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129590 Change 129590 by jb@jb_freebsd1 on 2007/11/26 22:08:54 IFopensolaris Affected files ... .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.addprobes.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/err.circlibdep.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/err.invalidlibdep.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdep.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepfullyconnected.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/dtrace/test/tst/common/usdt/tst.eliminate.ksh#1 branch .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_cc.c#5 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_impl.h#15 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#7 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_link.c#10 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_parser.h#3 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c#6 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dtrace.h#5 integrate Differences ... ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_cc.c#5 (text) ==== @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -21,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -117,6 +116,10 @@ DIF_TYPE_CTF, CTF_K_INTEGER, 0, 0, sizeof (uint64_t) }; +static void *dt_compile(dtrace_hdl_t *, int, dtrace_probespec_t, void *, + uint_t, int, char *const[], FILE *, const char *); + + /*ARGSUSED*/ static int dt_idreset(dt_idhash_t *dhp, dt_ident_t *idp, void *ignored) @@ -1429,18 +1432,26 @@ { const dtrace_pattr_t *pap; dt_probe_t *prp; + dt_provider_t *pvp; dt_ident_t *idp; char attrstr[8]; int err; /* - * If the provider name ends with what could be interpreted as a - * number, we assume that it's a pid and that we may need to - * dynamically create those probes for that process. On an error, - * dt_pid_create_probes() will set the error message and tag -- - * we just have to longjmp() out of here. + * Both kernel and pid based providers are allowed to have names + * ending with what could be interpreted as a number. We assume it's + * a pid and that we may need to dynamically create probes for + * that process if: + * + * (1) The provider doesn't exist, or, + * (2) The provider exists and has DTRACE_PRIV_PROC privilege. + * + * On an error, dt_pid_create_probes() will set the error message + * and tag -- we just have to longjmp() out of here. */ if (isdigit(pdp->dtpd_provider[strlen(pdp->dtpd_provider) - 1]) && + ((pvp = dt_provider_lookup(dtp, pdp->dtpd_provider)) == NULL || + pvp->pv_desc.dtvd_priv.dtpp_flags & DTRACE_PRIV_PROC) && dt_pid_create_probes(pdp, dtp, yypcb) != 0) { longjmp(yypcb->pcb_jmpbuf, EDT_COMPILER); } @@ -1719,21 +1730,220 @@ return (NULL); } +static void +dt_lib_depend_error(dtrace_hdl_t *dtp, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + dt_set_errmsg(dtp, NULL, NULL, NULL, 0, format, ap); + va_end(ap); +} + +int +dt_lib_depend_add(dtrace_hdl_t *dtp, dt_list_t *dlp, const char *arg) +{ + dt_lib_depend_t *dld; + const char *end; + + assert(arg != NULL); + + if ((end = strrchr(arg, '/')) == NULL) + return (dt_set_errno(dtp, EINVAL)); + + if ((dld = dt_zalloc(dtp, sizeof (dt_lib_depend_t))) == NULL) + return (-1); + + if ((dld->dtld_libpath = dt_alloc(dtp, MAXPATHLEN)) == NULL) { + dt_free(dtp, dld); + return (-1); + } + + (void) strlcpy(dld->dtld_libpath, arg, end - arg + 2); + if ((dld->dtld_library = strdup(arg)) == NULL) { + dt_free(dtp, dld->dtld_libpath); + dt_free(dtp, dld); + return (dt_set_errno(dtp, EDT_NOMEM)); + } + + dt_list_append(dlp, dld); + return (0); +} + +dt_lib_depend_t * +dt_lib_depend_lookup(dt_list_t *dld, const char *arg) +{ + dt_lib_depend_t *dldn; + + for (dldn = dt_list_next(dld); dldn != NULL; + dldn = dt_list_next(dldn)) { + if (strcmp(dldn->dtld_library, arg) == 0) + return (dldn); + } + + return (NULL); +} + +/* + * Go through all the library files, and, if any library dependencies exist for + * that file, add it to that node's list of dependents. The result of this + * will be a graph which can then be topologically sorted to produce a + * compilation order. + */ +static int +dt_lib_build_graph(dtrace_hdl_t *dtp) +{ + dt_lib_depend_t *dld, *dpld; + + for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + char *library = dld->dtld_library; + + for (dpld = dt_list_next(&dld->dtld_dependencies); dpld != NULL; + dpld = dt_list_next(dpld)) { + dt_lib_depend_t *dlda; + + if ((dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep, + dpld->dtld_library)) == NULL) { + dt_lib_depend_error(dtp, + "Invalid library dependency in %s: %s\n", + dld->dtld_library, dpld->dtld_library); + + return (dt_set_errno(dtp, EDT_COMPILER)); + } + + if ((dt_lib_depend_add(dtp, &dlda->dtld_dependents, + library)) != 0) { + return (-1); /* preserve dt_errno */ + } + } + } + return (0); +} + +static int +dt_topo_sort(dtrace_hdl_t *dtp, dt_lib_depend_t *dld, int *count) +{ + dt_lib_depend_t *dpld, *dlda, *new; + + dld->dtld_start = ++(*count); + + for (dpld = dt_list_next(&dld->dtld_dependents); dpld != NULL; + dpld = dt_list_next(dpld)) { + dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep, + dpld->dtld_library); + assert(dlda != NULL); + + if (dlda->dtld_start == 0 && + dt_topo_sort(dtp, dlda, count) == -1) + return (-1); + } + + if ((new = dt_zalloc(dtp, sizeof (dt_lib_depend_t))) == NULL) + return (-1); + + if ((new->dtld_library = strdup(dld->dtld_library)) == NULL) { + dt_free(dtp, new); + return (dt_set_errno(dtp, EDT_NOMEM)); + } + + new->dtld_start = dld->dtld_start; + new->dtld_finish = dld->dtld_finish = ++(*count); + dt_list_prepend(&dtp->dt_lib_dep_sorted, new); + + dt_dprintf("library %s sorted (%d/%d)\n", new->dtld_library, + new->dtld_start, new->dtld_finish); + + return (0); +} + +static int +dt_lib_depend_sort(dtrace_hdl_t *dtp) +{ + dt_lib_depend_t *dld, *dpld, *dlda; + int count = 0; + + if (dt_lib_build_graph(dtp) == -1) + return (-1); /* preserve dt_errno */ + + /* + * Perform a topological sort of the graph that hangs off + * dtp->dt_lib_dep. The result of this process will be a + * dependency ordered list located at dtp->dt_lib_dep_sorted. + */ + for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + if (dld->dtld_start == 0 && + dt_topo_sort(dtp, dld, &count) == -1) + return (-1); /* preserve dt_errno */; + } + + /* + * Check the graph for cycles. If an ancestor's finishing time is + * less than any of its dependent's finishing times then a back edge + * exists in the graph and this is a cycle. + */ + for (dld = dt_list_next(&dtp->dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + for (dpld = dt_list_next(&dld->dtld_dependents); dpld != NULL; + dpld = dt_list_next(dpld)) { + dlda = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted, + dpld->dtld_library); + assert(dlda != NULL); + + if (dlda->dtld_finish > dld->dtld_finish) { + dt_lib_depend_error(dtp, + "Cyclic dependency detected: %s => %s\n", + dld->dtld_library, dpld->dtld_library); + + return (dt_set_errno(dtp, EDT_COMPILER)); + } + } + } + + return (0); +} + +static void +dt_lib_depend_free(dtrace_hdl_t *dtp) +{ + dt_lib_depend_t *dld, *dlda; + + while ((dld = dt_list_next(&dtp->dt_lib_dep)) != NULL) { + while ((dlda = dt_list_next(&dld->dtld_dependencies)) != NULL) { + dt_list_delete(&dld->dtld_dependencies, dlda); + dt_free(dtp, dlda->dtld_library); + dt_free(dtp, dlda->dtld_libpath); + dt_free(dtp, dlda); + } + while ((dlda = dt_list_next(&dld->dtld_dependents)) != NULL) { + dt_list_delete(&dld->dtld_dependents, dlda); + dt_free(dtp, dlda->dtld_library); + dt_free(dtp, dlda->dtld_libpath); + dt_free(dtp, dlda); + } + dt_list_delete(&dtp->dt_lib_dep, dld); + dt_free(dtp, dld->dtld_library); + dt_free(dtp, dld->dtld_libpath); + dt_free(dtp, dld); + } + + while ((dld = dt_list_next(&dtp->dt_lib_dep_sorted)) != NULL) { + dt_list_delete(&dtp->dt_lib_dep_sorted, dld); + dt_free(dtp, dld->dtld_library); + dt_free(dtp, dld); + } +} + + /* - * Open all of the .d library files found in the specified directory and try to - * compile each one in order to cache its inlines and translators, etc. We - * silently ignore any missing directories and other files found therein. - * We only fail (and thereby fail dt_load_libs()) if we fail to compile a - * library and the error is something other than #pragma D depends_on. + * Open all of the .d library files found in the specified directory and + * compile each one in topological order to cache its inlines and translators, + * etc. We silently ignore any missing directories and other files found + * therein. We only fail (and thereby fail dt_load_libs()) if we fail to + * compile a library and the error is something other than #pragma D depends_on. * Dependency errors are silently ignored to permit a library directory to * contain libraries which may not be accessible depending on our privileges. - * - * Note that at present, no ordering is defined between library files found in - * the same directory: if cross-library dependencies are eventually required, - * we will need to extend the #pragma D depends_on directive with an additional - * class for libraries, and this function will need to create a graph of the - * various library pathnames and then perform a topological ordering using the - * dependency information before we attempt to compile any of them. */ static int dt_load_libs_dir(dtrace_hdl_t *dtp, const char *path) @@ -1745,12 +1955,15 @@ char fname[PATH_MAX]; dtrace_prog_t *pgp; FILE *fp; + void *rv; + dt_lib_depend_t *dld; if ((dirp = opendir(path)) == NULL) { dt_dprintf("skipping lib dir %s: %s\n", path, strerror(errno)); return (0); } + /* First, parse each file for library dependencies. */ while ((dp = readdir(dirp)) != NULL) { if ((p = strrchr(dp->d_name, '.')) == NULL || strcmp(p, ".d")) continue; /* skip any filename not ending in .d */ @@ -1765,25 +1978,67 @@ } dtp->dt_filetag = fname; + if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) + goto err; + + rv = dt_compile(dtp, DT_CTX_DPROG, + DTRACE_PROBESPEC_NAME, NULL, + DTRACE_C_EMPTY | DTRACE_C_CTL, 0, NULL, fp, NULL); + + if (rv != NULL && dtp->dt_errno && + (dtp->dt_errno != EDT_COMPILER || + dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) + goto err; + + if (dtp->dt_errno) + dt_dprintf("error parsing library %s: %s\n", + fname, dtrace_errmsg(dtp, dtrace_errno(dtp))); + + (void) fclose(fp); + dtp->dt_filetag = NULL; + } + + (void) closedir(dirp); + /* + * Finish building the graph containing the library dependencies + * and perform a topological sort to generate an ordered list + * for compilation. + */ + if (dt_lib_depend_sort(dtp) == -1) + goto err; + + for (dld = dt_list_next(&dtp->dt_lib_dep_sorted); dld != NULL; + dld = dt_list_next(dld)) { + + if ((fp = fopen(dld->dtld_library, "r")) == NULL) { + dt_dprintf("skipping library %s: %s\n", + dld->dtld_library, strerror(errno)); + continue; + } + + dtp->dt_filetag = dld->dtld_library; pgp = dtrace_program_fcompile(dtp, fp, DTRACE_C_EMPTY, 0, NULL); (void) fclose(fp); dtp->dt_filetag = NULL; if (pgp == NULL && (dtp->dt_errno != EDT_COMPILER || - dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) { - (void) closedir(dirp); - return (-1); /* preserve dt_errno */ - } + dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) + goto err; if (pgp == NULL) { - dt_dprintf("skipping library: %s\n", + dt_dprintf("skipping library %s: %s\n", + dld->dtld_library, dtrace_errmsg(dtp, dtrace_errno(dtp))); } else dt_program_destroy(dtp, pgp); } - (void) closedir(dirp); + dt_lib_depend_free(dtp); return (0); + +err: + dt_lib_depend_free(dtp); + return (-1); /* preserve dt_errno */ } /* @@ -1856,10 +2111,12 @@ pcb.pcb_context = context; pcb.pcb_token = context; - if (context == DT_CTX_DPROG) + if (context != DT_CTX_DPROG) + yybegin(YYS_EXPR); + else if (cflags & DTRACE_C_CTL) + yybegin(YYS_CONTROL); + else yybegin(YYS_CLAUSE); - else - yybegin(YYS_EXPR); if ((err = setjmp(yypcb->pcb_jmpbuf)) != 0) goto out; @@ -1885,6 +2142,9 @@ yybegin(YYS_DONE); + if (cflags & DTRACE_C_CTL) + goto out; + if (context != DT_CTX_DTYPE && DT_TREEDUMP_PASS(dtp, 1)) dt_node_printr(yypcb->pcb_root, stderr, 0); ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_impl.h#15 (text) ==== @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -187,6 +187,16 @@ char *dir_path; /* directory pathname */ } dt_dirpath_t; +typedef struct dt_lib_depend { + dt_list_t dtld_deplist; /* linked-list forward/back pointers */ + char *dtld_library; /* library name */ + char *dtld_libpath; /* library pathname */ + uint_t dtld_finish; /* completion time in tsort for lib */ + uint_t dtld_start; /* starting time in tsort for lib */ + dt_list_t dtld_dependencies; /* linked-list of lib dependencies */ + dt_list_t dtld_dependents; /* linked-list of lib dependents */ +} dt_lib_depend_t; + typedef uint32_t dt_version_t; /* encoded version (see below) */ struct dtrace_hdl { @@ -303,6 +313,8 @@ void *dt_bufarg; /* buffered handler argument */ dt_dof_t dt_dof; /* DOF generation buffers (see dt_dof.c) */ struct utsname dt_uts; /* uname(2) information for system */ + dt_list_t dt_lib_dep; /* scratch linked-list of lib dependencies */ + dt_list_t dt_lib_dep_sorted; /* dependency sorted library list */ }; /* @@ -632,6 +644,9 @@ dtrace_status_t *, dtrace_status_t *); extern int dt_handle_setopt(dtrace_hdl_t *, dtrace_setoptdata_t *); +extern int dt_lib_depend_add(dtrace_hdl_t *, dt_list_t *, const char *); +extern dt_lib_depend_t *dt_lib_depend_lookup(dt_list_t *, const char *); + extern dt_pcb_t *yypcb; /* pointer to current parser control block */ extern char yyintprefix; /* int token prefix for macros (+/-) */ extern char yyintsuffix[4]; /* int token suffix ([uUlL]*) */ ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#7 (text) ==== @@ -3,9 +3,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,7 +19,7 @@ * * CDDL HEADER END * - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -71,19 +70,21 @@ /* * We first define a set of labeled states for use in the D lexer and then a - * set of regular expressions to simplify things below. The lexer states are: + * set of regular expressions to simplify things below. The lexer states are: * * S0 - D program clause and expression lexing * S1 - D comments (i.e. skip everything until end of comment) * S2 - D program outer scope (probe specifiers and declarations) * S3 - D control line parsing (i.e. after ^# is seen but before \n) + * S4 - D control line scan (locate control directives only and invoke S3) */ %} -%e 1400 /* maximum nodes */ +%e 1500 /* maximum nodes */ %p 3700 /* maximum positions */ +%n 600 /* maximum states */ -%s S0 S1 S2 S3 +%s S0 S1 S2 S3 S4 RGX_AGG "@"[a-zA-Z_][0-9a-zA-Z_]* RGX_PSPEC [-$:a-zA-Z_.?*\\\[\]!][-$:0-9a-zA-Z_.`?*\\\[\]!]* @@ -445,15 +446,19 @@ } {RGX_INTERP} | -{RGX_INTERP} ; /* discard any #! lines */ +{RGX_INTERP} ; /* discard any #! lines */ {RGX_CTL} | -{RGX_CTL} { +{RGX_CTL} | +{RGX_CTL} { assert(yypragma == NULL); yypcb->pcb_cstate = (YYSTATE); BEGIN(S3); } +. ; /* discard */ +"\n" ; /* discard */ + "/" { int c, tok; @@ -678,8 +683,8 @@ return; /* nothing to do if we're in the state already */ if (yypcb->pcb_yystate == YYS_DEFINE) { - yypcb->pcb_list = yypcb->pcb_hold; - yypcb->pcb_hold = NULL; + yypcb->pcb_list = yypcb->pcb_hold; + yypcb->pcb_hold = NULL; } switch (state) { @@ -696,6 +701,9 @@ break; case YYS_DONE: break; + case YYS_CONTROL: + BEGIN(S4); + break; default: xyerror(D_UNKNOWN, "internal error -- bad yystate %d\n", state); } ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_link.c#10 (text) ==== @@ -1369,7 +1369,8 @@ dsym.st_name = istr; dsym.st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC); - dsym.st_other = ELF64_ST_VISIBILITY(STV_HIDDEN); + dsym.st_other = + ELF64_ST_VISIBILITY(STV_ELIMINATE); (void) gelf_update_sym(data_sym, isym, &dsym); r = (char *)data_str->d_buf + istr; ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_parser.h#3 (text) ==== @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -257,7 +256,8 @@ YYS_CLAUSE, /* lex/yacc state for finding program clauses */ YYS_DEFINE, /* lex/yacc state for parsing persistent definitions */ YYS_EXPR, /* lex/yacc state for parsing D expressions */ - YYS_DONE /* lex/yacc state for indicating parse tree is done */ + YYS_DONE, /* lex/yacc state for indicating parse tree is done */ + YYS_CONTROL /* lex/yacc state for parsing control lines */ } yystate_t; extern void dnerror(const dt_node_t *, dt_errtag_t, const char *, ...); ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c#6 (text) ==== @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,12 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" +#include #include #if defined(sun) #include @@ -202,7 +202,8 @@ /* * The #pragma depends_on directive can be used to express a dependency on a - * module or provider, which if not present will cause processing to abort. + * module, provider or library which if not present will cause processing to + * abort. */ static void dt_pragma_depends(const char *prname, dt_node_t *cnp) @@ -210,6 +211,7 @@ dtrace_hdl_t *dtp = yypcb->pcb_hdl; dt_node_t *nnp = cnp ? cnp->dn_list : NULL; int found; + dt_lib_depend_t *dld; if (cnp == NULL || nnp == NULL || cnp->dn_kind != DT_NODE_IDENT || nnp->dn_kind != DT_NODE_IDENT) { @@ -222,6 +224,30 @@ else if (strcmp(cnp->dn_string, "module") == 0) { dt_module_t *mp = dt_module_lookup_by_name(dtp, nnp->dn_string); found = mp != NULL && dt_module_getctf(dtp, mp) != NULL; + } else if (strcmp(cnp->dn_string, "library") == 0) { + + /* + * We have the file we are working on in dtp->dt_filetag + * so find that node and add the dependency in. + */ + if (yypcb->pcb_cflags & DTRACE_C_CTL) { + char lib[MAXPATHLEN]; + + dld = dt_lib_depend_lookup(&dtp->dt_lib_dep, + dtp->dt_filetag); + assert(dld != NULL); + + (void) snprintf(lib, MAXPATHLEN, "%s%s", + dld->dtld_libpath, nnp->dn_string); + if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies, + lib)) != 0) { + xyerror(D_PRAGMA_DEPEND, + "failed to add dependency %s:%s\n", + lib, + dtrace_errmsg(dtp, dtrace_errno(dtp))); + } + } + found = 1; } else { xyerror(D_PRAGMA_INVAL, "invalid class %s " "specified by #pragma %s\n", cnp->dn_string, prname); ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dtrace.h#5 (text) ==== @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -21,7 +20,7 @@ */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -114,7 +113,8 @@ #define DTRACE_C_ARGREF 0x0200 /* Do not require all macro args to be used */ #define DTRACE_C_DEFARG 0x0800 /* Use 0/"" as value for unspecified args */ #define DTRACE_C_NOLIBS 0x1000 /* Do not process D system libraries */ -#define DTRACE_C_MASK 0x1bff /* mask of all valid flags to dtrace_*compile */ +#define DTRACE_C_CTL 0x2000 /* Only process control directives */ +#define DTRACE_C_MASK 0x3bff /* mask of all valid flags to dtrace_*compile */ extern dtrace_prog_t *dtrace_program_strcompile(dtrace_hdl_t *, const char *, dtrace_probespec_t, uint_t, int, char *const []); From owner-p4-projects@FreeBSD.ORG Mon Nov 26 23:04:27 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 776E516A421; Mon, 26 Nov 2007 23:04: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 3014616A418 for ; Mon, 26 Nov 2007 23:04:27 +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 1C92D13C442 for ; Mon, 26 Nov 2007 23:04: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 lAQN4RUf054848 for ; Mon, 26 Nov 2007 23:04:27 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQN4Q7D054845 for perforce@freebsd.org; Mon, 26 Nov 2007 23:04:26 GMT (envelope-from jb@freebsd.org) Date: Mon, 26 Nov 2007 23:04:26 GMT Message-Id: <200711262304.lAQN4Q7D054845@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 129598 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, 26 Nov 2007 23:04:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=129598 Change 129598 by jb@jb_freebsd1 on 2007/11/26 23:03:40 IFC Affected files ... .. //depot/projects/dtrace/src/share/mk/sys.mk#17 integrate .. //depot/projects/dtrace/src/sys/boot/i386/gptboot/gptldr.S#2 integrate .. //depot/projects/dtrace/src/sys/boot/i386/pmbr/pmbr.s#2 integrate .. //depot/projects/dtrace/src/sys/kern/kern_mutex.c#15 integrate .. //depot/projects/dtrace/src/sys/kern/kern_rwlock.c#10 integrate .. //depot/projects/dtrace/src/sys/net80211/ieee80211_scan_sta.c#5 integrate Differences ... ==== //depot/projects/dtrace/src/share/mk/sys.mk#17 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)sys.mk 8.2 (Berkeley) 3/21/94 -# $FreeBSD: src/share/mk/sys.mk,v 1.96 2007/11/22 23:21:12 jb Exp $ +# $FreeBSD: src/share/mk/sys.mk,v 1.97 2007/11/26 21:46:21 jb Exp $ unix ?= We run FreeBSD, not UNIX. .FreeBSD ?= true @@ -36,9 +36,9 @@ .else CC ?= cc .if ${MACHINE_ARCH} == "arm" -CFLAGS ?= -O -pipe +CFLAGS ?= -O -fno-strict-aliasing -pipe .else -CFLAGS ?= -O2 -pipe +CFLAGS ?= -O2 -fno-strict-aliasing -pipe .endif .if defined(NO_STRICT_ALIASING) CFLAGS += -fno-strict-aliasing ==== //depot/projects/dtrace/src/sys/boot/i386/gptboot/gptldr.S#2 (text+ko) ==== @@ -27,7 +27,9 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/i386/gptboot/gptldr.S,v 1.1 2007/10/24 21:32:59 jhb Exp $ + * $FreeBSD: src/sys/boot/i386/gptboot/gptldr.S,v 1.2 2007/11/26 21:29:58 jhb Exp $ + * + * Partly from: src/sys/boot/i386/boot2/boot1.S 1.31 */ /* Memory Locations */ ==== //depot/projects/dtrace/src/sys/boot/i386/pmbr/pmbr.s#2 (text+ko) ==== @@ -27,7 +27,9 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/boot/i386/pmbr/pmbr.s,v 1.1 2007/10/24 21:32:59 jhb Exp $ +# $FreeBSD: src/sys/boot/i386/pmbr/pmbr.s,v 1.2 2007/11/26 21:29:59 jhb Exp $ +# +# Partly from: src/sys/boot/i386/mbr/mbr.s 1.7 # A 512 byte PMBR boot manager that looks for a FreeBSD boot GPT partition # and boots it. ==== //depot/projects/dtrace/src/sys/kern/kern_mutex.c#15 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_mutex.c,v 1.200 2007/11/18 14:43:52 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_mutex.c,v 1.201 2007/11/26 22:37:35 attilio Exp $"); #include "opt_adaptive_mutexes.h" #include "opt_ddb.h" @@ -335,6 +335,31 @@ m->lock_object.lo_name, (void *)m->mtx_lock, file, line); while (!_obtain_lock(m, tid)) { +#ifdef ADAPTIVE_MUTEXES + /* + * If the owner is running on another CPU, spin until the + * owner stops running or the state of the lock changes. + */ + v = m->mtx_lock; + if (v != MTX_UNOWNED) { + owner = (struct thread *)(v & ~MTX_FLAGMASK); +#ifdef ADAPTIVE_GIANT + if (TD_IS_RUNNING(owner)) { +#else + if (m != &Giant && TD_IS_RUNNING(owner)) { +#endif + if (LOCK_LOG_TEST(&m->lock_object, 0)) + CTR3(KTR_LOCK, + "%s: spinning on %p held by %p", + __func__, m, owner); + while (mtx_owner(m) == owner && + TD_IS_RUNNING(owner)) + cpu_spinwait(); + continue; + } + } +#endif + ts = turnstile_trywait(&m->lock_object); v = m->mtx_lock; @@ -350,37 +375,34 @@ MPASS(v != MTX_CONTESTED); +#ifdef ADAPTIVE_MUTEXES /* - * If the mutex isn't already contested and a failure occurs - * setting the contested bit, the mutex was either released - * or the state of the MTX_RECURSED bit changed. + * If the current owner of the lock is executing on another + * CPU quit the hard path and try to spin. */ - if ((v & MTX_CONTESTED) == 0 && - !atomic_cmpset_ptr(&m->mtx_lock, v, v | MTX_CONTESTED)) { + owner = (struct thread *)(v & ~MTX_FLAGMASK); +#ifdef ADAPTIVE_GIANT + if (TD_IS_RUNNING(owner)) { +#else + if (m != &Giant && TD_IS_RUNNING(owner)) { +#endif turnstile_cancel(ts); cpu_spinwait(); continue; } +#endif -#ifdef ADAPTIVE_MUTEXES /* - * If the current owner of the lock is executing on another - * CPU, spin instead of blocking. + * If the mutex isn't already contested and a failure occurs + * setting the contested bit, the mutex was either released + * or the state of the MTX_RECURSED bit changed. */ - owner = (struct thread *)(v & ~MTX_FLAGMASK); -#ifdef ADAPTIVE_GIANT - if (TD_IS_RUNNING(owner)) -#else - if (m != &Giant && TD_IS_RUNNING(owner)) -#endif - { + if ((v & MTX_CONTESTED) == 0 && + !atomic_cmpset_ptr(&m->mtx_lock, v, v | MTX_CONTESTED)) { turnstile_cancel(ts); - while (mtx_owner(m) == owner && TD_IS_RUNNING(owner)) { - cpu_spinwait(); - } + cpu_spinwait(); continue; } -#endif /* ADAPTIVE_MUTEXES */ /* * We definitely must sleep for this lock. @@ -589,17 +611,7 @@ if (LOCK_LOG_TEST(&m->lock_object, opts)) CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p contested", m); -#ifdef ADAPTIVE_MUTEXES - if (ts == NULL) { - _release_lock_quick(m); - if (LOCK_LOG_TEST(&m->lock_object, opts)) - CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p no sleepers", m); - turnstile_chain_unlock(&m->lock_object); - return; - } -#else MPASS(ts != NULL); -#endif turnstile_broadcast(ts, TS_EXCLUSIVE_QUEUE); _release_lock_quick(m); /* ==== //depot/projects/dtrace/src/sys/kern/kern_rwlock.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_rwlock.c,v 1.31 2007/11/18 14:43:52 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_rwlock.c,v 1.32 2007/11/26 22:37:35 attilio Exp $"); #include "opt_ddb.h" #include "opt_no_adaptive_rwlocks.h" @@ -290,6 +290,28 @@ continue; } +#ifdef ADAPTIVE_RWLOCKS + /* + * If the owner is running on another CPU, spin until + * the owner stops running or the state of the lock + * changes. + */ + owner = (struct thread *)RW_OWNER(x); + if (TD_IS_RUNNING(owner)) { + if (LOCK_LOG_TEST(&rw->lock_object, 0)) + CTR3(KTR_LOCK, "%s: spinning on %p held by %p", + __func__, rw, owner); +#ifdef LOCK_PROFILING_SHARED + lock_profile_obtain_lock_failed(&rw->lock_object, + &contested, &waittime); +#endif + while ((struct thread*)RW_OWNER(rw->rw_lock) == owner && + TD_IS_RUNNING(owner)) + cpu_spinwait(); + continue; + } +#endif + /* * Okay, now it's the hard case. Some other thread already * has a write lock, so acquire the turnstile lock so we can @@ -309,7 +331,20 @@ continue; } +#ifdef ADAPTIVE_RWLOCKS /* + * If the current owner of the lock is executing on another + * CPU quit the hard path and try to spin. + */ + owner = (struct thread *)RW_OWNER(x); + if (TD_IS_RUNNING(owner)) { + turnstile_cancel(ts); + cpu_spinwait(); + continue; + } +#endif + + /* * Ok, it's still a write lock. If the RW_LOCK_READ_WAITERS * flag is already set, then we can go ahead and block. If * it is not set then try to set it. If we fail to set it @@ -327,30 +362,7 @@ __func__, rw); } -#ifdef ADAPTIVE_RWLOCKS /* - * If the owner is running on another CPU, spin until - * the owner stops running or the state of the lock - * changes. - */ - owner = (struct thread *)RW_OWNER(x); - if (TD_IS_RUNNING(owner)) { - turnstile_cancel(ts); - if (LOCK_LOG_TEST(&rw->lock_object, 0)) - CTR3(KTR_LOCK, "%s: spinning on %p held by %p", - __func__, rw, owner); -#ifdef LOCK_PROFILING_SHARED - lock_profile_obtain_lock_failed(&rw->lock_object, - &contested, &waittime); -#endif - while ((struct thread*)RW_OWNER(rw->rw_lock)== owner && - TD_IS_RUNNING(owner)) - cpu_spinwait(); - continue; - } -#endif - - /* * We were unable to acquire the lock and the read waiters * flag is set, so we must block on the turnstile. */ @@ -532,6 +544,27 @@ rw->lock_object.lo_name, (void *)rw->rw_lock, file, line); while (!_rw_write_lock(rw, tid)) { +#ifdef ADAPTIVE_RWLOCKS + /* + * If the lock is write locked and the owner is + * running on another CPU, spin until the owner stops + * running or the state of the lock changes. + */ + v = rw->rw_lock; + owner = (struct thread *)RW_OWNER(v); + if (!(v & RW_LOCK_READ) && TD_IS_RUNNING(owner)) { + if (LOCK_LOG_TEST(&rw->lock_object, 0)) + CTR3(KTR_LOCK, "%s: spinning on %p held by %p", + __func__, rw, owner); + lock_profile_obtain_lock_failed(&rw->lock_object, + &contested, &waittime); + while ((struct thread*)RW_OWNER(rw->rw_lock) == owner && + TD_IS_RUNNING(owner)) + cpu_spinwait(); + continue; + } +#endif + ts = turnstile_trywait(&rw->lock_object); v = rw->rw_lock; @@ -545,6 +578,21 @@ continue; } +#ifdef ADAPTIVE_RWLOCKS + /* + * If the current owner of the lock is executing on another + * CPU quit the hard path and try to spin. + */ + if (!(v & RW_LOCK_READ)) { + owner = (struct thread *)RW_OWNER(v); + if (TD_IS_RUNNING(owner)) { + turnstile_cancel(ts); + cpu_spinwait(); + continue; + } + } +#endif + /* * If the lock was released by a writer with both readers * and writers waiting and a reader hasn't woken up and @@ -586,27 +634,6 @@ __func__, rw); } -#ifdef ADAPTIVE_RWLOCKS - /* - * If the lock is write locked and the owner is - * running on another CPU, spin until the owner stops - * running or the state of the lock changes. - */ - owner = (struct thread *)RW_OWNER(v); - if (!(v & RW_LOCK_READ) && TD_IS_RUNNING(owner)) { - turnstile_cancel(ts); - if (LOCK_LOG_TEST(&rw->lock_object, 0)) - CTR3(KTR_LOCK, "%s: spinning on %p held by %p", - __func__, rw, owner); - lock_profile_obtain_lock_failed(&rw->lock_object, - &contested, &waittime); - while ((struct thread*)RW_OWNER(rw->rw_lock)== owner && - TD_IS_RUNNING(owner)) - cpu_spinwait(); - continue; - } -#endif - /* * We were unable to acquire the lock and the write waiters * flag is set, so we must block on the turnstile. @@ -654,22 +681,7 @@ turnstile_chain_lock(&rw->lock_object); ts = turnstile_lookup(&rw->lock_object); -#ifdef ADAPTIVE_RWLOCKS - /* - * There might not be a turnstile for this lock if all of - * the waiters are adaptively spinning. In that case, just - * reset the lock to the unlocked state and return. - */ - if (ts == NULL) { - atomic_store_rel_ptr(&rw->rw_lock, RW_UNLOCKED); - if (LOCK_LOG_TEST(&rw->lock_object, 0)) - CTR2(KTR_LOCK, "%s: %p no sleepers", __func__, rw); - turnstile_chain_unlock(&rw->lock_object); - return; - } -#else MPASS(ts != NULL); -#endif /* * Use the same algo as sx locks for now. Prefer waking up shared @@ -686,42 +698,14 @@ * above. There is probably a potential priority inversion in * there that could be worked around either by waking both queues * of waiters or doing some complicated lock handoff gymnastics. - * - * Note that in the ADAPTIVE_RWLOCKS case, if both flags are - * set, there might not be any actual writers on the turnstile - * as they might all be spinning. In that case, we don't want - * to preserve the RW_LOCK_WRITE_WAITERS flag as the turnstile - * is going to go away once we wakeup all the readers. */ v = RW_UNLOCKED; if (rw->rw_lock & RW_LOCK_READ_WAITERS) { queue = TS_SHARED_QUEUE; -#ifdef ADAPTIVE_RWLOCKS - if (rw->rw_lock & RW_LOCK_WRITE_WAITERS && - !turnstile_empty(ts, TS_EXCLUSIVE_QUEUE)) - v |= RW_LOCK_WRITE_WAITERS; -#else v |= (rw->rw_lock & RW_LOCK_WRITE_WAITERS); -#endif } else queue = TS_EXCLUSIVE_QUEUE; -#ifdef ADAPTIVE_RWLOCKS - /* - * We have to make sure that we actually have waiters to - * wakeup. If they are all spinning, then we just need to - * disown the turnstile and return. - */ - if (turnstile_empty(ts, queue)) { - if (LOCK_LOG_TEST(&rw->lock_object, 0)) - CTR2(KTR_LOCK, "%s: %p no sleepers 2", __func__, rw); - atomic_store_rel_ptr(&rw->rw_lock, v); - turnstile_disown(ts); - turnstile_chain_unlock(&rw->lock_object); - return; - } -#endif - /* Wake up all waiters for the specific queue. */ if (LOCK_LOG_TEST(&rw->lock_object, 0)) CTR3(KTR_LOCK, "%s: %p waking up %s waiters", __func__, rw, @@ -772,19 +756,12 @@ * Try to switch from one reader to a writer again. This time * we honor the current state of the RW_LOCK_WRITE_WAITERS * flag. If we obtain the lock with the flag set, then claim - * ownership of the turnstile. In the ADAPTIVE_RWLOCKS case - * it is possible for there to not be an associated turnstile - * even though there are waiters if all of the waiters are - * spinning. + * ownership of the turnstile. */ v = rw->rw_lock & RW_LOCK_WRITE_WAITERS; success = atomic_cmpset_ptr(&rw->rw_lock, RW_READERS_LOCK(1) | v, tid | v); -#ifdef ADAPTIVE_RWLOCKS - if (success && v && turnstile_lookup(&rw->lock_object) != NULL) -#else if (success && v) -#endif turnstile_claim(ts); else turnstile_cancel(ts); @@ -837,26 +814,9 @@ * Downgrade from a write lock while preserving * RW_LOCK_WRITE_WAITERS and give up ownership of the * turnstile. If there are any read waiters, wake them up. - * - * For ADAPTIVE_RWLOCKS, we have to allow for the fact that - * all of the read waiters might be spinning. In that case, - * act as if RW_LOCK_READ_WAITERS is not set. Also, only - * preserve the RW_LOCK_WRITE_WAITERS flag if at least one - * writer is blocked on the turnstile. */ ts = turnstile_lookup(&rw->lock_object); -#ifdef ADAPTIVE_RWLOCKS - if (ts == NULL) - v &= ~(RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS); - else if (v & RW_LOCK_READ_WAITERS && - turnstile_empty(ts, TS_SHARED_QUEUE)) - v &= ~RW_LOCK_READ_WAITERS; - else if (v & RW_LOCK_WRITE_WAITERS && - turnstile_empty(ts, TS_EXCLUSIVE_QUEUE)) - v &= ~RW_LOCK_WRITE_WAITERS; -#else MPASS(ts != NULL); -#endif if (v & RW_LOCK_READ_WAITERS) turnstile_broadcast(ts, TS_SHARED_QUEUE); atomic_store_rel_ptr(&rw->rw_lock, RW_READERS_LOCK(1) | ==== //depot/projects/dtrace/src/sys/net80211/ieee80211_scan_sta.c#5 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_scan_sta.c,v 1.7 2007/11/23 05:58:37 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_scan_sta.c,v 1.8 2007/11/26 21:28:18 sam Exp $"); /* * IEEE 802.11 station scanning support. @@ -290,11 +290,12 @@ */ c = ieee80211_find_channel_byieee(ic, sp->bchan, sp->curchan->ic_flags); - if (c == NULL && ise->se_chan == NULL) { + if (c != NULL) { + ise->se_chan = c; + } else if (ise->se_chan == NULL) { /* should not happen, pick something */ - c = sp->curchan; + ise->se_chan = sp->curchan; } - ise->se_chan = c; } else ise->se_chan = sp->curchan; ise->se_fhdwell = sp->fhdwell; From owner-p4-projects@FreeBSD.ORG Mon Nov 26 23:26:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 10C1416A469; Mon, 26 Nov 2007 23:26:53 +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 CAED916A468 for ; Mon, 26 Nov 2007 23:26:52 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C70C13C4E3 for ; Mon, 26 Nov 2007 23:26:52 +0000 (UTC) (envelope-from gcooper@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 lAQNQqmL055900 for ; Mon, 26 Nov 2007 23:26:52 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQNQqC6055897 for perforce@freebsd.org; Mon, 26 Nov 2007 23:26:52 GMT (envelope-from gcooper@FreeBSD.org) Date: Mon, 26 Nov 2007 23:26:52 GMT Message-Id: <200711262326.lAQNQqC6055897@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129600 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, 26 Nov 2007 23:26:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=129600 Change 129600 by gcooper@shiina-ibook on 2007/11/26 23:26:41 Readability edits.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Nov 26 23:27:54 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72CE316A50A; Mon, 26 Nov 2007 23:27: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 27D1216A503 for ; Mon, 26 Nov 2007 23:27:54 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CB61913C46A for ; Mon, 26 Nov 2007 23:27:53 +0000 (UTC) (envelope-from gcooper@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 lAQNRrMs055984 for ; Mon, 26 Nov 2007 23:27:53 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQNRrgg055981 for perforce@freebsd.org; Mon, 26 Nov 2007 23:27:53 GMT (envelope-from gcooper@FreeBSD.org) Date: Mon, 26 Nov 2007 23:27:53 GMT Message-Id: <200711262327.lAQNRrgg055981@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129601 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, 26 Nov 2007 23:27:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=129601 Change 129601 by gcooper@shiina-ibook on 2007/11/26 23:27:30 Some functionality edits. Make the sandbox more fun to play with :). Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox_private.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Nov 26 23:28:55 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6ED1116A41A; Mon, 26 Nov 2007 23:28: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 34BB016A418 for ; Mon, 26 Nov 2007 23:28:55 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 221EA13C468 for ; Mon, 26 Nov 2007 23:28:55 +0000 (UTC) (envelope-from gcooper@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 lAQNStxY056019 for ; Mon, 26 Nov 2007 23:28:55 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAQNSsZn056016 for perforce@freebsd.org; Mon, 26 Nov 2007 23:28:54 GMT (envelope-from gcooper@FreeBSD.org) Date: Mon, 26 Nov 2007 23:28:54 GMT Message-Id: <200711262328.lAQNSsZn056016@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129602 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, 26 Nov 2007 23:28:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=129602 Change 129602 by gcooper@shiina-ibook on 2007/11/26 23:28:45 Apparently I need to add these first on my Mac client to see the changes. Interesting.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/archive_read_open_stream.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/macros.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_match.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_private.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_contents.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_lexer.l#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_parser.y#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_private.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_manifest.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_manifest_freebsd.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_private.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_files.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_ftp.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_local_freebsd.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_private.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_util.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkgfile.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Nov 27 00:50:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E280C16A418; Tue, 27 Nov 2007 00:50: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 35A7816A41A for ; Tue, 27 Nov 2007 00:50:23 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 001BD13C45D for ; Tue, 27 Nov 2007 00:50:22 +0000 (UTC) (envelope-from peter@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 lAR0oMh3069101 for ; Tue, 27 Nov 2007 00:50:22 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR0oMYU069098 for perforce@freebsd.org; Tue, 27 Nov 2007 00:50:22 GMT (envelope-from peter@freebsd.org) Date: Tue, 27 Nov 2007 00:50:22 GMT Message-Id: <200711270050.lAR0oMYU069098@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129605 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: Tue, 27 Nov 2007 00:50:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=129605 Change 129605 by peter@peter_melody on 2007/11/27 00:50:01 Checkpoint kernel side of cp_times diff. Parts unashamedly stolen from jhb or merged with his diffs - linprocfs, some layout and strategies. Unlike his, I'm keeping cp_time in pcpu rather than a tightly packed array for better cache behavior. Affected files ... .. //depot/projects/hammer/sys/compat/linprocfs/linprocfs.c#38 edit .. //depot/projects/hammer/sys/kern/kern_clock.c#42 edit .. //depot/projects/hammer/sys/sys/pcpu.h#14 edit .. //depot/projects/hammer/sys/sys/resource.h#13 edit Differences ... ==== //depot/projects/hammer/sys/compat/linprocfs/linprocfs.c#38 (text+ko) ==== @@ -374,19 +374,28 @@ static int linprocfs_dostat(PFS_FILL_ARGS) { + struct pcpu *pcpu; + long cp_time[CPUSTATES]; + long *cp; int i; + read_cpu_time(cp_time); sbuf_printf(sb, "cpu %ld %ld %ld %ld\n", T2J(cp_time[CP_USER]), T2J(cp_time[CP_NICE]), T2J(cp_time[CP_SYS] /*+ cp_time[CP_INTR]*/), T2J(cp_time[CP_IDLE])); - for (i = 0; i < mp_ncpus; ++i) + for (i = 0; i <= mp_maxid; ++i) { + if (CPU_ABSENT(i)) + continue; + pcpu = pcpu_find(i); + cp = pcpu->pc_cp_time; sbuf_printf(sb, "cpu%d %ld %ld %ld %ld\n", i, - T2J(cp_time[CP_USER]) / mp_ncpus, - T2J(cp_time[CP_NICE]) / mp_ncpus, - T2J(cp_time[CP_SYS]) / mp_ncpus, - T2J(cp_time[CP_IDLE]) / mp_ncpus); + T2J(cp[CP_USER]), + T2J(cp[CP_NICE]), + T2J(cp[CP_SYS] /*+ cp[CP_INTR]*/), + T2J(cp[CP_IDLE])); + } sbuf_printf(sb, "disk 0 0 0 0\n" "page %u %u\n" @@ -410,9 +419,11 @@ static int linprocfs_douptime(PFS_FILL_ARGS) { + long cp_time[CPUSTATES]; struct timeval tv; getmicrouptime(&tv); + read_cpu_time(cp_time); sbuf_printf(sb, "%lld.%02ld %ld.%02ld\n", (long long)tv.tv_sec, tv.tv_usec / 10000, T2S(cp_time[CP_IDLE]), T2J(cp_time[CP_IDLE]) % 100); ==== //depot/projects/hammer/sys/kern/kern_clock.c#42 (text+ko) ==== @@ -81,9 +81,6 @@ static void initclocks(void *dummy); SYSINIT(clocks, SI_SUB_CLOCKS, SI_ORDER_FIRST, initclocks, NULL) -/* Some of these don't belong here, but it's easiest to concentrate them. */ -long cp_time[CPUSTATES]; - /* Spin-lock protecting profiling statistics. */ static struct mtx time_lock; @@ -91,10 +88,14 @@ sysctl_kern_cp_time(SYSCTL_HANDLER_ARGS) { int error; + long cp_time[CPUSTATES]; #ifdef SCTL_MASK32 int i; unsigned int cp_time32[CPUSTATES]; +#endif + read_cpu_time(cp_time); +#ifdef SCTL_MASK32 if (req->flags & SCTL_MASK32) { if (!req->oldptr) return SYSCTL_OUT(req, 0, sizeof(cp_time32)); @@ -114,6 +115,67 @@ SYSCTL_PROC(_kern, OID_AUTO, cp_time, CTLTYPE_LONG|CTLFLAG_RD, 0,0, sysctl_kern_cp_time, "LU", "CPU time statistics"); + +static long empty[CPUSTATES]; + +static int +sysctl_kern_cp_times(SYSCTL_HANDLER_ARGS) +{ + struct pcpu *pcpu; + int error; + int i, c; + long *times; +#ifdef SCTL_MASK32 + unsigned int cp_time32[CPUSTATES]; +#endif + + if (!req->oldptr) { +#ifdef SCTL_MASK32 + if (req->flags & SCTL_MASK32) + return SYSCTL_OUT(req, 0, sizeof(cp_time32) * (mp_maxid + 1)); + else +#endif + return SYSCTL_OUT(req, 0, sizeof(long) * CPUSTATES * (mp_maxid + 1)); + } + for (error = 0, c = 0; error == 0 && c <= mp_maxid; c++) { + if (!CPU_ABSENT(c)) { + pcpu = pcpu_find(c); + times = pcpu->pc_cp_time; + } else { + times = empty; + } +#ifdef SCTL_MASK32 + if (req->flags & SCTL_MASK32) { + for (i = 0; i < CPUSTATES; i++) + cp_time32[i] = (unsigned int)times[i]; + error = SYSCTL_OUT(req, cp_time32, sizeof(cp_time32)); + } else +#endif + error = SYSCTL_OUT(req, times, sizeof(long) * CPUSTATES); + } + return error; +} + +SYSCTL_PROC(_kern, OID_AUTO, cp_times, CTLTYPE_LONG|CTLFLAG_RD, + 0,0, sysctl_kern_cp_times, "LU", "per-CPU time statistics"); + +void +read_cpu_time(long *cp_time) +{ + struct pcpu *pc; + int i, j; + + /* Sum up global cp_time[]. */ + bzero(cp_time, sizeof(long) * CPUSTATES); + for (i = 0; i <= mp_maxid; i++) { + if (CPU_ABSENT(i)) + continue; + pc = pcpu_find(i); + for (j = 0; j < CPUSTATES; j++) + cp_time[j] += pc->pc_cp_time[j]; + } +} + #ifdef SW_WATCHDOG #include @@ -405,11 +467,12 @@ struct thread *td; struct proc *p; long rss; + long *times; td = curthread; p = td->td_proc; - thread_lock_flags(td, MTX_QUIET); + times = (long *)PCPU_PTR(cp_time); if (usermode) { /* * Charge the time as appropriate. @@ -420,9 +483,9 @@ #endif td->td_uticks++; if (p->p_nice > NZERO) - atomic_add_long(&cp_time[CP_NICE], 1); + times[CP_NICE]++; else - atomic_add_long(&cp_time[CP_USER], 1); + times[CP_USER]++; } else { /* * Came from kernel mode, so we were: @@ -439,7 +502,7 @@ if ((td->td_pflags & TDP_ITHREAD) || td->td_intr_nesting_level >= 2) { td->td_iticks++; - atomic_add_long(&cp_time[CP_INTR], 1); + times[CP_INTR]++; } else { #ifdef KSE if (p->p_flag & P_SA) @@ -448,9 +511,9 @@ td->td_pticks++; td->td_sticks++; if (!TD_IS_IDLETHREAD(td)) - atomic_add_long(&cp_time[CP_SYS], 1); + times[CP_SYS]++; else - atomic_add_long(&cp_time[CP_IDLE], 1); + times[CP_IDLE]++; } } @@ -466,6 +529,7 @@ ru->ru_maxrss = rss; CTR4(KTR_SCHED, "statclock: %p(%s) prio %d stathz %d", td, td->td_name, td->td_priority, (stathz)?stathz:hz); + thread_lock_flags(td, MTX_QUIET); sched_clock(td); thread_unlock(td); } ==== //depot/projects/hammer/sys/sys/pcpu.h#14 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include +#include #include struct pcb; @@ -82,6 +83,7 @@ #endif PCPU_MD_FIELDS; struct vmmeter pc_cnt; /* VM stats counters */ + long pc_cp_time[CPUSTATES]; struct device *pc_device; /* ==== //depot/projects/hammer/sys/sys/resource.h#13 (text+ko) ==== @@ -154,7 +154,7 @@ #ifdef _KERNEL extern struct loadavg averunnable; -extern long cp_time[CPUSTATES]; +void read_cpu_time(long *cp_time); /* Writes array of CPUSTATES */ #else From owner-p4-projects@FreeBSD.ORG Tue Nov 27 01:16:52 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 906C016A420; Tue, 27 Nov 2007 01:16: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 4281C16A418 for ; Tue, 27 Nov 2007 01:16:52 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D30013C45B for ; Tue, 27 Nov 2007 01:16:52 +0000 (UTC) (envelope-from swise@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 lAR1GpOj071142 for ; Tue, 27 Nov 2007 01:16:51 GMT (envelope-from swise@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR1GpTm071139 for perforce@freebsd.org; Tue, 27 Nov 2007 01:16:51 GMT (envelope-from swise@FreeBSD.org) Date: Tue, 27 Nov 2007 01:16:51 GMT Message-Id: <200711270116.lAR1GpTm071139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to swise@FreeBSD.org using -f From: Steve Wise To: Perforce Change Reviews Cc: Subject: PERFORCE change 129606 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: Tue, 27 Nov 2007 01:16:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=129606 Change 129606 by swise@swise:vic10:iwarp on 2007/11/27 01:16:35 A sample kernel rdma app: krping. It loads but is untested. Affected files ... .. //depot/projects/iwarp/sys/contrib/rdma/krping/getopt.c#1 add .. //depot/projects/iwarp/sys/contrib/rdma/krping/getopt.h#1 add .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping.c#1 add .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping.h#1 add .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping_dev.c#1 add .. //depot/projects/iwarp/sys/modules/rdma/Makefile#5 edit .. //depot/projects/iwarp/sys/modules/rdma/krping/Makefile#1 add Differences ... ==== //depot/projects/iwarp/sys/modules/rdma/Makefile#5 (text+ko) ==== @@ -4,5 +4,6 @@ SUBDIR+= cma SUBDIR+= iwcm SUBDIR+= core +SUBDIR+= krping .include From owner-p4-projects@FreeBSD.ORG Tue Nov 27 03:40:26 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3004516A418; Tue, 27 Nov 2007 03:40:26 +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 AE64A16A419 for ; Tue, 27 Nov 2007 03:40:25 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 99A5D13C458 for ; Tue, 27 Nov 2007 03:40:25 +0000 (UTC) (envelope-from peter@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 lAR3ePw1079264 for ; Tue, 27 Nov 2007 03:40:25 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR3eP5x079261 for perforce@freebsd.org; Tue, 27 Nov 2007 03:40:25 GMT (envelope-from peter@freebsd.org) Date: Tue, 27 Nov 2007 03:40:25 GMT Message-Id: <200711270340.lAR3eP5x079261@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129607 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: Tue, 27 Nov 2007 03:40:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=129607 Change 129607 by peter@peter_melody on 2007/11/27 03:39:31 Do bad things to vmstat to report per-cpu numbers. I'm unsure if I want to go wide or multi-line in per-cpu mode. For now, this goes wide with the -C (cpu?) flag. This might change to sync with top. Multi-line output is another possibility. For now, just get *something*. Also, use humanize_number on memory columns when stdout is a tty. (bikeshed potential) Attempt to keep some sort of alignment in the cpu state columns. The 100% overflow makes a real mess and it compounds. Try to track when we overflowed and reduce padding in the next column when we can. doghouse# vmstat -C 1 procs memory page disk faults cpu0 cpu1 cpu2 cpu3 r b w avm fre flt re pi po fr sr ad0 in sy cs us sy id us sy id us sy id us sy id 1 0 0 64356K 1854M 45 0 0 0 44 0 0 8 195 395 0 0 100 3 1 97 8 2 90 13 3 84 1 0 0 64356K 1854M 0 0 0 0 0 0 0 6 410 363 0 0 100 67 16 17 0 0 100 14 3 83 1 0 0 64356K 1854M 0 0 0 0 0 0 0 4 411 359 0 0 100 81 19 0 0 0 100 0 0 100 1 0 0 64356K 1854M 0 0 0 0 0 0 0 5 403 360 1 2 96 76 14 10 5 2 93 0 0 100 1 0 0 64356K 1854M 0 0 0 0 0 0 0 11 403 375 14 2 83 60 14 26 0 0 100 8 2 90 1 0 0 64356K 1854M 0 0 0 0 0 0 3 10 407 384 0 0 100 71 16 13 0 0 100 11 2 87 1 0 0 64356K 1854M 0 0 0 0 0 0 0 6 403 351 0 0 100 0 0 100 0 0 100 80 20 0 1 0 0 64356K 1854M 0 0 0 0 0 0 0 13 413 367 0 0 100 0 0 100 0 0 100 81 19 0 Affected files ... .. //depot/projects/hammer/usr.bin/vmstat/Makefile#5 edit .. //depot/projects/hammer/usr.bin/vmstat/vmstat.c#26 edit Differences ... ==== //depot/projects/hammer/usr.bin/vmstat/Makefile#5 (text+ko) ==== @@ -3,7 +3,7 @@ PROG= vmstat MAN= vmstat.8 -DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBMEMSTAT} -LDADD= -ldevstat -lkvm -lmemstat +DPADD= ${LIBDEVSTAT} ${LIBKVM} ${LIBMEMSTAT} ${LIBUTIL} +LDADD= -ldevstat -lkvm -lmemstat -lutil .include ==== //depot/projects/hammer/usr.bin/vmstat/vmstat.c#26 (text+ko) ==== @@ -76,6 +76,7 @@ #include #include #include +#include static char da[] = "da"; @@ -137,6 +138,8 @@ static int winlines = 20; static int aflag; static int nflag; +static int Cflag; +static int hflag; static kvm_t *kd; @@ -149,6 +152,7 @@ #define ZMEMSTAT 0x40 static void cpustats(void); +static void Cpustats(int, u_long, int); static void devstats(void); static void doforkst(void); static void dointr(void); @@ -160,7 +164,7 @@ static void kreado(int, void *, size_t, size_t); static char *kgetstr(const char *); static void needhdr(int); -static void printhdr(void); +static void printhdr(int, u_long); static void usage(void); static long pct(long, long); @@ -180,7 +184,8 @@ memf = nlistf = NULL; interval = reps = todo = 0; maxshowdevs = 2; - while ((c = getopt(argc, argv, "ac:fiM:mN:n:p:stw:z")) != -1) { + hflag = isatty(1); + while ((c = getopt(argc, argv, "ac:CfhHiM:mN:n:p:stw:z")) != -1) { switch (c) { case 'a': aflag++; @@ -188,9 +193,18 @@ case 'c': reps = atoi(optarg); break; + case 'C': + Cflag++; + break; case 'f': todo |= FORKSTAT; break; + case 'h': + hflag = 1; + break; + case 'H': + hflag = 0; + break; case 'i': todo |= INTRSTAT; break; @@ -261,6 +275,8 @@ warnx("kvm_nlist: %s", kvm_geterr(kd)); exit(1); } + if (kd && Cflag) + errx(1, "Cannot use -C with crash dumps"); if (todo & VMSTAT) { struct winsize winsize; @@ -487,8 +503,71 @@ } } +/* Determine how many cpu columns, and what index they are in kern.cp_times */ +static int +getcpuinfo(u_long *maskp, int *maxidp) +{ + int maxcpu; + int maxid; + int ncpus; + int i, j; + int empty; + size_t size; + long *times; + u_long mask; + + if (kd != NULL) + errx(1, "not implemented"); + mask = 0; + ncpus = 0; + size = sizeof(maxcpu); + mysysctl("kern.smp.maxcpus", &maxcpu, &size, NULL, 0); + if (size != sizeof(maxcpu)) + errx(1, "sysctl kern.smp.maxcpus"); + size = sizeof(long) * maxcpu * CPUSTATES; + times = malloc(size); + if (times == NULL) + err(1, "malloc %zd bytes", size); + mysysctl("kern.cp_times", times, &size, NULL, 0); + maxid = (size / CPUSTATES / sizeof(long)) - 1; + for (i = 0; i <= maxid; i++) { + empty = 1; + for (j = 0; empty && j < CPUSTATES; j++) { + if (times[i * CPUSTATES + j] != 0) + empty = 0; + } + if (!empty) { + mask |= (1ul << i); + ncpus++; + } + } + if (maskp) + *maskp = mask; + if (maxidp) + *maxidp = maxid; + return (ncpus); +} + + +static void +prthuman(u_int64_t val, int size) +{ + char buf[10]; + int flags; + + if (size < 5 || size > 9) + errx(1, "doofus"); + flags = HN_B | HN_NOSPACE | HN_DECIMAL; + humanize_number(buf, size, val, "", HN_AUTOSCALE, flags); + printf("%*s", size, buf); +} + static int hz, hdrcnt; +static long *cur_cp_times; +static long *last_cp_times; +static size_t size_cp_times; + static void dovmstat(unsigned int interval, int reps) { @@ -496,6 +575,8 @@ time_t uptime, halfuptime; struct devinfo *tmp_dinfo; size_t size; + int ncpus, maxid; + u_long cpumask; uptime = getuptime(); halfuptime = uptime / 2; @@ -517,9 +598,17 @@ hz = clockrate.hz; } + if (Cflag) { + ncpus = getcpuinfo(&cpumask, &maxid); + size_cp_times = sizeof(long) * (maxid + 1) * CPUSTATES; + cur_cp_times = malloc(size_cp_times); + last_cp_times = malloc(size_cp_times); + bzero(cur_cp_times, size_cp_times); + bzero(last_cp_times, size_cp_times); + } for (hdrcnt = 1;;) { if (!--hdrcnt) - printhdr(); + printhdr(ncpus, cpumask); if (kd != NULL) { kread(X_CPTIME, cur.cp_time, sizeof(cur.cp_time)); } else { @@ -528,6 +617,12 @@ if (size != sizeof(cur.cp_time)) errx(1, "cp_time size mismatch"); } + if (Cflag) { + size = size_cp_times; + mysysctl("kern.cp_times", cur_cp_times, &size, NULL, 0); + if (size != size_cp_times) + errx(1, "cp_times mismatch"); + } tmp_dinfo = last.dinfo; last.dinfo = cur.dinfo; @@ -563,7 +658,7 @@ errx(1, "%s", devstat_errbuf); break; case 1: - printhdr(); + printhdr(ncpus, cpumask); break; default: break; @@ -579,8 +674,16 @@ total.t_rq - 1, total.t_dw + total.t_pw, total.t_sw); #define vmstat_pgtok(a) ((a) * (sum.v_page_size >> 10)) #define rate(x) (((x) + halfuptime) / uptime) /* round */ - (void)printf(" %7d %6d ", vmstat_pgtok(total.t_avm), - vmstat_pgtok(total.t_free)); + if (hflag) { + printf(" "); + prthuman(total.t_avm * (u_int64_t)sum.v_page_size, 7); + printf(" "); + prthuman(total.t_free * (u_int64_t)sum.v_page_size, 6); + printf(" "); + } else { + printf(" %7d ", vmstat_pgtok(total.t_avm)); + printf(" %6d ", vmstat_pgtok(total.t_free)); + } (void)printf("%5lu ", (unsigned long)rate(sum.v_vm_faults - osum.v_vm_faults)); (void)printf("%3lu ", @@ -596,11 +699,14 @@ (void)printf("%3lu ", (unsigned long)rate(sum.v_pdpages - osum.v_pdpages)); devstats(); - (void)printf("%4lu %4lu %4lu ", + (void)printf("%4lu %4lu %4lu", (unsigned long)rate(sum.v_intr - osum.v_intr), (unsigned long)rate(sum.v_syscall - osum.v_syscall), (unsigned long)rate(sum.v_swtch - osum.v_swtch)); - cpustats(); + if (Cflag) + Cpustats(ncpus, cpumask, maxid); + else + cpustats(); (void)printf("\n"); (void)fflush(stdout); if (reps >= 0 && --reps <= 0) @@ -620,7 +726,7 @@ } static void -printhdr(void) +printhdr(int ncpus, u_long cpumask) { int i, num_shown; @@ -630,7 +736,15 @@ (void)printf(" disks %*s", num_shown * 4 - 7, ""); else if (num_shown == 1) (void)printf("disk"); - (void)printf(" faults cpu\n"); + (void)printf(" faults "); + if (Cflag) { + for (i = 0; i < ncpus; i++) { + if (cpumask && (1ul << i)) + printf("cpu%-2d ", i); + } + printf("\n"); + } else + printf("cpu\n"); (void)printf(" r b w avm fre flt re pi po fr sr "); for (i = 0; i < num_devices; i++) if ((dev_select[i].selected) @@ -638,7 +752,13 @@ (void)printf("%c%c%d ", dev_select[i].device_name[0], dev_select[i].device_name[1], dev_select[i].unit_number); - (void)printf(" in sy cs us sy id\n"); + (void)printf(" in sy cs"); + if (Cflag) { + for (i = 0; i < ncpus; i++) + printf(" us sy id"); + printf("\n"); + } else + printf(" us sy id\n"); hdrcnt = winlines - 2; } @@ -809,9 +929,25 @@ } static void +percent(double pct, int *over) +{ + char buf[10]; + int l; + + l = snprintf(buf, sizeof(buf), "%.0f", pct); + if (l == 1 && *over) { + printf("%s", buf); + (*over)--; + } else + printf("%2s", buf); + if (l > 2) + (*over)++; +} + +static void cpustats(void) { - int state; + int state, over; double lpct, total; total = 0; @@ -821,11 +957,54 @@ lpct = 100.0 / total; else lpct = 0.0; - (void)printf("%2.0f ", (cur.cp_time[CP_USER] + - cur.cp_time[CP_NICE]) * lpct); - (void)printf("%2.0f ", (cur.cp_time[CP_SYS] + - cur.cp_time[CP_INTR]) * lpct); - (void)printf("%2.0f", cur.cp_time[CP_IDLE] * lpct); + over = 0; + printf(" "); + percent((cur.cp_time[CP_USER] + cur.cp_time[CP_NICE]) * lpct, &over); + printf(" "); + percent((cur.cp_time[CP_SYS] + cur.cp_time[CP_INTR]) * lpct, &over); + printf(" "); + percent(cur.cp_time[CP_IDLE] * lpct, &over); +} + +static void +Cpustats(int ncpus, u_long cpumask, int maxid) +{ + int state, i; + double lpct, total; + long tmp; + int over; + + /* devstats does this for cp_time */ + for (i = 0; i <= maxid; i++) { + if (cpumask && (1ul << i) == 0) + continue; + for (state = 0; state < CPUSTATES; ++state) { + tmp = cur_cp_times[i * CPUSTATES + state]; + cur_cp_times[i * CPUSTATES + state] -= last_cp_times[i * CPUSTATES + state]; + last_cp_times[i * CPUSTATES + state] = tmp; + } + } + + over = 0; + for (i = 0; i <= maxid; i++) { + if (cpumask && (1ul << i) == 0) + continue; + total = 0; + for (state = 0; state < CPUSTATES; ++state) + total += cur_cp_times[i * CPUSTATES + state]; + if (total) + lpct = 100.0 / total; + else + lpct = 0.0; + printf(" "); + percent((cur_cp_times[i * CPUSTATES + CP_USER] + + cur_cp_times[i * CPUSTATES + CP_NICE]) * lpct, &over); + printf(" "); + percent((cur_cp_times[i * CPUSTATES + CP_SYS] + + cur_cp_times[i * CPUSTATES + CP_INTR]) * lpct, &over); + printf(" "); + percent(cur_cp_times[i * CPUSTATES + CP_IDLE] * lpct, &over); + } } static void From owner-p4-projects@FreeBSD.ORG Tue Nov 27 06:36:38 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D610916A4CB; Tue, 27 Nov 2007 06:36: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 7298016A417 for ; Tue, 27 Nov 2007 06:36:37 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5ABE313C459 for ; Tue, 27 Nov 2007 06:36:37 +0000 (UTC) (envelope-from kmacy@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 lAR6abrF003060 for ; Tue, 27 Nov 2007 06:36:37 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR6abVJ003056 for perforce@freebsd.org; Tue, 27 Nov 2007 06:36:37 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 27 Nov 2007 06:36:37 GMT Message-Id: <200711270636.lAR6abVJ003056@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129611 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: Tue, 27 Nov 2007 06:36:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=129611 Change 129611 by kmacy@kmacy:storage:toestack on 2007/11/27 06:36:32 make locking a bit more consistent fix socket buffer accounting in t3_push_frames by only skipping the last buffer if sndptroff is not zero Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#27 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#27 (text+ko) ==== @@ -170,10 +170,13 @@ send_or_defer(struct socket *so, struct tcpcb *tp, struct mbuf *m, int through_l2t) { struct toepcb *toep = tp->t_toe; + - if (__predict_false(tp->t_state == TCPS_SYN_SENT)) + if (__predict_false(tp->t_state == TCPS_SYN_SENT)) { + INP_LOCK(tp->t_inpcb); mbufq_tail(&toep->out_of_order_queue, m); // defer - else if (through_l2t) + INP_UNLOCK(tp->t_inpcb); + } else if (through_l2t) l2t_send(T3C_DEV(so), m, toep->tp_l2t); // send through L2T else cxgb_ofld_send(T3C_DEV(so), m); // send directly @@ -207,11 +210,12 @@ struct toepcb *toep = tp->t_toe; struct tx_data_wr *req; + INP_LOCK_ASSERT(tp->t_inpcb); + req = mtod(m, struct tx_data_wr *); m->m_len = sizeof(*req); req->wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA)); req->wr_lo = htonl(V_WR_TID(toep->tp_tid)); - req->sndseq = htonl(tp->snd_nxt); /* len includes the length of any HW ULP additions */ req->len = htonl(len); req->param = htonl(V_TX_PORT(toep->tp_l2t->smt_idx)); @@ -220,7 +224,7 @@ V_TX_URG(/* skb_urgent(skb) */ 0 ) | V_TX_SHOVE((!(tp->t_flags & TF_MORETOCOME) && (tail ? 0 : 1)))); - + req->sndseq = htonl(tp->snd_nxt); if (__predict_false((toep->tp_flags & TP_DATASENT) == 0)) { req->flags |= htonl(V_TX_ACK_PAGES(2) | F_TX_INIT | V_TX_CPU_IDX(toep->tp_qset)); @@ -259,16 +263,18 @@ return (0); } + INP_LOCK_ASSERT(tp->t_inpcb); + SOCKBUF_LOCK(&so->so_snd); d = TOM_DATA(TOE_DEV(so)); cdev = d->cdev; last = tail = so->so_snd.sb_sndptr ? so->so_snd.sb_sndptr : so->so_snd.sb_mb; total_bytes = 0; - printf("tail=%p snd.cc=%d tp_last=%p\n", tail, so->so_snd.sb_cc, - toep->tp_m_last); + DPRINTF("wr_avail=%d tail=%p snd.cc=%d tp_last=%p\n", + toep->tp_wr_avail, tail, so->so_snd.sb_cc, toep->tp_m_last); - if (last && toep->tp_m_last == last) { + if (last && toep->tp_m_last == last && so->so_snd.sb_sndptroff != 0) { KASSERT(tail, ("sbdrop error")); last = tail = tail->m_next; } @@ -279,16 +285,15 @@ return (0); } + toep->tp_m_last = NULL; while (toep->tp_wr_avail && (tail != NULL)) { - - count = bytes = 0; if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) { SOCKBUF_UNLOCK(&so->so_snd); return (0); } - - while ((mbuf_wrs[count + 1] <= toep->tp_wr_avail) && (tail != NULL) && (count < TX_MAX_SEGS)) { + while ((mbuf_wrs[count + 1] <= toep->tp_wr_avail) + && (tail != NULL) && (count < TX_MAX_SEGS)) { bytes += tail->m_len; count++; last = tail; @@ -360,8 +365,6 @@ return (total_bytes); } - - /* * Close a connection by sending a CPL_CLOSE_CON_REQ message. Cannot fail * under any circumstances. We take the easy way out and always queue the @@ -475,6 +478,8 @@ if (!((tp->t_state == TCPS_ESTABLISHED) || (tp->t_state == TCPS_FIN_WAIT_1) || (tp->t_state == TCPS_FIN_WAIT_2))) return; + INP_LOCK_ASSERT(tp->t_inpcb); + so = tp->t_inpcb->inp_socket; SOCKBUF_LOCK(&so->so_rcv); read = toep->tp_enqueued_bytes - so->so_rcv.sb_cc; @@ -764,7 +769,7 @@ { struct toepcb *toep = sototoep(so); toepcb_hold(toep); - + cxgb_insert_tid(d->cdev, d->client, toep, tid); } @@ -843,6 +848,7 @@ if (!cdev) return; + INP_LOCK_ASSERT(tp->t_inpcb); toep->tp_qset = 0; t3_release_ddp_resources(so); @@ -945,8 +951,9 @@ { struct tcpcb *tp = sototcpcb(so); struct t3c_data *td = T3C_DATA(TOM_DATA(dev)->cdev); + + SOCK_LOCK_ASSERT(so); - printf("initializing offload socket\n"); so->so_rcv.sb_flags |= SB_TOE; so->so_snd.sb_flags |= SB_TOE; @@ -1070,7 +1077,8 @@ fail_act_open(struct socket *so, int errno) { struct tcpcb *tp = sototcpcb(so); - + + INP_LOCK_ASSERT(tp->t_inpcb); t3_release_offload_resources(so); tcp_drop(tp, errno); @@ -1193,18 +1201,23 @@ e = t3_l2t_get(d->cdev, dst, egress_ifp); if (!e) goto free_tid; - + + INP_LOCK_ASSERT(inp); m = m_gethdr(MT_DATA, M_WAITOK); #if 0 m->m_toe.mt_toepcb = tp->t_toe; set_arp_failure_handler((struct mbuf *)m, act_open_req_arp_failure); -#endif +#endif + SOCK_LOCK(so); + init_offload_socket(so, tdev, atid, e, dst, toep); install_offload_ops(so); mk_act_open_req(so, m, atid, e); + SOCK_UNLOCK(so); + soisconnecting(so); toep = tp->t_toe; m_set_toep(m, tp->t_toe); @@ -1239,9 +1252,9 @@ int mode = CPL_ABORT_SEND_RST; struct mbuf *m; + INP_LOCK_ASSERT(tp->t_inpcb); if (__predict_false((toep->tp_flags & TP_ABORT_SHUTDOWN) || !TOE_DEV(so))) return; - toep->tp_flags |= (TP_ABORT_RPL_PENDING|TP_ABORT_SHUTDOWN); /* Purge the send queue so we don't send anything after an abort. */ @@ -1260,6 +1273,7 @@ req->rsvd0 = htonl(tp->snd_nxt); req->rsvd1 = !(toep->tp_flags & TP_DATASENT); req->cmd = mode; + INP_LOCK_ASSERT(tp->t_inpcb); if (tp->t_state == TCPS_SYN_SENT) mbufq_tail(&toep->out_of_order_queue, m); // defer else @@ -1440,21 +1454,7 @@ #endif SOCKBUF_LOCK(&so->so_rcv); if (sb_notify(&so->so_rcv)) - printf("rx_data so=%p flags=0x%x len=%d\n", so, so->so_rcv.sb_flags, m->m_pkthdr.len); - if (m->m_pkthdr.len == 80) { - int i; - uint64_t *data; - - data = mtod(m, uint64_t *); - printf("80 byte packet:\n"); - for (i = 0; i < 10; i++, data++) { - uint8_t *dp = (uint8_t *)data; - - printf("%02x%02x%02x%02x%02x%02x%02x%02x\n", - dp[0],dp[1],dp[2],dp[3],dp[4],dp[5],dp[6],dp[7]); - } - } - + DPRINTF("rx_data so=%p flags=0x%x len=%d\n", so, so->so_rcv.sb_flags, m->m_pkthdr.len); sbappendstream_locked(&so->so_rcv, m); INP_UNLOCK(tp->t_inpcb); @@ -1695,6 +1695,7 @@ { struct tcpcb *tp = sototcpcb(so); + INP_LOCK_ASSERT(tp->t_inpcb); /* * Bump rcv_nxt for the peer FIN. We don't do this at the time we * process peer_close because we don't want to carry the peer FIN in @@ -1709,7 +1710,6 @@ tcp_twstart(tp); } - /* * Handle a peer FIN. */ @@ -1741,6 +1741,8 @@ sk->sk_shutdown |= RCV_SHUTDOWN; sock_set_flag(so, SOCK_DONE); #endif + INP_INFO_WLOCK(&tcbinfo); + INP_LOCK(tp->t_inpcb); if (TCPS_HAVERCVDFIN(tp->t_state) == 0) socantrcvmore(so); switch (tp->t_state) { @@ -1765,11 +1767,7 @@ */ t3_release_offload_resources(so); if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - INP_INFO_WLOCK(&tcbinfo); - INP_LOCK(tp->t_inpcb); tcp_close(tp); - INP_INFO_WUNLOCK(&tcbinfo); - INP_UNLOCK(tp->t_inpcb); } else enter_timewait(so); break; @@ -1778,6 +1776,8 @@ "%s: TID %u received PEER_CLOSE in bad state %d\n", TOE_DEV(so)->name, toep->tp_tid, tp->t_state); } + INP_INFO_WUNLOCK(&tcbinfo); + INP_UNLOCK(tp->t_inpcb); if (!dead) { printf("waking up waiters on %p rcv_notify=%d flags=0x%x\n", so, sb_notify(&so->so_rcv), so->so_rcv.sb_flags); @@ -1831,16 +1831,14 @@ if (!is_t3a(TOE_DEV(so)) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) goto out; + INP_INFO_WLOCK(&tcbinfo); + INP_LOCK(inp); switch (tp->t_state) { case TCPS_CLOSING: /* see FIN_WAIT2 case in do_peer_fin */ t3_release_offload_resources(so); if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - INP_INFO_WLOCK(&tcbinfo); - INP_LOCK(inp); tp = tcp_close(tp); - INP_INFO_WUNLOCK(&tcbinfo); - if (tp) - INP_UNLOCK(inp); + } else enter_timewait(so); break; @@ -1851,13 +1849,7 @@ * late, this close_con_rpl is the actual last message. */ t3_release_offload_resources(so); - INP_INFO_WLOCK(&tcbinfo); - INP_LOCK(inp); tp = tcp_close(tp); - INP_INFO_WUNLOCK(&tcbinfo); - if (tp) - INP_UNLOCK(inp); - break; case TCPS_FIN_WAIT_1: #ifdef notyet @@ -1885,6 +1877,9 @@ TOE_DEV(so)->name, toep->tp_tid, tp->t_state); } + INP_INFO_WUNLOCK(&tcbinfo); + if (tp) + INP_UNLOCK(inp); out: m_free(m); } @@ -1922,7 +1917,8 @@ "process_abort_rpl: GTS rpl pending %d", sock_flag(sk, ABORT_RPL_PENDING)); #endif - + INP_LOCK_ASSERT(tp->t_inpcb); + if (toep->tp_flags & TP_ABORT_RPL_PENDING) { if (!(toep->tp_flags & TP_ABORT_RPL_RCVD) && !is_t3a(TOE_DEV(so))) toep->tp_flags |= TP_ABORT_RPL_RCVD; @@ -1968,7 +1964,6 @@ } toep = (struct toepcb *)ctx; - so = toeptoso(toep); /* * Sometimes we've already closed the socket, e.g., a post-close @@ -1977,9 +1972,10 @@ * but FW turns the ABORT_REQ into a regular one and so we get * ABORT_RPL_RSS with status 0 and no socket. Only on T3A. */ - if (!so) + if (!toep) goto discard; + so = toeptoso(toep); toepcb_hold(toep); process_abort_rpl(so, m); toepcb_release(toep); @@ -2161,7 +2157,8 @@ const struct cpl_abort_req_rss *req = cplhdr(m); struct tcpcb *tp = sototcpcb(so); struct toepcb *toep = tp->t_toe; - + + INP_LOCK_ASSERT(tp->t_inpcb); if ((toep->tp_flags & TP_ABORT_REQ_RCVD) == 0) { toep->tp_flags |= (TP_ABORT_REQ_RCVD|TP_ABORT_SHUTDOWN); m_free(m); @@ -2745,6 +2742,8 @@ const struct t3c_data *td = T3C_DATA(T3C_DEV(so)); struct tcpcb *tp = sototcpcb(so); struct toepcb *toep = tp->t_toe; + + INP_LOCK_ASSERT(tp->t_inpcb); toep->tp_mss_clamp = td->mtus[G_TCPOPT_MSS(opt)] - 40; tp->t_flags |= G_TCPOPT_TSTAMP(opt) ? TF_RCVD_TSTMP : 0; @@ -2884,6 +2883,7 @@ } tp = sototcpcb(so); + INP_LOCK(tp->t_inpcb); so->so_snd.sb_flags |= SB_TOE; so->so_rcv.sb_flags |= SB_TOE; toep->tp_tp = tp; @@ -2906,7 +2906,7 @@ make_established(so, ntohl(req->snd_isn), ntohs(req->tcp_opt)); INP_INFO_WUNLOCK(&tcbinfo); - + INP_UNLOCK(tp->t_inpcb); soisconnected(so); #ifdef notyet @@ -2954,6 +2954,7 @@ printf("fixup_and_send_ofo\n"); + INP_LOCK_ASSERT(tp->t_inpcb); while ((m = mbufq_dequeue(&toep->out_of_order_queue)) != NULL) { /* * A variety of messages can be waiting but the fields we'll @@ -3192,9 +3193,7 @@ static void t3_reset_listen_child(struct socket *child) { - SOCK_LOCK(child); t3_send_reset(child); - SOCK_UNLOCK(child); } /* From owner-p4-projects@FreeBSD.ORG Tue Nov 27 06:41:43 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A92516A41B; Tue, 27 Nov 2007 06:41: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 2744F16A419 for ; Tue, 27 Nov 2007 06:41:43 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1344413C4CC for ; Tue, 27 Nov 2007 06:41:43 +0000 (UTC) (envelope-from zhouzhouyi@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 lAR6fgso003249 for ; Tue, 27 Nov 2007 06:41:42 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR6fg96003246 for perforce@freebsd.org; Tue, 27 Nov 2007 06:41:42 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Tue, 27 Nov 2007 06:41:42 GMT Message-Id: <200711270641.lAR6fg96003246@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 129612 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: Tue, 27 Nov 2007 06:41:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=129612 Change 129612 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/27 06:41:03 close the other end of pipe before doing open Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#4 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/pipe/00.t#3 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#4 (text+ko) ==== @@ -191,6 +191,7 @@ if (i == 0) break; + if (i < 0) { perror("read"); close(logfd); @@ -204,7 +205,7 @@ break; } - close(logfd); + { mac_t label; @@ -232,7 +233,9 @@ for (i = 0; i < 2; i++) write_frame(fd[1], buf, sizeof buf); + close(fd[1]); + close(logfd); machookmatch(macconf_file, pid); ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/pipe/00.t#3 (text+ko) ==== @@ -1,61 +1,65 @@ #!/bin/sh -# $FreeBSD: src/tools/regression/mactest/tests/pipe/00.t,v 1.2 2007/01/25 20:50:02 zhouzhouyi Exp $ +# $FreeBSD$ -desc="manipulate fifo files" +desc="manipulate pipe" dir=`dirname $0` . ${dir}/../misc.sh -echo "1..2" +case "${os}:${fs}" in +FreeBSD:UFS) + mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` + mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` + mac_test_support=`sysctl -n security.mac.test.pseudoinit 2>/dev/null` + if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] && + [ "${mac_test_support}" != "" ]; then + #turn off all the switches -for i in `sysctl security.mac | grep "\.enabled"| - sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do -sysctl ${i}=0 -done + for i in `sysctl security.mac | grep "\.enabled"| + sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do + sysctl ${i}=0 >/dev/null + done -mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` -mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` + echo "1..10" -if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] ; then - dvplabel=`getfmac ".."| sed 's/\(\.\.:\ \)\([a-z\,\/]*\)/\2/`; + + dvplabel=`getfmac ".."| sed 's/\(\.\.:\ \)\([a-z\,\/]*\)/\2/`; + if [ -f ${mactest_conf} ]; then + rm ${mactest_conf} + fi + touch ${mactest_conf} - if [ -f ${mactest_conf} ]; then - rm ${mactest_conf} - fi - touch ${mactest_conf} + sysctl security.mac.mls.enabled=1 >/dev/null -############################################################# - t=`sysctl security.mac.mls.enabled=1` - echo "enforcing mac/mls!" - t=`sysctl security.mac.mls.revocation_enabled=1` - echo "enabling revoking" #case 1: ioctl, read, write low pipe with low process - bizarretestexpect ${pipe_io} "" "" -r "mls/low(low-high)" -w "mls/low(low-high)" -f ${mactest_conf} + bizarretestexpect ${pipe_io} "" "" -r "mls/low(low-high)" -w "mls/low(low-high)" -f ${mactest_conf} #case 2: non-trival processing of pipe - echo -n "pid = -2 mac_test_check_pipe_ioctl:" > ${mactest_conf} - echo "biba/high(low-high),mls/low(low-high) biba/high,mls/low" >> ${mactest_conf} - echo -n "pid = -2 mac_test_check_pipe_relabel:" >> ${mactest_conf} - echo "biba/high(low-high),mls/low(low-high) biba/high,mls/low biba/,mls/6" >> ${mactest_conf} - echo -n "pid = -2 mac_test_relabel_pipe:" >> ${mactest_conf} - echo "biba/high(low-high),mls/low(low-high) biba/high,mls/6 biba/,mls/6" >> ${mactest_conf} - echo -n "pid = -2 mac_test_check_pipe_read:" >> ${mactest_conf} - echo "biba/high(low-high),mls/9(low-high) biba/high,mls/6" >> ${mactest_conf} - echo -n "pid = -2 mac_test_check_pipe_poll:" >> ${mactest_conf} - echo "biba/high(low-high),mls/6(low-high) biba/high,mls/6" >> ${mactest_conf} - echo -n "pid = -2 mac_test_check_pipe_write:" >> ${mactest_conf} - echo "biba/high(low-high),mls/6(low-high) biba/high,mls/6" >> ${mactest_conf} - bizarretestexpect ${pipe_io} "" "" -r "mls/9(low-high)" -w "mls/6(low-high)" -p "mls/6" -f ${mactest_conf} + echo -n "pid = -2 pipe_check_ioctl:" > ${mactest_conf} + echo "biba/high(low-high),mls/low(low-high) biba/high,mls/low" >> ${mactest_conf} + echo -n "pid = -2 pipe_check_relabel:" >> ${mactest_conf} + echo "biba/high(low-high),mls/low(low-high) biba/high,mls/low biba/,mls/6" >> ${mactest_conf} + echo -n "pid = -2 pipe_relabel:" >> ${mactest_conf} + echo "biba/high(low-high),mls/low(low-high) biba/high,mls/6 biba/,mls/6" >> ${mactest_conf} + echo -n "pid = -2 pipe_check_read:" >> ${mactest_conf} + echo "biba/high(low-high),mls/9(low-high) biba/high,mls/6" >> ${mactest_conf} + echo -n "pid = -2 pipe_check_poll:" >> ${mactest_conf} + echo "biba/high(low-high),mls/6(low-high) biba/high,mls/6" >> ${mactest_conf} + echo -n "pid = -2 pipe_check_write:" >> ${mactest_conf} + echo "biba/high(low-high),mls/6(low-high) biba/high,mls/6" >> ${mactest_conf} + bizarretestexpect ${pipe_io} "" "" -r "mls/9(low-high)" -w "mls/6(low-high)" -p "mls/6" -f ${mactest_conf} #cleanup: - t=`sysctl security.mac.mls.enabled=0` - echo "disabling mac/mls!" - - - rm ${mactest_conf} -fi + sysctl security.mac.mls.enabled=0 >/dev/null + rm ${mactest_conf} + fi + ;; +*) + quick_exit + ;; +esac From owner-p4-projects@FreeBSD.ORG Tue Nov 27 06:45:49 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D45DE16A420; Tue, 27 Nov 2007 06:45: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 653A516A419 for ; Tue, 27 Nov 2007 06:45:48 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 38F4913C465 for ; Tue, 27 Nov 2007 06:45:48 +0000 (UTC) (envelope-from zhouzhouyi@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 lAR6jmqF003392 for ; Tue, 27 Nov 2007 06:45:48 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR6jmWa003389 for perforce@freebsd.org; Tue, 27 Nov 2007 06:45:48 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Tue, 27 Nov 2007 06:45:48 GMT Message-Id: <200711270645.lAR6jmWa003389@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 129613 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: Tue, 27 Nov 2007 06:45:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=129613 Change 129613 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/27 06:45:30 small modification Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/pipe/00.t#4 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/pipe/00.t#4 (text+ko) ==== @@ -23,7 +23,7 @@ sysctl ${i}=0 >/dev/null done - echo "1..10" + echo "1..2" dvplabel=`getfmac ".."| sed 's/\(\.\.:\ \)\([a-z\,\/]*\)/\2/`; From owner-p4-projects@FreeBSD.ORG Tue Nov 27 07:10:14 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9996B16A46C; Tue, 27 Nov 2007 07:10: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 3519F16A41B for ; Tue, 27 Nov 2007 07:10:14 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 217AA13C458 for ; Tue, 27 Nov 2007 07:10:14 +0000 (UTC) (envelope-from zhouzhouyi@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 lAR7AELv005460 for ; Tue, 27 Nov 2007 07:10:14 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAR7ADMU005457 for perforce@freebsd.org; Tue, 27 Nov 2007 07:10:13 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Tue, 27 Nov 2007 07:10:13 GMT Message-Id: <200711270710.lAR7ADMU005457@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 129614 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: Tue, 27 Nov 2007 07:10:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=129614 Change 129614 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/27 07:09:45 correct a open parameter error Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#6 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tcpconnect.c#4 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#6 (text+ko) ==== ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tcpconnect.c#4 (text+ko) ==== @@ -383,7 +383,7 @@ err(1, "waiter: semop -1"); - logfd = open("LOGDEV", O_RDWR); + logfd = open(LOGDEV, O_RDWR); ioctl(logfd, BEGINLOG, NULL); From owner-p4-projects@FreeBSD.ORG Tue Nov 27 07:56:51 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2E05116A475; Tue, 27 Nov 2007 07:56: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 D043216A41B for ; Tue, 27 Nov 2007 07:56:50 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id BD52313C465 for ; Tue, 27 Nov 2007 07:56:50 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id EE5AF1A4D7E; Mon, 26 Nov 2007 23:38:25 -0800 (PST) Date: Mon, 26 Nov 2007 23:38:25 -0800 From: Alfred Perlstein To: Hans Petter Selasky Message-ID: <20071127073825.GV71382@elvis.mu.org> References: <200711262025.lAQKPO3b036323@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200711262025.lAQKPO3b036323@repoman.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: Perforce Change Reviews Subject: Re: PERFORCE change 129580 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: Tue, 27 Nov 2007 07:56:51 -0000 * Hans Petter Selasky [071126 12:25] wrote: > http://perforce.freebsd.org/chv.cgi?CH=129580 > > Change 129580 by hselasky@hselasky_laptop001 on 2007/11/26 20:24:39 > > > Bugfix. > > Affected files ... > > .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 edit > > Differences ... > > ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 (text+ko) ==== > > @@ -707,7 +707,7 @@ > for (p = str - 1; p; p = strchr(p, ';')) { > p++; /* skip ';' */ > if (strncmp(p, "MFG:", 4) == 0 || > - strncmp(p, "MANUFACTURER:", 14) == 0 || > + strncmp(p, "MANUFACTURER:", 13) == 0 || > strncmp(p, "MDL:", 4) == 0 || > strncmp(p, "MODEL:", 6) == 0) { > q = strchr(p, ';'); This can be done with the following macro to avoid bugs: /* used as so: CONSTSTRCMP(p, "MFG:") */ #define CONSTSTRCMP(str, cstr) strncmp(str, cstr, sizeof(cstr)) (you may need a -1 after the sizeof, I forget at this hour.) of course this fails, badly if one doesn't use a const string as the second arg. For non time critical code one could replace the sizeof() with strlen(). -- - Alfred Perlstein From owner-p4-projects@FreeBSD.ORG Tue Nov 27 17:36:40 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B26D16A46C; Tue, 27 Nov 2007 17:36: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 3E82716A419 for ; Tue, 27 Nov 2007 17:36:40 +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 2E49E13C4CC for ; Tue, 27 Nov 2007 17:36:40 +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 lARHaeVq079375 for ; Tue, 27 Nov 2007 17:36:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lARHaex5079372 for perforce@freebsd.org; Tue, 27 Nov 2007 17:36:40 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 27 Nov 2007 17:36:40 GMT Message-Id: <200711271736.lARHaex5079372@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 129640 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: Tue, 27 Nov 2007 17:36:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=129640 Change 129640 by hselasky@hselasky_laptop001 on 2007/11/27 17:35:57 Improve bugfix. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#31 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#31 (text+ko) ==== @@ -660,6 +660,28 @@ #if 0 /* XXX This does not belong here. */ + +/* + * Compare two strings until the second ends. + */ + +static uint8_t +ieee1284_compare(const char *a, const char *b) +{ + while (1) { + + if (*b == 0) { + break; + } + if (*a != *b) { + return 1; + } + b++; + a++; + } + return 0; +} + /* * Print select parts of an IEEE 1284 device ID. */ @@ -670,10 +692,10 @@ for (p = str - 1; p; p = strchr(p, ';')) { p++; /* skip ';' */ - if (strncmp(p, "MFG:", 4) == 0 || - strncmp(p, "MANUFACTURER:", 13) == 0 || - strncmp(p, "MDL:", 4) == 0 || - strncmp(p, "MODEL:", 6) == 0) { + if (ieee1284_compare(p, "MFG:") == 0 || + ieee1284_compare(p, "MANUFACTURER:") == 0 || + ieee1284_compare(p, "MDL:") == 0 || + ieee1284_compare(p, "MODEL:") == 0) { q = strchr(p, ';'); if (q) printf("%.*s", (int)(q - p + 1), p); From owner-p4-projects@FreeBSD.ORG Tue Nov 27 18:34:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 83AF616A46E; Tue, 27 Nov 2007 18:34: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 27B7716A41A for ; Tue, 27 Nov 2007 18:34:36 +0000 (UTC) (envelope-from hselasky@freebsd.org) Received: from swip.net (mailfe12.swip.net [212.247.155.97]) by mx1.freebsd.org (Postfix) with ESMTP id AA89C13C4F3 for ; Tue, 27 Nov 2007 18:34:35 +0000 (UTC) (envelope-from hselasky@freebsd.org) X-Cloudmark-Score: 0.000000 [] Received: from [85.19.218.45] (account mc467741@c2i.net [85.19.218.45] verified) by mailfe12.swip.net (CommuniGate Pro SMTP 5.1.13) with ESMTPA id 533638497; Tue, 27 Nov 2007 18:19:31 +0100 From: Hans Petter Selasky To: Alfred Perlstein Date: Tue, 27 Nov 2007 18:20:04 +0100 User-Agent: KMail/1.9.7 References: <200711262025.lAQKPO3b036323@repoman.freebsd.org> <20071127073825.GV71382@elvis.mu.org> In-Reply-To: <20071127073825.GV71382@elvis.mu.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200711271820.05134.hselasky@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 129580 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: Tue, 27 Nov 2007 18:34:36 -0000 Hi, I will make a wrapper function that uses "strlen()". This is not time critical code. --HPS On Tuesday 27 November 2007, Alfred Perlstein wrote: > * Hans Petter Selasky [071126 12:25] wrote: > > http://perforce.freebsd.org/chv.cgi?CH=129580 > > > > Change 129580 by hselasky@hselasky_laptop001 on 2007/11/26 20:24:39 > > > > > > Bugfix. > > > > Affected files ... > > > > .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 edit > > > > Differences ... > > > > ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 (text+ko) ==== > > > > @@ -707,7 +707,7 @@ > > for (p = str - 1; p; p = strchr(p, ';')) { > > p++; /* skip ';' */ > > if (strncmp(p, "MFG:", 4) == 0 || > > - strncmp(p, "MANUFACTURER:", 14) == 0 || > > + strncmp(p, "MANUFACTURER:", 13) == 0 || > > strncmp(p, "MDL:", 4) == 0 || > > strncmp(p, "MODEL:", 6) == 0) { > > q = strchr(p, ';'); > > This can be done with the following macro to avoid bugs: > > /* used as so: CONSTSTRCMP(p, "MFG:") */ > #define CONSTSTRCMP(str, cstr) strncmp(str, cstr, sizeof(cstr)) > > (you may need a -1 after the sizeof, I forget at this hour.) > > of course this fails, badly if one doesn't use a const string as > the second arg. > > For non time critical code one could replace the sizeof() with > strlen(). From owner-p4-projects@FreeBSD.ORG Wed Nov 28 00:26:43 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3D0B916A41A; Wed, 28 Nov 2007 00:26: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 E93B716A418 for ; Wed, 28 Nov 2007 00:26: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 DB8B113C45A for ; Wed, 28 Nov 2007 00:26: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 lAS0Qgp7013878 for ; Wed, 28 Nov 2007 00:26:42 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS0QgBX013875 for perforce@freebsd.org; Wed, 28 Nov 2007 00:26:42 GMT (envelope-from jb@freebsd.org) Date: Wed, 28 Nov 2007 00:26:42 GMT Message-Id: <200711280026.lAS0QgBX013875@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 129661 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: Wed, 28 Nov 2007 00:26:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=129661 Change 129661 by jb@jb_freebsd1 on 2007/11/28 00:26:34 IFC Affected files ... .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/articles/version-guide/article.sgml#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/teams.ent#2 integrate .. //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#2 integrate .. //depot/projects/dtrace/doc/share/pgpkeys/dougb.key#3 integrate .. //depot/projects/dtrace/src/ObsoleteFiles.inc#30 integrate .. //depot/projects/dtrace/src/etc/gss/mech#4 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/groff/tmac/mdoc.local#12 integrate .. //depot/projects/dtrace/src/lib/libc/gen/Symbol.map#4 integrate .. //depot/projects/dtrace/src/lib/libc/stdlib/malloc.3#7 integrate .. //depot/projects/dtrace/src/lib/libc/stdlib/malloc.c#11 integrate .. //depot/projects/dtrace/src/lib/libkse/kse.map#2 integrate .. //depot/projects/dtrace/src/lib/libkse/sys/lock.c#3 integrate .. //depot/projects/dtrace/src/lib/libkse/sys/lock.h#3 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_cond.c#3 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_init.c#3 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_kern.c#3 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex.c#4 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_rtld.c#3 integrate .. //depot/projects/dtrace/src/lib/libthr/pthread.map#7 integrate .. //depot/projects/dtrace/src/lib/libthr/thread/thr_mutex.c#12 integrate .. //depot/projects/dtrace/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#15 integrate .. //depot/projects/dtrace/src/release/doc/share/sgml/release.ent#6 integrate .. //depot/projects/dtrace/src/sbin/mount/mount.8#9 integrate .. //depot/projects/dtrace/src/share/man/man4/nfe.4#5 integrate .. //depot/projects/dtrace/src/share/man/man9/Makefile#22 integrate .. //depot/projects/dtrace/src/share/man/man9/stack.9#1 branch .. //depot/projects/dtrace/src/sys/amd64/amd64/busdma_machdep.c#8 integrate .. //depot/projects/dtrace/src/sys/arm/arm/busdma_machdep.c#7 integrate .. //depot/projects/dtrace/src/sys/arm/include/atomic.h#8 integrate .. //depot/projects/dtrace/src/sys/dev/an/if_an.c#8 integrate .. //depot/projects/dtrace/src/sys/dev/wpi/if_wpi.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/wpi/if_wpireg.h#2 integrate .. //depot/projects/dtrace/src/sys/i386/i386/busdma_machdep.c#8 integrate .. //depot/projects/dtrace/src/sys/ia64/ia64/busdma_machdep.c#7 integrate .. //depot/projects/dtrace/src/sys/ia64/include/atomic.h#5 integrate .. //depot/projects/dtrace/src/sys/powerpc/include/atomic.h#7 integrate .. //depot/projects/dtrace/src/usr.sbin/newsyslog/newsyslog.conf.5#6 integrate .. //depot/projects/dtrace/www/hu/share/sgml/header.l10n.ent#3 integrate .. //depot/projects/dtrace/www/hu/where.sgml#4 integrate Differences ... ==== //depot/projects/dtrace/doc/hu_HU.ISO8859-2/articles/version-guide/article.sgml#2 (text+ko) ==== @@ -8,7 +8,7 @@ + Original Revision: r1.11 -->
Válasszuk ki a nekünk igazán megfelelõ &os; @@ -21,7 +21,7 @@ </author> </authorgroup> - <pubdate>$FreeBSD: doc/hu_HU.ISO8859-2/articles/version-guide/article.sgml,v 1.3 2007/09/04 14:38:44 gabor Exp $</pubdate> + <pubdate>$FreeBSD: doc/hu_HU.ISO8859-2/articles/version-guide/article.sgml,v 1.4 2007/11/27 23:01:47 gabor Exp $</pubdate> <legalnotice id="trademarks" role="trademarks"> &tm-attrib.freebsd; ==== //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#2 (text+ko) ==== @@ -1,12 +1,12 @@ <!-- Names of FreeBSD mailing lists and related software. - $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent,v 1.1 2007/04/15 15:23:55 gabor Exp $ + $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent,v 1.2 2007/11/27 23:01:47 gabor Exp $ --> <!-- The FreeBSD Hungarian Documentation Project Translated by: Gabor Kovesdan <gabor@FreeBSD.org> - Original Revision: r1.56 --> + Original Revision: r1.57 --> <!ENTITY a.mailman.listinfo "http://lists.FreeBSD.org/mailman/listinfo"> <!ENTITY a.mailman.lists "<ulink url='&a.mailman.listinfo;'>FreeBSD lista szerver</ulink>"> @@ -231,6 +231,10 @@ <!ENTITY a.isp "<ulink url='&a.isp.url;'>FreeBSD Internet service provider's levelezési lista</ulink>"> <!ENTITY a.isp.name "<ulink url='&a.isp.url;'>freebsd-isp</ulink>"> +<!ENTITY a.jail.url "&a.mailman.listinfo;/freebsd-jail"> +<!ENTITY a.jail "<ulink url='&a.jail.url;'>FreeBSD jails levelezési lista</ulink>"> +<!ENTITY a.jail.name "<ulink url='&a.jail.url;'>freebsd-jail</ulink>"> + <!ENTITY a.java.url "&a.mailman.listinfo;/freebsd-java"> <!ENTITY a.java "<ulink url='&a.java.url;'>FreeBSD Java Language levelezési lista</ulink>"> <!ENTITY a.java.name "<ulink url='&a.java.url;'>freebsd-java</ulink>"> ==== //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/teams.ent#2 (text+ko) ==== @@ -6,15 +6,17 @@ Please keep this list in alphabetical order by entity names. - $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/teams.ent,v 1.1 2007/04/15 15:23:55 gabor Exp $ + $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/teams.ent,v 1.2 2007/11/27 23:01:47 gabor Exp $ --> <!-- The FreeBSD Hungarian Documentation Project Translated by: Gabor Kovesdan <gabor@FreeBSD.org> - Original Revision: r1.17 --> + Original Revision: r1.18 --> <!ENTITY a.admins "FreeBSD Adminisztrátorok <email>admins@FreeBSD.org</email>"> +<!ENTITY a.bugmeister "PR Adatbázis Adminisztrátorok <email>bugmeister@FreeBSD.org</email>"> + <!ENTITY a.core-secretary "Core Team Titkár <email>core-secretary@FreeBSD.org</email>"> <!ENTITY a.cvsadm "CVS Repository Menedzserek <email>cvsadm@FreeBSD.org</email>"> ==== //depot/projects/dtrace/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#2 (text+ko) ==== @@ -8,12 +8,12 @@ Please keep this file sorted. - $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent,v 1.1 2007/04/15 15:23:55 gabor Exp $ + $FreeBSD: doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent,v 1.2 2007/11/27 23:01:47 gabor Exp $ --> <!-- The FreeBSD Hungarian Documentation Project Translated by: Gabor Kovesdan <gabor@FreeBSD.org> - Original Revision: r1.36 --> + Original Revision: r1.43 --> <!ENTITY tm-attrib.3com "<para>A 3Com és HomeConnect a 3Com Corporation bejegyzett védjegyei.</para>"> @@ -49,6 +49,8 @@ <!ENTITY amd.duron "<trademark>AMD Duron</trademark>"> <!ENTITY amd.k6 "<trademark class='registered'>AMD-K6</trademark>"> <!ENTITY amd.opteron "<trademark>AMD Opteron</trademark>"> +<!ENTITY amd.sempron "<trademark>AMD Sempron</trademark>"> +<!ENTITY amd.turion "<trademark>AMD Turion</trademark>"> <!ENTITY athlon "<trademark>Athlon</trademark>"> <!ENTITY elan "<trademark>Élan</trademark>"> <!ENTITY opteron "<trademark>Opteron</trademark>"> @@ -61,6 +63,7 @@ <!ENTITY airport "<trademark class='registered'>AirPort</trademark>"> <!ENTITY apple "<trademark class='registered'>Apple</trademark>"> <!ENTITY firewire "<trademark class='registered'>FireWire</trademark>"> +<!ENTITY imac "<trademark class='registered'>iMac</trademark>"> <!ENTITY mac "<trademark class='registered'>Mac</trademark>"> <!ENTITY macintosh "<trademark class='registered'>Macintosh</trademark>"> <!ENTITY macos "<trademark class='registered'>Mac OS</trademark>"> @@ -97,6 +100,14 @@ Corel Corporation és/vagy leányvállalatainak bejegyzett védjegye Kanadában, az Egyesült Államokban és/vagy más országokban.</para>"> +<!ENTITY wordperfect "<trademark class='registered'>WordPerfect</trademark>"> + +<!-- http://www.coverity.com/html/press_story45_07_25_07.html --> +<!ENTITY tm-attrib.coverity "<para>A Coverity bejegyzett + védjegye, a Coverity Extend, Coverity Prevent és Coverity + Prevent SQS pedig védjegyei a Coverity, Inc.-nek.</para>"> +<!ENTITY coverity "<trademark class='registered'>Coverity</trademark>"> +<!ENTITY coverity.prevent "<trademark class='registered'>Coverity Prevent</trademark>"> <!-- http://www.creative.com/legal.asp --> <!ENTITY tm-attrib.creative "<para>A Sound Blaster a Creative Technology Ltd. @@ -149,6 +160,7 @@ védjegyei az Egyesült Államokban.</para>"> <!ENTITY posix "<trademark class='registered'>POSIX</trademark>"> +<!-- http://www.intel.com/intel/legal/tmnouns2.htm --> <!ENTITY tm-attrib.intel "<para>Az Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium és Xeon az Intel Corporation vagy leányvállalatainak védjegyei vagy bejegyzett @@ -162,6 +174,7 @@ <!ENTITY itanium "<trademark class='registered'>Itanium</trademark>"> <!ENTITY pentium "<trademark class='registered'>Pentium</trademark>"> <!ENTITY xeon "<trademark>Xeon</trademark>"> +<!ENTITY core "<trademark>Core</trademark>"> <!-- http://www.quicken.com/support/trademark/ --> <!ENTITY tm-attrib.intuit "<para>Az Intuit és Quicken az Intuit Inc., @@ -240,7 +253,7 @@ <!ENTITY tm-attrib.netscape "<para>A Netscape és a Netscape Navigator a Netscape Communications Corporation bejegyzett védjegyei az Egyesült Államokban és más - országokban.</para>"> + országokban.</para>"> <!ENTITY netscape "<trademark class='registered'>Netscape</trademark>"> <!ENTITY netscape.navigator "<trademark class='registered'>Netscape Navigator</trademark>"> @@ -289,6 +302,7 @@ <!-- http://www.realnetworks.com/company/logos/policy.html --> <!ENTITY tm-attrib.realnetworks "<para>A RealNetworks, RealPlayer és RealAudio a RealNetworks, Inc. bejegyzett védjegyei.</para>"> +<!ENTITY realplayer "<trademark class='registered'>RealPlayer</trademark>"> <!-- Note: RedHat doesn't use (r)/(tm) for their own trademarks --> <!-- http://www.redhat.com/legal/legal_statement.html --> @@ -310,6 +324,10 @@ világszerte.</para>"> <!ENTITY opengl "<trademark class='registered'>OpenGL</trademark>"> +<!-- http://slackware.com/trademark/trademark.php --> +<!ENTITY tm-attrib.slackware "<para>A Slackware Patrick Volkerding + és a Slackware Linux, Inc. bejegyzett védjegye.</para>"> + <!ENTITY tm-attrib.sparc "<para>A Sparc, Sparc64, SPARCEngine és UltraSPARC a SPARC International, Inc védjegyei az Egyesült államokban és más országokban. A SPARC ==== //depot/projects/dtrace/doc/share/pgpkeys/dougb.key#3 (text+ko) ==== @@ -1,4 +1,4 @@ -<!-- $FreeBSD: doc/share/pgpkeys/dougb.key,v 1.6 2005/11/23 01:02:59 dougb Exp $ --> +<!-- $FreeBSD: doc/share/pgpkeys/dougb.key,v 1.7 2007/11/27 03:38:06 dougb Exp $ --> <!-- sh addkey.sh dougb D5B2F0FB; --> @@ -12,7 +12,7 @@ ]]></programlisting> <programlisting role="pgpkey"><![CDATA[ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.2 (FreeBSD) +Version: GnuPG v1.4.7 (FreeBSD) Comment: Public key for DougB@{DougBarton.{us|net}|FreeBSD.org} mQGiBD4mlDMRBAC0iRjdwnYWGl2pP6W8MbxLHnZpBNAnEUaz8VfC5w3HAyFUV3jp @@ -24,130 +24,282 @@ vRcLBACNaC55OuDz5GqhMLp8q3pFI06a7jsTnRtH2DoMxbgkFbktNuu/yWWan8Jb QddYcrRxZIiOq2yu0deZHAyoRpGQg8Xa0lHQrrU3APMA2m1CTUviLTb2X1SNitJI ukkOxPlx4uM0yxYTjHJx950WxmdVCBWdEdOx7YFa5xZTkYrxVLQhRG91ZyBCYXJ0 -b24gPERvdWdCQERvdWdCYXJ0b24udXM+iH8EExECAD8CGwMGCwkIBwMCBBUCCAME -FgIDAQIeAQIXgAIZAQUCQ4O47RsYeC1oa3A6Ly9rZXlzZXJ2ZXIua2pzbC5jb20A -CgkQyIakK9Wy8PuQzwCePWMt7LK5goEQ0I7lv7ydrz1wM1gAn35++jaJYPHpoLMZ -QX7ib/gPGj4diQEiBBABAgAMBQJDg7mOBQMAEnUAAAoJEJcQuJvKV6182dQH/0A5 -1ncCqo97X4VbUO/6OD1XH2Tq0Q0xEboDomjBXdMdyuAWlgFelXgwBHKj8iY5+YoJ -Y1ryzKU8ZgXrlNwuUamgXKIH6emU8K7UpqLT3SKurhG9bZpMIcCFwbYjUoBa+7IP -G2NsfLhTnyiBxk9Zf2Jusw2rxsqZbmfa8KzrZJyFzg/SnjDjgBKD/bgc9ulHm0rs -aEx16tD3mlyPQoLt2u2TAmqEENq7K0g3K4p4zlrcVGOSEk7HdaAGqBHss2XTUPcm -+cxrR4sQdFZHNfDSt0sVWqPtaQsg95hkOAc2IpLgAbeVsKMHY2FmaCPmo5amYdeX -oesGVjO9doZaoUolt3+IRgQTEQIABgUCQ4O+cwAKCRDC0M/JN6wFjJd6AJ977E2k -J88bmDdhbrt7F9L4uZjmGgCgkNcHGuPrMMx9VIDEcHVuaJWyYtC0IkRvdWcgQmFy -dG9uIDxEb3VnQkBEb3VnQmFydG9uLm5ldD6IRgQTEQIABgUCP2LbcwAKCRBPLNPY -J5PPLSh3AKCFWsu7Nd5A5apkoKqQ3zRwXTJl8QCeNUGKftWoPGD89OiQN3qOc3C1 -OASIRgQTEQIABgUCP2HmIgAKCRDYyjFxW6BSw6gxAKC54v+OwztUX+p6aZLTO+j2 -T8vMHgCg3Jigfd/U5539dZsW27ocf9oGFwWIRgQQEQIABgUCQCgFwwAKCRD3q4ej -rNUgQRq/AKDRzeH/M9jqhaEyPO+o/35Ok8wM0ACggY/y8EAYzJLlVaMidPuDnHq9 -X6OIRgQQEQIABgUCQEXrKAAKCRAnKiTtx93IFoIIAKC4bBLJVfZ9n+W6Psiap/SL -bCx50ACfckz6rdV+UQfTZLf5YfbUxff8DDWJAhwEEAECAAYFAkBF618ACgkQFnIM -tNJ6ndQzDA/9GEHKcIY0uGNkNg8wqBqDv4C2uVmwLdOX+R77W7l/jM5Tyd4eEQD5 -nzKgNdr3g5hRAghqnRPHzEQDkpyKZjvCf5hOWEEbM7AOP7LS+D8oORLxmXy6hPhu -XFDdvj6xhMbe5Tba90Qne68XalbZ7G124tgcKwpn/dic0/d96E3o7xw/aer5eG0G -FymO9EFGpKRsthDtHL6ZTrGYn1BmC+Q8vd9AnpBuruJzFtw2N1dRSlawnPT2zPnQ -y0RBHj/qYqvUsLP7H2e3HxzzLfoRhAJzHT//c+Yr7PwPq/RZS6dfwB9qyVWI5vF6 -5+Cl1TzYENSgiPWHIyvkpHrpGelkFR0rsTWuiOj0X9zvkRcGkpyipLh8PCqFG4yD -F3LAwSAkDNzH7JtCZNNOei3z/9WBk0wGvkEl6DvTsbWScVtoMs2Y7f/6SFg8RQq1 -ybuc4cIFq0gbnLbyMfOCy1nPK5PCM1uHxClu/nn0aLvKfTeEtli3XeYs+1MLd+qe -/mB0kRzgA6BJX6EpOaK5Png1UcjaFtMqP9aqPZfuiIs62VUQk0YopzWpM/NoGiKj -bqg/tYDh9UCQtYxf2CY12sl4eQbWgrbZln0R7CIBQeGOgnsUDWlf9tDj97/jLYtd -EJ3Qf04Zild7tJnipFYTeGt0nMRetsD+kaaDXruqjahw//UdbtuuvqeIRgQQEQIA -BgUCQCQWqAAKCRAEgcOX5y1fMEV4AKDXR1hZDy+eQ99sKytxpEP1CG9XCACeKfRB -j5lUwS+eMQtuYxRIlO+v26mIRgQTEQIABgUCPjO3qQAKCRDNC4o1+1fXk55pAJ4p -niJfx/AFTujC+yKQAcUCWYhLcgCfdp1tGz8jpjXprglPYV3I62vBpTOIRgQTEQIA -BgUCQTbExQAKCRAT7gmPjlwfwdAyAJ91VA0Ta4sN646p0h837dKvhzfBjQCaAwsb -UICuCxMjTmdwxus6dWOsEn+IRgQTEQIABgUCQTd5awAKCRDSD9QFytUJxriCAJ4m -VROP5P6CmmJz+J8vPYkvxU/scwCfSeltr5ZXu/8tqM3lmkPOobW9gtSIRgQTEQIA -BgUCQTd5pAAKCRCsWUmmBzhrmf52AKCkSUM/Vqz/RvIrBYxXYM+/05P3OwCfa99D -GYZGXoEk4KsyG8Xn/pzRcM2IRgQTEQIABgUCQTd5uwAKCRD9/49Y5NtE8oK9AKC5 -52sOppc/kzxzishyDjkpcOJA9wCfb4phT91x1fRfJXy7TXLxFIjZ+OOIRgQSEQIA -BgUCQS+thgAKCRBKLj+mWkQqtNleAKDKWA7i3DMyFW4ixj2aMYHOdSCrBwCfTe3X -gMqk3w+AzYwf3SKfiFiRDYOJAJUDBRBBO0w4+8I/jbEzFDkBAagcA/wIb6CPpWSG -kxlWyLL1wClvlBdbY7MEMSuIL9TUJMUs5DGynyIlzdLCL/ScaBVzOPVBkQxY9QtK -x+4RQY8s6Cr4zUnzUyH+TfN4bo03Nu8E1VIUN+w4tKJZnYtcvwNQEsy1DAWYjjLt -MwKxSwX+rqiRYvoNBswaeLvpNfLRaAUH/ohGBBMRAgAGBQJBRPcZAAoJEMLQz8k3 -rAWMhfIAnjwVJZpE9iSVgdHgNXM+8ea+dB4pAJ99bGisqsJJ+VSZU+mQ9fT8/7+q -YIhGBBMRAgAGBQJBkvNmAAoJELhV3SVtJp7tnWQAnj5M5gemlcPxx75oeTT5ljHE -6UJuAKCSIVaWmoabMGBvcs162TtGuSArMohGBBIRAgAGBQJBlFWQAAoJEBAvDifM -pSEafdEAni07Crm3GBr7CW7CbirUZ+bxciRpAJ9hg0DKJfjkZXsEnSVt5KH2wX/m -fYh8BBMRAgA8AhsDAh4BAheABgsJCAcDAgQVAggDBBYCAwEbGHgtaGtwOi8va2V5 -c2VydmVyLmtqc2wuY29tBQJDg7jSAAoJEMiGpCvVsvD77e8AoPJeM87tEF2rDzuk -yMpb/PYZqUbVAKClGm5K7UVHmkwA1/bVcKFpvSwqdIkBIgQQAQIADAUCQ4O5jgUD -ABJ1AAAKCRCXELibyletfGdwCAChbUo0d7elCLo42nSh0sEEAgGdiKfz0mppMp0h -wVIMeFzWCX3Co1XMjB/TB2w0i2t/trjrDog73/TmpfKp/SHqsRCfdSWE55eTKkFP -nupBxRcNYtleRMqtBTudqzeDNpDskj5X6qsJb0sHzUy7yj5nbXlnnLCbcZoOpqPW -ln5jaljLh1cKsbMFV6tfztzFdiG+HNwX8RH9yz3ZTwtJzIKZnig9psqtJo5uJW8a -FJAsXnopur2B/9iyViulhbIOKa+q0aGLy/T4qLTpNxGaBkS6ALZYPy48WmI3k+la -VL3loDwbTgMR1dE0sF3lymYbfpzuQaevVB92OvhF/mkS8EYOtB9Eb3VnIEJhcnRv -biA8RG91Z0JARnJlZUJTRC5vcmc+iEYEExECAAYFAj9i23UACgkQTyzT2CeTzy33 -8gCgtFpIsp+33LD4UHAMvP2G09h1SJIAoJ3K1ue/4wLqAccN3tIfzvOivD2AiEYE -ExECAAYFAj9h5iUACgkQ2MoxcVugUsMrWgCgkiyinEHAoc32qIaZITH1hoSBM/wA -oOVzug6sOlKn1AkFYWhWwfbYJqHEiEYEEBECAAYFAkAoBd4ACgkQ96uHo6zVIEFA -AQCg0sl8HI6vlnpqKBMtAgOiwlGDfiwAnR6tq8Euwc3XSWzRE5S9/mpRfXIMiEYE -EBECAAYFAkBF6ysACgkQJyok7cfdyBb/BwCePxOOOXrT7fqaJWbwCsUWjXF8R6cA -n2l98Qjdx1Bgf2g2bndwbuG5+RwJiQIcBBABAgAGBQJARethAAoJEBZyDLTSep3U -LJsP/1CLu3xvYqEv2rm7EMsMk5iCrrazt9cOw6Ye5PimADIaoiEFRRJFRRnYEUGm -XNVJB4oLRszhoQ58r87pQsyVS4EONcSwh9Y9Jl/L3EIRsn8wSwH14klJzISPj54C -+VItyhsh7Kaxj3/o/Z3u0tsUv6sOHSuNye9rSHNcMonYBT1Wl3tZjI01zfAyCphc -c783TrBZEcuFV6q0aWDm3gzHEdHcrCUCGxwXGz/EY++1ClIlbkWTe5AacoyKE2xr -QOA6aSRB/liiZX7Thf6PPd93sqqBvFENbX12OW5roAwed4ZpcZCNIOTpMaKBtOsM -zKoCGmHBEjQkbl/N9i5Q4ewuhuPobw0QuJn3LF8pG+kEbBywaJTpTRMXUjJ2C6dl -j+NRyJVJEdjajuipQQi2F+iawMLVe8amnwivtG/+5N6zEPLMcUWtzc5uEbzr7lrU -wbOMsqDSvNvzgIeW3b200lbKHmnxoTo5c2b8iaJAPkjTKLswRT0qO6W3zE0JxGoo -/a3YSQuqiML9ek+zfQFPbPqEE8jHWp3LW1T0bLLem9Gn1smwoZA/xY5vduIrDzPs -qFzbX8qFUshC8h1o+7sJ1/FScWZnSSSxWgXHM/QADzrxPi0qhnT2w/QQ54DnPcqq -abtI+5lPh2xwQGZsVyyjqlx0MT4z2NNcM+QPzIG0tXaFJ4B6iEYEEBECAAYFAkAk -MeoACgkQBIHDl+ctXzAzUQCg46UIrBb7iokOhfFigm+phww6JMgAoL0Zdm7s1/r5 -RIIgnuHO2hdYbWtziEYEExECAAYFAj4zt7AACgkQzQuKNftX15M49QCguzpV+pjC -G2J3HRPK3cSLQX+iBFIAoKqqZiVTwLNtB0S8zV8lYl6pU8fYiEYEExECAAYFAkE2 -xMsACgkQE+4Jj45cH8GryQCfdwWRtknGAtLpklAji5Wz0EKkvuIAn3rw/TFH7QT7 -Dw/aMWtz8oWx5JWaiEYEExECAAYFAkE3eW4ACgkQ0g/UBcrVCcZVSQCZAZKax2Et -oym2sglkRthSQBQYaEQAni/BG/BJeRQljnRs66Kj1ZVkB8M9iEYEExECAAYFAkE3 -eaUACgkQrFlJpgc4a5m7GwCdGn2GQ/7/zpW1jS3vVfD5bEGMULoAoKsRGpSf1lNc -p82KxAUr1M5cVWshiEYEExECAAYFAkE3ebwACgkQ/f+PWOTbRPLbcgCgv6E0NETg -yGnFGEOw/4vC7JrEQJMAoKHM3y5c/opNd1kABYHOCrQCb1/CiEYEEhECAAYFAkEv -rYYACgkQSi4/plpEKrQLPwCfXpQtpWq84vzBNQkXfsjIyw0smSEAn0dTl12+imM5 -ao13L36aHXEEj3n4iQCVAwUQQTtMR/vCP42xMxQ5AQGjJwP/R/kxj20VLD9JVY/n -a5bzLO2+pxx6kKJueGx3qIA8GNGaT38LretNIeAB2VybQXvxGDBOR5xP77b+5kk+ -AofSQhX9OSmxr2tyMKv/KBKBLSXhG1XmFNt0mbeZfDIiXgcF+coEdkZfO4HmfMx6 -k/FexG8yzuOOUJ4c+5e4fb98pTGIRgQTEQIABgUCQUT3GwAKCRDC0M/JN6wFjLXP -AJ9LEHsDQQjbemBZTPOOhFHuZDanyACfUcUtjFvz8UMBe+vqjuC4/hEjh9WIRgQT -EQIABgUCQZLzaAAKCRC4Vd0lbSae7ZMXAKCkL0SS7dSbuLzBL4hYliuqXrBZegCf -e4rkT/ZffKqTk7rH5MnViVSaWM6IRgQSEQIABgUCQZRVlQAKCRAQLw4nzKUhGryl -AJ93dyCMCbeImp0GSLFjRyGM2A6IxgCeP1y8VGto6TInYRGIajo38zbE9kOIfAQT -EQIAPAIbAwIeAQIXgAYLCQgHAwIEFQIIAwQWAgMBBQJDg7gyGxh4LWhrcDovL2tl -eXNlcnZlci5ranNsLmNvbQAKCRDIhqQr1bLw+w1vAKCYUEfM9BLjnrllD9f4EYhR -O0abywCfTdb/s8GXDMGZq5KlJOyS5JY3sv+JASIEEAECAAwFAkODuY4FAwASdQAA -CgkQlxC4m8pXrXwkvAf+K10jpWpCs+XPlVzOpQZN62QP8KfMcaoFzpWScld0f9ak -76VgXUgZmbWzbq3eEU2U9Z2tYy5LTW6SK0Gx92InZmPO6PiTLmq+0HaE/EQZTRVS -citfwpDJ2NPoUsWo4/Y94gyefJG+ZJ4Q442LtrodvDMRB7cda+q1UkIy2cPv0Nrm -mTrpsoC2sX3whwgovyRCfXMwRlMN9oo2VBpxsOdrYP7HxKxSlkX3GHqdlpxwEvE/ -94GsyEHjhCRQIyncVmWGSVACIh1qkbra2d8bxifjiQgid2/rFPg2J9/tgqLW66lF -S+4K8lAnr2VBt/gT3hEfFyj7pzBDew1PqR3r8p5VzLkEDQQ+JpurEBAA3s9KUqw6 -vqvh8R4qYLPeYxF/FCdEfg57mLXlMr5WWE3cCcVJGdpXLh6ocxYaw5DlCz6atscq -/w4LToModzNo1neYv6pQD70R8h0s6UWSJ1kf8kvw4q57BRnC2ait7+77ojToC80E -7VuUAo/JJQpkUcSJvFU+R1wnBSh4kYLWLtKe00LzH0lyCCmgUiDFaaCRkOxW4F1N -yb+KxYp3bM8iMjQ5qA1COOKkV2tb2Pni6NtTPqSqmQxiMfWsxO9dH/dJci67cGNk -sPHCR4/PaRhtVqQqUOdr7CdiwCOk/658zstR2WbDg4dQreKucX7Kc3+wm7bQPqDz -t7o2Jd7ZN/jZ41lTkQaidEO0CS1QGF+qiGMvELeRYeZZDpINXmlo5XmqamIwWcdV -UiEfYMpmvrloQG0wblQebdJoRk9hBrPzV49ALqMtip3m8f6gHoeuJDelhn1cevL6 -S240aFrSNXWyysHCb6RYMWxLaLrDqkAH9gMe8yxs4Efl88akJ+qIkziCx1lIzr1S -WzVxx+O1c3etFKz1yljHhiTjcu9M6h+2/cYYAUD8afH00ZcvrLKAT9EAdIPXRSIS -O40ssJMs0Xkl5KTFDNkvvuuxwa7l2ZCvdbLBXZE8KS7CTuoT8Xh28OyHE1i6dnUV -wIqiNxeawCx+h8g2MKUGO3/EdajaAT3qLp8ABAsP/A3qMTsBRRJSjqTarGHgDVFH -JwAcWtHL7yOOr9bSDXXLTYg26pFtWPX6iFo+8NbAji9fM9T5geHxsncio+n9tc8H -sMeUHwhR1Ccg/RHIjWJG6cCWtxk9qjwIzr4W8olWq2p/cnjygftySwJ9E4y4XuPw -lV5yhw7P1TekvFdDGY3M7K/C7EEwoO2QAUkHrbz2lHsd/wjX7HyswksJXHeOaJWC -hevUsF5M9OhYA2gsIlbRkpO3f0O1La8I3ih17ogIM+hpMdnCD5q5z5kz0WjcRgdm -1J8tLmr1z3QOp5s+Y5LHOVNOSsAz66UqpaNBjw0drz8mO9mIj4M/i/L60m479GxD -PU9SRO6bipwQQ9WVA8YQoPP3rOs7G2bxxNeRGPjP+lsl9+2CPd7AmjICVqFXTyZO -XlEpUPCyJSlLqsffBBQL+Jawme7pXXtuPOONZxmIP9o7Wb7Tvbl+GrB98kYnF4q7 -+xHuyUp/5zSmKEE8Qwe8QgGzlJ9wRHf4wUofmZ7ADOf5hnCd1xEN7U0LhSzWM3/0 -tnXe+NkFb7VnXY4+LePS5V1gTMGyYMRyVyEm/3VIFDQhgGlLh/HQYqQm6dwo+xFt -pQNz8vxrjeb2kQRQThj97VO9h8ckYW0DT+hs0hTgzCxfHwhjbBgzqHR+oG4wM0ij -SwQ4JkXa3y8DMgw/2mM/iEYEGBECAAYFAj4mm6sACgkQyIakK9Wy8PthGQCeI3zM -Dhg0oGgN9WQpEn2QXhB9GOkAoLb9N92kwQP/+EJ5JZSTWj+GGWKd -=QG/c +b24gPERvdWdCQERvdWdCYXJ0b24udXM+iIQEExECAEQCGwMCHgECF4ACGQEGCwkI +BwMCBBUIAwIEFgMCAQUCRzrMwCAYeC1oa3A6Ly9wb29sLnNrcy1rZXlzZXJ2ZXJz +Lm5ldAAKCRDIhqQr1bLw+0C3AKCyxfTbZOf+/vaFniYfIBaQtHcVYgCfU3m2622B +J0PmbLDXLAHJ1/7SsXyIRgQTEQIABgUCQ4O+cwAKCRDC0M/JN6wFjJd6AJ977E2k +J88bmDdhbrt7F9L4uZjmGgCgkNcHGuPrMMx9VIDEcHVuaJWyYtCIRgQQEQIABgUC +RVJ92wAKCRDHibNcwXWxw/mhAKCOFUhlbJT3XoxASHR8iV0LWsGZzQCgokks/a5B +o4XzGhzk+gAsqMzO1IqInAQQAQIABgUCRVKTuwAKCRDFndaSjlfOma+/A/47UDdJ +OVLkdFH9rmHCXT6UTYAasV4wZBFnFJC4IkxgDxKIL7ecxnjX8ms4C7SLdRfLnW8c +5udS7HYigKIG0QdWYBjbtQzCH+irVud+0cO/OjeEB3kYSoh8zZ7PKeUOoR1OyOiZ +Glj0erF3OwRtqCUnuVKmHygo74ue3MxqGj/3t4hGBBARAgAGBQJFUoU6AAoJEDTw +bqaaJAtdvRoAoKYFKyZTpNVYl+N++cfBU5le7O+SAJ9EBMZdH3SULRnyd+5qRd1t +hwB1ZYhGBBARAgAGBQJFWaEAAAoJENWMny3eufZHKykAn2PF8XYOZ9vZ+cluvISJ +mVSDq/jsAJ4lX3EoI2X5J8g8sU8u6sOutoFP84hGBBARAgAGBQJFWsY9AAoJEGJA +5uuW058LvloAoM0r6+3VpLWtSbrsmLOaatO12bZuAJ454LJZVwtUC3qe8P4mA8UJ +tDoQk4kBMAQQAQIABgUCRVpx3gAKCRBvM1bf/KFvkFkGCKDJ3zOr9UfXfvZc6Ppj +752/dvGXtgvjoLCxtMltNxX+FFXmD0qBxPw2u1TYn2K+lq1/Nq9W0BjYYYkT07UL +hKRQ501vCBbrqnNgrD2f/6o4BE23nVsgYgGnFOklAjz288yX2AbAaMu7wguHMqGb +yBQnlD8165azIWyfrHsGs7i+kWLqdAmLCKV8O1pAzm1E4AGrDfK76/z8p2EEODBH +iBSHKAqdex0aRGlpfpcGJfKJPyU/1cPD2UxtWth+oPunVn3KZDsWWv31xqZsOVhb +Zrv10sZyip1ghJfOXc39BWQ6pRbQONmcyp/4mxbVHHLxFOPSW8tDfbLr7ux/rQXf +uIsaAVJMPbKn/0BoimehWLBn7AXLta2JASIEEAECAAwFAkbfqdQFAwASdQAACgkQ +lxC4m8pXrXw+1ggAjxFn474LUz1JAbBpYBShcl7Pn15Kt1ApFNtGR4hYdSXtNcUr +9apUmHzF1HkhSPODQEIlBeiBxBf0O2/FD8zj7nXVA4ELsH3YQym39Rb5vUmGakqf +R/o0I0tBQX97i/oZBdVDEcxgezYoNVNSCQNdQvl0qDSp/eF928HeAf01u0yYW0by +UPiKSejEiQ4Yg5kYyaRTC4elqBXRtUYPB/pkSHJCt32fsudGqEbZJYq++JOEiANN +5oWMH4+ifNIi98Nc2tME3wpauw3Ww17+FpN5rirEM3fzpg4xDwyPsmcA0q5y1JNW +Vu13XMh4GJtq4sBkQyAGVdqUvC0aQ5AWyt7d7ohGBBARAgAGBQJHLQW+AAoJEN/a +zsY7+ZIlEyMAoO93GBmUCW+XvbPpN5vslTY7NOx9AJ45xnaN80Cd4mv5pQlgm00S +w2jRHIhGBBARAgAGBQJHLW1wAAoJEJhXkSdLYyMRJtEAoIjld/sArPh3Cym0PMAB +Z+PYh9RdAJ4rt0IUwg3YKvddmnXIuc2U2eSwuIhGBBARAgAGBQJHL5D8AAoJEOd8 +mMQSCOrvE/QAoMd956pIAxtoZsFAMds3xC5CndXcAJ9/TRUgvt5ataxaNwZdxT+b +mzpL0YhGBBARAgAGBQJHL18LAAoJECv7augiY2UCPk0AnjFzfVsP0xyjslGu8wlF +oGthuewZAJ4mNTyy0xt7y+EtTfdFLMdSGi5pNIhGBBMRAgAGBQJHL7SoAAoJEFoo +wZVaGo9/6SEAoMrn/lChZfdTr5rnSMpHLybGUZFuAJ9W0U2FvZ7VBHoC2ZycBeGk +pggDz4hGBBMRAgAGBQJHL8KhAAoJEFsqkax3EFk5JeIAn07XFG0xO208xD0rv0zl +NT1AIbJ2AJ9ILYyk6EcUFO3wCzPiZEjkDOv1R4hGBBARAgAGBQJHMbRVAAoJEHcC +6rsPWinK844An1v6pODEqczam/9m2j5hJr3+VhPNAJ42/MT+yDNBZ7bUI1H2buNg +JGJw1YhGBBARAgAGBQJHOimRAAoJEOTCQBfopvGFtH8An2uhsFLGptujcCUnGjrl ++XGEQILIAJ9i8JTQHUFbDvZyFmxPRvlSovICBIkCHAQQAQIABgUCRVKCwwAKCRCw +sicTFbkGmd2iEACYun8xXmYQkt/6ZrycLja0iPepjZmpknTWKAyiqvnGwR4bhYrL +XHN6QiiIJqRJW/+v9dF9xWA4TkJA1ceuq2m0wBki3+gNudh0QqkerGtVWvReK5Jp +KTps6YOGXmKSx23k+u8rp3eVDkskg0LFbZtvpsM4RbFeRpan0y11pNIzZ5ZhWk1u +rFsWeTjHXBnVGnMxSfGENhB4eMrfBXVuBMzAZmDxp3jXnn/rTAjz/eS9ntW8DeDq +jpvzgCuCpcSOEMGQQz7G+hZjogDxJwxAHoU8hbX0EkLbWnxvHh1JTPUAoso3QsMo +i6m8xDg5MbtV0MBKNZfaGDppWBh8rQf/9NARhquRGN7B5ZwUeqf6u3Fvbht/oXMA +TRQjTo3bPa26KvHYQy3X+rYCNF+3fTG1OkiHmIDj4GvHbQT8LNIYVwHFGPDoW6h/ +BWHKR6LdKwdjsQI4Asl9D3+EUned0NHhe6T91wboxzg26oeUfj0HLGMn+/rYOCIr +EmPvxsWbFJnYfFQQNj3w5r+zsy20OjeLyO3OP/HGfbOrvSLTdDSqHzf6GdRP1yNe +BEuwkK9ZGrB1YaCBn5a1mHtC4q+YcWdzeD87c/j9JVfKdy08DHa7uTUvLGp0I2Al +eOiZBn+tQMPyjKLPkSBkMfkw/gbuUAlttRbCollQCagAulvwj+mQMGb0o4kCHAQQ +AQIABgUCRVKC3AAKCRA+arEaVtUZlR15EAC+KvJ/npr3tRtG5cmfrph3o1nilNrB +a5bhWkdAms9c9yDg9kKOeBzxryyHmjQlVAZ2ogg7SFMbSyECOMh5w16CTTWTnsXN +qp8joovy0qU9mi55jW0VleLqGy2Cb/eDNh8DUR2YA3kx0RT+LT+fn7mZg9n8M7M1 +3+untEzz3ye3HRtsLhsd5x1bJdrsQChbUDP1fm1USmfB4CFB0gCZ8kuwNB3JI45s +f7mLvLppZz0FLoJjmmMjO7stDScXJ8agCBu3/wLKjJFFUJSjMZ46HWeGzUMIvkiK +M8d6sWWrCRorQVGg5ALeg/7T337mY+qVK40CSsqaa66QzWe57BBTCVc9v+M5w5ca +b8wjXFjLxJGLALsO4Bq9PLxXYc5zBipxl6XJ7JDjMQRN4cpUI9FzkD+4jWtQhrM7 +ocsac9lDzP0Gm+PjIdFoFOtC0HS/6TY4yDBv/3TYEOhQq+Xpmh4nSI3DAleMTrkl +2aadYitmYvhNs7gN6XjQLkrEVgWsPluxkxWw/gB2NfZspD/pZV9bjdV+Rc6lRL1J +mVX8eW0aUfl45Ng7rnbUrUp2BVIe+1QjC0/DFotEGJB3qxgdIUeX9ZB1p0FlWBB1 +rgCStqEQ3to+s9Qhnx9bF6ZFRerOvVLikUnmHrb1bTZ/6QywZj3qqAIiNsRrhB9T +AObqPcZAfL+tI7QiRG91ZyBCYXJ0b24gPERvdWdCQERvdWdCYXJ0b24ubmV0PohG +BBMRAgAGBQI/YttzAAoJEE8s09gnk88tKHcAoIVay7s13kDlqmSgqpDfNHBdMmXx +AJ41QYp+1ag8YPz06JA3eo5zcLU4BIhGBBMRAgAGBQI/YeYiAAoJENjKMXFboFLD +qDEAoLni/47DO1Rf6nppktM76PZPy8weAKDcmKB939Tnnf11mxbbuhx/2gYXBYhG +BBARAgAGBQJAKAXDAAoJEPerh6Os1SBBGr8AoNHN4f8z2OqFoTI876j/fk6TzAzQ +AKCBj/LwQBjMkuVVoyJ0+4Ocer1fo4hGBBARAgAGBQJAResoAAoJECcqJO3H3cgW +gggAoLhsEslV9n2f5bo+yJqn9ItsLHnQAJ9yTPqt1X5RB9Nkt/lh9tTF9/wMNYkC +HAQQAQIABgUCQEXrXwAKCRAWcgy00nqd1DMMD/0YQcpwhjS4Y2Q2DzCoGoO/gLa5 +WbAt05f5HvtbuX+MzlPJ3h4RAPmfMqA12veDmFECCGqdE8fMRAOSnIpmO8J/mE5Y +QRszsA4/stL4Pyg5EvGZfLqE+G5cUN2+PrGExt7lNtr3RCd7rxdqVtnsbXbi2Bwr +Cmf92JzT933oTejvHD9p6vl4bQYXKY70QUakpGy2EO0cvplOsZifUGYL5Dy930Ce +kG6u4nMW3DY3V1FKVrCc9PbM+dDLREEeP+piq9Sws/sfZ7cfHPMt+hGEAnMdP/9z +5ivs/A+r9FlLp1/AH2rJVYjm8Xrn4KXVPNgQ1KCI9YcjK+SkeukZ6WQVHSuxNa6I +6PRf3O+RFwaSnKKkuHw8KoUbjIMXcsDBICQM3Mfsm0Jk0056LfP/1YGTTAa+QSXo +O9OxtZJxW2gyzZjt//pIWDxFCrXJu5zhwgWrSBuctvIx84LLWc8rk8IzW4fEKW7+ +efRou8p9N4S2WLdd5iz7Uwt36p7+YHSRHOADoElfoSk5ork+eDVRyNoW0yo/1qo9 +l+6IizrZVRCTRiinNakz82gaIqNuqD+1gOH1QJC1jF/YJjXayXh5BtaCttmWfRHs +IgFB4Y6CexQNaV/20OP3v+Mti10QndB/ThmKV3u0meKkVhN4a3ScxF62wP6RpoNe +u6qNqHD/9R1u266+p4hGBBARAgAGBQJAJBaoAAoJEASBw5fnLV8wRXgAoNdHWFkP +L55D32wrK3GkQ/UIb1cIAJ4p9EGPmVTBL54xC25jFEiU76/bqYhGBBMRAgAGBQI+ +M7epAAoJEM0LijX7V9eTnmkAnimeIl/H8AVO6ML7IpABxQJZiEtyAJ92nW0bPyOm +NemuCU9hXcjra8GlM4hGBBMRAgAGBQJBNsTFAAoJEBPuCY+OXB/B0DIAn3VUDRNr +iw3rjqnSHzft0q+HN8GNAJoDCxtQgK4LEyNOZ3DG6zp1Y6wSf4hGBBMRAgAGBQJB +N3lrAAoJENIP1AXK1QnGuIIAniZVE4/k/oKaYnP4ny89iS/FT+xzAJ9J6W2vlle7 +/y2ozeWaQ86htb2C1IhGBBMRAgAGBQJBN3mkAAoJEKxZSaYHOGuZ/nYAoKRJQz9W +rP9G8isFjFdgz7/Tk/c7AJ9r30MZhkZegSTgqzIbxef+nNFwzYhGBBMRAgAGBQJB +N3m7AAoJEP3/j1jk20Tygr0AoLnnaw6mlz+TPHOKyHIOOSlw4kD3AJ9vimFP3XHV +9F8lfLtNcvEUiNn444hGBBIRAgAGBQJBL62GAAoJEEouP6ZaRCq02V4AoMpYDuLc +MzIVbiLGPZoxgc51IKsHAJ9N7deAyqTfD4DNjB/dIp+IWJENg4kAlQMFEEE7TDj7 +wj+NsTMUOQEBqBwD/AhvoI+lZIaTGVbIsvXAKW+UF1tjswQxK4gv1NQkxSzkMbKf +IiXN0sIv9JxoFXM49UGRDFj1C0rH7hFBjyzoKvjNSfNTIf5N83hujTc27wTVUhQ3 +7Di0olmdi1y/A1ASzLUMBZiOMu0zArFLBf6uqJFi+g0GzBp4u+k18tFoBQf+iEYE +ExECAAYFAkFE9xkACgkQwtDPyTesBYyF8gCePBUlmkT2JJWB0eA1cz7x5r50HikA +n31saKyqwkn5VJlT6ZD19Pz/v6pgiEYEExECAAYFAkGS82YACgkQuFXdJW0mnu2d +ZACePkzmB6aVw/HHvmh5NPmWMcTpQm4AoJIhVpaahpswYG9yzXrZO0a5ICsyiEYE +EhECAAYFAkGUVZAACgkQEC8OJ8ylIRp90QCeLTsKubcYGvsJbsJuKtRn5vFyJGkA +n2GDQMol+ORlewSdJW3kofbBf+Z9iIEEExECAEECGwMCHgECF4AGCwkIBwMCBBUI +AwIEFgMCAQUCRzrMwyAYeC1oa3A6Ly9wb29sLnNrcy1rZXlzZXJ2ZXJzLm5ldAAK +CRDIhqQr1bLw+0+dAKDf18TT8xAziwSuUdLI5lAwXr0qFQCgjGU89SNNvPC80uZq +1CFtEFsboxOIRgQQEQIABgUCRVJ94wAKCRDHibNcwXWxw14uAKCYZ1NXvJ8mzMux +MQ4b5hJpuQQUdACg/ISj44b+vrpVg7GGMaFGvX63n3mInAQQAQIABgUCRVKTvAAK +CRDFndaSjlfOmXJWBACMcnKP/El2pLJuWg5eEGriZII+81RBlTa7qNzwQRo1vsTC +dlnXAekfEh9Jhbz2poockISOsXpQAnxIH/bNTaVPAlW9OYXDMH9rM1jGUWmE2hFo +myAlQXi9AFQRNn1F2P0iJ8tEr3H8cjHFvvaTquZobH6M54OJw3vjVIxBOGC0yohG +BBARAgAGBQJFUoU6AAoJEDTwbqaaJAtdl2EAn0jHucscRHI/psVdy31JtZXwhvkz +AJwOsZmKIFimRRQyNpoQvJPEZA+/BohGBBARAgAGBQJFWaEFAAoJENWMny3eufZH +ZIkAoLg0QE9XGaqUaGGz2Wt6I0mRGJC7AKDCxxF6zUdMbRrkl+CaU4s1kHK5AohG +BBARAgAGBQJBlXh6AAoJEGJA5uuW058L3eIAnA0YRRsumio7/0QfEpSIyFQY9Y+C +AKCGAW+rhVjGYCHg+ACU0w0l8JQalYkBMAQQAQIABgUCRVpx4wAKCRBvM1bf/KFv +kF/mCKCjzjzCZk6+LL9/1BFnEpf85lxIAL3ER9KvRTLeqpPNOBXgCHTlPCO2nutx +Iky8ZuaeNgsOEKANq5q0W/wbUyCYQKYX/G05mUrg0aPdq82n3uW0n1tRP1agXwJ7 +Xk1gRJibE/vT1BUEa0Vrc6ujo9j4+bbZQLxNdRDbtzjEFCn5Bi4u0rOBHtwvoRj4 +AU5Wlp3xpE6+YHFe9oYY72BltWIp1QT6L+4KjDAzgRDztRr8Ci01aaleVpEGgmnq +JOZwHeCAi5tiVAnl5ZOyXibKe9TX2whkInG5U9lgG7Siljk+2FJflLsJBbrI7Uzq +qxFxHGPH5mT7xyc20PJOTwejXYwHoHa28idV6xvaZ5DElK+L0ufz4N2JASIEEAEC +AAwFAkbfqdUFAwASdQAACgkQlxC4m8pXrXz5/AgArmj11Q/WboJUXfgWLPJLw5rP +SErX+s291UuJCJIt5jiLNzHpcaj7uKxzq32i0luFicnh5gPfQv70WmEYuaSw+ehc +zntaCVQqq7MwYvterGo3+0wUZyfSyroG+ufIYlS9jJdctiXL3xNiH4hUlZU3kq0f +uK0EpiQ1w9C4nT+llc5YQFTXRXKjBbq+4jgIW2tilY0dqmJvnMBH5RvIcyUvuzVI +7lAvekh7P9zFm7EVnIk/NHUYRblllCTgqrDfpOYYZUYqO/TEGlVETzY5TYWkhv7Z +o+5NanXiN+n8ajW9L7EPVdcC3X4zH4L2jO6j9P/MU/8vkOxsh3mTMdQbkXLYd4hG +BBARAgAGBQJHLQW+AAoJEN/azsY7+ZIlypgAoLu76k+mPUvns8w4MHGRPJ9gb4/Y +AJ992ytcwm39VgH52j5a5biFutkFYohGBBARAgAGBQJHLW1zAAoJEJhXkSdLYyMR +a8gAn185pg6aLK1LWZFgVHUOhvsTImw5AJ4npBkMHZ7ZnF/hCK/WtLJG1sZZGYhG +BBARAgAGBQJHL5D8AAoJEOd8mMQSCOrv4rwAoNLy24E7KtbOMl9eAHQI10JysKtU +AJsGWMmCcC5anKBVdQySsJud5WdkPohGBBARAgAGBQJHL18PAAoJECv7augiY2UC +r/gAn01HmsTmdgahAcbW/RBGwBGY/9g1AJ0VmC4XntgqGqGCeSVCRxZkgj+9aYhG +BBMRAgAGBQJHL7SoAAoJEFoowZVaGo9/IckAoNqDtisMl50Mt20AQ9p/q6j9KQPz +AKDdA45U/JWu40WWsCABDNmXPtKGtYhGBBMRAgAGBQJHL8KhAAoJEFsqkax3EFk5 +qcAAnjKbm82tgEjmWnVF2pTtgG3TQMGOAJ4jNqgn9NOK3qg4Dxz4v20dOer7fIhG +BBARAgAGBQJHMbRVAAoJEHcC6rsPWinKXugAn3X9C/6rJBq7naR2+Ap9S7zYlmDS +AJ0QKoBMbTmfyGgjuoDsM5lbf2SpIIhGBBARAgAGBQJHOimRAAoJEOTCQBfopvGF +jwYAni3sKAWg+TqZ8Ay2Gi9pW/ZA+ZSNAJ9ZEhRp2tdnznkxrJ69siHRUyL2AYkC +HAQQAQIABgUCRVKCzAAKCRCwsicTFbkGmcOBD/9Ba1thA0MktakX6Zb3kUstS/z5 +2ilJKcZKBn7xYbq89SlEFapln8bg6NwUiUIGke1WwuW7iSj10WtVNYjorUAVx5gR +8+qQkE1V82MWPbQBWU7Bk5tevpNwx7f3KabNit+XtFEr48cho+pshFSyHFKqr1Vf +XTiCBIPRLmmv5L8TrLFQGNYdqWMizTPJuBByQA0iFNxR92GN9CUgUOcN2eKUjdrv +F91CHylsEW0uD3m6u6FdlGvoY0yAO682UdReJb9FXuiOJLKP1lEYXOUlu6A6ZL9C +EDOccw/54tckX/bpE1Hx5G0kUIiaE8mMJ6zbzibhy0onHZrQw1aGdHH4PuhsazmQ +DMX7Y7x4RvpVLyLZXWhbbiGhjmAX93QzJEj+i0F8KfAh4XCt4N8C15nPUD9BfWN5 +zuT+xQ//U4XUe+o9xJWsgeGmRXc8/G0PWuQKSDOG6Mi98Cyoesc/r2j+ijYt7Mho +p94aNWKsBukLI//JN0tEr+dtHxPrCDB6xVxgJDjvDfe/WnDF04/eJld8AhsGwIz7 +D1S9zyJ9wte8NrA726I6QCIunZYyCMmTwwWJ3vSJJBZQjyODCz98FDB15blYIOql +6gKHxjfBPisWS74vxWPyHcrP7AnRPRarb0ZraMqyqrP2iJByB5vGEjgRGvAI68PH +PNlNJnGJAk9W44QMWokCHAQQAQIABgUCRVKC3wAKCRA+arEaVtUZlf1tD/9Tahp1 +avDXviDgmVgrO6t9CL1o2bMS6t9tBSq5sKgBMW0GQpU2l4vSQA18GLOFrW6Fb2pV +aMIQgIPg6jbpuPOQaGEn0s0HfSknIpft9CaHOvmYF1Y6PFcxJueJvI0sQy2AXCWR +7kngzczEJpaqnlDfg0+RT6iQkwspuq6S3/EGMscNs230BE5Qq0g8PadEMwccvEz2 +V4RC84NnDAG4uX1AD5OneVj9h93gK0n9HDekzkcG8q8Aa07HwJSdomLRg9wHvnZF +053AQcjAVBP6rr4ApTI7Qrif/sfDd/jC62DJee2m04fZnNi+Rok21mMvj5Em/j76 +zeiGc/CWr8xTK37tIMJeTp3yBHjStIOC7/F1EMVxXxmooWpcq2DZkXyfLX1ycRJ+ +b9LJVqu3qoiPoxlfmjZMZRe7/pQ7FExqesI8Qt5vBnDlyzGsSj7Q68YoGRK1on3D +oekp0tkhdltOJwQ/o5oAyTDDxdn5agqYLrPBgmUkRF2THmLwccFY3ltOg1t63cDu +fTqT0t7H7gWpNCyg6XCROxpTNaTTcMDUsclJHLKwR2j1V2zbkl2xaoXX/hug9b6q +cRBvcFLGWCPEDQYaZTInI/PRZEPh16O9zJiuDV1R4GOPdD7rRTG11Zotdr5F/4sq +nUk4bDuwpZ+N4sZMSPc5gjCuyiYT4eY6JJ7DkbQfRG91ZyBCYXJ0b24gPERvdWdC +QEZyZWVCU0Qub3JnPohGBBMRAgAGBQI/Ytt1AAoJEE8s09gnk88t9/IAoLRaSLKf +t9yw+FBwDLz9htPYdUiSAKCdytbnv+MC6gHHDd7SH87zorw9gIhGBBMRAgAGBQI/ +YeYlAAoJENjKMXFboFLDK1oAoJIsopxBwKHN9qiGmSEx9YaEgTP8AKDlc7oOrDpS +p9QJBWFoVsH22CahxIhGBBARAgAGBQJAKAXeAAoJEPerh6Os1SBBQAEAoNLJfByO +r5Z6aigTLQIDosJRg34sAJ0eravBLsHN10ls0ROUvf5qUX1yDIhGBBARAgAGBQJA +ResrAAoJECcqJO3H3cgW/wcAnj8Tjjl60+36miVm8ArFFo1xfEenAJ9pffEI3cdQ +YH9oNm53cG7hufkcCYkCHAQQAQIABgUCQEXrYQAKCRAWcgy00nqd1CybD/9Qi7t8 +b2KhL9q5uxDLDJOYgq62s7fXDsOmHuT4pgAyGqIhBUUSRUUZ2BFBplzVSQeKC0bM +4aEOfK/O6ULMlUuBDjXEsIfWPSZfy9xCEbJ/MEsB9eJJScyEj4+eAvlSLcobIeym +sY9/6P2d7tLbFL+rDh0rjcnva0hzXDKJ2AU9Vpd7WYyNNc3wMgqYXHO/N06wWRHL +hVeqtGlg5t4MxxHR3KwlAhscFxs/xGPvtQpSJW5Fk3uQGnKMihNsa0DgOmkkQf5Y +omV+04X+jz3fd7KqgbxRDW19djlua6AMHneGaXGQjSDk6TGigbTrDMyqAhphwRI0 +JG5fzfYuUOHsLobj6G8NELiZ9yxfKRvpBGwcsGiU6U0TF1IydgunZY/jUciVSRHY +2o7oqUEIthfomsDC1XvGpp8Ir7Rv/uTesxDyzHFFrc3ObhG86+5a1MGzjLKg0rzb +84CHlt29tNJWyh5p8aE6OXNm/ImiQD5I0yi7MEU9Kjult8xNCcRqKP2t2EkLqojC +/XpPs30BT2z6hBPIx1qdy1tU9Gyy3pvRp9bJsKGQP8WOb3biKw8z7Khc21/KhVLI +QvIdaPu7CdfxUnFmZ0kksVoFxzP0AA868T4tKoZ09sP0EOeA5z3Kqmm7SPuZT4ds +cEBmbFcso6pcdDE+M9jTXDPkD8yBtLV2hSeAeohGBBARAgAGBQJAJDHqAAoJEASB +w5fnLV8wM1EAoOOlCKwW+4qJDoXxYoJvqYcMOiTIAKC9GXZu7Nf6+USCIJ7hztoX +WG1rc4hGBBMRAgAGBQI+M7ewAAoJEM0LijX7V9eTOPUAoLs6VfqYwhtidx0Tyt3E +i0F/ogRSAKCqqmYlU8CzbQdEvM1fJWJeqVPH2IhGBBMRAgAGBQJBNsTLAAoJEBPu +CY+OXB/Bq8kAn3cFkbZJxgLS6ZJQI4uVs9BCpL7iAJ968P0xR+0E+w8P2jFrc/KF +seSVmohGBBMRAgAGBQJBN3luAAoJENIP1AXK1QnGVUkAmQGSmsdhLaMptrIJZEbY +UkAUGGhEAJ4vwRvwSXkUJY50bOuio9WVZAfDPYhGBBMRAgAGBQJBN3mlAAoJEKxZ +SaYHOGuZuxsAnRp9hkP+/86VtY0t71Xw+WxBjFC6AKCrERqUn9ZTXKfNisQFK9TO +XFVrIYhGBBMRAgAGBQJBN3m8AAoJEP3/j1jk20Ty23IAoL+hNDRE4MhpxRhDsP+L +wuyaxECTAKChzN8uXP6KTXdZAAWBzgq0Am9fwohGBBIRAgAGBQJBL62GAAoJEEou +P6ZaRCq0Cz8An16ULaVqvOL8wTUJF37IyMsNLJkhAJ9HU5ddvopjOWqNdy9+mh1x +BI95+IkAlQMFEEE7TEf7wj+NsTMUOQEBoycD/0f5MY9tFSw/SVWP52uW8yztvqcc +epCibnhsd6iAPBjRmk9/C63rTSHgAdlcm0F78RgwTkecT++2/uZJPgKH0kIV/Tkp +sa9rcjCr/ygSgS0l4RtV5hTbdJm3mXwyIl4HBfnKBHZGXzuB5nzMepPxXsRvMs7j +jlCeHPuXuH2/fKUxiEYEExECAAYFAkFE9xsACgkQwtDPyTesBYy1zwCfSxB7A0EI +23pgWUzzjoRR7mQ2p8gAn1HFLYxb8/FDAXvr6o7guP4RI4fViEYEExECAAYFAkGS +82gACgkQuFXdJW0mnu2TFwCgpC9Eku3Um7i8wS+IWJYrql6wWXoAn3uK5E/2X3yq +k5O6x+TJ1YlUmljOiEYEEhECAAYFAkGUVZUACgkQEC8OJ8ylIRq8pQCfd3cgjAm3 +iJqdBkixY0chjNgOiMYAnj9cvFRraOkyJ2ERiGo6N/M2xPZDiIEEExECAEECGwMC +HgECF4AGCwkIBwMCBBUIAwIEFgMCAQUCRzrMwyAYeC1oa3A6Ly9wb29sLnNrcy1r +ZXlzZXJ2ZXJzLm5ldAAKCRDIhqQr1bLw+8oHAJ9m6ds3FWr18kIvFFGVwLFXo01L +ywCg6ZZvHf95mQ7t5L6qZsEabhMnj7qJASIEEAECAAwFAkODuY4FAwASdQAACgkQ +lxC4m8pXrXwkvAf+K10jpWpCs+XPlVzOpQZN62QP8KfMcaoFzpWScld0f9ak76Vg +XUgZmbWzbq3eEU2U9Z2tYy5LTW6SK0Gx92InZmPO6PiTLmq+0HaE/EQZTRVScitf +wpDJ2NPoUsWo4/Y94gyefJG+ZJ4Q442LtrodvDMRB7cda+q1UkIy2cPv0NrmmTrp +soC2sX3whwgovyRCfXMwRlMN9oo2VBpxsOdrYP7HxKxSlkX3GHqdlpxwEvE/94Gs +yEHjhCRQIyncVmWGSVACIh1qkbra2d8bxifjiQgid2/rFPg2J9/tgqLW66lFS+4K +8lAnr2VBt/gT3hEfFyj7pzBDew1PqR3r8p5VzIhGBBARAgAGBQJFUn3jAAoJEMeJ +s1zBdbHDbisAn3iskSQ5IOuej/9HqjbXZ2nrjJKCAKDCJj3G/+Lwsy7cVJoWo+Rw +p8hPOYicBBABAgAGBQJFUpO8AAoJEMWd1pKOV86Z4gkD/jgRGdVdZUUOw13xFe6J +De2eofvsKbYZxak/oVY25YQXcyu2uUhj6ssb0r48aal9EN80SR8KusqhohFzzEeC +hcbrVNBwOJxDxx3ahSN8CdH1bG7n8PrhD2Kvt7kjin6dpDvfB8gyjs3RfmiEEs0T +dzwcVEaPfvm8wZf43pTh21ehiEYEEBECAAYFAkVShToACgkQNPBuppokC10yiACd +EV7be/WP6WJEYwwTVlRjen3Cvl4AnjmG2Se2MqCF8V3YP9FogvpsNmNciEYEEBEC +AAYFAkVZoQUACgkQ1YyfLd659kdPiACg9gqTEJQkP5vsX+lE93rEpyR3HNsAoP0v +FoLjzFWYVY5DAk+2qqVdTd8giEYEEBECAAYFAkGVeNMACgkQYkDm65bTnwvXKQCe +OQGWcWPpKnEgSzAGMvmrYlkWYe8An0vdxRCgQtXubeLNrBq+Mphjm8faiQEwBBAB +AgAGBQJFWnHjAAoJEG8zVt/8oW+QTjMIn3aTUFaqK5Nwf5EGCVNCLW45hYZbcaGi +Wg1oTUt3jSX47O/icy9ctNKxTQnHyVA54BPGZi4kJU3MPtjGah/z5pbH3DLP9x2n ++2dtvb994Ek0H5S0AbcDforreTvF0XVd6du590XNX/x0xVA2fS3Sj9qTV9ujwHUO +oeCVhm4S6JohJyOWdx7bVqH/dlHa/p7FyX7W4Os9AQ1MQivkGuvJrV/ACcfDmsc8 +jGtctyqjTnMMLH56mtjYh7t8m2s3itQ/lWoTEGhKLnSPT6yqoQtSGlvYyGXQi+bH +V/KLbrx6O4GiUBCR3fPyIBsbW153+vkjg6VeDbefflqLAHuzruvMVqDcAwPNEJNv +ef3b5XGm6//OA5GULohGBBARAgAGBQJHLW1zAAoJEJhXkSdLYyMRF1gAn3MlKsa+ +CpoQltUceK7gBpt16xsJAJ9QRTys+LlsS1E/bX/BG6hCq2pgMIhFBBARAgAGBQJH +L5D8AAoJEOd8mMQSCOrvnowAl0y95c415zfloXS+FF9IhThdFX8AoLtl7FtPVMXr +8hsV1ewjgSuplccNiEYEEBECAAYFAkcvXw8ACgkQK/tq6CJjZQLiFwCff6m2seeJ ++pWeEnG7DC5I8lmX70QAn0q4W2W2cQwILF2vXnZrI1GrUpcNiEYEExECAAYFAkcv +tKgACgkQWijBlVoaj38J1wCgoPqUtXktagdqkO2akmzZfAXejmIAn0r29+dMyxLa +p0xkb3lXPRbXd2itiEYEExECAAYFAkcvwqEACgkQWyqRrHcQWTlZiwCfURKKyRFj +A+mgBTwcLmxDzRJ890cAn2IOcqfd3AkdTQpdi3tDeJFKkrLDiEYEEBECAAYFAkc4 +MwIACgkQ39rOxjv5kiXtXgCfdxwj71/mwAyD29x8hHWnGlo5obgAn1IR75BdzHXl +iq/wTy1YIagdBPsXiEUEEBECAAYFAkcxtFYACgkQdwLquw9aKcohwQCXXfb0zlnA +xRr8hnjXzLzfR001jACghjTzC/Z7QhMg7onuGa7drmun5HaIRgQQEQIABgUCRzop +kQAKCRDkwkAX6KbxhSvZAKDLw5eQT/l1ZJxYRvsnXeh3+oHUTACfdGmM9KptsMz6 +4byYoiKUl0Zj/8KJAhwEEAECAAYFAkVSgswACgkQsLInExW5BplKQA//X5gpsXVJ +wNyVLcKVshtwM6VDmFxbfUttbVzcC2y8qojPBak2ylRCmUN1uCr4vA0wJnqpBdNP +cUXVSYsFQShhvuNgOzFt5jxX68oZKPCniD40uKf2VW1VYrk8DAGibXh1OIaTxKK2 +JRRhlhzQNS1Tiz/XjibBBaZBJxqXNv5JIdCKhNQHDSiDRfP/VAMpqm+8W3y9Y7eJ +YosS8IRpGDoyEBcTSofan/lQQAtjpG8/5XhUyjxBaTY694MK/9LvNTdOidDFMkyV +Pn6yt3Ez5C3vHPeP656+j3LiEdSBs3Il8c53xJY+QriPs4QJH5ySgA7tOIHFsYPy +G+cDlccUtFvz1z2pqW5TY1NM8g3NQs1gnyBtNp+Kw2O5NFKdF21fvIhW0O5X4S94 +tdvyQgzB/C0Zs/+hg/YKNjLBzMvdlADYGEkp95C5Lue4sn0UIhH48np+ByIrMbcI +lK+dUs6BLxEanl4niHap4JFODINa4drN3ntQOfJeZfWPANTtn7yNjHqbQXNoHZtf +1ITU0p5lGczrLdkE7ntvTIwpDayCZY4G3D+hsGRppI3QTy0QVm0Ki7YayOAOigUw +VJ+l5xH9FZOC9Y8cKbIa8NBd2z72z3ACofZVCOmlCuLg9Z3BDAboTAG9tPnmuSum +xWXvt95dreiUiBhqf/RhIGkHQs6J/5rpYnKJAhwEEAECAAYFAkVSgt8ACgkQPmqx +GlbVGZVLWg/9GhZ3Px9mIEaC1W9mtlzsPlECGpXiN3q0pSF8+tyyODnHx9pGyUaE +ZQkkYRDPn7j5AiMp4ftWg40NeTGXSjPdaPJjG/zQR3+o7WHVaoOBFzCpQpNBi7Nm +mmi7TgFuBIzrXydf+mbjJMf7QAZB3Mv8bLXQpozv4utqto1xap+iTcd4tLxATOb/ +lib+z8jS1htCidhMVJYBDCSb2oOUv5oyb86EaPl3AEhxtiql0WMp4WFj8mcNL0re +IwbSH3lf7Plo3+sbDT6VWF79v+/UmvuHWOGFfSlo62iUKxUT2rtLL1YdBpwJbkcF +U6tpJ44JF3OAS9FS1avFlsvRbrYwciLt0VV2tr/Cd7BD01Tj+ZsrSo9sNEWDzzmF +qXSruyXFnfuI6xOqkK5veMxse4h3TCCs0vcEfuVB98BACqf8FBd3yZ906vGi9CAL +B2873C2N39QfKQqzghSOtaWQZns+lwOSRe0ryZlm7PY6h7CAOOtxAY7CAeX78bYw +VcB45Iqo0/hVMz/oSIXor1hrQhCX/gKzTtGt6egxmaABr5F8yeTliwUV7LrFOKlY +OnYqJAQGmuzjd3xhj/HFhF3dH528cZuMGoO2xub3NepD/bERA1W9vq+jb4ZF++4E +9Yjo+XEro7HVj5018s9r/j7vC/g5pvw5spZYot6D4HbiRysO93S/nPy5BA0EPiab +qxAQAN7PSlKsOr6r4fEeKmCz3mMRfxQnRH4Oe5i15TK+VlhN3AnFSRnaVy4eqHMW +GsOQ5Qs+mrbHKv8OC06DKHczaNZ3mL+qUA+9EfIdLOlFkidZH/JL8OKuewUZwtmo +re/u+6I06AvNBO1blAKPySUKZFHEibxVPkdcJwUoeJGC1i7SntNC8x9JcggpoFIg +xWmgkZDsVuBdTcm/isWKd2zPIjI0OagNQjjipFdrW9j54ujbUz6kqpkMYjH1rMTv +XR/3SXIuu3BjZLDxwkePz2kYbVakKlDna+wnYsAjpP+ufM7LUdlmw4OHUK3irnF+ +ynN/sJu20D6g87e6NiXe2Tf42eNZU5EGonRDtAktUBhfqohjLxC3kWHmWQ6SDV5p +aOV5qmpiMFnHVVIhH2DKZr65aEBtMG5UHm3SaEZPYQaz81ePQC6jLYqd5vH+oB6H +riQ3pYZ9XHry+ktuNGha0jV1ssrBwm+kWDFsS2i6w6pAB/YDHvMsbOBH5fPGpCfq +iJM4gsdZSM69Uls1ccfjtXN3rRSs9cpYx4Yk43LvTOoftv3GGAFA/Gnx9NGXL6yy +gE/RAHSD10UiEjuNLLCTLNF5JeSkxQzZL77rscGu5dmQr3WywV2RPCkuwk7qE/F4 +dvDshxNYunZ1FcCKojcXmsAsfofINjClBjt/xHWo2gE96i6fAAQLD/wN6jE7AUUS +Uo6k2qxh4A1RRycAHFrRy+8jjq/W0g11y02INuqRbVj1+ohaPvDWwI4vXzPU+YHh +8bJ3IqPp/bXPB7DHlB8IUdQnIP0RyI1iRunAlrcZPao8CM6+FvKJVqtqf3J48oH7 +cksCfROMuF7j8JVecocOz9U3pLxXQxmNzOyvwuxBMKDtkAFJB6289pR7Hf8I1+x8 +rMJLCVx3jmiVgoXr1LBeTPToWANoLCJW0ZKTt39DtS2vCN4ode6ICDPoaTHZwg+a +uc+ZM9Fo3EYHZtSfLS5q9c90DqebPmOSxzlTTkrAM+ulKqWjQY8NHa8/JjvZiI+D +P4vy+tJuO/RsQz1PUkTum4qcEEPVlQPGEKDz96zrOxtm8cTXkRj4z/pbJfftgj3e +wJoyAlahV08mTl5RKVDwsiUpS6rH3wQUC/iWsJnu6V17bjzjjWcZiD/aO1m+0725 +fhqwffJGJxeKu/sR7slKf+c0pihBPEMHvEIBs5SfcER3+MFKH5mewAzn+YZwndcR +De1NC4Us1jN/9LZ13vjZBW+1Z12OPi3j0uVdYEzBsmDEclchJv91SBQ0IYBpS4fx +0GKkJuncKPsRbaUDc/L8a43m9pEEUE4Y/e1TvYfHJGFtA0/obNIU4MwsXx8IY2wY +M6h0fqBuMDNIo0sEOCZF2t8vAzIMP9pjP4hGBBgRAgAGBQI+JpurAAoJEMiGpCvV +svD7YRkAniN8zA4YNKBoDfVkKRJ9kF4QfRjpAKC2/TfdpMED//hCeSWUk1o/hhli +nQ== +=McJg -----END PGP PUBLIC KEY BLOCK----- ]]></programlisting> ==== //depot/projects/dtrace/src/ObsoleteFiles.inc#30 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.120 2007/11/21 10:49:33 ru Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.121 2007/11/27 13:58:25 brix Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -3964,9 +3964,10 @@ # - usr/share/tmac/mm/se_locale # - var/yp/Makefile -# 20071119: shared library version bump +# 20071120: shared library version bump OLD_LIBS+=usr/lib/libasn1.so.8 OLD_LIBS+=usr/lib/libgssapi.so.8 +OLD_LIBS+=usr/lib/libgssapi_krb5.so.8 OLD_LIBS+=usr/lib/libhdb.so.8 OLD_LIBS+=usr/lib/libkadm5clnt.so.8 OLD_LIBS+=usr/lib/libkadm5srv.so.8 ==== //depot/projects/dtrace/src/etc/gss/mech#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/gss/mech,v 1.1 2005/12/29 14:40:18 dfr Exp $ +# $FreeBSD: src/etc/gss/mech,v 1.2 2007/11/27 21:47:56 jhb Exp $ # # Name OID Library name Kernel module -kerberosv5 1.2.840.113554.1.2.2 /usr/lib/libgssapi_krb5.so.8 - +kerberosv5 1.2.840.113554.1.2.2 /usr/lib/libgssapi_krb5.so.9 - ==== //depot/projects/dtrace/src/gnu/usr.bin/groff/tmac/mdoc.local#12 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.61 2007/10/22 10:01:58 ru Exp $ +.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.62 2007/11/27 10:00:33 jkoshy Exp $ .\" .\" %beginstrip% . @@ -52,7 +52,7 @@ .ds doc-str-Lb-libmd Message Digest (MD4, MD5, etc.) Support Library (libmd, \-lmd) .ds doc-str-Lb-libmemstat Kernel Memory Allocator Statistics Library (libmemstat, \-lmemstat) .ds doc-str-Lb-libnetgraph Netgraph User Library (libnetgraph, \-lnetgraph) -.ds doc-str-Lb-libpmc Performance Monitoring Counters API (libpmc, \-lpmc) +.ds doc-str-Lb-libpmc Performance Monitoring Counters Interface Library (libpmc, \-lpmc) .ds doc-str-Lb-librpcsvc RPC Service Library (librpcsvc, \-lrpcsvc) .ds doc-str-Lb-libsdp Bluetooth Service Discovery Protocol User Library (libsdp, \-lsdp) .ds doc-str-Lb-libthr 1:1 Threading Library (libthr, \-lthr) ==== //depot/projects/dtrace/src/lib/libc/gen/Symbol.map#4 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.6 2007/05/31 13:01:33 deischen Exp $ + * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.7 2007/11/27 16:22:21 jasone Exp $ */ FBSD_1.0 { @@ -378,6 +378,7 @@ _pthread_kill; _pthread_main_np; _pthread_mutex_destroy; + _pthread_mutex_init_calloc_cb; _pthread_mutex_init; _pthread_mutex_lock; _pthread_mutex_trylock; ==== //depot/projects/dtrace/src/lib/libc/stdlib/malloc.3#7 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)malloc.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdlib/malloc.3,v 1.73 2007/06/15 22:32:33 jasone Exp $ +.\" $FreeBSD: src/lib/libc/stdlib/malloc.3,v 1.74 2007/11/27 03:18:26 jasone Exp $ .\" -.Dd June 15, 2007 +.Dd October 1, 2007 .Dt MALLOC 3 .Os .Sh NAME @@ -177,6 +177,19 @@ The process will call .Xr abort 3 in these cases. +.It B +Increase/decrease the per-arena lock contention threshold at which a thread is +randomly re-assigned to an arena. +This dynamic load balancing tends to push threads away from highly contended +arenas, which avoids worst case contention scenarios in which threads +disproportionately utilize arenas. +However, due to the highly dynamic load that applications may place on the +allocator, it is impossible for the allocator to know in advance how sensitive +it should be to contention over arenas. +Therefore, some applications may benefit from increasing or decreasing this +threshold parameter. +This option is not available for some configurations (non-PIC). +This option can be specified multiple times. .It H Use .Xr madvise 2 @@ -204,6 +217,18 @@ Increase/decrease the virtual memory chunk size by a factor of two. The default chunk size is 1 MB. This option can be specified multiple times. +.It L +Increase/decrease the per-arena number of slots for lazy deallocation. +Lazy deallocation can decrease lock contention, especially for programs that use +the producer/consumer model. +The default is 256 slots per arena (so +.Ev MALLOC_OPTIONS=lllllllll +will disable lazy deallocation), but note that due to algorithmic details, the +cache is typically flushed well before it completely fills. +This option has no impact unless there are multiple CPUs, and lazy deallocation +does not activate unless the program uses multiple threads. +This option is not available for some configurations (non-PIC). +This option can be specified multiple times. .It N Increase/decrease the number of arenas by a factor of two. The default number of arenas is four times the number of CPUs, or one if there ==== //depot/projects/dtrace/src/lib/libc/stdlib/malloc.c#11 (text+ko) ==== @@ -98,14 +98,14 @@ * defaults the A and J runtime options to off. These settings are appropriate * for production systems. */ -/* #define MALLOC_PRODUCTION */ +/* #define MALLOC_PRODUCTION */ #ifndef MALLOC_PRODUCTION # define MALLOC_DEBUG #endif #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.147 2007/06/15 22:00:16 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.151 2007/11/27 03:17:30 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -171,6 +171,7 @@ # define QUANTUM_2POW_MIN 4 # define SIZEOF_PTR_2POW 2 # define USE_BRK +# define CPU_SPINWAIT __asm__ volatile("pause") #endif #ifdef __ia64__ # define QUANTUM_2POW_MIN 4 @@ -189,6 +190,7 @@ #ifdef __amd64__ # define QUANTUM_2POW_MIN 4 # define SIZEOF_PTR_2POW 3 +# define CPU_SPINWAIT __asm__ volatile("pause") #endif #ifdef __arm__ # define QUANTUM_2POW_MIN 3 @@ -202,9 +204,9 @@ # define USE_BRK #endif -#define SIZEOF_PTR (1 << SIZEOF_PTR_2POW) +#define SIZEOF_PTR (1U << SIZEOF_PTR_2POW) -/* sizeof(int) == (1 << SIZEOF_INT_2POW). */ +/* sizeof(int) == (1U << SIZEOF_INT_2POW). */ #ifndef SIZEOF_INT_2POW # define SIZEOF_INT_2POW 2 #endif @@ -226,7 +228,7 @@ * negatively affect performance. */ #define CACHELINE_2POW 6 -#define CACHELINE ((size_t)(1 << CACHELINE_2POW)) +#define CACHELINE ((size_t)(1U << CACHELINE_2POW)) /* Smallest size class to support. */ #define TINY_MIN_2POW 1 @@ -237,7 +239,7 @@ * power of 2. */ #define SMALL_MAX_2POW_DEFAULT 9 -#define SMALL_MAX_DEFAULT (1 << SMALL_MAX_2POW_DEFAULT) +#define SMALL_MAX_DEFAULT (1U << SMALL_MAX_2POW_DEFAULT) /* * Maximum desired run header overhead. Runs are sized as small as possible @@ -252,18 +254,69 @@ * RUN_MAX_OVRHD_RELAX specifies the maximum number of bits per region of * overhead for which RUN_MAX_OVRHD is relaxed. */ -#define RUN_MAX_OVRHD 0.015 -#define RUN_MAX_OVRHD_RELAX 1.5 +#define RUN_MAX_OVRHD 0.015 +#define RUN_MAX_OVRHD_RELAX 1.5 /* Put a cap on small object run size. This overrides RUN_MAX_OVRHD. */ -#define RUN_MAX_SMALL_2POW 15 -#define RUN_MAX_SMALL (1 << RUN_MAX_SMALL_2POW) +#define RUN_MAX_SMALL_2POW 15 +#define RUN_MAX_SMALL (1U << RUN_MAX_SMALL_2POW) + +/* Default size of each arena's lazy free cache. */ +#define LAZY_FREE_2POW_DEFAULT 8 +/* + * Number of pseudo-random probes to conduct before considering the cache to be + * overly full. It takes on average n probes to detect fullness of (n-1)/n. + * However, we are effectively doing multiple non-independent trials (each + * deallocation is a trial), so the actual average threshold for clearing the + * cache is somewhat lower. + */ +#define LAZY_FREE_NPROBES 5 + +/* + * Hyper-threaded CPUs may need a special instruction inside spin loops in + * order to yield to another virtual CPU. If no such instruction is defined + * above, make CPU_SPINWAIT a no-op. + */ +#ifndef CPU_SPINWAIT +# define CPU_SPINWAIT +#endif + +/* + * Adaptive spinning must eventually switch to blocking, in order to avoid the + * potential for priority inversion deadlock. Backing off past a certain point + * can actually waste time. + */ +#define SPIN_LIMIT_2POW 11 + +/* + * Conversion from spinning to blocking is expensive; we use (1U << + * BLOCK_COST_2POW) to estimate how many more times costly blocking is than + * worst-case spinning. + */ +#define BLOCK_COST_2POW 4 + +/* + * We use an exponential moving average to track recent lock contention, where + * the size of the history window is N, and alpha=2/(N+1). + * + * Due to integer math rounding, very small values here can cause substantial + * degradation in accuracy, thus making the moving average decay faster than it + * would with precise calculation. + */ +#define BALANCE_ALPHA_INV_2POW 9 + +/* + * Threshold value for the exponential moving contention average at which to + * re-assign a thread. + */ +#define BALANCE_THRESHOLD_DEFAULT (1U << (SPIN_LIMIT_2POW-4)) /******************************************************************************/ /* - * Mutexes based on spinlocks. We can't use normal pthread mutexes, because - * they require malloc()ed memory. + * Mutexes based on spinlocks. We can't use normal pthread spinlocks in all + * places, because they require malloc()ed memory, which causes bootstrapping + * issues in some cases. */ typedef struct { spinlock_t lock; @@ -319,6 +372,11 @@ size_t allocated_large; uint64_t nmalloc_large; uint64_t ndalloc_large; + +#ifndef NO_TLS + /* Number of times this arena reassigned a thread due to contention. */ + uint64_t nbalance; +#endif }; typedef struct chunk_stats_s chunk_stats_t; @@ -374,17 +432,27 @@ typedef struct arena_chunk_map_s arena_chunk_map_t; struct arena_chunk_map_s { - /* Number of pages in run. */ + /* + * Number of pages in run. For a free run that has never been touched, + * this is NPAGES_EMPTY for the central pages, which allows us to avoid + * zero-filling untouched pages for calloc(). + */ +#define NPAGES_EMPTY ((uint32_t)0x0U) uint32_t npages; /* - * Position within run. For a free run, this is POS_FREE for the first - * and last pages. The POS_FREE special value makes it possible to - * quickly coalesce free runs. + * Position within run. For a free run, this is POS_EMPTY/POS_FREE for + * the first and last pages. The special values make it possible to + * quickly coalesce free runs. POS_EMPTY indicates that the run has + * never been touched, which allows us to avoid zero-filling untouched + * pages for calloc(). * * This is the limiting factor for chunksize; there can be at most 2^31 * pages in a run. + * + * POS_EMPTY is assumed by arena_run_dalloc() to be less than POS_FREE. */ -#define POS_FREE ((uint32_t)0xffffffffU) +#define POS_EMPTY ((uint32_t)0xfffffffeU) +#define POS_FREE ((uint32_t)0xffffffffU) uint32_t pos; }; @@ -496,8 +564,8 @@ # define ARENA_MAGIC 0x947d3d24 #endif - /* All operations on this arena require that mtx be locked. */ - malloc_mutex_t mtx; + /* All operations on this arena require that lock be locked. */ + pthread_mutex_t lock; #ifdef MALLOC_STATS arena_stats_t stats; @@ -517,7 +585,23 @@ * order to avoid interactions between multiple threads that could make * a single spare inadequate. */ - arena_chunk_t *spare; + arena_chunk_t *spare; + +#ifndef NO_TLS + /* + * The arena load balancing machinery needs to keep track of how much + * lock contention there is. This value is exponentially averaged. + */ + uint32_t contention; + + /* + * Deallocation of small objects can be lazy, in which case free_cache + * stores pointers to those objects that have not yet been deallocated. + * In order to avoid lock contention, slots are chosen randomly. Empty + * slots contain NULL. + */ + void **free_cache; +#endif /* * bins is used to store rings of free regions of the following sizes, @@ -650,9 +734,9 @@ static arena_t **arenas; static unsigned narenas; #ifndef NO_TLS -static unsigned next_arena; +static unsigned narenas_2pow; #endif -static malloc_mutex_t arenas_mtx; /* Protects arenas initialization. */ +static pthread_mutex_t arenas_lock; /* Protects arenas initialization. */ #ifndef NO_TLS >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Nov 28 00:49:07 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B644216A418; Wed, 28 Nov 2007 00: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 66C5316A46D for <perforce@freebsd.org>; Wed, 28 Nov 2007 00: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 42B9013C442 for <perforce@freebsd.org>; Wed, 28 Nov 2007 00: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 lAS0n76p023499 for <perforce@freebsd.org>; Wed, 28 Nov 2007 00:49:07 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS0n7cm023496 for perforce@freebsd.org; Wed, 28 Nov 2007 00:49:07 GMT (envelope-from jb@freebsd.org) Date: Wed, 28 Nov 2007 00:49:07 GMT Message-Id: <200711280049.lAS0n7cm023496@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Cc: Subject: PERFORCE change 129664 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 00:49:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=129664 Change 129664 by jb@jb_freebsd1 on 2007/11/28 00:48:09 Move compatibility definitions to a more suitable place. Affected files ... .. //depot/projects/dtrace/src/compat/opensolaris/include/unistd.h#1 add .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/unistd.h#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Wed Nov 28 02:04:29 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A30C816A420; Wed, 28 Nov 2007 02:04: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 4C91916A418 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:04:29 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3F13F13C44B for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:04:29 +0000 (UTC) (envelope-from gcooper@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 lAS24T5U028607 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:04:29 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS24TZ8028604 for perforce@freebsd.org; Wed, 28 Nov 2007 02:04:29 GMT (envelope-from gcooper@FreeBSD.org) Date: Wed, 28 Nov 2007 02:04:29 GMT Message-Id: <200711280204.lAS24TZ8028604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper <gcooper@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129665 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 02:04:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=129665 Change 129665 by gcooper@shiina-ibook on 2007/11/28 02:03:56 Readding the tools and applying some style(9) fixes, but not too much.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_add/Makefile#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_add/main.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_add/run.sh#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_add/test.sh#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_delete/Makefile#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_delete/main.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_delete/run.sh#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_delete/test.sh#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/Makefile#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/main.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/match.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/pkg_info.h#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/run.sh#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/show.c#1 add .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_info/test.sh#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Nov 28 02:15:42 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 87E6816A421; Wed, 28 Nov 2007 02:15:42 +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 E4DD316A419 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:15:41 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D750B13C4D1 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:15:41 +0000 (UTC) (envelope-from gcooper@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 lAS2FfVV029140 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 02:15:41 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS2FfSo029137 for perforce@freebsd.org; Wed, 28 Nov 2007 02:15:41 GMT (envelope-from gcooper@FreeBSD.org) Date: Wed, 28 Nov 2007 02:15:41 GMT Message-Id: <200711280215.lAS2FfSo029137@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper <gcooper@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129667 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 02:15:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=129667 Change 129667 by gcooper@shiina-ibook on 2007/11/28 02:14:59 Some style(9) changes. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.c#2 (text+ko) ==== @@ -63,9 +63,8 @@ struct stat sb; db = malloc(sizeof(struct pkg_db)); - if (!db) { + if (!db) return NULL; - } /* Make a relative path into an absolute path */ if (base == NULL) { @@ -151,17 +150,14 @@ pkg_db_install_pkg_action(struct pkg_db *db, struct pkg *pkg, const char *prefix, int reg, int scripts, int fake, pkg_db_action *action) { - if (!db) { + if (db == NULL) return -1; - } - if (!pkg) { + if (pkg == NULL) return -1; - } - if (!db->pkg_install) { - return -1; - } + if (db->pkg_install == NULL) + return -1; if (action == NULL) return -1; @@ -176,13 +172,11 @@ int pkg_db_is_installed(struct pkg_db *db, struct pkg *pkg) { - if (!db) { + if (db == NULL) return -1; - } - if (!db->pkg_is_installed) { + if (db->pkg_is_installed == NULL) return -1; - } return db->pkg_is_installed(db, pkg); } @@ -291,11 +285,10 @@ int pkg_db_free(struct pkg_db *db) { - if (!db) { + if (db == NULL) return -1; - } - if (db->db_base) + if (db->db_base != NULL) free(db->db_base); free(db); @@ -353,7 +346,7 @@ file = pkg_get_next_file(pkg); while (file != NULL) { - if (strcmp((const char *)filename, pkgfile_get_name(file)) ==0){ + if (strcmp((const char *)filename, pkgfile_get_name(file)) == 0) { pkgfile_free(file); return 0; } @@ -365,4 +358,4 @@ /** * @} - */+ */ ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#2 (text+ko) ==== @@ -172,7 +172,8 @@ * @param pkg The package to install * @param prefix If non-NULL this will override the packages prefix * @param reg If true register the package in the database - * @param scripts If true will run the packafes scripts + * @param exec_pkg_scripts If true will execute the package scripts + * specified by the pkg_script_pre and pkg_script_post variables. * @param fake Should we actually install the package or * just report what would have happened * @param pkg_action A function to call when an action takes place @@ -182,7 +183,7 @@ */ static int freebsd_install_pkg_action(struct pkg_db *db, struct pkg *pkg, - const char *prefix, int reg, int scripts, int fake, + const char *prefix, int reg, int exec_pkg_scripts, int fake, pkg_db_action *pkg_action) { struct pkg_install_data install_data; @@ -192,8 +193,9 @@ assert(pkg != NULL); assert(pkg_action != NULL); - if (getwd(cwd) == NULL) + if (getwd(cwd) == NULL) { return -1; + } /* Set the package environment */ if (prefix == NULL) { @@ -210,7 +212,7 @@ /* Run +REQUIRE */ pkg_action(PKG_DB_INFO, "Running ... for %s..", pkg_get_name(pkg)); - if (!fake) { + if (fake == 0) { /** @todo Check if the force flag is set */ if (pkg_run_script(pkg, prefix, pkg_script_require) != 0) { chdir(cwd); @@ -219,10 +221,10 @@ } /* Run Pre-install */ - pkg_action(PKG_DB_INFO, "Running pre-install for %s..", + pkg_action(PKG_DB_INFO, "Running pre-install script for %s..", pkg_get_name(pkg)); - if (!fake && scripts) + if (fake == 0 && exec_pkg_scripts != 0) pkg_run_script(pkg, prefix, pkg_script_pre); /* Do the Install */ @@ -231,6 +233,7 @@ install_data.last_dir = NULL; install_data.last_file[0] = '\0'; install_data.directory[0] = '\0'; + if (pkg_install(pkg, prefix, reg, pkg_action, &install_data, freebsd_do_chdir, freebsd_install_file, freebsd_do_exec, freebsd_register) != 0) { @@ -241,17 +244,24 @@ /* Extract the +MTREE */ pkg_action(PKG_DB_INFO, "Running mtree for %s..", pkg_get_name(pkg)); - if (!fake) + if (fake == 0) pkg_run_script(pkg, prefix, pkg_script_mtree); /* Run post-install */ - pkg_action(PKG_DB_INFO, "Running post-install for %s..", + pkg_action(PKG_DB_INFO, "Running post-install script for %s..", pkg_get_name(pkg)); - if (!fake && scripts) + if (fake == 0 && exec_pkg_scripts != 0) pkg_run_script(pkg, prefix, pkg_script_post); - /** @todo Display contents of \@display */ + /* + * Andrew Turner: @todo Display contents of \@display + * + * Garrett Cooper: Looking at the original pkg_install, + * this doesn't appear to be implemented other than just + * as a printf statement. What is the purpose of this + * directive? + */ chdir(cwd); return 0; @@ -273,9 +283,9 @@ assert(pkg != NULL); asprintf(&dir, "%s" DB_LOCATION "/%s", db->db_base, pkg_get_name(pkg)); - if (!dir) { - return -1; - } + if (dir == 0) + return -1; + pkg_remove_extra_slashes(dir); is_installed = -1; @@ -290,13 +300,20 @@ /* Does the package have an origin and if so is that origin installed */ if (pkg_get_origin(pkg) != NULL) { + pkgs = freebsd_get_installed_match(db, pkg_match_by_origin, 0, (const void *)pkg_get_origin(pkg)); - if (pkgs != NULL && pkgs[0] != NULL) + + if (pkgs != NULL && pkgs[0] != NULL) { is_installed = 0; + } + pkg_list_free(pkgs); + } + return is_installed; + } /** @@ -319,13 +336,16 @@ assert(db->db_base != NULL); asprintf(&dir, "%s" DB_LOCATION, db->db_base); - if (!dir) - return NULL; + + if (dir == NULL) + return NULL; + pkg_remove_extra_slashes(dir); d = opendir(dir); free(dir); - if (!d) - return NULL; + + if (d == NULL) + return NULL; packages_size = sizeof(char *); packages = malloc(packages_size); @@ -340,12 +360,15 @@ if (de->d_name[0] == '.' || de->d_type != DT_DIR) continue; + asprintf(&dir, "%s" DB_LOCATION "/%s", db->db_base, de->d_name); pkg_remove_extra_slashes(dir); pkg = pkg_new_freebsd_installed(de->d_name, dir); + if (match(pkg, data) == 0) { + packages_size += sizeof(char *); packages = realloc(packages, packages_size); packages[packages_pos] = pkg; @@ -355,6 +378,7 @@ /* Stop after count packages */ if (count != 0 && packages_pos == count + 1) break; + } else pkg_free(pkg); free(dir); @@ -383,7 +407,7 @@ * @return -1 on fatal error */ static int -freebsd_deinstall_pkg(struct pkg_db *db, struct pkg *the_pkg, int scripts, +freebsd_deinstall_pkg(struct pkg_db *db, struct pkg *the_pkg, int exec_pkg_scripts, int fake, int force, int clean_dirs, pkg_db_action *pkg_action) { struct pkg_install_data deinstall_data; @@ -393,8 +417,8 @@ assert(db != NULL); assert(the_pkg != NULL); - /* Get the real package. The one supplyed may be an empty one */ - /** @todo Check if the package suplyed is a valid package or not */ + /* Get the real package. The one supplied may be an empty one */ + /** @todo Check if the package supplied is valid or not */ real_pkg = freebsd_get_package(db, pkg_get_name(the_pkg)); /* Check if the package is installed */ if (real_pkg == NULL) { @@ -440,7 +464,7 @@ * There is a sligntly different * message when the force flag is set */ - if (force) { + if (force != 0) { pkg_action(PKG_DB_INFO, "package '%s' is required by these other packages " "and may not be deinstalled (but I'll delete it " @@ -454,11 +478,11 @@ free(buf); /* Only return when the not being forced to */ - if (!force) + if (force != 0) return -1; } - if (!fake && scripts) { + if (fake == 0 && exec_pkg_scripts != NULL) { if (pkg_run_script(real_pkg, NULL, pkg_script_require_deinstall) != 0 && !force) { /* XXX */ @@ -511,7 +535,7 @@ return -1; } - if (!fake && scripts) { + if (fake == 0 && exec_pkg_scripts == 1) { /** @todo Run +POST-DEINSTALL <pkg-name>/+DEINSTALL <pkg-name> POST-DEINSTALL */ if (pkg_run_script(real_pkg, NULL, pkg_script_post_deinstall) != 0 && !force) { From owner-p4-projects@FreeBSD.ORG Wed Nov 28 03:46:20 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A333B16A421; Wed, 28 Nov 2007 03:46:20 +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 2655716A417 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 03:46:20 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1808E13C45D for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 03:46:20 +0000 (UTC) (envelope-from gcooper@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 lAS3kJPL033863 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 03:46:19 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS3kJAm033860 for perforce@freebsd.org; Wed, 28 Nov 2007 03:46:19 GMT (envelope-from gcooper@FreeBSD.org) Date: Wed, 28 Nov 2007 03:46:19 GMT Message-Id: <200711280346.lAS3kJAm033860@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper <gcooper@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129669 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 03:46:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=129669 Change 129669 by gcooper@shiina-ibook on 2007/11/28 03:45:37 1. Correct accidental poor style on my part. 2. Add a bit more stylishy items. 3. Solve a bug in freebsd_run_script [system(3) does in fact return -1 sometimes, ya know?]. 4. Finish off most of the deinstall script support. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#3 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#3 (text+ko) ==== @@ -193,9 +193,8 @@ assert(pkg != NULL); assert(pkg_action != NULL); - if (getwd(cwd) == NULL) { + if (getwd(cwd) == NULL) return -1; - } /* Set the package environment */ if (prefix == NULL) { @@ -427,32 +426,42 @@ return -1; } - /** @todo Check if package is dependended on */ + /* + * Calculate reverse dependencies -- is this package required by + * anything else? + */ deps = pkg_get_reverse_dependencies(real_pkg); + + /* No dependencies */ if (deps == NULL) { return -1; - } else if (deps[0] != NULL) { + } + /* We have dependencies to go through.. */ + else if (deps[0] != NULL) { unsigned int pos, buf_size, buf_used; char *buf; - /* XXX */ + buf_used = 0; - buf_size = 1024; - buf = malloc(buf_size); + buf_size = PKGDB_DEPS_READAHEAD_SIZE; + buf = (char*) malloc(buf_size); + if (buf == NULL) { pkg_action(PKG_DB_INFO, "package '%s' is required by other packages and " - "may not be deinstalled however an error occured " - "while retrieving the list of packages", + "may not be deinstalled.\n" + "An error occurred while retrieving the list of " + "packages (buffer memory could not be allocated)", pkg_get_name(real_pkg)); return -1; } - /* Load the names of the packages into a buffer */ + + /* Load the package names into a buffer */ for (pos = 0; deps[pos] != NULL; pos++) { size_t len; len = strlen(pkg_get_name(deps[pos])); if (buf_used + len >= buf_size) { - buf_size += 1024; + buf_size += PKGDB_DEPS_READAHEAD_SIZE; buf = realloc(buf, buf_size); } strlcat(buf, pkg_get_name(deps[pos]), buf_size); @@ -461,45 +470,79 @@ } /* - * There is a sligntly different - * message when the force flag is set + * The message is slightly different when force is set */ - if (force != 0) { - pkg_action(PKG_DB_INFO, - "package '%s' is required by these other packages " - "and may not be deinstalled (but I'll delete it " - "anyway):\n%s", pkg_get_name(real_pkg), buf); - } else { - pkg_action(PKG_DB_INFO, - "package '%s' is required by these other packages " - "and may not be deinstalled:\n%s", - pkg_get_name(real_pkg), buf); - } + pkg_action(PKG_DB_INFO, + "package '%s' is required by these packages and may not be" + " deinstalled%s:\n%s", + pkg_get_name(real_pkg), + ( force == ? "" : "(but I'll delete it anyway)"), buf); free(buf); /* Only return when the not being forced to */ if (force != 0) return -1; + } + /* + * This is equivalent to the: + * + * if (fexists(POST_DEINSTALL_FNAME)) .. else { .. } + * + * block in "pkg_install/delete/perform.c". + */ if (fake == 0 && exec_pkg_scripts != NULL) { + + /* Try +REQUIRE */ if (pkg_run_script(real_pkg, NULL, - pkg_script_require_deinstall) != 0 && !force) { - /* XXX */ - return -1; + pkg_script_require_deinstall) != 0 && + errno != ENOFILE && force == 0) { + + warnx("deinstall +REQUIRE script execution failed"); + return -1; + } + + /* +REQUIRE didn't exist; try +PRE-DEINSTALL */ + else if (errno == ENOFILE) { - if (pkg_run_script(real_pkg, NULL, pkg_script_pre_deinstall) - != 0 && !force) { - /* XXX */ - return -1; - } + /* Try +PRE-DEINSTALL */ + if (pkg_run_script(real_pkg, NULL, + pkg_script_pre_deinstall) != 0 && + errno != ENOFILE && force == 0) { + + warnx("pre-deinstall script execution failed"); + return -1; + + } + + /* +PRE-DEINSTALL didn't exist; try +DEINSTALL */ + else if (errno == ENOFILE) { + + /* Try +DEINSTALL */ + if (pkg_run_script(real_pkg, NULL, + pkg_script_deinstall) != 0 && + errno != ENOFILE && force == 0) { + warnx("deinstall +REQUIRE script execution failed"); + return -1; + } + + /* + * XXX: Else, oddly enough no deinstall scripts exist. + * + * Is this correct behavior?! + * + * According to pkg_delete(1)'s existing code, yes + * it's supposed to be this way, but logically does + * it make sense? + * + */ + + } + + } - if (pkg_run_script(real_pkg, NULL, pkg_script_deinstall) != 0 - && !force) { - /* XXX */ - return -1; - } } /* Remove the reverse dependencies */ @@ -513,7 +556,7 @@ pkg_action(PKG_DB_INFO, "Trying to remove " "dependency on package '%s' with '%s' origin.", pkg_get_name(deps[pos]), pkg_get_origin(deps[pos])); - if (!fake) { + if (fake == 0) { file = pkg_get_control_file(deps[pos], "+REQUIRED_BY"); pkgfile_remove_line(file, @@ -531,16 +574,16 @@ deinstall_data.directory[0] = '\0'; if (pkg_deinstall(real_pkg, pkg_action, &deinstall_data, freebsd_do_chdir, freebsd_deinstall_file, - freebsd_do_exec, freebsd_deregister) != 0 && !force) { + freebsd_do_exec, freebsd_deregister) != 0 && force != 0) { return -1; } if (fake == 0 && exec_pkg_scripts == 1) { /** @todo Run +POST-DEINSTALL <pkg-name>/+DEINSTALL <pkg-name> POST-DEINSTALL */ - if (pkg_run_script(real_pkg, NULL, pkg_script_post_deinstall) - != 0 && !force) { - /* XXX */ - return -1; + if (pkg_run_script(real_pkg, NULL, pkg_script_post_deinstall) != 0 && + force != 0) { + warnx("post-deinstall script execution failed"); + return -1; } } @@ -603,7 +646,7 @@ install_data->directory); } - if (!install_data->fake) { + if (install_data->fake == 0) { pkg_dir_build(install_data->directory, 0); return chdir(install_data->directory); } ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#2 (text+ko) ==== @@ -994,7 +994,9 @@ /** * @brief Callback for pkg_run_script() - * @return 0 + * @return 0 on success + * @return -1 on fail, noop or script not found. + * If script not found, set errno to ENOFILE. */ static int freebsd_run_script(struct pkg *pkg, const char *prefix, pkg_script script) @@ -1006,6 +1008,9 @@ char *cwd; int ret = -1; + /* Make sure errno is 0.. */ + errno = 0; + assert(pkg != NULL); fpkg = pkg->data; @@ -1056,8 +1061,10 @@ } /* The script was not found so ignore it */ - if (script_file == NULL) - return 0; + if (script_file == NULL) { + errno = ENOFILE; + return -1; + } if (fpkg->pkg_type == fpkg_from_file) { /** From owner-p4-projects@FreeBSD.ORG Wed Nov 28 04:35:15 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B14A16A46B; Wed, 28 Nov 2007 04:35: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 D8E5A16A468 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 04:35:14 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C94E113C4E1 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 04:35:14 +0000 (UTC) (envelope-from gcooper@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 lAS4ZDS8036849 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 04:35:13 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS4ZDWS036846 for perforce@freebsd.org; Wed, 28 Nov 2007 04:35:13 GMT (envelope-from gcooper@FreeBSD.org) Date: Wed, 28 Nov 2007 04:35:13 GMT Message-Id: <200711280435.lAS4ZDWS036846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper <gcooper@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129672 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 04:35:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=129672 Change 129672 by gcooper@shiina-ibook on 2007/11/28 04:34:41 Finish off post deinstall scripts.. The way that it was I had to split the deinstall script up into pre and post portions because pkg_install(1) has that functionality. I'm not sure why you would really want to do pre and post deinstall deinstall checks, because it seems extremely overkill.. but whatever.. gotta be backwards compatible.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.h#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#4 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#3 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.h#2 (text+ko) ==== @@ -102,7 +102,8 @@ pkg_script_mtree, /**< Mtree */ pkg_script_require, /**< Requirement check */ pkg_script_require_deinstall, /**< Removal Requirement check */ - pkg_script_deinstall, /**< Deinstall check */ + pkg_script_deinstall_pre, /**< Pre-deinstall check */ + pkg_script_deinstall_post, /**< Post-deinstall check */ pkg_script_pre_deinstall, /**< Pre-removal */ pkg_script_post_deinstall /**< Post-removal */ } pkg_script; ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#4 (text+ko) ==== @@ -522,7 +522,7 @@ /* Try +DEINSTALL */ if (pkg_run_script(real_pkg, NULL, - pkg_script_deinstall) != 0 && + pkg_script_deinstall_pre) != 0 && errno != ENOFILE && force == 0) { warnx("deinstall +REQUIRE script execution failed"); return -1; @@ -578,13 +578,28 @@ return -1; } + /* Let's run the scripts at the end of the deinstall, mmk? */ if (fake == 0 && exec_pkg_scripts == 1) { - /** @todo Run +POST-DEINSTALL <pkg-name>/+DEINSTALL <pkg-name> POST-DEINSTALL */ - if (pkg_run_script(real_pkg, NULL, pkg_script_post_deinstall) != 0 && - force != 0) { - warnx("post-deinstall script execution failed"); + + /* Run post-deinstall script.. */ + if (pkg_run_script(real_pkg, NULL, + pkg_script_post_deinstall) != 0 && + errno != ENOFILE && force != 0) { + warnx("post deinstall script execution failed"); return -1; } + /* Try deinstall script with POST-DEINSTALL arguments.. */ + else if(errno == ENOFILE) { + + if (pkg_run_script(real_pkg, NULL, + pkg_script_deinstall_post) != 0 && + errno != ENOFILE && force != 0) { + warnx("post deinstall script execution failed"); + return -1; + } + + } + } return 0; ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#3 (text+ko) ==== @@ -968,7 +968,10 @@ data = pkgfile_get_data(control[pos]); if (data != NULL) { str1 = data; - /* @todo Write comment on what this does */ + /* + * Split lines tokenized by newlines + * and attempt to add packages.. + */ while ((str2 = strchr(str1, '\n')) != NULL) { unsigned int len = str2-str1; strncpy(pkg_name, str1, len); @@ -977,6 +980,10 @@ str1 = str2+1; } + /* + * @Todo: what the heck does this do + * (in the big picture, that is..)? + */ size = pkgfile_get_size(control[pos]); if ((unsigned int)(str1 - data) != size) { unsigned int len = data + size - str1; @@ -1037,7 +1044,12 @@ } break; case pkg_script_pre_deinstall: + script_file = pkg_get_control_file(pkg, "+PRE-DEINSTALL"); + snprintf(arg, FILENAME_MAX, "PRE-DEINSTALL"); + break; case pkg_script_post_deinstall: + script_file = pkg_get_control_file(pkg, "+POST-DEINSTALL"); + snprintf(arg, FILENAME_MAX, "POST-DEINSTALL"); break; case pkg_script_mtree: assert(script_file == NULL); @@ -1052,9 +1064,14 @@ snprintf(arg, FILENAME_MAX, "DEINSTALL"); } break; - case pkg_script_deinstall: + case pkg_script_deinstall_pre: + case pkg_script_deinstall_post: script_file = pkg_get_control_file(pkg, "+DEINSTALL"); - snprintf(arg, FILENAME_MAX, "DEINSTALL"); + if (script == pkg_script_deinstall_pre) + snprintf(arg, FILENAME_MAX, "DEINSTALL"); + } else { + snprintf(arg, FILENAME_MAX, "DEINSTALL POST-DEINSTALL"); + } break; case pkg_script_noop: return -1; @@ -1067,21 +1084,41 @@ } if (fpkg->pkg_type == fpkg_from_file) { + /** - * @todo Add a lock around mkdtemp as - * arc4random is not thread safe + * Andrew Turner: @todo Add a lock around + * mkdtemp as arc4random is not thread safe + * + * Garrett Cooper: What? Do you mean use + * flock(1), or another randomizing algorithm + * to produce a filename in place of "XXXXXXX"? + * *confused*... */ snprintf(dir, FILENAME_MAX, "/tmp/libpkg_XXXXXXX"); - mkdtemp(dir); + + /* + * mkdtemp(3) returns NULL if the directory + * couldn't be created.. + */ + if(mkdtemp(dir) != NULL) { + + /* + * Change to the temp dir and back up the + * current dir to return here + */ + cwd = getcwd(NULL, 0); + chdir(dir); + + /* Extract the script */ + pkgfile_write(script_file); - /* Change to the temp dir and back up the current dir to return here */ - cwd = getcwd(NULL, 0); - chdir(dir); + } - /* Extract the script */ - pkgfile_write(script_file); } + /* + * Now, to execute the script... + */ switch(script) { case pkg_script_mtree: { @@ -1097,7 +1134,8 @@ case pkg_script_require_deinstall: case pkg_script_pre_deinstall: case pkg_script_post_deinstall: - case pkg_script_deinstall: + case pkg_script_deinstall_pre: + case pkg_script_deinstall_post: /* Check the script has the execute bit set */ pkg_chmod_file(pkgfile_get_name(script_file)); From owner-p4-projects@FreeBSD.ORG Wed Nov 28 07:00:58 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B5BC16A419; Wed, 28 Nov 2007 07:00:58 +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 DC7FA16A417 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 07:00:57 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CB2DA13C474 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 07:00:57 +0000 (UTC) (envelope-from zhouzhouyi@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 lAS70v3p054703 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 07:00:57 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAS70va8054700 for perforce@freebsd.org; Wed, 28 Nov 2007 07:00:57 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Wed, 28 Nov 2007 07:00:57 GMT Message-Id: <200711280700.lAS70va8054700@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU <zhouzhouyi@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129682 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 07:00:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=129682 Change 129682 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/28 07:00:06 modify sysv semaphore test for mandatory access control Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/posix_sem.c#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/sysvsem/00.t#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#15 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/posix_sem.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD + * $FreeBSD$ */ #include <semaphore.h> #include <unistd.h> @@ -50,7 +50,7 @@ sem_t *sem; int val; -int logfd; + const char *macconf_file = NULL; const char *creator_label = NULL; const char *write_label = NULL; @@ -109,7 +109,7 @@ if (sigaction(SIGSYS, &sa, NULL) == -1) err(1, "sigaction SIGSYS"); - logfd = open("/dev/mactest", O_RDWR); + logfd = open(LOGDEV, O_RDWR); ioctl(logfd, BEGINLOG, NULL); switch ((child_pid = fork())) { ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/sysvsem/00.t#2 (text+ko) ==== @@ -1,75 +1,75 @@ #!/bin/sh -# $FreeBSD: src/tools/regression/mactest/tests/sysvsem/00.t,v 1.2 2007/01/25 20:50:02 zhouzhouyi Exp $ +# $FreeBSD$ -desc="manipulate sysv share memory" +desc="manipulate sysv semaphore" dir=`dirname $0` . ${dir}/../misc.sh -echo "1..4" +case "${os}" in +FreeBSD) -#turn off all the switches -for i in `sysctl security.mac | grep "\.enabled"| - sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do -sysctl ${i}=0 -done + mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` + mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` + mac_test_support=`sysctl -n security.mac.test.pseudoinit 2>/dev/null` -mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` -mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` -mac_test_support=`sysctl -n security.mac.test.pseudoinit 2>/dev/null` + if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] && + [ "${mac_test_support}" != "" ]; then +#turn off all the switches + for i in `sysctl security.mac | grep "\.enabled"| + sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do + sysctl ${i}=0 >/dev/null + done -if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] && - [ "${mac_test_support}" != "" ] ; then + if [ -f ${mactest_conf} ]; then + rm ${mactest_conf} + fi + touch ${mactest_conf} + setfmac "mls/equal,biba/equal" ${mactest_conf} - - - if [ -f ${mactest_conf} ]; then - rm ${mactest_conf} - fi - touch ${mactest_conf} + echo "1..4" ############################################################# - t=`sysctl security.mac.mls.enabled=1` - echo "enforcing mac/mls!" - t=`sysctl security.mac.biba.enabled=1` - echo "enforcing mac/biba!" - t=`sysctl security.mac.mls.revocation_enabled=1` - t=`sysctl security.mac.biba.revocation_enabled=1` - echo "enabling revoking" -#option -c creator's label, option -u undo label + sysctl security.mac.mls.enabled=1 >/dev/null + sysctl security.mac.biba.enabled=1 > /dev/null +#semtest option -c creator's label, option -u undo label #option -s ipc_stat label, -e ipc_set label -f macconf_file #case 1: check mls no ipc_stat high, will be intercepted by semget at the first place instead #of semctl - echo -n "pid = -2 mac_test_check_sysv_semget with cr_label and semaklabel:" > ${mactest_conf} - echo "biba/high(low-high),mls/4(low-high) biba/high,mls/5" >> ${mactest_conf} - bizarretestexpect ${semtest} "semtest:.ipc.stat:.semget:.Permission.denied" "" -c "mls/5" -s "mls/4" \ - -u "mls/5" -e "mls/5" -f ${mactest_conf} + echo -n "pid = -2 sysvsem_check_semget:" > ${mactest_conf} + echo "biba/high(low-high),mls/4(low-high) biba/high,mls/5" >> ${mactest_conf} + bizarretestexpect ${semtest} "semtest:.ipc.stat:.semget:.Permission.denied" "" -c "mls/5" -s "mls/4" \ + -u "mls/5" -e "mls/5" -f ${mactest_conf} + #case 2: biba no ipc_stat low - truncate -s 0 ${mactest_conf} - bizarretestexpect ${semtest} "semtest:.ipc.stat:.semget:.Permission.denied" "" -c "biba/5" -s "biba/6" \ - -u "biba/5" -e "biba/5" -f ${mactest_conf} + truncate -s 0 ${mactest_conf} + bizarretestexpect ${semtest} "semtest:.ipc.stat:.semget:.Permission.denied" "" -c "biba/5" -s "biba/6" \ + -u "biba/5" -e "biba/5" -f ${mactest_conf} + #case 3: check mls no write down by means of semop UNDO - echo -n "pid = -2 mac_test_check_sysv_semop#SEM_A:" > ${mactest_conf} - echo "biba/high(low-high),mls/6(low-high) biba/high,mls/5" >> ${mactest_conf} - bizarretestexpect ${semtest} "*semop.\-1:.Permission.denied" "" -c "mls/5" -s "mls/5" \ - -u "mls/6" -e "mls/5" -f ${mactest_conf} + echo -n "pid = -2 sysvsem_check_semop#SEM_A:" > ${mactest_conf} + echo "biba/high(low-high),mls/6(low-high) biba/high,mls/5" >> ${mactest_conf} + bizarretestexpect ${semtest} "*semop.\-1:.Permission.denied" "" -c "mls/5" -s "mls/5" \ + -u "mls/6" -e "mls/5" -f ${mactest_conf} + #case 4: biba no write high by means of semop UNDO - truncate -s 0 ${mactest_conf} - bizarretestexpect ${semtest} "*semop.\-1:.Permission.denied" "" -c "biba/5" -s "biba/5" \ - -u "biba/4" -e "biba/5" -f ${mactest_conf} - - + truncate -s 0 ${mactest_conf} + bizarretestexpect ${semtest} "*semop.\-1:.Permission.denied" "" -c "biba/5" -s "biba/5" \ + -u "biba/4" -e "biba/5" -f ${mactest_conf} #cleanup: - t=`sysctl security.mac.mls.enabled=0` - echo "disabling mac/mls!" - t=`sysctl security.mac.biba.enabled=0` - echo "disabling mac/biba!" + sysctl security.mac.mls.enabled=0 >/dev/null + sysctl security.mac.biba.enabled=0 > /dev/null + rm ${mactest_conf} + fi + ;; +*) + quick_exit + ;; +esac - rm ${mactest_conf} -fi ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#15 (text+ko) ==== @@ -2222,6 +2222,10 @@ LOG_DECL LABEL_CHECK(cred->cr_label, MAGIC_CRED); LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); + if (accesstype & SEM_A) + APPEND_FLAG("SEM_A"); + if (accesstype & SEM_R) + APPEND_FLAG("SEM_R"); COUNTER_INC(sysvsem_check_semop); return (0); From owner-p4-projects@FreeBSD.ORG Wed Nov 28 14:56:35 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0419116A41A; Wed, 28 Nov 2007 14:56: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 6012F16A47A for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:56:34 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4C82013C4F6 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:56:34 +0000 (UTC) (envelope-from swise@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 lASEuYfa001886 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:56:34 GMT (envelope-from swise@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lASEuY8T001883 for perforce@freebsd.org; Wed, 28 Nov 2007 14:56:34 GMT (envelope-from swise@FreeBSD.org) Date: Wed, 28 Nov 2007 14:56:34 GMT Message-Id: <200711281456.lASEuY8T001883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to swise@FreeBSD.org using -f From: Steve Wise <swise@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129704 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 14:56:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=129704 Change 129704 by swise@swise:vic10:iwarp on 2007/11/28 14:56:30 Fixed cm_id refcounts to correctly work with the cv. Affected files ... .. //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#6 edit Differences ... ==== //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#6 (text+ko) ==== @@ -89,7 +89,7 @@ struct ib_device *device; struct mtx lock; struct cv comp; - atomic_t refcount; + int refcount; LIST_HEAD(, rdma_id_private) id_list; TAILQ_ENTRY(cma_device) list; @@ -136,7 +136,7 @@ enum cma_state state; struct mtx lock; struct cv comp; - atomic_t refcount; + int refcount; struct cv wait_remove; atomic_t dev_remove; @@ -279,7 +279,9 @@ static void cma_attach_to_dev(struct rdma_id_private *id_priv, struct cma_device *cma_dev) { - atomic_inc(&cma_dev->refcount); + mtx_lock(&cma_dev->lock); + cma_dev->refcount++; + mtx_unlock(&cma_dev->lock); id_priv->cma_dev = cma_dev; id_priv->id.device = cma_dev->device; LIST_INSERT_HEAD(&cma_dev->id_list, id_priv, list); @@ -288,7 +290,7 @@ static inline void cma_deref_dev(struct cma_device *cma_dev) { mtx_lock(&cma_dev->lock); - if (atomic_dec_and_test(&cma_dev->refcount)) + if (--cma_dev->refcount == 0) cv_broadcast(&cma_dev->comp); mtx_unlock(&cma_dev->lock); } @@ -365,8 +367,11 @@ static void cma_deref_id(struct rdma_id_private *id_priv) { mtx_lock(&id_priv->lock); - if (atomic_dec_and_test(&id_priv->refcount)) + printf("%s id %p refcount %d\n", __FUNCTION__, id_priv, id_priv->refcount); + if (--id_priv->refcount == 0) { + printf("%s cv_bcast %p \n", __FUNCTION__, id_priv); cv_broadcast(&id_priv->comp); + } mtx_unlock(&id_priv->lock); } @@ -414,7 +419,8 @@ id_priv->id.ps = ps; mtx_init(&id_priv->lock, "rdma_cm_id_priv", NULL, MTX_DUPOK|MTX_DEF); cv_init(&id_priv->comp, "rdma_cm_id_priv"); - atomic_set(&id_priv->refcount, 1); + id_priv->refcount = 1; + printf("%s id %p refcount %d\n", __FUNCTION__, id_priv, id_priv->refcount); cv_init(&id_priv->wait_remove, "id priv wait remove"); atomic_set(&id_priv->dev_remove, 0); LIST_INIT(&id_priv->listen_list); @@ -784,7 +790,8 @@ cma_deref_id(id_priv); mtx_lock(&id_priv->lock); - cv_wait(&id_priv->comp, &id_priv->lock); + if (id_priv->refcount) + cv_wait_unlock(&id_priv->comp, &id_priv->lock); free(id_priv, M_DEVBUF); } @@ -886,12 +893,13 @@ cma_detach_from_dev(id_priv); } mtx_unlock(&lock); - cma_release_port(id_priv); cma_deref_id(id_priv); mtx_lock(&id_priv->lock); - cv_wait(&id_priv->comp, &id_priv->lock); - + BUG_ON(id_priv->refcount < 0); + if (id_priv->refcount) + cv_wait(&id_priv->comp, &id_priv->lock); + mtx_unlock(&id_priv->lock); free(id_priv->id.route.path_rec, M_DEVBUF); free(id_priv, M_DEVBUF); } @@ -1687,7 +1695,10 @@ if (!cma_comp_exch(id_priv, CMA_ADDR_RESOLVED, CMA_ROUTE_QUERY)) return (EINVAL); - atomic_inc(&id_priv->refcount); + mtx_lock(&id_priv->lock); + id_priv->refcount++; + printf("%s id %p refcount %d\n", __FUNCTION__, id_priv, id_priv->refcount); + mtx_unlock(&id_priv->lock); #ifdef IB_SUPPORTED switch (rdma_node_get_transport(id->device->node_type)) { case RDMA_TRANSPORT_IB: @@ -1866,7 +1877,10 @@ if (!cma_comp_exch(id_priv, CMA_ADDR_BOUND, CMA_ADDR_QUERY)) return (EINVAL); - atomic_inc(&id_priv->refcount); + mtx_lock(&id_priv->lock); + id_priv->refcount++; + printf("%s id %p refcount %d\n", __FUNCTION__, id_priv, id_priv->refcount); + mtx_unlock(&id_priv->lock); memcpy(&id->route.addr.dst_addr, dst_addr, ip_addr_size(dst_addr)); if (cma_any_addr(dst_addr)) ret = cma_resolve_loopback(id_priv); @@ -2783,9 +2797,8 @@ cma_dev->device = device; - mtx_init(&lock, "cma_device", NULL, MTX_DEF); cv_init(&cma_dev->comp, "cma_device"); - atomic_set(&cma_dev->refcount, 1); + cma_dev->refcount = 1; LIST_INIT(&cma_dev->id_list); ib_set_client_data(device, &cma_client, cma_dev); @@ -2834,7 +2847,10 @@ } LIST_REMOVE(id_priv, list); - atomic_inc(&id_priv->refcount); + mtx_lock(&id_priv->lock); + id_priv->refcount++; + printf("%s id %p refcount %d\n", __FUNCTION__, id_priv, id_priv->refcount); + mtx_unlock(&id_priv->lock); mtx_unlock(&lock); ret = cma_remove_id_dev(id_priv); @@ -2872,6 +2888,7 @@ LIST_INIT(&listen_any_list); TAILQ_INIT(&dev_list); + mtx_init(&lock, "cma_device", NULL, MTX_DEF); arc4rand(&next_port, sizeof next_port, 0); next_port = ((unsigned int) next_port % From owner-p4-projects@FreeBSD.ORG Wed Nov 28 14:58:37 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 42FE116A41B; Wed, 28 Nov 2007 14:58: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 E789916A468 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:58:36 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D3D7A13C442 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:58:36 +0000 (UTC) (envelope-from swise@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 lASEwaKM001981 for <perforce@FreeBSD.org>; Wed, 28 Nov 2007 14:58:36 GMT (envelope-from swise@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lASEwaDa001978 for perforce@freebsd.org; Wed, 28 Nov 2007 14:58:36 GMT (envelope-from swise@FreeBSD.org) Date: Wed, 28 Nov 2007 14:58:36 GMT Message-Id: <200711281458.lASEwaDa001978@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to swise@FreeBSD.org using -f From: Steve Wise <swise@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Cc: Subject: PERFORCE change 129705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 14:58:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=129705 Change 129705 by swise@swise:vic10:iwarp on 2007/11/28 14:57:39 krping fixes. - printk/debug -> uprintf - msleep_spin/wakeup Affected files ... .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping.c#2 edit .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping.h#2 edit .. //depot/projects/iwarp/sys/contrib/rdma/krping/krping_dev.c#2 edit Differences ... ==== //depot/projects/iwarp/sys/contrib/rdma/krping/krping.c#2 (text+ko) ==== @@ -41,6 +41,8 @@ #include <sys/module.h> #include <sys/endian.h> #include <sys/limits.h> +#include <sys/proc.h> +#include <sys/signalvar.h> #include <sys/linux_compat.h> #include <sys/lock.h> @@ -57,7 +59,7 @@ #define PFX "krping: " static int debug = 1; -#define DEBUG_LOG if (debug) printf +#define DEBUG_LOG if (debug) uprintf MODULE_AUTHOR("Steve Wise"); MODULE_DESCRIPTION("RDMA ping server"); @@ -206,10 +208,15 @@ static void krping_wait(struct krping_cb *cb, int state) { - mtx_lock(&cb->lock); - if (cb->state < state) - cv_wait(&cb->sem, &cb->lock); - mtx_unlock(&cb->lock); + mtx_lock_spin(&cb->lock); + while (cb->state < state) { + msleep_spin(cb, &cb->lock, "krping", hz); + if (SIGPENDING(curthread)) { + DEBUG_LOG(PFX "interrupt!\n"); + break; + } + } + mtx_unlock_spin(&cb->lock); } static int krping_cma_event_handler(struct rdma_cm_id *cma_id, @@ -221,35 +228,35 @@ DEBUG_LOG("cma_event type %d cma_id %p (%s)\n", event->event, cma_id, (cma_id == cb->cm_id) ? "parent" : "child"); - mtx_lock(&cb->lock); + mtx_lock_spin(&cb->lock); switch (event->event) { case RDMA_CM_EVENT_ADDR_RESOLVED: cb->state = ADDR_RESOLVED; ret = rdma_resolve_route(cma_id, 2000); if (ret) { - printf(PFX "rdma_resolve_route error %d\n", + uprintf(PFX "rdma_resolve_route error %d\n", ret); - cv_signal(&cb->sem); + wakeup(cb); } break; case RDMA_CM_EVENT_ROUTE_RESOLVED: cb->state = ROUTE_RESOLVED; - cv_signal(&cb->sem); + wakeup(cb); break; case RDMA_CM_EVENT_CONNECT_REQUEST: cb->state = CONNECT_REQUEST; cb->child_cm_id = cma_id; DEBUG_LOG("child cma %p\n", cb->child_cm_id); - cv_signal(&cb->sem); + wakeup(cb); break; case RDMA_CM_EVENT_ESTABLISHED: DEBUG_LOG("ESTABLISHED\n"); if (!cb->server) { cb->state = CONNECTED; - cv_signal(&cb->sem); + wakeup(cb); } break; @@ -258,35 +265,35 @@ case RDMA_CM_EVENT_CONNECT_ERROR: case RDMA_CM_EVENT_UNREACHABLE: case RDMA_CM_EVENT_REJECTED: - printf(PFX "cma event %d, error %d\n", event->event, + uprintf(PFX "cma event %d, error %d\n", event->event, event->status); cb->state = ERROR; - cv_signal(&cb->sem); + wakeup(cb); break; case RDMA_CM_EVENT_DISCONNECTED: - printf(PFX "DISCONNECT EVENT...\n"); + DEBUG_LOG(PFX "DISCONNECT EVENT...\n"); cb->state = ERROR; - cv_signal(&cb->sem); + wakeup(cb); break; case RDMA_CM_EVENT_DEVICE_REMOVAL: - printf(PFX "cma detected device removal!!!!\n"); + DEBUG_LOG(PFX "cma detected device removal!!!!\n"); break; default: - printf(PFX "oof bad type!\n"); - cv_signal(&cb->sem); + uprintf(PFX "oof bad type!\n"); + wakeup(cb); break; } - mtx_unlock(&cb->lock); + mtx_unlock_spin(&cb->lock); return 0; } static int server_recv(struct krping_cb *cb, struct ib_wc *wc) { if (wc->byte_len != sizeof(cb->recv_buf)) { - printf(PFX "Received bogus data, size %d\n", + uprintf(PFX "Received bogus data, size %d\n", wc->byte_len); return -1; } @@ -298,12 +305,12 @@ cb->remote_rkey, (unsigned long long)cb->remote_addr, cb->remote_len); - mtx_lock(&cb->lock); + mtx_lock_spin(&cb->lock); if (cb->state <= CONNECTED || cb->state == RDMA_WRITE_COMPLETE) cb->state = RDMA_READ_ADV; else cb->state = RDMA_WRITE_ADV; - mtx_unlock(&cb->lock); + mtx_unlock_spin(&cb->lock); return 0; } @@ -311,17 +318,17 @@ static int client_recv(struct krping_cb *cb, struct ib_wc *wc) { if (wc->byte_len != sizeof(cb->recv_buf)) { - printf(PFX "Received bogus data, size %d\n", + uprintf(PFX "Received bogus data, size %d\n", wc->byte_len); return -1; } - mtx_lock(&cb->lock); + mtx_lock_spin(&cb->lock); if (cb->state == RDMA_READ_ADV) cb->state = RDMA_WRITE_ADV; else cb->state = RDMA_WRITE_COMPLETE; - mtx_unlock(&cb->lock); + mtx_unlock_spin(&cb->lock); return 0; } @@ -333,17 +340,17 @@ struct ib_recv_wr *bad_wr; int ret; - mtx_lock(&cb->lock); + mtx_lock_spin(&cb->lock); BUG_ON(cb->cq != cq); if (cb->state == ERROR) { - printf(PFX "cq completion in ERROR state\n"); - mtx_unlock(&cb->lock); + uprintf(PFX "cq completion in ERROR state\n"); + mtx_unlock_spin(&cb->lock); return; } ib_req_notify_cq(cb->cq, IB_CQ_NEXT_COMP); while ((ret = ib_poll_cq(cb->cq, 1, &wc)) == 1) { if (wc.status) { - printf(PFX "cq completion failed status %d\n", + uprintf(PFX "cq completion failed status %d\n", wc.status); goto error; } @@ -360,7 +367,7 @@ cb->stats.write_bytes += cb->rdma_sq_wr.sg_list->length; cb->stats.write_msgs++; cb->state = RDMA_WRITE_COMPLETE; - cv_signal(&cb->sem); + wakeup(cb); break; case IB_WC_RDMA_READ: @@ -368,7 +375,7 @@ cb->stats.read_bytes += cb->rdma_sq_wr.sg_list->length; cb->stats.read_msgs++; cb->state = RDMA_READ_COMPLETE; - cv_signal(&cb->sem); + wakeup(cb); break; case IB_WC_RECV: @@ -378,17 +385,17 @@ ret = cb->server ? server_recv(cb, &wc) : client_recv(cb, &wc); if (ret) { - printf(PFX "recv wc error: %d\n", ret); + uprintf(PFX "recv wc error: %d\n", ret); goto error; } ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); if (ret) { - printf(PFX "post recv error: %d\n", + uprintf(PFX "post recv error: %d\n", ret); goto error; } - cv_signal(&cb->sem); + wakeup(cb); break; default: @@ -397,15 +404,15 @@ } } if (ret) { - printf(PFX "poll error %d\n", ret); + uprintf(PFX "poll error %d\n", ret); goto error; } - mtx_unlock(&cb->lock); + mtx_unlock_spin(&cb->lock); return; error: cb->state = ERROR; - cv_signal(&cb->sem); - mtx_unlock(&cb->lock); + wakeup(cb); + mtx_unlock_spin(&cb->lock); } static int krping_accept(struct krping_cb *cb) @@ -421,13 +428,13 @@ ret = rdma_accept(cb->child_cm_id, &conn_param); if (ret) { - printf(PFX "rdma_accept error: %d\n", ret); + uprintf(PFX "rdma_accept error: %d\n", ret); return ret; } krping_wait(cb, CONNECTED); if (cb->state == ERROR) { - printf(PFX "wait for CONNECTED state %d\n", cb->state); + uprintf(PFX "wait for CONNECTED state %d\n", cb->state); return -1; } return 0; @@ -473,7 +480,7 @@ IB_ACCESS_REMOTE_READ| IB_ACCESS_REMOTE_WRITE); if (IS_ERR(cb->dma_mr)) { - printf(PFX "recv_buf reg_mr failed\n"); + uprintf(PFX "recv_buf reg_mr failed\n"); return PTR_ERR(cb->dma_mr); } @@ -481,7 +488,7 @@ 4096, 1024*1024); if (!cb->rdma_buf) { - printf(PFX "rdma_buf malloc failed\n"); + uprintf(PFX "rdma_buf malloc failed\n"); ret = -ENOMEM; goto err1; } @@ -490,7 +497,7 @@ cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, (1L<<22), 4096, 1024*1024); if (!cb->start_buf) { - printf(PFX "start_buf malloc failed\n"); + uprintf(PFX "start_buf malloc failed\n"); ret = -ENOMEM; goto err2; } @@ -570,7 +577,7 @@ int ret; cb->pd = ib_alloc_pd(cm_id->device); if (IS_ERR(cb->pd)) { - printf(PFX "ib_alloc_pd failed\n"); + uprintf(PFX "ib_alloc_pd failed\n"); return PTR_ERR(cb->pd); } DEBUG_LOG("created pd %p\n", cb->pd); @@ -578,7 +585,7 @@ cb->cq = ib_create_cq(cm_id->device, krping_cq_event_handler, NULL, cb, RPING_SQ_DEPTH * 2, 0); if (IS_ERR(cb->cq)) { - printf(PFX "ib_create_cq failed\n"); + uprintf(PFX "ib_create_cq failed\n"); ret = PTR_ERR(cb->cq); goto err1; } @@ -586,13 +593,13 @@ ret = ib_req_notify_cq(cb->cq, IB_CQ_NEXT_COMP); if (ret) { - printf(PFX "ib_create_cq failed\n"); + uprintf(PFX "ib_create_cq failed\n"); goto err2; } ret = krping_create_qp(cb); if (ret) { - printf(PFX "krping_create_qp failed: %d\n", ret); + uprintf(PFX "krping_create_qp failed: %d\n", ret); goto err2; } DEBUG_LOG("created qp %p\n", cb->qp); @@ -626,7 +633,7 @@ /* Wait for client's Start STAG/TO/Len */ krping_wait(cb, RDMA_READ_ADV); if (cb->state != RDMA_READ_ADV) { - printf(PFX "wait for RDMA_READ_ADV state %d\n", + uprintf(PFX "wait for RDMA_READ_ADV state %d\n", cb->state); break; } @@ -641,7 +648,7 @@ ret = ib_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } DEBUG_LOG("server posted rdma read req \n"); @@ -649,7 +656,7 @@ /* Wait for read completion */ krping_wait(cb, RDMA_READ_COMPLETE); if (cb->state != RDMA_READ_COMPLETE) { - printf(PFX + uprintf(PFX "wait for RDMA_READ_COMPLETE state %d\n", cb->state); break; @@ -658,12 +665,12 @@ /* Display data in recv buf */ if (cb->verbose) - printf("server ping data: %s\n", cb->rdma_buf); + uprintf("server ping data: %s\n", cb->rdma_buf); /* Tell client to continue */ ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } DEBUG_LOG("server posted go ahead\n"); @@ -671,7 +678,7 @@ /* Wait for client's RDMA STAG/TO/Len */ krping_wait(cb, RDMA_WRITE_ADV); if (cb->state != RDMA_WRITE_ADV) { - printf(PFX + uprintf(PFX "wait for RDMA_WRITE_ADV state %d\n", cb->state); break; @@ -690,14 +697,14 @@ ret = ib_post_send(cb->qp, &cb->rdma_sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } /* Wait for completion */ krping_wait(cb, RDMA_WRITE_COMPLETE); if (cb->state != RDMA_WRITE_COMPLETE) { - printf(PFX + uprintf(PFX "wait for RDMA_WRITE_COMPLETE state %d\n", cb->state); break; @@ -709,7 +716,7 @@ /* Tell client to begin again */ ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } DEBUG_LOG("server posted go ahead\n"); @@ -728,7 +735,7 @@ ret = rdma_bind_addr(cb->cm_id, (struct sockaddr *) &sin); if (ret) { - printf(PFX "rdma_bind_addr error %d\n", ret); + uprintf(PFX "rdma_bind_addr error %d\n", ret); return ret; } DEBUG_LOG("rdma_bind_addr successful\n"); @@ -736,13 +743,13 @@ DEBUG_LOG("rdma_listen\n"); ret = rdma_listen(cb->cm_id, 3); if (ret) { - printf(PFX "rdma_listen failed: %d\n", ret); + uprintf(PFX "rdma_listen failed: %d\n", ret); return ret; } krping_wait(cb, CONNECT_REQUEST); if (cb->state != CONNECT_REQUEST) { - printf(PFX "wait for CONNECT_REQUEST state %d\n", + uprintf(PFX "wait for CONNECT_REQUEST state %d\n", cb->state); return -1; } @@ -761,25 +768,25 @@ ret = krping_setup_qp(cb, cb->child_cm_id); if (ret) { - printf(PFX "setup_qp failed: %d\n", ret); + uprintf(PFX "setup_qp failed: %d\n", ret); return; } ret = krping_setup_buffers(cb); if (ret) { - printf(PFX "krping_setup_buffers failed: %d\n", ret); + uprintf(PFX "krping_setup_buffers failed: %d\n", ret); goto err1; } ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); if (ret) { - printf(PFX "ib_post_recv failed: %d\n", ret); + uprintf(PFX "ib_post_recv failed: %d\n", ret); goto err2; } ret = krping_accept(cb); if (ret) { - printf(PFX "connect error %d\n", ret); + uprintf(PFX "connect error %d\n", ret); goto err2; } @@ -818,14 +825,14 @@ krping_format_send(cb, cb->start_addr, cb->dma_mr); ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } /* Wait for server to ACK */ krping_wait(cb, RDMA_WRITE_ADV); if (cb->state != RDMA_WRITE_ADV) { - printf(PFX + uprintf(PFX "wait for RDMA_WRITE_ADV state %d\n", cb->state); break; @@ -834,14 +841,14 @@ krping_format_send(cb, cb->rdma_addr, cb->dma_mr); ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr); if (ret) { - printf(PFX "post send error %d\n", ret); + uprintf(PFX "post send error %d\n", ret); break; } /* Wait for the server to say the RDMA Write is complete. */ krping_wait(cb, RDMA_WRITE_COMPLETE); if (cb->state != RDMA_WRITE_COMPLETE) { - printf(PFX + uprintf(PFX "wait for RDMA_WRITE_COMPLETE state %d\n", cb->state); break; @@ -849,12 +856,12 @@ if (cb->validate) if (memcmp(cb->start_buf, cb->rdma_buf, cb->size)) { - printf(PFX "data mismatch!\n"); + uprintf(PFX "data mismatch!\n"); break; } if (cb->verbose) - printf("ping data: %s\n", cb->rdma_buf); + uprintf("ping data: %s\n", cb->rdma_buf); } } @@ -870,13 +877,13 @@ ret = rdma_connect(cb->cm_id, &conn_param); if (ret) { - printf(PFX "rdma_connect error %d\n", ret); + uprintf(PFX "rdma_connect error %d\n", ret); return ret; } krping_wait(cb, CONNECTED); if (cb->state == ERROR) { - printf(PFX "wait for CONNECTED state %d\n", cb->state); + uprintf(PFX "wait for CONNECTED state %d\n", cb->state); return -1; } @@ -897,13 +904,13 @@ ret = rdma_resolve_addr(cb->cm_id, NULL, (struct sockaddr *) &sin, 2000); if (ret) { - printf(PFX "rdma_resolve_addr error %d\n", ret); + uprintf(PFX "rdma_resolve_addr error %d\n", ret); return ret; } krping_wait(cb, ROUTE_RESOLVED); if (cb->state != ROUTE_RESOLVED) { - printf(PFX + uprintf(PFX "addr/route resolution did not resolve: state %d\n", cb->state); return -EINTR; @@ -924,25 +931,25 @@ ret = krping_setup_qp(cb, cb->cm_id); if (ret) { - printf(PFX "setup_qp failed: %d\n", ret); + uprintf(PFX "setup_qp failed: %d\n", ret); return; } ret = krping_setup_buffers(cb); if (ret) { - printf(PFX "krping_setup_buffers failed: %d\n", ret); + uprintf(PFX "krping_setup_buffers failed: %d\n", ret); goto err1; } ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); if (ret) { - printf(PFX "ib_post_recv failed: %d\n", ret); + uprintf(PFX "ib_post_recv failed: %d\n", ret); goto err2; } ret = krping_connect_client(cb); if (ret) { - printf(PFX "connect error %d\n", ret); + uprintf(PFX "connect error %d\n", ret); goto err2; } @@ -974,7 +981,6 @@ cb->server = -1; cb->state = IDLE; cb->size = 64; - cv_init(&cb->sem, "krping cv"); mtx_init(&cb->lock, "krping mtx", NULL, MTX_DUPOK|MTX_SPIN); while ((op = krping_getopt("krping", &cmd, krping_opts, NULL, &optarg, @@ -984,7 +990,7 @@ cb->addr_str = optarg; DEBUG_LOG("ipaddr (%s)\n", optarg); if (!inet_aton(optarg, &cb->addr)) { - printf(PFX "bad addr string %s\n", optarg); + uprintf(PFX "bad addr string %s\n", optarg); ret = -EINVAL; } break; @@ -1004,7 +1010,7 @@ cb->size = optint; if ((cb->size < 1) || (cb->size > RPING_BUFSIZE)) { - printf(PFX "Invalid size %d " + uprintf(PFX "Invalid size %d " "(valid range is 1 to %d)\n", cb->size, RPING_BUFSIZE); ret = EINVAL; @@ -1014,7 +1020,7 @@ case 'C': cb->count = optint; if (cb->count < 0) { - printf(PFX "Invalid count %d\n", + uprintf(PFX "Invalid count %d\n", cb->count); ret = EINVAL; } else @@ -1032,7 +1038,7 @@ debug++; break; default: - printf(PFX "unknown opt %s\n", optarg); + uprintf(PFX "unknown opt %s\n", optarg); ret = -EINVAL; break; } @@ -1041,7 +1047,7 @@ goto out; if (cb->server == -1) { - printf(PFX "must be either client or server\n"); + uprintf(PFX "must be either client or server\n"); ret = EINVAL; goto out; } @@ -1049,16 +1055,14 @@ cb->cm_id = rdma_create_id(krping_cma_event_handler, cb, RDMA_PS_TCP); if (IS_ERR(cb->cm_id)) { ret = PTR_ERR(cb->cm_id); - printf(PFX "rdma_create_id error %d\n", ret); + uprintf(PFX "rdma_create_id error %d\n", ret); goto out; } DEBUG_LOG("created cm_id %p\n", cb->cm_id); - if (cb->server) krping_run_server(cb); else krping_run_client(cb); - DEBUG_LOG("destroy cm_id %p\n", cb->cm_id); rdma_destroy_id(cb->cm_id); out: @@ -1068,3 +1072,9 @@ free(cb, M_DEVBUF); return ret; } + +void krping_init(void) +{ + mtx_init(&krping_mutex, "krping lock", NULL, MTX_DEF); + TAILQ_INIT(&krping_cbs); +} ==== //depot/projects/iwarp/sys/contrib/rdma/krping/krping.h#2 (text+ko) ==== @@ -1,4 +1,3 @@ -#include <sys/condvar.h> #include <contrib/rdma/ib_verbs.h> #include <netinet/in.h> @@ -82,7 +81,6 @@ enum test_state state; /* used for cond/signalling */ struct mtx lock; - struct cv sem; struct krping_stats stats; uint16_t port; /* dst port in NBO */ @@ -101,7 +99,8 @@ }; extern struct mtx krping_mutex; +TAILQ_HEAD(krping_cb_list, krping_cb); +extern struct krping_cb_list krping_cbs; int krping_doit(char *cmd); -TAILQ_HEAD(krping_cb_list, krping_cb); -extern struct krping_cb_list krping_cbs; +void krping_init(void); ==== //depot/projects/iwarp/sys/contrib/rdma/krping/krping_dev.c#2 (text+ko) ==== @@ -57,7 +57,7 @@ switch (what) { case MOD_LOAD: /* kldload */ - mtx_init(&krping_mutex, "krping lock", NULL, MTX_DEF); + krping_init(); krping_dev = make_dev(&krping_cdevsw, 0, UID_ROOT, @@ -105,7 +105,7 @@ mtx_lock(&krping_mutex); TAILQ_FOREACH(cb, &krping_cbs, list) { if (cb->pd) { - printf("krping: %d-%s %lld %lld %lld %lld %lld %lld %lld %lld\n", + uprintf("krping: %d-%s %lld %lld %lld %lld %lld %lld %lld %lld\n", num++, cb->pd->device->name, cb->stats.send_bytes, cb->stats.send_msgs, cb->stats.recv_bytes, cb->stats.recv_msgs, cb->stats.write_bytes, @@ -113,7 +113,7 @@ cb->stats.read_bytes, cb->stats.read_msgs); } else { - printf("krping: %d listen\n", num++); + uprintf("krping: %d listen\n", num++); } } mtx_unlock(&krping_mutex); @@ -129,16 +129,18 @@ err = copyin(uio->uio_iov->iov_base, krpingmsg->msg, MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)); - /* Now we need to null terminate, then record the length */ - *(krpingmsg->msg + MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)) = 0; - krpingmsg->len = MIN(uio->uio_iov->iov_len, BUFFERSIZE); + /* null terminate and remove the \n */ + *(krpingmsg->msg + MIN(uio->uio_iov->iov_len-1, BUFFERSIZE - 1)) = 0; + krpingmsg->len = MIN(uio->uio_iov->iov_len-1, BUFFERSIZE); if (err != 0) { uprintf("Write failed: bad address!\n"); return err; } + uio->uio_resid = 0; + uprintf("krping: write string = |%s|\n", krpingmsg->msg); krping_doit(krpingmsg->msg); - return(err); + return(0); } MODULE_DEPEND(krping, rdma_core, 1, 1, 1); From owner-p4-projects@FreeBSD.ORG Wed Nov 28 19:04:03 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 15F8D16A418; Wed, 28 Nov 2007 19:04:03 +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 92D1F16A468 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:04:02 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8226B13C459 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:04:02 +0000 (UTC) (envelope-from peter@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 lASJ42gO026789 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:04:02 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lASJ42Di026785 for perforce@freebsd.org; Wed, 28 Nov 2007 19:04:02 GMT (envelope-from peter@freebsd.org) Date: Wed, 28 Nov 2007 19:04:02 GMT Message-Id: <200711281904.lASJ42Di026785@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Cc: Subject: PERFORCE change 129712 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 19:04:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=129712 Change 129712 by peter@peter_overcee on 2007/11/28 19:03:22 Hack to allow tail to force line buffering (-l flag) even when stdout is a pipe. Useful for 'tail -f logfile | grep foo' Affected files ... .. //depot/projects/hammer/usr.bin/tail/tail.c#6 edit Differences ... ==== //depot/projects/hammer/usr.bin/tail/tail.c#6 (text+ko) ==== @@ -115,7 +115,7 @@ obsolete(argv); style = NOTSET; off = 0; - while ((ch = getopt(argc, argv, "Fb:c:fn:qr")) != -1) + while ((ch = getopt(argc, argv, "Fb:c:fln:qr")) != -1) switch(ch) { case 'F': /* -F is superset of (and implies) -f */ Fflag = fflag = 1; @@ -129,6 +129,9 @@ case 'f': fflag = 1; break; + case 'l': + setlinebuf(stdout); + break; case 'n': ARG(1, FLINES, RLINES); break; From owner-p4-projects@FreeBSD.ORG Wed Nov 28 19:09:09 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E6D116A420; Wed, 28 Nov 2007 19:09: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 D8EB016A419 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:09:08 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C979613C442 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:09:08 +0000 (UTC) (envelope-from peter@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 lASJ98AB026975 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:09:08 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lASJ977e026972 for perforce@freebsd.org; Wed, 28 Nov 2007 19:09:07 GMT (envelope-from peter@freebsd.org) Date: Wed, 28 Nov 2007 19:09:07 GMT Message-Id: <200711281909.lASJ977e026972@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Cc: Subject: PERFORCE change 129713 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 19:09:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=129713 Change 129713 by peter@peter_overcee on 2007/11/28 19:08:51 IFC @129711 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#41 integrate .. //depot/projects/hammer/UPDATING#111 integrate .. //depot/projects/hammer/etc/defaults/periodic.conf#21 integrate .. //depot/projects/hammer/etc/gss/mech#2 integrate .. //depot/projects/hammer/gnu/usr.bin/groff/tmac/mdoc.local#29 integrate .. //depot/projects/hammer/lib/libc/gen/Symbol.map#6 integrate .. //depot/projects/hammer/lib/libc/stdlib/malloc.3#16 integrate .. //depot/projects/hammer/lib/libc/stdlib/malloc.c#37 integrate .. //depot/projects/hammer/lib/libgssapi/gss_acquire_cred.c#2 integrate .. //depot/projects/hammer/lib/libkse/kse.map#2 integrate .. //depot/projects/hammer/lib/libkse/sys/lock.c#2 integrate .. //depot/projects/hammer/lib/libkse/sys/lock.h#2 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_cond.c#2 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_init.c#2 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_kern.c#2 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_mutex.c#3 integrate .. //depot/projects/hammer/lib/libkse/thread/thr_rtld.c#2 integrate .. //depot/projects/hammer/lib/libthr/pthread.map#14 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#36 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/article.sgml#26 integrate .. //depot/projects/hammer/release/doc/share/sgml/release.ent#22 integrate .. //depot/projects/hammer/sbin/mdconfig/mdconfig.8#21 integrate .. //depot/projects/hammer/sbin/mount/mount.8#24 integrate .. //depot/projects/hammer/sbin/newfs/newfs.8#13 integrate .. //depot/projects/hammer/sbin/newfs/newfs.c#16 integrate .. //depot/projects/hammer/sbin/newfs/newfs.h#9 integrate .. //depot/projects/hammer/sbin/sysctl/sysctl.8#15 integrate .. //depot/projects/hammer/share/man/man4/agp.4#8 integrate .. //depot/projects/hammer/share/man/man4/ichsmb.4#4 integrate .. //depot/projects/hammer/share/man/man4/nfe.4#6 integrate .. //depot/projects/hammer/share/man/man4/rl.4#18 integrate .. //depot/projects/hammer/share/man/man9/Makefile#75 integrate .. //depot/projects/hammer/share/man/man9/stack.9#1 branch .. //depot/projects/hammer/share/misc/iso3166#8 integrate .. //depot/projects/hammer/share/mk/sys.mk#27 integrate .. //depot/projects/hammer/sys/amd64/amd64/busdma_machdep.c#46 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC#100 integrate .. //depot/projects/hammer/sys/arm/arm/busdma_machdep.c#26 integrate .. //depot/projects/hammer/sys/arm/include/atomic.h#18 integrate .. //depot/projects/hammer/sys/conf/NOTES#129 integrate .. //depot/projects/hammer/sys/conf/options#116 integrate .. //depot/projects/hammer/sys/dev/an/if_an.c#38 integrate .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac.c#12 integrate .. //depot/projects/hammer/sys/dev/wpi/if_wpi.c#3 integrate .. //depot/projects/hammer/sys/dev/wpi/if_wpireg.h#2 integrate .. //depot/projects/hammer/sys/i386/conf/GENERIC#58 integrate .. //depot/projects/hammer/sys/i386/conf/XBOX#6 integrate .. //depot/projects/hammer/sys/i386/i386/busdma_machdep.c#35 integrate .. //depot/projects/hammer/sys/ia64/ia64/busdma_machdep.c#22 integrate .. //depot/projects/hammer/sys/ia64/include/atomic.h#6 integrate .. //depot/projects/hammer/sys/kern/kern_mutex.c#51 integrate .. //depot/projects/hammer/sys/kern/kern_rwlock.c#14 integrate .. //depot/projects/hammer/sys/netinet/tcp_output.c#47 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#79 integrate .. //depot/projects/hammer/sys/powerpc/include/atomic.h#11 integrate .. //depot/projects/hammer/sys/sparc64/conf/GENERIC#55 integrate .. //depot/projects/hammer/sys/sun4v/conf/GENERIC#6 integrate .. //depot/projects/hammer/sys/sys/signal.h#17 integrate .. //depot/projects/hammer/usr.sbin/newsyslog/newsyslog.conf.5#6 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#41 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.120 2007/11/21 10:49:33 ru Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.121 2007/11/27 13:58:25 brix Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -3964,9 +3964,10 @@ # - usr/share/tmac/mm/se_locale # - var/yp/Makefile -# 20071119: shared library version bump +# 20071120: shared library version bump OLD_LIBS+=usr/lib/libasn1.so.8 OLD_LIBS+=usr/lib/libgssapi.so.8 +OLD_LIBS+=usr/lib/libgssapi_krb5.so.8 OLD_LIBS+=usr/lib/libhdb.so.8 OLD_LIBS+=usr/lib/libkadm5clnt.so.8 OLD_LIBS+=usr/lib/libkadm5srv.so.8 ==== //depot/projects/hammer/UPDATING#111 (text+ko) ==== @@ -21,6 +21,10 @@ developers choose to disable these features on build machines to maximize performance. +20071128: + The ADAPTIVE_GIANT kernel option has been retired because its + functionality is the default now. + 20071118: The AT keyboard emulation of sunkbd(4) has been turned on by default. In order to make the special symbols of the Sun @@ -945,4 +949,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.512 2007/11/18 18:11:16 marius Exp $ +$FreeBSD: src/UPDATING,v 1.513 2007/11/28 13:04:11 matteo Exp $ ==== //depot/projects/hammer/etc/defaults/periodic.conf#21 (text+ko) ==== @@ -13,7 +13,7 @@ # For a more detailed explanation of all the periodic.conf variables, please # refer to the periodic.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/periodic.conf,v 1.44 2007/05/29 06:22:13 dougb Exp $ +# $FreeBSD: src/etc/defaults/periodic.conf,v 1.45 2007/11/28 17:31:11 jhb Exp $ # # What files override these defaults ? @@ -45,7 +45,9 @@ daily_clean_tmps_enable="NO" # Delete stuff daily daily_clean_tmps_dirs="/tmp" # Delete under here daily_clean_tmps_days="3" # If not accessed for -daily_clean_tmps_ignore=".X*-lock quota.user quota.group" # Don't delete these +daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix" +daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group" + # Don't delete these daily_clean_tmps_verbose="YES" # Mention files deleted # 120.clean-preserve ==== //depot/projects/hammer/etc/gss/mech#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/gss/mech,v 1.1 2005/12/29 14:40:18 dfr Exp $ +# $FreeBSD: src/etc/gss/mech,v 1.2 2007/11/27 21:47:56 jhb Exp $ # # Name OID Library name Kernel module -kerberosv5 1.2.840.113554.1.2.2 /usr/lib/libgssapi_krb5.so.8 - +kerberosv5 1.2.840.113554.1.2.2 /usr/lib/libgssapi_krb5.so.9 - ==== //depot/projects/hammer/gnu/usr.bin/groff/tmac/mdoc.local#29 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.61 2007/10/22 10:01:58 ru Exp $ +.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.62 2007/11/27 10:00:33 jkoshy Exp $ .\" .\" %beginstrip% . @@ -52,7 +52,7 @@ .ds doc-str-Lb-libmd Message Digest (MD4, MD5, etc.) Support Library (libmd, \-lmd) .ds doc-str-Lb-libmemstat Kernel Memory Allocator Statistics Library (libmemstat, \-lmemstat) .ds doc-str-Lb-libnetgraph Netgraph User Library (libnetgraph, \-lnetgraph) -.ds doc-str-Lb-libpmc Performance Monitoring Counters API (libpmc, \-lpmc) +.ds doc-str-Lb-libpmc Performance Monitoring Counters Interface Library (libpmc, \-lpmc) .ds doc-str-Lb-librpcsvc RPC Service Library (librpcsvc, \-lrpcsvc) .ds doc-str-Lb-libsdp Bluetooth Service Discovery Protocol User Library (libsdp, \-lsdp) .ds doc-str-Lb-libthr 1:1 Threading Library (libthr, \-lthr) ==== //depot/projects/hammer/lib/libc/gen/Symbol.map#6 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.6 2007/05/31 13:01:33 deischen Exp $ + * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.7 2007/11/27 16:22:21 jasone Exp $ */ FBSD_1.0 { @@ -378,6 +378,7 @@ _pthread_kill; _pthread_main_np; _pthread_mutex_destroy; + _pthread_mutex_init_calloc_cb; _pthread_mutex_init; _pthread_mutex_lock; _pthread_mutex_trylock; ==== //depot/projects/hammer/lib/libc/stdlib/malloc.3#16 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)malloc.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdlib/malloc.3,v 1.73 2007/06/15 22:32:33 jasone Exp $ +.\" $FreeBSD: src/lib/libc/stdlib/malloc.3,v 1.74 2007/11/27 03:18:26 jasone Exp $ .\" -.Dd June 15, 2007 +.Dd October 1, 2007 .Dt MALLOC 3 .Os .Sh NAME @@ -177,6 +177,19 @@ The process will call .Xr abort 3 in these cases. +.It B +Increase/decrease the per-arena lock contention threshold at which a thread is +randomly re-assigned to an arena. +This dynamic load balancing tends to push threads away from highly contended +arenas, which avoids worst case contention scenarios in which threads +disproportionately utilize arenas. +However, due to the highly dynamic load that applications may place on the +allocator, it is impossible for the allocator to know in advance how sensitive +it should be to contention over arenas. +Therefore, some applications may benefit from increasing or decreasing this +threshold parameter. +This option is not available for some configurations (non-PIC). +This option can be specified multiple times. .It H Use .Xr madvise 2 @@ -204,6 +217,18 @@ Increase/decrease the virtual memory chunk size by a factor of two. The default chunk size is 1 MB. This option can be specified multiple times. +.It L +Increase/decrease the per-arena number of slots for lazy deallocation. +Lazy deallocation can decrease lock contention, especially for programs that use +the producer/consumer model. +The default is 256 slots per arena (so +.Ev MALLOC_OPTIONS=lllllllll +will disable lazy deallocation), but note that due to algorithmic details, the +cache is typically flushed well before it completely fills. +This option has no impact unless there are multiple CPUs, and lazy deallocation +does not activate unless the program uses multiple threads. +This option is not available for some configurations (non-PIC). +This option can be specified multiple times. .It N Increase/decrease the number of arenas by a factor of two. The default number of arenas is four times the number of CPUs, or one if there ==== //depot/projects/hammer/lib/libc/stdlib/malloc.c#37 (text+ko) ==== @@ -98,14 +98,14 @@ * defaults the A and J runtime options to off. These settings are appropriate * for production systems. */ -/* #define MALLOC_PRODUCTION */ +/* #define MALLOC_PRODUCTION */ #ifndef MALLOC_PRODUCTION # define MALLOC_DEBUG #endif #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.147 2007/06/15 22:00:16 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.152 2007/11/28 00:17:34 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -171,6 +171,7 @@ # define QUANTUM_2POW_MIN 4 # define SIZEOF_PTR_2POW 2 # define USE_BRK +# define CPU_SPINWAIT __asm__ volatile("pause") #endif #ifdef __ia64__ # define QUANTUM_2POW_MIN 4 @@ -189,6 +190,7 @@ #ifdef __amd64__ # define QUANTUM_2POW_MIN 4 # define SIZEOF_PTR_2POW 3 +# define CPU_SPINWAIT __asm__ volatile("pause") #endif #ifdef __arm__ # define QUANTUM_2POW_MIN 3 @@ -202,9 +204,9 @@ # define USE_BRK #endif -#define SIZEOF_PTR (1 << SIZEOF_PTR_2POW) +#define SIZEOF_PTR (1U << SIZEOF_PTR_2POW) -/* sizeof(int) == (1 << SIZEOF_INT_2POW). */ +/* sizeof(int) == (1U << SIZEOF_INT_2POW). */ #ifndef SIZEOF_INT_2POW # define SIZEOF_INT_2POW 2 #endif @@ -226,7 +228,7 @@ * negatively affect performance. */ #define CACHELINE_2POW 6 -#define CACHELINE ((size_t)(1 << CACHELINE_2POW)) +#define CACHELINE ((size_t)(1U << CACHELINE_2POW)) /* Smallest size class to support. */ #define TINY_MIN_2POW 1 @@ -237,7 +239,7 @@ * power of 2. */ #define SMALL_MAX_2POW_DEFAULT 9 -#define SMALL_MAX_DEFAULT (1 << SMALL_MAX_2POW_DEFAULT) +#define SMALL_MAX_DEFAULT (1U << SMALL_MAX_2POW_DEFAULT) /* * Maximum desired run header overhead. Runs are sized as small as possible @@ -252,18 +254,69 @@ * RUN_MAX_OVRHD_RELAX specifies the maximum number of bits per region of * overhead for which RUN_MAX_OVRHD is relaxed. */ -#define RUN_MAX_OVRHD 0.015 -#define RUN_MAX_OVRHD_RELAX 1.5 +#define RUN_MAX_OVRHD 0.015 +#define RUN_MAX_OVRHD_RELAX 1.5 /* Put a cap on small object run size. This overrides RUN_MAX_OVRHD. */ -#define RUN_MAX_SMALL_2POW 15 -#define RUN_MAX_SMALL (1 << RUN_MAX_SMALL_2POW) +#define RUN_MAX_SMALL_2POW 15 +#define RUN_MAX_SMALL (1U << RUN_MAX_SMALL_2POW) + +/* Default size of each arena's lazy free cache. */ +#define LAZY_FREE_2POW_DEFAULT 8 +/* + * Number of pseudo-random probes to conduct before considering the cache to be + * overly full. It takes on average n probes to detect fullness of (n-1)/n. + * However, we are effectively doing multiple non-independent trials (each + * deallocation is a trial), so the actual average threshold for clearing the + * cache is somewhat lower. + */ +#define LAZY_FREE_NPROBES 5 + +/* + * Hyper-threaded CPUs may need a special instruction inside spin loops in + * order to yield to another virtual CPU. If no such instruction is defined + * above, make CPU_SPINWAIT a no-op. + */ +#ifndef CPU_SPINWAIT +# define CPU_SPINWAIT +#endif + +/* + * Adaptive spinning must eventually switch to blocking, in order to avoid the + * potential for priority inversion deadlock. Backing off past a certain point + * can actually waste time. + */ +#define SPIN_LIMIT_2POW 11 + +/* + * Conversion from spinning to blocking is expensive; we use (1U << + * BLOCK_COST_2POW) to estimate how many more times costly blocking is than + * worst-case spinning. + */ +#define BLOCK_COST_2POW 4 + +/* + * We use an exponential moving average to track recent lock contention, where + * the size of the history window is N, and alpha=2/(N+1). + * + * Due to integer math rounding, very small values here can cause substantial + * degradation in accuracy, thus making the moving average decay faster than it + * would with precise calculation. + */ +#define BALANCE_ALPHA_INV_2POW 9 + +/* + * Threshold value for the exponential moving contention average at which to + * re-assign a thread. + */ +#define BALANCE_THRESHOLD_DEFAULT (1U << (SPIN_LIMIT_2POW-4)) /******************************************************************************/ /* - * Mutexes based on spinlocks. We can't use normal pthread mutexes, because - * they require malloc()ed memory. + * Mutexes based on spinlocks. We can't use normal pthread spinlocks in all + * places, because they require malloc()ed memory, which causes bootstrapping + * issues in some cases. */ typedef struct { spinlock_t lock; @@ -319,6 +372,11 @@ size_t allocated_large; uint64_t nmalloc_large; uint64_t ndalloc_large; + +#ifndef NO_TLS + /* Number of times this arena reassigned a thread due to contention. */ + uint64_t nbalance; +#endif }; typedef struct chunk_stats_s chunk_stats_t; @@ -374,17 +432,27 @@ typedef struct arena_chunk_map_s arena_chunk_map_t; struct arena_chunk_map_s { - /* Number of pages in run. */ + /* + * Number of pages in run. For a free run that has never been touched, + * this is NPAGES_EMPTY for the central pages, which allows us to avoid + * zero-filling untouched pages for calloc(). + */ +#define NPAGES_EMPTY ((uint32_t)0x0U) uint32_t npages; /* - * Position within run. For a free run, this is POS_FREE for the first - * and last pages. The POS_FREE special value makes it possible to - * quickly coalesce free runs. + * Position within run. For a free run, this is POS_EMPTY/POS_FREE for + * the first and last pages. The special values make it possible to + * quickly coalesce free runs. POS_EMPTY indicates that the run has + * never been touched, which allows us to avoid zero-filling untouched + * pages for calloc(). * * This is the limiting factor for chunksize; there can be at most 2^31 * pages in a run. + * + * POS_EMPTY is assumed by arena_run_dalloc() to be less than POS_FREE. */ -#define POS_FREE ((uint32_t)0xffffffffU) +#define POS_EMPTY ((uint32_t)0xfffffffeU) +#define POS_FREE ((uint32_t)0xffffffffU) uint32_t pos; }; @@ -496,8 +564,8 @@ # define ARENA_MAGIC 0x947d3d24 #endif - /* All operations on this arena require that mtx be locked. */ - malloc_mutex_t mtx; + /* All operations on this arena require that lock be locked. */ + pthread_mutex_t lock; #ifdef MALLOC_STATS arena_stats_t stats; @@ -517,7 +585,23 @@ * order to avoid interactions between multiple threads that could make * a single spare inadequate. */ - arena_chunk_t *spare; + arena_chunk_t *spare; + +#ifndef NO_TLS + /* + * The arena load balancing machinery needs to keep track of how much + * lock contention there is. This value is exponentially averaged. + */ + uint32_t contention; + + /* + * Deallocation of small objects can be lazy, in which case free_cache + * stores pointers to those objects that have not yet been deallocated. + * In order to avoid lock contention, slots are chosen randomly. Empty + * slots contain NULL. + */ + void **free_cache; +#endif /* * bins is used to store rings of free regions of the following sizes, @@ -650,9 +734,9 @@ static arena_t **arenas; static unsigned narenas; #ifndef NO_TLS -static unsigned next_arena; +static unsigned narenas_2pow; #endif -static malloc_mutex_t arenas_mtx; /* Protects arenas initialization. */ +static pthread_mutex_t arenas_lock; /* Protects arenas initialization. */ #ifndef NO_TLS /* @@ -681,6 +765,10 @@ static bool opt_junk = false; #endif static bool opt_hint = false; +#ifndef NO_TLS +static int opt_lazy_free_2pow = LAZY_FREE_2POW_DEFAULT; +static uint64_t opt_balance_threshold = BALANCE_THRESHOLD_DEFAULT; +#endif static bool opt_print_stats = false; static size_t opt_quantum_2pow = QUANTUM_2POW_MIN; static size_t opt_small_max_2pow = SMALL_MAX_2POW_DEFAULT; @@ -689,7 +777,7 @@ static bool opt_sysv = false; static bool opt_xmalloc = false; static bool opt_zero = false; -static int32_t opt_narenas_lshift = 0; +static int opt_narenas_lshift = 0; typedef struct { void *p; @@ -709,6 +797,7 @@ */ static void malloc_mutex_init(malloc_mutex_t *a_mutex); +static bool malloc_spin_init(pthread_mutex_t *lock); static void wrtmessage(const char *p1, const char *p2, const char *p3, const char *p4); #ifdef MALLOC_STATS @@ -717,6 +806,7 @@ static char *umax2s(uintmax_t x, char *s); static bool base_pages_alloc(size_t minsize); static void *base_alloc(size_t size); +static void *base_calloc(size_t number, size_t size); static chunk_node_t *base_chunk_node_alloc(void); static void base_chunk_node_dealloc(chunk_node_t *node); #ifdef MALLOC_STATS @@ -729,15 +819,16 @@ #ifndef NO_TLS static arena_t *choose_arena_hard(void); #endif -static void arena_run_split(arena_t *arena, arena_run_t *run, size_t size); +static void arena_run_split(arena_t *arena, arena_run_t *run, size_t size, + bool zero); static arena_chunk_t *arena_chunk_alloc(arena_t *arena); static void arena_chunk_dealloc(arena_t *arena, arena_chunk_t *chunk); -static arena_run_t *arena_run_alloc(arena_t *arena, size_t size); +static arena_run_t *arena_run_alloc(arena_t *arena, size_t size, bool zero); static void arena_run_dalloc(arena_t *arena, arena_run_t *run, size_t size); static arena_run_t *arena_bin_nonfull_run_get(arena_t *arena, arena_bin_t *bin); static void *arena_bin_malloc_hard(arena_t *arena, arena_bin_t *bin); static size_t arena_bin_run_size_calc(arena_bin_t *bin, size_t min_run_size); -static void *arena_malloc(arena_t *arena, size_t size); +static void *arena_malloc(arena_t *arena, size_t size, bool zero); static void *arena_palloc(arena_t *arena, size_t alignment, size_t size, size_t alloc_size); static size_t arena_salloc(const void *ptr); @@ -745,7 +836,7 @@ static void arena_dalloc(arena_t *arena, arena_chunk_t *chunk, void *ptr); static bool arena_new(arena_t *arena); static arena_t *arenas_extend(unsigned ind); -static void *huge_malloc(size_t size); +static void *huge_malloc(size_t size, bool zero); static void *huge_palloc(size_t alignment, size_t size); static void *huge_ralloc(void *ptr, size_t size, size_t oldsize); static void huge_dalloc(void *ptr); @@ -763,7 +854,9 @@ */ /******************************************************************************/ /* - * Begin mutex. + * Begin mutex. We can't use normal pthread mutexes in all places, because + * they require malloc()ed memory, which causes bootstrapping issues in some + * cases. */ static void @@ -795,6 +888,86 @@ */ /******************************************************************************/ /* + * Begin spin lock. Spin locks here are actually adaptive mutexes that block + * after a period of spinning, because unbounded spinning would allow for + * priority inversion. + */ + +/* + * We use an unpublished interface to initialize pthread mutexes with an + * allocation callback, in order to avoid infinite recursion. + */ +int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, + void *(calloc_cb)(size_t, size_t)); + +__weak_reference(_pthread_mutex_init_calloc_cb_stub, + _pthread_mutex_init_calloc_cb); + +int +_pthread_mutex_init_calloc_cb_stub(pthread_mutex_t *mutex, + void *(calloc_cb)(size_t, size_t)) +{ + + return (0); +} + +static bool +malloc_spin_init(pthread_mutex_t *lock) +{ + + if (_pthread_mutex_init_calloc_cb(lock, base_calloc) != 0) + return (true); + + return (false); +} + +static inline unsigned +malloc_spin_lock(pthread_mutex_t *lock) +{ + unsigned ret = 0; + + if (__isthreaded) { + if (_pthread_mutex_trylock(lock) != 0) { + unsigned i; + volatile unsigned j; + + /* Exponentially back off. */ + for (i = 1; i <= SPIN_LIMIT_2POW; i++) { + for (j = 0; j < (1U << i); j++) + ret++; + + CPU_SPINWAIT; + if (_pthread_mutex_trylock(lock) == 0) + return (ret); + } + + /* + * Spinning failed. Block until the lock becomes + * available, in order to avoid indefinite priority + * inversion. + */ + _pthread_mutex_lock(lock); + assert((ret << BLOCK_COST_2POW) != 0); + return (ret << BLOCK_COST_2POW); + } + } + + return (ret); +} + +static inline void +malloc_spin_unlock(pthread_mutex_t *lock) +{ + + if (__isthreaded) + _pthread_mutex_unlock(lock); +} + +/* + * End spin lock. + */ +/******************************************************************************/ +/* * Begin Utility functions/macros. */ @@ -840,6 +1013,63 @@ return (x); } +#ifndef NO_TLS +/* + * Use a simple linear congruential pseudo-random number generator: + * + * prn(y) = (a*x + c) % m + * + * where the following constants ensure maximal period: + * + * a == Odd number (relatively prime to 2^n), and (a-1) is a multiple of 4. + * c == Odd number (relatively prime to 2^n). + * m == 2^32 + * + * See Knuth's TAOCP 3rd Ed., Vol. 2, pg. 17 for details on these constraints. + * + * This choice of m has the disadvantage that the quality of the bits is + * proportional to bit position. For example. the lowest bit has a cycle of 2, + * the next has a cycle of 4, etc. For this reason, we prefer to use the upper + * bits. + */ +#define PRN_DEFINE(suffix, var, a, c) \ +static inline void \ +sprn_##suffix(uint32_t seed) \ +{ \ + var = seed; \ +} \ + \ +static inline uint32_t \ +prn_##suffix(uint32_t lg_range) \ +{ \ + uint32_t ret, x; \ + \ + assert(lg_range > 0); \ + assert(lg_range <= 32); \ + \ + x = (var * (a)) + (c); \ + var = x; \ + ret = x >> (32 - lg_range); \ + \ + return (ret); \ +} +#define SPRN(suffix, seed) sprn_##suffix(seed) +#define PRN(suffix, lg_range) prn_##suffix(lg_range) + +/* + * Define PRNGs, one for each purpose, in order to avoid auto-correlation + * problems. + */ + +/* Define the per-thread PRNG used for lazy deallocation. */ +static __thread uint32_t lazy_free_x; +PRN_DEFINE(lazy_free, lazy_free_x, 12345, 12347) + +/* Define the PRNG used for arena assignment. */ +static __thread uint32_t balance_x; +PRN_DEFINE(balance, balance_x, 1297, 1301); +#endif + static void wrtmessage(const char *p1, const char *p2, const char *p3, const char *p4) { @@ -876,7 +1106,7 @@ * integer printing functionality, so that malloc_printf() use can be limited to * MALLOC_STATS code. */ -#define UMAX2S_BUFSIZE 21 +#define UMAX2S_BUFSIZE 21 static char * umax2s(uintmax_t x, char *s) { @@ -995,6 +1225,17 @@ return (ret); } +static void * +base_calloc(size_t number, size_t size) +{ + void *ret; + + ret = base_alloc(number * size); + memset(ret, 0, number * size); + + return (ret); +} + static chunk_node_t * base_chunk_node_alloc(void) { @@ -1202,6 +1443,11 @@ && (uintptr_t)chunk < (uintptr_t)brk_max) { /* Re-use a previously freed brk chunk. */ ret = chunk; + /* + * Maintain invariant that all newly allocated + * chunks are untouched or zero-filled. + */ + memset(ret, 0, size); goto RETURN; } #endif @@ -1444,8 +1690,10 @@ } ret = arenas_map; - if (ret == NULL) + if (ret == NULL) { ret = choose_arena_hard(); + assert(ret != NULL); + } #else if (__isthreaded) { unsigned long ind; @@ -1479,12 +1727,12 @@ * Avoid races with another thread that may have already * initialized arenas[ind]. */ - malloc_mutex_lock(&arenas_mtx); + malloc_spin_lock(&arenas_lock); if (arenas[ind] == NULL) ret = arenas_extend((unsigned)ind); else ret = arenas[ind]; - malloc_mutex_unlock(&arenas_mtx); + malloc_spin_unlock(&arenas_lock); } } else ret = arenas[0]; @@ -1506,21 +1754,39 @@ assert(__isthreaded); - /* Assign one of the arenas to this thread, in a round-robin fashion. */ - malloc_mutex_lock(&arenas_mtx); - ret = arenas[next_arena]; - if (ret == NULL) - ret = arenas_extend(next_arena); - if (ret == NULL) { - /* - * Make sure that this function never returns NULL, so that - * choose_arena() doesn't have to check for a NULL return - * value. - */ + /* + * Seed the PRNG used for lazy deallocation. Since seeding only occurs + * on the first allocation by a thread, it is possible for a thread to + * deallocate before seeding. This is not a critical issue though, + * since it is extremely unusual for an application to to use threads + * that deallocate but *never* allocate, and because even if seeding + * never occurs for multiple threads, they will tend to drift apart + * unless some aspect of the application forces deallocation + * synchronization. + */ + SPRN(lazy_free, (uint32_t)(uintptr_t)(_pthread_self())); + + /* + * Seed the PRNG used for arena load balancing. We can get away with + * using the same seed here as for the lazy_free PRNG without + * introducing autocorrelation because the PRNG parameters are + * distinct. + */ + SPRN(balance, (uint32_t)(uintptr_t)(_pthread_self())); + + if (narenas > 1) { + unsigned ind; + + ind = PRN(balance, narenas_2pow); + if ((ret = arenas[ind]) == NULL) { + malloc_spin_lock(&arenas_lock); + if ((ret = arenas[ind]) == NULL) + ret = arenas_extend(ind); + malloc_spin_unlock(&arenas_lock); + } + } else ret = arenas[0]; - } - next_arena = (next_arena + 1) % narenas; - malloc_mutex_unlock(&arenas_mtx); + arenas_map = ret; return (ret); @@ -1588,7 +1854,7 @@ + (bin->reg_size * regind)); /* Clear bit. */ - mask ^= (1 << bit); + mask ^= (1U << bit); run->regs_mask[i] = mask; return (ret); @@ -1605,7 +1871,7 @@ + (bin->reg_size * regind)); /* Clear bit. */ - mask ^= (1 << bit); + mask ^= (1U << bit); run->regs_mask[i] = mask; /* @@ -1635,8 +1901,8 @@ * * (X * size_invs[(D >> QUANTUM_2POW_MIN) - 3]) >> SIZE_INV_SHIFT */ -#define SIZE_INV_SHIFT 21 -#define SIZE_INV(s) (((1 << SIZE_INV_SHIFT) / (s << QUANTUM_2POW_MIN)) + 1) +#define SIZE_INV_SHIFT 21 +#define SIZE_INV(s) (((1U << SIZE_INV_SHIFT) / (s << QUANTUM_2POW_MIN)) + 1) static const unsigned size_invs[] = { SIZE_INV(3), SIZE_INV(4), SIZE_INV(5), SIZE_INV(6), SIZE_INV(7), @@ -1718,32 +1984,73 @@ if (elm < run->regs_minelm) run->regs_minelm = elm; bit = regind - (elm << (SIZEOF_INT_2POW + 3)); - assert((run->regs_mask[elm] & (1 << bit)) == 0); - run->regs_mask[elm] |= (1 << bit); + assert((run->regs_mask[elm] & (1U << bit)) == 0); + run->regs_mask[elm] |= (1U << bit); #undef SIZE_INV #undef SIZE_INV_SHIFT } static void -arena_run_split(arena_t *arena, arena_run_t *run, size_t size) +arena_run_split(arena_t *arena, arena_run_t *run, size_t size, bool zero) { arena_chunk_t *chunk; unsigned run_ind, map_offset, total_pages, need_pages, rem_pages; unsigned i; + uint32_t pos_beg, pos_end; chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(run); run_ind = (unsigned)(((uintptr_t)run - (uintptr_t)chunk) >> pagesize_2pow); total_pages = chunk->map[run_ind].npages; need_pages = (size >> pagesize_2pow); + assert(need_pages > 0); assert(need_pages <= total_pages); rem_pages = total_pages - need_pages; /* Split enough pages from the front of run to fit allocation size. */ map_offset = run_ind; - for (i = 0; i < need_pages; i++) { + pos_beg = chunk->map[map_offset].pos; + pos_end = chunk->map[map_offset + total_pages - 1].pos; + if (zero == false) { + for (i = 0; i < need_pages; i++) { + chunk->map[map_offset + i].npages = need_pages; + chunk->map[map_offset + i].pos = i; + } + } else { + /* + * Handle first page specially, since we need to look for + * POS_EMPTY rather than NPAGES_EMPTY. + */ + i = 0; + if (chunk->map[map_offset + i].pos != POS_EMPTY) { + memset((void *)((uintptr_t)chunk + ((map_offset + i) << + pagesize_2pow)), 0, pagesize); + } chunk->map[map_offset + i].npages = need_pages; chunk->map[map_offset + i].pos = i; + + /* Handle central pages. */ + for (i++; i < need_pages - 1; i++) { + if (chunk->map[map_offset + i].npages != NPAGES_EMPTY) { + memset((void *)((uintptr_t)chunk + ((map_offset + + i) << pagesize_2pow)), 0, pagesize); + } + chunk->map[map_offset + i].npages = need_pages; + chunk->map[map_offset + i].pos = i; + } + + /* + * Handle last page specially, since we need to look for + * POS_EMPTY rather than NPAGES_EMPTY. + */ + if (i < need_pages) { + if (chunk->map[map_offset + i].npages != POS_EMPTY) { + memset((void *)((uintptr_t)chunk + ((map_offset + + i) << pagesize_2pow)), 0, pagesize); + } + chunk->map[map_offset + i].npages = need_pages; + chunk->map[map_offset + i].pos = i; + } } /* Keep track of trailing unused pages for later use. */ @@ -1751,9 +2058,9 @@ /* Update map for trailing pages. */ map_offset += need_pages; chunk->map[map_offset].npages = rem_pages; - chunk->map[map_offset].pos = POS_FREE; + chunk->map[map_offset].pos = pos_beg; chunk->map[map_offset + rem_pages - 1].npages = rem_pages; - chunk->map[map_offset + rem_pages - 1].pos = POS_FREE; + chunk->map[map_offset + rem_pages - 1].pos = pos_end; } chunk->pages_used += need_pages; @@ -1770,6 +2077,8 @@ RB_INSERT(arena_chunk_tree_s, &arena->chunks, chunk); } else { + unsigned i; + chunk = (arena_chunk_t *)chunk_alloc(chunksize); if (chunk == NULL) return (NULL); @@ -1794,12 +2103,20 @@ /* * Initialize enough of the map to support one maximal free run. */ - chunk->map[arena_chunk_header_npages].npages = chunk_npages - - arena_chunk_header_npages; - chunk->map[arena_chunk_header_npages].pos = POS_FREE; - chunk->map[chunk_npages - 1].npages = chunk_npages - - arena_chunk_header_npages; - chunk->map[chunk_npages - 1].pos = POS_FREE; + i = arena_chunk_header_npages; + chunk->map[i].npages = chunk_npages - arena_chunk_header_npages; + chunk->map[i].pos = POS_EMPTY; + + /* Mark the free run's central pages as untouched. */ + for (i++; i < chunk_npages - 1; i++) + chunk->map[i].npages = NPAGES_EMPTY; + + /* Take care when (chunk_npages == 2). */ + if (i < chunk_npages) { + chunk->map[i].npages = chunk_npages - + arena_chunk_header_npages; + chunk->map[i].pos = POS_EMPTY; + } } return (chunk); @@ -1833,7 +2150,7 @@ } static arena_run_t * -arena_run_alloc(arena_t *arena, size_t size) +arena_run_alloc(arena_t *arena, size_t size, bool zero) { arena_chunk_t *chunk; arena_run_t *run; @@ -1867,14 +2184,14 @@ arena_chunk_header_npages); for (i = chunk->min_frun_ind; i < chunk_npages;) { mapelm = &chunk->map[i]; - if (mapelm->pos == POS_FREE) { + if (mapelm->pos >= POS_EMPTY) { if (mapelm->npages >= need_npages) { run = (arena_run_t *) ((uintptr_t)chunk + (i << pagesize_2pow)); /* Update page map. */ arena_run_split(arena, run, - size); + size, zero); return (run); } if (mapelm->npages > @@ -1908,7 +2225,7 @@ run = (arena_run_t *)((uintptr_t)chunk + (arena_chunk_header_npages << >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Nov 28 19:51:56 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 78F7216A4C4; Wed, 28 Nov 2007 19:51:56 +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 1FAD516A417 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:51:56 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 14F1E13C442 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:51:56 +0000 (UTC) (envelope-from peter@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 lASJptSq028743 for <perforce@freebsd.org>; Wed, 28 Nov 2007 19:51:55 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lASJptLS028740 for perforce@freebsd.org; Wed, 28 Nov 2007 19:51:55 GMT (envelope-from peter@freebsd.org) Date: Wed, 28 Nov 2007 19:51:55 GMT Message-Id: <200711281951.lASJptLS028740@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Cc: Subject: PERFORCE change 129717 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Nov 2007 19:51:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=129717 Change 129717 by peter@peter_overcee on 2007/11/28 19:51:37 Switch from -C to -P (pcpu) to sync with top Affected files ... .. //depot/projects/hammer/usr.bin/vmstat/vmstat.c#27 edit Differences ... ==== //depot/projects/hammer/usr.bin/vmstat/vmstat.c#27 (text+ko) ==== @@ -138,7 +138,7 @@ static int winlines = 20; static int aflag; static int nflag; -static int Cflag; +static int Pflag; static int hflag; static kvm_t *kd; @@ -152,7 +152,7 @@ #define ZMEMSTAT 0x40 static void cpustats(void); -static void Cpustats(int, u_long, int); +static void pcpustats(int, u_long, int); static void devstats(void); static void doforkst(void); static void dointr(void); @@ -185,7 +185,7 @@ interval = reps = todo = 0; maxshowdevs = 2; hflag = isatty(1); - while ((c = getopt(argc, argv, "ac:CfhHiM:mN:n:p:stw:z")) != -1) { + while ((c = getopt(argc, argv, "ac:fhHiM:mN:n:Pp:stw:z")) != -1) { switch (c) { case 'a': aflag++; @@ -193,8 +193,8 @@ case 'c': reps = atoi(optarg); break; - case 'C': - Cflag++; + case 'P': + Pflag++; break; case 'f': todo |= FORKSTAT; @@ -275,8 +275,8 @@ warnx("kvm_nlist: %s", kvm_geterr(kd)); exit(1); } - if (kd && Cflag) - errx(1, "Cannot use -C with crash dumps"); + if (kd && Pflag) + errx(1, "Cannot use -P with crash dumps"); if (todo & VMSTAT) { struct winsize winsize; @@ -598,7 +598,7 @@ hz = clockrate.hz; } - if (Cflag) { + if (Pflag) { ncpus = getcpuinfo(&cpumask, &maxid); size_cp_times = sizeof(long) * (maxid + 1) * CPUSTATES; cur_cp_times = malloc(size_cp_times); @@ -617,7 +617,7 @@ if (size != sizeof(cur.cp_time)) errx(1, "cp_time size mismatch"); } - if (Cflag) { + if (Pflag) { size = size_cp_times; mysysctl("kern.cp_times", cur_cp_times, &size, NULL, 0); if (size != size_cp_times) @@ -703,8 +703,8 @@ (unsigned long)rate(sum.v_intr - osum.v_intr), (unsigned long)rate(sum.v_syscall - osum.v_syscall), (unsigned long)rate(sum.v_swtch - osum.v_swtch)); - if (Cflag) - Cpustats(ncpus, cpumask, maxid); + if (Pflag) + pcpustats(ncpus, cpumask, maxid); else cpustats(); (void)printf("\n"); @@ -737,7 +737,7 @@ else if (num_shown == 1) (void)printf("disk"); (void)printf(" faults "); - if (Cflag) { + if (Pflag) { for (i = 0; i < ncpus; i++) { if (cpumask && (1ul << i)) printf("cpu%-2d ", i); @@ -753,7 +753,7 @@ dev_select[i].device_name[1], dev_select[i].unit_number); (void)printf(" in sy cs"); - if (Cflag) { + if (Pflag) { for (i = 0; i < ncpus; i++) printf(" us sy id"); printf("\n"); @@ -967,7 +967,7 @@ } static void -Cpustats(int ncpus, u_long cpumask, int maxid) +pcpustats(int ncpus, u_long cpumask, int maxid) { int state, i; double lpct, total; From owner-p4-projects@FreeBSD.ORG Thu Nov 29 00:29:13 2007 Return-Path: <owner-p4-projects@FreeBSD.ORG> Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4460316A420; Thu, 29 Nov 2007 00:29:13 +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 D9B9616A468 for <perforce@freebsd.org>; Thu, 29 Nov 2007 00:29:12 +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 DCA2513C45A for <perforce@freebsd.org>; Thu, 29 Nov 2007 00:29:12 +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 lAT0TCYL065270 for <perforce@freebsd.org>; Thu, 29 Nov 2007 00:29:12 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAT0TAWD065267 for perforce@freebsd.org; Thu, 29 Nov 2007 00:29:10 GMT (envelope-from jb@freebsd.org) Date: Thu, 29 Nov 2007 00:29:10 GMT Message-Id: <200711290029.lAT0TAWD065267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Cc: Subject: PERFORCE change 129745 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes <p4-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/p4-projects> List-Post: <mailto:p4-projects@freebsd.org> List-Help: <mailto:p4-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/p4-projects>, <mailto:p4-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Thu, 29 Nov 2007 00:29:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=129745 Change 129745 by jb@jb_freebsd1 on 2007/11/29 00:28:39 IFC This loops back a lot of the opensolaris compatibility cruft which very much simplifies the diff between this project and HEAD. Affected files ... .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#10 integrate .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#9 integrate .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#13 integrate .. //depot/projects/dtrace/src/ObsoleteFiles.inc#31 integrate .. //depot/projects/dtrace/src/UPDATING#21 integrate .. //depot/projects/dtrace/src/cddl/Makefile.inc#8 integrate .. //depot/projects/dtrace/src/cddl/lib/libnvpair/Makefile#3 integrate .. //depot/projects/dtrace/src/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#4 integrate .. //depot/projects/dtrace/src/etc/defaults/periodic.conf#8 integrate .. //depot/projects/dtrace/src/etc/freebsd-update.conf#4 integrate .. //depot/projects/dtrace/src/include/elf.h#7 integrate .. //depot/projects/dtrace/src/lib/libc/stdlib/malloc.c#12 integrate .. //depot/projects/dtrace/src/lib/libgssapi/gss_acquire_cred.c#4 integrate .. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex.c#5 integrate .. //depot/projects/dtrace/src/lib/libthr/thread/thr_mutex.c#13 integrate .. //depot/projects/dtrace/src/sbin/atacontrol/atacontrol.8#4 integrate .. //depot/projects/dtrace/src/sbin/mdconfig/mdconfig.8#6 integrate .. //depot/projects/dtrace/src/sbin/newfs/newfs.8#5 integrate .. //depot/projects/dtrace/src/sbin/newfs/newfs.c#6 integrate .. //depot/projects/dtrace/src/sbin/newfs/newfs.h#5 integrate .. //depot/projects/dtrace/src/sbin/sysctl/sysctl.8#6 integrate .. //depot/projects/dtrace/src/share/man/man4/agp.4#4 integrate .. //depot/projects/dtrace/src/share/man/man4/enc.4#8 integrate .. //depot/projects/dtrace/src/share/man/man4/ichsmb.4#4 integrate .. //depot/projects/dtrace/src/share/man/man4/rl.4#5 integrate .. //depot/projects/dtrace/src/share/man/man9/stack.9#2 integrate .. //depot/projects/dtrace/src/share/misc/iso3166#5 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#24 integrate .. //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#26 integrate .. //depot/projects/dtrace/src/sys/amd64/include/pci_cfgreg.h#4 integrate .. //depot/projects/dtrace/src/sys/amd64/pci/pci_cfgreg.c#4 integrate .. //depot/projects/dtrace/src/sys/arm/arm/busdma_machdep.c#8 integrate .. //depot/projects/dtrace/src/sys/arm/arm/cpufunc.c#13 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/rpc/xdr.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/atomic.h#4 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/cyclic.h#1 branch .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/kmem.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/proc.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/time.h#5 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/types.h#3 integrate .. //depot/projects/dtrace/src/sys/conf/NOTES#32 integrate .. //depot/projects/dtrace/src/sys/conf/options#31 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/common/avl/avl.c#11 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/common/nvpair/nvpair.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/rpc/xdr.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/rpc/xdr.h#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/byteorder.h#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/isa_defs.h#9 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/procset.h#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/sysmacros.h#3 integrate .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/vmem.h#5 integrate .. //depot/projects/dtrace/src/sys/dev/amr/amr.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/amr/amr_cam.c#7 integrate .. //depot/projects/dtrace/src/sys/dev/em/if_em.c#17 integrate .. //depot/projects/dtrace/src/sys/dev/em/if_em.h#11 integrate .. //depot/projects/dtrace/src/sys/dev/sound/pci/hda/hdac.c#14 integrate .. //depot/projects/dtrace/src/sys/i386/conf/GENERIC#24 integrate .. //depot/projects/dtrace/src/sys/i386/conf/XBOX#5 integrate .. //depot/projects/dtrace/src/sys/i386/pci/pci_cfgreg.c#5 integrate .. //depot/projects/dtrace/src/sys/kern/kern_mutex.c#16 integrate .. //depot/projects/dtrace/src/sys/modules/zfs/Makefile#3 integrate .. //depot/projects/dtrace/src/sys/net/if_enc.c#8 integrate .. //depot/projects/dtrace/src/sys/netinet/tcp_output.c#10 integrate .. //depot/projects/dtrace/src/sys/netinet/tcp_subr.c#18 integrate .. //depot/projects/dtrace/src/sys/netipsec/ipsec.c#9 integrate .. //depot/projects/dtrace/src/sys/netipsec/ipsec.h#6 integrate .. //depot/projects/dtrace/src/sys/netipsec/ipsec_input.c#8 integrate .. //depot/projects/dtrace/src/sys/netipsec/ipsec_output.c#5 integrate .. //depot/projects/dtrace/src/sys/netipsec/xform.h#4 integrate .. //depot/projects/dtrace/src/sys/netipsec/xform_ipip.c#5 integrate .. //depot/projects/dtrace/src/sys/sparc64/conf/GENERIC#14 integrate .. //depot/projects/dtrace/src/sys/sun4v/conf/GENERIC#18 integrate .. //depot/projects/dtrace/src/sys/sys/elf.h#6 integrate .. //depot/projects/dtrace/src/sys/sys/kernel.h#15 integrate .. //depot/projects/dtrace/src/sys/sys/param.h#25 integrate .. //depot/projects/dtrace/src/sys/sys/signal.h#5 integrate .. //depot/projects/dtrace/src/sys/sys/stat.h#7 integrate .. //depot/projects/dtrace/src/sys/sys/time.h#12 integrate .. //depot/projects/dtrace/src/sys/sys/types.h#7 integrate .. //depot/projects/dtrace/src/tools/regression/netinet/tcpconnect/README.tcp-md5#1 branch .. //depot/projects/dtrace/src/tools/regression/netinet/tcpconnect/tcpconnect.c#4 integrate .. //depot/projects/dtrace/src/usr.bin/fstat/zfs/Makefile#2 integrate .. //depot/projects/dtrace/www/en/cgi/man.cgi#4 integrate .. //depot/projects/dtrace/www/share/sgml/commercial.isp.xml#8 integrate Differences ... ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#10 (text+ko) ==== @@ -1,6 +1,6 @@ <!-- The FreeBSD Documentation Project - $FreeBSD: doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml,v 1.30 2007/08/23 05:12:26 chinsan Exp $ + $FreeBSD: doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml,v 1.31 2007/11/28 11:55:25 rwatson Exp $ --> <!-- Need more documentation on praudit, auditreduce, etc. Plus more info @@ -36,7 +36,7 @@ <see>MAC</see> </indexterm> - <para>FreeBSD 6.2-RELEASE and later include support for fine-grained + <para>&os; 6.2 and later include support for fine-grained security event auditing. Event auditing allows the reliable, fine-grained, and configurable logging of a variety of security-relevant system events, including logins, configuration @@ -191,9 +191,10 @@ <title>Installing Audit Support User space support for Event Auditing is installed as part of the - base &os; operating system as of 6.2-RELEASE. However, Event Auditing - support must be explicitly compiled into the kernel by adding the - following lines to the kernel configuration file: + base &os; operating system. In &os; 6.3 and later, kernel support for + Event Auditing is compiled in by default. In &os; 6.2, support must be + explicitly compiled into the kernel by adding the following lines to + the kernel configuration file: options AUDIT @@ -201,9 +202,9 @@ the kernel via the normal process explained in . - Once the kernel is built, installed, and the system has been - rebooted, enable the audit daemon by adding the following line to - &man.rc.conf.5;: + Once an audit-enabled kernel is built, installed, and the system + has been rebooted, enable the audit daemon by adding the following line + to &man.rc.conf.5;: auditd_enable="YES" @@ -584,6 +585,10 @@ return token indicates the successful execution, and the trailer concludes the record. + In &os; 6.3 and later, praudit also supports + an XML output format, which can be selected using the + argument. + ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#9 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -875,6 +875,13 @@ light Tcl/Tk + + + KMyMoney + light + heavy + KDE + @@ -975,6 +982,38 @@ &prompt.root; cd /usr/ports/deskutils/abacus &prompt.root; make install clean + + + KMyMoney + + KMyMoney + + + spreadsheet + KMyMoney + + + KMyMoney is a personal finance + manager built for KDE. KMyMoney intends to provide and + incorporate all the important features found in commercial + personal finance manager applications. It also highlights + ease-of-use and proper double-entry accounting among its + features. KMyMoney imports from standard Quicken Interchange + Format (QIF) files, tracks investments, handles multiple + currencies, and provides a wealth of reports. OFX import + capabilities are also available through a separate plugin. + + To install KMyMoney as a + package, do: + + &prompt.root; pkg_add -r kmymoney2 + + If the package is not available, you can use the ports + collection by doing: + + &prompt.root; cd /usr/ports/finance/kmymoney2 +&prompt.root; make install clean + ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#13 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -3819,7 +3819,7 @@ install Apache when you first installed FreeBSD, then you can install it from the www/apache13 or www/apache20 port. + role="package">www/apache22 port. Once Apache has been installed successfully, it must be configured. @@ -3952,6 +3952,10 @@ apache_enable="YES" + or for Apache 2.2: + + apache22_enable="YES" + If you would like to supply additional command line options for the Apache httpd program started at system boot, you @@ -4041,7 +4045,7 @@ 1.3.X that includes mod_ssl may be installed with the www/apache13-modssl port. SSL support is also available for Apache 2.X in the - www/apache20 port, + www/apache22 port, where it is enabled by default. @@ -4082,7 +4086,7 @@ remember that mod_perl 1.0 only works with Apache 1.3 and mod_perl 2.0 only works with - Apache 2. + Apache 2.X. mod_perl 1.0 is available in www/mod_perl and a statically compiled version is available in ==== //depot/projects/dtrace/src/ObsoleteFiles.inc#31 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.121 2007/11/27 13:58:25 brix Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.122 2007/11/28 23:21:55 jb Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20071129: Removed a Solaris compatibility header +OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071108: Removed very crunch OLDCARD support file OLD_FILES+=etc/defaults/pccard.conf # 20071104: Removed bsdlabel, fdisk and gpt from rescue on ia64. ==== //depot/projects/dtrace/src/UPDATING#21 (text+ko) ==== @@ -21,6 +21,10 @@ developers choose to disable these features on build machines to maximize performance. +20071128: + The ADAPTIVE_GIANT kernel option has been retired because its + functionality is the default now. + 20071118: The AT keyboard emulation of sunkbd(4) has been turned on by default. In order to make the special symbols of the Sun @@ -945,4 +949,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.512 2007/11/18 18:11:16 marius Exp $ +$FreeBSD: src/UPDATING,v 1.513 2007/11/28 13:04:11 matteo Exp $ ==== //depot/projects/dtrace/src/cddl/Makefile.inc#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/cddl/Makefile.inc,v 1.2 2007/04/16 21:20:24 ru Exp $ +# $FreeBSD: src/cddl/Makefile.inc,v 1.3 2007/11/28 22:58:09 jb Exp $ OPENSOLARIS_USR_DISTDIR= ${.CURDIR}/../../../contrib/opensolaris OPENSOLARIS_SYS_DISTDIR= ${.CURDIR}/../../../sys/contrib/opensolaris ==== //depot/projects/dtrace/src/cddl/lib/libnvpair/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $ +# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.3 2007/11/28 22:58:09 jb Exp $ .PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libnvpair .PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/nvpair ==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#4 (text+ko) ==== ==== //depot/projects/dtrace/src/etc/defaults/periodic.conf#8 (text+ko) ==== @@ -13,7 +13,7 @@ # For a more detailed explanation of all the periodic.conf variables, please # refer to the periodic.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/periodic.conf,v 1.44 2007/05/29 06:22:13 dougb Exp $ +# $FreeBSD: src/etc/defaults/periodic.conf,v 1.45 2007/11/28 17:31:11 jhb Exp $ # # What files override these defaults ? @@ -45,7 +45,9 @@ daily_clean_tmps_enable="NO" # Delete stuff daily daily_clean_tmps_dirs="/tmp" # Delete under here daily_clean_tmps_days="3" # If not accessed for -daily_clean_tmps_ignore=".X*-lock quota.user quota.group" # Don't delete these +daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix" +daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group" + # Don't delete these daily_clean_tmps_verbose="YES" # Mention files deleted # 120.clean-preserve ==== //depot/projects/dtrace/src/etc/freebsd-update.conf#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/freebsd-update.conf,v 1.2 2007/11/12 04:47:57 cperciva Exp $ +# $FreeBSD: src/etc/freebsd-update.conf,v 1.3 2007/11/28 22:45:09 cperciva Exp $ # Trusted keyprint. Changing this is a Bad Idea unless you've received # a PGP-signed email from telling you to @@ -24,7 +24,7 @@ # Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). -UpdateIfUnmodified /etc/ /var/ +UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile # When upgrading to a new FreeBSD release, files which match MergeChanges # will have any local changes merged into the version from the new release. ==== //depot/projects/dtrace/src/include/elf.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/include/elf.h,v 1.9 2006/10/04 07:25:55 jb Exp $ + * $FreeBSD: src/include/elf.h,v 1.10 2007/11/28 22:09:12 jb Exp $ */ /* ==== //depot/projects/dtrace/src/lib/libc/stdlib/malloc.c#12 (text+ko) ==== @@ -105,7 +105,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.151 2007/11/27 03:17:30 jasone Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.152 2007/11/28 00:17:34 jasone Exp $"); #include "libc_private.h" #ifdef MALLOC_DEBUG @@ -2598,7 +2598,7 @@ /* Large allocation. */ size = PAGE_CEILING(size); arena_lock_balance(arena); - ret = (void *)arena_run_alloc(arena, size, true); // XXX zero? + ret = (void *)arena_run_alloc(arena, size, zero); if (ret == NULL) { malloc_spin_unlock(&arena->lock); return (NULL); ==== //depot/projects/dtrace/src/lib/libgssapi/gss_acquire_cred.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libgssapi/gss_acquire_cred.c,v 1.1 2005/12/29 14:40:20 dfr Exp $ + * $FreeBSD: src/lib/libgssapi/gss_acquire_cred.c,v 1.2 2007/11/28 08:50:20 dfr Exp $ */ #include @@ -59,8 +59,8 @@ * First make sure that at least one of the requested * mechanisms is one that we support. */ + _gss_load_mech(); if (mechs) { - _gss_load_mech(); for (i = 0; i < mechs->count; i++) { int t; gss_test_oid_set_member(minor_status, @@ -73,6 +73,8 @@ *minor_status = 0; return (GSS_S_BAD_MECH); } + } else { + mechs = _gss_mech_oids; } if (actual_mechs) { @@ -92,9 +94,6 @@ cred->gc_usage = cred_usage; SLIST_INIT(&cred->gc_mc); - if (mechs == GSS_C_NO_OID_SET) - mechs = _gss_mech_oids; - set.count = 1; min_time = GSS_C_INDEFINITE; for (i = 0; i < mechs->count; i++) { ==== //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libkse/thread/thr_mutex.c,v 1.55 2007/11/27 03:16:44 jasone Exp $ + * $FreeBSD: src/lib/libkse/thread/thr_mutex.c,v 1.56 2007/11/28 00:16:24 jasone Exp $ */ #include #include @@ -254,8 +254,9 @@ .m_ceiling = 0, .m_flags = 0 }; + static const struct pthread_mutex_attr *pattr = &attr; - return (thr_mutex_init(mutex, (pthread_mutexattr_t *)&attr, + return (thr_mutex_init(mutex, (pthread_mutexattr_t *)&pattr, calloc_cb)); } ==== //depot/projects/dtrace/src/lib/libthr/thread/thr_mutex.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.62 2007/11/27 03:16:43 jasone Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.63 2007/11/28 00:16:24 jasone Exp $ */ #include "namespace.h" @@ -212,19 +212,15 @@ _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, void *(calloc_cb)(size_t, size_t)) { -/* XXX Enable adaptive locking if similar code is removed from malloc. */ -#if 0 static const struct pthread_mutex_attr attr = { - .m_type = PTHREAD_MUTEX_ADAPTIVE_NP, + .m_type = PTHREAD_MUTEX_NORMAL, .m_protocol = PTHREAD_PRIO_NONE, .m_ceiling = 0, .m_flags = 0 }; + static const struct pthread_mutex_attr *pattr = &attr; - return mutex_init(mutex, (pthread_mutexattr_t *)&attr, 0, calloc_cb); -#else - return mutex_init(mutex, NULL, 0, calloc_cb); -#endif + return mutex_init(mutex, (pthread_mutexattr_t *)&pattr, 0, calloc_cb); } void ==== //depot/projects/dtrace/src/sbin/atacontrol/atacontrol.8#4 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sbin/atacontrol/atacontrol.8,v 1.28 2005/11/18 10:32:09 ru Exp $ +.\" $FreeBSD: src/sbin/atacontrol/atacontrol.8,v 1.29 2007/11/28 21:37:25 remko Exp $ .\" -.Dd August 16, 2005 +.Dd November 28, 2007 .Dt ATACONTROL 8 .Os .Sh NAME @@ -221,6 +221,110 @@ The new modes are set as soon as the .Nm command returns. +.Pp +The atacontrol command can also be used to create purely software +RAID arrays in systems that do NOT have a "real" hardware RAID card +such as a Highpoint or Promise card. +A common scenario is a 1U server such as the HP DL320 G4 or G5. +These servers contain a SATA controller that has 2 channels that can +contain 2 disks per channel, but the servers are wired to only place +a single SATA drive on each channel. +These servers do have a "pseudo" RAID BIOS but it uses a proprietary +format that is not compatible with the ata driver, and thus their +RAID bios must be switched off. +Another common scenario would be a Promise UDMA100 controller card +that did not contain the Fasttrack RAID BIOS, but did contain 2 +UDMA channels. +1 disk would be attached to one channel and the other disk would be +attached to the other channel. +It is NOT recommended to create such arrays on a primary/secondary +pair on a SINGLE channel since the throughput of the mirror would be +severely compromised, the ability to rebuild the array in the event +of a disk failure would be greatly complicated, and if a disk +controller electronics failed it could wedge the channel and take +both disks in the mirror offline. +(which would defeat the purpose of having a mirror in the first place) +.Pp +A quick and dirty way to create such a mirrored array on a new +system is to boot off the FreeBSD install CD, do a minimal scratch +install, abort out of the post install questions, and at the command +line issue the command: +.Pp +.Dl "atacontrol create RAID1 ad4 ad6" +.Pp +then immediately issue a reboot and boot from the installation CD +again, and during the installation, you will now see "ar0" listed +as a disk to install on, and install on that instead of ad4, ad6, etc. +.Pp +To get information about the status of a RAID array in the system +use the command line: +.Pp +.Dl "atacontrol status ar0" +.Pp +A typical output showing good health on a RAID array might be as +follows: +.Pp +.Dl "ar0: ATA RAID1 subdisks: ad4 ad6 status: READY" +.Pp +If a disk drive in a RAID1 array dies the system will mark the disk +in a DOWN state and change the array status to DEGRADED. +This can ALSO happen in rare instances due to a power fluctuation or +other event causing the system to not shutdown properly. +In that case the output will look like the following: +.Pp +.Dl "ar0: ATA RAID1 subdisks: ad4 DOWN status: DEGRADED" +.Pp +For a mirrored RAID1 system the server WILL ALLOW you to remove a +dead SATA disk drive (if the drive is in a hot-swap tray) without +freezing up the system, so you can remove the disk and while you are +obtaining a replacement the server can run from the active disk. +The only caveat is that if the active disk is ad6, the system most +likely will NOT be able to be rebooted since most systems only +support booting from the first disk drive. +.Pp +To deactivate the DOWN disk ad6 to allow for it to be ejected, use +the following: +.Pp +.Dl "atacontrol detach ata3" +.Pp +then eject or remove the disk. +Note that this only works if the 2 disks in the mirror are on separate +channels (which is the standard setup for 1-U servers like the HP DL320). +When the new disk drive is obtained, make sure it is blank, then shut +the system down. +At this point, if the system has a RAID array card like a Highpoint or +Promise controller, you may then boot it into the BIOS of the card and use +the manufacturers RAID array rebuild utilities to rebuild the array. +.Pp +If the system has a pure software array and is not using a "real" ATA +RAID controller, then shut the system down, make sure that the disk +that was still working is moved to the bootable position (channel 0 +or whatever the BIOS allows the system to boot from) and the blank disk +is placed in the secondary position, then boot the system into +single-user mode and issue the command: +.Pp +.Dl "atacontrol addspare ar0 ad6" +.Dl "atacontrol rebuild ar0" +.Pp +If the disk drive did NOT fail and the RAID array became unmirrored due +to a software glitch or improper shutdown, then a slightly different +process must be followed. +Begin by issuing the detach command (this shows the detach for disk ad6, +the primary master on channel 3): +.Pp +.Dl "atacontrol detach ata3" +.Pp +then reboot the system into single-user mode. +(don't just init the system, reboot it so that both disks get probed) +You will probably see TWO mirrored RAID arrays appear during the boot +messages, ar0 and ar1. +Issue the command: +.Pp +.Dl "atacontrol delete ar1" +.Dl "atacontrol addspare ar0 ad6" +.Pp +Now a status command will show the array rebuilding. +.Pp .Sh SEE ALSO .Xr ata 4 .Sh HISTORY ==== //depot/projects/dtrace/src/sbin/mdconfig/mdconfig.8#6 (text+ko) ==== @@ -39,9 +39,9 @@ .\" @(#)vnconfig.8 8.1 (Berkeley) 6/5/93 .\" from: src/usr.sbin/vnconfig/vnconfig.8,v 1.19 2000/12/27 15:30:29 .\" -.\" $FreeBSD: src/sbin/mdconfig/mdconfig.8,v 1.40 2007/11/11 08:14:22 keramida Exp $ +.\" $FreeBSD: src/sbin/mdconfig/mdconfig.8,v 1.42 2007/11/28 12:29:59 remko Exp $ .\" -.Dd November 11, 2007 +.Dd November 28, 2007 .Dt MDCONFIG 8 .Os .Sh NAME @@ -98,7 +98,15 @@ .Fl f Ar file becomes the backing store for this memory disk. .It Cm swap -Swap space is used to back this memory disk. +Storage for this type of memory disk is allocated from buffer +memory. +Pages get pushed out to the swap when the system is under memory +pressure, otherwise they stay in the operating memory. +Using +.Cm swap +backing is generally preferable over +.Cm malloc +backing. .El .It Fl f Ar file Filename to use for the vnode type memory disk. Options ==== //depot/projects/dtrace/src/sbin/newfs/newfs.8#5 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)newfs.8 8.6 (Berkeley) 5/3/95 -.\" $FreeBSD: src/sbin/newfs/newfs.8,v 1.70 2006/10/31 21:52:27 pjd Exp $ +.\" $FreeBSD: src/sbin/newfs/newfs.8,v 1.71 2007/11/28 07:29:10 yar Exp $ .\" .Dd January 21, 2005 .Dt NEWFS 8 @@ -52,6 +52,7 @@ .Op Fl i Ar bytes .Op Fl m Ar free-space .Op Fl o Ar optimization +.Op Fl r Ar reserved .Op Fl s Ar size .Ar special .Sh DESCRIPTION @@ -196,14 +197,30 @@ See .Xr tunefs 8 for more details on how to set this option. +.It Fl r Ar reserved +The size, in sectors, of reserved space +at the end of the partition specified in +.Ar special . +This space will not be occupied by the file system; +it can be used by other consumers such as +.Xr geom 4 . +Defaults to 0. .It Fl s Ar size The size of the file system in sectors. This value defaults to the size of the raw partition specified in .Ar special -(in other words, -.Nm -will use the entire partition for the file system). +less the +.Ar reserved +space at its end (see +.Fl r ) . +A +.Ar size +of 0 can also be used to choose the default value. +A valid +.Ar size +value cannot be larger than the default one, +which means that the file system cannot extend into the reserved space. .El .Pp The following options override the standard sizes for the disk geometry. @@ -237,6 +254,7 @@ on file systems that contain many small files. .Sh SEE ALSO .Xr fdformat 1 , +.Xr geom 4 , .Xr disktab 5 , .Xr fs 5 , .Xr bsdlabel 8 , ==== //depot/projects/dtrace/src/sbin/newfs/newfs.c#6 (text+ko) ==== @@ -48,7 +48,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/newfs/newfs.c,v 1.82 2007/03/02 20:07:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/newfs/newfs.c,v 1.84 2007/11/28 07:54:42 yar Exp $"); /* * newfs: friendly front end to mkfs @@ -120,7 +120,7 @@ int Jflag; /* enable gjournal for file system */ int lflag; /* enable multilabel for file system */ int nflag; /* do not create .snap directory */ -quad_t fssize; /* file system size */ +intmax_t fssize; /* file system size */ int sectorsize; /* bytes/sector */ int realsectorsize; /* bytes/sector in hardware */ int fsize = 0; /* fragment size */ @@ -141,6 +141,7 @@ static char *disktype; static int unlabeled; +static void getfssize(intmax_t *, const char *p, intmax_t, intmax_t); static struct disklabel *getdisklabel(char *s); static void rewritelabel(char *s, struct disklabel *lp); static void usage(void); @@ -153,11 +154,13 @@ struct partition oldpartition; struct stat st; char *cp, *special; + intmax_t reserved; int ch, i; off_t mediasize; + reserved = 0; while ((ch = getopt(argc, argv, - "EJL:NO:RS:T:Ua:b:c:d:e:f:g:h:i:lm:no:s:")) != -1) + "EJL:NO:RS:T:Ua:b:c:d:e:f:g:h:i:lm:no:r:s:")) != -1) switch (ch) { case 'E': Eflag++; @@ -262,11 +265,19 @@ "%s: unknown optimization preference: use `space' or `time'", optarg); break; + case 'r': + errno = 0; + reserved = strtoimax(optarg, &cp, 0); + if (errno != 0 || cp == optarg || + *cp != '\0' || reserved < 0) + errx(1, "%s: bad reserved size", optarg); + break; case 's': errno = 0; - fssize = strtoimax(optarg, NULL, 0); - if (errno != 0) - err(1, "%s: bad file system size", optarg); + fssize = strtoimax(optarg, &cp, 0); + if (errno != 0 || cp == optarg || + *cp != '\0' || fssize < 0) + errx(1, "%s: bad file system size", optarg); break; case '?': default: @@ -301,14 +312,10 @@ errx(1, "%s: not a character-special device", special); if (sectorsize == 0) - ioctl(disk.d_fd, DIOCGSECTORSIZE, §orsize); - if (sectorsize && !ioctl(disk.d_fd, DIOCGMEDIASIZE, &mediasize)) { - if (fssize == 0) - fssize = mediasize / sectorsize; - else if (fssize > mediasize / sectorsize) - errx(1, "%s: maximum file system size is %jd", - special, (intmax_t)(mediasize / sectorsize)); - } + if (ioctl(disk.d_fd, DIOCGSECTORSIZE, §orsize) == -1) + sectorsize = 0; /* back out on error for safety */ + if (sectorsize && ioctl(disk.d_fd, DIOCGMEDIASIZE, &mediasize) != -1) + getfssize(&fssize, special, mediasize / sectorsize, reserved); pp = NULL; lp = getdisklabel(special); if (lp != NULL) { @@ -328,11 +335,7 @@ if (pp->p_fstype == FS_BOOT) errx(1, "%s: `%c' partition overlaps boot program", special, *cp); - if (fssize == 0) - fssize = pp->p_size; - if (fssize > pp->p_size) - errx(1, - "%s: maximum file system size %d", special, pp->p_size); + getfssize(&fssize, special, pp->p_size, reserved); if (sectorsize == 0) sectorsize = lp->d_secsize; if (fsize == 0) @@ -385,13 +388,29 @@ exit(0); } +void +getfssize(intmax_t *fsz, const char *s, intmax_t disksize, intmax_t reserved) +{ + intmax_t available; + + available = disksize - reserved; + if (available <= 0) + errx(1, "%s: reserved not less than device size %jd", + s, disksize); + if (*fsz == 0) + *fsz = available; + else if (*fsz > available) + errx(1, "%s: maximum file system size is %jd", + s, available); +} + struct disklabel * getdisklabel(char *s) { static struct disklabel lab; struct disklabel *lp; - if (!ioctl(disk.d_fd, DIOCGDINFO, (char *)&lab)) + if (ioctl(disk.d_fd, DIOCGDINFO, (char *)&lab) != -1) return (&lab); unlabeled++; if (disktype) { @@ -409,7 +428,7 @@ return; lp->d_checksum = 0; lp->d_checksum = dkcksum(lp); - if (ioctl(disk.d_fd, DIOCWDINFO, (char *)lp) < 0) + if (ioctl(disk.d_fd, DIOCWDINFO, (char *)lp) == -1) warn("ioctl (WDINFO): %s: can't rewrite disk label", s); } @@ -443,6 +462,7 @@ fprintf(stderr, "\t-n do not create .snap directory\n"); fprintf(stderr, "\t-m minimum free space %%\n"); fprintf(stderr, "\t-o optimization preference (`space' or `time')\n"); - fprintf(stderr, "\t-s file systemsize (sectors)\n"); + fprintf(stderr, "\t-r reserved sectors at the end of device\n"); + fprintf(stderr, "\t-s file system size (sectors)\n"); exit(1); } ==== //depot/projects/dtrace/src/sbin/newfs/newfs.h#5 (text+ko) ==== @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sbin/newfs/newfs.h,v 1.18 2006/10/31 21:52:27 pjd Exp $ + * $FreeBSD: src/sbin/newfs/newfs.h,v 1.19 2007/11/28 07:29:10 yar Exp $ */ #include @@ -52,7 +52,7 @@ extern int Jflag; /* enable gjournal for file system */ extern int lflag; /* enable multilabel MAC for file system */ extern int nflag; /* do not create .snap directory */ -extern quad_t fssize; /* file system size */ +extern intmax_t fssize; /* file system size */ extern int sectorsize; /* bytes/sector */ extern int realsectorsize; /* bytes/sector in hardware*/ extern int fsize; /* fragment size */ ==== //depot/projects/dtrace/src/sbin/sysctl/sysctl.8#6 (text+ko) ==== @@ -26,9 +26,9 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)sysctl.8 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD: src/sbin/sysctl/sysctl.8,v 1.63 2007/10/15 20:00:19 netchild Exp $ +.\" $FreeBSD: src/sbin/sysctl/sysctl.8,v 1.64 2007/11/28 14:48:30 remko Exp $ .\" -.Dd September 15, 2005 +.Dd November 28, 2007 .Dt SYSCTL 8 .Os .Sh NAME @@ -198,7 +198,6 @@ .It "kern.osreldate string no .It "kern.bootfile string yes .It "kern.corefile string yes -.It "kern.dumpdev dev_t yes .It "kern.logsigexit integer yes .It "security.bsd.suser_enabled integer yes .It "security.bsd.see_other_uids integer yes @@ -270,14 +269,6 @@ .Pp .Dl "sysctl kern.maxprocperuid=1000" .Pp -The device used for crash dumps can be specified using: -.Pp -.Dl "sysctl kern.dumpdev=/dev/somedev" -.Pp -which is equivalent to -.Pp -.Dl "dumpon /dev/somedev" -.Pp Information about the system clock rate may be obtained with: .Pp .Dl "sysctl kern.clockrate" ==== //depot/projects/dtrace/src/share/man/man4/agp.4#4 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/agp.4,v 1.10 2006/02/17 06:29:51 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/agp.4,v 1.11 2007/11/28 12:04:25 remko Exp $ .\" -.Dd February 17, 2006 +.Dd November 28, 2007 .Dt AGP 4 .Os .Sh NAME @@ -48,7 +48,7 @@ .It Intel: i820, i840, i845, i850, and i860 host to AGP bridges .It Intel: -i810, i810-DC100, i810E, i815, 830M, 845G, 852GM, 852GME, 855GM, 855GME, 865G, 915G and 915GM SVGA controllers +i810, i810-DC100, i810E, i815, 830M, 845G, 845M, 852GM, 852GME, 855GM, 855GME, 865G, 915G and 915GM SVGA controllers .It Intel: 82443BX, 82443GX, 82443LX, 82815, 82820, 82830, 82840, 82845, 82845G, 82850, 82855, 82855GM, 82860, 82865, 82875P, E7205 and E7505 host to AGP bridges .It NVIDIA: ==== //depot/projects/dtrace/src/share/man/man4/enc.4#8 (text+ko) ==== @@ -31,7 +31,7 @@ .\" .\" $FreeBSD: src/share/man/man4/enc.4,v 1.5 2007/08/02 08:04:48 bz Exp $ .\" -.Dd August 1, 2007 +.Dd November 28, 2007 .Dt ENC 4 .Os .Sh NAME @@ -56,10 +56,10 @@ .Pp The .Nm -interface allows an administrator -to see outgoing packets before they have been processed by -.Xr ipsec 4 , -or incoming packets after they have been similarly processed, via +interface allows an administrator to see incoming and outgoing packets +before and after they will be or have been processed by +.Xr ipsec 4 +via .Xr tcpdump 1 . .Pp The @@ -72,10 +72,55 @@ on the .Dq Li enc0 interface. +.Pp +What can be seen with +.Xr tcpdump 1 +and what will be passed on to the firewalls via the +.Xr pfil 9 +framework can be independently controlled using the following +.Xr sysctl 8 +variables: +.Bl -column net.enc.out.ipsec_filter_mask 0x00000000 0x00000000 +.It Sy "Name Defaults Suggested" +.It "net.enc.out.ipsec_bpf_mask" 0x00000003 0x00000001 +.It "net.enc.out.ipsec_filter_mask" 0x00000001 0x00000001 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Nov 29 00:51:38 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2056F16A420; Thu, 29 Nov 2007 00:51: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 801DF16A418 for ; Thu, 29 Nov 2007 00:51:37 +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 84ED813C442 for ; Thu, 29 Nov 2007 00:51:37 +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 lAT0pbP4074982 for ; Thu, 29 Nov 2007 00:51:37 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAT0pa6o074979 for perforce@freebsd.org; Thu, 29 Nov 2007 00:51:36 GMT (envelope-from jb@freebsd.org) Date: Thu, 29 Nov 2007 00:51:36 GMT Message-Id: <200711290051.lAT0pa6o074979@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 129747 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: Thu, 29 Nov 2007 00:51:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=129747 Change 129747 by jb@jb_freebsd1 on 2007/11/29 00:50:55 Forgot the -i when integrating the last IFC. Affected files ... .. //depot/projects/dtrace/src/compat/opensolaris/include/alloca.h#2 integrate .. //depot/projects/dtrace/src/compat/opensolaris/include/fcntl.h#2 integrate .. //depot/projects/dtrace/src/compat/opensolaris/include/stdio.h#2 integrate .. //depot/projects/dtrace/src/compat/opensolaris/include/stdlib.h#2 integrate .. //depot/projects/dtrace/src/compat/opensolaris/include/strings.h#2 integrate .. //depot/projects/dtrace/src/compat/opensolaris/include/unistd.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/bitmap.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/cpupart.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/cpuvar.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/elf.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/mman.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/modctl.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/objfs.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/param.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/pcpu.h#2 integrate .. //depot/projects/dtrace/src/sys/compat/opensolaris/sys/stat.h#2 integrate Differences ... ==== //depot/projects/dtrace/src/compat/opensolaris/include/alloca.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/compat/opensolaris/include/fcntl.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/compat/opensolaris/include/stdio.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/compat/opensolaris/include/stdlib.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/compat/opensolaris/include/strings.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/compat/opensolaris/include/unistd.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/bitmap.h#3 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/cpupart.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/cpuvar.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/elf.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/mman.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/modctl.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/objfs.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/param.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/pcpu.h#2 (text+ko) ==== ==== //depot/projects/dtrace/src/sys/compat/opensolaris/sys/stat.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Thu Nov 29 05:02:06 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A72C516A419; Thu, 29 Nov 2007 05:02: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 4562216A417 for ; Thu, 29 Nov 2007 05:02:05 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4B59E13C4D9 for ; Thu, 29 Nov 2007 05:02:05 +0000 (UTC) (envelope-from peter@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 lAT525KH098433 for ; Thu, 29 Nov 2007 05:02:05 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAT524Li098430 for perforce@freebsd.org; Thu, 29 Nov 2007 05:02:04 GMT (envelope-from peter@freebsd.org) Date: Thu, 29 Nov 2007 05:02:04 GMT Message-Id: <200711290502.lAT524Li098430@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129752 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: Thu, 29 Nov 2007 05:02:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=129752 Change 129752 by peter@peter_overcee on 2007/11/29 05:01:39 Teach top to show per-cpu load statistics when -P is specified Affected files ... .. //depot/projects/hammer/contrib/top/display.c#4 edit .. //depot/projects/hammer/contrib/top/layout.h#2 edit .. //depot/projects/hammer/contrib/top/machine.h#5 edit .. //depot/projects/hammer/contrib/top/top.c#10 edit .. //depot/projects/hammer/contrib/top/top.h#4 edit .. //depot/projects/hammer/usr.bin/top/machine.c#21 edit Differences ... ==== //depot/projects/hammer/contrib/top/display.c#4 (text+ko) ==== @@ -78,8 +78,10 @@ static int *lmemory; static int *lswap; +static int num_cpus; static int *cpustate_columns; static int cpustate_total_length; +static int cpustates_column; static enum { OFF, ON, ERASE } header_status = ON; @@ -87,6 +89,29 @@ static void summary_format(); static void line_update(); +int x_lastpid = 10; +int y_lastpid = 0; +int x_loadave = 33; +int x_loadave_nompid = 15; +int y_loadave = 0; +int x_procstate = 0; +int y_procstate = 1; +int x_brkdn = 15; +int y_brkdn = 1; +int x_mem = 5; +int y_mem = 3; +int x_swap = 6; +int y_swap = 4; +int y_message = 5; +int x_header = 0; +int y_header = 6; +int x_idlecursor = 0; +int y_idlecursor = 5; +int y_procs = 7; + +int y_cpustates = 2; +int Header_lines = 7; + int display_resize() { @@ -138,6 +163,12 @@ /* call resize to do the dirty work */ lines = display_resize(); + num_cpus = statics->ncpus; + cpustates_column = 5; /* CPU: */ + if (num_cpus != 1) + cpustates_column += 2; /* CPU 0: */ + for (i = num_cpus; i > 9; i /= 10) + cpustates_column++; /* only do the rest if we need to */ if (lines > -1) @@ -153,7 +184,7 @@ num_swap = string_count(swap_names); lswap = (int *)malloc(num_swap * sizeof(int)); num_cpustates = string_count(cpustate_names); - lcpustates = (int *)malloc(num_cpustates * sizeof(int)); + lcpustates = (int *)malloc(num_cpustates * sizeof(int) * num_cpus); cpustate_columns = (int *)malloc(num_cpustates * sizeof(int)); memory_names = statics->memory_names; @@ -365,14 +396,13 @@ } } +#ifdef no_more /* * *_cpustates(states, names) - print the cpu state percentages * * Assumptions: cursor is on the PREVIOUS line */ -static int cpustates_column; - /* cpustates_tag() calculates the correct tag to use to label the line */ char *cpustates_tag() @@ -398,6 +428,7 @@ cpustates_column = strlen(use); return(use); } +#endif i_cpustates(states) @@ -406,11 +437,18 @@ { register int i = 0; register int value; - register char **names = cpustate_names; + register char **names; register char *thisname; + int cpu; + +for (cpu = 0; cpu < num_cpus; cpu++) { + names = cpustate_names; /* print tag and bump lastline */ - printf("\n%s", cpustates_tag()); + if (num_cpus == 1) + printf("\nCPU: "); + else + printf("\nCPU %d: ", cpu); lastline++; /* now walk thru the names and print the line */ @@ -423,14 +461,15 @@ /* if percentage is >= 1000, print it as 100% */ printf((value >= 1000 ? "%s%4.0f%% %s" : "%s%4.1f%% %s"), - i++ == 0 ? "" : ", ", + (i++ % num_cpustates) == 0 ? "" : ", ", ((float)value)/10., thisname); } } +} /* copy over values into "last" array */ - memcpy(lcpustates, states, num_cpustates * sizeof(int)); + memcpy(lcpustates, states, num_cpustates * sizeof(int) * num_cpus); } u_cpustates(states) @@ -439,14 +478,18 @@ { register int value; - register char **names = cpustate_names; + register char **names; register char *thisname; register int *lp; register int *colp; + int cpu; + +for (cpu = 0; cpu < num_cpus; cpu++) { + names = cpustate_names; - Move_to(cpustates_column, y_cpustates); - lastline = y_cpustates; - lp = lcpustates; + Move_to(cpustates_column, y_cpustates + cpu); + lastline = y_cpustates + cpu; + lp = lcpustates + (cpu * num_cpustates); colp = cpustate_columns; /* we could be much more optimal about this */ @@ -458,8 +501,8 @@ if (*lp != *states) { /* yes, move and change */ - Move_to(cpustates_column + *colp, y_cpustates); - lastline = y_cpustates; + Move_to(cpustates_column + *colp, y_cpustates + cpu); + lastline = y_cpustates + cpu; /* retrieve value and remember it */ value = *states; @@ -479,30 +522,39 @@ colp++; } } +} z_cpustates() { register int i = 0; - register char **names = cpustate_names; + register char **names; register char *thisname; register int *lp; + int cpu; + +for (cpu = 0; cpu < num_cpus; cpu++) { + names = cpustate_names; /* show tag and bump lastline */ - printf("\n%s", cpustates_tag()); + if (num_cpus == 1) + printf("\nCPU: "); + else + printf("\nCPU %d: ", cpu); lastline++; while ((thisname = *names++) != NULL) { if (*thisname != '\0') { - printf("%s %% %s", i++ == 0 ? "" : ", ", thisname); + printf("%s %% %s", (i++ % num_cpustates) == 0 ? "" : ", ", thisname); } } +} /* fill the "last" array with all -1s, to insure correct updating */ lp = lcpustates; - i = num_cpustates; + i = num_cpustates * num_cpus; while (--i >= 0) { *lp++ = -1; ==== //depot/projects/hammer/contrib/top/layout.h#2 (text+ko) ==== @@ -6,24 +6,24 @@ * cursor addressing. */ -#define x_lastpid 10 -#define y_lastpid 0 -#define x_loadave 33 -#define x_loadave_nompid 15 -#define y_loadave 0 -#define x_procstate 0 -#define y_procstate 1 -#define x_brkdn 15 -#define y_brkdn 1 -#define x_mem 5 -#define y_mem 3 -#define x_swap 6 -#define y_swap 4 -#define y_message 5 -#define x_header 0 -#define y_header 6 -#define x_idlecursor 0 -#define y_idlecursor 5 -#define y_procs 7 +extern int x_lastpid; /* 10 */ +extern int y_lastpid; /* 0 */ +extern int x_loadave; /* 33 */ +extern int x_loadave_nompid; /* 15 */ +extern int y_loadave; /* 0 */ +extern int x_procstate; /* 0 */ +extern int y_procstate; /* 1 */ +extern int x_brkdn; /* 15 */ +extern int y_brkdn; /* 1 */ +extern int x_mem; /* 5 */ +extern int y_mem; /* 3 */ +extern int x_swap; /* 6 */ +extern int y_swap; /* 4 */ +extern int y_message; /* 5 */ +extern int x_header; /* 0 */ +extern int y_header; /* 6 */ +extern int x_idlecursor; /* 0 */ +extern int y_idlecursor; /* 5 */ +extern int y_procs; /* 7 */ -#define y_cpustates 2 +extern int y_cpustates; /* 2 */ ==== //depot/projects/hammer/contrib/top/machine.h#5 (text+ko) ==== @@ -20,6 +20,7 @@ #ifdef ORDER char **order_names; #endif + int ncpus; }; /* @@ -43,6 +44,8 @@ int *memory; int *swap; struct timeval boottime; + unsigned long cpumask; /* bitfield of cpu states represented */ + int ncpus; }; /* cpu_states is an array of percentages * 10. For example, ==== //depot/projects/hammer/contrib/top/top.c#10 (text+ko) ==== @@ -66,6 +66,7 @@ extern int overstrike; static int fmt_flags = 0; +int pcpu_stats = No; /* signal handling routines */ sigret_t leave(); @@ -282,7 +283,7 @@ optind = 1; } - while ((i = getopt(ac, av, "CSIHabijnquvs:d:U:m:o:t")) != EOF) + while ((i = getopt(ac, av, "CSIHPabijnpquvs:d:U:m:o:t")) != EOF) { switch(i) { @@ -407,6 +408,14 @@ ps.jail = !ps.jail; break; + case 'P': + pcpu_stats = Yes; + break; + + case 'p': + pcpu_stats = No; + break; + default: fprintf(stderr, "Top version %s\n" ==== //depot/projects/hammer/contrib/top/top.h#4 (text+ko) ==== @@ -11,7 +11,7 @@ #define VERSION 3 /* Number of lines of header information on the standard screen */ -#define Header_lines 7 +extern int Header_lines; /* 7 */ /* Maximum number of columns allowed for display */ #define MAX_COLS 128 @@ -45,3 +45,5 @@ #define FMT_SHOWARGS 0x00000001 extern enum displaymodes displaymode; + +extern int pcpu_stats; ==== //depot/projects/hammer/usr.bin/top/machine.c#21 (text+ko) ==== @@ -51,6 +51,7 @@ #include "machine.h" #include "screen.h" #include "utils.h" +#include "layout.h" #define GETSYSCTL(name, var) getsysctl(name, &(var), sizeof(var)) #define SMPUNAMELEN 13 @@ -216,6 +217,17 @@ }; #endif +/* Per-cpu time states */ +static int maxcpu; +static int maxid; +static int ncpus; +static u_long cpumask; +static long *times; +static long *pcpu_cp_time; +static long *pcpu_cp_old; +static long *pcpu_cp_diff; +static int *pcpu_cpu_states; + static int compare_jid(const void *a, const void *b); static int compare_pid(const void *a, const void *b); static const char *format_nice(const struct kinfo_proc *pp); @@ -280,6 +292,56 @@ statics->order_names = ordernames; #endif + /* Adjust display based on ncpus */ + if (pcpu_stats) { + int i, j, empty; + size_t size; + + cpumask = 0; + ncpus = 0; + GETSYSCTL("kern.smp.maxcpus", maxcpu); + size = sizeof(long) * maxcpu * CPUSTATES; + times = malloc(size); + if (times == NULL) + err(1, "malloc %zd bytes", size); + if (sysctlbyname("kern.cp_times", times, &size, NULL, 0) == -1) + err(1, "sysctlbyname kern.cp_times"); + maxid = (size / CPUSTATES / sizeof(long)) - 1; + for (i = 0; i <= maxid; i++) { + empty = 1; + for (j = 0; empty && j < CPUSTATES; j++) { + if (times[i * CPUSTATES + j] != 0) + empty = 0; + } + if (!empty) { + cpumask |= (1ul << i); + ncpus++; + } + } + + if (ncpus > 1) { + y_mem += ncpus - 1; /* 3 */ + y_swap += ncpus - 1; /* 4 */ + y_idlecursor += ncpus - 1; /* 5 */ + y_message += ncpus - 1; /* 5 */ + y_header += ncpus - 1; /* 6 */ + y_procs += ncpus - 1; /* 7 */ + Header_lines += ncpus - 1; /* 7 */ + } + size = sizeof(long) * ncpus * CPUSTATES; + pcpu_cp_time = malloc(size); + pcpu_cp_old = malloc(size); + pcpu_cp_diff = malloc(size); + pcpu_cpu_states = malloc(size); + bzero(pcpu_cp_time, size); + bzero(pcpu_cp_old, size); + bzero(pcpu_cp_diff, size); + bzero(pcpu_cpu_states, size); + statics->ncpus = ncpus; + } else { + statics->ncpus = 1; + } + /* all done! */ return (0); } @@ -321,6 +383,7 @@ static int swappgsout = -1; extern struct timeval timeout; + void get_system_info(struct system_info *si) { @@ -329,10 +392,17 @@ int mib[2]; struct timeval boottime; size_t bt_size; - int i; + int i, j; + size_t size; /* get the cp_time array */ - GETSYSCTL("kern.cp_time", cp_time); + if (pcpu_stats) { + size = (maxid + 1) * CPUSTATES * sizeof(long); + if (sysctlbyname("kern.cp_times", pcpu_cp_time, &size, NULL, 0) == -1) + err(1, "sysctlbyname kern.cp_times"); + } else { + GETSYSCTL("kern.cp_time", cp_time); + } GETSYSCTL("vm.loadavg", sysload); GETSYSCTL("kern.lastpid", lastpid); @@ -340,8 +410,20 @@ for (i = 0; i < 3; i++) si->load_avg[i] = (double)sysload.ldavg[i] / sysload.fscale; - /* convert cp_time counts to percentages */ - total = percentages(CPUSTATES, cpu_states, cp_time, cp_old, cp_diff); + if (pcpu_stats) { + for (i = j = 0; i <= maxid; i++, j++) { + if (cpumask && (1ul << i) == 0) + continue; + /* convert cp_time counts to percentages */ + percentages(CPUSTATES, &pcpu_cpu_states[j * CPUSTATES], + &pcpu_cp_time[j * CPUSTATES], + &pcpu_cp_old[j * CPUSTATES], + &pcpu_cp_diff[j * CPUSTATES]); + } + } else { + /* convert cp_time counts to percentages */ + percentages(CPUSTATES, cpu_states, cp_time, cp_old, cp_diff); + } /* sum memory & swap statistics */ { @@ -395,7 +477,15 @@ } /* set arrays and strings */ - si->cpustates = cpu_states; + if (pcpu_stats) { + si->cpustates = pcpu_cpu_states; + si->cpumask = cpumask; + si->ncpus = ncpus; + } else { + si->cpustates = cpu_states; + si->cpumask = 1; + si->ncpus = 1; + } si->memory = memory_stats; si->swap = swap_stats; From owner-p4-projects@FreeBSD.ORG Thu Nov 29 05:11:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1F28416A41A; Thu, 29 Nov 2007 05:11: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 C381B16A418 for ; Thu, 29 Nov 2007 05:11:21 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C812513C46B for ; Thu, 29 Nov 2007 05:11:21 +0000 (UTC) (envelope-from kmacy@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 lAT5BLfp099968 for ; Thu, 29 Nov 2007 05:11:21 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAT5BEUt099965 for perforce@freebsd.org; Thu, 29 Nov 2007 05:11:14 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 29 Nov 2007 05:11:14 GMT Message-Id: <200711290511.lAT5BEUt099965@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 129753 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: Thu, 29 Nov 2007 05:11:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=129753 Change 129753 by kmacy@entropy_kmacy_xen31 on 2007/11/29 05:10:50 IFC #129749 Affected files ... .. //depot/projects/xen31/ObsoleteFiles.inc#5 integrate .. //depot/projects/xen31/UPDATING#3 integrate .. //depot/projects/xen31/bin/ln/ln.1#2 integrate .. //depot/projects/xen31/bin/ln/ln.c#2 integrate .. //depot/projects/xen31/bin/sh/Makefile#2 integrate .. //depot/projects/xen31/cddl/Makefile.inc#2 integrate .. //depot/projects/xen31/cddl/lib/libnvpair/Makefile#2 integrate .. //depot/projects/xen31/compat/opensolaris/include/alloca.h#1 branch .. //depot/projects/xen31/compat/opensolaris/include/fcntl.h#1 branch .. //depot/projects/xen31/compat/opensolaris/include/stdio.h#1 branch .. //depot/projects/xen31/compat/opensolaris/include/stdlib.h#1 branch .. //depot/projects/xen31/compat/opensolaris/include/strings.h#1 branch .. //depot/projects/xen31/compat/opensolaris/include/unistd.h#1 branch .. //depot/projects/xen31/contrib/binutils/opcodes/ppc-dis.c#2 integrate .. //depot/projects/xen31/contrib/csup/mux.c#2 integrate .. //depot/projects/xen31/contrib/gdb/gdb/i386fbsd-nat.c#2 integrate .. //depot/projects/xen31/contrib/less/FREEBSD-upgrade#1 branch .. //depot/projects/xen31/contrib/less/LICENSE#2 integrate .. //depot/projects/xen31/contrib/less/Makefile.dsm#2 delete .. //depot/projects/xen31/contrib/less/NEWS#2 integrate .. //depot/projects/xen31/contrib/less/README#2 integrate .. //depot/projects/xen31/contrib/less/ch.c#2 integrate .. //depot/projects/xen31/contrib/less/command.c#2 integrate .. //depot/projects/xen31/contrib/less/configure#2 integrate .. //depot/projects/xen31/contrib/less/configure.ac#2 integrate .. //depot/projects/xen31/contrib/less/decode.c#2 integrate .. //depot/projects/xen31/contrib/less/defines.ds#2 integrate .. //depot/projects/xen31/contrib/less/defines.h.in#2 integrate .. //depot/projects/xen31/contrib/less/defines.o2#2 integrate .. //depot/projects/xen31/contrib/less/defines.o9#2 integrate .. //depot/projects/xen31/contrib/less/defines.wn#2 integrate .. //depot/projects/xen31/contrib/less/edit.c#2 integrate .. //depot/projects/xen31/contrib/less/filename.c#2 integrate .. //depot/projects/xen31/contrib/less/funcs.h#2 integrate .. //depot/projects/xen31/contrib/less/less.h#2 integrate .. //depot/projects/xen31/contrib/less/less.man#2 integrate .. //depot/projects/xen31/contrib/less/less.nro#2 integrate .. //depot/projects/xen31/contrib/less/lessecho.man#2 integrate .. //depot/projects/xen31/contrib/less/lessecho.nro#2 integrate .. //depot/projects/xen31/contrib/less/lesskey.man#2 integrate .. //depot/projects/xen31/contrib/less/lesskey.nro#2 integrate .. //depot/projects/xen31/contrib/less/line.c#2 integrate .. //depot/projects/xen31/contrib/less/optfunc.c#2 integrate .. //depot/projects/xen31/contrib/less/opttbl.c#2 integrate .. //depot/projects/xen31/contrib/less/screen.c#2 integrate .. //depot/projects/xen31/contrib/less/search.c#2 integrate .. //depot/projects/xen31/contrib/less/tags.c#2 integrate .. //depot/projects/xen31/contrib/less/version.c#2 integrate .. //depot/projects/xen31/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 integrate .. //depot/projects/xen31/contrib/tcpdump/tcpdump.c#2 integrate .. //depot/projects/xen31/etc/defaults/periodic.conf#2 integrate .. //depot/projects/xen31/etc/etc.amd64/ttys#2 integrate .. //depot/projects/xen31/etc/etc.arm/ttys#2 integrate .. //depot/projects/xen31/etc/etc.i386/ttys#2 integrate .. //depot/projects/xen31/etc/etc.ia64/ttys#2 integrate .. //depot/projects/xen31/etc/etc.powerpc/ttys#2 integrate .. //depot/projects/xen31/etc/etc.sparc64/ttys#2 integrate .. //depot/projects/xen31/etc/freebsd-update.conf#3 integrate .. //depot/projects/xen31/etc/gss/mech#2 integrate .. //depot/projects/xen31/etc/periodic/security/100.chksetuid#2 integrate .. //depot/projects/xen31/etc/rc.d/hostapd#2 integrate .. //depot/projects/xen31/gnu/lib/libobjc/Makefile#2 integrate .. //depot/projects/xen31/gnu/usr.bin/cc/cc_tools/Makefile#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/arch/arm/Makefile#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/arch/arm/init.c#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/kgdb/kgdb.h#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/kgdb/kthr.c#2 integrate .. //depot/projects/xen31/gnu/usr.bin/gdb/kgdb/trgt_i386.c#2 integrate .. //depot/projects/xen31/gnu/usr.bin/groff/tmac/mdoc.local#3 integrate .. //depot/projects/xen31/include/dirent.h#2 integrate .. //depot/projects/xen31/include/elf.h#2 integrate .. //depot/projects/xen31/kerberos5/lib/Makefile.inc#2 integrate .. //depot/projects/xen31/lib/Makefile#3 integrate .. //depot/projects/xen31/lib/libc/gdtoa/_ldtoa.c#2 integrate .. //depot/projects/xen31/lib/libc/gen/Symbol.map#2 integrate .. //depot/projects/xen31/lib/libc/gen/closedir.c#2 integrate .. //depot/projects/xen31/lib/libc/net/Makefile.inc#2 integrate .. //depot/projects/xen31/lib/libc/rpc/authdes_prot.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/authunix_prot.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/key_prot_xdr.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/rpc_callmsg.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/rpc_prot.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/rpcb_prot.c#2 integrate .. //depot/projects/xen31/lib/libc/rpc/rpcb_st_xdr.c#2 integrate .. //depot/projects/xen31/lib/libc/sparc64/fpu/fpu_explode.c#2 integrate .. //depot/projects/xen31/lib/libc/stdlib/malloc.3#2 integrate .. //depot/projects/xen31/lib/libc/stdlib/malloc.c#2 integrate .. //depot/projects/xen31/lib/libdisk/libdisk.3#2 integrate .. //depot/projects/xen31/lib/libdisk/libdisk.h#2 integrate .. //depot/projects/xen31/lib/libelf/elf.3#2 integrate .. //depot/projects/xen31/lib/libelf/gelf_xlatetof.3#2 integrate .. //depot/projects/xen31/lib/libelf/libelf_data.c#2 integrate .. //depot/projects/xen31/lib/libelf/libelf_xlate.c#2 integrate .. //depot/projects/xen31/lib/libgssapi/Makefile#2 integrate .. //depot/projects/xen31/lib/libgssapi/gss_acquire_cred.c#2 integrate .. //depot/projects/xen31/lib/libkse/Makefile#2 integrate .. //depot/projects/xen31/lib/libkse/kse.map#2 integrate .. //depot/projects/xen31/lib/libkse/sys/lock.c#2 integrate .. //depot/projects/xen31/lib/libkse/sys/lock.h#2 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_cond.c#2 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_init.c#2 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_kern.c#2 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_mutex.c#3 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_rtld.c#2 integrate .. //depot/projects/xen31/lib/libkse/thread/thr_spec.c#2 integrate .. //depot/projects/xen31/lib/libpmc/Makefile#2 integrate .. //depot/projects/xen31/lib/libpmc/pmc.3#2 integrate .. //depot/projects/xen31/lib/libpmc/pmc_allocate.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_attach.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_capabilities.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_configure_logfile.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_disable.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_event_names_of_class.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_get_driver_stats.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_get_msr.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_init.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_name_of_capability.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_read.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_set.3#1 branch .. //depot/projects/xen31/lib/libpmc/pmc_start.3#1 branch .. //depot/projects/xen31/lib/libsdp/search.c#2 integrate .. //depot/projects/xen31/lib/libthr/Makefile#2 integrate .. //depot/projects/xen31/lib/libthr/pthread.map#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_mutex.c#3 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_private.h#3 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_rtld.c#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_sem.c#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_sig.c#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_suspend_np.c#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_umtx.c#2 integrate .. //depot/projects/xen31/lib/libthr/thread/thr_umtx.h#2 integrate .. //depot/projects/xen31/lib/libthread_db/arch/arm/libpthread_md.c#1 branch .. //depot/projects/xen31/lib/libutil/expand_number.3#2 integrate .. //depot/projects/xen31/lib/libutil/expand_number.c#2 integrate .. //depot/projects/xen31/lib/libutil/libutil.h#2 integrate .. //depot/projects/xen31/lib/libutil/pty.c#2 integrate .. //depot/projects/xen31/libexec/rtld-elf/powerpc/reloc.c#2 integrate .. //depot/projects/xen31/libexec/tftpd/Makefile#2 integrate .. //depot/projects/xen31/libexec/tftpd/tftpd.8#2 integrate .. //depot/projects/xen31/libexec/tftpd/tftpd.c#2 integrate .. //depot/projects/xen31/release/Makefile#3 integrate .. //depot/projects/xen31/release/doc/en_US.ISO8859-1/hardware/article.sgml#2 integrate .. //depot/projects/xen31/release/doc/en_US.ISO8859-1/relnotes/article.sgml#3 integrate .. //depot/projects/xen31/release/doc/share/sgml/release.ent#2 integrate .. //depot/projects/xen31/release/picobsd/bridge/PICOBSD#2 integrate .. //depot/projects/xen31/release/picobsd/bridge/crunch.conf#2 integrate .. //depot/projects/xen31/release/picobsd/build/Makefile.conf#2 integrate .. //depot/projects/xen31/release/picobsd/build/picobsd#2 integrate .. //depot/projects/xen31/release/picobsd/tinyware/login/Makefile#2 integrate .. //depot/projects/xen31/release/picobsd/tinyware/msg/msg.c#2 integrate .. //depot/projects/xen31/sbin/atacontrol/atacontrol.8#2 integrate .. //depot/projects/xen31/sbin/clri/clri.c#2 integrate .. //depot/projects/xen31/sbin/devd/Makefile#2 integrate .. //depot/projects/xen31/sbin/geom/class/journal/gjournal.8#2 integrate .. //depot/projects/xen31/sbin/geom/class/nop/gnop.8#2 integrate .. //depot/projects/xen31/sbin/geom/class/virstor/geom_virstor.c#2 integrate .. //depot/projects/xen31/sbin/init/init.c#2 integrate .. //depot/projects/xen31/sbin/ipf/ipftest/Makefile#2 integrate .. //depot/projects/xen31/sbin/ipfw/ipfw.8#2 integrate .. //depot/projects/xen31/sbin/mdconfig/mdconfig.8#3 integrate .. //depot/projects/xen31/sbin/mdconfig/mdconfig.c#2 integrate .. //depot/projects/xen31/sbin/mount/mount.8#2 integrate .. //depot/projects/xen31/sbin/mount_ntfs/mount_ntfs.8#2 integrate .. //depot/projects/xen31/sbin/newfs/newfs.8#2 integrate .. //depot/projects/xen31/sbin/newfs/newfs.c#2 integrate .. //depot/projects/xen31/sbin/newfs/newfs.h#2 integrate .. //depot/projects/xen31/sbin/ping6/ping6.8#2 integrate .. //depot/projects/xen31/sbin/ping6/ping6.c#2 integrate .. //depot/projects/xen31/sbin/spppcontrol/spppcontrol.c#2 integrate .. //depot/projects/xen31/sbin/sysctl/sysctl.8#2 integrate .. //depot/projects/xen31/share/colldef/sv_SE.ISO8859-1.src#2 integrate .. //depot/projects/xen31/share/colldef/sv_SE.ISO8859-15.src#2 integrate .. //depot/projects/xen31/share/man/man4/Makefile#3 integrate .. //depot/projects/xen31/share/man/man4/agp.4#2 integrate .. //depot/projects/xen31/share/man/man4/asmc.4#2 integrate .. //depot/projects/xen31/share/man/man4/enc.4#2 integrate .. //depot/projects/xen31/share/man/man4/hwpmc.4#2 integrate .. //depot/projects/xen31/share/man/man4/ichsmb.4#2 integrate .. //depot/projects/xen31/share/man/man4/ipw.4#2 integrate .. //depot/projects/xen31/share/man/man4/iwi.4#2 integrate .. //depot/projects/xen31/share/man/man4/msk.4#2 integrate .. //depot/projects/xen31/share/man/man4/nfe.4#2 integrate .. //depot/projects/xen31/share/man/man4/rl.4#2 integrate .. //depot/projects/xen31/share/man/man4/wlan.4#2 integrate .. //depot/projects/xen31/share/man/man4/wpi.4#2 integrate .. //depot/projects/xen31/share/man/man9/Makefile#4 integrate .. //depot/projects/xen31/share/man/man9/rwlock.9#2 integrate .. //depot/projects/xen31/share/man/man9/stack.9#1 branch .. //depot/projects/xen31/share/man/man9/sx.9#2 integrate .. //depot/projects/xen31/share/man/man9/timeout.9#2 integrate .. //depot/projects/xen31/share/misc/iso3166#2 integrate .. //depot/projects/xen31/share/mk/bsd.sys.mk#2 integrate .. //depot/projects/xen31/share/mk/sys.mk#4 integrate .. //depot/projects/xen31/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/db_trace.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/genassym.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/intr_machdep.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/xen31/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/xen31/sys/amd64/amd64/prof_machdep.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/xen31/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/xen31/sys/amd64/include/pci_cfgreg.h#2 integrate .. //depot/projects/xen31/sys/amd64/pci/pci_cfgreg.c#2 integrate .. //depot/projects/xen31/sys/arm/arm/busdma_machdep.c#2 integrate .. //depot/projects/xen31/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/xen31/sys/arm/arm/pmap.c#3 integrate .. //depot/projects/xen31/sys/arm/arm/trap.c#2 integrate .. //depot/projects/xen31/sys/arm/arm/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/arm/conf/HL200#1 branch .. //depot/projects/xen31/sys/arm/include/atomic.h#2 integrate .. //depot/projects/xen31/sys/boot/i386/cdboot/cdboot.s#2 integrate .. //depot/projects/xen31/sys/boot/i386/gptboot/gptldr.S#2 integrate .. //depot/projects/xen31/sys/boot/i386/pmbr/pmbr.s#2 integrate .. //depot/projects/xen31/sys/boot/pc98/cdboot/cdboot.s#2 integrate .. //depot/projects/xen31/sys/cam/scsi/scsi_all.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/rpc/xdr.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/sys/atomic.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/sys/bitmap.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/cpupart.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/cpuvar.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/cyclic.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/elf.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/kmem.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/sys/mman.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/modctl.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/objfs.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/param.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/pcpu.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/proc.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/sys/stat.h#1 branch .. //depot/projects/xen31/sys/compat/opensolaris/sys/time.h#2 integrate .. //depot/projects/xen31/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/xen31/sys/conf/NOTES#3 integrate .. //depot/projects/xen31/sys/conf/files#4 integrate .. //depot/projects/xen31/sys/conf/kmod.mk#3 integrate .. //depot/projects/xen31/sys/conf/options#2 integrate .. //depot/projects/xen31/sys/contrib/ipfilter/netinet/fil.c#3 integrate .. //depot/projects/xen31/sys/contrib/ipfilter/netinet/ip_auth.c#3 integrate .. //depot/projects/xen31/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/common/avl/avl.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/rpc/xdr.c#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/rpc/xdr.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/sys/byteorder.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/sys/isa_defs.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/sys/procset.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/sys/sysmacros.h#2 integrate .. //depot/projects/xen31/sys/contrib/opensolaris/uts/common/sys/vmem.h#2 integrate .. //depot/projects/xen31/sys/contrib/pf/net/pf.c#4 integrate .. //depot/projects/xen31/sys/contrib/pf/net/pf_if.c#3 integrate .. //depot/projects/xen31/sys/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/xen31/sys/dev/aac/aac_debug.c#2 integrate .. //depot/projects/xen31/sys/dev/acpica/acpi_battery.c#2 integrate .. //depot/projects/xen31/sys/dev/agp/agp_i810.c#2 integrate .. //depot/projects/xen31/sys/dev/amr/amr.c#2 integrate .. //depot/projects/xen31/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/xen31/sys/dev/an/if_an.c#2 integrate .. //depot/projects/xen31/sys/dev/an/if_anreg.h#2 integrate .. //depot/projects/xen31/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/xen31/sys/dev/ata/ata-all.h#2 integrate .. //depot/projects/xen31/sys/dev/ata/ata-chipset.c#3 integrate .. //depot/projects/xen31/sys/dev/ata/ata-disk.c#2 integrate .. //depot/projects/xen31/sys/dev/ata/ata-dma.c#2 integrate .. //depot/projects/xen31/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/xen31/sys/dev/ata/ata-pci.h#2 integrate .. //depot/projects/xen31/sys/dev/ata/atapi-cd.c#3 integrate .. //depot/projects/xen31/sys/dev/ata/atapi-fd.c#2 integrate .. //depot/projects/xen31/sys/dev/ata/atapi-tape.c#2 integrate .. //depot/projects/xen31/sys/dev/bce/if_bce.c#2 integrate .. //depot/projects/xen31/sys/dev/bfe/if_bfe.c#2 integrate .. //depot/projects/xen31/sys/dev/bge/if_bge.c#2 integrate .. //depot/projects/xen31/sys/dev/dc/dcphy.c#2 integrate .. //depot/projects/xen31/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_80003es2lan.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_80003es2lan.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82540.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82541.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82541.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82542.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82543.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82543.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82571.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82571.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82575.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_82575.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_api.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_api.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_defines.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_hw.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_ich8lan.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_ich8lan.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_mac.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_mac.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_manage.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_manage.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_nvm.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_nvm.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_osdep.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_phy.c#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_phy.h#2 integrate .. //depot/projects/xen31/sys/dev/em/e1000_regs.h#2 integrate .. //depot/projects/xen31/sys/dev/em/if_em.c#2 integrate .. //depot/projects/xen31/sys/dev/em/if_em.h#2 integrate .. //depot/projects/xen31/sys/dev/ichsmb/ichsmb_pci.c#2 integrate .. //depot/projects/xen31/sys/dev/ichwd/ichwd.c#2 integrate .. //depot/projects/xen31/sys/dev/ichwd/ichwd.h#2 integrate .. //depot/projects/xen31/sys/dev/lge/if_lge.c#2 integrate .. //depot/projects/xen31/sys/dev/mii/amphy.c#2 integrate .. //depot/projects/xen31/sys/dev/mii/e1000phy.c#3 integrate .. //depot/projects/xen31/sys/dev/mii/nsphy.c#2 integrate .. //depot/projects/xen31/sys/dev/mii/rlphy.c#2 integrate .. //depot/projects/xen31/sys/dev/mii/tdkphy.c#2 integrate .. //depot/projects/xen31/sys/dev/mii/ukphy_subr.c#2 integrate .. //depot/projects/xen31/sys/dev/msk/if_msk.c#2 integrate .. //depot/projects/xen31/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/xen31/sys/dev/nfe/if_nfe.c#3 integrate .. //depot/projects/xen31/sys/dev/nge/if_nge.c#2 integrate .. //depot/projects/xen31/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/xen31/sys/dev/pci/pci.c#2 integrate .. //depot/projects/xen31/sys/dev/re/if_re.c#3 integrate .. //depot/projects/xen31/sys/dev/sk/if_sk.c#2 integrate .. //depot/projects/xen31/sys/dev/sound/pci/hda/hdac.c#2 integrate .. //depot/projects/xen31/sys/dev/stge/if_stge.c#2 integrate .. //depot/projects/xen31/sys/dev/ti/if_ti.c#2 integrate .. //depot/projects/xen31/sys/dev/txp/if_txp.c#2 integrate .. //depot/projects/xen31/sys/dev/usb/ehci_pci.c#2 integrate .. //depot/projects/xen31/sys/dev/usb/if_rum.c#3 integrate .. //depot/projects/xen31/sys/dev/usb/if_zyd.c#3 integrate .. //depot/projects/xen31/sys/dev/usb/uhci_pci.c#2 integrate .. //depot/projects/xen31/sys/dev/usb/usbdevs#4 integrate .. //depot/projects/xen31/sys/dev/vge/if_vge.c#2 integrate .. //depot/projects/xen31/sys/dev/vx/if_vx_pci.c#2 integrate .. //depot/projects/xen31/sys/dev/wpi/if_wpi.c#2 integrate .. //depot/projects/xen31/sys/dev/wpi/if_wpireg.h#2 integrate .. //depot/projects/xen31/sys/fs/msdosfs/msdosfs_vfsops.c#3 integrate .. //depot/projects/xen31/sys/fs/ntfs/ntfs_ihash.c#2 integrate .. //depot/projects/xen31/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/xen31/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/xen31/sys/fs/tmpfs/tmpfs_subr.c#2 integrate .. //depot/projects/xen31/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/xen31/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate .. //depot/projects/xen31/sys/geom/eli/g_eli_crypto.c#2 integrate .. //depot/projects/xen31/sys/geom/label/g_label_reiserfs.c#2 integrate .. //depot/projects/xen31/sys/i386/bios/apm.c#2 integrate .. //depot/projects/xen31/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/xen31/sys/i386/conf/XBOX#2 integrate .. //depot/projects/xen31/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/i386/genassym.c#2 integrate .. //depot/projects/xen31/sys/i386/i386/intr_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/i386/locore.s#2 integrate .. //depot/projects/xen31/sys/i386/i386/machdep.c#4 integrate .. //depot/projects/xen31/sys/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/i386/pmap.c#3 integrate .. //depot/projects/xen31/sys/i386/i386/trap.c#2 integrate .. //depot/projects/xen31/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/include/pmap.h#2 integrate .. //depot/projects/xen31/sys/i386/isa/prof_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/linux/linux_machdep.c#2 integrate .. //depot/projects/xen31/sys/i386/pci/pci_cfgreg.c#2 integrate .. //depot/projects/xen31/sys/ia64/ia64/busdma_machdep.c#2 integrate .. //depot/projects/xen31/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/xen31/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/xen31/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/xen31/sys/ia64/ia64/trap.c#2 integrate .. //depot/projects/xen31/sys/ia64/ia64/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/ia64/include/atomic.h#2 integrate .. //depot/projects/xen31/sys/kern/imgact_elf.c#3 integrate .. //depot/projects/xen31/sys/kern/init_main.c#4 integrate .. //depot/projects/xen31/sys/kern/kern_clock.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_exec.c#4 integrate .. //depot/projects/xen31/sys/kern/kern_fork.c#4 integrate .. //depot/projects/xen31/sys/kern/kern_kse.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_kthread.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_ktrace.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_linker.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_lock.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_proc.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_rmlock.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_rwlock.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_switch.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_sx.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_synch.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_thr.c#3 integrate .. //depot/projects/xen31/sys/kern/kern_thread.c#4 integrate .. //depot/projects/xen31/sys/kern/kern_timeout.c#2 integrate .. //depot/projects/xen31/sys/kern/kern_umtx.c#2 integrate .. //depot/projects/xen31/sys/kern/linker_if.m#2 integrate .. //depot/projects/xen31/sys/kern/p1003_1b.c#2 integrate .. //depot/projects/xen31/sys/kern/sched_4bsd.c#4 integrate .. //depot/projects/xen31/sys/kern/sched_ule.c#3 integrate .. //depot/projects/xen31/sys/kern/subr_pcpu.c#3 integrate .. //depot/projects/xen31/sys/kern/subr_sleepqueue.c#2 integrate .. //depot/projects/xen31/sys/kern/subr_trap.c#2 integrate .. //depot/projects/xen31/sys/kern/subr_turnstile.c#2 integrate .. //depot/projects/xen31/sys/kern/subr_witness.c#2 integrate .. //depot/projects/xen31/sys/kern/sys_generic.c#2 integrate .. //depot/projects/xen31/sys/kern/sys_pipe.c#3 integrate .. //depot/projects/xen31/sys/kern/tty_pty.c#3 integrate .. //depot/projects/xen31/sys/kern/vfs_cache.c#2 integrate .. //depot/projects/xen31/sys/modules/zfs/Makefile#2 integrate .. //depot/projects/xen31/sys/net/ieee8023ad_lacp.c#2 integrate .. //depot/projects/xen31/sys/net/if_enc.c#2 integrate .. //depot/projects/xen31/sys/net/if_lagg.c#2 integrate .. //depot/projects/xen31/sys/net/pfil.c#2 integrate .. //depot/projects/xen31/sys/net/pfil.h#2 integrate .. //depot/projects/xen31/sys/net80211/ieee80211.c#2 integrate .. //depot/projects/xen31/sys/net80211/ieee80211.h#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_ht.c#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_node.c#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_output.c#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_proto.c#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_scan_sta.c#3 integrate .. //depot/projects/xen31/sys/net80211/ieee80211_var.h#3 integrate .. //depot/projects/xen31/sys/netatalk/aarp.c#3 integrate .. //depot/projects/xen31/sys/netatalk/ddp_output.c#3 integrate .. //depot/projects/xen31/sys/netgraph/netgraph.h#2 integrate .. //depot/projects/xen31/sys/netgraph/ng_base.c#3 integrate .. //depot/projects/xen31/sys/netinet/ip_dummynet.c#3 integrate .. //depot/projects/xen31/sys/netinet/libalias/alias_util.c#2 integrate .. //depot/projects/xen31/sys/netinet/tcp_output.c#3 integrate .. //depot/projects/xen31/sys/netinet/tcp_subr.c#3 integrate .. //depot/projects/xen31/sys/netinet/tcp_syncache.c#4 integrate .. //depot/projects/xen31/sys/netinet6/ip6_output.c#2 integrate .. //depot/projects/xen31/sys/netipsec/ipsec.c#2 integrate .. //depot/projects/xen31/sys/netipsec/ipsec.h#2 integrate .. //depot/projects/xen31/sys/netipsec/ipsec_input.c#2 integrate .. //depot/projects/xen31/sys/netipsec/ipsec_output.c#2 integrate .. //depot/projects/xen31/sys/netipsec/keysock.c#3 integrate .. //depot/projects/xen31/sys/netipsec/xform.h#2 integrate .. //depot/projects/xen31/sys/netipsec/xform_ipip.c#2 integrate .. //depot/projects/xen31/sys/nfsclient/nfs_vnops.c#2 integrate .. //depot/projects/xen31/sys/pc98/pc98/machdep.c#3 integrate .. //depot/projects/xen31/sys/pci/if_rl.c#2 integrate .. //depot/projects/xen31/sys/pci/if_rlreg.h#2 integrate .. //depot/projects/xen31/sys/pci/if_sf.c#2 integrate .. //depot/projects/xen31/sys/pci/if_ste.c#2 integrate .. //depot/projects/xen31/sys/pci/if_vr.c#2 integrate .. //depot/projects/xen31/sys/pci/if_xl.c#2 integrate .. //depot/projects/xen31/sys/powerpc/include/atomic.h#2 integrate .. //depot/projects/xen31/sys/powerpc/include/md_var.h#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/clock.c#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/machdep.c#3 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/mmu_if.m#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/mmu_oea.c#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/pmap_dispatch.c#3 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/trap.c#2 integrate .. //depot/projects/xen31/sys/powerpc/powerpc/vm_machdep.c#3 integrate .. //depot/projects/xen31/sys/sparc64/conf/DEFAULTS#2 integrate .. //depot/projects/xen31/sys/sparc64/conf/GENERIC#2 integrate .. //depot/projects/xen31/sys/sparc64/sparc64/intr_machdep.c#2 integrate .. //depot/projects/xen31/sys/sparc64/sparc64/pmap.c#3 integrate .. //depot/projects/xen31/sys/sparc64/sparc64/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/sun4v/conf/GENERIC#2 integrate .. //depot/projects/xen31/sys/sun4v/include/stdarg.h#2 integrate .. //depot/projects/xen31/sys/sun4v/sun4v/pmap.c#3 integrate .. //depot/projects/xen31/sys/sun4v/sun4v/trap.c#2 integrate .. //depot/projects/xen31/sys/sun4v/sun4v/vm_machdep.c#2 integrate .. //depot/projects/xen31/sys/sys/_elf_solaris.h#2 delete .. //depot/projects/xen31/sys/sys/callout.h#2 integrate .. //depot/projects/xen31/sys/sys/elf.h#2 integrate .. //depot/projects/xen31/sys/sys/eventhandler.h#2 integrate .. //depot/projects/xen31/sys/sys/kernel.h#2 integrate .. //depot/projects/xen31/sys/sys/linker.h#3 integrate .. //depot/projects/xen31/sys/sys/lock.h#3 integrate .. //depot/projects/xen31/sys/sys/lockmgr.h#2 integrate .. //depot/projects/xen31/sys/sys/mutex.h#2 integrate .. //depot/projects/xen31/sys/sys/param.h#5 integrate .. //depot/projects/xen31/sys/sys/proc.h#4 integrate .. //depot/projects/xen31/sys/sys/signal.h#2 integrate .. //depot/projects/xen31/sys/sys/stat.h#2 integrate .. //depot/projects/xen31/sys/sys/time.h#2 integrate .. //depot/projects/xen31/sys/sys/types.h#2 integrate .. //depot/projects/xen31/sys/sys/umtx.h#2 integrate .. //depot/projects/xen31/sys/vm/pmap.h#3 integrate .. //depot/projects/xen31/sys/vm/vm_contig.c#2 integrate .. //depot/projects/xen31/sys/vm/vm_object.c#2 integrate .. //depot/projects/xen31/sys/vm/vm_page.c#4 integrate .. //depot/projects/xen31/sys/vm/vm_pageout.c#2 integrate .. //depot/projects/xen31/sys/vm/vm_pageout.h#2 integrate .. //depot/projects/xen31/sys/vm/vnode_pager.c#3 integrate .. //depot/projects/xen31/tools/regression/netinet/tcpconnect/README.tcp-md5#1 branch .. //depot/projects/xen31/tools/regression/netinet/tcpconnect/tcpconnect.c#2 integrate .. //depot/projects/xen31/tools/regression/priv/Makefile#2 integrate .. //depot/projects/xen31/tools/regression/priv/main.c#2 integrate .. //depot/projects/xen31/tools/regression/priv/main.h#2 integrate .. //depot/projects/xen31/tools/regression/priv/priv_netinet_ipsec.c#1 branch .. //depot/projects/xen31/tools/sched/schedgraph.py#3 integrate .. //depot/projects/xen31/usr.bin/fstat/zfs/Makefile#2 integrate .. //depot/projects/xen31/usr.bin/fstat/zfs/zfs.c#2 integrate .. //depot/projects/xen31/usr.bin/less/defines.h#2 integrate .. //depot/projects/xen31/usr.bin/lsvfs/lsvfs.c#2 integrate .. //depot/projects/xen31/usr.bin/make/main.c#2 integrate .. //depot/projects/xen31/usr.bin/netstat/Makefile#2 integrate .. //depot/projects/xen31/usr.bin/rpcgen/rpc_cout.c#2 integrate .. //depot/projects/xen31/usr.bin/tail/read.c#3 integrate .. //depot/projects/xen31/usr.bin/tee/tee.1#2 integrate .. //depot/projects/xen31/usr.bin/tip/tip/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/IPXrouted/trace.c#2 integrate .. //depot/projects/xen31/usr.sbin/acpi/acpidb/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/acpi/acpidump/acpi.c#2 integrate .. //depot/projects/xen31/usr.sbin/arp/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/freebsd-update/freebsd-update.sh#3 integrate .. //depot/projects/xen31/usr.sbin/kldxref/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/newsyslog/newsyslog.conf.5#2 integrate .. //depot/projects/xen31/usr.sbin/nscd/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/ppp/chap.h#2 integrate .. //depot/projects/xen31/usr.sbin/ppp/physical.h#2 integrate .. //depot/projects/xen31/usr.sbin/rpc.yppasswdd/Makefile#2 integrate .. //depot/projects/xen31/usr.sbin/sa/db.c#2 integrate Differences ... ==== //depot/projects/xen31/ObsoleteFiles.inc#5 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.117 2007/11/08 17:43:13 imp Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.122 2007/11/28 23:21:55 jb Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,8 +14,16 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20071129: Removed a Solaris compatibility header +OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071108: Removed very crunch OLDCARD support file OLD_FILES+=etc/defaults/pccard.conf +# 20071104: Removed bsdlabel, fdisk and gpt from rescue on ia64. +.if ${TARGET_ARCH} == "ia64" +OLD_FILES+=rescue/bsdlabel +OLD_FILES+=rescue/fdisk +OLD_FILES+=rescue/gpt +.endif # 20071025: rc.d/nfslocking superceeded by rc.d/lockd and rc.d/statd OLD_FILES+=etc/rc.d/nfslocking # 20070930: rename of cached to nscd @@ -198,7 +206,7 @@ # 20070605: sched_core removal OLD_FILES+=usr/share/man/man4/sched_core.4.gz # 20070603: BIND 9.4.1 import -OLD_LIBS+=lib/liblwres.so.10 +OLD_LIBS+=usr/lib/liblwres.so.10 # 20070521: shared library version bump OLD_LIBS+=lib/libatm.so.4 OLD_LIBS+=lib/libbegemot.so.2 @@ -3957,6 +3965,21 @@ # - usr/share/tmac/mm/locale # - usr/share/tmac/mm/se_locale # - var/yp/Makefile + +# 20071120: shared library version bump +OLD_LIBS+=usr/lib/libasn1.so.8 +OLD_LIBS+=usr/lib/libgssapi.so.8 +OLD_LIBS+=usr/lib/libgssapi_krb5.so.8 +OLD_LIBS+=usr/lib/libhdb.so.8 +OLD_LIBS+=usr/lib/libkadm5clnt.so.8 +OLD_LIBS+=usr/lib/libkadm5srv.so.8 +OLD_LIBS+=usr/lib/libkafs5.so.8 +OLD_LIBS+=usr/lib/libkrb5.so.8 +OLD_LIBS+=usr/lib/libobjc.so.2 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libgssapi.so.8 +OLD_LIBS+=usr/lib32/libobjc.so.2 +.endif # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so ==== //depot/projects/xen31/UPDATING#3 (text+ko) ==== @@ -21,6 +21,21 @@ developers choose to disable these features on build machines to maximize performance. +20071128: + The ADAPTIVE_GIANT kernel option has been retired because its + functionality is the default now. + +20071118: + The AT keyboard emulation of sunkbd(4) has been turned on + by default. In order to make the special symbols of the Sun + keyboards driven by sunkbd(4) work under X these now have + to be configured the same way as Sun USB keyboards driven + by ukbd(4) (which also does AT keyboard emulation), f.e.: + + Option "XkbLayout" "us" + Option "XkbRules" "xorg" + Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" + 20071024: It has been decided that it is desirable to provide ABI backwards compatibility to the FreeBSD 4/5/6 versions of the @@ -934,4 +949,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.511 2007/10/24 20:51:43 marius Exp $ +$FreeBSD: src/UPDATING,v 1.513 2007/11/28 13:04:11 matteo Exp $ ==== //depot/projects/xen31/bin/ln/ln.1#2 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ln.1 8.2 (Berkeley) 12/30/93 -.\" $FreeBSD: src/bin/ln/ln.1,v 1.31 2006/02/14 11:08:05 glebius Exp $ +.\" $FreeBSD: src/bin/ln/ln.1,v 1.32 2007/11/17 21:01:22 ru Exp $ .\" .Dd February 14, 2006 .Dt LN 1 @@ -41,11 +41,15 @@ .Nd make links .Sh SYNOPSIS .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file .Op Ar target_file .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file ... .Ar target_dir .Nm link ==== //depot/projects/xen31/bin/ln/ln.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.34 2006/02/14 11:08:05 glebius Exp $"); +__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.36 2007/11/17 21:01:22 ru Exp $"); #include #include @@ -69,7 +69,7 @@ main(int argc, char *argv[]) { struct stat sb; - char *p, *sourcedir; + char *p, *targetdir; int ch, exitval; /* @@ -134,34 +134,34 @@ case 0: usage(); /* NOTREACHED */ - case 1: /* ln target */ + case 1: /* ln source */ exit(linkit(argv[0], ".", 1)); - case 2: /* ln target source */ + case 2: /* ln source target */ exit(linkit(argv[0], argv[1], 0)); default: ; } - /* ln target1 target2 directory */ - sourcedir = argv[argc - 1]; - if (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)) { + /* ln source1 source2 directory */ + targetdir = argv[argc - 1]; + if (hflag && lstat(targetdir, &sb) == 0 && S_ISLNK(sb.st_mode)) { /* * We were asked not to follow symlinks, but found one at * the target--simulate "not a directory" error */ errno = ENOTDIR; - err(1, "%s", sourcedir); + err(1, "%s", targetdir); } - if (stat(sourcedir, &sb)) - err(1, "%s", sourcedir); + if (stat(targetdir, &sb)) + err(1, "%s", targetdir); if (!S_ISDIR(sb.st_mode)) usage(); - for (exitval = 0; *argv != sourcedir; ++argv) - exitval |= linkit(*argv, sourcedir, 1); + for (exitval = 0; *argv != targetdir; ++argv) + exitval |= linkit(*argv, targetdir, 1); exit(exitval); } int -linkit(const char *target, const char *source, int isdir) +linkit(const char *source, const char *target, int isdir) { struct stat sb; const char *p; @@ -169,57 +169,57 @@ char path[PATH_MAX]; if (!sflag) { - /* If target doesn't exist, quit now. */ - if (stat(target, &sb)) { - warn("%s", target); + /* If source doesn't exist, quit now. */ + if (stat(source, &sb)) { + warn("%s", source); return (1); } /* Only symbolic links to directories. */ if (S_ISDIR(sb.st_mode)) { errno = EISDIR; - warn("%s", target); + warn("%s", source); return (1); } } /* - * If the source is a directory (and not a symlink if hflag), - * append the target's name. + * If the target is a directory (and not a symlink if hflag), + * append the source's name. */ if (isdir || - (lstat(source, &sb) == 0 && S_ISDIR(sb.st_mode)) || - (!hflag && stat(source, &sb) == 0 && S_ISDIR(sb.st_mode))) { - if ((p = strrchr(target, '/')) == NULL) - p = target; + (lstat(target, &sb) == 0 && S_ISDIR(sb.st_mode)) || + (!hflag && stat(target, &sb) == 0 && S_ISDIR(sb.st_mode))) { + if ((p = strrchr(source, '/')) == NULL) + p = source; else ++p; - if (snprintf(path, sizeof(path), "%s/%s", source, p) >= + if (snprintf(path, sizeof(path), "%s/%s", target, p) >= (ssize_t)sizeof(path)) { errno = ENAMETOOLONG; - warn("%s", target); + warn("%s", source); return (1); } - source = path; + target = path; } - exists = !lstat(source, &sb); + exists = !lstat(target, &sb); /* * If the file exists, then unlink it forcibly if -f was specified * and interactively if -i was specified. */ if (fflag && exists) { if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } else if (iflag && exists) { fflush(stdout); - fprintf(stderr, "replace %s? ", source); + fprintf(stderr, "replace %s? ", target); first = ch = getchar(); while(ch != '\n' && ch != EOF) @@ -230,23 +230,23 @@ } if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } /* Attempt the link. */ - if ((*linkf)(target, source)) { - warn("%s", source); + if ((*linkf)(source, target)) { + warn("%s", target); return (1); } if (vflag) - (void)printf("%s %c> %s\n", source, linkch, target); + (void)printf("%s %c> %s\n", target, linkch, source); return (0); } @@ -254,8 +254,8 @@ usage(void) { (void)fprintf(stderr, "%s\n%s\n%s\n", - "usage: ln [-Ffhinsv] source_file [target_file]", - " ln [-Ffhinsv] source_file ... target_dir", + "usage: ln [-s [-F]] [-f | -i] [-hnv] source_file [target_file]", + " ln [-s [-F]] [-f | -i] [-hnv] source_file ... target_dir", " link source_file target_file"); exit(1); } ==== //depot/projects/xen31/bin/sh/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.4 (Berkeley) 5/5/95 -# $FreeBSD: src/bin/sh/Makefile,v 1.46 2006/04/17 17:55:11 schweikh Exp $ +# $FreeBSD: src/bin/sh/Makefile,v 1.47 2007/11/18 01:53:07 jb Exp $ PROG= sh INSTALLFLAGS= -S @@ -22,7 +22,7 @@ CFLAGS+=-DSHELL -I. -I${.CURDIR} # for debug: # CFLAGS+= -g -DDEBUG=2 -WARNS?= 3 +WARNS?= 2 WFORMAT=0 .PATH: ${.CURDIR}/bltin \ ==== //depot/projects/xen31/cddl/Makefile.inc#2 (text+ko) ==== @@ -1,3 +1,6 @@ -# $FreeBSD: src/cddl/Makefile.inc,v 1.2 2007/04/16 21:20:24 ru Exp $ +# $FreeBSD: src/cddl/Makefile.inc,v 1.3 2007/11/28 22:58:09 jb Exp $ + +OPENSOLARIS_USR_DISTDIR= ${.CURDIR}/../../../contrib/opensolaris +OPENSOLARIS_SYS_DISTDIR= ${.CURDIR}/../../../sys/contrib/opensolaris -CFLAGS+= -D_SOLARIS_C_SOURCE +IGNORE_PRAGMA= YES ==== //depot/projects/xen31/cddl/lib/libnvpair/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $ +# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.3 2007/11/28 22:58:09 jb Exp $ .PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libnvpair .PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/nvpair @@ -10,8 +10,8 @@ nvpair_alloc_fixed.c \ nvpair.c +CFLAGS+= -I${.CURDIR}/../../../compat/opensolaris/include CFLAGS+= -I${.CURDIR}/../../../sys/compat/opensolaris -CFLAGS+= -I${.CURDIR}/../../../include # XXX CFLAGS+= -I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common .include ==== //depot/projects/xen31/contrib/binutils/opcodes/ppc-dis.c#2 (text+ko) ==== @@ -1,3 +1,4 @@ +/* $FreeBSD: src/contrib/binutils/opcodes/ppc-dis.c,v 1.2 2007/11/23 23:54:44 jb Exp $ */ /* ppc-dis.c -- Disassemble PowerPC instructions Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. @@ -45,6 +46,7 @@ powerpc_dialect (struct disassemble_info *info) { int dialect = PPC_OPCODE_PPC | PPC_OPCODE_ALTIVEC; + void *pd = &info->private_data; if (BFD_DEFAULT_TARGET_SIZE == 64) dialect |= PPC_OPCODE_64; @@ -91,7 +93,7 @@ dialect |= PPC_OPCODE_64; } - ((struct dis_private *) &info->private_data)->dialect = dialect; + ((struct dis_private *) pd)->dialect = dialect; return dialect; } @@ -100,7 +102,8 @@ int print_insn_big_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 1, dialect); } @@ -109,7 +112,8 @@ int print_insn_little_powerpc (bfd_vma memaddr, struct disassemble_info *info) { - int dialect = ((struct dis_private *) &info->private_data)->dialect; + void *pd = &info->private_data; + int dialect = ((struct dis_private *) pd)->dialect; return print_insn_powerpc (memaddr, info, 0, dialect); } ==== //depot/projects/xen31/contrib/csup/mux.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/contrib/csup/mux.c,v 1.1.1.1 2006/03/03 04:11:28 mux Exp $ + * $FreeBSD: src/contrib/csup/mux.c,v 1.2 2007/11/18 00:25:18 jb Exp $ */ #include @@ -782,7 +782,7 @@ struct buf *buf; uint32_t winsize; uint16_t hdrsize, size, len; - int error, id, iovcnt, what; + int error, id, iovcnt, what = 0; m = (struct mux *)arg; again: ==== //depot/projects/xen31/contrib/gdb/gdb/i386fbsd-nat.c#2 (text+ko) ==== @@ -91,7 +91,7 @@ #ifdef KERN_PS_STRINGS { int mib[2]; - int ps_strings; + u_long ps_strings; size_t len; mib[0] = CTL_KERN; ==== //depot/projects/xen31/contrib/less/LICENSE#2 (text+ko) ==== @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2005 Mark Nudelman +Copyright (C) 1984-2007 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ==== //depot/projects/xen31/contrib/less/NEWS#2 (text+ko) ==== @@ -13,6 +13,17 @@ ====================================================================== + Major changes between "less" versions 409 and 416 + +* New --follow-name option makes F command follow the name of a file + rather than the file descriptor if an open file is renamed. + +* Make searching with -i/-I work correctly with non-ASCII text. + +* Fix DJGPP build. + +====================================================================== + Major changes between "less" versions 406 and 409 * Support CSI escape sequences, like SGR escape sequences. @@ -698,3 +709,4 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Nov 29 05:41:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A888B16A421; Thu, 29 Nov 2007 05:41: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 00B0616A418 for ; Thu, 29 Nov 2007 05:41:07 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.181]) by mx1.freebsd.org (Postfix) with ESMTP id E26F413C461 for ; Thu, 29 Nov 2007 05:41:06 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: by wa-out-1112.google.com with SMTP id k17so2251157waf for ; Wed, 28 Nov 2007 21:41:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=0zN2YlJdHDjpuxAEoQ+iQYGEA9SdHrokvm8kl88IrP4=; b=FSMTcziXkAVDJa5brjC28pvytoCs7bt5fIXyFodY2/TgCMDpVmjEsdpL+Q6vOWcY9sE8OTCovb/Hr6jOPz0oyW3lu9WB2xirpOy0pTSfZ3A1anNN5drhjz1nJuofyd7rlEMq9QSRNHoBszuVZp5NoL9VvwfTc+rrISLRERygeuk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=tQVL5Yx36zTvj/pz5gPPVPCXn1k+RtL+S8X+hOXN4qnHcBoAmga/5icY3sWj2x3E8Rvu0886kPZNwOESTMoS8nzhENYfLWpwzV7XnJQzr6XAF0WqCLK/4JSQMigmEjJ2Jmoyo7BQOb+0Wi3h1+wDneh8NqsYyzVbrwGoLN1KhrA= Received: by 10.114.15.1 with SMTP id 1mr356214wao.1196313306509; Wed, 28 Nov 2007 21:15:06 -0800 (PST) Received: by 10.114.13.15 with HTTP; Wed, 28 Nov 2007 21:15:06 -0800 (PST) Message-ID: Date: Wed, 28 Nov 2007 21:15:06 -0800 From: "Kip Macy" To: "Robert Watson" In-Reply-To: <20071126115044.J65286@fledge.watson.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> <20071126115044.J65286@fledge.watson.org> Cc: Perforce Change Reviews , Kip Macy Subject: Re: PERFORCE change 129544 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: Thu, 29 Nov 2007 05:41:09 -0000 On Nov 26, 2007 3:55 AM, Robert Watson wrote: > > On Mon, 26 Nov 2007, Kip Macy wrote: > > > http://perforce.freebsd.org/chv.cgi?CH=129544 > > > > Change 129544 by kmacy@kmacy:storage:toestack on 2007/11/26 05:26:43 > > > > disable merging of data into existing mbufs if > > new SB_TOE flag is set > > One of the reasons we compact socket buffers with TCP and other stream > protocols is that if you're dealing with an application/protocol that spits > out data in small chunks (i.e., a series of printfs) and nagel is disabled, > you end up with a series of packets that make quite inefficient use of mbufs, > as the space wasted per chunk of data is significant. Not only that, we bill > for space in socket buffers based on the space held by the full mbuf, not just > the data in the mbuf when it comes to socket buffer resource limits, so you > can rapidly fill up socket buffer limits without compaction in this type of > scenario. I'm not sure which protocols this would affect, but I'd imagine > that RPC-like protocols supporting asynchronous operation (so that you get a > series of replies and responses in flight at once) might be relevant, such as > IMAP. > > On an unrelated not, if we want a non-coalescing modes for socket bufferss, we > should probably also give it a name like "SB_NOCOALESCE" rather than something > TOE-specific. > I agree that making it toe specific is somewhat misleading. I actually think I'll be able to fix my code so that it can cope with data being added to the end of a cluster or mbuf that has already been transmitted. If so, I won't need to pull this along when I bring TOE support into CVS. Thanks for the feedback. -Kip From owner-p4-projects@FreeBSD.ORG Thu Nov 29 07:01:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 398DC16A41B; Thu, 29 Nov 2007 07:01: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 BEA0016A419 for ; Thu, 29 Nov 2007 07:01:24 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C3EC113C45A for ; Thu, 29 Nov 2007 07:01:24 +0000 (UTC) (envelope-from zhouzhouyi@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 lAT71Ohb005519 for ; Thu, 29 Nov 2007 07:01:24 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAT71OCE005516 for perforce@freebsd.org; Thu, 29 Nov 2007 07:01:24 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Thu, 29 Nov 2007 07:01:24 GMT Message-Id: <200711290701.lAT71OCE005516@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 129759 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: Thu, 29 Nov 2007 07:01:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129759 Change 129759 by zhouzhouyi@zhouzhouyi_mactest on 2007/11/29 07:00:33 Mandatory access control test for proc schedule Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/sched/00.t#2 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/sched/00.t#2 (text+ko) ==== @@ -1,60 +1,65 @@ #!/bin/sh -# $FreeBSD: src/tools/regression/mactest/tests/sched/00.t,v 1.1 2007/06/04 01:42:08 zhouzhouyi Exp $ +# $FreeBSD$ + +desc="test of proc schedule" -desc="checking the Mandatory Access Control Hooks for proc sched" dir=`dirname $0` . ${dir}/../misc.sh -echo "1..3" +case "${os}" in +FreeBSD) + + mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` + mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` + mac_test_support=`sysctl -n security.mac.test.pseudoinit 2>/dev/null` + + if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] && + [ "${mac_test_support}" != "" ]; then #turn off all the switches -for i in `sysctl security.mac | grep "\.enabled"| - sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do -sysctl ${i}=0 -done + for i in `sysctl security.mac | grep "\.enabled"| + sed 's/\([a-z\.]*\.enabled\)\(:\ \)\([01]\)/\1/`; do + sysctl ${i}=0 >/dev/null + done -mac_mls_support=`sysctl -n security.mac.mls.enabled 2>/dev/null` -mac_biba_support=`sysctl -n security.mac.biba.enabled 2>/dev/null` -mac_test_support=`sysctl -n security.mac.test.pseudoinit 2>/dev/null` -if [ "${mac_mls_support}" != "" ] && [ "${mac_biba_support}" != "" ] && - [ "${mac_test_support}" != "" ] ; then - setpmac "mls/3,biba/4" ${macproc} -w 10 -f "${pid_file}" - getmacprocpid + if [ -f ${mactest_conf} ]; then + rm ${mactest_conf} + fi + touch ${mactest_conf} + setfmac "mls/equal,biba/equal" ${mactest_conf} + + echo "1..3" + setpmac "mls/3,biba/4" ${macproc} -w 10 -f "${pid_file}" + getmacprocpid - if [ -f ${mactest_conf} ]; then - rm ${mactest_conf} - fi - touch ${mactest_conf} + sysctl security.mac.mls.enabled=1 >/dev/null + sysctl security.mac.biba.enabled=1 > /dev/null -############################################################# - t=`sysctl security.mac.mls.enabled=1` - t=`sysctl security.mac.biba.enabled=1` - echo "enabling mac/mls!" - echo "enabling mac/biba!" - #case 1: can sched the proc when two labels are equal - mactestexpect "" "" -m "biba/4,mls/3" -f ${mactest_conf} system rtprio -t -${pid} + mactestexpect "" "" -m "biba/4,mls/3" -f ${mactest_conf} system rtprio -t -${pid} #case 2: if biba label is not equal, sched should not happen - mactestexpect "*rtprio:.Permission.denied" "" -m "biba/3,mls/3" -f ${mactest_conf} system rtprio -t -${pid} + mactestexpect "*rtprio:.Permission.denied" "" -m "biba/3,mls/3" -f ${mactest_conf} system rtprio -t -${pid} #case 3: if mls label is not equal, sched should not happen - echo -n "pid = -2 mac_test_check_proc_sched:" > ${mactest_conf} - echo "biba/4(low-high),mls/5(low-high) biba/4(low-high),mls/3(low-high)" >> ${mactest_conf} - mactestexpect "*rtprio:.Permission.denied" "" -m "biba/4,mls/5" -f ${mactest_conf} system rtprio -t -${pid} + echo -n "pid = -2 proc_check_sched:" > ${mactest_conf} + echo "biba/4(low-high),mls/5(low-high) biba/4(low-high),mls/3(low-high)" >> ${mactest_conf} + mactestexpect "*rtprio:.Permission.denied" "" -m "biba/4,mls/5" -f ${mactest_conf} system rtprio -t -${pid} - t=`sysctl security.mac.mls.enabled=0` - t=`sysctl security.mac.biba.enabled=0` - echo "disabling mac/mls!" - echo "disabling mac/biba!" - - rm ${mactest_conf} - rm ${pid_file} - -fi - +#cleanup: + sysctl security.mac.mls.enabled=0 >/dev/null + sysctl security.mac.biba.enabled=0 > /dev/null + rm ${mactest_conf} + rm ${pid_file} +#mac_mls mac_biba and mac_test support + fi + ;; +*) + quick_exit + ;; +esac From owner-p4-projects@FreeBSD.ORG Thu Nov 29 07:55:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B112416A420; Thu, 29 Nov 2007 07:55: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 32C7516A474; Thu, 29 Nov 2007 07:55:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 1E4E713C508; Thu, 29 Nov 2007 07:55:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id AD60B46C90; Thu, 29 Nov 2007 02:59:22 -0500 (EST) Date: Thu, 29 Nov 2007 07:55:15 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Kip Macy In-Reply-To: Message-ID: <20071129075148.X7555@fledge.watson.org> References: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> <20071126115044.J65286@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews , Kip Macy Subject: Re: PERFORCE change 129544 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: Thu, 29 Nov 2007 07:55:24 -0000 On Wed, 28 Nov 2007, Kip Macy wrote: > I agree that making it toe specific is somewhat misleading. I actually think > I'll be able to fix my code so that it can cope with data being added to the > end of a cluster or mbuf that has already been transmitted. If so, I won't > need to pull this along when I bring TOE support into CVS. > > Thanks for the feedback. I'm not as familiar with the transmit side of the socket buffer side -- at least not anymore -- but on the receive side we make certain strong guarantees about not replacing existing mbufs and clusters, especially at the head of the socket buffer queue. I think the requirement for that in 7/8 may have changed because of the rewritten soreceive() code, but it used to be that soreceive() expected the value of sb_mb never to go from one non-NULL value to another non-NULL value as long as the sb_sx lock (or its predecessor) was held, even though sb_mtx had been released. This was so that the mbuf could be left in the socket buffer during copyout() and related receive activities, so that if there was a short read, error, etc, mbufs weren't being re-inserted at the head of the queue. That type of invariant has historically been undocumented, but it could be that similar invariants exist in the compaction code for transmit and can be documented, enforced, and possibly even relied upon. :-) Robert N M Watson Computer Laboratory University of Cambridge From owner-p4-projects@FreeBSD.ORG Thu Nov 29 09:20:26 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AFC4116A474; Thu, 29 Nov 2007 09:20:26 +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 562FF16A417 for ; Thu, 29 Nov 2007 09:20:26 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id C859513C4F0 for ; Thu, 29 Nov 2007 09:20:25 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 66028 invoked from network); 29 Nov 2007 08:25:27 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 29 Nov 2007 08:25:27 -0000 Message-ID: <474E7E1C.3030907@freebsd.org> Date: Thu, 29 Nov 2007 09:53:48 +0100 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: Robert Watson References: <200711260527.lAQ5RNSw090238@repoman.freebsd.org> <20071126115044.J65286@fledge.watson.org> <20071129075148.X7555@fledge.watson.org> In-Reply-To: <20071129075148.X7555@fledge.watson.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Kip Macy , Perforce Change Reviews , Kip Macy Subject: Re: PERFORCE change 129544 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: Thu, 29 Nov 2007 09:20:27 -0000 Robert Watson wrote: > > On Wed, 28 Nov 2007, Kip Macy wrote: > >> I agree that making it toe specific is somewhat misleading. I actually >> think I'll be able to fix my code so that it can cope with data being >> added to the end of a cluster or mbuf that has already been >> transmitted. If so, I won't need to pull this along when I bring TOE >> support into CVS. >> >> Thanks for the feedback. > > I'm not as familiar with the transmit side of the socket buffer side -- > at least not anymore -- but on the receive side we make certain strong > guarantees about not replacing existing mbufs and clusters, especially > at the head of the socket buffer queue. I think the requirement for > that in 7/8 may have changed because of the rewritten soreceive() code, > but it used to be that soreceive() expected the value of sb_mb never to > go from one non-NULL value to another non-NULL value as long as the > sb_sx lock (or its predecessor) was held, even though sb_mtx had been > released. This was so that the mbuf could be left in the socket buffer > during copyout() and related receive activities, so that if there was a > short read, error, etc, mbufs weren't being re-inserted at the head of > the queue. That type of invariant has historically been undocumented, > but it could be that similar invariants exist in the compaction code for > transmit and can be documented, enforced, and possibly even relied upon. > :-) On the TX side we don't append data *into* existing mbufs to protect ongoing DMA transfers. Appends happen to the mbuf chain (m_next). A number of small writes will consume one mbuf each. On the RX side we compress the mbufs at the tail (sbcompress) to prevent external exhaustion attacks. I've written a special version of soreceive_stream that pulls as many mbufs from the head of the socket buffer as the user has specified space in iovecs. Those mbuf are removed from the queue. The lock then was dropped and the copyout performed on the whole chain in one go. This gave significant speedups at high receive speeds. However at the expense of a fatal race condition when copyout failed and the socket went away. Then the resulting prepend would horribly crash. Haven't studied the new socket locks and locking model yet in detail. Perhaps this can now be implemented in a safe way. -- Andre From owner-p4-projects@FreeBSD.ORG Thu Nov 29 19:18:04 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D442A16A420; Thu, 29 Nov 2007 19:18:03 +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 57B3316A418 for ; Thu, 29 Nov 2007 19:18:03 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4BFCB13C46B for ; Thu, 29 Nov 2007 19:18:03 +0000 (UTC) (envelope-from gcooper@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 lATJI33m096845 for ; Thu, 29 Nov 2007 19:18:03 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATJI3qZ096842 for perforce@freebsd.org; Thu, 29 Nov 2007 19:18:03 GMT (envelope-from gcooper@FreeBSD.org) Date: Thu, 29 Nov 2007 19:18:03 GMT Message-Id: <200711291918.lATJI3qZ096842@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129783 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: Thu, 29 Nov 2007 19:18:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=129783 Change 129783 by gcooper@shiina-ibook on 2007/11/29 19:18:01 Style and logic consolidation. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.c#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg.c#2 (text+ko) ==== @@ -69,12 +69,11 @@ return NULL; pkg = malloc(sizeof(struct pkg)); - if (!pkg) { + if (pkg == NULL) return NULL; - } pkg->pkg_name = strdup(pkg_name); - if (!pkg->pkg_name) { + if (pkg->pkg_name == NULL) { free(pkg); return NULL; } @@ -311,10 +310,7 @@ struct pkgfile ** pkg_get_control_files(struct pkg *pkg) { - if (!pkg) - return NULL; - - if (pkg->pkg_get_control_files) + if (pkg != NULL && pkg->pkg_get_control_files != NULL) return pkg->pkg_get_control_files(pkg); return NULL; @@ -329,10 +325,7 @@ struct pkgfile * pkg_get_control_file(struct pkg *pkg, const char *pkg_name) { - if (!pkg || !pkg_name) - return NULL; - - if (pkg->pkg_get_control_file) + if (pkg != NULL && pkg_name != NULL && pkg->pkg_get_control_file != NULL) return pkg->pkg_get_control_file(pkg, pkg_name); return NULL; @@ -348,7 +341,7 @@ struct pkg ** pkg_get_dependencies(struct pkg *pkg) { - if (!pkg) + if (pkg == NULL) return NULL; assert(pkg->pkg_get_deps == NULL || @@ -374,7 +367,7 @@ struct pkg ** pkg_get_reverse_dependencies(struct pkg *pkg) { - if (!pkg) + if (pkg == NULL) return NULL; assert(pkg->pkg_get_rdeps == NULL || @@ -412,7 +405,7 @@ const char * pkg_get_name(struct pkg *pkg) { - if (!pkg) + if (pkg == NULL) return NULL; return pkg->pkg_name; } @@ -428,10 +421,10 @@ struct pkgfile * pkg_get_next_file(struct pkg *pkg) { - if (!pkg) + if (pkg == NULL) return NULL; - if (!pkg->pkg_get_next_file) + if (pkg->pkg_get_next_file == NULL) return NULL; return pkg->pkg_get_next_file(pkg); @@ -448,10 +441,7 @@ const char * pkg_get_origin(struct pkg *pkg) { - if (pkg == NULL) - return NULL; - - if (pkg->pkg_get_origin != NULL) + if (pkg != NULL && pkg->pkg_get_origin != NULL) return pkg->pkg_get_origin(pkg); return NULL; @@ -471,10 +461,7 @@ int pkg_set_origin(struct pkg *pkg, const char *origin) { - if (pkg == NULL || origin == NULL) - return -1; - - if (pkg->pkg_set_origin) + if (pkg != NULL && origin != NULL && pkg->pkg_set_origin != NULL) return pkg->pkg_set_origin(pkg, origin); return -1; @@ -491,10 +478,7 @@ const char * pkg_get_version(struct pkg *pkg) { - if (pkg == NULL) - return NULL; - - if (pkg->pkg_get_version != NULL) + if (pkg != NULL && pkg->pkg_get_version != NULL) return pkg->pkg_get_version(pkg); return NULL; @@ -510,13 +494,9 @@ int pkg_run_script(struct pkg *pkg, const char *prefix, pkg_script script) { - if (pkg == NULL) - return -1; - - if (pkg->pkg_run_script == NULL) - return -1; - - return pkg->pkg_run_script(pkg, prefix, script); + if (pkg != NULL && pkg->pkg_run_script != NULL) + return pkg->pkg_run_script(pkg, prefix, script); + return -1; } /** @@ -528,12 +508,8 @@ int pkg_add_dependency(struct pkg *pkg, struct pkg *depend) { - if (!pkg || !depend) - return -1; - - if (pkg->pkg_add_depend) + if (pkg != NULL && depend != NULL && pkg->pkg_add_depend != NULL) return pkg->pkg_add_depend(pkg, depend); - return -1; } @@ -546,12 +522,8 @@ int pkg_add_file(struct pkg *pkg, struct pkgfile *file) { - if (!pkg || !file) - return -1; - - if (pkg->pkg_add_file) + if (pkg != NULL && file != NULL && pkg->pkg_add_file != NULL) return pkg->pkg_add_file(pkg, file); - return -1; } @@ -642,7 +614,7 @@ { unsigned int cur; - if (!pkgs) + if (pkgs == NULL) return -1; for (cur = 0; pkgs[cur] != NULL; cur++) @@ -660,7 +632,7 @@ int pkg_free(struct pkg *pkg) { - if (pkg != NULL) + if (pkg == NULL) return -1; if (pkg->pkg_name != NULL) From owner-p4-projects@FreeBSD.ORG Thu Nov 29 19:25:13 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 42AFB16A468; Thu, 29 Nov 2007 19:25:13 +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 9FBB216A41B for ; Thu, 29 Nov 2007 19:25:12 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9292013C45B for ; Thu, 29 Nov 2007 19:25:12 +0000 (UTC) (envelope-from gcooper@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 lATJPCVT097232 for ; Thu, 29 Nov 2007 19:25:12 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATJPCvs097229 for perforce@freebsd.org; Thu, 29 Nov 2007 19:25:12 GMT (envelope-from gcooper@FreeBSD.org) Date: Thu, 29 Nov 2007 19:25:12 GMT Message-Id: <200711291925.lATJPCvs097229@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129785 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: Thu, 29 Nov 2007 19:25:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=129785 Change 129785 by gcooper@shiina-ibook on 2007/11/29 19:24:47 - Add force functionality to pkg_db and all related function prototypes. - Style and logic consolidation. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.c#3 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.h#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#5 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.c#3 (text+ko) ==== @@ -63,7 +63,7 @@ struct stat sb; db = malloc(sizeof(struct pkg_db)); - if (!db) + if (db == NULL) return NULL; /* Make a relative path into an absolute path */ @@ -79,7 +79,7 @@ db->db_base = strdup(base); } - if (!db->db_base) { + if (db->db_base == NULL) { free(db); return NULL; } @@ -88,7 +88,7 @@ if (stat(db->db_base, &sb) == -1) { pkg_db_free(db); return NULL; - } else if (!S_ISDIR(sb.st_mode)) { + } else if (S_ISDIR(sb.st_mode) == 0) { pkg_db_free(db); return NULL; } @@ -128,7 +128,7 @@ * * These are the functions to talk to a package database. * The database is created by a system dependent constructor. - * eg. pkg_db_open_freebsd() on FreeBSD systems + * e.g. pkg_db_open_freebsd() on FreeBSD systems * * @{ */ @@ -142,13 +142,16 @@ * @param scripts If true run the package's scripts * @param fake If true we will only fetch the package and report what would * have happened during the install + * @param force Force the install operation to go through (or at + * least force it to go through if the preinstall script fails..). * @param action A callback that is used to inform the user the status * of the installation * @return 0 if the package is installed, -1 otherwise */ int pkg_db_install_pkg_action(struct pkg_db *db, struct pkg *pkg, - const char *prefix, int reg, int scripts, int fake, pkg_db_action *action) + const char *prefix, int reg, int scripts, int fake, int force, + pkg_db_action *action) { if (db == NULL) return -1; @@ -221,13 +224,13 @@ pkg_db_get_installed_match_count(struct pkg_db *db, pkg_db_match *match, unsigned int count, const void *data) { - if (!db) + if (db == NULL) return NULL; if (match == NULL) match = pkg_match_all; - if (db->pkg_get_installed_match) + if (db->pkg_get_installed_match != NULL) return db->pkg_get_installed_match(db, match, count, data); return NULL; @@ -240,10 +243,7 @@ struct pkg * pkg_db_get_package(struct pkg_db *db, const char *pkg_name) { - if (!db || !pkg_name) - return NULL; - - if (db->pkg_get_package) + if (db != NULL && pkg_name != NULL && db->pkg_get_package) return db->pkg_get_package(db, pkg_name); return NULL; @@ -266,15 +266,11 @@ pkg_db_delete_package_action(struct pkg_db *db, struct pkg *pkg, int scripts, int fake, int force, int clean_dirs, pkg_db_action *action) { - if (db == NULL || pkg == NULL) - return -1; - - if (action == NULL) - return -1; - - if (db->pkg_deinstall != NULL) + if (db != NULL && pkg != NULL && action != NULL && + db->pkg_deinstall != NULL) { return db->pkg_deinstall(db, pkg, scripts, fake, force, clean_dirs, action); + } return -1; } ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db.h#2 (text+ko) ==== @@ -28,6 +28,9 @@ #ifndef __LIBPKG_PKG_DB_H__ #define __LIBPKG_PKG_DB_H__ + +#define PKGDB_DEPS_READAHEAD_SIZE 1024 + /* * A place to install packages to and uninstall packages from */ @@ -49,7 +52,7 @@ struct pkg_db *pkg_db_open_freebsd(const char *); int pkg_db_install_pkg_action(struct pkg_db *, struct pkg *, - const char *, int, int, int, pkg_db_action *); + const char *, int, int, int, int, pkg_db_action *); int pkg_db_is_installed(struct pkg_db *, struct pkg *); struct pkg **pkg_db_get_installed(struct pkg_db *); struct pkg **pkg_db_get_installed_match(struct pkg_db *, pkg_db_match *, ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_freebsd.c#5 (text+ko) ==== @@ -176,15 +176,17 @@ * specified by the pkg_script_pre and pkg_script_post variables. * @param fake Should we actually install the package or * just report what would have happened + * @param force Force the install operation to go through (or at + * least force it to go through if the preinstall script fails..). * @param pkg_action A function to call when an action takes place - * @bug When the install fails part way through remove some files are left. + * @bug When the install fails part way through some files are left. * Remove these. * @return 0 on success, -1 on error */ static int freebsd_install_pkg_action(struct pkg_db *db, struct pkg *pkg, const char *prefix, int reg, int exec_pkg_scripts, int fake, - pkg_db_action *pkg_action) + int force, pkg_db_action *pkg_action) { struct pkg_install_data install_data; char cwd[MAXPATHLEN]; @@ -209,11 +211,12 @@ pkg_action(PKG_DB_PACKAGE, "Package name is %s", pkg_get_name(pkg)); /* Run +REQUIRE */ - pkg_action(PKG_DB_INFO, "Running ... for %s..", pkg_get_name(pkg)); + pkg_action(PKG_DB_INFO, "Running requirements... for %s..", + pkg_get_name(pkg)); if (fake == 0) { - /** @todo Check if the force flag is set */ - if (pkg_run_script(pkg, prefix, pkg_script_require) != 0) { + if (pkg_run_script(pkg, prefix, pkg_script_require) != 0 && + force == 0) { chdir(cwd); return -1; } @@ -254,12 +257,7 @@ pkg_run_script(pkg, prefix, pkg_script_post); /* - * Andrew Turner: @todo Display contents of \@display - * - * Garrett Cooper: Looking at the original pkg_install, - * this doesn't appear to be implemented other than just - * as a printf statement. What is the purpose of this - * directive? + * @todo Display contents of \@display */ chdir(cwd); @@ -289,15 +287,15 @@ is_installed = -1; - /* Does the package repo directory exist */ + /* Does the package repo directory exist? */ if (stat(dir, &sb) == 0 && S_ISDIR(sb.st_mode) != 0) { - /* The passed package is installed */ + /* pkg is installed */ free(dir); return 0; } free(dir); - /* Does the package have an origin and if so is that origin installed */ + /* Does the package have an origin; if so is that origin installed? */ if (pkg_get_origin(pkg) != NULL) { pkgs = freebsd_get_installed_match(db, pkg_match_by_origin, @@ -348,12 +346,13 @@ packages_size = sizeof(char *); packages = malloc(packages_size); - if (!packages) { + if (packages == NULL) { closedir(d); return NULL; } packages[0] = NULL; packages_pos = 0; + while((de = readdir(d)) != NULL) { struct pkg *pkg; @@ -375,11 +374,12 @@ packages[packages_pos] = NULL; /* Stop after count packages */ - if (count != 0 && packages_pos == count + 1) + if (count != 0 && packages_pos == (count + 1)) break; - } else + } else { pkg_free(pkg); + } free(dir); } closedir(d); @@ -398,6 +398,7 @@ snprintf(dir, MAXPATHLEN, "%s/var/db/pkg/%s", db->db_base, pkg_name); pkg_remove_extra_slashes(dir); return pkg_new_freebsd_installed(pkg_name, dir); + } /** @@ -433,11 +434,12 @@ deps = pkg_get_reverse_dependencies(real_pkg); /* No dependencies */ - if (deps == NULL) { + if (deps == NULL) return -1; - } + /* We have dependencies to go through.. */ else if (deps[0] != NULL) { + unsigned int pos, buf_size, buf_used; char *buf; @@ -446,6 +448,7 @@ buf = (char*) malloc(buf_size); if (buf == NULL) { + pkg_action(PKG_DB_INFO, "package '%s' is required by other packages and " "may not be deinstalled.\n" @@ -453,6 +456,7 @@ "packages (buffer memory could not be allocated)", pkg_get_name(real_pkg)); return -1; + } /* Load the package names into a buffer */ @@ -476,11 +480,11 @@ "package '%s' is required by these packages and may not be" " deinstalled%s:\n%s", pkg_get_name(real_pkg), - ( force == ? "" : "(but I'll delete it anyway)"), buf); + ( force == 0 ? "" : "(but I'll delete it anyway)"), buf); free(buf); /* Only return when the not being forced to */ - if (force != 0) + if (force == 0) return -1; } @@ -550,19 +554,26 @@ pkg_get_name(real_pkg)); if (deps != NULL) { unsigned int pos; + for (pos = 0; deps[pos] != NULL; pos++) { + struct pkgfile *file; pkg_action(PKG_DB_INFO, "Trying to remove " "dependency on package '%s' with '%s' origin.", pkg_get_name(deps[pos]), pkg_get_origin(deps[pos])); + if (fake == 0) { + file = pkg_get_control_file(deps[pos], "+REQUIRED_BY"); pkgfile_remove_line(file, pkg_get_name(real_pkg)); + } + } + } /* Do the deinstall */ @@ -654,12 +665,8 @@ } pkg_remove_extra_slashes(install_data->directory); - if (strcmp(dir, ".") == 0) { - pkg_action(PKG_DB_PACKAGE, "Change working directory to ."); - } else { - pkg_action(PKG_DB_PACKAGE, "Change working directory to %s", - install_data->directory); - } + pkg_action(PKG_DB_PACKAGE, "Change working directory to %s", + ( strcmp(dir, ".") == 0 ? "." : install_data->directory)); if (install_data->fake == 0) { pkg_dir_build(install_data->directory, 0); @@ -691,7 +698,7 @@ pkgfile_get_name(file)); pkg_action(PKG_DB_PACKAGE, "%s", pkgfile_get_name(file)); - if (!install_data->fake) + if (install_data->fake == 0) return pkgfile_write(file); return 0; } @@ -724,9 +731,10 @@ } else { if (pkgfile_unlink(file) != 0) return -1; - if (install_data->empty_dirs) + if (install_data->empty_dirs != 0) { if (pkg_dir_clean(dirname(pkgfile_get_name(file))) != 0) return -1; + } return 0; } } @@ -753,9 +761,8 @@ install_data->last_file); pkg_action(PKG_DB_PACKAGE, "Execute '%s'", the_cmd); - if (!install_data->fake) { + if (install_data->fake == 0) return pkg_exec(the_cmd); - } return 0; } @@ -794,7 +801,7 @@ pkg_action(PKG_DB_INFO, "Attempting to record package into %s..", real_dir); - if (!install_data->fake) { + if (install_data->fake == 0) { pkg_dir_build(real_dir, 0755); /* @@ -811,8 +818,8 @@ pkg_freebsd_contents_update_prefix(contents, prefix); pkgfile_free(control[pos]); - control[pos] = pkg_freebsd_contents_get_file( - contents); + control[pos] = + pkg_freebsd_contents_get_file(contents); } freebsd_install_file(pkg, pkg_action_null, data, control[pos]); @@ -878,22 +885,21 @@ assert(control[0] != NULL); /* Remove the control files */ for (pos = 0; control[pos] != NULL; pos++) { - if (!install_data->fake) { + if (install_data->fake == 0) pkgfile_unlink(control[pos]); - } } snprintf(db_dir, FILENAME_MAX, "%s" DB_LOCATION "/%s/", install_data->db->db_base, pkg_get_name(pkg)); pkg_remove_extra_slashes(db_dir); dir = pkgfile_new_from_disk(db_dir, 0); + if (dir == NULL) return -1; - if (install_data->fake) { + if (install_data->fake == 1) return 0; - } else { - return pkgfile_unlink(dir); - } + + return pkgfile_unlink(dir); } #ifdef DEAD @@ -906,7 +912,7 @@ int fake) { unsigned int i; - int state; + int new_state, state; assert(db != NULL); assert(contents != NULL); @@ -915,17 +921,18 @@ if (contents->lines[0].line_type != PKG_LINE_COMMENT) { return -1; - } else if (strcmp(contents->lines[0].data, "PKG_FORMAT_REVISION:1.1")) { + } else if (0 != strcmp(contents->lines[0].data, + "PKG_FORMAT_REVISION:1.1")) { return -1; } /* Run through a NFA to check the head */ for (i = 0; i < contents->line_count; i++) { - int new_state = -2; new_state = pkg_states[state][contents->lines[i].line_type]; - if (new_state == -1) { + + if (new_state == -1) break; - } + /* If the current line is @chdir... do it */ if (contents->lines[i].line_type == PKG_LINE_CWD) { if (freebsd_do_cwd(db, NULL, contents->lines[i].data, @@ -935,9 +942,9 @@ } state = new_state; } - if (state != 4 && state != 6) { + if (state != 4 && state != 6) return -1; - } + return i; } #endif From owner-p4-projects@FreeBSD.ORG Thu Nov 29 19:36:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0D1E216A47F; Thu, 29 Nov 2007 19:36: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 9103716A47C for ; Thu, 29 Nov 2007 19:36:24 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 83F6613C468 for ; Thu, 29 Nov 2007 19:36:24 +0000 (UTC) (envelope-from gcooper@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 lATJaOtM097684 for ; Thu, 29 Nov 2007 19:36:24 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATJaOTk097681 for perforce@freebsd.org; Thu, 29 Nov 2007 19:36:24 GMT (envelope-from gcooper@FreeBSD.org) Date: Thu, 29 Nov 2007 19:36:24 GMT Message-Id: <200711291936.lATJaOTk097681@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129786 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: Thu, 29 Nov 2007 19:36:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129786 Change 129786 by gcooper@shiina-ibook on 2007/11/29 19:36:08 Forgot this one in last merge (# 129785). Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_private.h#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_db_private.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ #define __LIBPKG_PKG_DB_PRIVATE_H__ typedef int pkg_db_install_pkg_callback(struct pkg_db *, struct pkg *, - const char *, int, int, int, pkg_db_action *); + const char *, int, int, int, int, pkg_db_action *); typedef int pkg_db_is_installed_callback(struct pkg_db *, struct pkg *); typedef struct pkg *pkg_db_get_package_callback(struct pkg_db *, const char *); From owner-p4-projects@FreeBSD.ORG Thu Nov 29 19:40:29 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6CE8716A46E; Thu, 29 Nov 2007 19:40: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 1E59516A417 for ; Thu, 29 Nov 2007 19:40:29 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0F1BD13C455 for ; Thu, 29 Nov 2007 19:40:29 +0000 (UTC) (envelope-from gcooper@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 lATJeShc097849 for ; Thu, 29 Nov 2007 19:40:28 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATJeSnj097846 for perforce@freebsd.org; Thu, 29 Nov 2007 19:40:28 GMT (envelope-from gcooper@FreeBSD.org) Date: Thu, 29 Nov 2007 19:40:28 GMT Message-Id: <200711291940.lATJeSnj097846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129787 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: Thu, 29 Nov 2007 19:40:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=129787 Change 129787 by gcooper@shiina-ibook on 2007/11/29 19:39:33 Style. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_contents.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_manifest_freebsd.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_files.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_ftp.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_local_freebsd.c#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd_contents.c#2 (text+ko) ==== @@ -171,35 +171,48 @@ } /* Get the correct line type for the line */ - if (!strcmp(cont->lines[pos].line, "@comment")) { + if (strcmp(cont->lines[pos].line, "@comment") == 0) { cont->lines[pos].line_type = PKG_LINE_COMMENT; - } else if (!strcmp(cont->lines[pos].line, "@name")) { + } else if (strcmp(cont->lines[pos].line, "@name") == + 0) { cont->lines[pos].line_type = PKG_LINE_NAME; - } else if (!strcmp(cont->lines[pos].line, "@cwd")) { + } else if (strcmp(cont->lines[pos].line, "@cwd") == + 0) { cont->lines[pos].line_type = PKG_LINE_CWD; - } else if (!strcmp(cont->lines[pos].line, "@pkgdep")) { + } else if (strcmp(cont->lines[pos].line, "@pkgdep") == + 0) { cont->lines[pos].line_type = PKG_LINE_PKGDEP; - } else if (!strcmp(cont->lines[pos].line, "@conflicts")) - { + } else if ( + strcmp(cont->lines[pos].line, "@conflicts") == 0 + ) { cont->lines[pos].line_type = PKG_LINE_CONFLICTS; - } else if (!strcmp(cont->lines[pos].line, "@exec")) { + } else if (strcmp(cont->lines[pos].line, "@exec") == + 0) { cont->lines[pos].line_type = PKG_LINE_EXEC; - } else if (!strcmp(cont->lines[pos].line, "@unexec")) { + } else if (strcmp(cont->lines[pos].line, "@unexec") == + 0) { cont->lines[pos].line_type = PKG_LINE_UNEXEC; - } else if (!strcmp(cont->lines[pos].line, "@dirrm")) { + } else if (strcmp(cont->lines[pos].line, "@dirrm") == + 0) { cont->lines[pos].line_type = PKG_LINE_DIRRM; - } else if (!strcmp(cont->lines[pos].line, "@mtree")) { + } else if (strcmp(cont->lines[pos].line, "@mtree") == + 0) { cont->lines[pos].line_type = PKG_LINE_MTREE; - } else if (!strcmp(cont->lines[pos].line, "@display")) { + } else if (strcmp(cont->lines[pos].line, "@display") == + 0) { cont->lines[pos].line_type = PKG_LINE_DISPLAY; } else { cont->lines[pos].line_type = PKG_LINE_UNKNOWN; fprintf(stderr, "Unknown line type %s\n", cont->lines[pos].line); } + } + } + return cont; + } /** @@ -209,7 +222,7 @@ pkg_freebsd_contents_add_line(struct pkg_freebsd_contents *contents, int type, const char *data) { - if (!contents || !data) + if (contents == NULL || data == NULL) return -1; if (!(type > 0 && type <= PKG_LINE_FILE)) { @@ -307,7 +320,7 @@ } data = pkgfile_get_data(file); - if (!data) + if (data == NULL) return -1; MD5Data(data, pkgfile_get_size(file), md5); snprintf(tmp, 37, "MD5:%s", md5); @@ -406,14 +419,13 @@ int pkg_freebsd_contents_free(struct pkg_freebsd_contents *contents) { - if (!contents) { + if (contents == NULL) return -1; - } - if (contents->file) + if (contents->file != NULL) free(contents->file); - if (contents->lines) + if (contents->lines != NULL) free(contents->lines); free(contents); ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_manifest_freebsd.c#2 (text+ko) ==== @@ -108,7 +108,7 @@ manifest->attrs[pkgm_prefix]); } - /* Add the package's dependency's */ + /* Add the package's dependencies */ STAILQ_FOREACH(dep, &manifest->deps, list) { pkgfile_append_string(manifest->file, "@pkgdep %s\n", pkg_get_name(dep->pkg)); ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo.c#2 (text+ko) ==== @@ -50,9 +50,8 @@ struct pkg_repo *repo; repo = malloc(sizeof(struct pkg_repo)); - if (!repo) { + if (repo == NULL) return NULL; - } repo->pkg_get = pkg_get; repo->pkg_free = pkg_free; @@ -80,13 +79,13 @@ pkg_repo_get_pkg(struct pkg_repo *repo, const char *pkg_name) { if (repo == NULL) - return NULL; + return NULL; if (pkg_name == NULL) - return NULL; + return NULL; if (repo->pkg_get == NULL) - return NULL; + return NULL; return repo->pkg_get(repo, pkg_name); } @@ -98,11 +97,11 @@ int pkg_repo_free(struct pkg_repo *repo) { - if (!repo) - return -1; + if (repo == NULL) + return -1; - if (repo->pkg_free) - repo->pkg_free(repo); + if (repo->pkg_free != NULL) + repo->pkg_free(repo); free(repo); @@ -111,4 +110,4 @@ /** * @} - */+ */ ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_files.c#2 (text+ko) ==== @@ -68,7 +68,7 @@ /** * @brief Callback for pkg_repo_get_pkg() - * @param repo The repo creates with pkg_repo_new_files() + * @param repo The repo created with pkg_repo_new_files(..) * @param pkg_name The file to create a package from * @return A pkg object or NULL */ @@ -83,14 +83,13 @@ /* Open the package file */ fd = fopen(pkg_name, "r"); - if (!fd) { + if (fd == NULL) return NULL; - } /* Create the package */ /* XXX auto detect package type */ pkg = pkg_new_freebsd_from_file(fd); - if (!pkg) { + if (pkg == NULL) { fclose(fd); return NULL; } ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_ftp.c#2 (text+ko) ==== @@ -119,11 +119,11 @@ struct pkg_repo *repo; repo = pkg_repo_new(ftp_get_pkg, ftp_free); - if (!repo) + if (repo == NULL) return NULL; repo->data = ftp_create_repo(site, path, cache_dir); - if (!repo->data) { + if (repo->data == NULL) { ftp_free(repo); return NULL; } @@ -172,7 +172,7 @@ fd = pkg_cached_file(fd2, cache_file); } pkg = pkg_new_freebsd_from_file(fd); - if (!pkg) { + if (pkg == NULL) { fclose(fd); return NULL; } @@ -194,7 +194,7 @@ f_repo = repo->data; /* If there is no repo we don't need to free it */ - if (!f_repo) + if (f_repo == NULL) return 0; if (f_repo->site) @@ -251,9 +251,8 @@ asprintf(&ftpname, "%s/%s/%s/%s%s", f_repo->site, f_repo->path, subdir, pkg_name, ext); - if (!ftpname) { + if (ftpname == NULL) return NULL; - } fd = fetchGetURL(ftpname, "p"); @@ -262,7 +261,7 @@ free(ftpname); asprintf(&ftpname, "%s/%s/%s/%s%s", f_repo->site, f_repo->path, fallback_subdir, pkg_name, ext); - if (!ftpname) { + if (ftpname == NULL) { return NULL; } fd = fetchGetURL(ftpname, "p"); @@ -288,23 +287,21 @@ struct ftp_repo *f_repo; f_repo = malloc(sizeof(struct ftp_repo)); - if (!f_repo) { + if (f_repo == NULL) return NULL; - } /* Figure out the site */ - if (!site) + if (site == NULL) f_repo->site = strdup("ftp://ftp.freebsd.org"); else f_repo->site = strdup(site); - if (!f_repo->site) { + if (f_repo->site == NULL) return NULL; - } /* Figure out the path */ f_repo->path = NULL; - if (!path) { + if (path == NULL) { struct utsname u; int i, reldate; @@ -337,9 +334,8 @@ f_repo->path = strdup(path); } - if (!f_repo->path) { + if (f_repo->path == NULL) return NULL; - } f_repo->cache = 0; if (cache_dir != NULL) { ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_repo_local_freebsd.c#2 (text+ko) ==== @@ -88,24 +88,24 @@ /* XXX Check the file is a package file after every attempt to open it */ snprintf(dir, MAXPATHLEN + 1,"%s.tbz", pkg_name); fd = fopen(dir, "r"); - if (!fd) { + if (fd == NULL) { snprintf(dir, MAXPATHLEN + 1, "/usr/ports/packages/All/%s.tbz", pkg_name); fd = fopen(dir, "r"); } - if (!fd) { + if (fd == NULL) { fd = fopen(pkg_name, "r"); } - if (!fd) { + if (fd == NULL) { snprintf(dir, MAXPATHLEN + 1, "/usr/ports/packages/All/%s", pkg_name); fd = fopen(dir, "r"); } - if (!fd) + if (fd == NULL) return NULL; pkg = pkg_new_freebsd_from_file(fd); - if (!pkg) { + if (pkg == NULL) { fclose(fd); return NULL; } From owner-p4-projects@FreeBSD.ORG Thu Nov 29 19:42:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A991F16A47B; Thu, 29 Nov 2007 19:42: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 1815016A474 for ; Thu, 29 Nov 2007 19:42:32 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 07EB413C468 for ; Thu, 29 Nov 2007 19:42:32 +0000 (UTC) (envelope-from gcooper@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 lATJgVWi097965 for ; Thu, 29 Nov 2007 19:42:31 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATJgVBi097962 for perforce@freebsd.org; Thu, 29 Nov 2007 19:42:31 GMT (envelope-from gcooper@FreeBSD.org) Date: Thu, 29 Nov 2007 19:42:31 GMT Message-Id: <200711291942.lATJgVBi097962@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Cc: Subject: PERFORCE change 129789 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: Thu, 29 Nov 2007 19:42:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=129789 Change 129789 by gcooper@shiina-ibook on 2007/11/29 19:42:08 Still not sure how far the sandbox will encompass the rest of the operations, but in the event that the sandbox is a necessary component for all operations, add the option of creating or not creating the physical sandbox.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.c#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.h#2 edit .. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox_private.h#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.c#2 (text+ko) ==== @@ -35,6 +35,7 @@ struct pkg_sandbox * pkg_sandbox_new(struct pkg *package, const char *pkg_prefix, + int create_sandbox, pkg_sandbox_purge_sandbox_callback *purge, pkg_sandbox_destroy_sandbox_callback *destroy, pkg_sandbox_set_stage_callback *set_stage, @@ -75,8 +76,13 @@ strcat(sandbox->workdir, "/"); strcat(sandbox->workdir, package->pkg_name); - if (0 != flock(sandbox->work_dir, LOCK_UN)) - return PKG_SANDBOX_UNLOCK_FAIL; + if (create_sandbox != 0) { + + if (0 != flock(sandbox->work_dir, LOCK_UN)) + return PKG_SANDBOX_UNLOCK_FAIL; + + } + sandbox->real_file = create_sandbox; return sandbox; ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox.h#2 (text+ko) ==== @@ -52,7 +52,7 @@ struct pkg_sandbox; -struct pkg_sandbox* pkg_sandbox_new(package *, const char *, +struct pkg_sandbox* pkg_sandbox_new(package *, const char *, int, pkg_sandbox_purge_sandbox_callback *, pkg_sandbox_destroy_sandbox_callback *, pkg_sandbox_set_stage_callback *, ==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_sandbox_private.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ typedef int pkg_sandbox_set_stage_callback(struct pkg_sandbox*, int); typedef int pkg_sandbox_free_sandbox_callback(struct pkg_sandbox *); -struct pkg_sandbox* pkg_sandbox_new(package *, const char *, +struct pkg_sandbox* pkg_sandbox_new(package *, const char *, int, pkg_sandbox_purge_sandbox_callback *, pkg_sandbox_destroy_sandbox_callback *, pkg_sandbox_set_stage_callback *, From owner-p4-projects@FreeBSD.ORG Thu Nov 29 23:32:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 141D416A469; Thu, 29 Nov 2007 23:32:41 +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 BC88116A41A for ; Thu, 29 Nov 2007 23:32:40 +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 A406613C461 for ; Thu, 29 Nov 2007 23:32:40 +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 lATNWenU053414 for ; Thu, 29 Nov 2007 23:32:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lATNWe1G053411 for perforce@freebsd.org; Thu, 29 Nov 2007 23:32:40 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 29 Nov 2007 23:32:40 GMT Message-Id: <200711292332.lATNWe1G053411@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 129799 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: Thu, 29 Nov 2007 23:32:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=129799 Change 129799 by hselasky@hselasky_laptop001 on 2007/11/29 23:32:21 This commit shifts the USB stack towards allocating DMA control structures in smaller pieces. This is required to avoid syncing large chucks of memory at a time when only a small piece of memory is required to be synced. This commit implement most changes needed for the EHCI driver. OHCI and UHCI will follow. Due to the design of the BUS-DMA system, it is not possible to allocate one big memory block and then just sync parts of it. I have created an new function "ehci_iterate_hw_softc" that will iterate accross all the DMA structures, which simplifies setup, flushing and unsetup. Also I have cleaned up the flushing and invalidating of memory in the EHCI driver. I have discovered that there is shared data stored in the BUS-DMA tags (the segment list for example), and that I need separate tags for each bulk of USB transfers I setup, to allow parallell loading of DMA buffers. Also I need so serialize loading of DMA buffers within each bulk of USB transfer that are setup. Until I am finished working on the DMA stuff in the USB stack, the P4 USB project will not be compilable. Sorry for the inconvenience. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#52 edit .. //depot/projects/usb/src/sys/dev/usb/ehci.h#22 edit .. //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#26 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#52 (text+ko) ==== @@ -113,10 +113,6 @@ static usbd_std_root_transfer_func_t ehci_root_intr_done; static usbd_std_root_transfer_func_t ehci_root_ctrl_task_td_sub; -#define SC_HW_PHYSADDR(sc,what) \ - ((sc)->sc_hw_page.physaddr + \ - POINTER_TO_UNSIGNED(&(((struct ehci_hw_softc *)0)->what))) - struct ehci_std_temp { struct usbd_page_cache *pc; ehci_qtd_t *td; @@ -130,12 +126,73 @@ uint8_t setup_alt_next; }; +void +ehci_iterate_hw_softc(ehci_softc_t *sc, ehci_iterate_cb_t *cb) +{ + uint32_t i; + + cb(sc, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg), + sizeof(uint32_t) * EHCI_FRAMELIST_COUNT, EHCI_FRAMELIST_ALIGN); + + cb(sc, &(sc->sc_hw.async_start_pc), &(sc->sc_hw.async_start_pg), + sizeof(ehci_qh_t), EHCI_QH_ALIGN); + + for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { + cb(sc, sc->sc_hw.intr_start_pc + i, + sc->sc_hw.intr_start_pg + i, + sizeof(ehci_qh_t), EHCI_QH_ALIGN); + } + + for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { + cb(sc, sc->sc_hw.isoc_hs_start_pc + i, + sc->sc_hw.isoc_hs_start_pg + i, + sizeof(ehci_itd_t), EHCI_ITD_ALIGN); + } + + for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { + cb(sc, sc->sc_hw.isoc_fs_start_pc + i, + sc->sc_hw.isoc_fs_start_pg + i, + sizeof(ehci_sitd_t), EHCI_SITD_ALIGN); + } + return; +} + +void +ehci_flush_all(ehci_softc_t *sc, struct usbd_page_cache *pc, + struct usbd_page *pg, uint32_t size, uint32_t align) +{ + usbd_pc_cpu_flush(pc); + return; +} + +void +ehci_alloc_all(ehci_softc_t *sc, struct usbd_page_cache *pc, + struct usbd_page *pg, uint32_t size, uint32_t align) +{ + if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent, + sc->sc_bus.dma_tag, pc, pg, size, align)) { + sc->sc_alloc_failed = 1; + } + return; +} + +void +ehci_free_all(ehci_softc_t *sc, struct usbd_page_cache *pc, + struct usbd_page *pg, uint32_t size, uint32_t align) +{ + usbd_dma_free_mem(pc); + return; +} + usbd_status ehci_init(ehci_softc_t *sc) { - struct ehci_hw_softc *hw_ptr; - uint32_t version, sparams, cparams, hcr; - u_int i; + struct usbd_page_search buf_res; + uint32_t version; + uint32_t sparams; + uint32_t cparams; + uint32_t hcr; + uint16_t i; uint16_t x; uint16_t y; uint16_t bit; @@ -143,8 +200,6 @@ mtx_lock(&sc->sc_bus.mtx); - hw_ptr = sc->sc_hw_ptr; - DPRINTF(("start\n")); LIST_INIT(&sc->sc_interrupt_list_head); @@ -211,30 +266,37 @@ sc->sc_eintrs = EHCI_NORMAL_INTRS; - usbd_page_cpu_invalidate(&(sc->sc_hw_page)); + for (i = 0; i < EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { + ehci_qh_t *qh; + + usbd_get_page(sc->sc_hw.intr_start_pc + i, 0, &buf_res); + + qh = buf_res.buffer; + + /* initialize page cache pointer */ + + qh->page_cache = sc->sc_hw.intr_start_pc + i; + + /* store a pointer to queue head */ + + sc->sc_intr_p_last[i] = qh; - for (i = 0; i < EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { - hw_ptr->intr_start[i].qh_self = - htole32(SC_HW_PHYSADDR(sc, intr_start[i]) | EHCI_LINK_QH); + qh->qh_self = + htole32(buf_res.physaddr) | + htole32(EHCI_LINK_QH); - hw_ptr->intr_start[i].qh_endp = + qh->qh_endp = htole32(EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH)); - hw_ptr->intr_start[i].qh_endphub = + qh->qh_endphub = htole32(EHCI_QH_SET_MULT(1)); - hw_ptr->intr_start[i].qh_curqtd = 0; + qh->qh_curqtd = 0; - hw_ptr->intr_start[i].qh_qtd.qtd_next = + qh->qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE); - hw_ptr->intr_start[i].qh_qtd.qtd_altnext = + qh->qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE); - hw_ptr->intr_start[i].qh_qtd.qtd_status = + qh->qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED); - - hw_ptr->intr_start[i].page = - &(sc->sc_hw_page); - - sc->sc_intr_p_last[i] = - &(hw_ptr->intr_start[i]); } /* @@ -245,103 +307,149 @@ while (bit) { x = bit; while (x & bit) { + ehci_qh_t *qh_x; + ehci_qh_t *qh_y; + y = (x ^ bit) | (bit / 2); + qh_x = sc->sc_intr_p_last[x]; + qh_y = sc->sc_intr_p_last[y]; + /* * the next QH has half the poll interval */ - hw_ptr->intr_start[x].qh_link = - hw_ptr->intr_start[y].qh_self; + qh_x->qh_link = qh_y->qh_self; + x++; } bit >>= 1; } - /* the last (1ms) QH terminates */ - hw_ptr->intr_start[0].qh_link = htole32(EHCI_LINK_TERMINATE); + if (1) { + ehci_qh_t *qh; + + qh = sc->sc_intr_p_last[0]; + /* the last (1ms) QH terminates */ + qh->qh_link = htole32(EHCI_LINK_TERMINATE); + } for (i = 0; i < EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { + ehci_sitd_t *sitd; + ehci_itd_t *itd; + + usbd_get_page(sc->sc_hw.isoc_fs_start_pc + i, 0, &buf_res); + + sitd = buf_res.buffer; + + /* initialize page cache pointer */ + + sitd->page_cache = sc->sc_hw.isoc_fs_start_pc + i; + + /* store a pointer to the transfer descriptor */ + + sc->sc_isoc_fs_p_last[i] = sitd; + /* initialize full speed isochronous */ - hw_ptr->isoc_fs_start[i].sitd_self = - htole32(SC_HW_PHYSADDR(sc, isoc_fs_start[i]) | EHCI_LINK_SITD); + sitd->sitd_self = + htole32(buf_res.physaddr) | + htole32(EHCI_LINK_SITD); - hw_ptr->isoc_fs_start[i].sitd_back = + sitd->sitd_back = htole32(EHCI_LINK_TERMINATE); - hw_ptr->isoc_fs_start[i].sitd_next = - hw_ptr->intr_start[i | (EHCI_VIRTUAL_FRAMELIST_COUNT / 2)].qh_self; + sitd->sitd_next = + sc->sc_intr_p_last[i | (EHCI_VIRTUAL_FRAMELIST_COUNT / 2)]->qh_self; + + + usbd_get_page(sc->sc_hw.isoc_hs_start_pc + i, 0, &buf_res); + + itd = buf_res.buffer; + + /* initialize page cache pointer */ - hw_ptr->isoc_fs_start[i].page = - &(sc->sc_hw_page); + itd->page_cache = sc->sc_hw.isoc_hs_start_pc + i; - sc->sc_isoc_fs_p_last[i] = - &(hw_ptr->isoc_fs_start[i]); + /* store a pointer to the transfer descriptor */ + sc->sc_isoc_hs_p_last[i] = itd; /* initialize high speed isochronous */ - hw_ptr->isoc_hs_start[i].itd_self = - htole32(SC_HW_PHYSADDR(sc, isoc_hs_start[i]) | EHCI_LINK_ITD); + itd->itd_self = + htole32(buf_res.physaddr) | + htole32(EHCI_LINK_ITD); + + itd->itd_next = + sitd->sitd_self; + } + + usbd_get_page(&(sc->sc_hw.pframes_pc), 0, &buf_res); - hw_ptr->isoc_hs_start[i].itd_next = - hw_ptr->isoc_fs_start[i].sitd_self; + if (1) { + uint32_t *pframes; - hw_ptr->isoc_hs_start[i].page = - &(sc->sc_hw_page); + pframes = buf_res.buffer; - sc->sc_isoc_hs_p_last[i] = - &(hw_ptr->isoc_hs_start[i]); + /* + * execution order: + * pframes -> high speed isochronous -> + * full speed isochronous -> interrupt QH's + */ + for (i = 0; i < EHCI_FRAMELIST_COUNT; i++) { + pframes[i] = sc->sc_isoc_hs_p_last + [i & (EHCI_VIRTUAL_FRAMELIST_COUNT - 1)]->itd_self; + } } + /* setup sync list pointer */ + EOWRITE4(sc, EHCI_PERIODICLISTBASE, buf_res.physaddr); + + usbd_get_page(&(sc->sc_hw.async_start_pc), 0, &buf_res); + + if (1) { + + ehci_qh_t *qh; - /* - * execution order: - * pframes -> high speed isochronous -> - * full speed isochronous -> interrupt QH's - */ - for (i = 0; i < EHCI_FRAMELIST_COUNT; i++) { - hw_ptr->pframes[i] = hw_ptr->isoc_hs_start - [i & (EHCI_VIRTUAL_FRAMELIST_COUNT - 1)].itd_self; - } + qh = buf_res.buffer; - /* setup sync list pointer */ - EOWRITE4(sc, EHCI_PERIODICLISTBASE, SC_HW_PHYSADDR(sc, pframes[0])); + /* initialize page cache pointer */ + qh->page_cache = &(sc->sc_hw.async_start_pc); - /* init dummy QH that starts the async list */ + /* store a pointer to the queue head */ - hw_ptr->async_start.qh_self = - htole32(SC_HW_PHYSADDR(sc, async_start) | EHCI_LINK_QH); + sc->sc_async_p_last = qh; - /* fill the QH */ - hw_ptr->async_start.qh_endp = - htole32(EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH) | EHCI_QH_HRECL); - hw_ptr->async_start.qh_endphub = htole32(EHCI_QH_SET_MULT(1)); - hw_ptr->async_start.qh_link = hw_ptr->async_start.qh_self; - hw_ptr->async_start.qh_curqtd = 0; + /* init dummy QH that starts the async list */ - /* fill the overlay qTD */ - hw_ptr->async_start.qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE); - hw_ptr->async_start.qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE); - hw_ptr->async_start.qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED); + qh->qh_self = + htole32(buf_res.physaddr) | + htole32(EHCI_LINK_QH); - /* fill the page pointer */ - hw_ptr->async_start.page = - &(sc->sc_hw_page); + /* fill the QH */ + qh->qh_endp = + htole32(EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH) | EHCI_QH_HRECL); + qh->qh_endphub = htole32(EHCI_QH_SET_MULT(1)); + qh->qh_link = qh->qh_self; + qh->qh_curqtd = 0; - sc->sc_async_p_last = - &(hw_ptr->async_start); + /* fill the overlay qTD */ + qh->qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE); + qh->qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE); + qh->qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED); + } + /* flush all cache into memory */ - usbd_page_cpu_flush(&(sc->sc_hw_page)); + ehci_iterate_hw_softc(sc, &ehci_flush_all); #ifdef USB_DEBUG if (ehcidebug) { - ehci_dump_sqh(&(hw_ptr->async_start)); + ehci_dump_sqh(sc->sc_async_p_last); } #endif /* setup async list pointer */ - EOWRITE4(sc, EHCI_ASYNCLISTADDR, SC_HW_PHYSADDR(sc, async_start) | EHCI_LINK_QH); + EOWRITE4(sc, EHCI_ASYNCLISTADDR, buf_res.physaddr | EHCI_LINK_QH); /* enable interrupts */ @@ -461,6 +569,7 @@ void ehci_resume(struct ehci_softc *sc) { + struct usbd_page_search buf_res; uint32_t cmd; uint32_t hcr; uint8_t i; @@ -469,8 +578,12 @@ /* restore things in case the bios doesn't */ EOWRITE4(sc, EHCI_CTRLDSSEGMENT, 0); - EOWRITE4(sc, EHCI_PERIODICLISTBASE, SC_HW_PHYSADDR(sc, pframes[0])); - EOWRITE4(sc, EHCI_ASYNCLISTADDR, SC_HW_PHYSADDR(sc, async_start) | EHCI_LINK_QH); + + usbd_get_page(&(sc->sc_hw.pframes_pc), 0, &buf_res); + EOWRITE4(sc, EHCI_PERIODICLISTBASE, buf_res.physaddr); + + usbd_get_page(&(sc->sc_hw.async_start_pc), 0, &buf_res); + EOWRITE4(sc, EHCI_ASYNCLISTADDR, buf_res.physaddr | EHCI_LINK_QH); EOWRITE4(sc, EHCI_USBINTR, sc->sc_eintrs); @@ -684,11 +797,10 @@ { uint8_t temp; - usbd_page_cpu_invalidate(sqtd->page); + usbd_pc_cpu_invalidate(sqtd->page_cache); printf("QTD(%p) at 0x%08x:\n", sqtd, le32toh(sqtd->qtd_self)); ehci_dump_qtd(sqtd); temp = (sqtd->qtd_next & htole32(EHCI_LINK_TERMINATE)) ? 1 : 0; - usbd_page_cpu_flush(sqtd->page); return (temp); } @@ -713,7 +825,7 @@ { uint32_t endp, endphub; - usbd_page_cpu_invalidate(qh->page); + usbd_pc_cpu_invalidate(qh->page_cache); printf("QH(%p) at 0x%08x:\n", qh, le32toh(qh->qh_self) & ~0x1F); printf(" link="); ehci_dump_link(qh->qh_link, 1); @@ -738,14 +850,13 @@ printf("\n"); printf("Overlay qTD:\n"); ehci_dump_qtd((void *)&qh->qh_qtd); - usbd_page_cpu_flush(qh->page); return; } static void ehci_dump_sitd(ehci_sitd_t *sitd) { - usbd_page_cpu_invalidate(sitd->page); + usbd_pc_cpu_invalidate(sitd->page_cache); printf("SITD(%p) at 0x%08x\n", sitd, le32toh(sitd->sitd_self) & ~0x1F); printf(" next=0x%08x\n", le32toh(sitd->sitd_next)); printf(" portaddr=0x%08x dir=%s addr=%d endpt=0x%x port=0x%x huba=0x%x\n", @@ -766,14 +877,13 @@ le32toh(sitd->sitd_bp[1]), le32toh(sitd->sitd_bp_hi[0]), le32toh(sitd->sitd_bp_hi[1])); - usbd_page_cpu_flush(sitd->page); return; } static void ehci_dump_itd(ehci_itd_t *itd) { - usbd_page_cpu_invalidate(itd->page); + usbd_pc_cpu_invalidate(itd->page_cache); printf("ITD(%p) at 0x%08x\n", itd, le32toh(itd->itd_self) & ~0x1F); printf(" next=0x%08x\n", le32toh(itd->itd_next)); printf(" status[0]=0x%08x; <%s>\n", le32toh(itd->itd_status[0]), @@ -815,7 +925,6 @@ le32toh(itd->itd_bp_hi[4]), le32toh(itd->itd_bp_hi[5]), le32toh(itd->itd_bp_hi[6])); - usbd_page_cpu_flush(itd->page); return; } @@ -858,15 +967,12 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_cpu_invalidate(std->page); - std->next = last->next; std->sitd_next = last->sitd_next; std->prev = last; - usbd_page_cpu_flush(std->page); - usbd_page_cpu_invalidate(last->page); + usbd_pc_cpu_flush(std->page_cache); /* * the last->next->prev is never followed: std->next->prev = std; @@ -874,7 +980,7 @@ last->next = std; last->sitd_next = std->sitd_self; - usbd_page_cpu_flush(last->page); + usbd_pc_cpu_flush(last->page_cache); return (std); } @@ -887,15 +993,12 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_cpu_invalidate(std->page); - std->next = last->next; std->itd_next = last->itd_next; std->prev = last; - usbd_page_cpu_flush(std->page); - usbd_page_cpu_invalidate(last->page); + usbd_pc_cpu_flush(std->page_cache); /* * the last->next->prev is never followed: std->next->prev = std; @@ -903,7 +1006,7 @@ last->next = std; last->itd_next = std->itd_self; - usbd_page_cpu_flush(last->page); + usbd_pc_cpu_flush(last->page_cache); return (std); } @@ -916,15 +1019,12 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_cpu_invalidate(sqh->page); - sqh->next = last->next; sqh->qh_link = last->qh_link; sqh->prev = last; - usbd_page_cpu_flush(sqh->page); - usbd_page_cpu_invalidate(last->page); + usbd_pc_cpu_flush(sqh->page_cache); /* * the last->next->prev is never followed: sqh->next->prev = sqh; @@ -933,7 +1033,7 @@ last->next = sqh; last->qh_link = sqh->qh_self; - usbd_page_cpu_flush(last->page); + usbd_pc_cpu_flush(last->page_cache); #ifdef USB_DEBUG if (ehcidebug > 5) { @@ -952,17 +1052,14 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_cpu_invalidate(std->prev->page); - std->prev->next = std->next; std->prev->sitd_next = std->sitd_next; - usbd_page_cpu_flush(std->prev->page); + usbd_pc_cpu_flush(std->prev->page_cache); if (std->next) { - usbd_page_cpu_invalidate(std->next->page); std->next->prev = std->prev; - usbd_page_cpu_flush(std->next->page); + usbd_pc_cpu_flush(std->next->page_cache); } return ((last == std) ? std->prev : last); } @@ -975,17 +1072,14 @@ /* (sc->sc_bus.mtx) must be locked */ - usbd_page_cpu_invalidate(std->prev->page); - std->prev->next = std->next; std->prev->itd_next = std->itd_next; - usbd_page_cpu_flush(std->prev->page); + usbd_pc_cpu_flush(std->prev->page_cache); if (std->next) { - usbd_page_cpu_invalidate(std->next->page); std->next->prev = std->prev; - usbd_page_cpu_flush(std->next->page); + usbd_pc_cpu_flush(std->next->page_cache); } return ((last == std) ? std->prev : last); } @@ -1000,20 +1094,16 @@ /* only remove if not removed from a queue */ if (sqh->prev) { - usbd_page_cpu_invalidate(sqh->prev->page); sqh->prev->next = sqh->next; sqh->prev->qh_link = sqh->qh_link; - usbd_page_cpu_flush(sqh->prev->page); + usbd_pc_cpu_flush(sqh->prev->page_cache); if (sqh->next) { - usbd_page_cpu_invalidate(sqh->next->page); sqh->next->prev = sqh->prev; - usbd_page_cpu_flush(sqh->next->page); + usbd_pc_cpu_flush(sqh->next->page_cache); } - usbd_page_cpu_invalidate(sqh->page); - /* * set the Terminate-bit in the e_next of the QH, in case * the transferred packet was short so that the QH still @@ -1022,7 +1112,7 @@ sqh->qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE); - usbd_page_cpu_flush(sqh->page); + usbd_pc_cpu_flush(sqh->page_cache); last = ((last == sqh) ? sqh->prev : last); @@ -1044,9 +1134,8 @@ while (1) { - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = le32toh(td->qtd_status); - usbd_page_cpu_flush(td->page); len = EHCI_QTD_GET_BYTES(status); @@ -1211,12 +1300,10 @@ /* isochronous full speed transfer */ - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = le32toh(td->sitd_status); - usbd_page_cpu_flush(td->page); - if (!(status & EHCI_SITD_ACTIVE)) { ehci_device_done(xfer, USBD_NORMAL_COMPLETION); goto transferred; @@ -1226,7 +1313,7 @@ /* isochronous high speed transfer */ - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = ((!(td->itd_status[0] & htole32(EHCI_ITD_ACTIVE))) && (!(td->itd_status[1] & htole32(EHCI_ITD_ACTIVE))) && @@ -1237,8 +1324,6 @@ (!(td->itd_status[6] & htole32(EHCI_ITD_ACTIVE))) && (!(td->itd_status[7] & htole32(EHCI_ITD_ACTIVE)))); - usbd_page_cpu_flush(td->page); - if (status) { ehci_device_done(xfer, USBD_NORMAL_COMPLETION); goto transferred; @@ -1255,9 +1340,8 @@ td = xfer->td_transfer_cache; while (1) { - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = le32toh(td->qtd_status); - usbd_page_cpu_flush(td->page); /* * if there is an active TD the transfer isn't done @@ -1598,8 +1682,6 @@ continue; } - usbd_page_cpu_invalidate(td->page); - /* fill out current TD */ td->qtd_status = @@ -1678,7 +1760,7 @@ td->qtd_altnext = qtd_altnext; td->alt_next = td_alt_next; - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); } if (precompute) { @@ -1838,14 +1920,12 @@ } td = temp.td; - usbd_page_cpu_invalidate(td->page); - /* the last TD terminates the transfer: */ td->qtd_next = htole32(EHCI_LINK_TERMINATE); td->qtd_altnext = htole32(EHCI_LINK_TERMINATE); td->qtd_status |= htole32(EHCI_QTD_IOC); - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); /* must have at least one frame! */ @@ -1863,8 +1943,6 @@ qh = xfer->qh_start; - usbd_page_cpu_invalidate(qh->page); - /* the "qh_link" field is filled when the QH is added */ qh_endp = @@ -1925,7 +2003,7 @@ qh->qh_qtd.qtd_next = td->qtd_self; qh->qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE); - usbd_page_cpu_flush(qh->page); + usbd_pc_cpu_flush(qh->page_cache); EHCI_APPEND_QH(qh, *qh_last); return; @@ -1999,9 +2077,8 @@ ehci_dump_sitd(td); } #endif - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = le32toh(td->sitd_status); - usbd_page_cpu_flush(td->page); /* check for active transfers */ if (status & EHCI_SITD_ACTIVE) { @@ -2060,9 +2137,8 @@ } #endif - usbd_page_cpu_invalidate(td->page); + usbd_pc_cpu_invalidate(td->page_cache); status = le32toh(td->itd_status[td_no]); - usbd_page_cpu_flush(td->page); if (status & EHCI_ITD_ACTIVE) { need_delay = 1; @@ -2453,7 +2529,6 @@ /* initialize all TD's */ for (td = xfer->td_start; td; td = td->obj_next) { - usbd_page_cpu_invalidate(td->page); td->sitd_portaddr = sitd_portaddr; @@ -2465,7 +2540,7 @@ */ td->sitd_back = htole32(EHCI_LINK_TERMINATE); - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); } return; } @@ -2548,7 +2623,7 @@ nframes = xfer->nframes; buf_offset = 0; - usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res); plen = xfer->frlengths; @@ -2593,12 +2668,10 @@ */ sa = usbd_fs_isoc_schedule_alloc(fss, *plen); - usbd_page_cpu_invalidate(td->page); - td->sitd_bp[0] = htole32(buf_res.physaddr); buf_offset += *plen; - usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res); temp = buf_res.physaddr & (~0xFFF); @@ -2647,7 +2720,7 @@ (EHCI_SITD_ACTIVE | EHCI_SITD_SET_LEN(*plen)); } - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); #ifdef USB_DEBUG if (ehcidebug > 15) { @@ -2712,7 +2785,6 @@ /* initialize all TD's */ for (td = xfer->td_start; td; td = td->obj_next) { - usbd_page_cpu_invalidate(td->page); /* set TD inactive */ td->itd_status[0] = 0; @@ -2741,7 +2813,7 @@ /* set transfer multiplier */ td->itd_bp[2] = htole32(xfer->max_packet_count & 3); - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); } return; } @@ -2819,7 +2891,7 @@ nframes = xfer->nframes; buf_offset = 0; - usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res); page_addr = buf_res.physaddr & ~0xFFF; page_no = 0; @@ -2856,7 +2928,6 @@ *plen = xfer->max_frame_size; } if (td_no == 0) { - usbd_page_cpu_invalidate(td->page); /* update page address */ td->itd_bp[page_no] &= htole32(0xFFF); @@ -2894,7 +2965,7 @@ } buf_offset += *plen; - usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res); if ((buf_res.physaddr ^ page_addr) & ~0xFFF) { /* new page needed */ @@ -2928,7 +2999,7 @@ td_no++; if ((td_no == 8) || (nframes == 0)) { - usbd_page_cpu_flush(td->page); + usbd_pc_cpu_flush(td->page_cache); #ifdef USB_DEBUG if (ehcidebug > 15) { DPRINTFN(15, ("HS-TD %d\n", nframes)); @@ -3590,6 +3661,26 @@ .start = ehci_root_intr_start, }; +static uint8_t +ehci_dma_alloc_mem(struct usbd_setup_params *parm, uint32_t size, + uint32_t align, struct usbd_page_search *info) +{ + ehci_softc_t *sc; + + sc = EHCI_BUS2SC(parm->udev->bus); + + /* FIXME sc->sc_bus.dma_tag to xfer->dma_tags */ + + if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent, + sc->sc_bus.dma_tag, parm->dma_page_cache_ptr, + parm->dma_page_ptr, size, align)) { + return (1); /* failure */ + } + usbd_get_page(parm->dma_page_cache_ptr, 0, info); + + return (0); +} + static void ehci_xfer_setup(struct usbd_setup_params *parm) { @@ -3625,8 +3716,16 @@ * The proof for the "nqtd" formula is illustrated like * this: * - * | remainder +-----+---+ frm 0 | xxx | x | +-----+---++ frm 1 - * | xxx | xx | +-----+----+ ... | + * +------------------------------------+ + * | | + * | |remainder -> | + * | +-----+---+ | + * | | xxx | x | frm 0 | + * | +-----+---++ | + * | | xxx | xx | frm 1 | + * | +-----+----+ | + * | ... | + * +------------------------------------+ * * "xxx" means a completely full USB transfer descriptor * @@ -3652,6 +3751,8 @@ nqtd = ((2 * xfer->nframes) + 1 /* STATUS */ + (xfer->max_data_length / xfer->max_usb_frame_size)); + xfer->flags_int.bdma_enable = 1; + } else if (parm->methods == &ehci_device_bulk_methods) { parm->hc_max_packet_size = 0x400; @@ -3664,6 +3765,8 @@ nqtd = ((2 * xfer->nframes) + (xfer->max_data_length / xfer->max_usb_frame_size)); + xfer->flags_int.bdma_enable = 1; + } else if (parm->methods == &ehci_device_intr_methods) { if (parm->speed == USB_SPEED_HIGH) { @@ -3685,6 +3788,8 @@ nqtd = ((2 * xfer->nframes) + (xfer->max_data_length / xfer->max_usb_frame_size)); + xfer->flags_int.bdma_enable = 1; + } else if (parm->methods == &ehci_device_isoc_fs_methods) { parm->hc_max_packet_size = 0x3FF; @@ -3695,6 +3800,8 @@ nsitd = xfer->nframes; + xfer->flags_int.bdma_enable = 1; + } else if (parm->methods == &ehci_device_isoc_hs_methods) { parm->hc_max_packet_size = 0x400; @@ -3705,6 +3812,8 @@ nitd = (xfer->nframes + 7) / 8; + xfer->flags_int.bdma_enable = 1; + } else { parm->hc_max_packet_size = 0x400; @@ -3718,138 +3827,126 @@ return; } /* - * memory is allocated at highest alignment which is first + * Allocate queue heads and transfer descriptors */ - if (nitd) { - /* align data */ - parm->size[1] += ((-parm->size[1]) & (EHCI_ITD_ALIGN - 1)); - } - if (nsitd) { - /* align data */ - parm->size[1] += ((-parm->size[1]) & (EHCI_SITD_ALIGN - 1)); - } - if (nqtd) { - /* align data */ - parm->size[1] += ((-parm->size[1]) & (EHCI_QTD_ALIGN - 1)); - } last_obj = NULL; - for (n = 0; n < nitd; n++) { - - parm->size[1] += usbd_page_fit_obj(parm->size[1], sizeof(ehci_itd_t)); + for (n = 0; n != nitd; n++) { if (parm->buf) { register ehci_itd_t *td; - usbd_get_page(&(parm->pc), parm->size[1], &page_info); - - usbd_page_cpu_invalidate(page_info.page); - + if (ehci_dma_alloc_mem(parm, sizeof(*td), + EHCI_ITD_ALIGN, &page_info)) { + parm->err = USBD_NOMEM; + break; + } td = page_info.buffer; /* init TD */ td->itd_self = htole32(page_info.physaddr | EHCI_LINK_ITD); td->obj_next = last_obj; - td->page = page_info.page; + td->page_cache = parm->dma_page_cache_ptr; last_obj = td; - usbd_page_cpu_flush(page_info.page); + usbd_pc_cpu_flush(parm->dma_page_cache_ptr); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Nov 30 01:07:59 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F221716A420; Fri, 30 Nov 2007 01:07:58 +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 7D6EE16A417 for ; Fri, 30 Nov 2007 01:07:58 +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 6196313C461 for ; Fri, 30 Nov 2007 01:07:58 +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 lAU17vdA069678 for ; Fri, 30 Nov 2007 01:07:57 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU14HcK069553 for perforce@freebsd.org; Fri, 30 Nov 2007 01:04:17 GMT (envelope-from jb@freebsd.org) Date: Fri, 30 Nov 2007 01:04:17 GMT Message-Id: <200711300104.lAU14HcK069553@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 129802 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: Fri, 30 Nov 2007 01:07:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=129802 Change 129802 by jb@jb_freebsd1 on 2007/11/30 01:04:13 Annual IFC. Affected files ... .. //depot/projects/binutils/src/COPYRIGHT#2 integrate .. //depot/projects/binutils/src/MAINTAINERS#2 integrate .. //depot/projects/binutils/src/Makefile#2 integrate .. //depot/projects/binutils/src/Makefile.inc1#2 integrate .. //depot/projects/binutils/src/ObsoleteFiles.inc#4 integrate .. //depot/projects/binutils/src/UPDATING#2 integrate .. //depot/projects/binutils/src/bin/cat/cat.1#2 integrate .. //depot/projects/binutils/src/bin/chflags/chflags.1#2 integrate .. //depot/projects/binutils/src/bin/chmod/chmod.1#2 integrate .. //depot/projects/binutils/src/bin/csh/config.h#2 integrate .. //depot/projects/binutils/src/bin/csh/config_p.h#2 integrate .. //depot/projects/binutils/src/bin/date/date.1#2 integrate .. //depot/projects/binutils/src/bin/df/df.1#2 integrate .. //depot/projects/binutils/src/bin/df/df.c#2 integrate .. //depot/projects/binutils/src/bin/domainname/domainname.1#2 integrate .. //depot/projects/binutils/src/bin/ed/Makefile#2 integrate .. //depot/projects/binutils/src/bin/expr/expr.1#2 integrate .. //depot/projects/binutils/src/bin/expr/expr.y#2 integrate .. //depot/projects/binutils/src/bin/getfacl/getfacl.c#2 integrate .. //depot/projects/binutils/src/bin/hostname/hostname.1#2 integrate .. //depot/projects/binutils/src/bin/hostname/hostname.c#2 integrate .. //depot/projects/binutils/src/bin/kill/kill.1#2 integrate .. //depot/projects/binutils/src/bin/ln/ln.1#2 integrate .. //depot/projects/binutils/src/bin/ln/ln.c#2 integrate .. //depot/projects/binutils/src/bin/mkdir/mkdir.1#2 integrate .. //depot/projects/binutils/src/bin/mv/mv.1#2 integrate .. //depot/projects/binutils/src/bin/pax/ar_io.c#2 integrate .. //depot/projects/binutils/src/bin/pax/cpio.c#2 integrate .. //depot/projects/binutils/src/bin/pax/file_subs.c#2 integrate .. //depot/projects/binutils/src/bin/pax/pat_rep.c#2 integrate .. //depot/projects/binutils/src/bin/pax/sel_subs.c#2 integrate .. //depot/projects/binutils/src/bin/pax/tables.c#2 integrate .. //depot/projects/binutils/src/bin/pax/tar.c#2 integrate .. //depot/projects/binutils/src/bin/ps/extern.h#2 integrate .. //depot/projects/binutils/src/bin/ps/keyword.c#2 integrate .. //depot/projects/binutils/src/bin/ps/print.c#2 integrate .. //depot/projects/binutils/src/bin/ps/ps.c#2 integrate .. //depot/projects/binutils/src/bin/rcp/rcp.1#2 integrate .. //depot/projects/binutils/src/bin/rcp/rcp.c#2 integrate .. //depot/projects/binutils/src/bin/rm/rm.1#2 integrate .. //depot/projects/binutils/src/bin/rmdir/rmdir.1#2 integrate .. //depot/projects/binutils/src/bin/setfacl/setfacl.c#2 integrate .. //depot/projects/binutils/src/bin/sh/Makefile#2 integrate .. //depot/projects/binutils/src/bin/sh/eval.c#2 integrate .. //depot/projects/binutils/src/bin/sh/exec.c#2 integrate .. //depot/projects/binutils/src/bin/sh/sh.1#2 integrate .. //depot/projects/binutils/src/bin/sh/var.c#2 integrate .. //depot/projects/binutils/src/bin/test/test.1#2 integrate .. //depot/projects/binutils/src/cddl/Makefile#1 branch .. //depot/projects/binutils/src/cddl/Makefile.inc#1 branch .. //depot/projects/binutils/src/cddl/lib/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/Makefile.inc#1 branch .. //depot/projects/binutils/src/cddl/lib/libavl/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/libnvpair/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/libumem/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/libuutil/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/libzfs/Makefile#1 branch .. //depot/projects/binutils/src/cddl/lib/libzpool/Makefile#1 branch .. //depot/projects/binutils/src/cddl/sbin/Makefile#1 branch .. //depot/projects/binutils/src/cddl/sbin/Makefile.inc#1 branch .. //depot/projects/binutils/src/cddl/sbin/zfs/Makefile#1 branch .. //depot/projects/binutils/src/cddl/sbin/zpool/Makefile#1 branch .. //depot/projects/binutils/src/cddl/usr.bin/Makefile#1 branch .. //depot/projects/binutils/src/cddl/usr.bin/Makefile.inc#1 branch .. //depot/projects/binutils/src/cddl/usr.bin/ztest/Makefile#1 branch .. //depot/projects/binutils/src/cddl/usr.sbin/Makefile#1 branch .. //depot/projects/binutils/src/cddl/usr.sbin/Makefile.inc#1 branch .. //depot/projects/binutils/src/cddl/usr.sbin/zdb/Makefile#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/alloca.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/devid.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/fcntl.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/fsshare.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/libintl.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/mnttab.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/priv.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/solaris.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/stdio.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/stdlib.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/strings.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/unistd.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/include/zone.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/lib/libumem/umem.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/lib/libumem/umem.h#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/deviceid.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/fsshare.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/mkdirp.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/mnttab.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/zmount.c#1 branch .. //depot/projects/binutils/src/compat/opensolaris/misc/zone.c#1 branch .. //depot/projects/binutils/src/contrib/amd/amq/amq.8#2 integrate .. //depot/projects/binutils/src/contrib/amd/hlfsd/hlfsd.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/CHANGES#3 integrate .. //depot/projects/binutils/src/contrib/bind9/COPYRIGHT#2 integrate .. //depot/projects/binutils/src/contrib/bind9/FAQ#2 integrate .. //depot/projects/binutils/src/contrib/bind9/FAQ.xml#2 integrate .. //depot/projects/binutils/src/contrib/bind9/FREEBSD-Upgrade#2 integrate .. //depot/projects/binutils/src/contrib/bind9/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/README#2 integrate .. //depot/projects/binutils/src/contrib/bind9/README.idnkit#1 branch .. //depot/projects/binutils/src/contrib/bind9/acconfig.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/check-tool.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/check-tool.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkconf.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkconf.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkconf.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkzone.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkzone.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkzone.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/check/named-checkzone.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/dig.1#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/dig.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/dig.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/dig.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/dighost.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/host.1#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/host.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/host.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/host.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/include/dig/dig.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/nslookup.1#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/nslookup.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/nslookup.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dig/nslookup.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-keygen.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-keygen.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-keygen.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-keygen.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-signzone.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-signzone.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssec-signzone.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssectool.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/dnssec/dnssectool.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/aclconf.c#2 delete .. //depot/projects/binutils/src/contrib/bind9/bin/named/builtin.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/client.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/config.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/control.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/controlconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/aclconf.h#2 delete .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/builtin.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/client.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/config.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/control.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/globals.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/interfacemgr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/listenlist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/log.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/logconf.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/lwaddr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/lwdclient.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/lwresd.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/lwsearch.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/main.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/notify.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/ns_smf_globals.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/query.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/server.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/sortlist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/tkeyconf.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/tsigconf.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/types.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/update.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/xfrout.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/include/named/zoneconf.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/interfacemgr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/listenlist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/log.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/logconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwaddr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwdclient.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwderror.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwdgabn.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwdgnba.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwdgrbn.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwdnoop.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwresd.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwresd.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwresd.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwresd.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/lwsearch.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/main.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.conf.5#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.conf.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.conf.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/named.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/notify.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/query.c#3 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/server.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/sortlist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/tkeyconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/tsigconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/unix/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/unix/include/named/os.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/unix/os.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/update.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/xfrout.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/named/zoneconf.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/nsupdate/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/nsupdate/nsupdate.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/nsupdate/nsupdate.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/nsupdate/nsupdate.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/nsupdate/nsupdate.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/include/rndc/os.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc-confgen.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc-confgen.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc-confgen.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc-confgen.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.8#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.conf#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.conf.5#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.conf.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.conf.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.docbook#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/rndc.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/unix/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/unix/os.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/util.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/bin/rndc/util.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/config.threads.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/configure.in#3 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM-book.xml#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch01.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch02.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch03.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch04.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch05.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch06.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch07.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch08.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch09.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.ch10.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.html#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Bv9ARM.pdf#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/README-SGML#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/arm/isc-logo.eps#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/isc-logo.pdf#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.dig.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.dnssec-keygen.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.dnssec-signzone.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.host.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.named-checkconf.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.named-checkzone.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.named.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.rndc-confgen.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.rndc.conf.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/arm/man.rndc.html#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-09.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-00.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-insensitive-06.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-02.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-04.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-nsid-01.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-01.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-04.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-08.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-04.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-04.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-04.txt#2 delete .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-06.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/draft/draft-schlitt-spf-classic-02.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/misc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/dnssec#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/format-options.pl#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/ipv6#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/migration#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/migration-4to9#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/options#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/rfc-compliance#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/roadmap#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/misc/sdb#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/index#2 integrate .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/rfc4193.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/rfc4255.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/rfc4343.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/rfc4367.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/doc/rfc/rfc4431.txt#1 branch .. //depot/projects/binutils/src/contrib/bind9/isc-config.sh.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/api#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/daemon.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/ftruncate.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/gettimeofday.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/mktemp.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/putenv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/readv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/setenv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/setitimer.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strcasecmp.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strdup.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strerror.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strpbrk.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strsep.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/strtoul.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/utimes.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/bsd/writev.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/config.h.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/configure#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/configure.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/dst_api.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/dst_internal.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/hmac_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/md5.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/md5_dgst.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/md5_locl.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/dst/support.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/arpa/inet.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/arpa/nameser.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/arpa/nameser_compat.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/fd_setsize.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/hesiod.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/irp.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/irs.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/assertions.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/ctl.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/dst.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/eventlib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/heap.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/irpmarshall.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/list.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/logging.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/memcluster.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/misc.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/isc/tree.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/netdb.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/netgroup.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/res_update.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/include/resolv.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_addr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_cidr_ntop.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_cidr_pton.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_data.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_lnaof.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_makeaddr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_net_ntop.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_net_pton.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_neta.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_netof.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_network.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_ntoa.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_ntop.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/inet_pton.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/inet/nsap_addr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_gr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_ho.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_nw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_pr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_pw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/dns_sv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gai_strerror.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_gr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_ho.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_ng.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_nw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_pr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_pw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gen_sv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getaddrinfo.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getgrent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getgrent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gethostent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/gethostent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getnameinfo.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getnetent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getnetent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getnetgrent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getnetgrent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getprotoent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getprotoent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getpwent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getpwent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getservent.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/getservent_r.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/hesiod.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/hesiod_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_gr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_ho.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_ng.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_nw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_pr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_pw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irp_sv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irpmarshall.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irs_data.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irs_data.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/irs_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_gr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_ho.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_ng.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_nw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_pr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_pw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/lcl_sv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_gr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_ho.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_ng.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_nw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_pr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_pw.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nis_sv.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/nul_ng.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/pathnames.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/irs/util.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/assertions.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/assertions.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/base64.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/bitncmp.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/bitncmp.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ctl_clnt.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ctl_p.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ctl_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ctl_srvr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ev_connects.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ev_files.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ev_streams.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ev_timers.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/ev_waits.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/eventlib.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/eventlib.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/eventlib_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/heap.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/heap.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/hex.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/logging.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/logging.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/logging_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/memcluster.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/memcluster.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/movefile.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/tree.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/isc/tree.mdoc#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/make/includes.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/make/rules.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_date.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_name.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_netint.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_parse.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_print.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_samedomain.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_sign.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_ttl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/nameser/ns_verify.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/port/freebsd/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/port_after.h.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/port_before.h.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/herror.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/mtctxres.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_comp.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_data.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_debug.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_debug.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_findzonecut.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_init.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_mkquery.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_mkupdate.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_mkupdate.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_private.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_query.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_send.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_sendsigned.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind/resolv/res_update.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/api#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/check.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/getaddresses.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/include/bind9/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/include/bind9/check.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/include/bind9/getaddresses.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/include/bind9/version.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/bind9/version.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/acache.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/acl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/adb.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/api#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/byaddr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/cache.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/callbacks.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/compress.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/db.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dbiterator.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dbtable.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/diff.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dispatch.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dlz.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dnssec.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/ds.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_api.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_internal.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_lib.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_openssl.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_parse.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_parse.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/dst_result.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/forward.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/gen-unix.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/gen.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/gssapi_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/gssapictx.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/hmac_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/acache.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/acl.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/adb.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/bit.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/byaddr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/cache.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/callbacks.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/cert.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/compress.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/db.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/dbiterator.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/dbtable.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/diff.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/dispatch.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/dlz.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/dnssec.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/ds.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/events.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/fixedname.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/forward.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/journal.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/keyflags.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/keytable.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/keyvalues.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/lib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/log.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/lookup.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/master.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/masterdump.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/message.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/name.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/ncache.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/nsec.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/opcode.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/order.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/peer.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/portlist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rbt.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rcode.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdata.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdataclass.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdatalist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdataset.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdatasetiter.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdataslab.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rdatatype.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/request.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/resolver.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/result.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/rootns.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/sdb.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/sdlz.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/secalg.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/secproto.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/soa.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/ssu.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/stats.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/tcpmsg.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/time.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/timer.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/tkey.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/tsig.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/ttl.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/types.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/validator.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/version.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/view.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/xfrin.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/zone.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/zonekey.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dns/zt.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dst/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dst/dst.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dst/gssapi.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dst/lib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/include/dst/result.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/journal.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/key.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/keytable.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/lib.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/log.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/lookup.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/master.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/masterdump.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/message.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/name.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/ncache.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/nsec.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/openssl_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/openssldh_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/openssldsa_link.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/opensslrsa_link.c#3 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/order.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/peer.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/portlist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rbt.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rbtdb.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rbtdb.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rbtdb64.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rbtdb64.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rcode.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/any_255/tsig_250.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/any_255/tsig_250.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/ch_3/a_1.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/ch_3/a_1.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/afsdb_18.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/afsdb_18.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/cert_37.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/cert_37.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/cname_5.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/cname_5.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dlv_32769.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dlv_65323.c#2 delete .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dlv_65323.h#2 delete .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dname_39.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dname_39.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dnskey_48.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/dnskey_48.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ds_43.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ds_43.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/gpos_27.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/gpos_27.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/hinfo_13.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/hinfo_13.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/isdn_20.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/isdn_20.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/key_25.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/key_25.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/loc_29.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/loc_29.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mb_7.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mb_7.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/md_3.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/md_3.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mf_4.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mf_4.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mg_8.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mg_8.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/minfo_14.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/minfo_14.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mr_9.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mr_9.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mx_15.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/mx_15.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ns_2.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ns_2.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/nsec_47.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/nsec_47.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/null_10.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/null_10.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/nxt_30.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/nxt_30.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/opt_41.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/opt_41.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/proforma.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/proforma.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ptr_12.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/ptr_12.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rp_17.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rp_17.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rrsig_46.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rrsig_46.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rt_21.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/rt_21.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/sig_24.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/sig_24.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/soa_6.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/soa_6.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/spf_99.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/spf_99.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/sshfp_44.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/sshfp_44.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/tkey_249.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/tkey_249.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/txt_16.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/txt_16.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/unspec_103.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/unspec_103.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/x25_19.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/generic/x25_19.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/hs_4/a_1.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/hs_4/a_1.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/a6_38.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/a6_38.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/a_1.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/a_1.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/apl_42.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/apl_42.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/kx_36.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/kx_36.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/naptr_35.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/nsap_22.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/nsap_22.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/px_26.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/px_26.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/srv_33.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/srv_33.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/wks_11.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/in_1/wks_11.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/rdatastructpre.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdata/rdatastructsuf.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdatalist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdatalist_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdataset.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdatasetiter.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rdataslab.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/request.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/resolver.c#3 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/result.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/rootns.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/sdb.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/sdlz.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/dns/soa.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/ssu.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/stats.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/tcpmsg.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/time.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/timer.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/tkey.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/tsig.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/ttl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/validator.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/version.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/view.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/xfrin.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/zone.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/zonekey.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/dns/zt.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/alpha/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/api#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/arm/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/assertions.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/base64.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/bitstring.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/buffer.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/bufferlist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/commandline.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/entropy.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/error.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/event.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/fsaccess.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/hash.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/heap.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/hex.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/hmacmd5.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/hmacsha.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/ia64/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/app.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/assertions.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/base64.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/bitstring.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/boolean.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/buffer.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/bufferlist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/commandline.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/entropy.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/error.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/event.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/eventclass.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/file.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/formatcheck.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/fsaccess.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/hash.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/heap.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/hex.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/hmacmd5.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/hmacsha.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/interfaceiter.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/ipv6.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/lang.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/lex.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/lfsr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/lib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/list.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/log.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/magic.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/md5.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/mem.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/msgcat.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/msgs.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/mutexblock.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/netaddr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/netscope.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/ondestroy.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/os.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/parseint.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/platform.h.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/print.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/quota.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/random.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/ratelimiter.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/refcount.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/region.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/resource.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/result.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/resultclass.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/rwlock.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/serial.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/sha1.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/sha2.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/sockaddr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/socket.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/stdio.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/stdlib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/string.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/symtab.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/task.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/taskpool.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/timer.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/types.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/util.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/include/isc/version.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/inet_aton.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/inet_ntop.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/inet_pton.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/lex.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/lfsr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/lib.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/log.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/md5.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/mem.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/mips/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/mutexblock.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/netaddr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/netscope.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nls/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nls/msgcat.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/noatomic/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/condition.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/isc/condition.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/isc/mutex.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/isc/once.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/include/isc/thread.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/mutex.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/nothreads/thread.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/ondestroy.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/parseint.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/powerpc/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/print.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/condition.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/isc/condition.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/isc/mutex.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/isc/once.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/include/isc/thread.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/mutex.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/pthreads/thread.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/quota.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/random.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/ratelimiter.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/refcount.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/region.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/result.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/rwlock.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/serial.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/sha1.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/sha2.c#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/sockaddr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/string.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/strtoul.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/symtab.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/task.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/task_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/taskpool.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/timer.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/timer_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/app.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/dir.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/entropy.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/errno2result.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/errno2result.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/file.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/fsaccess.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/ifiter_getifaddrs.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/ifiter_ioctl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/ifiter_sysctl.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/dir.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/int.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/keyboard.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/net.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/netdb.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/offset.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/stat.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/stdtime.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/strerror.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/syslog.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/include/isc/time.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/interfaceiter.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/ipv6.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/keyboard.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/net.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/os.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/resource.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/socket.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/socket_p.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/stdio.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/stdtime.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/strerror.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/syslog.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/unix/time.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/version.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isc/x86_32/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isc/x86_64/include/isc/atomic.h#1 branch .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/alist.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/api#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/base64.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/cc.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/ccmsg.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/Makefile.in#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/alist.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/base64.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/cc.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/ccmsg.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/events.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/lib.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/result.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/sexpr.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/symtab.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/symtype.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/types.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/util.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/include/isccc/version.h#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/lib.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/result.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/sexpr.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/symtab.c#2 integrate .. //depot/projects/binutils/src/contrib/bind9/lib/isccc/version.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Nov 30 01:32:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D438416A41B; Fri, 30 Nov 2007 01:32: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 7F27216A419 for ; Fri, 30 Nov 2007 01:32: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 63F5313C442 for ; Fri, 30 Nov 2007 01:32: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 lAU1WOeG070539 for ; Fri, 30 Nov 2007 01:32:24 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU1WNIO070536 for perforce@freebsd.org; Fri, 30 Nov 2007 01:32:23 GMT (envelope-from jb@freebsd.org) Date: Fri, 30 Nov 2007 01:32:23 GMT Message-Id: <200711300132.lAU1WNIO070536@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 129803 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: Fri, 30 Nov 2007 01:32:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=129803 Change 129803 by jb@jb_freebsd1 on 2007/11/30 01:31:42 IFC Affected files ... .. //depot/projects/dtrace/src/ObsoleteFiles.inc#32 integrate .. //depot/projects/dtrace/src/lib/libkse/Makefile#4 integrate .. //depot/projects/dtrace/src/share/man/man4/aac.4#7 integrate .. //depot/projects/dtrace/src/share/man/man9/Makefile#23 integrate .. //depot/projects/dtrace/src/share/man/man9/stack.9#3 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/prof_machdep.c#6 integrate .. //depot/projects/dtrace/src/sys/compat/linprocfs/linprocfs.c#14 integrate .. //depot/projects/dtrace/src/sys/dev/hwpmc/hwpmc_x86.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/random/yarrow.c#5 integrate .. //depot/projects/dtrace/src/sys/i386/isa/prof_machdep.c#6 integrate .. //depot/projects/dtrace/src/sys/kern/kern_clock.c#11 integrate .. //depot/projects/dtrace/src/sys/sun4v/include/pcpu.h#14 integrate .. //depot/projects/dtrace/src/sys/sys/pcpu.h#16 integrate .. //depot/projects/dtrace/src/sys/sys/resource.h#5 integrate .. //depot/projects/dtrace/www/en/cgi/man.cgi#5 integrate .. //depot/projects/dtrace/www/share/sgml/advisories.xml#14 integrate Differences ... ==== //depot/projects/dtrace/src/ObsoleteFiles.inc#32 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.122 2007/11/28 23:21:55 jb Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.123 2007/11/29 21:49:08 brooks Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20071129: Disabled static versions of libkse by default +.if ${DEFAULT_THREAD_LIB} != "libkse" && ${MK_LIBTHR} != "no" +OLD_FILES+=usr/lib/libkse.a +OLD_FILES+=usr/lib/libkse_p.a +OLD_FILES+=usr/lib/libkse_pic.a +.endif # 20071129: Removed a Solaris compatibility header OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071108: Removed very crunch OLDCARD support file ==== //depot/projects/dtrace/src/lib/libkse/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libkse/Makefile,v 1.67 2007/11/20 02:07:28 jb Exp $ +# $FreeBSD: src/lib/libkse/Makefile,v 1.68 2007/11/29 21:49:08 brooks Exp $ # # All library objects contain FreeBSD revision strings by default; they may be # excluded as a space-saving measure. To produce a library that does @@ -10,12 +10,15 @@ .include -.if (${DEFAULT_THREAD_LIB} == "libkse" || ${MK_LIBTHR} == "no") && \ - ${SHLIBDIR} == "/usr/lib" +.if ${DEFAULT_THREAD_LIB} == "libkse" || ${MK_LIBTHR} == "no" +LIB=kse +.if ${SHLIBDIR} == "/usr/lib" SHLIBDIR= /lib .endif +.else +SHLIB=kse +.endif -LIB=kse SHLIB_MAJOR= 3 CFLAGS+=-DPTHREAD_KERNEL CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \ ==== //depot/projects/dtrace/src/share/man/man4/aac.4#7 (text+ko) ==== @@ -22,8 +22,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/aac.4,v 1.36 2007/08/23 20:12:40 emaste Exp $ -.Dd August 23, 2007 +.\" $FreeBSD: src/share/man/man4/aac.4,v 1.38 2007/11/29 18:53:11 emaste Exp $ +.Dd November 29, 2007 .Dt AAC 4 .Os .Sh NAME @@ -113,6 +113,22 @@ .It Adaptec AAC-364 .It +Adaptec RAID 3085 +.It +Adaptec RAID 31205 +.It +Adaptec RAID 31605 +.It +Adaptec RAID 5085 +.It +Adaptec RAID 51205 +.It +Adaptec RAID 51605 +.It +Adaptec RAID 5445 +.It +Adaptec RAID 5805 +.It Adaptec SAS RAID 3405 .It Adaptec SAS RAID 3805 @@ -187,12 +203,36 @@ .It IBM ServeRAID 8k .It +IBM ServeRAID 8s +.It +ICP RAID ICP5045BL +.It +ICP RAID ICP5085BL +.It +ICP RAID ICP5085SL +.It +ICP RAID ICP5125BR +.It +ICP RAID ICP5125SL +.It +ICP RAID ICP5165BR +.It +ICP RAID ICP5165SL +.It +ICP RAID ICP5445SL +.It +ICP RAID ICP5805BL +.It +ICP RAID ICP5805SL +.It ICP ICP5085BR SAS RAID .It ICP ICP9085LI SAS RAID .It ICP ICP9047MA SATA RAID .It +ICP ICP9067MA SATA RAID +.It ICP ICP9087MA SATA RAID .It ICP ICP9014RO SCSI RAID ==== //depot/projects/dtrace/src/share/man/man9/Makefile#23 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.318 2007/11/27 11:02:41 rwatson Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.319 2007/11/29 17:16:55 rwatson Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -1070,6 +1070,7 @@ MLINKS+=stack.9 stack_copy.9 \ stack.9 stack_create.9 \ stack.9 stack_destroy.9 \ + stack.9 stack_printf.9 \ stack.9 stack_put.9 \ stack.9 stack_save.9 \ stack.9 stack_sbuf_print.9 \ ==== //depot/projects/dtrace/src/share/man/man9/stack.9#3 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/stack.9,v 1.2 2007/11/28 12:04:08 rwatson Exp $ +.\" $FreeBSD: src/share/man/man9/stack.9,v 1.3 2007/11/29 17:16:55 rwatson Exp $ .\" .Dd February 27, 2007 .Dt STACK 9 @@ -50,6 +50,8 @@ .Ft void .Fn stack_zero "struct stack *st" .Ft void +.Fn stack_print "struct stack *st" +.Ft void .Fn stack_sbuf_print "struct sbuf sb*" "struct stack *st" .Ft void .Fn stack_save "struct stack *st" @@ -78,6 +80,10 @@ A trace of the current kernel thread's call stack may be captured using .Fn stack_save . .Pp +.Fn stack_print +may be used to print a stack trace using the kernel +.Xr printf 9 . +.Pp .Fn stack_sbuf_print may be used to construct a human-readable string, including conversion (where possible) from a simple kernel instruction pointer to a named symbol and @@ -99,7 +105,9 @@ .Nm stack_put may be used to manipulate stack data structures directly. .Sh SEE ALSO -.Xr DDB 4 +.Xr DDB 4 , +.Xr printf 9 , +.Xr sbuf 9 .Sh AUTHORS .An -nosplit The ==== //depot/projects/dtrace/src/sys/amd64/amd64/prof_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.29 2007/03/26 18:03:29 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.31 2007/11/29 02:01:21 bde Exp $"); #ifdef GUPROF #if 0 @@ -82,10 +82,10 @@ # Check that we are profiling. Do it early for speed. \n\ # \n\ cmpl $GMON_PROF_OFF,_gmonparam+GM_STATE \n\ - je .mcount_exit \n\ - # \n\ - # __mcount is the same as [.]mcount except the caller \n\ - # hasn't changed the stack except to call here, so the \n\ + je .mcount_exit \n\ + # \n\ + # __mcount is the same as [.]mcount except the caller \n\ + # hasn't changed the stack except to call here, so the \n\ # caller's raddr is above our raddr. \n\ # \n\ pushq %rax \n\ @@ -96,13 +96,11 @@ pushq %r8 \n\ pushq %r9 \n\ movq 7*8+8(%rsp),%rdi \n\ - jmp .got_frompc \n\ - \n\ - .p2align 4,0x90 \n\ - .globl .mcount \n\ + jmp .got_frompc \n\ + \n\ + .p2align 4,0x90 \n\ + .globl .mcount \n\ .mcount: \n\ - .globl __cyg_profile_func_enter \n\ -__cyg_profile_func_enter: \n\ cmpl $GMON_PROF_OFF,_gmonparam+GM_STATE \n\ je .mcount_exit \n\ # \n\ @@ -137,7 +135,7 @@ popq %rdx \n\ popq %rax \n\ .mcount_exit: \n\ - ret \n\ + ret $0 \n\ "); #else /* !__GNUCLIKE_ASM */ #error "this file needs to be ported to your compiler" @@ -167,8 +165,6 @@ .p2align 4,0x90 \n\ .globl .mexitcount \n\ .mexitcount: \n\ - .globl __cyg_profile_func_exit \n\ -__cyg_profile_func_exit: \n\ cmpl $GMON_PROF_HIRES,_gmonparam+GM_STATE \n\ jne .mexitcount_exit \n\ pushq %rax \n\ @@ -191,7 +187,7 @@ popq %rdx \n\ popq %rax \n\ .mexitcount_exit: \n\ - ret \n\ + ret $0 \n\ "); #endif /* __GNUCLIKE_ASM */ ==== //depot/projects/dtrace/src/sys/compat/linprocfs/linprocfs.c#14 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.116 2007/10/12 06:03:42 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.117 2007/11/29 06:34:29 peter Exp $"); #include #include @@ -374,19 +374,28 @@ static int linprocfs_dostat(PFS_FILL_ARGS) { + struct pcpu *pcpu; + long cp_time[CPUSTATES]; + long *cp; int i; + read_cpu_time(cp_time); sbuf_printf(sb, "cpu %ld %ld %ld %ld\n", T2J(cp_time[CP_USER]), T2J(cp_time[CP_NICE]), T2J(cp_time[CP_SYS] /*+ cp_time[CP_INTR]*/), T2J(cp_time[CP_IDLE])); - for (i = 0; i < mp_ncpus; ++i) + for (i = 0; i <= mp_maxid; ++i) { + if (CPU_ABSENT(i)) + continue; + pcpu = pcpu_find(i); + cp = pcpu->pc_cp_time; sbuf_printf(sb, "cpu%d %ld %ld %ld %ld\n", i, - T2J(cp_time[CP_USER]) / mp_ncpus, - T2J(cp_time[CP_NICE]) / mp_ncpus, - T2J(cp_time[CP_SYS]) / mp_ncpus, - T2J(cp_time[CP_IDLE]) / mp_ncpus); + T2J(cp[CP_USER]), + T2J(cp[CP_NICE]), + T2J(cp[CP_SYS] /*+ cp[CP_INTR]*/), + T2J(cp[CP_IDLE])); + } sbuf_printf(sb, "disk 0 0 0 0\n" "page %u %u\n" @@ -410,9 +419,11 @@ static int linprocfs_douptime(PFS_FILL_ARGS) { + long cp_time[CPUSTATES]; struct timeval tv; getmicrouptime(&tv); + read_cpu_time(cp_time); sbuf_printf(sb, "%lld.%02ld %ld.%02ld\n", (long long)tv.tv_sec, tv.tv_usec / 10000, T2S(cp_time[CP_IDLE]), T2J(cp_time[CP_IDLE]) % 100); ==== //depot/projects/dtrace/src/sys/dev/hwpmc/hwpmc_x86.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_x86.c,v 1.5 2006/04/04 02:36:04 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_x86.c,v 1.6 2007/11/29 06:43:58 jkoshy Exp $"); #include #include @@ -82,7 +82,7 @@ case 0x7: case 0x8: case 0xA: case 0xB: cputype = PMC_CPU_INTEL_PIII; break; - case 0x9: case 0xD: case 0xE: + case 0x9: case 0xD: cputype = PMC_CPU_INTEL_PM; break; } ==== //depot/projects/dtrace/src/sys/dev/random/yarrow.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/random/yarrow.c,v 1.47 2007/05/27 18:54:58 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/random/yarrow.c,v 1.48 2007/11/29 16:04:35 simon Exp $"); #include #include @@ -296,6 +296,7 @@ random_state.outputblocks = 0; } retval += (int)tomove; + cur = 0; } } else { ==== //depot/projects/dtrace/src/sys/i386/isa/prof_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/isa/prof_machdep.c,v 1.30 2007/03/26 18:03:29 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/isa/prof_machdep.c,v 1.32 2007/11/29 02:01:20 bde Exp $"); #ifdef GUPROF #include "opt_i586_guprof.h" @@ -90,8 +90,6 @@ .p2align 4,0x90 \n\ .globl .mcount \n\ .mcount: \n\ - .globl __cyg_profile_func_enter \n\ -__cyg_profile_func_enter: \n\ cmpl $GMON_PROF_OFF,_gmonparam+GM_STATE \n\ je .mcount_exit \n\ # \n\ @@ -115,7 +113,7 @@ addl $8,%esp \n\ popfl \n\ .mcount_exit: \n\ - ret \n\ + ret $0 \n\ "); #else /* !__GNUCLIKE_ASM */ #error "this file needs to be ported to your compiler" @@ -145,8 +143,6 @@ .p2align 4,0x90 \n\ .globl .mexitcount \n\ .mexitcount: \n\ - .globl __cyg_profile_func_exit \n\ -__cyg_profile_func_exit: \n\ cmpl $GMON_PROF_HIRES,_gmonparam+GM_STATE \n\ jne .mexitcount_exit \n\ pushl %edx \n\ @@ -161,7 +157,7 @@ popl %eax \n\ popl %edx \n\ .mexitcount_exit: \n\ - ret \n\ + ret $0 \n\ "); #endif /* __GNUCLIKE_ASM */ ==== //depot/projects/dtrace/src/sys/kern/kern_clock.c#11 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_clock.c,v 1.203 2007/11/14 06:21:22 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_clock.c,v 1.205 2007/11/29 08:38:22 rwatson Exp $"); #include "opt_kdb.h" #include "opt_device_polling.h" @@ -81,9 +81,6 @@ static void initclocks(void *dummy); SYSINIT(clocks, SI_SUB_CLOCKS, SI_ORDER_FIRST, initclocks, NULL) -/* Some of these don't belong here, but it's easiest to concentrate them. */ -long cp_time[CPUSTATES]; - /* Spin-lock protecting profiling statistics. */ static struct mtx time_lock; @@ -91,10 +88,14 @@ sysctl_kern_cp_time(SYSCTL_HANDLER_ARGS) { int error; + long cp_time[CPUSTATES]; #ifdef SCTL_MASK32 int i; unsigned int cp_time32[CPUSTATES]; +#endif + read_cpu_time(cp_time); +#ifdef SCTL_MASK32 if (req->flags & SCTL_MASK32) { if (!req->oldptr) return SYSCTL_OUT(req, 0, sizeof(cp_time32)); @@ -114,6 +115,67 @@ SYSCTL_PROC(_kern, OID_AUTO, cp_time, CTLTYPE_LONG|CTLFLAG_RD, 0,0, sysctl_kern_cp_time, "LU", "CPU time statistics"); +static long empty[CPUSTATES]; + +static int +sysctl_kern_cp_times(SYSCTL_HANDLER_ARGS) +{ + struct pcpu *pcpu; + int error; + int c; + long *cp_time; +#ifdef SCTL_MASK32 + unsigned int cp_time32[CPUSTATES]; + int i; +#endif + + if (!req->oldptr) { +#ifdef SCTL_MASK32 + if (req->flags & SCTL_MASK32) + return SYSCTL_OUT(req, 0, sizeof(cp_time32) * (mp_maxid + 1)); + else +#endif + return SYSCTL_OUT(req, 0, sizeof(long) * CPUSTATES * (mp_maxid + 1)); + } + for (error = 0, c = 0; error == 0 && c <= mp_maxid; c++) { + if (!CPU_ABSENT(c)) { + pcpu = pcpu_find(c); + cp_time = pcpu->pc_cp_time; + } else { + cp_time = empty; + } +#ifdef SCTL_MASK32 + if (req->flags & SCTL_MASK32) { + for (i = 0; i < CPUSTATES; i++) + cp_time32[i] = (unsigned int)cp_time[i]; + error = SYSCTL_OUT(req, cp_time32, sizeof(cp_time32)); + } else +#endif + error = SYSCTL_OUT(req, cp_time, sizeof(long) * CPUSTATES); + } + return error; +} + +SYSCTL_PROC(_kern, OID_AUTO, cp_times, CTLTYPE_LONG|CTLFLAG_RD, + 0,0, sysctl_kern_cp_times, "LU", "per-CPU time statistics"); + +void +read_cpu_time(long *cp_time) +{ + struct pcpu *pc; + int i, j; + + /* Sum up global cp_time[]. */ + bzero(cp_time, sizeof(long) * CPUSTATES); + for (i = 0; i <= mp_maxid; i++) { + if (CPU_ABSENT(i)) + continue; + pc = pcpu_find(i); + for (j = 0; j < CPUSTATES; j++) + cp_time[j] += pc->pc_cp_time[j]; + } +} + #ifdef SW_WATCHDOG #include @@ -405,11 +467,12 @@ struct thread *td; struct proc *p; long rss; + long *cp_time; td = curthread; p = td->td_proc; - thread_lock_flags(td, MTX_QUIET); + cp_time = (long *)PCPU_PTR(cp_time); if (usermode) { /* * Charge the time as appropriate. @@ -420,9 +483,9 @@ #endif td->td_uticks++; if (p->p_nice > NZERO) - atomic_add_long(&cp_time[CP_NICE], 1); + cp_time[CP_NICE]++; else - atomic_add_long(&cp_time[CP_USER], 1); + cp_time[CP_USER]++; } else { /* * Came from kernel mode, so we were: @@ -439,7 +502,7 @@ if ((td->td_pflags & TDP_ITHREAD) || td->td_intr_nesting_level >= 2) { td->td_iticks++; - atomic_add_long(&cp_time[CP_INTR], 1); + cp_time[CP_INTR]++; } else { #ifdef KSE if (p->p_flag & P_SA) @@ -448,9 +511,9 @@ td->td_pticks++; td->td_sticks++; if (!TD_IS_IDLETHREAD(td)) - atomic_add_long(&cp_time[CP_SYS], 1); + cp_time[CP_SYS]++; else - atomic_add_long(&cp_time[CP_IDLE], 1); + cp_time[CP_IDLE]++; } } @@ -466,6 +529,7 @@ ru->ru_maxrss = rss; CTR4(KTR_SCHED, "statclock: %p(%s) prio %d stathz %d", td, td->td_name, td->td_priority, (stathz)?stathz:hz); + thread_lock_flags(td, MTX_QUIET); sched_clock(td); thread_unlock(td); } ==== //depot/projects/dtrace/src/sys/sun4v/include/pcpu.h#14 (text+ko) ==== @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * from: FreeBSD: src/sys/i386/include/globaldata.h,v 1.27 2001/04/27 - * $FreeBSD: src/sys/sun4v/include/pcpu.h,v 1.10 2007/11/11 12:30:56 marius Exp $ + * $FreeBSD: src/sys/sun4v/include/pcpu.h,v 1.11 2007/11/29 20:50:40 jb Exp $ */ #ifndef _MACHINE_PCPU_H_ @@ -74,7 +74,7 @@ u_int pc_kwbuf_full; \ struct rwindow pc_tsbwbuf[2]; \ uint16_t pc_cpulist[MAXCPU]; \ - uint64_t pad[9]; + uint64_t pad[4]; /* XXX SUN4V_FIXME - as we access the *_ra and *_size fields in quick * succession we _really_ want them to be L1 cache line size aligned ==== //depot/projects/dtrace/src/sys/sys/pcpu.h#16 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/pcpu.h,v 1.23 2007/11/08 14:47:55 ups Exp $ + * $FreeBSD: src/sys/sys/pcpu.h,v 1.24 2007/11/29 06:34:30 peter Exp $ */ #ifndef _SYS_PCPU_H_ @@ -43,6 +43,7 @@ #include #include +#include #include struct pcb; @@ -82,6 +83,7 @@ #endif PCPU_MD_FIELDS; struct vmmeter pc_cnt; /* VM stats counters */ + long pc_cp_time[CPUSTATES]; struct device *pc_device; /* ==== //depot/projects/dtrace/src/sys/sys/resource.h#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)resource.h 8.4 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/sys/resource.h,v 1.31 2007/06/01 01:12:45 jeff Exp $ + * $FreeBSD: src/sys/sys/resource.h,v 1.32 2007/11/29 06:34:30 peter Exp $ */ #ifndef _SYS_RESOURCE_H_ @@ -154,7 +154,7 @@ #ifdef _KERNEL extern struct loadavg averunnable; -extern long cp_time[CPUSTATES]; +void read_cpu_time(long *cp_time); /* Writes array of CPUSTATES */ #else ==== //depot/projects/dtrace/www/en/cgi/man.cgi#5 (text+ko) ==== @@ -34,7 +34,7 @@ # Dual CGI/Plexus mode and new interface by sanders@bsdi.com 9/22/1995 # # $Id: man.cgi,v 1.172 2007/11/28 18:51:29 hrs Exp $ -# $FreeBSD: www/en/cgi/man.cgi,v 1.192 2007/11/28 20:36:21 hrs Exp $ +# $FreeBSD: www/en/cgi/man.cgi,v 1.193 2007/11/29 21:00:24 wosch Exp $ ############################################################################ # !!! man.cgi is stale perl4 code !!! @@ -1222,7 +1222,7 @@ } sub copyright { - $id = '$Id: man.cgi,v 1.172 2007/11/28 18:51:29 hrs Exp $'; + $id = '$FreeBSD: www/en/cgi/man.cgi,v 1.193 2007/11/29 21:00:24 wosch Exp $'; return qq{\

==== //depot/projects/dtrace/www/share/sgml/advisories.xml#14 (text+ko) ====

@@ -2,7 +2,7 @@
 
   
     
-      $FreeBSD: www/share/sgml/advisories.xml,v 1.213 2007/10/03 21:59:07 simon Exp $
+      $FreeBSD: www/share/sgml/advisories.xml,v 1.214 2007/11/29 16:34:20 simon Exp $
     
   
 
@@ -10,6 +10,22 @@
     2007
 
     
+      11
+
+      
+	29
+
+	
+	  FreeBSD-SA-07:10.gtar
+	
+
+	
+	  FreeBSD-SA-07:09.random
+	
+      
+    
+
+    
       10
 
       

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 03:05:33 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 6715E16A421; Fri, 30 Nov 2007 03:05:33 +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 DBCF216A41B
	for ; Fri, 30 Nov 2007 03:05: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 BA7D213C457
	for ; Fri, 30 Nov 2007 03:05: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 lAU35WLV076631
	for ; Fri, 30 Nov 2007 03:05:32 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU34lrE076561
	for perforce@freebsd.org; Fri, 30 Nov 2007 03:04:47 GMT
	(envelope-from jb@freebsd.org)
Date: Fri, 30 Nov 2007 03:04:47 GMT
Message-Id: <200711300304.lAU34lrE076561@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 129806 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: Fri, 30 Nov 2007 03:05:33 -0000

http://perforce.freebsd.org/chv.cgi?CH=129806

Change 129806 by jb@jb_freebsd1 on 2007/11/30 03:04:18

	Integrate binutils-2.18. After all, we need Z80 support sooooo much.
	Looks like 2.18 is more about GPLv3 than Z80 though.

Affected files ...

.. //depot/projects/binutils/src/contrib/binutils/COPYING3#1 branch
.. //depot/projects/binutils/src/contrib/binutils/COPYING3.LIB#1 branch
.. //depot/projects/binutils/src/contrib/binutils/Makefile.def#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/Makefile.tpl#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/COPYING#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ChangeLog-0203#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ChangeLog-2004#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ChangeLog-2005#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ChangeLog-2006#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/acinclude.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aclocal.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aix386-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aix5ppc-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-adobe.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-cris.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-ns32k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-sparcle.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-target.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout-tic30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout0.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aout64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aoutf1.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/aoutx.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/archive.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/archive64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/archures.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/armnetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bfd-in.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bfd-in2.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bfd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bfdio.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bfdwin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/binary.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/bout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cache.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cf-i386lynx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cf-sparclynx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cisco-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-alpha.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-apollo.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-aux.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-go32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-h8300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-h8500.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-i860.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-i960.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-m68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-m88k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-maxq.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-or32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-pmac.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-rs6000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-stgo32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-svm68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-tic30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-tic4x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-tic54x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-tic80.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-u68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-w65.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-we32k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-x86_64.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-z80.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff-z8k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coff64-rs6000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coffcode.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coffgen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cofflink.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/coffswap.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/config.bfd#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/config.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/configure#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/configure.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/corefile.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-alpha.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-arc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-avr.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-bfin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-cr16.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-cr16c.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-cris.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-crx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-d10v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-d30v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-dlx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-fr30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-frv.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-h8300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-h8500.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-hppa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-i370.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-i860.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-i960.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-ia64-opc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-ip2k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-iq2000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m10200.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m10300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m32c.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m32r.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m68hc11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m68hc12.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-m88k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-maxq.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-mep.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-mmix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-msp430.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-mt.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-ns32k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-openrisc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-or32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-pdp11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-pj.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-powerpc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-rs6000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-s390.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-score.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-spu.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-tic30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-tic4x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-tic54x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-tic80.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-v850.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-vax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-w65.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-we32k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-xc16x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-xstormy16.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-xtensa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-z80.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/cpu-z8k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/demo64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/archures.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfd.info#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfd.texinfo#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfdint.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfdio.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfdt.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/bfdver.texi#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/chew.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/linker.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/opncls.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/reloc.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/section.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/syms.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/doc/targets.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/dwarf1.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/dwarf2.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ecoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ecofflink.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ecoffswap.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/efi-app-ia32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/efi-app-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/efi-app-x86_64.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-attrs.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-bfd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-eh-frame.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-hppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-m10200.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-m10300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-strtab.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-vxworks.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf-vxworks.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-am33lin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-arc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-avr.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-avr.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-bfin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-cr16.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-cr16c.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-cris.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-crx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-d10v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-d30v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-dlx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-fr30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-frv.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-gen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-h8300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-hppa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-hppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-i370.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-i860.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-i960.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-ip2k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-iq2000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m32c.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m32r.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m68hc11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m68hc12.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m68hc1x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m68hc1x.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-m88k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-mep.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-msp430.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-mt.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-openrisc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-or32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-pj.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-ppc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-s390.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-score.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh-relocs.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh-symbian.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh64-com.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sh64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-spu.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-spu.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-v850.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-vax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-xc16x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-xstormy16.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32-xtensa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-alpha.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-gen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-hppa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-hppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-mmix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-ppc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-s390.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-sh64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64-x86-64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elf64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfcode.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfcore.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elflink.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfn32-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-mips.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-sparc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/elfxx-target.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/epoc-pe-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/epoc-pei-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/format.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/freebsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/gen-aout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/genlink.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hash.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/host-aout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/alphalinux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/alphavms.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/decstation.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/delta68.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/dpx2.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/hp300bsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/i386bsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/i386linux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/i386mach3.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/i386sco.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/i860mach3.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/m68kaux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/m68klinux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/m88kmach3.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/mipsbsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/mipsmach3.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/news-mips.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/news.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/pc532mach.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/riscos.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/symmetry.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/tahoe.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/vaxbsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/vaxlinux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/vaxult.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hosts/vaxult2.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hp300bsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hp300hpux.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hppabsd-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/hpux-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386aout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386bsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386dynix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386freebsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386linux.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386lynx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386mach3.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386msdos.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386netbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/i386os9k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ieee.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ihex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/init.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/irix-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libaout.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libbfd-in.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libbfd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libbfd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libcoff-in.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libcoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libecoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libhppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libieee.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libnlm.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/liboasys.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libpei.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/libxcoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/linker.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/lynx-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/m68k4knetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/m68klinux.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/m68knetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/m88kmach3.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/m88kopenbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mach-o-target.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mach-o.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mach-o.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mep-relocs.pl#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/merge.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mipsbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/mmo.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/netbsd-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/netbsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/newsos3.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm-target.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm32-alpha.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm32-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm32-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm32-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlm64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlmcode.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/nlmswap.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ns32k.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ns32knetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/oasys.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/opncls.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/osf-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pc532-mach.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pdp11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-arm-wince.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pe-x86_64.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/peXXigen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pef-traceback.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pef.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pef.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-arm-wince.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/pei-x86_64.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/bfd/peicode.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/po/BLD-POTFILES.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/po/Make-in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/po/SRC-POTFILES.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/po/bfd.pot#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ppcboot.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ptrace-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/reloc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/reloc16.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/riscix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/rs6000-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sco5-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/section.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/simple.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/som.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/som.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sparclinux.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sparclynx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sparcnetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/srec.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/stab-syms.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/stabs.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sunos.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/syms.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/sysdep.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/targets.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/tekhex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/ticoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/trad-core.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vax1knetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vaxbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vaxnetbsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/versados.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/version.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms-gsd.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms-hdr.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms-misc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms-tir.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/vms.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/warning.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xcoff-target.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xcofflink.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xsym.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xsym.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xtensa-isa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/bfd/xtensa-modules.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/BRANCHES#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/ChangeLog-2006#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/MAINTAINERS#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/NEWS#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/acinclude.m4#2 delete
.. //depot/projects/binutils/src/contrib/binutils/binutils/aclocal.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/addr2line.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/ar.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arlex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arlex.l#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arparse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arparse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arparse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arsup.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/arsup.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/bin2c.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/binemul.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/binemul.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/bucomm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/bucomm.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/budbg.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/budemang.c#2 delete
.. //depot/projects/binutils/src/contrib/binutils/binutils/budemang.h#2 delete
.. //depot/projects/binutils/src/contrib/binutils/binutils/coffdump.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/coffgrok.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/coffgrok.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/config.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/configure#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/configure.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/cxxfilt.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/debug.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/debug.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/deflex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/deflex.l#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/defparse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/defparse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/defparse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/dlltool.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/dlltool.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/dllwrap.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/addr2line.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/ar.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/binutils.info#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/binutils.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/config.texi#2 delete
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/cxxfilt.man#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/dlltool.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/nlmconv.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/nm.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/objcopy.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/objdump.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/ranlib.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/readelf.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/size.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/strings.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/strip.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/windmc.1#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/doc/windres.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/dwarf.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/dwarf.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/embedspu.sh#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/emul_aix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/emul_vanilla.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/filemode.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/ieee.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/is-ranlib.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/is-strip.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/maybe-ranlib.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/maybe-strip.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/mclex.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/mcparse.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/mcparse.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/mcparse.y#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/nlmconv.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/nlmconv.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/nlmheader.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/nlmheader.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/nlmheader.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/nm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/not-ranlib.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/not-strip.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/objcopy.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/objdump.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/Make-in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/POTFILES.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/binutils.pot#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/fi.gmo#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/fi.po#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/uk.gmo#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/uk.po#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/vi.gmo#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/po/vi.po#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/prdbg.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/ranlib.sh#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rclex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rclex.l#2 delete
.. //depot/projects/binutils/src/contrib/binutils/binutils/rcparse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rcparse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rcparse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rdcoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rddbg.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/readelf.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rename.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/resbin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/rescoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/resrc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/resres.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/sanity.sh#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/size.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/srconv.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/stabs.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/strings.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/sysdep.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/sysdump.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/sysinfo.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/sysinfo.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/sysinfo.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/syslex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/syslex.l#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/ar.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/arm/objdump.exp#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/arm/thumb2-cond.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/copy-1.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/copy-1.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/copy-2.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/copy-3.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/copytest.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/dlltool.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/empty.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/hppa/objdump.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/localize-hidden-1.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/localize-hidden-1.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/localize-hidden-2.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/localize-hidden-2.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/m68k/objdump.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/needed-by-reloc.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/nm.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/objcopy.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/objdump.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/readelf.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/size.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/strip-1.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/strip-2.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/strip-3.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/vax/objdump.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/MSG00001.bin#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/dialogid.rsd#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/html.rc#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/html.rsd#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/html1.hm#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/html2.hm#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/lang.rc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/messagetable.rc#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/messagetable.rsd#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/msupdate#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/strtab1.rc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/strtab2.rc#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/strtab2.rsd#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/version.rc#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/version.rsd#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/version_cat.rc#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/version_cat.rsd#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/binutils-all/windres/windres.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/config/default.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/testsuite/lib/utils-lib.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/unwind-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/unwind-ia64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/version.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/windint.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/windmc.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/windmc.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/binutils/windres.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/windres.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/winduni.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/winduni.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/binutils/wrstabs.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config-ml.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config.guess#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config.rpath#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config.sub#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/acx.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/confsubdir.m4#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/depstand.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/gettext-sister.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/gxx-include-dir.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/ld-symbolic.m4#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/mh-ppc-aix#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/mh-ppc-darwin#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/mh-x86omitfp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/mt-mep#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/mt-spu#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/multi.m4#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/stdint.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/tls.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/config/unwind_ipinfo.m4#1 branch
.. //depot/projects/binutils/src/contrib/binutils/config/warnings.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/configure#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/configure.ac#1 branch
.. //depot/projects/binutils/src/contrib/binutils/configure.in#2 delete
.. //depot/projects/binutils/src/contrib/binutils/cpu/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/cris.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/frv.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/frv.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/iq10.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/iq2000.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/iq2000.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/iq2000m.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/m32c.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/m32c.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/m32r.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/m32r.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/mt.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/mt.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/sh.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/sh.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/sh64-compact.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/sh64-media.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/simplify.inc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/xc16x.cpu#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/cpu/xc16x.opc#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/etc/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/etc/texi2pod.pl#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/COPYING#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/ChangeLog-2006#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/NEWS#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/acinclude.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/aclocal.m4#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/app.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/as.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/as.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/asintl.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/atof-generic.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/bfin-lex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/bfin-parse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/bfin-parse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/bignum.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/bit_fix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/cgen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/cgen.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/cond.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/aout_gnu.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/atof-ieee.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/atof-vax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/bfin-aux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/bfin-defs.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/bfin-lex.l#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/bfin-parse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-crisaout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-criself.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-i386aout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-i386coff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-i386elf.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-mipsecoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/e-mipself.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/itbl-mips.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/m68k-parse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/m68k-parse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-aout.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-aout.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-coff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-coff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-ecoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-ecoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-elf.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-elf.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-evax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-evax.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-ieee.c#2 delete
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-ieee.h#2 delete
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-multi.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-multi.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-som.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/obj-som.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-alpha.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-alpha.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-arc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-arc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-arm.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-arm.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-avr.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-avr.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-bfin.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-bfin.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-cr16.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-cr16.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-cris.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-cris.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-crx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-crx.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-d10v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-d10v.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-d30v.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-d30v.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-dlx.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-dlx.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-fr30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-fr30.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-frv.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-frv.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-generic.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-generic.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-h8300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-h8300.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-hppa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-hppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i370.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i370.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i386.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i386.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i860.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i860.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i960.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-i960.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ia64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ia64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ip2k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ip2k.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-iq2000.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-iq2000.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m32c.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m32c.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m32r.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m32r.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m68851.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m68hc11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m68hc11.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m68k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-m68k.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-maxq.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-maxq.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mcore.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mcore.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mep.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mep.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mips.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mips.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mmix.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mmix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mn10200.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mn10200.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mn10300.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mn10300.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-msp430.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-msp430.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mt.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-mt.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ns32k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ns32k.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-openrisc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-openrisc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-or32.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-or32.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-pdp11.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-pdp11.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-pj.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-pj.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ppc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-ppc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-s390.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-s390.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-score.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-score.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sh.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sh.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sh64.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sh64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sparc.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-sparc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-spu.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-spu.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic30.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic30.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic4x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic4x.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic54x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-tic54x.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-v850.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-v850.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-vax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-vax.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xc16x.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xc16x.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xstormy16.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xstormy16.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xtensa.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-xtensa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-z80.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-z80.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-z8k.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/tc-z8k.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-386bsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-aix5.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-armeabi.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-armlinuxeabi.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-dynix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-epoc-pe.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-freebsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-generic.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-gnu.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-go32.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-hppa.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-hppa64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-hppalinux64.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-hpux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-i386aix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-ia64aix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-interix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-irix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-linux.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-lnews.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-lynx.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-mach.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-macos.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-nbsd.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-nbsd532.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-netware.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-pc532mach.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-pe.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-pep.h#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-psos.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-riscix.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-sparcaout.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-sun3.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-svr4.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-symbian.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-tmips.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-vxworks.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/te-wince-pe.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/vax-inst.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/xtensa-istack.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/xtensa-relax.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/config/xtensa-relax.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/configure#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/configure.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/configure.tgt#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/debug.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/dep-in.sed#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/depend.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/Makefile.am#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/Makefile.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/all.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/as.1#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/as.info#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/as.texinfo#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/asconfig.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-arc.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-arm.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-avr.texi#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-bfin.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-cr16.texi#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-i386.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-i960.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-m32r.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-m68hc11.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-m68k.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-mips.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-mmix.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-pdp11.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-ppc.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-tic54x.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-v850.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-xtensa.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/c-z80.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/gasver.texi#2 delete
.. //depot/projects/binutils/src/contrib/binutils/gas/doc/internals.texi#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/dw2gencfi.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/dw2gencfi.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/dwarf2dbg.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/dwarf2dbg.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/ecoff.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/ecoff.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/ehopt.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/emul-target.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/emul.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/expr.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/expr.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/flonum-copy.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/flonum-konst.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/flonum-mult.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/flonum.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/frags.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/frags.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/gdbinit.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/hash.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/hash.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/input-file.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/input-file.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/input-scrub.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-lex.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-lex.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-lex.l#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-ops.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-ops.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-parse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-parse.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/itbl-parse.y#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/listing.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/listing.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/literal.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/m68k-parse.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/macro.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/macro.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/messages.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/obj.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/output-file.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/output-file.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/po/Make-in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/po/POTFILES.in#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/po/gas.pot#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/read.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/read.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/remap.c#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/sb.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/sb.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/stabs.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/struc-symbol.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/subsegs.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/subsegs.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/symbols.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/symbols.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/tc.h#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/ChangeLog#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/ChangeLog-2006#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/gas.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/itbl-test.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/relax.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/relax.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/test-example.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/test-gen.c#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/all/weakref1u.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/alpha/alpha.exp#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arch4t.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arch7.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/archv6.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/archv6.s#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/archv6t2.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arm-it.d#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arm-it.s#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arm3.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arm7dm.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/arm7t.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/armv1.d#2 integrate
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/armv1.l#1 branch
.. //depot/projects/binutils/src/contrib/binutils/gas/testsuite/gas/arm/backslash-at.d#1 branch

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 05:58:41 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B6AB716A46C; Fri, 30 Nov 2007 05:58:41 +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 741DB16A418
	for ; Fri, 30 Nov 2007 05:58:41 +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 3A06413C4CE
	for ; Fri, 30 Nov 2007 05:58:41 +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 lAU5wfuK094257
	for ; Fri, 30 Nov 2007 05:58:41 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU5wfne094254
	for perforce@freebsd.org; Fri, 30 Nov 2007 05:58:41 GMT
	(envelope-from jb@freebsd.org)
Date: Fri, 30 Nov 2007 05:58:41 GMT
Message-Id: <200711300558.lAU5wfne094254@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 129811 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: Fri, 30 Nov 2007 05:58:42 -0000

http://perforce.freebsd.org/chv.cgi?CH=129811

Change 129811 by jb@jb_freebsd1 on 2007/11/30 05:58:02

	Update VERSION.

Affected files ...

.. //depot/projects/binutils/src/gnu/usr.bin/binutils/Makefile.inc0#5 edit

Differences ...

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/Makefile.inc0#5 (text+ko) ====

@@ -4,7 +4,7 @@
 # use the normal "Makefile.inc" mechanism, because we need some of these
 # definitions before the sub-Makefile is processed.
 
-VERSION=	"2.15 [FreeBSD] 2004-05-23"
+VERSION=	"2.18 [FreeBSD] 2007-08-28"
 
 TARGET_ARCH?=	${MACHINE_ARCH}
 .if ${TARGET_ARCH} == "amd64"

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 08:50:49 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 28D5B16A420; Fri, 30 Nov 2007 08:50:49 +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 BED8116A417
	for ; Fri, 30 Nov 2007 08:50: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 8112513C455
	for ; Fri, 30 Nov 2007 08:50: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 lAU8omX4013115
	for ; Fri, 30 Nov 2007 08:50:48 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU8omZl013112
	for perforce@freebsd.org; Fri, 30 Nov 2007 08:50:48 GMT
	(envelope-from jb@freebsd.org)
Date: Fri, 30 Nov 2007 08:50:48 GMT
Message-Id: <200711300850.lAU8omZl013112@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 129816 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: Fri, 30 Nov 2007 08:50:49 -0000

http://perforce.freebsd.org/chv.cgi?CH=129816

Change 129816 by jb@jb_freebsd1 on 2007/11/30 08:50:16

	For the time being, use the distributed script rather than a customised
	version.

Affected files ...

.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/genscripts.sh#3 delete

Differences ...

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 08:55:56 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id CFAB816A421; Fri, 30 Nov 2007 08:55: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 722B616A419
	for ; Fri, 30 Nov 2007 08:55:55 +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 49BD613C46B
	for ; Fri, 30 Nov 2007 08:55:55 +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 lAU8tsFO013289
	for ; Fri, 30 Nov 2007 08:55:54 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU8ts6W013286
	for perforce@freebsd.org; Fri, 30 Nov 2007 08:55:54 GMT
	(envelope-from jb@freebsd.org)
Date: Fri, 30 Nov 2007 08:55:54 GMT
Message-Id: <200711300855.lAU8ts6W013286@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 129817 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: Fri, 30 Nov 2007 08:55:56 -0000

http://perforce.freebsd.org/chv.cgi?CH=129817

Change 129817 by jb@jb_freebsd1 on 2007/11/30 08:55:12

	Update for the new version.

Affected files ...

.. //depot/projects/binutils/src/gnu/usr.bin/binutils/Makefile.inc0#6 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/addr2line/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ar/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/as/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile#4 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.alpha#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.amd64#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.arm#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.i386#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.ia64#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.powerpc#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.sparc64#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/config.h#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/bfd.h#4 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/bfd_stdint.h#1 add
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/config.h.fbsd#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libbinutils/Makefile#4 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libiberty/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libintl/Makefile#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libintl/config.h#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libintl/libintl.h#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libopcodes/Makefile#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libopcodes/Makefile.amd64#2 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libopcodes/config.h#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/nm/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/objcopy/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/objdump/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/ranlib/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/readelf/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/size/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/strings/Makefile#3 edit
.. //depot/projects/binutils/src/gnu/usr.bin/binutils/strip/Makefile#3 edit

Differences ...

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/Makefile.inc0#6 (text+ko) ====

@@ -27,6 +27,8 @@
 .else
 CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64
 .endif
+CFLAGS+= -DREPORT_BUGS_TO=\"\"
+CFLAGS+= -DLOCALEDIR=\"/usr/share/locale\"
 
 CFLAGS+= -I.
 .if exists(${.CURDIR}/${TARGET_ARCH})

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/addr2line/Makefile#3 (text+ko) ====

@@ -10,6 +10,7 @@
 CFLAGS+= -D_GNU_SOURCE
 CFLAGS+= -I${.CURDIR}/${RELTOP}/libbinutils
 CFLAGS+= -I${SRCDIR}/binutils
+CFLAGS+= -I${.CURDIR}/../libintl
 DPADD=	${RELTOP}/libbinutils/libbinutils.a
 DPADD+=	${RELTOP}/libbfd/libbfd.a
 DPADD+=	${RELTOP}/libiberty/libiberty.a

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ar/Makefile#3 (text+ko) ====

@@ -10,6 +10,7 @@
 CFLAGS+= -I${.CURDIR}/${RELTOP}/libbinutils
 CFLAGS+= -I${SRCDIR}/binutils
 CFLAGS+= -I${SRCDIR}/bfd
+CFLAGS+= -I${.CURDIR}/../libintl
 NO_SHARED?= yes
 DPADD=	${RELTOP}/libbinutils/libbinutils.a
 DPADD+=	${RELTOP}/libbfd/libbfd.a

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/as/Makefile#3 (text+ko) ====

@@ -11,12 +11,39 @@
 
 PROG=	as
 MAN=	doc/as.1
-SRCS+=	app.c as.c atof-generic.c atof-ieee.c \
-	cond.c dwarf2dbg.c ecoff.c expr.c flonum-copy.c flonum-konst.c \
-	flonum-mult.c frags.c hash.c input-file.c \
-	input-scrub.c listing.c literal.c macro.c messages.c \
-	obj-elf.c output-file.c read.c sb.c stabs.c \
-	subsegs.c symbols.c write.c depend.c ehopt.c dw2gencfi.c
+SRCS+=			\
+	app.c		\
+	as.c		\
+	atof-generic.c	\
+	atof-ieee.c	\
+	cond.c		\
+	depend.c	\
+	dw2gencfi.c	\
+	dwarf2dbg.c	\
+	ecoff.c		\
+	ehopt.c		\
+	expr.c		\
+	flonum-copy.c	\
+	flonum-konst.c	\
+	flonum-mult.c	\
+	frags.c		\
+	hash.c		\
+	input-file.c	\
+	input-scrub.c	\
+	listing.c	\
+	literal.c	\
+	macro.c		\
+	messages.c	\
+	obj-elf.c	\
+	output-file.c	\
+	read.c		\
+	remap.c		\
+	sb.c		\
+	stabs.c		\
+	subsegs.c	\
+	symbols.c	\
+	write.c
+
 # DEO: why not used?
 #SRCS+=	itbl-ops.c
 
@@ -45,6 +72,7 @@
 CFLAGS+= -D_GNU_SOURCE
 CFLAGS+= -I${SRCDIR}/gas -I${SRCDIR}/gas/config -I${SRCDIR}
 CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${TARGET_ARCH}-freebsd
+CFLAGS+= -I${.CURDIR}/../libintl
 
 NO_SHARED?=	yes
 

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile#4 (text+ko) ====

@@ -12,7 +12,7 @@
 SCRIPTDIR= /usr/libdata/ldscripts
 SRCS+=	ldcref.c ldctor.c ldemul.c ldemul-list.h ldexp.c ldfile.c \
 	ldgram.y ldlang.c ldlex.l ldmain.c ldmisc.c \
-	ldver.c ldwrite.c lexsup.c mri.c
+	ldver.c ldwrite.c lexsup.c mri.c sha1.c
 
 WARNS?=	0	# ldemul.h problem (`struct option' declared inside parameter list)
 CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
@@ -23,6 +23,7 @@
 CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\"
 CFLAGS+= -D_GNU_SOURCE
 CFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd
+CFLAGS+= -I${.CURDIR}/../libintl
 NO_SHARED?= yes
 DPADD=	${RELTOP}/libbfd/libbfd.a
 DPADD+=	${RELTOP}/libiberty/libiberty.a

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.alpha#2 (text+ko) ====

@@ -12,22 +12,25 @@
 CLEANFILES+=	e${NATIVE_EMULATION}.c eelf64alpha.c ealpha.c
 
 e${NATIVE_EMULATION}.c:	emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
 
 eelf64alpha.c: emulparams/elf64alpha.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no elf64alpha ${TARGET_TUPLE}
 
 ealpha.c: emulparams/alpha.sh emultempl/generic.em scripttempl/alpha.sc \
-    genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no alpha ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.amd64#2 (text+ko) ====

@@ -5,8 +5,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
@@ -21,8 +22,9 @@
 SRCS+=		e${X86_EMULATION}.c
 CLEANFILES+=	e${X86_EMULATION}.c
 e${X86_EMULATION}.c: emulparams/${X86_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_i386_path} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${_i386_path} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${X86_EMULATION} "" no ${X86_EMULATION} ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.arm#2 (text+ko) ====

@@ -9,8 +9,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: ${.CURDIR}/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE} \

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.i386#2 (text+ko) ====

@@ -5,8 +5,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.ia64#2 (text+ko) ====

@@ -5,8 +5,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
@@ -16,8 +17,9 @@
 SRCS+=	eelf64_ia64.c
 CLEANFILES+=	eelf64_ia64.c
 eelf64_ia64.c: emulparams/elf64_ia64.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    elf64_ia64 "" no elf64_ia64 ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.powerpc#2 (text+ko) ====

@@ -5,8 +5,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} ""  no ${NATIVE_EMULATION} ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/Makefile.sparc64#2 (text+ko) ====

@@ -5,8 +5,9 @@
 SRCS+=		e${NATIVE_EMULATION}.c
 CLEANFILES+=	e${NATIVE_EMULATION}.c
 e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
@@ -22,8 +23,9 @@
 SRCS+=		eelf${BITS}_sparc.c
 CLEANFILES+=	eelf${BITS}_sparc.c
 eelf${BITS}_sparc.c: emulparams/elf${BITS}_sparc.sh emultempl/elf32.em \
-    scripttempl/elf.sc genscripts.sh stringify.sed
-	sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+    scripttempl/elf.sc stringify.sed
+	sh ${SRCDIR}/ld/genscripts.sh ${SRCDIR}/ld ${LIBSERACHPATH} \
+	    ${TOOLS_PREFIX}/usr \
 	    ${TOOLS_PREFIX}/usr \
 	    ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
 	    elf${BITS}_sparc "" no elf${BITS}_sparc ${TARGET_TUPLE}

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/ld/config.h#3 (text+ko) ====

@@ -1,33 +1,14 @@
+/* $FreeBSD$ */
 /* config.h.  Generated by configure.  */
 /* config.in.  Generated from configure.in by autoheader.  */
 
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
-/* Define to 1 if NLS is requested */
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
 #define ENABLE_NLS 1
 
 /* Additional extension a shared object might have. */
 /* #undef EXTRA_SHLIB_EXTENSION */
 
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have  and it should be used (not on Ultrix).
-   */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define to 1 if you have the  header file. */
-/* #undef HAVE_ARGZ_H */
-
-/* Define to 1 if you have the `dcgettext' function. */
-/* #undef HAVE_DCGETTEXT */
-
 /* Define to 1 if you have the declaration of `environ', and to 0 if you
    don't. */
 #define HAVE_DECL_ENVIRON 0
@@ -55,81 +36,42 @@
    */
 #define HAVE_DIRENT_H 1
 
+/* Define to 1 if you have the  header file. */
+#define HAVE_DLFCN_H 1
+
 /* Define to 1 if you have the  header file. */
 #define HAVE_ELF_HINTS_H 1
 
-/* Define to 1 if you have the `getcwd' function. */
-#define HAVE_GETCWD 1
-
-/* Define to 1 if you have the `getpagesize' function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext. */
-/* #undef HAVE_GETTEXT */
-
 /* Define to 1 if you have the `glob' function. */
 #define HAVE_GLOB 1
 
 /* Define to 1 if you have the  header file. */
 #define HAVE_INTTYPES_H 1
 
-/* Define if your locale.h file contains LC_MESSAGES. */
-#define HAVE_LC_MESSAGES 1
-
 /* Define to 1 if you have the  header file. */
 #define HAVE_LIMITS_H 1
 
-/* Define to 1 if you have the  header file. */
-#define HAVE_LOCALE_H 1
-
-/* Define to 1 if you have the  header file. */
-/* #undef HAVE_MALLOC_H */
-
 /* Define to 1 if you have the  header file. */
 #define HAVE_MEMORY_H 1
 
-/* Define to 1 if you have a working `mmap' system call. */
-#define HAVE_MMAP 1
-
-/* Define to 1 if you have the `munmap' function. */
-#define HAVE_MUNMAP 1
+/* Define to 1 if you have the `mkstemp' function. */
+#define HAVE_MKSTEMP 1
 
 /* Define to 1 if you have the  header file, and it defines `DIR'. */
 /* #undef HAVE_NDIR_H */
 
-/* Define to 1 if you have the  header file. */
-#define HAVE_NL_TYPES_H 1
-
-/* Define to 1 if you have the `putenv' function. */
-#define HAVE_PUTENV 1
-
 /* Define to 1 if you have the `realpath' function. */
 #define HAVE_REALPATH 1
 
 /* Define to 1 if you have the `sbrk' function. */
 #define HAVE_SBRK 1
 
-/* Define to 1 if you have the `setenv' function. */
-#define HAVE_SETENV 1
-
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
 /* Define to 1 if you have the  header file. */
 #define HAVE_STDINT_H 1
 
 /* Define to 1 if you have the  header file. */
 #define HAVE_STDLIB_H 1
 
-/* Define if you have the stpcpy function */
-#define HAVE_STPCPY 1
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#define HAVE_STRCASECMP 1
-
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
-
 /* Define to 1 if you have the  header file. */
 #define HAVE_STRINGS_H 1
 
@@ -156,18 +98,13 @@
 /* Define to 1 if you have the  header file. */
 #define HAVE_UNISTD_H 1
 
-/* Define to 1 if you have the  header file. */
-/* #undef HAVE_VALUES_H */
+/* Define to 1 if you have the `waitpid' function. */
+#define HAVE_WAITPID 1
 
-/* Define to 1 if you have the `__argz_count' function. */
-/* #undef HAVE___ARGZ_COUNT */
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
 
-/* Define to 1 if you have the `__argz_next' function. */
-/* #undef HAVE___ARGZ_NEXT */
-
-/* Define to 1 if you have the `__argz_stringify' function. */
-/* #undef HAVE___ARGZ_STRINGIFY */
-
 /* Name of package */
 #define PACKAGE "ld"
 
@@ -186,13 +123,8 @@
 /* Define to the version of this package. */
 #define PACKAGE_VERSION ""
 
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
+/* The size of a `long', as computed by sizeof. */
+/* #undef SIZEOF_LONG */
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -201,23 +133,8 @@
 /* #undef USE_BINARY_FOPEN */
 
 /* Version number of package */
-#define VERSION "2.17"
+#define VERSION "2.18"
 
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
 #define YYTEXT_POINTER 1
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to `long' if  does not define. */
-/* #undef off_t */
-
-/* Define to `unsigned' if  does not define. */
-/* #undef size_t */

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/Makefile#3 (text+ko) ====

@@ -6,7 +6,7 @@
 
 LIB=	bfd
 SRCS+=	archive.c archive64.c archures.c bfd.c bfdwin.c binary.c cache.c \
-	coffgen.c corefile.c elf.c elf-eh-frame.c elf-strtab.c \
+	coffgen.c corefile.c elf.c elf-attrs.c elf-eh-frame.c elf-strtab.c \
 	elf-vxworks.c format.c \
 	hash.c ihex.c init.c libbfd.c linker.c merge.c opncls.c reloc.c \
 	section.c srec.c stab-syms.c stabs.c syms.c targets.c tekhex.c \
@@ -18,6 +18,7 @@
 .endif
 CFLAGS+= -D_GNU_SOURCE
 CFLAGS+= -I${SRCDIR}/bfd
+CFLAGS+= -I${.CURDIR}/../libintl
 INTERNALLIB=
 CLEANFILES+=	bfdver.h config.h targmatch.h
 
@@ -48,11 +49,12 @@
 .endfor
 CFLAGS+= -DSELECT_VECS="${SELVEC}"
 CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
+CFLAGS+= -DDEBUGDIR=\".\"
 
 # XXX:DEO should grab BFD_VERSION_DATE from ${VERSION}...
 bfdver.h: Makefile
-	echo '#define BFD_VERSION	215000000'	> ${.TARGET}
-	echo '#define BFD_VERSION_DATE	20040517'	>> ${.TARGET}
+	echo '#define BFD_VERSION	218000000'	> ${.TARGET}
+	echo '#define BFD_VERSION_DATE	20070828'	>> ${.TARGET}
 	echo '#define BFD_VERSION_STRING ${VERSION}'	>> ${.TARGET}
 
 targmatch.h: targmatch.sed config.bfd

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/libbfd/bfd.h#4 (text+ko) ====

@@ -1,5 +1,3 @@
-/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/bfd.h,v 1.4 2007/02/11 07:15:06 marcel Exp $ */
-
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
    generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
    "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
@@ -10,7 +8,8 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -18,7 +17,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -28,7 +27,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #ifndef __BFD_H_SEEN__
 #define __BFD_H_SEEN__
@@ -51,27 +50,47 @@
 #endif
 #endif
 
+/* This is a utility macro to handle the situation where the code
+   wants to place a constant string into the code, followed by a
+   comma and then the length of the string.  Doing this by hand
+   is error prone, so using this macro is safer.  The macro will
+   also safely handle the case where a NULL is passed as the arg.  */
+#define STRING_COMMA_LEN(STR) (STR), ((STR) ? sizeof (STR) - 1 : 0)
+/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
+   to create the arguments to another macro, since the preprocessor
+   will mis-count the number of arguments to the outer macro (by not
+   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
+   problem for example when trying to use STRING_COMMA_LEN to build
+   the arguments to the strncmp() macro.  Hence this alternative
+   definition of strncmp is provided here.
+   
+   Note - these macros do NOT work if STR2 is not a constant string.  */
+#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
+  /* strcpy() can have a similar problem, but since we know we are
+     copying a constant string, we can use memcpy which will be faster
+     since there is no need to check for a NUL byte inside STR.  We
+     can also save time if we do not need to copy the terminating NUL.  */
+#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
+#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
+
+
 /* The word size used by BFD on the host.  This may be 64 with a 32
    bit target if the host is 64 bit, or if other 64 bit targets have
    been selected with --enable-targets, or if --enable-64-bit-bfd.  */
 #define BFD_ARCH_SIZE 64
 
+/* The word size of the default bfd target.  */
+#define BFD_DEFAULT_TARGET_SIZE 64
 
-#if defined(__i386__) || defined(__powerpc__) || defined(__arm__)
-#define BFD_HOST_64BIT_LONG 0
-#define BFD_HOST_64_BIT long long
-#define BFD_HOST_U_64_BIT unsigned long long
-#elif defined(__alpha__) || defined(__sparc64__) || defined(__amd64__) || defined(__ia64__)
 #define BFD_HOST_64BIT_LONG 1
+#define BFD_HOST_64BIT_LONG_LONG 0
+#define BFD_HOST_LONG_LONG 1
+#if 1
 #define BFD_HOST_64_BIT long
 #define BFD_HOST_U_64_BIT unsigned long
-#else
-#error Unsupported architecture/platform.
-#endif /* 64-bit host */
-
-#define BFD_HOST_LONG_LONG 1
 typedef BFD_HOST_64_BIT bfd_int64_t;
 typedef BFD_HOST_U_64_BIT bfd_uint64_t;
+#endif
 
 #if BFD_ARCH_SIZE >= 64
 #define BFD64
@@ -85,6 +104,10 @@
 #endif
 #endif
 
+/* Declaring a type wide enough to hold a host long and a host pointer.  */
+#define BFD_HOSTPTR_T	unsigned long
+typedef BFD_HOSTPTR_T bfd_hostptr_t;
+
 /* Forward declaration.  */
 typedef struct bfd bfd;
 
@@ -103,14 +126,6 @@
 #define FALSE 0
 #define TRUE 1
 
-#if 0
-/* Poison.  */
-#undef false
-#undef true
-#define false dont_use_false_in_bfd
-#define true dont_use_true_in_bfd
-#endif
-
 #ifdef BFD64
 
 #ifndef BFD_HOST_64_BIT
@@ -126,6 +141,9 @@
 #if BFD_HOST_64BIT_LONG
 #define sprintf_vma(s,x) sprintf (s, "%016lx", x)
 #define fprintf_vma(f,x) fprintf (f, "%016lx", x)
+#elif BFD_HOST_64BIT_LONG_LONG
+#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
+#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
 #else
 #define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
 #define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
@@ -158,6 +176,9 @@
 
 #endif /* not BFD64  */
 
+#define HALF_BFD_SIZE_TYPE \
+  (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
+
 #ifndef BFD_HOST_64_BIT
 /* Fall back on a 32 bit type.  The idea is to make these types always
    available for function return types, but in the case that
@@ -252,6 +273,10 @@
 
 /* The sections in this BFD specify a memory page.  */
 #define HAS_LOAD_PAGE 0x1000
+
+/* This BFD has been created by the linker and doesn't correspond
+   to any input file.  */
+#define BFD_LINKER_CREATED 0x2000
 
 /* Symbols and relocation.  */
 
@@ -322,7 +347,8 @@
 #define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
 #define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
 #define bfd_section_name(bfd, ptr) ((ptr)->name)
-#define bfd_section_size(bfd, ptr) (bfd_get_section_size_before_reloc(ptr))
+#define bfd_section_size(bfd, ptr) ((ptr)->size)
+#define bfd_get_section_size(ptr) ((ptr)->size)
 #define bfd_section_vma(bfd, ptr) ((ptr)->vma)
 #define bfd_section_lma(bfd, ptr) ((ptr)->lma)
 #define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
@@ -334,8 +360,20 @@
 #define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
 #define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
 #define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
+/* Find the address one past the end of SEC.  */
+#define bfd_get_section_limit(bfd, sec) \
+  (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
+   / bfd_octets_per_byte (bfd))
+
+/* Return TRUE if section has been discarded.  */
+#define elf_discarded_section(sec)				\
+  (!bfd_is_abs_section (sec)					\
+   && bfd_is_abs_section ((sec)->output_section)		\
+   && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE		\
+   && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
 
-typedef struct stat stat_type;
+/* Forward define.  */
+struct stat;
 
 typedef enum bfd_print_symbol
 {
@@ -383,8 +421,6 @@
 {
   /* The hash array.  */
   struct bfd_hash_entry **table;
-  /* The number of slots in the hash table.  */
-  unsigned int size;
   /* A function used to create new elements in the hash table.  The
      first entry is itself a pointer to an element.  When this
      function is first invoked, this pointer will be NULL.  However,
@@ -397,6 +433,14 @@
    /* An objalloc for this hash table.  This is a struct objalloc *,
      but we use void * to avoid requiring the inclusion of objalloc.h.  */
   void *memory;
+  /* The number of slots in the hash table.  */
+  unsigned int size;
+  /* The number of entries in the hash table.  */
+  unsigned int count;
+  /* The size of elements.  */
+  unsigned int entsize;
+  /* If non-zero, don't grow the hash table.  */
+  unsigned int frozen:1;
 };
 
 /* Initialize a hash table.  */
@@ -404,7 +448,8 @@
   (struct bfd_hash_table *,
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 			       struct bfd_hash_table *,
-			       const char *));
+			       const char *),
+   unsigned int);
 
 /* Initialize a hash table specifying a size.  */
 extern bfd_boolean bfd_hash_table_init_n
@@ -412,7 +457,7 @@
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 			       struct bfd_hash_table *,
 			       const char *),
-   unsigned int size);
+   unsigned int, unsigned int);
 
 /* Free up a hash table.  */
 extern void bfd_hash_table_free
@@ -447,6 +492,24 @@
    bfd_boolean (*) (struct bfd_hash_entry *, void *),
    void *info);
 
+/* Allows the default size of a hash table to be configured. New hash
+   tables allocated using bfd_hash_table_init will be created with
+   this size.  */
+extern void bfd_hash_set_default_size (bfd_size_type);
+
+/* This structure is used to keep track of stabs in sections
+   information while linking.  */
+
+struct stab_info
+{
+  /* A hash table used to hold stabs strings.  */
+  struct bfd_strtab_hash *strings;
+  /* The header file hash table.  */
+  struct bfd_hash_table includes;
+  /* The first .stabstr section.  */
+  struct bfd_section *stabstr;
+};
+
 #define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
 
 /* User program access to BFD facilities.  */
@@ -519,6 +582,8 @@
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
+extern bfd_boolean bfd_cache_close_all (void);
+
 extern bfd_boolean bfd_record_phdr
   (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
    bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
@@ -548,6 +613,9 @@
 
 bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
 void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
+
+extern bfd_boolean bfd_section_already_linked_table_init (void);
+extern void bfd_section_already_linked_table_free (void);
 
 /* Externally visible ECOFF routines.  */
 
@@ -601,8 +669,6 @@
   (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
    const struct ecoff_debug_swap *swap,
    struct bfd_link_info *info, file_ptr where);
-extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 
 /* Externally visible ELF routines.  */
 
@@ -616,28 +682,44 @@
 enum dynamic_lib_link_class {
   DYN_NORMAL = 0,
   DYN_AS_NEEDED = 1,
-  DYN_DT_NEEDED = 2
+  DYN_DT_NEEDED = 2,
+  DYN_NO_ADD_NEEDED = 4,
+  DYN_NO_NEEDED = 8
+};
+
+enum notice_asneeded_action {
+  notice_as_needed,
+  notice_not_needed,
+  notice_needed
 };
 
 extern bfd_boolean bfd_elf_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *, bfd_boolean);
+  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
+   bfd_boolean);
 extern struct bfd_link_needed_list *bfd_elf_get_needed_list
   (bfd *, struct bfd_link_info *);
 extern bfd_boolean bfd_elf_get_bfd_needed_list
   (bfd *, struct bfd_link_needed_list **);
 extern bfd_boolean bfd_elf_size_dynamic_sections
   (bfd *, const char *, const char *, const char *, const char * const *,
-   struct bfd_link_info *, struct bfd_section **, struct bfd_elf_version_tree *);
+   struct bfd_link_info *, struct bfd_section **,
+   struct bfd_elf_version_tree *);
+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
+  (bfd *, struct bfd_link_info *);
 extern void bfd_elf_set_dt_needed_name
   (bfd *, const char *);
 extern const char *bfd_elf_get_dt_soname
   (bfd *);
 extern void bfd_elf_set_dyn_lib_class
-  (bfd *, int);
+  (bfd *, enum dynamic_lib_link_class);
+extern int bfd_elf_get_dyn_lib_class
+  (bfd *);
 extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
   (bfd *, struct bfd_link_info *);
 extern bfd_boolean bfd_elf_discard_info
   (bfd *, struct bfd_link_info *);
+extern unsigned int _bfd_elf_default_action_discarded
+  (struct bfd_section *);
 
 /* Return an upper bound on the number of bytes required to store a
    copy of ABFD's program header table entries.  Return -1 if an error
@@ -669,7 +751,7 @@
    the remote memory.  */
 extern bfd *bfd_elf_bfd_from_remote_memory
   (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
-   int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
+   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 
 /* Return the arch_size field of an elf bfd, or -1 if not elf.  */
 extern int bfd_get_arch_size
@@ -682,10 +764,20 @@
 extern struct bfd_section *_bfd_elf_tls_setup
   (bfd *, struct bfd_link_info *);
 
+extern void _bfd_fix_excluded_sec_syms
+  (bfd *, struct bfd_link_info *);
+
+extern unsigned bfd_m68k_mach_to_features (int);
+
+extern int bfd_m68k_features_to_mach (unsigned);
+
 extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
-extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
-  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
+  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+   char **);
+
+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
+  (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+   char **);
 
 /* SunOS shared library support routines for the linker.  */
 
@@ -694,7 +786,8 @@
 extern bfd_boolean bfd_sunos_record_link_assignment
   (bfd *, struct bfd_link_info *, const char *);
 extern bfd_boolean bfd_sunos_size_dynamic_sections
-  (bfd *, struct bfd_link_info *, struct bfd_section **, struct bfd_section **, struct bfd_section **);
+  (bfd *, struct bfd_link_info *, struct bfd_section **,
+   struct bfd_section **, struct bfd_section **);
 
 /* Linux shared library support routines for the linker.  */
 
@@ -775,6 +868,27 @@
 extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
   (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
 
+/* ARM VFP11 erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_VFP11_FIX_DEFAULT,
+  BFD_ARM_VFP11_FIX_NONE,
+  BFD_ARM_VFP11_FIX_SCALAR,
+  BFD_ARM_VFP11_FIX_VECTOR
+} bfd_arm_vfp11_fix;
+
+extern void bfd_elf32_arm_init_maps
+  (bfd *);
+
+extern void bfd_elf32_arm_set_vfp11_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_vfp11_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
 /* ARM Interworking support.  Called from linker.  */
 extern bfd_boolean bfd_arm_allocate_interworking_sections
   (struct bfd_link_info *);
@@ -800,7 +914,11 @@
   (struct bfd_link_info *);
 
 extern bfd_boolean bfd_elf32_arm_process_before_allocation
-  (bfd *, struct bfd_link_info *, int);
+  (bfd *, struct bfd_link_info *);
+
+void bfd_elf32_arm_set_target_relocs
+  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
+   int, int);
 
 extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   (bfd *, struct bfd_link_info *);
@@ -808,6 +926,16 @@
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
+/* ELF ARM mapping symbol support */
+#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
+#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
+#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
+extern bfd_boolean bfd_is_arm_special_symbol_name
+  (const char * name, int type);
+
+extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
+
 /* ARM Note section processing.  */
 extern bfd_boolean bfd_arm_merge_machines
   (bfd *, bfd *);
@@ -836,16 +964,54 @@
 extern void bfd_elf64_ia64_after_parse
   (int);
 
+/* This structure is used for a comdat section, as in PE.  A comdat
+   section is associated with a particular symbol.  When the linker
+   sees a comdat section, it keeps only one of the sections with a
+   given name and associated with a given symbol.  */
+
+struct coff_comdat_info
+{
+  /* The name of the symbol associated with a comdat section.  */
+  const char *name;
+
+  /* The local symbol table index of the symbol associated with a
+     comdat section.  This is only meaningful to the object file format
+     specific code; it is not an index into the list returned by
+     bfd_canonicalize_symtab.  */
+  long symbol;
+};
+
+extern struct coff_comdat_info *bfd_coff_get_comdat_section
+  (bfd *, struct bfd_section *);
+
 /* Extracted from init.c.  */
 void bfd_init (void);
 
 /* Extracted from opncls.c.  */
+bfd *bfd_fopen (const char *filename, const char *target,
+    const char *mode, int fd);

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 08:57:58 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id CE64B16A41A; Fri, 30 Nov 2007 08:57:57 +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 8528E16A417
	for ; Fri, 30 Nov 2007 08:57:57 +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 5E1E013C45B
	for ; Fri, 30 Nov 2007 08:57:57 +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 lAU8vvHr013373
	for ; Fri, 30 Nov 2007 08:57:57 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAU8vvtA013370
	for perforce@freebsd.org; Fri, 30 Nov 2007 08:57:57 GMT
	(envelope-from jb@freebsd.org)
Date: Fri, 30 Nov 2007 08:57:57 GMT
Message-Id: <200711300857.lAU8vvtA013370@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 129818 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: Fri, 30 Nov 2007 08:57:58 -0000

http://perforce.freebsd.org/chv.cgi?CH=129818

Change 129818 by jb@jb_freebsd1 on 2007/11/30 08:57:38

	Make this compile cleanly.
	
	No vendor branch here. Nyuk Nyuk Nyuk.

Affected files ...

.. //depot/projects/binutils/src/contrib/binutils/intl/l10nflist.c#3 edit

Differences ...

==== //depot/projects/binutils/src/contrib/binutils/intl/l10nflist.c#3 (text+ko) ====

@@ -139,12 +139,12 @@
 #endif	/* !_LIBC && !HAVE___ARGZ_STRINGIFY */
 
 #if !defined _LIBC && !defined HAVE___ARGZ_NEXT
-static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+static const char *argz_next__ PARAMS ((const char *argz, size_t argz_len,
 				  const char *entry));
 
-static char *
+static const char *
 argz_next__ (argz, argz_len, entry)
-     char *argz;
+     const char *argz;
      size_t argz_len;
      const char *entry;
 {
@@ -366,9 +366,9 @@
 	if (dirlist_count > 1)
 	  {
 	    /* Iterate over all elements of the DIRLIST.  */
-	    char *dir = NULL;
+	    const char *dir = NULL;
 
-	    while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+	    while ((dir = __argz_next (dirlist, dirlist_len, dir))
 		   != NULL)
 	      retval->successor[entries++]
 		= _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1,

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 12:35:51 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 5357116A46B; Fri, 30 Nov 2007 12:35: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 EC0E716A41A
	for ; Fri, 30 Nov 2007 12:35:50 +0000 (UTC)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id D068E13C4E1
	for ; Fri, 30 Nov 2007 12:35:50 +0000 (UTC)
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id lAUCZosc028112
	for ; Fri, 30 Nov 2007 12:35:50 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUCZo0H028109
	for perforce@freebsd.org; Fri, 30 Nov 2007 12:35:50 GMT
	(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Fri, 30 Nov 2007 12:35:50 GMT
Message-Id: <200711301235.lAUCZo0H028109@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129821 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: Fri, 30 Nov 2007 12:35:51 -0000

http://perforce.freebsd.org/chv.cgi?CH=129821

Change 129821 by rwatson@rwatson_fledge on 2007/11/30 12:35:38

	Correct typo.
	Submitted by:	Marian Cerny 	

Affected files ...

.. //depot/projects/trustedbsd/openbsm/etc/audit_event#27 edit

Differences ...

==== //depot/projects/trustedbsd/openbsm/etc/audit_event#27 (text+ko) ====

@@ -1,7 +1,7 @@
 #
-# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#26 $
+# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#27 $
 #
-# The mapping between event identifiers and values is also hard-codedd in
+# The mapping between event identifiers and values is also hard-coded in
 # audit_kevents.h and audit_uevents.h, so changes must occur in both places,
 # and programs, such as the kernel, may need to be recompiled to recognize
 # those changes.  It is advisable not to change the numbering or naming of

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 18:17:45 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 31AB916A46B; Fri, 30 Nov 2007 18:17:45 +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 C966216A468
	for ; Fri, 30 Nov 2007 18:17:44 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id BE4D313C45A
	for ; Fri, 30 Nov 2007 18:17:44 +0000 (UTC)
	(envelope-from peter@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 lAUIHi1Z068486
	for ; Fri, 30 Nov 2007 18:17:44 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUIHg55068483
	for perforce@freebsd.org; Fri, 30 Nov 2007 18:17:42 GMT
	(envelope-from peter@freebsd.org)
Date: Fri, 30 Nov 2007 18:17:42 GMT
Message-Id: <200711301817.lAUIHg55068483@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129832 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: Fri, 30 Nov 2007 18:17:46 -0000

http://perforce.freebsd.org/chv.cgi?CH=129832

Change 129832 by peter@peter_overcee on 2007/11/30 18:16:49

	IFC @129831

Affected files ...

.. //depot/projects/hammer/ObsoleteFiles.inc#42 integrate
.. //depot/projects/hammer/cddl/Makefile.inc#3 integrate
.. //depot/projects/hammer/cddl/lib/libnvpair/Makefile#3 integrate
.. //depot/projects/hammer/compat/opensolaris/include/alloca.h#1 branch
.. //depot/projects/hammer/compat/opensolaris/include/fcntl.h#1 branch
.. //depot/projects/hammer/compat/opensolaris/include/stdio.h#1 branch
.. //depot/projects/hammer/compat/opensolaris/include/stdlib.h#1 branch
.. //depot/projects/hammer/compat/opensolaris/include/strings.h#1 branch
.. //depot/projects/hammer/compat/opensolaris/include/unistd.h#1 branch
.. //depot/projects/hammer/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#3 integrate
.. //depot/projects/hammer/etc/freebsd-update.conf#3 integrate
.. //depot/projects/hammer/include/elf.h#3 integrate
.. //depot/projects/hammer/lib/libkse/Makefile#3 integrate
.. //depot/projects/hammer/lib/libkse/arch/amd64/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/amd64/include/pthread_md.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/arm/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/i386/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/i386/include/pthread_md.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/ia64/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/powerpc/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/powerpc/include/pthread_md.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/sparc64/include/atomic_ops.h#2 integrate
.. //depot/projects/hammer/lib/libkse/arch/sparc64/include/pthread_md.h#2 integrate
.. //depot/projects/hammer/lib/libkse/sys/lock.c#3 integrate
.. //depot/projects/hammer/lib/libkse/sys/thr_error.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_accept.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_aio_suspend.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_atfork.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_destroy.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_get_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getdetachstate.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getguardsize.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getinheritsched.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getschedparam.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getschedpolicy.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getscope.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getstack.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getstackaddr.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_getstacksize.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_init.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setcreatesuspend_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setdetachstate.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setguardsize.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setinheritsched.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setschedparam.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setschedpolicy.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setscope.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setstack.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setstackaddr.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_attr_setstacksize.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_barrier.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_barrierattr.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_cancel.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_clean.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_close.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_concurrency.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_cond.c#3 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_condattr_destroy.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_condattr_init.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_condattr_pshared.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_connect.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_creat.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_create.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_detach.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_equal.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_execve.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_exit.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_fcntl.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_find_thread.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_fork.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_fsync.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_getschedparam.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_info.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_init.c#3 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_join.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_kern.c#3 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_kill.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_main_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mattr_init.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mattr_kind_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mattr_pshared.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_msync.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_multi_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mutex.c#4 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mutex_prioceiling.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mutex_protocol.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_mutexattr_destroy.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_nanosleep.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_once.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_open.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_pause.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_poll.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_priority_queue.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_private.h#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_pselect.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_pspinlock.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_raise.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_read.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_readv.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_resume_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_rtld.c#3 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_rwlock.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_rwlockattr.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_select.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_self.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_seterrno.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_setprio.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_setschedparam.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sig.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigaction.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigaltstack.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigmask.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigpending.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigprocmask.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigsuspend.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sigwait.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_single_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_sleep.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_spec.c#3 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_spinlock.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_stack.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_suspend_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_switch_np.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_symbols.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_system.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_tcdrain.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_vfork.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_wait.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_wait4.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_waitpid.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_write.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_writev.c#2 integrate
.. //depot/projects/hammer/lib/libkse/thread/thr_yield.c#2 integrate
.. //depot/projects/hammer/release/doc/share/sgml/release.ent#23 integrate
.. //depot/projects/hammer/sbin/atacontrol/atacontrol.8#9 integrate
.. //depot/projects/hammer/share/man/man4/aac.4#15 integrate
.. //depot/projects/hammer/share/man/man4/enc.4#5 integrate
.. //depot/projects/hammer/share/man/man9/Makefile#76 integrate
.. //depot/projects/hammer/share/man/man9/stack.9#2 integrate
.. //depot/projects/hammer/sys/amd64/amd64/pmap.c#166 integrate
.. //depot/projects/hammer/sys/amd64/amd64/prof_machdep.c#7 integrate
.. //depot/projects/hammer/sys/amd64/include/pci_cfgreg.h#14 integrate
.. //depot/projects/hammer/sys/amd64/pci/pci_cfgreg.c#26 integrate
.. //depot/projects/hammer/sys/arm/arm/busdma_machdep.c#27 integrate
.. //depot/projects/hammer/sys/arm/arm/cpufunc.c#17 integrate
.. //depot/projects/hammer/sys/compat/linprocfs/linprocfs.c#39 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/rpc/xdr.h#2 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/sys/atomic.h#2 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/sys/bitmap.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/cpupart.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/cpuvar.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/cyclic.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/elf.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/kmem.h#2 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/sys/mman.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/modctl.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/objfs.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/param.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/pcpu.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/proc.h#4 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/sys/stat.h#1 branch
.. //depot/projects/hammer/sys/compat/opensolaris/sys/time.h#2 integrate
.. //depot/projects/hammer/sys/compat/opensolaris/sys/types.h#3 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/common/avl/avl.c#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#3 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/rpc/xdr.c#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/rpc/xdr.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/sys/byteorder.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/sys/isa_defs.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/sys/procset.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/sys/sysmacros.h#2 integrate
.. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/sys/vmem.h#2 integrate
.. //depot/projects/hammer/sys/dev/amr/amr.c#35 integrate
.. //depot/projects/hammer/sys/dev/amr/amr_cam.c#18 integrate
.. //depot/projects/hammer/sys/dev/em/if_em.c#71 integrate
.. //depot/projects/hammer/sys/dev/em/if_em.h#35 integrate
.. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_x86.c#6 integrate
.. //depot/projects/hammer/sys/dev/random/yarrow.c#10 integrate
.. //depot/projects/hammer/sys/i386/i386/pmap.c#102 integrate
.. //depot/projects/hammer/sys/i386/isa/prof_machdep.c#10 integrate
.. //depot/projects/hammer/sys/i386/pci/pci_cfgreg.c#28 integrate
.. //depot/projects/hammer/sys/kern/kern_clock.c#43 integrate
.. //depot/projects/hammer/sys/modules/zfs/Makefile#5 integrate
.. //depot/projects/hammer/sys/net/if_enc.c#3 integrate
.. //depot/projects/hammer/sys/netipsec/ipsec.c#19 integrate
.. //depot/projects/hammer/sys/netipsec/ipsec.h#13 integrate
.. //depot/projects/hammer/sys/netipsec/ipsec_input.c#14 integrate
.. //depot/projects/hammer/sys/netipsec/ipsec_output.c#13 integrate
.. //depot/projects/hammer/sys/netipsec/xform.h#4 integrate
.. //depot/projects/hammer/sys/netipsec/xform_ipip.c#13 integrate
.. //depot/projects/hammer/sys/sun4v/include/pcpu.h#6 integrate
.. //depot/projects/hammer/sys/sys/_elf_solaris.h#2 delete
.. //depot/projects/hammer/sys/sys/elf.h#2 integrate
.. //depot/projects/hammer/sys/sys/kernel.h#22 integrate
.. //depot/projects/hammer/sys/sys/param.h#97 integrate
.. //depot/projects/hammer/sys/sys/pcpu.h#15 integrate
.. //depot/projects/hammer/sys/sys/resource.h#14 integrate
.. //depot/projects/hammer/sys/sys/stat.h#13 integrate
.. //depot/projects/hammer/sys/sys/time.h#12 integrate
.. //depot/projects/hammer/sys/sys/types.h#24 integrate
.. //depot/projects/hammer/tools/regression/netinet/tcpconnect/README.tcp-md5#1 branch
.. //depot/projects/hammer/tools/regression/netinet/tcpconnect/tcpconnect.c#5 integrate
.. //depot/projects/hammer/usr.bin/fstat/zfs/Makefile#2 integrate
.. //depot/projects/hammer/usr.bin/login/login.1#9 integrate

Differences ...

==== //depot/projects/hammer/ObsoleteFiles.inc#42 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.121 2007/11/27 13:58:25 brix Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.123 2007/11/29 21:49:08 brooks Exp $
 #
 # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
 # directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,14 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20071129: Disabled static versions of libkse by default
+.if ${DEFAULT_THREAD_LIB} != "libkse" && ${MK_LIBTHR} != "no"
+OLD_FILES+=usr/lib/libkse.a
+OLD_FILES+=usr/lib/libkse_p.a
+OLD_FILES+=usr/lib/libkse_pic.a
+.endif
+# 20071129: Removed a Solaris compatibility header
+OLD_FILES+=usr/include/sys/_elf_solaris.h
 # 20071108: Removed very crunch OLDCARD support file
 OLD_FILES+=etc/defaults/pccard.conf
 # 20071104: Removed bsdlabel, fdisk and gpt from rescue on ia64.

==== //depot/projects/hammer/cddl/Makefile.inc#3 (text+ko) ====

@@ -1,3 +1,6 @@
-# $FreeBSD: src/cddl/Makefile.inc,v 1.2 2007/04/16 21:20:24 ru Exp $
+# $FreeBSD: src/cddl/Makefile.inc,v 1.3 2007/11/28 22:58:09 jb Exp $
+
+OPENSOLARIS_USR_DISTDIR= ${.CURDIR}/../../../contrib/opensolaris
+OPENSOLARIS_SYS_DISTDIR= ${.CURDIR}/../../../sys/contrib/opensolaris
 
-CFLAGS+= -D_SOLARIS_C_SOURCE
+IGNORE_PRAGMA=	YES

==== //depot/projects/hammer/cddl/lib/libnvpair/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $
+# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.3 2007/11/28 22:58:09 jb Exp $
 
 .PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libnvpair
 .PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/nvpair
@@ -10,8 +10,8 @@
 	nvpair_alloc_fixed.c \
 	nvpair.c
 
+CFLAGS+= -I${.CURDIR}/../../../compat/opensolaris/include
 CFLAGS+= -I${.CURDIR}/../../../sys/compat/opensolaris
-CFLAGS+= -I${.CURDIR}/../../../include		# XXX
 CFLAGS+= -I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common
 
 .include 

==== //depot/projects/hammer/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#3 (text+ko) ====

@@ -470,8 +470,6 @@
 
 #define	gethrestime_sec()	time(NULL)
 
-#define	open64(...)		open(__VA_ARGS__)
-#define	pread64(d, p, n, o)	pread(d, p, n, o)
 #define	pwrite64(d, p, n, o)	pwrite(d, p, n, o)
 #define	readdir64(d)		readdir(d)
 #define	SIGPENDING(td)		(0)

==== //depot/projects/hammer/etc/freebsd-update.conf#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/freebsd-update.conf,v 1.2 2007/11/12 04:47:57 cperciva Exp $
+# $FreeBSD: src/etc/freebsd-update.conf,v 1.3 2007/11/28 22:45:09 cperciva Exp $
 
 # Trusted keyprint.  Changing this is a Bad Idea unless you've received
 # a PGP-signed email from  telling you to
@@ -24,7 +24,7 @@
 # Paths which start with anything matching an entry in an UpdateIfUnmodified
 # statement will only be updated if the contents of the file have not been
 # modified by the user (unless changes are merged; see below).
-UpdateIfUnmodified /etc/ /var/
+UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
 
 # When upgrading to a new FreeBSD release, files which match MergeChanges
 # will have any local changes merged into the version from the new release.

==== //depot/projects/hammer/include/elf.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/include/elf.h,v 1.9 2006/10/04 07:25:55 jb Exp $
+ * $FreeBSD: src/include/elf.h,v 1.10 2007/11/28 22:09:12 jb Exp $
  */
 
 /*
@@ -38,8 +38,4 @@
 #include 
 #include 
 
-#ifdef _SOLARIS_C_SOURCE
-#include 
-#endif
-
 #endif /* !_ELF_H_ */

==== //depot/projects/hammer/lib/libkse/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libkse/Makefile,v 1.67 2007/11/20 02:07:28 jb Exp $
+# $FreeBSD: src/lib/libkse/Makefile,v 1.69 2007/11/30 17:20:24 deischen Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -10,12 +10,15 @@
 
 .include 
 
-.if (${DEFAULT_THREAD_LIB} == "libkse" || ${MK_LIBTHR} == "no") && \
-    ${SHLIBDIR} == "/usr/lib"
+.if ${DEFAULT_THREAD_LIB} == "libkse" || ${MK_LIBTHR} == "no"
+LIB=kse
+.if ${SHLIBDIR} == "/usr/lib"
 SHLIBDIR= /lib
 .endif
+.else
+SHLIB=kse
+.endif
 
-LIB=kse
 SHLIB_MAJOR= 3
 CFLAGS+=-DPTHREAD_KERNEL
 CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \
@@ -25,12 +28,11 @@
 CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf
 CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf/${MACHINE_ARCH}
 CFLAGS+=-fno-builtin
-CFLAGS+=-fno-strict-aliasing
 
 # Uncomment this if you want libkse to contain debug information for
 # thread locking.
 CFLAGS+=-D_LOCK_DEBUG
-WARNS?=2
+WARNS?=3
 
 # Uncomment this if you want to build a 1:1 threading mode library
 # however it is no longer strictly conformed to POSIX

==== //depot/projects/hammer/lib/libkse/arch/amd64/include/atomic_ops.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/lib/libkse/arch/amd64/include/atomic_ops.h,v 1.3 2007/10/09 13:42:22 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/amd64/include/atomic_ops.h,v 1.4 2007/11/30 17:20:25 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
@@ -36,7 +36,7 @@
  * void atomic_swap64(intptr_t *dst, intptr_t val, intptr_t *res);
  */
 static inline void
-atomic_swap64(intptr_t *dst, intptr_t val, intptr_t *res)
+atomic_swap64(volatile intptr_t *dst, intptr_t val, intptr_t *res)
 {
 	__asm __volatile(
 	"xchgq %2, %1; movq %2, %0"
@@ -44,7 +44,7 @@
 }
 
 static inline void
-atomic_swap_int(int *dst, int val, int *res)
+atomic_swap_int(volatile int *dst, int val, int *res)
 {
 	__asm __volatile(
 	"xchgl %2, %1; movl %2, %0"
@@ -52,6 +52,6 @@
 }
 
 #define	atomic_swap_ptr(d, v, r) \
-	atomic_swap64((intptr_t *)(d), (intptr_t)(v), (intptr_t *)(r))
+	atomic_swap64((volatile intptr_t *)(d), (intptr_t)(v), (intptr_t *)(r))
 
 #endif

==== //depot/projects/hammer/lib/libkse/arch/amd64/include/pthread_md.h#2 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/arch/amd64/include/pthread_md.h,v 1.11 2007/10/09 13:42:22 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/amd64/include/pthread_md.h,v 1.12 2007/11/30 17:20:25 deischen Exp $
  */
 /*
  * Machine-dependent thread prototypes/definitions for the thread kernel.
@@ -250,7 +250,7 @@
 			_amd64_restore_context(
 				&tcb->tcb_tmbx.tm_context.uc_mcontext,
 				(intptr_t)&tcb->tcb_tmbx,
-				(intptr_t *)&kcb->kcb_kmbx.km_curthread);
+				(intptr_t *)(void *)&kcb->kcb_kmbx.km_curthread);
 		else
 			_amd64_restore_context(
 				&tcb->tcb_tmbx.tm_context.uc_mcontext,

==== //depot/projects/hammer/lib/libkse/arch/arm/include/atomic_ops.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/lib/libkse/arch/arm/include/atomic_ops.h,v 1.4 2007/10/09 13:42:23 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/arm/include/atomic_ops.h,v 1.5 2007/11/30 17:20:25 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
@@ -39,15 +39,15 @@
  * void atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res);
  */
 static inline void
-atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res)
+atomic_swap32(volatile intptr_t *dst, intptr_t val, intptr_t *res)
 {
 	*res = __swp(val, dst);
 }
 
 #define	atomic_swap_ptr(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 
 #define	atomic_swap_int(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 #endif
 

==== //depot/projects/hammer/lib/libkse/arch/i386/include/atomic_ops.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/lib/libkse/arch/i386/include/atomic_ops.h,v 1.4 2007/10/09 13:42:23 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/i386/include/atomic_ops.h,v 1.5 2007/11/30 17:20:25 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
@@ -36,7 +36,7 @@
  * void atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res);
  */
 static inline void
-atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res)
+atomic_swap32(volatile intptr_t *dst, intptr_t val, intptr_t *res)
 {
 	__asm __volatile(
 	"xchgl %2, %1; movl %2, %0"
@@ -44,8 +44,8 @@
 }
 
 #define	atomic_swap_ptr(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 
 #define	atomic_swap_int(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 #endif

==== //depot/projects/hammer/lib/libkse/arch/i386/include/pthread_md.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/lib/libkse/arch/i386/include/pthread_md.h,v 1.17 2007/10/09 13:42:23 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/i386/include/pthread_md.h,v 1.18 2007/11/30 17:20:25 deischen Exp $
  */
 /*
  * Machine-dependent thread prototypes/definitions for the thread kernel.
@@ -246,7 +246,7 @@
 		if (setmbox != 0)
 			_thr_setcontext(&tcb->tcb_tmbx.tm_context.uc_mcontext,
 			    (intptr_t)&tcb->tcb_tmbx,
-			    (intptr_t *)&kcb->kcb_kmbx.km_curthread);
+			    (intptr_t *)(void *)&kcb->kcb_kmbx.km_curthread);
 		else
 			_thr_setcontext(&tcb->tcb_tmbx.tm_context.uc_mcontext,
 				0, NULL);

==== //depot/projects/hammer/lib/libkse/arch/ia64/include/atomic_ops.h#2 (text+ko) ====

@@ -23,25 +23,25 @@
  * (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/lib/libkse/arch/ia64/include/atomic_ops.h,v 1.2 2007/10/09 13:42:24 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/ia64/include/atomic_ops.h,v 1.3 2007/11/30 17:20:25 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
 #define	_ATOMIC_OPS_H_
 
 static inline void
-atomic_swap_int(int *dst, int val, int *res)
+atomic_swap_int(volatile int *dst, int val, int *res)
 {
 	__asm("xchg4	%0=[%2],%1" : "=r"(*res) : "r"(val), "r"(dst));
 }
 
 static inline void
-atomic_swap_long(long *dst, long val, long *res)
+atomic_swap_long(volatile long *dst, long val, long *res)
 {
 	__asm("xchg8	%0=[%2],%1" : "=r"(*res) : "r"(val), "r"(dst));
 }
 
 #define	atomic_swap_ptr(d,v,r)		\
-	atomic_swap_long((long*)d, (long)v, (long*)r)
+	atomic_swap_long((volatile long *)d, (long)v, (long *)r)
 
 #endif /* _ATOMIC_OPS_H_ */

==== //depot/projects/hammer/lib/libkse/arch/powerpc/include/atomic_ops.h#2 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/arch/powerpc/include/atomic_ops.h,v 1.2 2007/10/09 13:42:24 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/powerpc/include/atomic_ops.h,v 1.3 2007/11/30 17:20:25 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
@@ -37,7 +37,7 @@
  * void atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res);
  */
 static inline void
-atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res)
+atomic_swap32(volatile intptr_t *dst, intptr_t val, intptr_t *res)
 {
 	int tmp;
 
@@ -55,8 +55,8 @@
 }
 
 #define	atomic_swap_ptr(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 
 #define	atomic_swap_int(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
+	atomic_swap32((volatile intptr_t *)d, (intptr_t)v, (intptr_t *)r)
 #endif

==== //depot/projects/hammer/lib/libkse/arch/powerpc/include/pthread_md.h#2 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/arch/powerpc/include/pthread_md.h,v 1.7 2007/10/09 13:42:24 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/powerpc/include/pthread_md.h,v 1.8 2007/11/30 17:20:26 deischen Exp $
  */
 
 /*
@@ -280,7 +280,7 @@
 		tcb->tcb_tmbx.tm_lwp = kcb->kcb_kmbx.km_lwp;
 		if (setmbox)
 			_ppc32_setcontext(mc, (intptr_t)&tcb->tcb_tmbx,
-			    (intptr_t *)&kcb->kcb_kmbx.km_curthread);
+			    (intptr_t *)(void *)&kcb->kcb_kmbx.km_curthread);
 		else
 			_ppc32_setcontext(mc, 0, NULL);
 	}

==== //depot/projects/hammer/lib/libkse/arch/sparc64/include/atomic_ops.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/lib/libkse/arch/sparc64/include/atomic_ops.h,v 1.2 2007/10/09 13:42:25 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/sparc64/include/atomic_ops.h,v 1.3 2007/11/30 17:20:26 deischen Exp $
  */
 
 #ifndef	_ATOMIC_OPS_H_
@@ -38,7 +38,7 @@
  * void atomic_swap_long(long *dst, long val, long *res);
  */
 static __inline void
-atomic_swap_long(long *dst, long val, long *res)
+atomic_swap_long(volatile long *dst, long val, long *res)
 {
 	long tmp;
 	long r;
@@ -54,7 +54,7 @@
 }
 
 static __inline void
-atomic_swap_int(int *dst, int val, int *res)
+atomic_swap_int(volatile int *dst, int val, int *res)
 {
 	int tmp;
 	int r;
@@ -70,6 +70,6 @@
 }
 
 #define	atomic_swap_ptr(dst, val, res) \
-	atomic_swap_long((long *)dst, (long)val, (long *)res)
+	atomic_swap_long((volatile long *)dst, (long)val, (long *)res)
 
 #endif

==== //depot/projects/hammer/lib/libkse/arch/sparc64/include/pthread_md.h#2 (text+ko) ====

@@ -24,7 +24,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/lib/libkse/arch/sparc64/include/pthread_md.h,v 1.6 2007/10/09 13:42:25 obrien Exp $
+ * $FreeBSD: src/lib/libkse/arch/sparc64/include/pthread_md.h,v 1.7 2007/11/30 17:20:26 deischen Exp $
  */
 
 /*
@@ -237,7 +237,7 @@
 		tcb->tcb_tmbx.tm_lwp = kcb->kcb_kmbx.km_lwp;
 		if (setmbox)
 			_thr_setcontext(mc, (intptr_t)&tcb->tcb_tmbx,
-			    (intptr_t *)&kcb->kcb_kmbx.km_curthread);
+			    (intptr_t *)(void *)&kcb->kcb_kmbx.km_curthread);
 		else
 			_thr_setcontext(mc, 0, NULL);
 	} else {

==== //depot/projects/hammer/lib/libkse/sys/lock.c#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/sys/lock.c,v 1.12 2007/11/27 03:16:43 jasone Exp $
+ * $FreeBSD: src/lib/libkse/sys/lock.c,v 1.13 2007/11/30 17:20:26 deischen Exp $
  */
 
 #include 
@@ -178,11 +178,12 @@
 	 * Atomically swap the head of the lock request with
 	 * this request.
 	 */
-	atomic_swap_ptr(&lck->l_head, lu->lu_myreq, &lu->lu_watchreq);
+	atomic_swap_ptr((void *)&lck->l_head, lu->lu_myreq,
+	    (void *)&lu->lu_watchreq);
 
 	if (lu->lu_watchreq->lr_locked != 0) {
 		atomic_store_rel_ptr
-		    ((volatile uintptr_t *)&lu->lu_watchreq->lr_watcher,
+		    ((volatile uintptr_t *)(void *)&lu->lu_watchreq->lr_watcher,
 		    (uintptr_t)lu);
 		if ((lck->l_wait == NULL) ||
 		    ((lck->l_type & LCK_ADAPTIVE) == 0)) {
@@ -214,7 +215,7 @@
 				if (lu->lu_watchreq->lr_active == 0)
 					break;
 			}
-			atomic_swap_int((int *)&lu->lu_watchreq->lr_locked,
+			atomic_swap_int(&lu->lu_watchreq->lr_locked,
 			    2, &lval);
 			if (lval == 0)
 				lu->lu_watchreq->lr_locked = 0;
@@ -253,18 +254,19 @@
 
 		/* Update tail if our request is last. */
 		if (lu->lu_watchreq->lr_owner == NULL) {
-			atomic_store_rel_ptr((volatile uintptr_t *)&lck->l_tail,
+			atomic_store_rel_ptr((volatile uintptr_t *)
+			    (void *)&lck->l_tail,
 			    (uintptr_t)lu->lu_myreq);
-			atomic_store_rel_ptr
-			    ((volatile uintptr_t *)&lu->lu_myreq->lr_owner,
+			atomic_store_rel_ptr((volatile uintptr_t *)
+			    (void *)&lu->lu_myreq->lr_owner,
 			    (uintptr_t)NULL);
 		} else {
 			/* Remove ourselves from the list. */
 			atomic_store_rel_ptr((volatile uintptr_t *)
-			    &lu->lu_myreq->lr_owner,
+			    (void *)&lu->lu_myreq->lr_owner,
 			    (uintptr_t)lu->lu_watchreq->lr_owner);
 			atomic_store_rel_ptr((volatile uintptr_t *)
-			    &lu->lu_watchreq->lr_owner->lu_myreq,
+			    (void *)&lu->lu_watchreq->lr_owner->lu_myreq,
 			    (uintptr_t)lu->lu_myreq);
 		}
 		/*
@@ -293,7 +295,7 @@
 			/* Give the lock to the highest priority user. */
 			if (lck->l_wakeup != NULL) {
 				atomic_swap_int(
-				    (int *)&lu_h->lu_watchreq->lr_locked,
+				    &lu_h->lu_watchreq->lr_locked,
 				    0, &lval);
 				if (lval == 2)
 					/* Notify the sleeper */
@@ -305,7 +307,7 @@
 				    &lu_h->lu_watchreq->lr_locked, 0);
 		} else {
 			if (lck->l_wakeup != NULL) {
-				atomic_swap_int((int *)&myreq->lr_locked,
+				atomic_swap_int(&myreq->lr_locked,
 				    0, &lval);
 				if (lval == 2)
 					/* Notify the sleeper */
@@ -326,7 +328,7 @@
 		lu->lu_watchreq = NULL;
 		lu->lu_myreq->lr_locked = 1;
 		if (lck->l_wakeup) {
-			atomic_swap_int((int *)&myreq->lr_locked, 0, &lval);
+			atomic_swap_int(&myreq->lr_locked, 0, &lval);
 			if (lval == 2)
 				/* Notify the sleeper */
 				lck->l_wakeup(lck, myreq->lr_watcher);
@@ -339,7 +341,7 @@
 }
 
 void
-_lock_grant(struct lock *lck /* unused */, struct lockuser *lu)
+_lock_grant(struct lock *lck __unused /* unused */, struct lockuser *lu)
 {
 	atomic_store_rel_int(&lu->lu_watchreq->lr_locked, 3);
 }

==== //depot/projects/hammer/lib/libkse/sys/thr_error.c#2 (text+ko) ====

@@ -31,8 +31,9 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/sys/thr_error.c,v 1.10 2007/10/09 13:42:26 obrien Exp $
+ * $FreeBSD: src/lib/libkse/sys/thr_error.c,v 1.11 2007/11/30 17:20:26 deischen Exp $
  */
+#include 
 #include 
 #include "libc_private.h"
 #include "thr_private.h"

==== //depot/projects/hammer/lib/libkse/thread/thr_accept.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/lib/libkse/thread/thr_accept.c,v 1.4 2007/10/09 13:42:27 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libkse/thread/thr_accept.c,v 1.5 2007/11/30 17:20:26 deischen Exp $");
 
 #include 
 #include 
@@ -35,6 +35,9 @@
 LT10_COMPAT_PRIVATE(__accept);
 LT10_COMPAT_DEFAULT(accept);
 
+int __accept(int s, struct sockaddr *addr, socklen_t *addrlen);
+
+
 __weak_reference(__accept, accept);
 
 int

==== //depot/projects/hammer/lib/libkse/thread/thr_aio_suspend.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_aio_suspend.c,v 1.10 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_aio_suspend.c,v 1.11 2007/11/30 17:20:26 deischen Exp $
  */
 
 #include 
@@ -36,6 +36,11 @@
 LT10_COMPAT_PRIVATE(_aio_suspend);
 LT10_COMPAT_DEFAULT(aio_suspend);
 
+
+int
+_aio_suspend(const struct aiocb * const iocbs[], int niocb, const struct
+    timespec *timeout);
+
 __weak_reference(_aio_suspend, aio_suspend);
 
 int

==== //depot/projects/hammer/lib/libkse/thread/thr_atfork.c#2 (text+ko) ====

@@ -23,12 +23,14 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_atfork.c,v 1.3 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_atfork.c,v 1.4 2007/11/30 17:20:26 deischen Exp $
  */
+#include "namespace.h"
 #include 
 #include 
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_atfork);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_destroy.c#2 (text+ko) ====

@@ -26,11 +26,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_destroy.c,v 1.10 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_destroy.c,v 1.11 2007/11/30 17:20:26 deischen Exp $
  */
+#include "namespace.h"
 #include 
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_destroy);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_get_np.c#2 (text+ko) ====

@@ -23,12 +23,15 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_get_np.c,v 1.6 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_get_np.c,v 1.7 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_get_np);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getdetachstate.c#2 (text+ko) ====

@@ -26,10 +26,12 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getdetachstate.c,v 1.10 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getdetachstate.c,v 1.11 2007/11/30 17:20:26 deischen Exp $
  */
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getdetachstate);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getguardsize.c#2 (text+ko) ====

@@ -26,11 +26,13 @@
  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getguardsize.c,v 1.4 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getguardsize.c,v 1.5 2007/11/30 17:20:26 deischen Exp $
  */
 
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getguardsize);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getinheritsched.c#2 (text+ko) ====

@@ -29,10 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getinheritsched.c,v 1.9 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getinheritsched.c,v 1.10 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getinheritsched);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getschedparam.c#2 (text+ko) ====

@@ -29,10 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getschedparam.c,v 1.9 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getschedparam.c,v 1.10 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getschedparam);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getschedpolicy.c#2 (text+ko) ====

@@ -29,10 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getschedpolicy.c,v 1.9 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getschedpolicy.c,v 1.10 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getschedpolicy);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getscope.c#2 (text+ko) ====

@@ -29,10 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getscope.c,v 1.9 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getscope.c,v 1.10 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getscope);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getstack.c#2 (text+ko) ====

@@ -29,10 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libkse/thread/thr_attr_getstack.c,v 1.3 2007/10/09 13:42:27 obrien Exp $
+ * $FreeBSD: src/lib/libkse/thread/thr_attr_getstack.c,v 1.4 2007/11/30 17:20:26 deischen Exp $
  */
+
+#include "namespace.h"
 #include 
 #include 
+#include "un-namespace.h"
 #include "thr_private.h"
 
 LT10_COMPAT_PRIVATE(_pthread_attr_getstack);

==== //depot/projects/hammer/lib/libkse/thread/thr_attr_getstackaddr.c#2 (text+ko) ====

@@ -26,10 +26,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:01:32 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 0911816A420; Fri, 30 Nov 2007 19:01: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 96F1216A41A
	for ; Fri, 30 Nov 2007 19:01:31 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 8DD2E13C45B
	for ; Fri, 30 Nov 2007 19:01:31 +0000 (UTC)
	(envelope-from zec@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 lAUJ1VEv070333
	for ; Fri, 30 Nov 2007 19:01:31 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUJ1VJJ070330
	for perforce@freebsd.org; Fri, 30 Nov 2007 19:01:31 GMT
	(envelope-from zec@FreeBSD.org)
Date: Fri, 30 Nov 2007 19:01:31 GMT
Message-Id: <200711301901.lAUJ1VJJ070330@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129833 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: Fri, 30 Nov 2007 19:01:32 -0000

http://perforce.freebsd.org/chv.cgi?CH=129833

Change 129833 by zec@zec_tpx32 on 2007/11/30 19:00:38

	Introduce a new driver-specific ifnet method if_reassign() 
	which should handle requests for reassigning an ifnet from
	one vnet to another.  ether_redesign() is the first
	if_redesign() implementation, with more to follow.
	Requests for reassigning ifnets with no registered
	if_reassign() method will be denied, which solves the issue
	of kernel panics on attempts to reassign non-ethernet ifnets.

Affected files ...

.. //depot/projects/vimage/src/sys/kern/kern_vimage.c#56 edit
.. //depot/projects/vimage/src/sys/net/if_ethersubr.c#17 edit
.. //depot/projects/vimage/src/sys/net/if_var.h#10 edit
.. //depot/projects/vimage/src/sys/net80211/ieee80211.c#7 edit
.. //depot/projects/vimage/src/sys/sys/vimage.h#51 edit

Differences ...

==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#56 (text+ko) ====

@@ -278,76 +278,22 @@
 	return (0);
 }
 
-
 /*
- * Move the interface to another vnet. The interface can be specified either
- * by ifp argument, or by name contained in vi_req->vi_chroot if NULL is
- * passed as ifp.  The interface will be renamed to vi_req->vi_parent_name
- * if vi_req->vi_parent_name is not an empty string (uff ugly ugly)...
- * Similary, the target vnet can be specified either by vnet argument or
- * by name. If vnet name equals to ".." or vi_req is set to NULL the
- * interface is moved to the parent vnet.
+ * if_reassign_common() should be called by all device specific
+ * ifnet reassignment routines after the interface is detached from
+ * current vnet and before the interface gets attached to the target
+ * vnet.  This routine attempts to shrink if_index in current vnet,
+ * find an unused if_index in target vnet and calls if_grow() if
+ * necessary, and finally finds an unused if_xname for the target
+ * vnet.
+ *
+ * XXX this routine should hold a lock over if_index and return with
+ * such a lock held, and the caller should release that lock
+ * after ifattach completes!
  */
-int
-vi_if_move(vi_req, ifp, vip)
-	struct vi_req *vi_req;
-	struct ifnet *ifp;
-	struct vimage *vip;
+void
+if_reassign_common(struct ifnet *ifp, struct vnet *new_vnet, const char *dname)
 {
-	struct vimage *new_vip;
-	struct vnet *new_vnet = NULL;
-	u_char eaddr[6];
-
-	if (vi_req == NULL || strcmp(vi_req->vi_name, "..") == 0) {
-		if (IS_DEFAULT_VIMAGE(vip))
-			return (ENXIO);
-		new_vnet = vip->vi_parent->v_net;
-	} else {
-		new_vip = vimage_by_name(vip, vi_req->vi_name);
-		if (new_vip == NULL)
-			return (ENXIO);
-		new_vnet = new_vip->v_net;
-	}
-
-	if (ifp == NULL)
-		ifp = ifunit(vi_req->vi_chroot);
-	if (ifp == NULL)
-		return (ENXIO);
-
-	if (vi_req != NULL) {
-		struct ifnet *t_ifp;
-
-		CURVNET_SET_QUIET(new_vnet);
-		t_ifp = ifunit(vi_req->vi_if_xname);
-		CURVNET_RESTORE();
-		if (t_ifp != NULL)
-			return (EEXIST);
-	}
-
-	/* Loopback interfaces cannot be moved across network stacks */
-	if (ifp->if_flags & IFF_LOOPBACK)
-		return (EPERM);
-
-	/*
-	 * This is tricky. First we have to detach the interface,
-	 * and then reattach it to the target vnet. Before doing
-	 * that, we reassing the interface unit number to look nice
-	 * in the target vnet.
-	 */
-	switch (ifp->if_type) {
-	case IFT_ETHER:
-	case IFT_L2VLAN:
-		bcopy(IF_LLADDR(ifp), eaddr, 6);
-		ether_ifdetach(ifp);
-		break;
-	case IFT_PROPVIRTUAL:		/* XXX ng_eiface */
-		if_detach(ifp);
-		break;
-	default:
-		panic("don't know yet how to handle iftype %d", ifp->if_type);
-		/* if_detach(ifp); */
-	}
-	ifp->if_bpf = NULL;
 	/* do/while construct needed to confine scope of INIT_VNET_NET() */
 	do {
 		INIT_VNET_NET(curvnet);
@@ -386,54 +332,78 @@
 		snprintf(ifp->if_xname, IFNAMSIZ, "%s%d", ifp->if_dname,
 		    ifp->if_dunit);
 	} else {
-		if (vi_req  && strlen(vi_req->vi_if_xname) > 0) {
-			snprintf(ifp->if_xname, IFNAMSIZ, "%s",
-			    vi_req->vi_if_xname);
-		} else {
-			int unit = 0;
-			struct ifnet *iter;
+		int unit = 0;
+		struct ifnet *iter;
+
+		do {
+			snprintf(ifp->if_xname, IFNAMSIZ, "%s%d", dname, unit);
+			TAILQ_FOREACH(iter, &V_ifnet, if_link)
+				if (strcmp(ifp->if_xname, iter->if_xname) == 0)
+					break;
+			unit++;
+		} while (iter);
+	}
+	CURVNET_RESTORE();
+}
 
-#define FINDFREEUNIT(dname)						\
-	do {								\
-		snprintf(ifp->if_xname, IFNAMSIZ, "%s%d", dname, unit);	\
-		TAILQ_FOREACH(iter, &V_ifnet, if_link)			\
-			if (strcmp(ifp->if_xname, iter->if_xname) == 0)	\
-				break;					\
-		unit++;							\
-	} while (iter);
+/*
+ * Move the interface to another vnet. The interface can be specified either
+ * by ifp argument, or by name contained in vi_req->vi_chroot if NULL is
+ * passed as ifp.  The interface will be renamed to vi_req->vi_parent_name
+ * if vi_req->vi_parent_name is not an empty string (uff ugly ugly)...
+ * Similary, the target vnet can be specified either by vnet argument or
+ * by name. If vnet name equals to ".." or vi_req is set to NULL the
+ * interface is moved to the parent vnet.
+ */
+int
+vi_if_move(vi_req, ifp, vip)
+	struct vi_req *vi_req;
+	struct ifnet *ifp;
+	struct vimage *vip;
+{
+	struct vimage *new_vip;
+	struct vnet *new_vnet = NULL;
 
-			switch (ifp->if_type) {
-				case IFT_ETHER:
-				case IFT_L2VLAN:
-					FINDFREEUNIT("eth");
-					break;
-				case IFT_PROPVIRTUAL:
-					FINDFREEUNIT("ser");
-					break;
-				default:
-					break;
-			}
-		}
+	if (vi_req == NULL || strcmp(vi_req->vi_name, "..") == 0) {
+		if (IS_DEFAULT_VIMAGE(vip))
+			return (ENXIO);
+		new_vnet = vip->vi_parent->v_net;
+	} else {
+		new_vip = vimage_by_name(vip, vi_req->vi_name);
+		if (new_vip == NULL)
+			return (ENXIO);
+		new_vnet = new_vip->v_net;
 	}
 
-	switch (ifp->if_type) {
-	case IFT_ETHER:
-	case IFT_L2VLAN:
-		ether_ifattach(ifp, eaddr);
-		break;
-	case IFT_PROPVIRTUAL:		/* XXX ng_eiface */
-		if_attach(ifp);
-		break;
-	default:
-		panic("don't know yet how to handle iftype %d", ifp->if_type);
-		/* if_attach(ifp); */
+	if (ifp == NULL)
+		ifp = ifunit(vi_req->vi_chroot);
+	if (ifp == NULL)
+		return (ENXIO);
+
+	/* Abort if driver did not provide a if_reassign() method */
+	if (ifp->if_reassign == NULL)
+		return (ENODEV);
+
+	if (vi_req != NULL) {
+		struct ifnet *t_ifp;
+
+		CURVNET_SET_QUIET(new_vnet);
+		t_ifp = ifunit(vi_req->vi_if_xname);
+		CURVNET_RESTORE();
+		if (t_ifp != NULL)
+			return (EEXIST);
 	}
+
+	if (vi_req  && strlen(vi_req->vi_if_xname) > 0)
+		ifp->if_reassign(ifp, new_vnet, vi_req->vi_if_xname);
+	else
+		ifp->if_reassign(ifp, new_vnet, NULL);
 	getmicrotime(&ifp->if_lastchange);
 
+	/* Report the new if_xname back to the userland */
 	if (vi_req != NULL)
 		sprintf(vi_req->vi_chroot, "%s", ifp->if_xname);
 
-	CURVNET_RESTORE();
 	return (0);
 }
 

==== //depot/projects/vimage/src/sys/net/if_ethersubr.c#17 (text+ko) ====

@@ -886,6 +886,25 @@
 	return (etherbuf);
 }
 
+#ifdef VIMAGE
+static void
+ether_reassign(struct ifnet *ifp, struct vnet *vnet, char *dname)
+{
+        u_char eaddr[6];
+
+	bcopy(IF_LLADDR(ifp), eaddr, 6);
+	ether_ifdetach(ifp);
+	ifp->if_bpf = NULL;
+        if_reassign_common(ifp, vnet, "eth");
+	if (dname)
+		snprintf(ifp->if_xname, IFNAMSIZ, "%s", dname);
+
+        CURVNET_SET_QUIET(vnet);
+	ether_ifattach(ifp, eaddr);
+	CURVNET_RESTORE();
+}
+#endif
+
 /*
  * Perform common duties while attaching to interface list
  */
@@ -906,6 +925,9 @@
 	ifp->if_output = ether_output;
 	ifp->if_input = ether_input;
 	ifp->if_resolvemulti = ether_resolvemulti;
+#ifdef VIMAGE
+	ifp->if_reassign = ether_reassign;
+#endif
 	if (ifp->if_baudrate == 0)
 		ifp->if_baudrate = IF_Mbps(10);		/* just a default */
 	ifp->if_broadcastaddr = etherbroadcastaddr;

==== //depot/projects/vimage/src/sys/net/if_var.h#10 (text+ko) ====

@@ -130,6 +130,7 @@
 		 * field is deprecated. Use if_addr or ifaddr_byindex() instead.
 		 */
 	struct	knlist if_klist;	/* events attached to this if */
+	struct	vnet *if_vnet;		/* network stack instance */
 	int	if_pcount;		/* number of promiscuous listeners */
 	struct	carp_if *if_carp;	/* carp interface structure */
 	struct	bpf_if *if_bpf;		/* packet filter structure */
@@ -160,6 +161,9 @@
 		(void *);
 	int	(*if_resolvemulti)	/* validate/resolve multicast */
 		(struct ifnet *, struct sockaddr **, struct sockaddr *);
+	void	(*if_reassign)		/* reassign to vnet routine */
+		(struct ifnet *, struct vnet *, char *);
+	struct	vnet *if_home_vnet;	/* where this ifnet originates from */
 	struct	ifaddr	*if_addr;	/* pointer to link-level address */
 	void	*if_spare2;		/* spare pointer 2 */
 	void	*if_spare3;		/* spare pointer 3 */
@@ -187,9 +191,6 @@
 					/* protected by if_addr_mtx */
 	void	*if_pf_kif;
 	void	*if_lagg;		/* lagg glue */
-
-	struct	vnet *if_vnet;		/* network stack instance */
-	struct	vnet *if_home_vnet;	/* where this ifnet originates from */
 };
 
 typedef void if_init_f_t(void *);

==== //depot/projects/vimage/src/sys/net80211/ieee80211.c#7 (text+ko) ====

@@ -31,6 +31,8 @@
  * IEEE 802.11 generic handler
  */
 
+#include "opt_vimage.h"
+
 #include 
 #include  
 #include 
@@ -213,6 +215,10 @@
 
 	ether_ifattach(ifp, ic->ic_myaddr);
 	ifp->if_output = ieee80211_output;
+#ifdef VIMAGE
+	/* Override ether_reassign() */
+	ifp->if_reassign = NULL; /* XXX not implemented yet */
+#endif
 
 	bpfattach2(ifp, DLT_IEEE802_11,
 	    sizeof(struct ieee80211_frame_addr4), &ic->ic_rawbpf);

==== //depot/projects/vimage/src/sys/sys/vimage.h#51 (text+ko) ====

@@ -342,6 +342,8 @@
 void	vi_cpu_acct(void *);
 int	vi_td_ioctl(u_long, struct vi_req *, struct thread *);
 int	vi_if_move(struct vi_req *, struct ifnet *, struct vimage *);
+void	if_reassign_common(struct ifnet *, struct vnet *, const char *);
+
 int	vi_symlookup(struct kld_sym_lookup *, char *);
 struct	vimage *vnet2vimage(struct vnet *);
 struct	vimage *vimage_by_name(struct vimage *, char *);

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:21:08 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 0BE8916A47E; Fri, 30 Nov 2007 19:21: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 A9CCB16A46E
	for ; Fri, 30 Nov 2007 19:21:07 +0000 (UTC)
	(envelope-from zec@imunes.net)
Received: from zec2.tel.fer.hr (zec2.tel.fer.hr [161.53.19.79])
	by mx1.freebsd.org (Postfix) with ESMTP id 2B1E913C46B
	for ; Fri, 30 Nov 2007 19:21:06 +0000 (UTC)
	(envelope-from zec@imunes.net)
Received: from localhost (localhost [127.0.0.1])
	by zec2.tel.fer.hr (8.14.1/8.14.1) with ESMTP id lAUJAcJB006916
	for ; Fri, 30 Nov 2007 20:10:38 +0100 (CET)
	(envelope-from zec@imunes.net)
From: Marko Zec 
To: Perforce Reviews 
Date: Fri, 30 Nov 2007 20:10:37 +0100
User-Agent: KMail/1.9.7
References: <200711301901.lAUJ1VJJ070330@repoman.freebsd.org>
In-Reply-To: <200711301901.lAUJ1VJJ070330@repoman.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="iso-8859-2"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <200711302010.37523.zec@imunes.net>
Cc: 
Subject: Re: PERFORCE change 129833 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: Fri, 30 Nov 2007 19:21:08 -0000

On Friday 30 November 2007 20:01:31 Marko Zec wrote:
> http://perforce.freebsd.org/chv.cgi?CH=129833
>
> Change 129833 by zec@zec_tpx32 on 2007/11/30 19:00:38
>
> 	Introduce a new driver-specific ifnet method if_reassign()
> 	which should handle requests for reassigning an ifnet from
> 	one vnet to another.  ether_redesign() is the first
> 	if_redesign() implementation, with more to follow.
> 	Requests for reassigning ifnets with no registered
> 	if_reassign() method will be denied, which solves the issue
> 	of kernel panics on attempts to reassign non-ethernet ifnets.

s/redesign()/reassign()/

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:33:06 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7E51116A46C; Fri, 30 Nov 2007 19:33: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 25E1616A47E
	for ; Fri, 30 Nov 2007 19:33:06 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 1D78613C442
	for ; Fri, 30 Nov 2007 19:33:06 +0000 (UTC)
	(envelope-from zec@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 lAUJX6tm072628
	for ; Fri, 30 Nov 2007 19:33:06 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUJX6Ji072625
	for perforce@freebsd.org; Fri, 30 Nov 2007 19:33:06 GMT
	(envelope-from zec@FreeBSD.org)
Date: Fri, 30 Nov 2007 19:33:06 GMT
Message-Id: <200711301933.lAUJX6Ji072625@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129835 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: Fri, 30 Nov 2007 19:33:06 -0000

http://perforce.freebsd.org/chv.cgi?CH=129835

Change 129835 by zec@zec_tpx32 on 2007/11/30 19:32:19

	Allow "inet6" hooks to be connected to ng_cisco netgraph nodes.

Affected files ...

.. //depot/projects/vimage/src/sys/netgraph/ng_cisco.c#2 edit

Differences ...

==== //depot/projects/vimage/src/sys/netgraph/ng_cisco.c#2 (text+ko) ====

@@ -228,6 +228,9 @@
 	} else if (strcmp(name, NG_CISCO_HOOK_INET) == 0) {
 		sc->inet.hook = hook;
 		NG_HOOK_SET_PRIVATE(hook, &sc->inet);
+	} else if (strcmp(name, NG_CISCO_HOOK_INET6) == 0) {
+		sc->inet6.hook = hook;
+		NG_HOOK_SET_PRIVATE(hook, &sc->inet6);
 	} else if (strcmp(name, NG_CISCO_HOOK_APPLETALK) == 0) {
 		sc->atalk.hook = hook;
 		NG_HOOK_SET_PRIVATE(hook, &sc->atalk);

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:37:11 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 24AD116A46E; Fri, 30 Nov 2007 19:37: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 CBA5D16A41A
	for ; Fri, 30 Nov 2007 19:37:10 +0000 (UTC)
	(envelope-from kmacy@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id C29F013C448
	for ; Fri, 30 Nov 2007 19:37:10 +0000 (UTC)
	(envelope-from kmacy@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 lAUJbAX1072852
	for ; Fri, 30 Nov 2007 19:37:10 GMT
	(envelope-from kmacy@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUJbAR4072849
	for perforce@freebsd.org; Fri, 30 Nov 2007 19:37:10 GMT
	(envelope-from kmacy@freebsd.org)
Date: Fri, 30 Nov 2007 19:37:10 GMT
Message-Id: <200711301937.lAUJbAR4072849@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	kmacy@freebsd.org using -f
From: Kip Macy 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129837 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: Fri, 30 Nov 2007 19:37:11 -0000

http://perforce.freebsd.org/chv.cgi?CH=129837

Change 129837 by kmacy@kmacy:storage:toestack on 2007/11/30 19:36:14

	the tcpcb may already have gone away at this point make sure
	we're unhooked earlier on

Affected files ...

.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.c#14 edit

Differences ...

==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.c#14 (text+ko) ====

@@ -163,20 +163,9 @@
 void
 toepcb_release(struct toepcb *toep)
 {
-	struct tcpcb *tp;
-	
-	    
 	if (toep->tp_refcount == 1) {
-		/*
-		 * XXX clear our reference on the inpcb
-		 */
-		cxgb_remove_tid(TOM_DATA(toep->tp_toedev)->cdev, NULL, toep->tp_tid);
-		if ((tp = toep->tp_tp) != NULL) {
-			INP_LOCK(tp->t_inpcb);
-			tp->t_flags &= ~TF_TOE;
-			tp->t_toe = NULL;
-			INP_UNLOCK(tp->t_inpcb);
-		}
+		printf("doing final toepcb free\n");
+		
 		free(toep, M_DEVBUF);
 		return;
 	}

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:39:13 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A235816A468; Fri, 30 Nov 2007 19:39:13 +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 4EEA116A478
	for ; Fri, 30 Nov 2007 19:39:13 +0000 (UTC)
	(envelope-from kmacy@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 1BC7913C457
	for ; Fri, 30 Nov 2007 19:39:13 +0000 (UTC)
	(envelope-from kmacy@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 lAUJdDGJ072907
	for ; Fri, 30 Nov 2007 19:39:13 GMT
	(envelope-from kmacy@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUJdDYa072904
	for perforce@freebsd.org; Fri, 30 Nov 2007 19:39:13 GMT
	(envelope-from kmacy@freebsd.org)
Date: Fri, 30 Nov 2007 19:39:13 GMT
Message-Id: <200711301939.lAUJdDYa072904@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	kmacy@freebsd.org using -f
From: Kip Macy 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129838 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: Fri, 30 Nov 2007 19:39:14 -0000

http://perforce.freebsd.org/chv.cgi?CH=129838

Change 129838 by kmacy@kmacy:storage:toestack on 2007/11/30 19:38:12

	add missing locking
	unhook tcpcb when releasing resources
	queue tid release if appropriate

Affected files ...

.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#28 edit

Differences ...

==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#28 (text+ko) ====

@@ -82,6 +82,8 @@
 #include 
 #include 
 
+
+
 /*
  * For ULP connections HW may add headers, e.g., for digests, that aren't part
  * of the messages sent by the host but that are part of the TCP payload and
@@ -866,7 +868,11 @@
 		l2t_release(L2DATA(cdev), toep->tp_l2t);
 		toep->tp_l2t = NULL;
 	}
-
+	
+	toep->tp_tp = NULL;
+	tp->t_toe = NULL;
+	tp->t_flags &= ~TF_TOE;
+	
 	if (tp->t_state == TCPS_SYN_SENT) {
 		free_atid(cdev, tid);
 #ifdef notyet		
@@ -1094,7 +1100,10 @@
 active_open_failed(struct socket *so, struct mbuf *m)
 {
 	struct cpl_act_open_rpl *rpl = cplhdr(m);
-
+	struct inpcb *inp = sotoinpcb(so);
+	
+	INP_INFO_WLOCK(&tcbinfo);
+	INP_LOCK(inp);
 /*
  * Don't handle connection retry for now
  */
@@ -1109,6 +1118,8 @@
 	} else
 #endif		
 		fail_act_open(so, act_open_rpl_status_to_errno(rpl->status));
+	INP_UNLOCK(inp);
+	INP_INFO_WUNLOCK(&tcbinfo);
 	m_free(m);
 }
 
@@ -1133,16 +1144,10 @@
 	
 	so = toeptoso(toep);
 	
-#ifdef notyet	
 	struct cpl_act_open_rpl *rpl = cplhdr(m);
 
 	if (cdev->type != T3A && act_open_has_tid(rpl->status))
-		cxgb_release_tid(cdev, GET_TID(rpl));
-	
-		cxgb3_queue_tid_release(cdev, GET_TID(rpl));
-#else
-		printf("%s UNIMPLEMENTED\n", __FUNCTION__);
-#endif		
+		cxgb_queue_tid_release(cdev, GET_TID(rpl));
 
 	active_open_failed(so, m);
 	return (0);
@@ -2190,11 +2195,9 @@
 		if ((tp->t_state == TCPS_SYN_RECEIVED) && !abort_syn_rcv(so, m))
 			return;
 
-		INP_INFO_WLOCK(&tcbinfo);
 		INP_LOCK(tp->t_inpcb);
 		t3_release_offload_resources(so);
 		tcp_close(tp);
-		INP_INFO_WUNLOCK(&tcbinfo);
 		INP_UNLOCK(tp->t_inpcb);		
 	}
 	
@@ -2217,15 +2220,22 @@
 	}
 	printf("aborting tid=%d\n", toep->tp_tid);
 	
+	INP_INFO_WLOCK(&tcbinfo);
 	if (toep->tp_flags & TP_SYN_RCVD) {
 		printf("abort for unestablished connection :-(\n");
 		return (0);
 	}
-	
+	if (toep->tp_tp == NULL) {
+		printf("disconnected toepcb\n");
+		/* should be freed momentarily */
+		return (0);
+	}
+
 	so = toeptoso(toep);
 	VALIDATE_SOCK(so);
 	toepcb_hold(toep);
 	process_abort_req(so, m, TOE_DEV(so));
+	INP_INFO_WUNLOCK(&tcbinfo);
 	toepcb_release(toep);
 	return (0);
 }

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 19:40:14 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B846E16A418; Fri, 30 Nov 2007 19:40: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 7CF1D16A41B
	for ; Fri, 30 Nov 2007 19:40:14 +0000 (UTC)
	(envelope-from kmacy@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 73B8B13C46B
	for ; Fri, 30 Nov 2007 19:40:14 +0000 (UTC)
	(envelope-from kmacy@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 lAUJeExL073016
	for ; Fri, 30 Nov 2007 19:40:14 GMT
	(envelope-from kmacy@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUJeEJ1073012
	for perforce@freebsd.org; Fri, 30 Nov 2007 19:40:14 GMT
	(envelope-from kmacy@freebsd.org)
Date: Fri, 30 Nov 2007 19:40:14 GMT
Message-Id: <200711301940.lAUJeEJ1073012@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	kmacy@freebsd.org using -f
From: Kip Macy 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129839 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: Fri, 30 Nov 2007 19:40:15 -0000

http://perforce.freebsd.org/chv.cgi?CH=129839

Change 129839 by kmacy@kmacy:storage:toestack on 2007/11/30 19:40:08

	initialize adapter pointer in tdev
	make remove tid panic more informative

Affected files ...

.. //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#20 edit

Differences ...

==== //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#20 (text+ko) ====

@@ -602,7 +602,9 @@
 {
 	struct tid_info *t = &(T3C_DATA (tdev))->tid_maps;
 
-	BUG_ON(tid >= t->ntids);
+	if (tid >= t->ntids)
+		panic("tid=%d >= t->ntids=%d", tid, t->ntids);
+	
 	if (tdev->type == T3A)
 		atomic_cmpset_ptr((uintptr_t *)&t->tid_tab[tid].ctx, (long)NULL, (long)ctx);
 	else {
@@ -1229,6 +1231,8 @@
 	if (!t)
 		return (ENOMEM);
 
+	dev->adapter = adapter;
+
 	err = (EOPNOTSUPP);
 	if (dev->ctl(dev, GET_TX_MAX_CHUNK, &t->tx_max_chunk) < 0 ||
 	    dev->ctl(dev, GET_MAX_OUTSTANDING_WR, &t->max_wrs) < 0 ||

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 20:36:16 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id CA7F916A420; Fri, 30 Nov 2007 20:36: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 59FD216A417
	for ; Fri, 30 Nov 2007 20:36:15 +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 4F7DB13C45A
	for ; Fri, 30 Nov 2007 20:36:15 +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 lAUKaFAu076453
	for ; Fri, 30 Nov 2007 20:36:15 GMT
	(envelope-from hselasky@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUKaF91076450
	for perforce@freebsd.org; Fri, 30 Nov 2007 20:36:15 GMT
	(envelope-from hselasky@FreeBSD.org)
Date: Fri, 30 Nov 2007 20:36:15 GMT
Message-Id: <200711302036.lAUKaF91076450@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 129840 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: Fri, 30 Nov 2007 20:36:16 -0000

http://perforce.freebsd.org/chv.cgi?CH=129840

Change 129840 by hselasky@hselasky_laptop001 on 2007/11/30 20:36:08

	
	Updates to UHCI according to change 129799 .
	
	All fixup buffers are now separate "page_cache" objects.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/uhci.c#44 edit
.. //depot/projects/usb/src/sys/dev/usb/uhci.h#18 edit
.. //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#25 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/uhci.c#44 (text+ko) ====

@@ -95,10 +95,8 @@
     &uhcidebug, 0, "uhci debug level");
 SYSCTL_INT(_hw_usb_uhci, OID_AUTO, loop, CTLFLAG_RW,
     &uhcinoloop, 0, "uhci noloop");
-static void
-	uhci_dumpregs(uhci_softc_t *sc);
-static void
-	uhci_dump_tds(uhci_td_t *td);
+static void uhci_dumpregs(uhci_softc_t *sc);
+static void uhci_dump_tds(uhci_td_t *td);
 
 #endif
 
@@ -124,10 +122,6 @@
 
 #define	UHCI_INTR_ENDPT 1
 
-#define	SC_HW_PHYSADDR(sc,what) \
-  ((sc)->sc_hw_page.physaddr + \
-   POINTER_TO_UNSIGNED(&(((struct uhci_hw_softc *)0)->what)))
-
 struct uhci_mem_layout {
 
 	struct usbd_page_search buf_res;
@@ -137,7 +131,6 @@
 	struct usbd_page_cache *fix_pc;
 
 	uint32_t buf_offset;
-	uint32_t fix_offset;
 
 	uint16_t max_frame_size;
 };
@@ -167,15 +160,79 @@
 static usbd_config_td_command_t uhci_root_ctrl_task;
 static void uhci_root_ctrl_task_td(struct uhci_softc *sc, struct thread *ctd);
 static void uhci_do_poll(struct usbd_bus *bus);
+static void uhci_device_done(struct usbd_xfer *xfer, usbd_status error);
+
+void
+uhci_iterate_hw_softc(uhci_softc_t *sc, uhci_iterate_cb_t *cb)
+{
+	uint32_t i;
+
+	cb(sc, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg),
+	    sizeof(uint32_t) * UHCI_FRAMELIST_COUNT, UHCI_FRAMELIST_ALIGN);
+
+	cb(sc, &(sc->sc_hw.ls_ctl_start_pc), &(sc->sc_hw.ls_ctl_start_pg),
+	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
+
+	cb(sc, &(sc->sc_hw.fs_ctl_start_pc), &(sc->sc_hw.fs_ctl_start_pg),
+	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
+
+	cb(sc, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
+	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
+
+	cb(sc, &(sc->sc_hw.last_qh_pc), &(sc->sc_hw.last_qh_pg),
+	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
+
+	cb(sc, &(sc->sc_hw.last_td_pc), &(sc->sc_hw.last_td_pg),
+	    sizeof(uhci_td_t), UHCI_TD_ALIGN);
+
+	for (i = 0; i != UHCI_VFRAMELIST_COUNT; i++) {
+		cb(sc, sc->sc_hw.isoc_start_pc + i,
+		    sc->sc_hw.isoc_start_pg + i,
+		    sizeof(uhci_td_t), UHCI_TD_ALIGN);
+	}
+
+	for (i = 0; i != UHCI_IFRAMELIST_COUNT; i++) {
+		cb(sc, sc->sc_hw.intr_start_pc + i,
+		    sc->sc_hw.intr_start_pg + i,
+		    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
+	}
+	return;
+}
+
+void
+uhci_flush_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	usbd_pc_cpu_flush(pc);
+	return;
+}
+
+void
+uhci_alloc_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
+	    sc->sc_bus.dma_tag, pc, pg, size, align)) {
+		sc->sc_alloc_failed = 1;
+	}
+	return;
+}
 
+void
+uhci_free_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	usbd_dma_free_mem(pc);
+	return;
+}
+
 static void
 uhci_mem_layout_init(struct uhci_mem_layout *ml, struct usbd_xfer *xfer)
 {
 	ml->buf_pc = xfer->frbuffers + 0;
-	ml->fix_pc = &(xfer->buf_fixup);
+	ml->fix_pc = xfer->buf_fixup;
 
 	ml->buf_offset = 0;
-	ml->fix_offset = 0;
 
 	ml->max_frame_size = xfer->max_frame_size;
 
@@ -189,22 +246,10 @@
 
 	if (ml->buf_res.length < td->len) {
 
-		while (1) {
+		/* need to do a fixup */
 
-			/* need to do a fixup */
-
-			usbd_get_page(ml->fix_pc, ml->fix_offset, &(ml->fix_res));
-
-			/* check if there is room for the current transfer */
-
-			if (ml->fix_res.length >= td->len) {
-				break;
-			}
-			/* need to do a sub-fixup (goto next page) */
+		usbd_get_page(ml->fix_pc, 0, &(ml->fix_res));
 
-			ml->fix_offset += ml->fix_res.length;
-		}
-
 		td->td_buffer = htole32(ml->fix_res.physaddr);
 
 		/*
@@ -224,28 +269,28 @@
 
 		if ((td->td_token & htole32(UHCI_TD_PID)) ==
 		    htole32(UHCI_TD_PID_IN)) {
-			td->fix_offset = ml->fix_offset;
+			td->fix_pc = ml->fix_pc;
+			usbd_pc_cpu_invalidate(ml->fix_pc);
+
 		} else {
-			td->fix_offset = UHCI_FIX_OFFSET_NONE;
+			td->fix_pc = NULL;
 
 			/* copy data to fixup location */
 
-			usbd_page_cpu_invalidate(ml->fix_res.page);
-
 			usbd_copy_out(ml->buf_pc, ml->buf_offset,
 			    ml->fix_res.buffer, td->len);
 
-			usbd_page_cpu_flush(ml->fix_res.page);
+			usbd_pc_cpu_flush(ml->fix_pc);
 		}
 
 		/* prepare next fixup */
 
-		ml->fix_offset += ml->max_frame_size;
+		ml->fix_pc++;
 
 	} else {
 
 		td->td_buffer = htole32(ml->buf_res.physaddr);
-		td->fix_offset = UHCI_FIX_OFFSET_NONE;
+		td->fix_pc = NULL;
 	}
 
 	/* prepare next data location */
@@ -258,7 +303,8 @@
 void
 uhci_reset(uhci_softc_t *sc)
 {
-	u_int n;
+	struct usbd_page_search buf_res;
+	uint16_t n;
 
 	mtx_assert(&sc->sc_bus.mtx, MA_OWNED);
 
@@ -316,8 +362,8 @@
 done_2:
 
 	/* reload the configuration */
-
-	UWRITE4(sc, UHCI_FLBASEADDR, SC_HW_PHYSADDR(sc, pframes));
+	usbd_get_page(&(sc->sc_hw.pframes_pc), 0, &buf_res);
+	UWRITE4(sc, UHCI_FLBASEADDR, buf_res.physaddr);
 	UWRITE2(sc, UHCI_FRNUM, sc->sc_saved_frnum);
 	UWRITE1(sc, UHCI_SOF, sc->sc_saved_sof);
 	return;
@@ -365,18 +411,53 @@
 	return;
 }
 
+static struct uhci_qh *
+uhci_init_qh(struct usbd_page_cache *pc)
+{
+	struct usbd_page_search buf_res;
+	struct uhci_qh *qh;
+
+	usbd_get_page(pc, 0, &buf_res);
+
+	qh = buf_res.buffer;
+
+	qh->qh_self =
+	    htole32(buf_res.physaddr) |
+	    htole32(UHCI_PTR_QH);
+
+	qh->page_cache = pc;
+
+	return qh;
+}
+
+static struct uhci_td *
+uhci_init_td(struct usbd_page_cache *pc)
+{
+	struct usbd_page_search buf_res;
+	struct uhci_td *td;
+
+	usbd_get_page(pc, 0, &buf_res);
+
+	td = buf_res.buffer;
+
+	td->td_self =
+	    htole32(buf_res.physaddr) |
+	    htole32(UHCI_PTR_TD);
+
+	td->page_cache = pc;
+
+	return td;
+}
+
 usbd_status
 uhci_init(uhci_softc_t *sc)
 {
-	struct uhci_hw_softc *hw_ptr;
 	uint16_t bit;
 	uint16_t x;
 	uint16_t y;
 
 	mtx_lock(&sc->sc_bus.mtx);
 
-	hw_ptr = sc->sc_hw_ptr;
-
 	DPRINTF(("start\n"));
 
 #ifdef USB_DEBUG
@@ -388,56 +469,40 @@
 	sc->sc_saved_sof = 0x40;	/* default value */
 	sc->sc_saved_frnum = 0;		/* default frame number */
 
-	usbd_page_cpu_invalidate(&(sc->sc_hw_page));
-
 	/*
-	 * setup self pointers
+	 * Setup QH's
 	 */
-	hw_ptr->ls_ctl_start.qh_self =
-	    htole32(SC_HW_PHYSADDR(sc, ls_ctl_start) | UHCI_PTR_QH);
-	hw_ptr->ls_ctl_start.page =
-	    &(sc->sc_hw_page);
+	sc->sc_ls_ctl_p_last =
+	    uhci_init_qh(&(sc->sc_hw.ls_ctl_start_pc));
 
-	hw_ptr->hs_ctl_start.qh_self =
-	    htole32(SC_HW_PHYSADDR(sc, hs_ctl_start) | UHCI_PTR_QH);
-	hw_ptr->hs_ctl_start.page =
-	    &(sc->sc_hw_page);
+	sc->sc_fs_ctl_p_last =
+	    uhci_init_qh(&(sc->sc_hw.fs_ctl_start_pc));
 
-	hw_ptr->bulk_start.qh_self =
-	    htole32(SC_HW_PHYSADDR(sc, bulk_start) | UHCI_PTR_QH);
-	hw_ptr->bulk_start.page =
-	    &(sc->sc_hw_page);
+	sc->sc_bulk_p_last =
+	    uhci_init_qh(&(sc->sc_hw.bulk_start_pc));
+#if 0
+	sc->sc_reclaim_qh_p =
+	    sc->sc_fs_ctl_p_last;
+#else
+	/* setup reclaim looping point */
+	sc->sc_reclaim_qh_p =
+	    sc->sc_bulk_p_last;
+#endif
 
-	hw_ptr->last_qh.qh_self =
-	    htole32(SC_HW_PHYSADDR(sc, last_qh) | UHCI_PTR_QH);
-	hw_ptr->last_qh.page =
-	    &(sc->sc_hw_page);
+	sc->sc_last_qh_p =
+	    uhci_init_qh(&(sc->sc_hw.last_qh_pc));
 
-	hw_ptr->last_td.td_self =
-	    htole32(SC_HW_PHYSADDR(sc, last_td) | UHCI_PTR_TD);
-	hw_ptr->last_td.page =
-	    &(sc->sc_hw_page);
+	sc->sc_last_td_p =
+	    uhci_init_td(&(sc->sc_hw.last_td_pc));
 
-	for (x = 0;
-	    x < UHCI_VFRAMELIST_COUNT;
-	    x++) {
-		hw_ptr->isoc_start[x].td_self =
-		    htole32(SC_HW_PHYSADDR(sc, isoc_start[x]) | UHCI_PTR_TD);
-		hw_ptr->isoc_start[x].page =
-		    &(sc->sc_hw_page);
+	for (x = 0; x != UHCI_VFRAMELIST_COUNT; x++) {
 		sc->sc_isoc_p_last[x] =
-		    &(hw_ptr->isoc_start[x]);
+		    uhci_init_td(sc->sc_hw.isoc_start_pc + x);
 	}
 
-	for (x = 0;
-	    x < UHCI_IFRAMELIST_COUNT;
-	    x++) {
-		hw_ptr->intr_start[x].qh_self =
-		    htole32(SC_HW_PHYSADDR(sc, intr_start[x]) | UHCI_PTR_QH);
-		hw_ptr->intr_start[x].page =
-		    &(sc->sc_hw_page);
+	for (x = 0; x != UHCI_IFRAMELIST_COUNT; x++) {
 		sc->sc_intr_p_last[x] =
-		    &(hw_ptr->intr_start[x]);
+		    uhci_init_qh(sc->sc_hw.intr_start_pc + x);
 	}
 
 	/*
@@ -448,87 +513,136 @@
 	while (bit) {
 		x = bit;
 		while (x & bit) {
+			uhci_qh_t *qh_x;
+			uhci_qh_t *qh_y;
+
 			y = (x ^ bit) | (bit / 2);
+
 			/*
 			 * the next QH has half the poll interval
 			 */
-			hw_ptr->intr_start[x].h_next = NULL;
-			hw_ptr->intr_start[x].qh_h_next =
-			    hw_ptr->intr_start[y].qh_self;
-			hw_ptr->intr_start[x].e_next = NULL;
-			hw_ptr->intr_start[x].qh_e_next = htole32(UHCI_PTR_T);
+			qh_x = sc->sc_intr_p_last[x];
+			qh_y = sc->sc_intr_p_last[y];
+
+			qh_x->h_next = NULL;
+			qh_x->qh_h_next = qh_y->qh_self;
+			qh_x->e_next = NULL;
+			qh_x->qh_e_next = htole32(UHCI_PTR_T);
 			x++;
 		}
 		bit >>= 1;
 	}
 
-	/* start QH for interrupt traffic */
-	hw_ptr->intr_start[0].h_next = &(hw_ptr->ls_ctl_start);
-	hw_ptr->intr_start[0].qh_h_next = hw_ptr->ls_ctl_start.qh_self;
-	hw_ptr->intr_start[0].e_next = 0;
-	hw_ptr->intr_start[0].qh_e_next = htole32(UHCI_PTR_T);
+	if (1) {
+		uhci_qh_t *qh_ls;
+		uhci_qh_t *qh_intr;
+
+		qh_ls = sc->sc_ls_ctl_p_last;
+		qh_intr = sc->sc_intr_p_last[0];
+
+		/* start QH for interrupt traffic */
+		qh_intr->h_next = qh_ls;
+		qh_intr->qh_h_next = qh_ls->qh_self;
+		qh_intr->e_next = 0;
+		qh_intr->qh_e_next = htole32(UHCI_PTR_T);
+	}
+	for (x = 0; x != UHCI_VFRAMELIST_COUNT; x++) {
+
+		uhci_td_t *td_x;
+		uhci_qh_t *qh_intr;
+
+		td_x = sc->sc_isoc_p_last[x];
+		qh_intr = sc->sc_intr_p_last[x | (UHCI_IFRAMELIST_COUNT / 2)];
 
-	for (x = 0;
-	    x < UHCI_VFRAMELIST_COUNT;
-	    x++) {
 		/* start TD for isochronous traffic */
-		hw_ptr->isoc_start[x].next = NULL;
-		hw_ptr->isoc_start[x].td_next =
-		    hw_ptr->intr_start[x | (UHCI_IFRAMELIST_COUNT / 2)].qh_self;
-		hw_ptr->isoc_start[x].td_status = htole32(UHCI_TD_IOS);
-		hw_ptr->isoc_start[x].td_token = htole32(0);
-		hw_ptr->isoc_start[x].td_buffer = htole32(0);
+		td_x->next = NULL;
+		td_x->td_next = qh_intr->qh_self;
+		td_x->td_status = htole32(UHCI_TD_IOS);
+		td_x->td_token = htole32(0);
+		td_x->td_buffer = htole32(0);
+	}
+
+	if (1) {
+		uhci_qh_t *qh_ls;
+		uhci_qh_t *qh_fs;
+
+		qh_ls = sc->sc_ls_ctl_p_last;
+		qh_fs = sc->sc_fs_ctl_p_last;
+
+		/* start QH where low speed control traffic will be queued */
+		qh_ls->h_next = qh_fs;
+		qh_ls->qh_h_next = qh_fs->qh_self;
+		qh_ls->e_next = 0;
+		qh_ls->qh_e_next = htole32(UHCI_PTR_T);
 	}
+	if (1) {
+		uhci_qh_t *qh_ctl;
+		uhci_qh_t *qh_blk;
+		uhci_qh_t *qh_lst;
+		uhci_td_t *td_lst;
+
+		qh_ctl = sc->sc_fs_ctl_p_last;
+		qh_blk = sc->sc_bulk_p_last;
+
+		/* start QH where full speed control traffic will be queued */
+		qh_ctl->h_next = qh_blk;
+		qh_ctl->qh_h_next = qh_blk->qh_self;
+		qh_ctl->e_next = 0;
+		qh_ctl->qh_e_next = htole32(UHCI_PTR_T);
 
-	/* start QH where low speed control traffic will be queued */
-	hw_ptr->ls_ctl_start.h_next = &(hw_ptr->hs_ctl_start);
-	hw_ptr->ls_ctl_start.qh_h_next = hw_ptr->hs_ctl_start.qh_self;
-	hw_ptr->ls_ctl_start.e_next = 0;
-	hw_ptr->ls_ctl_start.qh_e_next = htole32(UHCI_PTR_T);
+		qh_lst = sc->sc_last_qh_p;
 
-	sc->sc_ls_ctl_p_last = &(hw_ptr->ls_ctl_start);
+		/* start QH where bulk traffic will be queued */
+		qh_blk->h_next = qh_lst;
+		qh_blk->qh_h_next = qh_lst->qh_self;
+		qh_blk->e_next = 0;
+		qh_blk->qh_e_next = htole32(UHCI_PTR_T);
 
-	/* start QH where high speed control traffic will be queued */
-	hw_ptr->hs_ctl_start.h_next = &(hw_ptr->bulk_start);
-	hw_ptr->hs_ctl_start.qh_h_next = hw_ptr->bulk_start.qh_self;
-	hw_ptr->hs_ctl_start.e_next = 0;
-	hw_ptr->hs_ctl_start.qh_e_next = htole32(UHCI_PTR_T);
+		td_lst = sc->sc_last_td_p;
 
-	sc->sc_hs_ctl_p_last = &(hw_ptr->hs_ctl_start);
+		/* end QH which is used for looping the QHs */
+		qh_lst->h_next = 0;
+		qh_lst->qh_h_next = htole32(UHCI_PTR_T);	/* end of QH chain */
+		qh_lst->e_next = td_lst;
+		qh_lst->qh_e_next = td_lst->td_self;
 
-	/* start QH where bulk traffic will be queued */
-	hw_ptr->bulk_start.h_next = &(hw_ptr->last_qh);
-	hw_ptr->bulk_start.qh_h_next = hw_ptr->last_qh.qh_self;
-	hw_ptr->bulk_start.e_next = 0;
-	hw_ptr->bulk_start.qh_e_next = htole32(UHCI_PTR_T);
+		/*
+		 * end TD which hangs from the last QH, to avoid a bug in the PIIX
+		 * that makes it run berserk otherwise
+		 */
+		td_lst->next = 0;
+		td_lst->td_next = htole32(UHCI_PTR_T);
+		td_lst->td_status = htole32(0);	/* inactive */
+		td_lst->td_token = htole32(0);
+		td_lst->td_buffer = htole32(0);
+	}
+	if (1) {
+		struct usbd_page_search buf_res;
+		uint32_t *pframes;
 
-	sc->sc_bulk_p_last = &(hw_ptr->bulk_start);
+		usbd_get_page(&(sc->sc_hw.pframes_pc), 0, &buf_res);
 
-	/* end QH which is used for looping the QHs */
-	hw_ptr->last_qh.h_next = 0;
-	hw_ptr->last_qh.qh_h_next = htole32(UHCI_PTR_T);	/* end of QH chain */
-	hw_ptr->last_qh.e_next = &(hw_ptr->last_td);
-	hw_ptr->last_qh.qh_e_next = hw_ptr->last_td.td_self;
+		pframes = buf_res.buffer;
 
-	/*
-	 * end TD which hangs from the last QH, to avoid a bug in the PIIX
-	 * that makes it run berserk otherwise
-	 */
-	hw_ptr->last_td.next = 0;
-	hw_ptr->last_td.td_next = htole32(UHCI_PTR_T);
-	hw_ptr->last_td.td_status = htole32(0);	/* inactive */
-	hw_ptr->last_td.td_token = htole32(0);
-	hw_ptr->last_td.td_buffer = htole32(0);
 
-	/* setup UHCI framelist */
+		/*
+		 * Setup UHCI framelist
+		 *
+		 * Execution order:
+		 *
+		 * pframes -> full speed isochronous -> interrupt QH's -> low
+		 * speed control -> full speed control -> bulk transfers
+		 *
+		 */
 
-	for (x = 0;
-	    x < UHCI_FRAMELIST_COUNT;
-	    x++) {
-		hw_ptr->pframes[x] = hw_ptr->isoc_start[x % UHCI_VFRAMELIST_COUNT].td_self;
+		for (x = 0; x != UHCI_FRAMELIST_COUNT; x++) {
+			pframes[x] =
+			    sc->sc_isoc_p_last[x % UHCI_VFRAMELIST_COUNT]->td_self;
+		}
 	}
+	/* flush all cache into memory */
 
-	usbd_page_cpu_flush(&(sc->sc_hw_page));
+	uhci_iterate_hw_softc(sc, &uhci_flush_all);
 
 	LIST_INIT(&sc->sc_interrupt_list_head);
 
@@ -641,7 +755,7 @@
 	uint32_t td_token;
 	uint8_t temp;
 
-	usbd_page_cpu_invalidate(p->page);
+	usbd_pc_cpu_invalidate(p->page_cache);
 
 	td_next = le32toh(p->td_next);
 	td_status = le32toh(p->td_status);
@@ -687,8 +801,6 @@
 	    UHCI_TD_GET_DT(td_token),
 	    UHCI_TD_GET_MAXLEN(td_token));
 
-	usbd_page_cpu_flush(p->page);
-
 	return (temp);
 }
 
@@ -699,7 +811,7 @@
 	uint32_t qh_h_next;
 	uint32_t qh_e_next;
 
-	usbd_page_cpu_invalidate(sqh->page);
+	usbd_pc_cpu_invalidate(sqh->page_cache);
 
 	qh_h_next = le32toh(sqh->qh_h_next);
 	qh_e_next = le32toh(sqh->qh_e_next);
@@ -710,20 +822,17 @@
 	temp = ((((sqh->h_next != NULL) && !(qh_h_next & UHCI_PTR_T)) ? 1 : 0) |
 	    (((sqh->e_next != NULL) && !(qh_e_next & UHCI_PTR_T)) ? 2 : 0));
 
-	usbd_page_cpu_flush(sqh->page);
 	return (temp);
 }
 
 static void
 uhci_dump_all(uhci_softc_t *sc)
 {
-	struct uhci_hw_softc *hw_ptr = sc->sc_hw_ptr;
-
 	uhci_dumpregs(sc);
-	uhci_dump_qh(&(hw_ptr->ls_ctl_start));
-	uhci_dump_qh(&(hw_ptr->hs_ctl_start));
-	uhci_dump_qh(&(hw_ptr->bulk_start));
-	uhci_dump_qh(&(hw_ptr->last_qh));
+	uhci_dump_qh(sc->sc_ls_ctl_p_last);
+	uhci_dump_qh(sc->sc_fs_ctl_p_last);
+	uhci_dump_qh(sc->sc_bulk_p_last);
+	uhci_dump_qh(sc->sc_last_qh_p);
 	return;
 }
 
@@ -786,7 +895,7 @@
 #endif
 
 /*
- * Let the last QH loop back to the high speed control transfer QH.
+ * Let the last QH loop back to the full speed control transfer QH.
  * This is what intel calls "bandwidth reclamation" and improves
  * USB performance a lot for some devices.
  * If we are already looping, just count it.
@@ -794,29 +903,24 @@
 static void
 uhci_add_loop(uhci_softc_t *sc)
 {
-	struct uhci_hw_softc *hw_ptr;
+	struct uhci_qh *qh_lst;
+	struct uhci_qh *qh_rec;
 
 #ifdef USB_DEBUG
 	if (uhcinoloop) {
 		return;
 	}
 #endif
-	if (++sc->sc_loops == 1) {
+	if (++(sc->sc_loops) == 1) {
 		DPRINTFN(5, ("add\n"));
 
-		hw_ptr = sc->sc_hw_ptr;
+		qh_lst = sc->sc_last_qh_p;
+		qh_rec = sc->sc_reclaim_qh_p;
 
-		usbd_page_cpu_invalidate(&(sc->sc_hw_page));
+		/* NOTE: we don't loop back the soft pointer */
 
-		/* NOTE: we don't loop back the soft pointer */
-#if 0
-		hw_ptr->last_qh.qh_h_next =
-		    hw_ptr->hs_ctl_start.qh_self;
-#else
-		hw_ptr->last_qh.qh_h_next =
-		    hw_ptr->bulk_start.qh_self;
-#endif
-		usbd_page_cpu_flush(&(sc->sc_hw_page));
+		qh_lst->qh_h_next = qh_rec->qh_self;
+		usbd_pc_cpu_flush(qh_lst->page_cache);
 	}
 	return;
 }
@@ -824,20 +928,19 @@
 static void
 uhci_rem_loop(uhci_softc_t *sc)
 {
-	struct uhci_hw_softc *hw_ptr;
+	struct uhci_qh *qh_lst;
 
 #ifdef USB_DEBUG
 	if (uhcinoloop) {
 		return;
 	}
 #endif
-	if (--sc->sc_loops == 0) {
+	if (--(sc->sc_loops) == 0) {
 		DPRINTFN(5, ("remove\n"));
-		hw_ptr = sc->sc_hw_ptr;
 
-		usbd_page_cpu_invalidate(&(sc->sc_hw_page));
-		hw_ptr->last_qh.qh_h_next = htole32(UHCI_PTR_T);
-		usbd_page_cpu_flush(&(sc->sc_hw_page));
+		qh_lst = sc->sc_last_qh_p;
+		qh_lst->qh_h_next = htole32(UHCI_PTR_T);
+		usbd_pc_cpu_flush(qh_lst->page_cache);
 	}
 	return;
 }
@@ -850,15 +953,12 @@
 
 	/* (sc->sc_bus.mtx) must be locked */
 
-	usbd_page_cpu_invalidate(std->page);
-
 	std->next = last->next;
 	std->td_next = last->td_next;
 
 	std->prev = last;
 
-	usbd_page_cpu_flush(std->page);
-	usbd_page_cpu_invalidate(last->page);
+	usbd_pc_cpu_flush(std->page_cache);
 
 	/*
 	 * the last->next->prev is never followed: std->next->prev = std;
@@ -866,7 +966,7 @@
 	last->next = std;
 	last->td_next = std->td_self;
 
-	usbd_page_cpu_flush(last->page);
+	usbd_pc_cpu_flush(last->page_cache);
 
 	return (std);
 }
@@ -879,8 +979,6 @@
 
 	/* (sc->sc_bus.mtx) must be locked */
 
-	usbd_page_cpu_invalidate(sqh->page);
-
 	sqh->e_next = td;
 	sqh->qh_e_next = td->td_self;
 
@@ -889,18 +987,18 @@
 
 	sqh->h_prev = last;
 
-	usbd_page_cpu_flush(sqh->page);
-	usbd_page_cpu_invalidate(last->page);
+	usbd_pc_cpu_flush(sqh->page_cache);
 
 	/*
-	 * the last->h_next->h_prev is never followed: sqh->h_next->h_prev =
-	 * sqh;
+	 * The "last->h_next->h_prev" is never followed:
+	 *
+	 * "sqh->h_next->h_prev" = sqh;
 	 */
 
 	last->h_next = sqh;
 	last->qh_h_next = sqh->qh_self;
 
-	usbd_page_cpu_flush(last->page);
+	usbd_pc_cpu_flush(last->page_cache);
 
 	return (sqh);
 }
@@ -915,17 +1013,14 @@
 
 	/* (sc->sc_bus.mtx) must be locked */
 
-	usbd_page_cpu_invalidate(std->prev->page);
-
 	std->prev->next = std->next;
 	std->prev->td_next = std->td_next;
 
-	usbd_page_cpu_flush(std->prev->page);
+	usbd_pc_cpu_flush(std->prev->page_cache);
 
 	if (std->next) {
-		usbd_page_cpu_invalidate(std->next->page);
 		std->next->prev = std->prev;
-		usbd_page_cpu_flush(std->next->page);
+		usbd_pc_cpu_flush(std->next->page_cache);
 	}
 	return ((last == std) ? std->prev : last);
 }
@@ -940,20 +1035,16 @@
 
 	/* only remove if not removed from a queue */
 	if (sqh->h_prev) {
-		usbd_page_cpu_invalidate(sqh->h_prev->page);
 
 		sqh->h_prev->h_next = sqh->h_next;
 		sqh->h_prev->qh_h_next = sqh->qh_h_next;
 
-		usbd_page_cpu_flush(sqh->h_prev->page);
+		usbd_pc_cpu_flush(sqh->h_prev->page_cache);
 
 		if (sqh->h_next) {
-			usbd_page_cpu_invalidate(sqh->h_next->page);
 			sqh->h_next->h_prev = sqh->h_prev;
-			usbd_page_cpu_flush(sqh->h_next->page);
+			usbd_pc_cpu_flush(sqh->h_next->page_cache);
 		}
-		usbd_page_cpu_invalidate(sqh->page);
-
 		/*
 		 * set the Terminate-bit in the e_next of the QH, in case
 		 * the transferred packet was short so that the QH still
@@ -961,7 +1052,7 @@
 		 */
 		sqh->qh_e_next = htole32(UHCI_PTR_T);
 
-		usbd_page_cpu_flush(sqh->page);
+		usbd_pc_cpu_flush(sqh->page_cache);
 
 		last = ((last == sqh) ? sqh->h_prev : last);
 
@@ -970,9 +1061,6 @@
 	return (last);
 }
 
-static void
-	uhci_device_done(struct usbd_xfer *xfer, usbd_status error);
-
 static uint8_t
 uhci_isoc_done(uhci_softc_t *sc, struct usbd_xfer *xfer)
 {
@@ -989,6 +1077,11 @@
 	DPRINTFN(12, ("xfer=%p pipe=%p transfer done\n",
 	    xfer, xfer->pipe));
 
+	/* sync any DMA memory before doing fixups */
+	if (xfer->flags.bdma_enable) {
+		usbd_dma_load_post_sync(xfer);
+		XXX;
+	}
 	while (nframes--) {
 		if (td == NULL) {
 			panic("%s:%d: out of TD's\n",
@@ -1003,9 +1096,8 @@
 			uhci_dump_td(td);
 		}
 #endif
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_cpu_invalidate(td->page_cache);
 		status = le32toh(td->td_status);
-		usbd_page_cpu_flush(td->page);
 
 		/* check for active transfers */
 
@@ -1017,18 +1109,16 @@
 		if (len > *plen) {
 			len = *plen;
 		}
-		if (td->fix_offset != UHCI_FIX_OFFSET_NONE) {
+		if (td->fix_pc) {
 
-			usbd_get_page(&(xfer->buf_fixup), td->fix_offset, &res);
+			usbd_get_page(td->fix_pc, 0, &res);
 
 			/* copy data from fixup location to real location */
 
-			usbd_page_cpu_invalidate(res.page);
+			usbd_pc_cpu_invalidate(td->fix_pc);
 
 			usbd_copy_in(xfer->frbuffers + 0, offset,
 			    res.buffer, len);
-
-			usbd_page_cpu_flush(res.page);
 		}
 		offset += *plen;
 
@@ -1065,10 +1155,9 @@
 	}
 	while (1) {
 
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_cpu_invalidate(td->page_cache);
 		status = le32toh(td->td_status);
 		token = le32toh(td->td_token);
-		usbd_page_cpu_flush(td->page);
 
 		/*
 	         * Verify the status and add
@@ -1084,21 +1173,19 @@
 
 		} else if ((xfer->aframes != xfer->nframes) && (len > 0)) {
 
-			if (td->fix_offset != UHCI_FIX_OFFSET_NONE) {
+			if (td->fix_pc) {
 
-				usbd_get_page(&(xfer->buf_fixup), td->fix_offset, &res);
+				usbd_get_page(td->fix_pc, 0, &res);
 
 				/*
 				 * copy data from fixup location to real
 				 * location
 				 */
 
-				usbd_page_cpu_invalidate(res.page);
+				usbd_pc_cpu_invalidate(td->fix_pc);
 
 				usbd_copy_in(xfer->frbuffers + xfer->aframes,
 				    xfer->frlengths[xfer->aframes], res.buffer, len);
-
-				usbd_page_cpu_flush(res.page);
 			}
 			/* update actual length */
 
@@ -1163,7 +1250,6 @@
 	    USBD_STALLED : USBD_NORMAL_COMPLETION;
 }
 
-
 static void
 uhci_non_isoc_done(struct usbd_xfer *xfer)
 {
@@ -1178,6 +1264,10 @@
 	}
 #endif
 
+	/* sync any DMA memory before doing fixups */
+	if (xfer->flags.bdma_enable) {
+		usbd_dma_load_post_sync(xfer);
+	}
 	/* reset scanner */
 
 	xfer->td_transfer_cache = xfer->td_transfer_first;
@@ -1251,9 +1341,8 @@
 
 		while (1) {
 
-			usbd_page_cpu_invalidate(td->page);
 			td->td_token ^= htole32(UHCI_TD_SET_DT(1));
-			usbd_page_cpu_flush(td->page);
+			usbd_pc_cpu_flush(td->page_cache);
 
 			if (td == xfer->td_transfer_last) {
 				/* last transfer */
@@ -1268,9 +1357,8 @@
 		}
 	}
 	/* update the QH */
-	usbd_page_cpu_invalidate(qh->page);
 	qh->qh_e_next = td_self;
-	usbd_page_cpu_flush(qh->page);
+	usbd_pc_cpu_flush(qh->page_cache);
 
 	DPRINTFN(12, ("xfer=%p following alt next\n", xfer));
 	return;
@@ -1303,9 +1391,8 @@
 
 		td = xfer->td_transfer_last;
 
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_invalidate(td->page_cache);
 		status = le32toh(td->td_status);
-		usbd_page_cpu_flush(td->page);
 
 		if (!(status & UHCI_TD_ACTIVE)) {
 			uhci_device_done(xfer, USBD_NORMAL_COMPLETION);
@@ -1322,10 +1409,9 @@
 		td = xfer->td_transfer_cache;
 
 		while (1) {
-			usbd_page_cpu_invalidate(td->page);
+			usbd_pc_cpu_invalidate(td->page_cache);
 			status = le32toh(td->td_status);
 			token = le32toh(td->td_token);
-			usbd_page_cpu_flush(td->page);
 
 			/*
 			 * if there is an active TD the transfer isn't done
@@ -1663,8 +1749,6 @@
 
 			continue;
 		}
-		usbd_page_cpu_invalidate(td->page);
-
 		/* fill out current TD */
 
 		td->td_status = temp->td_status;
@@ -1678,7 +1762,7 @@
 
 			td->len = 0;
 			td->td_buffer = 0;
-			td->fix_offset = UHCI_FIX_OFFSET_NONE;
+			td->fix_pc = NULL;
 
 		} else {
 
@@ -1706,7 +1790,7 @@
 			}
 		}
 
-		usbd_page_cpu_flush(td->page);
+		usbd_pc_cpu_flush(td->page_cache);
 	}
 
 	if (precompute) {
@@ -1858,15 +1942,13 @@
 	}
 	td = temp.td;
 
-	usbd_page_cpu_invalidate(td->page);
-
 	td->td_next = htole32(UHCI_PTR_T);
 
 	/* set interrupt bit */
 
 	td->td_status |= htole32(UHCI_TD_IOC);
 
-	usbd_page_cpu_flush(td->page);
+	usbd_pc_cpu_flush(td->page_cache);
 
 	/* must have at least one frame! */
 
@@ -1903,7 +1985,7 @@
 	    xfer, xfer->pipe, error));
 
 	for (qh = xfer->qh_start; qh; qh = qh->obj_next) {
-		usbd_page_cpu_invalidate(qh->page);
+		usbd_pc_cpu_invalidate(qh->page_cache);
 
 		if (!(qh->qh_e_next & htole32(UHCI_PTR_T))) {
 			need_delay = 1;
@@ -1911,7 +1993,7 @@
 		qh->e_next = 0;
 		qh->qh_e_next = htole32(UHCI_PTR_T);
 
-		usbd_page_cpu_flush(qh->page);
+		usbd_pc_cpu_flush(qh->page_cache);
 	}
 
 	if (xfer->flags_int.bandwidth_reclaimed) {
@@ -1925,7 +2007,7 @@
 		if (xfer->udev->speed == USB_SPEED_LOW) {

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 22:02:01 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 9426016A41B; Fri, 30 Nov 2007 22:02: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 312DD16A419
	for ; Fri, 30 Nov 2007 22:02:01 +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 2345D13C448
	for ; Fri, 30 Nov 2007 22:02:01 +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 lAUM21Kd019191
	for ; Fri, 30 Nov 2007 22:02:01 GMT
	(envelope-from hselasky@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUM21KI019188
	for perforce@freebsd.org; Fri, 30 Nov 2007 22:02:01 GMT
	(envelope-from hselasky@FreeBSD.org)
Date: Fri, 30 Nov 2007 22:02:01 GMT
Message-Id: <200711302202.lAUM21KI019188@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 129844 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: Fri, 30 Nov 2007 22:02:01 -0000

http://perforce.freebsd.org/chv.cgi?CH=129844

Change 129844 by hselasky@hselasky_laptop001 on 2007/11/30 22:01:33

	
	Updates to OHCI according to change 129799 .

Affected files ...

.. //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#8 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci.c#42 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci.h#18 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#26 edit

Differences ...

==== //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#8 (text) ====

@@ -71,10 +71,18 @@
 	if (sc == NULL) {
 		return (ENXIO);
 	}
-	if (usbd_bus_mem_setup(&(sc->sc_ohci.sc_bus), device_get_dma_tag(dev),
-	    sizeof(*(sc->sc_ohci.sc_bus.hw_ptr.ohci)), 32, LOG2(OHCI_HCCA_ALIGN))) {
-		device_printf(dev, "Could not allocate DMA-able memory\n");
-		return (ENOMEM);
+	/* store parent DMA tag */
+
+	sc->sc_bus.dma_tag_parent = device_get_dma_tag(self);
+
+	/* get all DMA memory */
+
+	ohci_iterate_hw_softc(sc, &ohci_alloc_all);
+
+	if (sc->sc_alloc_failed) {
+		ohci_iterate_hw_softc(sc, &ohci_free_all);
+		usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+		return ENOMEM;
 	}
 	sc->iclk = at91_pmc_clock_ref("ohci_clk");
 	sc->fclk = at91_pmc_clock_ref("uhpck");
@@ -195,7 +203,11 @@
 		    sc->sc_ohci.sc_io_res);
 		sc->sc_ohci.sc_io_res = NULL;
 	}
-	usbd_bus_mem_unsetup(&(sc->sc_ohci.sc_bus));
+	usbd_config_td_unsetup(&(sc->sc_config_td));
+
+	ohci_iterate_hw_softc(sc, &ohci_free_all);
+
+	usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
 
 	mtx_destroy(&(sc->sc_ohci.sc_bus.mtx));
 

==== //depot/projects/usb/src/sys/dev/usb/ohci.c#42 (text+ko) ====

@@ -123,14 +123,11 @@
 static usbd_config_td_command_t ohci_root_ctrl_task;
 static void ohci_root_ctrl_task_td(struct ohci_softc *sc, struct thread *ctd);
 static void ohci_do_poll(struct usbd_bus *bus);
+static void ohci_device_done(struct usbd_xfer *xfer, usbd_status error);
 
 static usbd_std_root_transfer_func_t ohci_root_intr_done;
 static usbd_std_root_transfer_func_t ohci_root_ctrl_task_td_sub;
 
-#define	SC_HW_PHYSADDR(sc,what) \
-  ((sc)->sc_hw_page.physaddr + \
-   POINTER_TO_UNSIGNED(&(((struct ohci_hw_softc *)0)->what)))
-
 struct ohci_std_temp {
 	struct usbd_page_cache *pc;
 	ohci_td_t *td;
@@ -143,11 +140,76 @@
 	uint8_t	setup_alt_next;
 };
 
+static struct ohci_hcca *
+ohci_get_hcca(ohci_softc_t *sc)
+{
+	usbd_pc_cpu_invalidate(&(sc->sc_hw.hcca_pc));
+	return (sc->sc_hcca_p);
+}
+
+void
+ohci_iterate_hw_softc(ohci_softc_t *sc, ohci_iterate_cb_t *cb)
+{
+	uint32_t i;
+
+	cb(sc, &(sc->sc_hw.hcca_pc), &(sc->sc_hw.hcca_pg),
+	    sizeof(ohci_hcca_t), OHCI_HCCA_ALIGN);
+
+	cb(sc, &(sc->sc_hw.ctrl_start_pc), &(sc->sc_hw.ctrl_start_pg),
+	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
+
+	cb(sc, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
+	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
+
+	cb(sc, &(sc->sc_hw.isoc_start_pc), &(sc->sc_hw.isoc_start_pg),
+	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
+
+	for (i = 0; i != OHCI_NO_EDS; i++) {
+		cb(sc, sc->sc_hw.intr_start_pc + i, sc->sc_hw.intr_start_pg + i,
+		    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
+	}
+	return;
+}
+
+void
+ohci_flush_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	usbd_pc_cpu_flush(pc);
+	return;
+}
+
+void
+ohci_alloc_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
+	    sc->sc_bus.dma_tag, pc, pg, size, align)) {
+		sc->sc_alloc_failed = 1;
+	}
+	return;
+}
+
+void
+ohci_free_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
+    struct usbd_page *pg, uint32_t size, uint32_t align)
+{
+	usbd_dma_free_mem(pc);
+	return;
+}
+
 static	usbd_status
 ohci_controller_init(ohci_softc_t *sc)
 {
-	int i;
-	uint32_t s, ctl, ival, hcr, fm, per, desca;
+	struct usbd_page_search buf_res;
+	uint32_t i;
+	uint32_t s;
+	uint32_t ctl;
+	uint32_t ival;
+	uint32_t hcr;
+	uint32_t fm;
+	uint32_t per;
+	uint32_t desca;
 
 	/* Determine in what context we are running. */
 	ctl = OREAD4(sc, OHCI_CONTROL);
@@ -215,9 +277,15 @@
 	/* The controller is now in SUSPEND state, we have 2ms to finish. */
 
 	/* set up HC registers */
-	OWRITE4(sc, OHCI_HCCA, SC_HW_PHYSADDR(sc, hcca));
-	OWRITE4(sc, OHCI_CONTROL_HEAD_ED, SC_HW_PHYSADDR(sc, ctrl_start));
-	OWRITE4(sc, OHCI_BULK_HEAD_ED, SC_HW_PHYSADDR(sc, bulk_start));
+	usbd_get_page(&(sc->sc_hw.hcca_pc), 0, &buf_res);
+	OWRITE4(sc, OHCI_HCCA, buf_res.physaddr);
+
+	usbd_get_page(&(sc->sc_hw.ctrl_start_pc), 0, &buf_res);
+	OWRITE4(sc, OHCI_CONTROL_HEAD_ED, buf_res.physaddr);
+
+	usbd_get_page(&(sc->sc_hw.bulk_start_pc), 0, &buf_res);
+	OWRITE4(sc, OHCI_BULK_HEAD_ED, buf_res.physaddr);
+
 	/* disable all interrupts and then switch on all desired interrupts */
 	OWRITE4(sc, OHCI_INTERRUPT_DISABLE, OHCI_ALL_INTRS);
 	OWRITE4(sc, OHCI_INTERRUPT_ENABLE, sc->sc_eintrs | OHCI_MIE);
@@ -265,11 +333,28 @@
 	return (USBD_NORMAL_COMPLETION);
 }
 
+static struct ohci_ed *
+ohci_init_ed(struct usbd_page_cache *pc)
+{
+	struct usbd_page_search buf_res;
+	struct ohci_ed *ed;
+
+	usbd_get_page(pc, 0, &buf_res);
+
+	ed = buf_res.buffer;
+
+	ed->ed_self = htole32(buf_res.physaddr);
+	ed->ed_flags = htole32(OHCI_ED_SKIP);
+	ed->page_cache = pc;
+
+	return (ed);
+}
+
 usbd_status
 ohci_init(ohci_softc_t *sc)
 {
-	struct ohci_hw_softc *hw_ptr;
-	u_int i;
+	struct usbd_page_search buf_res;
+	uint16_t i;
 	uint16_t bit;
 	uint16_t x;
 	uint16_t y;
@@ -278,37 +363,24 @@
 
 	DPRINTF(("start\n"));
 
-	hw_ptr = sc->sc_hw_ptr;
-
 	sc->sc_eintrs = OHCI_NORMAL_INTRS;
 
-	usbd_page_cpu_invalidate(&(sc->sc_hw_page));
-
 	/*
-	 * setup self pointers
+	 * Setup all ED's
 	 */
-	hw_ptr->ctrl_start.ed_self = htole32(SC_HW_PHYSADDR(sc, ctrl_start));
-	hw_ptr->ctrl_start.ed_flags = htole32(OHCI_ED_SKIP);
-	hw_ptr->ctrl_start.page = &(sc->sc_hw_page);
-	sc->sc_ctrl_p_last = &(hw_ptr->ctrl_start);
+
+	sc->sc_ctrl_p_last =
+	    ohci_init_ed(&(sc->sc_hw.ctrl_start_pc));
 
-	hw_ptr->bulk_start.ed_self = htole32(SC_HW_PHYSADDR(sc, bulk_start));
-	hw_ptr->bulk_start.ed_flags = htole32(OHCI_ED_SKIP);
-	hw_ptr->bulk_start.page = &(sc->sc_hw_page);
-	sc->sc_bulk_p_last = &(hw_ptr->bulk_start);
+	sc->sc_bulk_p_last =
+	    ohci_init_ed(&(sc->sc_hw.bulk_start_pc));
 
-	hw_ptr->isoc_start.ed_self = htole32(SC_HW_PHYSADDR(sc, isoc_start));
-	hw_ptr->isoc_start.ed_flags = htole32(OHCI_ED_SKIP);
-	hw_ptr->isoc_start.page = &(sc->sc_hw_page);
-	sc->sc_isoc_p_last = &(hw_ptr->isoc_start);
+	sc->sc_isoc_p_last =
+	    ohci_init_ed(&(sc->sc_hw.isoc_start_pc));
 
-	for (i = 0;
-	    i < OHCI_NO_EDS;
-	    i++) {
-		hw_ptr->intr_start[i].ed_self = htole32(SC_HW_PHYSADDR(sc, intr_start[i]));
-		hw_ptr->intr_start[i].ed_flags = htole32(OHCI_ED_SKIP);
-		hw_ptr->intr_start[i].page = &(sc->sc_hw_page);
-		sc->sc_intr_p_last[i] = &(hw_ptr->intr_start[i]);
+	for (i = 0; i != OHCI_NO_EDS; i++) {
+		sc->sc_intr_p_last[i] =
+		    ohci_init_ed(sc->sc_hw.intr_start_pc + i);
 	}
 
 	/*
@@ -319,34 +391,51 @@
 	while (bit) {
 		x = bit;
 		while (x & bit) {
+			ohci_ed_t *ed_x;
+			ohci_ed_t *ed_y;
+
 			y = (x ^ bit) | (bit / 2);
+
 			/*
 			 * the next QH has half the poll interval
 			 */
-			hw_ptr->intr_start[x].next = NULL;
-			hw_ptr->intr_start[x].ed_next =
-			    hw_ptr->intr_start[y].ed_self;
+			ed_x = sc->sc_intr_p_last[x];
+			ed_y = sc->sc_intr_p_last[y];
+
+			ed_x->next = NULL;
+			ed_x->ed_next = ed_y->ed_self;
+
 			x++;
 		}
 		bit >>= 1;
 	}
 
-	/* the last (1ms) QH */
-	hw_ptr->intr_start[0].next = &(hw_ptr->isoc_start);
-	hw_ptr->intr_start[0].ed_next = hw_ptr->isoc_start.ed_self;
+	if (1) {
+
+		ohci_ed_t *ed_int;
+		ohci_ed_t *ed_isc;
+
+		ed_int = sc->sc_intr_p_last[0];
+		ed_isc = sc->sc_isoc_p_last;
+
+		/* the last (1ms) QH */
+		ed_int->next = ed_isc;
+		ed_int->ed_next = ed_isc->ed_self;
+	}
+	usbd_get_page(&(sc->sc_hw.hcca_pc), 0, &buf_res);
+
+	sc->sc_hcca_p = buf_res.buffer;
 
 	/*
 	 * Fill HCCA interrupt table.  The bit reversal is to get
 	 * the tree set up properly to spread the interrupts.
 	 */
-	for (i = 0;
-	    i < OHCI_NO_INTRS;
-	    i++) {
-		hw_ptr->hcca.hcca_interrupt_table[i] =
-		    hw_ptr->intr_start[i | (OHCI_NO_EDS / 2)].ed_self;
+	for (i = 0; i != OHCI_NO_INTRS; i++) {
+		sc->sc_hcca_p->hcca_interrupt_table[i] =
+		    sc->sc_intr_p_last[i | (OHCI_NO_EDS / 2)]->ed_self;
 	}
 
-	usbd_page_cpu_flush(&(sc->sc_hw_page));
+	ohci_iterate_hw_softc(sc, &ohci_flush_all);
 
 	LIST_INIT(&sc->sc_interrupt_list_head);
 
@@ -358,14 +447,12 @@
 
 #ifdef USB_DEBUG
 	if (ohcidebug > 15) {
-		for (i = 0;
-		    i < OHCI_NO_EDS;
-		    i++) {
+		for (i = 0; i != OHCI_NO_EDS; i++) {
 			printf("ed#%d ", i);
-			ohci_dump_ed(&(hw_ptr->intr_start[i]));
+			ohci_dump_ed(sc->sc_intr_p_last[i]);
 		}
 		printf("iso ");
-		ohci_dump_ed(&(hw_ptr->isoc_start));
+		ohci_dump_ed(sc->sc_isoc_p_last);
 	}
 #endif
 
@@ -482,7 +569,7 @@
 static void
 ohci_dumpregs(ohci_softc_t *sc)
 {
-	struct ohci_hw_softc *hw_ptr;
+	struct ohci_hcca *hcca;
 
 	DPRINTF(("ohci_dumpregs: rev=0x%08x control=0x%08x command=0x%08x\n",
 	    OREAD4(sc, OHCI_REVISION),
@@ -516,13 +603,11 @@
 	    OREAD4(sc, OHCI_RH_PORT_STATUS(1)),
 	    OREAD4(sc, OHCI_RH_PORT_STATUS(2))));
 
-	hw_ptr = sc->sc_hw_ptr;
+	hcca = ohci_get_hcca(sc);
 
-	usbd_page_cpu_invalidate(&(sc->sc_hw_page));
 	DPRINTF(("         HCCA: frame_number=0x%04x done_head=0x%08x\n",
-	    le32toh(hw_ptr->hcca.hcca_frame_number),
-	    le32toh(hw_ptr->hcca.hcca_done_head)));
-	usbd_page_cpu_flush(&(sc->sc_hw_page));
+	    le32toh(hcca->hcca_frame_number),
+	    le32toh(hcca->hcca_done_head)));
 	return;
 }
 static void
@@ -542,7 +627,7 @@
 	uint32_t td_flags;
 	uint8_t temp;
 
-	usbd_page_cpu_invalidate(std->page);
+	usbd_pc_cpu_invalidate(std->page_cache);
 
 	td_flags = le32toh(std->td_flags);
 	temp = (std->td_next == 0);
@@ -562,7 +647,6 @@
 	    le32toh(std->td_next),
 	    le32toh(std->td_be));
 
-	usbd_page_cpu_flush(std->page);
 	return (temp);
 }
 
@@ -573,7 +657,7 @@
 	uint16_t i;
 	uint8_t temp;
 
-	usbd_page_cpu_invalidate(sitd->page);
+	usbd_pc_cpu_invalidate(sitd->page_cache);
 
 	itd_flags = le32toh(sitd->itd_flags);
 	temp = (sitd->itd_next == 0);
@@ -594,7 +678,6 @@
 	}
 	printf("\n");
 
-	usbd_page_cpu_flush(sitd->page);
 	return (temp);
 }
 
@@ -615,7 +698,7 @@
 	uint32_t ed_flags;
 	uint32_t ed_headp;
 
-	usbd_page_cpu_invalidate(sed->page);
+	usbd_pc_cpu_invalidate(sed->page_cache);
 
 	ed_flags = le32toh(sed->ed_flags);
 	ed_headp = le32toh(sed->ed_headp);
@@ -636,8 +719,6 @@
 	    (ed_headp & OHCI_TOGGLECARRY) ? "-CARRY" : "",
 	    le32toh(sed->ed_headp),
 	    le32toh(sed->ed_next));
-
-	usbd_page_cpu_flush(sed->page);
 	return;
 }
 
@@ -652,8 +733,6 @@
 
 	/* (sc->sc_bus.mtx) must be locked */
 
-	usbd_page_cpu_invalidate(sed->page);
-
 	sed->next = last->next;
 	sed->ed_next = last->ed_next;
 	sed->ed_tailp = 0;
@@ -661,8 +740,7 @@
 
 	sed->prev = last;
 
-	usbd_page_cpu_flush(sed->page);
-	usbd_page_cpu_invalidate(last->page);
+	usbd_pc_cpu_flush(sed->page_cache);
 
 	/*
 	 * the last->next->prev is never followed: sed->next->prev = sed;
@@ -671,7 +749,7 @@
 	last->next = sed;
 	last->ed_next = sed->ed_self;
 
-	usbd_page_cpu_flush(last->page);
+	usbd_pc_cpu_flush(last->page_cache);
 
 	return (sed);
 }
@@ -686,20 +764,16 @@
 
 	/* only remove if not removed from a queue */
 	if (sed->prev) {
-		usbd_page_cpu_invalidate(sed->prev->page);
 
 		sed->prev->next = sed->next;
 		sed->prev->ed_next = sed->ed_next;
 
-		usbd_page_cpu_flush(sed->prev->page);
+		usbd_pc_cpu_flush(sed->prev->page_cache);
 
 		if (sed->next) {
-			usbd_page_cpu_invalidate(sed->next->page);
 			sed->next->prev = sed->prev;
-			usbd_page_cpu_flush(sed->next->page);
+			usbd_pc_cpu_flush(sed->next->page_cache);
 		}
-		usbd_page_cpu_invalidate(sed->page);
-
 		/*
 		 * terminate transfer in case the transferred packet was
 		 * short so that the ED still points at the last used TD
@@ -707,7 +781,7 @@
 		sed->ed_flags |= htole32(OHCI_ED_SKIP);
 		sed->ed_headp = sed->ed_tailp;
 
-		usbd_page_cpu_flush(sed->page);
+		usbd_pc_cpu_flush(sed->page_cache);
 
 		last = ((last == sed) ? sed->prev : last);
 
@@ -717,9 +791,6 @@
 }
 
 static void
-	ohci_device_done(struct usbd_xfer *xfer, usbd_status error);
-
-static void
 ohci_isoc_done(struct usbd_xfer *xfer)
 {
 	uint8_t nframes;
@@ -739,7 +810,7 @@
 			ohci_dump_itd(td);
 		}
 #endif
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_cpu_invalidate(td->page_cache);
 
 		nframes = td->frames;
 		olen = &td->itd_offset[0];
@@ -764,8 +835,6 @@
 			olen++;
 		}
 
-		usbd_page_cpu_flush(td->page);
-
 		if (((void *)td) == xfer->td_transfer_last) {
 			break;
 		}
@@ -821,7 +890,7 @@
 
 	while (1) {
 
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_cpu_invalidate(td->page_cache);
 		phy_start = le32toh(td->td_cbp);
 		td_flags = le32toh(td->td_flags);
 		cc = OHCI_TD_GET_CC(td_flags);
@@ -848,8 +917,6 @@
 				xfer->frlengths[xfer->aframes] -= temp;
 			}
 		}
-		usbd_page_cpu_flush(td->page);
-
 		/* Check for last transfer */
 		if (((void *)td) == xfer->td_transfer_last) {
 			td = NULL;
@@ -961,11 +1028,10 @@
 
 	while (1) {
 
-		usbd_page_cpu_invalidate(td->page);
+		usbd_pc_cpu_invalidate(td->page_cache);
 		phy_start = le32toh(td->td_cbp);
 		td_flags = le32toh(td->td_flags);
 		td_next = le32toh(td->td_next);
-		usbd_page_cpu_flush(td->page);
 
 		/* Check for last transfer */
 		if (((void *)td) == xfer->td_transfer_last) {
@@ -1001,9 +1067,8 @@
 
 		ed = xfer->qh_start;
 
-		usbd_page_cpu_invalidate(ed->page);
 		ed->ed_headp = td->td_self;
-		usbd_page_cpu_flush(ed->page);
+		usbd_pc_cpu_flush(ed->page_cache);
 
 		DPRINTFN(12, ("xfer=%p following alt next\n", xfer));
 	}
@@ -1033,11 +1098,10 @@
 	}
 	DPRINTFN(12, ("xfer=%p checking transfer\n", xfer));
 
-	usbd_page_cpu_invalidate(ed->page);
+	usbd_pc_cpu_invalidate(ed->page_cache);
 	ed_flags = le32toh(ed->ed_flags);
 	ed_headp = le32toh(ed->ed_headp);
 	ed_tailp = le32toh(ed->ed_tailp);
-	usbd_page_cpu_flush(ed->page);
 
 	if ((ed_flags & OHCI_ED_SKIP) ||
 	    (ed_headp & OHCI_HALTED) ||
@@ -1097,7 +1161,7 @@
 
 	struct usbd_xfer *xlist[FINISH_LIST_MAX + 1];
 	struct usbd_xfer **xptr = xlist;
-	struct ohci_hw_softc *hw_ptr;
+	struct ohci_hcca *hcca;
 	struct usbd_xfer *xfer;
 	struct thread *td;
 	uint32_t status;
@@ -1121,7 +1185,7 @@
 	}
 	td = curthread;			/* NULL is not a valid thread */
 
-	hw_ptr = sc->sc_hw_ptr;
+	hcca = ohci_get_hcca(sc);
 
 	DPRINTFN(15, ("%s: real interrupt\n",
 	    device_get_nameunit(sc->sc_bus.bdev)));
@@ -1135,8 +1199,7 @@
 
 	status = 0;
 
-	usbd_page_cpu_invalidate(&(sc->sc_hw_page));
-	done = le32toh(hw_ptr->hcca.hcca_done_head);
+	done = le32toh(hcca->hcca_done_head);
 
 	/*
 	 * The LSb of done is used to inform the HC Driver that an interrupt
@@ -1158,13 +1221,13 @@
 			status |= OREAD4(sc, OHCI_INTERRUPT_STATUS);
 			done &= ~OHCI_DONE_INTRS;
 		}
-		hw_ptr->hcca.hcca_done_head = 0;
+		hcca->hcca_done_head = 0;
+
+		usbd_pc_cpu_flush(&(sc->sc_hw.hcca_pc));
 	} else {
 		status = OREAD4(sc, OHCI_INTERRUPT_STATUS) & ~OHCI_WDH;
 	}
 
-	usbd_page_cpu_flush(&(sc->sc_hw_page));
-
 	if (status == 0) {		/* nothing to be done (PCI shared
 					 * interrupt) */
 		goto done;
@@ -1400,8 +1463,6 @@
 
 			continue;
 		}
-		usbd_page_cpu_invalidate(td->page);
-
 		/* fill out current TD */
 		td->td_flags = temp->td_flags;
 
@@ -1445,7 +1506,7 @@
 
 		td->alt_next = td_alt_next;
 
-		usbd_page_cpu_flush(td->page);
+		usbd_pc_cpu_flush(td->page_cache);
 	}
 
 	if (precompute) {
@@ -1593,13 +1654,11 @@
 	}
 	td = temp.td;
 
-	usbd_page_cpu_invalidate(td->page);
-
 	td->td_next = htole32(OHCI_TD_NEXT_END);
 	td->td_flags &= ~htole32(OHCI_TD_INTR_MASK);
 	td->td_flags |= htole32(OHCI_TD_SET_DI(1));
 
-	usbd_page_cpu_flush(td->page);
+	usbd_pc_cpu_flush(td->page_cache);
 
 	/* must have at least one frame! */
 
@@ -1615,8 +1674,6 @@
 
 	ed = xfer->qh_start;
 
-	usbd_page_cpu_invalidate(ed->page);
-
 	ed_flags = (OHCI_ED_SET_FA(xfer->address) |
 	    OHCI_ED_SET_EN(UE_GET_ADDR(xfer->endpoint)) |
 	    OHCI_ED_SET_MAXP(xfer->max_frame_size));
@@ -1628,7 +1685,7 @@
 	}
 	ed->ed_flags = htole32(ed_flags);
 
-	usbd_page_cpu_flush(ed->page);
+	usbd_pc_cpu_flush(ed->page_cache);
 
 	td = xfer->td_transfer_first;
 
@@ -1711,14 +1768,13 @@
 	    xfer, xfer->pipe, error));
 
 	for (ed = xfer->qh_start; ed; ed = ed->obj_next) {
-		usbd_page_cpu_invalidate(ed->page);
+		usbd_pc_cpu_invalidate(ed->page_cache);
 
 		if ((!(ed->ed_flags & htole32(OHCI_ED_SKIP))) &&
 		    (!(ed->ed_headp & htole32(OHCI_HALTED))) &&
 		    ((ed->ed_headp ^ ed->ed_tailp) & htole32(-0x10))) {
 			need_delay = 1;
 		}
-		usbd_page_cpu_flush(ed->page);
 	}
 
 	if (methods == &ohci_device_bulk_methods) {
@@ -1962,7 +2018,7 @@
 {
 	struct usbd_page_search buf_res;
 	ohci_softc_t *sc = xfer->usb_sc;
-	struct ohci_hw_softc *hw_ptr = sc->sc_hw_ptr;
+	struct ohci_hcca *hcca;
 	uint32_t buf_offset;
 	uint32_t nframes;
 	uint32_t bp0;
@@ -1979,9 +2035,9 @@
 	DPRINTFN(5, ("xfer=%p next=%d nframes=%d\n",
 	    xfer, xfer->pipe->isoc_next, xfer->nframes));
 
-	usbd_page_cpu_invalidate(&(sc->sc_hw_page));
-	nframes = le32toh(hw_ptr->hcca.hcca_frame_number);
-	usbd_page_cpu_flush(&(sc->sc_hw_page));
+	hcca = ohci_get_hcca(sc);
+
+	nframes = le32toh(hcca->hcca_frame_number);
 
 	if ((LIST_FIRST(&(xfer->pipe->list_head)) == NULL) ||
 	    (((nframes - xfer->pipe->isoc_next) & 0xFFFF) < xfer->nframes) ||
@@ -2013,7 +2069,7 @@
 	nframes = xfer->nframes;
 
 	buf_offset = 0;
-	usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res);
+	usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res);
 
 	plen = xfer->frlengths;
 
@@ -2037,11 +2093,11 @@
 		if (*plen) {
 			allzero = 0;
 			buf_offset += (*plen) - 1;
-			usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res);
+			usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res);
 
 			end_phy = buf_res.physaddr;
 			buf_offset += 1;
-			usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res);
+			usbd_get_page(xfer->frbuffers + 0, buf_offset, &buf_res);
 		}
 		plen++;
 		ncur++;
@@ -2049,7 +2105,6 @@
 		if ((ncur == OHCI_ITD_NOFFSET) ||
 		    (OHCI_PAGE(buf_res.physaddr) != bp0) ||
 		    (nframes == 0)) {
-			usbd_page_cpu_invalidate(td->page);
 
 			/* fill current ITD */
 			td->itd_flags = htole32(
@@ -2081,18 +2136,16 @@
 				/* link the last TD with the next one */
 				td_last->itd_next = td->itd_self;
 			}
-			usbd_page_cpu_flush(td_last->page);
+			usbd_pc_cpu_flush(td_last->page_cache);
 		}
 	}
 
-	usbd_page_cpu_invalidate(td_last->page);
-
 	/* update the last TD */
 	td_last->itd_flags &= ~htole32(OHCI_ITD_NOINTR);
 	td_last->itd_flags |= htole32(OHCI_ITD_SET_DI(0));
 	td_last->itd_next = 0;
 
-	usbd_page_cpu_flush(td_last->page);
+	usbd_pc_cpu_flush(td_last->page_cache);
 
 	xfer->td_transfer_last = td_last;
 
@@ -2104,8 +2157,6 @@
 #endif
 	ed = xfer->qh_start;
 
-	usbd_page_cpu_invalidate(ed->page);
-
 	if (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN)
 		ed_flags = (OHCI_ED_DIR_IN | OHCI_ED_FORMAT_ISO);
 	else
@@ -2120,7 +2171,7 @@
 	}
 	ed->ed_flags = htole32(ed_flags);
 
-	usbd_page_cpu_flush(ed->page);
+	usbd_pc_cpu_flush(ed->page_cache);
 
 	td = xfer->td_transfer_first;
 
@@ -2645,6 +2696,15 @@
 	.start = ohci_root_intr_start,
 };
 
+static uint8_t
+ohci_dma_alloc_mem(struct usbd_setup_params *parm, uint32_t size,
+    uint32_t align, struct usbd_page_search *info)
+{
+	XXX this function will be factored out shortly;
+
+	return (0);
+}
+
 static void
 ohci_xfer_setup(struct usbd_setup_params *parm)
 {
@@ -2679,22 +2739,34 @@
 		ntd = ((2 * xfer->nframes) + 1	/* STATUS */
 		    + (xfer->max_data_length / xfer->max_usb_frame_size));
 		nqh = 1;
+
+		xfer->flags_int.bdma_enable = 1;
+
 	} else if (parm->methods == &ohci_device_bulk_methods) {
 		nitd = 0;
 		ntd = ((2 * xfer->nframes)
 		    + (xfer->max_data_length / xfer->max_usb_frame_size));
 		nqh = 1;
+
+		xfer->flags_int.bdma_enable = 1;
+
 	} else if (parm->methods == &ohci_device_intr_methods) {
 		nitd = 0;
 		ntd = ((2 * xfer->nframes)
 		    + (xfer->max_data_length / xfer->max_usb_frame_size));
 		nqh = 1;
+
+		xfer->flags_int.bdma_enable = 1;
+
 	} else if (parm->methods == &ohci_device_isoc_methods) {
 		nitd = ((xfer->max_data_length / OHCI_PAGE_SIZE) +
 		    ((xfer->nframes + OHCI_ITD_NOFFSET - 1) / OHCI_ITD_NOFFSET) +
 		    1 /* EXTRA */ );
 		ntd = 0;
 		nqh = 1;
+
+		xfer->flags_int.bdma_enable = 1;
+
 	} else {
 		nitd = 0;
 		ntd = 0;
@@ -2704,100 +2776,92 @@
 	if (parm->err) {
 		return;
 	}
-	/* align data */
-	parm->size[1] += ((-parm->size[1]) & (OHCI_ITD_ALIGN - 1));
-
 	last_obj = NULL;
 
-	for (n = 0; n < ntd; n++) {
+	for (n = 0; n != ntd; n++) {
 
-		parm->size[1] += usbd_page_fit_obj(parm->size[1], sizeof(ohci_td_t));
+		ohci_td_t *td;
 
+		if (ohci_dma_alloc_mem(parm, sizeof(*td),
+		    OHCI_TD_ALIGN, &page_info)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ohci_td_t *td;
-
-			usbd_get_page(&(parm->pc), parm->size[1], &page_info);
-
-			usbd_page_cpu_invalidate(page_info.page);
-
 			td = page_info.buffer;
 
 			/* init TD */
 			td->td_self = htole32(page_info.physaddr);
 			td->obj_next = last_obj;
-			td->page = page_info.page;
+			td->page_cache = parm->dma_page_cache_ptr;
 
 			last_obj = td;
 
-			usbd_page_cpu_flush(page_info.page);
+			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
 		}
-		parm->size[1] += sizeof(ohci_td_t);
+		parm->dma_page_ptr++;
+		parm->dma_page_cache_ptr++;
 	}
 
-	for (n = 0; n < nitd; n++) {
+	for (n = 0; n != nitd; n++) {
 
-		parm->size[1] += usbd_page_fit_obj(parm->size[1], sizeof(ohci_itd_t));
+		ohci_itd_t *itd;
 
+		if (ohci_dma_alloc_mem(parm, sizeof(*itd),
+		    OHCI_ITD_ALIGN, &page_info)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ohci_itd_t *itd;
-
-			usbd_get_page(&(parm->pc), parm->size[1], &page_info);
-
-			usbd_page_cpu_invalidate(page_info.page);
-
 			itd = page_info.buffer;
 
 			/* init TD */
 			itd->itd_self = htole32(page_info.physaddr);
 			itd->obj_next = last_obj;
-			itd->page = page_info.page;
+			itd->page_cache = parm->dma_page_cache_ptr;
 
 			last_obj = itd;
 
-			usbd_page_cpu_flush(page_info.page);
+			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
 		}
-		parm->size[1] += sizeof(ohci_itd_t);
+		parm->dma_page_ptr++;
+		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->td_start = last_obj;
 
-	/* align data */
-	parm->size[1] += ((-parm->size[1]) & (OHCI_ED_ALIGN - 1));
-
 	last_obj = NULL;
 
-	for (n = 0; n < nqh; n++) {
+	for (n = 0; n != nqh; n++) {
 
-		parm->size[1] += usbd_page_fit_obj(parm->size[1], sizeof(ohci_ed_t));
+		ohci_ed_t *ed;
 
+		if (ohci_dma_alloc_mem(parm, sizeof(*ed),
+		    OHCI_ED_ALIGN, &page_info)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ohci_ed_t *ed;
-
-			usbd_get_page(&(parm->pc), parm->size[1], &page_info);
-
-			usbd_page_cpu_invalidate(page_info.page);
-
 			ed = page_info.buffer;
 
 			/* init QH */
 			ed->ed_self = htole32(page_info.physaddr);
 			ed->obj_next = last_obj;
-			ed->page = page_info.page;
+			ed->page_cache = parm->dma_page_cache_ptr;
 
 			last_obj = ed;
 
-			usbd_page_cpu_flush(page_info.page);
+			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
 		}
-		parm->size[1] += sizeof(ohci_ed_t);
+		parm->dma_page_ptr++;
+		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->qh_start = last_obj;
 
-	xfer->flags_int.bdma_enable = 1;/* enable BUS-DMA support */
-
 	return;
 }
 
@@ -2849,9 +2913,16 @@
 	return;
 }
 
+static void
+ohci_xfer_unsetup(struct usbd_xfer *xfer)
+{
+	return;
+}
+
 struct usbd_bus_methods ohci_bus_methods =
 {
 	.pipe_init = ohci_pipe_init,
 	.xfer_setup = ohci_xfer_setup,
+	.xfer_unsetup = ohci_xfer_unsetup,
 	.do_poll = ohci_do_poll,
 };

==== //depot/projects/usb/src/sys/dev/usb/ohci.h#18 (text+ko) ====

@@ -161,6 +161,8 @@
 #define	OHCI_DONE_INTRS		1
 } __aligned(OHCI_HCCA_ALIGN);
 
+typedef struct ohci_hcca ohci_hcca_t;
+
 struct ohci_ed {
 	volatile uint32_t ed_flags;
 #define	OHCI_ED_GET_FA(s)	((s) & 0x7f)
@@ -191,7 +193,7 @@
 	struct ohci_ed *next;
 	struct ohci_ed *prev;
 	struct ohci_ed *obj_next;
-	struct usbd_page *page;
+	struct usbd_page_cache *page_cache;
 	uint32_t ed_self;
 } __aligned(OHCI_ED_ALIGN);
 
@@ -225,7 +227,7 @@
  */
 	struct ohci_td *obj_next;
 	struct ohci_td *alt_next;
-	struct usbd_page *page;
+	struct usbd_page_cache *page_cache;
 	uint32_t td_self;
 	uint16_t len;
 } __aligned(OHCI_TD_ALIGN);
@@ -257,7 +259,7 @@
  * Extra information needed:
  */
 	struct ohci_itd *obj_next;
-	struct usbd_page *page;
+	struct usbd_page_cache *page_cache;
 	uint32_t itd_self;
 	uint8_t	frames;
 } __aligned(OHCI_ITD_ALIGN);
@@ -285,11 +287,17 @@
 #define	OHCI_NO_EDS			(2*OHCI_NO_INTRS)
 

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 22:35:37 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C9A5416A47B; Fri, 30 Nov 2007 22:35: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 5462716A469
	for ; Fri, 30 Nov 2007 22:35:37 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 46BA013C457
	for ; Fri, 30 Nov 2007 22:35:37 +0000 (UTC)
	(envelope-from zec@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 lAUMZadf021963
	for ; Fri, 30 Nov 2007 22:35:36 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUMZatm021960
	for perforce@freebsd.org; Fri, 30 Nov 2007 22:35:36 GMT
	(envelope-from zec@FreeBSD.org)
Date: Fri, 30 Nov 2007 22:35:36 GMT
Message-Id: <200711302235.lAUMZatm021960@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129845 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: Fri, 30 Nov 2007 22:35:38 -0000

http://perforce.freebsd.org/chv.cgi?CH=129845

Change 129845 by zec@zec_tpx32 on 2007/11/30 22:35:21

	Push if_vnet field more towards the bottom of struct ifnet
	so that "netstat -in" can produce sane output again, the joys
	of /dev/kmem access to kernel state.

Affected files ...

.. //depot/projects/vimage/src/sys/net/if_var.h#11 edit

Differences ...

==== //depot/projects/vimage/src/sys/net/if_var.h#11 (text+ko) ====

@@ -70,6 +70,7 @@
 struct	ether_header;
 struct	carp_if;
 struct  ifvlantrunk;
+struct	vnet;
 #endif
 
 #include 		/* get TAILQ macros */
@@ -130,7 +131,6 @@
 		 * field is deprecated. Use if_addr or ifaddr_byindex() instead.
 		 */
 	struct	knlist if_klist;	/* events attached to this if */
-	struct	vnet *if_vnet;		/* network stack instance */
 	int	if_pcount;		/* number of promiscuous listeners */
 	struct	carp_if *if_carp;	/* carp interface structure */
 	struct	bpf_if *if_bpf;		/* packet filter structure */
@@ -163,6 +163,7 @@
 		(struct ifnet *, struct sockaddr **, struct sockaddr *);
 	void	(*if_reassign)		/* reassign to vnet routine */
 		(struct ifnet *, struct vnet *, char *);
+	struct	vnet *if_vnet;		/* network stack instance */
 	struct	vnet *if_home_vnet;	/* where this ifnet originates from */
 	struct	ifaddr	*if_addr;	/* pointer to link-level address */
 	void	*if_spare2;		/* spare pointer 2 */

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 22:37:39 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B197816A468; Fri, 30 Nov 2007 22:37: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 5FE0116A41A
	for ; Fri, 30 Nov 2007 22:37:39 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 51AAE13C4CC
	for ; Fri, 30 Nov 2007 22:37:39 +0000 (UTC)
	(envelope-from zec@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 lAUMbdbb022043
	for ; Fri, 30 Nov 2007 22:37:39 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUMbdtE022040
	for perforce@freebsd.org; Fri, 30 Nov 2007 22:37:39 GMT
	(envelope-from zec@FreeBSD.org)
Date: Fri, 30 Nov 2007 22:37:39 GMT
Message-Id: <200711302237.lAUMbdtE022040@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129846 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: Fri, 30 Nov 2007 22:37:40 -0000

http://perforce.freebsd.org/chv.cgi?CH=129846

Change 129846 by zec@zec_tpx32 on 2007/11/30 22:37:20

	Implement ng_iface_reassign() handler - ng_iface ifnets can
	now be moved among vnets.

Affected files ...

.. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#4 edit

Differences ...

==== //depot/projects/vimage/src/sys/netgraph/ng_iface.c#4 (text+ko) ====

@@ -124,6 +124,10 @@
 static int	ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
 static int	ng_iface_output(struct ifnet *ifp, struct mbuf *m0,
 			struct sockaddr *dst, struct rtentry *rt0);
+#ifdef VIMAGE
+static void	ng_iface_reassign(struct ifnet *ifp, struct vnet *vnet,
+			char *dname);
+#endif
 static void	ng_iface_bpftap(struct ifnet *ifp,
 			struct mbuf *m, sa_family_t family);
 static int	ng_iface_send(struct ifnet *ifp, struct mbuf *m,
@@ -546,6 +550,9 @@
 	ifp->if_output = ng_iface_output;
 	ifp->if_start = ng_iface_start;
 	ifp->if_ioctl = ng_iface_ioctl;
+#ifdef VIMAGE
+	ifp->if_reassign = ng_iface_reassign;
+#endif
 	ifp->if_watchdog = NULL;
 	ifp->if_mtu = NG_IFACE_MTU_DEFAULT;
 	ifp->if_flags = (IFF_SIMPLEX|IFF_POINTOPOINT|IFF_NOARP|IFF_MULTICAST);
@@ -570,6 +577,24 @@
 	return (0);
 }
 
+#ifdef VIMAGE
+static void
+ng_iface_reassign(struct ifnet *ifp, struct vnet *vnet, char *dname)
+{
+	bpfdetach(ifp);
+	if_detach(ifp);
+	ifp->if_bpf = NULL;
+	if_reassign_common(ifp, vnet, "ser");
+	if (dname)
+		snprintf(ifp->if_xname, IFNAMSIZ, "%s", dname);
+ 
+	CURVNET_SET_QUIET(vnet);
+	if_attach(ifp);
+	bpfattach(ifp, DLT_NULL, sizeof(u_int32_t));
+	CURVNET_RESTORE();
+}
+#endif
+
 /*
  * Give our ok for a hook to be added
  */

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 23:07:13 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 9BEA716A420; Fri, 30 Nov 2007 23:07:13 +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 540E716A418
	for ; Fri, 30 Nov 2007 23:07:13 +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 2D84613C458
	for ; Fri, 30 Nov 2007 23:07:13 +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 lAUN7BJ5024326
	for ; Fri, 30 Nov 2007 23:07:11 GMT
	(envelope-from hselasky@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUN7BtA024323
	for perforce@freebsd.org; Fri, 30 Nov 2007 23:07:11 GMT
	(envelope-from hselasky@FreeBSD.org)
Date: Fri, 30 Nov 2007 23:07:11 GMT
Message-Id: <200711302307.lAUN7BtA024323@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 129848 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: Fri, 30 Nov 2007 23:07:13 -0000

http://perforce.freebsd.org/chv.cgi?CH=129848

Change 129848 by hselasky@hselasky_laptop001 on 2007/11/30 23:06:23

	
	Factor out the following functions into
	common code in "usb_subr.c":
	
	{ehci,ohci,uhci}_flush_all
	{ehci,ohci,uhci}_alloc_all
	{ehci,ohci,uhci}_free_all
	{ehci,ohci,uhci}_dma_alloc_mem

Affected files ...

.. //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/ehci.c#53 edit
.. //depot/projects/usb/src/sys/dev/usb/ehci.h#23 edit
.. //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#27 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci.c#43 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci.h#19 edit
.. //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#27 edit
.. //depot/projects/usb/src/sys/dev/usb/uhci.c#45 edit
.. //depot/projects/usb/src/sys/dev/usb/uhci.h#19 edit
.. //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#26 edit

Differences ...

==== //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#9 (text) ====

@@ -73,15 +73,12 @@
 	}
 	/* store parent DMA tag */
 
-	sc->sc_bus.dma_tag_parent = device_get_dma_tag(self);
+	sc->sc_ohci.sc_bus.dma_tag_parent = device_get_dma_tag(self);
 
 	/* get all DMA memory */
 
-	ohci_iterate_hw_softc(sc, &ohci_alloc_all);
-
-	if (sc->sc_alloc_failed) {
-		ohci_iterate_hw_softc(sc, &ohci_free_all);
-		usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	if (usbd_bus_mem_alloc_all(&(sc->sc_ohci.sc_bus),
+	    &ohci_iterate_hw_softc)) {
 		return ENOMEM;
 	}
 	sc->iclk = at91_pmc_clock_ref("ohci_clk");
@@ -205,9 +202,7 @@
 	}
 	usbd_config_td_unsetup(&(sc->sc_config_td));
 
-	ohci_iterate_hw_softc(sc, &ohci_free_all);
-
-	usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	usbd_bus_mem_free_all(&(sc->sc_bus), &ohci_iterate_hw_softc);
 
 	mtx_destroy(&(sc->sc_ohci.sc_bus.mtx));
 

==== //depot/projects/usb/src/sys/dev/usb/ehci.c#53 (text+ko) ====

@@ -85,10 +85,8 @@
 SYSCTL_INT(_hw_usb_ehci, OID_AUTO, debug, CTLFLAG_RW,
     &ehcidebug, 0, "ehci debug level");
 
-static void
-	ehci_dump_regs(ehci_softc_t *sc);
-static void
-	ehci_dump_sqh(ehci_qh_t *sqh);
+static void ehci_dump_regs(ehci_softc_t *sc);
+static void ehci_dump_sqh(ehci_qh_t *sqh);
 
 #else
 #define	DPRINTF(x) do { } while (0)
@@ -127,63 +125,37 @@
 };
 
 void
-ehci_iterate_hw_softc(ehci_softc_t *sc, ehci_iterate_cb_t *cb)
+ehci_iterate_hw_softc(struct usbd_bus *bus, usbd_bus_mem_sub_cb_t *cb)
 {
+	struct ehci_softc *sc = EHCI_BUS2SC(bus);
 	uint32_t i;
 
-	cb(sc, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg),
+	cb(bus, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg),
 	    sizeof(uint32_t) * EHCI_FRAMELIST_COUNT, EHCI_FRAMELIST_ALIGN);
 
-	cb(sc, &(sc->sc_hw.async_start_pc), &(sc->sc_hw.async_start_pg),
+	cb(bus, &(sc->sc_hw.async_start_pc), &(sc->sc_hw.async_start_pg),
 	    sizeof(ehci_qh_t), EHCI_QH_ALIGN);
 
 	for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) {
-		cb(sc, sc->sc_hw.intr_start_pc + i,
+		cb(bus, sc->sc_hw.intr_start_pc + i,
 		    sc->sc_hw.intr_start_pg + i,
 		    sizeof(ehci_qh_t), EHCI_QH_ALIGN);
 	}
 
 	for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) {
-		cb(sc, sc->sc_hw.isoc_hs_start_pc + i,
+		cb(bus, sc->sc_hw.isoc_hs_start_pc + i,
 		    sc->sc_hw.isoc_hs_start_pg + i,
 		    sizeof(ehci_itd_t), EHCI_ITD_ALIGN);
 	}
 
 	for (i = 0; i != EHCI_VIRTUAL_FRAMELIST_COUNT; i++) {
-		cb(sc, sc->sc_hw.isoc_fs_start_pc + i,
+		cb(bus, sc->sc_hw.isoc_fs_start_pc + i,
 		    sc->sc_hw.isoc_fs_start_pg + i,
 		    sizeof(ehci_sitd_t), EHCI_SITD_ALIGN);
 	}
 	return;
 }
 
-void
-ehci_flush_all(ehci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_pc_cpu_flush(pc);
-	return;
-}
-
-void
-ehci_alloc_all(ehci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
-	    sc->sc_bus.dma_tag, pc, pg, size, align)) {
-		sc->sc_alloc_failed = 1;
-	}
-	return;
-}
-
-void
-ehci_free_all(ehci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_dma_free_mem(pc);
-	return;
-}
-
 usbd_status
 ehci_init(ehci_softc_t *sc)
 {
@@ -440,7 +412,7 @@
 	}
 	/* flush all cache into memory */
 
-	ehci_iterate_hw_softc(sc, &ehci_flush_all);
+	usbd_bus_mem_flush_all(&(sc->sc_bus), &ehci_iterate_hw_softc);
 
 #ifdef USB_DEBUG
 	if (ehcidebug) {
@@ -3661,30 +3633,11 @@
 	.start = ehci_root_intr_start,
 };
 
-static uint8_t
-ehci_dma_alloc_mem(struct usbd_setup_params *parm, uint32_t size,
-    uint32_t align, struct usbd_page_search *info)
-{
-	ehci_softc_t *sc;
-
-	sc = EHCI_BUS2SC(parm->udev->bus);
-
-	/* FIXME sc->sc_bus.dma_tag to xfer->dma_tags */
-
-	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
-	    sc->sc_bus.dma_tag, parm->dma_page_cache_ptr,
-	    parm->dma_page_ptr, size, align)) {
-		return (1);		/* failure */
-	}
-	usbd_get_page(parm->dma_page_cache_ptr, 0, info);
-
-	return (0);
-}
-
 static void
 ehci_xfer_setup(struct usbd_setup_params *parm)
 {
 	struct usbd_page_search page_info;
+	struct usbd_page_cache *pc;
 	ehci_softc_t *sc;
 	struct usbd_xfer *xfer;
 	void *last_obj;
@@ -3833,80 +3786,77 @@
 
 	for (n = 0; n != nitd; n++) {
 
+		register ehci_itd_t *td;
+
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*td),
+		    EHCI_ITD_ALIGN)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ehci_itd_t *td;
-
-			if (ehci_dma_alloc_mem(parm, sizeof(*td),
-			    EHCI_ITD_ALIGN, &page_info)) {
-				parm->err = USBD_NOMEM;
-				break;
-			}
 			td = page_info.buffer;
 
 			/* init TD */
 			td->itd_self = htole32(page_info.physaddr | EHCI_LINK_ITD);
 			td->obj_next = last_obj;
-			td->page_cache = parm->dma_page_cache_ptr;
+			td->page_cache = pc;
 
 			last_obj = td;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	for (n = 0; n != nsitd; n++) {
 
+		register ehci_sitd_t *td;
+
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*td),
+		    EHCI_SITD_ALIGN)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ehci_sitd_t *td;
-
-			if (ehci_dma_alloc_mem(parm, sizeof(*td),
-			    EHCI_SITD_ALIGN, &page_info)) {
-				parm->err = USBD_NOMEM;
-				break;
-			}
 			td = page_info.buffer;
 
 			/* init TD */
 			td->sitd_self = htole32(page_info.physaddr | EHCI_LINK_SITD);
 			td->obj_next = last_obj;
-			td->page_cache = parm->dma_page_cache_ptr;
+			td->page_cache = pc;
 
 			last_obj = td;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	for (n = 0; n != nqtd; n++) {
 
+		register ehci_qtd_t *qtd;
+
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*qtd),
+		    EHCI_QTD_ALIGN)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ehci_qtd_t *qtd;
-
-			if (ehci_dma_alloc_mem(parm, sizeof(*qtd),
-			    EHCI_QTD_ALIGN, &page_info)) {
-				parm->err = USBD_NOMEM;
-				break;
-			}
 			qtd = page_info.buffer;
 
 			/* init TD */
 			qtd->qtd_self = htole32(page_info.physaddr);
 			qtd->obj_next = last_obj;
-			qtd->page_cache = parm->dma_page_cache_ptr;
+			qtd->page_cache = pc;
 
 			last_obj = qtd;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->td_start = last_obj;
@@ -3915,28 +3865,27 @@
 
 	for (n = 0; n != nqh; n++) {
 
+		register ehci_qh_t *qh;
+
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*qh),
+		    EHCI_QH_ALIGN)) {
+			parm->err = USBD_NOMEM;
+			break;
+		}
 		if (parm->buf) {
 
-			register ehci_qh_t *qh;
-
-			if (ehci_dma_alloc_mem(parm, sizeof(*qh),
-			    EHCI_QH_ALIGN, &page_info)) {
-				parm->err = USBD_NOMEM;
-				break;
-			}
 			qh = page_info.buffer;
 
 			/* init QH */
 			qh->qh_self = htole32(page_info.physaddr | EHCI_LINK_QH);
 			qh->obj_next = last_obj;
-			qh->page_cache = parm->dma_page_cache_ptr;
+			qh->page_cache = pc;
 
 			last_obj = qh;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->qh_start = last_obj;

==== //depot/projects/usb/src/sys/dev/usb/ehci.h#23 (text+ko) ====

@@ -473,7 +473,6 @@
 	uint8_t	sc_addr;		/* device address */
 	uint8_t	sc_conf;		/* device configuration */
 	uint8_t	sc_isreset;
-	uint8_t	sc_alloc_failed;
 	uint8_t	sc_hub_idata[8];
 
 	char	sc_vendor[16];		/* vendor string for root hub */
@@ -502,13 +501,9 @@
 #define	EOWRITE4(sc, a, x)						\
 	    bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))
 
-typedef void (ehci_iterate_cb_t)(ehci_softc_t *sc, struct usbd_page_cache *pc, struct usbd_page *pg, uint32_t size, uint32_t align);
-ehci_iterate_cb_t ehci_flush_all;
-ehci_iterate_cb_t ehci_alloc_all;
-ehci_iterate_cb_t ehci_free_all;
+usbd_bus_mem_cb_t ehci_iterate_hw_softc;
 
 usbd_status ehci_init(ehci_softc_t *sc);
-void	ehci_iterate_hw_softc(ehci_softc_t *sc, ehci_iterate_cb_t *cb);
 void	ehci_detach(struct ehci_softc *sc);
 void	ehci_suspend(struct ehci_softc *sc);
 void	ehci_resume(struct ehci_softc *sc);

==== //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#27 (text+ko) ====

@@ -221,11 +221,7 @@
 
 	/* get all DMA memory */
 
-	ehci_iterate_hw_softc(sc, &ehci_alloc_all);
-
-	if (sc->sc_alloc_failed) {
-		ehci_iterate_hw_softc(sc, &ehci_free_all);
-		usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	if (usbd_bus_mem_alloc_all(&(sc->sc_bus), &ehci_iterate_hw_softc)) {
 		return ENOMEM;
 	}
 	mtx_init(&sc->sc_bus.mtx, "usb lock",
@@ -409,9 +405,7 @@
 	}
 	usbd_config_td_unsetup(&(sc->sc_config_td));
 
-	ehci_iterate_hw_softc(sc, &ehci_free_all);
-
-	usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	usbd_bus_mem_free_all(&(sc->sc_bus), &ehci_iterate_hw_softc);
 
 	mtx_destroy(&sc->sc_bus.mtx);
 

==== //depot/projects/usb/src/sys/dev/usb/ohci.c#43 (text+ko) ====

@@ -148,56 +148,30 @@
 }
 
 void
-ohci_iterate_hw_softc(ohci_softc_t *sc, ohci_iterate_cb_t *cb)
+ohci_iterate_hw_softc(struct usbd_bus *bus, usbd_bus_mem_sub_cb_t *cb)
 {
+	struct ohci_softc *sc = OHCI_BUS2SC(bus);
 	uint32_t i;
 
-	cb(sc, &(sc->sc_hw.hcca_pc), &(sc->sc_hw.hcca_pg),
+	cb(bus, &(sc->sc_hw.hcca_pc), &(sc->sc_hw.hcca_pg),
 	    sizeof(ohci_hcca_t), OHCI_HCCA_ALIGN);
 
-	cb(sc, &(sc->sc_hw.ctrl_start_pc), &(sc->sc_hw.ctrl_start_pg),
+	cb(bus, &(sc->sc_hw.ctrl_start_pc), &(sc->sc_hw.ctrl_start_pg),
 	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
 
-	cb(sc, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
+	cb(bus, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
 	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
 
-	cb(sc, &(sc->sc_hw.isoc_start_pc), &(sc->sc_hw.isoc_start_pg),
+	cb(bus, &(sc->sc_hw.isoc_start_pc), &(sc->sc_hw.isoc_start_pg),
 	    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
 
 	for (i = 0; i != OHCI_NO_EDS; i++) {
-		cb(sc, sc->sc_hw.intr_start_pc + i, sc->sc_hw.intr_start_pg + i,
+		cb(bus, sc->sc_hw.intr_start_pc + i, sc->sc_hw.intr_start_pg + i,
 		    sizeof(ohci_ed_t), OHCI_ED_ALIGN);
 	}
 	return;
 }
 
-void
-ohci_flush_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_pc_cpu_flush(pc);
-	return;
-}
-
-void
-ohci_alloc_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
-	    sc->sc_bus.dma_tag, pc, pg, size, align)) {
-		sc->sc_alloc_failed = 1;
-	}
-	return;
-}
-
-void
-ohci_free_all(ohci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_dma_free_mem(pc);
-	return;
-}
-
 static	usbd_status
 ohci_controller_init(ohci_softc_t *sc)
 {
@@ -434,8 +408,9 @@
 		sc->sc_hcca_p->hcca_interrupt_table[i] =
 		    sc->sc_intr_p_last[i | (OHCI_NO_EDS / 2)]->ed_self;
 	}
+	/* flush all cache into memory */
 
-	ohci_iterate_hw_softc(sc, &ohci_flush_all);
+	usbd_bus_mem_flush_all(&(sc->sc_bus), &ohci_iterate_hw_softc);
 
 	LIST_INIT(&sc->sc_interrupt_list_head);
 
@@ -2696,19 +2671,11 @@
 	.start = ohci_root_intr_start,
 };
 
-static uint8_t
-ohci_dma_alloc_mem(struct usbd_setup_params *parm, uint32_t size,
-    uint32_t align, struct usbd_page_search *info)
-{
-	XXX this function will be factored out shortly;
-
-	return (0);
-}
-
 static void
 ohci_xfer_setup(struct usbd_setup_params *parm)
 {
 	struct usbd_page_search page_info;
+	struct usbd_page_cache *pc;
 	ohci_softc_t *sc;
 	struct usbd_xfer *xfer;
 	void *last_obj;
@@ -2782,8 +2749,9 @@
 
 		ohci_td_t *td;
 
-		if (ohci_dma_alloc_mem(parm, sizeof(*td),
-		    OHCI_TD_ALIGN, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*td),
+		    OHCI_TD_ALIGN)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
@@ -2794,22 +2762,21 @@
 			/* init TD */
 			td->td_self = htole32(page_info.physaddr);
 			td->obj_next = last_obj;
-			td->page_cache = parm->dma_page_cache_ptr;
+			td->page_cache = pc;
 
 			last_obj = td;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	for (n = 0; n != nitd; n++) {
 
 		ohci_itd_t *itd;
 
-		if (ohci_dma_alloc_mem(parm, sizeof(*itd),
-		    OHCI_ITD_ALIGN, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*itd),
+		    OHCI_ITD_ALIGN)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
@@ -2820,14 +2787,12 @@
 			/* init TD */
 			itd->itd_self = htole32(page_info.physaddr);
 			itd->obj_next = last_obj;
-			itd->page_cache = parm->dma_page_cache_ptr;
+			itd->page_cache = pc;
 
 			last_obj = itd;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->td_start = last_obj;
@@ -2838,8 +2803,9 @@
 
 		ohci_ed_t *ed;
 
-		if (ohci_dma_alloc_mem(parm, sizeof(*ed),
-		    OHCI_ED_ALIGN, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*ed),
+		    OHCI_ED_ALIGN)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
@@ -2850,14 +2816,12 @@
 			/* init QH */
 			ed->ed_self = htole32(page_info.physaddr);
 			ed->obj_next = last_obj;
-			ed->page_cache = parm->dma_page_cache_ptr;
+			ed->page_cache = pc;
 
 			last_obj = ed;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->qh_start = last_obj;

==== //depot/projects/usb/src/sys/dev/usb/ohci.h#19 (text+ko) ====

@@ -348,20 +348,15 @@
 	uint8_t	sc_noport;
 	uint8_t	sc_addr;		/* device address */
 	uint8_t	sc_conf;		/* device configuration */
-	uint8_t	sc_alloc_failed;
 	uint8_t	sc_hub_idata[32];
 
 	char	sc_vendor[16];
 
 } ohci_softc_t;
 
-typedef void (ohci_iterate_cb_t)(ohci_softc_t *sc, struct usbd_page_cache *pc, struct usbd_page *pg, uint32_t size, uint32_t align);
-ohci_iterate_cb_t ohci_flush_all;
-ohci_iterate_cb_t ohci_alloc_all;
-ohci_iterate_cb_t ohci_free_all;
+usbd_bus_mem_cb_t ohci_iterate_hw_softc;
 
 usbd_status ohci_init(ohci_softc_t *sc);
-void	ohci_iterate_hw_softc(ohci_softc_t *sc, ohci_iterate_cb_t *cb);
 void	ohci_detach(struct ohci_softc *sc);
 void	ohci_suspend(ohci_softc_t *sc);
 void	ohci_resume(ohci_softc_t *sc);

==== //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#27 (text+ko) ====

@@ -202,11 +202,7 @@
 
 	/* get all DMA memory */
 
-	ohci_iterate_hw_softc(sc, &ohci_alloc_all);
-
-	if (sc->sc_alloc_failed) {
-		ohci_iterate_hw_softc(sc, &ohci_free_all);
-		usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	if (usbd_bus_mem_alloc_all(&(sc->sc_bus), &ohci_iterate_hw_softc)) {
 		return ENOMEM;
 	}
 	mtx_init(&sc->sc_bus.mtx, "usb lock",
@@ -366,9 +362,7 @@
 	}
 	usbd_config_td_unsetup(&(sc->sc_config_td));
 
-	ohci_iterate_hw_softc(sc, &ohci_free_all);
-
-	usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	usbd_bus_mem_free_all(&(sc->sc_bus), &ohci_iterate_hw_softc);
 
 	mtx_destroy(&sc->sc_bus.mtx);
 

==== //depot/projects/usb/src/sys/dev/usb/uhci.c#45 (text+ko) ====

@@ -163,69 +163,43 @@
 static void uhci_device_done(struct usbd_xfer *xfer, usbd_status error);
 
 void
-uhci_iterate_hw_softc(uhci_softc_t *sc, uhci_iterate_cb_t *cb)
+uhci_iterate_hw_softc(struct usbd_bus *bus, usbd_bus_mem_sub_cb_t *cb)
 {
+	struct uhci_softc *sc = UHCI_BUS2SC(bus);
 	uint32_t i;
 
-	cb(sc, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg),
+	cb(bus, &(sc->sc_hw.pframes_pc), &(sc->sc_hw.pframes_pg),
 	    sizeof(uint32_t) * UHCI_FRAMELIST_COUNT, UHCI_FRAMELIST_ALIGN);
 
-	cb(sc, &(sc->sc_hw.ls_ctl_start_pc), &(sc->sc_hw.ls_ctl_start_pg),
+	cb(bus, &(sc->sc_hw.ls_ctl_start_pc), &(sc->sc_hw.ls_ctl_start_pg),
 	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
 
-	cb(sc, &(sc->sc_hw.fs_ctl_start_pc), &(sc->sc_hw.fs_ctl_start_pg),
+	cb(bus, &(sc->sc_hw.fs_ctl_start_pc), &(sc->sc_hw.fs_ctl_start_pg),
 	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
 
-	cb(sc, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
+	cb(bus, &(sc->sc_hw.bulk_start_pc), &(sc->sc_hw.bulk_start_pg),
 	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
 
-	cb(sc, &(sc->sc_hw.last_qh_pc), &(sc->sc_hw.last_qh_pg),
+	cb(bus, &(sc->sc_hw.last_qh_pc), &(sc->sc_hw.last_qh_pg),
 	    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
 
-	cb(sc, &(sc->sc_hw.last_td_pc), &(sc->sc_hw.last_td_pg),
+	cb(bus, &(sc->sc_hw.last_td_pc), &(sc->sc_hw.last_td_pg),
 	    sizeof(uhci_td_t), UHCI_TD_ALIGN);
 
 	for (i = 0; i != UHCI_VFRAMELIST_COUNT; i++) {
-		cb(sc, sc->sc_hw.isoc_start_pc + i,
+		cb(bus, sc->sc_hw.isoc_start_pc + i,
 		    sc->sc_hw.isoc_start_pg + i,
 		    sizeof(uhci_td_t), UHCI_TD_ALIGN);
 	}
 
 	for (i = 0; i != UHCI_IFRAMELIST_COUNT; i++) {
-		cb(sc, sc->sc_hw.intr_start_pc + i,
+		cb(bus, sc->sc_hw.intr_start_pc + i,
 		    sc->sc_hw.intr_start_pg + i,
 		    sizeof(uhci_qh_t), UHCI_QH_ALIGN);
 	}
 	return;
 }
 
-void
-uhci_flush_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_pc_cpu_flush(pc);
-	return;
-}
-
-void
-uhci_alloc_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
-	    sc->sc_bus.dma_tag, pc, pg, size, align)) {
-		sc->sc_alloc_failed = 1;
-	}
-	return;
-}
-
-void
-uhci_free_all(uhci_softc_t *sc, struct usbd_page_cache *pc,
-    struct usbd_page *pg, uint32_t size, uint32_t align)
-{
-	usbd_dma_free_mem(pc);
-	return;
-}
-
 static void
 uhci_mem_layout_init(struct uhci_mem_layout *ml, struct usbd_xfer *xfer)
 {
@@ -427,7 +401,7 @@
 
 	qh->page_cache = pc;
 
-	return qh;
+	return (qh);
 }
 
 static struct uhci_td *
@@ -446,7 +420,7 @@
 
 	td->page_cache = pc;
 
-	return td;
+	return (td);
 }
 
 usbd_status
@@ -642,7 +616,7 @@
 	}
 	/* flush all cache into memory */
 
-	uhci_iterate_hw_softc(sc, &uhci_flush_all);
+	usbd_bus_mem_flush_all(&(sc->sc_bus), &uhci_iterate_hw_softc);
 
 	LIST_INIT(&sc->sc_interrupt_list_head);
 
@@ -1391,7 +1365,7 @@
 
 		td = xfer->td_transfer_last;
 
-		usbd_pc_invalidate(td->page_cache);
+		usbd_pc_cpu_invalidate(td->page_cache);
 		status = le32toh(td->td_status);
 
 		if (!(status & UHCI_TD_ACTIVE)) {
@@ -3156,34 +3130,11 @@
 	.start = uhci_root_intr_start,
 };
 
-static uint8_t
-uhci_dma_alloc_mem(struct usbd_setup_params *parm, uint32_t size,
-    uint32_t align, struct usbd_page_search *info)
-{
-	uhci_softc_t *sc;
-
-	if (parm->buf == NULL) {
-		/* for the future */
-		return (0);
-	}
-	sc = UHCI_BUS2SC(parm->udev->bus);
-
-	/* FIXME sc->sc_bus.dma_tag to xfer->dma_tags */
-
-	if (usbd_dma_alloc_mem(sc->sc_bus.dma_tag_parent,
-	    sc->sc_bus.dma_tag, parm->dma_page_cache_ptr,
-	    parm->dma_page_ptr, size, align)) {
-		return (1);		/* failure */
-	}
-	usbd_get_page(parm->dma_page_cache_ptr, 0, info);
-
-	return (0);
-}
-
 static void
 uhci_xfer_setup(struct usbd_setup_params *parm)
 {
 	struct usbd_page_search page_info;
+	struct usbd_page_cache *pc;
 	uhci_softc_t *sc;
 	struct usbd_xfer *xfer;
 	void *last_obj;
@@ -3291,17 +3242,22 @@
 	}
 	align = (1 << n);
 
-	xfer->buf_fixup = parm->dma_page_cache_ptr;
-
 	for (n = 0; n != nfixup; n++) {
 
-		if (uhci_dma_alloc_mem(parm, xfer->max_frame_size,
-		    align, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, xfer->max_frame_size,
+		    align)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
+		if (n == 0) {
+			/*
+			 * We depend on some assumptions here, like how
+			 * "sub_malloc" lays out the "usbd_page_cache"
+			 * structures
+			 */
+			xfer->buf_fixup = pc;
+		}
 	}
 
 	last_obj = NULL;
@@ -3310,8 +3266,9 @@
 
 		uhci_td_t *td;
 
-		if (uhci_dma_alloc_mem(parm, sizeof(*td),
-		    UHCI_TD_ALIGN, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*td),
+		    UHCI_TD_ALIGN)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
@@ -3330,14 +3287,12 @@
 			}
 
 			td->obj_next = last_obj;
-			td->page_cache = parm->dma_page_cache_ptr;
+			td->page_cache = pc;
 
 			last_obj = td;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->td_start = last_obj;
@@ -3348,8 +3303,9 @@
 
 		uhci_qh_t *qh;
 
-		if (uhci_dma_alloc_mem(parm, sizeof(*qh),
-		    UHCI_QH_ALIGN, &page_info)) {
+		if (usbd_transfer_setup_sub_malloc(
+		    parm, &page_info, &pc, sizeof(*qh),
+		    UHCI_QH_ALIGN)) {
 			parm->err = USBD_NOMEM;
 			break;
 		}
@@ -3360,14 +3316,12 @@
 			/* init QH */
 			qh->qh_self = htole32(page_info.physaddr | UHCI_PTR_QH);
 			qh->obj_next = last_obj;
-			qh->page_cache = parm->dma_page_cache_ptr;
+			qh->page_cache = pc;
 
 			last_obj = qh;
 
-			usbd_pc_cpu_flush(parm->dma_page_cache_ptr);
+			usbd_pc_cpu_flush(pc);
 		}
-		parm->dma_page_ptr++;
-		parm->dma_page_cache_ptr++;
 	}
 
 	xfer->qh_start = last_obj;

==== //depot/projects/usb/src/sys/dev/usb/uhci.h#19 (text+ko) ====

@@ -303,20 +303,15 @@
 	uint8_t	sc_addr;		/* device address */
 	uint8_t	sc_conf;		/* device configuration */
 	uint8_t	sc_isreset;
-	uint8_t	sc_alloc_failed;
 	uint8_t	sc_saved_sof;
 	uint8_t	sc_hub_idata[1];
 
 	char	sc_vendor[16];		/* vendor string for root hub */
 } uhci_softc_t;
 
-typedef void (uhci_iterate_cb_t)(uhci_softc_t *sc, struct usbd_page_cache *pc, struct usbd_page *pg, uint32_t size, uint32_t align);
-uhci_iterate_cb_t uhci_flush_all;
-uhci_iterate_cb_t uhci_alloc_all;
-uhci_iterate_cb_t uhci_free_all;
+usbd_bus_mem_cb_t uhci_iterate_hw_softc;
 
 usbd_status uhci_init(uhci_softc_t *sc);
-void	uhci_iterate_hw_softc(uhci_softc_t *sc, uhci_iterate_cb_t *cb);
 void	uhci_suspend(uhci_softc_t *sc);
 void	uhci_resume(uhci_softc_t *sc);
 void	uhci_reset(uhci_softc_t *sc);

==== //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#26 (text+ko) ====

@@ -212,13 +212,13 @@
 		device_printf(self, "Could not allocate sc\n");
 		return (ENXIO);
 	}
+	/* store parent DMA tag */
+
+	sc->sc_bus.dma_tag_parent = device_get_dma_tag(self);
+
 	/* get all DMA memory */
 
-	uhci_iterate_hw_softc(sc, &uhci_alloc_all);
-
-	if (sc->sc_alloc_failed) {
-		uhci_iterate_hw_softc(sc, &uhci_free_all);
-		usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	if (usbd_bus_mem_alloc_all(&(sc->sc_bus), &uhci_iterate_hw_softc)) {
 		return ENOMEM;
 	}
 	mtx_init(&sc->sc_bus.mtx, "usb lock",
@@ -388,9 +388,7 @@
 	}
 	usbd_config_td_unsetup(&(sc->sc_config_td));
 
-	uhci_iterate_hw_softc(sc, &uhci_free_all);
-
-	usbd_dma_tag_unsetup(sc->sc_bus.dma_tag);
+	usbd_bus_mem_free_all(&(sc->sc_bus), &uhci_iterate_hw_softc);
 
 	mtx_destroy(&sc->sc_bus.mtx);
 

From owner-p4-projects@FreeBSD.ORG  Fri Nov 30 23:08:13 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id A097C16A421; Fri, 30 Nov 2007 23:08:13 +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 6656B16A417
	for ; Fri, 30 Nov 2007 23:08:13 +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 57D6813C461
	for ; Fri, 30 Nov 2007 23:08:13 +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 lAUN8D6j024366
	for ; Fri, 30 Nov 2007 23:08:13 GMT
	(envelope-from hselasky@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lAUN8DUG024363
	for perforce@freebsd.org; Fri, 30 Nov 2007 23:08:13 GMT
	(envelope-from hselasky@FreeBSD.org)
Date: Fri, 30 Nov 2007 23:08:13 GMT
Message-Id: <200711302308.lAUN8DUG024363@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 129850 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: Fri, 30 Nov 2007 23:08:13 -0000

http://perforce.freebsd.org/chv.cgi?CH=129850

Change 129850 by hselasky@hselasky_laptop001 on 2007/11/30 23:07:59

	
	Get "__usb_attach" out of the system name domain.
	
	sed -e "s/__usb_attach/usb_attach_sub/g" usb.c

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/usb.c#23 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/usb.c#23 (text+ko) ====

@@ -96,7 +96,7 @@
 static void usb_discover(struct usbd_bus *bus);
 static void usb_event_thread(struct usbd_bus *bus);
 static void usb_create_event_thread(struct usbd_bus *bus);
-static void __usb_attach(device_t dev, struct usbd_bus *bus);
+static void usb_attach_sub(device_t dev, struct usbd_bus *bus);
 static void usb_post_init(void *arg);
 static struct usbd_clone *usb_clone_sub(struct usbd_bus *bus);
 static void usb_clone_remove(struct usbd_bus *bus);
@@ -299,7 +299,7 @@
 }
 
 static void
-__usb_attach(device_t dev, struct usbd_bus *bus)
+usb_attach_sub(device_t dev, struct usbd_bus *bus)
 {
 	dev_clone_fn usb_clone_ptr = &usb_clone;
 	usbd_status err;
@@ -387,7 +387,7 @@
 	mtx_lock(&usb_global_lock);
 
 	if (usb_post_init_called != 0) {
-		__usb_attach(dev, bus);
+		usb_attach_sub(dev, bus);
 	}
 	mtx_unlock(&usb_global_lock);
 
@@ -414,7 +414,7 @@
 			if (dev) {
 				bus = device_get_softc(dev);
 
-				__usb_attach(dev, bus);
+				usb_attach_sub(dev, bus);
 			}
 		}
 	} else {

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 00:35:49 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2215116A41B; Sat,  1 Dec 2007 00:35:49 +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 BB63A16A418
	for ; Sat,  1 Dec 2007 00:35:48 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id AB3DE13C447
	for ; Sat,  1 Dec 2007 00:35:48 +0000 (UTC)
	(envelope-from zec@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 lB10Zm4W029978
	for ; Sat, 1 Dec 2007 00:35:48 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB10ZmXt029975
	for perforce@freebsd.org; Sat, 1 Dec 2007 00:35:48 GMT
	(envelope-from zec@FreeBSD.org)
Date: Sat, 1 Dec 2007 00:35:48 GMT
Message-Id: <200712010035.lB10ZmXt029975@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129854 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, 01 Dec 2007 00:35:49 -0000

http://perforce.freebsd.org/chv.cgi?CH=129854

Change 129854 by zec@zec_tpx32 on 2007/12/01 00:35:47

	In ng_iface, mark mbufs with M_REMOTE_VNET and / or switch the
	per-thread vnet context if crossing a vnet boundary.

Affected files ...

.. //depot/projects/vimage/src/sys/netgraph/ng_iface.c#5 edit

Differences ...

==== //depot/projects/vimage/src/sys/netgraph/ng_iface.c#5 (text+ko) ====

@@ -464,6 +464,14 @@
 
 	/* Send packet. If hook is not connected,
 	   mbuf will get freed. */
+#ifdef VIMAGE
+	if (ifp->if_vnet != priv->node->nd_vnet) {
+		m->m_flags |= M_REMOTE_VNET;
+		CURVNET_SET_QUIET(priv->node->nd_vnet);
+		NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m);
+		CURVNET_RESTORE();
+	} else
+#endif
 	NG_SEND_DATA_ONLY(error, *get_hook_from_iffam(priv, iffam), m);
 
 	/* Update stats. */
@@ -756,6 +764,12 @@
 	ifp->if_ipackets++;
 	ifp->if_ibytes += m->m_pkthdr.len;
 
+#ifdef VIMAGE
+	/* Mark up the mbuf if crossing vnet boundary */
+	if (ifp->if_vnet != NG_HOOK_NODE(hook)->nd_vnet)
+		m->m_flags |= M_REMOTE_VNET;
+#endif
+
 	/* Note receiving interface */
 	m->m_pkthdr.rcvif = ifp;
 

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 00:37:51 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 4A61916A41A; Sat,  1 Dec 2007 00: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 E823C16A419
	for ; Sat,  1 Dec 2007 00:37:50 +0000 (UTC)
	(envelope-from zec@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id BF10B13C455
	for ; Sat,  1 Dec 2007 00:37:50 +0000 (UTC)
	(envelope-from zec@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 lB10bo9n030057
	for ; Sat, 1 Dec 2007 00:37:50 GMT
	(envelope-from zec@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB10boVT030054
	for perforce@freebsd.org; Sat, 1 Dec 2007 00:37:50 GMT
	(envelope-from zec@FreeBSD.org)
Date: Sat, 1 Dec 2007 00:37:50 GMT
Message-Id: <200712010037.lB10boVT030054@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	zec@FreeBSD.org using -f
From: Marko Zec 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129855 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, 01 Dec 2007 00:37:51 -0000

http://perforce.freebsd.org/chv.cgi?CH=129855

Change 129855 by zec@zec_tpx32 on 2007/12/01 00:36:50

	Use NG_HOOK_NODE() macro instead of directly accessing
	nethraph hook fields.

Affected files ...

.. //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#9 edit

Differences ...

==== //depot/projects/vimage/src/sys/netgraph/ng_eiface.c#9 (text+ko) ====

@@ -552,7 +552,7 @@
 
 #ifdef VIMAGE
 	/* Mark up the mbuf if crossing vnet boundary */
-	if (ifp->if_vnet != hook->hk_node->nd_vnet)
+	if (ifp->if_vnet != NG_HOOK_NODE(hook)->nd_vnet)
 		m->m_flags |= M_REMOTE_VNET;
 #endif
 

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 01:22:40 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id ED34816A421; Sat,  1 Dec 2007 01:22: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 A945516A417
	for ; Sat,  1 Dec 2007 01:22:39 +0000 (UTC)
	(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 9775613C459
	for ; Sat,  1 Dec 2007 01:22:39 +0000 (UTC)
	(envelope-from gcooper@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 lB11MdN4041750
	for ; Sat, 1 Dec 2007 01:22:39 GMT
	(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB11Md3m041747
	for perforce@freebsd.org; Sat, 1 Dec 2007 01:22:39 GMT
	(envelope-from gcooper@FreeBSD.org)
Date: Sat, 1 Dec 2007 01:22:39 GMT
Message-Id: <200712010122.lB11Md3m041747@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	gcooper@FreeBSD.org using -f
From: Garrett Cooper 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129858 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, 01 Dec 2007 01:22:40 -0000

http://perforce.freebsd.org/chv.cgi?CH=129858

Change 129858 by gcooper@shiina-ibook on 2007/12/01 01:21:39

	- Separate out freebsd_package free'ing functionality from generic pkg free'ing functionality so we can call freebsd_free whenever we need to free up freebsd_package structures, and pkg_freebsd_free whenever we need to free up freebsd_package structures attached to pkg structures...
	- Some style changes.
	- Get ready to implement more NOTYET / todo code..

Affected files ...

.. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#4 edit

Differences ...

==== //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/libpkg/pkg_freebsd.c#4 (text+ko) ====

@@ -69,7 +69,10 @@
 static struct pkg	**freebsd_get_rdeps(struct pkg *);
 static int		  freebsd_run_script(struct pkg *,const char *,
 				pkg_script);
-static int		  freebsd_free(struct pkg *);
+static int		  pkg_freebsd_free(struct pkg *);
+
+static int		  pkg_freebsd_free(struct pkg *);
+static int		  freebsd_free(struct freebsd_package *);
 
 /* Internal functions */
 static struct freebsd_package	 *freebsd_package_new(void);
@@ -153,16 +156,17 @@
 	assert(fpkg->contents != NULL);
 	if (fpkg->contents->lines[1].line_type != PKG_LINE_NAME ||
 	    fpkg->contents->lines[3].line_type != PKG_LINE_CWD) {
-		/** @todo cleanup */
+		freebsd_free(fpkg->contents);
+		warnx("Invalid package format..");
 		return NULL;
 	}
 
 	pkg_name = fpkg->contents->lines[1].data;
 	pkg = pkg_new(pkg_name, freebsd_get_control_files,
 	    freebsd_get_control_file, freebsd_get_manifest, freebsd_get_deps,
-	    NULL, freebsd_free);
+	    NULL, pkg_freebsd_free);
 	if (pkg == NULL) {
-		/** @todo cleanup */
+		warnx("Package returned was null..");
 		return NULL;
 	}
 	pkg_add_callbacks_data(pkg, freebsd_get_version, freebsd_get_origin,
@@ -203,14 +207,16 @@
 	/* check the directory exists and is a directory */
 	if (lstat(pkg_db_dir, &sb) == -1)
 		return NULL;
-	if (!S_ISDIR(sb.st_mode))
+	if (0 == S_ISDIR(sb.st_mode))
 		return NULL;
 
 	pkg = pkg_new(pkg_name, freebsd_get_control_files,
 	    freebsd_get_control_file, freebsd_get_manifest, freebsd_get_deps,
-	    freebsd_get_rdeps, freebsd_free);
+	    freebsd_get_rdeps, pkg_freebsd_free);
+
 	if (pkg == NULL)
 		return NULL;
+
 	pkg_add_callbacks_data(pkg, freebsd_get_version, freebsd_get_origin,
 	    freebsd_set_origin);
 	pkg_add_callbacks_install(pkg, NULL, freebsd_deinstall,
@@ -249,7 +255,7 @@
 	struct freebsd_package *fpkg;
 
 	/* Create the package */
-	pkg = pkg_new(pkg_name, NULL, NULL, NULL, NULL, NULL, freebsd_free);
+	pkg = pkg_new(pkg_name, NULL, NULL, NULL, NULL, NULL, pkg_freebsd_free);
 	if (pkg == NULL)
 		return NULL;
 
@@ -403,7 +409,7 @@
  * @return -1
  */
 static int
-freebsd_add_depend(struct pkg *pkg __unused, struct pkg *depend __unused)
+freebsd_add_depend(struct pkg *pkg, struct pkg *depend)
 {
 	assert(0);
 	return -1;
@@ -543,9 +549,9 @@
 	file_data = pkgfile_get_data(contents_file);
 	contents = pkg_freebsd_contents_new(file_data,
 	    pkgfile_get_size(contents_file));
-	if (contents == NULL) {
+
+	if (contents == NULL)
 		return -1;
-	}
 
 	pkg_get_manifest(pkg);
 	assert(pkg->pkg_manifest != NULL);
@@ -1161,19 +1167,24 @@
  * @return 0
  */
 static int
-freebsd_free(struct pkg *pkg)
+pkg_freebsd_free(struct pkg *pkg)
 {
-	struct freebsd_package *fpkg;
 	assert(pkg != NULL);
 
-	fpkg = pkg->data;
-	if (fpkg) {
+	return freebsd_free( (struct freebsd_package *) pkg->data);
+}
+
+static int
+freebsd_free(struct freebsd_package *fpkg)
+{
+
+	if (fpkg != NULL) {
+
 		if (fpkg->db_dir != NULL)
 			free(fpkg->db_dir);
 
-		/** @todo Fix this to only call free when required */
-		/* if (fpkg->origin != NULL)
-			free(fpkg->origin); */
+		if (fpkg->origin != NULL)
+			free(fpkg->origin);
 
 		if (fpkg->next_file != NULL)
 			pkgfile_free(fpkg->next_file);
@@ -1227,7 +1238,7 @@
 
 /**
  * @brief Creates an empty struct freebsd_package
- * @return A new creebsd_package object or NULL
+ * @return A new freebsd_package object or NULL
  */
 static struct freebsd_package *
 freebsd_package_new()
@@ -1258,14 +1269,17 @@
 	unsigned int control_size, control_count;
 	struct pkgfile *pkgfile;
 
-/** @todo Check the return of realloc */
 #define addFile(pkgfile) \
 	control_size += sizeof(struct pkgfile **); \
+	size_t pkg_control_size = sizeof(fpkg->control); \
 	fpkg->control = realloc(fpkg->control, control_size); \
+	if (fpkg->control == NULL || \
+	    pkg_control_size == sizeof(fpkg->control)) \
+		return -1; \
 	fpkg->control[control_count] = pkgfile; \
 	control_count++; \
 	fpkg->control[control_count] = NULL;
-	
+
 	assert(fpkg != NULL);
 
 	/* Don't attempt to get the control files again */
@@ -1281,6 +1295,13 @@
 	/* Setup the store to hold all the files */
 	control_size = sizeof(struct pkgfile **);
 	fpkg->control = malloc(control_size);
+
+	/*
+	 * Don't forget -- this can be NULL..
+	 */ 
+	if (fpkg->control == NULL)
+		return -1;
+
 	fpkg->control[0] = NULL;
 	control_count = 0;
 	
@@ -1294,7 +1315,7 @@
 			return -1;
 
 		/* Load all the + files into control */
-		while ((de = readdir(d)) != NULL) {
+		while ( (de = readdir(d)) != NULL ) {
 			char *file;
 	
 			if (de->d_name[0] == '.') {
@@ -1327,14 +1348,17 @@
 
 		return 0;
 	} else if (fpkg->pkg_type == fpkg_from_file) {
+
 		assert(fpkg->archive != NULL);
 		pkgfile = freebsd_get_next_entry(fpkg->archive);
+
 		while (pkgfile_get_name(pkgfile)[0] == '+') {
 			addFile(pkgfile);
 			pkgfile = freebsd_get_next_entry(fpkg->archive);
 		}
 		fpkg->next_file = pkgfile;
 		return 0;
+
 	}
 	assert(0);
 	return -1;

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 02:32:55 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 854E416A420; Sat,  1 Dec 2007 02:32: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 2FF9C16A41A
	for ; Sat,  1 Dec 2007 02:32:55 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 0574C13C4E9
	for ; Sat,  1 Dec 2007 02:32:55 +0000 (UTC)
	(envelope-from peter@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 lB12WsnC046125
	for ; Sat, 1 Dec 2007 02:32:54 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB12Wsge046122
	for perforce@freebsd.org; Sat, 1 Dec 2007 02:32:54 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 02:32:54 GMT
Message-Id: <200712010232.lB12Wsge046122@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129860 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, 01 Dec 2007 02:32:55 -0000

http://perforce.freebsd.org/chv.cgi?CH=129860

Change 129860 by peter@peter_overcee on 2007/12/01 02:32:19

	Kill a supposedly-busted promotion from DIAGNOSTIC to INVARIANTS

Affected files ...

.. //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#33 edit

Differences ...

==== //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#33 (text+ko) ====

@@ -552,7 +552,7 @@
 	if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
 		ssize = len;
 	} else {
-#ifdef INVARIANTS
+#ifdef INVARIANTS_busted
 		if (start_ap[start_lvl-1].in_lbn == idp->in_lbn)
 			panic("ffs_reallocblk: start == end");
 #endif

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 02:39:03 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2C1C516A419; Sat,  1 Dec 2007 02:39:03 +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 7C26016A468
	for ; Sat,  1 Dec 2007 02:39:02 +0000 (UTC)
	(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 0293A13C46B
	for ; Sat,  1 Dec 2007 02:39:02 +0000 (UTC)
	(envelope-from gcooper@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 lB12d1wZ046376
	for ; Sat, 1 Dec 2007 02:39:01 GMT
	(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB12d1Nk046373
	for perforce@freebsd.org; Sat, 1 Dec 2007 02:39:01 GMT
	(envelope-from gcooper@FreeBSD.org)
Date: Sat, 1 Dec 2007 02:39:01 GMT
Message-Id: <200712010239.lB12d1Nk046373@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	gcooper@FreeBSD.org using -f
From: Garrett Cooper 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129861 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, 01 Dec 2007 02:39:03 -0000

http://perforce.freebsd.org/chv.cgi?CH=129861

Change 129861 by gcooper@shiina-ibook on 2007/12/01 02:38:06

	Adding old pkg_install apps to main repo area for libpkg(3) adaptation.

Affected files ...

.. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_create/main.c#1 add
.. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_sign/main.c#1 add
.. //depot/projects/soc2007/revised_fbsd_pkgtools/pkg_revised/v2/contrib/trunk/tools/pkg_version/main.c#1 add

Differences ...

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 02:39:04 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2DECC16A52A; Sat,  1 Dec 2007 02:39:03 +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 C4FDF16A469
	for ; Sat,  1 Dec 2007 02:39:02 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id B0F4A13C478
	for ; Sat,  1 Dec 2007 02:39:02 +0000 (UTC)
	(envelope-from peter@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 lB12d252046382
	for ; Sat, 1 Dec 2007 02:39:02 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB12d2Tx046379
	for perforce@freebsd.org; Sat, 1 Dec 2007 02:39:02 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 02:39:02 GMT
Message-Id: <200712010239.lB12d2Tx046379@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129862 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, 01 Dec 2007 02:39:04 -0000

http://perforce.freebsd.org/chv.cgi?CH=129862

Change 129862 by peter@peter_overcee on 2007/12/01 02:38:55

	IFC @129859

Affected files ...

.. //depot/projects/hammer/sys/conf/options.amd64#45 integrate
.. //depot/projects/hammer/sys/conf/options.i386#50 integrate
.. //depot/projects/hammer/sys/dev/sio/sio_isa.c#9 integrate
.. //depot/projects/hammer/sys/dev/sio/sio_puc.c#9 integrate
.. //depot/projects/hammer/sys/kern/kern_sysctl.c#34 integrate
.. //depot/projects/hammer/sys/kern/subr_bus.c#55 integrate
.. //depot/projects/hammer/sys/netgraph/ng_cisco.c#11 integrate
.. //depot/projects/hammer/sys/netinet/tcp_output.c#48 integrate
.. //depot/projects/hammer/sys/netinet/tcp_syncache.c#53 integrate
.. //depot/projects/hammer/sys/sparc64/pci/ofw_pcibus.c#17 integrate
.. //depot/projects/hammer/sys/sparc64/pci/psycho.c#36 integrate
.. //depot/projects/hammer/sys/sparc64/pci/psychovar.h#13 integrate
.. //depot/projects/hammer/sys/sys/sysctl.h#36 integrate

Differences ...

==== //depot/projects/hammer/sys/conf/options.amd64#45 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.amd64,v 1.29 2007/07/04 00:18:38 bz Exp $
+# $FreeBSD: src/sys/conf/options.amd64,v 1.30 2007/11/30 21:45:06 peter Exp $
 # Options specific to AMD64 platform kernels
 
 AUTO_EOI_1		opt_auto_eoi.h
@@ -30,6 +30,7 @@
 COM_MULTIPORT		opt_sio.h
 CONSPEED		opt_sio.h
 GDBSPEED		opt_sio.h
+COM_NO_ACPI		opt_sio.h
 
 VGA_ALT_SEQACCESS	opt_vga.h
 VGA_DEBUG		opt_vga.h

==== //depot/projects/hammer/sys/conf/options.i386#50 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.238 2007/07/04 00:18:38 bz Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.239 2007/11/30 21:45:06 peter Exp $
 # Options specific to the i386 platform kernels
 
 AUTO_EOI_1		opt_auto_eoi.h
@@ -80,6 +80,7 @@
 COM_MULTIPORT		opt_sio.h
 CONSPEED		opt_sio.h
 GDBSPEED		opt_sio.h
+COM_NO_ACPI		opt_sio.h
 
 VGA_ALT_SEQACCESS	opt_vga.h
 VGA_DEBUG		opt_vga.h

==== //depot/projects/hammer/sys/dev/sio/sio_isa.c#9 (text+ko) ====

@@ -23,7 +23,9 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/dev/sio/sio_isa.c,v 1.16 2005/05/29 04:42:25 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/sio/sio_isa.c,v 1.17 2007/11/30 21:45:07 peter Exp $");
+
+#include "opt_sio.h"
 
 #include 
 #include 
@@ -167,4 +169,6 @@
 }
 
 DRIVER_MODULE(sio, isa, sio_isa_driver, sio_devclass, 0, 0);
-/* DRIVER_MODULE(sio, acpi, sio_isa_driver, sio_devclass, 0, 0); */
+#ifndef COM_NO_ACPI
+DRIVER_MODULE(sio, acpi, sio_isa_driver, sio_devclass, 0, 0);
+#endif

==== //depot/projects/hammer/sys/dev/sio/sio_puc.c#9 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/dev/sio/sio_puc.c,v 1.10 2006/04/28 21:21:52 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/sio/sio_puc.c,v 1.11 2007/11/30 21:36:12 peter Exp $");
 
 #include 
 #include 

==== //depot/projects/hammer/sys/kern/kern_sysctl.c#34 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/kern_sysctl.c,v 1.178 2007/10/24 19:03:54 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_sysctl.c,v 1.179 2007/11/30 21:29:08 peter Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"

==== //depot/projects/hammer/sys/kern/subr_bus.c#55 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/subr_bus.c,v 1.201 2007/07/27 11:59:56 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_bus.c,v 1.202 2007/11/30 21:30:14 peter Exp $");
 
 #include "opt_bus.h"
 

==== //depot/projects/hammer/sys/netgraph/ng_cisco.c#11 (text+ko) ====

@@ -37,7 +37,7 @@
  *
  * Author: Julian Elischer 
  *
- * $FreeBSD: src/sys/netgraph/ng_cisco.c,v 1.28 2005/04/13 14:03:28 glebius Exp $
+ * $FreeBSD: src/sys/netgraph/ng_cisco.c,v 1.29 2007/11/30 23:27:39 julian Exp $
  * $Whistle: ng_cisco.c,v 1.25 1999/11/01 09:24:51 julian Exp $
  */
 
@@ -228,6 +228,9 @@
 	} else if (strcmp(name, NG_CISCO_HOOK_INET) == 0) {
 		sc->inet.hook = hook;
 		NG_HOOK_SET_PRIVATE(hook, &sc->inet);
+	} else if (strcmp(name, NG_CISCO_HOOK_INET6) == 0) {
+		sc->inet6.hook = hook;
+		NG_HOOK_SET_PRIVATE(hook, &sc->inet6);
 	} else if (strcmp(name, NG_CISCO_HOOK_APPLETALK) == 0) {
 		sc->atalk.hook = hook;
 		NG_HOOK_SET_PRIVATE(hook, &sc->atalk);

==== //depot/projects/hammer/sys/netinet/tcp_output.c#48 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/netinet/tcp_output.c,v 1.144 2007/11/28 13:33:27 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/tcp_output.c,v 1.145 2007/11/30 23:46:51 bz Exp $");
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
@@ -128,9 +128,6 @@
 	struct socket *so = tp->t_inpcb->inp_socket;
 	long len, recwin, sendwin;
 	int off, flags, error;
-#ifdef TCP_SIGNATURE
-	int sigoff = 0;
-#endif
 	struct mbuf *m;
 	struct ip *ip = NULL;
 	struct ipovly *ipov = NULL;
@@ -694,10 +691,6 @@
 
 		/* Processing the options. */
 		hdrlen += optlen = tcp_addoptions(&to, opt);
-
-#ifdef TCP_SIGNATURE
-		sigoff = to.to_signature - (u_char *)&to;
-#endif /* TCP_SIGNATURE */
 	}
 
 #ifdef INET6
@@ -964,9 +957,11 @@
 #ifdef INET6
 	if (!isipv6)
 #endif
-	if (tp->t_flags & TF_SIGNATURE)
+	if (tp->t_flags & TF_SIGNATURE) {
+		int sigoff = to.to_signature - opt;
 		tcp_signature_compute(m, sizeof(struct ip), len, optlen,
 		    (u_char *)(th + 1) + sigoff, IPSEC_DIR_OUTBOUND);
+	}
 #endif
 
 	/*

==== //depot/projects/hammer/sys/netinet/tcp_syncache.c#53 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.134 2007/11/20 06:56:04 silby Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.135 2007/11/30 23:41:51 bz Exp $");
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
@@ -1349,15 +1349,16 @@
 #endif
 		optlen = tcp_addoptions(&to, (u_char *)(th + 1));
 
-#ifdef TCP_SIGNATURE
-		tcp_signature_compute(m, sizeof(struct ip), 0, optlen,
-		    to.to_signature, IPSEC_DIR_OUTBOUND);
-#endif
-
 		/* Adjust headers by option size. */
 		th->th_off = (sizeof(struct tcphdr) + optlen) >> 2;
 		m->m_len += optlen;
 		m->m_pkthdr.len += optlen;
+
+#ifdef TCP_SIGNATURE
+		if (sc->sc_flags & SCF_SIGNATURE)
+			tcp_signature_compute(m, sizeof(struct ip), 0, optlen,
+			    to.to_signature, IPSEC_DIR_OUTBOUND);
+#endif
 #ifdef INET6
 		if (sc->sc_inc.inc_isipv6)
 			ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) + optlen);

==== //depot/projects/hammer/sys/sparc64/pci/ofw_pcibus.c#17 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/sparc64/pci/ofw_pcibus.c,v 1.16 2007/09/30 11:05:17 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/sparc64/pci/ofw_pcibus.c,v 1.17 2007/11/30 23:02:42 marius Exp $");
 
 #include "opt_ofw_pci.h"
 
@@ -189,6 +189,19 @@
 		    domain, busno);
 
 	node = ofw_bus_get_node(dev);
+
+#ifndef SUN4V
+	/* Add the PCI side of the HOST-PCI bridge itself to the bus. */
+	if (strcmp(device_get_name(device_get_parent(pcib)), "nexus") == 0 &&
+	    (dinfo = (struct ofw_pcibus_devinfo *)pci_read_device(pcib,
+	    domain, busno, 0, 0, sizeof(*dinfo))) != NULL) {
+		if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, node) != 0)
+			pci_freecfg((struct pci_devinfo *)dinfo);
+		else
+			pci_add_child(dev, (struct pci_devinfo *)dinfo);
+	}
+#endif
+
 	for (child = OF_child(node); child != 0; child = OF_peer(child)) {
 		if (OF_getprop(child, "reg", &pcir, sizeof(pcir)) == -1)
 			continue;

==== //depot/projects/hammer/sys/sparc64/pci/psycho.c#36 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/sparc64/pci/psycho.c,v 1.70 2007/09/30 11:05:17 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/sparc64/pci/psycho.c,v 1.71 2007/11/30 23:02:42 marius Exp $");
 
 /*
  * Support for `Hummingbird' (UltraSPARC IIe), `Psycho' and `Psycho+'
@@ -44,6 +44,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -160,14 +161,10 @@
 	{ 0, 0 }
 };
 
-static driver_t psycho_driver = {
-	"pcib",
-	psycho_methods,
-	sizeof(struct psycho_softc),
-};
-
 static devclass_t psycho_devclass;
 
+DEFINE_CLASS_0(pcib, psycho_driver, psycho_methods,
+    sizeof(struct psycho_softc));
 DRIVER_MODULE(psycho, nexus, psycho_driver, psycho_devclass, 0, 0);
 
 static SLIST_HEAD(, psycho_softc) psycho_softcs =
@@ -304,9 +301,9 @@
 	struct psycho_softc *asc, *sc, *osc;
 	struct ofw_pci_ranges *range;
 	const struct psycho_desc *desc;
-	phandle_t child, node;
 	bus_addr_t intrclr, intrmap;
 	uint64_t csr, dr;
+	phandle_t child, node;
 	uint32_t dvmabase, psycho_br[2];
 	int32_t rev;
 	u_int ver;
@@ -676,6 +673,16 @@
 	PCIB_WRITE_CONFIG(dev, psycho_br[0], PCS_DEVICE, PCS_FUNC, PCSR_SECBUS,
 	    sc->sc_pci_secbus, 1);
 
+	for (n = PCIR_VENDOR; n < PCIR_STATUS; n += sizeof(uint16_t))
+		le16enc(&sc->sc_pci_hpbcfg[n], bus_space_read_2(
+		    sc->sc_pci_cfgt, sc->sc_pci_bh[OFW_PCI_CS_CONFIG],
+		    PSYCHO_CONF_OFF(sc->sc_pci_secbus, PCS_DEVICE,
+		    PCS_FUNC, n)));
+	for (n = PCIR_REVID; n <= PCIR_BIST; n += sizeof(uint8_t))
+		sc->sc_pci_hpbcfg[n] = bus_space_read_1(sc->sc_pci_cfgt,
+		    sc->sc_pci_bh[OFW_PCI_CS_CONFIG], PSYCHO_CONF_OFF(
+		    sc->sc_pci_secbus, PCS_DEVICE, PCS_FUNC, n));
+
 	ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(ofw_pci_intr_t));
 	/*
 	 * On E250 the interrupt map entry for the EBus bridge is wrong,
@@ -924,13 +931,53 @@
 	u_long offset = 0;
 	uint8_t byte;
 	uint16_t shrt;
-	uint32_t wrd;
-	uint32_t r;
+	uint32_t r, wrd;
 	int i;
 
 	sc = device_get_softc(dev);
+	bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG];
+
+	/*
+	 * The Hummingbird and Sabre bridges are picky in that they
+	 * only allow their config space to be accessed using the
+	 * "native" width of the respective register being accessed
+	 * and return semi-random other content of their config space
+	 * otherwise. Given that the PCI specs don't say anything
+	 * about such a (unusual) limitation and lots of stuff expects
+	 * to be able to access the contents of the config space at
+	 * any width we allow just that. We do this by using a copy
+	 * of the header of the bridge (the rest is all zero anyway)
+	 * read during attach (expect for PCIR_STATUS) in order to
+	 * simplify things.
+	 * The Psycho bridges contain a dupe of their header at 0x80
+	 * which we nullify that way also.
+	 */
+	if (bus == sc->sc_pci_secbus && slot == PCS_DEVICE &&
+	    func == PCS_FUNC) {
+		if (offset % width != 0)
+			return (-1);
+
+		if (reg > sizeof(sc->sc_pci_hpbcfg))
+			return (0);
+
+		if ((reg < PCIR_STATUS && reg + width > PCIR_STATUS) ||
+		    reg == PCIR_STATUS || reg == PCIR_STATUS + 1)
+			le16enc(&sc->sc_pci_hpbcfg[PCIR_STATUS],
+			    bus_space_read_2(sc->sc_pci_cfgt, bh,
+			    PSYCHO_CONF_OFF(sc->sc_pci_secbus,
+			    PCS_DEVICE, PCS_FUNC, PCIR_STATUS)));
+
+		switch (width) {
+		case 1:
+			return (sc->sc_pci_hpbcfg[reg]);
+		case 2:
+			return (le16dec(&sc->sc_pci_hpbcfg[reg]));
+		case 4:
+			return (le32dec(&sc->sc_pci_hpbcfg[reg]));
+		}
+	}
+
 	offset = PSYCHO_CONF_OFF(bus, slot, func, reg);
-	bh = sc->sc_pci_bh[OFW_PCI_CS_CONFIG];
 	switch (width) {
 	case 1:
 		i = bus_space_peek_1(sc->sc_pci_cfgt, bh, offset, &byte);
@@ -1001,7 +1048,7 @@
 	/*
 	 * If this is outside of the range for an intpin, it's likely a full
 	 * INO, and no mapping is required at all; this happens on the U30,
- 	 * where there's no interrupt map at the Psycho node. Fortunately,
+	 * where there's no interrupt map at the Psycho node. Fortunately,
 	 * there seem to be no INOs in the intpin range on this boxen, so
 	 * this easy heuristics will do.
 	 */

==== //depot/projects/hammer/sys/sparc64/pci/psychovar.h#13 (text+ko) ====

@@ -27,7 +27,7 @@
  *
  *	from: NetBSD: psychovar.h,v 1.6 2001/07/20 00:07:13 eeh Exp
  *
- * $FreeBSD: src/sys/sparc64/pci/psychovar.h,v 1.16 2007/06/16 23:46:41 marius Exp $
+ * $FreeBSD: src/sys/sparc64/pci/psychovar.h,v 1.17 2007/11/30 23:02:42 marius Exp $
  */
 
 #ifndef _SPARC64_PCI_PSYCHOVAR_H_
@@ -43,17 +43,17 @@
 	struct mtx			*sc_mtx;
 
 	/* Interrupt Group Number for this device */
-	int				sc_ign;
+	uint32_t			sc_ign;
 
 	bus_addr_t			sc_pcictl;
 
 	phandle_t			sc_node;	/* Firmware node */
-	int				sc_mode;
+	u_int				sc_mode;
 #define	PSYCHO_MODE_SABRE	1
 #define	PSYCHO_MODE_PSYCHO	2
 
 	/* Bus A or B of a psycho pair? */
-	int				sc_half;
+	u_int				sc_half;
 
 	struct iommu_state		*sc_is;
 
@@ -77,6 +77,8 @@
 	struct rman			sc_pci_mem_rman;
 	struct rman			sc_pci_io_rman;
 
+	uint8_t				sc_pci_hpbcfg[16];
+
 	SLIST_ENTRY(psycho_softc)	sc_link;
 };
 

==== //depot/projects/hammer/sys/sys/sysctl.h#36 (text+ko) ====

@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)sysctl.h	8.1 (Berkeley) 6/2/93
- * $FreeBSD: src/sys/sys/sysctl.h,v 1.151 2007/10/16 11:46:44 ru Exp $
+ * $FreeBSD: src/sys/sys/sysctl.h,v 1.152 2007/11/30 21:29:08 peter Exp $
  */
 
 #ifndef _SYS_SYSCTL_H_

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 04:36:08 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B2D8816A41A; Sat,  1 Dec 2007 04:36: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 0C4CA16A417
	for ; Sat,  1 Dec 2007 04:36:08 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id D7C3613C44B
	for ; Sat,  1 Dec 2007 04:36:07 +0000 (UTC)
	(envelope-from peter@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 lB14a7Pg053337
	for ; Sat, 1 Dec 2007 04:36:07 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB14a72X053334
	for perforce@freebsd.org; Sat, 1 Dec 2007 04:36:07 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 04:36:07 GMT
Message-Id: <200712010436.lB14a72X053334@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129863 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, 01 Dec 2007 04:36:09 -0000

http://perforce.freebsd.org/chv.cgi?CH=129863

Change 129863 by peter@peter_overcee on 2007/12/01 04:35:22

	Note. do both ufs1 and ufs2.

Affected files ...

.. //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#34 edit

Differences ...

==== //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#34 (text+ko) ====

@@ -759,7 +759,7 @@
 	if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
 		ssize = len;
 	} else {
-#ifdef INVARIANTS
+#ifdef INVARIANTS_busted
 		if (start_ap[start_lvl-1].in_lbn == idp->in_lbn)
 			panic("ffs_reallocblk: start == end");
 #endif

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 13:28:59 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id E387116A420; Sat,  1 Dec 2007 13:28:58 +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 96A8716A41A
	for ; Sat,  1 Dec 2007 13:28:58 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 91AF213C468
	for ; Sat,  1 Dec 2007 13:28:58 +0000 (UTC)
	(envelope-from rpaulo@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 lB1DSwLu013782
	for ; Sat, 1 Dec 2007 13:28:58 GMT
	(envelope-from rpaulo@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1DSmH0013779
	for perforce@freebsd.org; Sat, 1 Dec 2007 13:28:48 GMT
	(envelope-from rpaulo@FreeBSD.org)
Date: Sat, 1 Dec 2007 13:28:48 GMT
Message-Id: <200712011328.lB1DSmH0013779@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	rpaulo@FreeBSD.org using -f
From: Rui Paulo 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129877 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, 01 Dec 2007 13:28:59 -0000

http://perforce.freebsd.org/chv.cgi?CH=129877

Change 129877 by rpaulo@rpaulo_zoo on 2007/12/01 13:28:47

	IFC

Affected files ...

.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/busdma_machdep.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/db_trace.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/exception.S#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/genassym.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/intr_machdep.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/machdep.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/pmap.c#10 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/prof_machdep.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/trap.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/vm_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/conf/GENERIC#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/include/pci_cfgreg.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/amd64/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/arm/busdma_machdep.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/arm/cpufunc.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/arm/pmap.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/arm/trap.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/arm/vm_machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/arm/conf/HL200#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/arm/include/atomic.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/boot/i386/cdboot/cdboot.s#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/boot/i386/gptboot/gptldr.S#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/boot/i386/libi386/biosdisk.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/boot/i386/pmbr/pmbr.s#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/boot/pc98/cdboot/cdboot.s#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/cam/scsi/scsi_all.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/linprocfs/linprocfs.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/rpc/xdr.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/atomic.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/bitmap.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/cpupart.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/cpuvar.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/cyclic.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/elf.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/kmem.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/mman.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/modctl.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/objfs.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/param.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/pcpu.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/proc.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/stat.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/time.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/types.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/NOTES#19 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/files#24 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/files.amd64#10 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/files.i386#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/files.pc98#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/kmod.mk#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/options#16 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/options.amd64#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/conf/options.i386#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/ipfilter/netinet/fil.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/ipfilter/netinet/ip_auth.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/common/avl/avl.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zil.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zio.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/rpc/xdr.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/rpc/xdr.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/sys/byteorder.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/sys/isa_defs.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/sys/procset.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/sys/sysmacros.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/sys/vmem.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/pf/net/pf.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/pf/net/pf_if.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/contrib/pf/net/pf_ioctl.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/aac/aac_debug.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/acpica/acpi_battery.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_ali.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_amd.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_amd64.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_ati.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_i810.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_if.m#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_intel.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_nvidia.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_sis.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agp_via.c#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agppriv.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agpreg.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/agp/agpvar.h#1 branch
.. //depot/projects/soc2007/rpaulo-macbook/dev/amr/amr.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/amr/amr_cam.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/an/if_an.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/an/if_anreg.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-all.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-chipset.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-disk.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-dma.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-pci.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-pci.h#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/atapi-cd.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/atapi-fd.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ata/atapi-tape.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/bce/if_bce.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/bfe/if_bfe.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/bge/if_bge.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/dc/dcphy.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/dc/if_dc.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/drm/drmP.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/drm/drm_agpsupport.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_80003es2lan.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_80003es2lan.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82540.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82541.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82541.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82542.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82543.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82543.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82571.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82571.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82575.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_82575.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_api.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_api.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_defines.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_hw.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_ich8lan.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_ich8lan.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_mac.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_mac.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_manage.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_manage.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_nvm.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_nvm.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_osdep.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_phy.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_phy.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/e1000_regs.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/if_em.c#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/em/if_em.h#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/esp/esp_sbus.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/hwpmc/hwpmc_x86.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ichsmb/ichsmb_pci.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ichwd/ichwd.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ichwd/ichwd.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/lge/if_lge.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/amphy.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/e1000phy.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/nsphy.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/rlphy.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/tdkphy.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/mii/ukphy_subr.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/msk/if_msk.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/msk/if_mskreg.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/nfe/if_nfe.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/nge/if_nge.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/nve/if_nve.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/pci/pci.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/random/yarrow.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/re/if_re.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/sio/sio_isa.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/sio/sio_puc.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/sk/if_sk.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/sound/pci/hda/hdac.c#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/stge/if_stge.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/ti/if_ti.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/txp/if_txp.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/ehci_pci.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_axe.c#9 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_axereg.h#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_rum.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_zyd.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/uhci_pci.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/usb_quirks.c#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/usb/usbdevs#23 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/vge/if_vge.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/vx/if_vx_pci.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/wpi/if_wpi.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/dev/wpi/if_wpireg.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/msdosfs/msdosfs_vfsops.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/ntfs/ntfs_ihash.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/ntfs/ntfs_vfsops.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/tmpfs/tmpfs.h#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/tmpfs/tmpfs_subr.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/tmpfs/tmpfs_vfsops.c#10 integrate
.. //depot/projects/soc2007/rpaulo-macbook/fs/tmpfs/tmpfs_vnops.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/geom/eli/g_eli_crypto.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/geom/label/g_label_reiserfs.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/bios/apm.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/conf/GENERIC#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/conf/XBOX#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/busdma_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/genassym.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/intr_machdep.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/locore.s#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/machdep.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/mp_machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/pmap.c#9 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/trap.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/i386/vm_machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/include/pmap.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/isa/prof_machdep.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/linux/linux_machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/i386/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/busdma_machdep.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/interrupt.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/machdep.c#9 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/pmap.c#9 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/trap.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/ia64/vm_machdep.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ia64/include/atomic.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/imgact_elf.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/init_main.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_clock.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_exec.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_fork.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_kse.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_kthread.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_ktrace.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_linker.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_lock.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_mutex.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_proc.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_rmlock.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_rwlock.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_switch.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_sx.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_synch.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_sysctl.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_thr.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_thread.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_timeout.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/kern_umtx.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/linker_if.m#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/p1003_1b.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/sched_4bsd.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/sched_ule.c#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_bus.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_pcpu.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_sleepqueue.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_trap.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_turnstile.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/subr_witness.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/sys_generic.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/sys_pipe.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/tty_pty.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/kern/vfs_cache.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/modules/agp/Makefile#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/modules/zfs/Makefile#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net/ieee8023ad_lacp.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net/if_enc.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net/if_lagg.c#12 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net/pfil.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net/pfil.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211.h#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_ht.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_node.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_output.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_proto.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_scan_sta.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/net80211/ieee80211_var.h#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netatalk/aarp.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netatalk/ddp_output.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netgraph/netgraph.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_base.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_cisco.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet/ip_dummynet.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet/libalias/alias_util.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_output.c#9 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_subr.c#16 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_syncache.c#12 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netinet6/ip6_output.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/ipsec.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/ipsec.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/ipsec_input.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/ipsec_output.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/keysock.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/xform.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/netipsec/xform_ipip.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/nfsclient/nfs_vnops.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pc98/pc98/machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp.c#4 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_ali.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_amd.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_amd64.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_ati.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_i810.c#4 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_if.m#2 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_intel.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_nvidia.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_sis.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agp_via.c#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agppriv.h#4 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agpreg.h#3 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/agpvar.h#2 delete
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_rl.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_rlreg.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_sf.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_ste.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_vr.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/if_xl.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/pci/nfsmb.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/include/atomic.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/include/md_var.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/clock.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/intr_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/machdep.c#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/mmu_if.m#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/mmu_oea.c#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/pmap_dispatch.c#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/trap.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/vm_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/conf/DEFAULTS#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/conf/GENERIC#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/pci/ofw_pcibus.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/pci/psycho.c#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/pci/psychovar.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/sparc64/intr_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/sparc64/pmap.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sparc64/sparc64/vm_machdep.c#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/conf/GENERIC#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/include/pcpu.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/include/stdarg.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/sun4v/pmap.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/sun4v/trap.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sun4v/sun4v/vm_machdep.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/_elf_solaris.h#2 delete
.. //depot/projects/soc2007/rpaulo-macbook/sys/callout.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/elf.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/eventhandler.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/kernel.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/linker.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/lock.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/lockmgr.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/malloc.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/mutex.h#6 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/param.h#12 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/pcpu.h#4 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/proc.h#8 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/resource.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/rmlock.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/signal.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/stat.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/sysctl.h#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/time.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/types.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/sys/umtx.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/ufs/ffs/ffs_alloc.c#5 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/pmap.h#3 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vm_contig.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vm_object.c#7 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vm_page.c#11 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vm_pageout.c#10 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vm_pageout.h#2 integrate
.. //depot/projects/soc2007/rpaulo-macbook/vm/vnode_pager.c#6 integrate

Differences ...

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/busdma_machdep.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.83 2007/06/17 04:21:58 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.84 2007/11/27 17:28:11 jhb Exp $");
 
 #include 
 #include 
@@ -580,7 +580,6 @@
 	bus_addr_t curaddr, lastaddr, baddr, bmask;
 	vm_offset_t vaddr;
 	bus_addr_t paddr;
-	int needbounce = 0;
 	int seg;
 
 	if (map == NULL)
@@ -604,10 +603,8 @@
 
 		while (vaddr < vendaddr) {
 			paddr = pmap_kextract(vaddr);
-			if (run_filter(dmat, paddr) != 0) {
-				needbounce = 1;
+			if (run_filter(dmat, paddr) != 0)
 				map->pagesneeded++;
-			}
 			vaddr += PAGE_SIZE;
 		}
 		CTR1(KTR_BUSDMA, "pagesneeded= %d\n", map->pagesneeded);
@@ -679,7 +676,7 @@
 			segs[seg].ds_len = sgsize;
 			first = 0;
 		} else {
-			if (needbounce == 0 && curaddr == lastaddr &&
+			if (curaddr == lastaddr &&
 			    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
 			    (dmat->boundary == 0 ||
 			     (segs[seg].ds_addr & bmask) == (curaddr & bmask)))

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/db_trace.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.80 2006/11/17 20:27:00 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.81 2007/11/15 22:00:56 jhb Exp $");
 
 #include 
 #include 
@@ -317,7 +317,8 @@
 	if (name != NULL) {
 		if (strcmp(name, "calltrap") == 0 ||
 		    strcmp(name, "fork_trampoline") == 0 ||
-		    strcmp(name, "nmi_calltrap") == 0)
+		    strcmp(name, "nmi_calltrap") == 0 ||
+		    strcmp(name, "Xdblfault") == 0)
 			frame_type = TRAP;
 		else if (strncmp(name, "Xatpic_intr", 11) == 0 ||
 		    strncmp(name, "Xapic_isr", 9) == 0 ||

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/exception.S#2 (text+ko) ====

@@ -27,7 +27,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.129 2006/12/23 03:30:50 davidxu Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.130 2007/11/15 22:00:56 jhb Exp $
  */
 
 #include "opt_atpic.h"
@@ -187,10 +187,28 @@
 IDTVEC(dblfault)
 	subq	$TF_ERR,%rsp
 	movq	$T_DOUBLEFLT,TF_TRAPNO(%rsp)
+	movq	$0,TF_ADDR(%rsp)
+	movq	$0,TF_ERR(%rsp)
+	movq	%rdi,TF_RDI(%rsp)
+	movq	%rsi,TF_RSI(%rsp)
+	movq	%rdx,TF_RDX(%rsp)
+	movq	%rcx,TF_RCX(%rsp)
+	movq	%r8,TF_R8(%rsp)
+	movq	%r9,TF_R9(%rsp)
+	movq	%rax,TF_RAX(%rsp)
+	movq	%rbx,TF_RBX(%rsp)
+	movq	%rbp,TF_RBP(%rsp)
+	movq	%r10,TF_R10(%rsp)
+	movq	%r11,TF_R11(%rsp)
+	movq	%r12,TF_R12(%rsp)
+	movq	%r13,TF_R13(%rsp)
+	movq	%r14,TF_R14(%rsp)
+	movq	%r15,TF_R15(%rsp)
 	testb	$SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
 	jz	1f			/* already running with kernel GS.base */
 	swapgs
-1:	call	dblfault_handler
+1:	movq	%rsp, %rdi
+	call	dblfault_handler
 2:	hlt
 	jmp	2b
 

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/genassym.c#4 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.165 2007/09/17 21:55:28 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.166 2007/11/23 03:03:29 jkoshy Exp $");
 
 #include "opt_compat.h"
 #include "opt_kstack_pages.h"
@@ -78,12 +78,15 @@
 ASSYM(TD_LOCK, offsetof(struct thread, td_lock));
 ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
+ASSYM(TD_PFLAGS, offsetof(struct thread, td_pflags));
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
 ASSYM(TD_TID, offsetof(struct thread, td_tid));
 
 ASSYM(TDF_ASTPENDING, TDF_ASTPENDING);
 ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED);
 
+ASSYM(TDP_CALLCHAIN, TDP_CALLCHAIN);
+
 ASSYM(V_TRAP, offsetof(struct vmmeter, v_trap));
 ASSYM(V_SYSCALL, offsetof(struct vmmeter, v_syscall));
 ASSYM(V_INTR, offsetof(struct vmmeter, v_intr));

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/intr_machdep.c#5 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.34 2007/06/04 21:38:44 attilio Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.35 2007/11/21 04:03:50 scottl Exp $
  */
 
 /*
@@ -390,13 +390,13 @@
 		isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
 	else
 		isrc->is_pic->pic_eoi_source(isrc);
-	critical_exit();
 
 	/* Schedule the ithread if needed. */
 	if (thread) {
 		error = intr_event_schedule_thread(ie);
 		KASSERT(error == 0, ("bad stray interrupt"));
 	}
+	critical_exit();
 	td->td_intr_nesting_level--;
 }
 #endif

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/machdep.c#5 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.677 2007/11/05 11:36:09 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.678 2007/11/15 22:00:57 jhb Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -138,7 +138,6 @@
 CTASSERT(offsetof(struct pcpu, pc_curthread) == 0);
 
 extern u_int64_t hammer_time(u_int64_t, u_int64_t);
-extern void dblfault_handler(void);
 
 extern void printcpuinfo(void);	/* XXX header file */
 extern void identify_cpu(void);

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/pmap.c#10 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.593 2007/11/05 18:13:33 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.596 2007/11/30 07:14:42 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -1733,6 +1733,7 @@
 	TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list);
 	m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
 	dump_drop_page(m->phys_addr);
+	vm_page_unwire(m, 0);
 	vm_page_free(m);
 }
 
@@ -1746,6 +1747,7 @@
 	static const struct timeval printinterval = { 60, 0 };
 	static struct timeval lastprint;
 	static vm_pindex_t colour;
+	struct vpgqueues *pq;
 	int bit, field;
 	pv_entry_t pv;
 	struct pv_chunk *pc;
@@ -1760,6 +1762,8 @@
 			printf("Approaching the limit on PV entries, consider "
 			    "increasing either the vm.pmap.shpgperproc or the "
 			    "vm.pmap.pv_entry_max sysctl.\n");
+	pq = NULL;
+retry:
 	pc = TAILQ_FIRST(&pmap->pm_pvchunk);
 	if (pc != NULL) {
 		for (field = 0; field < _NPCM; field++) {
@@ -1782,7 +1786,9 @@
 		}
 	}
 	/* No free items, allocate another chunk */
-	m = vm_page_alloc(NULL, colour, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ);
+	m = vm_page_alloc(NULL, colour, (pq == &vm_page_queues[PQ_ACTIVE] ?
+	    VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL) | VM_ALLOC_NOOBJ |
+	    VM_ALLOC_WIRED);
 	if (m == NULL) {
 		if (try) {
 			pv_entry_count--;
@@ -1794,18 +1800,16 @@
 		 * pages.  After that, if a pv chunk entry is still needed,
 		 * destroy mappings to active pages.
 		 */
-		PV_STAT(pmap_collect_inactive++);
-		pmap_collect(pmap, &vm_page_queues[PQ_INACTIVE]);
-		m = vm_page_alloc(NULL, colour,
-		    VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ);
-		if (m == NULL) {
+		if (pq == NULL) {
+			PV_STAT(pmap_collect_inactive++);
+			pq = &vm_page_queues[PQ_INACTIVE];
+		} else if (pq == &vm_page_queues[PQ_INACTIVE]) {
 			PV_STAT(pmap_collect_active++);
-			pmap_collect(pmap, &vm_page_queues[PQ_ACTIVE]);
-			m = vm_page_alloc(NULL, colour,
-			    VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ);
-			if (m == NULL)
-				panic("get_pv_entry: increase vm.pmap.shpgperproc");
-		}
+			pq = &vm_page_queues[PQ_ACTIVE];
+		} else
+			panic("get_pv_entry: increase vm.pmap.shpgperproc");
+		pmap_collect(pmap, pq);
+		goto retry;
 	}
 	PV_STAT(pc_chunk_count++);
 	PV_STAT(pc_chunk_allocs++);
@@ -2925,6 +2929,35 @@
 }
 
 /*
+ *	pmap_page_wired_mappings:
+ *
+ *	Return the number of managed mappings to the given physical page
+ *	that are wired.
+ */
+int
+pmap_page_wired_mappings(vm_page_t m)
+{
+	pv_entry_t pv;
+	pt_entry_t *pte;
+	pmap_t pmap;
+	int count;
+
+	count = 0;
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return (count);
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		pmap = PV_PMAP(pv);
+		PMAP_LOCK(pmap);
+		pte = pmap_pte(pmap, pv->pv_va);
+		if ((*pte & PG_W) != 0)
+			count++;
+		PMAP_UNLOCK(pmap);
+	}
+	return (count);
+}
+
+/*
  * Remove all pages from specified address space
  * this aids process exit speeds.  Also, this code
  * is special cased for current process only, but
@@ -3019,6 +3052,7 @@
 			TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list);
 			m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
 			dump_drop_page(m->phys_addr);
+			vm_page_unwire(m, 0);
 			vm_page_free(m);
 		}
 	}

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/prof_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.29 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.31 2007/11/29 02:01:21 bde Exp $");
 
 #ifdef GUPROF
 #if 0
@@ -82,10 +82,10 @@
 	# Check that we are profiling.  Do it early for speed.	\n\
 	#							\n\
 	cmpl	$GMON_PROF_OFF,_gmonparam+GM_STATE		\n\
- 	je	.mcount_exit					\n\
- 	#							\n\
- 	# __mcount is the same as [.]mcount except the caller	\n\
- 	# hasn't changed the stack except to call here, so the	\n\
+	je	.mcount_exit					\n\
+	#							\n\
+	# __mcount is the same as [.]mcount except the caller	\n\
+	# hasn't changed the stack except to call here, so the	\n\
 	# caller's raddr is above our raddr.			\n\
 	#							\n\
 	pushq	%rax						\n\
@@ -96,13 +96,11 @@
 	pushq	%r8						\n\
 	pushq	%r9						\n\
 	movq	7*8+8(%rsp),%rdi				\n\
- 	jmp	.got_frompc					\n\
- 								\n\
- 	.p2align 4,0x90						\n\
- 	.globl	.mcount						\n\
+	jmp	.got_frompc					\n\
+								\n\
+	.p2align 4,0x90						\n\
+	.globl	.mcount						\n\
 .mcount:							\n\
- 	.globl	__cyg_profile_func_enter			\n\
-__cyg_profile_func_enter:					\n\
 	cmpl	$GMON_PROF_OFF,_gmonparam+GM_STATE		\n\
 	je	.mcount_exit					\n\
 	#							\n\
@@ -137,7 +135,7 @@
 	popq	%rdx						\n\
 	popq	%rax						\n\
 .mcount_exit:							\n\
-	ret							\n\
+	ret	$0						\n\
 ");
 #else /* !__GNUCLIKE_ASM */
 #error "this file needs to be ported to your compiler"
@@ -167,8 +165,6 @@
 	.p2align 4,0x90						\n\
 	.globl	.mexitcount					\n\
 .mexitcount:							\n\
- 	.globl	__cyg_profile_func_exit				\n\
-__cyg_profile_func_exit:					\n\
 	cmpl	$GMON_PROF_HIRES,_gmonparam+GM_STATE		\n\
 	jne	.mexitcount_exit				\n\
 	pushq	%rax						\n\
@@ -191,7 +187,7 @@
 	popq	%rdx						\n\
 	popq	%rax						\n\
 .mexitcount_exit:						\n\
-	ret							\n\
+	ret	$0						\n\
 ");
 #endif /* __GNUCLIKE_ASM */
 

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/trap.c#6 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.319 2007/07/26 15:32:54 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.322 2007/11/15 22:00:57 jhb Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -96,10 +96,10 @@
 
 extern void trap(struct trapframe *frame);
 extern void syscall(struct trapframe *frame);
+void dblfault_handler(struct trapframe *frame);
 
 static int trap_pfault(struct trapframe *, int);
 static void trap_fatal(struct trapframe *, vm_offset_t);
-void dblfault_handler(void);
 
 #define MAX_TRAP_MSG		30
 static char *trap_msg[] = {
@@ -208,7 +208,7 @@
 		if (ISPL(frame->tf_cs) == SEL_UPL)
 			printf(
 			    "pid %ld (%s): trap %d with interrupts disabled\n",
-			    (long)curproc->p_pid, curproc->p_comm, type);
+			    (long)curproc->p_pid, curthread->td_name, type);
 		else if (type != T_NMI && type != T_BPTFLT &&
 		    type != T_TRCTRAP) {
 			/*
@@ -681,8 +681,8 @@
 	printf("current process		= ");
 	if (curproc) {
 		printf("%lu (%s)\n",
-		    (u_long)curproc->p_pid, curproc->p_comm ?
-		    curproc->p_comm : "");
+		    (u_long)curproc->p_pid, curthread->td_name ?
+		    curthread->td_name : "");
 	} else {
 		printf("Idle\n");
 	}
@@ -706,9 +706,12 @@
  * for example).
  */
 void
-dblfault_handler()
+dblfault_handler(struct trapframe *frame)
 {
 	printf("\nFatal double fault\n");
+	printf("rip = 0x%lx\n", frame->tf_rip);
+	printf("rsp = 0x%lx\n", frame->tf_rsp);
+	printf("rbp = 0x%lx\n", frame->tf_rbp);
 #ifdef SMP
 	/* two separate prints in case of a trap on an unmapped page */
 	printf("cpuid = %d; ", PCPU_GET(cpuid));
@@ -806,7 +809,7 @@
 #endif
 
 	CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td,
-	    td->td_proc->p_pid, td->td_proc->p_comm, code);
+	    td->td_proc->p_pid, td->td_name, code);
 
 	td->td_syscalls++;
 
@@ -888,7 +891,7 @@
 	userret(td, frame);
 
 	CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td,
-	    td->td_proc->p_pid, td->td_proc->p_comm, code);
+	    td->td_proc->p_pid, td->td_name, code);
 
 #ifdef KTRACE
 	if (KTRPOINT(td, KTR_SYSRET))

==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/vm_machdep.c#4 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.255 2007/06/04 23:57:29 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.256 2007/11/14 20:21:52 marcel Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -240,7 +240,7 @@
 }
 
 void
-cpu_thread_setup(struct thread *td)
+cpu_thread_alloc(struct thread *td)
 {
 
 	td->td_pcb = (struct pcb *)(td->td_kstack +
@@ -248,6 +248,11 @@
 	td->td_frame = (struct trapframe *)td->td_pcb - 1;
 }
 
+void
+cpu_thread_free(struct thread *td)
+{
+}
+
 /*
  * Initialize machine state (pcb and trap frame) for a new thread about to
  * upcall. Put enough state in the new thread's PCB to get it to go back 

==== //depot/projects/soc2007/rpaulo-macbook/amd64/conf/GENERIC#7 (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/amd64/conf/GENERIC,v 1.487 2007/10/26 02:35:42 imp Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.488 2007/11/28 05:50:44 attilio Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -59,7 +59,6 @@
 options 	SYSVSEM			# SYSV-style semaphores
 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 	STOP_NMI		# Stop CPUS using NMI instead of IPI
 options 	AUDIT			# Security event auditing
 

==== //depot/projects/soc2007/rpaulo-macbook/amd64/include/pci_cfgreg.h#2 (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/amd64/include/pci_cfgreg.h,v 1.13 2005/01/05 20:17:20 imp Exp $
+ * $FreeBSD: src/sys/amd64/include/pci_cfgreg.h,v 1.14 2007/11/28 22:20:07 jhb Exp $
  *
  */
 
@@ -37,11 +37,6 @@
 #define CONF1_ENABLE_MSK1  0x80000001ul
 #define CONF1_ENABLE_RES1  0x80000000ul
 
-#define CONF2_ENABLE_PORT  0x0cf8
-#define CONF2_FORWARD_PORT 0x0cfa
-#define CONF2_ENABLE_CHK   0x0e
-#define CONF2_ENABLE_RES   0x0e
-
 int		pci_cfgregopen(void);
 u_int32_t	pci_cfgregread(int bus, int slot, int func, int reg, int bytes);
 void		pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes);

==== //depot/projects/soc2007/rpaulo-macbook/amd64/pci/pci_cfgreg.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.109 2005/10/25 04:53:29 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.110 2007/11/28 22:20:08 jhb Exp $");
 
 #include 
 #include 
@@ -38,12 +38,8 @@
 #include 
 #include 
 
-static int cfgmech;
-static int devmax;
-
 static int	pcireg_cfgread(int bus, int slot, int func, int reg, int bytes);
 static void	pcireg_cfgwrite(int bus, int slot, int func, int reg, int data, int bytes);
-static int	pcireg_cfgopen(void);
 
 static struct mtx pcicfg_mtx;
 
@@ -57,8 +53,6 @@
 
 	if (opened)
 		return (1);
-	if (pcireg_cfgopen() == 0)
-		return (0);
 	mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
 	opened = 1;
 	return (1);
@@ -109,26 +103,12 @@
 {
 	int dataport = 0;
 
-	if (bus <= PCI_BUSMAX
-	    && slot < devmax
-	    && func <= PCI_FUNCMAX
-	    && reg <= PCI_REGMAX
-	    && bytes != 3
-	    && (unsigned) bytes <= 4
-	    && (reg & (bytes - 1)) == 0) {
-		switch (cfgmech) {
-		case 1:
-			outl(CONF1_ADDR_PORT, (1 << 31)
-			    | (bus << 16) | (slot << 11) 
-			    | (func << 8) | (reg & ~0x03));
-			dataport = CONF1_DATA_PORT + (reg & 0x03);
-			break;
-		case 2:
-			outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1));
-			outb(CONF2_FORWARD_PORT, bus);
-			dataport = 0xc000 | (slot << 8) | reg;
-			break;
-		}
+	if (bus <= PCI_BUSMAX && slot < 32 && func <= PCI_FUNCMAX &&
+	    reg <= PCI_REGMAX && bytes != 3 && (unsigned) bytes <= 4 &&
+	    (reg & (bytes - 1)) == 0) {
+		outl(CONF1_ADDR_PORT, (1 << 31) | (bus << 16) | (slot << 11) 
+		    | (func << 8) | (reg & ~0x03));
+		dataport = CONF1_DATA_PORT + (reg & 0x03);
 	}
 	return (dataport);
 }
@@ -137,19 +117,11 @@
 static void
 pci_cfgdisable(void)
 {
-	switch (cfgmech) {
-	case 1:
-		/*
-		 * Do nothing for the config mechanism 1 case.
-		 * Writing a 0 to the address port can apparently
-		 * confuse some bridges and cause spurious
-		 * access failures.
-		 */
-		break;
-	case 2:
-		outb(CONF2_ENABLE_PORT, 0);
-		break;
-	}
+
+	/*
+	 * Do nothing.  Writing a 0 to the address port can apparently
+	 * confuse some bridges and cause spurious access failures.
+	 */
 }
 
 static int
@@ -201,131 +173,3 @@
 	}
 	mtx_unlock_spin(&pcicfg_mtx);
 }
-
-/* check whether the configuration mechanism has been correctly identified */
-static int
-pci_cfgcheck(int maxdev)
-{
-	uint32_t id, class;
-	uint8_t header;
-	uint8_t device;
-	int port;
-
-	if (bootverbose) 
-		printf("pci_cfgcheck:\tdevice ");
-
-	for (device = 0; device < maxdev; device++) {
-		if (bootverbose) 

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 13:35:07 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D76D516A421; Sat,  1 Dec 2007 13:35: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 92A1B16A41B
	for ; Sat,  1 Dec 2007 13:35:06 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 8E22C13C45A
	for ; Sat,  1 Dec 2007 13:35:06 +0000 (UTC)
	(envelope-from rpaulo@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 lB1DZ6QL014076
	for ; Sat, 1 Dec 2007 13:35:06 GMT
	(envelope-from rpaulo@FreeBSD.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1DZ42J014073
	for perforce@freebsd.org; Sat, 1 Dec 2007 13:35:05 GMT
	(envelope-from rpaulo@FreeBSD.org)
Date: Sat, 1 Dec 2007 13:35:05 GMT
Message-Id: <200712011335.lB1DZ42J014073@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	rpaulo@FreeBSD.org using -f
From: Rui Paulo 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129878 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, 01 Dec 2007 13:35:07 -0000

http://perforce.freebsd.org/chv.cgi?CH=129878

Change 129878 by rpaulo@rpaulo_zoo on 2007/12/01 13:34:51

	IFC

Affected files ...

.. //depot/projects/tcpecn/amd64/amd64/busdma_machdep.c#2 integrate
.. //depot/projects/tcpecn/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/tcpecn/amd64/amd64/prof_machdep.c#2 integrate
.. //depot/projects/tcpecn/amd64/conf/GENERIC#2 integrate
.. //depot/projects/tcpecn/amd64/include/pci_cfgreg.h#2 integrate
.. //depot/projects/tcpecn/amd64/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/tcpecn/arm/arm/busdma_machdep.c#2 integrate
.. //depot/projects/tcpecn/arm/arm/cpufunc.c#2 integrate
.. //depot/projects/tcpecn/arm/include/atomic.h#2 integrate
.. //depot/projects/tcpecn/boot/i386/gptboot/gptldr.S#2 integrate
.. //depot/projects/tcpecn/boot/i386/pmbr/pmbr.s#2 integrate
.. //depot/projects/tcpecn/compat/linprocfs/linprocfs.c#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/rpc/xdr.h#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/sys/atomic.h#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/sys/bitmap.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/cpupart.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/cpuvar.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/cyclic.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/elf.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/kmem.h#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/sys/mman.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/modctl.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/objfs.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/param.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/pcpu.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/proc.h#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/sys/stat.h#1 branch
.. //depot/projects/tcpecn/compat/opensolaris/sys/time.h#2 integrate
.. //depot/projects/tcpecn/compat/opensolaris/sys/types.h#2 integrate
.. //depot/projects/tcpecn/conf/NOTES#2 integrate
.. //depot/projects/tcpecn/conf/options#2 integrate
.. //depot/projects/tcpecn/conf/options.amd64#2 integrate
.. //depot/projects/tcpecn/conf/options.i386#2 integrate
.. //depot/projects/tcpecn/contrib/ipfilter/netinet/fil.c#2 integrate
.. //depot/projects/tcpecn/contrib/ipfilter/netinet/ip_auth.c#2 integrate
.. //depot/projects/tcpecn/contrib/ipfilter/netinet/ip_fil_freebsd.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/common/avl/avl.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/rpc/xdr.c#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/rpc/xdr.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/sys/byteorder.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/sys/isa_defs.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/sys/procset.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/sys/sysmacros.h#2 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/sys/vmem.h#2 integrate
.. //depot/projects/tcpecn/dev/aac/aac_debug.c#2 integrate
.. //depot/projects/tcpecn/dev/agp/agp_i810.c#2 integrate
.. //depot/projects/tcpecn/dev/amr/amr.c#2 integrate
.. //depot/projects/tcpecn/dev/amr/amr_cam.c#2 integrate
.. //depot/projects/tcpecn/dev/an/if_an.c#2 integrate
.. //depot/projects/tcpecn/dev/ata/ata-chipset.c#2 integrate
.. //depot/projects/tcpecn/dev/em/if_em.c#2 integrate
.. //depot/projects/tcpecn/dev/em/if_em.h#2 integrate
.. //depot/projects/tcpecn/dev/hwpmc/hwpmc_x86.c#2 integrate
.. //depot/projects/tcpecn/dev/ichsmb/ichsmb_pci.c#2 integrate
.. //depot/projects/tcpecn/dev/random/yarrow.c#2 integrate
.. //depot/projects/tcpecn/dev/sio/sio_isa.c#2 integrate
.. //depot/projects/tcpecn/dev/sio/sio_puc.c#2 integrate
.. //depot/projects/tcpecn/dev/sound/pci/hda/hdac.c#2 integrate
.. //depot/projects/tcpecn/dev/usb/if_zyd.c#2 integrate
.. //depot/projects/tcpecn/dev/usb/usbdevs#2 integrate
.. //depot/projects/tcpecn/dev/wpi/if_wpi.c#2 integrate
.. //depot/projects/tcpecn/dev/wpi/if_wpireg.h#2 integrate
.. //depot/projects/tcpecn/i386/conf/GENERIC#2 integrate
.. //depot/projects/tcpecn/i386/conf/XBOX#2 integrate
.. //depot/projects/tcpecn/i386/i386/busdma_machdep.c#2 integrate
.. //depot/projects/tcpecn/i386/i386/pmap.c#2 integrate
.. //depot/projects/tcpecn/i386/isa/prof_machdep.c#2 integrate
.. //depot/projects/tcpecn/i386/linux/linux_machdep.c#2 integrate
.. //depot/projects/tcpecn/i386/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/tcpecn/ia64/ia64/busdma_machdep.c#2 integrate
.. //depot/projects/tcpecn/ia64/include/atomic.h#2 integrate
.. //depot/projects/tcpecn/kern/kern_clock.c#2 integrate
.. //depot/projects/tcpecn/kern/kern_mutex.c#2 integrate
.. //depot/projects/tcpecn/kern/kern_rwlock.c#2 integrate
.. //depot/projects/tcpecn/kern/kern_sysctl.c#2 integrate
.. //depot/projects/tcpecn/kern/subr_bus.c#2 integrate
.. //depot/projects/tcpecn/modules/zfs/Makefile#2 integrate
.. //depot/projects/tcpecn/net/if_enc.c#2 integrate
.. //depot/projects/tcpecn/net/if_lagg.c#2 integrate
.. //depot/projects/tcpecn/net/pfil.c#2 integrate
.. //depot/projects/tcpecn/net/pfil.h#2 integrate
.. //depot/projects/tcpecn/net80211/ieee80211_scan_sta.c#2 integrate
.. //depot/projects/tcpecn/netgraph/ng_cisco.c#2 integrate
.. //depot/projects/tcpecn/netinet/tcp_output.c#3 integrate
.. //depot/projects/tcpecn/netinet/tcp_subr.c#2 integrate
.. //depot/projects/tcpecn/netinet/tcp_syncache.c#3 integrate
.. //depot/projects/tcpecn/netipsec/ipsec.c#2 integrate
.. //depot/projects/tcpecn/netipsec/ipsec.h#2 integrate
.. //depot/projects/tcpecn/netipsec/ipsec_input.c#2 integrate
.. //depot/projects/tcpecn/netipsec/ipsec_output.c#2 integrate
.. //depot/projects/tcpecn/netipsec/xform.h#2 integrate
.. //depot/projects/tcpecn/netipsec/xform_ipip.c#2 integrate
.. //depot/projects/tcpecn/pci/if_rl.c#2 integrate
.. //depot/projects/tcpecn/pci/if_rlreg.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/atomic.h#2 integrate
.. //depot/projects/tcpecn/sparc64/conf/GENERIC#2 integrate
.. //depot/projects/tcpecn/sparc64/pci/ofw_pcibus.c#2 integrate
.. //depot/projects/tcpecn/sparc64/pci/psycho.c#2 integrate
.. //depot/projects/tcpecn/sparc64/pci/psychovar.h#2 integrate
.. //depot/projects/tcpecn/sun4v/conf/GENERIC#2 integrate
.. //depot/projects/tcpecn/sun4v/include/pcpu.h#2 integrate
.. //depot/projects/tcpecn/sys/_elf_solaris.h#2 delete
.. //depot/projects/tcpecn/sys/elf.h#2 integrate
.. //depot/projects/tcpecn/sys/kernel.h#2 integrate
.. //depot/projects/tcpecn/sys/param.h#2 integrate
.. //depot/projects/tcpecn/sys/pcpu.h#2 integrate
.. //depot/projects/tcpecn/sys/resource.h#2 integrate
.. //depot/projects/tcpecn/sys/signal.h#2 integrate
.. //depot/projects/tcpecn/sys/stat.h#2 integrate
.. //depot/projects/tcpecn/sys/sysctl.h#2 integrate
.. //depot/projects/tcpecn/sys/time.h#2 integrate
.. //depot/projects/tcpecn/sys/types.h#2 integrate
.. //depot/projects/tcpecn/ufs/ffs/ffs_alloc.c#2 integrate
.. //depot/projects/tcpecn/vm/vm_contig.c#2 integrate
.. //depot/projects/tcpecn/vm/vm_pageout.c#2 integrate
.. //depot/projects/tcpecn/vm/vm_pageout.h#2 integrate

Differences ...

==== //depot/projects/tcpecn/amd64/amd64/busdma_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.83 2007/06/17 04:21:58 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.84 2007/11/27 17:28:11 jhb Exp $");
 
 #include 
 #include 
@@ -580,7 +580,6 @@
 	bus_addr_t curaddr, lastaddr, baddr, bmask;
 	vm_offset_t vaddr;
 	bus_addr_t paddr;
-	int needbounce = 0;
 	int seg;
 
 	if (map == NULL)
@@ -604,10 +603,8 @@
 
 		while (vaddr < vendaddr) {
 			paddr = pmap_kextract(vaddr);
-			if (run_filter(dmat, paddr) != 0) {
-				needbounce = 1;
+			if (run_filter(dmat, paddr) != 0)
 				map->pagesneeded++;
-			}
 			vaddr += PAGE_SIZE;
 		}
 		CTR1(KTR_BUSDMA, "pagesneeded= %d\n", map->pagesneeded);
@@ -679,7 +676,7 @@
 			segs[seg].ds_len = sgsize;
 			first = 0;
 		} else {
-			if (needbounce == 0 && curaddr == lastaddr &&
+			if (curaddr == lastaddr &&
 			    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
 			    (dmat->boundary == 0 ||
 			     (segs[seg].ds_addr & bmask) == (curaddr & bmask)))

==== //depot/projects/tcpecn/amd64/amd64/pmap.c#2 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.594 2007/11/17 22:52:28 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.596 2007/11/30 07:14:42 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -1733,6 +1733,7 @@
 	TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list);
 	m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
 	dump_drop_page(m->phys_addr);
+	vm_page_unwire(m, 0);
 	vm_page_free(m);
 }
 
@@ -1746,6 +1747,7 @@
 	static const struct timeval printinterval = { 60, 0 };
 	static struct timeval lastprint;
 	static vm_pindex_t colour;
+	struct vpgqueues *pq;
 	int bit, field;
 	pv_entry_t pv;
 	struct pv_chunk *pc;
@@ -1760,6 +1762,8 @@
 			printf("Approaching the limit on PV entries, consider "
 			    "increasing either the vm.pmap.shpgperproc or the "
 			    "vm.pmap.pv_entry_max sysctl.\n");
+	pq = NULL;
+retry:
 	pc = TAILQ_FIRST(&pmap->pm_pvchunk);
 	if (pc != NULL) {
 		for (field = 0; field < _NPCM; field++) {
@@ -1782,7 +1786,9 @@
 		}
 	}
 	/* No free items, allocate another chunk */
-	m = vm_page_alloc(NULL, colour, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ);
+	m = vm_page_alloc(NULL, colour, (pq == &vm_page_queues[PQ_ACTIVE] ?
+	    VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL) | VM_ALLOC_NOOBJ |
+	    VM_ALLOC_WIRED);
 	if (m == NULL) {
 		if (try) {
 			pv_entry_count--;
@@ -1794,18 +1800,16 @@
 		 * pages.  After that, if a pv chunk entry is still needed,
 		 * destroy mappings to active pages.
 		 */
-		PV_STAT(pmap_collect_inactive++);
-		pmap_collect(pmap, &vm_page_queues[PQ_INACTIVE]);
-		m = vm_page_alloc(NULL, colour,
-		    VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ);
-		if (m == NULL) {
+		if (pq == NULL) {
+			PV_STAT(pmap_collect_inactive++);
+			pq = &vm_page_queues[PQ_INACTIVE];
+		} else if (pq == &vm_page_queues[PQ_INACTIVE]) {
 			PV_STAT(pmap_collect_active++);
-			pmap_collect(pmap, &vm_page_queues[PQ_ACTIVE]);
-			m = vm_page_alloc(NULL, colour,
-			    VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ);
-			if (m == NULL)
-				panic("get_pv_entry: increase vm.pmap.shpgperproc");
-		}
+			pq = &vm_page_queues[PQ_ACTIVE];
+		} else
+			panic("get_pv_entry: increase vm.pmap.shpgperproc");
+		pmap_collect(pmap, pq);
+		goto retry;
 	}
 	PV_STAT(pc_chunk_count++);
 	PV_STAT(pc_chunk_allocs++);
@@ -3048,6 +3052,7 @@
 			TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list);
 			m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
 			dump_drop_page(m->phys_addr);
+			vm_page_unwire(m, 0);
 			vm_page_free(m);
 		}
 	}

==== //depot/projects/tcpecn/amd64/amd64/prof_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.29 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.31 2007/11/29 02:01:21 bde Exp $");
 
 #ifdef GUPROF
 #if 0
@@ -82,10 +82,10 @@
 	# Check that we are profiling.  Do it early for speed.	\n\
 	#							\n\
 	cmpl	$GMON_PROF_OFF,_gmonparam+GM_STATE		\n\
- 	je	.mcount_exit					\n\
- 	#							\n\
- 	# __mcount is the same as [.]mcount except the caller	\n\
- 	# hasn't changed the stack except to call here, so the	\n\
+	je	.mcount_exit					\n\
+	#							\n\
+	# __mcount is the same as [.]mcount except the caller	\n\
+	# hasn't changed the stack except to call here, so the	\n\
 	# caller's raddr is above our raddr.			\n\
 	#							\n\
 	pushq	%rax						\n\
@@ -96,13 +96,11 @@
 	pushq	%r8						\n\
 	pushq	%r9						\n\
 	movq	7*8+8(%rsp),%rdi				\n\
- 	jmp	.got_frompc					\n\
- 								\n\
- 	.p2align 4,0x90						\n\
- 	.globl	.mcount						\n\
+	jmp	.got_frompc					\n\
+								\n\
+	.p2align 4,0x90						\n\
+	.globl	.mcount						\n\
 .mcount:							\n\
- 	.globl	__cyg_profile_func_enter			\n\
-__cyg_profile_func_enter:					\n\
 	cmpl	$GMON_PROF_OFF,_gmonparam+GM_STATE		\n\
 	je	.mcount_exit					\n\
 	#							\n\
@@ -137,7 +135,7 @@
 	popq	%rdx						\n\
 	popq	%rax						\n\
 .mcount_exit:							\n\
-	ret							\n\
+	ret	$0						\n\
 ");
 #else /* !__GNUCLIKE_ASM */
 #error "this file needs to be ported to your compiler"
@@ -167,8 +165,6 @@
 	.p2align 4,0x90						\n\
 	.globl	.mexitcount					\n\
 .mexitcount:							\n\
- 	.globl	__cyg_profile_func_exit				\n\
-__cyg_profile_func_exit:					\n\
 	cmpl	$GMON_PROF_HIRES,_gmonparam+GM_STATE		\n\
 	jne	.mexitcount_exit				\n\
 	pushq	%rax						\n\
@@ -191,7 +187,7 @@
 	popq	%rdx						\n\
 	popq	%rax						\n\
 .mexitcount_exit:						\n\
-	ret							\n\
+	ret	$0						\n\
 ");
 #endif /* __GNUCLIKE_ASM */
 

==== //depot/projects/tcpecn/amd64/conf/GENERIC#2 (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/amd64/conf/GENERIC,v 1.487 2007/10/26 02:35:42 imp Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.488 2007/11/28 05:50:44 attilio Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -59,7 +59,6 @@
 options 	SYSVSEM			# SYSV-style semaphores
 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 	STOP_NMI		# Stop CPUS using NMI instead of IPI
 options 	AUDIT			# Security event auditing
 

==== //depot/projects/tcpecn/amd64/include/pci_cfgreg.h#2 (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/amd64/include/pci_cfgreg.h,v 1.13 2005/01/05 20:17:20 imp Exp $
+ * $FreeBSD: src/sys/amd64/include/pci_cfgreg.h,v 1.14 2007/11/28 22:20:07 jhb Exp $
  *
  */
 
@@ -37,11 +37,6 @@
 #define CONF1_ENABLE_MSK1  0x80000001ul
 #define CONF1_ENABLE_RES1  0x80000000ul
 
-#define CONF2_ENABLE_PORT  0x0cf8
-#define CONF2_FORWARD_PORT 0x0cfa
-#define CONF2_ENABLE_CHK   0x0e
-#define CONF2_ENABLE_RES   0x0e
-
 int		pci_cfgregopen(void);
 u_int32_t	pci_cfgregread(int bus, int slot, int func, int reg, int bytes);
 void		pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes);

==== //depot/projects/tcpecn/amd64/pci/pci_cfgreg.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.109 2005/10/25 04:53:29 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.110 2007/11/28 22:20:08 jhb Exp $");
 
 #include 
 #include 
@@ -38,12 +38,8 @@
 #include 
 #include 
 
-static int cfgmech;
-static int devmax;
-
 static int	pcireg_cfgread(int bus, int slot, int func, int reg, int bytes);
 static void	pcireg_cfgwrite(int bus, int slot, int func, int reg, int data, int bytes);
-static int	pcireg_cfgopen(void);
 
 static struct mtx pcicfg_mtx;
 
@@ -57,8 +53,6 @@
 
 	if (opened)
 		return (1);
-	if (pcireg_cfgopen() == 0)
-		return (0);
 	mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
 	opened = 1;
 	return (1);
@@ -109,26 +103,12 @@
 {
 	int dataport = 0;
 
-	if (bus <= PCI_BUSMAX
-	    && slot < devmax
-	    && func <= PCI_FUNCMAX
-	    && reg <= PCI_REGMAX
-	    && bytes != 3
-	    && (unsigned) bytes <= 4
-	    && (reg & (bytes - 1)) == 0) {
-		switch (cfgmech) {
-		case 1:
-			outl(CONF1_ADDR_PORT, (1 << 31)
-			    | (bus << 16) | (slot << 11) 
-			    | (func << 8) | (reg & ~0x03));
-			dataport = CONF1_DATA_PORT + (reg & 0x03);
-			break;
-		case 2:
-			outb(CONF2_ENABLE_PORT, 0xf0 | (func << 1));
-			outb(CONF2_FORWARD_PORT, bus);
-			dataport = 0xc000 | (slot << 8) | reg;
-			break;
-		}
+	if (bus <= PCI_BUSMAX && slot < 32 && func <= PCI_FUNCMAX &&
+	    reg <= PCI_REGMAX && bytes != 3 && (unsigned) bytes <= 4 &&
+	    (reg & (bytes - 1)) == 0) {
+		outl(CONF1_ADDR_PORT, (1 << 31) | (bus << 16) | (slot << 11) 
+		    | (func << 8) | (reg & ~0x03));
+		dataport = CONF1_DATA_PORT + (reg & 0x03);
 	}
 	return (dataport);
 }
@@ -137,19 +117,11 @@
 static void
 pci_cfgdisable(void)
 {
-	switch (cfgmech) {
-	case 1:
-		/*
-		 * Do nothing for the config mechanism 1 case.
-		 * Writing a 0 to the address port can apparently
-		 * confuse some bridges and cause spurious
-		 * access failures.
-		 */
-		break;
-	case 2:
-		outb(CONF2_ENABLE_PORT, 0);
-		break;
-	}
+
+	/*
+	 * Do nothing.  Writing a 0 to the address port can apparently
+	 * confuse some bridges and cause spurious access failures.
+	 */
 }
 
 static int
@@ -201,131 +173,3 @@
 	}
 	mtx_unlock_spin(&pcicfg_mtx);
 }
-
-/* check whether the configuration mechanism has been correctly identified */
-static int
-pci_cfgcheck(int maxdev)
-{
-	uint32_t id, class;
-	uint8_t header;
-	uint8_t device;
-	int port;
-
-	if (bootverbose) 
-		printf("pci_cfgcheck:\tdevice ");
-
-	for (device = 0; device < maxdev; device++) {
-		if (bootverbose) 
-			printf("%d ", device);
-
-		port = pci_cfgenable(0, device, 0, 0, 4);
-		id = inl(port);
-		if (id == 0 || id == 0xffffffff)
-			continue;
-
-		port = pci_cfgenable(0, device, 0, 8, 4);
-		class = inl(port) >> 8;
-		if (bootverbose)
-			printf("[class=%06x] ", class);
-		if (class == 0 || (class & 0xf870ff) != 0)
-			continue;
-
-		port = pci_cfgenable(0, device, 0, 14, 1);
-		header = inb(port);
-		if (bootverbose)
-			printf("[hdr=%02x] ", header);
-		if ((header & 0x7e) != 0)
-			continue;
-
-		if (bootverbose)
-			printf("is there (id=%08x)\n", id);
-
-		pci_cfgdisable();
-		return (1);
-	}
-	if (bootverbose) 
-		printf("-- nothing found\n");
-
-	pci_cfgdisable();
-	return (0);
-}
-
-static int
-pcireg_cfgopen(void)
-{
-	uint32_t mode1res, oldval1;
-	uint8_t mode2res, oldval2;
-
-	oldval1 = inl(CONF1_ADDR_PORT);
-
-	if (bootverbose) {
-		printf("pci_open(1):\tmode 1 addr port (0x0cf8) is 0x%08x\n",
-		    oldval1);
-	}
-
-	if ((oldval1 & CONF1_ENABLE_MSK) == 0) {
-
-		cfgmech = 1;
-		devmax = 32;
-
-		outl(CONF1_ADDR_PORT, CONF1_ENABLE_CHK);
-		DELAY(1);
-		mode1res = inl(CONF1_ADDR_PORT);
-		outl(CONF1_ADDR_PORT, oldval1);
-
-		if (bootverbose)
-			printf("pci_open(1a):\tmode1res=0x%08x (0x%08lx)\n", 
-			    mode1res, CONF1_ENABLE_CHK);
-
-		if (mode1res) {
-			if (pci_cfgcheck(32)) 
-				return (cfgmech);
-		}
-
-		outl(CONF1_ADDR_PORT, CONF1_ENABLE_CHK1);
-		mode1res = inl(CONF1_ADDR_PORT);
-		outl(CONF1_ADDR_PORT, oldval1);
-
-		if (bootverbose)
-			printf("pci_open(1b):\tmode1res=0x%08x (0x%08lx)\n", 
-			    mode1res, CONF1_ENABLE_CHK1);
-
-		if ((mode1res & CONF1_ENABLE_MSK1) == CONF1_ENABLE_RES1) {
-			if (pci_cfgcheck(32)) 
-				return (cfgmech);
-		}
-	}
-
-	oldval2 = inb(CONF2_ENABLE_PORT);
-
-	if (bootverbose) {
-		printf("pci_open(2):\tmode 2 enable port (0x0cf8) is 0x%02x\n",
-		    oldval2);
-	}
-
-	if ((oldval2 & 0xf0) == 0) {
-
-		cfgmech = 2;
-		devmax = 16;
-
-		outb(CONF2_ENABLE_PORT, CONF2_ENABLE_CHK);
-		mode2res = inb(CONF2_ENABLE_PORT);
-		outb(CONF2_ENABLE_PORT, oldval2);
-
-		if (bootverbose)
-			printf("pci_open(2a):\tmode2res=0x%02x (0x%02x)\n", 
-			    mode2res, CONF2_ENABLE_CHK);
-
-		if (mode2res == CONF2_ENABLE_RES) {
-			if (bootverbose)
-				printf("pci_open(2a):\tnow trying mechanism 2\n");
-
-			if (pci_cfgcheck(16)) 
-				return (cfgmech);
-		}
-	}
-
-	cfgmech = 0;
-	devmax = 0;
-	return (cfgmech);
-}

==== //depot/projects/tcpecn/arm/arm/busdma_machdep.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.35 2007/08/18 16:47:28 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.37 2007/11/28 22:21:17 cognet Exp $");
 
 /*
  * ARM bus dma support routines
@@ -664,12 +664,11 @@
 
 static int
 _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
-			bus_size_t buflen, int flags, int *nb)
+			bus_size_t buflen, int flags)
 {
 	vm_offset_t vaddr;
 	vm_offset_t vendaddr;
 	bus_addr_t paddr;
-	int needbounce = *nb;
 
 	if ((map->pagesneeded == 0)) {
 		CTR4(KTR_BUSDMA, "lowaddr= %d Maxmem= %d, boundary= %d, "
@@ -687,10 +686,8 @@
 		while (vaddr < vendaddr) {
 			paddr = pmap_kextract(vaddr);
 			if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
-			    run_filter(dmat, paddr) != 0) {
-				needbounce = 1;
+			    run_filter(dmat, paddr) != 0)
 				map->pagesneeded++;
-			}
 			vaddr += PAGE_SIZE;
 		}
 		CTR1(KTR_BUSDMA, "pagesneeded= %d\n", map->pagesneeded);
@@ -716,7 +713,6 @@
 		mtx_unlock(&bounce_lock);
 	}
 
-	*nb = needbounce;
 	return (0);
 }
 
@@ -739,14 +735,12 @@
 	pd_entry_t *pde;
 	pt_entry_t pte;
 	pt_entry_t *ptep;
-	int needbounce = 0;
 
 	lastaddr = *lastaddrp;
 	bmask = ~(dmat->boundary - 1);
 
 	if ((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) {
-		error = _bus_dmamap_count_pages(dmat, map, buf, buflen, flags,
-		    &needbounce);
+		error = _bus_dmamap_count_pages(dmat, map, buf, buflen, flags);
 		if (error)
 			return (error);
 	}
@@ -840,7 +834,7 @@
 		 * Insert chunk into a segment, coalescing with
 		 * the previous segment if possible.
 		 */
-		if (needbounce == 0 && seg >= 0 && curaddr == lastaddr &&
+		if (seg >= 0 && curaddr == lastaddr &&
 		    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
 		    (dmat->boundary == 0 ||
 		     (segs[seg].ds_addr & bmask) == 
@@ -1096,7 +1090,7 @@
 		cpu_l2cache_wb_range((vm_offset_t)buf, len);
 	}
 	if (op & BUS_DMASYNC_PREREAD) {
-		if ((op & BUS_DMASYNC_PREWRITE) ||
+		if (!(op & BUS_DMASYNC_PREWRITE) &&
 		    ((((vm_offset_t)(buf) | len) & arm_dcache_align_mask) == 0)) {
 			cpu_dcache_inv_range((vm_offset_t)buf, len);
 			cpu_l2cache_inv_range((vm_offset_t)buf, len);

==== //depot/projects/tcpecn/arm/arm/cpufunc.c#2 (text+ko) ====

@@ -45,7 +45,7 @@
  * Created      : 30/01/97
  */
 #include 
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.21 2007/11/08 13:19:08 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.22 2007/11/28 22:55:55 cognet Exp $");
 
 #include 
 #include 
@@ -939,7 +939,7 @@
 		cpu_reset_needs_v4_MMU_disable = 1;	/* V4 or higher */
 		get_cachetype_cp15();
 		pmap_pte_init_generic();
-		return 0;
+		goto out;
 	}
 #endif /* CPU_ARM9E || CPU_ARM10 */
 #ifdef CPU_ARM10
@@ -1799,6 +1799,9 @@
 	/* Now really make sure they are clean.  */
 	__asm __volatile ("mcr\tp15, 0, r0, c7, c7, 0" : : );
 
+	if (vector_page == ARM_VECTORS_HIGH)
+		cpuctrl |= CPU_CONTROL_VECRELOC;
+
 	/* Set the control register */
 	ctrl = cpuctrl;
 	cpu_control(0xffffffff, cpuctrl);

==== //depot/projects/tcpecn/arm/include/atomic.h#2 (text+ko) ====

@@ -33,7 +33,7 @@
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/include/atomic.h,v 1.21 2007/01/05 02:50:27 ticso Exp $
+ * $FreeBSD: src/sys/arm/include/atomic.h,v 1.22 2007/11/27 22:12:05 cognet Exp $
  */
 
 #ifndef	_MACHINE_ATOMIC_H_
@@ -271,9 +271,10 @@
 	    "mov	%0, #0xe0000004\n"
 	    "str	%1, [%0]\n"
 	    "ldr	%1, [%2]\n"
-	    "add	%3, %1, %3\n"
-	    "str	%3, [%2]\n"
+	    "add	%0, %1, %3\n"
+	    "str	%0, [%2]\n"
 	    "2:\n"
+	    "mov	%0, #0xe0000004\n"
 	    "mov	%3, #0\n"
 	    "str	%3, [%0]\n"
 	    : "=r" (ras_start), "=r" (start), "+r" (p), "+r" (v)

==== //depot/projects/tcpecn/boot/i386/gptboot/gptldr.S#2 (text+ko) ====

@@ -27,7 +27,9 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/i386/gptboot/gptldr.S,v 1.1 2007/10/24 21:32:59 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/gptboot/gptldr.S,v 1.2 2007/11/26 21:29:58 jhb Exp $
+ *
+ * Partly from: src/sys/boot/i386/boot2/boot1.S 1.31
  */
 
 /* Memory Locations */

==== //depot/projects/tcpecn/boot/i386/pmbr/pmbr.s#2 (text+ko) ====

@@ -27,7 +27,9 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/sys/boot/i386/pmbr/pmbr.s,v 1.1 2007/10/24 21:32:59 jhb Exp $
+# $FreeBSD: src/sys/boot/i386/pmbr/pmbr.s,v 1.2 2007/11/26 21:29:59 jhb Exp $
+#
+# Partly from: src/sys/boot/i386/mbr/mbr.s 1.7
 
 # A 512 byte PMBR boot manager that looks for a FreeBSD boot GPT partition
 # and boots it.

==== //depot/projects/tcpecn/compat/linprocfs/linprocfs.c#2 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.116 2007/10/12 06:03:42 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.117 2007/11/29 06:34:29 peter Exp $");
 
 #include 
 #include 
@@ -374,19 +374,28 @@
 static int
 linprocfs_dostat(PFS_FILL_ARGS)
 {
+	struct pcpu *pcpu;
+	long cp_time[CPUSTATES];
+	long *cp;
 	int i;
 
+	read_cpu_time(cp_time);
 	sbuf_printf(sb, "cpu %ld %ld %ld %ld\n",
 	    T2J(cp_time[CP_USER]),
 	    T2J(cp_time[CP_NICE]),
 	    T2J(cp_time[CP_SYS] /*+ cp_time[CP_INTR]*/),
 	    T2J(cp_time[CP_IDLE]));
-	for (i = 0; i < mp_ncpus; ++i)
+	for (i = 0; i <= mp_maxid; ++i) {
+		if (CPU_ABSENT(i))
+			continue;
+		pcpu = pcpu_find(i);
+		cp = pcpu->pc_cp_time;
 		sbuf_printf(sb, "cpu%d %ld %ld %ld %ld\n", i,
-		    T2J(cp_time[CP_USER]) / mp_ncpus,
-		    T2J(cp_time[CP_NICE]) / mp_ncpus,
-		    T2J(cp_time[CP_SYS]) / mp_ncpus,
-		    T2J(cp_time[CP_IDLE]) / mp_ncpus);
+		    T2J(cp[CP_USER]),
+		    T2J(cp[CP_NICE]),
+		    T2J(cp[CP_SYS] /*+ cp[CP_INTR]*/),
+		    T2J(cp[CP_IDLE]));
+	}
 	sbuf_printf(sb,
 	    "disk 0 0 0 0\n"
 	    "page %u %u\n"
@@ -410,9 +419,11 @@
 static int
 linprocfs_douptime(PFS_FILL_ARGS)
 {
+	long cp_time[CPUSTATES];
 	struct timeval tv;
 
 	getmicrouptime(&tv);
+	read_cpu_time(cp_time);
 	sbuf_printf(sb, "%lld.%02ld %ld.%02ld\n",
 	    (long long)tv.tv_sec, tv.tv_usec / 10000,
 	    T2S(cp_time[CP_IDLE]), T2J(cp_time[CP_IDLE]) % 100);

==== //depot/projects/tcpecn/compat/opensolaris/rpc/xdr.h#2 (text+ko) ====

@@ -50,19 +50,6 @@
 #define xdr_control(a,b,c) xdrmem_control(a,b,c)
 
 /*
- * These are XDR control operators
- */
-
-#define	XDR_GET_BYTES_AVAIL 1
-
-struct xdr_bytesrec {
-	bool_t xc_is_last_record;
-	size_t xc_num_avail;
-};
-
-typedef struct xdr_bytesrec xdr_bytesrec;
-
-/*
  * These are the request arguments to XDR_CONTROL.
  *
  * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream.

==== //depot/projects/tcpecn/compat/opensolaris/sys/atomic.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/compat/opensolaris/sys/atomic.h,v 1.1 2007/06/08 12:35:46 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/atomic.h,v 1.2 2007/11/28 21:47:09 jb Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_ATOMIC_H_
@@ -106,7 +106,7 @@
 static __inline void *
 atomic_cas_ptr(volatile void *target, void *cmp,  void *newval)
 {
-	return ((void *)atomic_cas_64((uint64_t *)target, (uint64_t)cmp,
+	return ((void *)atomic_cas_64((volatile uint64_t *)target, (uint64_t)cmp,
 	    (uint64_t)newval));
 }
 #endif

==== //depot/projects/tcpecn/compat/opensolaris/sys/kmem.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/compat/opensolaris/sys/kmem.h,v 1.2 2007/04/10 02:35:56 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/kmem.h,v 1.3 2007/11/28 21:48:25 jb Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_KMEM_H_
@@ -32,6 +32,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -41,8 +42,6 @@
 #define	KM_NOSLEEP		M_NOWAIT
 #define	KMC_NODEBUG		0
 
-typedef	void	vmem_t;
-
 typedef struct kmem_cache {
 	char		kc_name[32];
 #ifdef _KERNEL

==== //depot/projects/tcpecn/compat/opensolaris/sys/proc.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/compat/opensolaris/sys/proc.h,v 1.3 2007/10/20 23:23:13 julian Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/proc.h,v 1.4 2007/11/28 21:50:05 jb Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_PROC_H_
@@ -44,8 +44,6 @@
 #define	max_ncpus	mp_ncpus
 #define	boot_max_ncpus	mp_ncpus
 
-extern int hz;	/* system clock's frequency */
-
 #define	TS_RUN	0
 
 #define	p0	proc0

==== //depot/projects/tcpecn/compat/opensolaris/sys/time.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/compat/opensolaris/sys/time.h,v 1.1 2007/04/06 01:09:06 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/time.h,v 1.2 2007/11/28 21:44:17 jb Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_TIME_H_
@@ -31,9 +31,17 @@
 
 #include_next 
 
+#define SEC		1
+#define MILLISEC	1000
+#define MICROSEC	1000000
+#define NANOSEC		1000000000
+
+typedef longlong_t	hrtime_t;
+
+#define	LBOLT	((gethrtime() * hz) / NANOSEC)
+
 #ifdef _KERNEL
-#define	lbolt	((gethrtime() * hz) / NANOSEC)
-#define	lbolt64	(int64_t)(lbolt)
+#define	lbolt64	(int64_t)(LBOLT)
 
 static __inline hrtime_t
 gethrtime(void) {
@@ -53,6 +61,15 @@
 #define	gethrestime_sec()	(time_second)
 #define	gethrestime(ts)		getnanotime(ts)
 
+#else
+
+static __inline hrtime_t gethrtime(void) {
+	struct timespec ts;
+	clock_gettime(CLOCK_UPTIME,&ts);
+	return (((u_int64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec);
+}
+
+
 #endif	/* _KERNEL */
 
 #endif	/* !_OPENSOLARIS_SYS_TIME_H_ */

==== //depot/projects/tcpecn/compat/opensolaris/sys/types.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/compat/opensolaris/sys/types.h,v 1.2 2007/04/23 00:52:06 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/types.h,v 1.3 2007/11/28 21:49:16 jb Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_TYPES_H_
@@ -39,6 +39,18 @@
 #define	MAXNAMELEN	256
 
 typedef	struct timespec	timestruc_t;
+typedef u_int		uint_t;
+typedef u_char		uchar_t;
+typedef u_short		ushort_t;
+typedef u_long		ulong_t;
+typedef long long	longlong_t;  
+typedef unsigned long long	u_longlong_t;
+typedef off_t		off64_t;
+typedef id_t		taskid_t;
+typedef id_t		projid_t;
+typedef id_t		poolid_t;
+typedef id_t		zoneid_t;
+typedef id_t		ctid_t;
 
 #ifdef _KERNEL
 
@@ -53,6 +65,12 @@
 
 #else
 
+#if defined(__XOPEN_OR_POSIX)
+typedef enum { _B_FALSE, _B_TRUE }	boolean_t;
+#else
+typedef enum { B_FALSE, B_TRUE }	boolean_t;
+#endif /* defined(__XOPEN_OR_POSIX) */

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:24:58 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7574F16A46B; Sat,  1 Dec 2007 21:24:58 +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 0A46516A419
	for ; Sat,  1 Dec 2007 21:24:58 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id E093E13C478
	for ; Sat,  1 Dec 2007 21:24:57 +0000 (UTC)
	(envelope-from peter@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 lB1LOvhO073454
	for ; Sat, 1 Dec 2007 21:24:57 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LNFTb073424
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:23:15 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:23:15 GMT
Message-Id: <200712012123.lB1LNFTb073424@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129897 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, 01 Dec 2007 21:24:58 -0000

http://perforce.freebsd.org/chv.cgi?CH=129897

Change 129897 by peter@peter_daintree on 2007/12/01 21:23:13

	Initial partial IFC

Affected files ...

.. //depot/projects/bike_sched/sys/Makefile#3 integrate
.. //depot/projects/bike_sched/sys/amd64/acpica/OsdEnvironment.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/acpica/madt.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/apic_vector.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/busdma_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/cpu_switch.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/db_disasm.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/db_trace.c#3 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/elf_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/exception.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/genassym.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/identcpu.c#3 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/intr_machdep.c#3 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/io.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/io_apic.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/legacy.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/local_apic.c#3 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/machdep.c#4 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/minidump_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/mp_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/mp_watchdog.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/mptable.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/mptable_pci.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/msi.c#1 branch
.. //depot/projects/bike_sched/sys/amd64/amd64/nexus.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/pmap.c#6 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/prof_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/support.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/trap.c#4 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/tsc.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/uma_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/amd64/vm_machdep.c#4 integrate
.. //depot/projects/bike_sched/sys/amd64/conf/DEFAULTS#3 integrate
.. //depot/projects/bike_sched/sys/amd64/conf/GENERIC#5 integrate
.. //depot/projects/bike_sched/sys/amd64/conf/GENERIC.hints#2 integrate
.. //depot/projects/bike_sched/sys/amd64/conf/NOTES#3 integrate
.. //depot/projects/bike_sched/sys/amd64/ia32/ia32_exception.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/ia32/ia32_signal.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/ia32/ia32_sigtramp.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/ia32/ia32_syscall.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/acpica_machdep.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/apicvar.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/asm.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/asmacros.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/atomic.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/clock.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/elf.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/gdb_machdep.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/intr_machdep.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/kdb.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/legacyvar.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/md_var.h#3 integrate
.. //depot/projects/bike_sched/sys/amd64/include/pc/bios.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/pcb.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/pci_cfgreg.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/pcpu.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/pmap.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/profile.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/reg.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/segments.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/setjmp.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/smp.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/specialreg.h#3 integrate
.. //depot/projects/bike_sched/sys/amd64/include/stdarg.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/include/vmparam.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/isa/atpic.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/isa/atpic_vector.S#2 integrate
.. //depot/projects/bike_sched/sys/amd64/isa/clock.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/isa/icu.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/isa/isa.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux.h#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_dummy.c#3 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_locore.s#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_proto.h#4 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_support.s#1 branch
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_syscall.h#4 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_sysent.c#4 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/linux32_sysvec.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/syscalls.conf#2 integrate
.. //depot/projects/bike_sched/sys/amd64/linux32/syscalls.master#4 integrate
.. //depot/projects/bike_sched/sys/amd64/pci/pci_bus.c#2 integrate
.. //depot/projects/bike_sched/sys/amd64/pci/pci_cfgreg.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/bcopy_page.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/bcopyinout.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/busdma_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc_asm_arm11.S#1 branch
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc_asm_arm9.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc_asm_armv5.S#1 branch
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc_asm_armv5_ec.S#1 branch
.. //depot/projects/bike_sched/sys/arm/arm/cpufunc_asm_xscale_c3.S#1 branch
.. //depot/projects/bike_sched/sys/arm/arm/db_interface.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/elf_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/elf_trampoline.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/arm/fusu.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/genassym.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/identcpu.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/in_cksum.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/in_cksum_arm.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/intr.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/locore.S#3 integrate
.. //depot/projects/bike_sched/sys/arm/arm/machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/mem.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/nexus.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/nexus_io.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/pmap.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/arm/support.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/swtch.S#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/sys_machdep.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/trap.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/arm/undefined.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/arm/vm_machdep.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_mci.c#1 branch
.. //depot/projects/bike_sched/sys/arm/at91/at91_mcireg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/at91/at91_pio.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_pioreg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_piovar.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_pmc.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_rtc.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_rtcreg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_spi.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_spireg.h#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_ssc.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_sscreg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_st.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_twi.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91_twireg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/at91rm92reg.h#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/files.at91#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/if_ate.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/if_atereg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/kb920x_machdep.c#5 integrate
.. //depot/projects/bike_sched/sys/arm/at91/ohci_atmelarm.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/std.at91#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/std.kb920x#3 integrate
.. //depot/projects/bike_sched/sys/arm/at91/uart_cpu_at91rm9200usart.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/at91/uart_dev_at91usart.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/conf/AVILA#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/AVILA.hints#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/BWCT#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/BWCT.hints#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/CRB#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/EP80219#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/HL200#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/IQ31244#3 integrate
.. //depot/projects/bike_sched/sys/arm/conf/KB920X#4 integrate
.. //depot/projects/bike_sched/sys/arm/conf/KB920X.hints#1 branch
.. //depot/projects/bike_sched/sys/arm/conf/SIMICS#3 integrate
.. //depot/projects/bike_sched/sys/arm/conf/SKYEYE#3 integrate
.. //depot/projects/bike_sched/sys/arm/include/armreg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/asm.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/asmacros.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/atomic.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/bootconfig.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/bus.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/bus_dma.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/clock.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/cpuconf.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/cpufunc.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/db_machdep.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/elf.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/endian.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/intr.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/kdb.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/md_var.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/pcpu.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/pmap.h#3 integrate
.. //depot/projects/bike_sched/sys/arm/include/profile.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/pte.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/sf_buf.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/stdarg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/undefined.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/include/vmparam.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/assabet_machdep.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/sa11x0.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/sa11x0_io.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/sa11x0_ost.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/uart_cpu_sa1110.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/sa11x0/uart_dev_sa1110.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/ep80219_machdep.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/files.ep80219#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/files.i80219#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321_intr.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321_pci.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321_space.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321_timer.c#3 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321_wdog.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321reg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/i80321var.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/iq31244_machdep.c#4 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/iq80321.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/iq80321reg.h#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/obio.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/obio_space.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/std.ep80219#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/std.i80219#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i80321/uart_cpu_i80321.c#2 integrate
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/crb_machdep.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/files.crb#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/files.i81342#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342_mcu.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342_pci.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342_space.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342reg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/i81342var.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/iq81342_7seg.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/iq81342reg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/iq81342var.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/obio.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/obio_space.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/obiovar.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/std.crb#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/std.i81342#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/uart_bus_i81342.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/i8134x/uart_cpu_i81342.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/avila_ata.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/avila_led.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/avila_machdep.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/files.avila#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/files.ixp425#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/if_npe.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/if_npereg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixdp425_pci.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixdp425reg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_a4x_io.S#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_a4x_space.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_iic.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_intr.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_mem.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_npe.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_npereg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_npevar.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_pci.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_pci_asm.S#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_pci_space.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_qmgr.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_qmgr.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_space.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_timer.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425_wdog.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425reg.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/ixp425var.h#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/std.avila#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/std.ixp425#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/uart_bus_ixp425.c#1 branch
.. //depot/projects/bike_sched/sys/arm/xscale/ixp425/uart_cpu_ixp425.c#1 branch
.. //depot/projects/bike_sched/sys/boot/Makefile#3 integrate
.. //depot/projects/bike_sched/sys/boot/arm/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/Makefile.inc#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0/arm_init.s#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0iic/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0iic/doit.c#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0iic/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0spi/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0spi/doit.c#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot0spi/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/board.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/boot2.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/bwct_board.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/centipad_board.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/boot2/kb920x_board.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/arm_init.S#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/env_vars.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/env_vars.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/loader_prompt.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/loader_prompt.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootiic/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/arm_init.s#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/ee.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/ee.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/env_vars.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/env_vars.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/loader_prompt.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/loader_prompt.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/bootspi/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/arm_init.S#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/at91rm9200.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/delay.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/eeprom.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/eeprom.h#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/emac.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/emac.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/emac_init.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/env_vars.c#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/env_vars.h#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/getc.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/lib.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/lib_AT91RM9200.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/loader_prompt.c#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/loader_prompt.h#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/mci_device.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/memcmp.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/memcpy.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/memset.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/p_string.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/p_string.h#2 delete
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/printf.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/putchar.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/reset.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/sd-card.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/sd-card.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/spi_flash.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/spi_flash.h#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/strcmp.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/strcpy.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/strcvt.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/strlen.c#1 branch
.. //depot/projects/bike_sched/sys/boot/arm/at91/libat91/xmodem.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/Makefile.inc#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/bootstrap.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/devopen.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/help.common#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/load_elf.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/loader.8#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/merge_help.awk#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/module.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/panic.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/pnp.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/common/pnpdata#2 delete
.. //depot/projects/bike_sched/sys/boot/common/ufsread.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efi.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efi_nii.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efiapi.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/eficon.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efidebug.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efidef.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efidevp.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efierr.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efifs.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efilib.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efinet.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efipart.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efiprot.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efipxebc.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efiser.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/efistdarg.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/i386/efibind.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/i386/pe.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/ia64/efibind.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/include/ia64/pe.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/libefi/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/libefi/bootinfo.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/copy.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/devicename.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/efiboot.h#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/efifpswa.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/efifs.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/libefi/efinet.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/libefi/elf_freebsd.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/errno.c#1 branch
.. //depot/projects/bike_sched/sys/boot/efi/libefi/handles.c#1 branch
.. //depot/projects/bike_sched/sys/boot/efi/libefi/libefi.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/efi/libefi/module.c#2 delete
.. //depot/projects/bike_sched/sys/boot/efi/libefi/time.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/arm/sysdep.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ficl/arm/sysdep.h#1 branch
.. //depot/projects/bike_sched/sys/boot/ficl/ficl.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/float.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/softwords/fileaccess.fr#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/softwords/jhlocal.fr#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/softwords/oo.fr#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/softwords/prefix.fr#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/softwords/softcore.awk#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/tools.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/unix.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/vm.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ficl/words.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/forth/loader.conf#2 integrate
.. //depot/projects/bike_sched/sys/boot/forth/support.4th#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/Makefile.inc#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/boot0/boot0.S#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/boot2/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/boot2/boot2.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/btx/btx/btx.S#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/cdboot/cdboot.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/gptboot/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/gptboot/gptboot.c#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/gptboot/gptldr.S#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/dconsole.c#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/firewire.c#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/fwohci.c#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/fwohci.h#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libfirewire/fwohcireg.h#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/libi386/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/biosacpi.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/bioscd.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/biosdisk.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/biosmem.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/biospci.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/biossmap.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/bootinfo32.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/bootinfo64.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/devicename.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/elf32_freebsd.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/elf64_freebsd.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/libi386.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/pxe.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/libi386/smbios.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/loader/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/loader/conf.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/loader/help.i386#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/loader/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/pmbr/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/pmbr/pmbr.s#1 branch
.. //depot/projects/bike_sched/sys/boot/i386/pxeldr/pxeboot.8#2 integrate
.. //depot/projects/bike_sched/sys/boot/i386/pxeldr/pxeldr.S#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/common/Makefile#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/autoload.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/bootinfo.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/copy.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/devicename.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/exec.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/common/libia64.h#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/efi/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/efi/conf.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/efi/efimd.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/efi/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/efi/version#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/acpi_stub.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/bootinfo.c#2 delete
.. //depot/projects/bike_sched/sys/boot/ia64/ski/copy.c#2 delete
.. //depot/projects/bike_sched/sys/boot/ia64/ski/devicename.c#2 delete
.. //depot/projects/bike_sched/sys/boot/ia64/ski/efi_stub.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/elf_freebsd.c#2 delete
.. //depot/projects/bike_sched/sys/boot/ia64/ski/libski.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/skifs.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ia64/ski/skimd.c#1 branch
.. //depot/projects/bike_sched/sys/boot/ia64/ski/version#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/common/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/libofw.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/ofw_console.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/ofw_net.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/openfirm.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/ofw/libofw/openfirm.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/Makefile.inc#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/boot.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/boot0.5.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/disk.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/ldscript#1 branch
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/putssjis.s#1 branch
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/selector.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot0.5/start.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot2/boot.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/boot2/inode.h#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/btx/btx/btx.S#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/cdboot/cdboot.s#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/libpc98/bioscd.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/libpc98/biosdisk.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/libpc98/biossmap.c#1 branch
.. //depot/projects/bike_sched/sys/boot/pc98/loader/Makefile#2 integrate
.. //depot/projects/bike_sched/sys/boot/pc98/loader/main.c#2 integrate
.. //depot/projects/bike_sched/sys/boot/sparc64/loader/main.c#2 integrate
.. //depot/projects/bike_sched/sys/bsm/audit.h#3 integrate
.. //depot/projects/bike_sched/sys/bsm/audit_internal.h#2 integrate
.. //depot/projects/bike_sched/sys/bsm/audit_kevents.h#3 integrate
.. //depot/projects/bike_sched/sys/bsm/audit_record.h#4 integrate
.. //depot/projects/bike_sched/sys/cam/README.quirks#1 branch
.. //depot/projects/bike_sched/sys/cam/cam.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_ccb.h#3 integrate
.. //depot/projects/bike_sched/sys/cam/cam_periph.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_periph.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_sim.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_sim.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_xpt.c#3 integrate
.. //depot/projects/bike_sched/sys/cam/cam_xpt.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_xpt_periph.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/cam_xpt_sim.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_all.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_all.h#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_cd.c#3 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_ch.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_da.c#3 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_low.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_pass.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_pt.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_sa.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_ses.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_sg.c#1 branch
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_sg.h#1 branch
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_targ_bh.c#2 integrate
.. //depot/projects/bike_sched/sys/cam/scsi/scsi_target.c#2 integrate
.. //depot/projects/bike_sched/sys/coda/00READ#2 delete
.. //depot/projects/bike_sched/sys/coda/README#2 delete
.. //depot/projects/bike_sched/sys/coda/TODO#2 delete
.. //depot/projects/bike_sched/sys/coda/cnode.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_fbsd.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_io.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_kernel.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_namecache.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_namecache.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_opstats.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_pioctl.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_psdev.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_psdev.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_subr.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_subr.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_venus.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_venus.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_vfsops.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_vfsops.h#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_vnops.c#2 delete
.. //depot/projects/bike_sched/sys/coda/coda_vnops.h#2 delete
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_misc.c#4 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_proto.h#3 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_signal.h#1 branch
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/syscalls.conf#2 integrate
.. //depot/projects/bike_sched/sys/compat/freebsd32/syscalls.master#4 integrate
.. //depot/projects/bike_sched/sys/compat/ia32/ia32_genassym.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/ia32/ia32_signal.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/ia32/ia32_sysvec.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linprocfs/linprocfs.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/linsysfs/linsysfs.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_emul.c#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_emul.h#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_file.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_futex.c#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_futex.h#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_getcwd.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_ioctl.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_ioctl.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_ipc.c#4 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_ipc.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_mib.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_mib.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_misc.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_misc.h#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_signal.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_signal.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_socket.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_stats.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_time.c#1 branch
.. //depot/projects/bike_sched/sys/compat/linux/linux_uid16.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_util.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/linux/linux_util.h#3 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/kern_ndis.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/kern_windrv.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/ndis_var.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/ntoskrnl_var.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/subr_ndis.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/subr_ntoskrnl.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/ndis/subr_pe.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_atomic.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_kmem.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_kobj.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_kstat.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_misc.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_policy.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_string.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_vfs.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/kern/opensolaris_zone.c#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/machine/endian.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/rpc/xdr.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/acl.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/atomic.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/bitmap.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/byteorder.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/callb.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/cmn_err.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/cpupart.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/cpuvar.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/cred.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/cyclic.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/debug.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/dirent.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/dkio.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/dnlc.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/elf.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/kcondvar.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/kmem.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/kobj.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/kstat.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/lock.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/misc.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/mman.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/mntent.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/mnttab.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/modctl.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/mount.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/mutex.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/objfs.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/param.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/pcpu.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/policy.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/proc.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/random.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/rwlock.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/sdt.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/stat.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/string.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/sunddi.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/sysmacros.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/systm.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/taskq.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/taskq_impl.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/time.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/types.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/uio.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/varargs.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/vfs.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/vnode.h#1 branch
.. //depot/projects/bike_sched/sys/compat/opensolaris/sys/zone.h#1 branch
.. //depot/projects/bike_sched/sys/compat/pecoff/imgact_pecoff.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/imgact_svr4.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_fcntl.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_filio.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_misc.c#4 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_proto.h#4 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_socket.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_socket.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_sockio.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_stat.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_stream.c#3 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_stropts.h#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_syscall.h#4 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_syscallnames.c#4 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_sysent.c#4 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/svr4_sysvec.c#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/syscalls.conf#2 integrate
.. //depot/projects/bike_sched/sys/compat/svr4/syscalls.master#4 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.amd64#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.arm#3 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.i386#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.ia64#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.pc98#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.powerpc#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.sparc64#2 integrate
.. //depot/projects/bike_sched/sys/conf/Makefile.sun4v#1 branch
.. //depot/projects/bike_sched/sys/conf/NOTES#4 integrate
.. //depot/projects/bike_sched/sys/conf/files#5 integrate
.. //depot/projects/bike_sched/sys/conf/files.amd64#3 integrate
.. //depot/projects/bike_sched/sys/conf/files.arm#4 integrate
.. //depot/projects/bike_sched/sys/conf/files.i386#3 integrate
.. //depot/projects/bike_sched/sys/conf/files.ia64#3 integrate
.. //depot/projects/bike_sched/sys/conf/files.pc98#2 integrate
.. //depot/projects/bike_sched/sys/conf/files.powerpc#3 integrate
.. //depot/projects/bike_sched/sys/conf/files.sparc64#2 integrate
.. //depot/projects/bike_sched/sys/conf/files.sun4v#1 branch
.. //depot/projects/bike_sched/sys/conf/kern.mk#3 integrate
.. //depot/projects/bike_sched/sys/conf/kern.post.mk#3 integrate
.. //depot/projects/bike_sched/sys/conf/kern.pre.mk#3 integrate
.. //depot/projects/bike_sched/sys/conf/kmod.mk#3 integrate
.. //depot/projects/bike_sched/sys/conf/newvers.sh#2 integrate
.. //depot/projects/bike_sched/sys/conf/options#3 integrate
.. //depot/projects/bike_sched/sys/conf/options.amd64#2 integrate
.. //depot/projects/bike_sched/sys/conf/options.arm#3 integrate
.. //depot/projects/bike_sched/sys/conf/options.i386#2 integrate
.. //depot/projects/bike_sched/sys/conf/options.ia64#2 integrate
.. //depot/projects/bike_sched/sys/conf/options.pc98#2 integrate
.. //depot/projects/bike_sched/sys/conf/options.sparc64#2 integrate
.. //depot/projects/bike_sched/sys/conf/options.sun4v#1 branch
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_cbq.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_cdnr.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_hfsc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_priq.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_red.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_rio.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/altq/altq/altq_subr.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/CHANGES.txt#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acapps.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acconfig.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acdebug.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acdisasm.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acdispat.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acefi.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acenv.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acevents.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acexcep.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acfreebsd.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acgcc.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acglobal.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/achware.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acinterp.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/aclocal.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acmacros.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acnames.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acnamesp.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acobject.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acopcode.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acoutput.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acparser.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acpi.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acpiosxf.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acpixf.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acresrc.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acstruct.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/actables.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/actbl.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/actbl1.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/actbl2.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/actypes.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/acutils.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/aecommon.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/aeexec.c#2 delete
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/amlcode.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/amlresrc.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/adfile.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/adisasm.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/adwalk.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/dmrestag.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/dmtable.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/dmtbdump.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/dmtbinfo.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/common/getopt.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslcodegen.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslcompiler.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslcompiler.l#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asldefine.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslerror.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslfiles.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslglobal.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asllength.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asllisting.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslload.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asllookup.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslmain.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslmap.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslopcodes.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asloperands.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslopt.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslresource.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslrestype1.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslrestype2.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslstubs.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asltransform.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbcmds.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbdisply.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbexec.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbfileio.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbhistry.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbinput.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbstats.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dbxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmbuffer.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmnames.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmobject.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmopcode.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmresrc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmresrcl.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmresrcs.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dmwalk.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsfield.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsinit.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsmethod.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsmthdat.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsobject.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsopcode.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dsutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dswexec.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dswload.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dswscope.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/dswstate.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evevent.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evgpe.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evgpeblk.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evmisc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evregion.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evrgnini.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evsci.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evxfevnt.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/evxfregn.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exconfig.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exconvrt.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/excreate.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exdump.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exfield.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exfldio.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exmisc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exmutex.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exnames.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exoparg1.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exoparg2.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exoparg3.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exoparg6.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exprep.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exregion.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exresnte.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exresolv.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exresop.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exstore.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exstoren.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exstorob.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exsystem.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/exutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/hwacpi.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/hwgpe.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/hwregs.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/hwsleep.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/hwtimer.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsaccess.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsalloc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsdump.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsdumpdv.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nseval.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsinit.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsload.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsnames.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsobject.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsparse.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nssearch.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nswalk.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsxfeval.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsxfname.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/nsxfobj.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/osunixxf.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psargs.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psloop.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psopcode.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psparse.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psscope.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/pstree.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/pswalk.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/psxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsaddr.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rscalc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rscreate.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsdump.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsinfo.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsio.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsirq.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rslist.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsmemory.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsmisc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/rsxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbconvrt.c#2 delete
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbfadt.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbfind.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbget.c#2 delete
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbgetall.c#2 delete
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbinstal.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbrsdt.c#2 delete
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbutils.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/tbxfroot.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utalloc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utcache.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utclib.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utcopy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utdebug.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utdelete.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/uteval.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utglobal.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utinit.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utmath.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utmisc.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utmutex.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utobject.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utresrc.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utstate.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/uttrack.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/acpica/utxface.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/ah.h#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/ah_desc.h#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/ah_devid.h#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/freebsd/ah_if.m#3 delete
.. //depot/projects/bike_sched/sys/contrib/dev/ath/freebsd/ah_osdep.c#3 delete
.. //depot/projects/bike_sched/sys/contrib/dev/ath/freebsd/ah_osdep.h#3 delete
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/alpha-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/alpha-elf.inc#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/ap30.hal.o.uu#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/ap43.hal.o.uu#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/ap51.hal.o.uu#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/ap61.hal.o.uu#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/arm9-le-thumb-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/arm9-le-thumb-elf.inc#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/armv4-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/armv4-be-elf.inc#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/armv4-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/armv4-le-elf.inc#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/i386-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mips-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mips-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mips1-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mips1-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/mipsisa32-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/powerpc-be-eabi.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/powerpc-le-eabi.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/sh4-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/sparc-be-elf.hal.o.uu#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/wackelf.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/x86_64-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/xscale-be-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/xscale-be-elf.inc#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/xscale-le-elf.hal.o.uu#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/public/xscale-le-elf.inc#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ath/version.h#3 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/ipw/LICENSE#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/ipw/ipw2100-1.3-i.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/ipw/ipw2100-1.3-p.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/ipw/ipw2100-1.3.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/iwi/LICENSE#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/iwi/ipw2200-bss.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/npe/IxNpeMicrocode.dat.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/npe/LICENSE#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/oltr/if_oltr.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/dev/wpi/LICENSE#1 branch
.. //depot/projects/bike_sched/sys/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu#1 branch
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/fil.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_auth.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_auth.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_frag.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_frag.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_htable.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_htable.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_ipsec_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_irc_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_log.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_lookup.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_lookup.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_pool.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_pool.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_pptp_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_proxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_proxy.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_scan.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_scan.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_state.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_state.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_sync.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ip_sync.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/ipl.h#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/ngatm/netnatm/api/cc_conn.c#2 integrate
.. //depot/projects/bike_sched/sys/contrib/opensolaris/OPENSOLARIS.LICENSE#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/acl/acl_common.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/acl/acl_common.h#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/atomic/i386/atomic.S#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/atomic/ia64/atomic.S#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/avl/avl.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/nvpair/nvpair.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/nvpair/nvpair_alloc_fixed.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/zfs/zfs_namecheck.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/zfs/zfs_namecheck.h#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/zfs/zfs_prop.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/common/zfs/zfs_prop.h#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/uts/common/Makefile.files#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/uts/common/fs/gfs.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#1 branch
.. //depot/projects/bike_sched/sys/contrib/opensolaris/uts/common/fs/zfs/bplist.c#1 branch

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:31:05 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 5978B16A469; Sat,  1 Dec 2007 21:31: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 1E3EC16A417
	for ; Sat,  1 Dec 2007 21:31:05 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id E0FD213C442
	for ; Sat,  1 Dec 2007 21:31:04 +0000 (UTC)
	(envelope-from peter@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 lB1LV48n073939
	for ; Sat, 1 Dec 2007 21:31:04 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LV48D073936
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:31:04 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:31:04 GMT
Message-Id: <200712012131.lB1LV48D073936@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129899 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, 01 Dec 2007 21:31:05 -0000

http://perforce.freebsd.org/chv.cgi?CH=129899

Change 129899 by peter@peter_daintree on 2007/12/01 21:31:02

	temporarily undead

Affected files ...

.. //depot/projects/bike_sched/sys/kern/kern_kse.c#3 branch

Differences ...

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:32:06 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 85B1816A421; Sat,  1 Dec 2007 21:32: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 4BAB816A417
	for ; Sat,  1 Dec 2007 21:32:06 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 1AC3013C4CC
	for ; Sat,  1 Dec 2007 21:32:06 +0000 (UTC)
	(envelope-from peter@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 lB1LW6tk074434
	for ; Sat, 1 Dec 2007 21:32:06 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LW6WS074431
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:32:06 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:32:06 GMT
Message-Id: <200712012132.lB1LW6WS074431@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129900 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, 01 Dec 2007 21:32:06 -0000

http://perforce.freebsd.org/chv.cgi?CH=129900

Change 129900 by peter@peter_daintree on 2007/12/01 21:31:38

	re-delete after integrate wanted to revive it

Affected files ...

.. //depot/projects/bike_sched/sys/kern/kern_kse.c#4 delete

Differences ...

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:33:07 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C534616A421; Sat,  1 Dec 2007 21:33: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 7D0DB16A418
	for ; Sat,  1 Dec 2007 21:33:07 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 6433C13C46B
	for ; Sat,  1 Dec 2007 21:33:07 +0000 (UTC)
	(envelope-from peter@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 lB1LX79H074814
	for ; Sat, 1 Dec 2007 21:33:07 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LX7uT074811
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:33:07 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:33:07 GMT
Message-Id: <200712012133.lB1LX7uT074811@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129901 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, 01 Dec 2007 21:33:08 -0000

http://perforce.freebsd.org/chv.cgi?CH=129901

Change 129901 by peter@peter_daintree on 2007/12/01 21:32:31

	oops. fix mismerge. s/MSTD/STD/

Affected files ...

.. //depot/projects/bike_sched/sys/kern/syscalls.master#7 edit

Differences ...

==== //depot/projects/bike_sched/sys/kern/syscalls.master#7 (text+ko) ====

@@ -669,9 +669,9 @@
 381	AUE_NULL	UNIMPL	kse_create
 382	AUE_NULL	UNIMPL	kse_thr_interrupt
 383	AUE_NULL	UNIMPL	kse_release
-384	AUE_NULL	MSTD	{ int __mac_get_proc(struct mac *mac_p); }
-385	AUE_NULL	MSTD	{ int __mac_set_proc(struct mac *mac_p); }
-386	AUE_NULL	MSTD	{ int __mac_get_fd(int fd, \
+384	AUE_NULL	STD	{ int __mac_get_proc(struct mac *mac_p); }
+385	AUE_NULL	STD	{ int __mac_set_proc(struct mac *mac_p); }
+386	AUE_NULL	STD	{ int __mac_get_fd(int fd, \
 				    struct mac *mac_p); }
 387	AUE_NULL	STD	{ int __mac_get_file(const char *path_p, \
 				    struct mac *mac_p); }

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:37:13 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id D21AE16A421; Sat,  1 Dec 2007 21:37: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 75B8E16A418
	for ; Sat,  1 Dec 2007 21:37:12 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 5A5E313C455
	for ; Sat,  1 Dec 2007 21:37:12 +0000 (UTC)
	(envelope-from peter@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 lB1LbCTe075098
	for ; Sat, 1 Dec 2007 21:37:12 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LbCc0075095
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:37:12 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:37:12 GMT
Message-Id: <200712012137.lB1LbCc0075095@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129902 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, 01 Dec 2007 21:37:13 -0000

http://perforce.freebsd.org/chv.cgi?CH=129902

Change 129902 by peter@peter_daintree on 2007/12/01 21:36:40

	Regenerate/resync

Affected files ...

.. //depot/projects/bike_sched/sys/kern/init_sysent.c#5 edit
.. //depot/projects/bike_sched/sys/kern/systrace_args.c#2 edit

Differences ...

==== //depot/projects/bike_sched/sys/kern/init_sysent.c#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/init_sysent.c,v 1.214 2006/07/13 06:32:55 davidxu Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.219 2006/07/13 06:26:43 davidxu Exp 
+ * $FreeBSD: src/sys/kern/init_sysent.c,v 1.230 2007/08/16 05:32:25 davidxu Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.234 2007/10/19 19:17:53 emaste Exp 
  */
 
 #include "opt_compat.h"
@@ -29,473 +29,486 @@
 
 /* The casts are bogus but will do for now. */
 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_O_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 */
-	{ SYF_MPSAFE | AS(mount_args), (sy_call_t *)mount, AUE_MOUNT },	/* 21 = mount */
-	{ SYF_MPSAFE | 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_O_GETPAGESIZE },	/* 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 */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 154 = nosys */
-	{ SYF_MPSAFE | AS(nfssvc_args), (sy_call_t *)nosys, AUE_NULL },	/* 155 = nfssvc */
-	{ compat(SYF_MPSAFE | 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_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 */
-	{ SYF_MPSAFE | AS(ktimer_create_args), (sy_call_t *)ktimer_create, AUE_NULL },	/* 235 = ktimer_create */
-	{ SYF_MPSAFE | AS(ktimer_delete_args), (sy_call_t *)ktimer_delete, AUE_NULL },	/* 236 = ktimer_delete */
-	{ SYF_MPSAFE | AS(ktimer_settime_args), (sy_call_t *)ktimer_settime, AUE_NULL },	/* 237 = ktimer_settime */
-	{ SYF_MPSAFE | AS(ktimer_gettime_args), (sy_call_t *)ktimer_gettime, AUE_NULL },	/* 238 = ktimer_gettime */
-	{ SYF_MPSAFE | AS(ktimer_getoverrun_args), (sy_call_t *)ktimer_getoverrun, AUE_NULL },	/* 239 = ktimer_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 */
-	{ SYF_MPSAFE | AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 255 = aio_read */
-	{ SYF_MPSAFE | AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 256 = aio_write */
-	{ SYF_MPSAFE | AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 257 = lio_listio */
-	{ 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 */
-	{ SYF_MPSAFE | AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 314 = aio_return */
-	{ SYF_MPSAFE | AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 315 = aio_suspend */
-	{ SYF_MPSAFE | AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 316 = aio_cancel */
-	{ SYF_MPSAFE | AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 317 = aio_error */
-	{ SYF_MPSAFE | AS(oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 318 = oaio_read */
-	{ SYF_MPSAFE | AS(oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 319 = oaio_write */
-	{ SYF_MPSAFE | AS(olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 320 = olio_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 */
-	{ SYF_MPSAFE | 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 */
-	{ SYF_MPSAFE | AS(nmount_args), (sy_call_t *)nmount, AUE_NMOUNT },	/* 378 = nmount */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 379 = kse_exit */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 380 = kse_wakeup */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 381 = kse_create */
-	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 382 = kse_thr_interrupt */
-	{ 0, (sy_call_t *)nosys, 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 */
-	{ 0, (sy_call_t *)nosys, 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 | AS(sigqueue_args), (sy_call_t *)sigqueue, AUE_NULL },	/* 456 = sigqueue */
-	{ SYF_MPSAFE | AS(kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 457 = kmq_open */
-	{ SYF_MPSAFE | AS(kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 458 = kmq_setattr */
-	{ SYF_MPSAFE | AS(kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 459 = kmq_timedreceive */
-	{ SYF_MPSAFE | AS(kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 460 = kmq_timedsend */
-	{ SYF_MPSAFE | AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 461 = kmq_notify */
-	{ SYF_MPSAFE | AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 462 = kmq_unlink */
-	{ SYF_MPSAFE | AS(abort2_args), (sy_call_t *)abort2, AUE_NULL },	/* 463 = abort2 */
-	{ SYF_MPSAFE | AS(thr_set_name_args), (sy_call_t *)thr_set_name, AUE_NULL },	/* 464 = thr_set_name */
-	{ SYF_MPSAFE | AS(aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 465 = aio_fsync */
-	{ SYF_MPSAFE | AS(thr_setscheduler_args), (sy_call_t *)thr_setscheduler, AUE_NULL },	/* 466 = thr_setscheduler */
-	{ SYF_MPSAFE | AS(thr_getscheduler_args), (sy_call_t *)thr_getscheduler, AUE_NULL },	/* 467 = thr_getscheduler */
-	{ SYF_MPSAFE | AS(thr_setschedparam_args), (sy_call_t *)thr_setschedparam, AUE_NULL },	/* 468 = thr_setschedparam */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },		/* 0 = syscall */
+	{ AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0 },	/* 1 = exit */
+	{ 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0 },		/* 2 = fork */
+	{ AS(read_args), (sy_call_t *)read, AUE_NULL, NULL, 0, 0 },	/* 3 = read */
+	{ AS(write_args), (sy_call_t *)write, AUE_NULL, NULL, 0, 0 },	/* 4 = write */
+	{ AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC, NULL, 0, 0 },	/* 5 = open */
+	{ AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0 },	/* 6 = close */
+	{ AS(wait_args), (sy_call_t *)wait4, AUE_WAIT4, NULL, 0, 0 },	/* 7 = wait4 */
+	{ compat(AS(ocreat_args),creat), AUE_CREAT, NULL, 0, 0 },	/* 8 = old creat */
+	{ AS(link_args), (sy_call_t *)link, AUE_LINK, NULL, 0, 0 },	/* 9 = link */
+	{ AS(unlink_args), (sy_call_t *)unlink, AUE_UNLINK, NULL, 0, 0 },	/* 10 = unlink */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 11 = obsolete execv */
+	{ AS(chdir_args), (sy_call_t *)chdir, AUE_CHDIR, NULL, 0, 0 },	/* 12 = chdir */
+	{ AS(fchdir_args), (sy_call_t *)fchdir, AUE_FCHDIR, NULL, 0, 0 },	/* 13 = fchdir */
+	{ AS(mknod_args), (sy_call_t *)mknod, AUE_MKNOD, NULL, 0, 0 },	/* 14 = mknod */
+	{ AS(chmod_args), (sy_call_t *)chmod, AUE_CHMOD, NULL, 0, 0 },	/* 15 = chmod */
+	{ AS(chown_args), (sy_call_t *)chown, AUE_CHOWN, NULL, 0, 0 },	/* 16 = chown */
+	{ AS(obreak_args), (sy_call_t *)obreak, AUE_NULL, NULL, 0, 0 },	/* 17 = break */
+	{ compat4(AS(freebsd4_getfsstat_args),getfsstat), AUE_GETFSSTAT, NULL, 0, 0 },	/* 18 = old getfsstat */
+	{ compat(AS(olseek_args),lseek), AUE_LSEEK, NULL, 0, 0 },	/* 19 = old lseek */
+	{ 0, (sy_call_t *)getpid, AUE_GETPID, NULL, 0, 0 },		/* 20 = getpid */
+	{ AS(mount_args), (sy_call_t *)mount, AUE_MOUNT, NULL, 0, 0 },	/* 21 = mount */
+	{ AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT, NULL, 0, 0 },	/* 22 = unmount */
+	{ AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID, NULL, 0, 0 },	/* 23 = setuid */
+	{ 0, (sy_call_t *)getuid, AUE_GETUID, NULL, 0, 0 },		/* 24 = getuid */
+	{ 0, (sy_call_t *)geteuid, AUE_GETEUID, NULL, 0, 0 },		/* 25 = geteuid */
+	{ AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE, NULL, 0, 0 },	/* 26 = ptrace */
+	{ AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG, NULL, 0, 0 },	/* 27 = recvmsg */
+	{ AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG, NULL, 0, 0 },	/* 28 = sendmsg */
+	{ AS(recvfrom_args), (sy_call_t *)recvfrom, AUE_RECVFROM, NULL, 0, 0 },	/* 29 = recvfrom */
+	{ AS(accept_args), (sy_call_t *)accept, AUE_ACCEPT, NULL, 0, 0 },	/* 30 = accept */
+	{ AS(getpeername_args), (sy_call_t *)getpeername, AUE_GETPEERNAME, NULL, 0, 0 },	/* 31 = getpeername */
+	{ AS(getsockname_args), (sy_call_t *)getsockname, AUE_GETSOCKNAME, NULL, 0, 0 },	/* 32 = getsockname */
+	{ AS(access_args), (sy_call_t *)access, AUE_ACCESS, NULL, 0, 0 },	/* 33 = access */
+	{ AS(chflags_args), (sy_call_t *)chflags, AUE_CHFLAGS, NULL, 0, 0 },	/* 34 = chflags */
+	{ AS(fchflags_args), (sy_call_t *)fchflags, AUE_FCHFLAGS, NULL, 0, 0 },	/* 35 = fchflags */
+	{ 0, (sy_call_t *)sync, AUE_SYNC, NULL, 0, 0 },		/* 36 = sync */
+	{ AS(kill_args), (sy_call_t *)kill, AUE_KILL, NULL, 0, 0 },	/* 37 = kill */
+	{ compat(AS(ostat_args),stat), AUE_STAT, NULL, 0, 0 },	/* 38 = old stat */
+	{ 0, (sy_call_t *)getppid, AUE_GETPPID, NULL, 0, 0 },		/* 39 = getppid */
+	{ compat(AS(olstat_args),lstat), AUE_LSTAT, NULL, 0, 0 },	/* 40 = old lstat */
+	{ AS(dup_args), (sy_call_t *)dup, AUE_DUP, NULL, 0, 0 },	/* 41 = dup */
+	{ 0, (sy_call_t *)pipe, AUE_PIPE, NULL, 0, 0 },		/* 42 = pipe */
+	{ 0, (sy_call_t *)getegid, AUE_GETEGID, NULL, 0, 0 },		/* 43 = getegid */
+	{ AS(profil_args), (sy_call_t *)profil, AUE_PROFILE, NULL, 0, 0 },	/* 44 = profil */
+	{ AS(ktrace_args), (sy_call_t *)ktrace, AUE_KTRACE, NULL, 0, 0 },	/* 45 = ktrace */
+	{ compat(AS(osigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0 },	/* 46 = old sigaction */
+	{ 0, (sy_call_t *)getgid, AUE_GETGID, NULL, 0, 0 },		/* 47 = getgid */
+	{ compat(AS(osigprocmask_args),sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0 },	/* 48 = old sigprocmask */
+	{ AS(getlogin_args), (sy_call_t *)getlogin, AUE_GETLOGIN, NULL, 0, 0 },	/* 49 = getlogin */
+	{ AS(setlogin_args), (sy_call_t *)setlogin, AUE_SETLOGIN, NULL, 0, 0 },	/* 50 = setlogin */
+	{ AS(acct_args), (sy_call_t *)acct, AUE_ACCT, NULL, 0, 0 },	/* 51 = acct */
+	{ compat(0,sigpending), AUE_SIGPENDING, NULL, 0, 0 },		/* 52 = old sigpending */
+	{ AS(sigaltstack_args), (sy_call_t *)sigaltstack, AUE_SIGALTSTACK, NULL, 0, 0 },	/* 53 = sigaltstack */
+	{ AS(ioctl_args), (sy_call_t *)ioctl, AUE_IOCTL, NULL, 0, 0 },	/* 54 = ioctl */
+	{ AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT, NULL, 0, 0 },	/* 55 = reboot */
+	{ AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE, NULL, 0, 0 },	/* 56 = revoke */
+	{ AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK, NULL, 0, 0 },	/* 57 = symlink */
+	{ AS(readlink_args), (sy_call_t *)readlink, AUE_READLINK, NULL, 0, 0 },	/* 58 = readlink */
+	{ AS(execve_args), (sy_call_t *)execve, AUE_EXECVE, NULL, 0, 0 },	/* 59 = execve */
+	{ AS(umask_args), (sy_call_t *)umask, AUE_UMASK, NULL, 0, 0 },	/* 60 = umask */
+	{ AS(chroot_args), (sy_call_t *)chroot, AUE_CHROOT, NULL, 0, 0 },	/* 61 = chroot */
+	{ compat(AS(ofstat_args),fstat), AUE_FSTAT, NULL, 0, 0 },	/* 62 = old fstat */
+	{ compat(AS(getkerninfo_args),getkerninfo), AUE_NULL, NULL, 0, 0 },	/* 63 = old getkerninfo */
+	{ compat(0,getpagesize), AUE_NULL, NULL, 0, 0 },		/* 64 = old getpagesize */
+	{ AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0 },	/* 65 = msync */
+	{ 0, (sy_call_t *)vfork, AUE_VFORK, NULL, 0, 0 },		/* 66 = vfork */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 67 = obsolete vread */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 68 = obsolete vwrite */
+	{ AS(sbrk_args), (sy_call_t *)sbrk, AUE_SBRK, NULL, 0, 0 },	/* 69 = sbrk */
+	{ AS(sstk_args), (sy_call_t *)sstk, AUE_SSTK, NULL, 0, 0 },	/* 70 = sstk */
+	{ compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0 },	/* 71 = old mmap */
+	{ AS(ovadvise_args), (sy_call_t *)ovadvise, AUE_O_VADVISE, NULL, 0, 0 },	/* 72 = vadvise */
+	{ AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP, NULL, 0, 0 },	/* 73 = munmap */
+	{ AS(mprotect_args), (sy_call_t *)mprotect, AUE_MPROTECT, NULL, 0, 0 },	/* 74 = mprotect */
+	{ AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE, NULL, 0, 0 },	/* 75 = madvise */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 76 = obsolete vhangup */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 77 = obsolete vlimit */
+	{ AS(mincore_args), (sy_call_t *)mincore, AUE_MINCORE, NULL, 0, 0 },	/* 78 = mincore */
+	{ AS(getgroups_args), (sy_call_t *)getgroups, AUE_GETGROUPS, NULL, 0, 0 },	/* 79 = getgroups */
+	{ AS(setgroups_args), (sy_call_t *)setgroups, AUE_SETGROUPS, NULL, 0, 0 },	/* 80 = setgroups */
+	{ 0, (sy_call_t *)getpgrp, AUE_GETPGRP, NULL, 0, 0 },		/* 81 = getpgrp */
+	{ AS(setpgid_args), (sy_call_t *)setpgid, AUE_SETPGRP, NULL, 0, 0 },	/* 82 = setpgid */
+	{ AS(setitimer_args), (sy_call_t *)setitimer, AUE_SETITIMER, NULL, 0, 0 },	/* 83 = setitimer */
+	{ compat(0,wait), AUE_WAIT4, NULL, 0, 0 },			/* 84 = old wait */
+	{ AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON, NULL, 0, 0 },	/* 85 = swapon */
+	{ AS(getitimer_args), (sy_call_t *)getitimer, AUE_GETITIMER, NULL, 0, 0 },	/* 86 = getitimer */
+	{ compat(AS(gethostname_args),gethostname), AUE_SYSCTL, NULL, 0, 0 },	/* 87 = old gethostname */
+	{ compat(AS(sethostname_args),sethostname), AUE_SYSCTL, NULL, 0, 0 },	/* 88 = old sethostname */
+	{ 0, (sy_call_t *)getdtablesize, AUE_GETDTABLESIZE, NULL, 0, 0 },	/* 89 = getdtablesize */
+	{ AS(dup2_args), (sy_call_t *)dup2, AUE_DUP2, NULL, 0, 0 },	/* 90 = dup2 */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 91 = getdopt */
+	{ AS(fcntl_args), (sy_call_t *)fcntl, AUE_FCNTL, NULL, 0, 0 },	/* 92 = fcntl */
+	{ AS(select_args), (sy_call_t *)select, AUE_SELECT, NULL, 0, 0 },	/* 93 = select */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 94 = setdopt */
+	{ AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0 },	/* 95 = fsync */
+	{ AS(setpriority_args), (sy_call_t *)setpriority, AUE_SETPRIORITY, NULL, 0, 0 },	/* 96 = setpriority */
+	{ AS(socket_args), (sy_call_t *)socket, AUE_SOCKET, NULL, 0, 0 },	/* 97 = socket */
+	{ AS(connect_args), (sy_call_t *)connect, AUE_CONNECT, NULL, 0, 0 },	/* 98 = connect */
+	{ compat(AS(accept_args),accept), AUE_ACCEPT, NULL, 0, 0 },	/* 99 = old accept */
+	{ AS(getpriority_args), (sy_call_t *)getpriority, AUE_GETPRIORITY, NULL, 0, 0 },	/* 100 = getpriority */
+	{ compat(AS(osend_args),send), AUE_SEND, NULL, 0, 0 },	/* 101 = old send */
+	{ compat(AS(orecv_args),recv), AUE_RECV, NULL, 0, 0 },	/* 102 = old recv */
+	{ compat(AS(osigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0 },	/* 103 = old sigreturn */
+	{ AS(bind_args), (sy_call_t *)bind, AUE_BIND, NULL, 0, 0 },	/* 104 = bind */
+	{ AS(setsockopt_args), (sy_call_t *)setsockopt, AUE_SETSOCKOPT, NULL, 0, 0 },	/* 105 = setsockopt */
+	{ AS(listen_args), (sy_call_t *)listen, AUE_LISTEN, NULL, 0, 0 },	/* 106 = listen */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 107 = obsolete vtimes */
+	{ compat(AS(osigvec_args),sigvec), AUE_NULL, NULL, 0, 0 },	/* 108 = old sigvec */
+	{ compat(AS(osigblock_args),sigblock), AUE_NULL, NULL, 0, 0 },	/* 109 = old sigblock */
+	{ compat(AS(osigsetmask_args),sigsetmask), AUE_NULL, NULL, 0, 0 },	/* 110 = old sigsetmask */
+	{ compat(AS(osigsuspend_args),sigsuspend), AUE_NULL, NULL, 0, 0 },	/* 111 = old sigsuspend */
+	{ compat(AS(osigstack_args),sigstack), AUE_NULL, NULL, 0, 0 },	/* 112 = old sigstack */
+	{ compat(AS(orecvmsg_args),recvmsg), AUE_RECVMSG, NULL, 0, 0 },	/* 113 = old recvmsg */
+	{ compat(AS(osendmsg_args),sendmsg), AUE_SENDMSG, NULL, 0, 0 },	/* 114 = old sendmsg */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 115 = obsolete vtrace */
+	{ AS(gettimeofday_args), (sy_call_t *)gettimeofday, AUE_GETTIMEOFDAY, NULL, 0, 0 },	/* 116 = gettimeofday */
+	{ AS(getrusage_args), (sy_call_t *)getrusage, AUE_GETRUSAGE, NULL, 0, 0 },	/* 117 = getrusage */
+	{ AS(getsockopt_args), (sy_call_t *)getsockopt, AUE_GETSOCKOPT, NULL, 0, 0 },	/* 118 = getsockopt */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 119 = resuba */
+	{ AS(readv_args), (sy_call_t *)readv, AUE_READV, NULL, 0, 0 },	/* 120 = readv */
+	{ AS(writev_args), (sy_call_t *)writev, AUE_WRITEV, NULL, 0, 0 },	/* 121 = writev */
+	{ AS(settimeofday_args), (sy_call_t *)settimeofday, AUE_SETTIMEOFDAY, NULL, 0, 0 },	/* 122 = settimeofday */
+	{ AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN, NULL, 0, 0 },	/* 123 = fchown */
+	{ AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD, NULL, 0, 0 },	/* 124 = fchmod */
+	{ compat(AS(recvfrom_args),recvfrom), AUE_RECVFROM, NULL, 0, 0 },	/* 125 = old recvfrom */
+	{ AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID, NULL, 0, 0 },	/* 126 = setreuid */
+	{ AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID, NULL, 0, 0 },	/* 127 = setregid */
+	{ AS(rename_args), (sy_call_t *)rename, AUE_RENAME, NULL, 0, 0 },	/* 128 = rename */
+	{ compat(AS(otruncate_args),truncate), AUE_TRUNCATE, NULL, 0, 0 },	/* 129 = old truncate */
+	{ compat(AS(oftruncate_args),ftruncate), AUE_FTRUNCATE, NULL, 0, 0 },	/* 130 = old ftruncate */
+	{ AS(flock_args), (sy_call_t *)flock, AUE_FLOCK, NULL, 0, 0 },	/* 131 = flock */
+	{ AS(mkfifo_args), (sy_call_t *)mkfifo, AUE_MKFIFO, NULL, 0, 0 },	/* 132 = mkfifo */
+	{ AS(sendto_args), (sy_call_t *)sendto, AUE_SENDTO, NULL, 0, 0 },	/* 133 = sendto */
+	{ AS(shutdown_args), (sy_call_t *)shutdown, AUE_SHUTDOWN, NULL, 0, 0 },	/* 134 = shutdown */
+	{ AS(socketpair_args), (sy_call_t *)socketpair, AUE_SOCKETPAIR, NULL, 0, 0 },	/* 135 = socketpair */
+	{ AS(mkdir_args), (sy_call_t *)mkdir, AUE_MKDIR, NULL, 0, 0 },	/* 136 = mkdir */
+	{ AS(rmdir_args), (sy_call_t *)rmdir, AUE_RMDIR, NULL, 0, 0 },	/* 137 = rmdir */
+	{ AS(utimes_args), (sy_call_t *)utimes, AUE_UTIMES, NULL, 0, 0 },	/* 138 = utimes */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 139 = obsolete 4.2 sigreturn */
+	{ AS(adjtime_args), (sy_call_t *)adjtime, AUE_ADJTIME, NULL, 0, 0 },	/* 140 = adjtime */
+	{ compat(AS(ogetpeername_args),getpeername), AUE_GETPEERNAME, NULL, 0, 0 },	/* 141 = old getpeername */
+	{ compat(0,gethostid), AUE_SYSCTL, NULL, 0, 0 },		/* 142 = old gethostid */
+	{ compat(AS(osethostid_args),sethostid), AUE_SYSCTL, NULL, 0, 0 },	/* 143 = old sethostid */
+	{ compat(AS(ogetrlimit_args),getrlimit), AUE_GETRLIMIT, NULL, 0, 0 },	/* 144 = old getrlimit */
+	{ compat(AS(osetrlimit_args),setrlimit), AUE_SETRLIMIT, NULL, 0, 0 },	/* 145 = old setrlimit */
+	{ compat(AS(okillpg_args),killpg), AUE_KILLPG, NULL, 0, 0 },	/* 146 = old killpg */
+	{ 0, (sy_call_t *)setsid, AUE_SETSID, NULL, 0, 0 },		/* 147 = setsid */
+	{ AS(quotactl_args), (sy_call_t *)quotactl, AUE_QUOTACTL, NULL, 0, 0 },	/* 148 = quotactl */
+	{ compat(0,quota), AUE_O_QUOTA, NULL, 0, 0 },			/* 149 = old quota */
+	{ compat(AS(getsockname_args),getsockname), AUE_GETSOCKNAME, NULL, 0, 0 },	/* 150 = old getsockname */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 151 = sem_lock */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 152 = sem_wakeup */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 153 = asyncdaemon */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 154 = nosys */
+	{ AS(nfssvc_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 155 = nfssvc */
+	{ compat(AS(ogetdirentries_args),getdirentries), AUE_GETDIRENTRIES, NULL, 0, 0 },	/* 156 = old getdirentries */
+	{ compat4(AS(freebsd4_statfs_args),statfs), AUE_STATFS, NULL, 0, 0 },	/* 157 = old statfs */
+	{ compat4(AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS, NULL, 0, 0 },	/* 158 = old fstatfs */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 159 = nosys */
+	{ AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH, NULL, 0, 0 },	/* 160 = lgetfh */
+	{ AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH, NULL, 0, 0 },	/* 161 = getfh */
+	{ AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_SYSCTL, NULL, 0, 0 },	/* 162 = getdomainname */
+	{ AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0, 0 },	/* 163 = setdomainname */
+	{ AS(uname_args), (sy_call_t *)uname, AUE_NULL, NULL, 0, 0 },	/* 164 = uname */
+	{ AS(sysarch_args), (sy_call_t *)sysarch, AUE_SYSARCH, NULL, 0, 0 },	/* 165 = sysarch */
+	{ AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0 },	/* 166 = rtprio */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 167 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 168 = nosys */
+	{ AS(semsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 169 = semsys */
+	{ AS(msgsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 170 = msgsys */
+	{ AS(shmsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 171 = shmsys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 172 = nosys */
+	{ AS(freebsd6_pread_args), (sy_call_t *)freebsd6_pread, AUE_PREAD, NULL, 0, 0 },	/* 173 = freebsd6_pread */
+	{ AS(freebsd6_pwrite_args), (sy_call_t *)freebsd6_pwrite, AUE_PWRITE, NULL, 0, 0 },	/* 174 = freebsd6_pwrite */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 175 = nosys */
+	{ AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0 },	/* 176 = ntp_adjtime */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 177 = sfork */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 178 = getdescriptor */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 179 = setdescriptor */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 180 = nosys */
+	{ AS(setgid_args), (sy_call_t *)setgid, AUE_SETGID, NULL, 0, 0 },	/* 181 = setgid */
+	{ AS(setegid_args), (sy_call_t *)setegid, AUE_SETEGID, NULL, 0, 0 },	/* 182 = setegid */
+	{ AS(seteuid_args), (sy_call_t *)seteuid, AUE_SETEUID, NULL, 0, 0 },	/* 183 = seteuid */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 184 = lfs_bmapv */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 185 = lfs_markv */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 186 = lfs_segclean */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 187 = lfs_segwait */
+	{ AS(stat_args), (sy_call_t *)stat, AUE_STAT, NULL, 0, 0 },	/* 188 = stat */
+	{ AS(fstat_args), (sy_call_t *)fstat, AUE_FSTAT, NULL, 0, 0 },	/* 189 = fstat */
+	{ AS(lstat_args), (sy_call_t *)lstat, AUE_LSTAT, NULL, 0, 0 },	/* 190 = lstat */
+	{ AS(pathconf_args), (sy_call_t *)pathconf, AUE_PATHCONF, NULL, 0, 0 },	/* 191 = pathconf */
+	{ AS(fpathconf_args), (sy_call_t *)fpathconf, AUE_FPATHCONF, NULL, 0, 0 },	/* 192 = fpathconf */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 193 = nosys */
+	{ AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0 },	/* 194 = getrlimit */
+	{ AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0 },	/* 195 = setrlimit */
+	{ AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0 },	/* 196 = getdirentries */
+	{ AS(freebsd6_mmap_args), (sy_call_t *)freebsd6_mmap, AUE_MMAP, NULL, 0, 0 },	/* 197 = freebsd6_mmap */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },		/* 198 = __syscall */
+	{ AS(freebsd6_lseek_args), (sy_call_t *)freebsd6_lseek, AUE_LSEEK, NULL, 0, 0 },	/* 199 = freebsd6_lseek */
+	{ AS(freebsd6_truncate_args), (sy_call_t *)freebsd6_truncate, AUE_TRUNCATE, NULL, 0, 0 },	/* 200 = freebsd6_truncate */
+	{ AS(freebsd6_ftruncate_args), (sy_call_t *)freebsd6_ftruncate, AUE_FTRUNCATE, NULL, 0, 0 },	/* 201 = freebsd6_ftruncate */
+	{ AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL, NULL, 0, 0 },	/* 202 = __sysctl */
+	{ AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0 },	/* 203 = mlock */
+	{ AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0 },	/* 204 = munlock */
+	{ AS(undelete_args), (sy_call_t *)undelete, AUE_UNDELETE, NULL, 0, 0 },	/* 205 = undelete */
+	{ AS(futimes_args), (sy_call_t *)futimes, AUE_FUTIMES, NULL, 0, 0 },	/* 206 = futimes */
+	{ AS(getpgid_args), (sy_call_t *)getpgid, AUE_GETPGID, NULL, 0, 0 },	/* 207 = getpgid */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 208 = newreboot */
+	{ AS(poll_args), (sy_call_t *)poll, AUE_POLL, NULL, 0, 0 },	/* 209 = poll */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 210 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 211 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 212 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 213 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 214 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 215 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 216 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 217 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 218 = lkmnosys */
+	{ AS(nosys_args), (sy_call_t *)lkmnosys, AUE_NULL, NULL, 0, 0 },	/* 219 = lkmnosys */
+	{ AS(__semctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 220 = __semctl */
+	{ AS(semget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 221 = semget */
+	{ AS(semop_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 222 = semop */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 223 = semconfig */
+	{ AS(msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 224 = msgctl */
+	{ AS(msgget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 225 = msgget */
+	{ AS(msgsnd_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 226 = msgsnd */
+	{ AS(msgrcv_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 227 = msgrcv */
+	{ AS(shmat_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 228 = shmat */
+	{ AS(shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 229 = shmctl */
+	{ AS(shmdt_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 230 = shmdt */
+	{ AS(shmget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 231 = shmget */
+	{ AS(clock_gettime_args), (sy_call_t *)clock_gettime, AUE_NULL, NULL, 0, 0 },	/* 232 = clock_gettime */
+	{ AS(clock_settime_args), (sy_call_t *)clock_settime, AUE_CLOCK_SETTIME, NULL, 0, 0 },	/* 233 = clock_settime */
+	{ AS(clock_getres_args), (sy_call_t *)clock_getres, AUE_NULL, NULL, 0, 0 },	/* 234 = clock_getres */
+	{ AS(ktimer_create_args), (sy_call_t *)ktimer_create, AUE_NULL, NULL, 0, 0 },	/* 235 = ktimer_create */
+	{ AS(ktimer_delete_args), (sy_call_t *)ktimer_delete, AUE_NULL, NULL, 0, 0 },	/* 236 = ktimer_delete */
+	{ AS(ktimer_settime_args), (sy_call_t *)ktimer_settime, AUE_NULL, NULL, 0, 0 },	/* 237 = ktimer_settime */
+	{ AS(ktimer_gettime_args), (sy_call_t *)ktimer_gettime, AUE_NULL, NULL, 0, 0 },	/* 238 = ktimer_gettime */
+	{ AS(ktimer_getoverrun_args), (sy_call_t *)ktimer_getoverrun, AUE_NULL, NULL, 0, 0 },	/* 239 = ktimer_getoverrun */
+	{ AS(nanosleep_args), (sy_call_t *)nanosleep, AUE_NULL, NULL, 0, 0 },	/* 240 = nanosleep */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 241 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 242 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 243 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 244 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 245 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 246 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 247 = nosys */
+	{ AS(ntp_gettime_args), (sy_call_t *)ntp_gettime, AUE_NULL, NULL, 0, 0 },	/* 248 = ntp_gettime */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 249 = nosys */
+	{ AS(minherit_args), (sy_call_t *)minherit, AUE_MINHERIT, NULL, 0, 0 },	/* 250 = minherit */
+	{ AS(rfork_args), (sy_call_t *)rfork, AUE_RFORK, NULL, 0, 0 },	/* 251 = rfork */
+	{ AS(openbsd_poll_args), (sy_call_t *)openbsd_poll, AUE_POLL, NULL, 0, 0 },	/* 252 = openbsd_poll */
+	{ 0, (sy_call_t *)issetugid, AUE_ISSETUGID, NULL, 0, 0 },	/* 253 = issetugid */
+	{ AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0 },	/* 254 = lchown */
+	{ AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 255 = aio_read */
+	{ AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 256 = aio_write */
+	{ AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 257 = lio_listio */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 258 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 259 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 260 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 261 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 262 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 263 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 264 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 265 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 266 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 267 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 268 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 269 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 270 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 271 = nosys */
+	{ AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0 },	/* 272 = getdents */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 273 = nosys */
+	{ AS(lchmod_args), (sy_call_t *)lchmod, AUE_LCHMOD, NULL, 0, 0 },	/* 274 = lchmod */
+	{ AS(lchown_args), (sy_call_t *)lchown, AUE_LCHOWN, NULL, 0, 0 },	/* 275 = netbsd_lchown */
+	{ AS(lutimes_args), (sy_call_t *)lutimes, AUE_LUTIMES, NULL, 0, 0 },	/* 276 = lutimes */
+	{ AS(msync_args), (sy_call_t *)msync, AUE_MSYNC, NULL, 0, 0 },	/* 277 = netbsd_msync */
+	{ AS(nstat_args), (sy_call_t *)nstat, AUE_STAT, NULL, 0, 0 },	/* 278 = nstat */
+	{ AS(nfstat_args), (sy_call_t *)nfstat, AUE_FSTAT, NULL, 0, 0 },	/* 279 = nfstat */
+	{ AS(nlstat_args), (sy_call_t *)nlstat, AUE_LSTAT, NULL, 0, 0 },	/* 280 = nlstat */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 281 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 282 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 283 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 284 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 285 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 286 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 287 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 288 = nosys */
+	{ AS(preadv_args), (sy_call_t *)preadv, AUE_PREADV, NULL, 0, 0 },	/* 289 = preadv */
+	{ AS(pwritev_args), (sy_call_t *)pwritev, AUE_PWRITEV, NULL, 0, 0 },	/* 290 = pwritev */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 291 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 292 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 293 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 294 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 295 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 296 = nosys */
+	{ compat4(AS(freebsd4_fhstatfs_args),fhstatfs), AUE_FHSTATFS, NULL, 0, 0 },	/* 297 = old fhstatfs */
+	{ AS(fhopen_args), (sy_call_t *)fhopen, AUE_FHOPEN, NULL, 0, 0 },	/* 298 = fhopen */
+	{ AS(fhstat_args), (sy_call_t *)fhstat, AUE_FHSTAT, NULL, 0, 0 },	/* 299 = fhstat */
+	{ AS(modnext_args), (sy_call_t *)modnext, AUE_NULL, NULL, 0, 0 },	/* 300 = modnext */
+	{ AS(modstat_args), (sy_call_t *)modstat, AUE_NULL, NULL, 0, 0 },	/* 301 = modstat */
+	{ AS(modfnext_args), (sy_call_t *)modfnext, AUE_NULL, NULL, 0, 0 },	/* 302 = modfnext */
+	{ AS(modfind_args), (sy_call_t *)modfind, AUE_NULL, NULL, 0, 0 },	/* 303 = modfind */
+	{ AS(kldload_args), (sy_call_t *)kldload, AUE_MODLOAD, NULL, 0, 0 },	/* 304 = kldload */
+	{ AS(kldunload_args), (sy_call_t *)kldunload, AUE_MODUNLOAD, NULL, 0, 0 },	/* 305 = kldunload */
+	{ AS(kldfind_args), (sy_call_t *)kldfind, AUE_NULL, NULL, 0, 0 },	/* 306 = kldfind */
+	{ AS(kldnext_args), (sy_call_t *)kldnext, AUE_NULL, NULL, 0, 0 },	/* 307 = kldnext */
+	{ AS(kldstat_args), (sy_call_t *)kldstat, AUE_NULL, NULL, 0, 0 },	/* 308 = kldstat */
+	{ AS(kldfirstmod_args), (sy_call_t *)kldfirstmod, AUE_NULL, NULL, 0, 0 },	/* 309 = kldfirstmod */
+	{ AS(getsid_args), (sy_call_t *)getsid, AUE_GETSID, NULL, 0, 0 },	/* 310 = getsid */
+	{ AS(setresuid_args), (sy_call_t *)setresuid, AUE_SETRESUID, NULL, 0, 0 },	/* 311 = setresuid */
+	{ AS(setresgid_args), (sy_call_t *)setresgid, AUE_SETRESGID, NULL, 0, 0 },	/* 312 = setresgid */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 313 = obsolete signanosleep */
+	{ AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 314 = aio_return */
+	{ AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 315 = aio_suspend */
+	{ AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 316 = aio_cancel */
+	{ AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 317 = aio_error */
+	{ AS(oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 318 = oaio_read */
+	{ AS(oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 319 = oaio_write */
+	{ AS(olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 320 = olio_listio */
+	{ 0, (sy_call_t *)yield, AUE_NULL, NULL, 0, 0 },		/* 321 = yield */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 322 = obsolete thr_sleep */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 323 = obsolete thr_wakeup */
+	{ AS(mlockall_args), (sy_call_t *)mlockall, AUE_MLOCKALL, NULL, 0, 0 },	/* 324 = mlockall */
+	{ 0, (sy_call_t *)munlockall, AUE_MUNLOCKALL, NULL, 0, 0 },	/* 325 = munlockall */
+	{ AS(__getcwd_args), (sy_call_t *)__getcwd, AUE_GETCWD, NULL, 0, 0 },	/* 326 = __getcwd */
+	{ AS(sched_setparam_args), (sy_call_t *)sched_setparam, AUE_NULL, NULL, 0, 0 },	/* 327 = sched_setparam */
+	{ AS(sched_getparam_args), (sy_call_t *)sched_getparam, AUE_NULL, NULL, 0, 0 },	/* 328 = sched_getparam */
+	{ AS(sched_setscheduler_args), (sy_call_t *)sched_setscheduler, AUE_NULL, NULL, 0, 0 },	/* 329 = sched_setscheduler */
+	{ AS(sched_getscheduler_args), (sy_call_t *)sched_getscheduler, AUE_NULL, NULL, 0, 0 },	/* 330 = sched_getscheduler */
+	{ 0, (sy_call_t *)sched_yield, AUE_NULL, NULL, 0, 0 },	/* 331 = sched_yield */
+	{ AS(sched_get_priority_max_args), (sy_call_t *)sched_get_priority_max, AUE_NULL, NULL, 0, 0 },	/* 332 = sched_get_priority_max */
+	{ AS(sched_get_priority_min_args), (sy_call_t *)sched_get_priority_min, AUE_NULL, NULL, 0, 0 },	/* 333 = sched_get_priority_min */
+	{ AS(sched_rr_get_interval_args), (sy_call_t *)sched_rr_get_interval, AUE_NULL, NULL, 0, 0 },	/* 334 = sched_rr_get_interval */
+	{ AS(utrace_args), (sy_call_t *)utrace, AUE_NULL, NULL, 0, 0 },	/* 335 = utrace */
+	{ compat4(AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE, NULL, 0, 0 },	/* 336 = old sendfile */
+	{ AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL, NULL, 0, 0 },	/* 337 = kldsym */
+	{ AS(jail_args), (sy_call_t *)jail, AUE_JAIL, NULL, 0, 0 },	/* 338 = jail */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 339 = pioctl */
+	{ AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0 },	/* 340 = sigprocmask */
+	{ AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0 },	/* 341 = sigsuspend */
+	{ compat4(AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION, NULL, 0, 0 },	/* 342 = old sigaction */
+	{ AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING, NULL, 0, 0 },	/* 343 = sigpending */
+	{ compat4(AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN, NULL, 0, 0 },	/* 344 = old sigreturn */
+	{ AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT, NULL, 0, 0 },	/* 345 = sigtimedwait */
+	{ AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL, NULL, 0, 0 },	/* 346 = sigwaitinfo */
+	{ AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL, NULL, 0, 0 },	/* 347 = __acl_get_file */
+	{ AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL, NULL, 0, 0 },	/* 348 = __acl_set_file */
+	{ AS(__acl_get_fd_args), (sy_call_t *)__acl_get_fd, AUE_NULL, NULL, 0, 0 },	/* 349 = __acl_get_fd */
+	{ AS(__acl_set_fd_args), (sy_call_t *)__acl_set_fd, AUE_NULL, NULL, 0, 0 },	/* 350 = __acl_set_fd */
+	{ AS(__acl_delete_file_args), (sy_call_t *)__acl_delete_file, AUE_NULL, NULL, 0, 0 },	/* 351 = __acl_delete_file */
+	{ AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL, NULL, 0, 0 },	/* 352 = __acl_delete_fd */
+	{ AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL, NULL, 0, 0 },	/* 353 = __acl_aclcheck_file */
+	{ AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL, NULL, 0, 0 },	/* 354 = __acl_aclcheck_fd */
+	{ AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL, NULL, 0, 0 },	/* 355 = extattrctl */
+	{ AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE, NULL, 0, 0 },	/* 356 = extattr_set_file */
+	{ AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE, NULL, 0, 0 },	/* 357 = extattr_get_file */
+	{ AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE, NULL, 0, 0 },	/* 358 = extattr_delete_file */
+	{ AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 359 = aio_waitcomplete */
+	{ AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID, NULL, 0, 0 },	/* 360 = getresuid */
+	{ AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID, NULL, 0, 0 },	/* 361 = getresgid */
+	{ 0, (sy_call_t *)kqueue, AUE_KQUEUE, NULL, 0, 0 },		/* 362 = kqueue */
+	{ AS(kevent_args), (sy_call_t *)kevent, AUE_NULL, NULL, 0, 0 },	/* 363 = kevent */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 364 = __cap_get_proc */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 365 = __cap_set_proc */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 366 = __cap_get_fd */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 367 = __cap_get_file */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 368 = __cap_set_fd */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 369 = __cap_set_file */
+	{ AS(nosys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 370 = lkmressys */
+	{ AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0 },	/* 371 = extattr_set_fd */
+	{ AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0 },	/* 372 = extattr_get_fd */
+	{ AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0 },	/* 373 = extattr_delete_fd */
+	{ AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL, NULL, 0, 0 },	/* 374 = __setugid */
+	{ AS(nfsclnt_args), (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },	/* 375 = nfsclnt */
+	{ AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS, NULL, 0, 0 },	/* 376 = eaccess */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 377 = afs_syscall */
+	{ AS(nmount_args), (sy_call_t *)nmount, AUE_NMOUNT, NULL, 0, 0 },	/* 378 = nmount */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 379 = kse_exit */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 380 = kse_wakeup */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 381 = kse_create */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 382 = kse_thr_interrupt */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 383 = kse_release */
+	{ AS(__mac_get_proc_args), (sy_call_t *)__mac_get_proc, AUE_NULL, NULL, 0, 0 },	/* 384 = __mac_get_proc */
+	{ AS(__mac_set_proc_args), (sy_call_t *)__mac_set_proc, AUE_NULL, NULL, 0, 0 },	/* 385 = __mac_set_proc */
+	{ AS(__mac_get_fd_args), (sy_call_t *)__mac_get_fd, AUE_NULL, NULL, 0, 0 },	/* 386 = __mac_get_fd */
+	{ AS(__mac_get_file_args), (sy_call_t *)__mac_get_file, AUE_NULL, NULL, 0, 0 },	/* 387 = __mac_get_file */
+	{ AS(__mac_set_fd_args), (sy_call_t *)__mac_set_fd, AUE_NULL, NULL, 0, 0 },	/* 388 = __mac_set_fd */
+	{ AS(__mac_set_file_args), (sy_call_t *)__mac_set_file, AUE_NULL, NULL, 0, 0 },	/* 389 = __mac_set_file */
+	{ AS(kenv_args), (sy_call_t *)kenv, AUE_NULL, NULL, 0, 0 },	/* 390 = kenv */
+	{ AS(lchflags_args), (sy_call_t *)lchflags, AUE_LCHFLAGS, NULL, 0, 0 },	/* 391 = lchflags */
+	{ AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0 },	/* 392 = uuidgen */
+	{ AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE, NULL, 0, 0 },	/* 393 = sendfile */
+	{ AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL, NULL, 0, 0 },	/* 394 = mac_syscall */
+	{ AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0 },	/* 395 = getfsstat */
+	{ AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0 },	/* 396 = statfs */
+	{ AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0 },	/* 397 = fstatfs */
+	{ AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0 },	/* 398 = fhstatfs */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 399 = nosys */
+	{ AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 400 = ksem_close */
+	{ AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 401 = ksem_post */
+	{ AS(ksem_wait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 402 = ksem_wait */
+	{ AS(ksem_trywait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 403 = ksem_trywait */
+	{ AS(ksem_init_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 404 = ksem_init */
+	{ AS(ksem_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 405 = ksem_open */
+	{ AS(ksem_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 406 = ksem_unlink */
+	{ AS(ksem_getvalue_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 407 = ksem_getvalue */
+	{ AS(ksem_destroy_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 408 = ksem_destroy */
+	{ AS(__mac_get_pid_args), (sy_call_t *)__mac_get_pid, AUE_NULL, NULL, 0, 0 },	/* 409 = __mac_get_pid */
+	{ AS(__mac_get_link_args), (sy_call_t *)__mac_get_link, AUE_NULL, NULL, 0, 0 },	/* 410 = __mac_get_link */
+	{ AS(__mac_set_link_args), (sy_call_t *)__mac_set_link, AUE_NULL, NULL, 0, 0 },	/* 411 = __mac_set_link */
+	{ AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK, NULL, 0, 0 },	/* 412 = extattr_set_link */
+	{ AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK, NULL, 0, 0 },	/* 413 = extattr_get_link */
+	{ AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK, NULL, 0, 0 },	/* 414 = extattr_delete_link */
+	{ AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL, NULL, 0, 0 },	/* 415 = __mac_execve */
+	{ AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION, NULL, 0, 0 },	/* 416 = sigaction */
+	{ AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN, NULL, 0, 0 },	/* 417 = sigreturn */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 418 = __xstat */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 419 = __xfstat */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 420 = __xlstat */
+	{ AS(getcontext_args), (sy_call_t *)getcontext, AUE_NULL, NULL, 0, 0 },	/* 421 = getcontext */
+	{ AS(setcontext_args), (sy_call_t *)setcontext, AUE_NULL, NULL, 0, 0 },	/* 422 = setcontext */
+	{ AS(swapcontext_args), (sy_call_t *)swapcontext, AUE_NULL, NULL, 0, 0 },	/* 423 = swapcontext */
+	{ AS(swapoff_args), (sy_call_t *)swapoff, AUE_SWAPOFF, NULL, 0, 0 },	/* 424 = swapoff */
+	{ AS(__acl_get_link_args), (sy_call_t *)__acl_get_link, AUE_NULL, NULL, 0, 0 },	/* 425 = __acl_get_link */
+	{ AS(__acl_set_link_args), (sy_call_t *)__acl_set_link, AUE_NULL, NULL, 0, 0 },	/* 426 = __acl_set_link */
+	{ AS(__acl_delete_link_args), (sy_call_t *)__acl_delete_link, AUE_NULL, NULL, 0, 0 },	/* 427 = __acl_delete_link */
+	{ AS(__acl_aclcheck_link_args), (sy_call_t *)__acl_aclcheck_link, AUE_NULL, NULL, 0, 0 },	/* 428 = __acl_aclcheck_link */
+	{ AS(sigwait_args), (sy_call_t *)sigwait, AUE_SIGWAIT, NULL, 0, 0 },	/* 429 = sigwait */
+	{ AS(thr_create_args), (sy_call_t *)thr_create, AUE_NULL, NULL, 0, 0 },	/* 430 = thr_create */
+	{ AS(thr_exit_args), (sy_call_t *)thr_exit, AUE_NULL, NULL, 0, 0 },	/* 431 = thr_exit */
+	{ AS(thr_self_args), (sy_call_t *)thr_self, AUE_NULL, NULL, 0, 0 },	/* 432 = thr_self */
+	{ AS(thr_kill_args), (sy_call_t *)thr_kill, AUE_NULL, NULL, 0, 0 },	/* 433 = thr_kill */
+	{ AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL, NULL, 0, 0 },	/* 434 = _umtx_lock */
+	{ AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL, NULL, 0, 0 },	/* 435 = _umtx_unlock */
+	{ AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL, NULL, 0, 0 },	/* 436 = jail_attach */
+	{ AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0 },	/* 437 = extattr_list_fd */
+	{ AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0 },	/* 438 = extattr_list_file */
+	{ AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0 },	/* 439 = extattr_list_link */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 440 = kse_switchin */
+	{ AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 441 = ksem_timedwait */
+	{ AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL, NULL, 0, 0 },	/* 442 = thr_suspend */
+	{ AS(thr_wake_args), (sy_call_t *)thr_wake, AUE_NULL, NULL, 0, 0 },	/* 443 = thr_wake */
+	{ AS(kldunloadf_args), (sy_call_t *)kldunloadf, AUE_MODUNLOAD, NULL, 0, 0 },	/* 444 = kldunloadf */
+	{ AS(audit_args), (sy_call_t *)audit, AUE_AUDIT, NULL, 0, 0 },	/* 445 = audit */
+	{ AS(auditon_args), (sy_call_t *)auditon, AUE_AUDITON, NULL, 0, 0 },	/* 446 = auditon */
+	{ AS(getauid_args), (sy_call_t *)getauid, AUE_GETAUID, NULL, 0, 0 },	/* 447 = getauid */
+	{ AS(setauid_args), (sy_call_t *)setauid, AUE_SETAUID, NULL, 0, 0 },	/* 448 = setauid */
+	{ AS(getaudit_args), (sy_call_t *)getaudit, AUE_GETAUDIT, NULL, 0, 0 },	/* 449 = getaudit */
+	{ AS(setaudit_args), (sy_call_t *)setaudit, AUE_SETAUDIT, NULL, 0, 0 },	/* 450 = setaudit */
+	{ AS(getaudit_addr_args), (sy_call_t *)getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0 },	/* 451 = getaudit_addr */
+	{ AS(setaudit_addr_args), (sy_call_t *)setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0 },	/* 452 = setaudit_addr */
+	{ AS(auditctl_args), (sy_call_t *)auditctl, AUE_AUDITCTL, NULL, 0, 0 },	/* 453 = auditctl */
+	{ AS(_umtx_op_args), (sy_call_t *)_umtx_op, AUE_NULL, NULL, 0, 0 },	/* 454 = _umtx_op */
+	{ AS(thr_new_args), (sy_call_t *)thr_new, AUE_NULL, NULL, 0, 0 },	/* 455 = thr_new */
+	{ AS(sigqueue_args), (sy_call_t *)sigqueue, AUE_NULL, NULL, 0, 0 },	/* 456 = sigqueue */
+	{ AS(kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 457 = kmq_open */
+	{ AS(kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 458 = kmq_setattr */
+	{ AS(kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 459 = kmq_timedreceive */
+	{ AS(kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 460 = kmq_timedsend */
+	{ AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 461 = kmq_notify */
+	{ AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 462 = kmq_unlink */
+	{ AS(abort2_args), (sy_call_t *)abort2, AUE_NULL, NULL, 0, 0 },	/* 463 = abort2 */
+	{ AS(thr_set_name_args), (sy_call_t *)thr_set_name, AUE_NULL, NULL, 0, 0 },	/* 464 = thr_set_name */
+	{ AS(aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 },	/* 465 = aio_fsync */
+	{ AS(rtprio_thread_args), (sy_call_t *)rtprio_thread, AUE_RTPRIO, NULL, 0, 0 },	/* 466 = rtprio_thread */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 467 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 468 = nosys */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 469 = __getpath_fromfd */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 470 = __getpath_fromaddr */
+	{ AS(sctp_peeloff_args), (sy_call_t *)sctp_peeloff, AUE_NULL, NULL, 0, 0 },	/* 471 = sctp_peeloff */
+	{ AS(sctp_generic_sendmsg_args), (sy_call_t *)sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0 },	/* 472 = sctp_generic_sendmsg */
+	{ AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0 },	/* 473 = sctp_generic_sendmsg_iov */
+	{ AS(sctp_generic_recvmsg_args), (sy_call_t *)sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0 },	/* 474 = sctp_generic_recvmsg */
+	{ AS(pread_args), (sy_call_t *)pread, AUE_PREAD, NULL, 0, 0 },	/* 475 = pread */
+	{ AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE, NULL, 0, 0 },	/* 476 = pwrite */
+	{ AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP, NULL, 0, 0 },	/* 477 = mmap */
+	{ AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK, NULL, 0, 0 },	/* 478 = lseek */
+	{ AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE, NULL, 0, 0 },	/* 479 = truncate */
+	{ AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE, NULL, 0, 0 },	/* 480 = ftruncate */
+	{ AS(thr_kill2_args), (sy_call_t *)thr_kill2, AUE_KILL, NULL, 0, 0 },	/* 481 = thr_kill2 */
 };

==== //depot/projects/bike_sched/sys/kern/systrace_args.c#2 (text+ko) ====

@@ -2067,42 +2067,6 @@
 		*n_args = 3;
 		break;
 	}
-	/* kse_exit */
-	case 379: {
-		*n_args = 0;
-		break;
-	}
-	/* kse_wakeup */
-	case 380: {
-		struct kse_wakeup_args *p = params;
-		uarg[0] = (intptr_t) p->mbx; /* struct kse_mailbox * */
-		*n_args = 1;
-		break;
-	}
-	/* kse_create */

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:38:14 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 2955916A421; Sat,  1 Dec 2007 21:38: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 E335F16A41B
	for ; Sat,  1 Dec 2007 21:38:13 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id B1E9013C455
	for ; Sat,  1 Dec 2007 21:38:13 +0000 (UTC)
	(envelope-from peter@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 lB1LcDEh075143
	for ; Sat, 1 Dec 2007 21:38:13 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LcDXH075140
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:38:13 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:38:13 GMT
Message-Id: <200712012138.lB1LcDXH075140@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129903 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, 01 Dec 2007 21:38:14 -0000

http://perforce.freebsd.org/chv.cgi?CH=129903

Change 129903 by peter@peter_daintree on 2007/12/01 21:37:31

	IFC

Affected files ...

.. //depot/projects/bike_sched/sys/kern/sched_core.c#3 delete

Differences ...

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 21:51:28 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7E82116A421; Sat,  1 Dec 2007 21:51:28 +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 105AE16A419
	for ; Sat,  1 Dec 2007 21:51:28 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id EA88213C44B
	for ; Sat,  1 Dec 2007 21:51:27 +0000 (UTC)
	(envelope-from peter@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 lB1LpRbU077150
	for ; Sat, 1 Dec 2007 21:51:27 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1LpRUd077147
	for perforce@freebsd.org; Sat, 1 Dec 2007 21:51:27 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 21:51:27 GMT
Message-Id: <200712012151.lB1LpRUd077147@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129904 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, 01 Dec 2007 21:51:28 -0000

http://perforce.freebsd.org/chv.cgi?CH=129904

Change 129904 by peter@peter_daintree on 2007/12/01 21:50:42

	IFC

Affected files ...

.. //depot/projects/bike_sched/sys/dev/si/si_pci.c#3 integrate
.. //depot/projects/bike_sched/sys/i386/i386/intr_machdep.c#6 integrate
.. //depot/projects/bike_sched/sys/kern/init_sysent.c#6 integrate
.. //depot/projects/bike_sched/sys/kern/kern_clock.c#4 integrate
.. //depot/projects/bike_sched/sys/kern/kern_intr.c#5 integrate
.. //depot/projects/bike_sched/sys/kern/kern_switch.c#4 integrate

Differences ...

==== //depot/projects/bike_sched/sys/dev/si/si_pci.c#3 (text+ko) ====

@@ -19,7 +19,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/dev/si/si_pci.c,v 1.9 2007/02/23 19:33:07 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/si/si_pci.c,v 1.10 2007/12/01 20:39:47 peter Exp $");
 
 #include 
 #include 
@@ -105,6 +105,29 @@
 		goto fail;
 	}
 
+	if (pci_get_devid(dev) == 0x200011cb) {
+		int rid;
+		struct resource *plx_res;
+		uint32_t *addr;
+		uint32_t oldvalue;
+
+		/* Perform a PLX control register fixup */
+		rid = PCIR_BAR(0);
+		plx_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+		    RF_ACTIVE);
+		if (plx_res == NULL) {
+			device_printf(dev, "couldn't map plx registers\n");
+		} else {
+			addr = rman_get_virtual(plx_res);
+			oldvalue = addr[0x50 / 4];
+			if (oldvalue != 0x18260000) {
+				device_printf(dev, "PLX register 0x50: 0x%08x changed to 0x%08x\n", oldvalue, 0x18260000);
+				addr[0x50 / 4] = 0x18260000;
+			}
+			bus_release_resource(dev, SYS_RES_MEMORY, rid, plx_res);
+		}
+	}
+
 	error = siattach(dev);
 	if (error)
 		goto fail;

==== //depot/projects/bike_sched/sys/i386/i386/intr_machdep.c#6 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/i386/intr_machdep.c,v 1.19 2006/07/12 21:22:43 jhb Exp $
+ * $FreeBSD: src/sys/i386/i386/intr_machdep.c,v 1.30 2007/11/21 04:03:50 scottl Exp $
  */
 
 /*
@@ -42,15 +42,17 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 #ifdef DDB
 #include 
 #endif
@@ -60,8 +62,15 @@
 typedef void (*mask_fn)(void *);
 
 static int intrcnt_index;
-static struct mtx intr_table_lock;
+static struct sx intr_table_lock;
+static struct mtx intrcnt_lock;
+static STAILQ_HEAD(, pic) pics;
 
+#ifdef INTR_FILTER
+static void intr_eoi_src(void *arg);
+static void intr_disab_eoi_src(void *arg);
+static void intr_event_stray(void *cookie);
+#endif
 struct intsrc *interrupt_sources[NUM_IO_INTS];
 
 #ifdef SMP
@@ -71,10 +80,45 @@
 #endif
 
 static void	intr_init(void *__dummy);
+static int	intr_pic_registered(struct pic *pic);
 static void	intrcnt_setname(const char *name, int index);
 static void	intrcnt_updatename(struct intsrc *is);
 static void	intrcnt_register(struct intsrc *is);
 
+static int
+intr_pic_registered(struct pic *pic)
+{
+	struct pic *p;
+
+	STAILQ_FOREACH(p, &pics, pics) {
+		if (p == pic)
+			return (1);
+	}
+	return (0);
+}
+
+/*
+ * Register a new interrupt controller (PIC).  This is to support suspend
+ * and resume where we suspend/resume controllers rather than individual
+ * sources.  This also allows controllers with no active sources (such as
+ * 8259As in a system using the APICs) to participate in suspend and resume.
+ */
+int
+intr_register_pic(struct pic *pic)
+{
+	int error;
+
+	sx_xlock(&intr_table_lock);
+	if (intr_pic_registered(pic))
+		error = EBUSY;
+	else {
+		STAILQ_INSERT_TAIL(&pics, pic, pics);
+		error = 0;
+	}
+	sx_xunlock(&intr_table_lock);
+	return (error);
+}
+
 /*
  * Register a new interrupt source with the global interrupt system.
  * The global interrupts need to be disabled when this function is
@@ -85,23 +129,30 @@
 {
 	int error, vector;
 
+	KASSERT(intr_pic_registered(isrc->is_pic), ("unregistered PIC"));
 	vector = isrc->is_pic->pic_vector(isrc);
 	if (interrupt_sources[vector] != NULL)
 		return (EEXIST);
+#ifdef INTR_FILTER
+	error = intr_event_create(&isrc->is_event, isrc, 0,
+	    (mask_fn)isrc->is_pic->pic_enable_source,
+	    intr_eoi_src, intr_disab_eoi_src, "irq%d:", vector);
+#else
 	error = intr_event_create(&isrc->is_event, isrc, 0,
 	    (mask_fn)isrc->is_pic->pic_enable_source, "irq%d:", vector);
+#endif
 	if (error)
 		return (error);
-	mtx_lock_spin(&intr_table_lock);
+	sx_xlock(&intr_table_lock);
 	if (interrupt_sources[vector] != NULL) {
-		mtx_unlock_spin(&intr_table_lock);
+		sx_xunlock(&intr_table_lock);
 		intr_event_destroy(isrc->is_event);
 		return (EEXIST);
 	}
 	intrcnt_register(isrc);
 	interrupt_sources[vector] = isrc;
-	isrc->is_enabled = 0;
-	mtx_unlock_spin(&intr_table_lock);
+	isrc->is_handlers = 0;
+	sx_xunlock(&intr_table_lock);
 	return (0);
 }
 
@@ -113,8 +164,8 @@
 }
 
 int
-intr_add_handler(const char *name, int vector, driver_intr_t handler,
-    void *arg, enum intr_type flags, void **cookiep)
+intr_add_handler(const char *name, int vector, driver_filter_t filter,
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
 {
 	struct intsrc *isrc;
 	int error;
@@ -122,22 +173,21 @@
 	isrc = intr_lookup_source(vector);
 	if (isrc == NULL)
 		return (EINVAL);
-	error = intr_event_add_handler(isrc->is_event, name, handler, arg,
-	    intr_priority(flags), flags, cookiep);
+	error = intr_event_add_handler(isrc->is_event, name, filter, handler,
+	    arg, intr_priority(flags), flags, cookiep);
 	if (error == 0) {
+		sx_xlock(&intr_table_lock);
 		intrcnt_updatename(isrc);
-		mtx_lock_spin(&intr_table_lock);
-		if (!isrc->is_enabled) {
-			isrc->is_enabled = 1;
+		isrc->is_handlers++;
+		if (isrc->is_handlers == 1) {
 #ifdef SMP
 			if (assign_cpu)
 				intr_assign_next_cpu(isrc);
 #endif
-			mtx_unlock_spin(&intr_table_lock);
 			isrc->is_pic->pic_enable_intr(isrc);
-		} else
-			mtx_unlock_spin(&intr_table_lock);
-		isrc->is_pic->pic_enable_source(isrc);
+			isrc->is_pic->pic_enable_source(isrc);
+		}
+		sx_xunlock(&intr_table_lock);
 	}
 	return (error);
 }
@@ -145,13 +195,21 @@
 int
 intr_remove_handler(void *cookie)
 {
+	struct intsrc *isrc;
 	int error;
 
+	isrc = intr_handler_source(cookie);
 	error = intr_event_remove_handler(cookie);
-#ifdef XXX
-	if (error == 0)
-		intrcnt_updatename(/* XXX */);
-#endif
+	if (error == 0) {
+		sx_xlock(&intr_table_lock);
+		isrc->is_handlers--;
+		if (isrc->is_handlers == 0) {
+			isrc->is_pic->pic_disable_source(isrc, PIC_NO_EOI);
+			isrc->is_pic->pic_disable_intr(isrc);
+		}
+		intrcnt_updatename(isrc);
+		sx_xunlock(&intr_table_lock);
+	}
 	return (error);
 }
 
@@ -166,13 +224,84 @@
 	return (isrc->is_pic->pic_config_intr(isrc, trig, pol));
 }
 
+#ifdef INTR_FILTER
 void
+intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame)
+{
+	struct thread *td;
+	struct intr_event *ie;
+	int vector;
+
+	td = curthread;
+
+	/*
+	 * We count software interrupts when we process them.  The
+	 * code here follows previous practice, but there's an
+	 * argument for counting hardware interrupts when they're
+	 * processed too.
+	 */
+	(*isrc->is_count)++;
+	PCPU_INC(cnt.v_intr);
+
+	ie = isrc->is_event;
+
+	/*
+	 * XXX: We assume that IRQ 0 is only used for the ISA timer
+	 * device (clk).
+	 */
+	vector = isrc->is_pic->pic_vector(isrc);
+	if (vector == 0)
+		clkintr_pending = 1;
+
+	if (intr_event_handle(ie, frame) != 0)
+		intr_event_stray(isrc);		
+}
+
+static void
+intr_event_stray(void *cookie)
+{
+	struct intsrc *isrc;
+
+	isrc = cookie;
+	/*
+	 * For stray interrupts, mask and EOI the source, bump the
+	 * stray count, and log the condition.
+	 */
+	isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
+	(*isrc->is_straycount)++;
+	if (*isrc->is_straycount < MAX_STRAY_LOG)
+		log(LOG_ERR, "stray irq%d\n", isrc->is_pic->pic_vector(isrc));
+	else if (*isrc->is_straycount == MAX_STRAY_LOG)
+		log(LOG_CRIT,
+		    "too many stray irq %d's: not logging anymore\n",
+		    isrc->is_pic->pic_vector(isrc));
+}
+
+static void
+intr_eoi_src(void *arg)
+{
+	struct intsrc *isrc;
+
+	isrc = arg;
+	isrc->is_pic->pic_eoi_source(isrc);
+}
+
+static void
+intr_disab_eoi_src(void *arg)
+{
+	struct intsrc *isrc;
+
+	isrc = arg;
+	isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
+}
+#else
+void
 intr_execute_handlers(struct intsrc *isrc, u_int vector, struct trapframe *frame)
 {
 	struct thread *td;
 	struct intr_event *ie;
 	struct intr_handler *ih;
-	int error, thread;
+	int error, thread, ret;
 
 	td = curthread;
 
@@ -183,7 +312,7 @@
 	 * processed too.
 	 */
 	(*isrc->is_count)++;
-	PCPU_LAZY_INC(cnt.v_intr);
+	PCPU_INC(cnt.v_intr);
 
 	ie = isrc->is_event;
 
@@ -217,20 +346,39 @@
 	 * a trapframe as its argument.
 	 */
 	td->td_intr_nesting_level++;
+	ret = 0;
 	thread = 0;
 	critical_enter();
 	TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) {
-		if (!(ih->ih_flags & IH_FAST)) {
+		if (ih->ih_filter == NULL) {
 			thread = 1;
 			continue;
 		}
 		CTR4(KTR_INTR, "%s: exec %p(%p) for %s", __func__,
-		    ih->ih_handler, ih->ih_argument == NULL ? frame :
+		    ih->ih_filter, ih->ih_argument == NULL ? frame :
 		    ih->ih_argument, ih->ih_name);
 		if (ih->ih_argument == NULL)
-			ih->ih_handler(frame);
+			ret = ih->ih_filter(frame);
 		else
-			ih->ih_handler(ih->ih_argument);
+			ret = ih->ih_filter(ih->ih_argument);
+		/* 
+		 * Wrapper handler special handling:
+		 *
+		 * in some particular cases (like pccard and pccbb), 
+		 * the _real_ device handler is wrapped in a couple of
+		 * functions - a filter wrapper and an ithread wrapper.
+		 * In this case (and just in this case), the filter wrapper 
+		 * could ask the system to schedule the ithread and mask
+		 * the interrupt source if the wrapped handler is composed
+		 * of just an ithread handler.
+		 *
+		 * TODO: write a generic wrapper to avoid people rolling 
+		 * their own
+		 */
+		if (!thread) {
+			if (ret == FILTER_SCHEDULE_THREAD)
+				thread = 1;
+		}
 	}
 
 	/*
@@ -242,40 +390,41 @@
 		isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
 	else
 		isrc->is_pic->pic_eoi_source(isrc);
-	critical_exit();
 
 	/* Schedule the ithread if needed. */
 	if (thread) {
 		error = intr_event_schedule_thread(ie);
 		KASSERT(error == 0, ("bad stray interrupt"));
 	}
+	critical_exit();
 	td->td_intr_nesting_level--;
 }
+#endif
 
 void
 intr_resume(void)
 {
-	struct intsrc **isrc;
-	int i;
+	struct pic *pic;
 
-	mtx_lock_spin(&intr_table_lock);
-	for (i = 0, isrc = interrupt_sources; i < NUM_IO_INTS; i++, isrc++)
-		if (*isrc != NULL && (*isrc)->is_pic->pic_resume != NULL)
-			(*isrc)->is_pic->pic_resume(*isrc);
-	mtx_unlock_spin(&intr_table_lock);
+	sx_xlock(&intr_table_lock);
+	STAILQ_FOREACH(pic, &pics, pics) {
+		if (pic->pic_resume != NULL)
+			pic->pic_resume(pic);
+	}
+	sx_xunlock(&intr_table_lock);
 }
 
 void
 intr_suspend(void)
 {
-	struct intsrc **isrc;
-	int i;
+	struct pic *pic;
 
-	mtx_lock_spin(&intr_table_lock);
-	for (i = 0, isrc = interrupt_sources; i < NUM_IO_INTS; i++, isrc++)
-		if (*isrc != NULL && (*isrc)->is_pic->pic_suspend != NULL)
-			(*isrc)->is_pic->pic_suspend(*isrc);
-	mtx_unlock_spin(&intr_table_lock);
+	sx_xlock(&intr_table_lock);
+	STAILQ_FOREACH(pic, &pics, pics) {
+		if (pic->pic_suspend != NULL)
+			pic->pic_suspend(pic);
+	}
+	sx_xunlock(&intr_table_lock);
 }
 
 static void
@@ -298,8 +447,8 @@
 {
 	char straystr[MAXCOMLEN + 1];
 
-	/* mtx_assert(&intr_table_lock, MA_OWNED); */
 	KASSERT(is->is_event != NULL, ("%s: isrc with no event", __func__));
+	mtx_lock_spin(&intrcnt_lock);
 	is->is_index = intrcnt_index;
 	intrcnt_index += 2;
 	snprintf(straystr, MAXCOMLEN + 1, "stray irq%d",
@@ -308,17 +457,18 @@
 	is->is_count = &intrcnt[is->is_index];
 	intrcnt_setname(straystr, is->is_index + 1);
 	is->is_straycount = &intrcnt[is->is_index + 1];
+	mtx_unlock_spin(&intrcnt_lock);
 }
 
 void
 intrcnt_add(const char *name, u_long **countp)
 {
 
-	mtx_lock_spin(&intr_table_lock);
+	mtx_lock_spin(&intrcnt_lock);
 	*countp = &intrcnt[intrcnt_index];
 	intrcnt_setname(name, intrcnt_index);
 	intrcnt_index++;
-	mtx_unlock_spin(&intr_table_lock);
+	mtx_unlock_spin(&intrcnt_lock);
 }
 
 static void
@@ -327,7 +477,9 @@
 
 	intrcnt_setname("???", 0);
 	intrcnt_index = 1;
-	mtx_init(&intr_table_lock, "intr table", NULL, MTX_SPIN);
+	STAILQ_INIT(&pics);
+	sx_init(&intr_table_lock, "intr sources");
+	mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN);
 }
 SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL)
 
@@ -357,8 +509,9 @@
  * allocate CPUs round-robin.
  */
 
-static u_int cpu_apic_ids[MAXCPU];
-static int current_cpu, num_cpus;
+/* The BSP is always a valid target. */
+static cpumask_t intr_cpus = (1 << 0);
+static int current_cpu, num_cpus = 1;
 
 static void
 intr_assign_next_cpu(struct intsrc *isrc)
@@ -371,29 +524,29 @@
 	 */
 	pic = isrc->is_pic;
 	apic_id = cpu_apic_ids[current_cpu];
-	current_cpu++;
-	if (current_cpu >= num_cpus)
-		current_cpu = 0;
-	if (bootverbose) {
-		printf("INTR: Assigning IRQ %d", pic->pic_vector(isrc));
-		printf(" to local APIC %u\n", apic_id);
-	}
 	pic->pic_assign_cpu(isrc, apic_id);
+	do {
+		current_cpu++;
+		if (current_cpu >= num_cpus)
+			current_cpu = 0;
+	} while (!(intr_cpus & (1 << current_cpu)));
 }
 
 /*
- * Add a local APIC ID to our list of valid local APIC IDs that can
- * be destinations of interrupts.
+ * Add a CPU to our mask of valid CPUs that can be destinations of
+ * interrupts.
  */
 void
-intr_add_cpu(u_int apic_id)
+intr_add_cpu(u_int cpu)
 {
 
+	if (cpu >= MAXCPU)
+		panic("%s: Invalid CPU ID", __func__);
 	if (bootverbose)
-		printf("INTR: Adding local APIC %d as a target\n", apic_id);
-	if (num_cpus >= MAXCPU)
-		panic("WARNING: Local APIC IDs exhausted!");
-	cpu_apic_ids[num_cpus] = apic_id;
+		printf("INTR: Adding local APIC %d as a target\n",
+		    cpu_apic_ids[cpu]);
+
+	intr_cpus |= (1 << cpu);
 	num_cpus++;
 }
 
@@ -411,15 +564,15 @@
 	if (num_cpus <= 1)
 		return;
 
-	/* Round-robin assign each enabled source a CPU. */
-	mtx_lock_spin(&intr_table_lock);
+	/* Round-robin assign a CPU to each enabled source. */
+	sx_xlock(&intr_table_lock);
 	assign_cpu = 1;
 	for (i = 0; i < NUM_IO_INTS; i++) {
 		isrc = interrupt_sources[i];
-		if (isrc != NULL && isrc->is_enabled)
+		if (isrc != NULL && isrc->is_handlers > 0)
 			intr_assign_next_cpu(isrc);
 	}
-	mtx_unlock_spin(&intr_table_lock);
+	sx_xunlock(&intr_table_lock);
 }
 SYSINIT(intr_shuffle_irqs, SI_SUB_SMP, SI_ORDER_SECOND, intr_shuffle_irqs, NULL)
 #endif

==== //depot/projects/bike_sched/sys/kern/init_sysent.c#6 (text+ko) ====


==== //depot/projects/bike_sched/sys/kern/kern_clock.c#4 (text+ko) ====

@@ -35,8 +35,9 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/kern_clock.c,v 1.190 2006/06/14 03:14:26 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_clock.c,v 1.205 2007/11/29 08:38:22 rwatson Exp $");
 
+#include "opt_kdb.h"
 #include "opt_device_polling.h"
 #include "opt_hwpmc_hooks.h"
 #include "opt_ntp.h"
@@ -80,17 +81,21 @@
 static void initclocks(void *dummy);
 SYSINIT(clocks, SI_SUB_CLOCKS, SI_ORDER_FIRST, initclocks, NULL)
 
-/* Some of these don't belong here, but it's easiest to concentrate them. */
-long cp_time[CPUSTATES];
+/* Spin-lock protecting profiling statistics. */
+static struct mtx time_lock;
 
 static int
 sysctl_kern_cp_time(SYSCTL_HANDLER_ARGS)
 {
 	int error;
+	long cp_time[CPUSTATES];
 #ifdef SCTL_MASK32
 	int i;
 	unsigned int cp_time32[CPUSTATES];
+#endif
 
+	read_cpu_time(cp_time);
+#ifdef SCTL_MASK32
 	if (req->flags & SCTL_MASK32) {
 		if (!req->oldptr)
 			return SYSCTL_OUT(req, 0, sizeof(cp_time32));
@@ -110,6 +115,67 @@
 SYSCTL_PROC(_kern, OID_AUTO, cp_time, CTLTYPE_LONG|CTLFLAG_RD,
     0,0, sysctl_kern_cp_time, "LU", "CPU time statistics");
 
+static long empty[CPUSTATES];
+
+static int
+sysctl_kern_cp_times(SYSCTL_HANDLER_ARGS)
+{
+	struct pcpu *pcpu;
+	int error;
+	int c;
+	long *cp_time;
+#ifdef SCTL_MASK32
+	unsigned int cp_time32[CPUSTATES];
+	int i;
+#endif
+
+	if (!req->oldptr) {
+#ifdef SCTL_MASK32
+		if (req->flags & SCTL_MASK32)
+			return SYSCTL_OUT(req, 0, sizeof(cp_time32) * (mp_maxid + 1));
+		else
+#endif
+			return SYSCTL_OUT(req, 0, sizeof(long) * CPUSTATES * (mp_maxid + 1));
+	}
+	for (error = 0, c = 0; error == 0 && c <= mp_maxid; c++) {
+		if (!CPU_ABSENT(c)) {
+			pcpu = pcpu_find(c);
+			cp_time = pcpu->pc_cp_time;
+		} else {
+			cp_time = empty;
+		}
+#ifdef SCTL_MASK32
+		if (req->flags & SCTL_MASK32) {
+			for (i = 0; i < CPUSTATES; i++)
+				cp_time32[i] = (unsigned int)cp_time[i];
+			error = SYSCTL_OUT(req, cp_time32, sizeof(cp_time32));
+		} else
+#endif
+			error = SYSCTL_OUT(req, cp_time, sizeof(long) * CPUSTATES);
+	}
+	return error;
+}
+
+SYSCTL_PROC(_kern, OID_AUTO, cp_times, CTLTYPE_LONG|CTLFLAG_RD,
+    0,0, sysctl_kern_cp_times, "LU", "per-CPU time statistics");
+
+void
+read_cpu_time(long *cp_time)
+{
+	struct pcpu *pc;
+	int i, j;
+
+	/* Sum up global cp_time[]. */
+	bzero(cp_time, sizeof(long) * CPUSTATES);
+	for (i = 0; i <= mp_maxid; i++) {
+		if (CPU_ABSENT(i))
+			continue;
+		pc = pcpu_find(i);
+		for (j = 0; j < CPUSTATES; j++)
+			cp_time[j] += pc->pc_cp_time[j];
+	}
+}
+
 #ifdef SW_WATCHDOG
 #include 
 
@@ -171,6 +237,7 @@
 	 * Set divisors to 1 (normal case) and let the machine-specific
 	 * code do its bit.
 	 */
+	mtx_init(&time_lock, "time lock", NULL, MTX_SPIN);
 	cpu_initclocks();
 
 	/*
@@ -196,25 +263,30 @@
 	struct pstats *pstats;
 	struct thread *td = curthread;
 	struct proc *p = td->td_proc;
+	int flags;
 
 	/*
 	 * Run current process's virtual and profile time, as needed.
 	 */
-	mtx_lock_spin_flags(&sched_lock, MTX_QUIET);
-	sched_tick();
 	pstats = p->p_stats;
+	flags = 0;
 	if (usermode &&
-	    timevalisset(&pstats->p_timer[ITIMER_VIRTUAL].it_value) &&
-	    itimerdecr(&pstats->p_timer[ITIMER_VIRTUAL], tick) == 0) {
-		p->p_sflag |= PS_ALRMPEND;
-		td->td_flags |= TDF_ASTPENDING;
+	    timevalisset(&pstats->p_timer[ITIMER_VIRTUAL].it_value)) {
+		PROC_SLOCK(p);
+		if (itimerdecr(&pstats->p_timer[ITIMER_VIRTUAL], tick) == 0)
+			flags |= TDF_ALRMPEND | TDF_ASTPENDING;
+		PROC_SUNLOCK(p);
 	}
-	if (timevalisset(&pstats->p_timer[ITIMER_PROF].it_value) &&
-	    itimerdecr(&pstats->p_timer[ITIMER_PROF], tick) == 0) {
-		p->p_sflag |= PS_PROFPEND;
-		td->td_flags |= TDF_ASTPENDING;
+	if (timevalisset(&pstats->p_timer[ITIMER_PROF].it_value)) {
+		PROC_SLOCK(p);
+		if (itimerdecr(&pstats->p_timer[ITIMER_PROF], tick) == 0)
+			flags |= TDF_PROFPEND | TDF_ASTPENDING;
+		PROC_SUNLOCK(p);
 	}
-	mtx_unlock_spin_flags(&sched_lock, MTX_QUIET);
+	thread_lock(td);
+	sched_tick();
+	td->td_flags |= flags;
+	thread_unlock(td);
 
 #ifdef	HWPMC_HOOKS
 	if (PMC_CPU_HAS_SAMPLES(PCPU_GET(cpuid)))
@@ -260,8 +332,8 @@
 	mtx_unlock_spin_flags(&callout_lock, MTX_QUIET);
 
 	/*
-	 * swi_sched acquires sched_lock, so we don't want to call it with
-	 * callout_lock held; incorrect locking order.
+	 * swi_sched acquires the thread lock, so we don't want to call it
+	 * with callout_lock held; incorrect locking order.
 	 */
 	if (need_softclock)
 		swi_sched(softclock_ih, 0);
@@ -342,20 +414,15 @@
 	register struct proc *p;
 {
 
-	/*
-	 * XXX; Right now sched_lock protects statclock(), but perhaps
-	 * it should be protected later on by a time_lock, which would
-	 * cover psdiv, etc. as well.
-	 */
 	PROC_LOCK_ASSERT(p, MA_OWNED);
 	if (p->p_flag & P_STOPPROF)
 		return;
 	if ((p->p_flag & P_PROFIL) == 0) {
-		mtx_lock_spin(&sched_lock);
 		p->p_flag |= P_PROFIL;
+		mtx_lock_spin(&time_lock);
 		if (++profprocs == 1)
 			cpu_startprofclock();
-		mtx_unlock_spin(&sched_lock);
+		mtx_unlock_spin(&time_lock);
 	}
 }
 
@@ -378,19 +445,18 @@
 		}
 		if ((p->p_flag & P_PROFIL) == 0)
 			return;
-		mtx_lock_spin(&sched_lock);
 		p->p_flag &= ~P_PROFIL;
+		mtx_lock_spin(&time_lock);
 		if (--profprocs == 0)
 			cpu_stopprofclock();
-		mtx_unlock_spin(&sched_lock);
+		mtx_unlock_spin(&time_lock);
 	}
 }
 
 /*
- * Statistics clock.  Grab profile sample, and if divider reaches 0,
- * do process and kernel statistics.  Most of the statistics are only
- * used by user-level statistics programs.  The main exceptions are
- * ke->ke_uticks, p->p_rux.rux_sticks, p->p_rux.rux_iticks, and p->p_estcpu.
+ * Statistics clock.  Updates rusage information and calls the scheduler
+ * to adjust priorities of the active thread.
+ *
  * This should be called by all active processors.
  */
 void
@@ -401,11 +467,12 @@
 	struct thread *td;
 	struct proc *p;
 	long rss;
+	long *cp_time;
 
 	td = curthread;
 	p = td->td_proc;
 
-	mtx_lock_spin_flags(&sched_lock, MTX_QUIET);
+	cp_time = (long *)PCPU_PTR(cp_time);
 	if (usermode) {
 		/*
 		 * Charge the time as appropriate.
@@ -435,29 +502,28 @@
 		} else {
 			td->td_pticks++;
 			td->td_sticks++;
-			if (td != PCPU_GET(idlethread))
+			if (!TD_IS_IDLETHREAD(td))
 				cp_time[CP_SYS]++;
 			else
 				cp_time[CP_IDLE]++;
 		}
 	}
-	CTR4(KTR_SCHED, "statclock: %p(%s) prio %d stathz %d",
-	    td, td->td_proc->p_comm, td->td_priority, (stathz)?stathz:hz);
 
-	sched_clock(td);
-
 	/* Update resource usage integrals and maximums. */
-	MPASS(p->p_stats != NULL);
 	MPASS(p->p_vmspace != NULL);
 	vm = p->p_vmspace;
-	ru = &p->p_stats->p_ru;
+	ru = &td->td_ru;
 	ru->ru_ixrss += pgtok(vm->vm_tsize);
 	ru->ru_idrss += pgtok(vm->vm_dsize);
 	ru->ru_isrss += pgtok(vm->vm_ssize);
 	rss = pgtok(vmspace_resident_count(vm));
 	if (ru->ru_maxrss < rss)
 		ru->ru_maxrss = rss;
-	mtx_unlock_spin_flags(&sched_lock, MTX_QUIET);
+	CTR4(KTR_SCHED, "statclock: %p(%s) prio %d stathz %d",
+	    td, td->td_name, td->td_priority, (stathz)?stathz:hz);
+	thread_lock_flags(td, MTX_QUIET);
+	sched_clock(td);
+	thread_unlock(td);
 }
 
 void
@@ -521,15 +587,15 @@
 #ifdef SW_WATCHDOG
 
 static void
-watchdog_config(void *unused __unused, u_int cmd, int *err)
+watchdog_config(void *unused __unused, u_int cmd, int *error)
 {
 	u_int u;
 
 	u = cmd & WD_INTERVAL;
-	if ((cmd & WD_ACTIVE) && u >= WD_TO_1SEC) {
+	if (u >= WD_TO_1SEC) {
 		watchdog_ticks = (1 << (u - WD_TO_1SEC)) * hz;
 		watchdog_enabled = 1;
-		*err = 0;
+		*error = 0;
 	} else {
 		watchdog_enabled = 0;
 	}
@@ -537,7 +603,7 @@
 
 /*
  * Handle a watchdog timeout by dumping interrupt information and
- * then either dropping to DDB or panicing.
+ * then either dropping to DDB or panicking.
  */
 static void
 watchdog_fire(void)
@@ -561,12 +627,12 @@
 	}
 	printf("Total        %20ju\n", (uintmax_t)inttotal);
 
-#ifdef KDB
+#if defined(KDB) && !defined(KDB_UNATTENDED)
 	kdb_backtrace();
 	kdb_enter("watchdog timeout");
 #else
 	panic("watchdog timeout");
-#endif /* KDB */
+#endif
 }
 
 #endif /* SW_WATCHDOG */

==== //depot/projects/bike_sched/sys/kern/kern_intr.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.133 2006/07/12 21:22:44 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.153 2007/10/29 20:45:31 julian Exp $");
 
 #include "opt_ddb.h"
 
@@ -80,10 +80,11 @@
 struct	intr_event *tty_intr_event;
 void	*softclock_ih;
 void	*vm_ih;
+struct proc *intrproc;
 
 static MALLOC_DEFINE(M_ITHREAD, "ithread", "Interrupt Threads");
 
-static int intr_storm_threshold = 500;
+static int intr_storm_threshold = 1000;
 TUNABLE_INT("hw.intr_storm_threshold", &intr_storm_threshold);
 SYSCTL_INT(_hw, OID_AUTO, intr_storm_threshold, CTLFLAG_RW,
     &intr_storm_threshold, 0,
@@ -92,13 +93,24 @@
     TAILQ_HEAD_INITIALIZER(event_list);
 
 static void	intr_event_update(struct intr_event *ie);
+#ifdef INTR_FILTER
+static struct intr_thread *ithread_create(const char *name,
+			      struct intr_handler *ih);
+#else
 static struct intr_thread *ithread_create(const char *name);
+#endif
 static void	ithread_destroy(struct intr_thread *ithread);
-static void	ithread_execute_handlers(struct proc *p, struct intr_event *ie);
+static void	ithread_execute_handlers(struct proc *p, 
+		    struct intr_event *ie);
+#ifdef INTR_FILTER
+static void	priv_ithread_execute_handler(struct proc *p, 
+		    struct intr_handler *ih);
+#endif
 static void	ithread_loop(void *);
 static void	ithread_update(struct intr_thread *ithd);
 static void	start_softintr(void *);
 
+/* Map an interrupt type to an ithread priority. */
 u_char
 intr_priority(enum intr_type flags)
 {
@@ -160,11 +172,10 @@
 		pri = TAILQ_FIRST(&ie->ie_handlers)->ih_pri;
 
 	/* Update name and priority. */
-	strlcpy(td->td_proc->p_comm, ie->ie_fullname,
-	    sizeof(td->td_proc->p_comm));
-	mtx_lock_spin(&sched_lock);
+	strlcpy(td->td_name, ie->ie_fullname, sizeof(td->td_name));
+	thread_lock(td);
 	sched_prio(td, pri);
-	mtx_unlock_spin(&sched_lock);
+	thread_unlock(td);
 }
 
 /*
@@ -226,6 +237,7 @@
 	CTR2(KTR_INTR, "%s: updated %s", __func__, ie->ie_fullname);
 }
 
+#ifndef INTR_FILTER
 int
 intr_event_create(struct intr_event **event, void *source, int flags,
     void (*enable)(void *), const char *fmt, ...)
@@ -255,6 +267,40 @@
 	CTR2(KTR_INTR, "%s: created %s", __func__, ie->ie_name);
 	return (0);
 }
+#else
+int
+intr_event_create(struct intr_event **event, void *source, int flags,
+    void (*enable)(void *), void (*eoi)(void *), void (*disab)(void *), 
+    const char *fmt, ...)
+{
+	struct intr_event *ie;
+	va_list ap;
+
+	/* The only valid flag during creation is IE_SOFT. */
+	if ((flags & ~IE_SOFT) != 0)
+		return (EINVAL);
+	ie = malloc(sizeof(struct intr_event), M_ITHREAD, M_WAITOK | M_ZERO);
+	ie->ie_source = source;
+	ie->ie_enable = enable;
+	ie->ie_eoi = eoi;
+	ie->ie_disab = disab;
+	ie->ie_flags = flags;
+	TAILQ_INIT(&ie->ie_handlers);
+	mtx_init(&ie->ie_lock, "intr event", NULL, MTX_DEF);
+
+	va_start(ap, fmt);
+	vsnprintf(ie->ie_name, sizeof(ie->ie_name), fmt, ap);
+	va_end(ap);
+	strlcpy(ie->ie_fullname, ie->ie_name, sizeof(ie->ie_fullname));
+	mtx_pool_lock(mtxpool_sleep, &event_list);
+	TAILQ_INSERT_TAIL(&event_list, ie, ie_list);
+	mtx_pool_unlock(mtxpool_sleep, &event_list);
+	if (event != NULL)
+		*event = ie;
+	CTR2(KTR_INTR, "%s: created %s", __func__, ie->ie_name);
+	return (0);
+}
+#endif
 
 int
 intr_event_destroy(struct intr_event *ie)
@@ -280,30 +326,55 @@
 	return (0);
 }
 
+#ifndef INTR_FILTER
 static struct intr_thread *

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:00:38 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 7193716A419; Sat,  1 Dec 2007 22:00: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 165FA16A49E
	for ; Sat,  1 Dec 2007 22:00:38 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id EB3CB13C455
	for ; Sat,  1 Dec 2007 22:00:37 +0000 (UTC)
	(envelope-from peter@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 lB1M0bo5078398
	for ; Sat, 1 Dec 2007 22:00:37 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1M0bWG078395
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:00:37 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 22:00:37 GMT
Message-Id: <200712012200.lB1M0bWG078395@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129905 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, 01 Dec 2007 22:00:38 -0000

http://perforce.freebsd.org/chv.cgi?CH=129905

Change 129905 by peter@peter_daintree on 2007/12/01 21:59:45

	IFC

Affected files ...

.. //depot/projects/bike_sched/sys/kern/kern_thread.c#5 integrate

Differences ...

==== //depot/projects/bike_sched/sys/kern/kern_thread.c#5 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.234 2006/06/30 08:10:55 maxim Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.262 2007/11/15 14:20:06 rrs Exp $");
 
 #include 
 #include 
@@ -49,33 +49,26 @@
 #include 
 #include 
 #include 
+#include 
 
 /*
  * thread related storage.
  */
 static uma_zone_t thread_zone;
 
-/* DEBUG ONLY */
 SYSCTL_NODE(_kern, OID_AUTO, threads, CTLFLAG_RW, 0, "thread allocation");
-static int thread_debug = 0;
-SYSCTL_INT(_kern_threads, OID_AUTO, debug, CTLFLAG_RW,
-	&thread_debug, 0, "thread debug");
 
 int max_threads_per_proc = 1500;
 SYSCTL_INT(_kern_threads, OID_AUTO, max_threads_per_proc, CTLFLAG_RW,
 	&max_threads_per_proc, 0, "Limit on threads per proc");
 
-int max_groups_per_proc = 1500;
-SYSCTL_INT(_kern_threads, OID_AUTO, max_groups_per_proc, CTLFLAG_RW,
-	&max_groups_per_proc, 0, "Limit on thread groups per proc");
-
 int max_threads_hits;
 SYSCTL_INT(_kern_threads, OID_AUTO, max_threads_hits, CTLFLAG_RD,
 	&max_threads_hits, 0, "");
 
 TAILQ_HEAD(, thread) zombie_threads = TAILQ_HEAD_INITIALIZER(zombie_threads);
-struct mtx kse_zombie_lock;
-MTX_SYSINIT(kse_zombie_lock, &kse_zombie_lock, "kse zombie lock", MTX_SPIN);
+static struct mtx zombie_lock;
+MTX_SYSINIT(zombie_lock, &zombie_lock, "zombie lock", MTX_SPIN);
 
 struct mtx tid_lock;
 static struct unrhdr *tid_unrhdr;
@@ -93,24 +86,19 @@
 	td->td_oncpu = NOCPU;
 
 	td->td_tid = alloc_unr(tid_unrhdr);
+	td->td_syscalls = 0;
 
 	/*
 	 * Note that td_critnest begins life as 1 because the thread is not
 	 * running and is thereby implicitly waiting to be on the receiving
-	 * end of a context switch.  A context switch must occur inside a
-	 * critical section, and in fact, includes hand-off of the sched_lock.
-	 * After a context switch to a newly created thread, it will release
-	 * sched_lock for the first time, and its td_critnest will hit 0 for
-	 * the first time.  This happens on the far end of a context switch,
-	 * and when it context switches away from itself, it will in fact go
-	 * back into a critical section, and hand off the sched lock to the
-	 * next thread.
+	 * end of a context switch.
 	 */
 	td->td_critnest = 1;
-
+	EVENTHANDLER_INVOKE(thread_ctor, td);
 #ifdef AUDIT
 	audit_thread_alloc(td);
 #endif
+	umtx_thread_alloc(td);
 	return (0);
 }
 
@@ -147,6 +135,7 @@
 #ifdef AUDIT
 	audit_thread_free(td);
 #endif
+	EVENTHANDLER_INVOKE(thread_dtor, td);
 	free_unr(tid_unrhdr, td->td_tid);
 	sched_newthread(td);
 }
@@ -161,13 +150,13 @@
 
 	td = (struct thread *)mem;
 
-	vm_thread_new(td, 0);
-	cpu_thread_setup(td);
 	td->td_sleepqueue = sleepq_alloc();
 	td->td_turnstile = turnstile_alloc();
-	td->td_umtxq = umtxq_alloc();
+	EVENTHANDLER_INVOKE(thread_init, td);
 	td->td_sched = (struct td_sched *)&td[1];
 	sched_newthread(td);
+	umtx_thread_init(td);
+	td->td_kstack = 0;
 	return (0);
 }
 
@@ -180,10 +169,10 @@
 	struct thread *td;
 
 	td = (struct thread *)mem;
+	EVENTHANDLER_INVOKE(thread_fini, td);
 	turnstile_free(td->td_turnstile);
 	sleepq_free(td->td_sleepqueue);
-	umtxq_free(td->td_umtxq);
-	vm_thread_dispose(td);
+	umtx_thread_fini(td);
 }
 
 /*
@@ -195,11 +184,16 @@
  * proc_init()
  */
 void
+proc_linkup0(struct proc *p, struct thread *td)
+{
+	TAILQ_INIT(&p->p_threads);	     /* all threads in proc */
+	proc_linkup(p, td);
+}
+
+void
 proc_linkup(struct proc *p, struct thread *td)
 {
 
-	TAILQ_INIT(&p->p_threads);	     /* all threads in proc */
-	TAILQ_INIT(&p->p_suspended);	     /* Threads suspended */
 	sigqueue_init(&p->p_sigqueue, p);
 	p->p_ksi = ksiginfo_alloc(1);
 	if (p->p_ksi != NULL) {
@@ -208,7 +202,6 @@
 	}
 	LIST_INIT(&p->p_mqnotifier);
 	p->p_numthreads = 0;
-
 	thread_link(td, p);
 }
 
@@ -224,19 +217,20 @@
 
 	thread_zone = uma_zcreate("THREAD", sched_sizeof_thread(),
 	    thread_ctor, thread_dtor, thread_init, thread_fini,
-	    UMA_ALIGN_CACHE, 0);
+	    16 - 1, 0);
 }
 
 /*
- * Stash an embarasingly extra thread into the zombie thread queue.
+ * Place an unused thread on the zombie list.
+ * Use the slpq as that must be unused by now.
  */
 void
-thread_stash(struct thread *td)
+thread_zombie(struct thread *td)
 {
 
-	mtx_lock_spin(&kse_zombie_lock);
-	TAILQ_INSERT_HEAD(&zombie_threads, td, td_runq);
-	mtx_unlock_spin(&kse_zombie_lock);
+	mtx_lock_spin(&zombie_lock);
+	TAILQ_INSERT_HEAD(&zombie_threads, td, td_slpq);
+	mtx_unlock_spin(&zombie_lock);
 }
 
 /*
@@ -252,19 +246,22 @@
 	 * we really don't care about the next instant..
 	 */
 	if (!TAILQ_EMPTY(&zombie_threads)) {
-		mtx_lock_spin(&kse_zombie_lock);
+		mtx_lock_spin(&zombie_lock);
 		td_first = TAILQ_FIRST(&zombie_threads);
 		if (td_first)
 			TAILQ_INIT(&zombie_threads);
-		mtx_unlock_spin(&kse_zombie_lock);
+		mtx_unlock_spin(&zombie_lock);
 		while (td_first) {
-			td_next = TAILQ_NEXT(td_first, td_runq);
+			td_next = TAILQ_NEXT(td_first, td_slpq);
 			if (td_first->td_ucred)
 				crfree(td_first->td_ucred);
 			thread_free(td_first);
 			td_first = td_next;
 		}
 	}
+#ifdef KSE
+	upcall_reap();
+#endif
 }
 
 /*
@@ -273,19 +270,31 @@
 struct thread *
 thread_alloc(void)
 {
+	struct thread *td;
 
 	thread_reap(); /* check if any zombies to get */
-	return (uma_zalloc(thread_zone, M_WAITOK));
+
+	td = (struct thread *)uma_zalloc(thread_zone, M_WAITOK);
+	KASSERT(td->td_kstack == 0, ("thread_alloc got thread with kstack"));
+	if (!vm_thread_new(td, 0)) {
+		uma_zfree(thread_zone, td);
+		return (NULL);
+	}
+	cpu_thread_alloc(td);
+	return (td);
 }
 
-/*
  * Deallocate a thread.
  */
 void
 thread_free(struct thread *td)
 {
 
-	cpu_thread_clean(td);
+	cpu_thread_free(td);
+	if (td->td_altkstack != 0)
+		vm_thread_dispose_altkstack(td);
+	if (td->td_kstack != 0)
+		vm_thread_dispose(td);
 	uma_zfree(thread_zone, td);
 }
 
@@ -321,23 +330,27 @@
 {
 	uint64_t new_switchtime;
 	struct thread *td;
+	struct thread *td2;
 	struct proc *p;
 
 	td = curthread;
 	p = td->td_proc;
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
 	mtx_assert(&Giant, MA_NOTOWNED);
+
 	PROC_LOCK_ASSERT(p, MA_OWNED);
 	KASSERT(p != NULL, ("thread exiting without a process"));
 	CTR3(KTR_PROC, "thread_exit: thread %p (pid %ld, %s)", td,
-	    (long)p->p_pid, p->p_comm);
+	    (long)p->p_pid, td->td_name);
 	KASSERT(TAILQ_EMPTY(&td->td_sigqueue.sq_list), ("signal pending"));
 
 #ifdef AUDIT
 	AUDIT_SYSCALL_EXIT(0, td);
 #endif
 
+	umtx_thread_exit(td);
+
 	/*
 	 * drop FPU & debug register state storage, or any other
 	 * architecture specific resources that
@@ -348,17 +361,12 @@
 	/* Do the same timestamp bookkeeping that mi_switch() would do. */
 	new_switchtime = cpu_ticks();
 	p->p_rux.rux_runtime += (new_switchtime - PCPU_GET(switchtime));
-	p->p_rux.rux_uticks += td->td_uticks;
-	p->p_rux.rux_sticks += td->td_sticks;
-	p->p_rux.rux_iticks += td->td_iticks;
 	PCPU_SET(switchtime, new_switchtime);
 	PCPU_SET(switchticks, ticks);
-	cnt.v_swtch++;
-
-	/* Add our usage into the usage of all our children. */
-	if (p->p_numthreads == 1)
-		ruadd(p->p_ru, &p->p_rux, &p->p_stats->p_cru, &p->p_crux);
-
+	PCPU_INC(cnt.v_swtch);
+	/* Save our resource usage in our process. */
+	td->td_ru.ru_nvcsw++;
+	rucollect(&p->p_ru, &td->td_ru);
 	/*
 	 * The last thread is left attached to the process
 	 * So that the whole bundle gets recycled. Skip
@@ -369,7 +377,9 @@
 	 */
 	if (p->p_flag & P_HADTHREADS) {
 		if (p->p_numthreads > 1) {
+			thread_lock(td);
 			thread_unlink(td);
+			thread_unlock(td);
 			sched_exit(p, td);
 
 			/*
@@ -378,10 +388,13 @@
 			 * in exit1() after it is the only survivor.
 			 */
 			if (P_SHOULDSTOP(p) == P_STOPPED_SINGLE) {
-				if (p->p_numthreads == p->p_suspcount)
+				if (p->p_numthreads == p->p_suspcount) {
+					thread_lock(p->p_singlethread);
 					thread_unsuspend_one(p->p_singlethread);
+					thread_unlock(p->p_singlethread);
+				}
 			}
-			PROC_UNLOCK(p);
+			atomic_add_int(&td->td_proc->p_exitthreads, 1);
 			PCPU_SET(deadthread, td);
 		} else {
 			/*
@@ -395,17 +408,15 @@
 			 */
 			panic ("thread_exit: Last thread exiting on its own");
 		}
-	} else {
-		/*
-		 * non threaded process comes here.
-		 * This includes an EX threaded process that is coming
-		 * here via exit1(). (exit1 dethreads the proc first).
-		 */
-		PROC_UNLOCK(p);
-	}
+	} 
+	PROC_UNLOCK(p);
+	thread_lock(td);
+	/* Save our tick information with both the thread and proc locked */
+	ruxagg(&p->p_rux, td);
+	PROC_SUNLOCK(p);
 	td->td_state = TDS_INACTIVE;
 	CTR1(KTR_PROC, "thread_exit: cpu_throw() thread %p", td);
-	cpu_throw(td, choosethread());
+	sched_throw(td);
 	panic("I'm a teapot!");
 	/* NOTREACHED */
 }
@@ -421,10 +432,15 @@
 
 	mtx_assert(&Giant, MA_NOTOWNED);
 	KASSERT((p->p_numthreads == 1), ("Multiple threads in wait1()"));
-	FOREACH_THREAD_IN_PROC(p, td) {
-		cpu_thread_clean(td);
-		crfree(td->td_ucred);
-	}
+	td = FIRST_THREAD_IN_PROC(p);
+	/* Lock the last thread so we spin until it exits cpu_throw(). */
+	thread_lock(td);
+	thread_unlock(td);
+	/* Wait for any remaining threads to exit cpu_throw(). */
+	while (p->p_exitthreads)
+		sched_relinquish(curthread);
+	cpu_thread_clean(td);
+	crfree(td->td_ucred);
 	thread_reap();	/* check for zombie threads etc. */
 }
 
@@ -443,9 +459,14 @@
 thread_link(struct thread *td, struct proc *p)
 {
 
+	/*
+	 * XXX This can't be enabled because it's called for proc0 before
+	 * it's spinlock has been created.
+	 * PROC_SLOCK_ASSERT(p, MA_OWNED);
+	 */
 	td->td_state    = TDS_INACTIVE;
 	td->td_proc     = p;
-	td->td_flags    = 0;
+	td->td_flags    = TDF_INMEM;
 
 	LIST_INIT(&td->td_contested);
 	sigqueue_init(&td->td_sigqueue, p);
@@ -466,7 +487,13 @@
 	struct proc *p = td->td_proc;
 
 	KASSERT((p->p_numthreads == 1), ("Unthreading with >1 threads"));
+#ifdef KSE
+	thread_lock(td);
+	thread_unlock(td);
+		thread_zombie(td->td_standin);
+#else
 	p->p_flag &= ~P_HADTHREADS;
+#endif
 }
 
 /*
@@ -478,7 +505,7 @@
 {
 	struct proc *p = td->td_proc;
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
 	TAILQ_REMOVE(&p->p_threads, td, td_plist);
 	p->p_numthreads--;
 	/* could clear a few other things here */
@@ -530,7 +557,7 @@
 			p->p_flag &= ~P_SINGLE_BOUNDARY;
 	}
 	p->p_flag |= P_STOPPED_SINGLE;
-	mtx_lock_spin(&sched_lock);
+	PROC_SLOCK(p);
 	p->p_singlethread = td;
 	if (mode == SINGLE_EXIT)
 		remaining = p->p_numthreads;
@@ -544,6 +571,7 @@
 		FOREACH_THREAD_IN_PROC(p, td2) {
 			if (td2 == td)
 				continue;
+			thread_lock(td2);
 			td2->td_flags |= TDF_ASTPENDING;
 			if (TD_IS_INHIBITED(td2)) {
 				switch (mode) {
@@ -557,18 +585,14 @@
 						sleepq_abort(td2, EINTR);
 					break;
 				case SINGLE_BOUNDARY:
-					if (TD_IS_SUSPENDED(td2) &&
-					    !(td2->td_flags & TDF_BOUNDARY))
-						thread_unsuspend_one(td2);
-					if (TD_ON_SLEEPQ(td2) &&
-					    (td2->td_flags & TDF_SINTR))
-						sleepq_abort(td2, ERESTART);
 					break;
 				default:	
-					if (TD_IS_SUSPENDED(td2))
+					if (TD_IS_SUSPENDED(td2)) {
+						thread_unlock(td2);
 						continue;
+					}
 					/*
-					 * maybe other inhibitted states too?
+					 * maybe other inhibited states too?
 					 */
 					if ((td2->td_flags & TDF_SINTR) &&
 					    (td2->td_inhibitors &
@@ -582,6 +606,7 @@
 				forward_signal(td2);
 			}
 #endif
+			thread_unlock(td2);
 		}
 		if (mode == SINGLE_EXIT)
 			remaining = p->p_numthreads;
@@ -601,13 +626,7 @@
 		 * Wake us up when everyone else has suspended.
 		 * In the mean time we suspend as well.
 		 */
-		thread_stopped(p);
-		thread_suspend_one(td);
-		PROC_UNLOCK(p);
-		mi_switch(SW_VOL, NULL);
-		mtx_unlock_spin(&sched_lock);
-		PROC_LOCK(p);
-		mtx_lock_spin(&sched_lock);
+		thread_suspend_switch(td);
 		if (mode == SINGLE_EXIT)
 			remaining = p->p_numthreads;
 		else if (mode == SINGLE_BOUNDARY)
@@ -626,7 +645,7 @@
 		p->p_flag &= ~(P_STOPPED_SINGLE | P_SINGLE_EXIT);
 		thread_unthread(td);
 	}
-	mtx_unlock_spin(&sched_lock);
+	PROC_SUNLOCK(p);
 	return (0);
 }
 
@@ -699,7 +718,7 @@
 		if ((p->p_flag & P_SINGLE_EXIT) && (p->p_singlethread != td))
 			sigqueue_flush(&td->td_sigqueue);
 
-		mtx_lock_spin(&sched_lock);
+		PROC_SLOCK(p);
 		thread_stopped(p);
 		/*
 		 * If the process is waiting for us to exit,
@@ -708,44 +727,75 @@
 		 */
 		if ((p->p_flag & P_SINGLE_EXIT) && (p->p_singlethread != td))
 			thread_exit();
-
+		if (P_SHOULDSTOP(p) == P_STOPPED_SINGLE) {
+			if (p->p_numthreads == p->p_suspcount + 1) {
+				thread_lock(p->p_singlethread);
+				thread_unsuspend_one(p->p_singlethread);
+				thread_unlock(p->p_singlethread);
+			}
+		}
+		PROC_UNLOCK(p);
+		thread_lock(td);
 		/*
 		 * When a thread suspends, it just
-		 * moves to the processes's suspend queue
-		 * and stays there.
+		 * gets taken off all queues.
 		 */
 		thread_suspend_one(td);
 		if (return_instead == 0) {
 			p->p_boundary_count++;
 			td->td_flags |= TDF_BOUNDARY;
 		}
-		if (P_SHOULDSTOP(p) == P_STOPPED_SINGLE) {
-			if (p->p_numthreads == p->p_suspcount) 
-				thread_unsuspend_one(p->p_singlethread);
-		}
-		PROC_UNLOCK(p);
+		PROC_SUNLOCK(p);
 		mi_switch(SW_INVOL, NULL);
-		if (return_instead == 0) {
-			p->p_boundary_count--;
+		if (return_instead == 0)
 			td->td_flags &= ~TDF_BOUNDARY;
-		}
-		mtx_unlock_spin(&sched_lock);
+		thread_unlock(td);
 		PROC_LOCK(p);
+		if (return_instead == 0)
+			p->p_boundary_count--;
 	}
 	return (0);
 }
 
 void
+thread_suspend_switch(struct thread *td)
+{
+	struct proc *p;
+
+	p = td->td_proc;
+	KASSERT(!TD_IS_SUSPENDED(td), ("already suspended"));
+	PROC_LOCK_ASSERT(p, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
+	/*
+	 * We implement thread_suspend_one in stages here to avoid
+	 * dropping the proc lock while the thread lock is owned.
+	 */
+	thread_stopped(p);
+	p->p_suspcount++;
+	PROC_UNLOCK(p);
+	thread_lock(td);
+	sched_sleep(td);
+	TD_SET_SUSPENDED(td);
+	PROC_SUNLOCK(p);
+	DROP_GIANT();
+	mi_switch(SW_VOL, NULL);
+	thread_unlock(td);
+	PICKUP_GIANT();
+	PROC_LOCK(p);
+	PROC_SLOCK(p);
+}
+
+void
 thread_suspend_one(struct thread *td)
 {
 	struct proc *p = td->td_proc;
 
-	mtx_assert(&sched_lock, MA_OWNED);
-	PROC_LOCK_ASSERT(p, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
 	KASSERT(!TD_IS_SUSPENDED(td), ("already suspended"));
 	p->p_suspcount++;
+	sched_sleep(td);
 	TD_SET_SUSPENDED(td);
-	TAILQ_INSERT_TAIL(&p->p_suspended, td, td_runq);
 }
 
 void
@@ -753,9 +803,9 @@
 {
 	struct proc *p = td->td_proc;
 
-	mtx_assert(&sched_lock, MA_OWNED);
-	PROC_LOCK_ASSERT(p, MA_OWNED);
-	TAILQ_REMOVE(&p->p_suspended, td, td_runq);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	KASSERT(TD_IS_SUSPENDED(td), ("Thread not suspended"));
 	TD_CLR_SUSPENDED(td);
 	p->p_suspcount--;
 	setrunnable(td);
@@ -769,11 +819,15 @@
 {
 	struct thread *td;
 
-	mtx_assert(&sched_lock, MA_OWNED);
 	PROC_LOCK_ASSERT(p, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
 	if (!P_SHOULDSTOP(p)) {
-		while ((td = TAILQ_FIRST(&p->p_suspended))) {
-			thread_unsuspend_one(td);
+                FOREACH_THREAD_IN_PROC(p, td) {
+			thread_lock(td);
+			if (TD_IS_SUSPENDED(td)) {
+				thread_unsuspend_one(td);
+			}
+			thread_unlock(td);
 		}
 	} else if ((P_SHOULDSTOP(p) == P_STOPPED_SINGLE) &&
 	    (p->p_numthreads == p->p_suspcount)) {
@@ -782,7 +836,9 @@
 		 * threading request. Now we've downgraded to single-threaded,
 		 * let it continue.
 		 */
+		thread_lock(p->p_singlethread);
 		thread_unsuspend_one(p->p_singlethread);
+		thread_unlock(p->p_singlethread);
 	}
 }
 
@@ -799,7 +855,7 @@
 	p = td->td_proc;
 	PROC_LOCK_ASSERT(p, MA_OWNED);
 	p->p_flag &= ~(P_STOPPED_SINGLE | P_SINGLE_EXIT | P_SINGLE_BOUNDARY);
-	mtx_lock_spin(&sched_lock);
+	PROC_SLOCK(p);
 	p->p_singlethread = NULL;
 	/*
 	 * If there are other threads they mey now run,
@@ -808,11 +864,15 @@
 	 * to continue however as this is a bad place to stop.
 	 */
 	if ((p->p_numthreads != 1) && (!P_SHOULDSTOP(p))) {
-		while ((td = TAILQ_FIRST(&p->p_suspended))) {
-			thread_unsuspend_one(td);
+                FOREACH_THREAD_IN_PROC(p, td) {
+			thread_lock(td);
+			if (TD_IS_SUSPENDED(td)) {
+				thread_unsuspend_one(td);
+			}
+			thread_unlock(td);
 		}
 	}
-	mtx_unlock_spin(&sched_lock);
+	PROC_SUNLOCK(p);
 }
 
 struct thread *
@@ -821,11 +881,11 @@
 	struct thread *td;
 
 	PROC_LOCK_ASSERT(p, MA_OWNED);
-	mtx_lock_spin(&sched_lock);
+	PROC_SLOCK(p);
 	FOREACH_THREAD_IN_PROC(p, td) {
 		if (td->td_tid == tid)
 			break;
 	}
-	mtx_unlock_spin(&sched_lock);
+	PROC_SUNLOCK(p);
 	return (td);
 }

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:31:47 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 154E316A420; Sat,  1 Dec 2007 22:31: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 53F7316A418
	for ; Sat,  1 Dec 2007 22:31:46 +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 3907F13C467
	for ; Sat,  1 Dec 2007 22:31:46 +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 lB1MVk64084337
	for ; Sat, 1 Dec 2007 22:31:46 GMT
	(envelope-from sam@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1MT17Y083530
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:29:01 GMT
	(envelope-from sam@freebsd.org)
Date: Sat, 1 Dec 2007 22:29:01 GMT
Message-Id: <200712012229.lB1MT17Y083530@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 129907 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, 01 Dec 2007 22:31:47 -0000

http://perforce.freebsd.org/chv.cgi?CH=129907

Change 129907 by sam@sam_ebb on 2007/12/01 22:28:54

	start branch a-new

Affected files ...

.. //depot/projects/vap/COPYRIGHT#1 branch
.. //depot/projects/vap/LOCKS#1 branch
.. //depot/projects/vap/MAINTAINERS#1 branch
.. //depot/projects/vap/Makefile#1 branch
.. //depot/projects/vap/Makefile.inc1#1 branch
.. //depot/projects/vap/ObsoleteFiles.inc#1 branch
.. //depot/projects/vap/README#1 branch
.. //depot/projects/vap/UPDATING#1 branch
.. //depot/projects/vap/bin/Makefile#1 branch
.. //depot/projects/vap/bin/Makefile.inc#1 branch
.. //depot/projects/vap/bin/cat/Makefile#1 branch
.. //depot/projects/vap/bin/cat/cat.1#1 branch
.. //depot/projects/vap/bin/cat/cat.c#1 branch
.. //depot/projects/vap/bin/chflags/Makefile#1 branch
.. //depot/projects/vap/bin/chflags/chflags.1#1 branch
.. //depot/projects/vap/bin/chflags/chflags.c#1 branch
.. //depot/projects/vap/bin/chio/Makefile#1 branch
.. //depot/projects/vap/bin/chio/chio.1#1 branch
.. //depot/projects/vap/bin/chio/chio.c#1 branch
.. //depot/projects/vap/bin/chio/defs.h#1 branch
.. //depot/projects/vap/bin/chio/pathnames.h#1 branch
.. //depot/projects/vap/bin/chmod/Makefile#1 branch
.. //depot/projects/vap/bin/chmod/chmod.1#1 branch
.. //depot/projects/vap/bin/chmod/chmod.c#1 branch
.. //depot/projects/vap/bin/cp/Makefile#1 branch
.. //depot/projects/vap/bin/cp/cp.1#1 branch
.. //depot/projects/vap/bin/cp/cp.c#1 branch
.. //depot/projects/vap/bin/cp/extern.h#1 branch
.. //depot/projects/vap/bin/cp/utils.c#1 branch
.. //depot/projects/vap/bin/csh/Makefile#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.1#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.2#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.3#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.4#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.a#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/csh.g#1 branch
.. //depot/projects/vap/bin/csh/USD.doc/tabs#1 branch
.. //depot/projects/vap/bin/csh/config.h#1 branch
.. //depot/projects/vap/bin/csh/config_p.h#1 branch
.. //depot/projects/vap/bin/csh/host.defs#1 branch
.. //depot/projects/vap/bin/csh/iconv.h#1 branch
.. //depot/projects/vap/bin/csh/iconv_stub.c#1 branch
.. //depot/projects/vap/bin/date/Makefile#1 branch
.. //depot/projects/vap/bin/date/date.1#1 branch
.. //depot/projects/vap/bin/date/date.c#1 branch
.. //depot/projects/vap/bin/date/extern.h#1 branch
.. //depot/projects/vap/bin/date/netdate.c#1 branch
.. //depot/projects/vap/bin/date/vary.c#1 branch
.. //depot/projects/vap/bin/date/vary.h#1 branch
.. //depot/projects/vap/bin/dd/Makefile#1 branch
.. //depot/projects/vap/bin/dd/args.c#1 branch
.. //depot/projects/vap/bin/dd/conv.c#1 branch
.. //depot/projects/vap/bin/dd/conv_tab.c#1 branch
.. //depot/projects/vap/bin/dd/dd.1#1 branch
.. //depot/projects/vap/bin/dd/dd.c#1 branch
.. //depot/projects/vap/bin/dd/dd.h#1 branch
.. //depot/projects/vap/bin/dd/extern.h#1 branch
.. //depot/projects/vap/bin/dd/gen.c#1 branch
.. //depot/projects/vap/bin/dd/misc.c#1 branch
.. //depot/projects/vap/bin/dd/position.c#1 branch
.. //depot/projects/vap/bin/dd/ref.ascii#1 branch
.. //depot/projects/vap/bin/dd/ref.ebcdic#1 branch
.. //depot/projects/vap/bin/dd/ref.ibm#1 branch
.. //depot/projects/vap/bin/dd/ref.lcase#1 branch
.. //depot/projects/vap/bin/dd/ref.oldascii#1 branch
.. //depot/projects/vap/bin/dd/ref.oldebcdic#1 branch
.. //depot/projects/vap/bin/dd/ref.oldibm#1 branch
.. //depot/projects/vap/bin/dd/ref.pareven#1 branch
.. //depot/projects/vap/bin/dd/ref.parnone#1 branch
.. //depot/projects/vap/bin/dd/ref.parodd#1 branch
.. //depot/projects/vap/bin/dd/ref.parset#1 branch
.. //depot/projects/vap/bin/dd/ref.swab#1 branch
.. //depot/projects/vap/bin/dd/ref.ucase#1 branch
.. //depot/projects/vap/bin/df/Makefile#1 branch
.. //depot/projects/vap/bin/df/df.1#1 branch
.. //depot/projects/vap/bin/df/df.c#1 branch
.. //depot/projects/vap/bin/domainname/Makefile#1 branch
.. //depot/projects/vap/bin/domainname/domainname.1#1 branch
.. //depot/projects/vap/bin/domainname/domainname.c#1 branch
.. //depot/projects/vap/bin/echo/Makefile#1 branch
.. //depot/projects/vap/bin/echo/echo.1#1 branch
.. //depot/projects/vap/bin/echo/echo.c#1 branch
.. //depot/projects/vap/bin/ed/Makefile#1 branch
.. //depot/projects/vap/bin/ed/POSIX#1 branch
.. //depot/projects/vap/bin/ed/README#1 branch
.. //depot/projects/vap/bin/ed/buf.c#1 branch
.. //depot/projects/vap/bin/ed/cbc.c#1 branch
.. //depot/projects/vap/bin/ed/ed.1#1 branch
.. //depot/projects/vap/bin/ed/ed.h#1 branch
.. //depot/projects/vap/bin/ed/glbl.c#1 branch
.. //depot/projects/vap/bin/ed/io.c#1 branch
.. //depot/projects/vap/bin/ed/main.c#1 branch
.. //depot/projects/vap/bin/ed/re.c#1 branch
.. //depot/projects/vap/bin/ed/sub.c#1 branch
.. //depot/projects/vap/bin/ed/test/=.err#1 branch
.. //depot/projects/vap/bin/ed/test/Makefile#1 branch
.. //depot/projects/vap/bin/ed/test/README#1 branch
.. //depot/projects/vap/bin/ed/test/TODO#1 branch
.. //depot/projects/vap/bin/ed/test/a.d#1 branch
.. //depot/projects/vap/bin/ed/test/a.r#1 branch
.. //depot/projects/vap/bin/ed/test/a.t#1 branch
.. //depot/projects/vap/bin/ed/test/a1.err#1 branch
.. //depot/projects/vap/bin/ed/test/a2.err#1 branch
.. //depot/projects/vap/bin/ed/test/addr.d#1 branch
.. //depot/projects/vap/bin/ed/test/addr.r#1 branch
.. //depot/projects/vap/bin/ed/test/addr.t#1 branch
.. //depot/projects/vap/bin/ed/test/addr1.err#1 branch
.. //depot/projects/vap/bin/ed/test/addr2.err#1 branch
.. //depot/projects/vap/bin/ed/test/ascii.d.uu#1 branch
.. //depot/projects/vap/bin/ed/test/ascii.r.uu#1 branch
.. //depot/projects/vap/bin/ed/test/ascii.t#1 branch
.. //depot/projects/vap/bin/ed/test/bang1.d#1 branch
.. //depot/projects/vap/bin/ed/test/bang1.err#1 branch
.. //depot/projects/vap/bin/ed/test/bang1.r#1 branch
.. //depot/projects/vap/bin/ed/test/bang1.t#1 branch
.. //depot/projects/vap/bin/ed/test/bang2.err#1 branch
.. //depot/projects/vap/bin/ed/test/c.d#1 branch
.. //depot/projects/vap/bin/ed/test/c.r#1 branch
.. //depot/projects/vap/bin/ed/test/c.t#1 branch
.. //depot/projects/vap/bin/ed/test/c1.err#1 branch
.. //depot/projects/vap/bin/ed/test/c2.err#1 branch
.. //depot/projects/vap/bin/ed/test/ckscripts.sh#1 branch
.. //depot/projects/vap/bin/ed/test/d.d#1 branch
.. //depot/projects/vap/bin/ed/test/d.err#1 branch
.. //depot/projects/vap/bin/ed/test/d.r#1 branch
.. //depot/projects/vap/bin/ed/test/d.t#1 branch
.. //depot/projects/vap/bin/ed/test/e1.d#1 branch
.. //depot/projects/vap/bin/ed/test/e1.err#1 branch
.. //depot/projects/vap/bin/ed/test/e1.r#1 branch
.. //depot/projects/vap/bin/ed/test/e1.t#1 branch
.. //depot/projects/vap/bin/ed/test/e2.d#1 branch
.. //depot/projects/vap/bin/ed/test/e2.err#1 branch
.. //depot/projects/vap/bin/ed/test/e2.r#1 branch
.. //depot/projects/vap/bin/ed/test/e2.t#1 branch
.. //depot/projects/vap/bin/ed/test/e3.d#1 branch
.. //depot/projects/vap/bin/ed/test/e3.err#1 branch
.. //depot/projects/vap/bin/ed/test/e3.r#1 branch
.. //depot/projects/vap/bin/ed/test/e3.t#1 branch
.. //depot/projects/vap/bin/ed/test/e4.d#1 branch
.. //depot/projects/vap/bin/ed/test/e4.r#1 branch
.. //depot/projects/vap/bin/ed/test/e4.t#1 branch
.. //depot/projects/vap/bin/ed/test/f1.err#1 branch
.. //depot/projects/vap/bin/ed/test/f2.err#1 branch
.. //depot/projects/vap/bin/ed/test/g1.d#1 branch
.. //depot/projects/vap/bin/ed/test/g1.err#1 branch
.. //depot/projects/vap/bin/ed/test/g1.r#1 branch
.. //depot/projects/vap/bin/ed/test/g1.t#1 branch
.. //depot/projects/vap/bin/ed/test/g2.d#1 branch
.. //depot/projects/vap/bin/ed/test/g2.err#1 branch
.. //depot/projects/vap/bin/ed/test/g2.r#1 branch
.. //depot/projects/vap/bin/ed/test/g2.t#1 branch
.. //depot/projects/vap/bin/ed/test/g3.d#1 branch
.. //depot/projects/vap/bin/ed/test/g3.err#1 branch
.. //depot/projects/vap/bin/ed/test/g3.r#1 branch
.. //depot/projects/vap/bin/ed/test/g3.t#1 branch
.. //depot/projects/vap/bin/ed/test/g4.d#1 branch
.. //depot/projects/vap/bin/ed/test/g4.r#1 branch
.. //depot/projects/vap/bin/ed/test/g4.t#1 branch
.. //depot/projects/vap/bin/ed/test/g5.d#1 branch
.. //depot/projects/vap/bin/ed/test/g5.r#1 branch
.. //depot/projects/vap/bin/ed/test/g5.t#1 branch
.. //depot/projects/vap/bin/ed/test/h.err#1 branch
.. //depot/projects/vap/bin/ed/test/i.d#1 branch
.. //depot/projects/vap/bin/ed/test/i.r#1 branch
.. //depot/projects/vap/bin/ed/test/i.t#1 branch
.. //depot/projects/vap/bin/ed/test/i1.err#1 branch
.. //depot/projects/vap/bin/ed/test/i2.err#1 branch
.. //depot/projects/vap/bin/ed/test/i3.err#1 branch
.. //depot/projects/vap/bin/ed/test/j.d#1 branch
.. //depot/projects/vap/bin/ed/test/j.r#1 branch
.. //depot/projects/vap/bin/ed/test/j.t#1 branch
.. //depot/projects/vap/bin/ed/test/k.d#1 branch
.. //depot/projects/vap/bin/ed/test/k.r#1 branch
.. //depot/projects/vap/bin/ed/test/k.t#1 branch
.. //depot/projects/vap/bin/ed/test/k1.err#1 branch
.. //depot/projects/vap/bin/ed/test/k2.err#1 branch
.. //depot/projects/vap/bin/ed/test/k3.err#1 branch
.. //depot/projects/vap/bin/ed/test/k4.err#1 branch
.. //depot/projects/vap/bin/ed/test/l.d#1 branch
.. //depot/projects/vap/bin/ed/test/l.r#1 branch
.. //depot/projects/vap/bin/ed/test/l.t#1 branch
.. //depot/projects/vap/bin/ed/test/m.d#1 branch
.. //depot/projects/vap/bin/ed/test/m.err#1 branch
.. //depot/projects/vap/bin/ed/test/m.r#1 branch
.. //depot/projects/vap/bin/ed/test/m.t#1 branch
.. //depot/projects/vap/bin/ed/test/mkscripts.sh#1 branch
.. //depot/projects/vap/bin/ed/test/n.d#1 branch
.. //depot/projects/vap/bin/ed/test/n.r#1 branch
.. //depot/projects/vap/bin/ed/test/n.t#1 branch
.. //depot/projects/vap/bin/ed/test/nl.err#1 branch
.. //depot/projects/vap/bin/ed/test/nl1.d#1 branch
.. //depot/projects/vap/bin/ed/test/nl1.r#1 branch
.. //depot/projects/vap/bin/ed/test/nl1.t#1 branch
.. //depot/projects/vap/bin/ed/test/nl2.d#1 branch
.. //depot/projects/vap/bin/ed/test/nl2.r#1 branch
.. //depot/projects/vap/bin/ed/test/nl2.t#1 branch
.. //depot/projects/vap/bin/ed/test/p.d#1 branch
.. //depot/projects/vap/bin/ed/test/p.r#1 branch
.. //depot/projects/vap/bin/ed/test/p.t#1 branch
.. //depot/projects/vap/bin/ed/test/q.d#1 branch
.. //depot/projects/vap/bin/ed/test/q.r#1 branch
.. //depot/projects/vap/bin/ed/test/q.t#1 branch
.. //depot/projects/vap/bin/ed/test/q1.err#1 branch
.. //depot/projects/vap/bin/ed/test/r1.d#1 branch
.. //depot/projects/vap/bin/ed/test/r1.err#1 branch
.. //depot/projects/vap/bin/ed/test/r1.r#1 branch
.. //depot/projects/vap/bin/ed/test/r1.t#1 branch
.. //depot/projects/vap/bin/ed/test/r2.d#1 branch
.. //depot/projects/vap/bin/ed/test/r2.err#1 branch
.. //depot/projects/vap/bin/ed/test/r2.r#1 branch
.. //depot/projects/vap/bin/ed/test/r2.t#1 branch
.. //depot/projects/vap/bin/ed/test/r3.d#1 branch
.. //depot/projects/vap/bin/ed/test/r3.r#1 branch
.. //depot/projects/vap/bin/ed/test/r3.t#1 branch
.. //depot/projects/vap/bin/ed/test/s1.d#1 branch
.. //depot/projects/vap/bin/ed/test/s1.err#1 branch
.. //depot/projects/vap/bin/ed/test/s1.r#1 branch
.. //depot/projects/vap/bin/ed/test/s1.t#1 branch
.. //depot/projects/vap/bin/ed/test/s10.err#1 branch
.. //depot/projects/vap/bin/ed/test/s2.d#1 branch
.. //depot/projects/vap/bin/ed/test/s2.err#1 branch
.. //depot/projects/vap/bin/ed/test/s2.r#1 branch
.. //depot/projects/vap/bin/ed/test/s2.t#1 branch
.. //depot/projects/vap/bin/ed/test/s3.d#1 branch
.. //depot/projects/vap/bin/ed/test/s3.err#1 branch
.. //depot/projects/vap/bin/ed/test/s3.r#1 branch
.. //depot/projects/vap/bin/ed/test/s3.t#1 branch
.. //depot/projects/vap/bin/ed/test/s4.err#1 branch
.. //depot/projects/vap/bin/ed/test/s5.err#1 branch
.. //depot/projects/vap/bin/ed/test/s6.err#1 branch
.. //depot/projects/vap/bin/ed/test/s7.err#1 branch
.. //depot/projects/vap/bin/ed/test/s8.err#1 branch
.. //depot/projects/vap/bin/ed/test/s9.err#1 branch
.. //depot/projects/vap/bin/ed/test/t.d#1 branch
.. //depot/projects/vap/bin/ed/test/t.r#1 branch
.. //depot/projects/vap/bin/ed/test/t1.d#1 branch
.. //depot/projects/vap/bin/ed/test/t1.err#1 branch
.. //depot/projects/vap/bin/ed/test/t1.r#1 branch
.. //depot/projects/vap/bin/ed/test/t1.t#1 branch
.. //depot/projects/vap/bin/ed/test/t2.d#1 branch
.. //depot/projects/vap/bin/ed/test/t2.err#1 branch
.. //depot/projects/vap/bin/ed/test/t2.r#1 branch
.. //depot/projects/vap/bin/ed/test/t2.t#1 branch
.. //depot/projects/vap/bin/ed/test/u.d#1 branch
.. //depot/projects/vap/bin/ed/test/u.err#1 branch
.. //depot/projects/vap/bin/ed/test/u.r#1 branch
.. //depot/projects/vap/bin/ed/test/u.t#1 branch
.. //depot/projects/vap/bin/ed/test/v.d#1 branch
.. //depot/projects/vap/bin/ed/test/v.r#1 branch
.. //depot/projects/vap/bin/ed/test/v.t#1 branch
.. //depot/projects/vap/bin/ed/test/w.d#1 branch
.. //depot/projects/vap/bin/ed/test/w.r#1 branch
.. //depot/projects/vap/bin/ed/test/w.t#1 branch
.. //depot/projects/vap/bin/ed/test/w1.err#1 branch
.. //depot/projects/vap/bin/ed/test/w2.err#1 branch
.. //depot/projects/vap/bin/ed/test/w3.err#1 branch
.. //depot/projects/vap/bin/ed/test/x.err#1 branch
.. //depot/projects/vap/bin/ed/test/z.err#1 branch
.. //depot/projects/vap/bin/ed/undo.c#1 branch
.. //depot/projects/vap/bin/expr/Makefile#1 branch
.. //depot/projects/vap/bin/expr/expr.1#1 branch
.. //depot/projects/vap/bin/expr/expr.y#1 branch
.. //depot/projects/vap/bin/getfacl/Makefile#1 branch
.. //depot/projects/vap/bin/getfacl/getfacl.1#1 branch
.. //depot/projects/vap/bin/getfacl/getfacl.c#1 branch
.. //depot/projects/vap/bin/hostname/Makefile#1 branch
.. //depot/projects/vap/bin/hostname/hostname.1#1 branch
.. //depot/projects/vap/bin/hostname/hostname.c#1 branch
.. //depot/projects/vap/bin/kenv/Makefile#1 branch
.. //depot/projects/vap/bin/kenv/kenv.1#1 branch
.. //depot/projects/vap/bin/kenv/kenv.c#1 branch
.. //depot/projects/vap/bin/kill/Makefile#1 branch
.. //depot/projects/vap/bin/kill/kill.1#1 branch
.. //depot/projects/vap/bin/kill/kill.c#1 branch
.. //depot/projects/vap/bin/ln/Makefile#1 branch
.. //depot/projects/vap/bin/ln/ln.1#1 branch
.. //depot/projects/vap/bin/ln/ln.c#1 branch
.. //depot/projects/vap/bin/ln/symlink.7#1 branch
.. //depot/projects/vap/bin/ls/Makefile#1 branch
.. //depot/projects/vap/bin/ls/cmp.c#1 branch
.. //depot/projects/vap/bin/ls/extern.h#1 branch
.. //depot/projects/vap/bin/ls/ls.1#1 branch
.. //depot/projects/vap/bin/ls/ls.c#1 branch
.. //depot/projects/vap/bin/ls/ls.h#1 branch
.. //depot/projects/vap/bin/ls/print.c#1 branch
.. //depot/projects/vap/bin/ls/util.c#1 branch
.. //depot/projects/vap/bin/mkdir/Makefile#1 branch
.. //depot/projects/vap/bin/mkdir/mkdir.1#1 branch
.. //depot/projects/vap/bin/mkdir/mkdir.c#1 branch
.. //depot/projects/vap/bin/mv/Makefile#1 branch
.. //depot/projects/vap/bin/mv/mv.1#1 branch
.. //depot/projects/vap/bin/mv/mv.c#1 branch
.. //depot/projects/vap/bin/pax/Makefile#1 branch
.. //depot/projects/vap/bin/pax/ar_io.c#1 branch
.. //depot/projects/vap/bin/pax/ar_subs.c#1 branch
.. //depot/projects/vap/bin/pax/buf_subs.c#1 branch
.. //depot/projects/vap/bin/pax/cache.c#1 branch
.. //depot/projects/vap/bin/pax/cache.h#1 branch
.. //depot/projects/vap/bin/pax/cpio.1#1 branch
.. //depot/projects/vap/bin/pax/cpio.c#1 branch
.. //depot/projects/vap/bin/pax/cpio.h#1 branch
.. //depot/projects/vap/bin/pax/extern.h#1 branch
.. //depot/projects/vap/bin/pax/file_subs.c#1 branch
.. //depot/projects/vap/bin/pax/ftree.c#1 branch
.. //depot/projects/vap/bin/pax/ftree.h#1 branch
.. //depot/projects/vap/bin/pax/gen_subs.c#1 branch
.. //depot/projects/vap/bin/pax/getoldopt.c#1 branch
.. //depot/projects/vap/bin/pax/options.c#1 branch
.. //depot/projects/vap/bin/pax/options.h#1 branch
.. //depot/projects/vap/bin/pax/pat_rep.c#1 branch
.. //depot/projects/vap/bin/pax/pat_rep.h#1 branch
.. //depot/projects/vap/bin/pax/pax.1#1 branch
.. //depot/projects/vap/bin/pax/pax.c#1 branch
.. //depot/projects/vap/bin/pax/pax.h#1 branch
.. //depot/projects/vap/bin/pax/sel_subs.c#1 branch
.. //depot/projects/vap/bin/pax/sel_subs.h#1 branch
.. //depot/projects/vap/bin/pax/tables.c#1 branch
.. //depot/projects/vap/bin/pax/tables.h#1 branch
.. //depot/projects/vap/bin/pax/tar.1#1 branch
.. //depot/projects/vap/bin/pax/tar.c#1 branch
.. //depot/projects/vap/bin/pax/tar.h#1 branch
.. //depot/projects/vap/bin/pax/tty_subs.c#1 branch
.. //depot/projects/vap/bin/ps/Makefile#1 branch
.. //depot/projects/vap/bin/ps/extern.h#1 branch
.. //depot/projects/vap/bin/ps/fmt.c#1 branch
.. //depot/projects/vap/bin/ps/keyword.c#1 branch
.. //depot/projects/vap/bin/ps/nlist.c#1 branch
.. //depot/projects/vap/bin/ps/print.c#1 branch
.. //depot/projects/vap/bin/ps/ps.1#1 branch
.. //depot/projects/vap/bin/ps/ps.c#1 branch
.. //depot/projects/vap/bin/ps/ps.h#1 branch
.. //depot/projects/vap/bin/pwd/Makefile#1 branch
.. //depot/projects/vap/bin/pwd/pwd.1#1 branch
.. //depot/projects/vap/bin/pwd/pwd.c#1 branch
.. //depot/projects/vap/bin/rcp/Makefile#1 branch
.. //depot/projects/vap/bin/rcp/extern.h#1 branch
.. //depot/projects/vap/bin/rcp/rcp.1#1 branch
.. //depot/projects/vap/bin/rcp/rcp.c#1 branch
.. //depot/projects/vap/bin/rcp/util.c#1 branch
.. //depot/projects/vap/bin/realpath/Makefile#1 branch
.. //depot/projects/vap/bin/realpath/realpath.1#1 branch
.. //depot/projects/vap/bin/realpath/realpath.c#1 branch
.. //depot/projects/vap/bin/rm/Makefile#1 branch
.. //depot/projects/vap/bin/rm/rm.1#1 branch
.. //depot/projects/vap/bin/rm/rm.c#1 branch
.. //depot/projects/vap/bin/rmail/Makefile#1 branch
.. //depot/projects/vap/bin/rmdir/Makefile#1 branch
.. //depot/projects/vap/bin/rmdir/rmdir.1#1 branch
.. //depot/projects/vap/bin/rmdir/rmdir.c#1 branch
.. //depot/projects/vap/bin/setfacl/Makefile#1 branch
.. //depot/projects/vap/bin/setfacl/file.c#1 branch
.. //depot/projects/vap/bin/setfacl/mask.c#1 branch
.. //depot/projects/vap/bin/setfacl/merge.c#1 branch
.. //depot/projects/vap/bin/setfacl/remove.c#1 branch
.. //depot/projects/vap/bin/setfacl/setfacl.1#1 branch
.. //depot/projects/vap/bin/setfacl/setfacl.c#1 branch
.. //depot/projects/vap/bin/setfacl/setfacl.h#1 branch
.. //depot/projects/vap/bin/setfacl/util.c#1 branch
.. //depot/projects/vap/bin/sh/Makefile#1 branch
.. //depot/projects/vap/bin/sh/TOUR#1 branch
.. //depot/projects/vap/bin/sh/alias.c#1 branch
.. //depot/projects/vap/bin/sh/alias.h#1 branch
.. //depot/projects/vap/bin/sh/arith.h#1 branch
.. //depot/projects/vap/bin/sh/arith.y#1 branch
.. //depot/projects/vap/bin/sh/arith_lex.l#1 branch
.. //depot/projects/vap/bin/sh/bltin/bltin.h#1 branch
.. //depot/projects/vap/bin/sh/bltin/echo.1#1 branch
.. //depot/projects/vap/bin/sh/bltin/echo.c#1 branch
.. //depot/projects/vap/bin/sh/builtins.def#1 branch
.. //depot/projects/vap/bin/sh/cd.c#1 branch
.. //depot/projects/vap/bin/sh/cd.h#1 branch
.. //depot/projects/vap/bin/sh/error.c#1 branch
.. //depot/projects/vap/bin/sh/error.h#1 branch
.. //depot/projects/vap/bin/sh/eval.c#1 branch
.. //depot/projects/vap/bin/sh/eval.h#1 branch
.. //depot/projects/vap/bin/sh/exec.c#1 branch
.. //depot/projects/vap/bin/sh/exec.h#1 branch
.. //depot/projects/vap/bin/sh/expand.c#1 branch
.. //depot/projects/vap/bin/sh/expand.h#1 branch
.. //depot/projects/vap/bin/sh/funcs/cmv#1 branch
.. //depot/projects/vap/bin/sh/funcs/dirs#1 branch
.. //depot/projects/vap/bin/sh/funcs/kill#1 branch
.. //depot/projects/vap/bin/sh/funcs/login#1 branch
.. //depot/projects/vap/bin/sh/funcs/newgrp#1 branch
.. //depot/projects/vap/bin/sh/funcs/popd#1 branch
.. //depot/projects/vap/bin/sh/funcs/pushd#1 branch
.. //depot/projects/vap/bin/sh/funcs/suspend#1 branch
.. //depot/projects/vap/bin/sh/histedit.c#1 branch
.. //depot/projects/vap/bin/sh/init.h#1 branch
.. //depot/projects/vap/bin/sh/input.c#1 branch
.. //depot/projects/vap/bin/sh/input.h#1 branch
.. //depot/projects/vap/bin/sh/jobs.c#1 branch
.. //depot/projects/vap/bin/sh/jobs.h#1 branch
.. //depot/projects/vap/bin/sh/mail.c#1 branch
.. //depot/projects/vap/bin/sh/mail.h#1 branch
.. //depot/projects/vap/bin/sh/main.c#1 branch
.. //depot/projects/vap/bin/sh/main.h#1 branch
.. //depot/projects/vap/bin/sh/memalloc.c#1 branch
.. //depot/projects/vap/bin/sh/memalloc.h#1 branch
.. //depot/projects/vap/bin/sh/miscbltin.c#1 branch
.. //depot/projects/vap/bin/sh/mkbuiltins#1 branch
.. //depot/projects/vap/bin/sh/mkinit.c#1 branch
.. //depot/projects/vap/bin/sh/mknodes.c#1 branch
.. //depot/projects/vap/bin/sh/mksyntax.c#1 branch
.. //depot/projects/vap/bin/sh/mktokens#1 branch
.. //depot/projects/vap/bin/sh/myhistedit.h#1 branch
.. //depot/projects/vap/bin/sh/mystring.c#1 branch
.. //depot/projects/vap/bin/sh/mystring.h#1 branch
.. //depot/projects/vap/bin/sh/nodes.c.pat#1 branch
.. //depot/projects/vap/bin/sh/nodetypes#1 branch
.. //depot/projects/vap/bin/sh/options.c#1 branch
.. //depot/projects/vap/bin/sh/options.h#1 branch
.. //depot/projects/vap/bin/sh/output.c#1 branch
.. //depot/projects/vap/bin/sh/output.h#1 branch
.. //depot/projects/vap/bin/sh/parser.c#1 branch
.. //depot/projects/vap/bin/sh/parser.h#1 branch
.. //depot/projects/vap/bin/sh/redir.c#1 branch
.. //depot/projects/vap/bin/sh/redir.h#1 branch
.. //depot/projects/vap/bin/sh/sh.1#1 branch
.. //depot/projects/vap/bin/sh/shell.h#1 branch
.. //depot/projects/vap/bin/sh/show.c#1 branch
.. //depot/projects/vap/bin/sh/show.h#1 branch
.. //depot/projects/vap/bin/sh/trap.c#1 branch
.. //depot/projects/vap/bin/sh/trap.h#1 branch
.. //depot/projects/vap/bin/sh/var.c#1 branch
.. //depot/projects/vap/bin/sh/var.h#1 branch
.. //depot/projects/vap/bin/sleep/Makefile#1 branch
.. //depot/projects/vap/bin/sleep/sleep.1#1 branch
.. //depot/projects/vap/bin/sleep/sleep.c#1 branch
.. //depot/projects/vap/bin/stty/Makefile#1 branch
.. //depot/projects/vap/bin/stty/cchar.c#1 branch
.. //depot/projects/vap/bin/stty/extern.h#1 branch
.. //depot/projects/vap/bin/stty/gfmt.c#1 branch
.. //depot/projects/vap/bin/stty/key.c#1 branch
.. //depot/projects/vap/bin/stty/modes.c#1 branch
.. //depot/projects/vap/bin/stty/print.c#1 branch
.. //depot/projects/vap/bin/stty/stty.1#1 branch
.. //depot/projects/vap/bin/stty/stty.c#1 branch
.. //depot/projects/vap/bin/stty/stty.h#1 branch
.. //depot/projects/vap/bin/stty/util.c#1 branch
.. //depot/projects/vap/bin/sync/Makefile#1 branch
.. //depot/projects/vap/bin/sync/sync.8#1 branch
.. //depot/projects/vap/bin/sync/sync.c#1 branch
.. //depot/projects/vap/bin/test/Makefile#1 branch
.. //depot/projects/vap/bin/test/TEST.README#1 branch
.. //depot/projects/vap/bin/test/TEST.csh#1 branch
.. //depot/projects/vap/bin/test/TEST.sh#1 branch
.. //depot/projects/vap/bin/test/test.1#1 branch
.. //depot/projects/vap/bin/test/test.c#1 branch
.. //depot/projects/vap/cddl/Makefile#1 branch
.. //depot/projects/vap/cddl/Makefile.inc#1 branch
.. //depot/projects/vap/cddl/lib/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/Makefile.inc#1 branch
.. //depot/projects/vap/cddl/lib/libavl/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/libnvpair/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/libumem/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/libuutil/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/libzfs/Makefile#1 branch
.. //depot/projects/vap/cddl/lib/libzpool/Makefile#1 branch
.. //depot/projects/vap/cddl/sbin/Makefile#1 branch
.. //depot/projects/vap/cddl/sbin/Makefile.inc#1 branch
.. //depot/projects/vap/cddl/sbin/zfs/Makefile#1 branch
.. //depot/projects/vap/cddl/sbin/zpool/Makefile#1 branch
.. //depot/projects/vap/cddl/usr.bin/Makefile#1 branch
.. //depot/projects/vap/cddl/usr.bin/Makefile.inc#1 branch
.. //depot/projects/vap/cddl/usr.bin/ztest/Makefile#1 branch
.. //depot/projects/vap/cddl/usr.sbin/Makefile#1 branch
.. //depot/projects/vap/cddl/usr.sbin/Makefile.inc#1 branch
.. //depot/projects/vap/cddl/usr.sbin/zdb/Makefile#1 branch
.. //depot/projects/vap/compat/opensolaris/include/alloca.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/devid.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/fcntl.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/fsshare.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/libintl.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/mnttab.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/priv.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/solaris.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/stdio.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/stdlib.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/strings.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/unistd.h#1 branch
.. //depot/projects/vap/compat/opensolaris/include/zone.h#1 branch
.. //depot/projects/vap/compat/opensolaris/lib/libumem/umem.c#1 branch
.. //depot/projects/vap/compat/opensolaris/lib/libumem/umem.h#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/deviceid.c#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/fsshare.c#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/mkdirp.c#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/mnttab.c#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/zmount.c#1 branch
.. //depot/projects/vap/compat/opensolaris/misc/zone.c#1 branch
.. //depot/projects/vap/contrib/amd/AUTHORS#1 branch
.. //depot/projects/vap/contrib/amd/BUGS#1 branch
.. //depot/projects/vap/contrib/amd/COPYING#1 branch
.. //depot/projects/vap/contrib/amd/ChangeLog#1 branch
.. //depot/projects/vap/contrib/amd/FREEBSD-Xlist#1 branch
.. //depot/projects/vap/contrib/amd/FREEBSD-upgrade#1 branch
.. //depot/projects/vap/contrib/amd/INSTALL#1 branch
.. //depot/projects/vap/contrib/amd/MIRRORS.html#1 branch
.. //depot/projects/vap/contrib/amd/MIRRORS.txt#1 branch
.. //depot/projects/vap/contrib/amd/NEWS#1 branch
.. //depot/projects/vap/contrib/amd/README#1 branch
.. //depot/projects/vap/contrib/amd/README.ldap#1 branch
.. //depot/projects/vap/contrib/amd/README.y2k#1 branch
.. //depot/projects/vap/contrib/amd/amd/am_ops.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amd.8#1 branch
.. //depot/projects/vap/contrib/amd/amd/amd.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amd.h#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_auto.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_direct.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_error.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_host.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_inherit.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_link.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_linkx.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_nfsl.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_nfsx.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_program.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_root.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_toplvl.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amfs_union.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amq_subr.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/amq_svc.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/autil.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/clock.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/conf.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/conf_parse.y#1 branch
.. //depot/projects/vap/contrib/amd/amd/conf_tok.l#1 branch
.. //depot/projects/vap/contrib/amd/amd/get_args.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_file.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_hesiod.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_ldap.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_ndbm.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_nis.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_nisplus.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_passwd.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/info_union.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/map.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/mapc.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/mntfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/nfs_prot_svc.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/nfs_start.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/nfs_subr.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_TEMPLATE.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_cachefs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_cdfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_efs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_lofs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_mfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_nfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_nfs3.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_nullfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_pcfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_tfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_tmpfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_ufs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_umapfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_unionfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/ops_xfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/opts.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/restart.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/rpc_fwd.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/sched.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/srvr_amfs_auto.c#1 branch
.. //depot/projects/vap/contrib/amd/amd/srvr_nfs.c#1 branch
.. //depot/projects/vap/contrib/amd/amq/amq.8#1 branch
.. //depot/projects/vap/contrib/amd/amq/amq.c#1 branch
.. //depot/projects/vap/contrib/amd/amq/amq.h#1 branch
.. //depot/projects/vap/contrib/amd/amq/amq_clnt.c#1 branch
.. //depot/projects/vap/contrib/amd/amq/amq_xdr.c#1 branch
.. //depot/projects/vap/contrib/amd/amq/pawd.1#1 branch
.. //depot/projects/vap/contrib/amd/amq/pawd.c#1 branch
.. //depot/projects/vap/contrib/amd/aux_conf.h.in#1 branch
.. //depot/projects/vap/contrib/amd/bootstrap#1 branch
.. //depot/projects/vap/contrib/amd/conf/checkmount/checkmount_bsd44.c#1 branch
.. //depot/projects/vap/contrib/amd/conf/fh_dref/fh_dref_freebsd22.h#1 branch
.. //depot/projects/vap/contrib/amd/conf/mtab/mtab_bsd.c#1 branch
.. //depot/projects/vap/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h#1 branch
.. //depot/projects/vap/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h#1 branch
.. //depot/projects/vap/contrib/amd/conf/sa_dref/sa_dref_bsd44.h#1 branch
.. //depot/projects/vap/contrib/amd/conf/transp/transp_sockets.c#1 branch
.. //depot/projects/vap/contrib/amd/conf/trap/trap_default.h#1 branch
.. //depot/projects/vap/contrib/amd/conf/umount/umount_bsd44.c#1 branch
.. //depot/projects/vap/contrib/amd/doc/am-utils.texi#1 branch
.. //depot/projects/vap/contrib/amd/doc/texinfo.tex#1 branch
.. //depot/projects/vap/contrib/amd/doc/version.texi#1 branch
.. //depot/projects/vap/contrib/amd/fixmount/fixmount.8#1 branch
.. //depot/projects/vap/contrib/amd/fixmount/fixmount.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_analyze.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_data.h#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_dict.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_gram.y#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_lex.l#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsi_util.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsinfo.8#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsinfo.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/fsinfo.h#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/wr_atab.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/wr_bparam.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/wr_dumpset.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/wr_exportfs.c#1 branch
.. //depot/projects/vap/contrib/amd/fsinfo/wr_fstab.c#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/hlfsd.8#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/hlfsd.c#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/hlfsd.h#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/homedir.c#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/nfs_prot_svc.c#1 branch
.. //depot/projects/vap/contrib/amd/hlfsd/stubs.c#1 branch
.. //depot/projects/vap/contrib/amd/include/am_compat.h#1 branch
.. //depot/projects/vap/contrib/amd/include/am_defs.h#1 branch
.. //depot/projects/vap/contrib/amd/include/am_utils.h#1 branch
.. //depot/projects/vap/contrib/amd/include/am_xdr_func.h#1 branch
.. //depot/projects/vap/contrib/amd/include/amq_defs.h#1 branch
.. //depot/projects/vap/contrib/amd/include/mount_headers1.h#1 branch
.. //depot/projects/vap/contrib/amd/include/mount_headers2.h#1 branch
.. //depot/projects/vap/contrib/amd/ldap-id.ms#1 branch
.. //depot/projects/vap/contrib/amd/ldap-id.txt#1 branch
.. //depot/projects/vap/contrib/amd/libamu/alloca.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/amu.h#1 branch
.. //depot/projects/vap/contrib/amd/libamu/hasmntopt.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/misc_rpc.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/mount_fs.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/mtab.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/nfs_prot_xdr.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/strerror.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/util.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/wire.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/xdr_func.c#1 branch
.. //depot/projects/vap/contrib/amd/libamu/xutil.c#1 branch
.. //depot/projects/vap/contrib/amd/m4/GNUmakefile#1 branch
.. //depot/projects/vap/contrib/amd/m4/amdgrep#1 branch
.. //depot/projects/vap/contrib/amd/m4/amindent#1 branch
.. //depot/projects/vap/contrib/amd/m4/autopat#1 branch
.. //depot/projects/vap/contrib/amd/m4/chop-aclocal.pl#1 branch
.. //depot/projects/vap/contrib/amd/m4/copy-if-newbig#1 branch
.. //depot/projects/vap/contrib/amd/m4/macros/HEADER#1 branch
.. //depot/projects/vap/contrib/amd/m4/macros/TRAILER#1 branch
.. //depot/projects/vap/contrib/amd/m4/mk-aclocal#1 branch
.. //depot/projects/vap/contrib/amd/m4/mkconf#1 branch
.. //depot/projects/vap/contrib/amd/m4/rmtspc#1 branch
.. //depot/projects/vap/contrib/amd/m4/update_build_version#1 branch
.. //depot/projects/vap/contrib/amd/mk-amd-map/mk-amd-map.8#1 branch
.. //depot/projects/vap/contrib/amd/mk-amd-map/mk-amd-map.c#1 branch
.. //depot/projects/vap/contrib/amd/scripts/Makefile.am#1 branch
.. //depot/projects/vap/contrib/amd/scripts/Makefile.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/am-eject.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/amd.conf-sample#1 branch
.. //depot/projects/vap/contrib/amd/scripts/amd.conf.5#1 branch
.. //depot/projects/vap/contrib/amd/scripts/amd2ldif.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/amd2sun.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/automount2amd.8#1 branch
.. //depot/projects/vap/contrib/amd/scripts/automount2amd.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/ctl-amd.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/ctl-hlfsd.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/expn.1#1 branch
.. //depot/projects/vap/contrib/amd/scripts/expn.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/fix-amd-map.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/fixrmtab.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/redhat-ctl-amd.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/wait4amd.in#1 branch
.. //depot/projects/vap/contrib/amd/scripts/wait4amd2die.in#1 branch
.. //depot/projects/vap/contrib/amd/tasks#1 branch
.. //depot/projects/vap/contrib/amd/wire-test/wire-test.8#1 branch
.. //depot/projects/vap/contrib/amd/wire-test/wire-test.c#1 branch
.. //depot/projects/vap/contrib/bc/AUTHORS#1 branch
.. //depot/projects/vap/contrib/bc/ChangeLog#1 branch
.. //depot/projects/vap/contrib/bc/Examples/ckbook.b#1 branch
.. //depot/projects/vap/contrib/bc/Examples/pi.b#1 branch
.. //depot/projects/vap/contrib/bc/Examples/primes.b#1 branch
.. //depot/projects/vap/contrib/bc/Examples/twins.b#1 branch
.. //depot/projects/vap/contrib/bc/FAQ#1 branch
.. //depot/projects/vap/contrib/bc/FREEBSD-upgrade#1 branch
.. //depot/projects/vap/contrib/bc/INSTALL#1 branch
.. //depot/projects/vap/contrib/bc/Makefile.am#1 branch
.. //depot/projects/vap/contrib/bc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bc/NEWS#1 branch
.. //depot/projects/vap/contrib/bc/README#1 branch
.. //depot/projects/vap/contrib/bc/Test/BUG.bc#1 branch
.. //depot/projects/vap/contrib/bc/Test/array.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/arrayp.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/aryprm.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/atan.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/checklib.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/div.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/exp.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/fact.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/jn.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/ln.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/mul.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/raise.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/signum#1 branch
.. //depot/projects/vap/contrib/bc/Test/sine.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/sqrt.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/sqrt1.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/sqrt2.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/testfn.b#1 branch
.. //depot/projects/vap/contrib/bc/Test/timetest#1 branch
.. //depot/projects/vap/contrib/bc/acconfig.h#1 branch
.. //depot/projects/vap/contrib/bc/aclocal.m4#1 branch
.. //depot/projects/vap/contrib/bc/bc/Makefile.am#1 branch
.. //depot/projects/vap/contrib/bc/bc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bc/bc/bc.y#1 branch
.. //depot/projects/vap/contrib/bc/bc/bcdefs.h#1 branch
.. //depot/projects/vap/contrib/bc/bc/const.h#1 branch
.. //depot/projects/vap/contrib/bc/bc/execute.c#1 branch
.. //depot/projects/vap/contrib/bc/bc/fix-libmath_h#1 branch
.. //depot/projects/vap/contrib/bc/bc/global.c#1 branch
.. //depot/projects/vap/contrib/bc/bc/global.h#1 branch
.. //depot/projects/vap/contrib/bc/bc/libmath.b#1 branch
.. //depot/projects/vap/contrib/bc/bc/libmath.h#1 branch
.. //depot/projects/vap/contrib/bc/bc/load.c#1 branch
.. //depot/projects/vap/contrib/bc/bc/main.c#1 branch
.. //depot/projects/vap/contrib/bc/bc/proto.h#1 branch
.. //depot/projects/vap/contrib/bc/bc/sbc.y#1 branch
.. //depot/projects/vap/contrib/bc/bc/scan.l#1 branch
.. //depot/projects/vap/contrib/bc/bc/storage.c#1 branch
.. //depot/projects/vap/contrib/bc/bc/util.c#1 branch
.. //depot/projects/vap/contrib/bc/config.h.in#1 branch
.. //depot/projects/vap/contrib/bc/configure#1 branch
.. //depot/projects/vap/contrib/bc/configure.in#1 branch
.. //depot/projects/vap/contrib/bc/dc/Makefile.am#1 branch
.. //depot/projects/vap/contrib/bc/dc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bc/dc/array.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/dc-proto.h#1 branch
.. //depot/projects/vap/contrib/bc/dc/dc-regdef.h#1 branch
.. //depot/projects/vap/contrib/bc/dc/dc.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/dc.h#1 branch
.. //depot/projects/vap/contrib/bc/dc/eval.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/misc.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/numeric.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/stack.c#1 branch
.. //depot/projects/vap/contrib/bc/dc/string.c#1 branch
.. //depot/projects/vap/contrib/bc/doc/Makefile.am#1 branch
.. //depot/projects/vap/contrib/bc/doc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bc/doc/bc.1#1 branch
.. //depot/projects/vap/contrib/bc/doc/bc.texi#1 branch
.. //depot/projects/vap/contrib/bc/doc/dc.1#1 branch
.. //depot/projects/vap/contrib/bc/doc/dc.texi#1 branch
.. //depot/projects/vap/contrib/bc/h/number.h#1 branch
.. //depot/projects/vap/contrib/bc/install-sh#1 branch
.. //depot/projects/vap/contrib/bc/lib/Makefile.am#1 branch
.. //depot/projects/vap/contrib/bc/lib/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bc/lib/number.c#1 branch
.. //depot/projects/vap/contrib/bc/lib/testmul.c#1 branch
.. //depot/projects/vap/contrib/bc/lib/vfprintf.c#1 branch
.. //depot/projects/vap/contrib/bc/missing#1 branch
.. //depot/projects/vap/contrib/bc/mkinstalldirs#1 branch
.. //depot/projects/vap/contrib/bc/stamp-h.in#1 branch
.. //depot/projects/vap/contrib/bind9/CHANGES#1 branch
.. //depot/projects/vap/contrib/bind9/COPYRIGHT#1 branch
.. //depot/projects/vap/contrib/bind9/FAQ#1 branch
.. //depot/projects/vap/contrib/bind9/FAQ.xml#1 branch
.. //depot/projects/vap/contrib/bind9/FREEBSD-Upgrade#1 branch
.. //depot/projects/vap/contrib/bind9/FREEBSD-Xlist#1 branch
.. //depot/projects/vap/contrib/bind9/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/README#1 branch
.. //depot/projects/vap/contrib/bind9/README.idnkit#1 branch
.. //depot/projects/vap/contrib/bind9/acconfig.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/check-tool.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/check-tool.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkconf.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkconf.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkconf.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkzone.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkzone.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkzone.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/check/named-checkzone.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/dig.1#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/dig.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/dig.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/dig.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/dighost.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/host.1#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/host.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/host.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/host.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/include/dig/dig.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/nslookup.1#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/nslookup.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/nslookup.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dig/nslookup.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-keygen.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-keygen.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-keygen.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-keygen.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-signzone.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-signzone.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssec-signzone.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssectool.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/dnssec/dnssectool.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/builtin.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/client.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/config.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/control.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/controlconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/builtin.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/client.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/config.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/control.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/globals.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/interfacemgr.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/listenlist.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/log.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/logconf.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/lwaddr.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/lwdclient.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/lwresd.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/lwsearch.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/main.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/notify.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/ns_smf_globals.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/query.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/server.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/sortlist.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/tkeyconf.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/tsigconf.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/types.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/update.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/xfrout.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/include/named/zoneconf.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/interfacemgr.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/listenlist.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/log.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/logconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwaddr.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwdclient.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwderror.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwdgabn.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwdgnba.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwdgrbn.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwdnoop.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwresd.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwresd.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwresd.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwresd.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/lwsearch.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/main.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.conf.5#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.conf.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.conf.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/named.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/notify.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/query.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/server.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/sortlist.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/tkeyconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/tsigconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/unix/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/unix/include/named/os.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/unix/os.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/update.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/xfrout.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/named/zoneconf.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/nsupdate/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/nsupdate/nsupdate.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/nsupdate/nsupdate.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/nsupdate/nsupdate.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/nsupdate/nsupdate.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/include/rndc/os.h#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc-confgen.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc-confgen.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc-confgen.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc-confgen.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.8#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.conf#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.conf.5#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.conf.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.conf.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.docbook#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/rndc.html#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/unix/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/unix/os.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/util.c#1 branch
.. //depot/projects/vap/contrib/bind9/bin/rndc/util.h#1 branch
.. //depot/projects/vap/contrib/bind9/config.guess#1 branch
.. //depot/projects/vap/contrib/bind9/config.sub#1 branch
.. //depot/projects/vap/contrib/bind9/config.threads.in#1 branch
.. //depot/projects/vap/contrib/bind9/configure.in#1 branch
.. //depot/projects/vap/contrib/bind9/doc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM-book.xml#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch01.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch02.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch03.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch04.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch05.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch06.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch07.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch08.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch09.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.ch10.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Bv9ARM.pdf#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/README-SGML#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/isc-logo.eps#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/isc-logo.pdf#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.dig.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.dnssec-keygen.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.dnssec-signzone.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.host.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.named-checkconf.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.named-checkzone.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.named.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.rndc-confgen.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.rndc.conf.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/arm/man.rndc.html#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-baba-dnsext-acl-reqts-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-daigle-napstr-04.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-danisch-dns-rr-smtp-03.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-dnsext-opcode-discover-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-durand-dnsop-dynreverse-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-2929bis-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-ecc-key-07.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-interop3597-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-mdns-43.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-04.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-nsid-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-inaddr-required-07.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-respsize-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-06.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-enum-e164-gstn-np-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-ipv6-node-requirements-08.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ietf-secsh-dns-05.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-ihren-dnsext-threshold-validation-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-kato-dnsop-local-zones-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/draft-schlitt-spf-classic-02.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/draft/update#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/Makefile.in#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/dnssec#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/format-options.pl#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/ipv6#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/migration#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/migration-4to9#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/options#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/rfc-compliance#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/roadmap#1 branch
.. //depot/projects/vap/contrib/bind9/doc/misc/sdb#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/index#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1032.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1033.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1034.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1035.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1101.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1122.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1123.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1183.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1348.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1535.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1536.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1537.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1591.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1611.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1612.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1706.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1712.txt#1 branch
.. //depot/projects/vap/contrib/bind9/doc/rfc/rfc1750.txt#1 branch

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:32:50 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 1AAA116A46B; Sat,  1 Dec 2007 22:32: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 D470416A41B
	for ; Sat,  1 Dec 2007 22:32:49 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id BA49413C45B
	for ; Sat,  1 Dec 2007 22:32:49 +0000 (UTC)
	(envelope-from peter@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 lB1MWnua084759
	for ; Sat, 1 Dec 2007 22:32:49 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1MWndY084756
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:32:49 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 22:32:49 GMT
Message-Id: <200712012232.lB1MWndY084756@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129908 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, 01 Dec 2007 22:32:50 -0000

http://perforce.freebsd.org/chv.cgi?CH=129908

Change 129908 by peter@peter_daintree on 2007/12/01 22:30:33

	IFC

Affected files ...

.. //depot/projects/bike_sched/sys/kern/kern_lock.c#4 integrate
.. //depot/projects/bike_sched/sys/kern/subr_stack.c#2 integrate
.. //depot/projects/bike_sched/sys/sys/stack.h#2 integrate
.. //depot/projects/bike_sched/sys/vm/redzone.c#2 integrate

Differences ...

==== //depot/projects/bike_sched/sys/kern/kern_lock.c#4 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.113 2007/11/24 04:22:27 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.114 2007/12/01 22:04:15 rwatson Exp $");
 
 #include "opt_ddb.h"
 #include "opt_global.h"
@@ -625,7 +625,7 @@
 	if (lkp->lk_waitcount > 0)
 		printf(" with %d pending", lkp->lk_waitcount);
 #ifdef DEBUG_LOCKS
-	stack_print(&lkp->lk_stack);
+	stack_print_ddb(&lkp->lk_stack);
 #endif
 }
 

==== //depot/projects/bike_sched/sys/kern/subr_stack.c#2 (text+ko) ====

@@ -24,8 +24,10 @@
  * SUCH DAMAGE.
  */
 
+#include "opt_ddb.h"
+
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/subr_stack.c,v 1.3 2006/05/28 22:15:28 kris Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_stack.c,v 1.4 2007/12/01 22:04:15 rwatson Exp $");
 
 #include 
 #include 
@@ -40,7 +42,12 @@
 
 MALLOC_DEFINE(M_STACK, "stack", "Stack Traces");
 
-static void stack_symbol(vm_offset_t pc, const char **name, long *offset);
+static void stack_symbol(vm_offset_t pc, char *namebuf, u_int buflen,
+	    long *offset);
+#ifdef DDB
+static void stack_symbol_ddb(vm_offset_t pc, char *namebuf, u_int buflen,
+	    long *offset);
+#endif
 
 struct stack *
 stack_create(void)
@@ -86,30 +93,67 @@
 void
 stack_print(struct stack *st)
 {
-	const char *name;
+	char namebuf[64];
+	long offset;
+	int i;
+
+	KASSERT(st->depth <= STACK_MAX, ("bogus stack"));
+	for (i = 0; i < st->depth; i++) {
+		stack_symbol(st->pcs[i], namebuf, sizeof(namebuf), &offset);
+		printf("#%d %p at %s+%#lx\n", i, (void *)st->pcs[i],
+		    namebuf, offset);
+	}
+}
+
+void
+stack_print_ddb(struct stack *st)
+{
+	char namebuf[64];
 	long offset;
 	int i;
 
 	KASSERT(st->depth <= STACK_MAX, ("bogus stack"));
 	for (i = 0; i < st->depth; i++) {
-		stack_symbol(st->pcs[i], &name, &offset);
+		stack_symbol_ddb(st->pcs[i], namebuf, sizeof(namebuf),
+		    &offset);
 		printf("#%d %p at %s+%#lx\n", i, (void *)st->pcs[i],
-		    name, offset);
+		    namebuf, offset);
 	}
 }
 
+/*
+ * Two print routines -- one for use from DDB and DDB-like contexts, the
+ * other for use in the live kernel.
+ */
 void
 stack_sbuf_print(struct sbuf *sb, struct stack *st)
 {
-	const char *name;
+	char namebuf[64];
+	long offset;
+	int i;
+
+	KASSERT(st->depth <= STACK_MAX, ("bogus stack"));
+	for (i = 0; i < st->depth; i++) {
+		stack_symbol(st->pcs[i], namebuf, sizeof(namebuf), &offset);
+		sbuf_printf(sb, "#%d %p at %s+%#lx\n", i, (void *)st->pcs[i],
+		    namebuf, offset);
+	}
+}
+
+#ifdef DDB
+void
+stack_sbuf_print_ddb(struct sbuf *sb, struct stack *st)
+{
+	char namebuf[64];
 	long offset;
 	int i;
 
 	KASSERT(st->depth <= STACK_MAX, ("bogus stack"));
 	for (i = 0; i < st->depth; i++) {
-		stack_symbol(st->pcs[i], &name, &offset);
+		stack_symbol_ddb(st->pcs[i], namebuf, sizeof(namebuf),
+		    &offset);
 		sbuf_printf(sb, "#%d %p at %s+%#lx\n", i, (void *)st->pcs[i],
-		    name, offset);
+		    namebuf, offset);
 	}
 }
 
@@ -118,7 +162,7 @@
 stack_ktr(u_int mask, const char *file, int line, struct stack *st, u_int depth,
     int cheap)
 {
-	const char *name;
+	char namebuf[64];
 	long offset;
 	int i;
 
@@ -141,29 +185,40 @@
 		if (depth == 0 || st->depth < depth)
 			depth = st->depth;
 		for (i = 0; i < depth; i++) {
-			stack_symbol(st->pcs[i], &name, &offset);
+			stack_symbol_ddb(st->pcs[i], namebuf,
+			    sizeof(namebuf), &offset);
 			ktr_tracepoint(mask, file, line, "#%d %p at %s+%#lx",
-			    i, st->pcs[i], (u_long)name, offset, 0, 0);
+			    i, st->pcs[i], (u_long)namebuf, offset, 0, 0);
 		}
 	}
 }
 #endif
+#endif
 
+/*
+ * Two variants of stack symbol lookup -- one that uses the DDB interfaces
+ * and bypasses linker locking, and the other that doesn't.
+ */
 static void
-stack_symbol(vm_offset_t pc, const char **name, long *offset)
+stack_symbol(vm_offset_t pc, char *namebuf, u_int buflen, long *offset)
 {
-	linker_symval_t symval;
-	c_linker_sym_t sym;
 
-	if (linker_ddb_search_symbol((caddr_t)pc, &sym, offset) != 0)
-		goto out;
-	if (linker_ddb_symbol_values(sym, &symval) != 0)
-		goto out;
-	if (symval.name != NULL) {
-		*name = symval.name;
-		return;
+	if (linker_search_symbol_name((caddr_t)pc, namebuf, buflen,
+	    offset) != 0) {
+		*offset = 0;
+		strlcpy(namebuf, "Unknown func", buflen);
 	}
-out:
-	*offset = 0;
-	*name = "Unknown func";
+}
+
+#ifdef DDB
+static void
+stack_symbol_ddb(vm_offset_t pc, char *namebuf, u_int buflen, long *offset)
+{
+
+	if (linker_ddb_search_symbol_name((caddr_t)pc, namebuf, buflen,
+	    offset) != 0) {
+		*offset = 0;
+		strlcpy(namebuf, "Unknown func", buflen);
+	};
 }
+#endif

==== //depot/projects/bike_sched/sys/sys/stack.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/sys/stack.h,v 1.2 2005/08/29 11:34:08 pjd Exp $
+ * $FreeBSD: src/sys/sys/stack.h,v 1.3 2007/12/01 22:04:15 rwatson Exp $
  */
 
 #ifndef _SYS_STACK_H_
@@ -45,7 +45,9 @@
 void		 stack_copy(struct stack *, struct stack *);
 void		 stack_zero(struct stack *);
 void		 stack_print(struct stack *);
+void		 stack_print_ddb(struct stack *);
 void		 stack_sbuf_print(struct sbuf *, struct stack *);
+void		 stack_sbuf_print_ddb(struct sbuf *, struct stack *);
 #ifdef KTR
 void		 stack_ktr(u_int, const char *, int, struct stack *, u_int, int);
 #define	CTRSTACK(m, st, depth, cheap) do {				\

==== //depot/projects/bike_sched/sys/vm/redzone.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/vm/redzone.c,v 1.1 2006/01/31 11:09:20 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/redzone.c,v 1.2 2007/12/01 22:04:16 rwatson Exp $");
 
 #include 
 #include 
@@ -152,10 +152,10 @@
 		    "corrupted before %p (%lu bytes allocated).\n",
 		    ncorruptions, ncorruptions == 1 ? "" : "s", naddr, nsize);
 		printf("Allocation backtrace:\n");
-		stack_print(&ast);
+		stack_print_ddb(&ast);
 		printf("Free backtrace:\n");
 		stack_save(&fst);
-		stack_print(&fst);
+		stack_print_ddb(&fst);
 		if (redzone_panic)
 			panic("Stopping here.");
 	}
@@ -171,10 +171,10 @@
 		    "after %p (%lu bytes allocated).\n", ncorruptions,
 		    ncorruptions == 1 ? "" : "s", naddr + nsize, nsize);
 		printf("Allocation backtrace:\n");
-		stack_print(&ast);
+		stack_print_ddb(&ast);
 		printf("Free backtrace:\n");
 		stack_save(&fst);
-		stack_print(&fst);
+		stack_print_ddb(&fst);
 		if (redzone_panic)
 			panic("Stopping here.");
 	}

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:32:50 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 92F0116A4DE; Sat,  1 Dec 2007 22:32: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 548D516A51B
	for ; Sat,  1 Dec 2007 22:32:50 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 1D65A13C4CC
	for ; Sat,  1 Dec 2007 22:32:50 +0000 (UTC)
	(envelope-from peter@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 lB1MWoZW084766
	for ; Sat, 1 Dec 2007 22:32:50 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1MWn7h084762
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:32:49 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 22:32:49 GMT
Message-Id: <200712012232.lB1MWn7h084762@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129909 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, 01 Dec 2007 22:32:50 -0000

http://perforce.freebsd.org/chv.cgi?CH=129909

Change 129909 by peter@peter_daintree on 2007/12/01 22:30:49

	Revert to vendor. too painful to merge, will redo.

Affected files ...

.. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#8 integrate
.. //depot/projects/bike_sched/sys/kern/sched_ule.c#6 integrate

Differences ...

==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#8 (text+ko) ====

@@ -33,12 +33,10 @@
  */
 
 #include 
-__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.86 2006/07/02 20:53:52 maxim Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.110 2007/11/14 06:21:22 julian Exp $");
 
 #include "opt_hwpmc_hooks.h"
 
-#define kse td_sched
-
 #include 
 #include 
 #include 
@@ -53,6 +51,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -76,56 +75,40 @@
 
 /*
  * The schedulable entity that runs a context.
- * A process may have several of these. Probably one per processor
- * but possibly a few more.
+ * This is  an extension to the thread structure and is tailored to
+ * the requirements of this scheduler
  */
-struct kse {
-	TAILQ_ENTRY(kse) ke_procq;	/* (j/z) Run queue. */
-	struct thread	*ke_thread;	/* (*) Active associated thread. */
-	fixpt_t		ke_pctcpu;	/* (j) %cpu during p_swtime. */
-	u_char		ke_rqindex;	/* (j) Run queue index. */
-	enum {
-		KES_THREAD = 0x0,	/* slaved to thread state */
-		KES_ONRUNQ
-	} ke_state;			/* (j) KSE status. */
-	int		ke_cpticks;	/* (j) Ticks of cpu time. */
-	struct runq	*ke_runq;	/* runq the kse is currently on */
+struct td_sched {
+	TAILQ_ENTRY(td_sched) ts_procq;	/* (j/z) Run queue. */
+	struct thread	*ts_thread;	/* (*) Active associated thread. */
+	fixpt_t		ts_pctcpu;	/* (j) %cpu during p_swtime. */
+	u_char		ts_rqindex;	/* (j) Run queue index. */
+	int		ts_cpticks;	/* (j) Ticks of cpu time. */
+	int		ts_slptime;	/* (j) Seconds !RUNNING. */
+	struct runq	*ts_runq;	/* runq the thread is currently on */
 };
 
-#define td_kse td_sched
-
 /* flags kept in td_flags */
-#define TDF_DIDRUN	TDF_SCHED0	/* KSE actually ran. */
-#define TDF_EXIT	TDF_SCHED1	/* KSE is being killed. */
+#define TDF_DIDRUN	TDF_SCHED0	/* thread actually ran. */
+#define TDF_EXIT	TDF_SCHED1	/* thread is being killed. */
 #define TDF_BOUND	TDF_SCHED2
 
-#define ke_flags	ke_thread->td_flags
-#define KEF_DIDRUN	TDF_DIDRUN /* KSE actually ran. */
-#define KEF_EXIT	TDF_EXIT /* KSE is being killed. */
-#define KEF_BOUND	TDF_BOUND /* stuck to one CPU */
+#define ts_flags	ts_thread->td_flags
+#define TSF_DIDRUN	TDF_DIDRUN /* thread actually ran. */
+#define TSF_EXIT	TDF_EXIT /* thread is being killed. */
+#define TSF_BOUND	TDF_BOUND /* stuck to one CPU */
 
-#define SKE_RUNQ_PCPU(ke)						\
-    ((ke)->ke_runq != 0 && (ke)->ke_runq != &runq)
+#define SKE_RUNQ_PCPU(ts)						\
+    ((ts)->ts_runq != 0 && (ts)->ts_runq != &runq)
 
-/*
- * KSE_CAN_MIGRATE macro returns true if the kse can migrate between
- * cpus.
- */
-#define KSE_CAN_MIGRATE(ke)						\
-    ((ke)->ke_thread->td_pinned == 0 && ((ke)->ke_flags & KEF_BOUND) == 0)
-
-static struct kse kse0;
+static struct td_sched td_sched0;
+struct mtx sched_lock;
 
 static int	sched_tdcnt;	/* Total runnable threads in the system. */
 static int	sched_quantum;	/* Roundrobin scheduling quantum in ticks. */
 #define	SCHED_QUANTUM	(hz / 10)	/* Default sched quantum */
 
-static struct callout roundrobin_callout;
-
-static struct thread *sched_choose(void);
-
 static void	setup_runqs(void);
-static void	roundrobin(void *arg);
 static void	schedcpu(void);
 static void	schedcpu_thread(void);
 static void	sched_priority(struct thread *td, u_char prio);
@@ -236,6 +219,12 @@
 	   "account for htt");
 
 #endif
+#if 0
+static int sched_followon = 0;
+SYSCTL_INT(_kern_sched, OID_AUTO, followon, CTLFLAG_RW,
+	   &sched_followon, 0,
+	   "allow threads to share a quantum");
+#endif
 
 static __inline void
 sched_load_add(void)
@@ -258,36 +247,15 @@
 maybe_resched(struct thread *td)
 {
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
 	if (td->td_priority < curthread->td_priority)
 		curthread->td_flags |= TDF_NEEDRESCHED;
 }
 
 /*
- * Force switch among equal priority processes every 100ms.
- * We don't actually need to force a context switch of the current process.
- * The act of firing the event triggers a context switch to softclock() and
- * then switching back out again which is equivalent to a preemption, thus
- * no further work is needed on the local CPU.
- */
-/* ARGSUSED */
-static void
-roundrobin(void *arg)
-{
-
-#ifdef SMP
-	mtx_lock_spin(&sched_lock);
-	forward_roundrobin();
-	mtx_unlock_spin(&sched_lock);
-#endif
-
-	callout_reset(&roundrobin_callout, sched_quantum, roundrobin, NULL);
-}
-
-/*
  * Constants for digital decay and forget:
  *	90% of (td_estcpu) usage in 5 * loadav time
- *	95% of (ke_pctcpu) usage in 60 seconds (load insensitive)
+ *	95% of (ts_pctcpu) usage in 60 seconds (load insensitive)
  *          Note that, as ps(1) mentions, this can let percentages
  *          total over 100% (I've seen 137.9% for 3 processes).
  *
@@ -352,7 +320,7 @@
 #define	loadfactor(loadav)	(2 * (loadav))
 #define	decay_cpu(loadfac, cpu)	(((loadfac) * (cpu)) / ((loadfac) + FSCALE))
 
-/* decay 95% of `ke_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */
+/* decay 95% of `ts_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */
 static fixpt_t	ccpu = 0.95122942450071400909 * FSCALE;	/* exp(-1/20) */
 SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "");
 
@@ -381,77 +349,70 @@
 	register fixpt_t loadfac = loadfactor(averunnable.ldavg[0]);
 	struct thread *td;
 	struct proc *p;
-	struct kse *ke;
+	struct td_sched *ts;
 	int awake, realstathz;
 
 	realstathz = stathz ? stathz : hz;
 	sx_slock(&allproc_lock);
 	FOREACH_PROC_IN_SYSTEM(p) {
-		/*
-		 * Prevent state changes and protect run queue.
-		 */
-		mtx_lock_spin(&sched_lock);
-		/*
-		 * Increment time in/out of memory.  We ignore overflow; with
-		 * 16-bit int's (remember them?) overflow takes 45 days.
-		 */
-		p->p_swtime++;
+		PROC_SLOCK(p);
 		FOREACH_THREAD_IN_PROC(p, td) { 
 			awake = 0;
-			ke = td->td_kse;
+			thread_lock(td);
+			ts = td->td_sched;
 			/*
 			 * Increment sleep time (if sleeping).  We
 			 * ignore overflow, as above.
 			 */
 			/*
-			 * The kse slptimes are not touched in wakeup
-			 * because the thread may not HAVE a KSE.
+			 * The td_sched slptimes are not touched in wakeup
+			 * because the thread may not HAVE everything in
+			 * memory? XXX I think this is out of date.
 			 */
-			if (ke->ke_state == KES_ONRUNQ) {
+			if (TD_ON_RUNQ(td)) {
 				awake = 1;
-				ke->ke_flags &= ~KEF_DIDRUN;
-			} else if ((ke->ke_state == KES_THREAD) &&
-			    (TD_IS_RUNNING(td))) {
+				ts->ts_flags &= ~TSF_DIDRUN;
+			} else if (TD_IS_RUNNING(td)) {
 				awake = 1;
-				/* Do not clear KEF_DIDRUN */
-			} else if (ke->ke_flags & KEF_DIDRUN) {
+				/* Do not clear TSF_DIDRUN */
+			} else if (ts->ts_flags & TSF_DIDRUN) {
 				awake = 1;
-				ke->ke_flags &= ~KEF_DIDRUN;
+				ts->ts_flags &= ~TSF_DIDRUN;
 			}
 
 			/*
-			 * ke_pctcpu is only for ps and ttyinfo().
-			 * Do it per kse, and add them up at the end?
+			 * ts_pctcpu is only for ps and ttyinfo().
+			 * Do it per td_sched, and add them up at the end?
 			 * XXXKSE
 			 */
-			ke->ke_pctcpu = (ke->ke_pctcpu * ccpu) >>
-			    FSHIFT;
+			ts->ts_pctcpu = (ts->ts_pctcpu * ccpu) >> FSHIFT;
 			/*
-			 * If the kse has been idle the entire second,
+			 * If the td_sched has been idle the entire second,
 			 * stop recalculating its priority until
 			 * it wakes up.
 			 */
-			if (ke->ke_cpticks == 0)
-				continue;
+			if (ts->ts_cpticks != 0) {
 #if	(FSHIFT >= CCPU_SHIFT)
-			ke->ke_pctcpu += (realstathz == 100)
-			    ? ((fixpt_t) ke->ke_cpticks) <<
-			    (FSHIFT - CCPU_SHIFT) :
-			    100 * (((fixpt_t) ke->ke_cpticks)
-			    << (FSHIFT - CCPU_SHIFT)) / realstathz;
+				ts->ts_pctcpu += (realstathz == 100)
+				    ? ((fixpt_t) ts->ts_cpticks) <<
+				    (FSHIFT - CCPU_SHIFT) :
+				    100 * (((fixpt_t) ts->ts_cpticks)
+				    << (FSHIFT - CCPU_SHIFT)) / realstathz;
 #else
-			ke->ke_pctcpu += ((FSCALE - ccpu) *
-			    (ke->ke_cpticks *
-			    FSCALE / realstathz)) >> FSHIFT;
+				ts->ts_pctcpu += ((FSCALE - ccpu) *
+				    (ts->ts_cpticks *
+				    FSCALE / realstathz)) >> FSHIFT;
 #endif
-			ke->ke_cpticks = 0;
-
+				ts->ts_cpticks = 0;
+			}
 			/* 
 			 * If there are ANY running threads in this process,
 			 * then don't count it as sleeping.
+XXX  this is broken
+
 			 */
 			if (awake) {
-				if (td->td_slptime > 1) {
+				if (ts->ts_slptime > 1) {
 					/*
 					 * In an ideal world, this should not
 					 * happen, because whoever woke us
@@ -463,16 +424,19 @@
 					 */
 					updatepri(td);
 				}
-				td->td_slptime = 0;
+				ts->ts_slptime = 0;
 			} else
-				td->td_slptime++;
-			if (td->td_slptime > 1)
+				ts->ts_slptime++;
+			if (ts->ts_slptime > 1) {
+				thread_unlock(td);
 				continue;
+			}
 			td->td_estcpu = decay_cpu(loadfac, td->td_estcpu);
 		      	resetpriority(td);
 			resetpriority_thread(td);
+			thread_unlock(td);
 		} /* end of thread loop */
-		mtx_unlock_spin(&sched_lock);
+		PROC_SUNLOCK(p);
 	} /* end of process loop */
 	sx_sunlock(&allproc_lock);
 }
@@ -483,11 +447,10 @@
 static void
 schedcpu_thread(void)
 {
-	int nowake;
 
 	for (;;) {
 		schedcpu();
-		tsleep(&nowake, 0, "-", hz);
+		pause("-", hz);
 	}
 }
 
@@ -499,16 +462,18 @@
 static void
 updatepri(struct thread *td)
 {
-	register fixpt_t loadfac;
-	register unsigned int newcpu;
+	struct td_sched *ts;
+	fixpt_t loadfac;
+	unsigned int newcpu;
 
+	ts = td->td_sched;
 	loadfac = loadfactor(averunnable.ldavg[0]);
-	if (td->td_slptime > 5 * loadfac)
+	if (ts->ts_slptime > 5 * loadfac)
 		td->td_estcpu = 0;
 	else {
 		newcpu = td->td_estcpu;
-		td->td_slptime--;	/* was incremented in schedcpu() */
-		while (newcpu && --td->td_slptime)
+		ts->ts_slptime--;	/* was incremented in schedcpu() */
+		while (newcpu && --ts->ts_slptime)
 			newcpu = decay_cpu(loadfac, newcpu);
 		td->td_estcpu = newcpu;
 	}
@@ -529,12 +494,12 @@
 		    NICE_WEIGHT * (td->td_proc->p_nice - PRIO_MIN);
 		newpriority = min(max(newpriority, PRI_MIN_TIMESHARE),
 		    PRI_MAX_TIMESHARE);
-		td->td_user_pri = newpriority;
+		sched_user_prio(td, newpriority);
 	}
 }
 
 /*
- * Update the thread's priority when the associated ksegroup's user
+ * Update the thread's priority when the associated process's user
  * priority changes.
  */
 static void
@@ -562,11 +527,6 @@
 		sched_quantum = SCHED_QUANTUM;
 	hogticks = 2 * sched_quantum;
 
-	callout_init(&roundrobin_callout, CALLOUT_MPSAFE);
-
-	/* Kick off timeout driven events by calling first time. */
-	roundrobin(NULL);
-
 	/* Account for thread0. */
 	sched_load_add();
 }
@@ -585,9 +545,10 @@
 	 * Set up the scheduler specific parts of proc0.
 	 */
 	proc0.p_sched = NULL; /* XXX */
-	thread0.td_sched = &kse0;
-	kse0.ke_thread = &thread0;
-	kse0.ke_state = KES_THREAD;
+	thread0.td_sched = &td_sched0;
+	thread0.td_lock = &sched_lock;
+	td_sched0.ts_thread = &thread0;
+	mtx_init(&sched_lock, "sched lock", NULL, MTX_SPIN | MTX_RECURSE);
 }
 
 int
@@ -625,17 +586,25 @@
 void
 sched_clock(struct thread *td)
 {
-	struct kse *ke;
+	struct td_sched *ts;
 
-	mtx_assert(&sched_lock, MA_OWNED);
-	ke = td->td_kse;
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	ts = td->td_sched;
 
-	ke->ke_cpticks++;
+	ts->ts_cpticks++;
 	td->td_estcpu = ESTCPULIM(td->td_estcpu + 1);
 	if ((td->td_estcpu % INVERSE_ESTCPU_WEIGHT) == 0) {
 		resetpriority(td);
 		resetpriority_thread(td);
 	}
+
+	/*
+	 * Force a context switch if the current thread has used up a full
+	 * quantum (default quantum is 100ms).
+	 */
+	if (!TD_IS_IDLETHREAD(td) &&
+	    ticks - PCPU_GET(switchticks) >= sched_quantum)
+		td->td_flags |= TDF_NEEDRESCHED;
 }
 
 /*
@@ -644,20 +613,39 @@
 void
 sched_exit(struct proc *p, struct thread *td)
 {
-	struct thread *parent = FIRST_THREAD_IN_PROC(p);
 
 	CTR3(KTR_SCHED, "sched_exit: %p(%s) prio %d",
-	    td, td->td_proc->p_comm, td->td_priority);
+	    td, td->td_name, td->td_priority);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
+	sched_exit_thread(FIRST_THREAD_IN_PROC(p), td);
+}
+
+void
+sched_exit_thread(struct thread *td, struct thread *child)
+{
 
-	parent->td_estcpu = ESTCPULIM(parent->td_estcpu + td->td_estcpu);
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	CTR3(KTR_SCHED, "sched_exit_thread: %p(%s) prio %d",
+	    child, child->td_name, child->td_priority);
+	thread_lock(td);
+	td->td_estcpu = ESTCPULIM(td->td_estcpu + child->td_estcpu);
+	thread_unlock(td);
+	mtx_lock_spin(&sched_lock);
+	if ((child->td_proc->p_flag & P_NOLOAD) == 0)
 		sched_load_rem();
+	mtx_unlock_spin(&sched_lock);
 }
 
 void
 sched_fork(struct thread *td, struct thread *childtd)
 {
+	sched_fork_thread(td, childtd);
+}
+
+void
+sched_fork_thread(struct thread *td, struct thread *childtd)
+{
 	childtd->td_estcpu = td->td_estcpu;
+	childtd->td_lock = &sched_lock;
 	sched_newthread(childtd);
 }
 
@@ -667,18 +655,20 @@
 	struct thread *td;
 
 	PROC_LOCK_ASSERT(p, MA_OWNED);
-	mtx_assert(&sched_lock, MA_OWNED);
+	PROC_SLOCK_ASSERT(p, MA_OWNED);
 	p->p_nice = nice;
 	FOREACH_THREAD_IN_PROC(p, td) {
+		thread_lock(td);
 		resetpriority(td);
 		resetpriority_thread(td);
+		thread_unlock(td);
 	}
 }
 
 void
 sched_class(struct thread *td, int class)
 {
-	mtx_assert(&sched_lock, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
 	td->td_pri_class = class;
 }
 
@@ -689,16 +679,17 @@
 sched_priority(struct thread *td, u_char prio)
 {
 	CTR6(KTR_SCHED, "sched_prio: %p(%s) prio %d newprio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, prio, curthread, 
-	    curthread->td_proc->p_comm);
+	    td, td->td_name, td->td_priority, prio, curthread, 
+	    curthread->td_name);
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
 	if (td->td_priority == prio)
 		return;
-	if (TD_ON_RUNQ(td)) {
-		adjustrunqueue(td, prio);
-	} else {
-		td->td_priority = prio;
+	td->td_priority = prio;
+	if (TD_ON_RUNQ(td) && 
+	    td->td_sched->ts_rqindex != (prio / RQ_PPQ)) {
+		sched_rem(td);
+		sched_add(td, SRQ_BORING);
 	}
 }
 
@@ -767,26 +758,78 @@
 }
 
 void
+sched_user_prio(struct thread *td, u_char prio)
+{
+	u_char oldprio;
+
+	td->td_base_user_pri = prio;
+	if (td->td_flags & TDF_UBORROWING && td->td_user_pri <= prio)
+		return;
+	oldprio = td->td_user_pri;
+	td->td_user_pri = prio;
+
+	if (TD_ON_UPILOCK(td) && oldprio != prio)
+		umtx_pi_adjust(td, oldprio);
+}
+
+void
+sched_lend_user_prio(struct thread *td, u_char prio)
+{
+	u_char oldprio;
+
+	td->td_flags |= TDF_UBORROWING;
+
+	oldprio = td->td_user_pri;
+	td->td_user_pri = prio;
+
+	if (TD_ON_UPILOCK(td) && oldprio != prio)
+		umtx_pi_adjust(td, oldprio);
+}
+
+void
+sched_unlend_user_prio(struct thread *td, u_char prio)
+{
+	u_char base_pri;
+
+	base_pri = td->td_base_user_pri;
+	if (prio >= base_pri) {
+		td->td_flags &= ~TDF_UBORROWING;
+		sched_user_prio(td, base_pri);
+	} else
+		sched_lend_user_prio(td, prio);
+}
+
+void
 sched_sleep(struct thread *td)
 {
 
-	mtx_assert(&sched_lock, MA_OWNED);
-	td->td_slptime = 0;
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	td->td_slptick = ticks;
+	td->td_sched->ts_slptime = 0;
 }
 
 void
 sched_switch(struct thread *td, struct thread *newtd, int flags)
 {
-	struct kse *ke;
+	struct td_sched *ts;
 	struct proc *p;
 
-	ke = td->td_kse;
+	ts = td->td_sched;
 	p = td->td_proc;
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	/*  
+	 * Switch to the sched lock to fix things up and pick
+	 * a new thread.
+	 */
+	if (td->td_lock != &sched_lock) {
+		mtx_lock_spin(&sched_lock);
+		thread_unlock(td);
+	}
 
 	if ((p->p_flag & P_NOLOAD) == 0)
 		sched_load_rem();
+
 	if (newtd) 
 		newtd->td_flags |= (td->td_flags & TDF_NEEDRESCHED);
 
@@ -800,12 +843,15 @@
 	 * or stopped or any thing else similar.  We never put the idle
 	 * threads on the run queue, however.
 	 */
-	if (td == PCPU_GET(idlethread))
+	if (td->td_flags & TDF_IDLETD) {
 		TD_SET_CAN_RUN(td);
-	else {
+#ifdef SMP
+		idle_cpus_mask &= ~PCPU_GET(cpumask);
+#endif
+	} else {
 		if (TD_IS_RUNNING(td)) {
-			/* Put us back on the run queue (kse and all). */
-			setrunqueue(td, (flags & SW_PREEMPT) ?
+			/* Put us back on the run queue. */
+			sched_add(td, (flags & SW_PREEMPT) ?
 			    SRQ_OURSELF|SRQ_YIELDING|SRQ_PREEMPTED :
 			    SRQ_OURSELF|SRQ_YIELDING);
 		}
@@ -816,45 +862,72 @@
 		 * as if it had been added to the run queue and selected.
 		 * It came from:
 		 * * A preemption
+		 * * An upcall 
 		 * * A followon
 		 */
 		KASSERT((newtd->td_inhibitors == 0),
-			("trying to run inhibitted thread"));
-		newtd->td_kse->ke_flags |= KEF_DIDRUN;
+			("trying to run inhibited thread"));
+		newtd->td_sched->ts_flags |= TSF_DIDRUN;
         	TD_SET_RUNNING(newtd);
 		if ((newtd->td_proc->p_flag & P_NOLOAD) == 0)
 			sched_load_add();
 	} else {
 		newtd = choosethread();
 	}
+	MPASS(newtd->td_lock == &sched_lock);
 
 	if (td != newtd) {
 #ifdef	HWPMC_HOOKS
 		if (PMC_PROC_IS_USING_PMCS(td->td_proc))
 			PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT);
 #endif
-		cpu_switch(td, newtd);
+
+                /* I feel sleepy */
+		cpu_switch(td, newtd, td->td_lock);
+		/*
+		 * Where am I?  What year is it?
+		 * We are in the same thread that went to sleep above,
+		 * but any amount of time may have passed. All out context
+		 * will still be available as will local variables.
+		 * PCPU values however may have changed as we may have
+		 * changed CPU so don't trust cached values of them.
+		 * New threads will go to fork_exit() instead of here
+		 * so if you change things here you may need to change
+		 * things there too.
+		 * If the thread above was exiting it will never wake
+		 * up again here, so either it has saved everything it
+		 * needed to, or the thread_wait() or wait() will
+		 * need to reap it.
+		 */
 #ifdef	HWPMC_HOOKS
 		if (PMC_PROC_IS_USING_PMCS(td->td_proc))
 			PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_IN);
 #endif
 	}
 
+#ifdef SMP
+	if (td->td_flags & TDF_IDLETD)
+		idle_cpus_mask |= PCPU_GET(cpumask);
+#endif
 	sched_lock.mtx_lock = (uintptr_t)td;
 	td->td_oncpu = PCPU_GET(cpuid);
+	MPASS(td->td_lock == &sched_lock);
 }
 
 void
 sched_wakeup(struct thread *td)
 {
+	struct td_sched *ts;
 
-	mtx_assert(&sched_lock, MA_OWNED);
-	if (td->td_slptime > 1) {
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	ts = td->td_sched;
+	if (ts->ts_slptime > 1) {
 		updatepri(td);
 		resetpriority(td);
 	}
-	td->td_slptime = 0;
-	setrunqueue(td, SRQ_BORING);
+	td->td_slptick = ticks;
+	ts->ts_slptime = 0;
+	sched_add(td, SRQ_BORING);
 }
 
 #ifdef SMP
@@ -984,45 +1057,56 @@
 sched_add(struct thread *td, int flags)
 #ifdef SMP
 {
-	struct kse *ke;
+	struct td_sched *ts;
 	int forwarded = 0;
 	int cpu;
 	int single_cpu = 0;
 
-	ke = td->td_kse;
-	mtx_assert(&sched_lock, MA_OWNED);
-	KASSERT(ke->ke_state != KES_ONRUNQ,
-	    ("sched_add: kse %p (%s) already in run queue", ke,
-	    td->td_proc->p_comm));
-	KASSERT(td->td_proc->p_sflag & PS_INMEM,
-	    ("sched_add: process swapped out"));
+	ts = td->td_sched;
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	KASSERT((td->td_inhibitors == 0),
+	    ("sched_add: trying to run inhibited thread"));
+	KASSERT((TD_CAN_RUN(td) || TD_IS_RUNNING(td)),
+	    ("sched_add: bad thread state"));
+	KASSERT(td->td_flags & TDF_INMEM,
+	    ("sched_add: thread swapped out"));
 	CTR5(KTR_SCHED, "sched_add: %p(%s) prio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, curthread,
-	    curthread->td_proc->p_comm);
+	    td, td->td_name, td->td_priority, curthread,
+	    curthread->td_name);
+	/*
+	 * Now that the thread is moving to the run-queue, set the lock
+	 * to the scheduler's lock.
+	 */
+	if (td->td_lock != &sched_lock) {
+		mtx_lock_spin(&sched_lock);
+		thread_lock_set(td, &sched_lock);
+	}
+	TD_SET_RUNQ(td);
 
 	if (td->td_pinned != 0) {
 		cpu = td->td_lastcpu;
-		ke->ke_runq = &runq_pcpu[cpu];
+		ts->ts_runq = &runq_pcpu[cpu];
 		single_cpu = 1;
 		CTR3(KTR_RUNQ,
-		    "sched_add: Put kse:%p(td:%p) on cpu%d runq", ke, td, cpu);
-	} else if ((ke)->ke_flags & KEF_BOUND) {
+		    "sched_add: Put td_sched:%p(td:%p) on cpu%d runq", ts, td, cpu);
+	} else if ((ts)->ts_flags & TSF_BOUND) {
 		/* Find CPU from bound runq */
-		KASSERT(SKE_RUNQ_PCPU(ke),("sched_add: bound kse not on cpu runq"));
-		cpu = ke->ke_runq - &runq_pcpu[0];
+		KASSERT(SKE_RUNQ_PCPU(ts),("sched_add: bound td_sched not on cpu runq"));
+		cpu = ts->ts_runq - &runq_pcpu[0];
 		single_cpu = 1;
 		CTR3(KTR_RUNQ,
-		    "sched_add: Put kse:%p(td:%p) on cpu%d runq", ke, td, cpu);
+		    "sched_add: Put td_sched:%p(td:%p) on cpu%d runq", ts, td, cpu);
 	} else {	
 		CTR2(KTR_RUNQ,
-		    "sched_add: adding kse:%p (td:%p) to gbl runq", ke, td);
+		    "sched_add: adding td_sched:%p (td:%p) to gbl runq", ts, td);
 		cpu = NOCPU;
-		ke->ke_runq = &runq;
+		ts->ts_runq = &runq;
 	}
 	
 	if (single_cpu && (cpu != PCPU_GET(cpuid))) {
 	        kick_other_cpu(td->td_priority,cpu);
 	} else {
+		
 		if (!single_cpu) {
 			cpumask_t me = PCPU_GET(cpumask);
 			int idle = idle_cpus_mask & me;	
@@ -1031,6 +1115,7 @@
 			    (idle_cpus_mask & ~(hlt_cpus_mask | me)))
 				forwarded = forward_wakeup(cpu);
 		}
+
 		if (!forwarded) {
 			if ((flags & SRQ_YIELDING) == 0 && maybe_preempt(td))
 				return;
@@ -1041,24 +1126,33 @@
 	
 	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
 		sched_load_add();
-	runq_add(ke->ke_runq, ke, flags);
-	ke->ke_state = KES_ONRUNQ;
+	runq_add(ts->ts_runq, ts, flags);
 }
 #else /* SMP */
 {
-	struct kse *ke;
-	ke = td->td_kse;
-	mtx_assert(&sched_lock, MA_OWNED);
-	KASSERT(ke->ke_state != KES_ONRUNQ,
-	    ("sched_add: kse %p (%s) already in run queue", ke,
-	    td->td_proc->p_comm));
-	KASSERT(td->td_proc->p_sflag & PS_INMEM,
-	    ("sched_add: process swapped out"));
+	struct td_sched *ts;
+	ts = td->td_sched;
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
+	KASSERT((td->td_inhibitors == 0),
+	    ("sched_add: trying to run inhibited thread"));
+	KASSERT((TD_CAN_RUN(td) || TD_IS_RUNNING(td)),
+	    ("sched_add: bad thread state"));
+	KASSERT(td->td_flags & TDF_INMEM,
+	    ("sched_add: thread swapped out"));
 	CTR5(KTR_SCHED, "sched_add: %p(%s) prio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, curthread,
-	    curthread->td_proc->p_comm);
-	CTR2(KTR_RUNQ, "sched_add: adding kse:%p (td:%p) to runq", ke, td);
-	ke->ke_runq = &runq;
+	    td, td->td_name, td->td_priority, curthread,
+	    curthread->td_name);
+	/*
+	 * Now that the thread is moving to the run-queue, set the lock
+	 * to the scheduler's lock.
+	 */
+	if (td->td_lock != &sched_lock) {
+		mtx_lock_spin(&sched_lock);
+		thread_lock_set(td, &sched_lock);
+	}
+	TD_SET_RUNQ(td);
+	CTR2(KTR_RUNQ, "sched_add: adding td_sched:%p (td:%p) to runq", ts, td);
+	ts->ts_runq = &runq;
 
 	/* 
 	 * If we are yielding (on the way out anyhow) 
@@ -1077,70 +1171,30 @@
 	}	
 	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
 		sched_load_add();
-	runq_add(ke->ke_runq, ke, flags);
-	ke->ke_state = KES_ONRUNQ;
+	runq_add(ts->ts_runq, ts, flags);
 	maybe_resched(td);
 }
 #endif /* SMP */
 
 void
-sched_run_ithread(struct thread *td)
-{
-	struct kse *ke = td->td_kse;
-
-	/* Inline of setrunqueue */
-	CTR2(KTR_RUNQ, "sched_run_ithread: td:%p pid:%d",
-	    td, td->td_proc->p_pid);
-	CTR5(KTR_SCHED, "sched_run_ithread: %p(%s) prio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, ctd,
-	    ctd->td_proc->p_comm);
-	mtx_assert(&sched_lock, MA_OWNED);
-	KASSERT((td->td_inhibitors == 0),
-		 ("sched_run_ithread: trying to run inhibitted thread"));
-	KASSERT((TD_CAN_RUN(td) || TD_IS_RUNNING(td)),
-	    ("sched_run_ithread: bad thread state"));
-	KASSERT(ke->ke_state != KES_ONRUNQ,
-	    ("sched_run_ithread: kse %p (%s) already in run queue", ke,
-	    td->td_proc->p_comm));
-	KASSERT(td->td_proc->p_sflag & PS_INMEM,
-	    ("sched_run_ithread: process swapped out"));
-	CTR5(KTR_SCHED, "sched_run_ithread: %p(%s) prio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, curthread,
-	    curthread->td_proc->p_comm);
-	CTR2(KTR_RUNQ, "sched_run_ithread: adding kse:%p (td:%p) to runq", ke, td);
-
-	TD_SET_RUNQ(td);
-	ke->ke_runq = &runq;
-	/* Preempt if we can.  If we did, we're finished */
-	if (maybe_preempt(td))
-		return;
-	/* We didn't preempt. Place on runq */
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
-		sched_load_add();
-	runq_add(ke->ke_runq, ke, SRQ_INTR);
-	ke->ke_state = KES_ONRUNQ;
-	maybe_resched(td);
-}
-
-void
 sched_rem(struct thread *td)
 {
-	struct kse *ke;
+	struct td_sched *ts;
 
-	ke = td->td_kse;
-	KASSERT(td->td_proc->p_sflag & PS_INMEM,
-	    ("sched_rem: process swapped out"));
-	KASSERT((ke->ke_state == KES_ONRUNQ),
-	    ("sched_rem: KSE not on run queue"));
+	ts = td->td_sched;
+	KASSERT(td->td_flags & TDF_INMEM,
+	    ("sched_rem: thread swapped out"));
+	KASSERT(TD_ON_RUNQ(td),
+	    ("sched_rem: thread not on run queue"));
 	mtx_assert(&sched_lock, MA_OWNED);
 	CTR5(KTR_SCHED, "sched_rem: %p(%s) prio %d by %p(%s)",
-	    td, td->td_proc->p_comm, td->td_priority, curthread,
-	    curthread->td_proc->p_comm);
+	    td, td->td_name, td->td_priority, curthread,
+	    curthread->td_name);
 
 	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
 		sched_load_rem();
-	runq_remove(ke->ke_runq, ke);
-	ke->ke_state = KES_THREAD;
+	runq_remove(ts->ts_runq, ts);
+	TD_SET_CAN_RUN(td);
 }
 
 /*
@@ -1150,58 +1204,83 @@
 struct thread *
 sched_choose(void)
 {
-	struct kse *ke;
+	struct td_sched *ts;
 	struct runq *rq;
 
+	mtx_assert(&sched_lock,  MA_OWNED);
 #ifdef SMP
-	struct kse *kecpu;
+	struct td_sched *kecpu;
 
 	rq = &runq;
-	ke = runq_choose(&runq);
+	ts = runq_choose(&runq);
 	kecpu = runq_choose(&runq_pcpu[PCPU_GET(cpuid)]);
 
-	if (ke == NULL || 
+	if (ts == NULL || 
 	    (kecpu != NULL && 
-	     kecpu->ke_thread->td_priority < ke->ke_thread->td_priority)) {
-		CTR2(KTR_RUNQ, "choosing kse %p from pcpu runq %d", kecpu,
+	     kecpu->ts_thread->td_priority < ts->ts_thread->td_priority)) {
+		CTR2(KTR_RUNQ, "choosing td_sched %p from pcpu runq %d", kecpu,
 		     PCPU_GET(cpuid));
-		ke = kecpu;
+		ts = kecpu;
 		rq = &runq_pcpu[PCPU_GET(cpuid)];
 	} else { 
-		CTR1(KTR_RUNQ, "choosing kse %p from main runq", ke);
+		CTR1(KTR_RUNQ, "choosing td_sched %p from main runq", ts);
 	}
 
 #else
 	rq = &runq;
-	ke = runq_choose(&runq);
+	ts = runq_choose(&runq);
 #endif
 
-	if (ke) {
-		runq_remove(rq, ke);
-		ke->ke_state = KES_THREAD;
+	if (ts) {
+		runq_remove(rq, ts);
+		ts->ts_flags |= TSF_DIDRUN;
+
+		KASSERT(ts->ts_thread->td_flags & TDF_INMEM,
+		    ("sched_choose: thread swapped out"));
+		return (ts->ts_thread);
+	} 
+	return (PCPU_GET(idlethread));
+}
 
-		KASSERT(ke->ke_thread->td_proc->p_sflag & PS_INMEM,
-		    ("sched_choose: process swapped out"));
-		return (ke->ke_thread);
+void
+sched_userret(struct thread *td)
+{
+	/*
+	 * XXX we cheat slightly on the locking here to avoid locking in
+	 * the usual case.  Setting td_priority here is essentially an
+	 * incomplete workaround for not setting it properly elsewhere.
+	 * Now that some interrupt handlers are threads, not setting it
+	 * properly elsewhere can clobber it in the window between setting
+	 * it here and returning to user mode, so don't waste time setting
+	 * it perfectly here.
+	 */
+	KASSERT((td->td_flags & TDF_BORROWING) == 0,
+	    ("thread with borrowed priority returning to userland"));
+	if (td->td_priority != td->td_user_pri) {
+		thread_lock(td);
+		td->td_priority = td->td_user_pri;
+		td->td_base_pri = td->td_user_pri;
+		thread_unlock(td);
 	}
-	return (NULL);
 }
 
 void
 sched_bind(struct thread *td, int cpu)
 {
-	struct kse *ke;
+	struct td_sched *ts;
 
-	mtx_assert(&sched_lock, MA_OWNED);
+	THREAD_LOCK_ASSERT(td, MA_OWNED);
 	KASSERT(TD_IS_RUNNING(td),
 	    ("sched_bind: cannot bind non-running thread"));
-	ke = td->td_kse;
-	ke->ke_flags |= KEF_BOUND;
+
+	ts = td->td_sched;
+
+	ts->ts_flags |= TSF_BOUND;
 #ifdef SMP

>>> TRUNCATED FOR MAIL (1000 lines) <<<

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:50:11 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 3FACB16A41A; Sat,  1 Dec 2007 22:50: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 3512216A418
	for ; Sat,  1 Dec 2007 22:50:10 +0000 (UTC)
	(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 1C5FE13C457
	for ; Sat,  1 Dec 2007 22:50:10 +0000 (UTC)
	(envelope-from peter@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 lB1MoAsa086567
	for ; Sat, 1 Dec 2007 22:50:10 GMT
	(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1Mo91B086561
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:50:09 GMT
	(envelope-from peter@freebsd.org)
Date: Sat, 1 Dec 2007 22:50:09 GMT
Message-Id: <200712012250.lB1Mo91B086561@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
	peter@freebsd.org using -f
From: Peter Wemm 
To: Perforce Change Reviews 
Cc: 
Subject: PERFORCE change 129911 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, 01 Dec 2007 22:50:11 -0000

http://perforce.freebsd.org/chv.cgi?CH=129911

Change 129911 by peter@peter_daintree on 2007/12/01 22:49:37

	Initial compile fixes

Affected files ...

.. //depot/projects/bike_sched/sys/kern/kern_kthread.c#3 edit
.. //depot/projects/bike_sched/sys/kern/kern_switch.c#5 edit
.. //depot/projects/bike_sched/sys/kern/kern_thr.c#5 edit
.. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#9 edit
.. //depot/projects/bike_sched/sys/kern/sched_ule.c#7 edit
.. //depot/projects/bike_sched/sys/vm/vm_glue.c#4 edit

Differences ...

==== //depot/projects/bike_sched/sys/kern/kern_kthread.c#3 (text+ko) ====

@@ -296,7 +296,7 @@
 	thread_link(newtd, p);
 	thread_lock(oldtd);
 	/* let the scheduler know about these things. */
-	sched_fork_thread(oldtd, newtd);
+	sched_fork(oldtd, newtd);
 	TD_SET_CAN_RUN(newtd);
 	thread_unlock(oldtd);
 	PROC_SUNLOCK(p);

==== //depot/projects/bike_sched/sys/kern/kern_switch.c#5 (text+ko) ====

@@ -585,7 +585,7 @@
  * thread is being either created or recycled.
  * Fix up the per-scheduler resources associated with it.
  * Called from:
- *  sched_fork_thread()
+ *  sched_fork()
  *  thread_dtor()  (*may go away)
  *  thread_init()  (*may go away)
  */

==== //depot/projects/bike_sched/sys/kern/kern_thr.c#5 (text+ko) ====

@@ -170,7 +170,7 @@
 		default:
 			return (EINVAL);
 		}
-
+	}
 	/* Initialize our td */
 	newtd = thread_alloc();
 	if (newtd == NULL)

==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#9 (text+ko) ====

@@ -638,12 +638,6 @@
 void
 sched_fork(struct thread *td, struct thread *childtd)
 {
-	sched_fork_thread(td, childtd);
-}
-
-void
-sched_fork_thread(struct thread *td, struct thread *childtd)
-{
 	childtd->td_estcpu = td->td_estcpu;
 	childtd->td_lock = &sched_lock;
 	sched_newthread(childtd);

==== //depot/projects/bike_sched/sys/kern/sched_ule.c#7 (text+ko) ====

@@ -1996,24 +1996,6 @@
 void
 sched_fork(struct thread *td, struct thread *child)
 {
-	THREAD_LOCK_ASSERT(td, MA_OWNED);
-	sched_fork_thread(td, child);
-	/*
-	 * Penalize the parent and child for forking.
-	 */
-	sched_interact_fork(child);
-	sched_priority(child);
-	td->td_sched->ts_runtime += tickincr;
-	sched_interact_update(td);
-	sched_priority(td);
-}
-
-/*
- * Fork a new thread, may be within the same process.
- */
-void
-sched_fork_thread(struct thread *td, struct thread *child)
-{
 	struct td_sched *ts;
 	struct td_sched *ts2;
 
@@ -2041,6 +2023,14 @@
 	ts2->ts_slptime = ts->ts_slptime;
 	ts2->ts_runtime = ts->ts_runtime;
 	ts2->ts_slice = 1;	/* Attempt to quickly learn interactivity. */
+	/*
+	 * Penalize the parent and child for forking.
+	 */
+	sched_interact_fork(child);
+	sched_priority(child);
+	td->td_sched->ts_runtime += tickincr;
+	sched_interact_update(td);
+	sched_priority(td);
 }
 
 /*

==== //depot/projects/bike_sched/sys/vm/vm_glue.c#4 (text+ko) ====

@@ -921,6 +921,7 @@
 				    !thread_safetoswapout(td)) {
 					thread_unlock(td);
 					goto nextproc;
+				}
 				/*
 				 * If the system is under memory stress,
 				 * or if we are swapping

From owner-p4-projects@FreeBSD.ORG  Sat Dec  1 22:59:24 2007
Return-Path: 
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id C486416A419; Sat,  1 Dec 2007 22:59: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 E9E1D16A468
	for ; Sat,  1 Dec 2007 22:59: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 CB03113C46A
	for ; Sat,  1 Dec 2007 22:59: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 lB1MxNX2087900
	for ; Sat, 1 Dec 2007 22:59:23 GMT
	(envelope-from jb@freebsd.org)
Received: (from perforce@localhost)
	by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1MxL5F087897
	for perforce@freebsd.org; Sat, 1 Dec 2007 22:59:21 GMT
	(envelope-from jb@freebsd.org)
Date: Sat, 1 Dec 2007 22:59:21 GMT
Message-Id: <200712012259.lB1MxL5F087897@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 129912 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, 01 Dec 2007 22:59:25 -0000

http://perforce.freebsd.org/chv.cgi?CH=129912

Change 129912 by jb@jb_freebsd1 on 2007/12/01 22:58:47

	IFC

Affected files ...

.. //depot/projects/binutils/src/gnu/usr.bin/binutils/libintl/Makefile#3 edit
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#7 integrate
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml#6 integrate
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/install/chapter.sgml#9 integrate
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml#10 integrate
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml#7 integrate
.. //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/porters-handbook/book.sgml#4 integrate
.. //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#50 integrate
.. //depot/projects/dtrace/doc/zh_TW.Big5/books/developers-handbook/book.sgml#4 integrate
.. //depot/projects/dtrace/doc/zh_TW.Big5/books/fdp-primer/book.sgml#6 integrate
.. //depot/projects/dtrace/doc/zh_TW.Big5/books/handbook/book.sgml#6 integrate
.. //depot/projects/dtrace/doc/zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml#4 integrate
.. //depot/projects/dtrace/src/include/assert.h#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/Makefile#5 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/amd64/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/amd64/include/pthread_md.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/arm/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/i386/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/i386/include/pthread_md.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/ia64/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/ia64/include/pthread_md.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/powerpc/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/powerpc/include/pthread_md.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/sparc64/include/atomic_ops.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/arch/sparc64/include/pthread_md.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/sys/lock.c#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/sys/thr_error.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_accept.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_aio_suspend.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_atfork.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_destroy.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_get_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getdetachstate.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getguardsize.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getinheritsched.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getschedparam.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getschedpolicy.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getscope.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getstack.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getstackaddr.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_getstacksize.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_init.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setcreatesuspend_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setdetachstate.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setguardsize.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setinheritsched.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setschedparam.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setschedpolicy.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setscope.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setstack.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setstackaddr.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_attr_setstacksize.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_barrier.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_barrierattr.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_cancel.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_clean.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_close.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_concurrency.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_cond.c#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_condattr_destroy.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_condattr_init.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_condattr_pshared.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_connect.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_creat.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_create.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_detach.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_equal.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_execve.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_exit.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_fcntl.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_find_thread.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_fork.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_fsync.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_getschedparam.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_info.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_init.c#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_join.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_kern.c#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_kill.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_main_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mattr_init.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mattr_kind_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mattr_pshared.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_msync.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_multi_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex.c#6 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex_prioceiling.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutex_protocol.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_mutexattr_destroy.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_nanosleep.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_once.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_open.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_pause.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_poll.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_priority_queue.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_private.h#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_pselect.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_pspinlock.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_raise.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_read.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_readv.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_resume_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_rtld.c#4 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_rwlock.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_rwlockattr.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_select.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_self.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_seterrno.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_setprio.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_setschedparam.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sig.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigaction.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigaltstack.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigmask.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigpending.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigprocmask.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigsuspend.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sigwait.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_single_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_sleep.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_spec.c#5 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_spinlock.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_stack.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_suspend_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_switch_np.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_symbols.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_system.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_tcdrain.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_vfork.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_wait.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_wait4.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_waitpid.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_write.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_writev.c#3 integrate
.. //depot/projects/dtrace/src/lib/libkse/thread/thr_yield.c#3 integrate
.. //depot/projects/dtrace/src/libexec/rtld-elf/sparc64/rtld_machdep.h#4 integrate
.. //depot/projects/dtrace/src/release/doc/share/sgml/release.ent#7 integrate
.. //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#25 integrate
.. //depot/projects/dtrace/src/sys/amd64/conf/NOTES#12 integrate
.. //depot/projects/dtrace/src/sys/conf/files#54 integrate
.. //depot/projects/dtrace/src/sys/conf/options.amd64#8 integrate
.. //depot/projects/dtrace/src/sys/conf/options.i386#9 integrate
.. //depot/projects/dtrace/src/sys/dev/si/si_pci.c#5 integrate
.. //depot/projects/dtrace/src/sys/dev/sio/sio_isa.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/sio/sio_puc.c#5 integrate
.. //depot/projects/dtrace/src/sys/dev/usb/if_zyd.c#7 integrate
.. //depot/projects/dtrace/src/sys/i386/conf/NOTES#15 integrate
.. //depot/projects/dtrace/src/sys/i386/i386/pmap.c#21 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_linker.c#25 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_lock.c#12 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_sysctl.c#10 integrate
.. //depot/projects/dtrace/src/sys/kern/subr_bus.c#10 integrate
.. //depot/projects/dtrace/src/sys/kern/subr_stack.c#4 integrate
.. //depot/projects/dtrace/src/sys/netgraph/ng_cisco.c#4 integrate
.. //depot/projects/dtrace/src/sys/netinet/tcp_output.c#11 integrate
.. //depot/projects/dtrace/src/sys/netinet/tcp_syncache.c#12 integrate
.. //depot/projects/dtrace/src/sys/pci/xrpu.c#4 delete
.. //depot/projects/dtrace/src/sys/sparc64/pci/ofw_pcibus.c#9 integrate
.. //depot/projects/dtrace/src/sys/sparc64/pci/psycho.c#8 integrate
.. //depot/projects/dtrace/src/sys/sparc64/pci/psychovar.h#5 integrate
.. //depot/projects/dtrace/src/sys/sys/linker.h#18 integrate
.. //depot/projects/dtrace/src/sys/sys/stack.h#4 integrate
.. //depot/projects/dtrace/src/sys/sys/sysctl.h#12 integrate
.. //depot/projects/dtrace/src/sys/sys/xrpuio.h#4 delete
.. //depot/projects/dtrace/src/sys/ufs/ffs/ffs_alloc.c#9 integrate
.. //depot/projects/dtrace/src/sys/vm/redzone.c#4 integrate
.. //depot/projects/dtrace/src/usr.bin/login/login.1#5 integrate
.. //depot/projects/dtrace/www/de/Makefile#8 integrate
.. //depot/projects/dtrace/www/de/features.sgml#6 integrate
.. //depot/projects/dtrace/www/de/java/Makefile#1 branch
.. //depot/projects/dtrace/www/de/java/Makefile.inc#1 branch
.. //depot/projects/dtrace/www/de/java/index.sgml#1 branch
.. //depot/projects/dtrace/www/de/logo.sgml#1 branch
.. //depot/projects/dtrace/www/de/projects/projects.sgml#2 integrate
.. //depot/projects/dtrace/www/de/share/sgml/navibar.l10n.ent#7 integrate
.. //depot/projects/dtrace/www/de/share/sgml/press.xml#14 integrate
.. //depot/projects/dtrace/www/de/where.sgml#12 integrate
.. //depot/projects/dtrace/www/en/releases/5.5R/errata.html#11 integrate
.. //depot/projects/dtrace/www/en/releases/6.2R/errata.html#3 integrate
.. //depot/projects/dtrace/www/en/releases/6.3R/schedule.sgml#2 integrate
.. //depot/projects/dtrace/www/en/releases/7.0R/schedule.sgml#7 integrate
.. //depot/projects/dtrace/www/en/releases/7.0R/todo.sgml#3 integrate

Differences ...

==== //depot/projects/binutils/src/gnu/usr.bin/binutils/libintl/Makefile#3 (text+ko) ====

@@ -25,9 +25,9 @@
 	ngettext.c	\
 	osdep.c		\
 	plural-exp.c	\
-	plural.y	\
 	relocatable.c	\
-	textdomain.c
+	textdomain.c	\
+	xplural.c
 
 WARNS?=	0
 CFLAGS+= -D_GNU_SOURCE
@@ -37,7 +37,4 @@
 CFLAGS+= -I${SRCDIR}/intl
 INTERNALLIB=
 
-YACC=	bison -y -d
-YFLAGS=	--name-prefix=__gettext
-
 .include 

==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#7 (text+ko) ====

@@ -2,9 +2,9 @@
      The FreeBSD Documentation Project
      The FreeBSD German Documentation Project
 
-     $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.38 2007/10/19 09:56:47 jkois Exp $
-     $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.166 2007/08/28 16:43:35 jkois Exp $
-     basiert auf: 1.399
+     $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.39 2007/12/01 17:19:43 miwi Exp $
+     $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.169 2007/12/01 09:55:03 jkois Exp $
+     basiert auf: 1.403
 -->
 
 
@@ -1066,8 +1066,8 @@
 
 	  &prompt.root; ifconfig ath0 up scan
 SSID            BSSID              CHAN RATE  S:N   INT CAPS
-dlinkap         00:13:46:49:41:76    6   54M 29:0   100 EPS  WPA WME
-freebsdap       00:11:95:c3:0d:ac    1   54M 22:0   100 EPS  WPA
+dlinkap         00:13:46:49:41:76    6   54M 29:3   100 EPS  WPA WME
+freebsdap       00:11:95:c3:0d:ac    1   54M 22:1   100 EPS  WPA
 
 	  
 	    Ihre Netzwerkkarte muss in den Status
@@ -1332,7 +1332,7 @@
 	      Konfigurationsparameter nicht versehentlich
 	      verändern:
 
-	    ifconfig_ath0="inet 192.168.1.100 netmask 255.255.255.0 ssid Ihre_SSID"
+	    ifconfig_ath0="ssid Ihre_ssid inet 192.168.1.100 netmask 255.255.255.0"
 	  
 
 	
@@ -1867,8 +1867,8 @@
 	  WEP kann über ifconfig
 	    aktiviert werden:
 
-	  &prompt.root; ifconfig ath0 inet 192.168.1.100 netmask 255.255.255.0 ssid my_net \
-	    wepmode on weptxkey 3 wepkey 3:0x3456789012
+	  &prompt.root; ifconfig ath0 ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012 \
+	    inet 192.168.1.100 netmask 255.255.255.0
 
 	  
 	    
@@ -1938,7 +1938,7 @@
       Auf dem Rechner A geben Sie Folgendes
 	ein:
 
-      &prompt.root; ifconfig ath0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc
+      &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0
 &prompt.root; ifconfig ath0
   ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
 	  inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
@@ -1957,14 +1957,14 @@
 
       &prompt.root; ifconfig ath0 up scan
   SSID            BSSID              CHAN RATE  S:N   INT CAPS
-  freebsdap       02:11:95:c3:0d:ac    2   54M 19:0   100 IS
+  freebsdap       02:11:95:c3:0d:ac    2   54M 19:3   100 IS
 
       Der Wert I (Spalte CAPS) gibt an,
 	dass sich Rechner A im Ad-hoc-Modus befindet.
 	Nun müssen Sie nur noch Rechner B eine
 	unterschiedliche IP-Adresse zuweisen:
 
-      &prompt.root; ifconfig ath0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc
+      &prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
 &prompt.root; ifconfig ath0
   ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
 	  inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
@@ -1980,6 +1980,17 @@
 	    Daten austauschen.
     
 
+    
+      &os; Host Access Points
+
+      Dieser Abschnitt ist noch nicht übersetzt.
+	Lesen Sie bitte 
+	das Original in englischer Sprache.  Wenn Sie helfen
+	wollen, diesen Abschnitt zu übersetzen, senden Sie bitte
+	eine E-Mail an die Mailingliste &a.de.translators;.
+    
+
     
       Problembehandlung
 
@@ -3291,6 +3302,17 @@
     
   
 
+  
+    Link Aggregation and Failover
+
+    Dieser Abschnitt ist noch nicht übersetzt.
+      Lesen Sie bitte 
+      das Original in englischer Sprache.  Wenn Sie helfen
+      wollen, diesen Abschnitt zu übersetzen, senden Sie bitte
+      eine E-Mail an die Mailingliste &a.de.translators;.
+  
+
   
     
       

==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml#6 (text+ko) ====

@@ -2,9 +2,9 @@
      The FreeBSD Documentation Project
      The FreeBSD German Documentation Project
 
-     $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.30 2007/07/18 06:28:02 jkois Exp $
-     $FreeBSDde: de-docproj/books/handbook/desktop/chapter.sgml,v 1.60 2007/07/16 05:54:00 jkois Exp $
-     basiert auf: 1.73
+     $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.31 2007/12/01 17:19:43 miwi Exp $
+     $FreeBSDde: de-docproj/books/handbook/desktop/chapter.sgml,v 1.61 2007/12/01 09:08:28 jkois Exp $
+     basiert auf: 1.74
 -->
 
 
@@ -930,6 +930,13 @@
             niedrig
             Tcl/Tk
           
+
+          
+            KMyMoney
+            niedrig
+            hoch
+            KDE
+          
         
       
     
@@ -1035,6 +1042,43 @@
       &prompt.root; cd /usr/ports/deskutils/abacus
 &prompt.root; make install clean
     
+
+    
+      KMyMoney
+
+      KMyMoney
+
+      
+	Tabellenkalkulation
+	KMyMoney
+      
+
+      Bei KMyMoney handelt es sich
+	ein Programm zur Verwaltung der persönlichen Finanzen, das
+	unter KDE entwickelt wird.   KMyMoney hat das Ziel, alle
+	wichtigen Funktionen zu bieten, die auch von kommerziellen
+	Programmen zur Verwaltung der persönlichen Finanzen
+	unterstützt werden.  Weiters zählen einfache
+	Benutzung sowie korrekte doppelte Buchführung zu den
+	herausragenden Fähigkeiten dieses Programms.  KMyMoney
+	unterstützt den Import von Datendateien im Format
+	Quicken Interchange Format (QIF),
+	kann Investionen verfolgen, unterstützt verschiedene
+	Währungen und bietet umfangreiche Reportmöglichkeiten.
+	OFX-Import wird über ein separates Plugin realisiert.
+
+      Um KMyMoney über das
+	&os;-Paketsystem zu installieren, geben Sie Folgendes ein:
+
+      &prompt.root; pkg_add -r kmymoney2
+
+      Sollte das Paket nicht verfügbar sein, können Sie
+	das Programm auch über die Ports-Sammlung
+	installieren:
+
+      &prompt.root; cd /usr/ports/finance/kmymoney2
+&prompt.root; make install clean
+    
   
 
   

==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/install/chapter.sgml#9 (text+ko) ====

@@ -1,9 +1,9 @@
 
 
 
@@ -44,6 +44,15 @@
       Installation
     
 
+    
+      Dieses Kapitel wird in der deutschen Version gerade
+        überarbeitet.  Im Zweifelsfall ist es daher ratsam,
+         das
+        Original in englischer Sprache zu lesen.  Wenn Sie
+        helfen wollen, dieses Kapitel zu übersetzen, senden Sie
+        bitte eine E-Mail an die Mailingliste &a.de.translators;.
+    
+
     &os; wird mit dem textorientierten Programm
       sysinstall installiert.  Distributoren
       können ein anderes Installationsprogramm verwenden,
@@ -137,6 +146,8 @@
       
         Die Alpha-Architektur
 
+	Alpha
+
 	Um &os;/alpha zu installieren, benötigen Sie
 	  eine unterstützte Plattorm (lesen Sie dazu auch
 	   des
@@ -149,6 +160,10 @@
 	  können Sie auch eine IDE-Platte verwenden, wenn Ihr
 	  SRM das Starten von IDE-Platten unterstützt.
 
+	ARC
+	Alpha BIOS
+	SRM
+
 	Für die &os;-Installation benötigen Sie die
 	  SRM-Konsolen-Firmware für Ihre Plattform.  Manchmal
 	  ist es möglich, zwischen der AlphaBIOS-Firmware
@@ -437,7 +452,17 @@
 	  während GParted und
 	  &partitionmagic; auch
 	  NTFS-Partitionen verändern
-	  können.
+	  können.  GParted ist auf
+	  vielen Linux-Live-CDs, beispielsweise der SystemRescueCD,
+	  verfügbar.
+
+        Bei der Veränderung von µsoft; Vista-Partionen
+	 kommt es manchmal zu Problemen.  In einem solchen Fall ist es
+	 von Vorteil, wenn Sie eine Vista-Installations-CD zur
+	 Verfügung haben.  Wie bei jeder Änderung an Ihrer
+	 Festplatte sollten Sie auch hier zuerst ein aktuelles Backup
+	 anlegen.
 
         
 	  Der falsche Gebrauch dieser Werkzeuge kann
@@ -1104,6 +1129,64 @@
 	  
         
       
+
+      
+	Systemstart bei &sparc64;-Systemen
+
+	Die meisten &sparc64;-Systeme sind so konfiguriert, dass sie
+	  automatisch von der Festplatte starten.  Um &os; auf einem
+	  solchen System zu installieren, müssen Sie das System aber
+	  über das Netzwerk oder von einer CD-ROM starten.  Daher
+	  müssen Sie den Bootprozess unterbrechen und das System
+	  über das PROM (OpenFirmware) starten.
+
+	Dazu starten Sie Ihr System neu und warten, bis die
+	  Startmeldung erscheint.  Der genaue Wortlaut hängt vom
+	  eingesetzten Modell ab, die Nachricht sollte aber ähnlich
+	  der folgenden aussehen:
+
+	Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
+Copyright 1998-2001 Sun Microsystems, Inc.  All rights reserved.
+OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
+Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.
+
+	Um den Startvorgang zu unterbrechen, drücken Sie nun
+	  die Tastenkombination L1A
+	  oder StopA.
+	  Verwenden Sie eine serielle Verbindung, senden Sie das Signal
+	  BREAK über die serielle Konsole
+	  (etwa durch die Eingabe von ~# in den
+	  Programmen &man.tip.1; oder &man.cu.1;).  In beiden Fällen
+	  landen Sie anschließend am PROM-Prompt:
+
+    
+      
+	
+	
+      
+
+      ok     
+ok {0} 
+
+      
+	
+	  Der auf Einprozessorsystemen verwendete Prompt.
+	
+
+	
+	  Der Prompt auf Mehrprozessorsystemen.  Die Zahl steht
+	    dabei für die Anzahl der vorhandenen Prozessoren.
+	
+      
+    
+
+    Nun legen Sie Ihre CD-ROM in das Laufwerk ein und geben am
+      PROM-Prompt boot cdrom ein.  Danach startet Ihr
+      System von der eingelegten CD-ROM.
+
+      
     
 
     
@@ -3979,7 +4062,7 @@
 
                          [ OK ]
 
-               [ Press enter to continue ]
+               [ Press enter or space ]
 
       Um das root-Passwort festzulegen,
 	drücken Sie die Taste Enter.
@@ -3990,8 +4073,7 @@
 	das Passwort weder ausgegeben wird noch Sterne
 	angezeigt werden.
 
-      Changing local password for root.
-New password :
+      New password :
 Retype new password :
 
       Nach der erfolgreichen Eingabe des Passworts
@@ -4035,7 +4117,7 @@
 
                            User Confirmation Requested
  Are you sure you wish to exit? The system will reboot (be sure to
- remove any floppies from the drives).
+ remove any floppies/CDs/DVDs from the drives).
 
                             [ Yes ]   No
 
@@ -4341,53 +4423,6 @@
     
 
     
-      Vorhandene &ms-dos;-Partitionen bearbeiten
-
-      
-        Partitionen
-        &ms-dos;
-      
-
-      Viele Benutzer wollen &os; auf PCs
-	installieren, auf denen sich schon ein
-	µsoft;-Betriebssystem befindet.  Bei diesem Vorhaben
-	unterstützt das Werkzeug FIPS.
-	Das Werkzeug befindet sich auf der Installations-CD-ROM im
-	Verzeichnis tools
-	oder kann von den &os;-Spiegeln
-	heruntergeladen werden.
-
-      Das Werkzeug FIPS teilt
-	eine bestehende &ms-dos;-Partition auf.  Der erste Teil
-	enthält die Daten der alten Partition, der zweite
-	Teil steht für die Installation von &os; zur
-	Verfügung.  Vorher muss die &ms-dos;-Partition
-	defragmentiert werden.  Klicken Sie im Explorer mit
-	der rechten Maustaste das Laufwerk an und wählen
-	Sie Defragmentieren aus.  Alternativ können Sie
-	die  Norton Disk Tools benutzen.
-	Nachdem das Laufwerk defragmentiert ist, können Sie
-	FIPS aufrufen.  Folgen Sie einfach
-	den Anweisungen des Werkzeugs.  Nach einem Neustart
-	können Sie &os; in die freie Slice installieren.
-	Den Platzbedarf der Installation können Sie im
-	Menü Distributions von
-	sysinstall abschätzen.
-
-      Von PowerQuest
-	stammt das nützliche Werkzeug
-	&partitionmagic;.  Diese
-	Anwendung bietet weit mehr Funktionen als
-	FIPS.  Benutzen Sie
-	&partitionmagic;, wenn Sie
-	die verwendeten Betriebssysteme oft wechseln wollen.
-	Das Produkt kostet allerdings Geld; wenn Sie &os;
-	installieren und beibehalten wollen, ist wahrscheinlich
-	FIPS das Richtige für
-	Sie.
-    
-
-    
       &ms-dos;- und &windows;-Dateisysteme benutzen
 
       Mit Double Space™
@@ -4428,57 +4463,168 @@
     
 
     
-      Fragen und Antworten für Alpha-Benutzer
-
-      
-        Alpha
-      
-
-      Dieser Abschnitt beantwortet häufig gestellte
-	Fragen zur &os;-Installation auf Alpha-Systemen.
+      Fragen und Antworten zu häufig auftretenden
+	Problemen
 
       
 	
 	  
-	    Kann ich &os; von der ARC- oder Alpha-BIOS-Konsole
-	      starten?
+	    Mein System hängt sich beim Testen der Hardware
+	      auf, oder es verhält sich seltsam während der
+	      Installation oder das Diskettenlaufwerk wird nicht
+	      getestet.
 	  
+
+	  
+	    &os; 5.0 and above makes extensive use of the system ACPI
+            service on the i386, amd64 and ia64 platforms to aid in system
+	    configuration if it's detected during boot.  Unfortunately,
+	    some bugs still exist in both the ACPI driver and within system
+	    motherboards and BIOS.  The use of ACPI can be disabled by setting
+	    the hint.acpi.0.disabled hint in the third stage
+	    boot loader:
+
+          set hint.acpi.0.disabled="1"
+
+          This is reset each time the system is booted, so it is
+            necessary to add hint.acpi.0.disabled="1"
+            to the file
+            /boot/loader.conf.  More information about the
+            boot loader can be found in the &os; Handbook.
+        
+      
+      
+        
+          I go to boot from the hard disk for the first time
+          after installing &os;, the kernel loads and probes my
+          hardware, but stops with messages like:
+
+          changing root device to ad1s1a panic: cannot mount root
+          What is wrong?  What can I do?
+
+          What is this
+          bios_drive:interface(unit,partition)kernel_name
+          thing that is displayed with the boot help?
+        
+        
+          There is a longstanding problem in the case where the
+          boot disk is not the first disk in the system.  The BIOS
+          uses a different numbering scheme to &os;, and working
+          out which numbers correspond to which is difficult to get
+          right.
+
+          In the case where the boot disk is not the first disk
+          in the system, &os; can need some help finding it.  There
+          are two common situations here, and in both of these cases,
+          you need to tell &os; where the root filesystem is.  You
+          do this by specifying the BIOS disk number, the disk type
+          and the &os; disk number for that type.
 
-	  ARC
-	  Alpha-BIOS
-	  SRM
+          The first situation is where you have two IDE disks,
+          each configured as the master on their respective IDE
+          busses, and wish to boot &os; from the second disk.  The
+          BIOS sees these as disk 0 and disk 1, while &os; sees
+          them as ad0 and
+          ad2.
+
+          &os; is on BIOS disk 1, of type
+          ad and the &os; disk number is 2, so
+          you would say:
+
+          1:ad(2,a)kernel
+
+          Note that if you have a slave on the primary bus, the
+          above is not necessary (and is effectively wrong).
+
+          The second situation involves booting from a SCSI disk
+          when you have one or more IDE disks in the system.  In this
+          case, the &os; disk number is lower than the BIOS disk
+          number.  If you have two IDE disks as well as the SCSI disk,
+          the SCSI disk is BIOS disk 2, type da and
+          &os; disk number 0, so you would say:
+
+          2:da(0,a)kernel
+
+          To tell &os; that you want to boot from BIOS disk
+          2, which is the first SCSI disk in the system.  If you only
+          had one IDE disk, you would use '1:' instead.
+
+          Once you have determined the correct values to use,
+          you can put the command exactly as you would have typed it
+          in the /boot.config file using a
+          standard text editor.  Unless instructed otherwise, &os;
+          will use the contents of this file as the default response
+          to the boot: prompt.
+        
+      
+      
+        
+	  I go to boot from the hard disk for the first time
+          after installing &os;, but the Boot Manager prompt just
+          prints F? at the boot menu each time but
+          the boot won't go any further.
+	
+	
+          The hard disk geometry was set incorrectly in the
+          Partition editor when you installed &os;.  Go back into
+          the partition editor and specify the actual geometry of your
+          hard disk.  You must reinstall &os; again from the
+          beginning with the correct geometry.
 
-	  
-	    Nein, wie  Compaq Tru64 und VMS startet
-	      &os; nur von der SRM-Konsole.
-	  
-	
+          If you are failing entirely in figuring out the
+	  correct geometry for your machine, here's a tip: Install a
+	  small DOS partition at the beginning of the disk and install
+	  &os; after that.  The install program will see the DOS
+	  partition and try to infer the correct geometry from it,
+	  which usually works.
 
-	
-	  
-	    Hilfe, ich habe keinen Platz!  Muss ich
-	      zuerst alles löschen?
-	  
+	  The following tip is no longer recommended, but is left here
+	  for reference:
 
-	  
-	    Leider ja.
-	  
-	
+	  
+ If you are setting up a truly dedicated &os; + server or workstation where you don't care for (future) + compatibility with DOS, Linux or another operating system, + you've also got the option to use the entire disk (`A' in + the partition editor), selecting the non-standard option + where &os; occupies the entire disk from the very first + to the very last sector. This will leave all geometry + considerations aside, but is somewhat limiting unless + you're never going to run anything other than &os; on a + disk. +
+ + + + + The system finds my &man.ed.4; network card, but I + keep getting device timeout errors. + + + Your card is probably on a different IRQ from what is + specified in the /boot/device.hints file. The ed driver does + not use the `soft' configuration by default (values entered + using EZSETUP in DOS), but it will use the software + configuration if you specify -1 in the hints + for the interface. - - - Kann ich Compaq Tru64- oder VMS-Dateisysteme - einhängen? - + Either move the jumper on the card to a hard + configuration setting (altering the kernel settings if + necessary), or specify the IRQ as -1 + by setting the hint hint.ed.0.irq="-1" + This will tell the kernel to + use the soft configuration. - - Zurzeit nicht. + Another possibility is that your card is at IRQ 9, + which is shared by IRQ 2 and frequently a cause of problems + (especially when you have a VGA card using IRQ 2!). You + should not use IRQ 2 or 9 if at all possible.
- + ==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml#10 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml,v 1.59 2007/07/10 18:38:27 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.134 2007/07/09 12:13:04 jkois Exp $ - basiert auf: 1.438 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml,v 1.60 2007/12/01 17:19:43 miwi Exp $ + $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.137 2007/11/09 07:54:27 jkois Exp $ + basiert auf: 1.441 --> @@ -53,7 +53,7 @@ Telefon: +1 866 273-6255 Fax: +1 217 453-9956 E-Mail: sales@bsdmall.com - WWW: + WWW:
@@ -71,7 +71,7 @@ 3623 Sanford Street Concord, CA 94520-1405 USA - Telefon: +1 925 674-0783 + Telefon: +1 925 240-6652 Fax: +1 925 674-0821 E-Mail: info@freebsdmall.com WWW: ==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml#7 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml,v 1.19 2007/08/21 19:09:01 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/network-servers/chapter.sgml,v 1.67 2007/08/19 17:29:10 jkois Exp $ - basiert auf: 1.101 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml,v 1.20 2007/12/01 17:19:43 miwi Exp $ + $FreeBSDde: de-docproj/books/handbook/network-servers/chapter.sgml,v 1.68 2007/12/01 09:13:00 jkois Exp $ + basiert auf: 1.102 --> @@ -4172,7 +4172,7 @@ Apache noch nicht installiert haben, können Sie dies jederzeit über den Port www/apache13 oder - www/apache20 nachholen. + www/apache22 nachholen. Nachdem der Apache erfolgreich installiert wurde, muss er noch konfiguriert werden. @@ -4317,6 +4317,11 @@ apache_enable="YES" + Um Apache 2.2 zu starten, + fügen Sie hingegen folgende Zeile ein: + + apache22_enable="YES" + Wenn Sie während des Systemstarts weitere Parameter an den Apache-httpd-Daemon @@ -4425,7 +4430,7 @@ wurde. Bevorzugen Sie den Apache 2.X, installieren Sie stattdessen den Port - www/apache20, bei dem die + www/apache22, bei dem die SSL-Unterstützung bereits in der Voreinstellung aktiviert ist. @@ -4473,7 +4478,7 @@ bitte daran, dass mod_perl 1.0 nur mit Apache 1.3 und mod_perl 2.0 nur mit - Apache 2 zusammenarbeitet. + Apache 2.X zusammenarbeitet. mod_perl 1.0 kann über den Port www/mod_perl, eine statisch kompilierte Version hingegen über den ==== //depot/projects/dtrace/doc/de_DE.ISO8859-1/books/porters-handbook/book.sgml#4 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/porters-handbook/book.sgml,v 1.3 2007/11/11 21:05:22 miwi Exp $ - $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.142 2007/11/09 08:21:44 jkois Exp $ - basiert auf: 1.885 + $FreeBSD: doc/de_DE.ISO8859-1/books/porters-handbook/book.sgml,v 1.4 2007/12/01 17:19:43 miwi Exp $ + $FreeBSDde: de-docproj/books/porters-handbook/book.sgml,v 1.146 2007/11/26 13:16:32 miwi Exp $ + basiert auf: 1.890 --> configure.in genutzt werden. + Zusätzlich sollte man unnötige + Markup-Änderungen in Patches/Änderungen möglichst + vermeiden. In der Open Source-Welt teilen sich Projekte + häufig große Teile des Quellcodes. Allerdings + verwenden die einzelnen Projekte oft unterschiedliche + Programmierstile und Vorgaben für Einrückungen. Wenn + man also einen funktionierenden Teil einer Funktion aus einem + Projekt verwendet, um ein ähnliches Problem in einem anderen + Projekt zu lösen, sollte man besonders vorsichtig sein, weil + sich ansonsten die CVS-Änderungseinträge mit + überflüssigen Einträgen füllen, die nur + das Markup des Quellcodes betreffen, ohne dass sich an der + Funktion des eigentlichen Quellcode etwas ändert + (withspace-only changes). Solche Änderungen + vergrößern nicht nur das CVS-Repository, sondern + erschweren es auch die Ursache für eventuell auftretende + Probleme zu finden. + War es notwendig eine Datei zu entfernen, wird dies besser mittels des post-extract-Targets als über den Patch selbst realisiert. @@ -11288,7 +11306,7 @@ 4.5-STABLE nachdem die sendmail_enable &man.rc.conf.5; Variable geändert worden ist, um den Wert - NONE zu akzeptieren. + NONE zu akzeptieren. 450004 @@ -12625,6 +12643,20 @@ wurde. 602114 + + + FreeBSD 6.2-STABLE nach der Entfernung/Eliminierung + der wide und single Byte ctype-Trennung + 602115 + + + 6.3-RELEASE + 603000 + + + 6.3-STABLE nach 6.3-RELEASE. + 603100 + 7.0-CURRENT. 700000 @@ -12985,12 +13017,12 @@ 700053 - 7.0-STABLE, nach der Trennung in "wide und + 7.0-CURRENT, nach der Trennung in "wide und single byte ctype". 700054 - 7.0-STABLE, nachdem die + 7.0-CURRENT, nachdem die ABI-Abwärtskompatibilität für die FreeBSD 4/5/6-Versionen der PCIOCGETCONF-, PCIOCREAD- sowie PCIOCWRITE IOCTLs hinzugefügt wurde. Damit @@ -13023,6 +13055,11 @@ erneut deaktiviert werden musste. 800003 + + 8.0-CURRENT, nachdem der agp(4) Treiber verschoben + wurde von src/sys/pci nach src/sys/dev/agp. >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:03:29 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E9FC16A421; Sat, 1 Dec 2007 23:03: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 C2C0D16A41A for ; Sat, 1 Dec 2007 23:03:28 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AA80D13C459 for ; Sat, 1 Dec 2007 23:03:28 +0000 (UTC) (envelope-from peter@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 lB1N3SmA090916 for ; Sat, 1 Dec 2007 23:03:28 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1N3SJq090913 for perforce@freebsd.org; Sat, 1 Dec 2007 23:03:28 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:03:28 GMT Message-Id: <200712012303.lB1N3SJq090913@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129913 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, 01 Dec 2007 23:03:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=129913 Change 129913 by peter@peter_daintree on 2007/12/01 23:02:33 Unsed. Affected files ... .. //depot/projects/bike_sched/sys/amd64/conf/DEFAULTS#4 edit .. //depot/projects/bike_sched/sys/arm/conf/AVILA#2 edit .. //depot/projects/bike_sched/sys/conf/options#4 edit .. //depot/projects/bike_sched/sys/i386/conf/DEFAULTS#4 edit .. //depot/projects/bike_sched/sys/ia64/conf/DEFAULTS#4 edit .. //depot/projects/bike_sched/sys/kern/kern_sig.c#4 edit .. //depot/projects/bike_sched/sys/kern/kern_synch.c#5 edit .. //depot/projects/bike_sched/sys/kern/kern_thread.c#6 edit .. //depot/projects/bike_sched/sys/kern/sched_ule.c#8 edit .. //depot/projects/bike_sched/sys/pc98/conf/DEFAULTS#4 edit .. //depot/projects/bike_sched/sys/powerpc/conf/DEFAULTS#4 edit .. //depot/projects/bike_sched/sys/sparc64/conf/DEFAULTS#4 edit Differences ... ==== //depot/projects/bike_sched/sys/amd64/conf/DEFAULTS#4 (text+ko) ==== @@ -18,6 +18,3 @@ # Default partitioning schemes options GEOM_BSD options GEOM_MBR - -# KSE support went from being default to a kernel option -options KSE ==== //depot/projects/bike_sched/sys/arm/conf/AVILA#2 (text+ko) ==== @@ -49,7 +49,6 @@ #options DIAGNOSTIC options SCHED_4BSD #4BSD scheduler -options KSE options INET #InterNETworking options INET6 #IPv6 communications protocols options FFS #Berkeley Fast Filesystem ==== //depot/projects/bike_sched/sys/conf/options#4 (text+ko) ==== @@ -98,7 +98,6 @@ GEOM_VIRSTOR opt_geom.h GEOM_VOL opt_geom.h GEOM_ZERO opt_geom.h -KSE opt_global.h KSTACK_MAX_PAGES KSTACK_PAGES KTRACE ==== //depot/projects/bike_sched/sys/i386/conf/DEFAULTS#4 (text+ko) ==== @@ -22,6 +22,3 @@ # Default partitioning schemes options GEOM_BSD options GEOM_MBR - -# KSE support went from being default to a kernel option -options KSE ==== //depot/projects/bike_sched/sys/ia64/conf/DEFAULTS#4 (text+ko) ==== @@ -17,6 +17,3 @@ options GEOM_BSD options GEOM_PART_GPT options GEOM_PART_MBR - -# KSE support went from being default to a kernel option -options KSE ==== //depot/projects/bike_sched/sys/kern/kern_sig.c#4 (text+ko) ==== @@ -2115,13 +2115,6 @@ goto out; } if (action == SIG_CATCH) { -#ifdef KSE - /* - * The process wants to catch it so it needs - * to run at least one thread, but which one? - * XXXKSE for now however, make them all run. - */ -#endif /* * The process wants to catch it so it needs * to run at least one thread, but which one? ==== //depot/projects/bike_sched/sys/kern/kern_synch.c#5 (text+ko) ==== @@ -435,10 +435,6 @@ * We call thread_switchout after the KTR_SCHED prints above so kse * selecting a new thread to run does not show up as a preemption. */ -#ifdef KSE - if ((flags & SW_VOL) && (td->td_proc->p_flag & P_SA)) - newtd = thread_switchout(td, flags, newtd); -#endif sched_switch(td, newtd, flags); CTR3(KTR_SCHED, "mi_switch: running %p(%s) prio %d", td, td->td_name, td->td_priority); @@ -502,8 +498,6 @@ /* * Compute a tenex style load average of a quantity on * 1, 5 and 15 minute intervals. - * XXXKSE Needs complete rewrite when correct info is available. - * Completely Bogus.. only works with 1:1 (but compiles ok now :-) */ static void loadav(void *arg) ==== //depot/projects/bike_sched/sys/kern/kern_thread.c#6 (text+ko) ==== @@ -221,19 +221,6 @@ } /* - * Place an unused thread on the zombie list. - * Use the slpq as that must be unused by now. - */ -void -thread_zombie(struct thread *td) -{ - - mtx_lock_spin(&zombie_lock); - TAILQ_INSERT_HEAD(&zombie_threads, td, td_slpq); - mtx_unlock_spin(&zombie_lock); -} - -/* * Reap zombie kse resource. */ void @@ -259,9 +246,6 @@ td_first = td_next; } } -#ifdef KSE - upcall_reap(); -#endif } /* @@ -284,6 +268,7 @@ return (td); } +/* * Deallocate a thread. */ void @@ -330,7 +315,6 @@ { uint64_t new_switchtime; struct thread *td; - struct thread *td2; struct proc *p; td = curthread; @@ -487,13 +471,7 @@ struct proc *p = td->td_proc; KASSERT((p->p_numthreads == 1), ("Unthreading with >1 threads")); -#ifdef KSE - thread_lock(td); - thread_unlock(td); - thread_zombie(td->td_standin); -#else p->p_flag &= ~P_HADTHREADS; -#endif } /* ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#8 (text+ko) ==== @@ -2097,15 +2097,6 @@ CTR3(KTR_SCHED, "sched_exit_thread: %p(%s) prio %d", child, child->td_name, child->td_priority); -#ifdef KSE - /* - * KSE forks and exits so often that this penalty causes short-lived - * threads to always be non-interactive. This causes mozilla to - * crawl under load. - */ - if ((td->td_pflags & TDP_SA) && td->td_proc == child->td_proc) - return; -#endif /* * Give the child's runtime to the parent without returning the * sleep time as a penalty to the parent. This causes shells that ==== //depot/projects/bike_sched/sys/pc98/conf/DEFAULTS#4 (text+ko) ==== @@ -24,6 +24,3 @@ # Default partitioning schemes options GEOM_BSD options GEOM_PC98 - -# KSE support went from being default to a kernel option -options KSE ==== //depot/projects/bike_sched/sys/powerpc/conf/DEFAULTS#4 (text+ko) ==== @@ -14,6 +14,3 @@ options GEOM_PART_APM options GEOM_PART_MBR - -# KSE support went from being default to a kernel option -options KSE ==== //depot/projects/bike_sched/sys/sparc64/conf/DEFAULTS#4 (text+ko) ==== @@ -13,9 +13,6 @@ device uart_sab82532 device uart_z8530 -# KSE support went from being default to a kernel option -options KSE - # Default partitioning schemes options GEOM_BSD options GEOM_SUNLABEL From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:07:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E555916A479; Sat, 1 Dec 2007 23:07:33 +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 8303916A46B for ; Sat, 1 Dec 2007 23:07:33 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6AC3813C4F9 for ; Sat, 1 Dec 2007 23:07:33 +0000 (UTC) (envelope-from peter@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 lB1N7XaB091321 for ; Sat, 1 Dec 2007 23:07:33 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1N7XkY091314 for perforce@freebsd.org; Sat, 1 Dec 2007 23:07:33 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:07:33 GMT Message-Id: <200712012307.lB1N7XkY091314@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129914 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, 01 Dec 2007 23:07:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=129914 Change 129914 by peter@peter_daintree on 2007/12/01 23:07:09 move common code Affected files ... .. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#10 edit .. //depot/projects/bike_sched/sys/kern/sched_ule.c#9 edit .. //depot/projects/bike_sched/sys/kern/subr_trap.c#5 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#10 (text+ko) ==== @@ -1237,28 +1237,6 @@ } void -sched_userret(struct thread *td) -{ - /* - * XXX we cheat slightly on the locking here to avoid locking in - * the usual case. Setting td_priority here is essentially an - * incomplete workaround for not setting it properly elsewhere. - * Now that some interrupt handlers are threads, not setting it - * properly elsewhere can clobber it in the window between setting - * it here and returning to user mode, so don't waste time setting - * it perfectly here. - */ - KASSERT((td->td_flags & TDF_BORROWING) == 0, - ("thread with borrowed priority returning to userland")); - if (td->td_priority != td->td_user_pri) { - thread_lock(td); - td->td_priority = td->td_user_pri; - td->td_base_pri = td->td_user_pri; - thread_unlock(td); - } -} - -void sched_bind(struct thread *td, int cpu) { struct td_sched *ts; ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#9 (text+ko) ==== @@ -2110,32 +2110,6 @@ } /* - * Fix priorities on return to user-space. Priorities may be elevated due - * to static priorities in msleep() or similar. - */ -void -sched_userret(struct thread *td) -{ - /* - * XXX we cheat slightly on the locking here to avoid locking in - * the usual case. Setting td_priority here is essentially an - * incomplete workaround for not setting it properly elsewhere. - * Now that some interrupt handlers are threads, not setting it - * properly elsewhere can clobber it in the window between setting - * it here and returning to user mode, so don't waste time setting - * it perfectly here. - */ - KASSERT((td->td_flags & TDF_BORROWING) == 0, - ("thread with borrowed priority returning to userland")); - if (td->td_priority != td->td_user_pri) { - thread_lock(td); - td->td_priority = td->td_user_pri; - td->td_base_pri = td->td_user_pri; - thread_unlock(td); - } -} - -/* * Handle a stathz tick. This is really only relevant for timeshare * threads. */ ==== //depot/projects/bike_sched/sys/kern/subr_trap.c#5 (text+ko) ==== @@ -120,8 +120,26 @@ if (p->p_flag & P_PROFIL) addupc_task(td, TRAPF_PC(frame), td->td_pticks * psratio); + /* + * Fix priorities on return to user-space. Priorities may be elevated due + * to static priorities in msleep() or similar. + * + * XXX we cheat slightly on the locking here to avoid locking in + * the usual case. Setting td_priority here is essentially an + * incomplete workaround for not setting it properly elsewhere. + * Now that some interrupt handlers are threads, not setting it + * properly elsewhere can clobber it in the window between setting + * it here and returning to user mode, so don't waste time setting + * it perfectly here. + */ KASSERT((td->td_flags & TDF_BORROWING) == 0, ("userret: thread with borrowed priority returning to userland")); + if (td->td_priority != td->td_user_pri) { + thread_lock(td); + td->td_priority = td->td_user_pri; + td->td_base_pri = td->td_user_pri; + thread_unlock(td); + } KASSERT(td->td_locks == 0, ("userret: Returning with %d locks held.", td->td_locks)); } From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:20:48 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69A1216A41A; Sat, 1 Dec 2007 23:20: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 E9B1616A418 for ; Sat, 1 Dec 2007 23:20:47 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D06FE13C442 for ; Sat, 1 Dec 2007 23:20:47 +0000 (UTC) (envelope-from peter@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 lB1NKlcv093061 for ; Sat, 1 Dec 2007 23:20:47 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1NKll0093058 for perforce@freebsd.org; Sat, 1 Dec 2007 23:20:47 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:20:47 GMT Message-Id: <200712012320.lB1NKll0093058@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129915 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, 01 Dec 2007 23:20:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=129915 Change 129915 by peter@peter_daintree on 2007/12/01 23:20:40 compile fixes (catch up from reversion) Affected files ... .. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#11 edit .. //depot/projects/bike_sched/sys/kern/sched_ule.c#10 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#11 (text+ko) ==== @@ -611,21 +611,13 @@ * charge childs scheduling cpu usage to parent. */ void -sched_exit(struct proc *p, struct thread *td) +sched_exit(struct proc *p, struct thread *child) { + struct thread *td; CTR3(KTR_SCHED, "sched_exit: %p(%s) prio %d", - td, td->td_name, td->td_priority); - PROC_SLOCK_ASSERT(p, MA_OWNED); - sched_exit_thread(FIRST_THREAD_IN_PROC(p), td); -} - -void -sched_exit_thread(struct thread *td, struct thread *child) -{ - - CTR3(KTR_SCHED, "sched_exit_thread: %p(%s) prio %d", child, child->td_name, child->td_priority); + td = FIRST_THREAD_IN_PROC(p); thread_lock(td); td->td_estcpu = ESTCPULIM(td->td_estcpu + child->td_estcpu); thread_unlock(td); ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#10 (text+ko) ==== @@ -2070,32 +2070,20 @@ /* * Return some of the child's priority and interactivity to the parent. - */ -void -sched_exit(struct proc *p, struct thread *child) -{ - struct thread *td; - - CTR3(KTR_SCHED, "sched_exit: %p(%s) prio %d", - child, child->td_name, child->td_priority); - - PROC_SLOCK_ASSERT(p, MA_OWNED); - td = FIRST_THREAD_IN_PROC(p); - sched_exit_thread(td, child); -} - -/* + * * Penalize another thread for the time spent on this one. This helps to * worsen the priority and interactivity of processes which schedule batch * jobs such as make. This has little effect on the make process itself but * causes new processes spawned by it to receive worse scores immediately. */ void -sched_exit_thread(struct thread *td, struct thread *child) +sched_exit(struct proc *p, struct thread *child) { + struct thread *td; - CTR3(KTR_SCHED, "sched_exit_thread: %p(%s) prio %d", + CTR3(KTR_SCHED, "sched_exit: %p(%s) prio %d", child, child->td_name, child->td_priority); + td = FIRST_THREAD_IN_PROC(p); /* * Give the child's runtime to the parent without returning the @@ -2396,7 +2384,7 @@ /* * Remove a thread from a run-queue without running it. This is used * when we're stealing a thread from a remote queue. Otherwise all threads - * exit by calling sched_exit_thread() and sched_throw() themselves. + * exit by calling sched_exit() and sched_throw() themselves. */ void sched_rem(struct thread *td) From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:22:50 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8ADB516A469; Sat, 1 Dec 2007 23:22: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 4191B16A421 for ; Sat, 1 Dec 2007 23:22:50 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29CFB13C448 for ; Sat, 1 Dec 2007 23:22:50 +0000 (UTC) (envelope-from peter@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 lB1NMo7j093753 for ; Sat, 1 Dec 2007 23:22:50 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1NMo6L093748 for perforce@freebsd.org; Sat, 1 Dec 2007 23:22:50 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:22:50 GMT Message-Id: <200712012322.lB1NMo6L093748@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129916 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, 01 Dec 2007 23:22:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=129916 Change 129916 by peter@peter_daintree on 2007/12/01 23:22:10 Correct comment about mi_switch()'s second argument. It is used for preemption, not kse. Affected files ... .. //depot/projects/bike_sched/sys/kern/sched_ule.c#11 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#11 (text+ko) ==== @@ -1743,7 +1743,7 @@ /* * Add the thread passed as 'newtd' to the run queue before selecting - * the next thread to run. This is only used for KSE. + * the next thread to run. This is only used for preemption. */ static void sched_switchin(struct tdq *tdq, struct thread *td) From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:43:12 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A23E016A46B; Sat, 1 Dec 2007 23:43: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 189D816A417 for ; Sat, 1 Dec 2007 23:43:12 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F3EB213C448 for ; Sat, 1 Dec 2007 23:43:11 +0000 (UTC) (envelope-from peter@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 lB1NhBpY096720 for ; Sat, 1 Dec 2007 23:43:11 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1NhB3p096717 for perforce@freebsd.org; Sat, 1 Dec 2007 23:43:11 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:43:11 GMT Message-Id: <200712012343.lB1NhB3p096717@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129917 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, 01 Dec 2007 23:43:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=129917 Change 129917 by peter@peter_daintree on 2007/12/01 23:42:38 misc cleanups. don't blame things on KSE that are general problems for threads. Affected files ... .. //depot/projects/bike_sched/sys/amd64/amd64/vm_machdep.c#5 edit .. //depot/projects/bike_sched/sys/i386/i386/vm_machdep.c#4 edit .. //depot/projects/bike_sched/sys/kern/imgact_elf.c#3 edit .. //depot/projects/bike_sched/sys/kern/kern_exec.c#3 edit .. //depot/projects/bike_sched/sys/kern/kern_intr.c#6 edit .. //depot/projects/bike_sched/sys/kern/kern_proc.c#4 edit .. //depot/projects/bike_sched/sys/kern/kern_resource.c#4 edit .. //depot/projects/bike_sched/sys/kern/kern_sig.c#5 edit .. //depot/projects/bike_sched/sys/kern/kern_thread.c#7 edit .. //depot/projects/bike_sched/sys/kern/p1003_1b.c#2 edit .. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#12 edit .. //depot/projects/bike_sched/sys/kern/sched_ule.c#12 edit .. //depot/projects/bike_sched/sys/kern/subr_sleepqueue.c#3 edit .. //depot/projects/bike_sched/sys/kern/subr_trap.c#6 edit .. //depot/projects/bike_sched/sys/sys/kse.h#2 delete Differences ... ==== //depot/projects/bike_sched/sys/amd64/amd64/vm_machdep.c#5 (text+ko) ==== @@ -51,7 +51,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/bike_sched/sys/i386/i386/vm_machdep.c#4 (text+ko) ==== @@ -53,7 +53,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/bike_sched/sys/kern/imgact_elf.c#3 (text+ko) ==== @@ -479,9 +479,7 @@ u_long base_addr = 0; int vfslocked, error, i, numsegs; - if (curthread->td_proc != p) - panic("elf_load_file - thread"); /* XXXKSE DIAGNOSTIC */ - + KASSERT(curthread->td_proc == p, ("elf_load_file - thread")); tempdata = malloc(sizeof(*tempdata), M_TEMP, M_WAITOK); nd = &tempdata->nd; attr = &tempdata->attr; @@ -497,7 +495,6 @@ imgp->object = NULL; imgp->execlabel = NULL; - /* XXXKSE */ NDINIT(nd, LOOKUP, MPSAFE|LOCKLEAF|FOLLOW, UIO_SYSSPACE, file, curthread); vfslocked = 0; @@ -947,7 +944,7 @@ (caddr_t)(uintptr_t)php->p_vaddr, php->p_filesz, offset, UIO_USERSPACE, IO_UNIT | IO_DIRECT, cred, NOCRED, NULL, - curthread); /* XXXKSE */ + curthread); if (error != 0) break; offset += php->p_filesz; @@ -1094,8 +1091,7 @@ /* Write it to the core file. */ return (vn_rdwr_inchunks(UIO_WRITE, vp, hdr, hdrsize, (off_t)0, - UIO_SYSSPACE, IO_UNIT | IO_DIRECT, cred, NOCRED, NULL, - td)); /* XXXKSE */ + UIO_SYSSPACE, IO_UNIT | IO_DIRECT, cred, NOCRED, NULL, td)); } #if defined(COMPAT_IA32) && __ELF_WORD_SIZE == 32 ==== //depot/projects/bike_sched/sys/kern/kern_exec.c#3 (text+ko) ==== @@ -1186,7 +1186,7 @@ struct thread *td; int error; - td = curthread; /* XXXKSE */ + td = curthread; /* Get file attributes */ error = VOP_GETATTR(vp, attr, td->td_ucred, td); ==== //depot/projects/bike_sched/sys/kern/kern_intr.c#6 (text+ko) ==== @@ -905,7 +905,7 @@ } return (intr_event_add_handler(ie, name, NULL, handler, arg, (pri * RQ_PPQ) + PI_SOFT, flags, cookiep)); - /* XXKSE.. think of a better way to get separate queues */ + /* XXX: think of a better way to get separate queues */ } /* ==== //depot/projects/bike_sched/sys/kern/kern_proc.c#4 (text+ko) ==== @@ -634,7 +634,6 @@ kp->ki_structsize = sizeof(*kp); kp->ki_paddr = p; PROC_LOCK_ASSERT(p, MA_OWNED); - kp->ki_addr =/* p->p_addr; */0; /* XXXKSE */ kp->ki_args = p->p_args; kp->ki_textvp = p->p_textvp; #ifdef KTRACE @@ -782,7 +781,7 @@ bzero(kp->ki_lockname, sizeof(kp->ki_lockname)); } - if (p->p_state == PRS_NORMAL) { /* XXXKSE very approximate */ + if (p->p_state == PRS_NORMAL) { if (TD_ON_RUNQ(td) || TD_CAN_RUN(td) || TD_IS_RUNNING(td)) { ==== //depot/projects/bike_sched/sys/kern/kern_resource.c#4 (text+ko) ==== @@ -406,7 +406,7 @@ * or if one is, report the highest priority * in the process. There isn't much more you can do as * there is only room to return a single priority. - * XXXKSE: maybe need a new interface to report + * XXX: maybe need a new interface to report * priorities of multiple system scope threads. * Note: specifying our own pid is not the same * as leaving it zero. ==== //depot/projects/bike_sched/sys/kern/kern_sig.c#5 (text+ko) ==== @@ -49,7 +49,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/bike_sched/sys/kern/kern_thread.c#7 (text+ko) ==== @@ -306,7 +306,6 @@ * * called from: * exit1() - * kse_exit() * thr_exit() * thread_suspend_check() */ @@ -386,7 +385,6 @@ * what should we do? * Theoretically this can't happen * exit1() - clears threading flags before coming here - * kse_exit() - treats last thread specially * thr_exit() - treats last thread specially * thread_suspend_check() - only if more exist */ @@ -434,7 +432,7 @@ * be used by the process. * * Note that we do not link to the proc's ucred here. - * The thread is linked as if running but no KSE assigned. + * * Called from: * proc_linkup() * thr_create() @@ -463,7 +461,6 @@ * Convert a process with one thread to an unthreaded process. * Called from: * thread_single(exit) (called from execve and exit) - * kse_exit() XXX may need cleaning up wrt KSE stuff */ void thread_unthread(struct thread *td) ==== //depot/projects/bike_sched/sys/kern/p1003_1b.c#2 (text+ko) ==== @@ -156,7 +156,8 @@ if (targetp == NULL) { return (ESRCH); } - targettd = FIRST_THREAD_IN_PROC(targetp); /* XXXKSE */ + /* XXX: This doesn't work well for threads. */ + targettd = FIRST_THREAD_IN_PROC(targetp); } e = p_cansee(td, targetp); @@ -223,7 +224,8 @@ e = ESRCH; goto done2; } - targettd = FIRST_THREAD_IN_PROC(targetp); /* XXXKSE */ + /* XXX: This doesn't work well for threads. */ + targettd = FIRST_THREAD_IN_PROC(targetp); } e = p_cansee(td, targetp); ==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#12 (text+ko) ==== @@ -383,7 +383,6 @@ /* * ts_pctcpu is only for ps and ttyinfo(). * Do it per td_sched, and add them up at the end? - * XXXKSE */ ts->ts_pctcpu = (ts->ts_pctcpu * ccpu) >> FSHIFT; /* ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#12 (text+ko) ==== @@ -1884,7 +1884,7 @@ */ TDQ_LOCK_ASSERT(tdq, MA_OWNED | MA_NOTRECURSED); /* - * If KSE assigned a new thread just add it here and let choosethread + * If preemption assigned a new thread just add it here and let choosethread * select the best one. */ if (newtd != NULL) ==== //depot/projects/bike_sched/sys/kern/subr_sleepqueue.c#3 (text+ko) ==== @@ -414,7 +414,6 @@ sleepq_switch(wchan); return (0); } - /* KSE threads tried unblocking us. */ ret = td->td_intrval; MPASS(ret == EINTR || ret == ERESTART || ret == EWOULDBLOCK); } ==== //depot/projects/bike_sched/sys/kern/subr_trap.c#6 (text+ko) ==== @@ -189,7 +189,7 @@ PCPU_INC(cnt.v_trap); /* - * XXXKSE While the fact that we owe a user profiling + * XXX While the fact that we owe a user profiling * tick is stored per thread in this code, the statistics * themselves are still stored per process. * This should probably change, by which I mean that From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:59:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A3F9E16A420; Sat, 1 Dec 2007 23:59:30 +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 501C116A418 for ; Sat, 1 Dec 2007 23:59:30 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2010513C43E for ; Sat, 1 Dec 2007 23:59:30 +0000 (UTC) (envelope-from peter@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 lB1NxUaW000245 for ; Sat, 1 Dec 2007 23:59:30 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1NxUpm000242 for perforce@freebsd.org; Sat, 1 Dec 2007 23:59:30 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:59:30 GMT Message-Id: <200712012359.lB1NxUpm000242@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129918 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, 01 Dec 2007 23:59:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=129918 Change 129918 by peter@peter_daintree on 2007/12/01 23:58:29 stub function call removed Affected files ... .. //depot/projects/bike_sched/sys/kern/kern_fork.c#5 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/kern_fork.c#5 (text+ko) ==== @@ -265,7 +265,6 @@ goto fail1; } proc_linkup(newproc, td2); - sched_newproc(newproc, td2); } else td2 = FIRST_THREAD_IN_PROC(newproc); From owner-p4-projects@FreeBSD.ORG Sat Dec 1 23:59:31 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 068FB16A508; Sat, 1 Dec 2007 23:59:30 +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 5BD7616A419 for ; Sat, 1 Dec 2007 23:59:30 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 442B413C442 for ; Sat, 1 Dec 2007 23:59:30 +0000 (UTC) (envelope-from peter@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 lB1NxU94000251 for ; Sat, 1 Dec 2007 23:59:30 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1NxU3r000248 for perforce@freebsd.org; Sat, 1 Dec 2007 23:59:30 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 23:59:30 GMT Message-Id: <200712012359.lB1NxU3r000248@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129919 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, 01 Dec 2007 23:59:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=129919 Change 129919 by peter@peter_daintree on 2007/12/01 23:58:58 I'd like to change thread_stash() calls to thread_free(), but I'm not yet certain if the context allows that. Affected files ... .. //depot/projects/bike_sched/sys/kern/kern_thread.c#8 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/kern_thread.c#8 (text+ko) ==== @@ -66,10 +66,19 @@ SYSCTL_INT(_kern_threads, OID_AUTO, max_threads_hits, CTLFLAG_RD, &max_threads_hits, 0, ""); +/* + * I'm unsure if this is safe to remove. thread_free might not be able + * to be called from the contexts that thread_stash is. + */ +#define ZOMBIES 1 +#ifdef ZOMBIES TAILQ_HEAD(, thread) zombie_threads = TAILQ_HEAD_INITIALIZER(zombie_threads); static struct mtx zombie_lock; MTX_SYSINIT(zombie_lock, &zombie_lock, "zombie lock", MTX_SPIN); +static void thread_zombie(struct thread *); +#endif + struct mtx tid_lock; static struct unrhdr *tid_unrhdr; @@ -220,7 +229,36 @@ 16 - 1, 0); } +#ifdef ZOMBIES /* + * Place an unused thread on the zombie list. + * Use the slpq as that must be unused by now. + */ +void +thread_zombie(struct thread *td) +{ + mtx_lock_spin(&zombie_lock); + TAILQ_INSERT_HEAD(&zombie_threads, td, td_slpq); + mtx_unlock_spin(&zombie_lock); +} +#endif + +/* + * Release a thread that has exited after cpu_throw(). + */ +void +thread_stash(struct thread *td) +{ + atomic_subtract_rel_int(&td->td_proc->p_exitthreads, 1); +#ifdef ZOMBIES + thread_zombie(td); +#else + thread_free(td); /* unsafe here? */ +#endif +} + +#ifdef ZOMBIES +/* * Reap zombie kse resource. */ void @@ -247,6 +285,7 @@ } } } +#endif /* * Allocate a thread. @@ -256,7 +295,9 @@ { struct thread *td; +#ifdef ZOMBIES thread_reap(); /* check if any zombies to get */ +#endif td = (struct thread *)uma_zalloc(thread_zone, M_WAITOK); KASSERT(td->td_kstack == 0, ("thread_alloc got thread with kstack")); @@ -423,7 +464,9 @@ sched_relinquish(curthread); cpu_thread_clean(td); crfree(td->td_ucred); +#ifdef ZOMBIES thread_reap(); /* check for zombie threads etc. */ +#endif } /*