From owner-p4-projects@FreeBSD.ORG Sun Sep 14 16:50:22 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CAEC16A4E0; Sun, 14 Sep 2003 16:50:22 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F302E16A4E4 for ; Sun, 14 Sep 2003 16:50:21 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A850143FA3 for ; Sun, 14 Sep 2003 16:50:20 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8ENoK0U044707 for ; Sun, 14 Sep 2003 16:50:20 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8ENoKlu044704 for perforce@freebsd.org; Sun, 14 Sep 2003 16:50:20 -0700 (PDT) Date: Sun, 14 Sep 2003 16:50:20 -0700 (PDT) Message-Id: <200309142350.h8ENoKlu044704@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 Subject: PERFORCE change 38064 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Sep 2003 23:50:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=38064 Change 38064 by peter@peter_work on 2003/09/14 16:49:55 initial updates Affected files ... .. //depot/projects/hammer/sys/amd64/isa/atpic.c#2 edit Differences ... ==== //depot/projects/hammer/sys/amd64/isa/atpic.c#2 (text+ko) ==== @@ -49,30 +49,12 @@ #include #include -#include -#include +#include +#include + +#ifdef DEV_ISA #include - -/* XXX: Magic numbers */ -#ifdef PC98 -#ifdef AUTO_EOI_1 -#define MASTER_MODE 0x1f /* Master auto EOI, 8086 mode */ -#else -#define MASTER_MODE 0x1d /* Master 8086 mode */ #endif -#define SLAVE_MODE 9 /* 8086 mode */ -#else /* IBM-PC */ -#ifdef AUTO_EOI_1 -#define MASTER_MODE (2 | 1) /* Auto EOI, 8086 mode */ -#else -#define MASTER_MODE 1 /* 8086 mode */ -#endif -#ifdef AUTO_EOI_2 -#define SLAVE_MODE (2 | 1) /* Auto EOI, 8086 mode */ -#else -#define SLAVE_MODE 1 /* 8086 mode */ -#endif -#endif /* PC98 */ static void atpic_init(void *dummy); @@ -195,10 +177,10 @@ inthand_t *handler; int irq; #endif - register_t eflags; + register_t rflags; mtx_lock_spin(&icu_lock); - eflags = intr_disable(); + rflags = intr_disable(); #ifdef old irq = IRQ(ap, ai); ih = TAILQ_FIRST(&ai->at_intsrc.is_ithread->it_handlers); @@ -208,13 +190,11 @@ handler = ai->at_fastintr; } else handler = ai->at_intr; - setidt(ap->at_intbase + ai->at_irq, handler, SDT_SYS386IGT, SEL_KPL, - GSEL(GCODE_SEL, SEL_KPL)); + setidt(ap->at_intbase + ai->at_irq, handler, SDT_SYSIGT, SEL_KPL, 0); #else - setidt(ap->at_intbase + ai->at_irq, ai->at_intr, SDT_SYS386IGT, - SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); + setidt(ap->at_intbase + ai->at_irq, ai->at_intr, SDT_SYSIGT, SEL_KPL, 0); #endif - intr_restore(eflags); + intr_restore(rflags); mtx_unlock_spin(&icu_lock); } @@ -253,12 +233,7 @@ /* Reset the PIC and program with next four bytes. */ mtx_lock_spin(&icu_lock); -#ifdef DEV_MCA - if (MCA_system) - outb(pic->at_ioaddr, 0x19); - else -#endif - outb(pic->at_ioaddr, 0x11); + outb(pic->at_ioaddr, ICW1_RESET | ICW1_IC4); imr_addr = pic->at_ioaddr + ICU_IMR_OFFSET; /* Start vector. */ @@ -275,22 +250,30 @@ outb(imr_addr, IRQ_SLAVE); /* slave on line 7 */ /* Set mode. */ - if (slave) - outb(imr_addr, SLAVE_MODE); - else - outb(imr_addr, MASTER_MODE); + if (slave) { +#ifdef AUTO_EOI_2 + outb(imr_addr, ICW4_AEOI | ICW4_8086); +#else + outb(imr_addr, ICW4_8086); +#endif + } else { +#ifdef AUTO_EOI_1 + outb(imr_addr, ICW4_AEOI | ICW4_8086); +#else + outb(imr_addr, ICW4_8086); +#endif + } /* Set interrupt enable mask. */ outb(imr_addr, *pic->at_imen); /* Reset is finished, default to IRR on read. */ - outb(pic->at_ioaddr, 0x0a); + outb(pic->at_ioaddr, OCW3_SEL | OCW3_RIS); -#ifndef PC98 /* Set priority order to 3-7, 0-2 (com2 first). */ if (!slave) - outb(pic->at_ioaddr, 0xc0 | (3 - 1)); -#endif + outb(pic->at_ioaddr, ICU_SETPRI | 0x2); + mtx_unlock_spin(&icu_lock); } From owner-p4-projects@FreeBSD.ORG Sun Sep 14 17:02:37 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D06E516A4D8; Sun, 14 Sep 2003 17:02:36 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A48B416A4D6 for ; Sun, 14 Sep 2003 17:02:36 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3651143F93 for ; Sun, 14 Sep 2003 17:02:36 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8F02a0U045985 for ; Sun, 14 Sep 2003 17:02:36 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8F02ZM7045982 for perforce@freebsd.org; Sun, 14 Sep 2003 17:02:35 -0700 (PDT) Date: Sun, 14 Sep 2003 17:02:35 -0700 (PDT) Message-Id: <200309150002.h8F02ZM7045982@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 Subject: PERFORCE change 38065 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 00:02:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=38065 Change 38065 by peter@peter_work on 2003/09/14 17:01:54 Update the popcnt() stuff Affected files ... .. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#13 edit Differences ... ==== //depot/projects/hammer/sys/i386/i386/mp_machdep.c#13 (text+ko) ==== @@ -2437,6 +2437,12 @@ * -mcpu=pentiumpro and -march=pentiumpro then gcc-3.1 will use * an imull, and in that case it is faster. In most other cases * it appears slightly slower. + * + * Another variant (also from fortune): + * #define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255) + * #define BX_(x) ((x) - (((x)>>1)&0x77777777) \ + * - (((x)>>2)&0x33333333) \ + * - (((x)>>3)&0x11111111)) */ static __inline u_int32_t popcnt(u_int32_t m) From owner-p4-projects@FreeBSD.ORG Sun Sep 14 17:10:47 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 671E816A4C1; Sun, 14 Sep 2003 17:10:47 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 413EB16A4BF for ; Sun, 14 Sep 2003 17:10:47 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B2FB643FD7 for ; Sun, 14 Sep 2003 17:10:46 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8F0Ak0U047413 for ; Sun, 14 Sep 2003 17:10:46 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8F0Ak7Y047408 for perforce@freebsd.org; Sun, 14 Sep 2003 17:10:46 -0700 (PDT) Date: Sun, 14 Sep 2003 17:10:46 -0700 (PDT) Message-Id: <200309150010.h8F0Ak7Y047408@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 Subject: PERFORCE change 38066 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 00:10:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=38066 Change 38066 by peter@peter_work on 2003/09/14 17:10:18 bring out yer dead! Affected files ... .. //depot/projects/hammer/sys/amd64/isa/icu_vector.S#6 delete .. //depot/projects/hammer/sys/amd64/isa/ithread.c#7 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sun Sep 14 17:11:49 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 530CA16A4BF; Sun, 14 Sep 2003 17:11:49 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2C95C16A4BF for ; Sun, 14 Sep 2003 17:11:49 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DC1843FA3 for ; Sun, 14 Sep 2003 17:11:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8F0Bm0U047647 for ; Sun, 14 Sep 2003 17:11:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8F0Bm6M047644 for perforce@freebsd.org; Sun, 14 Sep 2003 17:11:48 -0700 (PDT) Date: Sun, 14 Sep 2003 17:11:48 -0700 (PDT) Message-Id: <200309150011.h8F0Bm6M047644@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 Subject: PERFORCE change 38067 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 00:11:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=38067 Change 38067 by peter@peter_work on 2003/09/14 17:10:51 bring out yer dead! Affected files ... .. //depot/projects/hammer/sys/amd64/isa/icu_ipl.S#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sun Sep 14 17:11:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 417F516A4C2; Sun, 14 Sep 2003 17:11:50 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0457A16A4BF for ; Sun, 14 Sep 2003 17:11:50 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1F8E943FBD for ; Sun, 14 Sep 2003 17:11:49 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8F0Bm0U047653 for ; Sun, 14 Sep 2003 17:11:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8F0BmW7047650 for perforce@freebsd.org; Sun, 14 Sep 2003 17:11:48 -0700 (PDT) Date: Sun, 14 Sep 2003 17:11:48 -0700 (PDT) Message-Id: <200309150011.h8F0BmW7047650@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 Subject: PERFORCE change 38068 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 00:11:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=38068 Change 38068 by peter@peter_work on 2003/09/14 17:11:38 bring out yer dead! Affected files ... .. //depot/projects/hammer/sys/amd64/isa/vector.S#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Sun Sep 14 17:24:05 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1902D16A4C1; Sun, 14 Sep 2003 17:24:05 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E95DE16A4BF for ; Sun, 14 Sep 2003 17:24:04 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6684A43FD7 for ; Sun, 14 Sep 2003 17:24:04 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8F0O40U048439 for ; Sun, 14 Sep 2003 17:24:04 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8F0O3ce048436 for perforce@freebsd.org; Sun, 14 Sep 2003 17:24:03 -0700 (PDT) Date: Sun, 14 Sep 2003 17:24:03 -0700 (PDT) Message-Id: <200309150024.h8F0O3ce048436@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 Subject: PERFORCE change 38069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 00:24:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=38069 Change 38069 by peter@peter_work on 2003/09/14 17:23:26 Use amd64 include path Affected files ... .. //depot/projects/hammer/sys/amd64/isa/atpic_vector.s#3 edit Differences ... ==== //depot/projects/hammer/sys/amd64/isa/atpic_vector.s#3 (text+ko) ==== @@ -41,12 +41,8 @@ */ #include -#include -#ifdef PC98 -#include -#else -#include -#endif +#include +#include #include "assym.s" From owner-p4-projects@FreeBSD.ORG Mon Sep 15 07:03:49 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8E6BD16A4C2; Mon, 15 Sep 2003 07:03:49 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5FAFE16A4BF for ; Mon, 15 Sep 2003 07:03:49 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E55D143FDD for ; Mon, 15 Sep 2003 07:03:44 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8FE3i0U036939 for ; Mon, 15 Sep 2003 07:03:44 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8FE3hZx036936 for perforce@freebsd.org; Mon, 15 Sep 2003 07:03:43 -0700 (PDT) Date: Mon, 15 Sep 2003 07:03:43 -0700 (PDT) Message-Id: <200309151403.h8FE3hZx036936@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 38085 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 14:03:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=38085 Change 38085 by areisse@areisse_tislabs on 2003/09/15 07:03:02 ss/avc from new selinux (2003-08-13 2.4) Affected files ... .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.c#3 edit .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.h#2 edit .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/policy_parse.y#3 edit .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/policy_scan.l#2 edit .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/write.c#1 add .. //depot/projects/trustedbsd/sebsd/sbin/sebsd_checkpolicy/Makefile#2 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/avc/avc.c#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/avc/avc.h#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/avc/avc_ss.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/flask_types.h#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/linux-compat.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd.c#19 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd_labels.h#5 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd_syscall.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd_syscalls.h#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/sebsd_sysctl.c#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/avtab.c#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/avtab.h#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/constraint.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/context.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/ebitmap.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/ebitmap.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/global.h#6 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/hashtab.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/hashtab.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/init.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/mls.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/mls_types.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/policydb.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/policydb.h#4 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/queue.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/security.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.c#5 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/services.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/sidtab.c#6 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/sidtab.h#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/symtab.c#3 edit .. //depot/projects/trustedbsd/sebsd/sys/security/sebsd/ss/symtab.h#3 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.c#3 (text+ko) ==== @@ -65,7 +65,7 @@ char *txtfile = "policy.conf"; char *binfile = "policy"; -int avc_debug_always_allow = 0; +int selinux_enforcing = 1; int avc_ss_reset(__u32 seqno) { @@ -311,6 +311,7 @@ security_id_t ssid, tsid, *sids; security_context_t scontext; access_vector_t allowed, decided, auditallow, auditdeny; + struct av_decision avd; class_datum_t *cladatum; char ans[80 + 1], *perm, *file = txtfile, *outfile = NULL, *path, *fstype; unsigned int scontext_len, pathlen, seqno, i; @@ -483,10 +484,8 @@ printf("\nNo access vector definition for that class\n"); break; } - ret = security_compute_av(ssid, tsid, tclass, 0, - &allowed, &decided, - &auditallow, &auditdeny, - &seqno); + ret = security_compute_av(ssid, tsid, tclass, 0, &avd); + allowed = avd.allowed; switch (ret) { case 0: printf("\nallowed {"); @@ -506,22 +505,6 @@ } printf(" }\n"); - printf("audit-allowed {"); - for (i = 1; i <= sizeof(allowed) * 8; i++) { - if (auditallow & (((access_vector_t)1) << (i - 1))) { - perm = (char *) hashtab_map(cladatum->permissions.table, - find_perm, &i); - - if (!perm && cladatum->comdatum) { - perm = (char *) hashtab_map(cladatum->comdatum->permissions.table, - find_perm, &i); - } - if (perm) - printf(" %s", perm); - } - } - printf(" }\n"); - break; case -EINVAL: printf("\ninvalid sid\n"); @@ -701,8 +684,8 @@ ans[strlen(ans) - 1] = 0; security_fs_use(ans, &ret, &ssid); switch (ret) { - case SECURITY_FS_USE_PSID: - printf("use persistent label mapping\n"); + case SECURITY_FS_USE_XATTR: + printf("use extended attributes\n"); break; case SECURITY_FS_USE_TRANS: printf("use transition SIDs\n"); @@ -717,7 +700,7 @@ printf("no labeling support\n"); break; } - if (ret != SECURITY_FS_USE_PSID) + if (ret != SECURITY_FS_USE_XATTR) printf("sid %d\n", ssid); break; case 'd': ==== //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.h#2 (text+ko) ==== @@ -4,9 +4,9 @@ #include "ebitmap.h" typedef struct te_assert { - ebitmap_t stypes; - ebitmap_t ttypes; - ebitmap_t tclasses; + struct ebitmap stypes; + struct ebitmap ttypes; + struct ebitmap tclasses; int self; access_vector_t *avp; unsigned long line; @@ -15,4 +15,39 @@ te_assert_t *te_assertions; +typedef u_int64_t __u64; +typedef u_int32_t __u32; +typedef u_int16_t __u16; +typedef u_int8_t __u8; + +typedef struct ebitmap ebitmap_t; +typedef struct ebitmap_node ebitmap_node_t; +typedef struct avtab avtab_t; +typedef struct avtab_node *avtab_ptr_t; +typedef struct avtab_key avtab_key_t; +typedef struct avtab_datum avtab_datum_t; +typedef struct policydb policydb_t; +typedef struct role_datum role_datum_t; +typedef struct class_datum class_datum_t; +typedef struct common_datum common_datum_t; +typedef struct perm_datum perm_datum_t; +typedef struct type_datum type_datum_t; +typedef struct user_datum user_datum_t; +typedef struct constraint_expr constraint_expr_t; +typedef struct constraint_node constraint_node_t; +typedef struct context context_struct_t; +typedef struct context context_t; +typedef struct ocontext ocontext_t; +typedef struct genfs genfs_t; +typedef void *hashtab_key_t; +typedef void *hashtab_datum_t; + +#define HASHTAB_SUCCESS 0 +#define HASHTAB_OVERFLOW ENOMEM +#define HASHTAB_PRESENT EEXIST +#define HASHTAB_MISSING ENOENT + +#define TRUE 1 +#define FALSE 0 + #endif ==== //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/policy_parse.y#3 (text+ko) ==== @@ -1,10 +1,6 @@ /* - * Author : Stephen Smalley (NAI Labs), - * - * The policy compiler was originally written while I was employed by NSA, - * but I have implemented a number of extensions and revisions since - * joining NAI Labs. + * Author : Stephen Smalley, */ /* FLASK */ @@ -17,13 +13,16 @@ #include #include "linux-compat.h" #endif /* __FreeBSD__ */ -#include "flask.h" #include "policydb.h" #include "services.h" #include "queue.h" #include "checkpolicy.h" +#include "flask.h" #include "security.h" +#define TRUE 1 +#define FALSE 0 + policydb_t *policydbp; queue_t id_queue = 0; unsigned int pass; @@ -58,7 +57,7 @@ static int define_role_trans(void); static int define_role_allow(void); static int define_constraint(constraint_expr_t *expr); -static constraint_expr_t *define_cexpr(__u32 expr_type, __u32 arg1, __u32 arg2); +static constraint_expr_t *define_cexpr(__u32 expr_type, void *arg1, void* arg2); static int define_user(void); static int parse_security_context(context_struct_t *c); static int define_initial_sid_context(void); @@ -70,6 +69,14 @@ static int define_node_context(int addr, int mask); %} +%union { + int val; + void *ptr; +} + +%type role_def roles cexpr cexpr_prim op roleop +%type ipv4_addr_def number + %token PATH %token CLONE %token COMMON @@ -103,11 +110,12 @@ %token TARGET %token SAMEUSER %token FSCON PORTCON NETIFCON NODECON -%token FSUSEPSID FSUSETASK FSUSETRANS +%token FSUSEXATTR FSUSETASK FSUSETRANS %token GENFSCON %token U1 U2 R1 R2 T1 T2 %token NOT AND OR %token IDENTIFIER +%token USER_IDENTIFIER %token NUMBER %token EQUALS %token NOTEQUAL @@ -292,12 +300,12 @@ roles : role_def { $$ = $1; } | roles role_def - { $$ = (int) merge_roles_dom((role_datum_t*)$1, (role_datum_t*)$2); if ($$ == 0) return -1;} + { $$ = merge_roles_dom((role_datum_t*)$1, (role_datum_t*)$2); if ($$ == 0) return -1;} ; role_def : ROLE identifier_push ';' - {$$ = (int) define_role_dom(NULL); if ($$ == 0) return -1;} + {$$ = define_role_dom(NULL); if ($$ == 0) return -1;} | ROLE identifier_push '{' roles '}' - {$$ = (int) define_role_dom((role_datum_t*)$4); if ($$ == 0) return -1;} + {$$ = define_role_dom((role_datum_t*)$4); if ($$ == 0) return -1;} ; opt_constraints : constraints | @@ -311,82 +319,84 @@ cexpr : '(' cexpr ')' { $$ = $2; } | NOT cexpr - { $$ = (int) define_cexpr(CEXPR_NOT, $2, 0); + { $$ = define_cexpr(CEXPR_NOT, $2, 0); if ($$ == 0) return -1; } | cexpr AND cexpr - { $$ = (int) define_cexpr(CEXPR_AND, $1, $3); + { $$ = define_cexpr(CEXPR_AND, $1, $3); if ($$ == 0) return -1; } | cexpr OR cexpr - { $$ = (int) define_cexpr(CEXPR_OR, $1, $3); + { $$ = define_cexpr(CEXPR_OR, $1, $3); if ($$ == 0) return -1; } | cexpr_prim { $$ = $1; } ; cexpr_prim : U1 op U2 - { $$ = (int) define_cexpr(CEXPR_ATTR, CEXPR_USER, $2); + { $$ = define_cexpr(CEXPR_ATTR, (void*)CEXPR_USER, $2); if ($$ == 0) return -1; } | R1 roleop R2 - { $$ = (int) define_cexpr(CEXPR_ATTR, CEXPR_ROLE, $2); + { $$ = define_cexpr(CEXPR_ATTR, (void*)CEXPR_ROLE, $2); if ($$ == 0) return -1; } | T1 op T2 - { $$ = (int) define_cexpr(CEXPR_ATTR, CEXPR_TYPE, $2); + { $$ = define_cexpr(CEXPR_ATTR, (void*)CEXPR_TYPE, $2); if ($$ == 0) return -1; } - | U1 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_USER, $2); + | U1 op { if (insert_separator(1)) return -1; } user_names_push + { $$ = define_cexpr(CEXPR_NAMES, (void*)CEXPR_USER, $2); if ($$ == 0) return -1; } - | U2 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_USER | CEXPR_TARGET, $2); + | U2 op { if (insert_separator(1)) return -1; } user_names_push + { $$ = define_cexpr(CEXPR_NAMES, (void*)(CEXPR_USER | CEXPR_TARGET), $2); if ($$ == 0) return -1; } | R1 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_ROLE, $2); + { $$ = define_cexpr(CEXPR_NAMES, (void*)CEXPR_ROLE, $2); if ($$ == 0) return -1; } | R2 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_ROLE | CEXPR_TARGET, $2); + { $$ = define_cexpr(CEXPR_NAMES, (void*)(CEXPR_ROLE | CEXPR_TARGET), $2); if ($$ == 0) return -1; } | T1 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_TYPE, $2); + { $$ = define_cexpr(CEXPR_NAMES, (void*)CEXPR_TYPE, $2); if ($$ == 0) return -1; } | T2 op { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_TYPE | CEXPR_TARGET, $2); + { $$ = define_cexpr(CEXPR_NAMES, (void*)(CEXPR_TYPE | CEXPR_TARGET), $2); if ($$ == 0) return -1; } - ; | SAMEUSER - { $$ = (int) define_cexpr(CEXPR_ATTR, CEXPR_USER, CEXPR_EQ); + { $$ = define_cexpr(CEXPR_ATTR, (void*)CEXPR_USER, (void*)CEXPR_EQ); if ($$ == 0) return -1; } | SOURCE ROLE { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_ROLE, CEXPR_EQ); + { $$ = define_cexpr(CEXPR_NAMES, (void*)CEXPR_ROLE, (void*)CEXPR_EQ); if ($$ == 0) return -1; } | TARGET ROLE { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_ROLE | CEXPR_TARGET, CEXPR_EQ); + { $$ = define_cexpr(CEXPR_NAMES, (void*)(CEXPR_ROLE | CEXPR_TARGET), (void*)CEXPR_EQ); if ($$ == 0) return -1; } | ROLE roleop - { $$ = (int) define_cexpr(CEXPR_ATTR, CEXPR_ROLE, $2); + { $$ = define_cexpr(CEXPR_ATTR, (void*)CEXPR_ROLE, (void*)$2); if ($$ == 0) return -1; } | SOURCE TYPE { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_TYPE, CEXPR_EQ); + { $$ = define_cexpr(CEXPR_NAMES, (void*)CEXPR_TYPE, (void*)CEXPR_EQ); if ($$ == 0) return -1; } | TARGET TYPE { if (insert_separator(1)) return -1; } names_push - { $$ = (int) define_cexpr(CEXPR_NAMES, CEXPR_TYPE | CEXPR_TARGET, CEXPR_EQ); + { $$ = define_cexpr(CEXPR_NAMES, (void*)(CEXPR_TYPE | CEXPR_TARGET), (void*)CEXPR_EQ); if ($$ == 0) return -1; } ; op : EQUALS - { $$ = CEXPR_EQ; } + { $$ = (void*)CEXPR_EQ; } | NOTEQUAL - { $$ = CEXPR_NEQ; } + { $$ = (void*)CEXPR_NEQ; } ; roleop : op { $$ = $1; } | DOM - { $$ = CEXPR_DOM; } + { $$ = (void*)CEXPR_DOM; } | DOMBY - { $$ = CEXPR_DOMBY; } + { $$ = (void*)CEXPR_DOMBY; } | INCOMP - { $$ = CEXPR_INCOMP; } + { $$ = (void*)CEXPR_INCOMP; } ; users : user_def | users user_def ; -user_def : USER identifier ROLES names opt_user_ranges ';' +user_id : identifier + | user_identifier + ; +user_def : USER user_id ROLES names opt_user_ranges ';' {if (define_user()) return -1;} ; opt_user_ranges : RANGES user_ranges @@ -447,8 +457,8 @@ fs_uses : fs_use_def | fs_uses fs_use_def ; -fs_use_def : FSUSEPSID identifier ';' - {if (define_fs_use(SECURITY_FS_USE_PSID)) return -1;} +fs_use_def : FSUSEXATTR identifier security_context_def ';' + {if (define_fs_use(SECURITY_FS_USE_XATTR)) return -1;} | FSUSETASK identifier security_context_def ';' {if (define_fs_use(SECURITY_FS_USE_TASK)) return -1;} | FSUSETRANS identifier security_context_def ';' @@ -479,7 +489,7 @@ $$ = addr; } ; -security_context_def : identifier ':' identifier ':' identifier opt_mls_range_def +security_context_def : user_id ':' identifier ':' identifier opt_mls_range_def ; opt_mls_range_def : ':' mls_range_def | @@ -545,6 +555,23 @@ identifier : IDENTIFIER { if (insert_id(yytext,0)) return -1; } ; +user_identifier : USER_IDENTIFIER + { if (insert_id(yytext,0)) return -1; } + ; +user_identifier_push : USER_IDENTIFIER + { if (insert_id(yytext, 1)) return -1; } + ; +user_identifier_list_push : user_identifier_push + | identifier_list_push user_identifier_push + | user_identifier_list_push identifier_push + | user_identifier_list_push user_identifier_push + ; +user_names_push : names_push + | user_identifier_push + | '{' user_identifier_list_push '}' + | tilde_push user_identifier_push + | tilde_push '{' user_identifier_list_push '}' + ; path : PATH { if (insert_id(yytext,0)) return -1; } ; @@ -1196,7 +1223,7 @@ free(id); continue; } - if (!ebitmap_set_bit(&levdatum->level->cat, catdatum->value - 1, TRUE)) { + if (ebitmap_set_bit(&levdatum->level->cat, catdatum->value - 1, TRUE)) { yyerror("out of memory"); free(id); free(levid); @@ -1538,19 +1565,19 @@ while ((id = queue_remove(id_queue))) { #ifdef CONFIG_SECURITY_SELINUX_MLS if (!strcmp(id, "mlstrustedreader")) { - if (!ebitmap_set_bit(&policydbp->trustedreaders, datum->value - 1, TRUE)) { + if (ebitmap_set_bit(&policydbp->trustedreaders, datum->value - 1, TRUE)) { yyerror("out of memory"); free(id); return -1; } } else if (!strcmp(id, "mlstrustedwriter")) { - if (!ebitmap_set_bit(&policydbp->trustedwriters, datum->value - 1, TRUE)) { + if (ebitmap_set_bit(&policydbp->trustedwriters, datum->value - 1, TRUE)) { yyerror("out of memory"); free(id); return -1; } } else if (!strcmp(id, "mlstrustedobject")) { - if (!ebitmap_set_bit(&policydbp->trustedobjects, datum->value - 1, TRUE)) { + if (ebitmap_set_bit(&policydbp->trustedobjects, datum->value - 1, TRUE)) { yyerror("out of memory"); free(id); return -1; @@ -1603,26 +1630,37 @@ return 0; } +struct val_to_name { + unsigned int val; + char *name; +}; static int type_val_to_name_helper(hashtab_key_t key, hashtab_datum_t datum, void *p) { - unsigned int value; type_datum_t *typdatum; + struct val_to_name *v = p; - value = (unsigned int) p; typdatum = (type_datum_t *) datum; - if (value == typdatum->value) - return (int) key; + if (v->val == typdatum->value) { + v->name = key; + return 1; + } return 0; } - static char *type_val_to_name(unsigned int val) { - return (char*) hashtab_map(policydbp->p_types.table, - type_val_to_name_helper, (void *)val); + struct val_to_name v; + int rc; + + v.val = val; + rc = hashtab_map(policydbp->p_types.table, + type_val_to_name_helper, &v); + if (rc) + return v.name; + return NULL; } @@ -1815,14 +1853,15 @@ static int perm_name(hashtab_key_t key, hashtab_datum_t datum, void *data) { - unsigned int val; + struct val_to_name *v = data; perm_datum_t *perdatum; - val = (unsigned int) data; perdatum = (perm_datum_t *) datum; - if (val == perdatum->value) - return (int) key; + if (v->val == perdatum->value) { + v->name = key; + return 1; + } return 0; } @@ -1830,23 +1869,26 @@ char *av_to_string(__u32 tclass, access_vector_t av) { + struct val_to_name v; static char avbuf[1024]; class_datum_t *cladatum; - char *perm, *p; - int i; + char *perm = NULL, *p; + int i, rc; cladatum = policydbp->class_val_to_struct[tclass-1]; p = avbuf; for (i = 0; i < cladatum->permissions.nprim; i++) { if (av & (1 << i)) { - perm = (char *) hashtab_map( - cladatum->permissions.table, - perm_name, (void*)(i+1)); - if (!perm && cladatum->comdatum) { - perm = (char *) hashtab_map( + v.val = i+1; + rc = hashtab_map(cladatum->permissions.table, + perm_name, &v); + if (!rc && cladatum->comdatum) { + rc = hashtab_map( cladatum->comdatum->permissions.table, - perm_name, (void*)(i+1)); + perm_name, &v); } + if (rc) + perm = v.name; if (perm) { sprintf(p, " %s", perm); p += strlen(p); @@ -1860,11 +1902,12 @@ static int te_avtab_helper(int which, int stype, int ttype, ebitmap_t *tclasses, access_vector_t *avp) + { avtab_key_t avkey; avtab_datum_t avdatum, *avdatump; int ret, k; - + if (which == -AVTAB_ALLOWED) { yyerror("neverallow should not reach this function."); return -1; @@ -2062,16 +2105,18 @@ return -1; } + static int role_val_to_name_helper(hashtab_key_t key, hashtab_datum_t datum, void *p) { - unsigned int value; + struct val_to_name *v = p; role_datum_t *roldatum; - value = (unsigned int) p; roldatum = (role_datum_t *) datum; - if (value == roldatum->value) - return (int) key; + if (v->val == roldatum->value) { + v->name = key; + return 1; + } return 0; } @@ -2079,8 +2124,15 @@ static char *role_val_to_name(unsigned int val) { - return (char*) hashtab_map(policydbp->p_roles.table, - role_val_to_name_helper, (void *)val); + struct val_to_name v; + int rc; + + v.val = val; + rc = hashtab_map(policydbp->p_roles.table, + role_val_to_name_helper, &v); + if (rc) + return v.name; + return NULL; } static int define_role_types(void) @@ -2146,11 +2198,11 @@ } memset(new, 0, sizeof(role_datum_t)); new->value = 0; /* temporary role */ - if (!ebitmap_or(&new->dominates, &r1->dominates, &r2->dominates)) { + if (ebitmap_or(&new->dominates, &r1->dominates, &r2->dominates)) { yyerror("out of memory"); return NULL; } - if (!ebitmap_or(&new->types, &r1->types, &r2->types)) { + if (ebitmap_or(&new->types, &r1->types, &r2->types)) { yyerror("out of memory"); return NULL; } @@ -2418,7 +2470,8 @@ class_datum_t *cladatum; perm_datum_t *perdatum; ebitmap_t classmap; - int i; + constraint_expr_t *e; + int i, depth; if (pass == 1) { while ((id = queue_remove(id_queue))) @@ -2428,6 +2481,41 @@ return 0; } + depth = -1; + for (e = expr; e; e = e->next) { + switch (e->expr_type) { + case CEXPR_NOT: + if (depth < 0) { + yyerror("illegal constraint expression"); + return -1; + } + break; + case CEXPR_AND: + case CEXPR_OR: + if (depth < 1) { + yyerror("illegal constraint expression"); + return -1; + } + depth--; + break; + case CEXPR_ATTR: + case CEXPR_NAMES: + if (depth == (CEXPR_MAXDEPTH-1)) { + yyerror("constraint expression is too deep"); + return -1; + } + depth++; + break; + default: + yyerror("illegal constraint expression"); + return -1; + } + } + if (depth != 0) { + yyerror("illegal constraint expression"); + return -1; + } + ebitmap_init(&classmap); while ((id = queue_remove(id_queue))) { cladatum = (class_datum_t *) hashtab_search(policydbp->p_classes.table, @@ -2437,25 +2525,21 @@ ebitmap_destroy(&classmap); yyerror(errormsg); free(id); - constraint_expr_destroy(expr); return -1; } - if (!ebitmap_set_bit(&classmap, cladatum->value - 1, TRUE)) { + if (ebitmap_set_bit(&classmap, cladatum->value - 1, TRUE)) { yyerror("out of memory"); ebitmap_destroy(&classmap); free(id); - constraint_expr_destroy(expr); return -1; } node = malloc(sizeof(struct constraint_node)); if (!node) { yyerror("out of memory"); - constraint_expr_destroy(expr); return -1; } memset(node, 0, sizeof(constraint_node_t)); node->expr = expr; - expr->count++; node->permissions = 0; node->next = cladatum->constraints; @@ -2464,8 +2548,6 @@ free(id); } - expr->count--; - while ((id = queue_remove(id_queue))) { for (i = ebitmap_startbit(&classmap); i < ebitmap_length(&classmap); i++) { if (ebitmap_get_bit(&classmap, i)) { @@ -2500,9 +2582,9 @@ static constraint_expr_t * - define_cexpr(__u32 expr_type, __u32 arg1, __u32 arg2) + define_cexpr(__u32 expr_type, void* arg1, void* arg2) { - struct constraint_expr *expr; + struct constraint_expr *expr, *e1 = NULL, *e2; user_datum_t *user; role_datum_t *role; char *id; @@ -2523,50 +2605,90 @@ } memset(expr, 0, sizeof(constraint_expr_t)); expr->expr_type = expr_type; - expr->count = 1; switch (expr_type) { case CEXPR_NOT: + e1 = NULL; + e2 = (struct constraint_expr *) arg1; + while (e2) { + e1 = e2; + e2 = e2->next; + } + if (!e1 || e1->next) { + yyerror("illegal constraint expression"); + free(expr); + return NULL; + } + e1->next = expr; + return (struct constraint_expr *) arg1; case CEXPR_AND: case CEXPR_OR: - expr->left = (struct constraint_expr *) arg1; - expr->right = (struct constraint_expr *) arg2; - break; + e1 = NULL; + e2 = (struct constraint_expr *) arg1; + while (e2) { + e1 = e2; + e2 = e2->next; + } + if (!e1 || e1->next) { + yyerror("illegal constraint expression"); + free(expr); + return NULL; + } + e1->next = (struct constraint_expr *) arg2; + + e1 = NULL; + e2 = (struct constraint_expr *) arg2; + while (e2) { + e1 = e2; + e2 = e2->next; + } + if (!e1 || e1->next) { + yyerror("illegal constraint expression"); + free(expr); + return NULL; + } + e1->next = expr; + return (struct constraint_expr *) arg1; case CEXPR_ATTR: - expr->attr = arg1; - expr->op = arg2; - break; + expr->attr = (__u32)arg1; + expr->op = (__u32)arg2; + return expr; case CEXPR_NAMES: - expr->attr = arg1; - expr->op = arg2; + expr->attr = (__u32)arg1; + expr->op = (__u32)arg2; while ((id = (char *) queue_remove(id_queue))) { - if (arg1 & CEXPR_USER) { + if (expr->attr & CEXPR_USER) { user = (user_datum_t *) hashtab_search(policydbp->p_users.table, (hashtab_key_t) id); if (!user) { sprintf(errormsg, "unknown user %s", id); yyerror(errormsg); + free(expr); return NULL; } val = user->value; - } else if (arg1 & CEXPR_ROLE) { + } else if (expr->attr & CEXPR_ROLE) { role = (role_datum_t *) hashtab_search(policydbp->p_roles.table, (hashtab_key_t) id); if (!role) { sprintf(errormsg, "unknown role %s", id); yyerror(errormsg); + free(expr); return NULL; } val = role->value; - } else if (arg1 & CEXPR_TYPE) { - if (set_types(&expr->names, id)) + } else if (expr->attr & CEXPR_TYPE) { + if (set_types(&expr->names, id)) { + free(expr); return NULL; + } continue; } else { yyerror("invalid constraint expression"); + free(expr); return NULL; } - if (!ebitmap_set_bit(&expr->names, val - 1, TRUE)) { + if (ebitmap_set_bit(&expr->names, val - 1, TRUE)) { yyerror("out of memory"); ebitmap_destroy(&expr->names); free(expr); @@ -2574,13 +2696,16 @@ } free(id); } - break; + return expr; default: yyerror("invalid constraint expression"); + free(expr); return NULL; } - return expr; + yyerror("invalid constraint expression"); + free(expr); + return NULL; } @@ -2751,7 +2876,7 @@ free(id); continue; } - if (!ebitmap_set_bit(&rnode->range.level[l].cat, catdatum->value - 1, TRUE)) { + if (ebitmap_set_bit(&rnode->range.level[l].cat, catdatum->value - 1, TRUE)) { yyerror("out of memory"); free(id); free(levid); @@ -2778,7 +2903,7 @@ if (l == 0) { rnode->range.level[1].sens = rnode->range.level[0].sens; - if (!ebitmap_cpy(&rnode->range.level[1].cat, &rnode->range.level[0].cat)) { + if (ebitmap_cpy(&rnode->range.level[1].cat, &rnode->range.level[0].cat)) { yyerror("out of memory"); free(id); ebitmap_destroy(&rnode->range.level[0].cat); @@ -2934,7 +3059,7 @@ free(id); goto bad; } - if (!ebitmap_set_bit(&c->range.level[l].cat, + if (ebitmap_set_bit(&c->range.level[l].cat, catdatum->value - 1, TRUE)) { yyerror("out of memory"); free(levid); @@ -2956,7 +3081,7 @@ if (l == 0) { c->range.level[1].sens = c->range.level[0].sens; - if (!ebitmap_cpy(&c->range.level[1].cat, &c->range.level[0].cat)) { + if (ebitmap_cpy(&c->range.level[1].cat, &c->range.level[0].cat)) { yyerror("out of memory"); goto bad; @@ -3218,8 +3343,7 @@ if (pass == 1) { free(queue_remove(id_queue)); - if (behavior != SECURITY_FS_USE_PSID) - parse_security_context(NULL); + parse_security_context(NULL); return 0; } @@ -3236,13 +3360,12 @@ return -1; } newc->v.behavior = behavior; - if (behavior != SECURITY_FS_USE_PSID) { - if (parse_security_context(&newc->context[0])) { - free(newc->u.name); - free(newc); - return -1; - } + if (parse_security_context(&newc->context[0])) { + free(newc->u.name); + free(newc); + return -1; } + head = policydbp->ocontexts[OCON_FSUSE]; for (c = head; c; c = c->next) { ==== //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/policy_scan.l#2 (text+ko) ==== @@ -1,10 +1,6 @@ /* - * Author : Stephen Smalley (NAI Labs), - * - * The policy compiler was originally written while I was employed by NSA, - * but I have implemented a number of extensions and revisions since - * joining NAI Labs. + * Author : Stephen Smalley, */ /* FLASK */ @@ -12,7 +8,6 @@ %{ #include "policy_parse.h" - static char linebuf[2][255]; static unsigned int lno = 0; @@ -111,8 +106,8 @@ NETIFCON { return(NETIFCON);} nodecon | NODECON { return(NODECON);} -fs_use_psid | -FS_USE_PSID {return(FSUSEPSID);} +fs_use_xattr | +FS_USE_XATTR {return(FSUSEXATTR);} fs_use_task | FS_USE_TASK {return(FSUSETASK);} fs_use_trans | @@ -131,8 +126,9 @@ T1 { return(T1); } t2 | T2 { return(T2); } -"/"({letter}|{digit}|_|"."|"/")* { return(PATH); } +"/"({letter}|{digit}|_|"."|"-"|"/")* { return(PATH); } {letter}({letter}|{digit}|_)* { return(IDENTIFIER); } +{letter}({letter}|{digit}|_|"."|"-")* { return(USER_IDENTIFIER); } {digit}{digit}* { return(NUMBER); } #[^\n]* { /* delete comments */ } [ \t\f]+ { /* delete whitespace */ } ==== //depot/projects/trustedbsd/sebsd/sbin/sebsd_checkpolicy/Makefile#2 (text+ko) ==== @@ -5,15 +5,16 @@ PROG= sebsd_checkpolicy MAN= SRCS= policy_scan.l policy_parse.y checkpolicy.c avtab.c ebitmap.c \ - hashtab.c queue.c policydb.c services.c sidtab.c symtab.c + hashtab.c queue.c policydb.c services.c sidtab.c symtab.c write.c CFLAGS+=-I${.CURDIR}/../../contrib/sebsd/checkpolicy CFLAGS+=-I${.CURDIR}/../../sys/security/sebsd/avc CFLAGS+=-I${.CURDIR}/../../sys/security/sebsd/ss CFLAGS+=-I${.CURDIR}/../../sys/security/sebsd CFLAGS+=-I${.CURDIR}/../../sys CFLAGS+=-I${.OBJDIR} +CFLAGS+=-g -LDADD+= -lfl +LDADD+= -g -lfl WARNS= 0 ==== //depot/projects/trustedbsd/sebsd/sys/security/sebsd/avc/avc.c#4 (text+ko) ==== @@ -1,16 +1,16 @@ /* - * Author: Stephen Smalley, NAI Labs, + * Implementation of the kernel access vector cache (AVC). + * + * Authors: Stephen Smalley, + * James Morris * - * The access vector cache was originally written while I was employed by NSA, - * and has undergone some revisions since I joined NAI Labs, but is largely - * unchanged. + * Copyright (C) 2003 Red Hat, Inc., James Morris * - * Ported to FreeBSD: Chris Vance, NAI Labs, + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Sep 15 16:29:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 228EF16A4C0; Mon, 15 Sep 2003 16:29:24 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D12F516A4B3 for ; Mon, 15 Sep 2003 16:29:23 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 72E5443FB1 for ; Mon, 15 Sep 2003 16:29:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8FNTM0U096677 for ; Mon, 15 Sep 2003 16:29:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8FNTLlx096665 for perforce@freebsd.org; Mon, 15 Sep 2003 16:29:21 -0700 (PDT) Date: Mon, 15 Sep 2003 16:29:21 -0700 (PDT) Message-Id: <200309152329.h8FNTLlx096665@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38100 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 23:29:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=38100 Change 38100 by marcel@marcel_nfs on 2003/09/15 16:29:10 IFC @38099 Affected files ... .. //depot/projects/ia64/Makefile.inc1#83 integrate .. //depot/projects/ia64/UPDATING#51 integrate .. //depot/projects/ia64/bin/df/df.c#16 integrate .. //depot/projects/ia64/contrib/isc-dhcp/client/scripts/freebsd#7 integrate .. //depot/projects/ia64/etc/defaults/rc.conf#41 integrate .. //depot/projects/ia64/etc/pccard_ether#11 integrate .. //depot/projects/ia64/lib/libc/net/getaddrinfo.3#6 integrate .. //depot/projects/ia64/lib/libc/net/getnameinfo.3#5 integrate .. //depot/projects/ia64/lib/libc/rpc/rpc_clnt_create.3#7 integrate .. //depot/projects/ia64/lib/libc/stdlib/exit.3#5 integrate .. //depot/projects/ia64/lib/libc/stdlib/grantpt.3#3 integrate .. //depot/projects/ia64/lib/libc_r/man/pthread_condattr.3#3 integrate .. //depot/projects/ia64/lib/libpthread/man/pthread_condattr.3#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_attr_setguardsize.c#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_attr_setinheritsched.c#2 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_attr_setscope.c#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_cond.c#17 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_create.c#14 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_exit.c#7 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#34 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_private.h#24 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#24 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigmask.c#8 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_stack.c#4 integrate .. //depot/projects/ia64/libexec/ftpd/ftpd.8#15 integrate .. //depot/projects/ia64/libexec/ftpd/ftpd.c#22 integrate .. //depot/projects/ia64/libexec/rtld-elf/Makefile#8 integrate .. //depot/projects/ia64/libexec/rtld-elf/libmap.c#9 integrate .. //depot/projects/ia64/libexec/rtld-elf/libmap.h#2 integrate .. //depot/projects/ia64/libexec/rtld-elf/rtld.c#19 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#123 integrate .. //depot/projects/ia64/sbin/devfs/devfs.8#7 integrate .. //depot/projects/ia64/sbin/newfs/newfs.8#17 integrate .. //depot/projects/ia64/sbin/raidctl/raidctl.8#6 integrate .. //depot/projects/ia64/share/examples/etc/README.examples#3 integrate .. //depot/projects/ia64/share/examples/ses/getencstat/getencstat.0#2 integrate .. //depot/projects/ia64/share/examples/ses/sesd/sesd.0#2 integrate .. //depot/projects/ia64/share/man/man4/bge.4#7 integrate .. //depot/projects/ia64/share/man/man4/ng_bt3c.4#5 integrate .. //depot/projects/ia64/share/man/man4/rl.4#8 integrate .. //depot/projects/ia64/share/man/man4/usb.4#11 integrate .. //depot/projects/ia64/share/man/man5/libmap.conf.5#3 integrate .. //depot/projects/ia64/share/man/man5/make.conf.5#40 integrate .. //depot/projects/ia64/share/man/man7/tuning.7#21 integrate .. //depot/projects/ia64/share/man/man9/mtx_pool.9#4 integrate .. //depot/projects/ia64/share/man/man9/signal.9#5 integrate .. //depot/projects/ia64/share/man/man9/sx.9#8 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#24 integrate .. //depot/projects/ia64/sys/amd64/conf/GENERIC#10 integrate .. //depot/projects/ia64/sys/conf/files#102 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi.c#40 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_acad.c#8 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_ec.c#18 integrate .. //depot/projects/ia64/sys/dev/ath/if_ath.c#10 integrate .. //depot/projects/ia64/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/ia64/sys/dev/isp/isp_freebsd.c#17 integrate .. //depot/projects/ia64/sys/dev/pci/pci.c#33 integrate .. //depot/projects/ia64/sys/dev/pci/pcireg.h#8 integrate .. //depot/projects/ia64/sys/dev/pci/pcivar.h#9 integrate .. //depot/projects/ia64/sys/dev/re/if_re.c#4 integrate .. //depot/projects/ia64/sys/dev/sio/sio.c#51 integrate .. //depot/projects/ia64/sys/dev/sound/pci/ich.c#20 integrate .. //depot/projects/ia64/sys/dev/uart/uart_bus_pccard.c#1 branch .. //depot/projects/ia64/sys/i386/i386/pmap.c#63 integrate .. //depot/projects/ia64/sys/kern/kern_prot.c#30 integrate .. //depot/projects/ia64/sys/kern/vfs_bio.c#60 integrate .. //depot/projects/ia64/sys/modules/uart/Makefile#4 integrate .. //depot/projects/ia64/sys/net/if_iso88025subr.c#12 integrate .. //depot/projects/ia64/sys/net80211/ieee80211.c#6 integrate .. //depot/projects/ia64/sys/net80211/ieee80211.h#3 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_input.c#6 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_ioctl.c#5 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_node.c#7 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_output.c#6 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_var.h#5 integrate .. //depot/projects/ia64/sys/netinet6/in6_ifattach.c#6 integrate .. //depot/projects/ia64/sys/netinet6/nd6.c#12 integrate .. //depot/projects/ia64/sys/netinet6/nd6_nbr.c#8 integrate .. //depot/projects/ia64/sys/pci/if_rlreg.h#18 integrate .. //depot/projects/ia64/sys/pci/if_xl.c#40 integrate .. //depot/projects/ia64/sys/pci/if_xlreg.h#12 integrate .. //depot/projects/ia64/sys/vm/vm_kern.c#29 integrate .. //depot/projects/ia64/sys/vm/vm_object.c#66 integrate .. //depot/projects/ia64/usr.bin/colldef/colldef.1#7 integrate .. //depot/projects/ia64/usr.bin/doscmd/doscmd.1#5 integrate .. //depot/projects/ia64/usr.bin/make/dir.c#10 integrate .. //depot/projects/ia64/usr.bin/make/dir.h#4 integrate .. //depot/projects/ia64/usr.bin/make/main.c#19 integrate .. //depot/projects/ia64/usr.bin/make/make.1#12 integrate .. //depot/projects/ia64/usr.bin/tftp/tftp.1#6 integrate .. //depot/projects/ia64/usr.sbin/acpi/acpidump/acpi.c#22 integrate .. //depot/projects/ia64/usr.sbin/boot0cfg/boot0cfg.8#7 integrate .. //depot/projects/ia64/usr.sbin/i4b/isdnd/isdnd.rc.5#6 integrate .. //depot/projects/ia64/usr.sbin/i4b/isdndebug/isdndebug.8#3 integrate .. //depot/projects/ia64/usr.sbin/mrouted/mrouted.8#5 integrate .. //depot/projects/ia64/usr.sbin/mtree/mtree.8#6 integrate .. //depot/projects/ia64/usr.sbin/newsyslog/ptimes.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/rtadvd.conf.5#5 integrate Differences ... ==== //depot/projects/ia64/Makefile.inc1#83 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.390 2003/09/07 14:15:40 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.391 2003/09/15 21:18:30 ru Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -814,8 +814,6 @@ # gnu/lib/csu, gnu/lib/libgcc and lib/csu must be built before all # shared libraries for ELF. # -# lib/libc (libc_pic.a) must be built before lib/libpthread. -# _startup_libs= gnu/lib/csu gnu/lib/libgcc .if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-elf) _startup_libs+= lib/csu/${MACHINE_ARCH}-elf @@ -824,6 +822,7 @@ .endif _prebuild_libs= + _generic_libs= gnu/lib .if exists(${.CURDIR}/kerberos5) && exists(${.CURDIR}/crypto) && \ @@ -835,9 +834,6 @@ _generic_libs+= kerberos5/lib .endif -.if !defined(NOLIBPTHREAD) -_prebuild_libs+= lib/libc -.endif _prebuild_libs+= lib/libcom_err lib/libcrypt lib/libexpat \ lib/libkvm lib/libmd \ lib/libncurses lib/libopie lib/libpam lib/libradius \ ==== //depot/projects/ia64/UPDATING#51 (text+ko) ==== @@ -17,6 +17,12 @@ developers choose to disable these features on build machines to maximize performance. +20030915: + A change to /etc/defaults/rc.conf now causes inetd to be started + with `-C 60' if it is not overridden in /etc/rc.conf. This + causes inetd to stop accepting connections from an IP address + that exceeds the rate of 60 connections per minute. + 20030829: The following rc.d scripts have been removed and should be deleted from your installation: atm2.sh atm3.sh devdb @@ -1356,4 +1362,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.265 2003/08/29 13:25:08 mtm Exp $ +$FreeBSD: src/UPDATING,v 1.266 2003/09/15 17:20:05 nectar Exp $ ==== //depot/projects/ia64/bin/df/df.c#16 (text+ko) ==== @@ -48,7 +48,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/df/df.c,v 1.50 2003/06/03 11:54:42 bde Exp $"); +__FBSDID("$FreeBSD: src/bin/df/df.c,v 1.51 2003/09/13 20:46:58 obrien Exp $"); #include #include @@ -122,10 +122,10 @@ static char *getmntpt(const char *); static size_t longwidth(long); static char *makenetvfslist(void); -static void prthuman(const struct statfs *, long); +static void prthuman(const struct statfs *, size_t); static void prthumanval(double); static void prtstat(struct statfs *, struct maxwidths *); -static long regetmntinfo(struct statfs **, long, const char **); +static size_t regetmntinfo(struct statfs **, long, const char **); static unit_t unit_adjust(double *); static void update_maxwidths(struct maxwidths *, const struct statfs *); static void usage(void); @@ -148,8 +148,8 @@ const char *fstype; char *mntpath, *mntpt; const char **vfslist; - long mntsize; - int ch, i, rv; + size_t i, mntsize; + int ch, rv; fstype = "ufs"; @@ -305,7 +305,7 @@ static char * getmntpt(const char *name) { - long mntsize, i; + size_t mntsize, i; struct statfs *mntbuf; mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); @@ -321,7 +321,7 @@ * file system types not in vfslist and possibly re-stating to get * current (not cached) info. Returns the new count of valid statfs bufs. */ -static long +static size_t regetmntinfo(struct statfs **mntbufp, long mntsize, const char **vfslist) { int i, j; @@ -371,7 +371,7 @@ } static void -prthuman(const struct statfs *sfsp, long used) +prthuman(const struct statfs *sfsp, size_t used) { prthumanval((double)sfsp->f_blocks * (double)sfsp->f_bsize); @@ -411,7 +411,7 @@ static long blocksize; static int headerlen, timesthrough = 0; static const char *header; - long used, availblks, inodes; + size_t used, availblks, inodes; if (++timesthrough == 1) { mwp->mntfrom = max(mwp->mntfrom, strlen("Filesystem")); @@ -456,8 +456,8 @@ if (iflag) { inodes = sfsp->f_files; used = inodes - sfsp->f_ffree; - (void)printf(" %*ld %*ld %4.0f%% ", - (u_int)mwp->iused, used, + (void)printf(" %*lu %*lu %4.0f%% ", + (u_int)mwp->iused, (u_long)used, (u_int)mwp->ifree, sfsp->f_ffree, inodes == 0 ? 100.0 : (double)used / (double)inodes * 100.0); } else ==== //depot/projects/ia64/contrib/isc-dhcp/client/scripts/freebsd#7 (text+ko) ==== @@ -2,7 +2,7 @@ # # $Id: freebsd,v 1.13.2.5 2003/04/27 19:44:01 dhankins Exp $ # -# $FreeBSD: src/contrib/isc-dhcp/client/scripts/freebsd,v 1.24 2003/09/09 16:19:46 mbr Exp $ +# $FreeBSD: src/contrib/isc-dhcp/client/scripts/freebsd,v 1.26 2003/09/15 15:48:12 mbr Exp $ if [ -x /usr/bin/logger ]; then LOGGER="/usr/bin/logger -s -p user.notice -t dhclient" @@ -66,6 +66,15 @@ alias_subnet_arg="netmask $alias_subnet_mask" fi +# Get the interface to which our default route is bound to. +if [ -x /usr/bin/netstat ]; then + if_defaultroute=`/usr/bin/netstat -rn \ + | /usr/bin/grep "^default" \ + | /usr/bin/awk '{print $6}'` +else + if_defaultroute="x" +fi + if [ x$reason = xMEDIUM ]; then eval "ifconfig $interface $medium" eval "ifconfig $interface inet -alias 0.0.0.0 $medium" >/dev/null 2>&1 @@ -161,7 +170,9 @@ eval "ifconfig $interface inet -alias $old_ip_address $medium" route delete $old_ip_address 127.1 >/dev/null 2>&1 for router in $old_routers; do - route delete default $router >/dev/null 2>&1 + if [ $if_defaultroute = x ] || [ $if_defaultroute = $interface ]; then + route delete default $router >/dev/null 2>&1 + fi done if [ -n "$old_static_routes" ]; then set -- $old_static_routes ==== //depot/projects/ia64/etc/defaults/rc.conf#41 (text+ko) ==== @@ -13,7 +13,7 @@ # # All arguments must be in double or single quotes. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.187 2003/08/24 06:29:32 mtm Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.188 2003/09/15 16:44:24 nectar Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -130,7 +130,7 @@ #syslogd_flags="-ss" # Syslogd flags to not bind an inet socket inetd_enable="NO" # Run the network daemon dispatcher (YES/NO). inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one. -inetd_flags="-wW" # Optional flags to inetd +inetd_flags="-wW -C 60" # Optional flags to inetd # # named. It may be possible to run named in a sandbox, man security for # details. ==== //depot/projects/ia64/etc/pccard_ether#11 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh - # -# $FreeBSD: src/etc/pccard_ether,v 1.37 2003/08/12 22:44:48 mbr Exp $ +# $FreeBSD: src/etc/pccard_ether,v 1.38 2003/09/15 18:27:38 mbr Exp $ # # pccard_ether interfacename [start|stop] [ifconfig option] # @@ -65,7 +65,7 @@ else return fi - kill `cat ${pidfile}` + /sbin/dhclient -r ${interface} rm -f ${pidfile} case ${startstop} in [Ss][Tt][Oo][Pp]) ==== //depot/projects/ia64/lib/libc/net/getaddrinfo.3#6 (text+ko) ==== @@ -32,7 +32,7 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)gethostbyname.3 8.4 (Berkeley) 5/25/95 -.\" $FreeBSD: src/lib/libc/net/getaddrinfo.3,v 1.21 2003/09/08 19:57:14 ru Exp $ +.\" $FreeBSD: src/lib/libc/net/getaddrinfo.3,v 1.22 2003/09/15 04:52:15 ume Exp $ .\" .Dd May 25, 1995 .Dt GETADDRINFO 3 @@ -625,6 +625,10 @@ (RFC2553). .\" .Sh BUGS -The current implementation is not thread-safe. +Though the current implementation should be thread-safe, using +.Fn getaddrinfo +in conjunction with +.Fn gethostby* +breaks thread-safeness. .Pp The text was shamelessly copied from RFC2553. ==== //depot/projects/ia64/lib/libc/net/getnameinfo.3#5 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $FreeBSD: src/lib/libc/net/getnameinfo.3,v 1.14 2003/09/08 19:57:14 ru Exp $ +.\" $FreeBSD: src/lib/libc/net/getnameinfo.3,v 1.15 2003/09/15 04:52:15 ume Exp $ .\" $KAME: getnameinfo.3,v 1.17 2000/08/09 21:16:17 itojun Exp $ .\" .\" Copyright (c) 1983, 1987, 1991, 1993 @@ -301,7 +301,11 @@ (RFC2553). .\" .Sh BUGS -The current implementation is not thread-safe. +Though the current implementation should be thread-safe, using +.Fn getnameinfo +in conjunction with +.Fn gethostby* +breaks thread-safeness. .Pp The text was shamelessly copied from RFC2553. .Pp ==== //depot/projects/ia64/lib/libc/rpc/rpc_clnt_create.3#7 (text+ko) ==== @@ -3,7 +3,7 @@ .\" @(#)rpc_clnt_create 1.5 89/07/24 SMI; .\" Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved. .\" $NetBSD: rpc_clnt_create.3,v 1.2 2000/06/20 00:53:08 fvdl Exp $ -.\" $FreeBSD: src/lib/libc/rpc/rpc_clnt_create.3,v 1.11 2002/12/19 09:40:23 ru Exp $ +.\" $FreeBSD: src/lib/libc/rpc/rpc_clnt_create.3,v 1.12 2003/09/14 13:41:56 ru Exp $ .Dd May 7, 1993 .Dt RPC_CLNT_CREATE 3 .Os @@ -459,7 +459,7 @@ has the extra argument .Fa timeout which specifies the maximum time allowed for -for the creation attempt to succeed. +the creation attempt to succeed. In all other respects, the .Fn clnt_tp_create_timed call behaves exactly like the ==== //depot/projects/ia64/lib/libc/stdlib/exit.3#5 (text+ko) ==== @@ -34,7 +34,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)exit.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdlib/exit.3,v 1.13 2002/12/13 16:53:50 ru Exp $ +.\" $FreeBSD: src/lib/libc/stdlib/exit.3,v 1.14 2003/09/14 13:41:57 ru Exp $ .\" .Dd September 9, 2002 .Dt EXIT 3 @@ -97,7 +97,7 @@ .Fa status . Cooperating processes may use other values; in a program which might be called by a mail transfer agent, the -the values described in +values described in .Xr sysexits 3 may be used to provide more information to the parent process. .Pp ==== //depot/projects/ia64/lib/libc/stdlib/grantpt.3#3 (text+ko) ==== @@ -29,7 +29,7 @@ .\" 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/libc/stdlib/grantpt.3,v 1.2 2003/06/01 19:19:59 ru Exp $ +.\" $FreeBSD: src/lib/libc/stdlib/grantpt.3,v 1.3 2003/09/14 13:41:57 ru Exp $ .\" .Dd December 23, 2002 .Os @@ -166,7 +166,7 @@ .Bl -tag -width Er .It Bq Er EINVAL .Fa mode -consists an an invalid mode bit. +consists of an invalid mode bit. .It Bq Er EAGAIN The system has no available pseudo-terminal devices. .El ==== //depot/projects/ia64/lib/libc_r/man/pthread_condattr.3#3 (text+ko) ==== @@ -25,7 +25,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/libc_r/man/pthread_condattr.3,v 1.10 2003/03/24 16:05:24 charnier Exp $ +.\" $FreeBSD: src/lib/libc_r/man/pthread_condattr.3,v 1.11 2003/09/14 13:41:57 ru Exp $ .Dd April 28, 2000 .Dt PTHREAD_CONDATTR 3 .Os @@ -46,7 +46,7 @@ .Fn pthread_cond_init . .Fx Ns 's implementation of conditions does not support any non-default -attributes, so these functions are not very useful, though they are required to +attributes, so these functions are not very useful, though they are required to be present by .Tn POSIX . .Pp ==== //depot/projects/ia64/lib/libpthread/man/pthread_condattr.3#3 (text+ko) ==== @@ -25,7 +25,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/libpthread/man/pthread_condattr.3,v 1.11 2003/06/08 10:40:44 charnier Exp $ +.\" $FreeBSD: src/lib/libpthread/man/pthread_condattr.3,v 1.12 2003/09/14 13:41:57 ru Exp $ .Dd April 28, 2000 .Dt PTHREAD_CONDATTR 3 .Os @@ -46,7 +46,7 @@ .Fn pthread_cond_init . .Fx Ns 's implementation of conditions does not support any non-default -attributes, so these functions are not very useful, though they are required to +attributes, so these functions are not very useful, though they are required to be present by .Tn POSIX . .Pp ==== //depot/projects/ia64/lib/libpthread/thread/thr_attr_setguardsize.c#3 (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/libpthread/thread/thr_attr_setguardsize.c,v 1.5 2003/04/18 05:04:15 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_attr_setguardsize.c,v 1.6 2003/09/14 22:39:44 davidxu Exp $ */ #include @@ -45,14 +45,6 @@ if (attr == NULL || *attr == NULL) ret = EINVAL; else { - /* - * Round guardsize up to the nearest multiple of - * _thr_page_size. - */ - if (guardsize % _thr_page_size != 0) - guardsize = ((guardsize / _thr_page_size) + 1) * - _thr_page_size; - /* Save the stack size. */ (*attr)->guardsize_attr = guardsize; ret = 0; ==== //depot/projects/ia64/lib/libpthread/thread/thr_attr_setinheritsched.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_attr_setinheritsched.c,v 1.6 2002/09/16 08:45:34 mini Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_attr_setinheritsched.c,v 1.7 2003/09/14 22:28:13 davidxu Exp $ */ #include #include @@ -44,6 +44,9 @@ if ((attr == NULL) || (*attr == NULL)) ret = EINVAL; + else if (sched_inherit != PTHREAD_INHERIT_SCHED && + sched_inherit != PTHREAD_EXPLICIT_SCHED) + ret = ENOTSUP; else (*attr)->sched_inherit = sched_inherit; ==== //depot/projects/ia64/lib/libpthread/thread/thr_attr_setscope.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_attr_setscope.c,v 1.9 2003/04/18 05:04:15 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_attr_setscope.c,v 1.10 2003/09/14 22:32:28 davidxu Exp $ */ #include #include @@ -48,8 +48,10 @@ } else if ((contentionscope != PTHREAD_SCOPE_PROCESS) && (contentionscope != PTHREAD_SCOPE_SYSTEM)) { ret = EINVAL; - } else + } else if (contentionscope == PTHREAD_SCOPE_SYSTEM) { (*attr)->flags |= contentionscope; - + } else { + (*attr)->flags &= ~PTHREAD_SCOPE_SYSTEM; + } return (ret); } ==== //depot/projects/ia64/lib/libpthread/thread/thr_cond.c#17 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.49 2003/09/04 07:46:26 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.50 2003/09/14 22:33:32 davidxu Exp $ */ #include #include @@ -116,7 +116,7 @@ * structure: */ TAILQ_INIT(&pcond->c_queue); - pcond->c_flags |= COND_FLAGS_INITED; + pcond->c_flags = COND_FLAGS_INITED; pcond->c_type = type; pcond->c_mutex = NULL; pcond->c_seqno = 0; ==== //depot/projects/ia64/lib/libpthread/thread/thr_create.c#14 (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/libpthread/thread/thr_create.c,v 1.50 2003/08/06 00:23:40 marcel Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_create.c,v 1.51 2003/09/14 22:52:16 davidxu Exp $ */ #include #include @@ -99,7 +99,6 @@ struct kse *kse = NULL; struct kse_group *kseg = NULL; kse_critical_t crit; - int i; int ret = 0; if (_thr_initial == NULL) @@ -127,8 +126,20 @@ if (attr == NULL || *attr == NULL) /* Use the default thread attributes: */ new_thread->attr = _pthread_attr_default; - else + else { new_thread->attr = *(*attr); + if ((*attr)->sched_inherit == PTHREAD_INHERIT_SCHED) { + /* inherit scheduling contention scop */ + if (curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) + new_thread->attr.flags |= PTHREAD_SCOPE_SYSTEM; + else + new_thread->attr.flags &= ~PTHREAD_SCOPE_SYSTEM; + /* + * scheduling policy and scheduling parameters will be + * inherited in following code. + */ + } + } #ifdef SYSTEM_SCOPE_ONLY new_thread->attr.flags |= PTHREAD_SCOPE_SYSTEM; #endif @@ -199,7 +210,7 @@ * Check if this thread is to inherit the scheduling * attributes from its parent: */ - if ((new_thread->attr.flags & PTHREAD_INHERIT_SCHED) != 0) { + if (new_thread->attr.sched_inherit == PTHREAD_INHERIT_SCHED) { /* * Copy the scheduling attributes. * Lock the scheduling lock to get consistent @@ -230,26 +241,17 @@ /* Initialize the mutex queue: */ TAILQ_INIT(&new_thread->mutexq); - /* - * Initialize thread locking. - * Lock initializing needs malloc, so don't - * enter critical region before doing this! - */ - if (_lock_init(&new_thread->lock, LCK_ADAPTIVE, - _thr_lock_wait, _thr_lock_wakeup) != 0) - PANIC("Cannot initialize thread lock"); - for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { - _lockuser_init(&new_thread->lockusers[i], - (void *)new_thread); - _LCK_SET_PRIVATE2(&new_thread->lockusers[i], - (void *)new_thread); - } - /* Initialise hooks in the thread structure: */ new_thread->specific = NULL; + new_thread->specific_data_count = 0; new_thread->cleanup = NULL; new_thread->flags = 0; new_thread->continuation = NULL; + new_thread->wakeup_time.tv_sec = -1; + new_thread->lock_switch = 0; + sigemptyset(&new_thread->sigpend); + new_thread->check_pending = 0; + new_thread->locklevel = 0; if (new_thread->attr.suspend == THR_CREATE_SUSPENDED) { new_thread->state = PS_SUSPENDED; ==== //depot/projects/ia64/lib/libpthread/thread/thr_exit.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_exit.c,v 1.34 2003/08/18 04:03:08 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_exit.c,v 1.35 2003/09/14 22:52:16 davidxu Exp $ */ #include #include @@ -86,9 +86,9 @@ _pthread_exit(void *status) { struct pthread *curthread = _get_curthread(); + kse_critical_t crit; + struct kse *curkse; - if (!_kse_isthreaded()) - exit(0); /* Check if this thread is already in the process of exiting: */ if ((curthread->flags & THR_FLAGS_EXITING) != 0) { char msg[128]; @@ -119,9 +119,27 @@ /* Run the thread-specific data destructors: */ _thread_cleanupspecific(); } + if (!_kse_isthreaded()) + exit(0); + crit = _kse_critical_enter(); + curkse = _get_curkse(); + KSE_LOCK_ACQUIRE(curkse, &_thread_list_lock); + /* Use thread_list_lock */ + _thr_active_threads--; +#ifdef SYSTEM_SCOPE_ONLY + if (_thr_active_threads == 0) { +#else + if (_thr_active_threads == 1) { +#endif + KSE_LOCK_RELEASE(curkse, &_thread_list_lock); + _kse_critical_leave(crit); + exit(0); + /* Never reach! */ + } + KSE_LOCK_RELEASE(curkse, &_thread_list_lock); /* This thread will never be re-scheduled. */ - THR_LOCK_SWITCH(curthread); + KSE_LOCK(curkse); THR_SET_STATE(curthread, PS_DEAD); _thr_sched_switch_unlocked(curthread); /* Never reach! */ ==== //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#34 (text+ko) ==== @@ -33,7 +33,7 @@ * */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.93 2003/09/04 14:06:42 davidxu Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.94 2003/09/14 22:52:16 davidxu Exp $"); #include #include @@ -121,7 +121,6 @@ static struct lock thread_lock; static int free_thread_count = 0; static int inited = 0; -static int active_threads = 1; static int active_kse_count = 0; static int active_kseg_count = 0; static u_int64_t next_uniqueid = 1; @@ -158,6 +157,7 @@ struct pthread_sigframe *psf); static int thr_timedout(struct pthread *thread, struct timespec *curtime); static void thr_unlink(struct pthread *thread); +static void thr_destroy(struct pthread *thread); static void thread_gc(struct pthread *thread); static void kse_gc(struct pthread *thread); static void kseg_gc(struct pthread *thread); @@ -213,7 +213,7 @@ * dump core. */ sigprocmask(SIG_SETMASK, &curthread->sigmask, NULL); - active_threads = 1; + _thr_active_threads = 1; /* * Enter a loop to remove and free all threads other than @@ -232,11 +232,7 @@ _thr_stack_free(&thread->attr); if (thread->specific != NULL) free(thread->specific); - for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { - _lockuser_destroy(&thread->lockusers[i]); - } - _lock_destroy(&thread->lock); - free(thread); + thr_destroy(thread); } } @@ -253,69 +249,42 @@ /* Free the free KSEs: */ while ((kse = TAILQ_FIRST(&free_kseq)) != NULL) { TAILQ_REMOVE(&free_kseq, kse, k_qe); - for (i = 0; i < MAX_KSE_LOCKLEVEL; i++) { - _lockuser_destroy(&kse->k_lockusers[i]); - } - _lock_destroy(&kse->k_lock); - _kcb_dtor(kse->k_kcb); - if (kse->k_stack.ss_sp != NULL) - free(kse->k_stack.ss_sp); - free(kse); + kse_destroy(kse); } free_kse_count = 0; /* Free the active KSEs: */ while ((kse = TAILQ_FIRST(&active_kseq)) != NULL) { TAILQ_REMOVE(&active_kseq, kse, k_qe); - for (i = 0; i < MAX_KSE_LOCKLEVEL; i++) { - _lockuser_destroy(&kse->k_lockusers[i]); - } - _lock_destroy(&kse->k_lock); - if (kse->k_stack.ss_sp != NULL) - free(kse->k_stack.ss_sp); - free(kse); + kse_destroy(kse); } active_kse_count = 0; /* Free the free KSEGs: */ while ((kseg = TAILQ_FIRST(&free_kse_groupq)) != NULL) { TAILQ_REMOVE(&free_kse_groupq, kseg, kg_qe); - _lock_destroy(&kseg->kg_lock); - _pq_free(&kseg->kg_schedq.sq_runq); - free(kseg); + kseg_destroy(kseg); } free_kseg_count = 0; /* Free the active KSEGs: */ while ((kseg = TAILQ_FIRST(&active_kse_groupq)) != NULL) { TAILQ_REMOVE(&active_kse_groupq, kseg, kg_qe); - _lock_destroy(&kseg->kg_lock); - _pq_free(&kseg->kg_schedq.sq_runq); - free(kseg); + kseg_destroy(kseg); } active_kseg_count = 0; /* Free the free threads. */ while ((thread = TAILQ_FIRST(&free_threadq)) != NULL) { TAILQ_REMOVE(&free_threadq, thread, tle); - if (thread->specific != NULL) - free(thread->specific); - for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { - _lockuser_destroy(&thread->lockusers[i]); - } - _lock_destroy(&thread->lock); - free(thread); + thr_destroy(thread); } free_thread_count = 0; /* Free the to-be-gc'd threads. */ while ((thread = TAILQ_FIRST(&_thread_gc_list)) != NULL) { TAILQ_REMOVE(&_thread_gc_list, thread, gcle); - for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { - _lockuser_destroy(&thread->lockusers[i]); - } - _lock_destroy(&thread->lock); - free(thread); + thr_destroy(thread); } TAILQ_INIT(&gc_ksegq); _gc_count = 0; @@ -361,7 +330,7 @@ */ sigprocmask(SIG_SETMASK, &curthread->sigmask, NULL); curthread->kse->k_kcb->kcb_kmbx.km_curthread = NULL; - active_threads = 1; + _thr_active_threads = 1; #endif } @@ -1247,19 +1216,6 @@ KSE_SCHED_UNLOCK(curkse, curkse->k_kseg); DBG_MSG("Adding thread %p to GC list\n", thread); KSE_LOCK_ACQUIRE(curkse, &_thread_list_lock); - /* Use thread_list_lock */ - active_threads--; -#ifdef SYSTEM_SCOPE_ONLY - if (active_threads == 0) { -#else - if (active_threads == 1) { -#endif - KSE_LOCK_RELEASE(curkse, &_thread_list_lock); - /* Possible use a signalcontext wrapper to call exit ? */ - curkse->k_curthread = thread; - _tcb_set(curkse->k_kcb, thread->tcb); - exit(0); - } THR_GCLIST_ADD(thread); KSE_LOCK_RELEASE(curkse, &_thread_list_lock); if (sys_scope) { @@ -2347,8 +2303,9 @@ struct pthread * _thr_alloc(struct pthread *curthread) { - kse_critical_t crit; - struct pthread *thread = NULL; + kse_critical_t crit; + struct pthread *thread = NULL; + int i; if (curthread != NULL) { if (GC_NEEDED()) @@ -2370,6 +2327,21 @@ if ((thread->tcb = _tcb_ctor(thread)) == NULL) { free(thread); thread = NULL; + } else { + /* + * Initialize thread locking. + * Lock initializing needs malloc, so don't + * enter critical region before doing this! + */ + if (_lock_init(&thread->lock, LCK_ADAPTIVE, + _thr_lock_wait, _thr_lock_wakeup) != 0) + PANIC("Cannot initialize thread lock"); + for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { + _lockuser_init(&thread->lockusers[i], + (void *)thread); + _LCK_SET_PRIVATE2(&thread->lockusers[i], + (void *)thread); + } } } return (thread); @@ -2379,23 +2351,11 @@ _thr_free(struct pthread *curthread, struct pthread *thread) { kse_critical_t crit; - int i; DBG_MSG("Freeing thread %p\n", thread); if ((curthread == NULL) || (free_thread_count >= MAX_CACHED_THREADS)) { - for (i = 0; i < MAX_THR_LOCKLEVEL; i++) { - _lockuser_destroy(&thread->lockusers[i]); - } - _lock_destroy(&thread->lock); - _tcb_dtor(thread->tcb); - free(thread); - } - else { - /* Reinitialize any important fields here. */ - thread->lock_switch = 0; - sigemptyset(&thread->sigpend); - thread->check_pending = 0; - + thr_destroy(thread); + } else { /* Add the thread to the free thread list. */ crit = _kse_critical_enter(); KSE_LOCK_ACQUIRE(curthread->kse, &thread_lock); @@ -2406,6 +2366,18 @@ } } +static void +thr_destroy(struct pthread *thread) +{ + int i; + + for (i = 0; i < MAX_THR_LOCKLEVEL; i++) + _lockuser_destroy(&thread->lockusers[i]); + _lock_destroy(&thread->lock); + _tcb_dtor(thread->tcb); + free(thread); +} + /* * Add an active thread: * @@ -2424,7 +2396,6 @@ crit = _kse_critical_enter(); curkse = _get_curkse(); curthread = _get_curthread(); - thread->sigmask = curthread->sigmask; KSE_LOCK_ACQUIRE(curkse, &_thread_list_lock); /* * Initialize the unique id (which GDB uses to track @@ -2433,7 +2404,7 @@ */ thread->uniqueid = next_uniqueid++; THR_LIST_ADD(thread); - active_threads++; + _thr_active_threads++; KSE_LOCK_RELEASE(curkse, &_thread_list_lock); _kse_critical_leave(crit); } @@ -2451,7 +2422,7 @@ curkse = _get_curkse(); KSE_LOCK_ACQUIRE(curkse, &_thread_list_lock); THR_LIST_REMOVE(thread); - active_threads--; + _thr_active_threads--; KSE_LOCK_RELEASE(curkse, &_thread_list_lock); _kse_critical_leave(crit); } ==== //depot/projects/ia64/lib/libpthread/thread/thr_private.h#24 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.101 2003/09/09 22:38:12 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.102 2003/09/14 22:52:16 davidxu Exp $ */ #ifndef _THR_PRIVATE_H @@ -994,6 +994,8 @@ SCLASS TAILQ_HEAD(, pthread) _thread_gc_list SCLASS_PRESET(TAILQ_HEAD_INITIALIZER(_thread_gc_list)); +SCLASS int _thr_active_threads SCLASS_PRESET(1); + /* Default thread attributes: */ SCLASS struct pthread_attr _pthread_attr_default SCLASS_PRESET({ ==== //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#24 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.70 2003/08/21 22:02:18 davidxu Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Sep 15 16:32:29 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA90316A4C0; Mon, 15 Sep 2003 16:32:28 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8E5C116A4B3 for ; Mon, 15 Sep 2003 16:32:28 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2E99043F3F for ; Mon, 15 Sep 2003 16:32:27 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8FNWR0U098289 for ; Mon, 15 Sep 2003 16:32:27 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8FNWQ9r098286 for perforce@freebsd.org; Mon, 15 Sep 2003 16:32:26 -0700 (PDT) Date: Mon, 15 Sep 2003 16:32:26 -0700 (PDT) Message-Id: <200309152332.h8FNWQ9r098286@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38101 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2003 23:32:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=38101 Change 38101 by marcel@marcel_nfs on 2003/09/15 16:32:13 IFC @38099 Affected files ... .. //depot/projects/uart/amd64/amd64/pmap.c#16 integrate .. //depot/projects/uart/amd64/conf/GENERIC#4 integrate .. //depot/projects/uart/boot/forth/beastie.4th#2 integrate .. //depot/projects/uart/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/uart/coda/coda_vfsops.c#3 integrate .. //depot/projects/uart/conf/files#24 integrate .. //depot/projects/uart/dev/acpica/acpi.c#10 integrate .. //depot/projects/uart/dev/acpica/acpi_acad.c#4 integrate .. //depot/projects/uart/dev/acpica/acpi_cmbat.c#5 integrate .. //depot/projects/uart/dev/acpica/acpi_ec.c#9 integrate .. //depot/projects/uart/dev/acpica/acpiio.h#4 integrate .. //depot/projects/uart/dev/ath/if_ath.c#10 integrate .. //depot/projects/uart/dev/ath/if_athvar.h#6 integrate .. //depot/projects/uart/dev/isp/isp.c#4 integrate .. //depot/projects/uart/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/uart/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/uart/dev/isp/isp_inline.h#2 integrate .. //depot/projects/uart/dev/isp/isp_target.c#2 integrate .. //depot/projects/uart/dev/isp/isp_target.h#2 integrate .. //depot/projects/uart/dev/isp/isp_tpublic.h#2 integrate .. //depot/projects/uart/dev/isp/ispvar.h#2 integrate .. //depot/projects/uart/dev/pci/pci.c#10 integrate .. //depot/projects/uart/dev/pci/pcireg.h#6 integrate .. //depot/projects/uart/dev/pci/pcivar.h#3 integrate .. //depot/projects/uart/dev/re/if_re.c#3 integrate .. //depot/projects/uart/dev/sio/sio.c#6 integrate .. //depot/projects/uart/dev/sound/pci/ich.c#9 integrate .. //depot/projects/uart/dev/uart/uart_bus_pccard.c#1 branch .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#28 integrate .. //depot/projects/uart/i386/i386/pmap.c#17 integrate .. //depot/projects/uart/kern/kern_prot.c#4 integrate .. //depot/projects/uart/kern/kern_xxx.c#3 integrate .. //depot/projects/uart/kern/vfs_bio.c#6 integrate .. //depot/projects/uart/modules/uart/Makefile#8 integrate .. //depot/projects/uart/net/if_iso88025subr.c#2 integrate .. //depot/projects/uart/net80211/ieee80211.c#5 integrate .. //depot/projects/uart/net80211/ieee80211.h#2 integrate .. //depot/projects/uart/net80211/ieee80211_input.c#5 integrate .. //depot/projects/uart/net80211/ieee80211_ioctl.c#4 integrate .. //depot/projects/uart/net80211/ieee80211_node.c#6 integrate .. //depot/projects/uart/net80211/ieee80211_output.c#5 integrate .. //depot/projects/uart/net80211/ieee80211_var.h#4 integrate .. //depot/projects/uart/netinet6/in6_ifattach.c#2 integrate .. //depot/projects/uart/netinet6/nd6.c#3 integrate .. //depot/projects/uart/netinet6/nd6_nbr.c#2 integrate .. //depot/projects/uart/pc98/pc98/fd.c#4 integrate .. //depot/projects/uart/pci/if_rlreg.h#8 integrate .. //depot/projects/uart/pci/if_xl.c#8 integrate .. //depot/projects/uart/pci/if_xlreg.h#3 integrate .. //depot/projects/uart/posix4/ksched.c#2 integrate .. //depot/projects/uart/vm/vm_kern.c#6 integrate .. //depot/projects/uart/vm/vm_object.c#5 integrate Differences ... ==== //depot/projects/uart/amd64/amd64/pmap.c#16 (text+ko) ==== @@ -73,7 +73,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.436 2003/09/12 07:07:48 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.437 2003/09/13 21:57:38 alc Exp $"); /* * Manages physical address maps. @@ -986,10 +986,6 @@ if (va >= VM_MAXUSER_ADDRESS) return 0; - if (mpte == NULL) { - mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); - } - return pmap_unwire_pte_hold(pmap, va, mpte); } @@ -1467,7 +1463,7 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) { pt_entry_t oldpte; - vm_page_t m; + vm_page_t m, mpte; oldpte = pte_load_clear(ptq); if (oldpte & PG_W) @@ -1496,10 +1492,9 @@ vm_page_flag_set(m, PG_REFERENCED); return pmap_remove_entry(pmap, m, va); } else { - return pmap_unuse_pt(pmap, va, NULL); + mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); + return pmap_unuse_pt(pmap, va, mpte); } - - return 0; } /* ==== //depot/projects/uart/amd64/conf/GENERIC#4 (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.394 2003/09/10 18:54:58 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.395 2003/09/15 22:40:00 obrien Exp $ machine amd64 cpu HAMMER @@ -249,3 +249,5 @@ device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) + +device pcm # Sound ==== //depot/projects/uart/boot/forth/beastie.4th#2 (text+ko) ==== @@ -1,4 +1,5 @@ \ Copyright (c) 2003 Scott Long +\ Copyright (c) 2003 Aleksander Fafula \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -22,7 +23,7 @@ \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ -\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.4 2003/06/10 22:04:09 scottl Exp $ +\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.5 2003/09/13 18:35:01 scottl Exp $ marker task-beastie.4th @@ -48,7 +49,29 @@ 46 constant dot \ The BSD Daemon. He is 19 rows high and 34 columns wide -: print-beastie ( x y -- ) +: technicolor-beastie ( x y -- ) +2dup at-xy ." , ," 1+ +2dup at-xy ." /( )`" 1+ +2dup at-xy ." \ \___ / |" 1+ +2dup at-xy ." /- _ `-/ '" 1+ +2dup at-xy ." (/\/ \ \ /\" 1+ +2dup at-xy ." / / | ` \" 1+ +2dup at-xy ." O O ) / |" 1+ +2dup at-xy ." `-^--'`< '" 1+ +2dup at-xy ." (_.) _ ) /" 1+ +2dup at-xy ." `.___/` / " 1+ +2dup at-xy ." `-----' /" 1+ +2dup at-xy ." <----. __ / __ \" 1+ +2dup at-xy ." <----|====O)))==) \) /====|" 1+ +2dup at-xy ." <----' `--' `.__,' \" 1+ +2dup at-xy ." | |" 1+ +2dup at-xy ." \ / /\" 1+ +2dup at-xy ." ______( (_ / \______/" 1+ +2dup at-xy ." ,' ,-----' |" 1+ +at-xy ." `--{__________) " 1+ +; + +: boring-beastie ( x y -- ) 2dup at-xy ." , ," 1+ 2dup at-xy ." /( )`" 1+ 2dup at-xy ." \ \___ / |" 1+ @@ -70,6 +93,20 @@ at-xy ." `--{__________)" ; +: print-beastie ( x y -- ) + s" loader_color" getenv + dup -1 = if + drop + boring-beastie + exit + then + s" YES" compare-insensitive 0<> if + boring-beastie + exit + then + technicolor-beastie +; + : acpienabled? ( -- flag ) s" acpi_load" getenv dup -1 = if ==== //depot/projects/uart/cam/scsi/scsi_sa.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.96 2003/06/10 18:14:05 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.97 2003/09/13 02:01:56 mjacob Exp $"); #include #include @@ -2765,8 +2765,10 @@ /* set the speed to the current value */ mode_hdr->dev_spec = current_speed; - /* set single-initiator buffering mode */ - mode_hdr->dev_spec |= SMH_SA_BUF_MODE_SIBUF; + /* if set, set single-initiator buffering mode */ + if (softc->buffer_mode == SMH_SA_BUF_MODE_SIBUF) { + mode_hdr->dev_spec |= SMH_SA_BUF_MODE_SIBUF; + } if (mode_blk) mode_hdr->blk_desc_len = sizeof(struct scsi_mode_blk_desc); ==== //depot/projects/uart/coda/coda_vfsops.c#3 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/coda/coda_vfsops.c,v 1.46 2003/09/07 07:43:09 tjr Exp $"); +__FBSDID("$FreeBSD: src/sys/coda/coda_vfsops.c,v 1.47 2003/09/13 01:13:56 tjr Exp $"); #include @@ -253,7 +253,9 @@ ASSERT_VOP_LOCKED(mi->mi_rootvp, "coda_unmount"); mi->mi_rootvp->v_vflag &= ~VV_ROOT; error = vflush(mi->mi_vfsp, 0, FORCECLOSE); +#ifdef CODA_VERBOSE printf("coda_unmount: active = %d, vflush active %d\n", active, error); +#endif error = 0; /* I'm going to take this out to allow lookups to go through. I'm * not sure it's important anyway. -- DCS 2/2/94 ==== //depot/projects/uart/conf/files#24 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.824 2003/09/11 03:53:46 wpaul Exp $ +# $FreeBSD: src/sys/conf/files,v 1.825 2003/09/14 17:02:59 takawata Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -790,6 +790,7 @@ dev/uart/uart_bus_ebus.c optional uart ebus dev/uart/uart_bus_isa.c optional uart isa #dev/uart/uart_bus_cbus.c optional uart cbus +dev/uart/uart_bus_pccard.c optional uart pccard dev/uart/uart_bus_pci.c optional uart cardbus dev/uart/uart_bus_pci.c optional uart pci dev/uart/uart_bus_puc.c optional uart puc ==== //depot/projects/uart/dev/acpica/acpi.c#10 (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/dev/acpica/acpi.c,v 1.99 2003/09/09 04:09:25 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.100 2003/09/15 06:29:31 njl Exp $ */ #include "opt_acpi.h" @@ -431,7 +431,6 @@ */ sc->acpi_sleep_delay = 5; sc->acpi_disable_on_poweroff = 1; - sc->acpi_s4bios = 1; if (bootverbose) sc->acpi_verbose = 1; if ((env = getenv("hw.acpi.verbose")) && strcmp(env, "0")) { @@ -439,6 +438,10 @@ freeenv(env); } + /* Only enable S4BIOS by default if the FACS says it is available. */ + if (AcpiGbl_FACS->S4Bios_f != 0) + sc->acpi_s4bios = 1; + /* * Dispatch the default sleep state to devices. * TBD: should be configured from userland policy manager. @@ -1980,10 +1983,12 @@ break; } state = *(int *)addr; - if (state >= ACPI_STATE_S0 && state <= ACPI_S_STATES_MAX) - acpi_SetSleepState(sc, state); - else + if (state >= ACPI_STATE_S0 && state <= ACPI_S_STATES_MAX) { + if (ACPI_FAILURE(acpi_SetSleepState(sc, state))) + error = EINVAL; + } else { error = EINVAL; + } break; default: if (error == 0) ==== //depot/projects/uart/dev/acpica/acpi_acad.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/sys/dev/acpica/acpi_acad.c,v 1.17 2003/08/15 06:33:11 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.18 2003/09/14 17:47:44 njl Exp $ */ #include "opt_acpi.h" @@ -117,7 +117,7 @@ device_t dev = context; ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "Notify %d\n", notify); + "Notify 0x%x\n", notify); switch (notify) { case ACPI_DEVICE_CHECK_PNP: ==== //depot/projects/uart/dev/acpica/acpi_cmbat.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.23 2003/09/11 03:17:33 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.24 2003/09/13 20:13:01 njl Exp $ */ #include "opt_acpi.h" @@ -264,7 +264,7 @@ goto end; } - PKG_GETINT(res, tmp, 0, sc->bif.unit, end); + PKG_GETINT(res, tmp, 0, sc->bif.units, end); PKG_GETINT(res, tmp, 1, sc->bif.dcap, end); PKG_GETINT(res, tmp, 2, sc->bif.lfcap, end); PKG_GETINT(res, tmp, 3, sc->bif.btech, end); @@ -404,7 +404,7 @@ case ACPIIO_CMBAT_GET_BIF: acpi_cmbat_get_bif(dev); bifp = &ioctl_arg->bif; - bifp->unit = sc->bif.unit; + bifp->units = sc->bif.units; bifp->dcap = sc->bif.dcap; bifp->lfcap = sc->bif.lfcap; bifp->btech = sc->bif.btech; ==== //depot/projects/uart/dev/acpica/acpi_ec.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.39 2003/08/24 17:48:01 obrien Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.40 2003/09/15 21:20:55 njl Exp $ */ /****************************************************************************** * @@ -137,7 +137,7 @@ *****************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.39 2003/08/24 17:48:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.40 2003/09/15 21:20:55 njl Exp $"); #include "opt_acpi.h" #include @@ -283,7 +283,7 @@ #define EC_POLL_DELAY 1 /* Total time in ms spent in the poll loop waiting for a response. */ -#define EC_POLL_TIMEOUT 50 +#define EC_POLL_TIMEOUT 100 #define EVENT_READY(event, status) \ (((event) == EC_EVENT_OUTPUT_BUFFER_FULL && \ ==== //depot/projects/uart/dev/acpica/acpiio.h#4 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpiio.h,v 1.8 2003/08/28 16:06:30 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpiio.h,v 1.9 2003/09/13 20:13:01 njl Exp $ */ /* @@ -50,10 +50,10 @@ #define ACPI_CMBAT_MAXSTRLEN 32 struct acpi_bif { - u_int32_t unit; /* 0 for mWh, 1 for mAh */ + u_int32_t units; /* 0 for mWh, 1 for mAh */ u_int32_t dcap; /* Design Capacity */ u_int32_t lfcap; /* Last Full capacity */ - u_int32_t btech; /* Battery Technorogy */ + u_int32_t btech; /* Battery Technology */ u_int32_t dvol; /* Design voltage (mV) */ u_int32_t wcap; /* WARN capacity */ u_int32_t lcap; /* Low capacity */ ==== //depot/projects/uart/dev/ath/if_ath.c#10 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.14 2003/09/05 22:22:49 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.18 2003/09/15 22:34:46 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -114,6 +114,8 @@ static void ath_node_free(struct ieee80211com *, struct ieee80211_node *); static void ath_node_copy(struct ieee80211com *, struct ieee80211_node *, const struct ieee80211_node *); +static u_int8_t ath_node_getrssi(struct ieee80211com *, + struct ieee80211_node *); static int ath_rxbuf_init(struct ath_softc *, struct ath_buf *); static void ath_rx_proc(void *, int); static int ath_tx_start(struct ath_softc *, struct ieee80211_node *, @@ -279,10 +281,7 @@ ic->ic_phytype = IEEE80211_T_OFDM; ic->ic_opmode = IEEE80211_M_STA; ic->ic_caps = IEEE80211_C_WEP | IEEE80211_C_IBSS | IEEE80211_C_HOSTAP - | IEEE80211_C_MONITOR; - /* NB: 11g support is identified when we fetch the channel set */ - if (sc->sc_have11g) - ic->ic_caps |= IEEE80211_C_SHPREAMBLE; + | IEEE80211_C_MONITOR | IEEE80211_C_SHPREAMBLE; /* get mac address from hardware */ ath_hal_getmac(ah, ic->ic_myaddr); @@ -293,6 +292,7 @@ ic->ic_node_alloc = ath_node_alloc; ic->ic_node_free = ath_node_free; ic->ic_node_copy = ath_node_copy; + ic->ic_node_getrssi = ath_node_getrssi; sc->sc_newstate = ic->ic_newstate; ic->ic_newstate = ath_newstate; /* complete initialization */ @@ -406,6 +406,7 @@ ath_hal_dumpstate(ah); } #endif /* AR_DEBUG */ + status &= sc->sc_imask; /* discard unasked for bits */ if (status & HAL_INT_FATAL) { sc->sc_stats.ast_hardware++; ath_hal_intrset(ah, 0); /* disable intr's until reset */ @@ -765,13 +766,6 @@ } } - /* - * TODO: - * The duration field of 802.11 header should be filled. - * XXX This may be done in the ieee80211 layer, but the upper - * doesn't know the detail of parameters such as IFS - * for now.. - */ if (ath_tx_start(sc, ni, bf, m)) { bad: mtx_lock(&sc->sc_txbuflock); @@ -931,7 +925,8 @@ if (ic->ic_opmode != IEEE80211_M_HOSTAP && (ifp->if_flags & IFF_PROMISC)) rfilt |= HAL_RX_FILTER_PROM; - if (ic->ic_state == IEEE80211_S_SCAN) + if (ic->ic_opmode == IEEE80211_M_STA || + ic->ic_state == IEEE80211_S_SCAN) rfilt |= HAL_RX_FILTER_BEACON; ath_hal_setrxfilter(ah, rfilt); @@ -1045,7 +1040,8 @@ capinfo = IEEE80211_CAPINFO_ESS; if (ic->ic_flags & IEEE80211_F_WEPON) capinfo |= IEEE80211_CAPINFO_PRIVACY; - if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) + if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && + IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE; if (ic->ic_flags & IEEE80211_F_SHSLOT) capinfo |= IEEE80211_CAPINFO_SHORT_SLOTTIME; @@ -1395,7 +1391,14 @@ { struct ath_node *an = malloc(sizeof(struct ath_node), M_DEVBUF, M_NOWAIT | M_ZERO); - return an ? &an->an_node : NULL; + if (an) { + int i; + for (i = 0; i < ATH_RHIST_SIZE; i++) + an->an_rx_hist[i].arh_ticks = ATH_RHIST_NOTIME; + an->an_rx_hist_next = ATH_RHIST_SIZE-1; + return &an->an_node; + } else + return NULL; } static void @@ -1418,6 +1421,41 @@ *(struct ath_node *)dst = *(const struct ath_node *)src; } + +static u_int8_t +ath_node_getrssi(struct ieee80211com *ic, struct ieee80211_node *ni) +{ + struct ath_node *an = ATH_NODE(ni); + int i, now, nsamples, rssi; + + /* + * Calculate the average over the last second of sampled data. + */ + now = ticks; + nsamples = 0; + rssi = 0; + i = an->an_rx_hist_next; + do { + struct ath_recv_hist *rh = &an->an_rx_hist[i]; + if (rh->arh_ticks == ATH_RHIST_NOTIME) + goto done; + if (now - rh->arh_ticks > hz) + goto done; + rssi += rh->arh_rssi; + nsamples++; + if (i == 0) + i = ATH_RHIST_SIZE-1; + else + i--; + } while (i != an->an_rx_hist_next); +done: + /* + * Return either the average or the last known + * value if there is no recent data. + */ + return (nsamples ? rssi / nsamples : an->an_rx_hist[i].arh_rssi); +} + static int ath_rxbuf_init(struct ath_softc *sc, struct ath_buf *bf) { @@ -1486,6 +1524,8 @@ struct mbuf *m; struct ieee80211_frame *wh, whbuf; struct ieee80211_node *ni; + struct ath_node *an; + struct ath_recv_hist *rh; int len; u_int phyerr; HAL_STATUS status; @@ -1528,7 +1568,7 @@ } len = ds->ds_rxstat.rs_datalen; - if (len < sizeof(struct ieee80211_frame)) { + if (len < IEEE80211_MIN_LEN) { DPRINTF(("ath_rx_proc: short packet %d\n", len)); sc->sc_stats.ast_rx_tooshort++; goto rx_next; @@ -1537,18 +1577,6 @@ bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap, BUS_DMASYNC_POSTREAD); - wh = mtod(m, struct ieee80211_frame *); - if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == - IEEE80211_FC0_TYPE_CTL && - ic->ic_opmode != IEEE80211_M_MONITOR) { - /* - * Discard control frame when not in monitor mode. - */ - DPRINTF(("ath_rx_proc: control frame\n")); - sc->sc_stats.ast_rx_ctl++; - goto rx_next; - } - bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap); bf->bf_m = NULL; m->m_pkthdr.rcvif = ifp; @@ -1579,6 +1607,7 @@ } m_adj(m, -IEEE80211_CRC_LEN); + wh = mtod(m, struct ieee80211_frame *); if (wh->i_fc[1] & IEEE80211_FC1_WEP) { /* * WEP is decrypted by hardware. Clear WEP bit @@ -1607,12 +1636,24 @@ ni = ieee80211_ref_node(ic->ic_bss); } else ni = ieee80211_ref_node(ic->ic_bss); - ATH_NODE(ni)->an_rx_antenna = ds->ds_rxstat.rs_antenna; + + /* + * Record driver-specific state. + */ + an = ATH_NODE(ni); + if (++(an->an_rx_hist_next) == ATH_RHIST_SIZE) + an->an_rx_hist_next = 0; + rh = &an->an_rx_hist[an->an_rx_hist_next]; + rh->arh_ticks = ticks; + rh->arh_rssi = ds->ds_rxstat.rs_rssi; + rh->arh_antenna = ds->ds_rxstat.rs_antenna; + /* * Send frame up for processing. */ ieee80211_input(ifp, m, ni, ds->ds_rxstat.rs_rssi, ds->ds_rxstat.rs_tstamp); + /* * The frame may have caused the node to be marked for * reclamation (e.g. in response to a DEAUTH message) @@ -1797,7 +1838,8 @@ * use short preamble based on the current mode and * negotiated parameters. */ - if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) { + if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && + (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE)) { txrate = rt->info[rix].rateCode | rt->info[rix].shortPreamble; shortPreamble = AH_TRUE; sc->sc_stats.ast_tx_shortpre++; @@ -1819,6 +1861,21 @@ } /* + * Calculate duration. This logically belongs in the 802.11 + * layer but it lacks sufficient information to calculate it. + */ + if ((flags & HAL_TXDESC_NOACK) == 0 && + (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) != IEEE80211_FC0_TYPE_CTL) { + u_int16_t dur; + /* + * XXX not right with fragmentation. + */ + dur = ath_hal_computetxtime(ah, rt, IEEE80211_ACK_SIZE, + rix, shortPreamble); + *((u_int16_t*) wh->i_dur) = htole16(dur); + } + + /* * Calculate RTS/CTS rate and duration if needed. */ ctsduration = 0; @@ -1862,7 +1919,7 @@ if (an->an_tx_antenna) antenna = an->an_tx_antenna; else - antenna = an->an_rx_antenna; + antenna = an->an_rx_hist[an->an_rx_hist_next].arh_antenna; /* * Formulate first tx descriptor with tx controls. @@ -2291,11 +2348,13 @@ if (ic->ic_opmode != IEEE80211_M_HOSTAP && (ifp->if_flags & IFF_PROMISC)) rfilt |= HAL_RX_FILTER_PROM; + if (ic->ic_opmode == IEEE80211_M_STA || + ic->ic_state == IEEE80211_S_SCAN) + rfilt |= HAL_RX_FILTER_BEACON; if (nstate == IEEE80211_S_SCAN) { callout_reset(&sc->sc_scan_ch, (hz * ath_dwelltime) / 1000, ath_next_scan, sc); bssid = ifp->if_broadcastaddr; - rfilt |= HAL_RX_FILTER_BEACON; } else { callout_stop(&sc->sc_scan_ch); bssid = ni->ni_bssid; @@ -2395,7 +2454,6 @@ HAL_CHANNEL *chans; int i, ix, nchan; - sc->sc_have11g = 0; chans = malloc(IEEE80211_CHAN_MAX * sizeof(HAL_CHANNEL), M_TEMP, M_NOWAIT); if (chans == NULL) { @@ -2429,8 +2487,6 @@ /* channels overlap; e.g. 11g and 11b */ ic->ic_channels[ix].ic_flags |= c->channelFlags; } - if ((c->channelFlags & CHANNEL_G) == CHANNEL_G) - sc->sc_have11g = 1; } free(chans, M_TEMP); return 0; ==== //depot/projects/uart/dev/ath/if_athvar.h#6 (text+ko) ==== @@ -33,7 +33,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. * - * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.6 2003/09/05 22:22:49 sam Exp $ + * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.8 2003/09/15 22:34:46 sam Exp $ */ /* @@ -54,6 +54,14 @@ #define ATH_TXBUF 60 /* number of TX buffers */ #define ATH_TXDESC 8 /* number of descriptors per buffer */ +struct ath_recv_hist { + int arh_ticks; /* sample time by system clock */ + u_int8_t arh_rssi; /* rssi */ + u_int8_t arh_antenna; /* antenna */ +}; +#define ATH_RHIST_SIZE 16 /* number of samples */ +#define ATH_RHIST_NOTIME (~0) + /* driver-specific node */ struct ath_node { struct ieee80211_node an_node; /* base class */ @@ -63,6 +71,8 @@ int an_tx_upper; /* tx upper rate req cnt */ u_int an_tx_antenna; /* antenna for last good frame */ u_int an_rx_antenna; /* antenna for last rcvd frame */ + struct ath_recv_hist an_rx_hist[ATH_RHIST_SIZE]; + u_int an_rx_hist_next;/* index of next ``free entry'' */ }; #define ATH_NODE(_n) ((struct ath_node *)(_n)) @@ -90,7 +100,6 @@ struct mtx sc_mtx; /* master lock (recursive) */ struct ath_hal *sc_ah; /* Atheros HAL */ unsigned int sc_invalid : 1,/* disable hardware accesses */ - sc_have11g : 1,/* have 11g support */ sc_doani : 1,/* dynamic noise immunity */ sc_probing : 1;/* probing AP on beacon miss */ /* rate tables */ ==== //depot/projects/uart/dev/isp/isp.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp.c,v 1.107 2003/08/25 17:58:23 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp.c,v 1.108 2003/09/13 01:55:44 mjacob Exp $ */ /* * Machine and OS Independent (well, as best as possible) * code for the Qlogic ISP SCSI adapters. @@ -1249,6 +1249,17 @@ icbp->icb_retry_delay = fcp->isp_retry_delay; icbp->icb_retry_count = fcp->isp_retry_count; icbp->icb_hardaddr = loopid; + if (icbp->icb_hardaddr >= 125) { + /* + * We end up with a Loop ID of 255 for F-Port topologies + */ + if (icbp->icb_hardaddr != 255) { + isp_prt(isp, ISP_LOGERR, + "bad hard address %u- resetting to zero", + icbp->icb_hardaddr); + } + icbp->icb_hardaddr = 0; + } /* * Right now we just set extended options to prefer point-to-point * over loop based upon some soft config options. @@ -1371,7 +1382,13 @@ icbp->icb_fwoptions &= ~(ICBOPT_BOTH_WWNS|ICBOPT_FULL_LOGIN); } icbp->icb_rqstqlen = RQUEST_QUEUE_LEN(isp); + if (icbp->icb_rqstqlen < 1) { + isp_prt(isp, ISP_LOGERR, "bad request queue length"); + } icbp->icb_rsltqlen = RESULT_QUEUE_LEN(isp); + if (icbp->icb_rsltqlen < 1) { + isp_prt(isp, ISP_LOGERR, "bad result queue length"); + } icbp->icb_rqstaddr[RQRSP_ADDR0015] = DMA_WD0(isp->isp_rquest_dma); icbp->icb_rqstaddr[RQRSP_ADDR1631] = DMA_WD1(isp->isp_rquest_dma); icbp->icb_rqstaddr[RQRSP_ADDR3247] = DMA_WD2(isp->isp_rquest_dma); @@ -3859,7 +3876,7 @@ } /* - * Free any dma resources. As a side effect, this may + * Free any DMA resources. As a side effect, this may * also do any cache flushing necessary for data coherence. */ if (XS_XFRLEN(xs)) { ISP_DMAFREE(isp, xs, sp->req_handle); ==== //depot/projects/uart/dev/isp/isp_freebsd.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.91 2003/08/24 17:49:14 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.93 2003/09/15 06:41:33 markm Exp $"); #include #include @@ -39,6 +39,7 @@ MODULE_VERSION(isp, 1); +MODULE_DEPEND(isp, cam, 1, 1, 1); int isp_announced = 0; ispfwfunc *isp_get_firmware_p = NULL; @@ -399,8 +400,10 @@ hba->fc_scsi_supported = 1; hba->fc_topology = FCPARAM(isp)->isp_topo + 1; hba->fc_loopid = FCPARAM(isp)->isp_loopid; - hba->active_node_wwn = FCPARAM(isp)->isp_nodewwn; - hba->active_port_wwn = FCPARAM(isp)->isp_portwwn; + hba->nvram_node_wwn = FCPARAM(isp)->isp_nodewwn; + hba->nvram_port_wwn = FCPARAM(isp)->isp_portwwn; + hba->active_node_wwn = ISP_NODEWWN(isp); + hba->active_port_wwn = ISP_PORTWWN(isp); ISP_UNLOCK(isp); retval = 0; break; ==== //depot/projects/uart/dev/isp/isp_freebsd.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.71 2002/09/23 05:00:14 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.72 2003/09/13 01:56:45 mjacob Exp $ */ /* * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions * Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002 by Matthew Jacob @@ -76,8 +76,7 @@ #endif #define HANDLE_LOOPSTATE_IN_OUTER_LAYERS 1 -/* turn this off for now */ -/* #define ISP_SMPLOCK 1 */ +#define ISP_SMPLOCK 1 #ifdef ISP_SMPLOCK #define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY | INTR_MPSAFE ==== //depot/projects/uart/dev/isp/isp_inline.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_inline.h,v 1.28 2002/09/23 05:00:37 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_inline.h,v 1.29 2003/09/13 01:57:31 mjacob Exp $ */ /* * Qlogic Host Adapter Inline Functions * @@ -975,7 +975,7 @@ ISP_IOXPUT_16(isp, atsrc->at_rxid, &atdst->at_rxid); ISP_IOXPUT_16(isp, atsrc->at_flags, &atdst->at_flags); ISP_IOXPUT_16(isp, atsrc->at_status, &atdst->at_status); - ISP_IOXPUT_8(isp, atsrc->at_reserved1, &atdst->at_reserved1); + ISP_IOXPUT_8(isp, atsrc->at_crn, &atdst->at_crn); ISP_IOXPUT_8(isp, atsrc->at_taskcodes, &atdst->at_taskcodes); ISP_IOXPUT_8(isp, atsrc->at_taskflags, &atdst->at_taskflags); ISP_IOXPUT_8(isp, atsrc->at_execodes, &atdst->at_execodes); @@ -1005,7 +1005,7 @@ ISP_IOXGET_16(isp, &atsrc->at_rxid, atdst->at_rxid); ISP_IOXGET_16(isp, &atsrc->at_flags, atdst->at_flags); ISP_IOXGET_16(isp, &atsrc->at_status, atdst->at_status); - ISP_IOXGET_8(isp, &atsrc->at_reserved1, atdst->at_reserved1); + ISP_IOXGET_8(isp, &atsrc->at_crn, atdst->at_crn); ISP_IOXGET_8(isp, &atsrc->at_taskcodes, atdst->at_taskcodes); ISP_IOXGET_8(isp, &atsrc->at_taskflags, atdst->at_taskflags); ISP_IOXGET_8(isp, &atsrc->at_execodes, atdst->at_execodes); @@ -1193,7 +1193,6 @@ static INLINE void isp_get_ctio2(struct ispsoftc *isp, ct2_entry_t *ctsrc, ct2_entry_t *ctdst) { - int i; isp_copy_in_hdr(isp, &ctsrc->ct_header, &ctdst->ct_header); ISP_IOXGET_16(isp, &ctsrc->ct_reserved, ctdst->ct_reserved); ISP_IOXGET_16(isp, &ctsrc->ct_fwhandle, ctdst->ct_fwhandle); @@ -1206,16 +1205,6 @@ ISP_IOXGET_16(isp, &ctsrc->ct_seg_count, ctdst->ct_seg_count); ISP_IOXGET_32(isp, &ctsrc->ct_reloff, ctdst->ct_reloff); ISP_IOXGET_32(isp, &ctsrc->ct_resid, ctdst->ct_resid); - for (i = 0; i < 4; i++) { - ISP_IOXGET_32(isp, &ctsrc->rsp.fw._reserved[i], - ctdst->rsp.fw._reserved[i]); - } - ISP_IOXGET_16(isp, &ctsrc->rsp.fw.ct_scsi_status, - ctdst->rsp.fw.ct_scsi_status); - for (i = 0; i < QLTM_SENSELEN; i++) { - ISP_IOXGET_8(isp, &ctsrc->rsp.fw.ct_sense[i], - ctdst->rsp.fw.ct_sense[i]); - } } static INLINE void ==== //depot/projects/uart/dev/isp/isp_target.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_target.c,v 1.26 2003/05/31 19:49:49 phk Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_target.c,v 1.27 2003/09/13 01:58:26 mjacob Exp $ */ /* * Machine and OS Independent Target Mode Code for the Qlogic SCSI/FC adapters. * @@ -363,7 +363,7 @@ return (-1); } - ISP_TDQE(isp, "isp_target_put_entry", (int) optr, ap);; + ISP_TDQE(isp, "isp_target_put_entry", (int) optr, ap); ISP_ADD_REQUEST(isp, nxti); return (0); } @@ -539,6 +539,11 @@ msg.nt_msg[0] = MSG_BUS_DEV_RESET; (void) isp_async(isp, ISPASYNC_TARGET_MESSAGE, &msg); break; + case ASYNC_CTIO_DONE: + evt.ev_bus = bus; + evt.ev_event = event; + (void) isp_async(isp, ISPASYNC_TARGET_EVENT, &evt); + return (0); default: isp_prt(isp, ISP_LOGERR, "isp_target_async: unknown event 0x%x", event); @@ -611,14 +616,18 @@ msg.nt_tagval = inp->in_seqid; msg.nt_lun = lun; - if (inp->in_task_flags & TASK_FLAGS_ABORT_TASK) { - isp_prt(isp, ISP_LOGINFO, f1, "ABORT TASK", + if (inp->in_task_flags & TASK_FLAGS_ABORT_TASK_SET) { + isp_prt(isp, ISP_LOGINFO, f1, "ABORT TASK SET", inp->in_iid, lun, inp->in_seqid); - msg.nt_msg[0] = MSG_ABORT_TAG; + msg.nt_msg[0] = MSG_ABORT; } else if (inp->in_task_flags & TASK_FLAGS_CLEAR_TASK_SET) { isp_prt(isp, ISP_LOGINFO, f1, "CLEAR TASK SET", inp->in_iid, lun, inp->in_seqid); msg.nt_msg[0] = MSG_CLEAR_QUEUE; + } else if (inp->in_task_flags & TASK_FLAGS_LUN_RESET) { + isp_prt(isp, ISP_LOGINFO, f1, "LUN RESET", + inp->in_iid, lun, inp->in_seqid); + msg.nt_msg[0] = MSG_LUN_RESET; } else if (inp->in_task_flags & TASK_FLAGS_TARGET_RESET) { isp_prt(isp, ISP_LOGINFO, f1, "TARGET RESET", inp->in_iid, lun, inp->in_seqid); @@ -626,12 +635,7 @@ } else if (inp->in_task_flags & TASK_FLAGS_CLEAR_ACA) { isp_prt(isp, ISP_LOGINFO, f1, "CLEAR ACA", inp->in_iid, lun, inp->in_seqid); - /* ???? */ msg.nt_msg[0] = MSG_REL_RECOVERY; - } else if (inp->in_task_flags & TASK_FLAGS_TERMINATE_TASK) { - isp_prt(isp, ISP_LOGINFO, f1, "TERMINATE TASK", - inp->in_iid, lun, inp->in_seqid); - msg.nt_msg[0] = MSG_TERM_IO_PROC; } else { isp_prt(isp, ISP_LOGWARN, f2, "task flag", inp->in_status, lun, inp->in_iid, @@ -1091,7 +1095,7 @@ /* * CTIO rejected by the firmware - invalid data direction. */ - isp_prt(isp, ISP_LOGERR, "CTIO2 had wrong data directiond"); + isp_prt(isp, ISP_LOGERR, "CTIO2 had wrong data direction"); break; case CT_RSELTMO: ==== //depot/projects/uart/dev/isp/isp_target.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/isp/isp_target.h,v 1.20 2002/06/16 04:54:46 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/isp/isp_target.h,v 1.21 2003/09/13 01:58:26 mjacob Exp $ */ /* * Qlogic Target Mode Structure and Flag Definitions * @@ -36,11 +36,8 @@ #ifndef _ISP_TARGET_H #define _ISP_TARGET_H -/* - * Defines for all entry types - */ +#define QLTM_SENSELEN 18 /* non-FC cards only */ #define QLTM_SVALID 0x80 -#define QLTM_SENSELEN 18 /* * Structure for Enable Lun and Modify Lun queue entries @@ -141,28 +138,33 @@ /* * Values for the in_task_flags field- should only get one at a time! */ -#define TASK_FLAGS_ABORT_TASK (1<<9) +#define TASK_FLAGS_CLEAR_ACA (1<<14) +#define TASK_FLAGS_TARGET_RESET (1<<13) +#define TASK_FLAGS_LUN_RESET (1<<12) #define TASK_FLAGS_CLEAR_TASK_SET (1<<10) -#define TASK_FLAGS_TARGET_RESET (1<<13) -#define TASK_FLAGS_CLEAR_ACA (1<<14) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Sep 16 06:50:04 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BCE1E16A4C0; Tue, 16 Sep 2003 06:50:03 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 810F616A4B3 for ; Tue, 16 Sep 2003 06:50:03 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D2D0C43F3F for ; Tue, 16 Sep 2003 06:50:02 -0700 (PDT) (envelope-from cvance@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GDo20U095532 for ; Tue, 16 Sep 2003 06:50:02 -0700 (PDT) (envelope-from cvance@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GDo22R095529 for perforce@freebsd.org; Tue, 16 Sep 2003 06:50:02 -0700 (PDT) Date: Tue, 16 Sep 2003 06:50:02 -0700 (PDT) Message-Id: <200309161350.h8GDo22R095529@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cvance@nailabs.com using -f From: Chris Vance To: Perforce Change Reviews Subject: PERFORCE change 38121 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 13:50:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=38121 Change 38121 by cvance@cvance_osx_laptop on 2003/09/16 06:49:05 A batch of changes. Added entry points for most process checks. Also, go ahead and ifdef away the label in struct ifnet, since it breaks the network ABI and causes all sorts of trouble. Affected files ... .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/bsd_init.c#3 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_exec.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_exit.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_ktrace.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_mac.c#17 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_prot.c#3 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_resource.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_sig.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/net/if_var.h#3 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/bsd_init.c#3 (text+ko) ==== @@ -350,6 +350,10 @@ p->p_ucred = crget(); p->p_ucred->cr_ngroups = 1; /* group 0 */ +#ifdef MAC +/* mac_create_proc0(kernproc->p_ucred); */ +#endif + /* Create the file descriptor table. */ filedesc0.fd_refcnt = 1+1; /* +1 so shutdown will not _FREE_ZONE */ p->p_fd = &filedesc0; ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_exec.c#2 (text+ko) ==== @@ -207,6 +207,12 @@ } } +#ifdef MAC_TBD + error = mac_execve_enter(NULL, NULL); + if (error) + return(error); +#endif + error = execargs_alloc(&execargs); if (error) return(error); ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_exit.c#2 (text+ko) ==== @@ -553,7 +553,7 @@ register struct proc *p, *t; int status, error; struct vnode *tvp; - + struct pcred *pcred = q->p_cred; retry: if (uap->pid == 0) uap->pid = -q->p_pgid; @@ -565,6 +565,12 @@ p->p_pid != uap->pid && p->p_pgid != -(uap->pid)) continue; + +#ifdef MAC + if ((error = mac_check_proc_wait(pcred->pc_ucred, p))) + return (error); +#endif + nfound++; if (p->p_flag & P_WAITING) { (void)tsleep(&p->p_stat, PWAIT, "waitcoll", 0); ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_ktrace.c#2 (text+ko) ==== @@ -631,6 +631,7 @@ { register struct pcred *caller = callp->p_cred; register struct pcred *target = targetp->p_cred; + int error; if (!PRISON_CHECK(callp, targetp)) return (0); @@ -642,6 +643,11 @@ caller->pc_ucred->cr_uid == 0) return (1); +#ifdef MAC + if ((error = mac_check_proc_debug(caller->pc_ucred, targetp))) + return (error); +#endif + return (0); } ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_mac.c#17 (text+ko) ==== @@ -798,7 +798,7 @@ tag = m_tag_find(mbuf, PACKET_TAG_MACLABEL, NULL); label = (struct label *)(tag+1); #endif -#ifdef NO_MBUF +#ifdef HAVE_MBUFLABEL label = &mbuf->m_pkthdr.label; #endif return (label); @@ -872,7 +872,9 @@ mac_init_ifnet(struct ifnet *ifp) { +#ifdef HAVE_IFLABEL mac_init_ifnet_label(&ifp->if_label); +#endif } int @@ -943,7 +945,7 @@ } #endif #else -#ifdef NO_MBUF +#ifdef HAVE_MBUFLABEL mac_init_label(&m->m_pkthdr.label); MAC_CHECK(init_mbuf_label, &m->m_pkthdr.label, flag); if (error) { @@ -952,7 +954,7 @@ } else { MAC_DEBUG_COUNTER_INC(&nmacmbufs); } -#endif /* NO_MBUF */ +#endif /* HAVE_MBUFLABEL */ #endif return (error); } @@ -1114,7 +1116,9 @@ mac_destroy_ifnet(struct ifnet *ifp) { +#ifdef HAVE_IFLABEL mac_destroy_ifnet_label(&ifp->if_label); +#endif } void @@ -1130,10 +1134,10 @@ mac_destroy_mbuf(struct mbuf *m) { -#ifdef NO_MBUF +#ifdef HAVE_MBUFLABEL MAC_PERFORM(destroy_mbuf_label, &m->m_pkthdr.label); mac_destroy_label(&m->m_pkthdr.label); -#endif /* NO_MBUF */ +#endif /* HAVE_MBUFLABEL */ MAC_DEBUG_COUNTER_DEC(&nmacmbufs); } @@ -1221,9 +1225,9 @@ mac_copy_mbuf(struct mbuf *src, struct mbuf *dst) { -#ifdef NO_MBUF +#ifdef HAVE_MBUFLABEL MAC_PERFORM(copy_mbuf_label, &src->m_pkthdr.label, &dst->m_pkthdr.label); -#endif /* NO_MBUF */ +#endif /* HAVE_MBUFLABEL */ } #if 0 @@ -1380,7 +1384,7 @@ mac_create_proc0(struct ucred *cred) { - MAC_PERFORM(create_proc0, cred); +/* MAC_PERFORM(create_proc0, cred); */ } /* @@ -2269,7 +2273,9 @@ mac_create_ifnet(struct ifnet *ifnet) { +#ifdef HAVE_IFLABEL MAC_PERFORM(create_ifnet, ifnet, &ifnet->if_label); +#endif } void @@ -2404,8 +2410,10 @@ label = mbuf_to_label(mbuf); +#ifdef HAVE_IFLABEL MAC_PERFORM(create_mbuf_linklayer, ifnet, &ifnet->if_label, mbuf, label); +#endif } void @@ -2415,8 +2423,10 @@ label = mbuf_to_label(mbuf); +#ifdef HAVE_IFLABEL MAC_PERFORM(create_mbuf_from_ifnet, ifnet, &ifnet->if_label, mbuf, label); +#endif } void @@ -2428,8 +2438,10 @@ oldmbuflabel = mbuf_to_label(oldmbuf); newmbuflabel = mbuf_to_label(newmbuf); +#ifdef HAVE_IFLABEL MAC_PERFORM(create_mbuf_multicast_encap, oldmbuf, oldmbuflabel, ifnet, &ifnet->if_label, newmbuf, newmbuflabel); +#endif } void @@ -2496,6 +2508,7 @@ label = mbuf_to_label(m); +#ifdef HAVE_IFLABEL if (m->m_pkthdr.rcvif != NULL) ifnetlabel = &m->m_pkthdr.rcvif->if_label; else @@ -2503,6 +2516,7 @@ MAC_CHECK(update_mbuf_from_cipso, m, label, m->m_pkthdr.rcvif, ifnetlabel, cp, code); +#endif return (error); } @@ -2542,8 +2556,10 @@ if (!mac_enforce_network) return (0); +#ifdef HAVE_IFLABEL MAC_CHECK(check_bpfdesc_receive, bpf_d, &bpf_d->bd_label, ifnet, &ifnet->if_label); +#endif return (error); } @@ -2584,8 +2600,10 @@ label = mbuf_to_label(mbuf); +#ifdef HAVE_IFLABEL MAC_CHECK(check_ifnet_transmit, ifnet, &ifnet->if_label, mbuf, label); +#endif return (error); } @@ -3092,6 +3110,7 @@ if (error) return (error); +#ifdef HAVE_IFLABEL MALLOC(elements, char *, mac.m_buflen, M_MACTEMP, M_WAITOK); error = copyinstr(mac.m_string, elements, mac.m_buflen, NULL); if (error) { @@ -3107,6 +3126,7 @@ FREE(buffer, M_MACTEMP); FREE(elements, M_MACTEMP); +#endif return (error); } @@ -3157,6 +3177,7 @@ return (error); } +#ifdef HAVE_IFLABEL MAC_CHECK(check_ifnet_relabel, cred, ifnet, &ifnet->if_label, &intlabel); if (error) { @@ -3165,6 +3186,7 @@ } MAC_PERFORM(relabel_ifnet, cred, ifnet, &ifnet->if_label, &intlabel); +#endif mac_destroy_ifnet_label(&intlabel); return (0); ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_prot.c#3 (text+ko) ==== ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_resource.c#2 (text+ko) ==== @@ -211,12 +211,19 @@ register struct proc *curp, *chgp; register int n; { + int error; register struct pcred *pcred = curp->p_cred; if (pcred->pc_ucred->cr_uid && pcred->p_ruid && pcred->pc_ucred->cr_uid != chgp->p_ucred->cr_uid && pcred->p_ruid != chgp->p_ucred->cr_uid) return (EPERM); + +#ifdef MAC + if ((error = mac_check_proc_sched(pcred->pc_ucred, chgp))) + return (error); +#endif + if (n > PRIO_MAX) n = PRIO_MAX; if (n < PRIO_MIN) ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/kern/kern_sig.c#2 (text+ko) ==== @@ -198,6 +198,13 @@ struct proc *q; int signum; { + int error; + +#ifdef MAC + if ((error = mac_check_proc_signal(pc->pc_ucred, q, signum))) + return (error); +#endif + /* you can signal yourself */ if (p == q) return(1); ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/bsd/net/if_var.h#3 (text+ko) ==== @@ -287,7 +287,9 @@ #else struct ifprefixhead if_prefixhead; /* list of prefixes per if */ #endif /* __APPLE__ */ - struct label if_label; /* interface MAC label */ +#ifdef HAVE_IFLABEL + struct label if_label; /* interface MAC label */ +#endif }; typedef void if_init_f_t __P((void *)); From owner-p4-projects@FreeBSD.ORG Tue Sep 16 08:39:25 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0478716A4C0; Tue, 16 Sep 2003 08:39:25 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C353E16A4B3 for ; Tue, 16 Sep 2003 08:39:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5360C43F93 for ; Tue, 16 Sep 2003 08:39:24 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GFdO0U005681 for ; Tue, 16 Sep 2003 08:39:24 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GFdNiT005678 for perforce@freebsd.org; Tue, 16 Sep 2003 08:39:23 -0700 (PDT) Date: Tue, 16 Sep 2003 08:39:23 -0700 (PDT) Message-Id: <200309161539.h8GFdNiT005678@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 38131 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 15:39:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=38131 Change 38131 by jhb@jhb_laptop on 2003/09/16 08:38:22 Flesh out a tad. Affected files ... .. //depot/projects/power/notes#3 edit Differences ... ==== //depot/projects/power/notes#3 (text+ko) ==== @@ -11,6 +11,10 @@ - support PCI devices by detaching driver and going into D3 for off and D0 and re-attach for on - add support for ACPI devices using _PSx methods + - add ACPI device powerstate constants + - add ACPI helper functions for setting a device's powerstate via _PSx + - fix ACPI PCI bus driver to call _PSx outside of calling the default + PCI powerstate functions - convert to a model of suspending the device via device_suspend()/resume() rather than detach()/attach() - This may require fixes to drivers so that they continue to function From owner-p4-projects@FreeBSD.ORG Tue Sep 16 10:30:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2EB7416A4C0; Tue, 16 Sep 2003 10:30:42 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D1F5C16A4B3 for ; Tue, 16 Sep 2003 10:30:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5FCAF43FB1 for ; Tue, 16 Sep 2003 10:30:41 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GHUe0U021574 for ; Tue, 16 Sep 2003 10:30:40 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GHUem3021569 for perforce@freebsd.org; Tue, 16 Sep 2003 10:30:40 -0700 (PDT) Date: Tue, 16 Sep 2003 10:30:40 -0700 (PDT) Message-Id: <200309161730.h8GHUem3021569@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 38136 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 17:30:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=38136 Change 38136 by areisse@areisse_tislabs on 2003/09/16 10:30:38 explicit lock ordering for sebsd Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/subr_witness.c#7 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/subr_witness.c#7 (text+ko) ==== @@ -267,8 +267,11 @@ { "uidinfo hash", &lock_class_mtx_sleep }, { "uidinfo struct", &lock_class_mtx_sleep }, { "allprison", &lock_class_mtx_sleep }, + { "SEBSD AVC", &lock_class_mtx_sleep }, - { "SEBSD Policy Lock", &lock_class_sx }, + { "SEBSD message lock", &lock_class_mtx_sleep }, + { "SEBSD policy lock", &lock_class_sx }, + { NULL, NULL }, /* * spin locks @@ -318,6 +321,7 @@ #if defined(__i386__) || defined(__amd64__) { "pcicfg", &lock_class_mtx_spin }, #endif + { NULL, NULL }, { NULL, NULL } }; @@ -375,6 +379,7 @@ /* * We have to release Giant before initializing its witness * structure so that WITNESS doesn't get confused. + */ mtx_unlock(&Giant); mtx_assert(&Giant, MA_NOTOWNED); From owner-p4-projects@FreeBSD.ORG Tue Sep 16 11:10:31 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0514C16A4C0; Tue, 16 Sep 2003 11:10:31 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C95FC16A4B3 for ; Tue, 16 Sep 2003 11:10:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 32BD143FE9 for ; Tue, 16 Sep 2003 11:10:30 -0700 (PDT) (envelope-from cvance@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GIAT0U025633 for ; Tue, 16 Sep 2003 11:10:29 -0700 (PDT) (envelope-from cvance@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GIATsj025628 for perforce@freebsd.org; Tue, 16 Sep 2003 11:10:29 -0700 (PDT) Date: Tue, 16 Sep 2003 11:10:29 -0700 (PDT) Message-Id: <200309161810.h8GIATsj025628@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cvance@nailabs.com using -f From: Chris Vance To: Perforce Change Reviews Subject: PERFORCE change 38137 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 18:10:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=38137 Change 38137 by cvance@cvance_osx_laptop on 2003/09/16 11:09:37 Now that was a big PITA. Add a couple top-level security module directories to the build. They are currently empty, but are built and linked into the kernel. Affected files ... .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/Makefile#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/MASTER#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/MASTER.i386#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/MASTER.ppc#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/Makefile.i386#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/Makefile.ppc#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/Makefile.template#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/copyright.nai#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/files#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/files.i386#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/files.ppc#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/kernelversion.major#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/kernelversion.minor#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/kernelversion.variant#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/tools/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/tools/doconf/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/tools/doconf/doconf.csh#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/tools/newvers/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/tools/newvers/newvers.csh#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/version.major#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/version.minor#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/conf/version.variant#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/mac_test/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/mac_test/test.c#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/sebsd/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin/apsl/xnu/security/sebsd/sebsd.c#1 add Differences ... ==== //depot/projects/trustedbsd/sedarwin/apsl/xnu/Makefile#2 (text+ko) ==== @@ -29,7 +29,8 @@ bsd \ pexpert \ libkern \ - libsa + libsa \ + security INSTINC_SUBDIRS = $(ALL_SUBDIRS) From owner-p4-projects@FreeBSD.ORG Tue Sep 16 11:24:13 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E07BF16A4E1; Tue, 16 Sep 2003 11:24:12 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8DE4B16A4BF for ; Tue, 16 Sep 2003 11:24:12 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 169F44400E for ; Tue, 16 Sep 2003 11:20:51 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GIKo0U026908 for ; Tue, 16 Sep 2003 11:20:50 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GIKkh4026904 for perforce@freebsd.org; Tue, 16 Sep 2003 11:20:46 -0700 (PDT) Date: Tue, 16 Sep 2003 11:20:46 -0700 (PDT) Message-Id: <200309161820.h8GIKkh4026904@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38140 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 18:24:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=38140 Change 38140 by sam@sam_ebb on 2003/09/16 11:20:42 IFC Affected files ... .. //depot/projects/netperf/sys/alpha/alpha/pmap.c#7 integrate .. //depot/projects/netperf/sys/alpha/include/db_machdep.h#2 integrate .. //depot/projects/netperf/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/netperf/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/netperf/sys/amd64/amd64/pmap.c#8 integrate .. //depot/projects/netperf/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/netperf/sys/amd64/include/signal.h#2 integrate .. //depot/projects/netperf/sys/boot/forth/beastie.4th#2 integrate .. //depot/projects/netperf/sys/boot/i386/libi386/comconsole.c#3 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/acpi_stub.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/bootinfo.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/devicename.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/efi_stub.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/elf_freebsd.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/module.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/sal_stub.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/skifs.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/ssc.c#2 integrate .. //depot/projects/netperf/sys/boot/ia64/libski/time.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/boot.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/disk.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/io.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/probe_keyboard.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/sys.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/boot2/table.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/biosmem.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/comconsole.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/gatea20.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/i386_module.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/time.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/libpc98/vidconsole.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/loader/conf.c#2 integrate .. //depot/projects/netperf/sys/boot/pc98/loader/main.c#2 integrate .. //depot/projects/netperf/sys/cam/cam_periph.c#2 integrate .. //depot/projects/netperf/sys/cam/scsi/scsi_cd.c#5 integrate .. //depot/projects/netperf/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/netperf/sys/coda/cnode.h#2 integrate .. //depot/projects/netperf/sys/coda/coda.h#2 integrate .. //depot/projects/netperf/sys/coda/coda_namecache.c#2 integrate .. //depot/projects/netperf/sys/coda/coda_namecache.h#2 integrate .. //depot/projects/netperf/sys/coda/coda_psdev.c#2 integrate .. //depot/projects/netperf/sys/coda/coda_subr.c#2 integrate .. //depot/projects/netperf/sys/coda/coda_subr.h#2 integrate .. //depot/projects/netperf/sys/coda/coda_venus.c#2 integrate .. //depot/projects/netperf/sys/coda/coda_venus.h#2 integrate .. //depot/projects/netperf/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/netperf/sys/coda/coda_vfsops.h#2 integrate .. //depot/projects/netperf/sys/coda/coda_vnops.c#3 integrate .. //depot/projects/netperf/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/netperf/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/netperf/sys/conf/NOTES#8 integrate .. //depot/projects/netperf/sys/conf/files#8 integrate .. //depot/projects/netperf/sys/conf/files.alpha#3 integrate .. //depot/projects/netperf/sys/conf/files.amd64#4 integrate .. //depot/projects/netperf/sys/conf/files.i386#6 integrate .. //depot/projects/netperf/sys/conf/files.ia64#5 integrate .. //depot/projects/netperf/sys/conf/files.pc98#5 integrate .. //depot/projects/netperf/sys/conf/files.sparc64#3 integrate .. //depot/projects/netperf/sys/conf/kmod.mk#4 integrate .. //depot/projects/netperf/sys/conf/ldscript.ia64#2 integrate .. //depot/projects/netperf/sys/conf/options#9 integrate .. //depot/projects/netperf/sys/conf/options.ia64#3 integrate .. //depot/projects/netperf/sys/crypto/sha2/sha2.c#2 integrate .. //depot/projects/netperf/sys/dev/aac/aac.c#5 integrate .. //depot/projects/netperf/sys/dev/aac/aac_pci.c#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi.c#6 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_acad.c#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_cmbat.c#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_ec.c#5 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_resource.c#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpiio.h#4 integrate .. //depot/projects/netperf/sys/dev/acpica/acpivar.h#3 integrate .. //depot/projects/netperf/sys/dev/acpica/madt.h#1 branch .. //depot/projects/netperf/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/netperf/sys/dev/ata/ata-chipset.c#5 integrate .. //depot/projects/netperf/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/netperf/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/netperf/sys/dev/ata/ata-raid.c#4 integrate .. //depot/projects/netperf/sys/dev/ata/atapi-cam.c#5 integrate .. //depot/projects/netperf/sys/dev/ata/atapi-cd.c#5 integrate .. //depot/projects/netperf/sys/dev/ata/atapi-cd.h#4 integrate .. //depot/projects/netperf/sys/dev/ath/if_ath.c#13 integrate .. //depot/projects/netperf/sys/dev/ath/if_athioctl.h#5 integrate .. //depot/projects/netperf/sys/dev/ath/if_athvar.h#4 integrate .. //depot/projects/netperf/sys/dev/bfe/if_bfe.c#1 branch .. //depot/projects/netperf/sys/dev/bfe/if_bfereg.h#1 branch .. //depot/projects/netperf/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/netperf/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/drm_context.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/drm_memory.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_cp.c#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_drm.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_drv.c#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_drv.h#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_mem.c#3 integrate .. //depot/projects/netperf/sys/dev/drm/radeon_state.c#3 integrate .. //depot/projects/netperf/sys/dev/drm/sis.h#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_drm.h#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_drv.c#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_drv.h#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_ds.c#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_ds.h#1 branch .. //depot/projects/netperf/sys/dev/drm/sis_mm.c#1 branch .. //depot/projects/netperf/sys/dev/fxp/if_fxp.c#9 integrate .. //depot/projects/netperf/sys/dev/fxp/if_fxpvar.h#3 integrate .. //depot/projects/netperf/sys/dev/ic/ns16550.h#2 integrate .. //depot/projects/netperf/sys/dev/ips/ips.h#3 integrate .. //depot/projects/netperf/sys/dev/ips/ips_pci.c#4 integrate .. //depot/projects/netperf/sys/dev/isp/isp.c#4 integrate .. //depot/projects/netperf/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/netperf/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/netperf/sys/dev/isp/isp_inline.h#2 integrate .. //depot/projects/netperf/sys/dev/isp/isp_target.c#2 integrate .. //depot/projects/netperf/sys/dev/isp/isp_target.h#2 integrate .. //depot/projects/netperf/sys/dev/isp/isp_tpublic.h#2 integrate .. //depot/projects/netperf/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/netperf/sys/dev/mii/bmtphy.c#3 integrate .. //depot/projects/netperf/sys/dev/mii/miidevs#2 integrate .. //depot/projects/netperf/sys/dev/mii/rgephy.c#1 branch .. //depot/projects/netperf/sys/dev/mii/rgephyreg.h#1 branch .. //depot/projects/netperf/sys/dev/mii/rlphy.c#3 integrate .. //depot/projects/netperf/sys/dev/pci/pci.c#6 integrate .. //depot/projects/netperf/sys/dev/pci/pcireg.h#5 integrate .. //depot/projects/netperf/sys/dev/pci/pcivar.h#3 integrate .. //depot/projects/netperf/sys/dev/pst/pst-raid.c#4 integrate .. //depot/projects/netperf/sys/dev/puc/puc.c#4 integrate .. //depot/projects/netperf/sys/dev/puc/puc_ebus.c#1 branch .. //depot/projects/netperf/sys/dev/puc/puc_pci.c#4 integrate .. //depot/projects/netperf/sys/dev/puc/puc_sbus.c#1 branch .. //depot/projects/netperf/sys/dev/puc/pucdata.c#5 integrate .. //depot/projects/netperf/sys/dev/puc/pucvar.h#2 integrate .. //depot/projects/netperf/sys/dev/re/if_re.c#1 branch .. //depot/projects/netperf/sys/dev/sio/sio.c#4 integrate .. //depot/projects/netperf/sys/dev/sio/sioreg.h#2 integrate .. //depot/projects/netperf/sys/dev/smbus/smbus.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/mpu.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/mss.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/isa/uartsio.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pci/aureal.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/aureal.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pci/emu10k1.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/es137x.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/ich.c#6 integrate .. //depot/projects/netperf/sys/dev/sound/pci/maestro.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/neomagic-coeff.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pci/neomagic.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/neomagic.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pci/solo.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/t4dwave.c#4 integrate .. //depot/projects/netperf/sys/dev/sound/pci/t4dwave.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/ac97.c#5 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/ac97.h#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/buffer.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/channel.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/dsp.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/fake.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/feeder.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/feeder.h#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/feeder_fmt.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/mixer.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/sound.c#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/vchan.h#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_acpi.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_ebus.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_isa.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_pccard.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_pci.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_bus_puc.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_core.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_alpha.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_amd64.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_i386.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_ia64.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_pc98.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_cpu_sparc64.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_i8251.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_i8251.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_ns8250.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_ns8250.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_sab82532.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_sab82532.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_z8530.c#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_dev_z8530.h#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_if.m#1 branch .. //depot/projects/netperf/sys/dev/uart/uart_tty.c#1 branch .. //depot/projects/netperf/sys/dev/wi/if_wi.c#8 integrate .. //depot/projects/netperf/sys/dev/wi/if_wi_pccard.c#6 integrate .. //depot/projects/netperf/sys/dev/wi/if_wi_pci.c#6 integrate .. //depot/projects/netperf/sys/dev/wi/if_wireg.h#4 integrate .. //depot/projects/netperf/sys/dev/wi/if_wivar.h#3 integrate .. //depot/projects/netperf/sys/geom/bde/g_bde_crypt.c#2 integrate .. //depot/projects/netperf/sys/geom/geom_io.c#3 integrate .. //depot/projects/netperf/sys/i386/acpica/acpi_machdep.c#3 integrate .. //depot/projects/netperf/sys/i386/acpica/acpi_wakeup.c#4 integrate .. //depot/projects/netperf/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/netperf/sys/i386/conf/NOTES#3 integrate .. //depot/projects/netperf/sys/i386/i386/db_interface.c#3 integrate .. //depot/projects/netperf/sys/i386/i386/identcpu.c#5 integrate .. //depot/projects/netperf/sys/i386/i386/machdep.c#3 integrate .. //depot/projects/netperf/sys/i386/i386/mp_clock.c#4 integrate .. //depot/projects/netperf/sys/i386/i386/mp_machdep.c#5 integrate .. //depot/projects/netperf/sys/i386/i386/pmap.c#8 integrate .. //depot/projects/netperf/sys/i386/i386/sys_machdep.c#4 integrate .. //depot/projects/netperf/sys/i386/include/acpica_machdep.h#2 integrate .. //depot/projects/netperf/sys/i386/include/apic.h#4 integrate .. //depot/projects/netperf/sys/i386/include/segments.h#2 integrate .. //depot/projects/netperf/sys/i386/isa/clock.c#4 integrate .. //depot/projects/netperf/sys/i386/isa/npx.c#2 integrate .. //depot/projects/netperf/sys/i386/linux/imgact_linux.c#2 integrate .. //depot/projects/netperf/sys/i386/pci/pci_cfgreg.c#3 integrate .. //depot/projects/netperf/sys/ia64/acpica/madt.c#3 integrate .. //depot/projects/netperf/sys/ia64/conf/GENERIC#2 integrate .. //depot/projects/netperf/sys/ia64/conf/GENERIC.hints#2 integrate .. //depot/projects/netperf/sys/ia64/conf/NOTES#3 integrate .. //depot/projects/netperf/sys/ia64/ia64/exception.S#4 integrate .. //depot/projects/netperf/sys/ia64/ia64/genassym.c#3 integrate .. //depot/projects/netperf/sys/ia64/ia64/interrupt.c#4 integrate .. //depot/projects/netperf/sys/ia64/ia64/locore.S#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/netperf/sys/ia64/ia64/nexus.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/pmap.c#5 integrate .. //depot/projects/netperf/sys/ia64/ia64/sapic.c#2 integrate .. //depot/projects/netperf/sys/ia64/include/md_var.h#3 integrate .. //depot/projects/netperf/sys/ia64/include/sapicvar.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/netperf/sys/isa/fd.c#3 integrate .. //depot/projects/netperf/sys/kern/bus_if.m#2 integrate .. //depot/projects/netperf/sys/kern/init_sysent.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_ktr.c#3 integrate .. //depot/projects/netperf/sys/kern/kern_prot.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_umtx.c#3 integrate .. //depot/projects/netperf/sys/kern/kern_xxx.c#3 integrate .. //depot/projects/netperf/sys/kern/subr_bus.c#3 integrate .. //depot/projects/netperf/sys/kern/subr_taskqueue.c#4 integrate .. //depot/projects/netperf/sys/kern/subr_trap.c#3 integrate .. //depot/projects/netperf/sys/kern/subr_witness.c#3 integrate .. //depot/projects/netperf/sys/kern/sys_pipe.c#5 integrate .. //depot/projects/netperf/sys/kern/syscalls.c#2 integrate .. //depot/projects/netperf/sys/kern/syscalls.master#2 integrate .. //depot/projects/netperf/sys/kern/vfs_aio.c#2 integrate .. //depot/projects/netperf/sys/kern/vfs_bio.c#5 integrate .. //depot/projects/netperf/sys/kern/vfs_mount.c#2 integrate .. //depot/projects/netperf/sys/modules/Makefile#5 integrate .. //depot/projects/netperf/sys/modules/bfe/Makefile#1 branch .. //depot/projects/netperf/sys/modules/coda/Makefile#2 integrate .. //depot/projects/netperf/sys/modules/coda5/Makefile#1 branch .. //depot/projects/netperf/sys/modules/drm/Makefile#2 integrate .. //depot/projects/netperf/sys/modules/drm/sis/Makefile#1 branch .. //depot/projects/netperf/sys/modules/mii/Makefile#2 integrate .. //depot/projects/netperf/sys/modules/re/Makefile#1 branch .. //depot/projects/netperf/sys/modules/uart/Makefile#1 branch .. //depot/projects/netperf/sys/net/if_iso88025subr.c#2 integrate .. //depot/projects/netperf/sys/net/raw_usrreq.c#2 integrate .. //depot/projects/netperf/sys/net80211/ieee80211.c#5 integrate .. //depot/projects/netperf/sys/net80211/ieee80211.h#2 integrate .. //depot/projects/netperf/sys/net80211/ieee80211_input.c#6 integrate .. //depot/projects/netperf/sys/net80211/ieee80211_ioctl.c#2 integrate .. //depot/projects/netperf/sys/net80211/ieee80211_node.c#7 integrate .. //depot/projects/netperf/sys/net80211/ieee80211_output.c#5 integrate .. //depot/projects/netperf/sys/net80211/ieee80211_var.h#4 integrate .. //depot/projects/netperf/sys/netinet/ip_mroute.c#11 integrate .. //depot/projects/netperf/sys/netinet/tcp_subr.c#3 integrate .. //depot/projects/netperf/sys/netinet6/in6_ifattach.c#4 integrate .. //depot/projects/netperf/sys/netinet6/in6_pcb.c#4 integrate .. //depot/projects/netperf/sys/netinet6/nd6.c#5 integrate .. //depot/projects/netperf/sys/netinet6/nd6_nbr.c#2 integrate .. //depot/projects/netperf/sys/netipx/ipx_input.c#3 integrate .. //depot/projects/netperf/sys/netipx/spx_usrreq.c#2 integrate .. //depot/projects/netperf/sys/nfsclient/nfs_node.c#2 integrate .. //depot/projects/netperf/sys/nfsclient/nfs_subs.c#2 integrate .. //depot/projects/netperf/sys/nfsclient/nfs_vnops.c#5 integrate .. //depot/projects/netperf/sys/nfsclient/nfsnode.h#2 integrate .. //depot/projects/netperf/sys/pc98/conf/GENERIC#2 integrate .. //depot/projects/netperf/sys/pc98/conf/NOTES#4 integrate .. //depot/projects/netperf/sys/pc98/i386/machdep.c#3 integrate .. //depot/projects/netperf/sys/pc98/pc98/clock.c#5 integrate .. //depot/projects/netperf/sys/pc98/pc98/fd.c#2 integrate .. //depot/projects/netperf/sys/pci/amdpm.c#4 integrate .. //depot/projects/netperf/sys/pci/if_dc.c#6 integrate .. //depot/projects/netperf/sys/pci/if_rl.c#8 integrate .. //depot/projects/netperf/sys/pci/if_rlreg.h#5 integrate .. //depot/projects/netperf/sys/pci/if_sis.c#10 integrate .. //depot/projects/netperf/sys/pci/if_sisreg.h#4 integrate .. //depot/projects/netperf/sys/pci/if_xl.c#5 integrate .. //depot/projects/netperf/sys/pci/if_xlreg.h#2 integrate .. //depot/projects/netperf/sys/posix4/ksched.c#2 integrate .. //depot/projects/netperf/sys/sparc64/conf/GENERIC#3 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/ofw_machdep.c#4 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/pmap.c#5 integrate .. //depot/projects/netperf/sys/sys/ata.h#4 integrate .. //depot/projects/netperf/sys/sys/bus.h#2 integrate .. //depot/projects/netperf/sys/sys/interrupt.h#3 integrate .. //depot/projects/netperf/sys/sys/param.h#4 integrate .. //depot/projects/netperf/sys/sys/syscall.h#2 integrate .. //depot/projects/netperf/sys/sys/syscall.mk#2 integrate .. //depot/projects/netperf/sys/sys/syslimits.h#2 integrate .. //depot/projects/netperf/sys/sys/sysproto.h#2 integrate .. //depot/projects/netperf/sys/sys/taskqueue.h#4 integrate .. //depot/projects/netperf/sys/vm/pmap.h#2 integrate .. //depot/projects/netperf/sys/vm/vm_kern.c#6 integrate .. //depot/projects/netperf/sys/vm/vm_mmap.c#3 integrate .. //depot/projects/netperf/sys/vm/vm_object.c#4 integrate Differences ... ==== //depot/projects/netperf/sys/alpha/alpha/pmap.c#7 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.135 2003/08/28 23:12:28 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.138 2003/09/12 07:07:47 alc Exp $"); #include #include @@ -811,7 +811,31 @@ return 0; } +/* + * Routine: pmap_extract_and_hold + * Function: + * Atomically extract and hold the physical page + * with the given pmap and virtual address pair + * if that mapping permits the given protection. + */ +vm_page_t +pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) +{ + vm_paddr_t pa; + vm_page_t m; + m = NULL; + mtx_lock(&Giant); + if ((pa = pmap_extract(pmap, va)) != 0) { + m = PHYS_TO_VM_PAGE(pa); + vm_page_lock_queues(); + vm_page_hold(m); + vm_page_unlock_queues(); + } + mtx_unlock(&Giant); + return (m); +} + /*************************************************** * Low level mapping routines..... ***************************************************/ @@ -2749,23 +2773,30 @@ */ if ((*pte & PG_FOW) == 0) val |= MINCORE_MODIFIED|MINCORE_MODIFIED_OTHER; - /* - * Modified by someone - */ - else if (m->dirty || pmap_is_modified(m)) - val |= MINCORE_MODIFIED_OTHER; + else { + /* + * Modified by someone + */ + vm_page_lock_queues(); + if (m->dirty || pmap_is_modified(m)) + val |= MINCORE_MODIFIED_OTHER; + vm_page_unlock_queues(); + } /* * Referenced by us */ if ((*pte & (PG_FOR | PG_FOE)) == 0) val |= MINCORE_REFERENCED|MINCORE_REFERENCED_OTHER; - - /* - * Referenced by someone - */ - else if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) { - val |= MINCORE_REFERENCED_OTHER; - vm_page_flag_set(m, PG_REFERENCED); + else { + /* + * Referenced by someone + */ + vm_page_lock_queues(); + if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) { + val |= MINCORE_REFERENCED_OTHER; + vm_page_flag_set(m, PG_REFERENCED); + } + vm_page_unlock_queues(); } } return val; ==== //depot/projects/netperf/sys/alpha/include/db_machdep.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.7 2003/02/25 00:42:39 marcel Exp $ */ +/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.8 2003/09/07 05:33:46 marcel Exp $ */ /* $NetBSD: db_machdep.h,v 1.6 1997/09/06 02:02:25 thorpej Exp $ */ /* @@ -34,8 +34,9 @@ /* * Machine-dependent defines for new kernel debugger. */ - +#ifndef KLD_MODULE #include "opt_ddb.h" +#endif #include #include ==== //depot/projects/netperf/sys/amd64/amd64/exception.S#2 (text+ko) ==== @@ -31,7 +31,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.110 2003/05/14 04:10:47 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.111 2003/09/09 19:32:09 peter Exp $ */ #include @@ -227,8 +227,8 @@ swapgs movq %rsp,PCPU(SCRATCH_RSP) movq common_tss+COMMON_TSS_RSP0,%rsp - /* Now emulate a trapframe. Ugh. */ - subq $TF_SIZE,%rsp + /* Now emulate a trapframe. Make the 8 byte alignment odd for call. */ + subq $TF_SIZE+8,%rsp /* defer TF_RSP till we have a spare register */ movq %r11,TF_RFLAGS(%rsp) movq %rcx,TF_RIP(%rsp) /* %rcx original value is in %r10 */ ==== //depot/projects/netperf/sys/amd64/amd64/machdep.c#4 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.588 2003/07/31 01:26:39 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.589 2003/09/09 19:32:09 peter Exp $"); #include "opt_atalk.h" #include "opt_compat.h" @@ -1217,6 +1217,8 @@ /* make an initial tss so cpu can get interrupt stack on syscall! */ common_tss.tss_rsp0 = thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE - sizeof(struct pcb); + /* Ensure the stack is aligned to 16 bytes */ + common_tss.tss_rsp0 &= ~0xF; /* doublefault stack space, runs on ist1 */ common_tss.tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; @@ -1434,7 +1436,6 @@ struct trapframe *tp; tp = td->td_frame; - PROC_LOCK(curthread->td_proc); mcp->mc_onstack = sigonstack(tp->tf_rsp); PROC_UNLOCK(curthread->td_proc); @@ -1486,66 +1487,42 @@ return (EINVAL); rflags = (mcp->mc_rflags & PSL_USERCHANGE) | (tp->tf_rflags & ~PSL_USERCHANGE); - if ((ret = set_fpcontext(td, mcp)) == 0) { - tp->tf_r15 = mcp->mc_r15; - tp->tf_r14 = mcp->mc_r14; - tp->tf_r13 = mcp->mc_r13; - tp->tf_r12 = mcp->mc_r12; - tp->tf_r11 = mcp->mc_r11; - tp->tf_r10 = mcp->mc_r10; - tp->tf_r9 = mcp->mc_r9; - tp->tf_r8 = mcp->mc_r8; - tp->tf_rdi = mcp->mc_rdi; - tp->tf_rsi = mcp->mc_rsi; - tp->tf_rbp = mcp->mc_rbp; - tp->tf_rbx = mcp->mc_rbx; - tp->tf_rdx = mcp->mc_rdx; - tp->tf_rcx = mcp->mc_rcx; - tp->tf_rax = mcp->mc_rax; - tp->tf_rip = mcp->mc_rip; - tp->tf_rflags = rflags; - tp->tf_rsp = mcp->mc_rsp; - tp->tf_ss = mcp->mc_ss; - ret = 0; - } - return (ret); + ret = set_fpcontext(td, mcp); + if (ret != 0) + return (ret); + tp->tf_r15 = mcp->mc_r15; + tp->tf_r14 = mcp->mc_r14; + tp->tf_r13 = mcp->mc_r13; + tp->tf_r12 = mcp->mc_r12; + tp->tf_r11 = mcp->mc_r11; + tp->tf_r10 = mcp->mc_r10; + tp->tf_r9 = mcp->mc_r9; + tp->tf_r8 = mcp->mc_r8; + tp->tf_rdi = mcp->mc_rdi; + tp->tf_rsi = mcp->mc_rsi; + tp->tf_rbp = mcp->mc_rbp; + tp->tf_rbx = mcp->mc_rbx; + tp->tf_rdx = mcp->mc_rdx; + tp->tf_rcx = mcp->mc_rcx; + tp->tf_rax = mcp->mc_rax; + tp->tf_rip = mcp->mc_rip; + tp->tf_rflags = rflags; + tp->tf_rsp = mcp->mc_rsp; + tp->tf_ss = mcp->mc_ss; + return (0); } static void get_fpcontext(struct thread *td, mcontext_t *mcp) { - struct savefpu *addr; - /* - * XXX mc_fpstate might be misaligned, since its declaration is not - * unportabilized using __attribute__((aligned(16))) like the - * declaration of struct savemm, and anyway, alignment doesn't work - * for auto variables since we don't use gcc's pessimal stack - * alignment. Work around this by abusing the spare fields after - * mcp->mc_fpstate. - * - * XXX unpessimize most cases by only aligning when fxsave might be - * called, although this requires knowing too much about - * npxgetregs()'s internals. - */ - addr = (struct savefpu *)&mcp->mc_fpstate; - if (td == PCPU_GET(fpcurthread) && ((uintptr_t)(void *)addr & 0xF)) { - do - addr = (void *)((char *)addr + 4); - while ((uintptr_t)(void *)addr & 0xF); - } - mcp->mc_ownedfp = npxgetregs(td, addr); - if (addr != (struct savefpu *)&mcp->mc_fpstate) { - bcopy(addr, &mcp->mc_fpstate, sizeof(mcp->mc_fpstate)); - bzero(&mcp->mc_spare2, sizeof(mcp->mc_spare2)); - } + mcp->mc_ownedfp = npxgetregs(td, (struct savefpu *)&mcp->mc_fpstate); mcp->mc_fpformat = npxformat(); } static int set_fpcontext(struct thread *td, const mcontext_t *mcp) { - struct savefpu *addr; if (mcp->mc_fpformat == _MC_FPFMT_NODEV) return (0); @@ -1556,25 +1533,12 @@ fpstate_drop(td); else if (mcp->mc_ownedfp == _MC_FPOWNED_FPU || mcp->mc_ownedfp == _MC_FPOWNED_PCB) { - /* XXX align as above. */ - addr = (struct savefpu *)&mcp->mc_fpstate; - if (td == PCPU_GET(fpcurthread) && - ((uintptr_t)(void *)addr & 0xF)) { - do - addr = (void *)((char *)addr + 4); - while ((uintptr_t)(void *)addr & 0xF); - bcopy(&mcp->mc_fpstate, addr, sizeof(mcp->mc_fpstate)); - } /* * XXX we violate the dubious requirement that npxsetregs() * be called with interrupts disabled. + * XXX obsolete on trap-16 systems? */ - npxsetregs(td, addr); - /* - * Don't bother putting things back where they were in the - * misaligned case, since we know that the caller won't use - * them again. - */ + npxsetregs(td, (struct savefpu *)&mcp->mc_fpstate); } else return (EINVAL); return (0); ==== //depot/projects/netperf/sys/amd64/amd64/pmap.c#8 (text+ko) ==== @@ -73,7 +73,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.434 2003/08/24 08:07:06 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.437 2003/09/13 21:57:38 alc Exp $"); /* * Manages physical address maps. @@ -749,6 +749,31 @@ } +/* + * Routine: pmap_extract_and_hold + * Function: + * Atomically extract and hold the physical page + * with the given pmap and virtual address pair + * if that mapping permits the given protection. + */ +vm_page_t +pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) +{ + vm_paddr_t pa; + vm_page_t m; + + m = NULL; + mtx_lock(&Giant); + if ((pa = pmap_extract(pmap, va)) != 0) { + m = PHYS_TO_VM_PAGE(pa); + vm_page_lock_queues(); + vm_page_hold(m); + vm_page_unlock_queues(); + } + mtx_unlock(&Giant); + return (m); +} + vm_paddr_t pmap_kextract(vm_offset_t va) { @@ -961,10 +986,6 @@ if (va >= VM_MAXUSER_ADDRESS) return 0; - if (mpte == NULL) { - mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); - } - return pmap_unwire_pte_hold(pmap, va, mpte); } @@ -1442,7 +1463,7 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) { pt_entry_t oldpte; - vm_page_t m; + vm_page_t m, mpte; oldpte = pte_load_clear(ptq); if (oldpte & PG_W) @@ -1471,10 +1492,9 @@ vm_page_flag_set(m, PG_REFERENCED); return pmap_remove_entry(pmap, m, va); } else { - return pmap_unuse_pt(pmap, va, NULL); + mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); + return pmap_unuse_pt(pmap, va, mpte); } - - return 0; } /* ==== //depot/projects/netperf/sys/amd64/conf/GENERIC#3 (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.391 2003/09/03 01:24:47 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.395 2003/09/15 22:40:00 obrien Exp $ machine amd64 cpu HAMMER @@ -118,8 +118,8 @@ # RAID controllers #XXX pointer/int warnings -#device aac # Adaptec FSA RAID -#device aacp # SCSI passthrough for aac (requires CAM) +device aac # Adaptec FSA RAID +device aacp # SCSI passthrough for aac (requires CAM) device amr # AMI MegaRAID device ida # Compaq Smart RAID device ips # IBM (Adaptec) ServeRAID @@ -168,9 +168,11 @@ # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support +device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') +device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire'') device sis # Silicon Integrated Systems SiS 900/SiS 7016 @@ -182,7 +184,6 @@ device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') -device bge # Broadcom BCM570xx Gigabit Ethernet # ISA Ethernet NICs. pccard nics included. device cs # Crystal Semiconductor CS89x0 NIC @@ -248,3 +249,5 @@ device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) + +device pcm # Sound ==== //depot/projects/netperf/sys/amd64/include/signal.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)signal.h 8.1 (Berkeley) 6/11/93 - * $FreeBSD: src/sys/amd64/include/signal.h,v 1.21 2003/05/01 01:05:23 peter Exp $ + * $FreeBSD: src/sys/amd64/include/signal.h,v 1.23 2003/09/08 18:31:48 peter Exp $ */ #ifndef _MACHINE_SIGNAL_H_ @@ -74,22 +74,23 @@ struct sigcontext { struct __sigset sc_mask; /* signal mask to restore */ long sc_onstack; /* sigstack state to restore */ - long sc_r15; /* machine state (struct trapframe) */ - long sc_r14; - long sc_r13; - long sc_r12; - long sc_r11; - long sc_r10; - long sc_r9; - long sc_r8; - long sc_rdi; + long sc_rdi; /* machine state (struct trapframe) */ long sc_rsi; - long sc_rbp; - long sc_rbx; long sc_rdx; long sc_rcx; + long sc_r8; + long sc_r9; long sc_rax; + long sc_rbx; + long sc_rbp; + long sc_r10; + long sc_r11; + long sc_r12; + long sc_r13; + long sc_r14; + long sc_r15; long sc_trapno; + long sc_addr; long sc_err; long sc_rip; long sc_cs; @@ -104,7 +105,7 @@ long sc_fpformat; long sc_ownedfp; long sc_spare1[1]; - long sc_fpstate[128] __aligned(16); + long sc_fpstate[64] __aligned(16); long sc_spare2[8]; }; #endif /* __BSD_VISIBLE */ ==== //depot/projects/netperf/sys/boot/forth/beastie.4th#2 (text+ko) ==== @@ -1,4 +1,5 @@ \ Copyright (c) 2003 Scott Long +\ Copyright (c) 2003 Aleksander Fafula \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -22,7 +23,7 @@ \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ -\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.4 2003/06/10 22:04:09 scottl Exp $ +\ $FreeBSD: src/sys/boot/forth/beastie.4th,v 1.5 2003/09/13 18:35:01 scottl Exp $ marker task-beastie.4th @@ -48,7 +49,29 @@ 46 constant dot \ The BSD Daemon. He is 19 rows high and 34 columns wide -: print-beastie ( x y -- ) +: technicolor-beastie ( x y -- ) +2dup at-xy ." , ," 1+ +2dup at-xy ." /( )`" 1+ +2dup at-xy ." \ \___ / |" 1+ +2dup at-xy ." /- _ `-/ '" 1+ +2dup at-xy ." (/\/ \ \ /\" 1+ +2dup at-xy ." / / | ` \" 1+ +2dup at-xy ." O O ) / |" 1+ +2dup at-xy ." `-^--'`< '" 1+ +2dup at-xy ." (_.) _ ) /" 1+ +2dup at-xy ." `.___/` / " 1+ +2dup at-xy ." `-----' /" 1+ +2dup at-xy ." <----. __ / __ \" 1+ +2dup at-xy ." <----|====O)))==) \) /====|" 1+ +2dup at-xy ." <----' `--' `.__,' \" 1+ +2dup at-xy ." | |" 1+ +2dup at-xy ." \ / /\" 1+ +2dup at-xy ." ______( (_ / \______/" 1+ +2dup at-xy ." ,' ,-----' |" 1+ +at-xy ." `--{__________) " 1+ +; + +: boring-beastie ( x y -- ) 2dup at-xy ." , ," 1+ 2dup at-xy ." /( )`" 1+ 2dup at-xy ." \ \___ / |" 1+ @@ -70,6 +93,20 @@ at-xy ." `--{__________)" ; +: print-beastie ( x y -- ) + s" loader_color" getenv + dup -1 = if + drop + boring-beastie + exit + then + s" YES" compare-insensitive 0<> if + boring-beastie + exit + then + technicolor-beastie +; + : acpienabled? ( -- flag ) s" acpi_load" getenv dup -1 = if ==== //depot/projects/netperf/sys/boot/i386/libi386/comconsole.c#3 (text+ko) ==== @@ -24,33 +24,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.9 2003/08/25 23:28:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.10 2003/09/16 11:24:23 bde Exp $"); #include #include #include +#include #include "libi386.h" -/* selected defines from ns16550.h */ -#define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ -#define com_mcr 4 /* modem control register (R/W) */ -#define com_lsr 5 /* line status register (R/W) */ -#define com_msr 6 /* modem status register (R/W) */ - -/* selected defines from sioreg.h */ -#define CFCR_DLAB 0x80 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 -#define LSR_TXRDY 0x20 -#define LSR_RXRDY 0x01 - #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ ==== //depot/projects/netperf/sys/boot/ia64/libski/acpi_stub.c#2 (text+ko) ==== @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: src/sys/boot/ia64/libski/acpi_stub.c,v 1.1 2003/02/01 22:50:08 marcel Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/acpi_stub.c,v 1.2 2003/09/08 09:11:32 obrien Exp $"); + #include #define APIC_IO_SAPIC 6 ==== //depot/projects/netperf/sys/boot/ia64/libski/bootinfo.c#2 (text+ko) ==== @@ -22,10 +22,11 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: src/sys/boot/ia64/libski/bootinfo.c,v 1.8 2003/02/20 06:47:54 marcel Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/bootinfo.c,v 1.9 2003/09/08 09:11:32 obrien Exp $"); + #include #include #include ==== //depot/projects/netperf/sys/boot/ia64/libski/devicename.c#2 (text+ko) ==== @@ -22,10 +22,11 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: src/sys/boot/ia64/libski/devicename.c,v 1.1 2001/09/12 08:34:26 dfr Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/devicename.c,v 1.2 2003/09/08 09:11:32 obrien Exp $"); + #include #include #include ==== //depot/projects/netperf/sys/boot/ia64/libski/efi_stub.c#2 (text+ko) ==== @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: src/sys/boot/ia64/libski/efi_stub.c,v 1.1 2003/02/01 22:50:08 marcel Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/efi_stub.c,v 1.2 2003/09/08 09:11:32 obrien Exp $"); + #include #include #include ==== //depot/projects/netperf/sys/boot/ia64/libski/elf_freebsd.c#2 (text+ko) ==== @@ -1,4 +1,3 @@ -/* $FreeBSD: src/sys/boot/ia64/libski/elf_freebsd.c,v 1.8 2003/05/01 03:56:29 peter Exp $ */ /* $NetBSD: loadfile.c,v 1.10 1998/06/25 06:45:46 ross Exp $ */ /*- @@ -37,7 +36,6 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ - /* * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. @@ -76,6 +74,9 @@ * @(#)boot.c 8.1 (Berkeley) 6/10/93 */ +#include +__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/elf_freebsd.c,v 1.9 2003/09/08 09:11:32 obrien Exp $"); + #include #include ==== //depot/projects/netperf/sys/boot/ia64/libski/module.c#2 (text+ko) ==== @@ -24,9 +24,8 @@ * SUCH DAMAGE. */ - #include -__FBSDID("$FreeBSD: src/sys/boot/ia64/libski/module.c,v 1.2 2003/04/03 21:36:29 obrien Exp $"); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Sep 16 14:33:48 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D70216A4C0; Tue, 16 Sep 2003 14:33:48 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22BE716A4B3 for ; Tue, 16 Sep 2003 14:33:48 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A674B43FDF for ; Tue, 16 Sep 2003 14:33:47 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GLXl0U048875 for ; Tue, 16 Sep 2003 14:33:47 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GLXllN048872 for perforce@freebsd.org; Tue, 16 Sep 2003 14:33:47 -0700 (PDT) Date: Tue, 16 Sep 2003 14:33:47 -0700 (PDT) Message-Id: <200309162133.h8GLXllN048872@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38147 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 21:33:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=38147 Change 38147 by sam@sam_ebb on 2003/09/16 14:33:07 o must make mutex recursive due to the tangled path that ICMP packets take o remove bogus Giant assert; we get called from everywhere and cannot assume (for the moment) whether or not Giant is held Affected files ... .. //depot/projects/netperf/sys/netinet/ip_dummynet.c#8 edit Differences ... ==== //depot/projects/netperf/sys/netinet/ip_dummynet.c#8 (text+ko) ==== @@ -165,8 +165,13 @@ #endif static struct mtx dummynet_mtx; +/* + * NB: Recursion is needed to deal with re-entry via ICMP. That is, + * a packet may be dispatched via ip_input from dummynet_io and + * re-enter through ip_output. Yech. + */ #define DUMMYNET_LOCK_INIT() \ - mtx_init(&dummynet_mtx, "dummynet", NULL, MTX_DEF) + mtx_init(&dummynet_mtx, "dummynet", NULL, MTX_DEF | MTX_RECURSE) #define DUMMYNET_LOCK_DESTROY() mtx_destroy(&dummynet_mtx) #define DUMMYNET_LOCK() mtx_lock(&dummynet_mtx) #define DUMMYNET_UNLOCK() mtx_unlock(&dummynet_mtx) @@ -1125,8 +1130,6 @@ is_pipe = (fwa->rule->fw_flg & IP_FW_F_COMMAND) == IP_FW_F_PIPE; #endif - mtx_assert(&Giant, MA_NOTOWNED); - pipe_nr &= 0xffff ; DUMMYNET_LOCK(); From owner-p4-projects@FreeBSD.ORG Tue Sep 16 14:36:53 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3CB6E16A4C1; Tue, 16 Sep 2003 14:36:53 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1823716A4B3 for ; Tue, 16 Sep 2003 14:36:53 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2901943FB1 for ; Tue, 16 Sep 2003 14:36:52 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GLap0U049024 for ; Tue, 16 Sep 2003 14:36:51 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GLapQK049021 for perforce@freebsd.org; Tue, 16 Sep 2003 14:36:51 -0700 (PDT) Date: Tue, 16 Sep 2003 14:36:51 -0700 (PDT) Message-Id: <200309162136.h8GLapQK049021@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38148 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 21:36:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=38148 Change 38148 by sam@sam_ebb on 2003/09/16 14:36:02 o fix LOR between ipfw and dummynet: when deleting rules place them on a ``reap list'' and reclaim their storage after dropping the IPFW lock (calling back into dummynet during reclamation to avoid the LOR) o cleanup the module unload handling o always honor MOD_UNLOCK requests; not doing this when built as a static kernel component is bogus Affected files ... .. //depot/projects/netperf/sys/netinet/ip_fw2.c#7 edit Differences ... ==== //depot/projects/netperf/sys/netinet/ip_fw2.c#7 (text+ko) ==== @@ -107,6 +107,7 @@ struct ip_fw_chain { struct ip_fw *rules; /* list of rules */ + struct ip_fw *reap; /* list of rules to reap */ struct mtx mtx; /* lock guarding rule list */ }; #define IPFW_LOCK_INIT(_chain) \ @@ -2209,15 +2210,15 @@ } /** - * Free storage associated with a static rule (including derived - * dynamic rules). + * Remove a static rule (including derived * dynamic rules) + * and place it on the ``reap list'' for later reclamation. * The caller is in charge of clearing rule pointers to avoid * dangling pointers. * @return a pointer to the next entry. * Arguments are not checked, so they better be correct. */ static struct ip_fw * -delete_rule(struct ip_fw_chain *chain, struct ip_fw *prev, struct ip_fw *rule) +remove_rule(struct ip_fw_chain *chain, struct ip_fw *rule, struct ip_fw *prev) { struct ip_fw *n; int l = RULESIZE(rule); @@ -2235,15 +2236,33 @@ static_count--; static_len -= l; - if (DUMMYNET_LOADED) - ip_dn_ruledel_ptr(rule); - free(rule, M_IPFW); + rule->next = chain->reap; + chain->reap = rule; + return n; } +/** + * Reclaim storage associated with a list of rules. This is + * typically the list created using remove_rule. + */ +static void +reap_rules(struct ip_fw *head) +{ + struct ip_fw *rule; + + while ((rule = head) != NULL) { + head = head->next; + if (DUMMYNET_LOADED) + ip_dn_ruledel_ptr(rule); + free(rule, M_IPFW); + } +} + /* - * Deletes all rules from a chain (except rules in set RESVD_SET - * unless kill_default = 1). + * Remove all rules from a chain (except rules in set RESVD_SET + * unless kill_default = 1). The caller is responsible for + * reclaiming storage for the rules left in chain->reap. */ static void free_chain(struct ip_fw_chain *chain, int kill_default) @@ -2255,7 +2274,7 @@ flush_rule_ptrs(chain); /* more efficient to do outside the loop */ for (prev = NULL, rule = chain->rules; rule ; ) if (kill_default || rule->set != RESVD_SET) - rule = delete_rule(chain, prev, rule); + rule = remove_rule(chain, rule, prev); else { prev = rule; rule = rule->next; @@ -2300,6 +2319,7 @@ IPFW_LOCK(chain); rule = chain->rules; + chain->reap = NULL; switch (cmd) { case 0: /* delete rules with given number */ /* @@ -2318,7 +2338,7 @@ */ flush_rule_ptrs(chain); while (rule->rulenum == rulenum) - rule = delete_rule(chain, prev, rule); + rule = remove_rule(chain, rule, prev); break; case 1: /* delete all rules with given set number */ @@ -2326,7 +2346,7 @@ rule = chain->rules; while (rule->rulenum < IPFW_DEFAULT_RULE) if (rule->set == rulenum) - rule = delete_rule(chain, prev, rule); + rule = remove_rule(chain, rule, prev); else { prev = rule; rule = rule->next; @@ -2354,7 +2374,16 @@ rule->set = rulenum; break; } + /* + * Look for rules to reclaim. We grab the list before + * releasing the lock then reclaim them w/o the lock to + * avoid a LOR with dummynet. + */ + rule = chain->reap; + chain->reap = NULL; IPFW_UNLOCK(chain); + if (rule) + reap_rules(rule); return 0; } @@ -2744,8 +2773,12 @@ */ IPFW_LOCK(&layer3_chain); + layer3_chain.reap = NULL; free_chain(&layer3_chain, 0 /* keep default rule */); + rule = layer3_chain.reap, layer3_chain.reap = NULL; IPFW_UNLOCK(&layer3_chain); + if (layer3_chain.reap != NULL) + reap_rules(rule); break; case IP_FW_ADD: @@ -2924,6 +2957,27 @@ return (0); } +static void +ipfw_destroy(void) +{ + struct ip_fw *reap; + + IPFW_LOCK(&layer3_chain); + callout_stop(&ipfw_timeout); + ip_fw_chk_ptr = NULL; + ip_fw_ctl_ptr = NULL; + layer3_chain.reap = NULL; + free_chain(&layer3_chain, 1 /* kill default rule */); + reap = layer3_chain.reap, layer3_chain.reap = NULL; + IPFW_UNLOCK(&layer3_chain); + if (reap != NULL) + reap_rules(reap); + + IPFW_DYN_LOCK_DESTROY(); + IPFW_LOCK_DESTROY(&layer3_chain); + printf("IP firewall unloaded\n"); +} + static int ipfw_modevent(module_t mod, int type, void *unused) { @@ -2940,21 +2994,8 @@ break; case MOD_UNLOAD: -#if !defined(KLD_MODULE) - printf("ipfw statically compiled, cannot unload\n"); - err = EBUSY; -#else - IPFW_LOCK(&layer3_chain); - IPFW_DYN_LOCK(); - callout_stop(&ipfw_timeout); - ip_fw_chk_ptr = NULL; - ip_fw_ctl_ptr = NULL; - free_chain(&layer3_chain, 1 /* kill default rule */); - IPFW_DYN_LOCK_DESTROY(); - IPFW_LOCK_DESTROY(&layer3_chain); - printf("IP firewall unloaded\n"); + ipfw_destroy(); err = 0; -#endif break; default: break; From owner-p4-projects@FreeBSD.ORG Tue Sep 16 15:33:02 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 27F5A16A4C0; Tue, 16 Sep 2003 15:33:02 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E980716A4B3 for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 71DD343FCB for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GMX10U048731 for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GMX0ZF048724 for perforce@freebsd.org; Tue, 16 Sep 2003 15:33:00 -0700 (PDT) Date: Tue, 16 Sep 2003 15:33:00 -0700 (PDT) Message-Id: <200309162233.h8GMX0ZF048724@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38151 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 22:33:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=38151 Change 38151 by sam@sam_ebb on 2003/09/16 15:32:18 cleanup module unload: must hold lock to call bridge_off; remove bogus distinction between building as a module and a static kernel component Affected files ... .. //depot/projects/netperf/sys/net/bridge.c#7 edit Differences ... ==== //depot/projects/netperf/sys/net/bridge.c#7 (text+ko) ==== @@ -1213,7 +1213,6 @@ return 0 ; } -#ifdef KLD_MODULE static void bdgdestroy(void) { @@ -1222,17 +1221,15 @@ bdgtakeifaces_ptr = NULL; callout_stop(&bdg_callout); + BDG_LOCK(); bridge_off(); - if (clusters) - free(clusters, M_IFADDR); if (ifp2sc) { free(ifp2sc, M_IFADDR); ifp2sc = NULL; } BDG_LOCK_DESTROY(); } -#endif /* KLD_MODULE */ /* * initialization code, both for static and dynamic loading. @@ -1240,28 +1237,22 @@ static int bridge_modevent(module_t mod, int type, void *unused) { - int err = 0 ; + int err; switch (type) { case MOD_LOAD: - if (BDG_LOADED) { + if (BDG_LOADED) err = EEXIST; - break ; - } - err = bdginit(); + else + err = bdginit(); break; case MOD_UNLOAD: -#if !defined(KLD_MODULE) - printf("bridge statically compiled, cannot unload\n"); - err = EINVAL ; -#else - /* XXX lock */ do_bridge = 0; bdgdestroy(); -#endif + err = 0; break; default: - err = EINVAL ; + err = EINVAL; break; } return err; From owner-p4-projects@FreeBSD.ORG Tue Sep 16 20:18:54 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 844B816A4C0; Tue, 16 Sep 2003 20:18:54 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E08416A4B3 for ; Tue, 16 Sep 2003 20:18:54 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D783C43FBD for ; Tue, 16 Sep 2003 20:18:53 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8H3IrXJ004361 for ; Tue, 16 Sep 2003 20:18:53 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8H3IrVR004358 for perforce@freebsd.org; Tue, 16 Sep 2003 20:18:53 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Tue, 16 Sep 2003 20:18:53 -0700 (PDT) Message-Id: <200309170318.h8H3IrVR004358@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38167 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 03:18:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=38167 Change 38167 by marcel@marcel_nfs on 2003/09/16 20:17:53 Fix a bad resolve after a merge conflict. Affected files ... .. //depot/projects/ia64/usr.sbin/acpi/acpidump/acpi.c#23 edit Differences ... ==== //depot/projects/ia64/usr.sbin/acpi/acpidump/acpi.c#23 (text+ko) ==== @@ -118,6 +118,7 @@ static void acpi_handle_fadt(struct FADTbody *fadt) { + struct ACPIsdt *dsdp; struct FACSbody *facs; acpi_print_fadt(fadt); @@ -393,7 +394,6 @@ break; default: addr = 0; - break; } assert(addr != 0); printf("0x%08lx", addr); @@ -607,8 +607,6 @@ static void acpi_print_rsd_ptr(struct ACPIrsdp *rp) { - const char *version; - printf(BEGIN_COMMENT); printf(" RSD PTR: OEM="); acpi_print_string(rp->oem, 6); @@ -619,8 +617,7 @@ } else { printf("\tXSDT=0x%08lx, length=%u, cksum=%u\n", (u_long)rp->xsdt_addr, rp->length, rp->xsum); - else - printf("\tRSDT=0x%08x, cksum=%u\n", rp->rsdt_addr, rp->sum); + } printf(END_COMMENT); } @@ -642,10 +639,9 @@ addr = le64dec((char*)rsdp->body + i * addr_size); break; default: - addr = 0; - break; + assert((addr = 0)); } - assert(addr != 0); + sdp = (struct ACPIsdt *)acpi_map_sdt(addr); if (acpi_checksum(sdp, sdp->len)) errx(1, "RSDT entry %d is corrupt", i); From owner-p4-projects@FreeBSD.ORG Tue Sep 16 20:23:02 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B45F116A4C0; Tue, 16 Sep 2003 20:23:01 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8DA1816A4B3 for ; Tue, 16 Sep 2003 20:23:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4163C43F93 for ; Tue, 16 Sep 2003 20:23:00 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8H3N0XJ004931 for ; Tue, 16 Sep 2003 20:23:00 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8H3MxQM004928 for perforce@freebsd.org; Tue, 16 Sep 2003 20:22:59 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Tue, 16 Sep 2003 20:22:59 -0700 (PDT) Message-Id: <200309170322.h8H3MxQM004928@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38169 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 03:23:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=38169 Change 38169 by marcel@marcel_nfs on 2003/09/16 20:22:52 IFC @38168 Affected files ... .. //depot/projects/ia64/Makefile.inc1#84 integrate .. //depot/projects/ia64/crypto/openssh/buffer.c#4 integrate .. //depot/projects/ia64/crypto/openssh/channels.c#9 integrate .. //depot/projects/ia64/crypto/openssh/version.h#11 integrate .. //depot/projects/ia64/etc/rc.d/dhclient#9 integrate .. //depot/projects/ia64/etc/services#10 integrate .. //depot/projects/ia64/lib/libc/net/inet_net_pton.c#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/amd64/amd64/context.S#3 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#35 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#26 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#124 integrate .. //depot/projects/ia64/share/man/man4/ath.4#8 integrate .. //depot/projects/ia64/share/man/man4/ath_hal.4#5 integrate .. //depot/projects/ia64/sys/boot/i386/libi386/comconsole.c#3 integrate .. //depot/projects/ia64/sys/boot/pc98/libpc98/comconsole.c#3 integrate .. //depot/projects/ia64/sys/dev/aac/aac.c#31 integrate .. //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#8 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-cd.c#30 integrate .. //depot/projects/ia64/sys/dev/ic/ns16550.h#3 integrate .. //depot/projects/ia64/sys/dev/sio/sioreg.h#9 integrate .. //depot/projects/ia64/sys/dev/sound/isa/mpu.c#4 integrate .. //depot/projects/ia64/sys/dev/sound/isa/uartsio.c#5 integrate .. //depot/projects/ia64/sys/dev/uart/uart_bus.h#3 integrate .. //depot/projects/ia64/sys/dev/uart/uart_core.c#3 integrate .. //depot/projects/ia64/sys/dev/uart/uart_dev_i8251.c#2 integrate .. //depot/projects/ia64/sys/dev/uart/uart_dev_ns8250.c#4 integrate .. //depot/projects/ia64/sys/dev/uart/uart_dev_sab82532.c#3 integrate .. //depot/projects/ia64/sys/dev/uart/uart_dev_z8530.c#3 integrate .. //depot/projects/ia64/sys/dev/uart/uart_if.m#2 integrate .. //depot/projects/ia64/sys/modules/uart/Makefile#5 integrate .. //depot/projects/ia64/sys/net/bridge.c#20 integrate .. //depot/projects/ia64/sys/netinet/ip_dummynet.c#22 integrate .. //depot/projects/ia64/sys/netinet/ip_fw2.c#26 integrate .. //depot/projects/ia64/sys/pci/agp_intel.c#14 integrate .. //depot/projects/ia64/sys/pci/if_dc.c#49 integrate .. //depot/projects/ia64/usr.sbin/Makefile#50 integrate Differences ... ==== //depot/projects/ia64/Makefile.inc1#84 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.391 2003/09/15 21:18:30 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.392 2003/09/16 12:53:18 ru Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -51,6 +51,17 @@ SUBDIR+= lib .endif +# When upgrading to a dynamically linked root, install the runtime +# linker early into its new location before make(1) has a chance +# to run the dynamically linked /bin/sh. +.if defined(WITH_DYNAMICROOT) && !defined(NOPIC) && \ + (!defined(TARGET_ARCH) || ${TARGET_ARCH} == ${MACHINE_ARCH}) && \ + !defined(DISTDIR) && \ + (!defined(DESTDIR) || empty(DESTDIR) || ${DESTDIR} == "/") && \ + !exists(/libexec/ld-elf.so.1) +SUBDIR+= libexec/rtld-elf +.endif + .if exists(${.CURDIR}/bin) SUBDIR+= bin .endif ==== //depot/projects/ia64/crypto/openssh/buffer.c#4 (text+ko) ==== @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: buffer.c,v 1.16 2002/06/26 08:54:18 markus Exp $"); +RCSID("$OpenBSD: buffer.c,v 1.17 2003/09/16 03:03:47 deraadt Exp $"); #include "xmalloc.h" #include "buffer.h" @@ -23,8 +23,11 @@ void buffer_init(Buffer *buffer) { - buffer->alloc = 4096; - buffer->buf = xmalloc(buffer->alloc); + const u_int len = 4096; + + buffer->alloc = 0; + buffer->buf = xmalloc(len); + buffer->alloc = len; buffer->offset = 0; buffer->end = 0; } @@ -34,8 +37,10 @@ void buffer_free(Buffer *buffer) { - memset(buffer->buf, 0, buffer->alloc); - xfree(buffer->buf); + if (buffer->alloc > 0) { + memset(buffer->buf, 0, buffer->alloc); + xfree(buffer->buf); + } } /* @@ -69,6 +74,7 @@ void * buffer_append_space(Buffer *buffer, u_int len) { + u_int newlen; void *p; if (len > 0x100000) @@ -98,11 +104,13 @@ goto restart; } /* Increase the size of the buffer and retry. */ - buffer->alloc += len + 32768; - if (buffer->alloc > 0xa00000) + + newlen = buffer->alloc + len + 32768; + if (newlen > 0xa00000) fatal("buffer_append_space: alloc %u not supported", - buffer->alloc); - buffer->buf = xrealloc(buffer->buf, buffer->alloc); + newlen); + buffer->buf = xrealloc(buffer->buf, newlen); + buffer->alloc = newlen; goto restart; /* NOTREACHED */ } ==== //depot/projects/ia64/crypto/openssh/channels.c#9 (text+ko) ==== @@ -229,12 +229,13 @@ if (found == -1) { /* There are no free slots. Take last+1 slot and expand the array. */ found = channels_alloc; - channels_alloc += 10; if (channels_alloc > 10000) fatal("channel_new: internal error: channels_alloc %d " "too big.", channels_alloc); + channels = xrealloc(channels, + (channels_alloc + 10) * sizeof(Channel *)); + channels_alloc += 10; debug2("channel: expanding %d", channels_alloc); - channels = xrealloc(channels, channels_alloc * sizeof(Channel *)); for (i = found; i < channels_alloc; i++) channels[i] = NULL; } ==== //depot/projects/ia64/crypto/openssh/version.h#11 (text+ko) ==== @@ -1,11 +1,11 @@ /* $OpenBSD: version.h,v 1.37 2003/04/01 10:56:46 markus Exp $ */ -/* $FreeBSD: src/crypto/openssh/version.h,v 1.20 2003/04/23 17:10:53 des Exp $ */ +/* $FreeBSD: src/crypto/openssh/version.h,v 1.21 2003/09/16 14:31:46 nectar Exp $ */ #ifndef SSH_VERSION #define SSH_VERSION (ssh_version_get()) #define SSH_VERSION_BASE "OpenSSH_3.6.1p1" -#define SSH_VERSION_ADDENDUM "FreeBSD-20030423" +#define SSH_VERSION_ADDENDUM "FreeBSD-20030916" const char *ssh_version_get(void); void ssh_version_set_addendum(const char *add); ==== //depot/projects/ia64/etc/rc.d/dhclient#9 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $ -# $FreeBSD: src/etc/rc.d/dhclient,v 1.9 2003/07/28 08:15:52 mbr Exp $ +# $FreeBSD: src/etc/rc.d/dhclient,v 1.10 2003/09/16 02:56:13 mbr Exp $ # # PROVIDE: dhclient @@ -53,8 +53,9 @@ dhclient_prestart() { - dhclient_common || return 1 - + if [ $dhclient_common_error -eq 1 ]; then + return 1 + fi for ifn in ${_cooked_list}; do ifscript_up ${ifn} done @@ -78,8 +79,9 @@ dhclient_prestop() { - dhclient_common || return 1 - + if [ $dhclient_common_error -eq 1 ]; then + return 1 + fi for ifn in ${_cooked_list}; do ipx_down ${ifn} ifalias_down ${ifn} @@ -110,4 +112,11 @@ fi load_rc_config $name +dhclient_common_error=0 +dhclient_common || dhclient_common_error=1; +if [ -n "$_cooked_list" ]; then + if [ -s $pidfile ]; then + stop_cmd=":" + fi +fi run_rc_command "$1" ==== //depot/projects/ia64/etc/services#10 (text+ko) ==== @@ -16,7 +16,7 @@ # Kerberos services are for Kerberos v4, and are unofficial. Sites running # v5 should uncomment v5 entries and comment v4 entries. # -# $FreeBSD: src/etc/services,v 1.94 2003/08/06 18:15:10 dcs Exp $ +# $FreeBSD: src/etc/services,v 1.95 2003/09/16 23:17:43 obrien Exp $ # From: @(#)services 5.8 (Berkeley) 5/9/91 # # WELL KNOWN PORT NUMBERS @@ -1924,6 +1924,7 @@ ccmail 3264/udp #cc:mail/lotus dec-notes 3333/tcp #DEC Notes dec-notes 3333/udp #DEC Notes +rdp 3389/tcp #Microsoft Remote Desktop Protocol rsvp-encap 3455/udp #RSVP encapsulated in UDP nut 3493/tcp #Network UPS Tools nut 3493/udp #Network UPS Tools ==== //depot/projects/ia64/lib/libc/net/inet_net_pton.c#3 (text+ko) ==== @@ -19,7 +19,7 @@ static const char orig_rcsid[] = "From Id: inet_net_pton.c,v 1.8 1996/11/21 10:28:12 vixie Exp $"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/net/inet_net_pton.c,v 1.8 2002/03/22 21:52:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/inet_net_pton.c,v 1.9 2003/09/15 23:38:06 fenner Exp $"); #include #include @@ -186,7 +186,7 @@ else /* Class A */ bits = 8; /* If imputed mask is narrower than specified octets, widen. */ - if (bits >= 8 && bits < ((dst - odst) * 8)) + if (bits < ((dst - odst) * 8)) bits = (dst - odst) * 8; } /* Extend network to cover the actual mask. */ ==== //depot/projects/ia64/lib/libpthread/arch/amd64/amd64/context.S#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/context.S,v 1.2 2003/07/26 02:36:50 davidxu Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/context.S,v 1.3 2003/09/16 00:00:53 deischen Exp $"); /* * The following notes ("cheat sheet") was provided by Peter Wemm. @@ -72,22 +72,13 @@ * translations from i386 but with the register names updated, etc. * The main gotcha is that FPU save/restore is in SSE format, which * means a sparse 512 byte FPU context. - * - * Note that the FPU is suppose to be 512 bytes but that the - * definition for the FPU bits in struct mcontext does not - * agree: - * - * long mc_fpstate[128] __aligned(16); - * - * This would actually use 1024 bytes, not 512, since long is - * 8 bytes on amd64. */ /* * Where do we define these? */ -#define MC_SIZE 1312 /* sizeof mcontext_t */ +#define MC_SIZE 800 /* sizeof mcontext_t */ #define MC_LEN_OFFSET (24*8) /* offset to mc_len from mcontext */ #define MC_FPFMT_OFFSET (25*8) /* offset to mc_fpformat from mcontext */ #define MC_FPFMT_NODEV 0x10000 ==== //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#35 (text+ko) ==== @@ -33,7 +33,7 @@ * */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.94 2003/09/14 22:52:16 davidxu Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.95 2003/09/16 02:03:39 davidxu Exp $"); #include #include @@ -330,6 +330,7 @@ */ sigprocmask(SIG_SETMASK, &curthread->sigmask, NULL); curthread->kse->k_kcb->kcb_kmbx.km_curthread = NULL; + curthread->attr.flags |= PTHREAD_SCOPE_SYSTEM; _thr_active_threads = 1; #endif } @@ -1642,7 +1643,7 @@ for (i = 1; i <= _SIG_MAXSIG; ++i) { if (SIGISMEMBER(thread->sigpend, i) && !SIGISMEMBER(thread->sigmask, i)) { - restart = _thread_sigact[1 - 1].sa_flags & SA_RESTART; + restart = _thread_sigact[i - 1].sa_flags & SA_RESTART; kse_thr_interrupt(&thread->tcb->tcb_tmbx, restart ? KSE_INTR_RESTART : KSE_INTR_INTERRUPT, 0); break; ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#26 (text+ko) ==== @@ -38,7 +38,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.48 2003/09/08 14:53:01 simon Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.49 2003/09/16 23:25:48 bmah Exp $ 2000 @@ -149,6 +149,14 @@ &release.prev; security fix branch. More information can be found in security advisory FreeBSD-SA-03:10. + + OpenSSH contains a bug in its + buffer management code that could potentially cause it to crash. + This bug has been fixed via a vendor-supplied patch on the + &release.branch; development branch and the &release.prev; + security fix branch. For more details, refer to security + advisory + FreeBSD-SA-03:12. ]]> ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#124 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.622 2003/09/14 18:20:24 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.623 2003/09/16 23:25:48 bmah Exp $ 2000 @@ -134,6 +134,13 @@ module is not enabled in &os; by default. For more information, see security advisory FreeBSD-SA-03:10. &merged; + + A buffer management bug in + OpenSSH, which could potentially + cause a crash, has been fixed. More information can be found in + security advisory + FreeBSD-SA-03:12. &merged; + ==== //depot/projects/ia64/share/man/man4/ath.4#8 (text+ko) ==== @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGES. .\" -.\" $FreeBSD: src/share/man/man4/ath.4,v 1.8 2003/09/01 23:09:09 imp Exp $ +.\" $FreeBSD: src/share/man/man4/ath.4,v 1.9 2003/09/16 22:43:36 shiba Exp $ .\"/ .Dd August 1, 2003 .Dt ATH 4 @@ -118,6 +118,7 @@ Linksys WMP55AG AR5212 PCI Linksys WPC51AB AR5211 CardBus Linksys WPC55AG AR5212 CardBus +NEC PA-WL/54AG AR5212 CardBus Netgear WAB501 AR5211 CardBus Netgear WAG511 AR5212 CardBus Proxim Skyline 4030 AR5210 CardBus ==== //depot/projects/ia64/share/man/man4/ath_hal.4#5 (text+ko) ==== @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGES. .\" -.\" $FreeBSD: src/share/man/man4/ath_hal.4,v 1.4 2003/09/01 23:09:09 imp Exp $ +.\" $FreeBSD: src/share/man/man4/ath_hal.4,v 1.5 2003/09/16 22:43:36 shiba Exp $ .\"/ .Dd June 23, 2003 .Dt ATH_HAL 4 @@ -64,6 +64,7 @@ Linksys WMP55AG AR5212 PCI Linksys WPC51AB AR5211 CardBus Linksys WPC55AG AR5212 CardBus +NEC PA-WL/54AG AR5212 CardBus Netgear WAB501 AR5211 CardBus Netgear WAG511 AR5212 CardBus Proxim Skyline 4030 AR5210 CardBus ==== //depot/projects/ia64/sys/boot/i386/libi386/comconsole.c#3 (text+ko) ==== @@ -24,33 +24,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.9 2003/08/25 23:28:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.10 2003/09/16 11:24:23 bde Exp $"); #include #include #include +#include #include "libi386.h" -/* selected defines from ns16550.h */ -#define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ -#define com_mcr 4 /* modem control register (R/W) */ -#define com_lsr 5 /* line status register (R/W) */ -#define com_msr 6 /* modem status register (R/W) */ - -/* selected defines from sioreg.h */ -#define CFCR_DLAB 0x80 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 -#define LSR_TXRDY 0x20 -#define LSR_RXRDY 0x01 - #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ ==== //depot/projects/ia64/sys/boot/pc98/libpc98/comconsole.c#3 (text+ko) ==== @@ -24,33 +24,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.4 2003/09/08 09:11:20 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.5 2003/09/16 11:24:23 bde Exp $"); #include #include #include +#include #include "libi386.h" -/* selected defines from ns16550.h */ -#define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ -#define com_mcr 4 /* modem control register (R/W) */ -#define com_lsr 5 /* line status register (R/W) */ -#define com_msr 6 /* modem status register (R/W) */ - -/* selected defines from sioreg.h */ -#define CFCR_DLAB 0x80 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 -#define LSR_TXRDY 0x20 -#define LSR_RXRDY 0x01 - #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ ==== //depot/projects/ia64/sys/dev/aac/aac.c#31 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.77 2003/09/01 20:44:18 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.78 2003/09/16 16:07:15 scottl Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -1877,7 +1877,11 @@ error = ENOENT; goto out; } - + + /* wrap the pi so the following test works */ + if (pi >= aac_qinfo[queue].size) + pi = 0; + notify = 0; if (ci == pi + 1) notify++; ==== //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.11 2003/09/10 09:57:16 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.13 2003/09/16 15:21:37 sos Exp $"); #include "opt_ata.h" #include @@ -270,14 +270,28 @@ { struct ata_channel *ch = (struct ata_channel *)data; struct ata_request *request = ch->running; - u_int8_t status; int length; - /* if the channel is idle this interrupt is not for us (shared) */ - if (ch->state == ATA_IDLE) + /* ignore this interrupt if there is no running request */ + if (!request) { + if (ATA_LOCK_CH(ch, ATA_CONTROL)) { + u_int8_t status = ATA_IDX_INB(ch, ATA_STATUS); + u_int8_t error = ATA_IDX_INB(ch, ATA_ERROR); + + if (bootverbose) + ata_printf(ch, -1, + "spurious interrupt - status=0x%02x error=0x%02x\n", + status, error); + ATA_UNLOCK_CH(ch); + } + else { + if (bootverbose) + ata_printf(ch, -1, "spurious interrupt - channel busy\n"); + } return; + } - /* if device is busy it didn't interrupt, ignore interrupt (shared) */ + /* ignore interrupt if device is busy */ if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) { DELAY(100); if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DRQ)) @@ -285,23 +299,8 @@ } /* clear interrupt and get status */ - status = ATA_IDX_INB(ch, ATA_STATUS); + request->status = ATA_IDX_INB(ch, ATA_STATUS); - /* if we dont have a running request shout and ignore this interrupt */ - if (request == NULL) { - if (1 || bootverbose) { - printf("ata%d: spurious interrupt - ", device_get_unit(ch->dev)); - if (request) - printf("request OK - "); - printf("status=0x%02x error=0x%02x reason=0x%02x\n", - status, ATA_IDX_INB(ch, ATA_ERROR), - ATA_IDX_INB(ch, ATA_IREASON)); - } - return; - } - - request->status = status; - switch (request->flags & (ATA_R_ATAPI | ATA_R_DMA)) { /* ATA PIO data transfer and control commands */ @@ -545,15 +544,19 @@ stat0, err, lsb, msb); if (!(stat0 & ATA_S_BUSY)) { if (err == ATA_E_ILI) { - if (stat0 & ATA_S_READY) { + if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { + ch->devices |= ATA_ATAPI_MASTER; + } + else if (stat0 & ATA_S_READY) { ch->devices |= ATA_ATA_MASTER; } - else if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { - ch->devices |= ATA_ATAPI_MASTER; - } + } + else if (err == lsb && err == msb) { + ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); + DELAY(10); + if (stat0 == ATA_IDX_INB(ch, ATA_STATUS)) + stat0 |= ATA_S_BUSY; } - else if (err == lsb && err == msb) - stat0 |= ATA_S_BUSY; } } if (stat1 & ATA_S_BUSY) { @@ -569,15 +572,19 @@ stat1, err, lsb, msb); if (!(stat1 & ATA_S_BUSY)) { if (err == ATA_E_ILI) { - if (stat1 & ATA_S_READY) { + if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { + ch->devices |= ATA_ATAPI_SLAVE; + } + else if (stat1 & ATA_S_READY) { ch->devices |= ATA_ATA_SLAVE; } - else if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { - ch->devices |= ATA_ATAPI_SLAVE; - } + } + else if (err == lsb && err == msb) { + ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); + DELAY(10); + if (stat1 == ATA_IDX_INB(ch, ATA_STATUS)) + stat1 |= ATA_S_BUSY; } - else if (err == lsb && err == msb) - stat1 |= ATA_S_BUSY; } } if (mask == 0x01) /* wait for master only */ ==== //depot/projects/ia64/sys/dev/ata/atapi-cd.c#30 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.144 2003/09/11 19:27:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.145 2003/09/16 14:41:44 sos Exp $"); #include "opt_ata.h" #include @@ -1034,7 +1034,7 @@ break; case DIOCGMEDIASIZE: - *(off_t *)addr = cdp->disk_size * cdp->block_size; + *(off_t *)addr = (off_t)cdp->disk_size * (off_t)cdp->block_size; break; case DIOCGSECTORSIZE: ==== //depot/projects/ia64/sys/dev/ic/ns16550.h#3 (text+ko) ==== @@ -31,21 +31,165 @@ * SUCH DAMAGE. * * from: @(#)ns16550.h 7.1 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/dev/ic/ns16550.h,v 1.9 2002/09/22 08:51:28 phk Exp $ + * $FreeBSD: src/sys/dev/ic/ns16550.h,v 1.14 2003/09/16 14:21:17 bde Exp $ */ /* - * NS16550 UART registers + * NS8250... UART registers. */ + +/* 8250 registers #[0-6]. */ + #define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ +#define com_thr com_data /* transmitter holding register (W) */ +#define com_rhr com_data /* receiver holding register (R) */ + +#define com_ier 1 /* interrupt enable register (W) */ +#define IER_ERXRDY 0x1 +#define IER_ETXRDY 0x2 +#define IER_ERLS 0x4 +#define IER_EMSC 0x8 + +#define com_iir 2 /* interrupt identification register (R) */ +#define com_isr com_iir /* interrupt status register (R) */ +#define IIR_IMASK 0xf +#define IIR_RXTOUT 0xc +#define IIR_RLS 0x6 +#define IIR_RXRDY 0x4 +#define IIR_TXRDY 0x2 +#define IIR_NOPEND 0x1 +#define IIR_MLSC 0x0 +#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ + +#define com_lcr 3 /* line control register (R/W) */ +#define com_lctl com_lcr +#define com_cfcr com_lcr /* character format control register (R/W) */ +#define LCR_DLAB 0x80 +#define CFCR_DLAB LCR_DLAB +#define LCR_EFR_ENABLE 0xbf /* magic to enable EFR on 16650 up */ +#define CFCR_EFR_ENABLE LCR_EFR_ENABLE +#define CFCR_SBREAK 0x40 +#define CFCR_PZERO 0x30 +#define CFCR_PONE 0x20 +#define CFCR_PEVEN 0x10 +#define CFCR_PODD 0x00 +#define CFCR_PENAB 0x08 +#define CFCR_STOPB 0x04 +#define CFCR_8BITS 0x03 +#define CFCR_7BITS 0x02 +#define CFCR_6BITS 0x01 +#define CFCR_5BITS 0x00 + #define com_mcr 4 /* modem control register (R/W) */ +#define MCR_PRESCALE 0x80 /* only available on 16650 up */ +#define MCR_LOOPBACK 0x10 +#define MCR_IENABLE 0x08 +#define MCR_DRS 0x04 +#define MCR_RTS 0x02 +#define MCR_DTR 0x01 + #define com_lsr 5 /* line status register (R/W) */ +#define LSR_RCV_FIFO 0x80 +#define LSR_TSRE 0x40 +#define LSR_TXRDY 0x20 +#define LSR_BI 0x10 +#define LSR_FE 0x08 +#define LSR_PE 0x04 +#define LSR_OE 0x02 +#define LSR_RXRDY 0x01 +#define LSR_RCV_MASK 0x1f + #define com_msr 6 /* modem status register (R/W) */ -#define com_scr 7 /* scratch register for 16450 up (R/W) */ +#define MSR_DCD 0x80 +#define MSR_RI 0x40 +#define MSR_DSR 0x20 +#define MSR_CTS 0x10 +#define MSR_DDCD 0x08 +#define MSR_TERI 0x04 +#define MSR_DDSR 0x02 +#define MSR_DCTS 0x01 + +/* 8250 multiplexed registers #[0-1]. Access enabled by LCR[7]. */ +#define com_dll 0 /* divisor latch low (R/W) */ +#define com_dlbl com_dll +#define com_dlm 1 /* divisor latch high (R/W) */ +#define com_dlbh com_dlm + +/* 16450 register #7. Not multiplexed. */ +#define com_scr 7 /* scratch register (R/W) */ + +/* 16550 register #2. Not multiplexed. */ +#define com_fcr 2 /* FIFO control register (W) */ +#define com_fifo com_fcr +#define FIFO_ENABLE 0x01 +#define FIFO_RCV_RST 0x02 +#define FIFO_XMT_RST 0x04 +#define FIFO_DMA_MODE 0x08 +#define FIFO_RX_LOW 0x00 +#define FIFO_RX_MEDL 0x40 +#define FIFO_RX_MEDH 0x80 +#define FIFO_RX_HIGH 0xc0 + +/* 16650 registers #2,[4-7]. Access enabled by LCR_EFR_ENABLE. */ + +#define com_efr 2 /* enhanced features register (R/W) */ +#define EFR_AUTOCTS 0x80 +#define EFR_AUTORTS 0x40 +#define EFR_EFE 0x10 /* enhanced functions enable */ + +#define com_xon1 4 /* XON 1 character (R/W) */ +#define com_xon2 5 /* XON 2 character (R/W) */ +#define com_xoff1 6 /* XOFF 1 character (R/W) */ +#define com_xoff2 7 /* XOFF 2 character (R/W) */ + +/* 16950 register #1. Access enabled by ACR[7]. Also requires !LCR[7]. */ +#define com_asr 1 /* additional status register (R[0-7]/W[0-1]) */ + +/* 16950 register #3. R/W access enabled by ACR[7]. */ +#define com_rfl 3 /* receiver fifo level (R) */ + +/* + * 16950 register #4. Access enabled by ACR[7]. Also requires + * !LCR_EFR_ENABLE. + */ +#define com_tfl 4 /* transmitter fifo level (R) */ + +/* + * 16950 register #5. Accessible if !LCR_EFR_ENABLE. Read access also + * requires ACR[6]. + */ +#define com_icr 5 /* index control register (R/W) */ + +/* + * 16950 register #7. It is the same as com_scr except it has a different + * abbreviation in the manufacturer's data sheet and it also serves as an + * index into the Indexed Control register set. + */ +#define com_spr com_scr /* scratch pad (and index) register (R/W) */ + +/* + * 16950 indexed control registers #[0-0x13]. Access is via index in SPR, + * data in ICR (if ICR is accessible). + */ + +#define com_acr 0 /* additional control register (R/W) */ +#define ACR_ASE 0x80 /* ASR/RFL/TFL enable */ +#define ACR_ICRE 0x40 /* ICR enable */ +#define ACR_TLE 0x20 /* TTL/RTL enable */ + +#define com_cpr 1 /* clock prescaler register (R/W) */ +#define com_tcr 2 /* times clock register (R/W) */ +#define com_ttl 4 /* transmitter trigger level (R/W) */ +#define com_rtl 5 /* receiver trigger level (R/W) */ +/* ... */ + +#ifdef PC98 +/* Hardware extension mode register for RSB-2000/3000. */ +#define com_emr com_msr +#define EMR_EXBUFF 0x04 +#define EMR_CTSFLW 0x08 +#define EMR_DSRFLW 0x10 +#define EMR_RTSFLW 0x20 +#define EMR_DTRFLW 0x40 +#define EMR_EFMODE 0x80 +#endif ==== //depot/projects/ia64/sys/dev/sio/sioreg.h#9 (text+ko) ==== @@ -31,97 +31,12 @@ * SUCH DAMAGE. * * from: @(#)comreg.h 7.2 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.22 2003/03/18 21:26:28 sobomax Exp $ + * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.23 2003/09/16 08:08:08 bde Exp $ */ /* Receiver clock frequency for "standard" pc serial ports. */ #define DEFAULT_RCLK 1843200 -/* interrupt enable register */ -#define IER_ERXRDY 0x1 -#define IER_ETXRDY 0x2 -#define IER_ERLS 0x4 -#define IER_EMSC 0x8 - -/* interrupt identification register */ -#define IIR_IMASK 0xf -#define IIR_RXTOUT 0xc -#define IIR_RLS 0x6 -#define IIR_RXRDY 0x4 -#define IIR_TXRDY 0x2 -#define IIR_NOPEND 0x1 -#define IIR_MLSC 0x0 -#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ - -/* fifo control register */ -#define FIFO_ENABLE 0x01 -#define FIFO_RCV_RST 0x02 -#define FIFO_XMT_RST 0x04 -#define FIFO_DMA_MODE 0x08 -#define FIFO_RX_LOW 0x00 -#define FIFO_RX_MEDL 0x40 -#define FIFO_RX_MEDH 0x80 -#define FIFO_RX_HIGH 0xc0 - -/* character format control register (aka line control register) */ -#define CFCR_DLAB 0x80 -#define CFCR_SBREAK 0x40 -#define CFCR_PZERO 0x30 -#define CFCR_PONE 0x20 -#define CFCR_PEVEN 0x10 -#define CFCR_PODD 0x00 -#define CFCR_PENAB 0x08 -#define CFCR_STOPB 0x04 -#define CFCR_8BITS 0x03 -#define CFCR_7BITS 0x02 -#define CFCR_6BITS 0x01 -#define CFCR_5BITS 0x00 -#define CFCR_EFR_ENABLE 0xbf /* magic to enable EFR on 16650 up */ - -/* modem control register */ -#define MCR_PRESCALE 0x80 /* only available on 16650 up */ -#define MCR_LOOPBACK 0x10 -#define MCR_IENABLE 0x08 -#define MCR_DRS 0x04 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 - -/* line status register */ -#define LSR_RCV_FIFO 0x80 -#define LSR_TSRE 0x40 -#define LSR_TXRDY 0x20 -#define LSR_BI 0x10 -#define LSR_FE 0x08 -#define LSR_PE 0x04 -#define LSR_OE 0x02 -#define LSR_RXRDY 0x01 -#define LSR_RCV_MASK 0x1f - -/* modem status register */ -#define MSR_DCD 0x80 -#define MSR_RI 0x40 -#define MSR_DSR 0x20 -#define MSR_CTS 0x10 -#define MSR_DDCD 0x08 -#define MSR_TERI 0x04 -#define MSR_DDSR 0x02 -#define MSR_DCTS 0x01 - -/* enhanced feature register (only available on 16650 up) */ -#define com_efr com_fifo -#define EFR_EFE 0x10 /* enhanced functions enable */ - -#ifdef PC98 -/* Hardware extension mode register for RSB-2000/3000. */ -#define com_emr com_msr -#define EMR_EXBUFF 0x04 -#define EMR_CTSFLW 0x08 -#define EMR_DSRFLW 0x10 -#define EMR_RTSFLW 0x20 -#define EMR_DTRFLW 0x40 -#define EMR_EFMODE 0x80 -#endif - /* speed to initialize to during chip tests */ #define SIO_TEST_SPEED 9600 ==== //depot/projects/ia64/sys/dev/sound/isa/mpu.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ * This handles io against /dev/midi, the midi {in, out}put event queues * and the event/message transmittion to/from an MPU401 interface. * - * $FreeBSD: src/sys/dev/sound/isa/mpu.c,v 1.16 2002/04/04 21:03:16 jhb Exp $ + * $FreeBSD: src/sys/dev/sound/isa/mpu.c,v 1.17 2003/09/16 11:04:22 bde Exp $ * */ @@ -42,7 +42,6 @@ #include #include -#include #include static devclass_t midi_devclass; ==== //depot/projects/ia64/sys/dev/sound/isa/uartsio.c#5 (text+ko) ==== @@ -42,11 +42,10 @@ * This handles io against /dev/midi, the midi {in, out}put event queues * and the event/message transmittion to/from a serial port interface. * - * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.13 2002/12/18 22:53:23 semenu Exp $ + * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.15 2003/09/17 01:09:10 bde Exp $ * */ -#include #include #include ==== //depot/projects/ia64/sys/dev/uart/uart_bus.h#3 (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/dev/uart/uart_bus.h,v 1.2 2003/09/11 23:06:42 marcel Exp $ + * $FreeBSD: src/sys/dev/uart/uart_bus.h,v 1.3 2003/09/17 01:41:21 marcel Exp $ */ #ifndef _DEV_UART_BUS_H_ @@ -113,6 +113,8 @@ struct uart_bas sc_bas; device_t sc_dev; + struct mtx sc_hwmtx; /* Spinlock protecting hardware. */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Sep 16 20:27:07 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4101016A4C0; Tue, 16 Sep 2003 20:27:07 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1AA0716A4B3 for ; Tue, 16 Sep 2003 20:27:07 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E8B8043F75 for ; Tue, 16 Sep 2003 20:27:05 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8H3R6XJ005537 for ; Tue, 16 Sep 2003 20:27:06 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8H3R53b005534 for perforce@freebsd.org; Tue, 16 Sep 2003 20:27:05 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Tue, 16 Sep 2003 20:27:05 -0700 (PDT) Message-Id: <200309170327.h8H3R53b005534@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38170 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 03:27:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=38170 Change 38170 by marcel@marcel_nfs on 2003/09/16 20:26:15 IFC @38168 Affected files ... .. //depot/projects/uart/boot/i386/libi386/comconsole.c#3 integrate .. //depot/projects/uart/boot/pc98/libpc98/comconsole.c#3 integrate .. //depot/projects/uart/dev/aac/aac.c#7 integrate .. //depot/projects/uart/dev/ata/ata-lowlevel.c#7 integrate .. //depot/projects/uart/dev/ata/atapi-cd.c#7 integrate .. //depot/projects/uart/dev/ic/ns16550.h#2 integrate .. //depot/projects/uart/dev/sio/sioreg.h#2 integrate .. //depot/projects/uart/dev/sound/isa/mpu.c#2 integrate .. //depot/projects/uart/dev/sound/isa/uartsio.c#2 integrate .. //depot/projects/uart/dev/uart/uart_bus.h#29 integrate .. //depot/projects/uart/dev/uart/uart_core.c#29 integrate .. //depot/projects/uart/dev/uart/uart_dev_i8251.c#2 integrate .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#29 integrate .. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#28 integrate .. //depot/projects/uart/dev/uart/uart_dev_z8530.c#14 integrate .. //depot/projects/uart/dev/uart/uart_if.m#11 integrate .. //depot/projects/uart/modules/uart/Makefile#9 integrate .. //depot/projects/uart/net/bridge.c#2 integrate .. //depot/projects/uart/netinet/ip_dummynet.c#4 integrate .. //depot/projects/uart/netinet/ip_fw2.c#6 integrate .. //depot/projects/uart/pci/agp_intel.c#3 integrate .. //depot/projects/uart/pci/if_dc.c#13 integrate Differences ... ==== //depot/projects/uart/boot/i386/libi386/comconsole.c#3 (text+ko) ==== @@ -24,33 +24,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.9 2003/08/25 23:28:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.10 2003/09/16 11:24:23 bde Exp $"); #include #include #include +#include #include "libi386.h" -/* selected defines from ns16550.h */ -#define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ -#define com_mcr 4 /* modem control register (R/W) */ -#define com_lsr 5 /* line status register (R/W) */ -#define com_msr 6 /* modem status register (R/W) */ - -/* selected defines from sioreg.h */ -#define CFCR_DLAB 0x80 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 -#define LSR_TXRDY 0x20 -#define LSR_RXRDY 0x01 - #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ ==== //depot/projects/uart/boot/pc98/libpc98/comconsole.c#3 (text+ko) ==== @@ -24,33 +24,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.4 2003/09/08 09:11:20 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/comconsole.c,v 1.5 2003/09/16 11:24:23 bde Exp $"); #include #include #include +#include #include "libi386.h" -/* selected defines from ns16550.h */ -#define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ -#define com_mcr 4 /* modem control register (R/W) */ -#define com_lsr 5 /* line status register (R/W) */ -#define com_msr 6 /* modem status register (R/W) */ - -/* selected defines from sioreg.h */ -#define CFCR_DLAB 0x80 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 -#define LSR_TXRDY 0x20 -#define LSR_RXRDY 0x01 - #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ ==== //depot/projects/uart/dev/aac/aac.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.77 2003/09/01 20:44:18 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.78 2003/09/16 16:07:15 scottl Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -1877,7 +1877,11 @@ error = ENOENT; goto out; } - + + /* wrap the pi so the following test works */ + if (pi >= aac_qinfo[queue].size) + pi = 0; + notify = 0; if (ci == pi + 1) notify++; ==== //depot/projects/uart/dev/ata/ata-lowlevel.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.11 2003/09/10 09:57:16 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.13 2003/09/16 15:21:37 sos Exp $"); #include "opt_ata.h" #include @@ -270,14 +270,28 @@ { struct ata_channel *ch = (struct ata_channel *)data; struct ata_request *request = ch->running; - u_int8_t status; int length; - /* if the channel is idle this interrupt is not for us (shared) */ - if (ch->state == ATA_IDLE) + /* ignore this interrupt if there is no running request */ + if (!request) { + if (ATA_LOCK_CH(ch, ATA_CONTROL)) { + u_int8_t status = ATA_IDX_INB(ch, ATA_STATUS); + u_int8_t error = ATA_IDX_INB(ch, ATA_ERROR); + + if (bootverbose) + ata_printf(ch, -1, + "spurious interrupt - status=0x%02x error=0x%02x\n", + status, error); + ATA_UNLOCK_CH(ch); + } + else { + if (bootverbose) + ata_printf(ch, -1, "spurious interrupt - channel busy\n"); + } return; + } - /* if device is busy it didn't interrupt, ignore interrupt (shared) */ + /* ignore interrupt if device is busy */ if (ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_BUSY) { DELAY(100); if (!(ATA_IDX_INB(ch, ATA_ALTSTAT) & ATA_S_DRQ)) @@ -285,23 +299,8 @@ } /* clear interrupt and get status */ - status = ATA_IDX_INB(ch, ATA_STATUS); + request->status = ATA_IDX_INB(ch, ATA_STATUS); - /* if we dont have a running request shout and ignore this interrupt */ - if (request == NULL) { - if (1 || bootverbose) { - printf("ata%d: spurious interrupt - ", device_get_unit(ch->dev)); - if (request) - printf("request OK - "); - printf("status=0x%02x error=0x%02x reason=0x%02x\n", - status, ATA_IDX_INB(ch, ATA_ERROR), - ATA_IDX_INB(ch, ATA_IREASON)); - } - return; - } - - request->status = status; - switch (request->flags & (ATA_R_ATAPI | ATA_R_DMA)) { /* ATA PIO data transfer and control commands */ @@ -545,15 +544,19 @@ stat0, err, lsb, msb); if (!(stat0 & ATA_S_BUSY)) { if (err == ATA_E_ILI) { - if (stat0 & ATA_S_READY) { + if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { + ch->devices |= ATA_ATAPI_MASTER; + } + else if (stat0 & ATA_S_READY) { ch->devices |= ATA_ATA_MASTER; } - else if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { - ch->devices |= ATA_ATAPI_MASTER; - } + } + else if (err == lsb && err == msb) { + ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); + DELAY(10); + if (stat0 == ATA_IDX_INB(ch, ATA_STATUS)) + stat0 |= ATA_S_BUSY; } - else if (err == lsb && err == msb) - stat0 |= ATA_S_BUSY; } } if (stat1 & ATA_S_BUSY) { @@ -569,15 +572,19 @@ stat1, err, lsb, msb); if (!(stat1 & ATA_S_BUSY)) { if (err == ATA_E_ILI) { - if (stat1 & ATA_S_READY) { + if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { + ch->devices |= ATA_ATAPI_SLAVE; + } + else if (stat1 & ATA_S_READY) { ch->devices |= ATA_ATA_SLAVE; } - else if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { - ch->devices |= ATA_ATAPI_SLAVE; - } + } + else if (err == lsb && err == msb) { + ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); + DELAY(10); + if (stat1 == ATA_IDX_INB(ch, ATA_STATUS)) + stat1 |= ATA_S_BUSY; } - else if (err == lsb && err == msb) - stat1 |= ATA_S_BUSY; } } if (mask == 0x01) /* wait for master only */ ==== //depot/projects/uart/dev/ata/atapi-cd.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.144 2003/09/11 19:27:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.145 2003/09/16 14:41:44 sos Exp $"); #include "opt_ata.h" #include @@ -1034,7 +1034,7 @@ break; case DIOCGMEDIASIZE: - *(off_t *)addr = cdp->disk_size * cdp->block_size; + *(off_t *)addr = (off_t)cdp->disk_size * (off_t)cdp->block_size; break; case DIOCGSECTORSIZE: ==== //depot/projects/uart/dev/ic/ns16550.h#2 (text+ko) ==== @@ -31,21 +31,165 @@ * SUCH DAMAGE. * * from: @(#)ns16550.h 7.1 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/dev/ic/ns16550.h,v 1.9 2002/09/22 08:51:28 phk Exp $ + * $FreeBSD: src/sys/dev/ic/ns16550.h,v 1.14 2003/09/16 14:21:17 bde Exp $ */ /* - * NS16550 UART registers + * NS8250... UART registers. */ + +/* 8250 registers #[0-6]. */ + #define com_data 0 /* data register (R/W) */ -#define com_dlbl 0 /* divisor latch low (W) */ -#define com_dlbh 1 /* divisor latch high (W) */ -#define com_ier 1 /* interrupt enable (W) */ -#define com_iir 2 /* interrupt identification (R) */ -#define com_fifo 2 /* FIFO control (W) */ -#define com_lctl 3 /* line control register (R/W) */ -#define com_cfcr 3 /* line control register (R/W) */ +#define com_thr com_data /* transmitter holding register (W) */ +#define com_rhr com_data /* receiver holding register (R) */ + +#define com_ier 1 /* interrupt enable register (W) */ +#define IER_ERXRDY 0x1 +#define IER_ETXRDY 0x2 +#define IER_ERLS 0x4 +#define IER_EMSC 0x8 + +#define com_iir 2 /* interrupt identification register (R) */ +#define com_isr com_iir /* interrupt status register (R) */ +#define IIR_IMASK 0xf +#define IIR_RXTOUT 0xc +#define IIR_RLS 0x6 +#define IIR_RXRDY 0x4 +#define IIR_TXRDY 0x2 +#define IIR_NOPEND 0x1 +#define IIR_MLSC 0x0 +#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ + +#define com_lcr 3 /* line control register (R/W) */ +#define com_lctl com_lcr +#define com_cfcr com_lcr /* character format control register (R/W) */ +#define LCR_DLAB 0x80 +#define CFCR_DLAB LCR_DLAB +#define LCR_EFR_ENABLE 0xbf /* magic to enable EFR on 16650 up */ +#define CFCR_EFR_ENABLE LCR_EFR_ENABLE +#define CFCR_SBREAK 0x40 +#define CFCR_PZERO 0x30 +#define CFCR_PONE 0x20 +#define CFCR_PEVEN 0x10 +#define CFCR_PODD 0x00 +#define CFCR_PENAB 0x08 +#define CFCR_STOPB 0x04 +#define CFCR_8BITS 0x03 +#define CFCR_7BITS 0x02 +#define CFCR_6BITS 0x01 +#define CFCR_5BITS 0x00 + #define com_mcr 4 /* modem control register (R/W) */ +#define MCR_PRESCALE 0x80 /* only available on 16650 up */ +#define MCR_LOOPBACK 0x10 +#define MCR_IENABLE 0x08 +#define MCR_DRS 0x04 +#define MCR_RTS 0x02 +#define MCR_DTR 0x01 + #define com_lsr 5 /* line status register (R/W) */ +#define LSR_RCV_FIFO 0x80 +#define LSR_TSRE 0x40 +#define LSR_TXRDY 0x20 +#define LSR_BI 0x10 +#define LSR_FE 0x08 +#define LSR_PE 0x04 +#define LSR_OE 0x02 +#define LSR_RXRDY 0x01 +#define LSR_RCV_MASK 0x1f + #define com_msr 6 /* modem status register (R/W) */ -#define com_scr 7 /* scratch register for 16450 up (R/W) */ +#define MSR_DCD 0x80 +#define MSR_RI 0x40 +#define MSR_DSR 0x20 +#define MSR_CTS 0x10 +#define MSR_DDCD 0x08 +#define MSR_TERI 0x04 +#define MSR_DDSR 0x02 +#define MSR_DCTS 0x01 + +/* 8250 multiplexed registers #[0-1]. Access enabled by LCR[7]. */ +#define com_dll 0 /* divisor latch low (R/W) */ +#define com_dlbl com_dll +#define com_dlm 1 /* divisor latch high (R/W) */ +#define com_dlbh com_dlm + +/* 16450 register #7. Not multiplexed. */ +#define com_scr 7 /* scratch register (R/W) */ + +/* 16550 register #2. Not multiplexed. */ +#define com_fcr 2 /* FIFO control register (W) */ +#define com_fifo com_fcr +#define FIFO_ENABLE 0x01 +#define FIFO_RCV_RST 0x02 +#define FIFO_XMT_RST 0x04 +#define FIFO_DMA_MODE 0x08 +#define FIFO_RX_LOW 0x00 +#define FIFO_RX_MEDL 0x40 +#define FIFO_RX_MEDH 0x80 +#define FIFO_RX_HIGH 0xc0 + +/* 16650 registers #2,[4-7]. Access enabled by LCR_EFR_ENABLE. */ + +#define com_efr 2 /* enhanced features register (R/W) */ +#define EFR_AUTOCTS 0x80 +#define EFR_AUTORTS 0x40 +#define EFR_EFE 0x10 /* enhanced functions enable */ + +#define com_xon1 4 /* XON 1 character (R/W) */ +#define com_xon2 5 /* XON 2 character (R/W) */ +#define com_xoff1 6 /* XOFF 1 character (R/W) */ +#define com_xoff2 7 /* XOFF 2 character (R/W) */ + +/* 16950 register #1. Access enabled by ACR[7]. Also requires !LCR[7]. */ +#define com_asr 1 /* additional status register (R[0-7]/W[0-1]) */ + +/* 16950 register #3. R/W access enabled by ACR[7]. */ +#define com_rfl 3 /* receiver fifo level (R) */ + +/* + * 16950 register #4. Access enabled by ACR[7]. Also requires + * !LCR_EFR_ENABLE. + */ +#define com_tfl 4 /* transmitter fifo level (R) */ + +/* + * 16950 register #5. Accessible if !LCR_EFR_ENABLE. Read access also + * requires ACR[6]. + */ +#define com_icr 5 /* index control register (R/W) */ + +/* + * 16950 register #7. It is the same as com_scr except it has a different + * abbreviation in the manufacturer's data sheet and it also serves as an + * index into the Indexed Control register set. + */ +#define com_spr com_scr /* scratch pad (and index) register (R/W) */ + +/* + * 16950 indexed control registers #[0-0x13]. Access is via index in SPR, + * data in ICR (if ICR is accessible). + */ + +#define com_acr 0 /* additional control register (R/W) */ +#define ACR_ASE 0x80 /* ASR/RFL/TFL enable */ +#define ACR_ICRE 0x40 /* ICR enable */ +#define ACR_TLE 0x20 /* TTL/RTL enable */ + +#define com_cpr 1 /* clock prescaler register (R/W) */ +#define com_tcr 2 /* times clock register (R/W) */ +#define com_ttl 4 /* transmitter trigger level (R/W) */ +#define com_rtl 5 /* receiver trigger level (R/W) */ +/* ... */ + +#ifdef PC98 +/* Hardware extension mode register for RSB-2000/3000. */ +#define com_emr com_msr +#define EMR_EXBUFF 0x04 +#define EMR_CTSFLW 0x08 +#define EMR_DSRFLW 0x10 +#define EMR_RTSFLW 0x20 +#define EMR_DTRFLW 0x40 +#define EMR_EFMODE 0x80 +#endif ==== //depot/projects/uart/dev/sio/sioreg.h#2 (text+ko) ==== @@ -31,97 +31,12 @@ * SUCH DAMAGE. * * from: @(#)comreg.h 7.2 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.22 2003/03/18 21:26:28 sobomax Exp $ + * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.23 2003/09/16 08:08:08 bde Exp $ */ /* Receiver clock frequency for "standard" pc serial ports. */ #define DEFAULT_RCLK 1843200 -/* interrupt enable register */ -#define IER_ERXRDY 0x1 -#define IER_ETXRDY 0x2 -#define IER_ERLS 0x4 -#define IER_EMSC 0x8 - -/* interrupt identification register */ -#define IIR_IMASK 0xf -#define IIR_RXTOUT 0xc -#define IIR_RLS 0x6 -#define IIR_RXRDY 0x4 -#define IIR_TXRDY 0x2 -#define IIR_NOPEND 0x1 -#define IIR_MLSC 0x0 -#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ - -/* fifo control register */ -#define FIFO_ENABLE 0x01 -#define FIFO_RCV_RST 0x02 -#define FIFO_XMT_RST 0x04 -#define FIFO_DMA_MODE 0x08 -#define FIFO_RX_LOW 0x00 -#define FIFO_RX_MEDL 0x40 -#define FIFO_RX_MEDH 0x80 -#define FIFO_RX_HIGH 0xc0 - -/* character format control register (aka line control register) */ -#define CFCR_DLAB 0x80 -#define CFCR_SBREAK 0x40 -#define CFCR_PZERO 0x30 -#define CFCR_PONE 0x20 -#define CFCR_PEVEN 0x10 -#define CFCR_PODD 0x00 -#define CFCR_PENAB 0x08 -#define CFCR_STOPB 0x04 -#define CFCR_8BITS 0x03 -#define CFCR_7BITS 0x02 -#define CFCR_6BITS 0x01 -#define CFCR_5BITS 0x00 -#define CFCR_EFR_ENABLE 0xbf /* magic to enable EFR on 16650 up */ - -/* modem control register */ -#define MCR_PRESCALE 0x80 /* only available on 16650 up */ -#define MCR_LOOPBACK 0x10 -#define MCR_IENABLE 0x08 -#define MCR_DRS 0x04 -#define MCR_RTS 0x02 -#define MCR_DTR 0x01 - -/* line status register */ -#define LSR_RCV_FIFO 0x80 -#define LSR_TSRE 0x40 -#define LSR_TXRDY 0x20 -#define LSR_BI 0x10 -#define LSR_FE 0x08 -#define LSR_PE 0x04 -#define LSR_OE 0x02 -#define LSR_RXRDY 0x01 -#define LSR_RCV_MASK 0x1f - -/* modem status register */ -#define MSR_DCD 0x80 -#define MSR_RI 0x40 -#define MSR_DSR 0x20 -#define MSR_CTS 0x10 -#define MSR_DDCD 0x08 -#define MSR_TERI 0x04 -#define MSR_DDSR 0x02 -#define MSR_DCTS 0x01 - -/* enhanced feature register (only available on 16650 up) */ -#define com_efr com_fifo -#define EFR_EFE 0x10 /* enhanced functions enable */ - -#ifdef PC98 -/* Hardware extension mode register for RSB-2000/3000. */ -#define com_emr com_msr -#define EMR_EXBUFF 0x04 -#define EMR_CTSFLW 0x08 -#define EMR_DSRFLW 0x10 -#define EMR_RTSFLW 0x20 -#define EMR_DTRFLW 0x40 -#define EMR_EFMODE 0x80 -#endif - /* speed to initialize to during chip tests */ #define SIO_TEST_SPEED 9600 ==== //depot/projects/uart/dev/sound/isa/mpu.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * This handles io against /dev/midi, the midi {in, out}put event queues * and the event/message transmittion to/from an MPU401 interface. * - * $FreeBSD: src/sys/dev/sound/isa/mpu.c,v 1.16 2002/04/04 21:03:16 jhb Exp $ + * $FreeBSD: src/sys/dev/sound/isa/mpu.c,v 1.17 2003/09/16 11:04:22 bde Exp $ * */ @@ -42,7 +42,6 @@ #include #include -#include #include static devclass_t midi_devclass; ==== //depot/projects/uart/dev/sound/isa/uartsio.c#2 (text+ko) ==== @@ -42,11 +42,10 @@ * This handles io against /dev/midi, the midi {in, out}put event queues * and the event/message transmittion to/from a serial port interface. * - * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.13 2002/12/18 22:53:23 semenu Exp $ + * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.15 2003/09/17 01:09:10 bde Exp $ * */ -#include #include #include ==== //depot/projects/uart/dev/uart/uart_bus.h#29 (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/dev/uart/uart_bus.h,v 1.2 2003/09/11 23:06:42 marcel Exp $ + * $FreeBSD: src/sys/dev/uart/uart_bus.h,v 1.3 2003/09/17 01:41:21 marcel Exp $ */ #ifndef _DEV_UART_BUS_H_ @@ -113,6 +113,8 @@ struct uart_bas sc_bas; device_t sc_dev; + struct mtx sc_hwmtx; /* Spinlock protecting hardware. */ + struct resource *sc_rres; /* Register resource. */ int sc_rrid; int sc_rtype; /* SYS_RES_{IOPORT|MEMORY}. */ ==== //depot/projects/uart/dev/uart/uart_core.c#29 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.2 2003/09/11 23:06:42 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.4 2003/09/17 03:11:32 marcel Exp $"); #ifndef KLD_MODULE #include "opt_comconsole.h" @@ -200,17 +200,21 @@ if (sc->sc_leaving) return; - ipend = UART_IPEND(sc); - if (ipend & UART_IPEND_OVERRUN) - uart_intr_overrun(sc); - if (ipend & UART_IPEND_BREAK) - uart_intr_break(sc); - if (ipend & UART_IPEND_RXREADY) - uart_intr_rxready(sc); - if (ipend & UART_IPEND_SIGCHG) - uart_intr_sigchg(sc); - if (ipend & UART_IPEND_TXIDLE) - uart_intr_txidle(sc); + do { + ipend = UART_IPEND(sc); + if (ipend == 0) + break; + if (ipend & UART_IPEND_OVERRUN) + uart_intr_overrun(sc); + if (ipend & UART_IPEND_BREAK) + uart_intr_break(sc); + if (ipend & UART_IPEND_RXREADY) + uart_intr_rxready(sc); + if (ipend & UART_IPEND_SIGCHG) + uart_intr_sigchg(sc); + if (ipend & UART_IPEND_TXIDLE) + uart_intr_txidle(sc); + } while (1); if (sc->sc_opened && sc->sc_ttypend != 0) swi_sched(sc->sc_softih, 0); @@ -309,6 +313,8 @@ */ sc->sc_leaving = 1; + mtx_init(&sc->sc_hwmtx, "uart_hwmtx", NULL, MTX_SPIN); + /* * Re-allocate. We expect that the softc contains the information * collected by uart_bus_probe() intact. ==== //depot/projects/uart/dev/uart/uart_dev_i8251.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_i8251.c,v 1.1 2003/09/07 04:59:15 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_i8251.c,v 1.3 2003/09/17 03:11:32 marcel Exp $"); #include #include @@ -427,15 +427,19 @@ { struct i8251_softc *i8251 = (struct i8251_softc*)sc; struct uart_bas *bas; + int error; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); if (sc->sc_hasfifo) { i8251_flush(bas, what); uart_setreg(bas, REG_FCR, i8251->fcr); uart_barrier(bas); - return (0); - } - return (i8251_drain(bas, what)); + error = 0; + } else + error = i8251_drain(bas, what); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -447,7 +451,9 @@ do { old = sc->sc_hwsig; sig = old; + mtx_lock_spin(&sc->sc_hwmtx); msr = uart_getreg(&sc->sc_bas, REG_MSR); + mtx_unlock_spin(&sc->sc_hwmtx); SIGCHG(msr & MSR_DSR, sig, UART_SIG_DSR, UART_SIG_DDSR); SIGCHG(msr & MSR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); SIGCHG(msr & MSR_DCD, sig, UART_SIG_DCD, UART_SIG_DDCD); @@ -461,9 +467,12 @@ i8251_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) { struct uart_bas *bas; + int error; uint8_t lcr; bas = &sc->sc_bas; + error = 0; + mtx_lock_spin(&sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: lcr = uart_getreg(bas, REG_LCR); @@ -475,9 +484,11 @@ uart_barrier(bas); break; default: - return (EINVAL); + error = EINVAL; + break; } - return (0); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -488,13 +499,16 @@ uint8_t iir, lsr; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); - if (iir & IIR_NOPEND) + if (iir & IIR_NOPEND) { + mtx_unlock_spin(&sc->sc_hwmtx); return (0); - + } ipend = 0; if (iir & IIR_RXRDY) { lsr = uart_getreg(bas, REG_LSR); + mtx_unlock_spin(&sc->sc_hwmtx); if (lsr & LSR_OE) ipend |= UART_IPEND_OVERRUN; if (lsr & LSR_BI) @@ -502,12 +516,12 @@ if (lsr & LSR_RXRDY) ipend |= UART_IPEND_RXREADY; } else { + mtx_unlock_spin(&sc->sc_hwmtx); if (iir & IIR_TXRDY) ipend |= UART_IPEND_TXIDLE; else ipend |= UART_IPEND_SIGCHG; } - return ((sc->sc_leaving) ? 0 : ipend); } @@ -516,9 +530,13 @@ int stopbits, int parity) { struct uart_bas *bas; + int error; bas = &sc->sc_bas; - return (i8251_param(bas, baudrate, databits, stopbits, parity)); + mtx_lock_spin(&sc->sc_hwmtx); + error = i8251_param(bas, baudrate, databits, stopbits, parity); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -661,17 +679,28 @@ uint8_t lsr; bas = &sc->sc_bas; - while (!uart_rx_full(sc)) { - lsr = uart_getreg(bas, REG_LSR); - if ((lsr & LSR_RXRDY) == 0) + mtx_lock_spin(&sc->sc_hwmtx); + lsr = uart_getreg(bas, REG_LSR); + while (lsr & LSR_RXRDY) { + if (uart_rx_full(sc)) { + sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; break; + } xc = uart_getreg(bas, REG_DATA); if (lsr & LSR_FE) xc |= UART_STAT_FRAMERR; if (lsr & LSR_PE) xc |= UART_STAT_PARERR; uart_rx_put(sc, xc); + lsr = uart_getreg(bas, REG_LSR); + } + /* Discard everything left in the Rx FIFO. */ + while (lsr & LSR_RXRDY) { + (void)uart_getreg(bas, REG_DATA); + uart_barrier(bas); + lsr = uart_getreg(bas, REG_LSR); } + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -695,6 +724,7 @@ UART_SIG_DRTS); } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); + mtx_lock_spin(&sc->sc_hwmtx); i8251->mcr &= ~(MCR_DTR|MCR_RTS); if (new & UART_SIG_DTR) i8251->mcr |= MCR_DTR; @@ -702,6 +732,7 @@ i8251->mcr |= MCR_RTS; uart_setreg(bas, REG_MCR, i8251->mcr); uart_barrier(bas); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -713,6 +744,7 @@ int i; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0) ; uart_setreg(bas, REG_IER, i8251->ier | IER_ETXRDY); @@ -722,5 +754,6 @@ uart_barrier(bas); } sc->sc_txbusy = 1; + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#29 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.3 2003/09/13 06:25:04 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.5 2003/09/17 03:11:32 marcel Exp $"); #include #include @@ -427,15 +427,19 @@ { struct ns8250_softc *ns8250 = (struct ns8250_softc*)sc; struct uart_bas *bas; + int error; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); if (sc->sc_hasfifo) { ns8250_flush(bas, what); uart_setreg(bas, REG_FCR, ns8250->fcr); uart_barrier(bas); - return (0); - } - return (ns8250_drain(bas, what)); + error = 0; + } else + error = ns8250_drain(bas, what); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -447,7 +451,9 @@ do { old = sc->sc_hwsig; sig = old; + mtx_lock_spin(&sc->sc_hwmtx); msr = uart_getreg(&sc->sc_bas, REG_MSR); + mtx_unlock_spin(&sc->sc_hwmtx); SIGCHG(msr & MSR_DSR, sig, UART_SIG_DSR, UART_SIG_DDSR); SIGCHG(msr & MSR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); SIGCHG(msr & MSR_DCD, sig, UART_SIG_DCD, UART_SIG_DDCD); @@ -461,9 +467,12 @@ ns8250_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) { struct uart_bas *bas; + int error; uint8_t efr, lcr; bas = &sc->sc_bas; + error = 0; + mtx_lock_spin(&sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: lcr = uart_getreg(bas, REG_LCR); @@ -505,9 +514,11 @@ uart_barrier(bas); break; default: - return (EINVAL); + error = EINVAL; + break; } - return (0); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -518,13 +529,16 @@ uint8_t iir, lsr; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); - if (iir & IIR_NOPEND) + if (iir & IIR_NOPEND) { + mtx_unlock_spin(&sc->sc_hwmtx); return (0); - + } ipend = 0; if (iir & IIR_RXRDY) { lsr = uart_getreg(bas, REG_LSR); + mtx_unlock_spin(&sc->sc_hwmtx); if (lsr & LSR_OE) ipend |= UART_IPEND_OVERRUN; if (lsr & LSR_BI) @@ -532,12 +546,12 @@ if (lsr & LSR_RXRDY) ipend |= UART_IPEND_RXREADY; } else { + mtx_unlock_spin(&sc->sc_hwmtx); if (iir & IIR_TXRDY) ipend |= UART_IPEND_TXIDLE; else ipend |= UART_IPEND_SIGCHG; } - return ((sc->sc_leaving) ? 0 : ipend); } @@ -546,9 +560,13 @@ int stopbits, int parity) { struct uart_bas *bas; + int error; bas = &sc->sc_bas; - return (ns8250_param(bas, baudrate, databits, stopbits, parity)); + mtx_lock_spin(&sc->sc_hwmtx); + error = ns8250_param(bas, baudrate, databits, stopbits, parity); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -697,17 +715,28 @@ uint8_t lsr; bas = &sc->sc_bas; - while (!uart_rx_full(sc)) { - lsr = uart_getreg(bas, REG_LSR); - if ((lsr & LSR_RXRDY) == 0) + mtx_lock_spin(&sc->sc_hwmtx); + lsr = uart_getreg(bas, REG_LSR); + while (lsr & LSR_RXRDY) { + if (uart_rx_full(sc)) { + sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; break; + } xc = uart_getreg(bas, REG_DATA); if (lsr & LSR_FE) xc |= UART_STAT_FRAMERR; if (lsr & LSR_PE) xc |= UART_STAT_PARERR; uart_rx_put(sc, xc); + lsr = uart_getreg(bas, REG_LSR); + } + /* Discard everything left in the Rx FIFO. */ + while (lsr & LSR_RXRDY) { + (void)uart_getreg(bas, REG_DATA); + uart_barrier(bas); + lsr = uart_getreg(bas, REG_LSR); } + mtx_unlock_spin(&sc->sc_hwmtx); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Sep 16 20:51:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7267316A4C0; Tue, 16 Sep 2003 20:51:38 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4BA5316A4B3 for ; Tue, 16 Sep 2003 20:51:38 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 884F643FBF for ; Tue, 16 Sep 2003 20:51:36 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8H3paXJ013057 for ; Tue, 16 Sep 2003 20:51:36 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8H3pZiU013051 for perforce@freebsd.org; Tue, 16 Sep 2003 20:51:35 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Tue, 16 Sep 2003 20:51:35 -0700 (PDT) Message-Id: <200309170351.h8H3pZiU013051@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38171 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 03:51:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=38171 Change 38171 by marcel@marcel_nfs on 2003/09/16 20:51:07 diff reduction: revert previous change. pccardd is not built on ia64. Affected files ... .. //depot/projects/ia64/usr.sbin/pccard/pccardd/cardd.c#8 edit Differences ... ==== //depot/projects/ia64/usr.sbin/pccard/pccardd/cardd.c#8 (text+ko) ==== @@ -915,7 +915,7 @@ if (sp->flags & MEM_ASSIGNED) { mem.window = 0; mem.flags = sp->mem.flags; - mem.start = (caddr_t)(uintptr_t) sp->mem.addr; + mem.start = (caddr_t) sp->mem.addr; mem.card = sp->mem.cardaddr; mem.size = sp->mem.size; if (ioctl(sp->fd, PIOCSMEM, &mem)) { From owner-p4-projects@FreeBSD.ORG Wed Sep 17 10:10:55 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C8E7D16A4C0; Wed, 17 Sep 2003 10:10:54 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 807BF16A4B3 for ; Wed, 17 Sep 2003 10:10:54 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B47F43F3F for ; Wed, 17 Sep 2003 10:10:53 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8HHArXJ001176 for ; Wed, 17 Sep 2003 10:10:53 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8HHArq2001172 for perforce@freebsd.org; Wed, 17 Sep 2003 10:10:53 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Wed, 17 Sep 2003 10:10:53 -0700 (PDT) Message-Id: <200309171710.h8HHArq2001172@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 38192 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 17:10:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=38192 Change 38192 by hdandeka@hdandeka_yash on 2003/09/17 10:10:45 Integrate the POSIX semaphore related changes. Affected files ... .. //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#10 integrate .. //depot/projects/trustedbsd/mac/sys/posix4/ksem.h#2 integrate Differences ... ==== //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#10 (text+ko) ==== @@ -61,7 +61,7 @@ static struct ksem *sem_lookup_byname(const char *name); static int sem_create(struct thread *td, const char *name, struct ksem **ksret, mode_t mode, unsigned int value); -static void sem_free(struct ksem *ksnew); +static void sem_free(struct ksem *ksnew, int checkrefs); static int sem_perm(struct thread *td, struct ksem *ks); static void sem_enter(struct proc *p, struct ksem *ks); static int sem_leave(struct proc *p, struct ksem *ks); @@ -75,6 +75,8 @@ semid_t *idp); static int kern_sem_open(struct thread *td, int dir, const char *name, int oflag, mode_t mode, unsigned int value, semid_t *idp); +static int ksem_open_existing(struct thread *td, struct ksem *ks, int dir, + semid_t *idpu, semid_t *idpk); static int kern_sem_unlink(struct thread *td, const char *name); #ifndef SEM_MAX @@ -85,6 +87,8 @@ #define SEM_TO_ID(x) ((intptr_t)(x)) #define ID_TO_SEM(x) id_to_sem(x) +#define SEM_FREE(ks) sem_free(ks, 1) +#define SEM_DROP(ks) sem_free(ks, 0) #ifndef MAC struct kuser { @@ -104,6 +108,8 @@ struct cv ks_cv; /* waiters sleep here */ int ks_waiters; /* number of waiters */ LIST_HEAD(, kuser) ks_users; /* pids using this sem */ + struct mtx ks_mtx; /* mutex protecting this semaphore */ + int ks_unlinked; /* Whether the named sem is unlinked */ }; #else struct kuser; @@ -115,10 +121,6 @@ * created via sem_open that have not yet been unlinked. */ LIST_HEAD(, ksem) ksem_head = LIST_HEAD_INITIALIZER(&ksem_head); -/* - * semaphores still in use but have been sem_unlink()'d go here. - */ -LIST_HEAD(, ksem) ksem_deadhead = LIST_HEAD_INITIALIZER(&ksem_deadhead); static struct mtx sem_lock; static MALLOC_DEFINE(M_SEM, "sems", "semaphore data"); @@ -129,6 +131,9 @@ static eventhandler_tag sem_exit_tag, sem_exec_tag; +#ifndef SEM_DEBUG +#define SEM_DEBUG +#endif #ifdef SEM_DEBUG #define DP(x) printf x #else @@ -139,7 +144,7 @@ void sem_ref(struct ksem *ks) { - + mtx_assert(&sem_lock, MA_OWNED); ks->ks_ref++; DP(("sem_ref: ks = %p, ref = %d\n", ks, ks->ks_ref)); } @@ -149,9 +154,9 @@ sem_rel(struct ksem *ks) { + mtx_assert(&sem_lock, MA_OWNED); + ks->ks_ref--; DP(("sem_rel: ks = %p, ref = %d\n", ks, ks->ks_ref - 1)); - if (--ks->ks_ref == 0) - sem_free(ks); } static __inline struct ksem *id_to_sem(semid_t id); @@ -163,6 +168,7 @@ { struct ksem *ks; + mtx_assert(&sem_lock,MA_OWNED); DP(("id_to_sem: id = %0x,%p\n", id, (struct ksem *)id)); LIST_FOREACH(ks, &ksem_head, ks_entry) { DP(("id_to_sem: ks = %p\n", ks)); @@ -178,12 +184,15 @@ { struct ksem *ks; + mtx_assert(&sem_lock, MA_OWNED); LIST_FOREACH(ks, &ksem_head, ks_entry) if (ks->ks_name != NULL && strcmp(ks->ks_name, name) == 0) return (ks); return (NULL); } +/* Used by both sem_init and sem_open to create a new semaphore. */ + static int sem_create(td, name, ksret, mode, value) struct thread *td; @@ -196,14 +205,15 @@ struct proc *p; struct ucred *uc; size_t len; - int error; DP(("sem_create\n")); p = td->td_proc; uc = td->td_ucred; + /* XXX Use p31b_getcfg(CTL_P1003_1B_SEM_VALUE_MAX) instead? */ if (value > SEM_VALUE_MAX) return (EINVAL); - ret = malloc(sizeof(*ret), M_SEM, M_WAITOK | M_ZERO); + if( (ret = malloc(sizeof(*ret), M_SEM, M_WAITOK | M_ZERO)) == NULL) + return (ENOMEM); if (name != NULL) { len = strlen(name); if (len > SEM_MAX_NAMELEN) { @@ -215,39 +225,44 @@ free(ret, M_SEM); return (EINVAL); } - ret->ks_name = malloc(len + 1, M_SEM, M_WAITOK); + if( (ret->ks_name = malloc(len + 1, M_SEM, M_WAITOK)) == NULL){ + free(ret, M_SEM); + return (ENOMEM); + } strcpy(ret->ks_name, name); } else { ret->ks_name = NULL; } ret->ks_mode = mode; ret->ks_value = value; - ret->ks_ref = 1; + ret->ks_ref = 0; ret->ks_waiters = 0; ret->ks_uid = uc->cr_uid; ret->ks_gid = uc->cr_gid; ret->ks_onlist = 0; cv_init(&ret->ks_cv, "sem"); LIST_INIT(&ret->ks_users); + mtx_init(&ret->ks_mtx, "ks_mtx", "ks_mtx", MTX_DEF); if (name != NULL) - sem_enter(td->td_proc, ret); + sem_enter(td->td_proc, ret); /* This invokes sem_ref */ + else + ret->ks_ref = 1; #ifdef MAC mac_init_posix_ksem(ret); mac_create_posix_ksem(uc, ret); #endif - *ksret = ret; mtx_lock(&sem_lock); + nsems++; if (nsems >= p31b_getcfg(CTL_P1003_1B_SEM_NSEMS_MAX)) { - /*XXX Should sem_leave be here at all ? */ - sem_leave(td->td_proc, ret); - sem_free(ret); - error = ENFILE; - } else { - nsems++; - error = 0; - } + if (name != NULL) + sem_leave(td->td_proc, ret); /* This invokes sem_rel */ + SEM_DROP(ret); /* sem_free does a nsem-- */ + mtx_unlock(&sem_lock); + return (ENFILE); + } mtx_unlock(&sem_lock); - return (error); + *ksret = ret; + return (0); } #ifndef _SYS_SYSPROTO_H_ @@ -279,15 +294,14 @@ semid_t id; int error; - error = sem_create(td, NULL, &ks, S_IRWXU | S_IRWXG, value); - if (error) + if((error = sem_create(td, NULL, &ks, S_IRWXU | S_IRWXG, value))) return (error); id = SEM_TO_ID(ks); if (dir == UIO_USERSPACE) { error = copyout(&id, idp, sizeof(id)); if (error) { mtx_lock(&sem_lock); - sem_rel(ks); + SEM_DROP(ks); mtx_unlock(&sem_lock); return (error); } @@ -322,12 +336,62 @@ error = copyinstr(uap->name, name, SEM_MAX_NAMELEN + 1, &done); if (error) - return (error); + return (-1); DP((">>> sem_open start\n")); error = kern_sem_open(td, UIO_USERSPACE, name, uap->oflag, uap->mode, uap->value, uap->idp); DP(("<<< sem_open end\n")); - return (error); + if(error) + return (-1); + return (0); +} + +static int +ksem_open_existing(struct thread *td, struct ksem *ks, int dir, semid_t *idpu, + semid_t *idpk) +{ + int error = 0; + mtx_assert(&sem_lock,MA_OWNED); + mtx_assert(&ks->ks_mtx,MA_NOTOWNED); + if((error = sem_perm(td, ks))) { + mtx_unlock(&sem_lock); + return (error); + } + /* + * If already queued up for unlinking. + * Then according to spec cant let reconnect to this semaphore. + */ + if(ks->ks_unlinked) { + mtx_unlock(&sem_lock); + return (EPERM); + } + *idpk = SEM_TO_ID(ks); + sem_ref(ks); /* Pump up the refs to avoid the race with SEM_FREE */ + mtx_unlock(&sem_lock); +#ifdef MAC + mtx_lock(&ks->ks_mtx); + if((error = mac_check_posix_sem_openexisting(td->td_ucred, ks))) { + DP(("MAC Framework: mac_check_posix_sem_openexisting access denied\n")); + mtx_unlock(&ks->ks_mtx); + goto err_open_existing; + } + mtx_unlock(&ks->ks_mtx); +#endif + if (dir == UIO_USERSPACE) { + if ((error = copyout(idpk, idpu, sizeof(*idpk)))) { + goto err_open_existing; + } + } else { + *idpu = *idpk; + } + sem_enter(td->td_proc, ks); +err_open_existing: + mtx_lock(&sem_lock); + sem_rel(ks); /* Pump down */ + if(ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); + mtx_unlock(&sem_lock); + return(error); } static int @@ -341,7 +405,7 @@ semid_t *idp; { struct ksem *ksnew, *ks; - int error; + int error = 0; semid_t id; ksnew = NULL; @@ -369,8 +433,7 @@ * We may block during creation, so drop the lock. */ mtx_unlock(&sem_lock); - error = sem_create(td, name, &ksnew, mode, value); - if (error != 0) + if((error = sem_create(td, name, &ksnew, mode, value))) return (error); id = SEM_TO_ID(ksnew); if (dir == UIO_USERSPACE) { @@ -379,7 +442,7 @@ if (error) { mtx_lock(&sem_lock); sem_leave(td->td_proc, ksnew); - sem_rel(ksnew); + SEM_DROP(ksnew); mtx_unlock(&sem_lock); return (error); } @@ -396,53 +459,26 @@ if (ks != NULL) { /* we lost... */ sem_leave(td->td_proc, ksnew); - sem_rel(ksnew); + SEM_DROP(ksnew); /* we lost and we can't loose... */ if ((oflag & O_EXCL) != 0) { mtx_unlock(&sem_lock); return (EEXIST); } + /* Use the sem created by the winner */ + else { + error = ksem_open_existing(td, ks, dir, idp, &id); + } } else { DP(("sem_create: about to add to list...\n")); LIST_INSERT_HEAD(&ksem_head, ksnew, ks_entry); DP(("sem_create: setting list bit...\n")); ksnew->ks_onlist = 1; DP(("sem_create: done, about to unlock...\n")); + mtx_unlock(&sem_lock); } - mtx_unlock(&sem_lock); } else { - /* - * if we aren't the creator, then enforce permissions. - */ - if((error = sem_perm(td, ks))) - goto err; -#ifdef MAC - if((error = mac_check_posix_sem_openexisting(td->td_ucred, ks))) { - DP(("MAC Framework: mac_check_posix_sem_openexisting access denied\n")); - goto err; - } -#endif - sem_ref(ks); -err: - mtx_unlock(&sem_lock); - if (error) - return (error); - id = SEM_TO_ID(ks); - if (dir == UIO_USERSPACE) { - error = copyout(&id, idp, sizeof(id)); - if (error) { - mtx_lock(&sem_lock); - sem_rel(ks); - mtx_unlock(&sem_lock); - return (error); - } - } else { - *idp = id; - } - sem_enter(td->td_proc, ks); - mtx_lock(&sem_lock); - sem_rel(ks); - mtx_unlock(&sem_lock); + error = ksem_open_existing(td, ks, dir, idp, &id); } return (error); } @@ -466,21 +502,27 @@ } static void -sem_free(struct ksem *ks) +sem_free(struct ksem *ks, int checkrefs) { - + mtx_assert(&sem_lock, MA_OWNED); + mtx_assert(&ks->ks_mtx, MA_NOTOWNED); + if(checkrefs && (ks->ks_ref > 0)) + return; nsems--; if (ks->ks_onlist) LIST_REMOVE(ks, ks_entry); + if (ks->ks_name != NULL) free(ks->ks_name, M_SEM); cv_destroy(&ks->ks_cv); #ifdef MAC mac_destroy_posix_ksem(ks); #endif + mtx_destroy(&ks->ks_mtx); free(ks, M_SEM); } + static __inline struct kuser *sem_getuser(struct proc *p, struct ksem *ks); static __inline struct kuser * @@ -489,7 +531,8 @@ struct ksem *ks; { struct kuser *k; - + + mtx_assert(&sem_lock, MA_OWNED); LIST_FOREACH(k, &ks->ks_users, ku_next) if (k->ku_pid == p->p_pid) return (k); @@ -501,9 +544,15 @@ struct thread *td; struct ksem *ks; { + struct kuser *k; + int ret = 0; + + mtx_assert(&sem_lock, MA_OWNED); + k = sem_getuser(td->td_proc, ks); + if ((ks->ks_name == NULL && sem_perm(td, ks)) || k != NULL) + ret = 1; + return ret; - return ((ks->ks_name == NULL && sem_perm(td, ks)) - || sem_getuser(td->td_proc, ks) != NULL); } static int @@ -511,20 +560,21 @@ struct proc *p; struct ksem *ks; { - struct kuser *k; + struct kuser *k=NULL; DP(("sem_leave: ks = %p\n", ks)); + mtx_assert(&sem_lock, MA_OWNED); + DP(("sem_leave: ks = %p, k = %p\n", ks, k)); k = sem_getuser(p, ks); - DP(("sem_leave: ks = %p, k = %p\n", ks, k)); - if (k != NULL) { - LIST_REMOVE(k, ku_next); - sem_rel(ks); - DP(("sem_leave: about to free k\n")); - free(k, M_SEM); - DP(("sem_leave: returning\n")); - return (0); + if (k == NULL) { + return (EINVAL); } - return (EINVAL); + LIST_REMOVE(k, ku_next); + sem_rel(ks); + DP(("sem_leave: about to free k\n")); + free(k, M_SEM); + DP(("sem_leave: returning\n")); + return (0); } static void @@ -534,7 +584,10 @@ { struct kuser *ku, *k; - ku = malloc(sizeof(*ku), M_SEM, M_WAITOK | M_ZERO); + mtx_assert(&sem_lock, MA_NOTOWNED); + mtx_assert(&ks->ks_mtx, MA_NOTOWNED); + if( (ku = malloc(sizeof(*ku), M_SEM, M_WAITOK | M_ZERO)) == NULL) + return; ku->ku_pid = p->p_pid; mtx_lock(&sem_lock); k = sem_getuser(p, ks); @@ -579,26 +632,24 @@ mtx_lock(&sem_lock); ks = sem_lookup_byname(name); - if (ks == NULL) + if (ks == NULL) { error = ENOENT; - else { - if ((error = sem_perm(td, ks))) - goto err; + goto err_unlink; + } + if ((error = sem_perm(td, ks))) + goto err_unlink; #ifdef MAC - if((error = mac_check_posix_sem_unlink(td->td_ucred, ks))) { - DP(("MAC Framework: mac_check_posix_sem_unlink access \ - denied\n")); - goto err; - } + if((error = mac_check_posix_sem_unlink(td->td_ucred, ks))) { + DP(("MAC Framework: mac_check_posix_sem_unlink access \ + denied\n")); + goto err_unlink; + } #endif - } DP(("sem_unlink: '%s' ks = %p, error = %d\n", name, ks, error)); - if (error == 0) { - LIST_REMOVE(ks, ks_entry); - LIST_INSERT_HEAD(&ksem_deadhead, ks, ks_entry); - sem_rel(ks); - } -err: + ks->ks_unlinked = 1; + if(LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); +err_unlink: mtx_unlock(&sem_lock); return (error); } @@ -631,15 +682,18 @@ /* this is not a valid operation for unnamed sems */ if (ks != NULL && ks->ks_name != NULL) { #ifdef MAC - if((error = mac_check_posix_sem_close(td->td_ucred, ks))) { + if ((error = mac_check_posix_sem_close(td->td_ucred, ks))) { DP(("MAC Framework: mac_check_posix_sem_close access \ denied\n")); - goto err; + goto err_close; } #endif - error = sem_leave(td->td_proc, ks); + if ((error = sem_leave(td->td_proc, ks))) + goto err_close; + if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); } -err: +err_close: mtx_unlock(&sem_lock); return (error); } @@ -665,29 +719,37 @@ semid_t id; { struct ksem *ks; - int error; + int error = 0; mtx_lock(&sem_lock); ks = ID_TO_SEM(id); if (ks == NULL || !sem_hasopen(td, ks)) { - error = EINVAL; - goto err; + mtx_unlock(&sem_lock); + return (EINVAL); } + sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + mtx_unlock(&sem_lock); + + mtx_lock(&ks->ks_mtx); if (ks->ks_value == SEM_VALUE_MAX) { error = EOVERFLOW; - goto err; + goto err_post; } #ifdef MAC - if((error = mac_check_posix_sem_post(td->td_ucred, ks))) { + if ((error = mac_check_posix_sem_post(td->td_ucred, ks))) { DP(("MAC Framework: mac_check_posix_sem_post access denied\n")); - goto err; + goto err_post; } #endif ++ks->ks_value; if (ks->ks_waiters > 0) cv_signal(&ks->ks_cv); - error = 0; -err: +err_post: + mtx_unlock(&ks->ks_mtx); + mtx_lock(&sem_lock); + sem_rel(ks); /* Pump down */ + if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); mtx_unlock(&sem_lock); return (error); } @@ -730,43 +792,49 @@ int tryflag; { struct ksem *ks; - int error; + int error = 0; DP((">>> kern_sem_wait entered!\n")); mtx_lock(&sem_lock); ks = ID_TO_SEM(id); if (ks == NULL) { DP(("kern_sem_wait ks == NULL\n")); - error = EINVAL; - goto err; + mtx_unlock(&sem_lock); + return (EINVAL); } - sem_ref(ks); if (!sem_hasopen(td, ks)) { DP(("kern_sem_wait hasopen failed\n")); - error = EINVAL; - goto err; + mtx_unlock(&sem_lock); + return (EINVAL); } + sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + mtx_unlock(&sem_lock); + + mtx_lock(&ks->ks_mtx); #ifdef MAC - if((error = mac_check_posix_sem_wait(td->td_ucred, ks))) { + if ((error = mac_check_posix_sem_wait(td->td_ucred, ks))) { DP(("MAC Framework: mac_check_posix_sem_wait access denied\n")); - goto err; + goto err_wait; } #endif DP(("kern_sem_wait value = %d, tryflag %d\n", ks->ks_value, tryflag)); if (ks->ks_value == 0) { ks->ks_waiters++; - error = tryflag ? EAGAIN : cv_wait_sig(&ks->ks_cv, &sem_lock); + error = tryflag ? EAGAIN : cv_wait_sig(&ks->ks_cv, &ks->ks_mtx); ks->ks_waiters--; if (error) - goto err; + goto err_wait; } ks->ks_value--; error = 0; -err: - if (ks != NULL) - sem_rel(ks); +err_wait: + mtx_unlock(&ks->ks_mtx); + DP(("<<< kern_sem_wait leaving, error = %d\n", error)); + mtx_lock(&sem_lock); + sem_rel(ks); /* Pump down */ + if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); mtx_unlock(&sem_lock); - DP(("<<< kern_sem_wait leaving, error = %d\n", error)); return (error); } @@ -791,16 +859,26 @@ mtx_unlock(&sem_lock); return (EINVAL); } + sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + mtx_unlock(&sem_lock); + + mtx_lock(&ks->ks_mtx); #ifdef MAC if((error = mac_check_posix_sem_getvalue(td->td_ucred, ks))) { DP(("MAC Framework: mac_check_posix_sem_getvalue access denied\n")); - mtx_unlock(&sem_lock); - return (error); + mtx_unlock(&ks->ks_mtx); + goto err_getvalue; } #endif val = ks->ks_value; + mtx_unlock(&ks->ks_mtx); + error = copyout(&val, uap->val, sizeof(val)); +err_getvalue: + mtx_lock(&sem_lock); + sem_rel(ks); /* Pump down */ + if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); mtx_unlock(&sem_lock); - error = copyout(&val, uap->val, sizeof(val)); return (error); } @@ -816,28 +894,24 @@ struct ksem_destroy_args *uap; { struct ksem *ks; - int error; + int error = 0; mtx_lock(&sem_lock); ks = ID_TO_SEM(uap->id); if (ks == NULL || !sem_hasopen(td, ks) || ks->ks_name != NULL) { error = EINVAL; - goto err; + goto err_destroy; } - if (ks->ks_waiters != 0) { - error = EBUSY; - goto err; - } #ifdef MAC if((error = mac_check_posix_sem_destroy(td->td_ucred, ks))) { DP(("MAC Framework: mac_check_posix_sem_destroy access denied\n")); - goto err; + goto err_destroy; } #endif - sem_rel(ks); - error = 0; -err: + ks->ks_unlinked = 1; /* Indicate that the sem needs to be destroyed */ + SEM_FREE(ks); +err_destroy: mtx_unlock(&sem_lock); return (error); } @@ -853,13 +927,9 @@ ks = LIST_FIRST(&ksem_head); while (ks != NULL) { ksnext = LIST_NEXT(ks, ks_entry); - sem_leave(p, ks); - ks = ksnext; - } - ks = LIST_FIRST(&ksem_deadhead); - while (ks != NULL) { - ksnext = LIST_NEXT(ks, ks_entry); - sem_leave(p, ks); + if(!sem_leave(p, ks)) + if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) + SEM_FREE(ks); ks = ksnext; } mtx_unlock(&sem_lock); ==== //depot/projects/trustedbsd/mac/sys/posix4/ksem.h#2 (text+ko) ==== @@ -69,7 +69,9 @@ struct cv ks_cv; /* waiters sleep here */ int ks_waiters; /* number of waiters */ LIST_HEAD(, kuser) ks_users; /* pids using this sem */ + struct mtx ks_mtx; /* mutex protecting the ks_users list */ struct label ks_label; /* MAC label */ + int ks_unlinked; /* Whether the named sem is unlinked */ }; #endif /* _KERNEL */ From owner-p4-projects@FreeBSD.ORG Wed Sep 17 15:03:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 784D616A4C0; Wed, 17 Sep 2003 15:03:52 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 315DE16A4B3 for ; Wed, 17 Sep 2003 15:03:52 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 09A6A43FDF for ; Wed, 17 Sep 2003 15:03:51 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8HM3oXJ033423 for ; Wed, 17 Sep 2003 15:03:50 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8HM3oAA033420 for perforce@freebsd.org; Wed, 17 Sep 2003 15:03:50 -0700 (PDT) (envelope-from sam@freebsd.org) Date: Wed, 17 Sep 2003 15:03:50 -0700 (PDT) Message-Id: <200309172203.h8HM3oAA033420@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38200 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 22:03:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=38200 Change 38200 by sam@sam_ebb on 2003/09/17 15:03:43 IFC Affected files ... .. //depot/projects/netperf/sys/crypto/rijndael/rijndael-api-fst.c#2 integrate .. //depot/projects/netperf/sys/dev/acpica/acpi_pci.c#3 integrate .. //depot/projects/netperf/sys/dev/pci/pci.c#7 integrate .. //depot/projects/netperf/sys/dev/pci/pci_private.h#3 integrate .. //depot/projects/netperf/sys/dev/sio/sio.c#5 integrate .. //depot/projects/netperf/sys/dev/sound/isa/uartsio.c#3 integrate .. //depot/projects/netperf/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_core.c#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_dev_i8251.c#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_dev_ns8250.c#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_dev_sab82532.c#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_dev_z8530.c#2 integrate .. //depot/projects/netperf/sys/dev/uart/uart_if.m#2 integrate .. //depot/projects/netperf/sys/i386/acpica/acpi_machdep.c#4 integrate .. //depot/projects/netperf/sys/isa/fd.c#4 integrate .. //depot/projects/netperf/sys/modules/uart/Makefile#2 integrate .. //depot/projects/netperf/sys/net/bridge.c#8 integrate .. //depot/projects/netperf/sys/netinet/ip_dummynet.c#9 integrate .. //depot/projects/netperf/sys/netinet/ip_fw2.c#8 integrate .. //depot/projects/netperf/sys/netinet/raw_ip.c#6 integrate .. //depot/projects/netperf/sys/pci/agp_intel.c#3 integrate .. //depot/projects/netperf/sys/sys/param.h#5 integrate .. //depot/projects/netperf/sys/vm/vm_object.c#5 integrate .. //depot/projects/netperf/sys/vm/vm_pageout.c#5 integrate Differences ... ==== //depot/projects/netperf/sys/crypto/rijndael/rijndael-api-fst.c#2 (text+ko) ==== @@ -16,7 +16,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.5 2003/06/10 21:43:49 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.6 2003/09/17 08:51:43 ume Exp $"); #include #include @@ -225,7 +225,7 @@ outBuffer += 16; } padLen = 16 - (inputOctets - 16*numBlocks); - if (padLen > 0 && padLen <= 16) + if (padLen <= 0 || padLen > 16) return BAD_CIPHER_STATE; bcopy(input, block, 16 - padLen); for (cp = block + 16 - padLen; cp < block + 16; cp++) ==== //depot/projects/netperf/sys/dev/acpica/acpi_pci.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.5 2003/08/24 17:48:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.6 2003/09/17 08:32:44 iwasaki Exp $"); #include "opt_bus.h" @@ -79,7 +79,7 @@ DEVMETHOD(device_attach, acpi_pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), ==== //depot/projects/netperf/sys/dev/pci/pci.c#7 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci.c,v 1.232 2003/09/14 19:30:00 scottl Exp $ + * $FreeBSD: src/sys/dev/pci/pci.c,v 1.233 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -89,7 +89,7 @@ DEVMETHOD(device_attach, pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), @@ -1509,3 +1509,35 @@ return (0); } + +int +pci_resume(device_t dev) +{ + int numdevs; + int i; + device_t *children; + device_t child; + struct pci_devinfo *dinfo; + pcicfgregs *cfg; + + device_get_children(dev, &children, &numdevs); + + for (i = 0; i < numdevs; i++) { + child = children[i]; + + dinfo = device_get_ivars(child); + cfg = &dinfo->cfg; + if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { + cfg->intline = PCI_ASSIGN_INTERRUPT(dev, child); + if (PCI_INTERRUPT_VALID(cfg->intline)) { + pci_write_config(child, PCIR_INTLINE, + cfg->intline, 1); + } + } + } + + free(children, M_TEMP); + + return (bus_generic_resume(dev)); +} + ==== //depot/projects/netperf/sys/dev/pci/pci_private.h#3 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci_private.h,v 1.10 2003/08/22 03:11:53 imp Exp $ + * $FreeBSD: src/sys/dev/pci/pci_private.h,v 1.11 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -73,4 +73,5 @@ int pci_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf, size_t buflen); int pci_assign_interrupt_method(device_t dev, device_t child); +int pci_resume(device_t dev); #endif /* _PCI_PRIVATE_H_ */ ==== //depot/projects/netperf/sys/dev/sio/sio.c#5 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.405 2003/09/15 13:49:18 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.408 2003/09/17 17:26:00 bde Exp $"); #include "opt_comconsole.h" #include "opt_compat.h" @@ -113,21 +113,20 @@ #define COM_ISMULTIPORT(flags) (0) #endif /* COM_MULTIPORT */ +#define COM_C_IIR_TXRDYBUG 0x80000 #define COM_CONSOLE(flags) ((flags) & 0x10) +#define COM_DEBUGGER(flags) ((flags) & 0x80) +#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define COM_FORCECONSOLE(flags) ((flags) & 0x20) +#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) #define COM_LLCONSOLE(flags) ((flags) & 0x40) -#define COM_DEBUGGER(flags) ((flags) & 0x80) #define COM_LOSESOUTINTS(flags) ((flags) & 0x08) -#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOPROBE(flags) ((flags) & 0x40000) +#define COM_NOSCR(flags) ((flags) & 0x100000) #define COM_PPSCTS(flags) ((flags) & 0x10000) -#define COM_ST16650A(flags) ((flags) & 0x20000) -#define COM_C_NOPROBE (0x40000) -#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE) -#define COM_C_IIR_TXRDYBUG (0x80000) -#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) -#define COM_NOSCR(flags) ((flags) & 0x100000) +#define COM_ST16650A(flags) ((flags) & 0x20000) #define COM_TI16754(flags) ((flags) & 0x200000) -#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define sio_getreg(com, off) \ (bus_space_read_1((com)->bst, (com)->bsh, (off))) @@ -196,7 +195,6 @@ u_char extra_state; /* more flag bits, separate for order trick */ u_char fifo_image; /* copy of value written to FIFO */ bool_t hasfifo; /* nonzero for 16550 UARTs */ - bool_t st16650a; /* Is a Startech 16650A or RTS/CTS compat */ bool_t loses_outints; /* nonzero if device loses output interrupts */ u_char mcr_image; /* copy of value written to MCR */ #ifdef COM_MULTIPORT @@ -206,6 +204,7 @@ bool_t gone; /* hardware disappeared */ bool_t poll; /* nonzero if polling is required */ bool_t poll_output; /* nonzero if polling for output is required */ + bool_t st16650a; /* nonzero if Startech 16650A compatible */ int unit; /* unit number */ int dtr_wait; /* time to hold DTR down on close (* 1/hz) */ u_int tx_fifo_size; @@ -450,7 +449,7 @@ device_printf(dev, "NULL com in siounload\n"); return (0); } - com->gone = 1; + com->gone = TRUE; for (i = 0 ; i < 6; i++) destroy_dev(com->devs[i]); if (com->irqres) { @@ -1023,7 +1022,6 @@ } sio_setreg(com, com_fifo, FIFO_ENABLE | FIFO_RX_HIGH); DELAY(100); - com->st16650a = 0; switch (inb(com->int_id_port) & IIR_FIFO_MASK) { case FIFO_RX_LOW: printf(" 16450"); @@ -1037,40 +1035,40 @@ case FIFO_RX_HIGH: if (COM_NOFIFO(flags)) { printf(" 16550A fifo disabled"); - } else { - com->hasfifo = TRUE; - if (COM_ST16650A(flags)) { - com->st16650a = 1; - com->tx_fifo_size = 32; - printf(" ST16650A"); - } else if (COM_TI16754(flags)) { - com->tx_fifo_size = 64; - printf(" TI16754"); - } else { - com->tx_fifo_size = COM_FIFOSIZE(flags); - printf(" 16550A"); - } + break; + } + com->hasfifo = TRUE; + if (COM_ST16650A(flags)) { + printf(" ST16650A"); + com->st16650a = TRUE; + com->tx_fifo_size = 32; + break; + } + if (COM_TI16754(flags)) { + printf(" TI16754"); + com->tx_fifo_size = 64; + break; } + printf(" 16550A"); #ifdef COM_ESP for (espp = likely_esp_ports; *espp != 0; espp++) if (espattach(com, *espp)) { com->tx_fifo_size = 1024; break; } + if (com->esp != NULL) + break; #endif - if (!com->st16650a && !COM_TI16754(flags)) { - if (!com->tx_fifo_size) - com->tx_fifo_size = 16; - else - printf(" lookalike with %d bytes FIFO", - com->tx_fifo_size); - } - + com->tx_fifo_size = COM_FIFOSIZE(flags); + if (com->tx_fifo_size == 0) + com->tx_fifo_size = 16; + else + printf(" lookalike with %u bytes FIFO", + com->tx_fifo_size); break; } - #ifdef COM_ESP - if (com->esp) { + if (com->esp != NULL) { /* * Set 16550 compatibility mode. * We don't use the ESP_MODE_SCALE bit to increase the @@ -2205,6 +2203,7 @@ u_int divisor; u_char dlbh; u_char dlbl; + u_char efr_flowbits; int s; int unit; @@ -2309,18 +2308,13 @@ sio_setreg(com, com_dlbh, dlbh); } - sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); - if (!(tp->t_state & TS_TTSTOP)) com->state |= CS_TTGO; + efr_flowbits = 0; if (cflag & CRTS_IFLOW) { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x40); - } com->state |= CS_RTS_IFLOW; + efr_flowbits |= EFR_AUTORTS; /* * If CS_RTS_IFLOW just changed from off to on, the change * needs to be propagated to MCR_RTS. This isn't urgent, @@ -2334,14 +2328,8 @@ * on here, since comstart() won't do it later. */ outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS); - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x40); - } } - /* * Set up state to handle output flow control. * XXX - worth handling MDMBUF (DCD) flow control at the lowest level? @@ -2351,22 +2339,18 @@ com->state &= ~CS_CTS_OFLOW; if (cflag & CCTS_OFLOW) { com->state |= CS_CTS_OFLOW; + efr_flowbits |= EFR_AUTOCTS; if (!(com->last_modem_status & MSR_CTS)) com->state &= ~CS_ODEVREADY; - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x80); - } - } else { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x80); - } } - sio_setreg(com, com_cfcr, com->cfcr_image); + if (com->st16650a) { + sio_setreg(com, com_lcr, LCR_EFR_ENABLE); + sio_setreg(com, com_efr, + (sio_getreg(com, com_efr) + & ~(EFR_AUTOCTS | EFR_AUTORTS)) | efr_flowbits); + } + sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); /* XXX shouldn't call functions while intrs are disabled. */ disc_optim(tp, t, com); @@ -3173,7 +3157,6 @@ return (c); } - static int siocngetc(struct consdev *cd) { ==== //depot/projects/netperf/sys/dev/sound/isa/uartsio.c#3 (text+ko) ==== @@ -42,11 +42,11 @@ * This handles io against /dev/midi, the midi {in, out}put event queues * and the event/message transmittion to/from a serial port interface. * - * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.14 2003/09/16 11:04:22 bde Exp $ + * $FreeBSD: src/sys/dev/sound/isa/uartsio.c,v 1.15 2003/09/17 01:09:10 bde Exp $ * */ -#include +#include #include /* XXX What about a PCI uart? */ ==== //depot/projects/netperf/sys/dev/uart/uart_bus.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/dev/uart/uart_bus.h,v 1.2 2003/09/11 23:06:42 marcel Exp $ + * $FreeBSD: src/sys/dev/uart/uart_bus.h,v 1.3 2003/09/17 01:41:21 marcel Exp $ */ #ifndef _DEV_UART_BUS_H_ @@ -113,6 +113,8 @@ struct uart_bas sc_bas; device_t sc_dev; + struct mtx sc_hwmtx; /* Spinlock protecting hardware. */ + struct resource *sc_rres; /* Register resource. */ int sc_rrid; int sc_rtype; /* SYS_RES_{IOPORT|MEMORY}. */ ==== //depot/projects/netperf/sys/dev/uart/uart_core.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.2 2003/09/11 23:06:42 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_core.c,v 1.4 2003/09/17 03:11:32 marcel Exp $"); #ifndef KLD_MODULE #include "opt_comconsole.h" @@ -200,17 +200,21 @@ if (sc->sc_leaving) return; - ipend = UART_IPEND(sc); - if (ipend & UART_IPEND_OVERRUN) - uart_intr_overrun(sc); - if (ipend & UART_IPEND_BREAK) - uart_intr_break(sc); - if (ipend & UART_IPEND_RXREADY) - uart_intr_rxready(sc); - if (ipend & UART_IPEND_SIGCHG) - uart_intr_sigchg(sc); - if (ipend & UART_IPEND_TXIDLE) - uart_intr_txidle(sc); + do { + ipend = UART_IPEND(sc); + if (ipend == 0) + break; + if (ipend & UART_IPEND_OVERRUN) + uart_intr_overrun(sc); + if (ipend & UART_IPEND_BREAK) + uart_intr_break(sc); + if (ipend & UART_IPEND_RXREADY) + uart_intr_rxready(sc); + if (ipend & UART_IPEND_SIGCHG) + uart_intr_sigchg(sc); + if (ipend & UART_IPEND_TXIDLE) + uart_intr_txidle(sc); + } while (1); if (sc->sc_opened && sc->sc_ttypend != 0) swi_sched(sc->sc_softih, 0); @@ -309,6 +313,8 @@ */ sc->sc_leaving = 1; + mtx_init(&sc->sc_hwmtx, "uart_hwmtx", NULL, MTX_SPIN); + /* * Re-allocate. We expect that the softc contains the information * collected by uart_bus_probe() intact. ==== //depot/projects/netperf/sys/dev/uart/uart_dev_i8251.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_i8251.c,v 1.1 2003/09/07 04:59:15 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_i8251.c,v 1.3 2003/09/17 03:11:32 marcel Exp $"); #include #include @@ -427,15 +427,19 @@ { struct i8251_softc *i8251 = (struct i8251_softc*)sc; struct uart_bas *bas; + int error; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); if (sc->sc_hasfifo) { i8251_flush(bas, what); uart_setreg(bas, REG_FCR, i8251->fcr); uart_barrier(bas); - return (0); - } - return (i8251_drain(bas, what)); + error = 0; + } else + error = i8251_drain(bas, what); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -447,7 +451,9 @@ do { old = sc->sc_hwsig; sig = old; + mtx_lock_spin(&sc->sc_hwmtx); msr = uart_getreg(&sc->sc_bas, REG_MSR); + mtx_unlock_spin(&sc->sc_hwmtx); SIGCHG(msr & MSR_DSR, sig, UART_SIG_DSR, UART_SIG_DDSR); SIGCHG(msr & MSR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); SIGCHG(msr & MSR_DCD, sig, UART_SIG_DCD, UART_SIG_DDCD); @@ -461,9 +467,12 @@ i8251_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) { struct uart_bas *bas; + int error; uint8_t lcr; bas = &sc->sc_bas; + error = 0; + mtx_lock_spin(&sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: lcr = uart_getreg(bas, REG_LCR); @@ -475,9 +484,11 @@ uart_barrier(bas); break; default: - return (EINVAL); + error = EINVAL; + break; } - return (0); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -488,13 +499,16 @@ uint8_t iir, lsr; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); - if (iir & IIR_NOPEND) + if (iir & IIR_NOPEND) { + mtx_unlock_spin(&sc->sc_hwmtx); return (0); - + } ipend = 0; if (iir & IIR_RXRDY) { lsr = uart_getreg(bas, REG_LSR); + mtx_unlock_spin(&sc->sc_hwmtx); if (lsr & LSR_OE) ipend |= UART_IPEND_OVERRUN; if (lsr & LSR_BI) @@ -502,12 +516,12 @@ if (lsr & LSR_RXRDY) ipend |= UART_IPEND_RXREADY; } else { + mtx_unlock_spin(&sc->sc_hwmtx); if (iir & IIR_TXRDY) ipend |= UART_IPEND_TXIDLE; else ipend |= UART_IPEND_SIGCHG; } - return ((sc->sc_leaving) ? 0 : ipend); } @@ -516,9 +530,13 @@ int stopbits, int parity) { struct uart_bas *bas; + int error; bas = &sc->sc_bas; - return (i8251_param(bas, baudrate, databits, stopbits, parity)); + mtx_lock_spin(&sc->sc_hwmtx); + error = i8251_param(bas, baudrate, databits, stopbits, parity); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -661,17 +679,28 @@ uint8_t lsr; bas = &sc->sc_bas; - while (!uart_rx_full(sc)) { - lsr = uart_getreg(bas, REG_LSR); - if ((lsr & LSR_RXRDY) == 0) + mtx_lock_spin(&sc->sc_hwmtx); + lsr = uart_getreg(bas, REG_LSR); + while (lsr & LSR_RXRDY) { + if (uart_rx_full(sc)) { + sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; break; + } xc = uart_getreg(bas, REG_DATA); if (lsr & LSR_FE) xc |= UART_STAT_FRAMERR; if (lsr & LSR_PE) xc |= UART_STAT_PARERR; uart_rx_put(sc, xc); + lsr = uart_getreg(bas, REG_LSR); + } + /* Discard everything left in the Rx FIFO. */ + while (lsr & LSR_RXRDY) { + (void)uart_getreg(bas, REG_DATA); + uart_barrier(bas); + lsr = uart_getreg(bas, REG_LSR); } + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -695,6 +724,7 @@ UART_SIG_DRTS); } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); + mtx_lock_spin(&sc->sc_hwmtx); i8251->mcr &= ~(MCR_DTR|MCR_RTS); if (new & UART_SIG_DTR) i8251->mcr |= MCR_DTR; @@ -702,6 +732,7 @@ i8251->mcr |= MCR_RTS; uart_setreg(bas, REG_MCR, i8251->mcr); uart_barrier(bas); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -713,6 +744,7 @@ int i; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0) ; uart_setreg(bas, REG_IER, i8251->ier | IER_ETXRDY); @@ -722,5 +754,6 @@ uart_barrier(bas); } sc->sc_txbusy = 1; + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } ==== //depot/projects/netperf/sys/dev/uart/uart_dev_ns8250.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.3 2003/09/13 06:25:04 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.5 2003/09/17 03:11:32 marcel Exp $"); #include #include @@ -427,15 +427,19 @@ { struct ns8250_softc *ns8250 = (struct ns8250_softc*)sc; struct uart_bas *bas; + int error; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); if (sc->sc_hasfifo) { ns8250_flush(bas, what); uart_setreg(bas, REG_FCR, ns8250->fcr); uart_barrier(bas); - return (0); - } - return (ns8250_drain(bas, what)); + error = 0; + } else + error = ns8250_drain(bas, what); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -447,7 +451,9 @@ do { old = sc->sc_hwsig; sig = old; + mtx_lock_spin(&sc->sc_hwmtx); msr = uart_getreg(&sc->sc_bas, REG_MSR); + mtx_unlock_spin(&sc->sc_hwmtx); SIGCHG(msr & MSR_DSR, sig, UART_SIG_DSR, UART_SIG_DDSR); SIGCHG(msr & MSR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); SIGCHG(msr & MSR_DCD, sig, UART_SIG_DCD, UART_SIG_DDCD); @@ -461,9 +467,12 @@ ns8250_bus_ioctl(struct uart_softc *sc, int request, intptr_t data) { struct uart_bas *bas; + int error; uint8_t efr, lcr; bas = &sc->sc_bas; + error = 0; + mtx_lock_spin(&sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: lcr = uart_getreg(bas, REG_LCR); @@ -505,9 +514,11 @@ uart_barrier(bas); break; default: - return (EINVAL); + error = EINVAL; + break; } - return (0); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -518,13 +529,16 @@ uint8_t iir, lsr; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); iir = uart_getreg(bas, REG_IIR); - if (iir & IIR_NOPEND) + if (iir & IIR_NOPEND) { + mtx_unlock_spin(&sc->sc_hwmtx); return (0); - + } ipend = 0; if (iir & IIR_RXRDY) { lsr = uart_getreg(bas, REG_LSR); + mtx_unlock_spin(&sc->sc_hwmtx); if (lsr & LSR_OE) ipend |= UART_IPEND_OVERRUN; if (lsr & LSR_BI) @@ -532,12 +546,12 @@ if (lsr & LSR_RXRDY) ipend |= UART_IPEND_RXREADY; } else { + mtx_unlock_spin(&sc->sc_hwmtx); if (iir & IIR_TXRDY) ipend |= UART_IPEND_TXIDLE; else ipend |= UART_IPEND_SIGCHG; } - return ((sc->sc_leaving) ? 0 : ipend); } @@ -546,9 +560,13 @@ int stopbits, int parity) { struct uart_bas *bas; + int error; bas = &sc->sc_bas; - return (ns8250_param(bas, baudrate, databits, stopbits, parity)); + mtx_lock_spin(&sc->sc_hwmtx); + error = ns8250_param(bas, baudrate, databits, stopbits, parity); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -697,17 +715,28 @@ uint8_t lsr; bas = &sc->sc_bas; - while (!uart_rx_full(sc)) { - lsr = uart_getreg(bas, REG_LSR); - if ((lsr & LSR_RXRDY) == 0) + mtx_lock_spin(&sc->sc_hwmtx); + lsr = uart_getreg(bas, REG_LSR); + while (lsr & LSR_RXRDY) { + if (uart_rx_full(sc)) { + sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN; break; + } xc = uart_getreg(bas, REG_DATA); if (lsr & LSR_FE) xc |= UART_STAT_FRAMERR; if (lsr & LSR_PE) xc |= UART_STAT_PARERR; uart_rx_put(sc, xc); + lsr = uart_getreg(bas, REG_LSR); + } + /* Discard everything left in the Rx FIFO. */ + while (lsr & LSR_RXRDY) { + (void)uart_getreg(bas, REG_DATA); + uart_barrier(bas); + lsr = uart_getreg(bas, REG_LSR); } + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -731,6 +760,7 @@ UART_SIG_DRTS); } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); + mtx_lock_spin(&sc->sc_hwmtx); ns8250->mcr &= ~(MCR_DTR|MCR_RTS); if (new & UART_SIG_DTR) ns8250->mcr |= MCR_DTR; @@ -738,6 +768,7 @@ ns8250->mcr |= MCR_RTS; uart_setreg(bas, REG_MCR, ns8250->mcr); uart_barrier(bas); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -749,6 +780,7 @@ int i; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0) ; uart_setreg(bas, REG_IER, ns8250->ier | IER_ETXRDY); @@ -758,5 +790,6 @@ uart_barrier(bas); } sc->sc_txbusy = 1; + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } ==== //depot/projects/netperf/sys/dev/uart/uart_dev_sab82532.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_sab82532.c,v 1.2 2003/09/07 21:51:03 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_sab82532.c,v 1.3 2003/09/17 01:41:21 marcel Exp $"); #include #include @@ -425,7 +425,9 @@ sab82532_bus_flush(struct uart_softc *sc, int what) { + mtx_lock_spin(&sc->sc_hwmtx); sab82532_flush(&sc->sc_bas, what); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -440,6 +442,7 @@ do { old = sc->sc_hwsig; sig = old; + mtx_lock_spin(&sc->sc_hwmtx); star = uart_getreg(bas, SAB_STAR); SIGCHG(star & SAB_STAR_CTS, sig, UART_SIG_CTS, UART_SIG_DCTS); vstr = uart_getreg(bas, SAB_VSTR); @@ -447,6 +450,7 @@ pvr = uart_getreg(bas, SAB_PVR); pvr &= (IS_CHANNEL_A(bas)) ? SAB_PVR_DSR_A : SAB_PVR_DSR_B; SIGCHG(~pvr, sig, UART_SIG_DSR, UART_SIG_DDSR); + mtx_unlock_spin(&sc->sc_hwmtx); new = sig & ~UART_SIGMASK_DELTA; } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); return (sig); @@ -457,8 +461,11 @@ { struct uart_bas *bas; uint8_t dafo, mode; + int error; bas = &sc->sc_bas; + error = 0; + mtx_lock_spin(&sc->sc_hwmtx); switch (request) { case UART_IOCTL_BREAK: dafo = uart_getreg(bas, SAB_DAFO); @@ -491,9 +498,11 @@ uart_barrier(bas); break; default: - return (EINVAL); + error = EINVAL; + break; } - return (0); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -504,16 +513,17 @@ uint8_t isr0, isr1; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); isr0 = uart_getreg(bas, SAB_ISR0); isr1 = uart_getreg(bas, SAB_ISR1); uart_barrier(bas); - if (isr0 & SAB_ISR0_TIME) { while (uart_getreg(bas, SAB_STAR) & SAB_STAR_CEC) ; uart_setreg(bas, SAB_CMDR, SAB_CMDR_RFRD); uart_barrier(bas); } + mtx_unlock_spin(&sc->sc_hwmtx); ipend = 0; if (isr1 & SAB_ISR1_BRKT) @@ -535,9 +545,13 @@ int stopbits, int parity) { struct uart_bas *bas; + int error; bas = &sc->sc_bas; - return (sab82532_param(bas, baudrate, databits, stopbits, parity)); + mtx_lock_spin(&sc->sc_hwmtx); + error = sab82532_param(bas, baudrate, databits, stopbits, parity); + mtx_unlock_spin(&sc->sc_hwmtx); + return (error); } static int @@ -584,6 +598,7 @@ uint8_t s; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); if (uart_getreg(bas, SAB_STAR) & SAB_STAR_RFNE) { rbcl = uart_getreg(bas, SAB_RBCL) & 31; if (rbcl == 0) @@ -607,6 +622,7 @@ ; uart_setreg(bas, SAB_CMDR, SAB_CMDR_RMC); uart_barrier(bas); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -631,6 +647,7 @@ } } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new)); + mtx_lock_spin(&sc->sc_hwmtx); /* Set DTR pin. */ pvr = uart_getreg(bas, SAB_PVR); if (new & UART_SIG_DTR) @@ -647,6 +664,7 @@ mode |= SAB_MODE_FRTS; uart_setreg(bas, SAB_MODE, mode); uart_barrier(bas); + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } @@ -657,6 +675,7 @@ int i; bas = &sc->sc_bas; + mtx_lock_spin(&sc->sc_hwmtx); while (!(uart_getreg(bas, SAB_STAR) & SAB_STAR_XFW)) ; for (i = 0; i < sc->sc_txdatasz; i++) @@ -666,5 +685,6 @@ ; uart_setreg(bas, SAB_CMDR, SAB_CMDR_XF); sc->sc_txbusy = 1; + mtx_unlock_spin(&sc->sc_hwmtx); return (0); } ==== //depot/projects/netperf/sys/dev/uart/uart_dev_z8530.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_z8530.c,v 1.2 2003/09/07 21:51:03 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_z8530.c,v 1.4 2003/09/17 03:11:32 marcel Exp $"); #include #include @@ -334,15 +334,15 @@ static int z8530_bus_getsig(struct uart_softc *sc) { - struct uart_bas *bas; uint32_t new, old, sig; uint8_t bes; - bas = &sc->sc_bas; do { old = sc->sc_hwsig; sig = old; - bes = uart_getmreg(bas, RR_BES); + mtx_lock_spin(&sc->sc_hwmtx); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Sep 17 15:50:25 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF70A16A4C1; Wed, 17 Sep 2003 15:50:24 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 587C916A4BF for ; Wed, 17 Sep 2003 15:50:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 243C844187 for ; Wed, 17 Sep 2003 15:42:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8HMgcXJ036602 for ; Wed, 17 Sep 2003 15:42:38 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8HMgcWx036599 for perforce@freebsd.org; Wed, 17 Sep 2003 15:42:38 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Wed, 17 Sep 2003 15:42:38 -0700 (PDT) Message-Id: <200309172242.h8HMgcWx036599@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38202 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 22:50:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=38202 Change 38202 by marcel@marcel_nfs on 2003/09/17 15:42:29 IFC @38201 Affected files ... .. //depot/projects/ia64/contrib/sendmail/src/parseaddr.c#11 integrate .. //depot/projects/ia64/crypto/openssh/deattack.c#3 integrate .. //depot/projects/ia64/crypto/openssh/misc.c#5 integrate .. //depot/projects/ia64/crypto/openssh/session.c#17 integrate .. //depot/projects/ia64/crypto/openssh/ssh-agent.c#8 integrate .. //depot/projects/ia64/crypto/openssh/version.h#12 integrate .. //depot/projects/ia64/sbin/ifconfig/ifieee80211.c#5 integrate .. //depot/projects/ia64/sys/crypto/rijndael/rijndael-api-fst.c#5 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_pci.c#6 integrate .. //depot/projects/ia64/sys/dev/pci/pci.c#34 integrate .. //depot/projects/ia64/sys/dev/pci/pci_private.h#9 integrate .. //depot/projects/ia64/sys/dev/sio/sio.c#52 integrate .. //depot/projects/ia64/sys/i386/acpica/acpi_machdep.c#13 integrate .. //depot/projects/ia64/sys/isa/fd.c#22 integrate .. //depot/projects/ia64/sys/net/bridge.c#21 integrate .. //depot/projects/ia64/sys/netinet/ip_fw2.c#27 integrate .. //depot/projects/ia64/sys/netinet/raw_ip.c#28 integrate .. //depot/projects/ia64/sys/sys/param.h#42 integrate .. //depot/projects/ia64/sys/vm/vm_object.c#67 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.c#46 integrate .. //depot/projects/ia64/usr.bin/window/main.c#3 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/dmenu.c#3 integrate Differences ... ==== //depot/projects/ia64/contrib/sendmail/src/parseaddr.c#11 (text+ko) ==== @@ -700,7 +700,11 @@ addr[MAXNAME] = '\0'; returnnull: if (delimptr != NULL) + { + if (p > addr) + p--; *delimptr = p; + } CurEnv->e_to = saveto; return NULL; } ==== //depot/projects/ia64/crypto/openssh/deattack.c#3 (text+ko) ==== @@ -100,12 +100,12 @@ if (h == NULL) { debug("Installing crc compensation attack detector."); + h = (u_int16_t *) xmalloc(l * HASH_ENTRYSIZE); n = l; - h = (u_int16_t *) xmalloc(n * HASH_ENTRYSIZE); } else { if (l > n) { + h = (u_int16_t *) xrealloc(h, l * HASH_ENTRYSIZE); n = l; - h = (u_int16_t *) xrealloc(h, n * HASH_ENTRYSIZE); } } ==== //depot/projects/ia64/crypto/openssh/misc.c#5 (text+ko) ==== @@ -308,18 +308,21 @@ { va_list ap; char buf[1024]; + int nalloc; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); + nalloc = args->nalloc; if (args->list == NULL) { - args->nalloc = 32; + nalloc = 32; args->num = 0; - } else if (args->num+2 >= args->nalloc) - args->nalloc *= 2; + } else if (args->num+2 >= nalloc) + nalloc *= 2; - args->list = xrealloc(args->list, args->nalloc * sizeof(char *)); + args->list = xrealloc(args->list, nalloc * sizeof(char *)); + args->nalloc = nalloc; args->list[args->num++] = xstrdup(buf); args->list[args->num] = NULL; } ==== //depot/projects/ia64/crypto/openssh/session.c#17 (text+ko) ==== @@ -34,7 +34,7 @@ #include "includes.h" RCSID("$OpenBSD: session.c,v 1.154 2003/03/05 22:33:43 markus Exp $"); -RCSID("$FreeBSD: src/crypto/openssh/session.c,v 1.40 2003/04/23 17:10:53 des Exp $"); +RCSID("$FreeBSD: src/crypto/openssh/session.c,v 1.41 2003/09/17 14:36:14 nectar Exp $"); #include "ssh.h" #include "ssh1.h" @@ -863,8 +863,9 @@ child_set_env(char ***envp, u_int *envsizep, const char *name, const char *value) { + char **env; + u_int envsize; u_int i, namelen; - char **env; /* * Find the slot where the value should be stored. If the variable @@ -881,12 +882,13 @@ xfree(env[i]); } else { /* New variable. Expand if necessary. */ - if (i >= (*envsizep) - 1) { - if (*envsizep >= 1000) - fatal("child_set_env: too many env vars," - " skipping: %.100s", name); - (*envsizep) += 50; - env = (*envp) = xrealloc(env, (*envsizep) * sizeof(char *)); + envsize = *envsizep; + if (i >= envsize - 1) { + if (envsize >= 1000) + fatal("child_set_env: too many env vars"); + envsize += 50; + env = (*envp) = xrealloc(env, envsize * sizeof(char *)); + *envsizep = envsize; } /* Need to set the NULL pointer at end of array beyond the new slot. */ env[i + 1] = NULL; ==== //depot/projects/ia64/crypto/openssh/ssh-agent.c#8 (text+ko) ==== @@ -36,7 +36,7 @@ #include "includes.h" #include "openbsd-compat/sys-queue.h" RCSID("$OpenBSD: ssh-agent.c,v 1.108 2003/03/13 11:44:50 markus Exp $"); -RCSID("$FreeBSD: src/crypto/openssh/ssh-agent.c,v 1.18 2003/04/23 17:10:53 des Exp $"); +RCSID("$FreeBSD: src/crypto/openssh/ssh-agent.c,v 1.19 2003/09/17 14:36:14 nectar Exp $"); #include #include @@ -768,7 +768,7 @@ static void new_socket(sock_type type, int fd) { - u_int i, old_alloc; + u_int i, old_alloc, new_alloc; if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) error("fcntl O_NONBLOCK: %s", strerror(errno)); @@ -779,25 +779,26 @@ for (i = 0; i < sockets_alloc; i++) if (sockets[i].type == AUTH_UNUSED) { sockets[i].fd = fd; - sockets[i].type = type; buffer_init(&sockets[i].input); buffer_init(&sockets[i].output); buffer_init(&sockets[i].request); + sockets[i].type = type; return; } old_alloc = sockets_alloc; - sockets_alloc += 10; + new_alloc = sockets_alloc + 10; if (sockets) - sockets = xrealloc(sockets, sockets_alloc * sizeof(sockets[0])); + sockets = xrealloc(sockets, new_alloc * sizeof(sockets[0])); else - sockets = xmalloc(sockets_alloc * sizeof(sockets[0])); - for (i = old_alloc; i < sockets_alloc; i++) + sockets = xmalloc(new_alloc * sizeof(sockets[0])); + for (i = old_alloc; i < new_alloc; i++) sockets[i].type = AUTH_UNUSED; - sockets[old_alloc].type = type; + sockets_alloc = new_alloc; sockets[old_alloc].fd = fd; buffer_init(&sockets[old_alloc].input); buffer_init(&sockets[old_alloc].output); buffer_init(&sockets[old_alloc].request); + sockets[old_alloc].type = type; } static int ==== //depot/projects/ia64/crypto/openssh/version.h#12 (text+ko) ==== @@ -1,11 +1,11 @@ /* $OpenBSD: version.h,v 1.37 2003/04/01 10:56:46 markus Exp $ */ -/* $FreeBSD: src/crypto/openssh/version.h,v 1.21 2003/09/16 14:31:46 nectar Exp $ */ +/* $FreeBSD: src/crypto/openssh/version.h,v 1.22 2003/09/17 14:36:14 nectar Exp $ */ #ifndef SSH_VERSION #define SSH_VERSION (ssh_version_get()) #define SSH_VERSION_BASE "OpenSSH_3.6.1p1" -#define SSH_VERSION_ADDENDUM "FreeBSD-20030916" +#define SSH_VERSION_ADDENDUM "FreeBSD-20030917" const char *ssh_version_get(void); void ssh_version_set_addendum(const char *add); ==== //depot/projects/ia64/sbin/ifconfig/ifieee80211.c#5 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sbin/ifconfig/ifieee80211.c,v 1.6 2003/06/28 06:23:40 sam Exp $ + * $FreeBSD: src/sbin/ifconfig/ifieee80211.c,v 1.7 2003/09/17 19:27:43 sam Exp $ */ /*- @@ -76,6 +76,7 @@ #include #include #include +#include #include #include @@ -229,7 +230,7 @@ { int key = 0; int len; - u_int8_t data[14]; + u_int8_t data[IEEE80211_KEYBUF_SIZE]; if (isdigit(val[0]) && val[1] == ':') { key = atoi(val)-1; @@ -253,7 +254,7 @@ { int txkey; int i, len; - u_int8_t data[14]; + u_int8_t data[IEEE80211_KEYBUF_SIZE]; set80211(s, IEEE80211_IOC_WEP, IEEE80211_WEP_ON, 0, NULL); @@ -427,10 +428,12 @@ warn("WEP support, but can get keys!"); goto end; } - if (ireq.i_len == 0 || ireq.i_len > 13) + if (ireq.i_len == 0 || + ireq.i_len > IEEE80211_KEYBUF_SIZE) continue; printf("%cwepkey %d:%s", spacer, i+1, - ireq.i_len <= 5 ? "64-bit" : "128-bit"); + ireq.i_len <= 5 ? "40-bit" : + ireq.i_len <= 13 ? "104-bit" : "128-bit"); if (spacer == '\t') spacer = ' '; } ==== //depot/projects/ia64/sys/crypto/rijndael/rijndael-api-fst.c#5 (text+ko) ==== @@ -16,7 +16,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.5 2003/06/10 21:43:49 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.6 2003/09/17 08:51:43 ume Exp $"); #include #include @@ -225,7 +225,7 @@ outBuffer += 16; } padLen = 16 - (inputOctets - 16*numBlocks); - if (padLen > 0 && padLen <= 16) + if (padLen <= 0 || padLen > 16) return BAD_CIPHER_STATE; bcopy(input, block, 16 - padLen); for (cp = block + 16 - padLen; cp < block + 16; cp++) ==== //depot/projects/ia64/sys/dev/acpica/acpi_pci.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.5 2003/08/24 17:48:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.6 2003/09/17 08:32:44 iwasaki Exp $"); #include "opt_bus.h" @@ -79,7 +79,7 @@ DEVMETHOD(device_attach, acpi_pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), ==== //depot/projects/ia64/sys/dev/pci/pci.c#34 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci.c,v 1.232 2003/09/14 19:30:00 scottl Exp $ + * $FreeBSD: src/sys/dev/pci/pci.c,v 1.233 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -89,7 +89,7 @@ DEVMETHOD(device_attach, pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), @@ -1509,3 +1509,35 @@ return (0); } + +int +pci_resume(device_t dev) +{ + int numdevs; + int i; + device_t *children; + device_t child; + struct pci_devinfo *dinfo; + pcicfgregs *cfg; + + device_get_children(dev, &children, &numdevs); + + for (i = 0; i < numdevs; i++) { + child = children[i]; + + dinfo = device_get_ivars(child); + cfg = &dinfo->cfg; + if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { + cfg->intline = PCI_ASSIGN_INTERRUPT(dev, child); + if (PCI_INTERRUPT_VALID(cfg->intline)) { + pci_write_config(child, PCIR_INTLINE, + cfg->intline, 1); + } + } + } + + free(children, M_TEMP); + + return (bus_generic_resume(dev)); +} + ==== //depot/projects/ia64/sys/dev/pci/pci_private.h#9 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci_private.h,v 1.10 2003/08/22 03:11:53 imp Exp $ + * $FreeBSD: src/sys/dev/pci/pci_private.h,v 1.11 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -73,4 +73,5 @@ int pci_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf, size_t buflen); int pci_assign_interrupt_method(device_t dev, device_t child); +int pci_resume(device_t dev); #endif /* _PCI_PRIVATE_H_ */ ==== //depot/projects/ia64/sys/dev/sio/sio.c#52 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.405 2003/09/15 13:49:18 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.408 2003/09/17 17:26:00 bde Exp $"); #include "opt_comconsole.h" #include "opt_compat.h" @@ -113,21 +113,20 @@ #define COM_ISMULTIPORT(flags) (0) #endif /* COM_MULTIPORT */ +#define COM_C_IIR_TXRDYBUG 0x80000 #define COM_CONSOLE(flags) ((flags) & 0x10) +#define COM_DEBUGGER(flags) ((flags) & 0x80) +#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define COM_FORCECONSOLE(flags) ((flags) & 0x20) +#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) #define COM_LLCONSOLE(flags) ((flags) & 0x40) -#define COM_DEBUGGER(flags) ((flags) & 0x80) #define COM_LOSESOUTINTS(flags) ((flags) & 0x08) -#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOPROBE(flags) ((flags) & 0x40000) +#define COM_NOSCR(flags) ((flags) & 0x100000) #define COM_PPSCTS(flags) ((flags) & 0x10000) -#define COM_ST16650A(flags) ((flags) & 0x20000) -#define COM_C_NOPROBE (0x40000) -#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE) -#define COM_C_IIR_TXRDYBUG (0x80000) -#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) -#define COM_NOSCR(flags) ((flags) & 0x100000) +#define COM_ST16650A(flags) ((flags) & 0x20000) #define COM_TI16754(flags) ((flags) & 0x200000) -#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define sio_getreg(com, off) \ (bus_space_read_1((com)->bst, (com)->bsh, (off))) @@ -196,7 +195,6 @@ u_char extra_state; /* more flag bits, separate for order trick */ u_char fifo_image; /* copy of value written to FIFO */ bool_t hasfifo; /* nonzero for 16550 UARTs */ - bool_t st16650a; /* Is a Startech 16650A or RTS/CTS compat */ bool_t loses_outints; /* nonzero if device loses output interrupts */ u_char mcr_image; /* copy of value written to MCR */ #ifdef COM_MULTIPORT @@ -206,6 +204,7 @@ bool_t gone; /* hardware disappeared */ bool_t poll; /* nonzero if polling is required */ bool_t poll_output; /* nonzero if polling for output is required */ + bool_t st16650a; /* nonzero if Startech 16650A compatible */ int unit; /* unit number */ int dtr_wait; /* time to hold DTR down on close (* 1/hz) */ u_int tx_fifo_size; @@ -450,7 +449,7 @@ device_printf(dev, "NULL com in siounload\n"); return (0); } - com->gone = 1; + com->gone = TRUE; for (i = 0 ; i < 6; i++) destroy_dev(com->devs[i]); if (com->irqres) { @@ -1023,7 +1022,6 @@ } sio_setreg(com, com_fifo, FIFO_ENABLE | FIFO_RX_HIGH); DELAY(100); - com->st16650a = 0; switch (inb(com->int_id_port) & IIR_FIFO_MASK) { case FIFO_RX_LOW: printf(" 16450"); @@ -1037,40 +1035,40 @@ case FIFO_RX_HIGH: if (COM_NOFIFO(flags)) { printf(" 16550A fifo disabled"); - } else { - com->hasfifo = TRUE; - if (COM_ST16650A(flags)) { - com->st16650a = 1; - com->tx_fifo_size = 32; - printf(" ST16650A"); - } else if (COM_TI16754(flags)) { - com->tx_fifo_size = 64; - printf(" TI16754"); - } else { - com->tx_fifo_size = COM_FIFOSIZE(flags); - printf(" 16550A"); - } + break; + } + com->hasfifo = TRUE; + if (COM_ST16650A(flags)) { + printf(" ST16650A"); + com->st16650a = TRUE; + com->tx_fifo_size = 32; + break; + } + if (COM_TI16754(flags)) { + printf(" TI16754"); + com->tx_fifo_size = 64; + break; } + printf(" 16550A"); #ifdef COM_ESP for (espp = likely_esp_ports; *espp != 0; espp++) if (espattach(com, *espp)) { com->tx_fifo_size = 1024; break; } + if (com->esp != NULL) + break; #endif - if (!com->st16650a && !COM_TI16754(flags)) { - if (!com->tx_fifo_size) - com->tx_fifo_size = 16; - else - printf(" lookalike with %d bytes FIFO", - com->tx_fifo_size); - } - + com->tx_fifo_size = COM_FIFOSIZE(flags); + if (com->tx_fifo_size == 0) + com->tx_fifo_size = 16; + else + printf(" lookalike with %u bytes FIFO", + com->tx_fifo_size); break; } - #ifdef COM_ESP - if (com->esp) { + if (com->esp != NULL) { /* * Set 16550 compatibility mode. * We don't use the ESP_MODE_SCALE bit to increase the @@ -2205,6 +2203,7 @@ u_int divisor; u_char dlbh; u_char dlbl; + u_char efr_flowbits; int s; int unit; @@ -2309,18 +2308,13 @@ sio_setreg(com, com_dlbh, dlbh); } - sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); - if (!(tp->t_state & TS_TTSTOP)) com->state |= CS_TTGO; + efr_flowbits = 0; if (cflag & CRTS_IFLOW) { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x40); - } com->state |= CS_RTS_IFLOW; + efr_flowbits |= EFR_AUTORTS; /* * If CS_RTS_IFLOW just changed from off to on, the change * needs to be propagated to MCR_RTS. This isn't urgent, @@ -2334,14 +2328,8 @@ * on here, since comstart() won't do it later. */ outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS); - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x40); - } } - /* * Set up state to handle output flow control. * XXX - worth handling MDMBUF (DCD) flow control at the lowest level? @@ -2351,22 +2339,18 @@ com->state &= ~CS_CTS_OFLOW; if (cflag & CCTS_OFLOW) { com->state |= CS_CTS_OFLOW; + efr_flowbits |= EFR_AUTOCTS; if (!(com->last_modem_status & MSR_CTS)) com->state &= ~CS_ODEVREADY; - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x80); - } - } else { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x80); - } } - sio_setreg(com, com_cfcr, com->cfcr_image); + if (com->st16650a) { + sio_setreg(com, com_lcr, LCR_EFR_ENABLE); + sio_setreg(com, com_efr, + (sio_getreg(com, com_efr) + & ~(EFR_AUTOCTS | EFR_AUTORTS)) | efr_flowbits); + } + sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); /* XXX shouldn't call functions while intrs are disabled. */ disc_optim(tp, t, com); @@ -3173,7 +3157,6 @@ return (c); } - static int siocngetc(struct consdev *cd) { ==== //depot/projects/ia64/sys/i386/acpica/acpi_machdep.c#13 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_machdep.c,v 1.12 2003/09/10 05:29:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_machdep.c,v 1.13 2003/09/17 08:47:39 iwasaki Exp $"); #include #include @@ -98,6 +98,15 @@ if (battp->state & ACPI_BATT_STAT_CHARGING) state = 3; /* charging */ + /* If still unknown, determine it based on the battery capacity. */ + if (state == 0xff) { + if (battp->cap >= 50) { + state = 0; /* high */ + } else { + state = 1; /* low */ + } + } + return (state); } ==== //depot/projects/ia64/sys/isa/fd.c#22 (text+ko) ==== @@ -53,7 +53,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isa/fd.c,v 1.258 2003/09/11 19:27:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/isa/fd.c,v 1.260 2003/09/17 07:40:00 phk Exp $"); #include "opt_fdc.h" #include "card.h" @@ -404,10 +404,10 @@ static int fd_in(struct fdc_data *, int *); static int out_fdc(struct fdc_data *, int); /* - * The open function is named Fdopen() to avoid confusion with fdopen() + * The open function is named fdopen() to avoid confusion with fdopen() * in fd(4). The difference is now only meaningful for debuggers. */ -static d_open_t Fdopen; +static d_open_t fdopen; static d_close_t fdclose; static d_strategy_t fdstrategy; static void fdstart(struct fdc_data *); @@ -483,7 +483,7 @@ #define CDEV_MAJOR 9 static struct cdevsw fd_cdevsw = { - .d_open = Fdopen, + .d_open = fdopen, .d_close = fdclose, .d_read = physread, .d_write = physwrite, @@ -1171,6 +1171,7 @@ UID_ROOT, GID_OPERATOR, 0640, name); fd->clonedevs[i] = *dev; + fd->clonedevs[i]->si_drv1 = fd; return; } } @@ -1336,6 +1337,7 @@ #endif fd->masterdev = make_dev(&fd_cdevsw, fd->fdu << 6, UID_ROOT, GID_OPERATOR, 0640, "fd%d", fd->fdu); + fd->masterdev->si_drv1 = fd; #ifdef GONE_IN_5 { int i; @@ -1560,15 +1562,15 @@ * auxiliary functions). */ static int -Fdopen(dev_t dev, int flags, int mode, struct thread *td) +fdopen(dev_t dev, int flags, int mode, struct thread *td) { - fdu_t fdu = FDUNIT(minor(dev)); int type = FDTYPE(minor(dev)); fd_p fd; fdc_p fdc; int rv, unitattn, dflags; - if ((fd = devclass_get_softc(fd_devclass, fdu)) == 0) + fd = dev->si_drv1; + if (fd == NULL) return (ENXIO); fdc = fd->fdc; if ((fdc == NULL) || (fd->type == FDT_NONE)) @@ -1664,10 +1666,9 @@ static int fdclose(dev_t dev, int flags, int mode, struct thread *td) { - fdu_t fdu = FDUNIT(minor(dev)); struct fd_data *fd; - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; fd->flags &= ~(FD_OPEN | FD_NONBLOCK); fd->options &= ~(FDOPT_NORETRY | FDOPT_NOERRLOG | FDOPT_NOERROR); @@ -1685,8 +1686,8 @@ size_t fdblk; fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); - if (fd == 0) + fd = bp->bio_dev->si_drv1; + if (fd == NULL) panic("fdstrategy: buf for nonexistent device (%#lx, %#lx)", (u_long)major(bp->bio_dev), (u_long)minor(bp->bio_dev)); fdc = fd->fdc; @@ -1883,7 +1884,7 @@ int i, n, oopts, rv; fdu = FDUNIT(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; switch (fd->type) { default: @@ -2010,7 +2011,7 @@ return (0); } fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = bp->bio_dev->si_drv1; fdblk = 128 << fd->ft->secsize; if (fdc->fd && (fd != fdc->fd)) device_printf(fd->dev, "confused fd pointers\n"); @@ -2513,7 +2514,7 @@ /* XXX shouldn't this be cached somewhere? */ fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = bp->bio_dev->si_drv1; if (fd->options & FDOPT_NORETRY) goto fail; @@ -2584,7 +2585,7 @@ int error; fdu = FDUNIT(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; fdblk = 128 << fd->ft->secsize; finfo = (struct fd_formb *)data; idfield = (struct fdc_readid *)data; @@ -2636,7 +2637,7 @@ fdu = FDUNIT(minor(dev)); type = FDTYPE(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; /* * First, handle everything that could be done with ==== //depot/projects/ia64/sys/net/bridge.c#21 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/net/bridge.c,v 1.68 2003/09/17 00:50:33 sam Exp $ + * $FreeBSD: src/sys/net/bridge.c,v 1.69 2003/09/17 18:14:49 sam Exp $ */ /* @@ -852,7 +852,7 @@ eh->ether_shost, ".", eh->ether_dhost, ".", ntohs(eh->ether_type), - (dst <= BDG_FORWARD) ? bdg_dst_names[(int)dst] : + (dst <= BDG_FORWARD) ? bdg_dst_names[(uintptr_t)dst] : dst->if_name, (dst <= BDG_FORWARD) ? 0 : dst->if_unit)); ==== //depot/projects/ia64/sys/netinet/ip_fw2.c#27 (text+ko) ==== @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.38 2003/09/17 00:56:50 sam Exp $ + * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.39 2003/09/17 22:06:47 sam Exp $ */ #define DEB(x) @@ -111,7 +111,8 @@ struct mtx mtx; /* lock guarding rule list */ }; #define IPFW_LOCK_INIT(_chain) \ - mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, MTX_DEF) + mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, \ + MTX_DEF | MTX_RECURSE) #define IPFW_LOCK_DESTROY(_chain) mtx_destroy(&(_chain)->mtx) #define IPFW_LOCK(_chain) mtx_lock(&(_chain)->mtx) #define IPFW_UNLOCK(_chain) mtx_unlock(&(_chain)->mtx) ==== //depot/projects/ia64/sys/netinet/raw_ip.c#28 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 - * $FreeBSD: src/sys/netinet/raw_ip.c,v 1.117 2003/09/01 04:27:34 sam Exp $ + * $FreeBSD: src/sys/netinet/raw_ip.c,v 1.118 2003/09/17 21:13:16 sam Exp $ */ #include "opt_inet6.h" @@ -709,10 +709,8 @@ for (inp = LIST_FIRST(ripcbinfo.listhead), i = 0; inp && i < n; inp = LIST_NEXT(inp, inp_list)) { INP_LOCK(inp); - if (inp->inp_gencnt <= gencnt) { - if (cr_canseesocket(req->td->td_ucred, - inp->inp_socket)) - continue; + if (inp->inp_gencnt <= gencnt && + cr_canseesocket(req->td->td_ucred, inp->inp_socket) == 0) { /* XXX held references? */ inp_list[i++] = inp; } ==== //depot/projects/ia64/sys/sys/param.h#42 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.3 (Berkeley) 4/4/95 - * $FreeBSD: src/sys/sys/param.h,v 1.166 2003/09/08 11:54:59 tjr Exp $ + * $FreeBSD: src/sys/sys/param.h,v 1.167 2003/09/17 20:37:02 jhb Exp $ */ #ifndef _SYS_PARAM_H_ @@ -57,7 +57,7 @@ * scheme is: <0 if release branch, otherwise 1>xx */ #undef __FreeBSD_version -#define __FreeBSD_version 501106 /* Master, propagated to newvers */ +#define __FreeBSD_version 501107 /* Master, propagated to newvers */ #ifndef NULL #define NULL 0 ==== //depot/projects/ia64/sys/vm/vm_object.c#67 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.305 2003/09/15 05:58:27 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.306 2003/09/17 07:00:14 alc Exp $"); #include #include @@ -1093,8 +1093,6 @@ vm_object_t source; vm_object_t result; - GIANT_REQUIRED; - source = *object; /* ==== //depot/projects/ia64/sys/vm/vm_pageout.c#46 (text+ko) ==== @@ -71,7 +71,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.242 2003/08/31 00:00:46 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.243 2003/09/17 06:55:42 alc Exp $"); #include "opt_vm.h" #include @@ -926,13 +926,14 @@ */ if (object->type == OBJT_VNODE) { vp = object->handle; - mp = NULL; if (vp->v_type == VREG) vn_start_write(vp, &mp, V_NOWAIT); vm_page_unlock_queues(); + VI_LOCK(vp); VM_OBJECT_UNLOCK(object); - if (vget(vp, LK_EXCLUSIVE|LK_TIMELOCK, curthread)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK | + LK_TIMELOCK, curthread)) { VM_OBJECT_LOCK(object); vm_page_lock_queues(); ++pageout_lock_miss; ==== //depot/projects/ia64/usr.bin/window/main.c#3 (text+ko) ==== @@ -43,7 +43,7 @@ #ifndef lint static char sccsid[] = "@(#)main.c 8.2 (Berkeley) 4/2/94"; static char rcsid[] = - "$FreeBSD: src/usr.bin/window/main.c,v 1.7 2001/05/17 09:38:48 obrien Exp $"; + "$FreeBSD: src/usr.bin/window/main.c,v 1.8 2003/09/17 03:58:52 marcel Exp $"; #endif /* not lint */ #include "defs.h" @@ -55,10 +55,8 @@ #include "char.h" #include "local.h" -void *usage(void); +#define next(a) (*++*(a) ? *(a) : (*++(a) ? *(a) : (char *)(uintptr_t)usage())) -#define next(a) (*++*(a) ? *(a) : (*++(a) ? *(a) : (char *)usage())) - /*ARGSUSED*/ main(argc, argv) char **argv; @@ -201,10 +199,9 @@ return 0; } -void * usage() { (void) fprintf(stderr, "usage: window [-e escape-char] [-c command] [-t] [-f] [-d]\n"); exit(1); - return NULL; /* for lint */ + return 0; /* for lint */ } ==== //depot/projects/ia64/usr.sbin/sysinstall/dmenu.c#3 (text+ko) ==== @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated for what's essentially a complete rewrite. * - * $FreeBSD: src/usr.sbin/sysinstall/dmenu.c,v 1.44 2000/03/08 14:20:26 jkh Exp $ + * $FreeBSD: src/usr.sbin/sysinstall/dmenu.c,v 1.45 2003/09/17 03:45:30 marcel Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -287,16 +287,19 @@ dialog_clear_norefresh(); /* Pop up that dialog! */ if (menu->type & DMENU_NORMAL_TYPE) - rval = dialog_menu((u_char *)menu->title, (u_char *)menu->prompt, -1, -1, - menu_height(menu, n), -n, items, (char *)(uintptr_t)buttons, choice, scroll); + rval = dialog_menu((u_char *)menu->title, (u_char *)menu->prompt, + -1, -1, menu_height(menu, n), -n, items, + (char *)(uintptr_t)buttons, choice, scroll); else if (menu->type & DMENU_RADIO_TYPE) - rval = dialog_radiolist((u_char *)menu->title, (u_char *)menu->prompt, -1, -1, - menu_height(menu, n), -n, items, (char *)(uintptr_t)buttons); + rval = dialog_radiolist((u_char *)menu->title, + (u_char *)menu->prompt, -1, -1, menu_height(menu, n), -n, + items, (char *)(uintptr_t)buttons); else if (menu->type & DMENU_CHECKLIST_TYPE) - rval = dialog_checklist((u_char *)menu->title, (u_char *)menu->prompt, -1, -1, - menu_height(menu, n), -n, items, (char *)(uintptr_t)buttons); + rval = dialog_checklist((u_char *)menu->title, + (u_char *)menu->prompt, -1, -1, menu_height(menu, n), -n, + items, (char *)(uintptr_t)buttons); else msgFatal("Menu: `%s' is of an unknown type\n", menu->title); if (exited) { From owner-p4-projects@FreeBSD.ORG Wed Sep 17 15:56:09 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E6EDF16A4BF; Wed, 17 Sep 2003 15:56:08 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B8CD116A4B3 for ; Wed, 17 Sep 2003 15:56:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C3FD74407E for ; Wed, 17 Sep 2003 15:43:42 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8HMheXJ036851 for ; Wed, 17 Sep 2003 15:43:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8HMhew5036848 for perforce@freebsd.org; Wed, 17 Sep 2003 15:43:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Wed, 17 Sep 2003 15:43:40 -0700 (PDT) Message-Id: <200309172243.h8HMhew5036848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38203 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Sep 2003 22:56:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=38203 Change 38203 by marcel@marcel_nfs on 2003/09/17 15:43:37 IFC @38201 Affected files ... .. //depot/projects/uart/crypto/rijndael/rijndael-api-fst.c#2 integrate .. //depot/projects/uart/dev/acpica/acpi_pci.c#4 integrate .. //depot/projects/uart/dev/pci/pci.c#11 integrate .. //depot/projects/uart/dev/pci/pci_private.h#4 integrate .. //depot/projects/uart/dev/sio/sio.c#7 integrate .. //depot/projects/uart/i386/acpica/acpi_machdep.c#4 integrate .. //depot/projects/uart/isa/fd.c#5 integrate .. //depot/projects/uart/net/bridge.c#3 integrate .. //depot/projects/uart/netinet/ip_fw2.c#7 integrate .. //depot/projects/uart/netinet/raw_ip.c#7 integrate .. //depot/projects/uart/sys/param.h#8 integrate .. //depot/projects/uart/vm/vm_object.c#6 integrate .. //depot/projects/uart/vm/vm_pageout.c#7 integrate Differences ... ==== //depot/projects/uart/crypto/rijndael/rijndael-api-fst.c#2 (text+ko) ==== @@ -16,7 +16,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.5 2003/06/10 21:43:49 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.6 2003/09/17 08:51:43 ume Exp $"); #include #include @@ -225,7 +225,7 @@ outBuffer += 16; } padLen = 16 - (inputOctets - 16*numBlocks); - if (padLen > 0 && padLen <= 16) + if (padLen <= 0 || padLen > 16) return BAD_CIPHER_STATE; bcopy(input, block, 16 - padLen); for (cp = block + 16 - padLen; cp < block + 16; cp++) ==== //depot/projects/uart/dev/acpica/acpi_pci.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.5 2003/08/24 17:48:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci.c,v 1.6 2003/09/17 08:32:44 iwasaki Exp $"); #include "opt_bus.h" @@ -79,7 +79,7 @@ DEVMETHOD(device_attach, acpi_pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), ==== //depot/projects/uart/dev/pci/pci.c#11 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci.c,v 1.232 2003/09/14 19:30:00 scottl Exp $ + * $FreeBSD: src/sys/dev/pci/pci.c,v 1.233 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -89,7 +89,7 @@ DEVMETHOD(device_attach, pci_attach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), + DEVMETHOD(device_resume, pci_resume), /* Bus interface */ DEVMETHOD(bus_print_child, pci_print_child), @@ -1509,3 +1509,35 @@ return (0); } + +int +pci_resume(device_t dev) +{ + int numdevs; + int i; + device_t *children; + device_t child; + struct pci_devinfo *dinfo; + pcicfgregs *cfg; + + device_get_children(dev, &children, &numdevs); + + for (i = 0; i < numdevs; i++) { + child = children[i]; + + dinfo = device_get_ivars(child); + cfg = &dinfo->cfg; + if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { + cfg->intline = PCI_ASSIGN_INTERRUPT(dev, child); + if (PCI_INTERRUPT_VALID(cfg->intline)) { + pci_write_config(child, PCIR_INTLINE, + cfg->intline, 1); + } + } + } + + free(children, M_TEMP); + + return (bus_generic_resume(dev)); +} + ==== //depot/projects/uart/dev/pci/pci_private.h#4 (text+ko) ==== @@ -25,7 +25,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/dev/pci/pci_private.h,v 1.10 2003/08/22 03:11:53 imp Exp $ + * $FreeBSD: src/sys/dev/pci/pci_private.h,v 1.11 2003/09/17 08:32:44 iwasaki Exp $ * */ @@ -73,4 +73,5 @@ int pci_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf, size_t buflen); int pci_assign_interrupt_method(device_t dev, device_t child); +int pci_resume(device_t dev); #endif /* _PCI_PRIVATE_H_ */ ==== //depot/projects/uart/dev/sio/sio.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.405 2003/09/15 13:49:18 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.408 2003/09/17 17:26:00 bde Exp $"); #include "opt_comconsole.h" #include "opt_compat.h" @@ -113,21 +113,20 @@ #define COM_ISMULTIPORT(flags) (0) #endif /* COM_MULTIPORT */ +#define COM_C_IIR_TXRDYBUG 0x80000 #define COM_CONSOLE(flags) ((flags) & 0x10) +#define COM_DEBUGGER(flags) ((flags) & 0x80) +#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define COM_FORCECONSOLE(flags) ((flags) & 0x20) +#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) #define COM_LLCONSOLE(flags) ((flags) & 0x40) -#define COM_DEBUGGER(flags) ((flags) & 0x80) #define COM_LOSESOUTINTS(flags) ((flags) & 0x08) -#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOFIFO(flags) ((flags) & 0x02) +#define COM_NOPROBE(flags) ((flags) & 0x40000) +#define COM_NOSCR(flags) ((flags) & 0x100000) #define COM_PPSCTS(flags) ((flags) & 0x10000) -#define COM_ST16650A(flags) ((flags) & 0x20000) -#define COM_C_NOPROBE (0x40000) -#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE) -#define COM_C_IIR_TXRDYBUG (0x80000) -#define COM_IIR_TXRDYBUG(flags) ((flags) & COM_C_IIR_TXRDYBUG) -#define COM_NOSCR(flags) ((flags) & 0x100000) +#define COM_ST16650A(flags) ((flags) & 0x20000) #define COM_TI16754(flags) ((flags) & 0x200000) -#define COM_FIFOSIZE(flags) (((flags) & 0xff000000) >> 24) #define sio_getreg(com, off) \ (bus_space_read_1((com)->bst, (com)->bsh, (off))) @@ -196,7 +195,6 @@ u_char extra_state; /* more flag bits, separate for order trick */ u_char fifo_image; /* copy of value written to FIFO */ bool_t hasfifo; /* nonzero for 16550 UARTs */ - bool_t st16650a; /* Is a Startech 16650A or RTS/CTS compat */ bool_t loses_outints; /* nonzero if device loses output interrupts */ u_char mcr_image; /* copy of value written to MCR */ #ifdef COM_MULTIPORT @@ -206,6 +204,7 @@ bool_t gone; /* hardware disappeared */ bool_t poll; /* nonzero if polling is required */ bool_t poll_output; /* nonzero if polling for output is required */ + bool_t st16650a; /* nonzero if Startech 16650A compatible */ int unit; /* unit number */ int dtr_wait; /* time to hold DTR down on close (* 1/hz) */ u_int tx_fifo_size; @@ -450,7 +449,7 @@ device_printf(dev, "NULL com in siounload\n"); return (0); } - com->gone = 1; + com->gone = TRUE; for (i = 0 ; i < 6; i++) destroy_dev(com->devs[i]); if (com->irqres) { @@ -1023,7 +1022,6 @@ } sio_setreg(com, com_fifo, FIFO_ENABLE | FIFO_RX_HIGH); DELAY(100); - com->st16650a = 0; switch (inb(com->int_id_port) & IIR_FIFO_MASK) { case FIFO_RX_LOW: printf(" 16450"); @@ -1037,40 +1035,40 @@ case FIFO_RX_HIGH: if (COM_NOFIFO(flags)) { printf(" 16550A fifo disabled"); - } else { - com->hasfifo = TRUE; - if (COM_ST16650A(flags)) { - com->st16650a = 1; - com->tx_fifo_size = 32; - printf(" ST16650A"); - } else if (COM_TI16754(flags)) { - com->tx_fifo_size = 64; - printf(" TI16754"); - } else { - com->tx_fifo_size = COM_FIFOSIZE(flags); - printf(" 16550A"); - } + break; + } + com->hasfifo = TRUE; + if (COM_ST16650A(flags)) { + printf(" ST16650A"); + com->st16650a = TRUE; + com->tx_fifo_size = 32; + break; + } + if (COM_TI16754(flags)) { + printf(" TI16754"); + com->tx_fifo_size = 64; + break; } + printf(" 16550A"); #ifdef COM_ESP for (espp = likely_esp_ports; *espp != 0; espp++) if (espattach(com, *espp)) { com->tx_fifo_size = 1024; break; } + if (com->esp != NULL) + break; #endif - if (!com->st16650a && !COM_TI16754(flags)) { - if (!com->tx_fifo_size) - com->tx_fifo_size = 16; - else - printf(" lookalike with %d bytes FIFO", - com->tx_fifo_size); - } - + com->tx_fifo_size = COM_FIFOSIZE(flags); + if (com->tx_fifo_size == 0) + com->tx_fifo_size = 16; + else + printf(" lookalike with %u bytes FIFO", + com->tx_fifo_size); break; } - #ifdef COM_ESP - if (com->esp) { + if (com->esp != NULL) { /* * Set 16550 compatibility mode. * We don't use the ESP_MODE_SCALE bit to increase the @@ -2205,6 +2203,7 @@ u_int divisor; u_char dlbh; u_char dlbl; + u_char efr_flowbits; int s; int unit; @@ -2309,18 +2308,13 @@ sio_setreg(com, com_dlbh, dlbh); } - sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); - if (!(tp->t_state & TS_TTSTOP)) com->state |= CS_TTGO; + efr_flowbits = 0; if (cflag & CRTS_IFLOW) { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x40); - } com->state |= CS_RTS_IFLOW; + efr_flowbits |= EFR_AUTORTS; /* * If CS_RTS_IFLOW just changed from off to on, the change * needs to be propagated to MCR_RTS. This isn't urgent, @@ -2334,14 +2328,8 @@ * on here, since comstart() won't do it later. */ outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS); - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x40); - } } - /* * Set up state to handle output flow control. * XXX - worth handling MDMBUF (DCD) flow control at the lowest level? @@ -2351,22 +2339,18 @@ com->state &= ~CS_CTS_OFLOW; if (cflag & CCTS_OFLOW) { com->state |= CS_CTS_OFLOW; + efr_flowbits |= EFR_AUTOCTS; if (!(com->last_modem_status & MSR_CTS)) com->state &= ~CS_ODEVREADY; - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) | 0x80); - } - } else { - if (com->st16650a) { - sio_setreg(com, com_cfcr, 0xbf); - sio_setreg(com, com_fifo, - sio_getreg(com, com_fifo) & ~0x80); - } } - sio_setreg(com, com_cfcr, com->cfcr_image); + if (com->st16650a) { + sio_setreg(com, com_lcr, LCR_EFR_ENABLE); + sio_setreg(com, com_efr, + (sio_getreg(com, com_efr) + & ~(EFR_AUTOCTS | EFR_AUTORTS)) | efr_flowbits); + } + sio_setreg(com, com_cfcr, com->cfcr_image = cfcr); /* XXX shouldn't call functions while intrs are disabled. */ disc_optim(tp, t, com); @@ -3173,7 +3157,6 @@ return (c); } - static int siocngetc(struct consdev *cd) { ==== //depot/projects/uart/i386/acpica/acpi_machdep.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_machdep.c,v 1.12 2003/09/10 05:29:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_machdep.c,v 1.13 2003/09/17 08:47:39 iwasaki Exp $"); #include #include @@ -98,6 +98,15 @@ if (battp->state & ACPI_BATT_STAT_CHARGING) state = 3; /* charging */ + /* If still unknown, determine it based on the battery capacity. */ + if (state == 0xff) { + if (battp->cap >= 50) { + state = 0; /* high */ + } else { + state = 1; /* low */ + } + } + return (state); } ==== //depot/projects/uart/isa/fd.c#5 (text+ko) ==== @@ -53,7 +53,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/isa/fd.c,v 1.258 2003/09/11 19:27:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/isa/fd.c,v 1.260 2003/09/17 07:40:00 phk Exp $"); #include "opt_fdc.h" #include "card.h" @@ -404,10 +404,10 @@ static int fd_in(struct fdc_data *, int *); static int out_fdc(struct fdc_data *, int); /* - * The open function is named Fdopen() to avoid confusion with fdopen() + * The open function is named fdopen() to avoid confusion with fdopen() * in fd(4). The difference is now only meaningful for debuggers. */ -static d_open_t Fdopen; +static d_open_t fdopen; static d_close_t fdclose; static d_strategy_t fdstrategy; static void fdstart(struct fdc_data *); @@ -483,7 +483,7 @@ #define CDEV_MAJOR 9 static struct cdevsw fd_cdevsw = { - .d_open = Fdopen, + .d_open = fdopen, .d_close = fdclose, .d_read = physread, .d_write = physwrite, @@ -1171,6 +1171,7 @@ UID_ROOT, GID_OPERATOR, 0640, name); fd->clonedevs[i] = *dev; + fd->clonedevs[i]->si_drv1 = fd; return; } } @@ -1336,6 +1337,7 @@ #endif fd->masterdev = make_dev(&fd_cdevsw, fd->fdu << 6, UID_ROOT, GID_OPERATOR, 0640, "fd%d", fd->fdu); + fd->masterdev->si_drv1 = fd; #ifdef GONE_IN_5 { int i; @@ -1560,15 +1562,15 @@ * auxiliary functions). */ static int -Fdopen(dev_t dev, int flags, int mode, struct thread *td) +fdopen(dev_t dev, int flags, int mode, struct thread *td) { - fdu_t fdu = FDUNIT(minor(dev)); int type = FDTYPE(minor(dev)); fd_p fd; fdc_p fdc; int rv, unitattn, dflags; - if ((fd = devclass_get_softc(fd_devclass, fdu)) == 0) + fd = dev->si_drv1; + if (fd == NULL) return (ENXIO); fdc = fd->fdc; if ((fdc == NULL) || (fd->type == FDT_NONE)) @@ -1664,10 +1666,9 @@ static int fdclose(dev_t dev, int flags, int mode, struct thread *td) { - fdu_t fdu = FDUNIT(minor(dev)); struct fd_data *fd; - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; fd->flags &= ~(FD_OPEN | FD_NONBLOCK); fd->options &= ~(FDOPT_NORETRY | FDOPT_NOERRLOG | FDOPT_NOERROR); @@ -1685,8 +1686,8 @@ size_t fdblk; fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); - if (fd == 0) + fd = bp->bio_dev->si_drv1; + if (fd == NULL) panic("fdstrategy: buf for nonexistent device (%#lx, %#lx)", (u_long)major(bp->bio_dev), (u_long)minor(bp->bio_dev)); fdc = fd->fdc; @@ -1883,7 +1884,7 @@ int i, n, oopts, rv; fdu = FDUNIT(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; switch (fd->type) { default: @@ -2010,7 +2011,7 @@ return (0); } fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = bp->bio_dev->si_drv1; fdblk = 128 << fd->ft->secsize; if (fdc->fd && (fd != fdc->fd)) device_printf(fd->dev, "confused fd pointers\n"); @@ -2513,7 +2514,7 @@ /* XXX shouldn't this be cached somewhere? */ fdu = FDUNIT(minor(bp->bio_dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = bp->bio_dev->si_drv1; if (fd->options & FDOPT_NORETRY) goto fail; @@ -2584,7 +2585,7 @@ int error; fdu = FDUNIT(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; fdblk = 128 << fd->ft->secsize; finfo = (struct fd_formb *)data; idfield = (struct fdc_readid *)data; @@ -2636,7 +2637,7 @@ fdu = FDUNIT(minor(dev)); type = FDTYPE(minor(dev)); - fd = devclass_get_softc(fd_devclass, fdu); + fd = dev->si_drv1; /* * First, handle everything that could be done with ==== //depot/projects/uart/net/bridge.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/net/bridge.c,v 1.68 2003/09/17 00:50:33 sam Exp $ + * $FreeBSD: src/sys/net/bridge.c,v 1.69 2003/09/17 18:14:49 sam Exp $ */ /* @@ -852,7 +852,7 @@ eh->ether_shost, ".", eh->ether_dhost, ".", ntohs(eh->ether_type), - (dst <= BDG_FORWARD) ? bdg_dst_names[(int)dst] : + (dst <= BDG_FORWARD) ? bdg_dst_names[(uintptr_t)dst] : dst->if_name, (dst <= BDG_FORWARD) ? 0 : dst->if_unit)); ==== //depot/projects/uart/netinet/ip_fw2.c#7 (text+ko) ==== @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.38 2003/09/17 00:56:50 sam Exp $ + * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.39 2003/09/17 22:06:47 sam Exp $ */ #define DEB(x) @@ -111,7 +111,8 @@ struct mtx mtx; /* lock guarding rule list */ }; #define IPFW_LOCK_INIT(_chain) \ - mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, MTX_DEF) + mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, \ + MTX_DEF | MTX_RECURSE) #define IPFW_LOCK_DESTROY(_chain) mtx_destroy(&(_chain)->mtx) #define IPFW_LOCK(_chain) mtx_lock(&(_chain)->mtx) #define IPFW_UNLOCK(_chain) mtx_unlock(&(_chain)->mtx) ==== //depot/projects/uart/netinet/raw_ip.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 - * $FreeBSD: src/sys/netinet/raw_ip.c,v 1.117 2003/09/01 04:27:34 sam Exp $ + * $FreeBSD: src/sys/netinet/raw_ip.c,v 1.118 2003/09/17 21:13:16 sam Exp $ */ #include "opt_inet6.h" @@ -709,10 +709,8 @@ for (inp = LIST_FIRST(ripcbinfo.listhead), i = 0; inp && i < n; inp = LIST_NEXT(inp, inp_list)) { INP_LOCK(inp); - if (inp->inp_gencnt <= gencnt) { - if (cr_canseesocket(req->td->td_ucred, - inp->inp_socket)) - continue; + if (inp->inp_gencnt <= gencnt && + cr_canseesocket(req->td->td_ucred, inp->inp_socket) == 0) { /* XXX held references? */ inp_list[i++] = inp; } ==== //depot/projects/uart/sys/param.h#8 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.3 (Berkeley) 4/4/95 - * $FreeBSD: src/sys/sys/param.h,v 1.166 2003/09/08 11:54:59 tjr Exp $ + * $FreeBSD: src/sys/sys/param.h,v 1.167 2003/09/17 20:37:02 jhb Exp $ */ #ifndef _SYS_PARAM_H_ @@ -57,7 +57,7 @@ * scheme is: <0 if release branch, otherwise 1>xx */ #undef __FreeBSD_version -#define __FreeBSD_version 501106 /* Master, propagated to newvers */ +#define __FreeBSD_version 501107 /* Master, propagated to newvers */ #ifndef NULL #define NULL 0 ==== //depot/projects/uart/vm/vm_object.c#6 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.305 2003/09/15 05:58:27 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.306 2003/09/17 07:00:14 alc Exp $"); #include #include @@ -1093,8 +1093,6 @@ vm_object_t source; vm_object_t result; - GIANT_REQUIRED; - source = *object; /* ==== //depot/projects/uart/vm/vm_pageout.c#7 (text+ko) ==== @@ -71,7 +71,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.242 2003/08/31 00:00:46 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.243 2003/09/17 06:55:42 alc Exp $"); #include "opt_vm.h" #include @@ -926,13 +926,14 @@ */ if (object->type == OBJT_VNODE) { vp = object->handle; - mp = NULL; if (vp->v_type == VREG) vn_start_write(vp, &mp, V_NOWAIT); vm_page_unlock_queues(); + VI_LOCK(vp); VM_OBJECT_UNLOCK(object); - if (vget(vp, LK_EXCLUSIVE|LK_TIMELOCK, curthread)) { + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK | + LK_TIMELOCK, curthread)) { VM_OBJECT_LOCK(object); vm_page_lock_queues(); ++pageout_lock_miss; From owner-p4-projects@FreeBSD.ORG Wed Sep 17 17:18:37 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 61E6A16A4C0; Wed, 17 Sep 2003 17:18:37 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D03816A4B3 for ; Wed, 17 Sep 2003 17:18:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9836843FBF for ; Wed, 17 Sep 2003 17:18:36 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8I0IaXJ051022 for ; Wed, 17 Sep 2003 17:18:36 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8I0Ia2J051019 for perforce@freebsd.org; Wed, 17 Sep 2003 17:18:36 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Wed, 17 Sep 2003 17:18:36 -0700 (PDT) Message-Id: <200309180018.h8I0Ia2J051019@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 38205 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 00:18:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=38205 Change 38205 by hdandeka@hdandeka_yash on 2003/09/17 17:17:53 Integrate the POSIX global semaphore related changes to the libc. Affected files ... .. //depot/projects/trustedbsd/mac/lib/libc/sys/sem.c#5 integrate .. //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#11 edit .. //depot/projects/trustedbsd/mac/sys/posix4/ksem.h#3 integrate Differences ... ==== //depot/projects/trustedbsd/mac/lib/libc/sys/sem.c#5 (text+ko) ==== @@ -115,9 +115,11 @@ * Range check the arguments. */ if (pshared != 0) { - retval = ksem_init(&semid, value); - if (retval == -1) + if ((retval = ksem_init(&semid, value))) { + errno = retval; + retval = -1; goto RETURN; + } got_system_sem = 1; } @@ -128,7 +130,11 @@ retval = 0; RETURN: if (retval != 0 && got_system_sem) - ksem_destroy(semid); + if ((retval = ksem_destroy(semid))) { + errno = retval; + retval = -1; + } + return retval; } @@ -145,8 +151,9 @@ * make sure there are no waiters. */ if ((*sem)->syssem != 0) { - retval = ksem_destroy((*sem)->semid); - if (retval == -1) { + if ((retval = ksem_destroy((*sem)->semid))) { + errno = retval; + retval = -1; _pthread_mutex_unlock(&(*sem)->lock); goto RETURN; } @@ -173,6 +180,7 @@ semid_t semid; mode_t mode; unsigned int value; + int retval; mode = 0; value = 0; @@ -189,8 +197,10 @@ * we can be lazy and let the kernel handle the "oflag", * we'll just merge duplicate IDs into our list. */ - if (ksem_open(&semid, name, oflag, mode, value) == -1) + if ((retval = ksem_open(&semid, name, oflag, mode, value))) { + errno = retval; return (SEM_FAILED); + } /* * search for a duplicate ID, we must return the same sem_t * * if we locate one. @@ -214,7 +224,10 @@ return (sem); err: _pthread_mutex_unlock(&named_sems_mtx); - ksem_close(semid); + if ((retval = ksem_close(semid))) { + errno = retval; + return (SEM_FAILED); + } if (sem != NULL) { if (*sem != NULL) sem_free(*sem); @@ -230,13 +243,15 @@ int sem_close(sem_t *sem) { + int retval; if ((*sem)->syssem == 0) { errno = EINVAL; return (-1); } _pthread_mutex_lock(&named_sems_mtx); - if (ksem_close((*sem)->semid) == -1) { + if ((retval = ksem_close((*sem)->semid))) { + errno = retval; _pthread_mutex_unlock(&named_sems_mtx); return (-1); } @@ -250,8 +265,13 @@ int sem_unlink(const char *name) { + int retval; - return (ksem_unlink(name)); + if ((retval = ksem_unlink(name))) { + errno = retval; + return (-1); + } + return (0); } int @@ -262,8 +282,10 @@ _SEM_CHECK_VALIDITY(sem); if ((*sem)->syssem != 0) { - retval = ksem_wait((*sem)->semid); - goto RETURN; + if ((retval = ksem_wait((*sem)->semid))) { + errno = retval; + return (-1); + } } _pthread_mutex_lock(&(*sem)->lock); @@ -290,8 +312,10 @@ _SEM_CHECK_VALIDITY(sem); if ((*sem)->syssem != 0) { - retval = ksem_trywait((*sem)->semid); - goto RETURN; + if ((retval = ksem_trywait((*sem)->semid))) { + errno = retval; + return (-1); + } } _pthread_mutex_lock(&(*sem)->lock); @@ -318,8 +342,10 @@ _SEM_CHECK_VALIDITY(sem); if ((*sem)->syssem != 0) { - retval = ksem_post((*sem)->semid); - goto RETURN; + if ((retval = ksem_post((*sem)->semid))) { + errno = retval; + return (-1); + } } _pthread_mutex_lock(&(*sem)->lock); @@ -343,8 +369,10 @@ _SEM_CHECK_VALIDITY(sem); if ((*sem)->syssem != 0) { - retval = ksem_getvalue((*sem)->semid, sval); - goto RETURN; + if ((retval = ksem_getvalue((*sem)->semid, sval))) { + errno = retval; + return (-1); + } } _pthread_mutex_lock(&(*sem)->lock); ==== //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#11 (text+ko) ==== @@ -332,18 +332,15 @@ { char name[SEM_MAX_NAMELEN + 1]; size_t done; - int error; + int error = 0; - error = copyinstr(uap->name, name, SEM_MAX_NAMELEN + 1, &done); - if (error) - return (-1); + if ((error = copyinstr(uap->name, name, SEM_MAX_NAMELEN + 1, &done))) + return (error); DP((">>> sem_open start\n")); error = kern_sem_open(td, UIO_USERSPACE, name, uap->oflag, uap->mode, uap->value, uap->idp); DP(("<<< sem_open end\n")); - if(error) - return (-1); - return (0); + return (error); } static int @@ -628,7 +625,7 @@ const char *name; { struct ksem *ks; - int error; + int error = 0; mtx_lock(&sem_lock); ks = sem_lookup_byname(name); @@ -676,10 +673,10 @@ struct ksem *ks; int error; - error = EINVAL; mtx_lock(&sem_lock); ks = ID_TO_SEM(id); /* this is not a valid operation for unnamed sems */ + error = EINVAL; if (ks != NULL && ks->ks_name != NULL) { #ifdef MAC if ((error = mac_check_posix_sem_close(td->td_ucred, ks))) { @@ -826,7 +823,6 @@ goto err_wait; } ks->ks_value--; - error = 0; err_wait: mtx_unlock(&ks->ks_mtx); DP(("<<< kern_sem_wait leaving, error = %d\n", error)); ==== //depot/projects/trustedbsd/mac/sys/posix4/ksem.h#3 (text+ko) ==== @@ -69,9 +69,9 @@ struct cv ks_cv; /* waiters sleep here */ int ks_waiters; /* number of waiters */ LIST_HEAD(, kuser) ks_users; /* pids using this sem */ - struct mtx ks_mtx; /* mutex protecting the ks_users list */ + struct mtx ks_mtx; /* mutex protecting this semaphore */ + int ks_unlinked; /* Whether the named sem is unlinked */ struct label ks_label; /* MAC label */ - int ks_unlinked; /* Whether the named sem is unlinked */ }; #endif /* _KERNEL */ From owner-p4-projects@FreeBSD.ORG Wed Sep 17 18:47:44 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 25F2216A4C0; Wed, 17 Sep 2003 18:47:44 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C674616A4B3 for ; Wed, 17 Sep 2003 18:47:43 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D2EC943FD7 for ; Wed, 17 Sep 2003 18:47:36 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8I1laXJ058311 for ; Wed, 17 Sep 2003 18:47:36 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8I1kDRY058288 for perforce@freebsd.org; Wed, 17 Sep 2003 18:46:13 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Wed, 17 Sep 2003 18:46:13 -0700 (PDT) Message-Id: <200309180146.h8I1kDRY058288@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38206 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 01:47:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=38206 Change 38206 by marcel@marcel_nfs on 2003/09/17 18:45:12 IFC @38201 Affected files ... .. //depot/projects/tty/MAINTAINERS#5 integrate .. //depot/projects/tty/Makefile#5 integrate .. //depot/projects/tty/Makefile.inc1#8 integrate .. //depot/projects/tty/UPDATING#6 integrate .. //depot/projects/tty/bin/Makefile.inc#2 integrate .. //depot/projects/tty/bin/cp/cp.1#3 integrate .. //depot/projects/tty/bin/cp/cp.c#3 integrate .. //depot/projects/tty/bin/cp/utils.c#3 integrate .. //depot/projects/tty/bin/csh/Makefile#3 integrate .. //depot/projects/tty/bin/date/Makefile#2 integrate .. //depot/projects/tty/bin/dd/Makefile#3 integrate .. //depot/projects/tty/bin/df/Makefile#2 integrate .. //depot/projects/tty/bin/df/df.1#3 integrate .. //depot/projects/tty/bin/df/df.c#3 integrate .. //depot/projects/tty/bin/ed/Makefile#3 integrate .. //depot/projects/tty/bin/ed/cbc.c#2 integrate .. //depot/projects/tty/bin/ed/ed.h#2 integrate .. //depot/projects/tty/bin/ed/re.c#2 integrate .. //depot/projects/tty/bin/expr/Makefile#2 integrate .. //depot/projects/tty/bin/kenv/Makefile#2 integrate .. //depot/projects/tty/bin/ls/Makefile#3 integrate .. //depot/projects/tty/bin/ls/ls.1#4 integrate .. //depot/projects/tty/bin/ls/util.c#4 integrate .. //depot/projects/tty/bin/pax/Makefile#2 integrate .. //depot/projects/tty/bin/ps/Makefile#3 integrate .. //depot/projects/tty/bin/ps/extern.h#2 integrate .. //depot/projects/tty/bin/ps/keyword.c#4 integrate .. //depot/projects/tty/bin/ps/print.c#4 integrate .. //depot/projects/tty/bin/ps/ps.1#3 integrate .. //depot/projects/tty/bin/ps/ps.c#3 integrate .. //depot/projects/tty/bin/pwd/pwd.c#3 integrate .. //depot/projects/tty/bin/rmail/Makefile#2 integrate .. //depot/projects/tty/bin/setfacl/setfacl.1#2 integrate .. //depot/projects/tty/bin/setfacl/setfacl.c#2 integrate .. //depot/projects/tty/bin/sh/alias.c#2 integrate .. //depot/projects/tty/bin/sh/arith.h#2 integrate .. //depot/projects/tty/bin/sh/arith.y#3 integrate .. //depot/projects/tty/bin/sh/arith_lex.l#3 integrate .. //depot/projects/tty/bin/sh/cd.c#2 integrate .. //depot/projects/tty/bin/sh/exec.c#2 integrate .. //depot/projects/tty/bin/sh/exec.h#2 integrate .. //depot/projects/tty/bin/sh/expand.c#4 integrate .. //depot/projects/tty/bin/sh/input.c#2 integrate .. //depot/projects/tty/bin/sh/jobs.c#4 integrate .. //depot/projects/tty/bin/sh/memalloc.c#3 integrate .. //depot/projects/tty/bin/sh/mkbuiltins#2 integrate .. //depot/projects/tty/bin/sh/nodes.c.pat#3 integrate .. //depot/projects/tty/bin/sh/output.c#2 integrate .. //depot/projects/tty/bin/sh/parser.c#2 integrate .. //depot/projects/tty/bin/sh/redir.c#2 integrate .. //depot/projects/tty/bin/sh/sh.1#5 integrate .. //depot/projects/tty/bin/sh/shell.h#2 integrate .. //depot/projects/tty/bin/sh/var.c#3 integrate .. //depot/projects/tty/bin/test/Makefile#2 integrate .. //depot/projects/tty/contrib/amd/AUTHORS#2 integrate .. //depot/projects/tty/contrib/amd/BUGS#2 integrate .. //depot/projects/tty/contrib/amd/COPYING#2 integrate .. //depot/projects/tty/contrib/amd/ChangeLog#2 integrate .. //depot/projects/tty/contrib/amd/FREEBSD-upgrade#2 integrate .. //depot/projects/tty/contrib/amd/INSTALL#2 integrate .. //depot/projects/tty/contrib/amd/MIRRORS#2 integrate .. //depot/projects/tty/contrib/amd/NEWS#2 integrate .. //depot/projects/tty/contrib/amd/README#2 integrate .. //depot/projects/tty/contrib/amd/README.ldap#2 integrate .. //depot/projects/tty/contrib/amd/amd/am_ops.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amd.8#2 integrate .. //depot/projects/tty/contrib/amd/amd/amd.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amd.h#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_auto.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_direct.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_error.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_host.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_inherit.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_link.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_linkx.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_nfsl.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_nfsx.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_program.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_root.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_toplvl.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amfs_union.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amq_subr.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/amq_svc.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/autil.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/clock.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/conf.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/conf_parse.y#2 integrate .. //depot/projects/tty/contrib/amd/amd/conf_tok.l#2 integrate .. //depot/projects/tty/contrib/amd/amd/get_args.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_file.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_hesiod.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_ldap.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_ndbm.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_nis.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_nisplus.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_passwd.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/info_union.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/map.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/mapc.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/mntfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/nfs_prot_svc.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/nfs_start.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/nfs_subr.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_TEMPLATE.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_autofs.c#2 delete .. //depot/projects/tty/contrib/amd/amd/ops_cachefs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_cdfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_efs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_lofs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_mfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_nfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_nfs3.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_nullfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_pcfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_tfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_tmpfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_ufs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_umapfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_unionfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/ops_xfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/opts.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/restart.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/rpc_fwd.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/sched.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/srvr_amfs_auto.c#2 integrate .. //depot/projects/tty/contrib/amd/amd/srvr_nfs.c#2 integrate .. //depot/projects/tty/contrib/amd/amq/amq.8#2 integrate .. //depot/projects/tty/contrib/amd/amq/amq.c#2 integrate .. //depot/projects/tty/contrib/amd/amq/amq.h#2 integrate .. //depot/projects/tty/contrib/amd/amq/amq_clnt.c#2 integrate .. //depot/projects/tty/contrib/amd/amq/amq_xdr.c#2 integrate .. //depot/projects/tty/contrib/amd/amq/pawd.1#2 integrate .. //depot/projects/tty/contrib/amd/amq/pawd.c#2 integrate .. //depot/projects/tty/contrib/amd/aux_conf.h.in#2 integrate .. //depot/projects/tty/contrib/amd/bootstrap#1 branch .. //depot/projects/tty/contrib/amd/commit#1 branch .. //depot/projects/tty/contrib/amd/conf/checkmount/checkmount_bsd44.c#2 integrate .. //depot/projects/tty/contrib/amd/conf/mount/mount_default.c#1 branch .. //depot/projects/tty/contrib/amd/conf/mtab/mtab_bsd.c#2 integrate .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_aix5_1.h#1 branch .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_darwin.h#2 integrate .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_freebsd2.h#2 integrate .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_freebsd3.h#2 integrate .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_osf5.h#1 branch .. //depot/projects/tty/contrib/amd/conf/nfs_prot/nfs_prot_sunos5_8.h#1 branch .. //depot/projects/tty/contrib/amd/conf/transp/transp_sockets.c#3 integrate .. //depot/projects/tty/contrib/amd/conf/umount/umount_bsd44.c#2 integrate .. //depot/projects/tty/contrib/amd/config.guess#1 branch .. //depot/projects/tty/contrib/amd/config.guess.long#1 branch .. //depot/projects/tty/contrib/amd/config.sub#1 branch .. //depot/projects/tty/contrib/amd/configure.in#1 branch .. //depot/projects/tty/contrib/amd/cvs-server.txt#1 branch .. //depot/projects/tty/contrib/amd/depcomp#1 branch .. //depot/projects/tty/contrib/amd/doc/am-utils.texi#2 integrate .. //depot/projects/tty/contrib/amd/doc/mdate-sh#1 branch .. //depot/projects/tty/contrib/amd/doc/stamp-vti#2 delete .. //depot/projects/tty/contrib/amd/doc/texinfo.tex#2 integrate .. //depot/projects/tty/contrib/amd/doc/version.texi#2 integrate .. //depot/projects/tty/contrib/amd/fixmount/fixmount.8#2 integrate .. //depot/projects/tty/contrib/amd/fixmount/fixmount.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_analyze.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_data.h#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_dict.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_gram.y#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_lex.l#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsi_util.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsinfo.8#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsinfo.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/fsinfo.h#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/wr_atab.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/wr_bparam.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/wr_dumpset.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/wr_exportfs.c#2 integrate .. //depot/projects/tty/contrib/amd/fsinfo/wr_fstab.c#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/hlfsd.8#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/hlfsd.c#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/hlfsd.h#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/homedir.c#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/nfs_prot_svc.c#2 integrate .. //depot/projects/tty/contrib/amd/hlfsd/stubs.c#2 integrate .. //depot/projects/tty/contrib/amd/include/am_compat.h#2 integrate .. //depot/projects/tty/contrib/amd/include/am_defs.h#2 integrate .. //depot/projects/tty/contrib/amd/include/am_utils.h#2 integrate .. //depot/projects/tty/contrib/amd/include/am_xdr_func.h#2 integrate .. //depot/projects/tty/contrib/amd/include/amq_defs.h#2 integrate .. //depot/projects/tty/contrib/amd/include/mount_headers1.h#2 integrate .. //depot/projects/tty/contrib/amd/install-sh#1 branch .. //depot/projects/tty/contrib/amd/libamu/amu.h#2 integrate .. //depot/projects/tty/contrib/amd/libamu/hasmntopt.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/misc_rpc.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/mount_fs.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/mtab.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/nfs_prot_xdr.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/strerror.c#1 branch .. //depot/projects/tty/contrib/amd/libamu/util.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/wire.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/xdr_func.c#2 integrate .. //depot/projects/tty/contrib/amd/libamu/xutil.c#2 integrate .. //depot/projects/tty/contrib/amd/ltmain.sh#1 branch .. //depot/projects/tty/contrib/amd/m4/GNUmakefile#1 branch .. //depot/projects/tty/contrib/amd/m4/amdgrep#1 branch .. //depot/projects/tty/contrib/amd/m4/amindent#1 branch .. //depot/projects/tty/contrib/amd/m4/autopat#1 branch .. //depot/projects/tty/contrib/amd/m4/chop-aclocal.pl#1 branch .. //depot/projects/tty/contrib/amd/m4/copy-if-newbig#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/HEADER#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/TRAILER#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/c_void_p.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/cache_check_dynamic.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_amu_fs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_checkmount_style.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_extern.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_fhandle.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_field.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_fs_headers.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_fs_mntent.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_gnu_getopt.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_hide_mount_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_lib2.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_map_funcs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnt2_cdfs_opt.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnt2_gen_opt.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnt2_nfs_opt.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnttab_file_name.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnttab_location.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnttab_opt.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnttab_style.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mnttab_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mount_style.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mount_trap.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mount_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mtype_printf_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_mtype_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_network_transport_type.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_nfs_fh_dref.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_nfs_hn_dref.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_nfs_prot_headers.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_nfs_sa_dref.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_nfs_socket_connection.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_os_libs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_restartable_signal_handler.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_umount_style.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_unmount_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/check_unmount_call.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/expand_cpp_hex.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/expand_cpp_int.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/expand_cpp_string.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/expand_run_string.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/extern_optarg.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/extern_sys_errlist.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/field_mntent_t_mnt_time_string.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/func_bad_memcmp.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/func_bad_yp_all.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/header_templates.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/host_macros.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/linux_headers.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/localconfig.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/mount_headers.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/name_package.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/name_version.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/opt_amu_cflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/opt_cppflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/opt_debug.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/opt_ldflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/opt_libs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/os_cflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/os_cppflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/os_ldflags.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/package_bugreport.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/package_name.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/package_version.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/save_state.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_field_nfs_fh.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_mntent.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_mnttab.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_nfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_nfs_fh.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_nfs_fh3.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/struct_nfs_gfs_mount.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/try_compile_anyfs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/try_compile_nfs.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/try_compile_rpc.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_auth_create_gidlist.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_cachefs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_cdfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_efs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_lofs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_mfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_pcfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_recvfrom_fromlen.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_rfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_svc_in_arg.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_time_t.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_tmpfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_ufs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_xdrproc_t.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_xfs_args.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/type_yp_order_outorder.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/macros/with_addon.m4#1 branch .. //depot/projects/tty/contrib/amd/m4/mk-aclocal#1 branch .. //depot/projects/tty/contrib/amd/m4/mkconf#1 branch .. //depot/projects/tty/contrib/amd/m4/rmtspc#1 branch .. //depot/projects/tty/contrib/amd/m4/update_build_version#1 branch .. //depot/projects/tty/contrib/amd/missing#1 branch .. //depot/projects/tty/contrib/amd/mk-amd-map/mk-amd-map.8#2 integrate .. //depot/projects/tty/contrib/amd/mk-amd-map/mk-amd-map.c#2 integrate .. //depot/projects/tty/contrib/amd/mkinstalldirs#1 branch .. //depot/projects/tty/contrib/amd/scripts/amd.conf-sample#2 integrate .. //depot/projects/tty/contrib/amd/scripts/amd.conf.5#2 integrate .. //depot/projects/tty/contrib/amd/scripts/automount2amd.8#2 integrate .. //depot/projects/tty/contrib/amd/scripts/ctl-amd.in#2 integrate .. //depot/projects/tty/contrib/amd/scripts/ctl-hlfsd.in#2 integrate .. //depot/projects/tty/contrib/amd/scripts/expn.1#2 integrate .. //depot/projects/tty/contrib/amd/scripts/expn.in#2 integrate .. //depot/projects/tty/contrib/amd/scripts/lostaltmail.in#2 integrate .. //depot/projects/tty/contrib/amd/scripts/redhat-ctl-amd.in#1 branch .. //depot/projects/tty/contrib/amd/tasks#2 integrate .. //depot/projects/tty/contrib/amd/wire-test/wire-test.8#2 integrate .. //depot/projects/tty/contrib/amd/wire-test/wire-test.c#2 integrate .. //depot/projects/tty/contrib/bind/CHANGES#3 integrate .. //depot/projects/tty/contrib/bind/FREEBSD-Upgrade#2 integrate .. //depot/projects/tty/contrib/bind/README#3 integrate .. //depot/projects/tty/contrib/bind/Version#3 integrate .. //depot/projects/tty/contrib/bind/bin/dig/dig.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/dnsquery/dnsquery.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/host/host.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named-xfer/named-xfer.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/db_defs.h#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/db_ixfr.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/db_load.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/db_sec.c#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_config.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_ctl.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_defs.h#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_forw.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_func.h#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_glob.h#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_init.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_ixfr.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_lexer.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_main.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_maint.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_ncache.c#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_parser.y#2 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_req.c#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_resp.c#3 integrate .. //depot/projects/tty/contrib/bind/bin/named/ns_update.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/ndc/ndc.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/nslookup/getinfo.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/nslookup/main.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/nslookup/send.c#2 integrate .. //depot/projects/tty/contrib/bind/bin/nsupdate/nsupdate.c#2 integrate .. //depot/projects/tty/contrib/bind/doc/html/options.html#3 integrate .. //depot/projects/tty/contrib/bind/doc/man/dig.1#2 integrate .. //depot/projects/tty/contrib/bind/doc/man/named-xfer.8#2 integrate .. //depot/projects/tty/contrib/bind/doc/man/named.8#2 integrate .. //depot/projects/tty/contrib/bind/doc/man/named.conf.5#3 integrate .. //depot/projects/tty/contrib/bind/doc/man/resolver.3#3 integrate .. //depot/projects/tty/contrib/bind/include/arpa/nameser.h#2 integrate .. //depot/projects/tty/contrib/bind/include/arpa/nameser_compat.h#2 integrate .. //depot/projects/tty/contrib/bind/include/hesiod.h#2 integrate .. //depot/projects/tty/contrib/bind/include/irp.h#2 integrate .. //depot/projects/tty/contrib/bind/include/irs.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/ctl.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/dst.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/eventlib.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/irpmarshall.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/logging.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/misc.h#2 integrate .. //depot/projects/tty/contrib/bind/include/isc/tree.h#2 integrate .. //depot/projects/tty/contrib/bind/include/netgroup.h#2 integrate .. //depot/projects/tty/contrib/bind/include/resolv.h#2 integrate .. //depot/projects/tty/contrib/bind/lib/dst/bsafe_link.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/dst/cylink_link.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/dst/dst_api.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/dst/hmac_link.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/dns_gr.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/dns_ho.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/dns_nw.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/gen_gr.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/getaddrinfo.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/gethostent.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/getnameinfo.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/getnetgrent.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/getnetgrent_r.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/hesiod.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/irp_p.h#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/irs_data.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/nis_gr.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/irs/nis_ho.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/ctl_clnt.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/ctl_srvr.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/ev_files.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/ev_timers.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/ev_waits.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/eventlib.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/eventlib_p.h#2 integrate .. //depot/projects/tty/contrib/bind/lib/isc/logging.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/nameser/ns_name.c#3 integrate .. //depot/projects/tty/contrib/bind/lib/nameser/ns_parse.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/nameser/ns_print.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/nameser/ns_samedomain.c#3 integrate .. //depot/projects/tty/contrib/bind/lib/nameser/ns_sign.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_comp.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_debug.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_findzonecut.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_init.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_mkquery.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_mkupdate.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_private.h#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_query.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_send.c#2 integrate .. //depot/projects/tty/contrib/bind/lib/resolv/res_update.c#2 integrate .. //depot/projects/tty/contrib/bind/port/freebsd/bin/probe_ipv6#2 integrate .. //depot/projects/tty/contrib/bind/port/freebsd/include/port_after.h#2 integrate .. //depot/projects/tty/contrib/cpio/copypass.c#2 integrate .. //depot/projects/tty/contrib/cvs/src/main.c#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog#3 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.0#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.1#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.2#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.3#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.4#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.5#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.6#2 integrate .. //depot/projects/tty/contrib/gcc/ChangeLog.7#1 branch .. //depot/projects/tty/contrib/gcc/FSFChangeLog.10#2 integrate .. //depot/projects/tty/contrib/gcc/FSFChangeLog.11#2 integrate .. //depot/projects/tty/contrib/gcc/LANGUAGES#2 integrate .. //depot/projects/tty/contrib/gcc/Makefile.in#3 integrate .. //depot/projects/tty/contrib/gcc/ONEWS#2 integrate .. //depot/projects/tty/contrib/gcc/README.Portability#2 integrate .. //depot/projects/tty/contrib/gcc/aclocal.m4#2 integrate .. //depot/projects/tty/contrib/gcc/alias.c#3 integrate .. //depot/projects/tty/contrib/gcc/ansidecl.h#2 integrate .. //depot/projects/tty/contrib/gcc/attribs.c#2 integrate .. //depot/projects/tty/contrib/gcc/basic-block.h#3 integrate .. //depot/projects/tty/contrib/gcc/bb-reorder.c#2 integrate .. //depot/projects/tty/contrib/gcc/bitmap.c#2 integrate .. //depot/projects/tty/contrib/gcc/bitmap.h#2 integrate .. //depot/projects/tty/contrib/gcc/builtin-attrs.def#2 integrate .. //depot/projects/tty/contrib/gcc/builtin-types.def#3 integrate .. //depot/projects/tty/contrib/gcc/builtins.c#3 integrate .. //depot/projects/tty/contrib/gcc/builtins.def#2 integrate .. //depot/projects/tty/contrib/gcc/c-aux-info.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-common.c#3 integrate .. //depot/projects/tty/contrib/gcc/c-common.def#2 integrate .. //depot/projects/tty/contrib/gcc/c-common.h#3 integrate .. //depot/projects/tty/contrib/gcc/c-config-lang.in#1 branch .. //depot/projects/tty/contrib/gcc/c-convert.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-decl.c#3 integrate .. //depot/projects/tty/contrib/gcc/c-dump.c#1 branch .. //depot/projects/tty/contrib/gcc/c-errors.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-format.c#3 integrate .. //depot/projects/tty/contrib/gcc/c-lang.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-lex.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-objc-common.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-opts.c#1 branch .. //depot/projects/tty/contrib/gcc/c-parse.in#3 integrate .. //depot/projects/tty/contrib/gcc/c-pragma.c#2 integrate .. //depot/projects/tty/contrib/gcc/c-pragma.h#2 integrate .. //depot/projects/tty/contrib/gcc/c-pretty-print.c#1 branch .. //depot/projects/tty/contrib/gcc/c-pretty-print.h#1 branch .. //depot/projects/tty/contrib/gcc/c-semantics.c#3 integrate .. //depot/projects/tty/contrib/gcc/c-tree.h#2 integrate .. //depot/projects/tty/contrib/gcc/c-typeck.c#3 integrate .. //depot/projects/tty/contrib/gcc/caller-save.c#2 integrate .. //depot/projects/tty/contrib/gcc/calls.c#3 integrate .. //depot/projects/tty/contrib/gcc/cfg.c#2 integrate .. //depot/projects/tty/contrib/gcc/cfganal.c#3 integrate .. //depot/projects/tty/contrib/gcc/cfgbuild.c#3 integrate .. //depot/projects/tty/contrib/gcc/cfgcleanup.c#3 integrate .. //depot/projects/tty/contrib/gcc/cfglayout.c#2 integrate .. //depot/projects/tty/contrib/gcc/cfglayout.h#2 integrate .. //depot/projects/tty/contrib/gcc/cfgloop.c#2 integrate .. //depot/projects/tty/contrib/gcc/cfgrtl.c#2 integrate .. //depot/projects/tty/contrib/gcc/collect2.c#2 integrate .. //depot/projects/tty/contrib/gcc/collect2.h#2 integrate .. //depot/projects/tty/contrib/gcc/combine.c#3 integrate .. //depot/projects/tty/contrib/gcc/config.gcc#3 integrate .. //depot/projects/tty/contrib/gcc/config.in#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/alpha-interix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/alpha-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/alpha.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/alpha.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/alpha.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/ev4.md#1 branch .. //depot/projects/tty/contrib/gcc/config/alpha/ev5.md#1 branch .. //depot/projects/tty/contrib/gcc/config/alpha/ev6.md#1 branch .. //depot/projects/tty/contrib/gcc/config/alpha/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/gnu.h#1 branch .. //depot/projects/tty/contrib/gcc/config/alpha/linux-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/openbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/osf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/osf5.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/t-crtfm#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/unicosmk.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-cc.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-crt0-64.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-crt0.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-ld.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-psxcrt0-64.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms-psxcrt0.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vms.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/alpha/vxworks.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/README-interworking#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/aof.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/arm-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/arm/arm-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/arm.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/arm.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/arm.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/coff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/conix-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/crti.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/crtn.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/linux-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/linux-gas.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/netbsd-elf.h#1 branch .. //depot/projects/tty/contrib/gcc/config/arm/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/pe.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/pe.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/rtems-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/semi.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/semiaof.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/t-arm-elf#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/t-pe#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/unknown-elf-oabi.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/unknown-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/vxarm.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/xscale-coff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/arm/xscale-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/darwin-c.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/darwin-crt2.c#1 branch .. //depot/projects/tty/contrib/gcc/config/darwin-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/darwin.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/darwin.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/dbx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/dbxcoff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/dbxelf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/elfos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/fp-bit.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/fp-bit.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/freebsd-spec.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/frv/cmovd.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/cmovh.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/cmovw.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv-abi.h#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv-asm.h#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv-protos.h#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv.h#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frv.md#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frvbegin.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/frvend.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/lib1funcs.asm#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/modi.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/t-frv#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/uitod.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/uitof.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/ulltod.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/ulltof.c#1 branch .. //depot/projects/tty/contrib/gcc/config/frv/umodi.c#1 branch .. //depot/projects/tty/contrib/gcc/config/gnu.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/gofast.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/athlon.md#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/att.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/beos-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/biarch64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/bsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/crtdll.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/cygwin.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/i386/darwin.h#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/djgpp.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/freebsd-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/freebsd.h#4 integrate .. //depot/projects/tty/contrib/gcc/config/i386/freebsd.h.fixed#2 delete .. //depot/projects/tty/contrib/gcc/config/i386/freebsd64.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/i386/gas.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/gnu.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/gstabs.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/gthr-win32.c#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/i386-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386-coff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386-interix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386-interix3.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/i386-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386.c#3 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386.h#4 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/i386elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/k6.md#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/linux-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/linux64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/lynx-ng.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/lynx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/mach.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/mingw32.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/i386/mmintrin.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/moss.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/netbsd-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/netbsd64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/openbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/pentium.md#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/ppro.md#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/ptx4-i.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/rtemself.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/sco5.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/sol2.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/svr3dbx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/svr3gas.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/sysv3.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/sysv4-cpp.h#1 branch .. //depot/projects/tty/contrib/gcc/config/i386/sysv4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/sysv5.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/t-cygwin#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/t-interix#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/t-linux64#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/t-mingw32#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/t-sco5gas#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/unix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/uwin.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/vsta.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/vxi386.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/win32.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/winnt.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/x86-64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/xm-vsta.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/i386/xmmintrin.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/aix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/crtbegin.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/crtend.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/hpux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/hpux_longdouble.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/ia64-c.c#1 branch .. //depot/projects/tty/contrib/gcc/config/ia64/ia64-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/ia64/ia64-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/ia64.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/ia64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/ia64.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/quadlib.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/sysv4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/t-aix#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/t-hpux#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/t-ia64#2 integrate .. //depot/projects/tty/contrib/gcc/config/ia64/unwind-ia64.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/interix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/libgloss.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/linux-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/lynx-ng.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/lynx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/netbsd-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/netbsd-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/openbsd-oldgas.h#1 branch .. //depot/projects/tty/contrib/gcc/config/openbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/psos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/ptx4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix31.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix41.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix43.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix51.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/aix52.h#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/altivec.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/altivec.md#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/beos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/darwin-tramp.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/darwin.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/eabi.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/eabi.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/eabiaix.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/eabisim.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/eabispe.h#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/gnu.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/linux.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/linux64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/lynx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/mach.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/ppc-asm.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/ppc64-fp.c#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000-c.c#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000-protos.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000.c#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/rs6000.md#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/rtems.h#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/spe.h#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/spe.md#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/sysv4.h#4 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/sysv4le.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/t-aix43#3 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/t-aix52#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/t-darwin#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/t-linux64#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/t-netbsd#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/t-ppccomm#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/t-ppcendian#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/t-rs6000-c-rule#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/vxppc.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/rs6000/windiss.h#1 branch .. //depot/projects/tty/contrib/gcc/config/rs6000/xcoff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/fixdfdi.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/libgcc-glibc.ver#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/s390-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/s390/s390-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/s390.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/s390.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/s390.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/s390/t-crtstuff#1 branch .. //depot/projects/tty/contrib/gcc/config/s390/t-linux64#2 integrate .. //depot/projects/tty/contrib/gcc/config/sol2.h#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/cypress.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/freebsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/gmon-sol2.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/hypersparc.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/lb1spc.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/lb1spl.asm#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/linux-aout.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/linux.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/linux64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/litecoff.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/liteelf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/lynx.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/netbsd-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/netbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/openbsd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/pbd.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sol2-bi.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sol2.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sol26-sld.h#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/sp64-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sp86x-elf.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sparc-modes.def#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/sparc-protos.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sparc.c#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sparc.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sparc.md#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/sparclet.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/sunos4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/supersparc.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/sysv4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/ultra1_2.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/ultra3.md#1 branch .. //depot/projects/tty/contrib/gcc/config/sparc/vxsim.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/sparc/vxsparc64.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/svr3.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/svr4.h#2 integrate .. //depot/projects/tty/contrib/gcc/config/t-darwin#1 branch .. //depot/projects/tty/contrib/gcc/config/t-libc-ok#2 integrate .. //depot/projects/tty/contrib/gcc/config/t-linux#2 integrate .. //depot/projects/tty/contrib/gcc/config/t-linux-gnulibc1#2 integrate .. //depot/projects/tty/contrib/gcc/config/t-netbsd#2 integrate .. //depot/projects/tty/contrib/gcc/configure#3 integrate .. //depot/projects/tty/contrib/gcc/configure.in#3 integrate .. //depot/projects/tty/contrib/gcc/conflict.c#2 integrate .. //depot/projects/tty/contrib/gcc/convert.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp-demangle.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/ChangeLog#3 integrate .. //depot/projects/tty/contrib/gcc/cp/ChangeLog.1#2 integrate .. //depot/projects/tty/contrib/gcc/cp/ChangeLog.2#2 integrate .. //depot/projects/tty/contrib/gcc/cp/Make-lang.in#3 integrate .. //depot/projects/tty/contrib/gcc/cp/NEWS#3 integrate .. //depot/projects/tty/contrib/gcc/cp/call.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/cfns.gperf#2 integrate .. //depot/projects/tty/contrib/gcc/cp/class.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/config-lang.in#2 integrate .. //depot/projects/tty/contrib/gcc/cp/cp-lang.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/cp-tree.def#2 integrate .. //depot/projects/tty/contrib/gcc/cp/cp-tree.h#3 integrate .. //depot/projects/tty/contrib/gcc/cp/cvt.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/decl.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/decl.h#2 integrate .. //depot/projects/tty/contrib/gcc/cp/decl2.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/dump.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/error.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/except.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/expr.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/friend.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/g++spec.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/init.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/lang-options.h#2 integrate .. //depot/projects/tty/contrib/gcc/cp/lang-specs.h#2 integrate .. //depot/projects/tty/contrib/gcc/cp/lex.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/lex.h#2 integrate .. //depot/projects/tty/contrib/gcc/cp/mangle.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/method.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/operators.def#3 integrate .. //depot/projects/tty/contrib/gcc/cp/optimize.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/parse.y#3 integrate .. //depot/projects/tty/contrib/gcc/cp/pt.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/ptree.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/repo.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/rtti.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/search.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/semantics.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/spew.c#2 integrate .. //depot/projects/tty/contrib/gcc/cp/tree.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/typeck.c#3 integrate .. //depot/projects/tty/contrib/gcc/cp/typeck2.c#2 integrate .. //depot/projects/tty/contrib/gcc/cplus-dem.c#2 integrate .. //depot/projects/tty/contrib/gcc/cppdefault.h#2 integrate .. //depot/projects/tty/contrib/gcc/cpperror.c#2 integrate .. //depot/projects/tty/contrib/gcc/cppexp.c#2 integrate .. //depot/projects/tty/contrib/gcc/cppfiles.c#2 integrate .. //depot/projects/tty/contrib/gcc/cpphash.c#2 integrate .. //depot/projects/tty/contrib/gcc/cpphash.h#2 integrate .. //depot/projects/tty/contrib/gcc/cppinit.c#2 integrate .. //depot/projects/tty/contrib/gcc/cpplex.c#2 integrate .. //depot/projects/tty/contrib/gcc/cpplib.c#3 integrate .. //depot/projects/tty/contrib/gcc/cpplib.h#2 integrate .. //depot/projects/tty/contrib/gcc/cppmacro.c#2 integrate .. //depot/projects/tty/contrib/gcc/cppmain.c#2 integrate .. //depot/projects/tty/contrib/gcc/cppspec.c#2 integrate .. //depot/projects/tty/contrib/gcc/cpptrad.c#1 branch .. //depot/projects/tty/contrib/gcc/crtstuff.c#2 integrate .. //depot/projects/tty/contrib/gcc/cse.c#2 integrate .. //depot/projects/tty/contrib/gcc/cselib.c#2 integrate .. //depot/projects/tty/contrib/gcc/cselib.h#2 integrate .. //depot/projects/tty/contrib/gcc/dbxout.c#3 integrate .. //depot/projects/tty/contrib/gcc/debug.c#2 integrate .. //depot/projects/tty/contrib/gcc/debug.h#2 integrate .. //depot/projects/tty/contrib/gcc/defaults.h#2 integrate .. //depot/projects/tty/contrib/gcc/demangle.h#2 integrate .. //depot/projects/tty/contrib/gcc/df.c#2 integrate .. //depot/projects/tty/contrib/gcc/df.h#2 integrate .. //depot/projects/tty/contrib/gcc/diagnostic.c#2 integrate .. //depot/projects/tty/contrib/gcc/diagnostic.def#2 integrate .. //depot/projects/tty/contrib/gcc/diagnostic.h#2 integrate .. //depot/projects/tty/contrib/gcc/doc/bugreport.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/c-tree.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/collect2.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/compat.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/contrib.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/cpp.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/cppenv.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/cppopts.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/extend.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/fragments.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/frontends.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/gcc.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/gccint.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/gcov.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/gty.texi#1 branch .. //depot/projects/tty/contrib/gcc/doc/headerdirs.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/include/fdl.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/include/gcc-common.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/include/gpl.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/include/texinfo.tex#2 integrate .. //depot/projects/tty/contrib/gcc/doc/interface.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/invoke.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/makefile.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/md.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/objc.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/passes.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/portability.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/rtl.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/service.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/sourcebuild.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/standards.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doc/tm.texi#3 integrate .. //depot/projects/tty/contrib/gcc/doc/trouble.texi#2 integrate .. //depot/projects/tty/contrib/gcc/doloop.c#3 integrate .. //depot/projects/tty/contrib/gcc/dominance.c#2 integrate .. //depot/projects/tty/contrib/gcc/doschk.c#2 integrate .. //depot/projects/tty/contrib/gcc/dummy-conditions.c#1 branch .. //depot/projects/tty/contrib/gcc/dwarf2.h#2 integrate .. //depot/projects/tty/contrib/gcc/dwarf2asm.c#2 integrate .. //depot/projects/tty/contrib/gcc/dwarf2asm.h#2 integrate .. //depot/projects/tty/contrib/gcc/dwarf2out.c#2 integrate .. //depot/projects/tty/contrib/gcc/dwarf2out.h#2 integrate .. //depot/projects/tty/contrib/gcc/dwarfout.c#2 integrate .. //depot/projects/tty/contrib/gcc/emit-rtl.c#3 integrate .. //depot/projects/tty/contrib/gcc/errors.h#2 integrate .. //depot/projects/tty/contrib/gcc/et-forest.c#1 branch .. //depot/projects/tty/contrib/gcc/et-forest.h#1 branch .. //depot/projects/tty/contrib/gcc/except.c#2 integrate .. //depot/projects/tty/contrib/gcc/except.h#2 integrate .. //depot/projects/tty/contrib/gcc/explow.c#2 integrate .. //depot/projects/tty/contrib/gcc/expmed.c#2 integrate .. //depot/projects/tty/contrib/gcc/expr.c#3 integrate .. //depot/projects/tty/contrib/gcc/expr.h#3 integrate .. //depot/projects/tty/contrib/gcc/f/ChangeLog#3 integrate .. //depot/projects/tty/contrib/gcc/f/ChangeLog.0#2 integrate .. //depot/projects/tty/contrib/gcc/f/Make-lang.in#3 integrate .. //depot/projects/tty/contrib/gcc/f/bad.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/bit.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/bld.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/bugs.texi#2 integrate .. //depot/projects/tty/contrib/gcc/f/com.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/com.h#2 integrate .. //depot/projects/tty/contrib/gcc/f/config-lang.in#2 integrate .. //depot/projects/tty/contrib/gcc/f/data.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/expr.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/ffe.texi#2 integrate .. //depot/projects/tty/contrib/gcc/f/g77.texi#2 integrate .. //depot/projects/tty/contrib/gcc/f/g77spec.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/intdoc.in#2 integrate .. //depot/projects/tty/contrib/gcc/f/intdoc.texi#2 integrate .. //depot/projects/tty/contrib/gcc/f/invoke.texi#3 integrate .. //depot/projects/tty/contrib/gcc/f/lang-specs.h#2 integrate .. //depot/projects/tty/contrib/gcc/f/lex.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/news.texi#2 integrate .. //depot/projects/tty/contrib/gcc/f/parse.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/root.texi#3 integrate .. //depot/projects/tty/contrib/gcc/f/stc.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/std.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/ste.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/target.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/target.h#2 integrate .. //depot/projects/tty/contrib/gcc/f/top.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/where.c#2 integrate .. //depot/projects/tty/contrib/gcc/f/where.h#2 integrate .. //depot/projects/tty/contrib/gcc/fibheap.c#2 integrate .. //depot/projects/tty/contrib/gcc/fibheap.h#2 integrate .. //depot/projects/tty/contrib/gcc/final.c#2 integrate .. //depot/projects/tty/contrib/gcc/fix-header.c#2 integrate .. //depot/projects/tty/contrib/gcc/fixproto#2 integrate .. //depot/projects/tty/contrib/gcc/flags.h#2 integrate .. //depot/projects/tty/contrib/gcc/flow.c#2 integrate .. //depot/projects/tty/contrib/gcc/fold-const.c#3 integrate .. //depot/projects/tty/contrib/gcc/function.c#3 integrate .. //depot/projects/tty/contrib/gcc/function.h#2 integrate .. //depot/projects/tty/contrib/gcc/gbl-ctors.h#2 integrate .. //depot/projects/tty/contrib/gcc/gcc.1#3 integrate .. //depot/projects/tty/contrib/gcc/gcc.c#3 integrate .. //depot/projects/tty/contrib/gcc/gcc.h#2 integrate .. //depot/projects/tty/contrib/gcc/gccbug.in#2 integrate .. //depot/projects/tty/contrib/gcc/gccspec.c#2 integrate .. //depot/projects/tty/contrib/gcc/gcov-io.h#2 integrate .. //depot/projects/tty/contrib/gcc/gcov.c#2 integrate .. //depot/projects/tty/contrib/gcc/gcse.c#2 integrate .. //depot/projects/tty/contrib/gcc/gdbinit.in#2 integrate .. //depot/projects/tty/contrib/gcc/genattr.c#2 integrate .. //depot/projects/tty/contrib/gcc/genattrtab.c#2 integrate .. //depot/projects/tty/contrib/gcc/genattrtab.h#1 branch .. //depot/projects/tty/contrib/gcc/genautomata.c#1 branch .. //depot/projects/tty/contrib/gcc/gencodes.c#2 integrate .. //depot/projects/tty/contrib/gcc/genconditions.c#1 branch .. //depot/projects/tty/contrib/gcc/genconfig.c#2 integrate .. //depot/projects/tty/contrib/gcc/genemit.c#2 integrate .. //depot/projects/tty/contrib/gcc/genflags.c#2 integrate .. //depot/projects/tty/contrib/gcc/gengenrtl.c#2 integrate .. //depot/projects/tty/contrib/gcc/gengtype-lex.l#1 branch .. //depot/projects/tty/contrib/gcc/gengtype-yacc.y#1 branch .. //depot/projects/tty/contrib/gcc/gengtype.c#1 branch .. //depot/projects/tty/contrib/gcc/gengtype.h#1 branch .. //depot/projects/tty/contrib/gcc/genopinit.c#2 integrate .. //depot/projects/tty/contrib/gcc/genpreds.c#2 integrate .. //depot/projects/tty/contrib/gcc/genrecog.c#2 integrate .. //depot/projects/tty/contrib/gcc/gensupport.c#2 integrate .. //depot/projects/tty/contrib/gcc/gensupport.h#2 integrate .. //depot/projects/tty/contrib/gcc/getopt.c#2 integrate .. //depot/projects/tty/contrib/gcc/getopt.h#2 integrate .. //depot/projects/tty/contrib/gcc/getruntime.c#1 branch .. //depot/projects/tty/contrib/gcc/ggc-common.c#2 integrate .. //depot/projects/tty/contrib/gcc/ggc-none.c#2 integrate .. //depot/projects/tty/contrib/gcc/ggc-page.c#2 integrate .. //depot/projects/tty/contrib/gcc/ggc-simple.c#2 integrate .. //depot/projects/tty/contrib/gcc/ggc.h#2 integrate .. //depot/projects/tty/contrib/gcc/ginclude/float.h#1 branch .. //depot/projects/tty/contrib/gcc/ginclude/stdarg.h#2 integrate .. //depot/projects/tty/contrib/gcc/ginclude/varargs.h#2 integrate .. //depot/projects/tty/contrib/gcc/glimits.h#2 integrate .. //depot/projects/tty/contrib/gcc/global.c#3 integrate .. //depot/projects/tty/contrib/gcc/graph.c#2 integrate .. //depot/projects/tty/contrib/gcc/graph.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-dce.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-posix.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-rtems.h#3 integrate .. //depot/projects/tty/contrib/gcc/gthr-single.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-solaris.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-vxworks.h#2 integrate .. //depot/projects/tty/contrib/gcc/gthr-win32.h#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 18 07:03:30 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FDAD16A4C0; Thu, 18 Sep 2003 07:03:30 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2CFA216A4B3 for ; Thu, 18 Sep 2003 07:03:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A6B6143F85 for ; Thu, 18 Sep 2003 07:03:29 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8IE3TXJ044848 for ; Thu, 18 Sep 2003 07:03:29 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8IE3SA8044845 for perforce@freebsd.org; Thu, 18 Sep 2003 07:03:28 -0700 (PDT) (envelope-from areisse@nailabs.com) Date: Thu, 18 Sep 2003 07:03:28 -0700 (PDT) Message-Id: <200309181403.h8IE3SA8044845@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 38227 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 14:03:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=38227 Change 38227 by areisse@areisse_tislabs on 2003/09/18 07:02:42 linker_preload no longer crashes when modules fail to load Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/kern_linker.c#5 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/kern_linker.c#5 (text+ko) ==== @@ -478,11 +478,6 @@ /* Refuse to unload modules if securelevel raised. */ if (securelevel > 0) return (EPERM); -#ifdef MAC - error = mac_check_kld_unload(curthread->td_ucred); - if (error) - return (error); -#endif KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs)); if (file->refs == 1) { @@ -801,6 +796,12 @@ if ((error = cap_check (td, CAP_SYS_MODULE)) != 0) goto out; +#ifdef MAC + error = mac_check_kld_unload(curthread->td_ucred); + if (error) + goto out; +#endif + lf = linker_find_file_by_id(uap->fileid); if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); @@ -1281,6 +1282,7 @@ * We made it. Finish off the linking in the order we determined. */ TAILQ_FOREACH(lf, &depended_files, loaded) { +reloop: if (linker_kernel_file) { linker_kernel_file->refs++; error = linker_file_add_dependency(lf, @@ -1314,8 +1316,10 @@ if (error) { printf("KLD file %s - could not finalize loading\n", lf->filename); + linker_file_t next = TAILQ_NEXT (lf, loaded); linker_file_unload(lf); - continue; + lf = next; + goto reloop; } linker_file_register_modules(lf); if (linker_file_lookup_set(lf, "sysinit_set", &si_start, From owner-p4-projects@FreeBSD.ORG Thu Sep 18 07:58:46 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3508116A4DB; Thu, 18 Sep 2003 07:58:46 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EFABC16A4D8 for ; Thu, 18 Sep 2003 07:58:45 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EF88243FE1 for ; Thu, 18 Sep 2003 07:58:44 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8IEwiXJ050463 for ; Thu, 18 Sep 2003 07:58:44 -0700 (PDT) (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8IEwhjR050460 for perforce@freebsd.org; Thu, 18 Sep 2003 07:58:43 -0700 (PDT) (envelope-from areisse@nailabs.com) Date: Thu, 18 Sep 2003 07:58:43 -0700 (PDT) Message-Id: <200309181458.h8IEwhjR050460@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 38229 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 14:58:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=38229 Change 38229 by areisse@areisse_tislabs on 2003/09/18 07:58:07 new tunable: kern.linker.require_preloads if set, panic when preloaded modules don't load. Affected files ... .. //depot/projects/trustedbsd/sebsd/sys/kern/kern_linker.c#6 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/sys/kern/kern_linker.c#6 (text+ko) ==== @@ -62,6 +62,9 @@ */ static const char *linker_basename(const char *path); +static int require_preload = 0; +TUNABLE_INT ("kern.linker.require_preloads", &require_preload); + /* Metadata from the static kernel */ SET_DECLARE(modmetadata_set, struct mod_metadata); @@ -1274,6 +1277,8 @@ */ TAILQ_FOREACH(lf, &loaded_files, loaded) { printf("KLD file %s is missing dependencies\n", lf->filename); + if (require_preload) + panic ("Required modules failed to load"); linker_file_unload(lf); TAILQ_REMOVE(&loaded_files, lf, loaded); } @@ -1316,6 +1321,8 @@ if (error) { printf("KLD file %s - could not finalize loading\n", lf->filename); + if (require_preload) + panic ("Required modules failed to load"); linker_file_t next = TAILQ_NEXT (lf, loaded); linker_file_unload(lf); lf = next; From owner-p4-projects@FreeBSD.ORG Thu Sep 18 10:59:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A787016A4C0; Thu, 18 Sep 2003 10:59:37 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 66DBD16A4B3 for ; Thu, 18 Sep 2003 10:59:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A82B43FBF for ; Thu, 18 Sep 2003 10:59:35 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8IHxZXJ073054 for ; Thu, 18 Sep 2003 10:59:35 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8IHxUHf073033 for perforce@freebsd.org; Thu, 18 Sep 2003 10:59:30 -0700 (PDT) (envelope-from jhb@freebsd.org) Date: Thu, 18 Sep 2003 10:59:30 -0700 (PDT) Message-Id: <200309181759.h8IHxUHf073033@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 38239 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 17:59:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=38239 Change 38239 by jhb@jhb_laptop on 2003/09/18 10:59:04 IFC @38237. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/pmap.c#52 integrate .. //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#28 integrate .. //depot/projects/smpng/sys/alpha/include/db_machdep.h#5 integrate .. //depot/projects/smpng/sys/alpha/include/varargs.h#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/exception.S#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#12 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#12 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#8 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#7 integrate .. //depot/projects/smpng/sys/amd64/include/signal.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/ucontext.h#3 integrate .. //depot/projects/smpng/sys/amd64/include/varargs.h#2 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_bus.c#4 integrate .. //depot/projects/smpng/sys/boot/forth/beastie.4th#3 integrate .. //depot/projects/smpng/sys/boot/i386/libi386/comconsole.c#3 integrate .. //depot/projects/smpng/sys/boot/i386/pxeldr/Makefile#4 integrate .. //depot/projects/smpng/sys/boot/i386/pxeldr/pxeldr.s#3 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/acpi_stub.c#2 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/bootinfo.c#5 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/devicename.c#2 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/efi_stub.c#2 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/elf_freebsd.c#7 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/module.c#3 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/sal_stub.c#2 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/skifs.c#2 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/ssc.c#3 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/time.c#4 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/boot.c#4 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/disk.c#6 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/io.c#4 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/probe_keyboard.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/sys.c#4 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/table.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/biosdisk.c#8 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/biosmem.c#3 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/comconsole.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/gatea20.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/i386_module.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/time.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/vidconsole.c#4 integrate .. //depot/projects/smpng/sys/boot/pc98/loader/conf.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/loader/main.c#4 integrate .. //depot/projects/smpng/sys/cam/cam_periph.c#12 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#19 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#45 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#17 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#10 integrate .. //depot/projects/smpng/sys/coda/cnode.h#5 integrate .. //depot/projects/smpng/sys/coda/coda.h#2 integrate .. //depot/projects/smpng/sys/coda/coda_namecache.c#8 integrate .. //depot/projects/smpng/sys/coda/coda_namecache.h#4 integrate .. //depot/projects/smpng/sys/coda/coda_psdev.c#11 integrate .. //depot/projects/smpng/sys/coda/coda_subr.c#9 integrate .. //depot/projects/smpng/sys/coda/coda_subr.h#2 integrate .. //depot/projects/smpng/sys/coda/coda_venus.c#7 integrate .. //depot/projects/smpng/sys/coda/coda_venus.h#2 integrate .. //depot/projects/smpng/sys/coda/coda_vfsops.c#13 integrate .. //depot/projects/smpng/sys/coda/coda_vfsops.h#4 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.c#13 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#32 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#41 integrate .. //depot/projects/smpng/sys/conf/NOTES#54 integrate .. //depot/projects/smpng/sys/conf/files#86 integrate .. //depot/projects/smpng/sys/conf/files.alpha#25 integrate .. //depot/projects/smpng/sys/conf/files.amd64#7 integrate .. //depot/projects/smpng/sys/conf/files.i386#47 integrate .. //depot/projects/smpng/sys/conf/files.ia64#33 integrate .. //depot/projects/smpng/sys/conf/files.pc98#48 integrate .. //depot/projects/smpng/sys/conf/files.sparc64#31 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#22 integrate .. //depot/projects/smpng/sys/conf/ldscript.ia64#6 integrate .. //depot/projects/smpng/sys/conf/options#61 integrate .. //depot/projects/smpng/sys/conf/options.i386#31 integrate .. //depot/projects/smpng/sys/conf/options.ia64#18 integrate .. //depot/projects/smpng/sys/crypto/rijndael/rijndael-api-fst.c#5 integrate .. //depot/projects/smpng/sys/crypto/sha2/sha2.c#6 integrate .. //depot/projects/smpng/sys/ddb/db_ps.c#23 integrate .. //depot/projects/smpng/sys/dev/aac/aac.c#30 integrate .. //depot/projects/smpng/sys/dev/aac/aac_pci.c#25 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdHardware.c#11 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#48 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_acad.c#11 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cmbat.c#14 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#21 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_resource.c#13 integrate .. //depot/projects/smpng/sys/dev/acpica/acpica_support.c#7 delete .. //depot/projects/smpng/sys/dev/acpica/acpica_support.h#2 delete .. //depot/projects/smpng/sys/dev/acpica/acpiio.h#4 integrate .. //depot/projects/smpng/sys/dev/acpica/acpivar.h#29 integrate .. //depot/projects/smpng/sys/dev/acpica/madt.h#1 branch .. //depot/projects/smpng/sys/dev/adlink/adlink.c#4 integrate .. //depot/projects/smpng/sys/dev/advansys/adv_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/advansys/adw_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/ahc_pci.c#12 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/ahd_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.h#13 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_pci.c#13 integrate .. //depot/projects/smpng/sys/dev/amr/amr_pci.c#12 integrate .. //depot/projects/smpng/sys/dev/an/if_an_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/asr/asr.c#20 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#39 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#18 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#12 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#22 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#12 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#36 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cd.h#11 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#8 integrate .. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#3 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#5 integrate .. //depot/projects/smpng/sys/dev/awi/awi_wep.c#13 integrate .. //depot/projects/smpng/sys/dev/bfe/if_bfe.c#1 branch .. //depot/projects/smpng/sys/dev/bfe/if_bfereg.h#1 branch .. //depot/projects/smpng/sys/dev/bktr/bktr_os.c#16 integrate .. //depot/projects/smpng/sys/dev/buslogic/bt_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#17 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#21 integrate .. //depot/projects/smpng/sys/dev/dpt/dpt_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/drm/drmP.h#5 integrate .. //depot/projects/smpng/sys/dev/drm/drm_context.h#5 integrate .. //depot/projects/smpng/sys/dev/drm/drm_memory.h#7 integrate .. //depot/projects/smpng/sys/dev/drm/radeon.h#5 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_cp.c#6 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_drm.h#5 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_drv.c#5 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_drv.h#6 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_mem.c#4 integrate .. //depot/projects/smpng/sys/dev/drm/radeon_state.c#6 integrate .. //depot/projects/smpng/sys/dev/drm/sis.h#1 branch .. //depot/projects/smpng/sys/dev/drm/sis_drm.h#3 branch .. //depot/projects/smpng/sys/dev/drm/sis_drv.c#1 branch .. //depot/projects/smpng/sys/dev/drm/sis_drv.h#1 branch .. //depot/projects/smpng/sys/dev/drm/sis_ds.c#1 branch .. //depot/projects/smpng/sys/dev/drm/sis_ds.h#1 branch .. //depot/projects/smpng/sys/dev/drm/sis_mm.c#1 branch .. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#5 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep.c#10 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_isa.c#6 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#10 integrate .. //depot/projects/smpng/sys/dev/exca/exca.c#10 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp.c#25 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#45 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxpvar.h#11 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem_pci.c#11 integrate .. //depot/projects/smpng/sys/dev/hatm/if_hatm.c#7 integrate .. //depot/projects/smpng/sys/dev/hea/hea_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/hifn/hifn7751.c#11 integrate .. //depot/projects/smpng/sys/dev/hifn/hifn7751reg.h#2 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme_sbus.c#6 integrate .. //depot/projects/smpng/sys/dev/ic/ns16550.h#3 integrate .. //depot/projects/smpng/sys/dev/ichsmb/ichsmb_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/ida/ida_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/iir/iir_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/ips/ips.h#4 integrate .. //depot/projects/smpng/sys/dev/ips/ips_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/isp/isp.c#30 integrate .. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#24 integrate .. //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#19 integrate .. //depot/projects/smpng/sys/dev/isp/isp_inline.h#10 integrate .. //depot/projects/smpng/sys/dev/isp/isp_sbus.c#7 integrate .. //depot/projects/smpng/sys/dev/isp/isp_target.c#10 integrate .. //depot/projects/smpng/sys/dev/isp/isp_target.h#7 integrate .. //depot/projects/smpng/sys/dev/isp/isp_tpublic.h#4 integrate .. //depot/projects/smpng/sys/dev/isp/ispvar.h#19 integrate .. //depot/projects/smpng/sys/dev/lnc/if_lnc_pci.c#6 integrate .. //depot/projects/smpng/sys/dev/mii/bmtphy.c#6 integrate .. //depot/projects/smpng/sys/dev/mii/miidevs#11 integrate .. //depot/projects/smpng/sys/dev/mii/rgephy.c#1 branch .. //depot/projects/smpng/sys/dev/mii/rgephyreg.h#1 branch .. //depot/projects/smpng/sys/dev/mii/rlphy.c#13 integrate .. //depot/projects/smpng/sys/dev/mlx/mlx.c#12 integrate .. //depot/projects/smpng/sys/dev/mlx/mlxvar.h#7 integrate .. //depot/projects/smpng/sys/dev/mly/mly.c#19 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/musycc/musycc.c#7 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard.c#23 integrate .. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#14 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#33 integrate .. //depot/projects/smpng/sys/dev/pci/pci_private.h#9 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#5 integrate .. //depot/projects/smpng/sys/dev/pci/pcivar.h#11 integrate .. //depot/projects/smpng/sys/dev/pst/pst-raid.c#8 integrate .. //depot/projects/smpng/sys/dev/puc/puc.c#15 integrate .. //depot/projects/smpng/sys/dev/puc/puc_ebus.c#1 branch .. //depot/projects/smpng/sys/dev/puc/puc_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/puc/puc_sbus.c#1 branch .. //depot/projects/smpng/sys/dev/puc/pucdata.c#18 integrate .. //depot/projects/smpng/sys/dev/puc/pucvar.h#9 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#1 branch .. //depot/projects/smpng/sys/dev/sbni/if_sbni_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/sbsh/if_sbsh.c#4 integrate .. //depot/projects/smpng/sys/dev/sio/sio.c#34 integrate .. //depot/projects/smpng/sys/dev/sio/sioreg.h#6 integrate .. //depot/projects/smpng/sys/dev/smbus/smbus.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ess.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mpu.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mss.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb8.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sndbuf_dma.c#2 integrate .. //depot/projects/smpng/sys/dev/sound/isa/uartsio.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pci/au88x0.c#4 integrate .. //depot/projects/smpng/sys/dev/sound/pci/aureal.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pci/aureal.h#2 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cmi.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cs4281.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csa.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csamidi.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csapcm.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ds1.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10k1.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pci/fm801.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#24 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro3.c#15 integrate .. //depot/projects/smpng/sys/dev/sound/pci/neomagic-coeff.h#2 integrate .. //depot/projects/smpng/sys/dev/sound/pci/neomagic.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/pci/neomagic.h#2 integrate .. //depot/projects/smpng/sys/dev/sound/pci/solo.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.h#3 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via82c686.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.h#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.c#8 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.h#4 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#21 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#8 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.h#3 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/fake.c#4 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder.h#5 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/feeder_fmt.c#9 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.h#3 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#13 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.h#3 integrate .. //depot/projects/smpng/sys/dev/stg/tmc18c30_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#15 integrate .. //depot/projects/smpng/sys/dev/tdfx/tdfx_pci.c#14 integrate .. //depot/projects/smpng/sys/dev/trm/trm.c#12 integrate .. //depot/projects/smpng/sys/dev/tx/if_txreg.h#4 integrate .. //depot/projects/smpng/sys/dev/uart/uart.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_acpi.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_ebus.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_isa.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_pccard.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_pci.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_bus_puc.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_core.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_alpha.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_amd64.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_i386.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_ia64.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_pc98.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_sparc64.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_i8251.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_i8251.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_ns8250.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_ns8250.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_if.m#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#1 branch .. //depot/projects/smpng/sys/dev/usb/if_aue.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/ohci_pci.c#5 integrate .. //depot/projects/smpng/sys/dev/usb/usb_mem.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usb_subr.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#38 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs.h#38 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#38 integrate .. //depot/projects/smpng/sys/dev/vx/if_vx_pci.c#4 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#56 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#24 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pci.c#17 integrate .. //depot/projects/smpng/sys/dev/wi/if_wireg.h#19 integrate .. //depot/projects/smpng/sys/dev/wi/if_wivar.h#16 integrate .. //depot/projects/smpng/sys/geom/bde/g_bde_crypt.c#13 integrate .. //depot/projects/smpng/sys/geom/geom.h#31 integrate .. //depot/projects/smpng/sys/geom/geom_bsd.c#33 integrate .. //depot/projects/smpng/sys/geom/geom_dev.c#30 integrate .. //depot/projects/smpng/sys/geom/geom_disk.c#29 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#23 integrate .. //depot/projects/smpng/sys/geom/geom_mbr.c#24 integrate .. //depot/projects/smpng/sys/geom/geom_pc98.c#21 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#11 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#20 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#41 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#63 integrate .. //depot/projects/smpng/sys/i386/i386/db_interface.c#19 integrate .. //depot/projects/smpng/sys/i386/i386/elan-mmcr.c#9 integrate .. //depot/projects/smpng/sys/i386/i386/geode.c#1 branch .. //depot/projects/smpng/sys/i386/i386/identcpu.c#25 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#64 integrate .. //depot/projects/smpng/sys/i386/i386/mp_clock.c#9 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#52 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#47 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#34 integrate .. //depot/projects/smpng/sys/i386/i386/trap.c#62 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#42 integrate .. //depot/projects/smpng/sys/i386/include/acpica_machdep.h#5 integrate .. //depot/projects/smpng/sys/i386/include/apic.h#11 integrate .. //depot/projects/smpng/sys/i386/include/pci_cfgreg.h#5 integrate .. //depot/projects/smpng/sys/i386/include/segments.h#7 integrate .. //depot/projects/smpng/sys/i386/include/varargs.h#5 integrate .. //depot/projects/smpng/sys/i386/isa/clock.c#28 integrate .. //depot/projects/smpng/sys/i386/isa/isa.h#2 integrate .. //depot/projects/smpng/sys/i386/isa/isa_compat.c#3 integrate .. //depot/projects/smpng/sys/i386/isa/isa_device.h#4 integrate .. //depot/projects/smpng/sys/i386/isa/npx.c#36 integrate .. //depot/projects/smpng/sys/i386/linux/imgact_linux.c#13 integrate .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#18 integrate .. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#20 integrate .. //depot/projects/smpng/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#10 integrate .. //depot/projects/smpng/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#11 integrate .. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_elsa_qs1p.c#6 integrate .. //depot/projects/smpng/sys/i4b/layer1/itjc/i4b_itjc_pci.c#11 integrate .. //depot/projects/smpng/sys/i4b/layer1/iwic/i4b_iwic_pci.c#6 integrate .. //depot/projects/smpng/sys/ia64/acpica/madt.c#10 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC#34 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC.hints#4 integrate .. //depot/projects/smpng/sys/ia64/conf/NOTES#2 integrate .. //depot/projects/smpng/sys/ia64/ia64/exception.S#5 integrate .. //depot/projects/smpng/sys/ia64/ia64/genassym.c#22 integrate .. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#21 integrate .. //depot/projects/smpng/sys/ia64/ia64/locore.S#2 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#65 integrate .. //depot/projects/smpng/sys/ia64/ia64/nexus.c#5 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#52 integrate .. //depot/projects/smpng/sys/ia64/ia64/sapic.c#12 integrate .. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#32 integrate .. //depot/projects/smpng/sys/ia64/include/md_var.h#11 integrate .. //depot/projects/smpng/sys/ia64/include/sapicvar.h#4 integrate .. //depot/projects/smpng/sys/ia64/include/vmparam.h#6 integrate .. //depot/projects/smpng/sys/isa/fd.c#24 integrate .. //depot/projects/smpng/sys/isa/isareg.h#4 integrate .. //depot/projects/smpng/sys/kern/bus_if.m#8 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#32 integrate .. //depot/projects/smpng/sys/kern/kern_ktr.c#24 integrate .. //depot/projects/smpng/sys/kern/kern_prot.c#74 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#25 integrate .. //depot/projects/smpng/sys/kern/kern_umtx.c#8 integrate .. //depot/projects/smpng/sys/kern/kern_xxx.c#11 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#25 integrate .. //depot/projects/smpng/sys/kern/subr_msgbuf.c#2 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#12 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#58 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#104 integrate .. //depot/projects/smpng/sys/kern/sys_pipe.c#33 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#32 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#31 integrate .. //depot/projects/smpng/sys/kern/uipc_domain.c#8 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#21 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#38 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#41 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#49 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#17 integrate .. //depot/projects/smpng/sys/modules/Makefile#61 integrate .. //depot/projects/smpng/sys/modules/acpi/Makefile#14 integrate .. //depot/projects/smpng/sys/modules/bfe/Makefile#1 branch .. //depot/projects/smpng/sys/modules/coda/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/coda5/Makefile#1 branch .. //depot/projects/smpng/sys/modules/drm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/drm/sis/Makefile#1 branch .. //depot/projects/smpng/sys/modules/mii/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/pst/Makefile#1 branch .. //depot/projects/smpng/sys/modules/re/Makefile#1 branch .. //depot/projects/smpng/sys/modules/uart/Makefile#1 branch .. //depot/projects/smpng/sys/net/bpf.c#26 integrate .. //depot/projects/smpng/sys/net/bridge.c#19 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#36 integrate .. //depot/projects/smpng/sys/net/if_iso88025subr.c#13 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#19 integrate .. //depot/projects/smpng/sys/net/raw_usrreq.c#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.h#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#6 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.h#1 branch .. //depot/projects/smpng/sys/net80211/ieee80211_var.h#4 integrate .. //depot/projects/smpng/sys/netatalk/aarp.c#7 integrate .. //depot/projects/smpng/sys/netatalk/ddp_output.c#4 integrate .. //depot/projects/smpng/sys/netinet/igmp.c#10 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#24 integrate .. //depot/projects/smpng/sys/netinet/ip_dummynet.c#20 integrate .. //depot/projects/smpng/sys/netinet/ip_flow.c#3 integrate .. //depot/projects/smpng/sys/netinet/ip_flow.h#2 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#18 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#38 integrate .. //depot/projects/smpng/sys/netinet/ip_mroute.c#25 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#42 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#29 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#33 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#29 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#6 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#21 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#12 integrate .. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#7 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#6 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.h#3 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_input.c#6 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_output.c#7 integrate .. //depot/projects/smpng/sys/netipsec/key.c#5 integrate .. //depot/projects/smpng/sys/netipsec/key.h#2 integrate .. //depot/projects/smpng/sys/netipsec/keydb.h#2 integrate .. //depot/projects/smpng/sys/netipsec/xform_ah.c#4 integrate .. //depot/projects/smpng/sys/netipsec/xform_esp.c#4 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#4 integrate .. //depot/projects/smpng/sys/netipx/ipx_input.c#8 integrate .. //depot/projects/smpng/sys/netipx/spx_usrreq.c#9 integrate .. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#19 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_node.c#11 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#11 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#32 integrate .. //depot/projects/smpng/sys/nfsclient/nfsnode.h#5 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#36 integrate .. //depot/projects/smpng/sys/pc98/conf/NOTES#12 integrate .. //depot/projects/smpng/sys/pc98/i386/machdep.c#58 integrate .. //depot/projects/smpng/sys/pc98/pc98/clock.c#20 integrate .. //depot/projects/smpng/sys/pc98/pc98/fd.c#25 integrate .. //depot/projects/smpng/sys/pccard/i82365.h#9 integrate .. //depot/projects/smpng/sys/pccard/pcic.c#22 integrate .. //depot/projects/smpng/sys/pci/agp_intel.c#13 integrate .. //depot/projects/smpng/sys/pci/amdpm.c#9 integrate .. //depot/projects/smpng/sys/pci/if_dc.c#44 integrate .. //depot/projects/smpng/sys/pci/if_mn.c#8 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#37 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#13 integrate .. //depot/projects/smpng/sys/pci/if_sis.c#31 integrate .. //depot/projects/smpng/sys/pci/if_sisreg.h#9 integrate .. //depot/projects/smpng/sys/pci/if_xl.c#34 integrate .. //depot/projects/smpng/sys/pci/if_xlreg.h#10 integrate .. //depot/projects/smpng/sys/pci/xrpu.c#10 integrate .. //depot/projects/smpng/sys/posix4/ksched.c#13 integrate .. //depot/projects/smpng/sys/powerpc/include/varargs.h#5 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/vm_machdep.c#29 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#34 integrate .. //depot/projects/smpng/sys/sparc64/include/ofw_machdep.h#3 integrate .. //depot/projects/smpng/sys/sparc64/include/varargs.h#5 integrate .. //depot/projects/smpng/sys/sparc64/pci/psycho.c#26 integrate .. //depot/projects/smpng/sys/sparc64/pci/psychoreg.h#7 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#56 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#19 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/ofw_machdep.c#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#43 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#36 integrate .. //depot/projects/smpng/sys/sys/ata.h#16 integrate .. //depot/projects/smpng/sys/sys/buf.h#23 integrate .. //depot/projects/smpng/sys/sys/bus.h#11 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#8 integrate .. //depot/projects/smpng/sys/sys/ioctl_bt848.h#1 branch .. //depot/projects/smpng/sys/sys/ioctl_meteor.h#1 branch .. //depot/projects/smpng/sys/sys/mac.h#18 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#25 integrate .. //depot/projects/smpng/sys/sys/param.h#48 integrate .. //depot/projects/smpng/sys/sys/syscall.h#32 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#32 integrate .. //depot/projects/smpng/sys/sys/syslimits.h#6 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#34 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#6 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#27 integrate .. //depot/projects/smpng/sys/vm/pmap.h#21 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#32 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#28 integrate .. //depot/projects/smpng/sys/vm/vm_init.c#10 integrate .. //depot/projects/smpng/sys/vm/vm_kern.c#19 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#43 integrate .. //depot/projects/smpng/sys/vm/vm_map.h#21 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#32 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#43 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#41 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#37 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.c#34 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#52 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.134 2003/08/20 20:12:05 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.138 2003/09/12 07:07:47 alc Exp $"); #include #include @@ -340,7 +340,6 @@ static int pmap_release_free_page(pmap_t pmap, vm_page_t p); static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex); -static vm_page_t pmap_page_lookup(vm_object_t object, vm_pindex_t pindex); static int pmap_unuse_pt(pmap_t, vm_offset_t, vm_page_t); #ifdef SMP static void pmap_invalidate_page_action(void *arg); @@ -812,7 +811,31 @@ return 0; } +/* + * Routine: pmap_extract_and_hold + * Function: + * Atomically extract and hold the physical page + * with the given pmap and virtual address pair + * if that mapping permits the given protection. + */ +vm_page_t +pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) +{ + vm_paddr_t pa; + vm_page_t m; + m = NULL; + mtx_lock(&Giant); + if ((pa = pmap_extract(pmap, va)) != 0) { + m = PHYS_TO_VM_PAGE(pa); + vm_page_lock_queues(); + vm_page_hold(m); + vm_page_unlock_queues(); + } + mtx_unlock(&Giant); + return (m); +} + /*************************************************** * Low level mapping routines..... ***************************************************/ @@ -914,22 +937,6 @@ return ALPHA_PHYS_TO_K0SEG(start); } - -static vm_page_t -pmap_page_lookup(vm_object_t object, vm_pindex_t pindex) -{ - vm_page_t m; -retry: - m = vm_page_lookup(object, pindex); - if (m != NULL) { - vm_page_lock_queues(); - if (vm_page_sleep_if_busy(m, FALSE, "pplookp")) - goto retry; - vm_page_unlock_queues(); - } - return m; -} - /*************************************************** * Page table page management routines..... ***************************************************/ @@ -967,10 +974,8 @@ if (m->pindex < NUSERLEV3MAPS) { /* unhold the level 2 page table */ vm_page_t lev2pg; - lev2pg = vm_page_lookup(pmap->pm_pteobj, - NUSERLEV3MAPS + pmap_lev1_index(va)); - while (vm_page_sleep_if_busy(lev2pg, FALSE, "pulook")) - vm_page_lock_queues(); + + lev2pg = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev1pte(pmap, va))); vm_page_unhold(lev2pg); if (lev2pg->hold_count == 0) _pmap_unwire_pte_hold(pmap, va, lev2pg); @@ -1027,9 +1032,7 @@ (pmap->pm_ptphint->pindex == ptepindex)) { mpte = pmap->pm_ptphint; } else { - while ((mpte = vm_page_lookup(pmap->pm_pteobj, ptepindex)) != NULL && - vm_page_sleep_if_busy(mpte, FALSE, "pulook")) - vm_page_lock_queues(); + mpte = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev2pte(pmap, va))); pmap->pm_ptphint = mpte; } } @@ -1240,9 +1243,9 @@ if (!pmap_pte_v(l1pte)) _pmap_allocpte(pmap, NUSERLEV3MAPS + l1index); else { - vm_page_t l2page = - pmap_page_lookup(pmap->pm_pteobj, - NUSERLEV3MAPS + l1index); + vm_page_t l2page; + + l2page = PHYS_TO_VM_PAGE(pmap_pte_pa(l1pte)); l2page->hold_count++; } l2map = (pt_entry_t*) ALPHA_PHYS_TO_K0SEG(pmap_pte_pa(l1pte)); @@ -1297,7 +1300,7 @@ (pmap->pm_ptphint->pindex == ptepindex)) { m = pmap->pm_ptphint; } else { - m = pmap_page_lookup(pmap->pm_pteobj, ptepindex); + m = PHYS_TO_VM_PAGE(pmap_pte_pa(lev2pte)); pmap->pm_ptphint = m; } m->hold_count++; @@ -1999,7 +2002,6 @@ if (mpte && (mpte->pindex == ptepindex)) { mpte->hold_count++; } else { -retry: /* * Get the level 2 entry */ @@ -2014,12 +2016,9 @@ (pmap->pm_ptphint->pindex == ptepindex)) { mpte = pmap->pm_ptphint; } else { - mpte = pmap_page_lookup(pmap->pm_pteobj, - ptepindex); + mpte = PHYS_TO_VM_PAGE(pmap_pte_pa(l2pte)); pmap->pm_ptphint = mpte; } - if (mpte == NULL) - goto retry; mpte->hold_count++; } else { mpte = _pmap_allocpte(pmap, ptepindex); @@ -2774,23 +2773,30 @@ */ if ((*pte & PG_FOW) == 0) val |= MINCORE_MODIFIED|MINCORE_MODIFIED_OTHER; - /* - * Modified by someone - */ - else if (m->dirty || pmap_is_modified(m)) - val |= MINCORE_MODIFIED_OTHER; + else { + /* + * Modified by someone + */ + vm_page_lock_queues(); + if (m->dirty || pmap_is_modified(m)) + val |= MINCORE_MODIFIED_OTHER; + vm_page_unlock_queues(); + } /* * Referenced by us */ if ((*pte & (PG_FOR | PG_FOE)) == 0) val |= MINCORE_REFERENCED|MINCORE_REFERENCED_OTHER; - - /* - * Referenced by someone - */ - else if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) { - val |= MINCORE_REFERENCED_OTHER; - vm_page_flag_set(m, PG_REFERENCED); + else { + /* + * Referenced by someone + */ + vm_page_lock_queues(); + if ((m->flags & PG_REFERENCED) || pmap_ts_referenced(m)) { + val |= MINCORE_REFERENCED_OTHER; + vm_page_flag_set(m, PG_REFERENCED); + } + vm_page_unlock_queues(); } } return val; ==== //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#28 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.93 2003/08/16 23:15:13 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.94 2003/08/29 20:04:09 alc Exp $"); #include "opt_kstack_pages.h" @@ -82,6 +82,8 @@ #include #include #include +#include +#include #include #include @@ -101,6 +103,20 @@ #include +static void sf_buf_init(void *arg); +SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL) + +/* + * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the + * sf_freelist head with the sf_lock mutex. + */ +static struct { + SLIST_HEAD(, sf_buf) sf_head; + struct mtx sf_lock; +} sf_freelist; + +static u_int sf_buf_alloc_want; + /* * Finish a fork operation, with process p2 nearly set up. * Copy and update the pcb, set up the stack so that the child @@ -370,6 +386,91 @@ } /* + * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-)) + */ +static void +sf_buf_init(void *arg) +{ + struct sf_buf *sf_bufs; + vm_offset_t sf_base; + int i; + + mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF); + mtx_lock(&sf_freelist.sf_lock); + SLIST_INIT(&sf_freelist.sf_head); + sf_base = kmem_alloc_nofault(kernel_map, nsfbufs * PAGE_SIZE); + sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP, + M_NOWAIT | M_ZERO); + for (i = 0; i < nsfbufs; i++) { + sf_bufs[i].kva = sf_base + i * PAGE_SIZE; + SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list); + } + sf_buf_alloc_want = 0; + mtx_unlock(&sf_freelist.sf_lock); +} + +/* + * Get an sf_buf from the freelist. Will block if none are available. + */ +struct sf_buf * +sf_buf_alloc(struct vm_page *m) +{ + struct sf_buf *sf; + int error; + + mtx_lock(&sf_freelist.sf_lock); + while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) { + sf_buf_alloc_want++; + error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM|PCATCH, + "sfbufa", 0); + sf_buf_alloc_want--; + + /* + * If we got a signal, don't risk going back to sleep. + */ + if (error) + break; + } + if (sf != NULL) { + SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); + sf->m = m; + pmap_qenter(sf->kva, &sf->m, 1); + } + mtx_unlock(&sf_freelist.sf_lock); + return (sf); +} + +/* + * Detatch mapped page and release resources back to the system. + */ +void +sf_buf_free(void *addr, void *args) +{ + struct sf_buf *sf; + struct vm_page *m; + + sf = args; + pmap_qremove((vm_offset_t)addr, 1); + m = sf->m; + vm_page_lock_queues(); + vm_page_unwire(m, 0); + /* + * Check for the object going away on us. This can + * happen since we don't hold a reference to it. + * If so, we're responsible for freeing the page. + */ + if (m->wire_count == 0 && m->object == NULL) + vm_page_free(m); + vm_page_unlock_queues(); + sf->m = NULL; + mtx_lock(&sf_freelist.sf_lock); + SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); + if (sf_buf_alloc_want > 0) + wakeup_one(&sf_freelist); + mtx_unlock(&sf_freelist.sf_lock); +} + +/* * Software interrupt handler for queued VM system processing. */ void ==== //depot/projects/smpng/sys/alpha/include/db_machdep.h#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.7 2003/02/25 00:42:39 marcel Exp $ */ +/* $FreeBSD: src/sys/alpha/include/db_machdep.h,v 1.8 2003/09/07 05:33:46 marcel Exp $ */ /* $NetBSD: db_machdep.h,v 1.6 1997/09/06 02:02:25 thorpej Exp $ */ /* @@ -34,8 +34,9 @@ /* * Machine-dependent defines for new kernel debugger. */ - +#ifndef KLD_MODULE #include "opt_ddb.h" +#endif #include #include ==== //depot/projects/smpng/sys/alpha/include/varargs.h#5 (text+ko) ==== @@ -38,11 +38,11 @@ * * @(#)varargs.h 8.2 (Berkeley) 3/22/94 * $NetBSD: varargs.h,v 1.7 1997/04/06 08:47:46 cgd Exp $ - * $FreeBSD: src/sys/alpha/include/varargs.h,v 1.5 2002/10/06 22:02:06 mike Exp $ + * $FreeBSD: src/sys/alpha/include/varargs.h,v 1.6 2003/09/01 03:01:45 kan Exp $ */ -#ifndef _ALPHA_VARARGS_H_ -#define _ALPHA_VARARGS_H_ +#ifndef _MACHINE_VARARGS_H_ +#define _MACHINE_VARARGS_H_ #if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3) @@ -80,4 +80,4 @@ #endif /* __GNUC__ post GCC 2.95 */ -#endif /* !_ALPHA_VARARGS_H_ */ +#endif /* !_MACHINE_VARARGS_H_ */ ==== //depot/projects/smpng/sys/amd64/amd64/exception.S#5 (text+ko) ==== @@ -31,7 +31,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.110 2003/05/14 04:10:47 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.111 2003/09/09 19:32:09 peter Exp $ */ #include @@ -227,8 +227,8 @@ swapgs movq %rsp,PCPU(SCRATCH_RSP) movq common_tss+COMMON_TSS_RSP0,%rsp - /* Now emulate a trapframe. Ugh. */ - subq $TF_SIZE,%rsp + /* Now emulate a trapframe. Make the 8 byte alignment odd for call. */ + subq $TF_SIZE+8,%rsp /* defer TF_RSP till we have a spare register */ movq %r11,TF_RFLAGS(%rsp) movq %rcx,TF_RIP(%rsp) /* %rcx original value is in %r10 */ ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#12 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.588 2003/07/31 01:26:39 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.589 2003/09/09 19:32:09 peter Exp $"); #include "opt_atalk.h" #include "opt_compat.h" @@ -1217,6 +1217,8 @@ /* make an initial tss so cpu can get interrupt stack on syscall! */ common_tss.tss_rsp0 = thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE - sizeof(struct pcb); + /* Ensure the stack is aligned to 16 bytes */ + common_tss.tss_rsp0 &= ~0xF; /* doublefault stack space, runs on ist1 */ common_tss.tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; @@ -1434,7 +1436,6 @@ struct trapframe *tp; tp = td->td_frame; - PROC_LOCK(curthread->td_proc); mcp->mc_onstack = sigonstack(tp->tf_rsp); PROC_UNLOCK(curthread->td_proc); @@ -1486,66 +1487,42 @@ return (EINVAL); rflags = (mcp->mc_rflags & PSL_USERCHANGE) | (tp->tf_rflags & ~PSL_USERCHANGE); - if ((ret = set_fpcontext(td, mcp)) == 0) { - tp->tf_r15 = mcp->mc_r15; - tp->tf_r14 = mcp->mc_r14; - tp->tf_r13 = mcp->mc_r13; - tp->tf_r12 = mcp->mc_r12; - tp->tf_r11 = mcp->mc_r11; - tp->tf_r10 = mcp->mc_r10; - tp->tf_r9 = mcp->mc_r9; - tp->tf_r8 = mcp->mc_r8; - tp->tf_rdi = mcp->mc_rdi; - tp->tf_rsi = mcp->mc_rsi; - tp->tf_rbp = mcp->mc_rbp; - tp->tf_rbx = mcp->mc_rbx; - tp->tf_rdx = mcp->mc_rdx; - tp->tf_rcx = mcp->mc_rcx; - tp->tf_rax = mcp->mc_rax; - tp->tf_rip = mcp->mc_rip; - tp->tf_rflags = rflags; - tp->tf_rsp = mcp->mc_rsp; - tp->tf_ss = mcp->mc_ss; - ret = 0; - } - return (ret); + ret = set_fpcontext(td, mcp); + if (ret != 0) + return (ret); + tp->tf_r15 = mcp->mc_r15; + tp->tf_r14 = mcp->mc_r14; + tp->tf_r13 = mcp->mc_r13; + tp->tf_r12 = mcp->mc_r12; + tp->tf_r11 = mcp->mc_r11; + tp->tf_r10 = mcp->mc_r10; + tp->tf_r9 = mcp->mc_r9; + tp->tf_r8 = mcp->mc_r8; + tp->tf_rdi = mcp->mc_rdi; + tp->tf_rsi = mcp->mc_rsi; + tp->tf_rbp = mcp->mc_rbp; + tp->tf_rbx = mcp->mc_rbx; + tp->tf_rdx = mcp->mc_rdx; + tp->tf_rcx = mcp->mc_rcx; + tp->tf_rax = mcp->mc_rax; + tp->tf_rip = mcp->mc_rip; + tp->tf_rflags = rflags; + tp->tf_rsp = mcp->mc_rsp; + tp->tf_ss = mcp->mc_ss; + return (0); } static void get_fpcontext(struct thread *td, mcontext_t *mcp) { - struct savefpu *addr; - /* - * XXX mc_fpstate might be misaligned, since its declaration is not - * unportabilized using __attribute__((aligned(16))) like the - * declaration of struct savemm, and anyway, alignment doesn't work - * for auto variables since we don't use gcc's pessimal stack - * alignment. Work around this by abusing the spare fields after - * mcp->mc_fpstate. - * - * XXX unpessimize most cases by only aligning when fxsave might be - * called, although this requires knowing too much about - * npxgetregs()'s internals. - */ - addr = (struct savefpu *)&mcp->mc_fpstate; - if (td == PCPU_GET(fpcurthread) && ((uintptr_t)(void *)addr & 0xF)) { - do - addr = (void *)((char *)addr + 4); - while ((uintptr_t)(void *)addr & 0xF); - } - mcp->mc_ownedfp = npxgetregs(td, addr); - if (addr != (struct savefpu *)&mcp->mc_fpstate) { - bcopy(addr, &mcp->mc_fpstate, sizeof(mcp->mc_fpstate)); - bzero(&mcp->mc_spare2, sizeof(mcp->mc_spare2)); - } + mcp->mc_ownedfp = npxgetregs(td, (struct savefpu *)&mcp->mc_fpstate); mcp->mc_fpformat = npxformat(); } static int >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 18 18:13:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8673516A4C0; Thu, 18 Sep 2003 18:13:50 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5ED9F16A4B3 for ; Thu, 18 Sep 2003 18:13:50 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3863443FDD for ; Thu, 18 Sep 2003 18:13:49 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8J1DnXJ023282 for ; Thu, 18 Sep 2003 18:13:49 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8J1DmKu023279 for perforce@freebsd.org; Thu, 18 Sep 2003 18:13:48 -0700 (PDT) (envelope-from sam@freebsd.org) Date: Thu, 18 Sep 2003 18:13:48 -0700 (PDT) Message-Id: <200309190113.h8J1DmKu023279@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38253 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 01:13:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=38253 Change 38253 by sam@sam_ebb on 2003/09/18 18:13:30 PFIL_HOOKS revision; derived from work by "Max Laier" : o update API to match netbsd o add locking (similar to the MAC) o revise call sites to use new API o wack ipfilter code to suit o bump FreeBSD version to identify API change o cleanup some grottiness in pfil.h for ipfilter that I'm sure I'll be sorry I did This stuff needs more testing and review-by/handoff-to Darren. Affected files ... .. //depot/projects/netperf/sys/contrib/ipfilter/netinet/ip_fil.c#2 edit .. //depot/projects/netperf/sys/modules/ipfilter/Makefile#2 edit .. //depot/projects/netperf/sys/net/bridge.c#9 edit .. //depot/projects/netperf/sys/net/pfil.c#2 edit .. //depot/projects/netperf/sys/net/pfil.h#2 edit .. //depot/projects/netperf/sys/netinet/ip_input.c#5 edit .. //depot/projects/netperf/sys/netinet/ip_output.c#5 edit .. //depot/projects/netperf/sys/netinet/ip_var.h#4 edit .. //depot/projects/netperf/sys/netinet6/ip6_forward.c#2 edit .. //depot/projects/netperf/sys/netinet6/ip6_input.c#3 edit .. //depot/projects/netperf/sys/netinet6/ip6_output.c#4 edit .. //depot/projects/netperf/sys/netinet6/ip6_var.h#2 edit .. //depot/projects/netperf/sys/sys/param.h#6 edit Differences ... ==== //depot/projects/netperf/sys/contrib/ipfilter/netinet/ip_fil.c#2 (text+ko) ==== @@ -307,6 +307,61 @@ } # endif #endif /* __NetBSD_Version >= 105110000 && _KERNEL */ +#if (__FreeBSD_version >= 501108) +# include + +static int +fr_check_wrapper(void *arg, struct mbuf **mp, struct ifnet *ifp, int dir) +{ + struct ip *ip = mtod(*mp, struct ip *); + int rv, hlen = ip->ip_hl << 2; + + /* + * If the packet is out-bound, we can't delay checksums + * here. For in-bound, the checksum has already been + * validated. + */ + if (dir == PFIL_OUT) { + if ((*mp)->m_pkthdr.csum_flags & CSUM_DELAY_DATA) { + in_delayed_cksum(*mp); + (*mp)->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA; + } + } + + /* + * We get the packet with all fields in network byte + * order. We expect ip_len and ip_off to be in host + * order. We frob them, call the filter, then frob + * them back. + * + * Note, we don't need to update the checksum, because + * it has already been verified. + */ + ip->ip_len = ntohs(ip->ip_len); + ip->ip_off = ntohs(ip->ip_off); + + rv = fr_check(ip, hlen, ifp, (dir == PFIL_OUT), mp); + + if (rv == 0 && *mp != NULL) { + ip = mtod(*mp, struct ip *); + ip->ip_len = ntohs(ip->ip_len); + ip->ip_off = ntohs(ip->ip_off); + } + + return (rv); +} + +# ifdef USE_INET6 +# include + +static int +fr_check_wrapper6(void *arg, struct mbuf **mp, struct ifnet *ifp, int dir) +{ + return (fr_check(mtod(*mp, struct ip *), sizeof(struct ip6_hdr), + ifp, (dir == PFIL_OUT), mp)); +} +# endif +#endif /* __FreeBSD_version >= 501108 */ #ifdef _KERNEL # if defined(IPFILTER_LKM) && !defined(__sgi) int iplidentify(s) @@ -348,7 +403,8 @@ ((__NetBSD_Version__ >= 104200000) || (__FreeBSD_version >= 500011))) int error = 0; # endif -#if defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 105110000) +#if (defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 105110000)) || \ + (__FreeBSD_version >= 501108) struct pfil_head *ph_inet; # ifdef USE_INET6 struct pfil_head *ph_inet6; @@ -380,7 +436,7 @@ # ifdef NETBSD_PF # if (__NetBSD_Version__ >= 104200000) || (__FreeBSD_version >= 500011) -# if __NetBSD_Version__ >= 105110000 +# if (__NetBSD_Version__ >= 105110000) || (__FreeBSD_version >= 501108) ph_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); # ifdef USE_INET6 ph_inet6 = pfil_head_get(PFIL_TYPE_AF, AF_INET6); @@ -416,7 +472,7 @@ pfil_add_hook((void *)fr_check, PFIL_IN|PFIL_OUT); # endif # ifdef USE_INET6 -# if __NetBSD_Version__ >= 105110000 +# if (__NetBSD_Version__ >= 105110000) || (__FreeBSD_version >= 501108) if (ph_inet6 != NULL) error = pfil_add_hook((void *)fr_check_wrapper6, NULL, PFIL_IN|PFIL_OUT, ph_inet6); @@ -508,7 +564,7 @@ #if defined(NETBSD_PF) && \ ((__NetBSD_Version__ >= 104200000) || (__FreeBSD_version >= 500011)) int error = 0; -# if __NetBSD_Version__ >= 105150000 +# if (__NetBSD_Version__ >= 105150000) || (__FreeBSD_version >= 501108) struct pfil_head *ph_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); # ifdef USE_INET6 struct pfil_head *ph_inet6 = pfil_head_get(PFIL_TYPE_AF, AF_INET6); @@ -552,7 +608,7 @@ # ifdef NETBSD_PF # if ((__NetBSD_Version__ >= 104200000) || (__FreeBSD_version >= 500011)) -# if __NetBSD_Version__ >= 105110000 +# if (__NetBSD_Version__ >= 105110000) || (__FreeBSD_version >= 501108) if (ph_inet != NULL) error = pfil_remove_hook((void *)fr_check_wrapper, NULL, PFIL_IN|PFIL_OUT, ph_inet); ==== //depot/projects/netperf/sys/modules/ipfilter/Makefile#2 (text+ko) ==== @@ -7,7 +7,7 @@ ip_log.c ip_fil.c fil.c CFLAGS+= -I${.CURDIR}/../../contrib/ipfilter -CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG +CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS # # If you don't want log functionality remove -DIPFILTER_LOG # ==== //depot/projects/netperf/sys/net/bridge.c#9 (text+ko) ==== @@ -87,6 +87,7 @@ * - be very careful when bridging VLANs * - loop detection is still not very robust. */ +#include "opt_pfil_hooks.h" #include #include @@ -98,7 +99,6 @@ #include #include -#include /* for ipfilter */ #include #include #include @@ -109,6 +109,11 @@ #include #include /* for struct arpcom */ +#ifdef PFIL_HOOKS +#include +#include +#endif + #include #include #include @@ -160,7 +165,6 @@ extern struct protosw inetsw[]; /* from netinet/ip_input.c */ -extern u_char ip_protox[]; /* from netinet/ip_input.c */ static int n_clusters; /* number of clusters */ static struct cluster_softc *clusters; @@ -715,6 +719,7 @@ * Lookup local addresses in case one matches. We optimize * for the common case of two interfaces. */ + KASSERT(c->ports != 0, ("lookup with no ports!")); switch (c->ports) { int i; default: @@ -914,10 +919,6 @@ int shared = bdg_copy; /* someone else is using the mbuf */ struct ifnet *real_dst = dst; /* real dst from ether_output */ struct ip_fw_args args; -#ifdef PFIL_HOOKS - struct packet_filter_hook *pfh; - int rv; -#endif /* PFIL_HOOKS */ struct ether_header save_eh; struct mbuf *m; @@ -969,7 +970,7 @@ */ if (src != NULL && ( #ifdef PFIL_HOOKS - ((pfh = pfil_hook_get(PFIL_IN, &inetsw[ip_protox[IPPROTO_IP]].pr_pfh)) != NULL && bdg_ipf !=0) || + (inet_pfil_hook.ph_busy_count >= 0 && bdg_ipf != 0) || #endif (IPFW_LOADED && bdg_ipfw != 0))) { @@ -1006,8 +1007,9 @@ * NetBSD-style generic packet filter, pfil(9), hooks. * Enables ipf(8) in bridging. */ - if (pfh != NULL && m0->m_pkthdr.len >= sizeof(struct ip) && - ntohs(save_eh.ether_type) == ETHERTYPE_IP) { + if (inet_pfil_hook.ph_busy_count >= 0 && + m0->m_pkthdr.len >= sizeof(struct ip) && + ntohs(save_eh.ether_type) == ETHERTYPE_IP) { /* * before calling the firewall, swap fields the same as IP does. * here we assume the pkt is an IP one and the header is contiguous @@ -1017,20 +1019,14 @@ ip->ip_len = ntohs(ip->ip_len); ip->ip_off = ntohs(ip->ip_off); - do { - if (pfh->pfil_func) { - rv = pfh->pfil_func(ip, ip->ip_hl << 2, src, 0, &m0); - if (m0 == NULL) { - bdg_dropped++; - return NULL; - } - if (rv != 0) { - EH_RESTORE(m0); /* restore Ethernet header */ - return m0; - } - ip = mtod(m0, struct ip *); - } - } while ((pfh = TAILQ_NEXT(pfh, pfil_link)) != NULL); + if (pfil_run_hooks(&inet_pfil_hook, &m0, src, PFIL_IN) != 0) { + EH_RESTORE(m0); /* restore Ethernet header */ + return m0; + } + if (m0 == NULL) { + bdg_dropped++; + return NULL; + } /* * If we get here, the firewall has passed the pkt, but the mbuf * pointer might have changed. Restore ip and the fields ntohs()'d. ==== //depot/projects/netperf/sys/net/pfil.c#2 (text+ko) ==== @@ -1,4 +1,5 @@ -/* $FreeBSD: src/sys/net/pfil.c,v 1.7 2003/02/19 05:47:29 imp Exp $ */ +/* $FreeBSD$ */ +/* $NetBSD: pfil.c,v 1.20 2001/11/12 23:49:46 lukem Exp $ */ /* * Copyright (c) 1996 Matthew R. Green @@ -29,30 +30,207 @@ */ #include +#include #include #include #include #include #include +#include +#include +#include +#include #include #include #include -static void pfil_init(struct pfil_head *); -static int pfil_list_add(pfil_list_t *, - int (*)(void *, int, struct ifnet *, int, struct mbuf **), int); +static struct mtx pfil_global_lock; + +MTX_SYSINIT(pfil_heads_lock, &pfil_global_lock, "pfil_head_list lock", MTX_DEF); + +static int pfil_list_add(pfil_list_t *, struct packet_filter_hook *, int); + static int pfil_list_remove(pfil_list_t *, - int (*)(void *, int, struct ifnet *, int, struct mbuf **)); + int (*)(void *, struct mbuf **, struct ifnet *, int), void *); + +LIST_HEAD(, pfil_head) pfil_head_list = + LIST_HEAD_INITIALIZER(&pfil_head_list); + +static __inline void +PFIL_RLOCK(struct pfil_head *ph) +{ + mtx_lock(&ph->ph_mtx); + ph->ph_busy_count++; + mtx_unlock(&ph->ph_mtx); +} + +static __inline void +PFIL_RUNLOCK(struct pfil_head *ph) +{ + mtx_lock(&ph->ph_mtx); + ph->ph_busy_count--; + if (ph->ph_busy_count == 0 && ph->ph_want_write) + cv_signal(&ph->ph_cv); + mtx_unlock(&ph->ph_mtx); +} + +static __inline void +PFIL_WLOCK(struct pfil_head *ph) +{ + mtx_lock(&ph->ph_mtx); + ph->ph_want_write = 1; + while (ph->ph_busy_count > 0) + cv_wait(&ph->ph_cv, &ph->ph_mtx); +} + +static __inline int +PFIL_TRY_WLOCK(struct pfil_head *ph) +{ + mtx_lock(&ph->ph_mtx); + ph->ph_want_write = 1; + if (ph->ph_busy_count > 0) { + ph->ph_want_write = 0; + mtx_unlock(&ph->ph_mtx); + return EBUSY; + } + return 0; +} + +static __inline void +PFIL_WUNLOCK(struct pfil_head *ph) +{ + ph->ph_want_write = 0; \ + mtx_unlock(&ph->ph_mtx); + cv_signal(&ph->ph_cv); +} + +#define PFIL_LIST_LOCK() mtx_lock(&pfil_global_lock) +#define PFIL_LIST_UNLOCK() mtx_unlock(&pfil_global_lock) + +/* + * pfil_run_hooks() runs the specified packet filter hooks. + */ +int +pfil_run_hooks(struct pfil_head *ph, struct mbuf **mp, struct ifnet *ifp, + int dir) +{ + struct packet_filter_hook *pfh; + struct mbuf *m = *mp; + int rv = 0, lockgiant; + + if (ph->ph_busy_count == -1 || ph->ph_want_write) + return (0); + + lockgiant = dir & PFIL_GIANT; + if (lockgiant) { + mtx_lock(&Giant); + dir &= ~PFIL_GIANT; + } + + PFIL_RLOCK(ph); + for (pfh = pfil_hook_get(dir, ph); pfh != NULL; + pfh = TAILQ_NEXT(pfh, pfil_link)) { + if (pfh->pfil_func != NULL) { + rv = (*pfh->pfil_func)(pfh->pfil_arg, &m, ifp, dir); + if (rv != 0 || m == NULL) + break; + } + } + PFIL_RUNLOCK(ph); + + if (lockgiant) + mtx_unlock(&Giant); + + *mp = m; + return (rv); +} -static void -pfil_init(ph) - struct pfil_head *ph; +/* + * pfil_head_register() registers a pfil_head with the packet filter + * hook mechanism. + */ +int +pfil_head_register(struct pfil_head *ph) { + struct pfil_head *lph; + PFIL_LIST_LOCK(); + LIST_FOREACH(lph, &pfil_head_list, ph_list) + if (ph->ph_type == lph->ph_type && + ph->ph_un.phu_val == lph->ph_un.phu_val) { + PFIL_LIST_UNLOCK(); + return EEXIST; + } + PFIL_LIST_UNLOCK(); + + if (mtx_initialized(&ph->ph_mtx)) { /* should not happen */ + KASSERT((0), ("%s: allready initialized!", __func__)); + return EBUSY; + } else { + ph->ph_busy_count = -1; + ph->ph_want_write = 1; + mtx_init(&ph->ph_mtx, "pfil_head_mtx", NULL, MTX_DEF); + cv_init(&ph->ph_cv, "pfil_head_cv"); + mtx_lock(&ph->ph_mtx); /* XXX: race? */ + } + TAILQ_INIT(&ph->ph_in); TAILQ_INIT(&ph->ph_out); - ph->ph_init = 1; + + PFIL_LIST_LOCK(); + LIST_INSERT_HEAD(&pfil_head_list, ph, ph_list); + PFIL_LIST_UNLOCK(); + + PFIL_WUNLOCK(ph); + + return (0); +} + +/* + * pfil_head_unregister() removes a pfil_head from the packet filter + * hook mechanism. + */ +int +pfil_head_unregister(struct pfil_head *ph) +{ + struct packet_filter_hook *pfh, *pfnext; + + PFIL_LIST_LOCK(); + /* + * LIST_REMOVE is safe for unlocked pfil_heads in ph_list. + * No need to WLOCK all of them. + */ + LIST_REMOVE(ph, ph_list); + PFIL_LIST_UNLOCK(); + + PFIL_WLOCK(ph); /* XXX: may sleep (cv_wait)! */ + + TAILQ_FOREACH_SAFE(pfh, &ph->ph_in, pfil_link, pfnext) + free(pfh, M_IFADDR); + TAILQ_FOREACH_SAFE(pfh, &ph->ph_out, pfil_link, pfnext) + free(pfh, M_IFADDR); + cv_destroy(&ph->ph_cv); + mtx_destroy(&ph->ph_mtx); + + return (0); +} + +/* + * pfil_head_get() returns the pfil_head for a given key/dlt. + */ +struct pfil_head * +pfil_head_get(int type, u_long val) +{ + struct pfil_head *ph; + + PFIL_LIST_LOCK(); + LIST_FOREACH(ph, &pfil_head_list, ph_list) + if (ph->ph_type == type && ph->ph_un.phu_val == val) + break; + PFIL_LIST_UNLOCK(); + + return (ph); } /* @@ -64,53 +242,71 @@ * PFIL_WAITOK OK to call malloc with M_WAITOK. */ int -pfil_add_hook(func, flags, ph) - int (*func)(void *, int, struct ifnet *, int, struct mbuf **); - int flags; - struct pfil_head *ph; +pfil_add_hook(int (*func)(void *, struct mbuf **, struct ifnet *, int), + void *arg, int flags, struct pfil_head *ph) { - int err = 0; + struct packet_filter_hook *pfh1 = NULL; + struct packet_filter_hook *pfh2 = NULL; + int err; + + /* Get memory */ + if (flags & PFIL_IN) { + pfh1 = (struct packet_filter_hook *)malloc(sizeof(*pfh1), + M_IFADDR, (flags & PFIL_WAITOK) ? M_WAITOK : M_NOWAIT); + if (pfh1 == NULL) { + err = ENOMEM; + goto error; + } + } + if (flags & PFIL_OUT) { + pfh2 = (struct packet_filter_hook *)malloc(sizeof(*pfh1), + M_IFADDR, (flags & PFIL_WAITOK) ? M_WAITOK : M_NOWAIT); + if (pfh2 == NULL) { + err = ENOMEM; + goto error; + } + } - if (ph->ph_init == 0) - pfil_init(ph); + /* Lock */ + if (flags & PFIL_WAITOK) + PFIL_WLOCK(ph); + else { + err = PFIL_TRY_WLOCK(ph); + if (err) + goto error; + } - if (flags & PFIL_IN) - err = pfil_list_add(&ph->ph_in, func, flags & ~PFIL_OUT); - if (err) - return err; - if (flags & PFIL_OUT) - err = pfil_list_add(&ph->ph_out, func, flags & ~PFIL_IN); - if (err) { - if (flags & PFIL_IN) - pfil_list_remove(&ph->ph_in, func); - return err; + /* Add */ + if (flags & PFIL_IN) { + pfh1->pfil_func = func; + pfh1->pfil_arg = arg; + err = pfil_list_add(&ph->ph_in, pfh1, flags & ~PFIL_OUT); + if (err) + goto done; + } + if (flags & PFIL_OUT) { + pfh2->pfil_func = func; + pfh2->pfil_arg = arg; + err = pfil_list_add(&ph->ph_out, pfh2, flags & ~PFIL_IN); + if (err) { + if (flags & PFIL_IN) + pfil_list_remove(&ph->ph_in, func, arg); + goto done; + } } - return 0; -} -static int -pfil_list_add(list, func, flags) - pfil_list_t *list; - int (*func)(void *, int, struct ifnet *, int, struct mbuf **); - int flags; -{ - struct packet_filter_hook *pfh; + ph->ph_busy_count = 0; + PFIL_WUNLOCK(ph); - pfh = (struct packet_filter_hook *)malloc(sizeof(*pfh), M_IFADDR, - flags & PFIL_WAITOK ? M_WAITOK : M_NOWAIT); - if (pfh == NULL) - return ENOMEM; - pfh->pfil_func = func; - /* - * insert the input list in reverse order of the output list - * so that the same path is followed in or out of the kernel. - */ - - if (flags & PFIL_IN) - TAILQ_INSERT_HEAD(list, pfh, pfil_link); - else - TAILQ_INSERT_TAIL(list, pfh, pfil_link); return 0; +done: + PFIL_WUNLOCK(ph); +error: + if (pfh1 != NULL) + free(pfh1, M_IFADDR); + if (pfh2 != NULL) + free(pfh2, M_IFADDR); + return err; } /* @@ -118,54 +314,71 @@ * hook list. */ int -pfil_remove_hook(func, flags, ph) - int (*func)(void *, int, struct ifnet *, int, struct mbuf **); - int flags; - struct pfil_head *ph; +pfil_remove_hook(int (*func)(void *, struct mbuf **, struct ifnet *, int), + void *arg, int flags, struct pfil_head *ph) { int err = 0; - if (ph->ph_init == 0) - pfil_init(ph); + if (flags & PFIL_WAITOK) + PFIL_WLOCK(ph); + else { + err = PFIL_TRY_WLOCK(ph); + if (err) + return err; + } if (flags & PFIL_IN) - err = pfil_list_remove(&ph->ph_in, func); + err = pfil_list_remove(&ph->ph_in, func, arg); if ((err == 0) && (flags & PFIL_OUT)) - err = pfil_list_remove(&ph->ph_out, func); + err = pfil_list_remove(&ph->ph_out, func, arg); + + if (TAILQ_EMPTY(&ph->ph_in) && TAILQ_EMPTY(&ph->ph_out)) + ph->ph_busy_count = -1; + + PFIL_WUNLOCK(ph); + return err; } +static int +pfil_list_add(pfil_list_t *list, struct packet_filter_hook *pfh1, int flags) +{ + struct packet_filter_hook *pfh; + + /* + * First make sure the hook is not already there. + */ + TAILQ_FOREACH(pfh, list, pfil_link) + if (pfh->pfil_func == pfh1->pfil_func && + pfh->pfil_arg == pfh1->pfil_arg) + return EEXIST; + /* + * insert the input list in reverse order of the output list + * so that the same path is followed in or out of the kernel. + */ + if (flags & PFIL_IN) + TAILQ_INSERT_HEAD(list, pfh1, pfil_link); + else + TAILQ_INSERT_TAIL(list, pfh1, pfil_link); + + return 0; +} + /* * pfil_list_remove is an internal function that takes a function off the * specified list. */ static int -pfil_list_remove(list, func) - pfil_list_t *list; - int (*func)(void *, int, struct ifnet *, int, struct mbuf **); +pfil_list_remove(pfil_list_t *list, + int (*func)(void *, struct mbuf **, struct ifnet *, int), void *arg) { struct packet_filter_hook *pfh; TAILQ_FOREACH(pfh, list, pfil_link) - if (pfh->pfil_func == func) { + if (pfh->pfil_func == func && pfh->pfil_arg == arg) { TAILQ_REMOVE(list, pfh, pfil_link); free(pfh, M_IFADDR); return 0; } return ENOENT; } - -struct packet_filter_hook * -pfil_hook_get(flag, ph) - int flag; - struct pfil_head *ph; -{ - if (ph->ph_init != 0) - switch (flag) { - case PFIL_IN: - return (TAILQ_FIRST(&ph->ph_in)); - case PFIL_OUT: - return (TAILQ_FIRST(&ph->ph_out)); - } - return NULL; -} ==== //depot/projects/netperf/sys/net/pfil.h#2 (text+ko) ==== @@ -1,4 +1,5 @@ -/* $FreeBSD: src/sys/net/pfil.h,v 1.9 2002/03/24 09:34:04 bde Exp $ */ +/* $FreeBSD$ */ +/* $NetBSD: pfil.h,v 1.22 2003/06/23 12:57:08 martin Exp $ */ /* * Copyright (c) 1996 Matthew R. Green @@ -31,6 +32,10 @@ #ifndef _NET_PFIL_H_ #define _NET_PFIL_H_ +#include +#include +#include +#include /* XXX */ #include struct mbuf; @@ -42,39 +47,68 @@ */ struct packet_filter_hook { TAILQ_ENTRY(packet_filter_hook) pfil_link; - int (*pfil_func)(void *, int, struct ifnet *, int, struct mbuf **); + int (*pfil_func)(void *, struct mbuf **, struct ifnet *, int); + void *pfil_arg; int pfil_flags; }; #define PFIL_IN 0x00000001 #define PFIL_OUT 0x00000002 #define PFIL_WAITOK 0x00000004 +/* XXX temporary until Giant gets removed */ +#define PFIL_GIANT 0x00000008 /* lock Giant around calls */ #define PFIL_ALL (PFIL_IN|PFIL_OUT) typedef TAILQ_HEAD(pfil_list, packet_filter_hook) pfil_list_t; +#define PFIL_TYPE_AF 1 /* key is AF_* type */ +#define PFIL_TYPE_IFNET 2 /* key is ifnet pointer */ + struct pfil_head { pfil_list_t ph_in; pfil_list_t ph_out; - int ph_init; + int ph_type; + /* + * Locking: use a busycounter per pfil_head. + * Use ph_busy_count = -1 to indicate pfil_head is empty. + */ + int ph_busy_count; /* count of threads with read lock */ + int ph_want_write; /* want write lock flag */ + struct cv ph_cv; /* for waking up writers */ + struct mtx ph_mtx; /* mutex on locking state */ + union { + u_long phu_val; + void *phu_ptr; + } ph_un; +#define ph_af ph_un.phu_val +#define ph_ifnet ph_un.phu_ptr + LIST_ENTRY(pfil_head) ph_list; }; -struct packet_filter_hook *pfil_hook_get(int, struct pfil_head *); -int pfil_add_hook(int (*func)(void *, int, - struct ifnet *, int, struct mbuf **), int, struct pfil_head *); -int pfil_remove_hook(int (*func)(void *, int, - struct ifnet *, int, struct mbuf **), int, struct pfil_head *); +int pfil_run_hooks(struct pfil_head *, struct mbuf **, struct ifnet *, + int); + +int pfil_add_hook(int (*func)(void *, struct mbuf **, + struct ifnet *, int), void *, int, struct pfil_head *); +int pfil_remove_hook(int (*func)(void *, struct mbuf **, + struct ifnet *, int), void *, int, struct pfil_head *); + +int pfil_head_register(struct pfil_head *); +int pfil_head_unregister(struct pfil_head *); -/* XXX */ -#if defined(_KERNEL) && !defined(KLD_MODULE) -#include "opt_ipfilter.h" -#endif +struct pfil_head *pfil_head_get(int, u_long); -#if IPFILTER > 0 -#ifdef PFIL_HOOKS -#undef PFIL_HOOKS -#endif -#define PFIL_HOOKS -#endif /* IPFILTER */ +static __inline struct packet_filter_hook * +pfil_hook_get(int dir, struct pfil_head *ph) +{ + KASSERT(ph->ph_busy_count > 0, + ("pfil_hook_get: called on unbusy pfil_head")); + if (dir == PFIL_IN) + return (TAILQ_FIRST(&ph->ph_in)); + else if (dir == PFIL_OUT) + return (TAILQ_FIRST(&ph->ph_out)); + else + return (NULL); +} #endif /* _NET_PFIL_H_ */ ==== //depot/projects/netperf/sys/netinet/ip_input.c#5 (text+ko) ==== @@ -154,6 +154,9 @@ #ifdef DIAGNOSTIC static int ipprintfs = 0; #endif +#ifdef PFIL_HOOKS +struct pfil_head inet_pfil_hook; +#endif static struct ifqueue ipintrq; static int ipqmaxlen = IFQ_MAXLEN; @@ -263,6 +266,14 @@ pr->pr_protocol && pr->pr_protocol != IPPROTO_RAW) ip_protox[pr->pr_protocol] = pr - inetsw; +#ifdef PFIL_HOOKS + inet_pfil_hook.ph_type = PFIL_TYPE_AF; + inet_pfil_hook.ph_af = AF_INET; + if ((i = pfil_head_register(&inet_pfil_hook)) != 0) + printf("%s: WARNING: unable to register pfil hook, " + "error %d\n", __func__, i); +#endif /* PFIL_HOOKS */ + IPQ_LOCK_INIT(); for (i = 0; i < IPREASS_NHASH; i++) TAILQ_INIT(&ipq[i]); @@ -301,11 +312,6 @@ struct in_addr pkt_dst; u_int32_t divert_info = 0; /* packet divert/tee info */ struct ip_fw_args args; -#ifdef PFIL_HOOKS - struct packet_filter_hook *pfh; - struct mbuf *m0; - int rv; -#endif /* PFIL_HOOKS */ #ifdef FAST_IPSEC struct m_tag *mtag; struct tdb_ident *tdbi; @@ -463,28 +469,14 @@ #ifdef PFIL_HOOKS /* - * Run through list of hooks for input packets. If there are any - * filters which require that additional packets in the flow are - * not fast-forwarded, they must clear the M_CANFASTFWD flag. - * Note that filters must _never_ set this flag, as another filter - * in the list may have previously cleared it. + * Run through list of hooks for input packets. */ - m0 = m; - /* XXX locking */ - pfh = pfil_hook_get(PFIL_IN, &inetsw[ip_protox[IPPROTO_IP]].pr_pfh); - for (; pfh; pfh = TAILQ_NEXT(pfh, pfil_link)) - if (pfh->pfil_func) { - mtx_lock(&Giant); /* XXX */ - rv = pfh->pfil_func(ip, hlen, - m->m_pkthdr.rcvif, 0, &m0); - mtx_unlock(&Giant); /* XXX */ - if (rv) - return; - m = m0; - if (m == NULL) - return; - ip = mtod(m, struct ip *); - } + if (pfil_run_hooks(&inet_pfil_hook, &m, m->m_pkthdr.rcvif, + PFIL_IN | PFIL_GIANT) != 0) + return; + if (m == NULL) /* consumed by filter */ + return; + ip = mtod(m, struct ip *); #endif /* PFIL_HOOKS */ if (fw_enable && IPFW_LOADED) { ==== //depot/projects/netperf/sys/netinet/ip_output.c#5 (text+ko) ==== @@ -149,11 +149,6 @@ #endif /* FAST_IPSEC */ struct ip_fw_args args; int src_was_INADDR_ANY = 0; /* as the name says... */ -#ifdef PFIL_HOOKS - struct packet_filter_hook *pfh; - struct mbuf *m1; - int rv; -#endif /* PFIL_HOOKS */ args.eh = NULL; args.rule = NULL; @@ -741,20 +736,10 @@ /* * Run through list of hooks for output packets. */ - m1 = m; - pfh = pfil_hook_get(PFIL_OUT, &inetsw[ip_protox[IPPROTO_IP]].pr_pfh); - for (; pfh; pfh = TAILQ_NEXT(pfh, pfil_link)) - if (pfh->pfil_func) { - rv = pfh->pfil_func(ip, hlen, ifp, 1, &m1); - if (rv) { - error = EHOSTUNREACH; - goto done; - } - m = m1; - if (m == NULL) - goto done; - ip = mtod(m, struct ip *); - } + error = pfil_run_hooks(&inet_pfil_hook, &m, ifp, PFIL_OUT); + if (error != 0 || m == NULL) + goto done; + ip = mtod(m, struct ip *); #endif /* PFIL_HOOKS */ /* ==== //depot/projects/netperf/sys/netinet/ip_var.h#4 (text+ko) ==== @@ -207,6 +207,10 @@ extern struct pr_usrreqs div_usrreqs; #endif +#ifdef PFIL_HOOKS +extern struct pfil_head inet_pfil_hook; +#endif + void in_delayed_cksum(struct mbuf *m); #endif /* _KERNEL */ ==== //depot/projects/netperf/sys/netinet6/ip6_forward.c#2 (text+ko) ==== @@ -34,6 +34,7 @@ #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipsec.h" +#include "opt_pfil_hooks.h" #include #include @@ -113,11 +114,6 @@ int error, type = 0, code = 0; struct mbuf *mcopy = NULL; struct ifnet *origifp; /* maybe unnecessary */ -#ifdef PFIL_HOOKS - struct packet_filter_hook *pfh; - struct mbuf *m1; - int rv; -#endif /* PFIL_HOOKS */ #ifdef IPSEC struct secpolicy *sp = NULL; #endif @@ -526,21 +522,13 @@ /* * Run through list of hooks for output packets. */ - m1 = m; - pfh = pfil_hook_get(PFIL_OUT, &inet6sw[ip6_protox[IPPROTO_IPV6]].pr_pfh); - for (; pfh; pfh = pfh->pfil_link.tqe_next) - if (pfh->pfil_func) { - rv = pfh->pfil_func(ip6, sizeof(*ip6), - rt->rt_ifp, 1, &m1); - if (rv) { - error = EHOSTUNREACH; - goto freecopy; - } - m = m1; - if (m == NULL) - goto freecopy; - ip6 = mtod(m, struct ip6_hdr *); - } + if (pfil_run_hooks(&inet6_pfil_hook, &m, rt->rt_ifp, PFIL_OUT) != 0) { + error = EHOSTUNREACH; + goto freecopy; + } + if (m == NULL) + goto freecopy; + ip6 = mtod(m, struct ip6_hdr *); #endif /* PFIL_HOOKS */ error = nd6_output(rt->rt_ifp, origifp, m, dst, rt); ==== //depot/projects/netperf/sys/netinet6/ip6_input.c#3 (text+ko) ==== @@ -143,6 +143,9 @@ int ip6_ours_check_algorithm; +#ifdef PFIL_HOOKS +struct pfil_head inet6_pfil_hook; +#endif >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Sep 18 20:10:13 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1E7D16A4C1; Thu, 18 Sep 2003 20:10:12 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BB04D16A4B3 for ; Thu, 18 Sep 2003 20:10:12 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3CB0B43FDD for ; Thu, 18 Sep 2003 20:10:12 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8J3ACXJ033312 for ; Thu, 18 Sep 2003 20:10:12 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8J3ABZU033309 for perforce@freebsd.org; Thu, 18 Sep 2003 20:10:11 -0700 (PDT) (envelope-from sam@freebsd.org) Date: Thu, 18 Sep 2003 20:10:11 -0700 (PDT) Message-Id: <200309190310.h8J3ABZU033309@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38257 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 03:10:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=38257 Change 38257 by sam@sam_ebb on 2003/09/18 20:10:04 bridge now requires opt_pfil_hooks.h; generate it for the module Affected files ... .. //depot/projects/netperf/sys/modules/bridge/Makefile#2 edit Differences ... ==== //depot/projects/netperf/sys/modules/bridge/Makefile#2 (text+ko) ==== @@ -3,5 +3,15 @@ .PATH: ${.CURDIR}/../../net KMOD= bridge SRCS= bridge.c +SRCS+= opt_pfil_hooks.h + +# +# By default don't enable pfil hooks support. This means you +# cannot use ipfilter together with the bridge. To enable it +# uncomment the line below +# +opt_pfil_hooks.h: +# echo "#define PFIL_HOOKS 1" > opt_pfil_hooks.h + touch opt_pfil_hooks.h .include From owner-p4-projects@FreeBSD.ORG Fri Sep 19 01:11:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EC2D16A4C0; Fri, 19 Sep 2003 01:11:24 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1237D16A4B3 for ; Fri, 19 Sep 2003 01:11:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 959ED43FAF for ; Fri, 19 Sep 2003 01:11:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8J8BMXJ070964 for ; Fri, 19 Sep 2003 01:11:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8J8BLoj070961 for perforce@freebsd.org; Fri, 19 Sep 2003 01:11:21 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 01:11:21 -0700 (PDT) Message-Id: <200309190811.h8J8BLoj070961@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38266 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 08:11:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=38266 Change 38266 by marcel@marcel_nfs on 2003/09/19 01:11:19 IFC @38265 Affected files ... .. //depot/projects/ia64/etc/Makefile#34 integrate .. //depot/projects/ia64/etc/defaults/rc.conf#42 integrate .. //depot/projects/ia64/etc/services#11 integrate .. //depot/projects/ia64/gnu/usr.bin/man/manpath/manpath.config#6 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sigmask.c#9 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#125 integrate .. //depot/projects/ia64/share/examples/cvsup/cvs-supfile#6 integrate .. //depot/projects/ia64/share/examples/cvsup/doc-supfile#3 integrate .. //depot/projects/ia64/share/examples/cvsup/gnats-supfile#4 integrate .. //depot/projects/ia64/share/examples/cvsup/ports-supfile#5 integrate .. //depot/projects/ia64/share/examples/cvsup/stable-supfile#3 integrate .. //depot/projects/ia64/share/examples/cvsup/standard-supfile#3 integrate .. //depot/projects/ia64/share/examples/cvsup/www-supfile#3 integrate .. //depot/projects/ia64/share/man/man4/ath.4#9 integrate .. //depot/projects/ia64/share/man/man5/rc.conf.5#46 integrate .. //depot/projects/ia64/sys/crypto/rijndael/rijndael-api-fst.c#6 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi.c#41 integrate .. //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#9 integrate .. //depot/projects/ia64/sys/dev/ata/ata-queue.c#4 integrate .. //depot/projects/ia64/sys/dev/re/if_re.c#5 integrate .. //depot/projects/ia64/sys/dev/sio/sio.c#53 integrate .. //depot/projects/ia64/sys/dev/usb/if_aue.c#23 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs#45 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs.h#43 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#43 integrate .. //depot/projects/ia64/sys/i386/conf/NOTES#46 integrate .. //depot/projects/ia64/sys/i386/i386/trap.c#36 integrate .. //depot/projects/ia64/sys/i386/include/pci_cfgreg.h#4 integrate .. //depot/projects/ia64/sys/ia64/ia64/genassym.c#16 integrate .. //depot/projects/ia64/sys/ia64/include/cpu.h#23 integrate .. //depot/projects/ia64/sys/kern/kern_malloc.c#26 integrate .. //depot/projects/ia64/sys/pc98/pc98/fd.c#23 integrate .. //depot/projects/ia64/sys/pci/if_rlreg.h#19 integrate .. //depot/projects/ia64/sys/vm/uma_core.c#51 integrate .. //depot/projects/ia64/sys/vm/uma_int.h#16 integrate .. //depot/projects/ia64/sys/vm/vm_fault.c#36 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.c#47 integrate .. //depot/projects/ia64/sys/vm/vnode_pager.c#39 integrate .. //depot/projects/ia64/usr.bin/make/var.c#13 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/menus.c#33 integrate .. //depot/projects/ia64/usr.sbin/vidcontrol/vidcontrol.c#6 integrate .. //depot/projects/ia64/usr.sbin/wicontrol/wicontrol.8#14 integrate Differences ... ==== //depot/projects/ia64/etc/Makefile#34 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile 5.11 (Berkeley) 5/21/91 -# $FreeBSD: src/etc/Makefile,v 1.317 2003/08/24 03:24:54 mtm Exp $ +# $FreeBSD: src/etc/Makefile,v 1.318 2003/09/18 16:35:43 markm Exp $ .if !defined(NO_SENDMAIL) SUBDIR= sendmail @@ -20,7 +20,7 @@ ${.CURDIR}/../usr.bin/mail/misc/mail.rc \ ${.CURDIR}/../usr.bin/locate/locate/locate.rc -.if exists(${.CURDIR}/../crypto) && !defined(NO_OPENSSL) +.if !defined(NO_OPENSSL) .if !defined(NO_OPENSSH) SSH= ${.CURDIR}/../crypto/openssh/ssh_config \ ${.CURDIR}/../crypto/openssh/sshd_config \ @@ -82,7 +82,7 @@ .if !defined(NO_SENDMAIL) cd ${.CURDIR}/sendmail; ${MAKE} distribution .endif -.if exists(${.CURDIR}/../crypto) && !defined(NO_OPENSSL) +.if !defined(NO_OPENSSL) .if !defined(NO_OPENSSH) cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ ${SSH} ${DESTDIR}/etc/ssh ==== //depot/projects/ia64/etc/defaults/rc.conf#42 (text+ko) ==== @@ -13,7 +13,7 @@ # # All arguments must be in double or single quotes. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.188 2003/09/15 16:44:24 nectar Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.189 2003/09/18 09:59:37 dougb Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -41,6 +41,11 @@ local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs. script_name_sep=" " # Change if your startup scripts' names contain spaces rc_conf_files="/etc/rc.conf /etc/rc.conf.local" + +# Experimental - test before enabling +gbde_autoattach_all="NO" # YES automatically mounts gbde devices from fstab +gbde_devices="NO" # Devices to automatically attach (list, or AUTO) + fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails. background_fsck="YES" # Attempt to run fsck in the background where possible. background_fsck_delay="60" # Time to wait (seconds) before starting the fsck. ==== //depot/projects/ia64/etc/services#11 (text+ko) ==== @@ -16,7 +16,7 @@ # Kerberos services are for Kerberos v4, and are unofficial. Sites running # v5 should uncomment v5 entries and comment v4 entries. # -# $FreeBSD: src/etc/services,v 1.95 2003/09/16 23:17:43 obrien Exp $ +# $FreeBSD: src/etc/services,v 1.96 2003/09/18 09:21:09 dougb Exp $ # From: @(#)services 5.8 (Berkeley) 5/9/91 # # WELL KNOWN PORT NUMBERS @@ -1093,7 +1093,7 @@ ginad 634/udp ldaps 636/tcp sldap #ldap protocol over TLS/SSL ldaps 636/udp sldap -aodv 654/tdp #Ad-Hoc On-Demand Distance Vector Routing Protocol +aodv 654/tcp #Ad-Hoc On-Demand Distance Vector Routing Protocol aodv 654/udp #Ad-Hoc On-Demand Distance Vector Routing Protocol mdqs 666/tcp mdqs 666/udp ==== //depot/projects/ia64/gnu/usr.bin/man/manpath/manpath.config#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/man/manpath/manpath.config,v 1.22 2003/09/10 00:07:28 ru Exp $ +# $FreeBSD: src/gnu/usr.bin/man/manpath/manpath.config,v 1.23 2003/09/18 10:44:42 des Exp $ # # This file is read by manpath(1) to configure the mandatory manpath, # optional manpath and to map each path element to a manpath element. @@ -18,6 +18,7 @@ # OPTIONAL_MANPATH /usr/local/man OPTIONAL_MANPATH /usr/local/lib/perl5/5.6.1/man +OPTIONAL_MANPATH /usr/local/lib/perl5/5.8.0/man OPTIONAL_MANPATH /usr/X11R6/man # # set up PATH to MANPATH mapping ==== //depot/projects/ia64/lib/libpthread/thread/thr_sigmask.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_sigmask.c,v 1.18 2003/09/15 00:06:46 davidxu Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_sigmask.c,v 1.19 2003/09/18 12:19:28 davidxu Exp $ */ #include #include @@ -93,8 +93,7 @@ /* Trap invalid actions: */ default: /* Return an invalid argument: */ - errno = EINVAL; - ret = -1; + ret = EINVAL; break; } SIG_CANTMASK(curthread->sigmask); ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#125 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.623 2003/09/16 23:25:48 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.624 2003/09/18 09:27:31 nyan Exp $ 2000 @@ -152,7 +152,7 @@ is no longer needed when only a USB keyboard is connected. &merged; - The DRM kernel modules have been updated from + The DRM kernel modules have been updated from DRI CVS as of 9 September 2003. Among other changes, this import includes a newly-ported SiS 300/305/540/630/730 driver. ==== //depot/projects/ia64/share/examples/cvsup/cvs-supfile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/cvs-supfile,v 1.37 2003/09/12 09:09:49 ceri Exp $ +# $FreeBSD: src/share/examples/cvsup/cvs-supfile,v 1.38 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # CVS development tree of the FreeBSD system. @@ -55,7 +55,9 @@ *default release=cvs *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress ## Main Source Tree. ==== //depot/projects/ia64/share/examples/cvsup/doc-supfile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/doc-supfile,v 1.7 2002/07/30 14:08:16 blackend Exp $ +# $FreeBSD: src/share/examples/cvsup/doc-supfile,v 1.8 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # source of the FreeBSD doc tree @@ -59,7 +59,9 @@ *default release=cvs tag=. *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress # This will retrieve the entire doc branch of the FreeBSD repository. ==== //depot/projects/ia64/share/examples/cvsup/gnats-supfile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/gnats-supfile,v 1.5 2003/09/12 19:02:34 ceri Exp $ +# $FreeBSD: src/share/examples/cvsup/gnats-supfile,v 1.6 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # FreeBSD GNATS bug report database. @@ -54,7 +54,9 @@ *default release=current *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress ## GNATS database ==== //depot/projects/ia64/share/examples/cvsup/ports-supfile#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/ports-supfile,v 1.27 2003/09/12 09:09:49 ceri Exp $ +# $FreeBSD: src/share/examples/cvsup/ports-supfile,v 1.28 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # FreeBSD-current ports collection. @@ -54,7 +54,9 @@ *default release=cvs tag=. *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress ## Ports Collection. ==== //depot/projects/ia64/share/examples/cvsup/stable-supfile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/stable-supfile,v 1.26 2002/07/30 14:08:16 blackend Exp $ +# $FreeBSD: src/share/examples/cvsup/stable-supfile,v 1.27 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # FreeBSD-stable source tree. @@ -73,7 +73,9 @@ *default release=cvs tag=RELENG_4 *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress ## Main Source Tree. ==== //depot/projects/ia64/share/examples/cvsup/standard-supfile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/standard-supfile,v 1.21 2002/07/30 14:08:16 blackend Exp $ +# $FreeBSD: src/share/examples/cvsup/standard-supfile,v 1.22 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # FreeBSD-current source tree. @@ -54,7 +54,9 @@ *default release=cvs tag=. *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress ## Main Source Tree. ==== //depot/projects/ia64/share/examples/cvsup/www-supfile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/cvsup/www-supfile,v 1.4 2002/07/30 14:08:16 blackend Exp $ +# $FreeBSD: src/share/examples/cvsup/www-supfile,v 1.5 2003/09/18 08:19:39 eivind Exp $ # # This file contains all of the "CVSup collections" that make up the # source of the FreeBSD www tree @@ -54,7 +54,9 @@ *default release=cvs tag=. *default delete use-rel-suffix -# If your network link is a T1 or faster, comment out the following line. +# If you seem to be limited by CPU rather than network or disk bandwidth, try +# commenting out the following line. (Normally, today's CPUs are fast enough +# that you want to run compression.) *default compress # This collection retrieves the www/ tree of the FreeBSD repository ==== //depot/projects/ia64/share/man/man4/ath.4#9 (text+ko) ==== @@ -29,9 +29,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGES. .\" -.\" $FreeBSD: src/share/man/man4/ath.4,v 1.9 2003/09/16 22:43:36 shiba Exp $ +.\" $FreeBSD: src/share/man/man4/ath.4,v 1.10 2003/09/19 01:41:18 sam Exp $ .\"/ -.Dd August 1, 2003 +.Dd September 18, 2003 .Dt ATH 4 .Os .Sh NAME @@ -114,6 +114,7 @@ D-Link DWL-AB650 AR5211 CardBus D-Link DWL-AG520 AR5212 PCI D-Link DWL-AG650 AR5212 CardBus +D-Link DWL-G650 AR5212 CardBus I/O Data WN-AG/CB AR5212 CardBus Linksys WMP55AG AR5212 PCI Linksys WPC51AB AR5211 CardBus @@ -121,6 +122,9 @@ NEC PA-WL/54AG AR5212 CardBus Netgear WAB501 AR5211 CardBus Netgear WAG511 AR5212 CardBus +Netgear WG311 AR5212 CardBus +Nortel 2201 AR5212 CardBus +Orinoco 8480 AR5212 CardBus Proxim Skyline 4030 AR5210 CardBus .El .Sh EXAMPLES @@ -279,17 +283,6 @@ Different regulatory domains may not be able to communicate with each other with 802.11a as different regualtory domains do not necessarily have overlapping channels. -.Pp -802.11g support is little tested and may have interoperability problems. -The software is known to function with an Atheros 11g access point but -interoperability may be problematic until vendors update firmware in -existing 11g products. -If you encounter problems using an 11g access point you should be able -to workaround incompatibilities by locking the driver to 11b mode. -Alternatively, most 11g compatibility issues are in the 802.11 layer -and you may be able to work around issues by modifying the -.Xr wlan 4 -module. .Sh BUGS .Pp Performance in lossy environments is suboptimal. ==== //depot/projects/ia64/share/man/man5/rc.conf.5#46 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.200 2003/09/05 11:43:18 maxim Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.201 2003/09/18 09:59:37 dougb Exp $ .\" .Dd March 3, 2002 .Dt RC.CONF 5 @@ -917,6 +917,18 @@ .Pa /etc/rc.conf and .Pa /etc/rc.conf.local +.It Va gbde_autoattach_all +.Pq Vt bool +If set to +.Dq Li YES , +.Pa /etc/rc.d/gbde +will attempt to automatically initialize your .bde devices in +.Pa /etc/fstab . +.It Va gbde_devices +.Pq Vt str +List the devices that the script should try to attach, +or +.Dq Li AUTO . .It Va fsck_y_enable .Pq Vt bool If set to ==== //depot/projects/ia64/sys/crypto/rijndael/rijndael-api-fst.c#6 (text+ko) ==== @@ -16,7 +16,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.6 2003/09/17 08:51:43 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.7 2003/09/18 17:26:56 ume Exp $"); #include #include @@ -246,7 +246,7 @@ outBuffer += 16; } padLen = 16 - (inputOctets - 16*numBlocks); - if (padLen > 0 && padLen <= 16) + if (padLen <= 0 || padLen > 16) return BAD_CIPHER_STATE; for (i = 0; i < 16 - padLen; i++) { block[i] = input[i] ^ iv[i]; ==== //depot/projects/ia64/sys/dev/acpica/acpi.c#41 (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/dev/acpica/acpi.c,v 1.100 2003/09/15 06:29:31 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.102 2003/09/18 05:12:45 njl Exp $ */ #include "opt_acpi.h" @@ -1027,7 +1027,6 @@ acpi_enable_fixed_events(struct acpi_softc *sc) { static int first_time = 1; -#define MSGFORMAT "%s button is handled as a fixed feature programming model.\n" ACPI_ASSERTLOCK; @@ -1039,7 +1038,7 @@ acpi_eventhandler_power_button_for_sleep, sc); if (first_time) - device_printf(sc->acpi_dev, MSGFORMAT, "power"); + device_printf(sc->acpi_dev, "Power Button (fixed)\n"); } if (AcpiGbl_FADT != NULL && AcpiGbl_FADT->SleepButton == 0) { AcpiEnableEvent(ACPI_EVENT_SLEEP_BUTTON, 0); @@ -1048,7 +1047,7 @@ acpi_eventhandler_sleep_button_for_sleep, sc); if (first_time) - device_printf(sc->acpi_dev, MSGFORMAT, "sleep"); + device_printf(sc->acpi_dev, "Sleep Button (fixed)\n"); } first_time = 0; ==== //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.13 2003/09/16 15:21:37 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.15 2003/09/18 16:44:54 sos Exp $"); #include "opt_ata.h" #include @@ -329,6 +329,7 @@ /* if data write command, output the data */ if (request->flags & ATA_R_WRITE) { + /* if we get an error here we are done with the HW */ if (ata_wait(request->device, (ATA_S_READY | ATA_S_DSC | ATA_S_DRQ)) < 0) { @@ -336,11 +337,10 @@ request->status = ATA_IDX_INB(ch, ATA_STATUS); break; } - else { - /* output data and return waiting for new interrupt */ - ata_pio_write(request, request->transfersize); - return; - } + + /* output data and return waiting for new interrupt */ + ata_pio_write(request, request->transfersize); + return; } /* if data read command, return & wait for interrupt */ @@ -551,11 +551,8 @@ ch->devices |= ATA_ATA_MASTER; } } - else if (err == lsb && err == msb) { - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); - DELAY(10); - if (stat0 == ATA_IDX_INB(ch, ATA_STATUS)) - stat0 |= ATA_S_BUSY; + else if ((stat0 & 0x4f) && err == lsb && err == msb) { + stat0 |= ATA_S_BUSY; } } } @@ -579,11 +576,8 @@ ch->devices |= ATA_ATA_SLAVE; } } - else if (err == lsb && err == msb) { - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); - DELAY(10); - if (stat1 == ATA_IDX_INB(ch, ATA_STATUS)) - stat1 |= ATA_S_BUSY; + else if ((stat1 & 0x4f) && err == lsb && err == msb) { + stat1 |= ATA_S_BUSY; } } } ==== //depot/projects/ia64/sys/dev/ata/ata-queue.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.4 2003/08/28 08:22:53 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.5 2003/09/18 09:22:14 sos Exp $"); #include "opt_ata.h" #include @@ -47,7 +47,7 @@ /* prototypes */ static void ata_completed(void *, int); static void ata_timeout(struct ata_request *); -static char *ata_sensekey2str(u_int8_t); +static char *ata_skey2str(u_int8_t); /* local vars */ static MALLOC_DEFINE(M_ATA_REQ, "ATA request", "ATA request"); @@ -260,12 +260,12 @@ /* ATAPI errors */ case ATA_R_ATAPI: - /* is result already set return */ + /* skip if result already set */ if (request->result) break; if (request->error & ATA_E_MASK) { - switch ((request->result & ATA_SK_MASK)) { + switch ((request->error & ATA_SK_MASK)) { case ATA_SK_RECOVERED_ERROR: ata_prtdev(request->device, "WARNING - %s recovered error\n", ata_cmd2str(request)); @@ -285,18 +285,18 @@ break; default: + if (!(request->flags & ATA_R_QUIET)) + ata_prtdev(request->device, + "FAILURE - %s status=%b sensekey=%s error=%b\n", + ata_cmd2str(request), + request->status, "\20\10BUSY\7READY\6DMA" + "\5DSC\4DRQ\3CORRECTABLE\2INDEX\1ERROR", + ata_skey2str((request->error & ATA_SK_MASK)>>4), + (request->error & ATA_E_MASK), + "\20\4MEDIA_CHANGE_REQUEST\3ABORTED" + "\2NO_MEDIA\1ILLEGAL_LENGTH"); request->result = EIO; } - if (request->result && !(request->flags & ATA_R_QUIET)) - ata_prtdev(request->device, - "FAILURE - %s status=%b sensekey=%s error=%b\n", - ata_cmd2str(request), - request->status, "\20\10BUSY\7READY\6DMA" - "\5DSC\4DRQ\3CORRECTABLE\2INDEX\1ERROR", - ata_sensekey2str((request->error & ATA_SK_MASK)>>4), - (request->error & ATA_E_MASK), - "\20\4MEDIA_CHANGE_REQUEST\3ABORTED" - "\2NO_MEDIA\1ILLEGAL_LENGTH"); } break; } @@ -449,7 +449,7 @@ } static char * -ata_sensekey2str(u_int8_t skey) +ata_skey2str(u_int8_t skey) { switch (skey) { case 0x00: return ("NO SENSE"); ==== //depot/projects/ia64/sys/dev/re/if_re.c#5 (text+ko) ==== @@ -106,7 +106,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.7 2003/09/13 23:51:35 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.9 2003/09/19 02:35:03 wpaul Exp $"); #include #include @@ -740,11 +740,13 @@ eh->ether_type = htons(ETHERTYPE_IP); m0->m_pkthdr.len = m0->m_len = ETHER_MIN_LEN - ETHER_CRC_LEN; - /* Queue the packet, start transmission */ + /* + * Queue the packet, start transmission. + * Note: IF_HANDOFF() ultimately calls re_start() for us. + */ + CSR_WRITE_2(sc, RL_ISR, 0xFFFF); IF_HANDOFF(&ifp->if_snd, m0, ifp); - CSR_WRITE_2(sc, RL_ISR, 0xFFFF); - re_start(ifp); m0 = NULL; /* Wait for it to propagate through the chip */ @@ -996,7 +998,7 @@ nseg = 32; error = bus_dma_tag_create(sc->rl_parent_tag, ETHER_ALIGN, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, - NULL, MCLBYTES * nseg, nseg, RL_JLEN, BUS_DMA_ALLOCNOW, + NULL, MCLBYTES * nseg, nseg, MCLBYTES, BUS_DMA_ALLOCNOW, NULL, NULL, &sc->rl_ldata.rl_mtag); if (error) { device_printf(dev, "could not allocate dma tag\n"); @@ -1892,7 +1894,7 @@ int error; struct m_tag *mtag; - if (sc->rl_ldata.rl_tx_free < 4) + if (sc->rl_ldata.rl_tx_free <= 4) return(EFBIG); /* @@ -1914,6 +1916,8 @@ arg.sc = sc; arg.rl_idx = *idx; arg.rl_maxsegs = sc->rl_ldata.rl_tx_free; + if (arg.rl_maxsegs > 4) + arg.rl_maxsegs -= 4; arg.rl_ring = sc->rl_ldata.rl_tx_list; map = sc->rl_ldata.rl_tx_dmamap[*idx]; ==== //depot/projects/ia64/sys/dev/sio/sio.c#53 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.408 2003/09/17 17:26:00 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.409 2003/09/18 07:46:40 bde Exp $"); #include "opt_comconsole.h" #include "opt_compat.h" @@ -185,7 +185,6 @@ /* com device structure */ struct com_s { - u_int flags; /* Copy isa device flags */ u_char state; /* miscellaneous flag bits */ bool_t active_out; /* nonzero if the callout device is open */ u_char cfcr_image; /* copy of value written to CFCR */ @@ -207,6 +206,7 @@ bool_t st16650a; /* nonzero if Startech 16650A compatible */ int unit; /* unit number */ int dtr_wait; /* time to hold DTR down on close (* 1/hz) */ + u_int flags; /* copy of device flags */ u_int tx_fifo_size; u_int wopeners; /* # processes waiting for DCD in open() */ @@ -238,11 +238,11 @@ #ifdef COM_ESP Port_t esp_port; #endif + Port_t int_ctl_port; Port_t int_id_port; Port_t modem_ctl_port; Port_t line_status_port; Port_t modem_status_port; - Port_t intr_ctl_port; /* Ports of IIR register */ struct tty *tp; /* cross reference */ @@ -714,30 +714,37 @@ sio_setreg(com, com_cfcr, CFCR_8BITS); /* - * Some pcmcia cards have the "TXRDY bug", so we check everyone - * for IIR_TXRDY implementation ( Palido 321s, DC-1S... ) + * Some PCMCIA cards (Palido 321s, DC-1S, ...) have the "TXRDY bug", + * so we probe for a buggy IIR_TXRDY implementation even in the + * noprobe case. We don't probe for it in the !noprobe case because + * noprobe is always set for PCMCIA cards and the problem is not + * known to affect any other cards. */ if (noprobe) { - /* Reading IIR register twice */ + /* Read IIR a few times. */ for (fn = 0; fn < 2; fn ++) { DELAY(10000); failures[6] = sio_getreg(com, com_iir); } - /* Check IIR_TXRDY clear ? */ + + /* IIR_TXRDY should be clear. Is it? */ result = 0; if (failures[6] & IIR_TXRDY) { - /* No, Double check with clearing IER */ + /* + * No. We seem to have the bug. Does our fix for + * it work? + */ sio_setreg(com, com_ier, 0); if (sio_getreg(com, com_iir) & IIR_NOPEND) { - /* Ok. We discovered TXRDY bug! */ + /* Yes. We discovered the TXRDY bug! */ SET_FLAG(dev, COM_C_IIR_TXRDYBUG); } else { - /* Unknown, Just omit this chip.. XXX */ + /* No. Just fail. XXX */ result = ENXIO; sio_setreg(com, com_mcr, 0); } } else { - /* OK. this is well-known guys */ + /* Yes. No bug. */ CLR_FLAG(dev, COM_C_IIR_TXRDYBUG); } sio_setreg(com, com_ier, 0); @@ -953,12 +960,12 @@ com->obufs[1].l_head = com->obuf2; com->data_port = iobase + com_data; + com->int_ctl_port = iobase + com_ier; com->int_id_port = iobase + com_iir; com->modem_ctl_port = iobase + com_mcr; com->mcr_image = inb(com->modem_ctl_port); com->line_status_port = iobase + com_lsr; com->modem_status_port = iobase + com_msr; - com->intr_ctl_port = iobase + com_ier; if (rclk == 0) rclk = DEFAULT_RCLK; @@ -1113,7 +1120,7 @@ if (unit == comconsole) printf(", console"); if (COM_IIR_TXRDYBUG(flags)) - printf(" with a bogus IIR_TXRDY register"); + printf(" with a buggy IIR_TXRDY implementation"); printf("\n"); if (sio_fast_ih == NULL) { @@ -1316,13 +1323,9 @@ (void) inb(com->data_port); com->prev_modem_status = com->last_modem_status = inb(com->modem_status_port); - if (COM_IIR_TXRDYBUG(com->flags)) { - outb(com->intr_ctl_port, IER_ERXRDY | IER_ERLS - | IER_EMSC); - } else { - outb(com->intr_ctl_port, IER_ERXRDY | IER_ETXRDY - | IER_ERLS | IER_EMSC); - } + outb(com->int_ctl_port, + IER_ERXRDY | IER_ERLS | IER_EMSC + | (COM_IIR_TXRDYBUG(com->flags) ? 0 : IER_ETXRDY)); mtx_unlock_spin(&sio_lock); /* * Handle initial DCD. Callout devices get a fake initial @@ -1761,15 +1764,15 @@ siointr1(com) struct com_s *com; { + u_char int_ctl; + u_char int_ctl_new; u_char line_status; u_char modem_status; u_char *ioptr; u_char recv_data; - u_char int_ctl; - u_char int_ctl_new; if (COM_IIR_TXRDYBUG(com->flags)) { - int_ctl = inb(com->intr_ctl_port); + int_ctl = inb(com->int_ctl_port); int_ctl_new = int_ctl; } else { int_ctl = 0; @@ -1923,9 +1926,8 @@ } } com->obufq.l_head = ioptr; - if (COM_IIR_TXRDYBUG(com->flags)) { + if (COM_IIR_TXRDYBUG(com->flags)) int_ctl_new = int_ctl | IER_ETXRDY; - } if (ioptr >= com->obufq.l_tail) { struct lbq *qp; @@ -1938,9 +1940,9 @@ com->obufq.l_next = qp; } else { /* output just completed */ - if (COM_IIR_TXRDYBUG(com->flags)) { - int_ctl_new = int_ctl & ~IER_ETXRDY; - } + if (COM_IIR_TXRDYBUG(com->flags)) + int_ctl_new = int_ctl + & ~IER_ETXRDY; com->state &= ~CS_BUSY; } if (!(com->state & CS_ODONE)) { @@ -1950,9 +1952,9 @@ swi_sched(sio_fast_ih, 0); } } - if (COM_IIR_TXRDYBUG(com->flags) && (int_ctl != int_ctl_new)) { - outb(com->intr_ctl_port, int_ctl_new); - } + if (COM_IIR_TXRDYBUG(com->flags) + && int_ctl != int_ctl_new) + outb(com->int_ctl_port, int_ctl_new); } /* finished? */ ==== //depot/projects/ia64/sys/dev/usb/if_aue.c#23 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.71 2003/08/24 17:55:54 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.72 2003/09/18 15:41:06 obrien Exp $"); /* * ADMtek AN986 Pegasus and AN8511 Pegasus II USB to ethernet driver. @@ -63,7 +63,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.71 2003/08/24 17:55:54 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.72 2003/09/18 15:41:06 obrien Exp $"); #include #include @@ -151,6 +151,7 @@ {{ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3}, LSYS }, {{ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX}, PII }, {{ USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET}, 0 }, + {{ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100}, PII }, {{ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX}, 0 }, {{ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS}, PII }, {{ USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX}, 0 }, ==== //depot/projects/ia64/sys/dev/usb/usbdevs#45 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -343,6 +343,7 @@ vendor AGATE 0x0c08 Agate Technologies vendor DMI 0x0c0b DMI vendor LUWEN 0x0c76 Luwen +vendor HAWKING 0x0e66 Hawking Technologies vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX vendor ASANTE 0x10bd Asante @@ -672,6 +673,9 @@ /* Hauppauge Computer Works */ product HAUPPAUGE WINTV_USB_FM 0x4d12 WinTV USB FM +/* Hawking Technologies products */ +product HAWKING UF100 0x400c 10/100 USB Ethernet + /* Hitachi, Ltd. products */ product HITACHI DVDCAM_USB 0x001e DVDCAM USB HS Interface ==== //depot/projects/ia64/sys/dev/usb/usbdevs.h#43 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.143 2003/08/22 05:43:29 njl Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.144 2003/09/18 15:41:06 obrien Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.134 2003/07/14 19:30:01 joe Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp */ /* @@ -350,6 +350,7 @@ #define USB_VENDOR_AGATE 0x0c08 /* Agate Technologies */ #define USB_VENDOR_DMI 0x0c0b /* DMI */ #define USB_VENDOR_LUWEN 0x0c76 /* Luwen */ +#define USB_VENDOR_HAWKING 0x0e66 /* Hawking Technologies */ #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ #define USB_VENDOR_ASANTE 0x10bd /* Asante */ @@ -679,6 +680,9 @@ /* Hauppauge Computer Works */ #define USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM 0x4d12 /* WinTV USB FM */ +/* Hawking Technologies products */ +#define USB_PRODUCT_HAWKING_UF100 0x400c /* 10/100 USB Ethernet */ + /* Hitachi, Ltd. products */ #define USB_PRODUCT_HITACHI_DVDCAM_USB 0x001e /* DVDCAM USB HS Interface */ ==== //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#43 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.143 2003/08/22 05:43:30 njl Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.144 2003/09/18 15:41:07 obrien Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.134 2003/07/14 19:30:01 joe Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp */ /* @@ -1102,6 +1102,12 @@ "WinTV USB FM", }, { + USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100, + 0, + "Hawking Technologies", + "10/100 USB Ethernet", + }, + { USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB, 0, "Hitachi, Ltd.", @@ -4708,6 +4714,12 @@ NULL, }, { + USB_VENDOR_HAWKING, 0, + USB_KNOWNDEV_NOPROD, + "Hawking Technologies", + NULL, + }, + { USB_VENDOR_MOTOROLA, 0, USB_KNOWNDEV_NOPROD, "Motorola", ==== //depot/projects/ia64/sys/i386/conf/NOTES#46 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1093 2003/09/09 00:29:01 anholt Exp $ +# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1094 2003/09/19 01:42:24 sam Exp $ # # @@ -453,6 +453,7 @@ # ar: Arnet SYNC/570i hdlc sync 2/4 port V.35/X.21 serial driver # (requires sppp) +# ath: Atheros a/b/g WiFi adapters (requires ath_hal and wlan) # cx: Cronyx/Sigma multiport sync/async (with Cisco or PPP framing) # ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503 # HP PC Lan+, various PC Card devices (refer to etc/defauls/pccard.conf) @@ -533,6 +534,10 @@ options WLCACHE # enables the signal-strength cache options WLDEBUG # enables verbose debugging output +device ath +device ath_hal # Atheros HAL (includes binary component) +#device wlan # 802.11 layer >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Sep 19 11:31:58 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47ABE16A4C0; Fri, 19 Sep 2003 11:31:58 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A05016A4B3 for ; Fri, 19 Sep 2003 11:31:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 73B7843FEC for ; Fri, 19 Sep 2003 11:31:57 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8JIVvXJ035987 for ; Fri, 19 Sep 2003 11:31:57 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8JIVuJ1035984 for perforce@freebsd.org; Fri, 19 Sep 2003 11:31:56 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Fri, 19 Sep 2003 11:31:56 -0700 (PDT) Message-Id: <200309191831.h8JIVuJ1035984@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 38284 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 18:31:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=38284 Change 38284 by hdandeka@hdandeka_yash on 2003/09/19 11:30:58 Integ the POSIX sem changes into the main branch. Affected files ... .. //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#12 integrate Differences ... ==== //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#12 (text+ko) ==== @@ -89,6 +89,14 @@ #define ID_TO_SEM(x) id_to_sem(x) #define SEM_FREE(ks) sem_free(ks, 1) #define SEM_DROP(ks) sem_free(ks, 0) +#define REF_UP(ks) sem_ref(ks) +#define REF_DOWN(ksem) \ + do { \ + sem_rel((ksem)); /* Pump down */ \ + if((ksem)->ks_unlinked && \ + LIST_EMPTY(&(ksem)->ks_users)) \ + SEM_FREE((ksem)); \ + } while (0) #ifndef MAC struct kuser { @@ -363,7 +371,7 @@ return (EPERM); } *idpk = SEM_TO_ID(ks); - sem_ref(ks); /* Pump up the refs to avoid the race with SEM_FREE */ + REF_UP(ks); /* Pump up the refs to avoid the race with SEM_FREE */ mtx_unlock(&sem_lock); #ifdef MAC mtx_lock(&ks->ks_mtx); @@ -384,9 +392,7 @@ sem_enter(td->td_proc, ks); err_open_existing: mtx_lock(&sem_lock); - sem_rel(ks); /* Pump down */ - if(ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) - SEM_FREE(ks); + REF_DOWN(ks); mtx_unlock(&sem_lock); return(error); } @@ -464,6 +470,7 @@ } /* Use the sem created by the winner */ else { + /* ksem_open_existing unlocks sem_lock */ error = ksem_open_existing(td, ks, dir, idp, &id); } } else { @@ -475,6 +482,7 @@ mtx_unlock(&sem_lock); } } else { + /* ksem_open_existing unlocks sem_lock */ error = ksem_open_existing(td, ks, dir, idp, &id); } return (error); @@ -724,7 +732,7 @@ mtx_unlock(&sem_lock); return (EINVAL); } - sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + REF_UP(ks);/* Pump up the refs to avoid the race with SEM_FREE */ mtx_unlock(&sem_lock); mtx_lock(&ks->ks_mtx); @@ -744,9 +752,7 @@ err_post: mtx_unlock(&ks->ks_mtx); mtx_lock(&sem_lock); - sem_rel(ks); /* Pump down */ - if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) - SEM_FREE(ks); + REF_DOWN(ks); mtx_unlock(&sem_lock); return (error); } @@ -804,7 +810,7 @@ mtx_unlock(&sem_lock); return (EINVAL); } - sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + REF_UP(ks);/* Pump up the refs to avoid the race with SEM_FREE */ mtx_unlock(&sem_lock); mtx_lock(&ks->ks_mtx); @@ -827,9 +833,7 @@ mtx_unlock(&ks->ks_mtx); DP(("<<< kern_sem_wait leaving, error = %d\n", error)); mtx_lock(&sem_lock); - sem_rel(ks); /* Pump down */ - if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) - SEM_FREE(ks); + REF_DOWN(ks); mtx_unlock(&sem_lock); return (error); } @@ -855,7 +859,7 @@ mtx_unlock(&sem_lock); return (EINVAL); } - sem_ref(ks);/* Pump up the refs to avoid the race with SEM_FREE */ + REF_UP(ks);/* Pump up the refs to avoid the race with SEM_FREE */ mtx_unlock(&sem_lock); mtx_lock(&ks->ks_mtx); @@ -871,9 +875,7 @@ error = copyout(&val, uap->val, sizeof(val)); err_getvalue: mtx_lock(&sem_lock); - sem_rel(ks); /* Pump down */ - if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) - SEM_FREE(ks); + REF_DOWN(ks); mtx_unlock(&sem_lock); return (error); } @@ -923,7 +925,7 @@ ks = LIST_FIRST(&ksem_head); while (ks != NULL) { ksnext = LIST_NEXT(ks, ks_entry); - if(!sem_leave(p, ks)) + if((ks->ks_name != NULL) && (!sem_leave(p, ks))) if (ks->ks_unlinked && LIST_EMPTY(&ks->ks_users)) SEM_FREE(ks); ks = ksnext; From owner-p4-projects@FreeBSD.ORG Fri Sep 19 11:44:14 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 79E6716A4C0; Fri, 19 Sep 2003 11:44:14 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5617516A4B3 for ; Fri, 19 Sep 2003 11:44:14 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BA85243FBF for ; Fri, 19 Sep 2003 11:44:13 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8JIiDXJ036823 for ; Fri, 19 Sep 2003 11:44:13 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8JIiDj0036820 for perforce@freebsd.org; Fri, 19 Sep 2003 11:44:13 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Fri, 19 Sep 2003 11:44:13 -0700 (PDT) Message-Id: <200309191844.h8JIiDj0036820@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 38286 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 18:44:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=38286 Change 38286 by hdandeka@hdandeka_yash on 2003/09/19 11:43:48 Syncing operation. Affected files ... .. //depot/projects/trustedbsd/mac/sys/sys/mac.h#245 integrate .. //depot/projects/trustedbsd/mac/sys/sys/mac_policy.h#198 integrate Differences ... ==== //depot/projects/trustedbsd/mac/sys/sys/mac.h#245 (text+ko) ==== ==== //depot/projects/trustedbsd/mac/sys/sys/mac_policy.h#198 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Fri Sep 19 14:42:07 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0AE3016A4C2; Fri, 19 Sep 2003 14:42:07 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D36C416A4B3 for ; Fri, 19 Sep 2003 14:42:06 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8A15543FF9 for ; Fri, 19 Sep 2003 14:42:05 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8JLg5XJ058546 for ; Fri, 19 Sep 2003 14:42:05 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8JLg4wK058543 for perforce@freebsd.org; Fri, 19 Sep 2003 14:42:04 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Fri, 19 Sep 2003 14:42:04 -0700 (PDT) Message-Id: <200309192142.h8JLg4wK058543@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 38294 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 21:42:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=38294 Change 38294 by hdandeka@hdandeka_yash on 2003/09/19 14:41:20 Bug fix. Affected files ... .. //depot/projects/trustedbsd/mac/lib/libc/sys/sem.c#6 edit Differences ... ==== //depot/projects/trustedbsd/mac/lib/libc/sys/sem.c#6 (text+ko) ==== @@ -117,25 +117,18 @@ if (pshared != 0) { if ((retval = ksem_init(&semid, value))) { errno = retval; - retval = -1; - goto RETURN; + return (-1); } got_system_sem = 1; } (*sem) = sem_alloc(value, semid, got_system_sem); - if ((*sem) == NULL) - retval = -1; - else - retval = 0; - RETURN: - if (retval != 0 && got_system_sem) - if ((retval = ksem_destroy(semid))) { - errno = retval; - retval = -1; - } - - return retval; + if ((*sem) == NULL) { + errno = ENOSPC; + ksem_destroy(semid); + return (-1); + } + return (0); } int @@ -224,10 +217,7 @@ return (sem); err: _pthread_mutex_unlock(&named_sems_mtx); - if ((retval = ksem_close(semid))) { - errno = retval; - return (SEM_FAILED); - } + ksem_close(semid); if (sem != NULL) { if (*sem != NULL) sem_free(*sem); @@ -286,7 +276,9 @@ errno = retval; return (-1); } + return (0); } + retval = 0; _pthread_mutex_lock(&(*sem)->lock); @@ -299,8 +291,6 @@ _pthread_mutex_unlock(&(*sem)->lock); - retval = 0; - RETURN: return retval; } @@ -316,6 +306,7 @@ errno = retval; return (-1); } + return (0); } _pthread_mutex_lock(&(*sem)->lock); @@ -330,7 +321,6 @@ _pthread_mutex_unlock(&(*sem)->lock); - RETURN: return retval; } @@ -346,8 +336,10 @@ errno = retval; return (-1); } + return (0); } + retval = 0; _pthread_mutex_lock(&(*sem)->lock); (*sem)->count++; @@ -356,8 +348,6 @@ _pthread_mutex_unlock(&(*sem)->lock); - retval = 0; - RETURN: return retval; } @@ -373,13 +363,13 @@ errno = retval; return (-1); } + return (0); } + retval = 0; _pthread_mutex_lock(&(*sem)->lock); *sval = (int)(*sem)->count; _pthread_mutex_unlock(&(*sem)->lock); - retval = 0; - RETURN: return retval; } From owner-p4-projects@FreeBSD.ORG Fri Sep 19 16:07:57 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A85FE16A4C0; Fri, 19 Sep 2003 16:07:56 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 80E0516A4B3 for ; Fri, 19 Sep 2003 16:07:56 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B12443FF5 for ; Fri, 19 Sep 2003 16:07:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8JN7tXJ067157 for ; Fri, 19 Sep 2003 16:07:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8JN7sEO067154 for perforce@freebsd.org; Fri, 19 Sep 2003 16:07:54 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 16:07:54 -0700 (PDT) Message-Id: <200309192307.h8JN7sEO067154@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38302 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 23:07:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=38302 Change 38302 by marcel@marcel_nfs on 2003/09/19 16:07:27 IFC @38301 Affected files ... .. //depot/projects/ia64/crypto/openssh/FREEBSD-tricks#3 integrate .. //depot/projects/ia64/lib/libpam/modules/pam_ssh/pam_ssh.c#13 integrate .. //depot/projects/ia64/release/Makefile#70 integrate .. //depot/projects/ia64/release/scripts/doFS.sh#19 integrate .. //depot/projects/ia64/share/man/man5/device.hints.5#8 integrate .. //depot/projects/ia64/sys/alpha/conf/GENERIC#25 integrate .. //depot/projects/ia64/sys/amd64/conf/GENERIC#11 integrate .. //depot/projects/ia64/sys/conf/NOTES#69 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/rsaddr.c#10 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/rsirq.c#11 integrate .. //depot/projects/ia64/sys/dev/ata/ata-queue.c#5 integrate .. //depot/projects/ia64/sys/dev/ata/atapi-cam.c#17 integrate .. //depot/projects/ia64/sys/dev/puc/pucdata.c#20 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs#46 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs.h#44 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#44 integrate .. //depot/projects/ia64/sys/i386/conf/GENERIC#41 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#94 integrate .. //depot/projects/ia64/sys/ia64/ia64/trap.c#64 integrate .. //depot/projects/ia64/sys/kern/kern_proc.c#46 integrate .. //depot/projects/ia64/sys/kern/vfs_subr.c#54 integrate .. //depot/projects/ia64/sys/sys/lock.h#9 integrate .. //depot/projects/ia64/sys/sys/mutex.h#16 integrate .. //depot/projects/ia64/sys/vm/uma.h#13 integrate .. //depot/projects/ia64/sys/vm/uma_core.c#52 integrate .. //depot/projects/ia64/sys/vm/uma_dbg.c#10 integrate .. //depot/projects/ia64/sys/vm/uma_int.h#17 integrate .. //depot/projects/ia64/tools/tools/ath/athstats.c#2 integrate .. //depot/projects/ia64/tools/tools/mtxstat/mtxstat.pl#2 integrate .. //depot/projects/ia64/tools/tools/tinderbox/tbmaster.pl#19 integrate .. //depot/projects/ia64/tools/tools/tinderbox/tinderbox.pl#10 integrate Differences ... ==== //depot/projects/ia64/crypto/openssh/FREEBSD-tricks#3 (text+ko) ==== @@ -1,8 +1,8 @@ -# $FreeBSD: src/crypto/openssh/FREEBSD-tricks,v 1.3 2003/04/23 17:21:55 des Exp $ +# $FreeBSD: src/crypto/openssh/FREEBSD-tricks,v 1.4 2003/09/19 11:29:51 des Exp $ # Shell code to remove FreeBSD tags before merging grep -rl '\$Fre.BSD:' . >tags -while read f < tags ; do +cat tags | while read f ; do sed -i.orig -e '/\$Fre.BSD:/d' $f done @@ -11,7 +11,7 @@ xargs perl -n -i.orig -e 'print; s/\$(Id|OpenBSD): [^\$]*\$/\$FreeBSD\$/ && print' # Shell code to reexpand FreeBSD tags -while read f < tags ; do +cat tags | while read f ; do id=$(cvs diff $f | grep '\$Fre.BSD:' | sed 's/.*\(\$Fre.BSD:.*\$\).*/\1/') ; if [ -n "$id" ] ; then sed -i.orig -e "s@\\\$Fre.BSD\\\$@$id@" $f ; ==== //depot/projects/ia64/lib/libpam/modules/pam_ssh/pam_ssh.c#13 (text+ko) ==== @@ -33,11 +33,12 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ssh/pam_ssh.c,v 1.38 2003/02/10 18:59:20 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ssh/pam_ssh.c,v 1.39 2003/09/19 11:33:03 des Exp $"); #include #include +#include #include #include #include @@ -410,7 +411,7 @@ } openpam_log(PAM_LOG_DEBUG, "killing ssh agent %d", (int)pid); if (kill(pid, SIGTERM) == -1 || - waitpid(pid, &status, 0) == -1) + (waitpid(pid, &status, 0) == -1 && errno != ECHILD)) return (PAM_SYSTEM_ERR); return (PAM_SUCCESS); } ==== //depot/projects/ia64/release/Makefile#70 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.818 2003/08/11 04:21:58 obrien Exp $ +# $FreeBSD: src/release/Makefile,v 1.819 2003/09/19 09:06:15 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -494,7 +494,7 @@ .endif mkdir ${RD}/trees mkdir ${RD}/kernels - for i in ${DISTRIBUTIONS} ; do \ + for i in ${DISTRIBUTIONS} special; do \ mkdir ${RD}/trees/$$i && \ mtree -deU -f ${MTREEFILES}/BSD.root.dist \ -p ${RD}/trees/$$i > /dev/null && \ @@ -661,6 +661,11 @@ # release.9: +.if exists(${.CURDIR}/../sys/boot/${TARGET}/loader) + cd ${.CURDIR}/../sys/boot/${TARGET}/loader; \ + ${WMAKE} clean cleandepend; \ + ${WMAKE} -DNOMAN -DNOFORTH all install DESTDIR=${RD}/trees/special +.endif cp ${RD}/trees/base/etc/disktab /etc rm -rf ${RD}/mfsfd mkdir ${RD}/mfsfd @@ -1069,9 +1074,9 @@ @mkdir -p ${RD}/image.${FSIMAGE}/boot .if ${TARGET} == "i386" @${WMAKEENV} kgzip -v -l ${RD}/trees/base/usr/lib/kgzldr.o \ - -o ${RD}/image.${FSIMAGE}/boot/loader ${RD}/trees/base/boot/loader + -o ${RD}/image.${FSIMAGE}/boot/loader ${RD}/trees/special/boot/loader .else - @cp ${RD}/trees/base/boot/loader ${RD}/image.${FSIMAGE}/boot + @cp ${RD}/trees/special/boot/loader ${RD}/image.${FSIMAGE}/boot .endif @[ -r ${RD}/kernels/BOOTMFS.${FSIMAGE}.hints ] && \ sed -e '/^hint/s/^/set /' -e '/^#/d' \ ==== //depot/projects/ia64/release/scripts/doFS.sh#19 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/release/scripts/doFS.sh,v 1.53 2003/08/08 18:23:00 ru Exp $ +# $FreeBSD: src/release/scripts/doFS.sh,v 1.54 2003/09/19 09:08:41 ru Exp $ # set -ex @@ -29,22 +29,6 @@ FSSIZE=$(roundup $(($sk*12/10)) 1024) fi -# -# We don't have any bootblocks on ia64. Note that -B implies -r, -# so we have to specifically specify -r when we don't have -B. -# bsdlabel fails otherwise. -# -if [ -f "${RD}/trees/base/boot/boot" ]; then - BOOT="-B -b ${RD}/trees/base/boot/boot" -elif [ -f "${RD}/trees/base/boot/boot1" ]; then - BOOT="-B -b ${RD}/trees/base/boot/boot1" - if [ -f "${RD}/trees/base/boot/boot2" ]; then - BOOT="${BOOT} -s ${RD}/trees/base/boot/boot2" - fi -else - BOOT="-r" -fi - deadlock=20 dofs_vn () { @@ -137,11 +121,29 @@ done } +# +# We don't have any bootblocks on ia64. Note that -B implies -r, +# so we have to specifically specify -r when we don't have -B. +# bsdlabel fails otherwise. +# case `uname -r` in [1-4].*) + if [ -f "${RD}/trees/base/boot/boot1" ]; then + BOOT="-B -b ${RD}/trees/base/boot/boot1" + if [ -f "${RD}/trees/base/boot/boot2" ]; then + BOOT="${BOOT} -s ${RD}/trees/base/boot/boot2" + fi + else + BOOT="-r" + fi dofs_vn ;; *) + if [ -f "${RD}/trees/base/boot/boot" ]; then + BOOT="-B -b ${RD}/trees/base/boot/boot" + else + BOOT="-r" + fi dofs_md ;; esac ==== //depot/projects/ia64/share/man/man5/device.hints.5#8 (text+ko) ==== @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/device.hints.5,v 1.9 2003/09/07 04:18:17 jb Exp $ +.\" $FreeBSD: src/share/man/man5/device.hints.5,v 1.10 2003/09/19 22:27:54 jb Exp $ .\" .Dd October 7, 2001 .Dt DEVICE.HINTS 5 @@ -93,6 +93,8 @@ specifies a bus to which the device is attached. .It Li port specifies the start address of I/O ports to be used by the device. +.It Li portsize +specifies the number of ports used by the device. .It Li irq is the interrupt line number to be used. .It Li drq ==== //depot/projects/ia64/sys/alpha/conf/GENERIC#25 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.162 2003/07/21 19:15:25 ticso Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.163 2003/09/19 20:04:55 joerg Exp $ machine alpha cpu EV4 @@ -139,6 +139,11 @@ device ppi # Parallel port interface device #device vpo # Requires scbus and da +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to the sio and/or ppc drivers): +#device puc + # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') device txp # 3Com 3cR990 (``Typhoon'') ==== //depot/projects/ia64/sys/amd64/conf/GENERIC#11 (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.395 2003/09/15 22:40:00 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.396 2003/09/19 20:04:55 joerg Exp $ machine amd64 cpu HAMMER @@ -158,6 +158,10 @@ device ppi # Parallel port interface device #device vpo # Requires scbus and da +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to the sio and/or ppc drivers): +#device puc # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') ==== //depot/projects/ia64/sys/conf/NOTES#69 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1175 2003/09/11 23:06:41 marcel Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1176 2003/09/19 19:04:30 jhb Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -167,6 +167,13 @@ # CPU. options ADAPTIVE_MUTEXES +# MUTEX_NOINLINE forces mutex operations to call functions to perform each +# operation rather than inlining the simple cases. This can be used to +# shrink the size of the kernel text segment. Note that this behavior is +# already implied by the INVARIANT_SUPPORT, INVARIANTS, MUTEX_PROFILING, +# and WITNESS options. +options MUTEX_NOINLINE + # SMP Debugging Options: # # MUTEX_DEBUG enables various extra assertions in the mutex code. ==== //depot/projects/ia64/sys/contrib/dev/acpica/rsaddr.c#10 (text+ko) ==== @@ -168,6 +168,10 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 13) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); + *BytesConsumed = Temp16 + 3; OutputStruct->Id = ACPI_RSTYPE_ADDRESS16; @@ -275,11 +279,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 16) + if (*BytesConsumed > 16 + 1) { /* Dereference the Index */ @@ -555,6 +561,10 @@ */ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + + /* Check for the minimum length. */ + if (Temp16 < 23) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; OutputStruct->Id = ACPI_RSTYPE_ADDRESS32; @@ -667,9 +677,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 26) + if (*BytesConsumed > 26 + 1) { /* Dereference the Index */ @@ -944,7 +958,11 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 43) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; + OutputStruct->Id = ACPI_RSTYPE_ADDRESS64; /* @@ -1056,11 +1074,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 46) + if (*BytesConsumed > 46 + 1) { /* Dereference the Index */ ==== //depot/projects/ia64/sys/contrib/dev/acpica/rsirq.c#11 (text+ko) ==== @@ -408,7 +408,11 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 6) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; + OutputStruct->Id = ACPI_RSTYPE_EXT_IRQ; /* @@ -446,6 +450,12 @@ Buffer += 1; Temp8 = *Buffer; + /* Minimum number of IRQs is one. */ + if (Temp8 < 1) { + *BytesConsumed = 0; + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); + } + OutputStruct->Data.ExtendedIrq.NumberOfInterrupts = Temp8; /* @@ -480,7 +490,8 @@ * stream that are default. */ if (*BytesConsumed > - ((ACPI_SIZE) OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + 5) + ((ACPI_SIZE) OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + + 5 + 1) { /* Dereference the Index */ ==== //depot/projects/ia64/sys/dev/ata/ata-queue.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.5 2003/09/18 09:22:14 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.6 2003/09/19 12:46:12 sos Exp $"); #include "opt_ata.h" #include @@ -264,7 +264,7 @@ if (request->result) break; - if (request->error & ATA_E_MASK) { + if (request->error) { switch ((request->error & ATA_SK_MASK)) { case ATA_SK_RECOVERED_ERROR: ata_prtdev(request->device, "WARNING - %s recovered error\n", @@ -297,6 +297,8 @@ "\2NO_MEDIA\1ILLEGAL_LENGTH"); request->result = EIO; } + if (request->error & ATA_E_MASK) + request->result = EIO; } break; } @@ -369,6 +371,7 @@ case 0x0a: return ("WRITE"); case 0x10: return ("WEOF"); case 0x11: return ("SPACE"); + case 0x12: return ("INQUIRY"); case 0x15: return ("MODE_SELECT"); case 0x19: return ("ERASE"); case 0x1a: return ("MODE_SENSE"); ==== //depot/projects/ia64/sys/dev/ata/atapi-cam.c#17 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.22 2003/09/11 17:34:47 thomas Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.23 2003/09/19 16:25:44 thomas Exp $"); #include #include @@ -59,7 +59,7 @@ int lun; union ccb *ccb; int flags; -#define DOING_AUTOSENSE 1 +#define QUEUED 0x0001 char *dxfer_alloc; TAILQ_ENTRY(atapi_hcb) chain; @@ -369,6 +369,7 @@ struct ccb_scsiio *csio = &ccb->csio; int tid = ccb_h->target_id, lid = ccb_h->target_lun; struct ata_device *dev = get_ata_device(softc, tid); + int request_flags = ATA_R_QUIET | ATA_R_ATAPI; CAM_DEBUG(ccb_h->path, CAM_DEBUG_SUBTRACE, ("XPT_SCSI_IO\n")); @@ -397,9 +398,24 @@ /* scatter-gather not supported */ xpt_print_path(ccb_h->path); printf("ATAPI/CAM does not support scatter-gather yet!\n"); - break; + goto action_invalid; } + switch (ccb_h->flags & CAM_DIR_MASK) { + case CAM_DIR_IN: + request_flags |= ATA_R_READ; + break; + case CAM_DIR_OUT: + request_flags |= ATA_R_WRITE; + break; + case CAM_DIR_NONE: + request_flags |= ATA_R_CONTROL; + break; + default: + ata_prtdev(dev, "unknown IO operation\n"); + goto action_invalid; + } + if ((hcb = allocate_hcb(softc, unit, bus, ccb)) == NULL) { printf("cannot allocate ATAPI/CAM hcb\n"); goto action_oom; @@ -409,8 +425,6 @@ goto action_oom; } - ccb_h->status |= CAM_SIM_QUEUED; - bcopy((ccb_h->flags & CAM_CDB_POINTER) ? csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes, request->u.atapi.ccb, csio->cdb_len); @@ -467,8 +481,8 @@ if ((ccb_h->flags & CAM_DIR_MASK) == CAM_DIR_IN && (len & 1)) { /* ATA always transfers an even number of bytes */ - if (!(buf = hcb->dxfer_alloc = malloc(++len, M_ATACAM, - M_NOWAIT | M_ZERO))) { + if ((buf = hcb->dxfer_alloc + = malloc(++len, M_ATACAM, M_NOWAIT | M_ZERO)) == NULL) { printf("cannot allocate ATAPI/CAM buffer\n"); goto action_oom; } @@ -481,23 +495,11 @@ request->timeout = ccb_h->timeout; request->retries = 2; request->callback = &atapi_cb; - request->flags = (ATA_R_QUIET | ATA_R_ATAPI); - switch (ccb_h->flags & CAM_DIR_MASK) { - case CAM_DIR_IN: - request->flags |= ATA_R_READ; - break; - case CAM_DIR_OUT: - request->flags |= ATA_R_WRITE; - break; - case CAM_DIR_NONE: - request->flags |= ATA_R_CONTROL; - break; - default: - ata_prtdev(dev, "unknown IO operation\n"); - goto action_invalid; - } + request->flags = request_flags; TAILQ_INSERT_TAIL(&softc->pending_hcbs, hcb, chain); + hcb->flags |= QUEUED; + ccb_h->status |= CAM_SIM_QUEUED; ata_queue_request(request); return; @@ -509,6 +511,8 @@ goto action_invalid; } + /* NOTREACHED */ + action_oom: if (request != NULL) ata_free_request(request); @@ -523,9 +527,9 @@ return; action_invalid: - ccb_h->status = CAM_REQ_INVALID; - xpt_done(ccb); - return; + ccb_h->status = CAM_REQ_INVALID; + xpt_done(ccb); + return; } static void @@ -690,7 +694,8 @@ static void free_hcb(struct atapi_hcb *hcb) { - TAILQ_REMOVE(&hcb->softc->pending_hcbs, hcb, chain); + if ((hcb->flags & QUEUED) != 0) + TAILQ_REMOVE(&hcb->softc->pending_hcbs, hcb, chain); if (hcb->dxfer_alloc != NULL) free(hcb->dxfer_alloc, M_ATACAM); free(hcb, M_ATACAM); ==== //depot/projects/ia64/sys/dev/puc/pucdata.c#20 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/puc/pucdata.c,v 1.25 2003/09/06 21:48:50 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/puc/pucdata.c,v 1.26 2003/09/19 19:55:08 joerg Exp $"); /* * PCI "universal" communications card driver configuration data (used to @@ -772,6 +772,30 @@ { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, }, }, + /* + * VScom (Titan?) PCI-800L. More modern variant of the + * PCI-800. Uses 6 discrete 16550 UARTs, plus another + * two of them obviously implemented as macro cells in + * the ASIC. This causes the weird port access pattern + * below, where two of the IO port ranges each access + * one of the ASIC UARTs, and a block of IO addresses + * access the external UARTs. + */ + { "Titan VScom PCI-800L", + NULL, + { 0x14d2, 0x8080, 0x14d2, 0x8080 }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 }, + }, + }, /* NEC PK-UG-X001 K56flex PCI Modem card. NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */ ==== //depot/projects/ia64/sys/dev/usb/usbdevs#46 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.137 2003/09/19 22:42:51 jb Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -484,6 +484,7 @@ product BELKIN F5U103 0x0103 F5U103 Serial adapter product BELKIN F5U109 0x0109 F5U109 Serial adapter product BELKIN F5U120 0x1203 F5U120-PC Hub +product BELKIN F5U208 0x0208 F5U208 VideoBus II /* Billionton products */ product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet Adapter @@ -704,6 +705,7 @@ product HP 840C 0x0604 DeskJet 840c product HP 2200C 0x0605 ScanJet 2200C product HP 5300C 0x0701 Scanjet 5300C +product HP 4400C 0x0705 Scanjet 4400C product HP 970CSE 0x1004 Deskjet 970Cse product HP 5400C 0x1005 Scanjet 5400C product HP 930C 0x1204 DeskJet 930c ==== //depot/projects/ia64/sys/dev/usb/usbdevs.h#44 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.144 2003/09/18 15:41:06 obrien Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp */ /* @@ -491,6 +491,7 @@ #define USB_PRODUCT_BELKIN_F5U103 0x0103 /* F5U103 Serial adapter */ #define USB_PRODUCT_BELKIN_F5U109 0x0109 /* F5U109 Serial adapter */ #define USB_PRODUCT_BELKIN_F5U120 0x1203 /* F5U120-PC Hub */ +#define USB_PRODUCT_BELKIN_F5U208 0x0208 /* F5U208 VideoBus II */ /* Billionton products */ #define USB_PRODUCT_BILLIONTON_USB100 0x0986 /* USB100N 10/100 FastEthernet Adapter */ @@ -711,6 +712,7 @@ #define USB_PRODUCT_HP_840C 0x0604 /* DeskJet 840c */ #define USB_PRODUCT_HP_2200C 0x0605 /* ScanJet 2200C */ #define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */ +#define USB_PRODUCT_HP_4400C 0x0705 /* Scanjet 4400C */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ #define USB_PRODUCT_HP_5400C 0x1005 /* Scanjet 5400C */ #define USB_PRODUCT_HP_930C 0x1204 /* DeskJet 930c */ ==== //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#44 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.144 2003/09/18 15:41:07 obrien Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp */ /* @@ -472,6 +472,12 @@ "F5U120-PC Hub", }, { + USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U208, + 0, + "Belkin Components", + "F5U208 VideoBus II", + }, + { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0, "Billionton Systems", @@ -1258,6 +1264,12 @@ "Scanjet 5300C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_4400C, + 0, + "Hewlett Packard", + "Scanjet 4400C", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_970CSE, 0, "Hewlett Packard", ==== //depot/projects/ia64/sys/i386/conf/GENERIC#41 (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/i386/conf/GENERIC,v 1.391 2003/09/10 18:54:58 obrien Exp $ +# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.392 2003/09/19 20:04:55 joerg Exp $ machine i386 cpu I486_CPU @@ -177,6 +177,10 @@ device ppi # Parallel port interface device #device vpo # Requires scbus and da +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to the sio and/or ppc drivers): +#device puc # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') ==== //depot/projects/ia64/sys/ia64/ia64/machdep.c#94 (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/ia64/ia64/machdep.c,v 1.154 2003/09/09 05:59:09 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.155 2003/09/19 22:51:26 marcel Exp $ */ #include "opt_compat.h" @@ -1082,9 +1082,9 @@ ustk = (uint64_t*)s.bspstore; kstk = (uint64_t*)td->td_kstack; while (s.ndirty > 0) { - *ustk++ = *kstk++; + suword64(ustk++, *kstk++); if (((uintptr_t)ustk & 0x1ff) == 0x1f8) - *ustk++ = 0; + suword64(ustk++, 0); if (((uintptr_t)kstk & 0x1ff) == 0x1f8) { kstk++; s.ndirty -= 8; @@ -1127,6 +1127,7 @@ { struct _special s; struct trapframe *tf; + uint64_t psrmask; tf = td->td_frame; @@ -1134,15 +1135,22 @@ ("Whoa there! We have more than 8KB of dirty registers!")); s = mc->mc_special; - /* Only copy the user mask from the new context. */ - s.psr = (s.psr & 0x1f) | (tf->tf_special.psr & ~0x1f); + /* + * Only copy the user mask and the restart instruction bit from + * the new context. + */ + psrmask = IA64_PSR_BE | IA64_PSR_UP | IA64_PSR_AC | IA64_PSR_MFL | + IA64_PSR_MFH | IA64_PSR_RI; + s.psr = (tf->tf_special.psr & ~psrmask) | (s.psr & psrmask); /* We don't have any dirty registers of the new context. */ s.ndirty = 0; if (mc->mc_flags & _MC_FLAGS_ASYNC_CONTEXT) { + KASSERT((tf->tf_flags & FRAME_SYSCALL) == 0, ("foo")); tf->tf_scratch = mc->mc_scratch; tf->tf_scratch_fp = mc->mc_scratch_fp; /* XXX High FP */ } else { + KASSERT((tf->tf_flags & FRAME_SYSCALL) != 0, ("foo")); s.cfm = s.pfs; s.pfs = tf->tf_special.pfs; s.iip = s.rp; ==== //depot/projects/ia64/sys/ia64/ia64/trap.c#64 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/trap.c,v 1.89 2003/08/20 05:30:34 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/trap.c,v 1.90 2003/09/19 22:41:52 marcel Exp $"); #include "opt_ddb.h" #include "opt_ktrace.h" @@ -311,6 +311,17 @@ printf("\n"); } +static void +trap_panic(int vector, struct trapframe *tf) +{ + + printtrap(vector, tf, 1, TRAPF_USERMODE(tf)); +#ifdef DDB + kdb_trap(vector, tf); +#endif + panic("trap"); +} + /* * */ @@ -342,18 +353,11 @@ struct proc *p; struct thread *td; u_int64_t ucode; - int i, user; + int error, sig, user; u_int sticks; user = TRAPF_USERMODE(framep) ? 1 : 0; - /* Short-circuit break instruction based system calls. */ - if (vector == IA64_VEC_BREAK && user && - framep->tf_special.ifa == 0x100000) { - break_syscall(framep); - return; - } - /* Sanitize the FP state in case the user has trashed it. */ ia64_set_fpsr(IA64_FPSR_DEFAULT); @@ -374,132 +378,197 @@ ("kernel trap doesn't have ucred")); } + sig = 0; switch (vector) { + case IA64_VEC_VHPT: + /* + * This one is tricky. We should hardwire the VHPT, but + * don't at this time. I think we're mostly lucky that + * the VHPT is mapped. + */ + trap_panic(vector, framep); + break; - case IA64_VEC_UNALIGNED_REFERENCE: { + case IA64_VEC_ITLB: + case IA64_VEC_DTLB: + case IA64_VEC_EXT_INTR: + /* We never call trap() with these vectors. */ + trap_panic(vector, framep); + break; + + case IA64_VEC_ALT_ITLB: + case IA64_VEC_ALT_DTLB: /* - * If user-land, do whatever fixups, printing, and - * signalling is appropriate (based on system-wide - * and per-process unaligned-access-handling flags). + * These should never happen, because regions 0-4 use the + * VHPT. If we get one of these it means we didn't program + * the region registers correctly. */ - if (user) { - i = unaligned_fixup(framep, td); - if (i == 0) - goto out; - ucode = framep->tf_special.ifa; /* VA */ - break; - } + trap_panic(vector, framep); + break; + case IA64_VEC_NESTED_DTLB: /* - * Unaligned access from kernel mode is always an error, - * EVEN IF A COPY FAULT HANDLER IS SET! - * - * It's an error if a copy fault handler is set because - * the various routines which do user-initiated copies - * do so in a bcopy-like manner. In other words, the - * kernel never assumes that pointers provided by the - * user are properly aligned, and so if the kernel - * does cause an unaligned access it's a kernel bug. + * We never call trap() with this vector. We may want to + * do that in the future in case the nested TLB handler + * could not find the translation it needs. In that case + * we could switch to a special (hardwired) stack and + * come here to produce a nice panic(). */ - goto dopanic; - } + trap_panic(vector, framep); + break; - case IA64_VEC_FLOATING_POINT_FAULT: - /* FALLTHROUGH */ + case IA64_VEC_IKEY_MISS: + case IA64_VEC_DKEY_MISS: + case IA64_VEC_KEY_PERMISSION: + /* + * We don't use protection keys, so we should never get + * these faults. + */ + trap_panic(vector, framep); + break; - case IA64_VEC_FLOATING_POINT_TRAP: { - FP_STATE fp_state; - FPSWA_RET fpswa_ret; - FPSWA_BUNDLE bundle; + case IA64_VEC_DIRTY_BIT: + case IA64_VEC_INST_ACCESS: + case IA64_VEC_DATA_ACCESS: + /* + * We get here if we read or write to a page of which the + * PTE does not have the access bit or dirty bit set and + * we can not find the PTE in our datastructures. This + * either means we have a stale PTE in the TLB, or we lost + * the PTE in our datastructures. + */ + trap_panic(vector, framep); + break; - /* Always fatal in kernel. Should never happen. */ - if (!user) - goto dopanic; + case IA64_VEC_BREAK: + if (user) { + if (framep->tf_special.ifa == 0x100000) { + break_syscall(framep); + return; /* do_ast() already called. */ + } else if (framep->tf_special.ifa == 0x180000) { + mcontext_t mc; - if (fpswa_interface == NULL) { - i = SIGFPE; - ucode = 0; - break; + error = copyin((void*)framep->tf_scratch.gr8, + &mc, sizeof(mc)); + if (!error) { + set_mcontext(td, &mc); + return; /* Don't call do_ast()!!! */ + } + ucode = framep->tf_scratch.gr8; + sig = SIGSEGV; + } else { + framep->tf_special.psr &= ~IA64_PSR_SS; + sig = SIGTRAP; + } + } else { +#ifdef DDB + if (kdb_trap(vector, framep)) + return; + panic("trap"); +#else + trap_panic(vector, framep); +#endif } + break; + + case IA64_VEC_PAGE_NOT_PRESENT: + case IA64_VEC_INST_ACCESS_RIGHTS: + case IA64_VEC_DATA_ACCESS_RIGHTS: { + vm_offset_t va; + struct vmspace *vm; + vm_map_t map; + vm_prot_t ftype; + int rv; - i = copyin((void *)(framep->tf_special.iip), &bundle, 16); - if (i) { - i = SIGBUS; /* EFAULT, basically */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Sep 19 16:52:57 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9162216A4C0; Fri, 19 Sep 2003 16:52:57 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 47C5916A4B3 for ; Fri, 19 Sep 2003 16:52:57 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A8B2043FE0 for ; Fri, 19 Sep 2003 16:52:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8JNqtXJ077343 for ; Fri, 19 Sep 2003 16:52:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8JNqsuR077340 for perforce@freebsd.org; Fri, 19 Sep 2003 16:52:54 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 16:52:54 -0700 (PDT) Message-Id: <200309192352.h8JNqsuR077340@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38308 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Sep 2003 23:52:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=38308 Change 38308 by marcel@marcel_nfs on 2003/09/19 16:52:10 IFC @38307 Affected files ... .. //depot/projects/ia64/contrib/sendmail/FREEBSD-upgrade#14 integrate .. //depot/projects/ia64/contrib/sendmail/LICENSE#5 integrate .. //depot/projects/ia64/contrib/sendmail/RELEASE_NOTES#11 integrate .. //depot/projects/ia64/contrib/sendmail/cf/README#11 integrate .. //depot/projects/ia64/contrib/sendmail/cf/cf/submit.cf#10 integrate .. //depot/projects/ia64/contrib/sendmail/cf/cf/submit.mc#6 integrate .. //depot/projects/ia64/contrib/sendmail/cf/m4/cfhead.m4#8 integrate .. //depot/projects/ia64/contrib/sendmail/cf/m4/proto.m4#11 integrate .. //depot/projects/ia64/contrib/sendmail/cf/m4/version.m4#11 integrate .. //depot/projects/ia64/contrib/sendmail/contrib/domainmap.m4#3 integrate .. //depot/projects/ia64/contrib/sendmail/contrib/doublebounce.pl#3 integrate .. //depot/projects/ia64/contrib/sendmail/contrib/expn.pl#3 integrate .. //depot/projects/ia64/contrib/sendmail/doc/op/op.me#11 integrate .. //depot/projects/ia64/contrib/sendmail/include/sm/conf.h#9 integrate .. //depot/projects/ia64/contrib/sendmail/include/sm/errstring.h#4 integrate .. //depot/projects/ia64/contrib/sendmail/include/sm/io.h#5 integrate .. //depot/projects/ia64/contrib/sendmail/include/sm/os/sm_os_aix.h#4 integrate .. //depot/projects/ia64/contrib/sendmail/include/sm/shm.h#4 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/README#6 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/docs/sample.html#4 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/docs/smfi_chgheader.html#4 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/docs/smfi_register.html#3 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/docs/smfi_setconn.html#3 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/docs/smfi_setreply.html#5 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/engine.c#8 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/libmilter.h#7 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/listener.c#10 integrate .. //depot/projects/ia64/contrib/sendmail/libmilter/signal.c#7 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/clock.c#8 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/errstring.c#4 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/flags.c#4 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/ldap.c#6 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/shm.c#4 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/smstdio.c#5 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/stdio.c#7 integrate .. //depot/projects/ia64/contrib/sendmail/libsm/vasprintf.c#4 integrate .. //depot/projects/ia64/contrib/sendmail/libsmdb/smdb2.c#7 integrate .. //depot/projects/ia64/contrib/sendmail/mail.local/mail.local.c#10 integrate .. //depot/projects/ia64/contrib/sendmail/smrsh/README#5 integrate .. //depot/projects/ia64/contrib/sendmail/smrsh/smrsh.8#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/README#10 integrate .. //depot/projects/ia64/contrib/sendmail/src/TRACEFLAGS#7 integrate .. //depot/projects/ia64/contrib/sendmail/src/alias.c#5 integrate .. //depot/projects/ia64/contrib/sendmail/src/bf.c#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/collect.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/conf.c#13 integrate .. //depot/projects/ia64/contrib/sendmail/src/control.c#7 integrate .. //depot/projects/ia64/contrib/sendmail/src/daemon.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/deliver.c#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/domain.c#8 integrate .. //depot/projects/ia64/contrib/sendmail/src/headers.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/main.c#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/map.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/mci.c#10 integrate .. //depot/projects/ia64/contrib/sendmail/src/milter.c#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/mime.c#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/parseaddr.c#12 integrate .. //depot/projects/ia64/contrib/sendmail/src/queue.c#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/readcf.c#10 integrate .. //depot/projects/ia64/contrib/sendmail/src/recipient.c#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/sendmail.8#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/sendmail.h#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/sfsasl.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/srvrsmtp.c#11 integrate .. //depot/projects/ia64/contrib/sendmail/src/stab.c#5 integrate .. //depot/projects/ia64/contrib/sendmail/src/udb.c#6 integrate .. //depot/projects/ia64/contrib/sendmail/src/usersmtp.c#9 integrate .. //depot/projects/ia64/contrib/sendmail/src/util.c#8 integrate .. //depot/projects/ia64/contrib/sendmail/src/version.c#11 integrate .. //depot/projects/ia64/lib/libpthread/arch/alpha/include/pthread_md.h#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/amd64/include/pthread_md.h#4 integrate .. //depot/projects/ia64/lib/libpthread/arch/i386/include/pthread_md.h#6 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/context.S#4 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#7 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#36 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#126 integrate .. //depot/projects/ia64/sys/fs/nwfs/nwfs_io.c#9 integrate .. //depot/projects/ia64/sys/fs/smbfs/smbfs_io.c#12 integrate .. //depot/projects/ia64/sys/nfsclient/nfs_bio.c#16 integrate .. //depot/projects/ia64/sys/vm/uma_core.c#53 integrate .. //depot/projects/ia64/sys/vm/uma_int.h#18 integrate Differences ... ==== //depot/projects/ia64/contrib/sendmail/FREEBSD-upgrade#14 (text+ko) ==== @@ -1,6 +1,6 @@ -$FreeBSD: src/contrib/sendmail/FREEBSD-upgrade,v 1.21 2003/03/29 19:21:28 gshapiro Exp $ +$FreeBSD: src/contrib/sendmail/FREEBSD-upgrade,v 1.22 2003/09/19 23:20:46 gshapiro Exp $ -sendmail 8.12.9 +sendmail 8.12.10 originals can be found at: ftp://ftp.sendmail.org/pub/sendmail/ For the import of sendmail, the following files were removed: @@ -21,8 +21,8 @@ Imported using: - cvs import -m 'Import sendmail 8.12.9' \ - src/contrib/sendmail SENDMAIL v8_12_9 + cvs import -m 'Import sendmail 8.12.10' \ + src/contrib/sendmail SENDMAIL v8_12_10 To make local changes to sendmail, simply patch and commit to the main @@ -92,4 +92,4 @@ usr.sbin/mailwrapper/Makefile gshapiro@FreeBSD.org -29-March-2003 +19-September-2003 ==== //depot/projects/ia64/contrib/sendmail/LICENSE#5 (text+ko) ==== @@ -2,7 +2,7 @@ The following license terms and conditions apply, unless a different license is obtained from Sendmail, Inc., 6425 Christie Ave, Fourth Floor, -Emeryville, CA 94608, or by electronic mail at license@sendmail.com. +Emeryville, CA 94608, USA, or by electronic mail at license@sendmail.com. License Terms: @@ -33,7 +33,7 @@ forth as paragraph 6 below, in the documentation and/or other materials provided with the distribution. For the purposes of binary distribution the "Copyright Notice" refers to the following language: - "Copyright (c) 1998-2002 Sendmail, Inc. All rights reserved." + "Copyright (c) 1998-2003 Sendmail, Inc. All rights reserved." 4. Neither the name of Sendmail, Inc. nor the University of California nor the names of their contributors may be used to endorse or promote @@ -76,4 +76,4 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -$Revision: 8.11 $, Last updated $Date: 2002/04/24 22:26:56 $ +$Revision: 8.11.2.1 $, Last updated $Date: 2003/04/19 14:30:36 $ ==== //depot/projects/ia64/contrib/sendmail/RELEASE_NOTES#11 (text+ko) ==== @@ -1,16 +1,83 @@ SENDMAIL RELEASE NOTES - $Id: RELEASE_NOTES,v 8.1340.2.132 2003/03/29 14:02:26 ca Exp $ + $Id: RELEASE_NOTES,v 8.1340.2.165 2003/09/16 20:50:42 ca Exp $ This listing shows the version of the sendmail binary, the version of the sendmail configuration files, the date of release, and a summary of the changes in that release. +8.12.10/8.12.10 2003/09/24 + SECURITY: Fix a buffer overflow in address parsing. Problem + detected by Michal Zalewski, patch from Todd C. Miller + of Courtesan Consulting. + Fix a potential buffer overflow in ruleset parsing. This problem + is not exploitable in the default sendmail configuration; + only if non-standard rulesets recipient (2), final (4), or + mailer-specific envelope recipients rulesets are used then + a problem may occur. Problem noted by Timo Sirainen. + Accept 0 (and 0/0) as valid input for set MaxMimeHeaderLength. + Problem noted by Thomas Schulz. + Add several checks to avoid (theoretical) buffer over/underflows. + Properly count message size when performing 7->8 or 8->7 bit MIME + conversions. Problem noted by Werner Wiethege. + Properly compute message priority based on size of entire message, + not just header. Problem noted by Axel Holscher. + Reset SevenBitInput to its configured value between SMTP + transactions for broken clients which do not properly + announce 8 bit data. Problem noted by Stefan Roehrich. + Set {addr_type} during queue runs when processing recipients. + Based on patch from Arne Jansen. + Better error handling in case of (very unlikely) queue-id conflicts. + Perform better error recovery for address parsing, e.g., when + encountering a comment that is too long. Problem noted by + Tanel Kokk, Union Bank of Estonia. + Add ':' to the allowed character list for bogus HELO/EHLO + checking. It is used for IPv6 domain literals. Patch from + Iwaizako Takahiro of FreeBit Co., Ltd. + Reset SASL connection context after a failed authentication attempt. + Based on patch from Rob Siemborski of CMU. + Check Berkeley DB compile time version against run time version + to make sure they match. + Do not attempt AAAA (IPv6) DNS lookups if IPv6 is not enabled + in the kernel. + When a milter adds recipients and one of them causes an error, + do not ignore the other recipients. Problem noted by + Bart Duchesne. + CONFIG: Use specified SMTP error code in mailertable entries which + lack a DSN, i.e., "error:### Text". Problem noted by + Craig Hunt. + CONFIG: Call Local_trust_auth with the correct argument. Patch + from Jerome Borsboom. + CONTRIB: Better handling of temporary filenames for doublebounce.pl + and expn.pl to avoid file overwrites, etc. Patches from + Richard A. Nelson of Debian and Paul Szabo. + MAIL.LOCAL: Fix obscure race condition that could lead to an + improper mailbox truncation if close() fails after the + mailbox is fsync()'ed and a new message is delivered + after the close() and before the truncate(). + MAIL.LOCAL: If mail delivery fails, do not leave behind a + stale lockfile (which is ignored after the lock timeout). + Patch from Oleg Bulyzhin of Cronyx Plus LLC. + Portability: + Port for AIX 5.2. Thanks to Steve Hubert of University + of Washington for providing access to a computer + with AIX 5.2. + setreuid(2) works on OpenBSD 3.3. Patch from + Todd C. Miller of Courtesan Consulting. + Allow for custom definition of SMRSH_CMDDIR and SMRSH_PATH + on all operating systems. Patch from Robert Harker + of Harker Systems. + Use strerror(3) on Linux. If this causes a problem on + your Linux distribution, compile with + -DHASSTRERROR=0 and tell sendmail.org about it. + Added Files: + devtools/OS/AIX.5.2 + 8.12.9/8.12.9 2003/03/29 SECURITY: Fix a buffer overflow in address parsing due to a char to int conversion problem which is potentially remotely exploitable. Problem found by Michal Zalewski. - Note: an MTA that is not patched might be vulnerable to + Note: an MTA that is not patched might be vulnerable to data that it receives from untrusted sources, which includes DNS. To provide partial protection to internal, unpatched sendmail MTAs, @@ -31,7 +98,7 @@ College London. Properly initialize data structure for dns maps to avoid various errors, e.g., looping processes. Problem noted by - Maurice Makaay. + Maurice Makaay of InterNLnet B.V. CONFIG: Prevent multiple application of rule to add smart host. Patch from Andrzej Filip. CONFIG: Fix queue group declaration in MAILER(`usenet'). @@ -1457,6 +1524,67 @@ cf/cf/generic-solaris2.cf => cf/cf/generic-solaris.cf cf/ostype/aux.m4 => cf/ostype/a-ux.m4 +8.11.7/8.11.7 2003/03/29 + SECURITY: Fix a remote buffer overflow in header parsing by + dropping sender and recipient header comments if the + comments are too long. Problem noted by Mark Dowd + of ISS X-Force. + SECURITY: Fix a buffer overflow in address parsing due to + a char to int conversion problem which is potentially + remotely exploitable. Problem found by Michal Zalewski. + Note: an MTA that is not patched might be vulnerable to + data that it receives from untrusted sources, which + includes DNS. + To provide partial protection to internal, unpatched sendmail MTAs, + 8.11.7 changes by default (char)0xff to (char)0x7f in + headers etc. To turn off this conversion compile with + -DALLOW_255 or use the command line option -d82.101. + To provide partial protection for internal, unpatched MTAs that may be + performing 7->8 or 8->7 bit MIME conversions, the default + for MaxMimeHeaderLength has been changed to 2048/1024. + Note: this does have a performance impact, and it only + protects against frontal attacks from the outside. + To disable the checks and return to pre-8.11.7 defaults, + set MaxMimeHeaderLength to 0/0. + Properly clean up macros to avoid persistence of session data + across various connections. This could cause session + oriented restrictions, e.g., STARTTLS requirements, + to erroneously allow a connection. Problem noted + by Tim Maletic of Priority Health. + Ignore comments in NIS host records when trying to find the + canonical name for a host. + Fix a memory leak when closing Hesiod maps. + Set ${msg_size} macro when reading a message from the command line + or the queue. + Prevent a segmentation fault when clearing the event list by + turning off alarms before checking if event list is + empty. Problem noted by Allan E Johannesen of Worcester + Polytechnic Institute. + Fix a potential core dump problem if the environment variable + NAME is set. Problem noted by Beth A. Chaney of + Purdue University. + Prevent a race condition on child cleanup for delivery to files. + Problem noted by Fletcher Mattox of the University of + Texas. + CONFIG: Do not bounce mail if FEATURE(`ldap_routing')'s bounce + parameter is set and the LDAP lookup returns a temporary + error. + CONFIG: Fix a syntax error in the try_tls ruleset if + FEATURE(`access_db') is not enabled. + LIBSMDB: Fix a lock race condition that affects makemap, praliases, + and vacation. + LIBSMDB: Avoid a file creation race condition for Berkeley DB 1.X + and NDBM on systems with the O_EXLOCK open(2) flag. + MAKEMAP: Avoid going beyond the end of an input line if it does + not contain a value for a key. Based on patch from + Mark Bixby from Hewlett-Packard. + MAIL.LOCAL: Fix a truncation race condition if the close() on + the mailbox fails. Problem noted by Tomoko Fukuzawa of + Sun Microsystems. + SMRSH: SECURITY: Only allow regular files or symbolic links to be + used for a command. Problem noted by David Endler of + iDEFENSE, Inc. + 8.11.6/8.11.6 2001/08/20 SECURITY: Fix a possible memory access violation when specifying out-of-bounds debug parameters. Problem detected by @@ -2686,10 +2814,9 @@ Log the DSN code for each recipient if one is available as a new equate (dsn=). Macro expand PostmasterCopy and DoubleBounceAddress options. - New "ph" map for performing ph queries in rulesets. More - information is available at - http://www-dev.cso.uiuc.edu/sendmail/. Contributed by Mark - Roth of the University of Illinois at Urbana-Champaign. + New "ph" map for performing ph queries in rulesets, see + sendmail/README for details. Contributed by Mark Roth + of the University of Illinois at Urbana-Champaign. Detect temporary lookup failures in the host map if looking up a bracketed IP address. Problem noted by Kari Hurtta of the Finnish Meteorological Institute. ==== //depot/projects/ia64/contrib/sendmail/cf/README#11 (text+ko) ==== @@ -2765,15 +2765,14 @@ Relaying -------- - SMTP STARTTLS can allow relaying for remote SMTP clients which have -successfully authenticated themselves. This is done in the ruleset -RelayAuth. If the verification of the cert failed (${verify} != OK), -relaying is subject to the usual rules. Otherwise the DN of the issuer is -looked up in the access map using the tag CERTISSUER. If the resulting -value is RELAY, relaying is allowed. If it is SUBJECT, the DN of the cert -subject is looked up next in the access map using the tag CERTSUBJECT. If -the value is RELAY, relaying is allowed. +successfully authenticated themselves. If the verification of the cert +failed (${verify} != OK), relaying is subject to the usual rules. +Otherwise the DN of the issuer is looked up in the access map using the +tag CERTISSUER. If the resulting value is RELAY, relaying is allowed. +If it is SUBJECT, the DN of the cert subject is looked up next in the +access map using the tag CERTSUBJECT. If the value is RELAY, relaying +is allowed. ${cert_issuer} and ${cert_subject} can be optionally modified by regular expressions defined in the m4 variables _CERT_REGEX_ISSUER_ and @@ -3245,7 +3244,9 @@ The [square brackets] turn off MX records for this host only. If you didn't do this, the mailertable would use the MX record -again, which would give you an MX loop. +again, which would give you an MX loop. Note that the use of +wildcard MX records is almost always a bad idea. Please avoid +using them if possible. +--------------------------------+ @@ -4374,4 +4375,4 @@ 8 DNS based blacklists 9 special local rulesets (1 and 2) -$Revision: 8.623.2.23 $, Last updated $Date: 2003/03/28 17:28:26 $ +$Revision: 8.623.2.25 $, Last updated $Date: 2003/06/18 18:47:21 $ ==== //depot/projects/ia64/contrib/sendmail/cf/cf/submit.cf#10 (text+ko) ==== @@ -1,5 +1,5 @@ # -# Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. +# Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 @@ -24,15 +24,15 @@ ###################################################################### ###################################################################### -##### $Id: cfhead.m4,v 8.108.2.2 2003/03/11 21:24:20 ca Exp $ ##### +##### $Id: cfhead.m4,v 8.108.2.3 2003/04/03 17:51:51 ca Exp $ ##### ##### $Id: cf.m4,v 8.32 1999/02/07 07:26:14 gshapiro Exp $ ##### -##### $Id: submit.mc,v 8.6.2.4 2002/12/29 03:54:34 ca Exp $ ##### +##### $Id: submit.mc,v 8.6.2.7 2003/09/10 22:11:56 ca Exp $ ##### ##### $Id: msp.m4,v 1.32 2002/03/26 22:02:03 ca Exp $ ##### ##### $Id: no_default_msa.m4,v 8.2 2001/02/14 05:03:22 gshapiro Exp $ ##### -##### $Id: proto.m4,v 8.649.2.17 2003/03/28 17:20:53 ca Exp $ ##### +##### $Id: proto.m4,v 8.649.2.24 2003/08/04 21:14:26 ca Exp $ ##### # level 10 config file format V10/Berkeley @@ -110,7 +110,7 @@ # Configuration version number -DZ8.12.9/Submit +DZ8.12.10/Submit ############### @@ -834,7 +834,8 @@ SMailerToTriple=95 R< > $* $@ $1 strip off null relay R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4 -R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2 +R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2 +R< error : $+ > $* $#error $: $1 R< local : $* > $* $>CanonLocal < $1 > $2 R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer @@ -1137,7 +1138,7 @@ R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated" R$* $| $&{auth_authen} $@ identical R$* $| <$&{auth_authen}> $@ identical -R$* $| $* $: $1 $| $>"Local_trust_auth" $1 +R$* $| $* $: $1 $| $>"Local_trust_auth" $2 R$* $| $#$* $#$2 R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author} ==== //depot/projects/ia64/contrib/sendmail/cf/cf/submit.mc#6 (text+ko) ==== @@ -1,6 +1,6 @@ divert(-1) # -# Copyright (c) 2001, 2002 Sendmail, Inc. and its suppliers. +# Copyright (c) 2001-2003 Sendmail, Inc. and its suppliers. # All rights reserved. # # By using this file, you agree to the terms and conditions set @@ -15,7 +15,7 @@ # divert(0)dnl -VERSIONID(`$Id: submit.mc,v 8.6.2.4 2002/12/29 03:54:34 ca Exp $') +VERSIONID(`$Id: submit.mc,v 8.6.2.7 2003/09/10 22:11:56 ca Exp $') define(`confCF_VERSION', `Submit')dnl define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet ==== //depot/projects/ia64/contrib/sendmail/cf/m4/cfhead.m4#8 (text+ko) ==== @@ -1,5 +1,5 @@ # -# Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. +# Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 @@ -9,7 +9,7 @@ # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # -# $FreeBSD: src/contrib/sendmail/cf/m4/cfhead.m4,v 1.14 2003/03/29 19:18:07 gshapiro Exp $ +# $FreeBSD: src/contrib/sendmail/cf/m4/cfhead.m4,v 1.15 2003/09/19 23:14:57 gshapiro Exp $ # ###################################################################### @@ -307,4 +307,4 @@ divert(0)dnl -VERSIONID(`$Id: cfhead.m4,v 8.108.2.2 2003/03/11 21:24:20 ca Exp $') +VERSIONID(`$Id: cfhead.m4,v 8.108.2.3 2003/04/03 17:51:51 ca Exp $') ==== //depot/projects/ia64/contrib/sendmail/cf/m4/proto.m4#11 (text+ko) ==== @@ -1,6 +1,6 @@ divert(-1) # -# Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. +# Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 @@ -13,7 +13,7 @@ # divert(0) -VERSIONID(`$Id: proto.m4,v 8.649.2.17 2003/03/28 17:20:53 ca Exp $') +VERSIONID(`$Id: proto.m4,v 8.649.2.24 2003/08/04 21:14:26 ca Exp $') # level CF_LEVEL config file format V`'CF_LEVEL/ifdef(`VENDOR_NAME', `VENDOR_NAME', `Berkeley') @@ -1283,6 +1283,7 @@ dnl input: in general: <[mailer:]host> lp<@domain>rest dnl <> address -> address dnl -> error +dnl -> error dnl -> error dnl lp<@domain>rest -> mailer host user dnl address -> mailer host address @@ -1293,7 +1294,8 @@ SMailerToTriple=95 R< > $* $@ $1 strip off null relay R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4 -R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2 +R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2 +R< error : $+ > $* $#error $: $1 R< local : $* > $* $>CanonLocal < $1 > $2 dnl it is $~[ instead of $- to avoid matches on IPv6 addresses R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user @@ -1909,8 +1911,10 @@ dnl prepend daemon_flags R<@> $* $: $&{daemon_flags} $| <@> $1 dnl workspace: ${daemon_flags} $| <@>
+dnl 'r'equire qual.rcpt: ok +R$* r $* $| <@> < $+ @ $+ > $: < $3 @ $4 > dnl do not allow these at all or only from local systems? -R$* r $* $| <@> < $* @ $* > $: < ? $&{client_name} > < $3 @ $4 > +R$* r $* $| <@> < $* > $: < ? $&{client_name} > < $3 > R < $* > $: <$1> R < $* > $: <$1> R <$+> $#error $@ 5.5.4 $: "553 Fully qualified domain name required" @@ -2195,22 +2199,24 @@ R$* <@ $* > $@ $1 <@ $2 > R$+ $@ $1 <@ $j > -SDelay_TLS_Client +SDelay_TLS_Clt # authenticated? dnl code repeated here from Basic_check_mail dnl only called from check_rcpt in delay mode if checkrcpt returns $# R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL R$* $| $#$+ $#$2 dnl return result from checkrcpt +R$* $| $* $# $1 R$* $# $1 -SDelay_TLS_Client2 +SDelay_TLS_Clt2 # authenticated? dnl code repeated here from Basic_check_mail dnl only called from check_rcpt in delay mode if stopping due to Friend/Hater R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL R$* $| $#$+ $#$2 dnl return result from friend/hater check +R$* $| $* $@ $1 R$* $@ $1 # call all necessary rulesets @@ -2225,7 +2231,7 @@ R$+ $| $#error $* $#error $2 R$+ $| $#discard $* $#discard $2 dnl otherwise call tls_client; see above -R$+ $| $#$* $@ $>"Delay_TLS_Client" $2 +R$+ $| $#$* $@ $>"Delay_TLS_Clt" $2 R$+ $| $* $: $>FullAddr $>CanonAddr $1 ifdef(`_SPAM_FH_', `dnl lookup user@ and user@address @@ -2247,13 +2253,13 @@ ifdef(`_SPAM_HATER_', `errprint(`*** ERROR: define either Hater or Friend -- not both. ')', `dnl') -R $+ $@ $>"Delay_TLS_Client2" SPAMFRIEND +R $+ $@ $>"Delay_TLS_Clt2" SPAMFRIEND R<$*> $+ $: $2', `dnl') ifdef(`_SPAM_HATER_', `# is the recipient no spam hater? R $+ $: $1 spam hater: continue checks -R<$*> $+ $@ $>"Delay_TLS_Client2" NOSPAMHATER everyone else: stop +R<$*> $+ $@ $>"Delay_TLS_Clt2" NOSPAMHATER everyone else: stop dnl',`dnl') dnl run further checks: check_mail dnl should we "clean up" $&f? @@ -2467,7 +2473,7 @@ R$* $| $&{auth_authen} $@ identical R$* $| <$&{auth_authen}> $@ identical dnl call user supplied code -R$* $| $* $: $1 $| $>"Local_trust_auth" $1 +R$* $| $* $: $1 $| $>"Local_trust_auth" $2 R$* $| $#$* $#$2 dnl default: error R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author} ==== //depot/projects/ia64/contrib/sendmail/cf/m4/version.m4#11 (text+ko) ==== @@ -11,8 +11,8 @@ # the sendmail distribution. # # -VERSIONID(`$Id: version.m4,v 8.92.2.15 2003/03/19 21:19:52 ca Exp $') +VERSIONID(`$Id: version.m4,v 8.92.2.22 2003/09/16 20:02:05 ca Exp $') # divert(0) # Configuration version number -DZ8.12.9`'ifdef(`confCF_VERSION', `/confCF_VERSION') +DZ8.12.10`'ifdef(`confCF_VERSION', `/confCF_VERSION') ==== //depot/projects/ia64/contrib/sendmail/contrib/domainmap.m4#3 (text+ko) ==== @@ -46,7 +46,7 @@ in the sendmail source tree. For more information, please see the following URL: - http://www-dev.cso.uiuc.edu/sendmail/domainmap/ + http://www-dev.cites.uiuc.edu/sendmail/domainmap/ Feedback is welcome. ==== //depot/projects/ia64/contrib/sendmail/contrib/doublebounce.pl#3 (text+ko) ==== @@ -36,7 +36,7 @@ use Socket; use Getopt::Std; -use POSIX; +use File::Temp; use Sys::Syslog qw(:DEFAULT setlogsock); use strict; use vars qw( $opt_d $tmpfile); @@ -125,7 +125,7 @@ # The bounced e-mail may be large, so we'd better not try to buffer # it in memory, get a temporary file. - $tmpfile = POSIX::tmpnam(); + $tmpfile = tmpnam(); if (!open(MSG, ">$tmpfile")) { syslog('err', "Unable to open temporary file $tmpfile"); ==== //depot/projects/ia64/contrib/sendmail/contrib/expn.pl#3 (text+ko) ==== @@ -8,6 +8,7 @@ use 5.001; use IO::Socket; +use Fcntl; # system requirements: # must have 'nslookup' and 'hostname' programs. @@ -999,7 +1000,7 @@ } $0 = "$av0 - nslookup of $server"; - open(T,">/tmp/expn$$") || die "open > /tmp/expn$$: $!\n"; + sysopen(T,"/tmp/expn$$",O_RDWR|O_CREAT|O_EXCL,0600) || die "open > /tmp/expn$$: $!\n"; print T "set querytype=MX\n"; print T "$server\n"; close(T); ==== //depot/projects/ia64/contrib/sendmail/doc/op/op.me#11 (text+ko) ==== @@ -9,7 +9,7 @@ .\" the sendmail distribution. .\" .\" -.\" $Id: op.me,v 8.609.2.23 2003/03/28 05:51:16 ca Exp $ +.\" $Id: op.me,v 8.609.2.26 2003/07/28 21:54:53 ca Exp $ .\" .\" eqn op.me | pic | troff -me .\" @@ -90,7 +90,7 @@ .de Ve Version \\$2 .. -.Ve $Revision: 8.609.2.23 $ +.Ve $Revision: 8.609.2.26 $ .rm Ve .sp For Sendmail Version 8.12 @@ -4307,8 +4307,11 @@ .pp The .i queuegroup -ruleset is used to map an address to a queue group name. -It should return +ruleset is used to map a recipient address to a queue group name. +The input for the ruleset is a recipient address as specified by the +.sm "SMTP RCPT" +command. +The ruleset should return .b $# followed by the name of a queue group. If the return value starts with anything else it is silently ignored. @@ -8270,7 +8273,7 @@ Mark Roth, roth@uiuc.edu. For more information, consult the web site -.q http://www-dev.cso.uiuc.edu/sendmail/ . +.q http://www-dev.cites.uiuc.edu/sendmail/ . .ip nsd nsd map for IRIX 6.5 and later. Contributed and supported by Bob Mende of SGI, @@ -9154,7 +9157,7 @@ For example, using the V8 M4 configuration, include the following line in your .mc file: .(b -define(\`confUSERDB_SPEC\', /etc/mail/userdb.db) +define(\`confUSERDB_SPEC\', /etc/mail/userdb) .)b .sh 1 "OTHER CONFIGURATION" .pp @@ -10764,7 +10767,7 @@ .\".sz 10 .\"Eric Allman .\".sp -.\"Version $Revision: 8.609.2.23 $ +.\"Version $Revision: 8.609.2.26 $ .\".ce 0 .bp 3 .ce ==== //depot/projects/ia64/contrib/sendmail/include/sm/conf.h#9 (text+ko) ==== @@ -10,7 +10,7 @@ * the sendmail distribution. * * - * $Id: conf.h,v 1.90.2.14 2003/03/06 18:38:06 ca Exp $ + * $Id: conf.h,v 1.90.2.18 2003/08/20 22:27:44 ca Exp $ */ /* @@ -102,7 +102,9 @@ # endif /* ! HASGETUSERSHELL */ # ifdef HPUX10 # define _PATH_SENDMAIL "/usr/sbin/sendmail" -# define SMRSH_CMDDIR "/var/adm/sm.bin" +# ifndef SMRSH_CMDDIR +# define SMRSH_CMDDIR "/var/adm/sm.bin" +# endif /* ! SMRSH_CMDDIR */ # endif /* HPUX10 */ # ifdef HPUX11 # define HASSETREUID 1 /* setreuid(2) works on HP-UX 11.x */ @@ -110,7 +112,9 @@ # ifndef BROKEN_RES_SEARCH # define BROKEN_RES_SEARCH 1 /* res_search(unknown) returns h_errno=0 */ # endif /* ! BROKEN_RES_SEARCH */ -# define SMRSH_CMDDIR "/var/adm/sm.bin" +# ifndef SMRSH_CMDDIR +# define SMRSH_CMDDIR "/var/adm/sm.bin" +# endif /* ! SMRSH_CMDDIR */ # define _PATH_SENDMAIL "/usr/sbin/sendmail" # else /* HPUX11 */ # ifndef NOT_SENDMAIL @@ -157,6 +161,9 @@ # ifdef _AIX5 # define _AIX4 40300 +# if _AIX5 >= 50200 +# define HASUNSETENV 1 /* has unsetenv(3) call */ +# endif /* _AIX5 >= 50200 */ # endif /* _AIX5 */ /* @@ -422,7 +429,9 @@ # if SOLARIS >= 20800 || (SOLARIS < 10000 && SOLARIS >= 208) # undef _PATH_SENDMAILPID /* tmpfs /var/run added in 2.8 */ # define _PATH_SENDMAILPID "/var/run/sendmail.pid" -# define SMRSH_CMDDIR "/var/adm/sm.bin" +# ifndef SMRSH_CMDDIR +# define SMRSH_CMDDIR "/var/adm/sm.bin" +# endif /* ! SMRSH_CMDDIR */ # define SL_FUDGE 34 /* fudge offset for SyslogPrefixLen */ # endif /* SOLARIS >= 20800 || (SOLARIS < 10000 && SOLARIS >= 208) */ # if SOLARIS >= 20900 || (SOLARIS < 10000 && SOLARIS >= 209) @@ -907,8 +916,12 @@ # define HASSETUSERCONTEXT 1 /* BSDI-style login classes */ # endif /* __FreeBSD_version >= 222000 */ # if __FreeBSD_version >= 330000 /* 3.3.0-release and later */ -# define SMRSH_CMDDIR "/usr/libexec/sm.bin" -# define SMRSH_PATH "/bin:/usr/bin" +# ifndef SMRSH_CMDDIR +# define SMRSH_CMDDIR "/usr/libexec/sm.bin" +# endif /* ! SMRSH_CMDDIR */ +# ifndef SMRSH_PATH +# define SMRSH_PATH "/bin:/usr/bin" +# endif /* ! SMRSH_PATH */ # endif /* __FreeBSD_version >= 330000 */ # define USESYSCTL 1 /* use sysctl(3) for getting ncpus */ # include @@ -922,7 +935,9 @@ # undef SPT_TYPE # define SPT_TYPE SPT_BUILTIN /* setproctitle is in libc */ # define HASSETLOGIN 1 /* has setlogin(2) */ -# define HASSETREUID 0 /* OpenBSD has broken setreuid(2) emulation */ +# if OpenBSD < 200305 +# define HASSETREUID 0 /* setreuid(2) broken in OpenBSD < 3.3 */ +# endif /* OpenBSD < 200305 */ # define HASSETEGID 1 /* use setegid(2) to set saved gid */ # define HASURANDOMDEV 1 /* has /dev/urandom(4) */ # if OpenBSD >= 200006 @@ -1360,6 +1375,11 @@ # define HASURANDOMDEV 1 /* 2.0 (at least) has linux/drivers/char/random.c */ # endif /* ! HASURANDOMDEV */ # endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,0,0)) */ +# if defined(__GLIBC__) && defined(__GLIBC_MINOR__) +# ifndef HASSTRERROR +# define HASSTRERROR 1 /* has strerror(3) */ +# endif /* HASSTRERROR */ +# endif /* defined(__GLIBC__) && defined(__GLIBC_MINOR__) */ # ifndef TZ_TYPE # define TZ_TYPE TZ_NONE /* no standard for Linux */ # endif /* ! TZ_TYPE */ @@ -1385,7 +1405,6 @@ ** in 2.1 and later, but the APIs appear before the functions. */ # if defined(__GLIBC__) && defined(__GLIBC_MINOR__) -# define HASSTRERROR 1 /* has strerror(3) */ # define GLIBC_VERSION ((__GLIBC__ << 8) + __GLIBC_MINOR__) # if (GLIBC_VERSION >= 0x201) # undef IPPROTO_ICMPV6 /* linux #defines, glibc enums */ @@ -2547,7 +2566,7 @@ # endif /* ! EX_CONFIG */ /* pseudo-codes */ -# define EX_QUIT 22 /* drop out of server immediately */ +# define EX_QUIT 22 /* drop out of server immediately */ # define EX_RESTART 23 /* restart sendmail daemon */ # define EX_SHUTDOWN 24 /* shutdown sendmail daemon */ ==== //depot/projects/ia64/contrib/sendmail/include/sm/errstring.h#4 (text+ko) ==== @@ -1,13 +1,12 @@ /* - * Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2001, 2003 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * - * $Id: errstring.h,v 1.4 2001/06/07 20:04:53 ca Exp $ + * $Id: errstring.h,v 1.4.4.3 2003/06/24 17:16:10 ca Exp $ */ /* @@ -46,6 +45,7 @@ #define E_SMDBBASE (E_PSEUDOBASE + 40) /* base for libsmdb errors */ #define E_LDAPBASE (E_PSEUDOBASE + 70) /* base for LDAP errors */ + /* libsmdb */ #define SMDBE_OK 0 #define SMDBE_MALLOC (E_SMDBBASE + 1) @@ -71,9 +71,9 @@ #define SMDBE_NOT_A_VALID_CURSOR (E_SMDBBASE + 21) #define SMDBE_LAST_ENTRY (E_SMDBBASE + 22) #define SMDBE_OLD_VERSION (E_SMDBBASE + 23) +#define SMDBE_VERSION_MISMATCH (E_SMDBBASE + 24) + +extern const char *sm_errstring __P((int _errno)); -extern const char * -sm_errstring __P(( - int _errno)); #endif /* SM_ERRSTRING_H */ ==== //depot/projects/ia64/contrib/sendmail/include/sm/io.h#5 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers. + * Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1990 * The Regents of the University of California. All rights reserved. @@ -11,7 +11,7 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $Id: io.h,v 1.23 2002/02/23 19:32:17 gshapiro Exp $ + * $Id: io.h,v 1.23.2.2 2003/09/05 20:35:28 ca Exp $ */ /*- @@ -33,6 +33,17 @@ #define SM_IO_APPENDRW 5 /* read-write from eof */ #define SM_IO_RDWRTR 6 /* read-write with truncation indicated */ +# define SM_IO_BINARY 0x0 /* binary mode: not used in Unix */ +#define SM_IS_BINARY(mode) ((mode) & SM_IO_BINARY != 0) +#define SM_IO_MODE(mode) ((mode) & 0x0f) + +#define SM_IO_RDWR_B (SM_IO_RDWR|SM_IO_BINARY) +#define SM_IO_RDONLY_B (SM_IO_RDONLY|SM_IO_BINARY) +#define SM_IO_WRONLY_B (SM_IO_WRONLY|SM_IO_BINARY) +#define SM_IO_APPEND_B (SM_IO_APPEND|SM_IO_BINARY) +#define SM_IO_APPENDRW_B (SM_IO_APPENDRW|SM_IO_BINARY) +#define SM_IO_RDWRTR_B (SM_IO_RDWRTR|SM_IO_BINARY) + /* for sm_io_fseek, et al api's (exposed) */ #define SM_IO_SEEK_SET 0 #define SM_IO_SEEK_CUR 1 ==== //depot/projects/ia64/contrib/sendmail/include/sm/os/sm_os_aix.h#4 (text+ko) ==== @@ -1,12 +1,12 @@ /* - * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers. + * Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $Id: sm_os_aix.h,v 1.9 2001/10/09 23:12:13 ca Exp $ + * $Id: sm_os_aix.h,v 1.9.2.1 2003/04/28 23:11:07 ca Exp $ */ /* @@ -33,3 +33,7 @@ # endif /* SM_CONF_SYSLOG */ # endif /* ! _AIX4 */ #endif /* _AIX3 */ + +#if _AIX5 >= 50200 +# define SM_CONF_LONGLONG 1 +#endif /* _AIX5 >= 50200 */ ==== //depot/projects/ia64/contrib/sendmail/include/sm/shm.h#4 (text+ko) ==== @@ -1,12 +1,12 @@ /* - * Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers. + * Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $Id: shm.h,v 1.8 2002/04/10 23:11:35 ca Exp $ + * $Id: shm.h,v 1.8.2.2 2003/05/17 18:34:16 ca Exp $ */ #ifndef SM_SHM_H @@ -29,6 +29,7 @@ extern void *sm_shmstart __P((key_t, int , int , int *, bool)); extern int sm_shmstop __P((void *, int, bool)); + /* for those braindead systems... (e.g., SunOS 4) */ # ifndef SHM_R # define SHM_R 0400 ==== //depot/projects/ia64/contrib/sendmail/libmilter/README#6 (text+ko) ==== @@ -427,6 +427,7 @@ int argc; char *argv[]; { + bool setconn = false; int c; const char *args = "p:"; @@ -443,10 +444,16 @@ exit(EX_USAGE); } (void) smfi_setconn(optarg); + setconn = true; break; } } + if (!setconn) + { + fprintf(stderr, "%s: Missing required -p argument\n", argv[0]); + exit(EX_USAGE); + } if (smfi_register(smfilter) == MI_FAILURE) { fprintf(stderr, "smfi_register failed\n"); @@ -457,4 +464,4 @@ /* eof */ -$Revision: 8.35.2.1 $, Last updated $Date: 2002/10/21 14:31:57 $ +$Revision: 8.35.2.2 $, Last updated $Date: 2003/05/26 04:10:06 $ ==== //depot/projects/ia64/contrib/sendmail/libmilter/docs/sample.html#4 (text+ko) ==== @@ -379,7 +379,7 @@ char *prog; { fprintf(stderr, - "Usage: %s [-p socket-addr] [-t timeout] [-r reject-addr] [-a add-addr]\n", + "Usage: %s -p socket-addr [-t timeout] [-r reject-addr] [-a add-addr]\n", prog); } @@ -388,6 +388,7 @@ int argc; char **argv; { + bool setconn = FALSE; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Sep 19 21:44:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B44A616A4C0; Fri, 19 Sep 2003 21:44:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8D76B16A4B3 for ; Fri, 19 Sep 2003 21:44:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC88543FAF for ; Fri, 19 Sep 2003 21:44:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8K4ieXJ009253 for ; Fri, 19 Sep 2003 21:44:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8K4ieg2009248 for perforce@freebsd.org; Fri, 19 Sep 2003 21:44:40 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 21:44:40 -0700 (PDT) Message-Id: <200309200444.h8K4ieg2009248@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38317 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 04:44:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=38317 Change 38317 by marcel@marcel_nfs on 2003/09/19 21:44:25 IFC @38316 Affected files ... .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#27 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#127 integrate .. //depot/projects/ia64/share/man/man4/uart.4#3 integrate .. //depot/projects/ia64/sys/kern/sched_ule.c#25 integrate .. //depot/projects/ia64/sys/kern/vfs_subr.c#55 integrate Differences ... ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#27 (text+ko) ==== @@ -38,7 +38,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.49 2003/09/16 23:25:48 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.50 2003/09/20 00:17:52 bmah Exp $ 2000 @@ -157,6 +157,15 @@ security fix branch. For more details, refer to security advisory FreeBSD-SA-03:12. + + sendmail contains a + remotely-exploitable buffer overflow. This bug has been fixed + via a new version import on the &release.branch; development + branch and via a vendor-supplied patch on the &release.prev; + security fix branch. More details can be found in security + advisory + FreeBSD-SA-03:13. + ]]> ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#127 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.625 2003/09/19 23:23:55 gshapiro Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.626 2003/09/20 00:01:29 bmah Exp $ 2000 @@ -141,6 +141,11 @@ security advisory FreeBSD-SA-03:12. &merged; + A buffer overflow in sendmail has + been fixed. More information can be found in security advisory + FreeBSD-SA-03:13. + &merged; + @@ -569,10 +574,10 @@ architectures. The supported release of GNOME has - been updated from 2.2.1 to 2.2.2. &merged; + been updated from 2.2.1 to 2.4. &merged; The supported release of KDE has - been updated from 3.1.2 to 3.1.3. &merged; + been updated from 3.1.2 to 3.1.4. &merged; ==== //depot/projects/ia64/share/man/man4/uart.4#3 (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/share/man/man4/uart.4,v 1.3 2003/09/07 16:34:03 hmp Exp $ +.\" $FreeBSD: src/share/man/man4/uart.4,v 1.4 2003/09/20 04:13:16 marcel Exp $ .\" .Dd August 25, 2003 .Dt UART 4 @@ -114,4 +114,4 @@ .Fx 5.2 . .Sh AUTHORS This manual page was written by -.An Marcel Molenaar Aq marcel@FreeBSD.ORG . +.An Marcel Moolenaar Aq marcel@xcllnt.net . ==== //depot/projects/ia64/sys/kern/sched_ule.c#25 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.55 2003/08/26 11:33:15 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.56 2003/09/20 02:05:58 jeff Exp $"); #include #include @@ -718,15 +718,17 @@ /* * Adjust counters and watermark for pctcpu calc. */ - - /* - * Shift the tick count out so that the divide doesn't round away - * our results. - */ - ke->ke_ticks <<= 10; - ke->ke_ticks = (ke->ke_ticks / (ke->ke_ltick - ke->ke_ftick)) * - SCHED_CPU_TICKS; - ke->ke_ticks >>= 10; + if (ke->ke_ltick > ticks - SCHED_CPU_TICKS) { + /* + * Shift the tick count out so that the divide doesn't + * round away our results. + */ + ke->ke_ticks <<= 10; + ke->ke_ticks = (ke->ke_ticks / (ticks - ke->ke_ftick)) * + SCHED_CPU_TICKS; + ke->ke_ticks >>= 10; + } else + ke->ke_ticks = 0; ke->ke_ltick = ticks; ke->ke_ftick = ke->ke_ltick - SCHED_CPU_TICKS; } @@ -1307,7 +1309,6 @@ */ if (ke->ke_ltick < (ticks - (hz / 2))) sched_pctcpu_update(ke); - /* How many rtick per second ? */ rtick = min(ke->ke_ticks / SCHED_CPU_TIME, SCHED_CPU_TICKS); pctcpu = (FSCALE * ((FSCALE * rtick)/realstathz)) >> FSHIFT; ==== //depot/projects/ia64/sys/kern/vfs_subr.c#55 (text+ko) ==== @@ -43,7 +43,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.456 2003/09/19 19:13:54 kan Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.458 2003/09/20 00:21:48 jeff Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -744,7 +744,6 @@ vnlru_proc(void) { struct mount *mp, *nmp; - int s; int done; struct proc *p = vnlruproc; struct thread *td = FIRST_THREAD_IN_PROC(p); /* XXXKSE */ @@ -754,7 +753,6 @@ EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, p, SHUTDOWN_PRI_FIRST); - s = splbio(); for (;;) { kthread_suspend_check(p); mtx_lock(&vnode_free_list_mtx); @@ -791,7 +789,6 @@ tsleep(vnlruproc, PPAUSE, "vlrup", hz * 3); } } - splx(s); } static struct kproc_desc vnlru_kp = { @@ -1107,7 +1104,7 @@ int slpflag, slptimeo; { struct buf *blist; - int s, error; + int error; vm_object_t object; GIANT_REQUIRED; @@ -1116,19 +1113,16 @@ VI_LOCK(vp); if (flags & V_SAVE) { - s = splbio(); while (vp->v_numoutput) { vp->v_iflag |= VI_BWAIT; error = msleep(&vp->v_numoutput, VI_MTX(vp), slpflag | (PRIBIO + 1), "vinvlbuf", slptimeo); if (error) { VI_UNLOCK(vp); - splx(s); return (error); } } if (!TAILQ_EMPTY(&vp->v_dirtyblkhd)) { - splx(s); VI_UNLOCK(vp); if ((error = VOP_FSYNC(vp, cred, MNT_WAIT, td)) != 0) return (error); @@ -1137,14 +1131,11 @@ * enabled under INVARIANTS */ VI_LOCK(vp); - s = splbio(); if (vp->v_numoutput > 0 || !TAILQ_EMPTY(&vp->v_dirtyblkhd)) panic("vinvalbuf: dirty bufs"); } - splx(s); } - s = splbio(); /* * If you alter this loop please notice that interlock is dropped and * reacquired in flushbuflist. Special care is needed to ensure that @@ -1166,7 +1157,6 @@ break; } if (error) { - splx(s); VI_UNLOCK(vp); return (error); } @@ -1191,8 +1181,6 @@ } while (vp->v_numoutput > 0); VI_UNLOCK(vp); - splx(s); - /* * Destroy the copy in the VM cache, too. */ @@ -1298,7 +1286,7 @@ { register struct buf *bp; struct buf *nbp; - int s, anyfreed; + int anyfreed; int trunclbn; /* @@ -1306,7 +1294,6 @@ */ trunclbn = (length + blksize - 1) / blksize; - s = splbio(); ASSERT_VOP_LOCKED(vp, "vtruncbuf"); restart: VI_LOCK(vp); @@ -1390,8 +1377,6 @@ msleep(&vp->v_numoutput, VI_MTX(vp), PVM, "vbtrunc", 0); } VI_UNLOCK(vp); - splx(s); - vnode_pager_setsize(vp, length); return (0); @@ -1616,8 +1601,6 @@ register struct vnode *vp; register struct buf *bp; { - int s; - KASSERT(bp->b_vp == NULL, ("bgetvp: not free")); KASSERT((bp->b_xflags & (BX_VNDIRTY|BX_VNCLEAN)) == 0, @@ -1630,9 +1613,7 @@ /* * Insert onto list for new vnode. */ - s = splbio(); buf_vlist_add(bp, vp, BX_VNCLEAN); - splx(s); } /* @@ -1643,7 +1624,6 @@ register struct buf *bp; { struct vnode *vp; - int s; KASSERT(bp->b_vp != NULL, ("brelvp: NULL")); @@ -1651,7 +1631,6 @@ * Delete from old vnode list, if on one. */ vp = bp->b_vp; - s = splbio(); VI_LOCK(vp); if (bp->b_xflags & (BX_VNDIRTY | BX_VNCLEAN)) buf_vlist_remove(bp); @@ -1662,11 +1641,10 @@ mtx_unlock(&sync_mtx); } vdropl(vp); - VI_UNLOCK(vp); bp->b_vp = (struct vnode *) 0; if (bp->b_object) bp->b_object = NULL; - splx(s); + VI_UNLOCK(vp); } /* @@ -1675,9 +1653,8 @@ static void vn_syncer_add_to_worklist(struct vnode *vp, int delay) { - int s, slot; + int slot; - s = splbio(); ASSERT_VI_LOCKED(vp, "vn_syncer_add_to_worklist"); mtx_lock(&sync_mtx); @@ -1692,8 +1669,6 @@ LIST_INSERT_HEAD(&syncer_workitem_pending[slot], vp, v_synclist); mtx_unlock(&sync_mtx); - - splx(s); } struct proc *updateproc; @@ -1715,7 +1690,6 @@ struct vnode *vp; struct mount *mp; long starttime; - int s; struct thread *td = FIRST_THREAD_IN_PROC(updateproc); /* XXXKSE */ mtx_lock(&Giant); @@ -1732,13 +1706,11 @@ * Push files whose dirty time has expired. Be careful * of interrupt race on slp queue. */ - s = splbio(); mtx_lock(&sync_mtx); slp = &syncer_workitem_pending[syncer_delayno]; syncer_delayno += 1; if (syncer_delayno == syncer_maxdelay) syncer_delayno = 0; - splx(s); while ((vp = LIST_FIRST(slp)) != NULL) { mtx_unlock(&sync_mtx); @@ -1749,7 +1721,6 @@ VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); } - s = splbio(); mtx_lock(&sync_mtx); if (LIST_FIRST(slp) == vp) { mtx_unlock(&sync_mtx); @@ -1775,7 +1746,6 @@ VI_UNLOCK(vp); mtx_lock(&sync_mtx); } - splx(s); } mtx_unlock(&sync_mtx); @@ -1899,13 +1869,14 @@ register struct buf *bp; register struct vnode *newvp; { + struct vnode *vp; int delay; - int s; if (newvp == NULL) { printf("reassignbuf: NULL"); return; } + vp = bp->b_vp; ++reassignbufcalls; /* @@ -1915,24 +1886,25 @@ if (bp->b_flags & B_PAGING) panic("cannot reassign paging buffer"); - s = splbio(); /* * Delete from old vnode list, if on one. */ - VI_LOCK(bp->b_vp); + VI_LOCK(vp); if (bp->b_xflags & (BX_VNDIRTY | BX_VNCLEAN)) { buf_vlist_remove(bp); - if (bp->b_vp != newvp) { + if (vp != newvp) { vdropl(bp->b_vp); bp->b_vp = NULL; /* for clarification */ } } - VI_UNLOCK(bp->b_vp); + if (vp != newvp) { + VI_UNLOCK(vp); + VI_LOCK(newvp); + } /* * If dirty, put on list of dirty buffers; otherwise insert onto list * of clean buffers. */ - VI_LOCK(newvp); if (bp->b_flags & B_DELWRI) { if ((newvp->v_iflag & VI_ONWORKLST) == 0) { switch (newvp->v_type) { @@ -1967,7 +1939,6 @@ vholdl(bp->b_vp); } VI_UNLOCK(newvp); - splx(s); } /* @@ -2306,13 +2277,9 @@ vholdl(vp) register struct vnode *vp; { - int s; - - s = splbio(); vp->v_holdcnt++; if (VSHOULDBUSY(vp)) vbusy(vp); - splx(s); } /* @@ -2331,9 +2298,6 @@ vdropl(vp) register struct vnode *vp; { - int s; - - s = splbio(); if (vp->v_holdcnt <= 0) panic("vdrop: holdcnt"); vp->v_holdcnt--; @@ -2341,7 +2305,6 @@ vfree(vp); else vlruvp(vp); - splx(s); } /* @@ -2621,13 +2584,14 @@ VI_LOCK(vp); v_incr_usecount(vp, -1); if (vp->v_usecount <= 0) { -#ifdef DIAGNOSTIC +#ifdef INVARIANTS if (vp->v_usecount < 0 || vp->v_writecount != 0) { vprint("vclean: bad ref count", vp); panic("vclean: ref cnt"); } #endif - vfree(vp); + if (VSHOULDFREE(vp)) + vfree(vp); } VI_UNLOCK(vp); } @@ -2741,8 +2705,6 @@ struct vnode *vp; struct thread *td; { - int s; - /* * If a vgone (or vclean) is already in progress, * wait until it is done and return. @@ -2791,7 +2753,6 @@ */ VI_LOCK(vp); if (vp->v_usecount == 0 && !(vp->v_iflag & VI_DOOMED)) { - s = splbio(); mtx_lock(&vnode_free_list_mtx); if (vp->v_iflag & VI_FREE) { TAILQ_REMOVE(&vnode_free_list, vp, v_freelist); @@ -2801,7 +2762,6 @@ } TAILQ_INSERT_HEAD(&vnode_free_list, vp, v_freelist); mtx_unlock(&vnode_free_list_mtx); - splx(s); } vp->v_type = VBAD; @@ -3288,10 +3248,7 @@ vfree(vp) struct vnode *vp; { - int s; - ASSERT_VI_LOCKED(vp, "vfree"); - s = splbio(); mtx_lock(&vnode_free_list_mtx); KASSERT((vp->v_iflag & VI_FREE) == 0, ("vnode already free")); if (vp->v_iflag & VI_AGE) { @@ -3303,7 +3260,6 @@ mtx_unlock(&vnode_free_list_mtx); vp->v_iflag &= ~VI_AGE; vp->v_iflag |= VI_FREE; - splx(s); } /* @@ -3313,9 +3269,6 @@ vbusy(vp) struct vnode *vp; { - int s; - - s = splbio(); ASSERT_VI_LOCKED(vp, "vbusy"); KASSERT((vp->v_iflag & VI_FREE) != 0, ("vnode not free")); @@ -3325,7 +3278,6 @@ mtx_unlock(&vnode_free_list_mtx); vp->v_iflag &= ~(VI_FREE|VI_AGE); - splx(s); } /* @@ -3559,7 +3511,7 @@ /* * The syncer vnode is no longer needed and is being decommissioned. * - * Modifications to the worklist must be protected at splbio(). + * Modifications to the worklist must be protected by sync_mtx. */ static int sync_reclaim(ap) @@ -3568,11 +3520,9 @@ } */ *ap; { struct vnode *vp = ap->a_vp; - int s; - s = splbio(); + VI_LOCK(vp); vp->v_mount->mnt_syncer = NULL; - VI_LOCK(vp); if (vp->v_iflag & VI_ONWORKLST) { mtx_lock(&sync_mtx); LIST_REMOVE(vp, v_synclist); @@ -3580,7 +3530,6 @@ vp->v_iflag &= ~VI_ONWORKLST; } VI_UNLOCK(vp); - splx(s); return (0); } From owner-p4-projects@FreeBSD.ORG Fri Sep 19 21:49:48 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 24A1F16A4C0; Fri, 19 Sep 2003 21:49:48 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 00EAC16A4B3 for ; Fri, 19 Sep 2003 21:49:48 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ECE143FE9 for ; Fri, 19 Sep 2003 21:49:47 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8K4nlXJ009476 for ; Fri, 19 Sep 2003 21:49:47 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8K4nlbF009473 for perforce@freebsd.org; Fri, 19 Sep 2003 21:49:47 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 21:49:47 -0700 (PDT) Message-Id: <200309200449.h8K4nlbF009473@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38318 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 04:49:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=38318 Change 38318 by marcel@marcel_nfs on 2003/09/19 21:49:01 Diff reduction: $FreeBSD$ propagation. Affected files ... .. //depot/projects/uart/dev/puc/puc_ebus.c#5 edit .. //depot/projects/uart/dev/puc/puc_sbus.c#5 edit Differences ... ==== //depot/projects/uart/dev/puc/puc_ebus.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/puc/puc_ebus.c,v 1.1 2003/09/06 21:48:50 marcel Exp $"); #include "opt_puc.h" ==== //depot/projects/uart/dev/puc/puc_sbus.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/puc/puc_sbus.c,v 1.1 2003/09/06 21:48:50 marcel Exp $"); #include "opt_puc.h" From owner-p4-projects@FreeBSD.ORG Fri Sep 19 21:51:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C5A6016A4C0; Fri, 19 Sep 2003 21:51:51 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8389C16A4B3 for ; Fri, 19 Sep 2003 21:51:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EE47E43FAF for ; Fri, 19 Sep 2003 21:51:50 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8K4poXJ010001 for ; Fri, 19 Sep 2003 21:51:50 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8K4po9t009997 for perforce@freebsd.org; Fri, 19 Sep 2003 21:51:50 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 21:51:50 -0700 (PDT) Message-Id: <200309200451.h8K4po9t009997@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38319 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 04:51:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=38319 Change 38319 by marcel@marcel_nfs on 2003/09/19 21:51:37 Diff reduction: $FreeBSD$ expansion. Affected files ... .. //depot/projects/uart/dev/uart/uart.h#4 edit .. //depot/projects/uart/dev/uart/uart_bus_acpi.c#3 edit .. //depot/projects/uart/dev/uart/uart_bus_ebus.c#5 edit .. //depot/projects/uart/dev/uart/uart_bus_isa.c#3 edit .. //depot/projects/uart/dev/uart/uart_bus_pci.c#5 edit .. //depot/projects/uart/dev/uart/uart_bus_puc.c#7 edit .. //depot/projects/uart/dev/uart/uart_dev_ns8250.h#4 edit .. //depot/projects/uart/dev/uart/uart_dev_sab82532.h#3 edit .. //depot/projects/uart/dev/uart/uart_dev_z8530.h#7 edit Differences ... ==== //depot/projects/uart/dev/uart/uart.h#4 (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$ + * $FreeBSD: src/sys/dev/uart/uart.h,v 1.1 2003/09/06 23:13:47 marcel Exp $ */ #ifndef _DEV_UART_H_ ==== //depot/projects/uart/dev/uart/uart_bus_acpi.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_acpi.c,v 1.1 2003/09/06 23:13:47 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_bus_ebus.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_ebus.c,v 1.1 2003/09/06 23:13:47 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_bus_isa.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_isa.c,v 1.1 2003/09/06 23:13:47 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_bus_pci.c#5 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_pci.c,v 1.1 2003/09/06 23:13:47 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_bus_puc.c#7 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_puc.c,v 1.1 2003/09/06 23:13:47 marcel Exp $"); #include #include ==== //depot/projects/uart/dev/uart/uart_dev_ns8250.h#4 (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$ + * $FreeBSD: src/sys/dev/uart/uart_dev_ns8250.h,v 1.1 2003/09/06 23:13:47 marcel Exp $ */ #ifndef _DEV_UART_DEV_NS8250_H_ ==== //depot/projects/uart/dev/uart/uart_dev_sab82532.h#3 (text+ko) ==== @@ -34,7 +34,7 @@ * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537. * - * $FreeBSD: src/sys/dev/sab/sab82532reg.h,v 1.1 2002/08/04 18:36:36 jake Exp $ + * $FreeBSD: src/sys/dev/uart/uart_dev_sab82532.h,v 1.1 2003/09/06 23:13:47 marcel Exp $ */ /* ==== //depot/projects/uart/dev/uart/uart_dev_z8530.h#7 (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$ + * $FreeBSD: src/sys/dev/uart/uart_dev_z8530.h,v 1.1 2003/09/06 23:13:47 marcel Exp $ */ #ifndef _DEV_UART_DEV_Z8530_H_ From owner-p4-projects@FreeBSD.ORG Fri Sep 19 21:53:59 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1464916A4C1; Fri, 19 Sep 2003 21:53:59 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E207916A4B3 for ; Fri, 19 Sep 2003 21:53:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C135343FBD for ; Fri, 19 Sep 2003 21:53:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8K4rtXJ010070 for ; Fri, 19 Sep 2003 21:53:55 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8K4rsHQ010067 for perforce@freebsd.org; Fri, 19 Sep 2003 21:53:54 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Fri, 19 Sep 2003 21:53:54 -0700 (PDT) Message-Id: <200309200453.h8K4rsHQ010067@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38320 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 04:53:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=38320 Change 38320 by marcel@marcel_nfs on 2003/09/19 21:53:08 IFC @38316 Affected files ... .. //depot/projects/uart/alpha/conf/GENERIC#3 integrate .. //depot/projects/uart/amd64/conf/GENERIC#5 integrate .. //depot/projects/uart/conf/NOTES#14 integrate .. //depot/projects/uart/contrib/dev/acpica/rsaddr.c#3 integrate .. //depot/projects/uart/contrib/dev/acpica/rsirq.c#3 integrate .. //depot/projects/uart/crypto/rijndael/rijndael-api-fst.c#3 integrate .. //depot/projects/uart/dev/acpica/acpi.c#11 integrate .. //depot/projects/uart/dev/ata/ata-lowlevel.c#8 integrate .. //depot/projects/uart/dev/ata/ata-queue.c#4 integrate .. //depot/projects/uart/dev/ata/atapi-cam.c#6 integrate .. //depot/projects/uart/dev/puc/pucdata.c#8 integrate .. //depot/projects/uart/dev/re/if_re.c#4 integrate .. //depot/projects/uart/dev/sio/sio.c#8 integrate .. //depot/projects/uart/dev/usb/if_aue.c#5 integrate .. //depot/projects/uart/dev/usb/usbdevs#6 integrate .. //depot/projects/uart/dev/usb/usbdevs.h#5 integrate .. //depot/projects/uart/dev/usb/usbdevs_data.h#5 integrate .. //depot/projects/uart/fs/nwfs/nwfs_io.c#3 integrate .. //depot/projects/uart/fs/smbfs/smbfs_io.c#3 integrate .. //depot/projects/uart/i386/conf/GENERIC#4 integrate .. //depot/projects/uart/i386/conf/NOTES#5 integrate .. //depot/projects/uart/i386/i386/trap.c#4 integrate .. //depot/projects/uart/i386/include/pci_cfgreg.h#2 integrate .. //depot/projects/uart/ia64/ia64/genassym.c#5 integrate .. //depot/projects/uart/ia64/ia64/machdep.c#12 integrate .. //depot/projects/uart/ia64/ia64/trap.c#7 integrate .. //depot/projects/uart/ia64/include/cpu.h#7 integrate .. //depot/projects/uart/kern/kern_malloc.c#4 integrate .. //depot/projects/uart/kern/kern_proc.c#5 integrate .. //depot/projects/uart/kern/sched_ule.c#6 integrate .. //depot/projects/uart/kern/vfs_subr.c#4 integrate .. //depot/projects/uart/nfsclient/nfs_bio.c#2 integrate .. //depot/projects/uart/pc98/pc98/fd.c#5 integrate .. //depot/projects/uart/pci/if_rlreg.h#9 integrate .. //depot/projects/uart/sys/lock.h#3 integrate .. //depot/projects/uart/sys/mutex.h#4 integrate .. //depot/projects/uart/vm/uma.h#2 integrate .. //depot/projects/uart/vm/uma_core.c#10 integrate .. //depot/projects/uart/vm/uma_dbg.c#2 integrate .. //depot/projects/uart/vm/uma_int.h#4 integrate .. //depot/projects/uart/vm/vm_fault.c#3 integrate .. //depot/projects/uart/vm/vm_pageout.c#8 integrate .. //depot/projects/uart/vm/vnode_pager.c#6 integrate Differences ... ==== //depot/projects/uart/alpha/conf/GENERIC#3 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.162 2003/07/21 19:15:25 ticso Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.163 2003/09/19 20:04:55 joerg Exp $ machine alpha cpu EV4 @@ -139,6 +139,11 @@ device ppi # Parallel port interface device #device vpo # Requires scbus and da +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to the sio and/or ppc drivers): +#device puc + # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') device txp # 3Com 3cR990 (``Typhoon'') ==== //depot/projects/uart/amd64/conf/GENERIC#5 (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.395 2003/09/15 22:40:00 obrien Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.396 2003/09/19 20:04:55 joerg Exp $ machine amd64 cpu HAMMER @@ -158,6 +158,10 @@ device ppi # Parallel port interface device #device vpo # Requires scbus and da +# If you've got a "dumb" serial or parallel PCI card that is +# supported by the puc(4) glue driver, uncomment the following +# line to enable it (connects to the sio and/or ppc drivers): +#device puc # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') ==== //depot/projects/uart/conf/NOTES#14 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1175 2003/09/11 23:06:41 marcel Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1176 2003/09/19 19:04:30 jhb Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -167,6 +167,13 @@ # CPU. options ADAPTIVE_MUTEXES +# MUTEX_NOINLINE forces mutex operations to call functions to perform each +# operation rather than inlining the simple cases. This can be used to +# shrink the size of the kernel text segment. Note that this behavior is +# already implied by the INVARIANT_SUPPORT, INVARIANTS, MUTEX_PROFILING, +# and WITNESS options. +options MUTEX_NOINLINE + # SMP Debugging Options: # # MUTEX_DEBUG enables various extra assertions in the mutex code. ==== //depot/projects/uart/contrib/dev/acpica/rsaddr.c#3 (text+ko) ==== @@ -168,6 +168,10 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 13) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); + *BytesConsumed = Temp16 + 3; OutputStruct->Id = ACPI_RSTYPE_ADDRESS16; @@ -275,11 +279,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 16) + if (*BytesConsumed > 16 + 1) { /* Dereference the Index */ @@ -555,6 +561,10 @@ */ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + + /* Check for the minimum length. */ + if (Temp16 < 23) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; OutputStruct->Id = ACPI_RSTYPE_ADDRESS32; @@ -667,9 +677,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 26) + if (*BytesConsumed > 26 + 1) { /* Dereference the Index */ @@ -944,7 +958,11 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 43) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; + OutputStruct->Id = ACPI_RSTYPE_ADDRESS64; /* @@ -1056,11 +1074,13 @@ /* * This will leave us pointing to the Resource Source Index * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. + * pointer to where the null terminated string goes. + * + * Note that some buggy resources have a length that indicates the + * Index byte is present even though it isn't (since there is no + * following Resource String.) We add one to catch these. */ - if (*BytesConsumed > 46) + if (*BytesConsumed > 46 + 1) { /* Dereference the Index */ ==== //depot/projects/uart/contrib/dev/acpica/rsirq.c#3 (text+ko) ==== @@ -408,7 +408,11 @@ Buffer += 1; ACPI_MOVE_16_TO_16 (&Temp16, Buffer); + /* Check for the minimum length. */ + if (Temp16 < 6) + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); *BytesConsumed = Temp16 + 3; + OutputStruct->Id = ACPI_RSTYPE_EXT_IRQ; /* @@ -446,6 +450,12 @@ Buffer += 1; Temp8 = *Buffer; + /* Minimum number of IRQs is one. */ + if (Temp8 < 1) { + *BytesConsumed = 0; + return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE); + } + OutputStruct->Data.ExtendedIrq.NumberOfInterrupts = Temp8; /* @@ -480,7 +490,8 @@ * stream that are default. */ if (*BytesConsumed > - ((ACPI_SIZE) OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + 5) + ((ACPI_SIZE) OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + + 5 + 1) { /* Dereference the Index */ ==== //depot/projects/uart/crypto/rijndael/rijndael-api-fst.c#3 (text+ko) ==== @@ -16,7 +16,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.6 2003/09/17 08:51:43 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/rijndael/rijndael-api-fst.c,v 1.7 2003/09/18 17:26:56 ume Exp $"); #include #include @@ -246,7 +246,7 @@ outBuffer += 16; } padLen = 16 - (inputOctets - 16*numBlocks); - if (padLen > 0 && padLen <= 16) + if (padLen <= 0 || padLen > 16) return BAD_CIPHER_STATE; for (i = 0; i < 16 - padLen; i++) { block[i] = input[i] ^ iv[i]; ==== //depot/projects/uart/dev/acpica/acpi.c#11 (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/dev/acpica/acpi.c,v 1.100 2003/09/15 06:29:31 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.102 2003/09/18 05:12:45 njl Exp $ */ #include "opt_acpi.h" @@ -1027,7 +1027,6 @@ acpi_enable_fixed_events(struct acpi_softc *sc) { static int first_time = 1; -#define MSGFORMAT "%s button is handled as a fixed feature programming model.\n" ACPI_ASSERTLOCK; @@ -1039,7 +1038,7 @@ acpi_eventhandler_power_button_for_sleep, sc); if (first_time) - device_printf(sc->acpi_dev, MSGFORMAT, "power"); + device_printf(sc->acpi_dev, "Power Button (fixed)\n"); } if (AcpiGbl_FADT != NULL && AcpiGbl_FADT->SleepButton == 0) { AcpiEnableEvent(ACPI_EVENT_SLEEP_BUTTON, 0); @@ -1048,7 +1047,7 @@ acpi_eventhandler_sleep_button_for_sleep, sc); if (first_time) - device_printf(sc->acpi_dev, MSGFORMAT, "sleep"); + device_printf(sc->acpi_dev, "Sleep Button (fixed)\n"); } first_time = 0; ==== //depot/projects/uart/dev/ata/ata-lowlevel.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.13 2003/09/16 15:21:37 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.15 2003/09/18 16:44:54 sos Exp $"); #include "opt_ata.h" #include @@ -329,6 +329,7 @@ /* if data write command, output the data */ if (request->flags & ATA_R_WRITE) { + /* if we get an error here we are done with the HW */ if (ata_wait(request->device, (ATA_S_READY | ATA_S_DSC | ATA_S_DRQ)) < 0) { @@ -336,11 +337,10 @@ request->status = ATA_IDX_INB(ch, ATA_STATUS); break; } - else { - /* output data and return waiting for new interrupt */ - ata_pio_write(request, request->transfersize); - return; - } + + /* output data and return waiting for new interrupt */ + ata_pio_write(request, request->transfersize); + return; } /* if data read command, return & wait for interrupt */ @@ -551,11 +551,8 @@ ch->devices |= ATA_ATA_MASTER; } } - else if (err == lsb && err == msb) { - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); - DELAY(10); - if (stat0 == ATA_IDX_INB(ch, ATA_STATUS)) - stat0 |= ATA_S_BUSY; + else if ((stat0 & 0x4f) && err == lsb && err == msb) { + stat0 |= ATA_S_BUSY; } } } @@ -579,11 +576,8 @@ ch->devices |= ATA_ATA_SLAVE; } } - else if (err == lsb && err == msb) { - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff); - DELAY(10); - if (stat1 == ATA_IDX_INB(ch, ATA_STATUS)) - stat1 |= ATA_S_BUSY; + else if ((stat1 & 0x4f) && err == lsb && err == msb) { + stat1 |= ATA_S_BUSY; } } } ==== //depot/projects/uart/dev/ata/ata-queue.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.4 2003/08/28 08:22:53 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.6 2003/09/19 12:46:12 sos Exp $"); #include "opt_ata.h" #include @@ -47,7 +47,7 @@ /* prototypes */ static void ata_completed(void *, int); static void ata_timeout(struct ata_request *); -static char *ata_sensekey2str(u_int8_t); +static char *ata_skey2str(u_int8_t); /* local vars */ static MALLOC_DEFINE(M_ATA_REQ, "ATA request", "ATA request"); @@ -260,12 +260,12 @@ /* ATAPI errors */ case ATA_R_ATAPI: - /* is result already set return */ + /* skip if result already set */ if (request->result) break; - if (request->error & ATA_E_MASK) { - switch ((request->result & ATA_SK_MASK)) { + if (request->error) { + switch ((request->error & ATA_SK_MASK)) { case ATA_SK_RECOVERED_ERROR: ata_prtdev(request->device, "WARNING - %s recovered error\n", ata_cmd2str(request)); @@ -285,18 +285,20 @@ break; default: + if (!(request->flags & ATA_R_QUIET)) + ata_prtdev(request->device, + "FAILURE - %s status=%b sensekey=%s error=%b\n", + ata_cmd2str(request), + request->status, "\20\10BUSY\7READY\6DMA" + "\5DSC\4DRQ\3CORRECTABLE\2INDEX\1ERROR", + ata_skey2str((request->error & ATA_SK_MASK)>>4), + (request->error & ATA_E_MASK), + "\20\4MEDIA_CHANGE_REQUEST\3ABORTED" + "\2NO_MEDIA\1ILLEGAL_LENGTH"); request->result = EIO; } - if (request->result && !(request->flags & ATA_R_QUIET)) - ata_prtdev(request->device, - "FAILURE - %s status=%b sensekey=%s error=%b\n", - ata_cmd2str(request), - request->status, "\20\10BUSY\7READY\6DMA" - "\5DSC\4DRQ\3CORRECTABLE\2INDEX\1ERROR", - ata_sensekey2str((request->error & ATA_SK_MASK)>>4), - (request->error & ATA_E_MASK), - "\20\4MEDIA_CHANGE_REQUEST\3ABORTED" - "\2NO_MEDIA\1ILLEGAL_LENGTH"); + if (request->error & ATA_E_MASK) + request->result = EIO; } break; } @@ -369,6 +371,7 @@ case 0x0a: return ("WRITE"); case 0x10: return ("WEOF"); case 0x11: return ("SPACE"); + case 0x12: return ("INQUIRY"); case 0x15: return ("MODE_SELECT"); case 0x19: return ("ERASE"); case 0x1a: return ("MODE_SENSE"); @@ -449,7 +452,7 @@ } static char * -ata_sensekey2str(u_int8_t skey) +ata_skey2str(u_int8_t skey) { switch (skey) { case 0x00: return ("NO SENSE"); ==== //depot/projects/uart/dev/ata/atapi-cam.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.22 2003/09/11 17:34:47 thomas Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.23 2003/09/19 16:25:44 thomas Exp $"); #include #include @@ -59,7 +59,7 @@ int lun; union ccb *ccb; int flags; -#define DOING_AUTOSENSE 1 +#define QUEUED 0x0001 char *dxfer_alloc; TAILQ_ENTRY(atapi_hcb) chain; @@ -369,6 +369,7 @@ struct ccb_scsiio *csio = &ccb->csio; int tid = ccb_h->target_id, lid = ccb_h->target_lun; struct ata_device *dev = get_ata_device(softc, tid); + int request_flags = ATA_R_QUIET | ATA_R_ATAPI; CAM_DEBUG(ccb_h->path, CAM_DEBUG_SUBTRACE, ("XPT_SCSI_IO\n")); @@ -397,9 +398,24 @@ /* scatter-gather not supported */ xpt_print_path(ccb_h->path); printf("ATAPI/CAM does not support scatter-gather yet!\n"); - break; + goto action_invalid; } + switch (ccb_h->flags & CAM_DIR_MASK) { + case CAM_DIR_IN: + request_flags |= ATA_R_READ; + break; + case CAM_DIR_OUT: + request_flags |= ATA_R_WRITE; + break; + case CAM_DIR_NONE: + request_flags |= ATA_R_CONTROL; + break; + default: + ata_prtdev(dev, "unknown IO operation\n"); + goto action_invalid; + } + if ((hcb = allocate_hcb(softc, unit, bus, ccb)) == NULL) { printf("cannot allocate ATAPI/CAM hcb\n"); goto action_oom; @@ -409,8 +425,6 @@ goto action_oom; } - ccb_h->status |= CAM_SIM_QUEUED; - bcopy((ccb_h->flags & CAM_CDB_POINTER) ? csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes, request->u.atapi.ccb, csio->cdb_len); @@ -467,8 +481,8 @@ if ((ccb_h->flags & CAM_DIR_MASK) == CAM_DIR_IN && (len & 1)) { /* ATA always transfers an even number of bytes */ - if (!(buf = hcb->dxfer_alloc = malloc(++len, M_ATACAM, - M_NOWAIT | M_ZERO))) { + if ((buf = hcb->dxfer_alloc + = malloc(++len, M_ATACAM, M_NOWAIT | M_ZERO)) == NULL) { printf("cannot allocate ATAPI/CAM buffer\n"); goto action_oom; } @@ -481,23 +495,11 @@ request->timeout = ccb_h->timeout; request->retries = 2; request->callback = &atapi_cb; - request->flags = (ATA_R_QUIET | ATA_R_ATAPI); - switch (ccb_h->flags & CAM_DIR_MASK) { - case CAM_DIR_IN: - request->flags |= ATA_R_READ; - break; - case CAM_DIR_OUT: - request->flags |= ATA_R_WRITE; - break; - case CAM_DIR_NONE: - request->flags |= ATA_R_CONTROL; - break; - default: - ata_prtdev(dev, "unknown IO operation\n"); - goto action_invalid; - } + request->flags = request_flags; TAILQ_INSERT_TAIL(&softc->pending_hcbs, hcb, chain); + hcb->flags |= QUEUED; + ccb_h->status |= CAM_SIM_QUEUED; ata_queue_request(request); return; @@ -509,6 +511,8 @@ goto action_invalid; } + /* NOTREACHED */ + action_oom: if (request != NULL) ata_free_request(request); @@ -523,9 +527,9 @@ return; action_invalid: - ccb_h->status = CAM_REQ_INVALID; - xpt_done(ccb); - return; + ccb_h->status = CAM_REQ_INVALID; + xpt_done(ccb); + return; } static void @@ -690,7 +694,8 @@ static void free_hcb(struct atapi_hcb *hcb) { - TAILQ_REMOVE(&hcb->softc->pending_hcbs, hcb, chain); + if ((hcb->flags & QUEUED) != 0) + TAILQ_REMOVE(&hcb->softc->pending_hcbs, hcb, chain); if (hcb->dxfer_alloc != NULL) free(hcb->dxfer_alloc, M_ATACAM); free(hcb, M_ATACAM); ==== //depot/projects/uart/dev/puc/pucdata.c#8 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/puc/pucdata.c,v 1.25 2003/09/06 21:48:50 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/puc/pucdata.c,v 1.26 2003/09/19 19:55:08 joerg Exp $"); /* * PCI "universal" communications card driver configuration data (used to @@ -772,6 +772,30 @@ { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, }, }, + /* + * VScom (Titan?) PCI-800L. More modern variant of the + * PCI-800. Uses 6 discrete 16550 UARTs, plus another + * two of them obviously implemented as macro cells in + * the ASIC. This causes the weird port access pattern + * below, where two of the IO port ranges each access + * one of the ASIC UARTs, and a block of IO addresses + * access the external UARTs. + */ + { "Titan VScom PCI-800L", + NULL, + { 0x14d2, 0x8080, 0x14d2, 0x8080 }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 }, + { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 }, + }, + }, /* NEC PK-UG-X001 K56flex PCI Modem card. NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */ ==== //depot/projects/uart/dev/re/if_re.c#4 (text+ko) ==== @@ -106,7 +106,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.7 2003/09/13 23:51:35 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.9 2003/09/19 02:35:03 wpaul Exp $"); #include #include @@ -740,11 +740,13 @@ eh->ether_type = htons(ETHERTYPE_IP); m0->m_pkthdr.len = m0->m_len = ETHER_MIN_LEN - ETHER_CRC_LEN; - /* Queue the packet, start transmission */ + /* + * Queue the packet, start transmission. + * Note: IF_HANDOFF() ultimately calls re_start() for us. + */ + CSR_WRITE_2(sc, RL_ISR, 0xFFFF); IF_HANDOFF(&ifp->if_snd, m0, ifp); - CSR_WRITE_2(sc, RL_ISR, 0xFFFF); - re_start(ifp); m0 = NULL; /* Wait for it to propagate through the chip */ @@ -996,7 +998,7 @@ nseg = 32; error = bus_dma_tag_create(sc->rl_parent_tag, ETHER_ALIGN, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, - NULL, MCLBYTES * nseg, nseg, RL_JLEN, BUS_DMA_ALLOCNOW, + NULL, MCLBYTES * nseg, nseg, MCLBYTES, BUS_DMA_ALLOCNOW, NULL, NULL, &sc->rl_ldata.rl_mtag); if (error) { device_printf(dev, "could not allocate dma tag\n"); @@ -1892,7 +1894,7 @@ int error; struct m_tag *mtag; - if (sc->rl_ldata.rl_tx_free < 4) + if (sc->rl_ldata.rl_tx_free <= 4) return(EFBIG); /* @@ -1914,6 +1916,8 @@ arg.sc = sc; arg.rl_idx = *idx; arg.rl_maxsegs = sc->rl_ldata.rl_tx_free; + if (arg.rl_maxsegs > 4) + arg.rl_maxsegs -= 4; arg.rl_ring = sc->rl_ldata.rl_tx_list; map = sc->rl_ldata.rl_tx_dmamap[*idx]; ==== //depot/projects/uart/dev/sio/sio.c#8 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.408 2003/09/17 17:26:00 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sio/sio.c,v 1.409 2003/09/18 07:46:40 bde Exp $"); #include "opt_comconsole.h" #include "opt_compat.h" @@ -185,7 +185,6 @@ /* com device structure */ struct com_s { - u_int flags; /* Copy isa device flags */ u_char state; /* miscellaneous flag bits */ bool_t active_out; /* nonzero if the callout device is open */ u_char cfcr_image; /* copy of value written to CFCR */ @@ -207,6 +206,7 @@ bool_t st16650a; /* nonzero if Startech 16650A compatible */ int unit; /* unit number */ int dtr_wait; /* time to hold DTR down on close (* 1/hz) */ + u_int flags; /* copy of device flags */ u_int tx_fifo_size; u_int wopeners; /* # processes waiting for DCD in open() */ @@ -238,11 +238,11 @@ #ifdef COM_ESP Port_t esp_port; #endif + Port_t int_ctl_port; Port_t int_id_port; Port_t modem_ctl_port; Port_t line_status_port; Port_t modem_status_port; - Port_t intr_ctl_port; /* Ports of IIR register */ struct tty *tp; /* cross reference */ @@ -714,30 +714,37 @@ sio_setreg(com, com_cfcr, CFCR_8BITS); /* - * Some pcmcia cards have the "TXRDY bug", so we check everyone - * for IIR_TXRDY implementation ( Palido 321s, DC-1S... ) + * Some PCMCIA cards (Palido 321s, DC-1S, ...) have the "TXRDY bug", + * so we probe for a buggy IIR_TXRDY implementation even in the + * noprobe case. We don't probe for it in the !noprobe case because + * noprobe is always set for PCMCIA cards and the problem is not + * known to affect any other cards. */ if (noprobe) { - /* Reading IIR register twice */ + /* Read IIR a few times. */ for (fn = 0; fn < 2; fn ++) { DELAY(10000); failures[6] = sio_getreg(com, com_iir); } - /* Check IIR_TXRDY clear ? */ + + /* IIR_TXRDY should be clear. Is it? */ result = 0; if (failures[6] & IIR_TXRDY) { - /* No, Double check with clearing IER */ + /* + * No. We seem to have the bug. Does our fix for + * it work? + */ sio_setreg(com, com_ier, 0); if (sio_getreg(com, com_iir) & IIR_NOPEND) { - /* Ok. We discovered TXRDY bug! */ + /* Yes. We discovered the TXRDY bug! */ SET_FLAG(dev, COM_C_IIR_TXRDYBUG); } else { - /* Unknown, Just omit this chip.. XXX */ + /* No. Just fail. XXX */ result = ENXIO; sio_setreg(com, com_mcr, 0); } } else { - /* OK. this is well-known guys */ + /* Yes. No bug. */ CLR_FLAG(dev, COM_C_IIR_TXRDYBUG); } sio_setreg(com, com_ier, 0); @@ -953,12 +960,12 @@ com->obufs[1].l_head = com->obuf2; com->data_port = iobase + com_data; + com->int_ctl_port = iobase + com_ier; com->int_id_port = iobase + com_iir; com->modem_ctl_port = iobase + com_mcr; com->mcr_image = inb(com->modem_ctl_port); com->line_status_port = iobase + com_lsr; com->modem_status_port = iobase + com_msr; - com->intr_ctl_port = iobase + com_ier; if (rclk == 0) rclk = DEFAULT_RCLK; @@ -1113,7 +1120,7 @@ if (unit == comconsole) printf(", console"); if (COM_IIR_TXRDYBUG(flags)) - printf(" with a bogus IIR_TXRDY register"); + printf(" with a buggy IIR_TXRDY implementation"); printf("\n"); if (sio_fast_ih == NULL) { @@ -1316,13 +1323,9 @@ (void) inb(com->data_port); com->prev_modem_status = com->last_modem_status = inb(com->modem_status_port); - if (COM_IIR_TXRDYBUG(com->flags)) { - outb(com->intr_ctl_port, IER_ERXRDY | IER_ERLS - | IER_EMSC); - } else { - outb(com->intr_ctl_port, IER_ERXRDY | IER_ETXRDY - | IER_ERLS | IER_EMSC); - } + outb(com->int_ctl_port, + IER_ERXRDY | IER_ERLS | IER_EMSC + | (COM_IIR_TXRDYBUG(com->flags) ? 0 : IER_ETXRDY)); mtx_unlock_spin(&sio_lock); /* * Handle initial DCD. Callout devices get a fake initial @@ -1761,15 +1764,15 @@ siointr1(com) struct com_s *com; { + u_char int_ctl; + u_char int_ctl_new; u_char line_status; u_char modem_status; u_char *ioptr; u_char recv_data; - u_char int_ctl; - u_char int_ctl_new; if (COM_IIR_TXRDYBUG(com->flags)) { - int_ctl = inb(com->intr_ctl_port); + int_ctl = inb(com->int_ctl_port); int_ctl_new = int_ctl; } else { int_ctl = 0; @@ -1923,9 +1926,8 @@ } } com->obufq.l_head = ioptr; - if (COM_IIR_TXRDYBUG(com->flags)) { + if (COM_IIR_TXRDYBUG(com->flags)) int_ctl_new = int_ctl | IER_ETXRDY; - } if (ioptr >= com->obufq.l_tail) { struct lbq *qp; @@ -1938,9 +1940,9 @@ com->obufq.l_next = qp; } else { /* output just completed */ - if (COM_IIR_TXRDYBUG(com->flags)) { - int_ctl_new = int_ctl & ~IER_ETXRDY; - } + if (COM_IIR_TXRDYBUG(com->flags)) + int_ctl_new = int_ctl + & ~IER_ETXRDY; com->state &= ~CS_BUSY; } if (!(com->state & CS_ODONE)) { @@ -1950,9 +1952,9 @@ swi_sched(sio_fast_ih, 0); } } - if (COM_IIR_TXRDYBUG(com->flags) && (int_ctl != int_ctl_new)) { - outb(com->intr_ctl_port, int_ctl_new); - } + if (COM_IIR_TXRDYBUG(com->flags) + && int_ctl != int_ctl_new) + outb(com->int_ctl_port, int_ctl_new); } /* finished? */ ==== //depot/projects/uart/dev/usb/if_aue.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.71 2003/08/24 17:55:54 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.72 2003/09/18 15:41:06 obrien Exp $"); /* * ADMtek AN986 Pegasus and AN8511 Pegasus II USB to ethernet driver. @@ -63,7 +63,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.71 2003/08/24 17:55:54 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.72 2003/09/18 15:41:06 obrien Exp $"); #include #include @@ -151,6 +151,7 @@ {{ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3}, LSYS }, {{ USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX}, PII }, {{ USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET}, 0 }, + {{ USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100}, PII }, {{ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX}, 0 }, {{ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS}, PII }, {{ USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX}, 0 }, ==== //depot/projects/uart/dev/usb/usbdevs#6 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.135 2003/08/22 05:43:29 njl Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.137 2003/09/19 22:42:51 jb Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -343,6 +343,7 @@ vendor AGATE 0x0c08 Agate Technologies vendor DMI 0x0c0b DMI vendor LUWEN 0x0c76 Luwen +vendor HAWKING 0x0e66 Hawking Technologies vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX vendor ASANTE 0x10bd Asante @@ -483,6 +484,7 @@ product BELKIN F5U103 0x0103 F5U103 Serial adapter product BELKIN F5U109 0x0109 F5U109 Serial adapter product BELKIN F5U120 0x1203 F5U120-PC Hub +product BELKIN F5U208 0x0208 F5U208 VideoBus II /* Billionton products */ product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet Adapter @@ -672,6 +674,9 @@ /* Hauppauge Computer Works */ product HAUPPAUGE WINTV_USB_FM 0x4d12 WinTV USB FM +/* Hawking Technologies products */ +product HAWKING UF100 0x400c 10/100 USB Ethernet + /* Hitachi, Ltd. products */ product HITACHI DVDCAM_USB 0x001e DVDCAM USB HS Interface @@ -700,6 +705,7 @@ product HP 840C 0x0604 DeskJet 840c product HP 2200C 0x0605 ScanJet 2200C product HP 5300C 0x0701 Scanjet 5300C +product HP 4400C 0x0705 Scanjet 4400C product HP 970CSE 0x1004 Deskjet 970Cse product HP 5400C 0x1005 Scanjet 5400C product HP 930C 0x1204 DeskJet 930c ==== //depot/projects/uart/dev/usb/usbdevs.h#5 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.143 2003/08/22 05:43:29 njl Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.134 2003/07/14 19:30:01 joe Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp */ /* @@ -350,6 +350,7 @@ #define USB_VENDOR_AGATE 0x0c08 /* Agate Technologies */ #define USB_VENDOR_DMI 0x0c0b /* DMI */ #define USB_VENDOR_LUWEN 0x0c76 /* Luwen */ +#define USB_VENDOR_HAWKING 0x0e66 /* Hawking Technologies */ #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ #define USB_VENDOR_ASANTE 0x10bd /* Asante */ @@ -490,6 +491,7 @@ #define USB_PRODUCT_BELKIN_F5U103 0x0103 /* F5U103 Serial adapter */ #define USB_PRODUCT_BELKIN_F5U109 0x0109 /* F5U109 Serial adapter */ #define USB_PRODUCT_BELKIN_F5U120 0x1203 /* F5U120-PC Hub */ +#define USB_PRODUCT_BELKIN_F5U208 0x0208 /* F5U208 VideoBus II */ /* Billionton products */ #define USB_PRODUCT_BILLIONTON_USB100 0x0986 /* USB100N 10/100 FastEthernet Adapter */ @@ -679,6 +681,9 @@ /* Hauppauge Computer Works */ #define USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM 0x4d12 /* WinTV USB FM */ +/* Hawking Technologies products */ +#define USB_PRODUCT_HAWKING_UF100 0x400c /* 10/100 USB Ethernet */ + /* Hitachi, Ltd. products */ #define USB_PRODUCT_HITACHI_DVDCAM_USB 0x001e /* DVDCAM USB HS Interface */ @@ -707,6 +712,7 @@ #define USB_PRODUCT_HP_840C 0x0604 /* DeskJet 840c */ #define USB_PRODUCT_HP_2200C 0x0605 /* ScanJet 2200C */ #define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */ +#define USB_PRODUCT_HP_4400C 0x0705 /* Scanjet 4400C */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ #define USB_PRODUCT_HP_5400C 0x1005 /* Scanjet 5400C */ #define USB_PRODUCT_HP_930C 0x1204 /* DeskJet 930c */ ==== //depot/projects/uart/dev/usb/usbdevs_data.h#5 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.143 2003/08/22 05:43:30 njl Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Sep 20 14:11:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 74C9916A4C0; Sat, 20 Sep 2003 14:11:24 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 35D2016A4B3 for ; Sat, 20 Sep 2003 14:11:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C1DA743F75 for ; Sat, 20 Sep 2003 14:11:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h8KLBMXJ022561 for ; Sat, 20 Sep 2003 14:11:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h8KLBM1G022554 for perforce@freebsd.org; Sat, 20 Sep 2003 14:11:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Sat, 20 Sep 2003 14:11:22 -0700 (PDT) Message-Id: <200309202111.h8KLBM1G022554@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 38352 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2003 21:11:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=38352 Change 38352 by marcel@marcel_nfs on 2003/09/20 14:10:29 IFC @38350 Affected files ... .. //depot/projects/ia64/etc/defaults/pccard.conf#25 integrate .. //depot/projects/ia64/share/man/man4/ath.4#10 integrate .. //depot/projects/ia64/share/man/man4/sk.4#3 integrate .. //depot/projects/ia64/share/man/man4/ulpt.4#3 integrate .. //depot/projects/ia64/sys/conf/files.ia64#48 integrate .. //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#10 integrate .. //depot/projects/ia64/sys/dev/ed/if_ed_pccard.c#18 integrate .. //depot/projects/ia64/sys/dev/mii/e1000phy.c#7 integrate .. //depot/projects/ia64/sys/dev/mii/e1000phyreg.h#2 integrate .. //depot/projects/ia64/sys/dev/mii/miidevs#11 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs#36 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs.h#36 integrate .. //depot/projects/ia64/sys/dev/pccard/pccardvar.h#12 integrate .. //depot/projects/ia64/sys/dev/usb/umass.c#33 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs#47 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs.h#45 integrate .. //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#45 integrate .. //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#31 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#95 integrate .. //depot/projects/ia64/sys/ia64/ia64/pmap.c#77 integrate .. //depot/projects/ia64/sys/ia64/ia64/uma_machdep.c#5 branch .. //depot/projects/ia64/sys/kern/linker_if.m#2 integrate .. //depot/projects/ia64/sys/pci/if_sk.c#18 integrate .. //depot/projects/ia64/sys/pci/if_skreg.h#2 integrate .. //depot/projects/ia64/sys/pci/yukonreg.h#1 branch .. //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#46 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/if.c#4 integrate Differences ... ==== //depot/projects/ia64/etc/defaults/pccard.conf#25 (text+ko) ==== @@ -1,7 +1,7 @@ # # Default PCCARD configuration file # -# $FreeBSD: src/etc/defaults/pccard.conf,v 1.264 2003/09/10 01:14:07 imp Exp $ +# $FreeBSD: src/etc/defaults/pccard.conf,v 1.265 2003/09/20 05:21:58 imp Exp $ # # Please send new entries for this file to imp@freebsd.org. He likes to # review them before they are committed to make sure they are correct for @@ -2153,6 +2153,12 @@ insert /etc/pccard_ether $device start remove /etc/pccard_ether $device stop +# Proxim Harmony OEM card +card "PROXIM" "LAN PC CARD HARMONY 80211B" + config 0x1 "wi" ? + insert /etc/pccard_ether $device start + remove /etc/pccard_ether $device stop + # Proxim RangeLAN-DS (OEM of Zcommax - Prism2 card) card "PROXIM" "RangeLAN-DS/LAN PC CARD" config auto "wi" ? ==== //depot/projects/ia64/share/man/man4/ath.4#10 (text+ko) ==== @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGES. .\" -.\" $FreeBSD: src/share/man/man4/ath.4,v 1.10 2003/09/19 01:41:18 sam Exp $ +.\" $FreeBSD: src/share/man/man4/ath.4,v 1.11 2003/09/20 15:10:38 se Exp $ .\"/ .Dd September 18, 2003 .Dt ATH 4 @@ -109,23 +109,27 @@ .Nm driver: .Pp -.Bl -column -compact "D-Link DWL-AG650" "AR5212" "Cardbus" -.Em "Card Chip Bus" -D-Link DWL-AB650 AR5211 CardBus -D-Link DWL-AG520 AR5212 PCI -D-Link DWL-AG650 AR5212 CardBus -D-Link DWL-G650 AR5212 CardBus -I/O Data WN-AG/CB AR5212 CardBus -Linksys WMP55AG AR5212 PCI -Linksys WPC51AB AR5211 CardBus -Linksys WPC55AG AR5212 CardBus -NEC PA-WL/54AG AR5212 CardBus -Netgear WAB501 AR5211 CardBus -Netgear WAG511 AR5212 CardBus -Netgear WG311 AR5212 CardBus -Nortel 2201 AR5212 CardBus -Orinoco 8480 AR5212 CardBus -Proxim Skyline 4030 AR5210 CardBus +.Bl -column -compact "D-Link DWL-AG650" "AR5212" "Cardbus" "a/b/g" +.Em "Card Chip Bus Standard" +D-Link DWL-AB650 AR5211 CardBus a/b +D-Link DWL-AG520 AR5212 PCI a/b/g +D-Link DWL-AG650 AR5212 CardBus a/b/g +D-Link DWL-G520B AR5212 PCI b/g +D-Link DWL-G650B AR5212 CardBus b/g +I/O Data WN-AG/CB AR5212 CardBus a/b/g +Linksys WMP55AG AR5212 PCI a/b/g +Linksys WPC51AB AR5211 CardBus a/b +Linksys WPC55AG AR5212 CardBus a/b/g +NEC PA-WL/54AG AR5212 CardBus a/b/g +Netgear WAG311 AR5212 PCI a/b/g +Netgear WAB501 AR5211 CardBus a/b +Netgear WAG511 AR5212 CardBus a/b/g +Netgear WG311 AR5212 PCI b/g +Netgear WG511T AR5212 PCI b/g +Nortel 2201 AR5212 CardBus a/b +Orinoco 8480 AR5212 CardBus a/b/g +Proxim Skyline 4030 AR5210 CardBus a +Proxim Skyline 4032 AR5210 PCI a .El .Sh EXAMPLES Join an existing BSS network (ie: connect to an access point): @@ -283,6 +287,9 @@ Different regulatory domains may not be able to communicate with each other with 802.11a as different regualtory domains do not necessarily have overlapping channels. +.Pp +Revision A1 of the D-LINK DWL-G520 and DWL-G650 are based on an +Intersil PrismGT chip and are not supported by this driver. .Sh BUGS .Pp Performance in lossy environments is suboptimal. ==== //depot/projects/ia64/share/man/man4/sk.4#3 (text+ko) ==== @@ -28,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/sk.4,v 1.18 2002/01/21 12:09:13 mpp Exp $ +.\" $FreeBSD: src/share/man/man4/sk.4,v 1.19 2003/09/20 11:10:51 wilko Exp $ .\" .Dd July 3, 1999 .Dt SK 4 @@ -47,6 +47,8 @@ .Pp .Bl -bullet -offset indent -compact .It +SK-9521 SK-NET GE-T single port, 1000baseT adapter +.It SK-9821 SK-NET GE-T single port, 1000baseT adapter .It SK-9822 SK-NET GE-T dual port, 1000baseT adapter @@ -58,6 +60,8 @@ SK-9843 SK-NET GE-SX single port, multimode fiber adapter .It SK-9844 SK-NET GE-SX dual port, multimode fiber adapter +.It +3COM 3C940 single port, 1000baseT adapter .El .Pp The SysKonnect adapters consist of two main components: the XaQti Corp. @@ -85,6 +89,8 @@ on the primary port fails, the SysKonnect driver will automatically switch traffic onto the second port. .Pp +Also supported is the Marvell Semiconductor 88E1000* gigabit PHY. +.Pp The XaQti XMAC II supports full and half duplex operation with autonegotiation. The XMAC also supports unlimited frame sizes. ==== //depot/projects/ia64/share/man/man4/ulpt.4#3 (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: src/share/man/man4/ulpt.4,v 1.3 2002/05/30 12:59:52 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ulpt.4,v 1.5 2003/09/20 15:16:56 se Exp $ .\" .Dd July 12, 1998 .Dt ULPT 4 @@ -56,13 +56,13 @@ .El .Pp Some printers cannot handle the reset on open; in case of problems try the -.Pa ulpn +.Pa unlpt device. .Sh FILES -.Bl -tag -width ".Pa /dev/ulpt?" -compact +.Bl -tag -width ".Pa /dev/unlpt?" -compact .It Pa /dev/ulpt? device with reset -.It Pa /dev/ulpn? +.It Pa /dev/unlpt? device without reset .El .Sh SEE ALSO ==== //depot/projects/ia64/sys/conf/files.ia64#48 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.58 2003/09/06 23:23:25 marcel Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.59 2003/09/20 19:27:48 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -121,6 +121,7 @@ ia64/ia64/sys_machdep.c standard ia64/ia64/syscall.S standard ia64/ia64/trap.c standard +ia64/ia64/uma_machdep.c standard ia64/ia64/unaligned.c standard ia64/ia64/unwind.c standard ia64/ia64/vga_machdep.c optional vga ==== //depot/projects/ia64/sys/dev/ata/ata-lowlevel.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.15 2003/09/18 16:44:54 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.16 2003/09/20 08:38:33 sos Exp $"); #include "opt_ata.h" #include @@ -543,7 +543,7 @@ "stat=0x%02x err=0x%02x lsb=0x%02x msb=0x%02x\n", stat0, err, lsb, msb); if (!(stat0 & ATA_S_BUSY)) { - if (err == ATA_E_ILI) { + if ((err & 0x7f) == ATA_E_ILI) { if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { ch->devices |= ATA_ATAPI_MASTER; } @@ -568,7 +568,7 @@ " stat=0x%02x err=0x%02x lsb=0x%02x msb=0x%02x\n", stat1, err, lsb, msb); if (!(stat1 & ATA_S_BUSY)) { - if (err == ATA_E_ILI) { + if ((err & 0x7f) == ATA_E_ILI) { if (lsb == ATAPI_MAGIC_LSB && msb == ATAPI_MAGIC_MSB) { ch->devices |= ATA_ATAPI_SLAVE; } ==== //depot/projects/ia64/sys/dev/ed/if_ed_pccard.c#18 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.52 2003/08/07 19:40:05 imp Exp $ + * $FreeBSD: src/sys/dev/ed/if_ed_pccard.c,v 1.53 2003/09/20 18:03:07 imp Exp $ */ #include "opt_ed.h" @@ -148,6 +148,7 @@ { PCMCIA_CARD(DYNALINK, L10C, 0), 0}, { PCMCIA_CARD(EDIMAX, EP4000A, 0), 0}, { PCMCIA_CARD(EPSON, EEN10B, 0), 0}, + { PCMCIA_CARD(EXP, THINLANCOMBO, 0), 0}, { PCMCIA_CARD(IBM, INFOMOVER, 0), 0}, { PCMCIA_CARD(IODATA, PCLAT, 0), 0}, { PCMCIA_CARD(IODATA, PCLATE, 0), 0}, @@ -416,7 +417,8 @@ sc->chip_type = ED_CHIP_TYPE_AX88190; /* - * Set Attribute Memory IOBASE Register + * Set Attribute Memory IOBASE Register. Is this a deficiency in + * the PC Card layer, or an ax88190 specific issue? xxx */ iobase = rman_get_start(sc->port_res); ed_pccard_memwrite(dev, ED_AX88190_IOBASE0, iobase & 0xff); ==== //depot/projects/ia64/sys/dev/mii/e1000phy.c#7 (text+ko) ==== @@ -1,7 +1,7 @@ /* #include -__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.9 2003/08/24 17:54:10 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.10 2003/09/20 10:53:08 wilko Exp $"); * Principal Author: Parag Patel * Copyright (c) 2001 * All rights reserved. @@ -36,6 +36,13 @@ * driver for the Marvell 88E1000 series external 1000/100/10-BT PHY. */ +/* + * Support added for the Marvell 88E1011 (Alaska) 1000/100/10baseTX and + * 1000baseSX PHY. + * Nathan Binkert + * Jung-uk Kim + */ + #include #include #include @@ -88,8 +95,9 @@ ma = device_get_ivars(dev); id = ((ma->mii_id1 << 16) | ma->mii_id2) & E1000_ID_MASK; - - if (id != E1000_ID_88E1000 && id != E1000_ID_88E1000S) { + if (id != E1000_ID_88E1000 + && id != E1000_ID_88E1000S + && id != E1000_ID_88E1011) { return ENXIO; } @@ -103,6 +111,7 @@ struct mii_softc *sc; struct mii_attach_args *ma; struct mii_data *mii; + u_int32_t id; getenv_int("e1000phy_debug", &e1000phy_debug); @@ -116,39 +125,49 @@ sc->mii_phy = ma->mii_phyno; sc->mii_service = e1000phy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOISOLATE; - sc->mii_flags |= MIIF_NOISOLATE; + id = ((ma->mii_id1 << 16) | ma->mii_id2) & E1000_ID_MASK; + if (id == E1000_ID_88E1011 + && (PHY_READ(sc, E1000_ESSR) & E1000_ESSR_FIBER_LINK)) + sc->mii_flags |= MIIF_HAVEFIBER; mii->mii_instance++; e1000phy_reset(sc); device_printf(dev, " "); #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) -/* - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), - E1000_CR_ISOLATE); -*/ - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst), - E1000_CR_SPEED_10); - printf("10baseT, "); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst), - E1000_CR_SPEED_10 | E1000_CR_FULL_DUPLEX); - printf("10baseT-FDX, "); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst), - E1000_CR_SPEED_100); - printf("100baseTX, "); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst), - E1000_CR_SPEED_100 | E1000_CR_FULL_DUPLEX); - printf("100baseTX-FDX, "); - /* - * 1000BT-simplex not supported; driver must ignore this entry, - * but it must be present in order to manually set full-duplex. - */ - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0, sc->mii_inst), - E1000_CR_SPEED_1000); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX, sc->mii_inst), - E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX); - printf("1000baseTX-FDX, "); + if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { +#if 0 + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst), + E1000_CR_ISOLATE); +#endif + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst), + E1000_CR_SPEED_10); + printf("10baseT, "); + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst), + E1000_CR_SPEED_10 | E1000_CR_FULL_DUPLEX); + printf("10baseT-FDX, "); + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst), + E1000_CR_SPEED_100); + printf("100baseTX, "); + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst), + E1000_CR_SPEED_100 | E1000_CR_FULL_DUPLEX); + printf("100baseTX-FDX, "); + /* + * 1000BT-simplex not supported; driver must ignore this entry, + * but it must be present in order to manually set full-duplex. + */ + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0, sc->mii_inst), + E1000_CR_SPEED_1000); + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX, sc->mii_inst), + E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX); + printf("1000baseTX-FDX, "); + } else { + ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst), + E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX); + printf("1000baseSX-FDX, "); + } ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), 0); printf("auto\n"); #undef ADD @@ -242,6 +261,14 @@ (void)e1000phy_mii_phy_auto(sc); break; + case IFM_1000_SX: + e1000phy_reset(sc); + + PHY_WRITE(sc, E1000_CR, + E1000_CR_FULL_DUPLEX | E1000_CR_SPEED_1000); + PHY_WRITE(sc, E1000_AR, E1000_FA_1000X_FD); + break; + case IFM_100_TX: e1000phy_reset(sc); @@ -353,27 +380,34 @@ return; } - if (ssr & E1000_SSR_1000MBS) - mii->mii_media_active |= IFM_1000_T; - else if (ssr & E1000_SSR_100MBS) - mii->mii_media_active |= IFM_100_TX; - else - mii->mii_media_active |= IFM_10_T; + if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { + if (ssr & E1000_SSR_1000MBS) + mii->mii_media_active |= IFM_1000_T; + else if (ssr & E1000_SSR_100MBS) + mii->mii_media_active |= IFM_100_TX; + else + mii->mii_media_active |= IFM_10_T; + } else { + if (ssr & E1000_SSR_1000MBS) + mii->mii_media_active |= IFM_1000_SX; + } if (ssr & E1000_SSR_DUPLEX) mii->mii_media_active |= IFM_FDX; else mii->mii_media_active |= IFM_HDX; - /* FLAG0==rx-flow-control FLAG1==tx-flow-control */ - if ((ar & E1000_AR_PAUSE) && (lpar & E1000_LPAR_PAUSE)) { - mii->mii_media_active |= IFM_FLAG0 | IFM_FLAG1; - } else if (!(ar & E1000_AR_PAUSE) && (ar & E1000_AR_ASM_DIR) && - (lpar & E1000_LPAR_PAUSE) && (lpar & E1000_LPAR_ASM_DIR)) { - mii->mii_media_active |= IFM_FLAG1; - } else if ((ar & E1000_AR_PAUSE) && (ar & E1000_AR_ASM_DIR) && - !(lpar & E1000_LPAR_PAUSE) && (lpar & E1000_LPAR_ASM_DIR)) { - mii->mii_media_active |= IFM_FLAG0; + if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { + /* FLAG0==rx-flow-control FLAG1==tx-flow-control */ + if ((ar & E1000_AR_PAUSE) && (lpar & E1000_LPAR_PAUSE)) { + mii->mii_media_active |= IFM_FLAG0 | IFM_FLAG1; + } else if (!(ar & E1000_AR_PAUSE) && (ar & E1000_AR_ASM_DIR) && + (lpar & E1000_LPAR_PAUSE) && (lpar & E1000_LPAR_ASM_DIR)) { + mii->mii_media_active |= IFM_FLAG1; + } else if ((ar & E1000_AR_PAUSE) && (ar & E1000_AR_ASM_DIR) && + !(lpar & E1000_LPAR_PAUSE) && (lpar & E1000_LPAR_ASM_DIR)) { + mii->mii_media_active |= IFM_FLAG0; + } } } @@ -381,12 +415,14 @@ e1000phy_mii_phy_auto(struct mii_softc *mii) { - PHY_WRITE(mii, E1000_AR, E1000_AR_10T | E1000_AR_10T_FD | - E1000_AR_100TX | E1000_AR_100TX_FD | - E1000_AR_PAUSE | E1000_AR_ASM_DIR); - PHY_WRITE(mii, E1000_1GCR, E1000_1GCR_1000T_FD); - PHY_WRITE(mii, E1000_CR, - E1000_CR_AUTO_NEG_ENABLE | E1000_CR_RESTART_AUTO_NEG); + if ((mii->mii_flags & MIIF_HAVEFIBER) == 0) { + PHY_WRITE(mii, E1000_AR, E1000_AR_10T | E1000_AR_10T_FD | + E1000_AR_100TX | E1000_AR_100TX_FD | + E1000_AR_PAUSE | E1000_AR_ASM_DIR); + PHY_WRITE(mii, E1000_1GCR, E1000_1GCR_1000T_FD); + PHY_WRITE(mii, E1000_CR, + E1000_CR_AUTO_NEG_ENABLE | E1000_CR_RESTART_AUTO_NEG); + } return (EJUSTRETURN); } ==== //depot/projects/ia64/sys/dev/mii/e1000phyreg.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.1 2001/04/09 21:28:53 mjacob Exp $ */ +/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.2 2003/09/20 10:53:08 wilko Exp $ */ /* * Principal Author: Parag Patel * Copyright (c) 2001 @@ -107,6 +107,7 @@ #define E1000_ID2 0x03 /* ID register 2 */ #define E1000_ID_88E1000 0x01410C50 #define E1000_ID_88E1000S 0x01410C40 +#define E1000_ID_88E1011 0x01410C20 #define E1000_ID_MASK 0xFFFFFFF0 #define E1000_AR 0x04 /* autonegotiation advertise reg */ @@ -122,6 +123,15 @@ #define E1000_AR_NEXT_PAGE 0x8000 #define E1000_AR_SPEED_MASK 0x01E0 +/* Autonegotiation register bits for fiber cards (Alaska Only!) */ +#define E1000_FA_1000X_FD 0x0020 +#define E1000_FA_1000X 0x0040 +#define E1000_FA_SYM_PAUSE 0x0080 +#define E1000_FA_ASYM_PAUSE 0x0100 +#define E1000_FA_FAULT1 0x1000 +#define E1000_FA_FAULT2 0x2000 +#define E1000_FA_NEXT_PAGE 0x8000 + #define E1000_LPAR 0x05 /* autoneg link partner abilities reg */ #define E1000_LPAR_SELECTOR_FIELD 0x0001 #define E1000_LPAR_10T 0x0020 @@ -135,6 +145,16 @@ #define E1000_LPAR_ACKNOWLEDGE 0x4000 #define E1000_LPAR_NEXT_PAGE 0x8000 +/* autoneg link partner ability register bits for fiber cards (Alaska Only!) */ +#define E1000_FPAR_1000X_FD 0x0020 +#define E1000_FPAR_1000X 0x0040 +#define E1000_FPAR_SYM_PAUSE 0x0080 +#define E1000_FPAR_ASYM_PAUSE 0x0100 +#define E1000_FPAR_FAULT1 0x1000 +#define E1000_FPAR_FAULT2 0x2000 +#define E1000_FPAR_ACK 0x4000 +#define E1000_FPAR_NEXT_PAGE 0x8000 + #define E1000_ER 0x06 /* autoneg expansion reg */ #define E1000_ER_LP_NWAY 0x0001 #define E1000_ER_PAGE_RXD 0x0002 @@ -284,3 +304,11 @@ #define E1000_LCR_PULSE_340_670MS 0x5000 #define E1000_LCR_PULSE_670_13S 0x6000 #define E1000_LCR_PULSE_13_26S 0x7000 + +/* The following register is found only on the 88E1011 Alaska PHY */ +#define E1000_ESSR 0x1B /* Extended PHY specific sts */ +#define E1000_ESSR_FIBER_LINK 0x2000 +#define E1000_ESSR_GMII_COPPER 0x000f +#define E1000_ESSR_GMII_FIBER 0x0007 +#define E1000_ESSR_TBI_COPPER 0x000d +#define E1000_ESSR_TBI_FIBER 0x0005 ==== //depot/projects/ia64/sys/dev/mii/miidevs#11 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/mii/miidevs,v 1.26 2003/09/11 03:53:46 wpaul Exp $ +$FreeBSD: src/sys/dev/mii/miidevs,v 1.27 2003/09/20 10:53:08 wilko Exp $ /*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/ /*- @@ -172,5 +172,5 @@ /* Marvell Semiconductor PHYs */ model MARVELL E1000 0x0000 Marvell 88E1000 Gigabit PHY +model MARVELL E1011 0x0002 Marvell 88E1011 Gigabit PHY model xxMARVELL E1000 0x0005 Marvell 88E1000 Gigabit PHY - ==== //depot/projects/ia64/sys/dev/pccard/pccarddevs#36 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.69 2003/08/21 18:05:35 imp Exp $ +$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.71 2003/09/20 17:54:30 imp Exp $ /* $NetBSD: pcmciadevs,v 1.184 2003/07/26 10:39:32 martin Exp $ */ /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */ @@ -372,6 +372,7 @@ product PLANEX_2 GWNS11H 0xb001 Planex GW-NS11H /* Proxim */ +product PROXIM HARMONY 0x0002 Proxim HARMONY 80211B product PROXIM ROAMABOUT_2400FH 0x1058 Digital RoamAbout 2400FH product PROXIM RANGELAN2_7401 0x1158 Proxim RangeLAN2 7401 product PROXIM RANGELANDS_8430 0x8000 Proxim RangeLAN-DS 8430 @@ -541,6 +542,7 @@ product EPSON EEN10B { "Seiko&spEpson&spCorp.", "Ethernet", "P/N:&spEEN10B&spRev.&sp00", NULL } Epson EEN10B product EPSON SC200 { "EPSON", "SCSI-2&spPC&spCard&spSC200", NULL, NULL } Media Intelligent SCSI-2 PC Card MSC-200 product EXP EXPMULTIMEDIA { "EXP&sp&sp&sp", "PnPIDE", "F1", NULL } EXP IDE/ATAPI DVD Card +product EXP THINLANCOMBO { "PCMCIA&spLAN", "Ethernet", NULL, NULL } EXP ThinLan Combo product FREECOM PCCARDIDE { "FREECOM", "PCCARD-IDE", NULL, NULL } FREECOM PCCARD-IDE product FUJITSU FMV_J181 { "PCMCIA&spMBH10302", "01", NULL, NULL } FUJITSU FMV-J181 PCMCIA Card product FUJITSU FMV_J182 { "FUJITSU", "LAN&spCard(FMV-J182)", "Ver.01", NULL } FUJITSU FMV-J182 PCMCIA Card ==== //depot/projects/ia64/sys/dev/pccard/pccarddevs.h#36 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.69 2003/08/21 18:05:55 imp Exp $ */ +/* $FreeBSD: src/sys/dev/pccard/pccarddevs.h,v 1.71 2003/09/20 18:01:51 imp Exp $ */ /* * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.69 2003/08/21 18:05:35 imp Exp + * FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.71 2003/09/20 17:54:30 imp Exp */ /* $NetBSD: pcmciadevs,v 1.184 2003/07/26 10:39:32 martin Exp $ */ /* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */ @@ -627,6 +627,9 @@ #define PCMCIA_STR_PLANEX_2_GWNS11H "Planex GW-NS11H" /* Proxim */ +#define PCMCIA_CIS_PROXIM_HARMONY { NULL, NULL, NULL, NULL } +#define PCMCIA_PRODUCT_PROXIM_HARMONY 0x0002 +#define PCMCIA_STR_PROXIM_HARMONY "Proxim HARMONY 80211B" #define PCMCIA_CIS_PROXIM_ROAMABOUT_2400FH { NULL, NULL, NULL, NULL } #define PCMCIA_PRODUCT_PROXIM_ROAMABOUT_2400FH 0x1058 #define PCMCIA_STR_PROXIM_ROAMABOUT_2400FH "Digital RoamAbout 2400FH" @@ -954,6 +957,9 @@ #define PCMCIA_CIS_EXP_EXPMULTIMEDIA { "EXP ", "PnPIDE", "F1", NULL } #define PCMCIA_PRODUCT_EXP_EXPMULTIMEDIA 0xffffffff #define PCMCIA_STR_EXP_EXPMULTIMEDIA "EXP IDE/ATAPI DVD Card" +#define PCMCIA_CIS_EXP_THINLANCOMBO { "PCMCIA LAN", "Ethernet", NULL, NULL } +#define PCMCIA_PRODUCT_EXP_THINLANCOMBO 0xffffffff +#define PCMCIA_STR_EXP_THINLANCOMBO "EXP ThinLan Combo" #define PCMCIA_CIS_FREECOM_PCCARDIDE { "FREECOM", "PCCARD-IDE", NULL, NULL } #define PCMCIA_PRODUCT_FREECOM_PCCARDIDE 0xffffffff #define PCMCIA_STR_FREECOM_PCCARDIDE "FREECOM PCCARD-IDE" ==== //depot/projects/ia64/sys/dev/pccard/pccardvar.h#12 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: pcmciavar.h,v 1.12 2000/02/08 12:51:31 enami Exp $ */ -/* $FreeBSD: src/sys/dev/pccard/pccardvar.h,v 1.42 2003/08/29 00:25:50 imp Exp $ */ +/* $FreeBSD: src/sys/dev/pccard/pccardvar.h,v 1.43 2003/09/20 17:46:39 imp Exp $ */ /* * Copyright (c) 1997 Marc Horowitz. All rights reserved. @@ -184,9 +184,6 @@ STAILQ_HEAD(, pccard_function) pf_head; }; -#define PCCARD_MEM_ATTR 1 -#define PCCARD_MEM_COMMON 2 - #define PCCARD_WIDTH_AUTO 0 #define PCCARD_WIDTH_IO8 1 #define PCCARD_WIDTH_IO16 2 ==== //depot/projects/ia64/sys/dev/usb/umass.c#33 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/umass.c,v 1.90 2003/08/22 05:54:57 njl Exp $ + * $FreeBSD: src/sys/dev/usb/umass.c,v 1.91 2003/09/20 08:18:16 gj Exp $ * $NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $ */ @@ -1644,9 +1644,9 @@ err = usbd_do_request(udev, &req, &buf); switch (err) { case USBD_NORMAL_COMPLETION: + maxlun = buf; DPRINTF(UDMASS_BBB, ("%s: Max Lun is %d\n", USBDEVNAME(sc->sc_dev), maxlun)); - maxlun = buf; break; case USBD_STALLED: case USBD_SHORT_XFER: ==== //depot/projects/ia64/sys/dev/usb/usbdevs#47 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.137 2003/09/19 22:42:51 jb Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.138 2003/09/20 20:01:08 se Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -146,6 +146,7 @@ vendor PANASONIC 0x04da Panasonic (Matsushita) vendor IIYAMA 0x04e1 Iiyama vendor SHUTTLE 0x04e6 Shuttle Technology +vendor SAMSUNG 0x04e8 Samsung Electronics vendor ANNABOOKS 0x04ed Annabooks vendor JVC 0x04f1 JVC vendor CHICONY 0x04f2 Chicony Electronics @@ -1042,6 +1043,9 @@ /* RATOC Systems products */ product RATOC REXUSB60 0xb000 USB serial adapter REX-USB60 +/* Samsung products */ +product SAMSUNG ML6060 0x3008 ML-6060 laser printer + /* SanDisk products */ product SANDISK SDDR05A 0x0001 ImageMate SDDR-05a product SANDISK SDDR05 0x0005 ImageMate SDDR-05 ==== //depot/projects/ia64/sys/dev/usb/usbdevs.h#45 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.146 2003/09/20 20:01:08 se Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.137 2003/09/19 22:42:51 jb Exp */ /* @@ -153,6 +153,7 @@ #define USB_VENDOR_PANASONIC 0x04da /* Panasonic (Matsushita) */ #define USB_VENDOR_IIYAMA 0x04e1 /* Iiyama */ #define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */ +#define USB_VENDOR_SAMSUNG 0x04e8 /* Samsung Electronics */ #define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */ #define USB_VENDOR_JVC 0x04f1 /* JVC */ #define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics */ @@ -1049,6 +1050,9 @@ /* RATOC Systems products */ #define USB_PRODUCT_RATOC_REXUSB60 0xb000 /* USB serial adapter REX-USB60 */ +/* Samsung products */ +#define USB_PRODUCT_SAMSUNG_ML6060 0x3008 /* ML-6060 laser printer */ + /* SanDisk products */ #define USB_PRODUCT_SANDISK_SDDR05A 0x0001 /* ImageMate SDDR-05a */ #define USB_PRODUCT_SANDISK_SDDR05 0x0005 /* ImageMate SDDR-05 */ ==== //depot/projects/ia64/sys/dev/usb/usbdevs_data.h#45 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.145 2003/09/19 22:42:51 jb Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.146 2003/09/20 20:01:08 se Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.136 2003/09/18 15:41:06 obrien Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.137 2003/09/19 22:42:51 jb Exp */ /* @@ -2500,6 +2500,12 @@ "USB serial adapter REX-USB60", }, { + USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_ML6060, + 0, + "Samsung Electronics", + "ML-6060 laser printer", + }, + { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A, 0, "SanDisk Corp", @@ -3544,6 +3550,12 @@ NULL, }, { + USB_VENDOR_SAMSUNG, 0, + USB_KNOWNDEV_NOPROD, + "Samsung Electronics", + NULL, + }, + { USB_VENDOR_ANNABOOKS, 0, USB_KNOWNDEV_NOPROD, "Annabooks", ==== //depot/projects/ia64/sys/dev/wi/if_wi_pccard.c#31 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.39 2003/09/05 22:29:30 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi_pccard.c,v 1.40 2003/09/20 05:27:18 imp Exp $"); #include "opt_wi.h" @@ -163,6 +163,7 @@ PCMCIA_CARD(NOKIA, C110_WLAN, 0), PCMCIA_CARD(PLANEX_2, GWNS11H, 0), PCMCIA_CARD(PROXIM, RANGELANDS_8430, 0), + PCMCIA_CARD(PROXIM, HARMONY, 0), PCMCIA_CARD(SAMSUNG, SWL_2000N, 0), PCMCIA_CARD(SIEMENS, SS1021, 0), PCMCIA_CARD(SIMPLETECH, SPECTRUM24_ALT, 0), ==== //depot/projects/ia64/sys/ia64/ia64/machdep.c#95 (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/ia64/ia64/machdep.c,v 1.155 2003/09/19 22:51:26 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.156 2003/09/20 20:34:58 marcel Exp $ */ #include "opt_compat.h" @@ -1079,8 +1079,12 @@ if (bspst - td->td_kstack < s.ndirty) __asm __volatile("flushrs;;"); __asm __volatile("mov ar.rsc=3"); + kstk = (uint64_t*)td->td_kstack; ustk = (uint64_t*)s.bspstore; - kstk = (uint64_t*)td->td_kstack; + if ((s.bspstore & 0x1ff) == 0x1f8) { + suword64(ustk++, s.rnat); + s.rnat = 0; + } while (s.ndirty > 0) { suword64(ustk++, *kstk++); if (((uintptr_t)ustk & 0x1ff) == 0x1f8) ==== //depot/projects/ia64/sys/ia64/ia64/pmap.c#77 (text+ko) ==== @@ -43,9 +43,30 @@ * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 * from: i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp * with some ideas from NetBSD's alpha pmap - * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.122 2003/09/12 07:07:48 alc Exp $ */ +#include +__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.123 2003/09/20 19:27:48 marcel Exp $"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + /* * Manages physical address maps. * @@ -93,38 +114,6 @@ * Kernel physically mapped cacheable */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - /* XXX move to a header. */ extern u_int64_t ia64_gateway_page[]; @@ -506,50 +495,6 @@ map_gateway_page(); } -void * -uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) -{ - static vm_pindex_t color; - vm_page_t m; - int pflags; - void *va; - - *flags = UMA_SLAB_PRIV; - if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT; - else - pflags = VM_ALLOC_SYSTEM; - if (wait & M_ZERO) - pflags |= VM_ALLOC_ZERO; - - for (;;) { - m = vm_page_alloc(NULL, color++, pflags | VM_ALLOC_NOOBJ); - if (m == NULL) { - if (wait & M_NOWAIT) - return (NULL); - else - VM_WAIT; - } else - break; - } - - va = (void *)IA64_PHYS_TO_RR7(VM_PAGE_TO_PHYS(m)); - if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) - bzero(va, PAGE_SIZE); - return (va); -} - -void -uma_small_free(void *mem, int size, u_int8_t flags) -{ - vm_page_t m; - - m = PHYS_TO_VM_PAGE(IA64_RR_MASK((u_int64_t)mem)); - vm_page_lock_queues(); - vm_page_free(m); - vm_page_unlock_queues(); -} - /* * Initialize the pmap module. * Called by vm_init, to initialize any structures that the pmap ==== //depot/projects/ia64/sys/kern/linker_if.m#2 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/kern/linker_if.m,v 1.4 2001/10/30 15:21:45 green Exp $ +# $FreeBSD: src/sys/kern/linker_if.m,v 1.5 2003/09/20 17:39:32 dfr Exp $ # #include @@ -102,6 +102,6 @@ const char* filename; linker_file_t* result; }; -STATICMETHOD int link_preload_finish { +METHOD int link_preload_finish { linker_file_t file; }; ==== //depot/projects/ia64/sys/pci/if_sk.c#18 (text+ko) ==== @@ -1,3 +1,5 @@ +/* $OpenBSD: if_sk.c,v 1.33 2003/08/12 05:23:06 nate Exp $ */ + /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul . All rights reserved. @@ -31,6 +33,22 @@ */ /* + * Copyright (c) 2003 Nathan L. Binkert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* * SysKonnect SK-NET gigabit ethernet driver for FreeBSD. Supports * the SK-984x series adapters, both single port and dual port. * References: @@ -67,7 +85,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/pci/if_sk.c,v 1.64 2003/08/22 07:13:21 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/pci/if_sk.c,v 1.65 2003/09/20 10:53:08 wilko Exp $"); #include #include >>> TRUNCATED FOR MAIL (1000 lines) <<<