From owner-p4-projects@FreeBSD.ORG Sun May 25 00:13:05 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DABC037B404; Sun, 25 May 2003 00:13:04 -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 754EC37B401 for ; Sun, 25 May 2003 00:13:04 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B4F143F93 for ; Sun, 25 May 2003 00:13: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 h4P7D30U046706 for ; Sun, 25 May 2003 00:13:03 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4P7D3nu046703 for perforce@freebsd.org; Sun, 25 May 2003 00:13:03 -0700 (PDT) Date: Sun, 25 May 2003 00:13:03 -0700 (PDT) Message-Id: <200305250713.h4P7D3nu046703@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 31840 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, 25 May 2003 07:13:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=31840 Change 31840 by peter@peter_hammer on 2003/05/25 00:12:18 Fix subr_sbuf.c so that it doesn't trash the varargs state. What it was doing was utterly illegal. You have to use va_copy() to save the state so you can use it again. Affected files ... .. //depot/projects/hammer/sys/geom/geom_kern.c#12 edit .. //depot/projects/hammer/sys/kern/subr_sbuf.c#5 edit Differences ... ==== //depot/projects/hammer/sys/geom/geom_kern.c#12 (text+ko) ==== @@ -164,7 +164,6 @@ SHUTDOWN_PRI_FIRST); } -#ifndef __amd64__ /* provokes compiler bug in geom_dump.c */ static int sysctl_kern_geom_conftxt(SYSCTL_HANDLER_ARGS) { @@ -206,11 +205,9 @@ sbuf_delete(sb); return error; } -#endif SYSCTL_NODE(_kern, OID_AUTO, geom, CTLFLAG_RW, 0, "GEOMetry management"); -#ifndef __amd64__ /* provokes compiler bug in geom_dump.c */ SYSCTL_PROC(_kern_geom, OID_AUTO, confxml, CTLTYPE_STRING|CTLFLAG_RD, 0, 0, sysctl_kern_geom_confxml, "", "Dump the GEOM config in XML"); @@ -222,7 +219,6 @@ SYSCTL_PROC(_kern_geom, OID_AUTO, conftxt, CTLTYPE_STRING|CTLFLAG_RD, 0, 0, sysctl_kern_geom_conftxt, "", "Dump the GEOM config in txt"); -#endif SYSCTL_INT(_kern_geom, OID_AUTO, debugflags, CTLFLAG_RW, &g_debugflags, 0, ""); ==== //depot/projects/hammer/sys/kern/subr_sbuf.c#5 (text+ko) ==== @@ -399,6 +399,7 @@ int sbuf_vprintf(struct sbuf *s, const char *fmt, va_list ap) { + va_list ap_copy; int len; assert_sbuf_integrity(s); @@ -411,8 +412,10 @@ return (-1); do { + va_copy(ap_copy, ap); len = vsnprintf(&s->s_buf[s->s_len], SBUF_FREESPACE(s) + 1, - fmt, ap); + fmt, ap_copy); + va_end(ap_copy); } while (len > SBUF_FREESPACE(s) && sbuf_extend(s, len - SBUF_FREESPACE(s)) == 0); From owner-p4-projects@FreeBSD.ORG Sun May 25 00:51:55 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FFEB37B404; Sun, 25 May 2003 00:51: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 F1C3F37B401 for ; Sun, 25 May 2003 00:51:53 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E5FE43F75 for ; Sun, 25 May 2003 00:51:53 -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 h4P7pq0U053296 for ; Sun, 25 May 2003 00:51:52 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4P7pqJf053293 for perforce@freebsd.org; Sun, 25 May 2003 00:51:52 -0700 (PDT) Date: Sun, 25 May 2003 00:51:52 -0700 (PDT) Message-Id: <200305250751.h4P7pqJf053293@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 31843 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, 25 May 2003 07:51:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=31843 Change 31843 by peter@peter_daintree on 2003/05/25 00:51:40 IFC @31842 Affected files ... .. //depot/projects/hammer/lib/libthr/arch/ia64/ia64/_curthread.c#2 integrate .. //depot/projects/hammer/release/Makefile.inc.docports#4 integrate .. //depot/projects/hammer/sys/dev/cardbus/cardbus_cis.c#7 integrate .. //depot/projects/hammer/sys/dev/fxp/if_fxp.c#16 integrate .. //depot/projects/hammer/sys/ia64/ia64/syscall.s#2 integrate .. //depot/projects/hammer/sys/ia64/ia64/trap.c#10 integrate .. //depot/projects/hammer/sys/ia64/include/cpu.h#6 integrate .. //depot/projects/hammer/sys/ia64/include/cpufunc.h#5 integrate .. //depot/projects/hammer/sys/nfsserver/nfs.h#2 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_serv.c#8 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_srvsubs.c#6 integrate .. //depot/projects/hammer/usr.sbin/Makefile#16 integrate .. //depot/projects/hammer/usr.sbin/ppp/ncpaddr.c#6 integrate Differences ... ==== //depot/projects/hammer/lib/libthr/arch/ia64/ia64/_curthread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.1 2003/04/20 03:06:42 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.2 2003/05/25 06:49:19 marcel Exp $"); #include #include @@ -52,7 +52,7 @@ { if (uc != NULL) - uc->uc_mcontext.mc_gr[13] = (uint64_t)thread; + uc->uc_mcontext.mc_special.tp = (uint64_t)thread; else _tp = thread; return (NULL); ==== //depot/projects/hammer/release/Makefile.inc.docports#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile.inc.docports,v 1.17 2003/04/26 07:31:43 murray Exp $ +# $FreeBSD: src/release/Makefile.inc.docports,v 1.18 2003/05/25 03:41:41 kuriyama Exp $ # # List of (dependent) ports that are minimally required to be # checked out from CVS in order to get ${DOCPORTS} built and @@ -66,7 +66,8 @@ MINIMALDOCPORTS+= ports/textproc/sed_inplace .endif .if ${MACHINE_ARCH} != "i386" -MINIMALDOCPORTS+= ports/textproc/openjade +MINIMALDOCPORTS+= ports/textproc/openjade \ + ports/textproc/opensp .else MINIMALDOCPORTS+= ports/textproc/jade .endif ==== //depot/projects/hammer/sys/dev/cardbus/cardbus_cis.c#7 (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/cardbus/cardbus_cis.c,v 1.36 2003/04/08 07:05:16 imp Exp $ + * $FreeBSD: src/sys/dev/cardbus/cardbus_cis.c,v 1.37 2003/05/24 23:23:41 imp Exp $ */ /* @@ -423,8 +423,10 @@ if (type == SYS_RES_MEMORY) { if (reg & TPL_BAR_REG_PREFETCHABLE) dinfo->mprefetchable |= BARBIT(bar); +#if 0 if (reg & TPL_BAR_REG_BELOW1MB) dinfo->mbelow1mb |= BARBIT(bar); +#endif } /* ==== //depot/projects/hammer/sys/dev/fxp/if_fxp.c#16 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.179 2003/05/16 01:13:16 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.180 2003/05/25 05:04:26 truckman Exp $"); #include #include @@ -383,7 +383,7 @@ u_int32_t val; u_int16_t data, myea[ETHER_ADDR_LEN / 2]; int i, rid, m1, m2, prefer_iomap, maxtxseg; - int s; + int s, ipcbxmit_disable; sc->dev = dev; callout_handle_init(&sc->stat_ch); @@ -582,9 +582,31 @@ * and later chips. Note: we need extended TXCB support * too, but that's already enabled by the code above. * Be careful to do this only on the right devices. + * + * At least some 82550 cards probed as "chip=0x12298086 rev=0x0d" + * truncate packets that end with an mbuf containing 1 to 3 bytes + * when used with this feature enabled in the previous version of the + * driver. This problem appears to be fixed now that the driver + * always sets the hardware parse bit in the IPCB structure, which + * the "Intel 8255x 10/100 Mbps Ethernet Controller Family Open + * Source Software Developer Manual" says is necessary in the + * cases where packet truncation was observed. + * + * The device hint "hint.fxp.UNIT_NUMBER.ipcbxmit_disable" + * allows this feature to be disabled at boot time. + * + * If fxp is not compiled into the kernel, this feature may also + * be disabled at run time: + * # kldunload fxp + * # kenv hint.fxp.0.ipcbxmit_disable=1 + * # kldload fxp */ - if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { + if (resource_int_value("fxp", device_get_unit(dev), "ipcbxmit_disable", + &ipcbxmit_disable) != 0) + ipcbxmit_disable = 0; + if (ipcbxmit_disable == 0 && (sc->revision == FXP_REV_82550 || + sc->revision == FXP_REV_82550_C)) { sc->rfa_size = sizeof (struct fxp_rfa); sc->tx_cmd = FXP_CB_COMMAND_IPCBXMIT; sc->flags |= FXP_FLAG_EXT_RFA; @@ -1277,6 +1299,23 @@ txp = sc->fxp_desc.tx_last->tx_next; /* + * A note in Appendix B of the Intel 8255x 10/100 Mbps + * Ethernet Controller Family Open Source Software + * Developer Manual says: + * Using software parsing is only allowed with legal + * TCP/IP or UDP/IP packets. + * ... + * For all other datagrams, hardware parsing must + * be used. + * Software parsing appears to truncate ICMP and + * fragmented UDP packets that contain one to three + * bytes in the second (and final) mbuf of the packet. + */ + if (sc->flags & FXP_FLAG_EXT_RFA) + txp->tx_cb->ipcb_ip_activation_high = + FXP_IPCB_HARDWAREPARSING_ENABLE; + + /* * Deal with TCP/IP checksum offload. Note that * in order for TCP checksum offload to work, * the pseudo header checksum must have already @@ -1287,8 +1326,6 @@ if (mb_head->m_pkthdr.csum_flags) { if (mb_head->m_pkthdr.csum_flags & CSUM_DELAY_DATA) { - txp->tx_cb->ipcb_ip_activation_high = - FXP_IPCB_HARDWAREPARSING_ENABLE; txp->tx_cb->ipcb_ip_schedule = FXP_IPCB_TCPUDP_CHECKSUM_ENABLE; if (mb_head->m_pkthdr.csum_flags & CSUM_TCP) ==== //depot/projects/hammer/sys/ia64/ia64/syscall.s#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/ia64/ia64/syscall.s,v 1.1 2003/05/15 07:51:22 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/syscall.s,v 1.2 2003/05/24 22:53:10 marcel Exp $ */ #include @@ -242,9 +242,6 @@ .prologue .unwabi @svr4, 'E' .save rp, r0 - - rsm psr.i - ;; { .mmi mov r16=ar.rsc mov ar.rsc=0 @@ -380,7 +377,7 @@ ;; } { .mlx - ssm psr.dfh|psr.ac|psr.i + ssm psr.dfh|psr.ac movl gp=__gp ;; } @@ -473,20 +470,20 @@ } { .mmi loadrs - mov r14=ar.k5 + mov ar.k7=r31 mov sp=r16 ;; } { .mmi mov r30=ar.bspstore ;; - mov ar.bspstore=r21 + mov r14=ar.k5 dep r30=0,r30,0,9 ;; } { .mmi mov ar.k6=r30 - mov ar.k7=r31 + mov ar.bspstore=r21 mov r13=r23 ;; } ==== //depot/projects/hammer/sys/ia64/ia64/trap.c#10 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/ia64/trap.c,v 1.76 2003/05/16 21:26:41 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/ia64/trap.c,v 1.78 2003/05/25 01:01:28 marcel Exp $ */ /* From: src/sys/alpha/alpha/trap.c,v 1.33 */ /* $NetBSD: trap.c,v 1.31 1998/03/26 02:21:46 thorpej Exp $ */ @@ -343,11 +343,10 @@ int i, user; u_int sticks; - user = ((framep->tf_special.psr & IA64_PSR_CPL) == IA64_PSR_CPL_USER); + user = ((framep->tf_special.iip >> 61) < 5) ? 1 : 0; /* Short-circuit break instruction based system calls. */ - if (vector == IA64_VEC_BREAK && user && - framep->tf_special.ifa == 0x100000) { + if (vector == IA64_VEC_BREAK && framep->tf_special.ifa == 0x100000) { break_syscall(framep); return; } ==== //depot/projects/hammer/sys/ia64/include/cpu.h#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/include/cpu.h,v 1.30 2003/05/24 00:17:34 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/include/cpu.h,v 1.31 2003/05/24 21:16:19 marcel Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /* @@ -63,8 +63,7 @@ /* XXX */ #define TRAPF_PC(tf) ((tf)->tf_special.iip) -#define TRAPF_USERMODE(framep) \ - (((framep)->tf_special.psr & IA64_PSR_CPL) == IA64_PSR_CPL_USER) +#define TRAPF_USERMODE(tf) ((TRAPF_PC(tf) >> 61) < 5) /* * CTL_MACHDEP definitions. ==== //depot/projects/hammer/sys/ia64/include/cpufunc.h#5 (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/include/cpufunc.h,v 1.16 2003/04/29 09:50:03 marcel Exp $ + * $FreeBSD: src/sys/ia64/include/cpufunc.h,v 1.17 2003/05/24 21:44:24 marcel Exp $ */ #ifndef _MACHINE_CPUFUNC_H_ @@ -193,13 +193,14 @@ register_t psr; __asm __volatile ("mov %0=psr;;" : "=r"(psr)); disable_intr(); - return (psr); + return ((psr & IA64_PSR_I) ? 1 : 0); } static __inline void -intr_restore(critical_t psr) +intr_restore(register_t ie) { - __asm __volatile ("mov psr.l=%0;; srlz.d" :: "r"(psr)); + if (ie) + enable_intr(); } #endif /* _KERNEL */ ==== //depot/projects/hammer/sys/nfsserver/nfs.h#2 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs.h 8.4 (Berkeley) 5/1/95 - * $FreeBSD: src/sys/nfsserver/nfs.h,v 1.68 2002/07/24 22:27:35 peter Exp $ + * $FreeBSD: src/sys/nfsserver/nfs.h,v 1.69 2003/05/25 06:17:33 truckman Exp $ */ #ifndef _NFSSERVER_NFS_H_ @@ -332,7 +332,8 @@ int netaddr_match(int, union nethostaddr *, struct sockaddr *); int nfs_namei(struct nameidata *, fhandle_t *, int, struct nfssvc_sock *, struct sockaddr *, struct mbuf **, - caddr_t *, struct vnode **, struct thread *, int); + caddr_t *, struct vnode **, int, struct vattr *, int *, + struct thread *, int); void nfsm_adj(struct mbuf *, int, int); int nfsm_mbuftouio(struct mbuf **, struct uio *, int, caddr_t *); void nfsrv_initcache(void); ==== //depot/projects/hammer/sys/nfsserver/nfs_serv.c#8 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/nfsserver/nfs_serv.c,v 1.133 2003/04/24 04:31:25 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/nfsserver/nfs_serv.c,v 1.134 2003/05/25 06:17:33 truckman Exp $"); /* * nfs version 2 and 3 server calls to vnode ops @@ -467,7 +467,7 @@ nd.ni_cnd.cn_nameiop = LOOKUP; nd.ni_cnd.cn_flags = LOCKLEAF | SAVESTART; error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, pubflag); + &dirp, v3, &dirattr, &dirattr_ret, td, pubflag); /* * namei failure, only dirp to cleanup. Clear out garbarge from @@ -476,9 +476,6 @@ if (error) { if (dirp) { - if (v3) - dirattr_ret = VOP_GETATTR(dirp, &dirattr, cred, - td); vrele(dirp); dirp = NULL; } @@ -551,9 +548,6 @@ } if (dirp) { - if (v3) - dirattr_ret = VOP_GETATTR(dirp, &dirattr, cred, - td); vrele(dirp); dirp = NULL; } @@ -1630,15 +1624,10 @@ * prior to calling nfsm_reply ( which might goto nfsmout ). */ error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; } if (error) { nfsm_reply(NFSX_WCCDATA(v3)); @@ -1809,9 +1798,25 @@ if (exclusive_flag && !error && bcmp(cverf, (caddr_t)&vap->va_atime, NFSX_V3CREATEVERF)) error = EEXIST; - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); - vrele(dirp); - dirp = NULL; + if (dirp == nd.ni_dvp) + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + else { + /* Drop the other locks to avoid deadlock. */ + if (nd.ni_dvp) { + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + } + if (nd.ni_vp) + vput(nd.ni_vp); + nd.ni_dvp = NULL; + nd.ni_vp = NULL; + + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); + } } ereply: nfsm_reply(NFSX_SRVFH(v3) + NFSX_FATTR(v3) + NFSX_WCCDATA(v3)); @@ -1906,9 +1911,7 @@ */ error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, td); + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); if (error) { nfsm_reply(NFSX_WCCDATA(1)); nfsm_srvwcc_data(dirfor_ret, &dirfor, diraft_ret, &diraft); @@ -2006,10 +2009,10 @@ vp = NULL; nd.ni_vp = NULL; } - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); if (dirp) { - vrele(dirp); - dirp = NULL; + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); } ereply: nfsm_reply(NFSX_SRVFH(1) + NFSX_POSTOPATTR(1) + NFSX_WCCDATA(1)); @@ -2085,15 +2088,10 @@ nd.ni_cnd.cn_nameiop = DELETE; nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF; error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; } if (error == 0) { if (nd.ni_vp->v_type == VDIR) { @@ -2114,7 +2112,25 @@ } } if (dirp && v3) { - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + if (dirp == nd.ni_dvp) + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + else { + /* Drop the other locks to avoid deadlock. */ + if (nd.ni_dvp) { + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + } + if (nd.ni_vp) + vput(nd.ni_vp); + nd.ni_dvp = NULL; + nd.ni_vp = NULL; + + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); + } vrele(dirp); dirp = NULL; } @@ -2200,15 +2216,10 @@ fromnd.ni_cnd.cn_nameiop = DELETE; fromnd.ni_cnd.cn_flags = WANTPARENT | SAVESTART; error = nfs_namei(&fromnd, ffhp, len, slp, nam, &md, - &dpos, &fdirp, td, FALSE); - if (fdirp) { - if (v3) { - fdirfor_ret = VOP_GETATTR(fdirp, &fdirfor, cred, - td); - } else { - vrele(fdirp); - fdirp = NULL; - } + &dpos, &fdirp, v3, &fdirfor, &fdirfor_ret, td, FALSE); + if (fdirp && !v3) { + vrele(fdirp); + fdirp = NULL; } if (error) { nfsm_reply(2 * NFSX_WCCDATA(v3)); @@ -2227,15 +2238,10 @@ tond.ni_cnd.cn_nameiop = RENAME; tond.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART; error = nfs_namei(&tond, tfhp, len2, slp, nam, &md, - &dpos, &tdirp, td, FALSE); - if (tdirp) { - if (v3) { - tdirfor_ret = VOP_GETATTR(tdirp, &tdirfor, cred, - td); - } else { - vrele(tdirp); - tdirp = NULL; - } + &dpos, &tdirp, v3, &tdirfor, &tdirfor_ret, td, FALSE); + if (tdirp && !v3) { + vrele(tdirp); + tdirp = NULL; } if (error) goto out1; @@ -2318,12 +2324,30 @@ /* fall through */ out1: - if (fdirp) - fdiraft_ret = VOP_GETATTR(fdirp, &fdiraft, cred, td); - if (tdirp) - tdiraft_ret = VOP_GETATTR(tdirp, &tdiraft, cred, td); nfsm_reply(2 * NFSX_WCCDATA(v3)); if (v3) { + /* Release existing locks to prevent deadlock. */ + if (tond.ni_dvp) { + if (tond.ni_dvp == tond.ni_vp) + vrele(tond.ni_dvp); + else + vput(tond.ni_dvp); + } + if (tond.ni_vp) + vput(tond.ni_vp); + tond.ni_dvp = NULL; + tond.ni_vp = NULL; + + if (fdirp) { + vn_lock(fdirp, LK_EXCLUSIVE | LK_RETRY, td); + fdiraft_ret = VOP_GETATTR(fdirp, &fdiraft, cred, td); + VOP_UNLOCK(fdirp, 0, td); + } + if (tdirp) { + vn_lock(tdirp, LK_EXCLUSIVE | LK_RETRY, td); + tdiraft_ret = VOP_GETATTR(tdirp, &tdiraft, cred, td); + VOP_UNLOCK(tdirp, 0, td); + } nfsm_srvwcc_data(fdirfor_ret, &fdirfor, fdiraft_ret, &fdiraft); nfsm_srvwcc_data(tdirfor_ret, &tdirfor, tdiraft_ret, &tdiraft); } @@ -2407,7 +2431,7 @@ nfsm_srvmtofh(dfhp); nfsm_srvnamesiz(len); - error = nfsrv_fhtovp(fhp, FALSE, &vp, cred, slp, nam, &rdonly, TRUE); + error = nfsrv_fhtovp(fhp, TRUE, &vp, cred, slp, nam, &rdonly, TRUE); if (error) { nfsm_reply(NFSX_POSTOPATTR(v3) + NFSX_WCCDATA(v3)); if (v3) { @@ -2418,47 +2442,71 @@ error = 0; goto nfsmout; } + if (v3) + getret = VOP_GETATTR(vp, &at, cred, td); if (vp->v_type == VDIR) { error = EPERM; /* POSIX */ goto out1; } + VOP_UNLOCK(vp, 0, td); nd.ni_cnd.cn_cred = cred; nd.ni_cnd.cn_nameiop = CREATE; nd.ni_cnd.cn_flags = LOCKPARENT; error = nfs_namei(&nd, dfhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; + } + if (error) { + vrele(vp); + vp = NULL; + goto out2; } - if (error) - goto out1; - xp = nd.ni_vp; if (xp != NULL) { error = EEXIST; - goto out; + vrele(vp); + vp = NULL; + goto out2; } xp = nd.ni_dvp; - if (vp->v_mount != xp->v_mount) + if (vp->v_mount != xp->v_mount) { error = EXDEV; -out: - if (!error) { - error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd); - NDFREE(&nd, NDF_ONLY_PNBUF); + vrele(vp); + vp = NULL; + goto out2; } + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd); + NDFREE(&nd, NDF_ONLY_PNBUF); /* fall through */ out1: if (v3) getret = VOP_GETATTR(vp, &at, cred, td); - if (dirp) - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); +out2: + if (dirp) { + if (dirp == nd.ni_dvp) + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + else { + /* Release existing locks to prevent deadlock. */ + if (nd.ni_dvp) { + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + } + if (nd.ni_vp) + vrele(nd.ni_vp); + nd.ni_dvp = NULL; + nd.ni_vp = NULL; + + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); + } + } ereply: nfsm_reply(NFSX_POSTOPATTR(v3) + NFSX_WCCDATA(v3)); if (v3) { @@ -2473,7 +2521,7 @@ if (dirp) vrele(dirp); if (vp) - vrele(vp); + vput(vp); if (nd.ni_dvp) { if (nd.ni_dvp == nd.ni_vp) vrele(nd.ni_dvp); @@ -2534,15 +2582,10 @@ nd.ni_cnd.cn_nameiop = CREATE; nd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART; error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; } if (error) goto out; @@ -2630,9 +2673,9 @@ pathcp = NULL; } if (dirp) { + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); - vrele(dirp); - dirp = NULL; + VOP_UNLOCK(dirp, 0, td); } if (nd.ni_startdir) { vrele(nd.ni_startdir); @@ -2719,15 +2762,10 @@ nd.ni_cnd.cn_flags = LOCKPARENT; error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; } if (error) { nfsm_reply(NFSX_WCCDATA(v3)); @@ -2778,8 +2816,31 @@ error = VOP_GETATTR(nd.ni_vp, vap, cred, td); } out: - if (dirp) - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + if (dirp) { + if (dirp == nd.ni_dvp) { + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + } else { + /* Release existing locks to prevent deadlock. */ + if (nd.ni_dvp) { + NDFREE(&nd, NDF_ONLY_PNBUF); + if (nd.ni_dvp == nd.ni_vp && vpexcl) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + } + if (nd.ni_vp) { + if (vpexcl) + vput(nd.ni_vp); + else + vrele(nd.ni_vp); + } + nd.ni_dvp = NULL; + nd.ni_vp = NULL; + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); + } + } nfsm_reply(NFSX_SRVFH(v3) + NFSX_POSTOPATTR(v3) + NFSX_WCCDATA(v3)); if (v3) { if (!error) { @@ -2859,15 +2920,10 @@ nd.ni_cnd.cn_nameiop = DELETE; nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF; error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, - &dirp, td, FALSE); - if (dirp) { - if (v3) { - dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, - td); - } else { - vrele(dirp); - dirp = NULL; - } + &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); + if (dirp && !v3) { + vrele(dirp); + dirp = NULL; } if (error) { nfsm_reply(NFSX_WCCDATA(v3)); @@ -2902,8 +2958,26 @@ error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); NDFREE(&nd, NDF_ONLY_PNBUF); - if (dirp) - diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + if (dirp) { + if (dirp == nd.ni_dvp) + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + else { + /* Release existing locks to prevent deadlock. */ + if (nd.ni_dvp) { + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + } + if (nd.ni_vp) + vput(nd.ni_vp); + nd.ni_dvp = NULL; + nd.ni_vp = NULL; + vn_lock(dirp, LK_EXCLUSIVE | LK_RETRY, td); + diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); + VOP_UNLOCK(dirp, 0, td); + } + } nfsm_reply(NFSX_WCCDATA(v3)); error = 0; if (v3) ==== //depot/projects/hammer/sys/nfsserver/nfs_srvsubs.c#6 (text+ko) ==== @@ -34,11 +34,11 @@ * SUCH DAMAGE. * * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95 - * $FreeBSD: src/sys/nfsserver/nfs_srvsubs.c,v 1.120 2003/02/19 05:47:39 imp Exp $ + * $FreeBSD: src/sys/nfsserver/nfs_srvsubs.c,v 1.121 2003/05/25 06:17:33 truckman Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/nfsserver/nfs_srvsubs.c,v 1.120 2003/02/19 05:47:39 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/nfsserver/nfs_srvsubs.c,v 1.121 2003/05/25 06:17:33 truckman Exp $"); /* * These functions support the macros and help fiddle mbuf chains for @@ -592,7 +592,8 @@ int nfs_namei(struct nameidata *ndp, fhandle_t *fhp, int len, struct nfssvc_sock *slp, struct sockaddr *nam, struct mbuf **mdp, - caddr_t *dposp, struct vnode **retdirp, struct thread *td, int pubflag) + caddr_t *dposp, struct vnode **retdirp, int v3, struct vattr *retdirattrp, + int *retdirattr_retp, struct thread *td, int pubflag) { int i, rem; struct mbuf *md; @@ -602,6 +603,7 @@ struct vnode *dp; int error, rdonly, linklen; struct componentname *cnp = &ndp->ni_cnd; + int lockleaf = (cnp->cn_flags & LOCKLEAF) != 0; *retdirp = NULL; cnp->cn_flags |= NOMACCHECK; @@ -664,6 +666,12 @@ * to the returned pointer */ *retdirp = dp; + if (v3) { + vn_lock(dp, LK_EXCLUSIVE | LK_RETRY, td); + *retdirattr_retp = VOP_GETATTR(dp, retdirattrp, + ndp->ni_cnd.cn_cred, td); + VOP_UNLOCK(dp, 0, td); + } if (pubflag) { /* @@ -736,6 +744,8 @@ VREF(dp); ndp->ni_startdir = dp; + if (!lockleaf) + cnp->cn_flags |= LOCKLEAF; for (;;) { cnp->cn_nameptr = cnp->cn_pnbuf; /* @@ -761,6 +771,8 @@ cnp->cn_flags |= HASBUF; else uma_zfree(namei_zone, cnp->cn_pnbuf); + if (ndp->ni_vp && !lockleaf) + VOP_UNLOCK(ndp->ni_vp, 0, td); break; } @@ -840,6 +852,8 @@ ndp->ni_startdir = ndp->ni_dvp; ndp->ni_dvp = NULL; } + if (!lockleaf) + cnp->cn_flags &= ~LOCKLEAF; /* * nfs_namei() guarentees that fields will not contain garbage ==== //depot/projects/hammer/usr.sbin/Makefile#16 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 5.20 (Berkeley) 6/12/93 -# $FreeBSD: src/usr.sbin/Makefile,v 1.253 2003/05/24 19:23:05 peter Exp $ +# $FreeBSD: src/usr.sbin/Makefile,v 1.254 2003/05/25 07:39:06 peter Exp $ .if ${MACHINE_ARCH} != "powerpc" _sysinstall=sysinstall ==== //depot/projects/hammer/usr.sbin/ppp/ncpaddr.c#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/ppp/ncpaddr.c,v 1.12 2003/04/05 10:10:33 ume Exp $ + * $FreeBSD: src/usr.sbin/ppp/ncpaddr.c,v 1.13 2003/05/25 07:39:06 peter Exp $ */ #include From owner-p4-projects@FreeBSD.ORG Sun May 25 01:56:15 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BA1837B404; Sun, 25 May 2003 01:56:15 -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 C543A37B401 for ; Sun, 25 May 2003 01:56:14 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C6A643F3F for ; Sun, 25 May 2003 01:56:14 -0700 (PDT) (envelope-from jmallett@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 h4P8uE0U056689 for ; Sun, 25 May 2003 01:56:14 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4P8uDAW056686 for perforce@freebsd.org; Sun, 25 May 2003 01:56:13 -0700 (PDT) Date: Sun, 25 May 2003 01:56:13 -0700 (PDT) Message-Id: <200305250856.h4P8uDAW056686@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31848 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, 25 May 2003 08:56:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=31848 Change 31848 by jmallett@jmallett_dalek on 2003/05/25 01:56:03 Mildly more interesting trap() output. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#3 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#3 (text+ko) ==== @@ -32,16 +32,72 @@ #include #include +struct trap_identifier { + u_int ExcCode; + const char *Mnemonic; + const char *Description; +} trap_ids[] = { + { 0, "Int", "Interrupt" }, + { 1, "Mod", "TLB modification" }, + { 2, "TLBL", "TLB (fetch" }, + { 3, "TLBS", "TLB (store)" }, + { 4, "AdEL", "Address error (fetch)" }, + { 5, "AdES", "Address error (store)" }, + { 6, "IBE", "Bus error (instruction)" }, + { 7, "DBE", "Bus error (data)" }, + { 8, "Sys", "System call" }, + { 9, "Bp", "Breakpoint" }, + { 10, "RI", "Reserved instruction" }, + { 11, "CpU", "Coprocessor unusable" }, + { 12, "Ov", "Arithmetic overflow" }, + { 13, "Tr", "Trap" }, + { 14, "VCEI", "Virtual coherency (instruction)" }, + { 15, "FPE", "Floating point" }, + { 16, NULL, NULL }, + { 17, NULL, NULL }, + { 18, NULL, NULL }, + { 19, NULL, NULL }, + { 20, NULL, NULL }, + { 21, NULL, NULL }, + { 22, NULL, NULL }, + { 23, "WATCH", "Watchpoint" }, + { 24, NULL, NULL }, + { 25, NULL, NULL }, + { 26, NULL, NULL }, + { 27, NULL, NULL }, + { 28, NULL, NULL }, + { 29, NULL, NULL }, + { 30, NULL, NULL }, + { 31, "VCED", "Virtual coherency (data)" } +}; +#define MAXTRAPID 31 + void trap(struct trapframe *tf, u_int cause, void *badvaddr) { + struct trap_identifier *tid; int code, kernelmode; code = (cause & MIPS3_CR_EXC_CODE) >> MIPS_CR_EXC_CODE_SHIFT; kernelmode = (tf->tf_regs[TF_SR] & MIPS_SR_KSU_USER) == 0; - printf("Fatal trap type %d in %s mode\n", + printf("\n\nFatal trap type %d in %s mode:", code, kernelmode ? "kernel" : "user"); - printf("EPC %lx, BadVAddr %p\n", tf->tf_regs[TF_EPC], badvaddr); + if (code <= MAXTRAPID && code >= 0) { + tid = &trap_ids[code]; + if (tid->Mnemonic != NULL) + printf(" (%s)", tid->Mnemonic); + if (tid->Description != NULL) + printf(" %s", tid->Description); + else + printf(" Reserved exception code"); + } else + printf(" (out of range)"); + printf("\n"); + printf(" program counter = %lx\n", tf->tf_regs[TF_EPC]); + printf(" return address = %lx\n", tf->tf_regs[TF_RA]); + printf("bad virtual address = %p\n", badvaddr); + printf(" cause = %x\n", cause); + printf(" status = %lx\n", tf->tf_regs[TF_SR]); if (panicstr != NULL) { printf("Double panic, resetting...\n"); cpu_reset(); From owner-p4-projects@FreeBSD.ORG Sun May 25 03:52:39 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8BAE237B404; Sun, 25 May 2003 03:52: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 6ABB537B401 for ; Sun, 25 May 2003 03:52:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1101C43F93 for ; Sun, 25 May 2003 03:52:37 -0700 (PDT) (envelope-from des@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 h4PAqa0U062881 for ; Sun, 25 May 2003 03:52:36 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PAqavg062878 for perforce@freebsd.org; Sun, 25 May 2003 03:52:36 -0700 (PDT) Date: Sun, 25 May 2003 03:52:36 -0700 (PDT) Message-Id: <200305251052.h4PAqavg062878@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31851 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, 25 May 2003 10:52:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=31851 Change 31851 by des@des.at.des.thinksec.com on 2003/05/25 03:52:31 No need to explicitly clear pointers now that we use FREE(). Affected files ... .. //depot/projects/openpam/lib/openpam_ttyconv.c#19 edit .. //depot/projects/openpam/lib/pam_get_authtok.c#24 edit Differences ... ==== //depot/projects/openpam/lib/openpam_ttyconv.c#19 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#18 $ + * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#19 $ */ #include @@ -181,7 +181,6 @@ while (i) FREE(resp[--i]); FREE(*resp); - *resp = NULL; RETURNC(PAM_CONV_ERR); } ==== //depot/projects/openpam/lib/pam_get_authtok.c#24 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_get_authtok.c#23 $ + * $P4: //depot/projects/openpam/lib/pam_get_authtok.c#24 $ */ #include @@ -112,10 +112,8 @@ FREE(resp); RETURNC(r); } - if (strcmp(resp, resp2) != 0) { + if (strcmp(resp, resp2) != 0) FREE(resp); - resp = NULL; - } FREE(resp2); } if (resp == NULL) From owner-p4-projects@FreeBSD.ORG Sun May 25 03:53:40 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B8C937B404; Sun, 25 May 2003 03:53:40 -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 A40CB37B401 for ; Sun, 25 May 2003 03:53:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A25B43F75 for ; Sun, 25 May 2003 03:53:39 -0700 (PDT) (envelope-from des@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 h4PArd0U062911 for ; Sun, 25 May 2003 03:53:39 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PArcgf062908 for perforce@freebsd.org; Sun, 25 May 2003 03:53:38 -0700 (PDT) Date: Sun, 25 May 2003 03:53:38 -0700 (PDT) Message-Id: <200305251053.h4PArcgf062908@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31852 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, 25 May 2003 10:53:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=31852 Change 31852 by des@des.at.des.thinksec.com on 2003/05/25 03:53:36 Remove trailing semicolons from macros. Affected files ... .. //depot/projects/openpam/lib/openpam_impl.h#24 edit Differences ... ==== //depot/projects/openpam/lib/openpam_impl.h#24 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_impl.h#23 $ + * $P4: //depot/projects/openpam/lib/openpam_impl.h#24 $ */ #ifndef _OPENPAM_IMPL_H_INCLUDED @@ -124,7 +124,7 @@ #endif pam_module_t *openpam_dynamic(const char *); -#define FREE(p) do { free((p)); (p) = NULL; } while (0); +#define FREE(p) do { free((p)); (p) = NULL; } while (0) #ifdef DEBUG #define ENTER() openpam_log(PAM_LOG_DEBUG, "entering") @@ -133,16 +133,16 @@ openpam_log(PAM_LOG_DEBUG, "entering: %s", _pam_item_name[i]); \ else \ openpam_log(PAM_LOG_DEBUG, "entering: %d", (i)); \ -} while (0); +} while (0) #define ENTERN(n) do { \ openpam_log(PAM_LOG_DEBUG, "entering: %d", (n)); \ -} while (0); +} while (0) #define ENTERS(s) do { \ if ((s) == NULL) \ openpam_log(PAM_LOG_DEBUG, "entering: NULL"); \ else \ openpam_log(PAM_LOG_DEBUG, "entering: '%s'", (s)); \ -} while (0); +} while (0) #define RETURNV() openpam_log(PAM_LOG_DEBUG, "returning") #define RETURNC(c) do { \ if ((c) >= 0 && (c) < PAM_NUM_ERRORS) \ From owner-p4-projects@FreeBSD.ORG Sun May 25 03:59:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 750C437B404; Sun, 25 May 2003 03:59: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 AACF637B401 for ; Sun, 25 May 2003 03:59:47 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 51DA343F85 for ; Sun, 25 May 2003 03:59:47 -0700 (PDT) (envelope-from des@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 h4PAxl0U063148 for ; Sun, 25 May 2003 03:59:47 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PAxkQ5063145 for perforce@freebsd.org; Sun, 25 May 2003 03:59:46 -0700 (PDT) Date: Sun, 25 May 2003 03:59:46 -0700 (PDT) Message-Id: <200305251059.h4PAxkQ5063145@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31853 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, 25 May 2003 10:59:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=31853 Change 31853 by des@des.at.des.thinksec.com on 2003/05/25 03:58:55 Note that OpenPAM now builds on most glibc-based Linux platforms. Affected files ... .. //depot/projects/openpam/RELNOTES#17 edit Differences ... ==== //depot/projects/openpam/RELNOTES#17 (text+ko) ==== @@ -6,8 +6,9 @@ accumulated since the previous release. This release corresponds to the code used in FreeBSD-CURRENT as of the -release date. It is also known to build cleanly on NetBSD 1.6 and -OpenBSD 3.1. It may or may not build on other platforms; you will +release date. It is also known to build cleanly on NetBSD 1.6, +OpenBSD 3.1, and a number of glibc-based Linux platforms (with BSD +make installed). It may or may not build on other platforms; you will need a BSD-compatible make(1) (NetBSD's make(1) is easy to port to most POSIX platforms). Previous versions were successfully built on MacOS X 10.1, but there seem to be issues with the heavily modified @@ -30,4 +31,4 @@ Please direct bug reports and inquiries to des@freebsd.org. -$P4: //depot/projects/openpam/RELNOTES#16 $ +$P4: //depot/projects/openpam/RELNOTES#17 $ From owner-p4-projects@FreeBSD.ORG Sun May 25 04:42:43 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9401E37B404; Sun, 25 May 2003 04:42:40 -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 F1AE437B401 for ; Sun, 25 May 2003 04:42:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8358043FB1 for ; Sun, 25 May 2003 04:42:39 -0700 (PDT) (envelope-from des@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 h4PBgd0U065634 for ; Sun, 25 May 2003 04:42:39 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PBgdI1065631 for perforce@freebsd.org; Sun, 25 May 2003 04:42:39 -0700 (PDT) Date: Sun, 25 May 2003 04:42:39 -0700 (PDT) Message-Id: <200305251142.h4PBgdI1065631@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31854 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, 25 May 2003 11:42:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=31854 Change 31854 by des@des.at.des.thinksec.com on 2003/05/25 04:41:46 Use RTLD_NOW where available, and define it to RTLD_LAZY otherwise. Affected files ... .. //depot/projects/openpam/lib/openpam_dynamic.c#12 edit Differences ... ==== //depot/projects/openpam/lib/openpam_dynamic.c#12 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_dynamic.c#11 $ + * $P4: //depot/projects/openpam/lib/openpam_dynamic.c#12 $ */ #include @@ -43,6 +43,10 @@ #include "openpam_impl.h" +#ifndef RTLD_NOW +#define RTLD_NOW RTLD_LAZY +#endif + /* * OpenPAM internal * @@ -64,10 +68,10 @@ /* try versioned module first, then unversioned module */ if (asprintf(&vpath, "%s.%d", path, LIB_MAJ) < 0) goto buf_err; - if ((dlh = dlopen(vpath, RTLD_LAZY)) == NULL) { + if ((dlh = dlopen(vpath, RTLD_NOW)) == NULL) { openpam_log(PAM_LOG_DEBUG, "%s: %s", vpath, dlerror()); *strrchr(vpath, '.') = '\0'; - if ((dlh = dlopen(vpath, RTLD_LAZY)) == NULL) { + if ((dlh = dlopen(vpath, RTLD_NOW)) == NULL) { openpam_log(PAM_LOG_DEBUG, "%s: %s", vpath, dlerror()); FREE(module); return (NULL); From owner-p4-projects@FreeBSD.ORG Sun May 25 09:32:31 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A82AE37B409; Sun, 25 May 2003 09:32: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 4C6DF37B411 for ; Sun, 25 May 2003 09:32:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D6F1543F75 for ; Sun, 25 May 2003 09:32:29 -0700 (PDT) (envelope-from des@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 h4PGWT0U090666 for ; Sun, 25 May 2003 09:32:29 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PGWTZl090663 for perforce@freebsd.org; Sun, 25 May 2003 09:32:29 -0700 (PDT) Date: Sun, 25 May 2003 09:32:29 -0700 (PDT) Message-Id: <200305251632.h4PGWTZl090663@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31857 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, 25 May 2003 16:32:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=31857 Change 31857 by des@des.at.des.thinksec.com on 2003/05/25 09:31:54 Don't include DESTDIR in BINDIR and LIBDIR; OTOH, provide a default DESTDIR of /usr. Affected files ... .. //depot/projects/openpam/Makefile.inc#2 edit Differences ... ==== //depot/projects/openpam/Makefile.inc#2 (text+ko) ==== @@ -1,7 +1,8 @@ -# $P4: //depot/projects/openpam/Makefile.inc#1 $ +# $P4: //depot/projects/openpam/Makefile.inc#2 $ -BINDIR = ${DESTDIR}/bin -LIBDIR = ${DESTDIR}/lib +DESTDIR ?= /usr +BINDIR = /bin +LIBDIR = /lib SHLIB_MAJOR = 2 SHLIB_MINOR = 0 From owner-p4-projects@FreeBSD.ORG Sun May 25 09:34:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0515C37B404; Sun, 25 May 2003 09:34:34 -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 A8DA837B401 for ; Sun, 25 May 2003 09:34:33 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EA85C43F3F for ; Sun, 25 May 2003 09:34:32 -0700 (PDT) (envelope-from des@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 h4PGYW0U090712 for ; Sun, 25 May 2003 09:34:32 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PGYWoH090708 for perforce@freebsd.org; Sun, 25 May 2003 09:34:32 -0700 (PDT) Date: Sun, 25 May 2003 09:34:32 -0700 (PDT) Message-Id: <200305251634.h4PGYWoH090708@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31858 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, 25 May 2003 16:34:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=31858 Change 31858 by des@des.at.des.thinksec.com on 2003/05/25 09:34:31 Overhaul the configuration parser. This adds support for continuation lines and policy inclusion. Affected files ... .. //depot/projects/openpam/MANIFEST#15 edit .. //depot/projects/openpam/doc/man/Makefile#12 edit .. //depot/projects/openpam/include/security/openpam.h#22 edit .. //depot/projects/openpam/lib/Makefile#20 edit .. //depot/projects/openpam/lib/openpam_configure.c#8 edit .. //depot/projects/openpam/lib/openpam_impl.h#25 edit .. //depot/projects/openpam/lib/openpam_load.c#17 edit .. //depot/projects/openpam/lib/openpam_readline.c#1 add Differences ... ==== //depot/projects/openpam/MANIFEST#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/openpam/MANIFEST#14 $ +# $P4: //depot/projects/openpam/MANIFEST#15 $ # CREDITS HISTORY @@ -78,6 +78,7 @@ lib/openpam_load.c lib/openpam_log.c lib/openpam_nullconv.c +lib/openpam_readline.c lib/openpam_restore_cred.c lib/openpam_set_option.c lib/openpam_static.c ==== //depot/projects/openpam/doc/man/Makefile#12 (text+ko) ==== @@ -32,7 +32,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $P4: //depot/projects/openpam/doc/man/Makefile#11 $ +# $P4: //depot/projects/openpam/doc/man/Makefile#12 $ # GENDOC = ${.CURDIR}/../../misc/gendoc.pl @@ -73,6 +73,7 @@ OMAN += openpam_get_option.3 OMAN += openpam_log.3 OMAN += openpam_nullconv.3 +OMAN += openpam_readline.3 OMAN += openpam_restore_cred.3 OMAN += openpam_set_option.3 OMAN += openpam_ttyconv.3 ==== //depot/projects/openpam/include/security/openpam.h#22 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/include/security/openpam.h#21 $ + * $P4: //depot/projects/openpam/include/security/openpam.h#22 $ */ #ifndef _SECURITY_OPENPAM_H_INCLUDED @@ -119,6 +119,17 @@ va_list _ap); /* + * Read cooked lines. + * Checking for FOPEN_MAX is a fairly reliable way to detect the presence + * of + */ +#ifdef FOPEN_MAX +char * +openpam_readline(FILE *_f, + size_t *_lenp); +#endif + +/* * Log levels */ enum { ==== //depot/projects/openpam/lib/Makefile#20 (text+ko) ==== @@ -31,7 +31,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $P4: //depot/projects/openpam/lib/Makefile#19 $ +# $P4: //depot/projects/openpam/lib/Makefile#20 $ # LIB = pam @@ -57,6 +57,7 @@ SRCS += openpam_load.c SRCS += openpam_log.c SRCS += openpam_nullconv.c +SRCS += openpam_readline.c SRCS += openpam_restore_cred.c SRCS += openpam_set_option.c SRCS += openpam_static.c ==== //depot/projects/openpam/lib/openpam_configure.c#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Networks Associates Technology, Inc. + * Copyright (c) 2001-2003 Networks Associates Technology, Inc. * All rights reserved. * * This software was developed for the FreeBSD Project by ThinkSec AS and @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_configure.c#7 $ + * $P4: //depot/projects/openpam/lib/openpam_configure.c#8 $ */ #include @@ -44,169 +44,191 @@ #include "openpam_impl.h" -#define PAM_CONF_STYLE 0 -#define PAM_D_STYLE 1 -#define MAX_LINE_LEN 1024 -#define MAX_OPTIONS 256 +static int openpam_load_chain(pam_chain_t **, const char *, const char *); + +/* + * Matches a word against the first one in a string. + * Returns non-zero if they match. + */ +static int +match_word(const char *str, const char *word) +{ + + while (*str && *str == *word) + ++str, ++word; + return (*str == ' ' && *word == '\0'); +} + +/* + * Return a pointer to the next word (or the final NUL) in a string. + */ +static const char * +next_word(const char *str) +{ + + /* skip current word */ + while (*str && !isspace(*str)) + ++str; + /* skip whitespace */ + while (isspace(*str)) + ++str; + return (str); +} + +/* + * Return a malloc()ed copy of the first word in a string. + */ +static char * +dup_word(const char *str) +{ + const char *end; + char *word; + + for (end = str; *end && !isspace(*end); ++end) + /* nothing */ ; + if (asprintf(&word, "%.*s", (int)(end - str), str) < 0) + return (NULL); + return (word); +} + +typedef enum { pam_conf_style, pam_d_style } openpam_style_t; +/* + * Extracts a given chain from a policy file. + */ static int -openpam_read_policy_file(pam_chain_t *policy[], +openpam_read_chain(pam_chain_t **chain, const char *service, + const char *facility, const char *filename, - int style) + openpam_style_t style) { - char buf[MAX_LINE_LEN], *p, *q; - const char *optv[MAX_OPTIONS + 1]; - int ch, chain, flag, line, optc, n, r; - size_t len; + pam_chain_t *this, **next; + const char *p, *q; + int count, i, ret; + char *line, *name; FILE *f; - n = 0; - if ((f = fopen(filename, "r")) == NULL) { - openpam_log(errno == ENOENT ? PAM_LOG_DEBUG : PAM_LOG_NOTICE, + openpam_log(errno == ENOENT ? PAM_LOG_NOTICE : PAM_LOG_ERROR, "%s: %m", filename); return (0); } - openpam_log(PAM_LOG_DEBUG, "looking for '%s' in %s", - service, filename); + next = chain; + this = *next = NULL; + count = 0; + while ((line = openpam_readline(f, NULL)) != NULL) { + p = line; - for (line = 1; fgets(buf, MAX_LINE_LEN, f) != NULL; ++line) { - if ((len = strlen(buf)) == 0) - continue; + /* match service name */ + if (style == pam_conf_style) { + if (!match_word(p, service)) { + FREE(line); + continue; + } + p = next_word(p); + } - /* check for overflow */ - if (buf[--len] != '\n' && !feof(f)) { - openpam_log(PAM_LOG_ERROR, "%s: line %d too long", - filename, line); - openpam_log(PAM_LOG_ERROR, "%s: ignoring line %d", - filename, line); - while ((ch = fgetc(f)) != EOF) - if (ch == '\n') - break; + /* match facility name */ + if (!match_word(p, facility)) { + FREE(line); continue; } + p = next_word(p); - /* strip comments and trailing whitespace */ - if ((p = strchr(buf, '#')) != NULL) - len = p - buf ? p - buf - 1 : p - buf; - while (len > 0 && isspace(buf[len - 1])) - --len; - if (len == 0) + /* include other chain */ + if (match_word(p, "include")) { + p = next_word(p); + if (*next_word(p) != '\0') + openpam_log(PAM_LOG_NOTICE, + "%s: garbage at end of 'include' line", + filename); + if ((name = dup_word(p)) == NULL) + goto syserr; + ret = openpam_load_chain(next, name, facility); + FREE(name); + while (*next != NULL) { + next = &(*next)->next; + ++count; + } + FREE(line); + if (ret < 0) + goto fail; continue; - buf[len] = '\0'; - p = q = buf; - - /* check service name */ - if (style == PAM_CONF_STYLE) { - for (q = p = buf; *q != '\0' && !isspace(*q); ++q) - /* nothing */; - if (*q == '\0') - goto syntax_error; - *q++ = '\0'; - if (strcmp(p, service) != 0) - continue; - openpam_log(PAM_LOG_DEBUG, "%s: line %d matches '%s'", - filename, line, service); } + /* allocate new entry */ + if ((this = calloc(1, sizeof *this)) == NULL) + goto syserr; - /* get module type */ - for (p = q; isspace(*p); ++p) - /* nothing */; - for (q = p; *q != '\0' && !isspace(*q); ++q) - /* nothing */; - if (q == p || *q == '\0') - goto syntax_error; - *q++ = '\0'; - if (strcmp(p, "auth") == 0) { - chain = PAM_AUTH; - } else if (strcmp(p, "account") == 0) { - chain = PAM_ACCOUNT; - } else if (strcmp(p, "session") == 0) { - chain = PAM_SESSION; - } else if (strcmp(p, "password") == 0) { - chain = PAM_PASSWORD; + /* control flag */ + if (match_word(p, "required")) { + this->flag = PAM_REQUIRED; + } else if (match_word(p, "requisite")) { + this->flag = PAM_REQUISITE; + } else if (match_word(p, "sufficient")) { + this->flag = PAM_SUFFICIENT; + } else if (match_word(p, "optional")) { + this->flag = PAM_OPTIONAL; + } else if (match_word(p, "binding")) { + this->flag = PAM_BINDING; } else { + q = next_word(p); openpam_log(PAM_LOG_ERROR, - "%s: invalid module type on line %d: '%s'", - filename, line, p); - continue; + "%s: invalid control flag '%.*s'", + filename, (int)(q - p), p); + goto fail; } - /* get control flag */ - for (p = q; isspace(*p); ++p) - /* nothing */; - for (q = p; *q != '\0' && !isspace(*q); ++q) - /* nothing */; - if (q == p || *q == '\0') - goto syntax_error; - *q++ = '\0'; - if (strcmp(p, "required") == 0) { - flag = PAM_REQUIRED; - } else if (strcmp(p, "requisite") == 0) { - flag = PAM_REQUISITE; - } else if (strcmp(p, "sufficient") == 0) { - flag = PAM_SUFFICIENT; - } else if (strcmp(p, "optional") == 0) { - flag = PAM_OPTIONAL; - } else if (strcmp(p, "binding") == 0) { - flag = PAM_BINDING; - } else { + /* module name */ + p = next_word(p); + q = next_word(p); + if (*p == '\0') { openpam_log(PAM_LOG_ERROR, - "%s: invalid control flag on line %d: '%s'", - filename, line, p); - continue; + "%s: missing module name", filename); + goto fail; } + if ((name = dup_word(p)) == NULL) + goto syserr; + this->module = openpam_load_module(name); + FREE(name); + if (this->module == NULL) + goto fail; - /* get module name */ - for (p = q; isspace(*p); ++p) - /* nothing */; - for (q = p; *q != '\0' && !isspace(*q); ++q) - /* nothing */; - if (q == p) - goto syntax_error; - - /* get options */ - for (optc = 0; *q != '\0' && optc < MAX_OPTIONS; ++optc) { - *q++ = '\0'; - while (isspace(*q)) - ++q; - optv[optc] = q; - while (*q != '\0' && !isspace(*q)) - ++q; + /* module options */ + while (*q != '\0') { + ++this->optc; + q = next_word(q); } - optv[optc] = NULL; - if (*q != '\0') { - *q = '\0'; - openpam_log(PAM_LOG_ERROR, - "%s: too many options on line %d", - filename, line); + this->optv = calloc(this->optc + 1, sizeof(char *)); + if (this->optv == NULL) + goto syserr; + for (i = 0; i < this->optc; ++i) { + p = next_word(p); + if ((this->optv[i] = dup_word(p)) == NULL) + goto syserr; } - /* - * Finally, add the module at the end of the - * appropriate chain and bump the counter. - */ - r = openpam_add_module(policy, chain, flag, p, optc, optv); - if (r != PAM_SUCCESS) - return (-r); - ++n; - continue; - syntax_error: - openpam_log(PAM_LOG_ERROR, "%s: syntax error on line %d", - filename, line); - openpam_log(PAM_LOG_DEBUG, "%s: line %d: [%s]", - filename, line, q); - openpam_log(PAM_LOG_ERROR, "%s: ignoring line %d", - filename, line); + /* hook it up */ + *next = this; + next = &this->next; + this = NULL; + ++count; + + /* next please... */ + FREE(line); } - - if (ferror(f)) - openpam_log(PAM_LOG_ERROR, "%s: %m", filename); - + if (!feof(f)) + goto syserr; + fclose(f); + return (count); + syserr: + openpam_log(PAM_LOG_ERROR, "%s: %m", filename); + fail: + FREE(this); + FREE(line); fclose(f); - return (n); + return (-1); } static const char *openpam_policy_path[] = { @@ -217,9 +239,14 @@ NULL }; +/* + * Locates the policy file for a given service and reads the given chain + * from it. + */ static int -openpam_load_policy(pam_chain_t *policy[], - const char *service) +openpam_load_chain(pam_chain_t **chain, + const char *service, + const char *facility) { const char **path; char *filename; @@ -229,27 +256,30 @@ for (path = openpam_policy_path; *path != NULL; ++path) { len = strlen(*path); if ((*path)[len - 1] == '/') { - filename = malloc(len + strlen(service) + 1); - if (filename == NULL) { - openpam_log(PAM_LOG_ERROR, "malloc(): %m"); + if (asprintf(&filename, "%s%s", *path, service) < 0) { + openpam_log(PAM_LOG_ERROR, "asprintf(): %m"); return (-PAM_BUF_ERR); } - strcpy(filename, *path); - strcat(filename, service); - r = openpam_read_policy_file(policy, - service, filename, PAM_D_STYLE); + r = openpam_read_chain(chain, service, facility, + filename, pam_d_style); FREE(filename); } else { - r = openpam_read_policy_file(policy, - service, *path, PAM_CONF_STYLE); + r = openpam_read_chain(chain, service, facility, + *path, pam_conf_style); } if (r != 0) return (r); } - return (0); } +const char *_pam_chain_name[PAM_NUM_CHAINS] = { + [PAM_AUTH] = "auth", + [PAM_ACCOUNT] = "account", + [PAM_SESSION] = "session", + [PAM_PASSWORD] = "password" +}; + /* * OpenPAM internal * @@ -260,34 +290,20 @@ openpam_configure(pam_handle_t *pamh, const char *service) { - pam_chain_t *other[PAM_NUM_CHAINS] = { 0 }; - int i, n, r; + int i, ret; - /* try own configuration first */ - r = openpam_load_policy(pamh->chains, service); - if (r < 0) - return (-r); - for (i = n = 0; i < PAM_NUM_CHAINS; ++i) { - if (pamh->chains[i] != NULL) - ++n; - } - if (n == PAM_NUM_CHAINS) - return (PAM_SUCCESS); - - /* fill in the blanks with "other" */ - openpam_load_policy(other, PAM_OTHER); - if (r < 0) - return (-r); - for (i = n = 0; i < PAM_NUM_CHAINS; ++i) { - if (pamh->chains[i] == NULL) { - pamh->chains[i] = other[i]; - other[i] = NULL; + for (i = 0; i < PAM_NUM_CHAINS; ++i) { + ret = openpam_load_chain(&pamh->chains[i], + service, _pam_chain_name[i]); + if (ret == 0) + ret = openpam_load_chain(&pamh->chains[i], + PAM_OTHER, _pam_chain_name[i]); + if (ret < 0) { + openpam_clear_chains(pamh->chains); + return (PAM_SYSTEM_ERR); } - if (pamh->chains[i] != NULL) - ++n; } - openpam_clear_chains(other); - return (n > 0 ? PAM_SUCCESS : PAM_SYSTEM_ERR); + return (PAM_SUCCESS); } /* @@ -295,5 +311,4 @@ * * Error codes: * PAM_SYSTEM_ERR - * PAM_BUF_ERR */ ==== //depot/projects/openpam/lib/openpam_impl.h#25 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_impl.h#24 $ + * $P4: //depot/projects/openpam/lib/openpam_impl.h#25 $ */ #ifndef _OPENPAM_IMPL_H_INCLUDED @@ -112,17 +112,16 @@ #define PAM_OTHER "other" -int openpam_configure(pam_handle_t *, const char *); -int openpam_dispatch(pam_handle_t *, int, int); -int openpam_findenv(pam_handle_t *, const char *, size_t); -int openpam_add_module(pam_chain_t **, int, int, - const char *, int, const char **); -void openpam_clear_chains(pam_chain_t **); +int openpam_configure(pam_handle_t *, const char *); +int openpam_dispatch(pam_handle_t *, int, int); +int openpam_findenv(pam_handle_t *, const char *, size_t); +pam_module_t *openpam_load_module(const char *); +void openpam_clear_chains(pam_chain_t **); #ifdef OPENPAM_STATIC_MODULES -pam_module_t *openpam_static(const char *); +pam_module_t *openpam_static(const char *); #endif -pam_module_t *openpam_dynamic(const char *); +pam_module_t *openpam_dynamic(const char *); #define FREE(p) do { free((p)); (p) = NULL; } while (0) ==== //depot/projects/openpam/lib/openpam_load.c#17 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_load.c#16 $ + * $P4: //depot/projects/openpam/lib/openpam_load.c#17 $ */ #include @@ -67,7 +67,7 @@ * found modules to speed up the process. */ -static pam_module_t * +pam_module_t * openpam_load_module(const char *path) { pam_module_t *module; @@ -160,48 +160,6 @@ FREE(chain); } -/* - * Add a module to a chain. - */ - -int -openpam_add_module(pam_chain_t *policy[], - int chain, - int flag, - const char *modpath, - int optc, - const char *optv[]) -{ - pam_chain_t *new, *iterator; - - if ((new = calloc(1, sizeof *new)) == NULL) - goto buf_err; - if ((new->optv = malloc(sizeof(char *) * (optc + 1))) == NULL) - goto buf_err; - while (optc--) - if ((new->optv[new->optc++] = strdup(*optv++)) == NULL) - goto buf_err; - new->optv[new->optc] = NULL; - new->flag = flag; - if ((new->module = openpam_load_module(modpath)) == NULL) { - openpam_destroy_chain(new); - return (PAM_OPEN_ERR); - } - if ((iterator = policy[chain]) != NULL) { - while (iterator->next != NULL) - iterator = iterator->next; - iterator->next = new; - } else { - policy[chain] = new; - } - return (PAM_SUCCESS); - - buf_err: - openpam_log(PAM_LOG_ERROR, "%m"); - openpam_destroy_chain(new); - return (PAM_BUF_ERR); -} - /* * Clear the chains and release the modules From owner-p4-projects@FreeBSD.ORG Sun May 25 13:08:56 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C0F237B404; Sun, 25 May 2003 13:08:55 -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 4B6BE37B401 for ; Sun, 25 May 2003 13:08:55 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CC5C243F3F for ; Sun, 25 May 2003 13:08:54 -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 h4PK8s0U007242 for ; Sun, 25 May 2003 13:08:54 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PK8sAU007239 for perforce@freebsd.org; Sun, 25 May 2003 13:08:54 -0700 (PDT) Date: Sun, 25 May 2003 13:08:54 -0700 (PDT) Message-Id: <200305252008.h4PK8sAU007239@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 31864 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, 25 May 2003 20:08:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=31864 Change 31864 by peter@peter_hammer on 2003/05/25 13:08:00 Minor hack to enable dual mode gcc. I hope to use this for bootblocks. hammer# ls /compat/ia32/usr/lib crt1.o crtbeginS.o crtendS.o crtn.o libc.so libgcc.a crtbegin.o crtend.o crti.o libc.a libc.so.5 hammer# cc -B/compat/ia32/usr/lib -m32 foo.c hammer# ./a.out hello world! hammer# file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.0, dynamically linked (uses shared libs), not stripped Affected files ... .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.amd64#2 edit .. //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#7 edit Differences ... ==== //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.amd64#2 (text+ko) ==== @@ -18,3 +18,17 @@ sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_x86_64_path} \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ "${NATIVE_EMULATION}" "" ${NATIVE_EMULATION} "${TARGET_TUPLE}" + +X86_EMULATION= elf_i386_fbsd +_i386_path= \"${TOOLS_PREFIX}/usr/lib/i386\" +EMS+= ${X86_EMULATION} +LDSCRIPTS+= ${X86_EMULATION}.x ${X86_EMULATION}.xbn ${X86_EMULATION}.xn ${X86_EMULATION}.xr \ + ${X86_EMULATION}.xs ${X86_EMULATION}.xu ${X86_EMULATION}.xc ${X86_EMULATION}.xsc +SRCS+= e${X86_EMULATION}.c +CLEANFILES+= e${X86_EMULATION}.c + +e${X86_EMULATION}.c: emulparams/${X86_EMULATION}.sh emultempl/elf32.em scripttempl/elf.sc \ + genscripts.sh stringify.sed + sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_i386_path} \ + ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ + "${X86_EMULATION}" "" ${X86_EMULATION} "${TARGET_TUPLE}" ==== //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#7 (text+ko) ==== @@ -146,6 +146,7 @@ # XXX: consider including i386/biarch64.h instead of below .if ${TARGET_ARCH} == "amd64" echo '#define TARGET_64BIT_DEFAULT 1' >>${.TARGET} + echo '#define TARGET_BI_ARCH 1' >>${.TARGET} .endif .if ${TARGET_ARCH} == "ia64" echo '#define TARGET_CPU_DEFAULT (MASK_GNU_AS|MASK_GNU_LD)' >>${.TARGET} From owner-p4-projects@FreeBSD.ORG Sun May 25 13:27:19 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B1CB37B404; Sun, 25 May 2003 13:27:19 -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 AC2FB37B401 for ; Sun, 25 May 2003 13:27:18 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9C43C43FB1 for ; Sun, 25 May 2003 13:27:17 -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 h4PKRH0U007872 for ; Sun, 25 May 2003 13:27:17 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PKRH6E007869 for perforce@freebsd.org; Sun, 25 May 2003 13:27:17 -0700 (PDT) Date: Sun, 25 May 2003 13:27:17 -0700 (PDT) Message-Id: <200305252027.h4PKRH6E007869@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 31865 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, 25 May 2003 20:27:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=31865 Change 31865 by marcel@marcel_nfs on 2003/05/25 13:27:16 IFC @31863 Affected files ... .. //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_create.c#6 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_exit.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_find_thread.c#2 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_info.c#2 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_init.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#3 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_kern.c#6 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_private.h#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#3 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_stack.c#2 integrate .. //depot/projects/ia64/release/Makefile.inc.docports#10 integrate .. //depot/projects/ia64/sys/dev/fxp/if_fxp.c#32 integrate .. //depot/projects/ia64/sys/geom/geom_disk.c#34 integrate .. //depot/projects/ia64/sys/ia64/ia64/trap.c#52 integrate .. //depot/projects/ia64/sys/kern/kern_alq.c#5 integrate .. //depot/projects/ia64/sys/kern/kern_umtx.c#2 integrate .. //depot/projects/ia64/sys/kern/subr_sbuf.c#10 integrate .. //depot/projects/ia64/sys/nfsserver/nfs.h#6 integrate .. //depot/projects/ia64/sys/nfsserver/nfs_serv.c#21 integrate .. //depot/projects/ia64/sys/nfsserver/nfs_srvsubs.c#10 integrate .. //depot/projects/ia64/usr.sbin/Makefile#39 integrate .. //depot/projects/ia64/usr.sbin/ppp/ncpaddr.c#8 integrate Differences ... ==== //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.1 2003/04/20 03:06:42 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.2 2003/05/25 06:49:19 marcel Exp $"); #include #include @@ -52,7 +52,7 @@ { if (uc != NULL) - uc->uc_mcontext.mc_gr[13] = (uint64_t)thread; + uc->uc_mcontext.mc_special.tp = (uint64_t)thread; else _tp = thread; return (NULL); ==== //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#4 (text+ko) ==== @@ -1,6 +1,6 @@ /* * David Leonard , 1999. Public domain. - * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.4 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.5 2003/05/25 08:48:11 mtm Exp $ */ #include #include @@ -21,7 +21,16 @@ _pthread_cancel(pthread_t pthread) { int ret; + pthread_t joined; + /* + * When canceling a thread that has joined another thread, this + * routine breaks the normal lock order of locking first the + * joined and then the joiner. Therefore, it is necessary that + * if it can't obtain the second lock, that it release the first + * one and restart from the top. + */ +retry: if ((ret = _find_thread(pthread)) != 0) /* The thread is not on the list of active threads */ goto out; @@ -70,10 +79,14 @@ /* * Disconnect the thread from the joinee: */ - if (pthread->join_status.thread != NULL) { - pthread->join_status.thread->joiner - = NULL; - pthread->join_status.thread = NULL; + if ((joined = pthread->join_status.thread) != NULL) { + if (_spintrylock(&joined->lock) == EBUSY) { + _thread_critical_exit(pthread); + goto retry; + } + pthread->join_status.thread->joiner = NULL; + _spinunlock(&joined->lock); + joined = pthread->join_status.thread = NULL; } pthread->cancelflags |= PTHREAD_CANCELLING; PTHREAD_NEW_STATE(pthread, PS_RUNNING); ==== //depot/projects/ia64/lib/libthr/thread/thr_create.c#6 (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/libthr/thread/thr_create.c,v 1.6 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.7 2003/05/25 08:35:37 mtm Exp $ */ #include #include @@ -155,16 +155,14 @@ new_thread->flags = 0; /* - * Protect the scheduling queues. - */ - GIANT_LOCK(curthread); - - /* * Initialise the unique id which GDB uses to * track threads. */ new_thread->uniqueid = next_uniqueid++; + THREAD_LIST_LOCK; + _thread_critical_enter(new_thread); + /* * Check if the garbage collector thread * needs to be started. @@ -174,6 +172,8 @@ /* Add the thread to the linked list of all threads: */ TAILQ_INSERT_HEAD(&_thread_list, new_thread, tle); + THREAD_LIST_UNLOCK; + /* * Create the thread. * @@ -190,11 +190,11 @@ PANIC("thr_create"); } - GIANT_UNLOCK(curthread); - /* Return a pointer to the thread structure: */ (*thread) = new_thread; + _thread_critical_exit(new_thread); + /* * Start a garbage collector thread * if necessary. ==== //depot/projects/ia64/lib/libthr/thread/thr_exit.c#4 (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/libthr/thread/thr_exit.c,v 1.5 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -95,6 +95,7 @@ _pthread_exit(void *status) { pthread_t pthread; + int exitNow = 0; /* Check if this thread is already in the process of exiting: */ if ((curthread->flags & PTHREAD_EXITING) != 0) { @@ -121,37 +122,14 @@ _thread_cleanupspecific(); } - /* - * Lock the garbage collector mutex to ensure that the garbage - * collector is not using the dead thread list. - */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); - - /* Add this thread to the list of dead threads. */ - TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); - - /* - * Signal the garbage collector thread that there is something - * to clean up. - */ - if (pthread_cond_signal(&_gc_cond) != 0) - PANIC("Cannot signal gc cond"); - - /* - * Avoid a race condition where a scheduling signal can occur - * causing the garbage collector thread to run. If this happens, - * the current thread can be cleaned out from under us. - */ - GIANT_LOCK(curthread); + /* Lock the dead list first to maintain correct lock order */ + DEAD_LIST_LOCK; + _thread_critical_enter(curthread); - /* Unlock the garbage collector mutex. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); - /* Check if there is a thread joining this one: */ if (curthread->joiner != NULL) { pthread = curthread->joiner; + _SPINLOCK(&pthread->lock); curthread->joiner = NULL; /* Make the joining thread runnable: */ @@ -161,6 +139,7 @@ pthread->join_status.ret = curthread->ret; pthread->join_status.error = 0; pthread->join_status.thread = NULL; + _SPINUNLOCK(&pthread->lock); /* Make this thread collectable by the garbage collector. */ PTHREAD_ASSERT(((curthread->attr.flags & PTHREAD_DETACHED) == @@ -168,14 +147,31 @@ curthread->attr.flags |= PTHREAD_DETACHED; } - /* Remove this thread from the thread list: */ + /* + * Add this thread to the list of dead threads, and + * also remove it from the active threads list. + */ + THREAD_LIST_LOCK; + TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); TAILQ_REMOVE(&_thread_list, curthread, tle); - PTHREAD_SET_STATE(curthread, PS_DEAD); - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); + + /* + * Signal the garbage collector thread that there is something + * to clean up. + */ + if (pthread_cond_signal(&_gc_cond) != 0) + PANIC("Cannot signal gc cond"); /* If we're the last thread, call it quits */ if (TAILQ_EMPTY(&_thread_list)) + exitNow = 1; + + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; + + if (exitNow) exit(0); /* ==== //depot/projects/ia64/lib/libthr/thread/thr_find_thread.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/libthr/thread/thr_find_thread.c,v 1.2 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_find_thread.c,v 1.3 2003/05/25 08:35:37 mtm Exp $ */ #include #include @@ -44,7 +44,7 @@ if (pthread == NULL || pthread->magic != PTHREAD_MAGIC) return(EINVAL); - GIANT_LOCK(curthread); + THREAD_LIST_LOCK; /* Search for the specified thread: */ TAILQ_FOREACH(pthread1, &_thread_list, tle) { @@ -52,7 +52,7 @@ break; } - GIANT_UNLOCK(curthread); + THREAD_LIST_UNLOCK; /* Return zero if the thread exists: */ return ((pthread1 != NULL) ? 0:ESRCH); ==== //depot/projects/ia64/lib/libthr/thread/thr_gc.c#4 (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/libthr/thread/thr_gc.c,v 1.3 2003/04/20 02:56:12 marcel Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.4 2003/05/25 08:31:33 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -75,19 +75,17 @@ _thread_dump_info(); /* - * Lock the garbage collector mutex which ensures that + * Lock the list of dead threads which ensures that * this thread sees another thread exit: */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + DEAD_LIST_LOCK; /* No stack or thread structure to free yet. */ p_stack = NULL; pthread_cln = NULL; - GIANT_LOCK(curthread); - /* Check if this is the last running thread. */ + THREAD_LIST_LOCK; if (TAILQ_FIRST(&_thread_list) == curthread && TAILQ_NEXT(curthread, tle) == NULL) /* @@ -95,6 +93,7 @@ * now. */ f_done = 1; + THREAD_LIST_UNLOCK; /* * Enter a loop to search for the first dead thread that @@ -106,57 +105,43 @@ /* Don't destroy the initial thread. */ if (pthread == _thread_initial) continue; + + _SPINLOCK(&pthread->lock); + /* - * Check if this thread has detached: + * Check if the stack was not specified by + * the caller to pthread_create() and has not + * been destroyed yet: */ - if ((pthread->attr.flags & - PTHREAD_DETACHED) != 0) { - /* Remove this thread from the dead list: */ - TAILQ_REMOVE(&_dead_list, pthread, dle); + if (pthread->attr.stackaddr_attr == NULL && + pthread->stack != NULL) { + _thread_stack_free(pthread->stack, + pthread->attr.stacksize_attr, + pthread->attr.guardsize_attr); + pthread->stack = NULL; + } - /* - * Check if the stack was not specified by - * the caller to pthread_create() and has not - * been destroyed yet: - */ - if (pthread->attr.stackaddr_attr == NULL && - pthread->stack != NULL) { - _thread_stack_free(pthread->stack, - pthread->attr.stacksize_attr, - pthread->attr.guardsize_attr); - } + /* + * If the thread has not been detached, leave + * it on the dead thread list. + */ + if ((pthread->attr.flags & PTHREAD_DETACHED) == 0) { + _SPINUNLOCK(&pthread->lock); + continue; + } - /* - * Point to the thread structure that must - * be freed outside the locks: - */ - pthread_cln = pthread; + /* Remove this thread from the dead list: */ + TAILQ_REMOVE(&_dead_list, pthread, dle); - } else { - /* - * This thread has not detached, so do - * not destroy it. - * - * Check if the stack was not specified by - * the caller to pthread_create() and has not - * been destroyed yet: - */ - if (pthread->attr.stackaddr_attr == NULL && - pthread->stack != NULL) { - _thread_stack_free(pthread->stack, - pthread->attr.stacksize_attr, - pthread->attr.guardsize_attr); + /* + * Point to the thread structure that must + * be freed outside the locks: + */ + pthread_cln = pthread; - /* - * NULL the stack pointer now that the - * memory has been freed: - */ - pthread->stack = NULL; - } - } + _SPINUNLOCK(&pthread->lock); } - GIANT_UNLOCK(curthread); /* * Check if this is not the last thread and there is no * memory to free this time around. @@ -177,15 +162,14 @@ * timeout (for a backup poll). */ if ((ret = pthread_cond_timedwait(&_gc_cond, - &_gc_mutex, &abstime)) != 0 && ret != ETIMEDOUT) { + &dead_list_lock, &abstime)) != 0 && ret != ETIMEDOUT) { _thread_printf(STDERR_FILENO, "ret = %d", ret); PANIC("gc cannot wait for a signal"); } } /* Unlock the garbage collector mutex: */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); + DEAD_LIST_UNLOCK; /* * If there is memory to free, do it now. The call to ==== //depot/projects/ia64/lib/libthr/thread/thr_info.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/libthr/thread/thr_info.c,v 1.2 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_info.c,v 1.3 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -109,6 +109,7 @@ } /* Check if there are no dead threads: */ + DEAD_LIST_LOCK; if (TAILQ_FIRST(&_dead_list) == NULL) { /* Output a record: */ strcpy(s, "\n\nTHERE ARE NO DEAD THREADS\n"); @@ -126,6 +127,7 @@ dump_thread(fd, pthread, /*long_version*/ 0); } } + DEAD_LIST_UNLOCK; /* Close the dump file: */ __sys_close(fd); ==== //depot/projects/ia64/lib/libthr/thread/thr_init.c#4 (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/libthr/thread/thr_init.c,v 1.5 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ */ /* Allocate space for global thread variables here: */ @@ -326,7 +326,7 @@ clockinfo.tick : CLOCK_RES_USEC_MIN; /* Initialise the garbage collector mutex and condition variable. */ - if (_pthread_mutex_init(&_gc_mutex,NULL) != 0 || + if (_pthread_mutex_init(&dead_list_lock,NULL) != 0 || _pthread_cond_init(&_gc_cond,NULL) != 0) PANIC("Failed to initialise garbage collector mutex or condvar"); } ==== //depot/projects/ia64/lib/libthr/thread/thr_join.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/libthr/thread/thr_join.c,v 1.4 2003/05/20 18:48:41 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.5 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -60,38 +60,36 @@ } /* - * Lock the garbage collector mutex to ensure that the garbage - * collector is not using the dead thread list. - */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); - - GIANT_LOCK(curthread); - - /* * Search for the specified thread in the list of active threads. This * is done manually here rather than calling _find_thread() because * the searches in _thread_list and _dead_list (as well as setting up * join/detach state) have to be done atomically. */ + DEAD_LIST_LOCK; + THREAD_LIST_LOCK; TAILQ_FOREACH(thread, &_thread_list, tle) - if (thread == pthread) + if (thread == pthread) { + _SPINLOCK(&pthread->lock); break; + } if (thread == NULL) /* * Search for the specified thread in the list of dead threads: */ TAILQ_FOREACH(thread, &_dead_list, dle) - if (thread == pthread) + if (thread == pthread) { + _SPINLOCK(&pthread->lock); break; + } + THREAD_LIST_UNLOCK; - /* Check if the thread was not found or has been detached: */ if (thread == NULL || ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) { - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + if (thread != NULL) + _SPINUNLOCK(&pthread->lock); + DEAD_LIST_UNLOCK; ret = ESRCH; goto out; @@ -99,33 +97,32 @@ if (pthread->joiner != NULL) { /* Multiple joiners are not supported. */ /* XXXTHR - support multiple joiners. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + _SPINUNLOCK(&pthread->lock); + DEAD_LIST_UNLOCK; ret = ENOTSUP; goto out; } - /* - * Unlock the garbage collector mutex, now that the garbage collector - * can't be run: - */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); /* Check if the thread is not dead: */ if (pthread->state != PS_DEAD) { + _thread_critical_enter(curthread); /* Set the running thread to be the joiner: */ pthread->joiner = curthread; /* Keep track of which thread we're joining to: */ curthread->join_status.thread = pthread; + _SPINUNLOCK(&pthread->lock); while (curthread->join_status.thread == pthread) { PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); + DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); - GIANT_LOCK(curthread); + /* XXX - For correctness reasons. */ + DEAD_LIST_LOCK; + _thread_critical_enter(curthread); } /* @@ -135,6 +132,15 @@ ret = curthread->join_status.error; if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; + _thread_critical_exit(curthread); + /* + * XXX - Must unlock here, instead of doing it earlier, + * because it could lead to a deadlock. If the thread + * we are joining is waiting on this lock we would + * deadlock if we released this lock before unlocking the + * joined thread. + */ + DEAD_LIST_UNLOCK; } else { /* * The thread exited (is dead) without being detached, and no @@ -149,12 +155,13 @@ /* Make the thread collectable by the garbage collector. */ pthread->attr.flags |= PTHREAD_DETACHED; - + _SPINUNLOCK(&pthread->lock); + if (pthread_cond_signal(&_gc_cond) != 0) + PANIC("Cannot signal gc cond"); + DEAD_LIST_UNLOCK; } out: - GIANT_UNLOCK(curthread); - _thread_leave_cancellation_point(); /* Return the completion status: */ ==== //depot/projects/ia64/lib/libthr/thread/thr_kern.c#6 (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/lib/libthr/thread/thr_kern.c,v 1.7 2003/05/23 10:28:13 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_kern.c,v 1.8 2003/05/25 07:58:22 mtm Exp $ */ #include @@ -68,6 +68,13 @@ * acquired the giant lock. */ _SPINLOCK(&pthread->lock); + + /* If we are already in a critical section, just up the refcount */ + if (++curthread->crit_ref > 1) + return; + PTHREAD_ASSERT(curthread->crit_ref == 1, + ("Critical section reference count must be 1!")); + if (__sys_sigprocmask(SIG_SETMASK, &set, &sav)) { _thread_printf(STDERR_FILENO, "Critical Enter: sig err %d\n", errno); @@ -81,6 +88,12 @@ { sigset_t set; + /* We might be in a nested critical section */ + if (--curthread->crit_ref > 0) + return; + PTHREAD_ASSERT(curthread->crit_ref == 0, + ("Non-Zero critical section reference count.")); + /* * Restore signals. */ ==== //depot/projects/ia64/lib/libthr/thread/thr_private.h#4 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.9 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.12 2003/05/25 08:48:11 mtm Exp $ */ #ifndef _THR_PRIVATE_H @@ -426,6 +426,7 @@ u_int64_t uniqueid; /* for gdb */ thr_id_t thr_id; sigset_t savedsig; + int crit_ref; /* crit. section netsting level */ /* * Lock for accesses to this thread structure. @@ -593,6 +594,34 @@ ; #endif +/* + * These two locks protect the global active threads list and + * the global dead threads list, respectively. Combining these + * into one lock for both lists doesn't seem wise, since it + * would likely increase contention during busy thread creation + * and destruction for very little savings in space. + * + * The lock for the "dead threads list" must be a pthread mutex + * because it is used with condition variables to synchronize + * the gc thread with active threads in the process of exiting or + * dead threads who have just been joined. + */ +SCLASS spinlock_t thread_list_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += _SPINLOCK_INITIALIZER +#endif +; +SCLASS pthread_mutex_t dead_list_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += NULL +#endif +; + +#define THREAD_LIST_LOCK _SPINLOCK(&thread_list_lock) +#define THREAD_LIST_UNLOCK _SPINUNLOCK(&thread_list_lock) +#define DEAD_LIST_LOCK _pthread_mutex_lock(&dead_list_lock) +#define DEAD_LIST_UNLOCK _pthread_mutex_unlock(&dead_list_lock) + /* Initial thread: */ SCLASS struct pthread *_thread_initial #ifdef GLOBAL_PTHREAD_PRIVATE @@ -643,12 +672,7 @@ SCLASS int _giant_count; -/* Garbage collector mutex and condition variable. */ -SCLASS pthread_mutex_t _gc_mutex -#ifdef GLOBAL_PTHREAD_PRIVATE -= NULL -#endif -; +/* Garbage collector condition variable. */ SCLASS pthread_cond_t _gc_cond #ifdef GLOBAL_PTHREAD_PRIVATE = NULL @@ -713,6 +737,7 @@ int _pthread_once(pthread_once_t *, void (*) (void)); pthread_t _pthread_self(void); int _pthread_setspecific(pthread_key_t, const void *); +int _spintrylock(spinlock_t *); inline void _spinlock_pthread(pthread_t, spinlock_t *); inline void _spinunlock_pthread(pthread_t, spinlock_t *); void _thread_exit(char *, int, char *); ==== //depot/projects/ia64/lib/libthr/thread/thr_spinlock.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/libthr/thread/thr_spinlock.c,v 1.3 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.4 2003/05/25 08:48:11 mtm Exp $ * */ @@ -69,6 +69,16 @@ _spinlock_pthread(curthread, lck); } +int +_spintrylock(spinlock_t *lck) +{ + int error; + error = umtx_trylock((struct umtx *)lck, curthread->thr_id); + if (error != 0 && error != EBUSY) + abort(); + return (error); +} + inline void _spinlock_pthread(pthread_t pthread, spinlock_t *lck) { ==== //depot/projects/ia64/lib/libthr/thread/thr_stack.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.1 2003/04/01 03:46:29 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.2 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -144,8 +144,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + DEAD_LIST_LOCK; if ((spare_stack = LIST_FIRST(&_dstackq)) != NULL) { /* Use the spare stack. */ @@ -154,8 +153,7 @@ } /* Unlock the garbage collector mutex. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); + DEAD_LIST_UNLOCK; } /* * The user specified a non-default stack and/or guard size, so try to @@ -167,8 +165,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + DEAD_LIST_LOCK; LIST_FOREACH(spare_stack, &_mstackq, qe) { if (spare_stack->stacksize == stack_size && @@ -180,8 +177,7 @@ } /* Unlock the garbage collector mutex. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); + DEAD_LIST_UNLOCK; } /* Check if a stack was not allocated from a stack cache: */ @@ -212,7 +208,7 @@ return (stack); } -/* This function must be called with _gc_mutex held. */ +/* This function must be called with the 'dead thread list' lock held. */ void _thread_stack_free(void *stack, size_t stacksize, size_t guardsize) { ==== //depot/projects/ia64/release/Makefile.inc.docports#10 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile.inc.docports,v 1.17 2003/04/26 07:31:43 murray Exp $ +# $FreeBSD: src/release/Makefile.inc.docports,v 1.18 2003/05/25 03:41:41 kuriyama Exp $ # # List of (dependent) ports that are minimally required to be # checked out from CVS in order to get ${DOCPORTS} built and @@ -66,7 +66,8 @@ MINIMALDOCPORTS+= ports/textproc/sed_inplace .endif .if ${MACHINE_ARCH} != "i386" -MINIMALDOCPORTS+= ports/textproc/openjade +MINIMALDOCPORTS+= ports/textproc/openjade \ + ports/textproc/opensp .else MINIMALDOCPORTS+= ports/textproc/jade .endif ==== //depot/projects/ia64/sys/dev/fxp/if_fxp.c#32 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.179 2003/05/16 01:13:16 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.180 2003/05/25 05:04:26 truckman Exp $"); #include #include @@ -383,7 +383,7 @@ u_int32_t val; u_int16_t data, myea[ETHER_ADDR_LEN / 2]; int i, rid, m1, m2, prefer_iomap, maxtxseg; - int s; + int s, ipcbxmit_disable; sc->dev = dev; callout_handle_init(&sc->stat_ch); @@ -582,9 +582,31 @@ * and later chips. Note: we need extended TXCB support * too, but that's already enabled by the code above. * Be careful to do this only on the right devices. + * + * At least some 82550 cards probed as "chip=0x12298086 rev=0x0d" + * truncate packets that end with an mbuf containing 1 to 3 bytes + * when used with this feature enabled in the previous version of the + * driver. This problem appears to be fixed now that the driver + * always sets the hardware parse bit in the IPCB structure, which + * the "Intel 8255x 10/100 Mbps Ethernet Controller Family Open + * Source Software Developer Manual" says is necessary in the + * cases where packet truncation was observed. + * + * The device hint "hint.fxp.UNIT_NUMBER.ipcbxmit_disable" + * allows this feature to be disabled at boot time. + * + * If fxp is not compiled into the kernel, this feature may also + * be disabled at run time: + * # kldunload fxp + * # kenv hint.fxp.0.ipcbxmit_disable=1 + * # kldload fxp */ - if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { + if (resource_int_value("fxp", device_get_unit(dev), "ipcbxmit_disable", + &ipcbxmit_disable) != 0) + ipcbxmit_disable = 0; + if (ipcbxmit_disable == 0 && (sc->revision == FXP_REV_82550 || + sc->revision == FXP_REV_82550_C)) { sc->rfa_size = sizeof (struct fxp_rfa); sc->tx_cmd = FXP_CB_COMMAND_IPCBXMIT; sc->flags |= FXP_FLAG_EXT_RFA; @@ -1277,6 +1299,23 @@ txp = sc->fxp_desc.tx_last->tx_next; /* + * A note in Appendix B of the Intel 8255x 10/100 Mbps + * Ethernet Controller Family Open Source Software + * Developer Manual says: + * Using software parsing is only allowed with legal + * TCP/IP or UDP/IP packets. + * ... + * For all other datagrams, hardware parsing must + * be used. + * Software parsing appears to truncate ICMP and + * fragmented UDP packets that contain one to three + * bytes in the second (and final) mbuf of the packet. + */ + if (sc->flags & FXP_FLAG_EXT_RFA) + txp->tx_cb->ipcb_ip_activation_high = + FXP_IPCB_HARDWAREPARSING_ENABLE; + + /* * Deal with TCP/IP checksum offload. Note that * in order for TCP checksum offload to work, * the pseudo header checksum must have already @@ -1287,8 +1326,6 @@ if (mb_head->m_pkthdr.csum_flags) { if (mb_head->m_pkthdr.csum_flags & CSUM_DELAY_DATA) { - txp->tx_cb->ipcb_ip_activation_high = - FXP_IPCB_HARDWAREPARSING_ENABLE; txp->tx_cb->ipcb_ip_schedule = FXP_IPCB_TCPUDP_CHECKSUM_ENABLE; if (mb_head->m_pkthdr.csum_flags & CSUM_TCP) ==== //depot/projects/ia64/sys/geom/geom_disk.c#34 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/geom_disk.c,v 1.71 2003/05/21 18:52:29 phk Exp $ + * $FreeBSD: src/sys/geom/geom_disk.c,v 1.72 2003/05/25 16:57:10 phk Exp $ */ #include "opt_geom.h" @@ -295,12 +295,14 @@ } static void -g_disk_create(void *arg, int flag __unused) +g_disk_create(void *arg, int flag) { struct g_geom *gp; struct g_provider *pp; struct disk *dp; + if (flag == EV_CANCEL) + return; g_topology_assert(); dp = arg; gp = g_new_geomf(&g_disk_class, "%s%d", dp->d_name, dp->d_unit); ==== //depot/projects/ia64/sys/ia64/ia64/trap.c#52 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/ia64/trap.c,v 1.77 2003/05/24 21:16:19 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/ia64/trap.c,v 1.78 2003/05/25 01:01:28 marcel Exp $ */ /* From: src/sys/alpha/alpha/trap.c,v 1.33 */ /* $NetBSD: trap.c,v 1.31 1998/03/26 02:21:46 thorpej Exp $ */ @@ -346,8 +346,7 @@ user = ((framep->tf_special.iip >> 61) < 5) ? 1 : 0; /* Short-circuit break instruction based system calls. */ - if (vector == IA64_VEC_BREAK && user && - framep->tf_special.ifa == 0x100000) { + if (vector == IA64_VEC_BREAK && framep->tf_special.ifa == 0x100000) { break_syscall(framep); return; } ==== //depot/projects/ia64/sys/kern/kern_alq.c#5 (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/kern/kern_alq.c,v 1.5 2003/02/19 05:47:25 imp Exp $ + * $FreeBSD: src/sys/kern/kern_alq.c,v 1.6 2003/05/25 08:48:42 jeff Exp $ * */ @@ -428,6 +428,8 @@ aln = ale->ae_next; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun May 25 14:46:58 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 90CFB37B404; Sun, 25 May 2003 14:46: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 0244937B405 for ; Sun, 25 May 2003 14:46:57 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7692043F3F for ; Sun, 25 May 2003 14:46:55 -0700 (PDT) (envelope-from jmallett@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 h4PLkt0U011953 for ; Sun, 25 May 2003 14:46:55 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PLksGP011950 for perforce@freebsd.org; Sun, 25 May 2003 14:46:54 -0700 (PDT) Date: Sun, 25 May 2003 14:46:54 -0700 (PDT) Message-Id: <200305252146.h4PLksGP011950@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31868 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, 25 May 2003 21:46:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=31868 Change 31868 by jmallett@jmallett_dalek on 2003/05/25 14:46:14 o) Add END addresses for various segments. o) Add TBIA() wrappers. o) Switch to using 8K pages. o) Add ASID related stuff to pcpu. o) Fill in pmap.h with stuff Alpha pmap uses. o) Use a 64-bit PTE. o) Add a SW managed bit to the PTE. o) Note that we have UMA_MD_SMALL_ALLOC, which is required for Alpha pmap to work properly (otherwise, need to use a custom allocator for PV tables like on i386). o) Point kernel addresses into XKSEG. o) Add bogus vectors for new exception code, nuke the old ones from NetBSD. All of the TLB related exceptions will need new code to use the new pmap. o) Use dm[ft]c0 for exception program counter. o) Move some calls into mips_init that are not platform-ordered. o) Move physsz/physmem stuff into mips_init. o) Remove the exception switch. o) Put a lightly-modified Alpha pmap in place, which will obviously need a lot of hacking, etc., but this is enough of a fleshed-out placeholder to get just as far as the fake direct-mapped pmap got us, in real terms. This obviously is missing code to actually use the TLB and to make proper use of the page tables, and is overly complex to fit what PAL on Alpha uses. That will change. This is mostly just to have something to work from. o) Make phys_avail really physical addresses, this is very very key to having real physical vs. virtual distinctions, and it being fake was just a remnant of being influenced by SPARC64, and of the lazy pmap. o) Sneak in some cpu_intr that hands off to iointr, but this is not really used. Affected files ... .. //depot/projects/mips/sys/mips/include/cpuregs.h#9 edit .. //depot/projects/mips/sys/mips/include/locore.h#5 edit .. //depot/projects/mips/sys/mips/include/param.h#10 edit .. //depot/projects/mips/sys/mips/include/pcpu.h#4 edit .. //depot/projects/mips/sys/mips/include/pmap.h#10 edit .. //depot/projects/mips/sys/mips/include/pte.h#4 edit .. //depot/projects/mips/sys/mips/include/vmparam.h#8 edit .. //depot/projects/mips/sys/mips/mips/exception.S#2 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#27 edit .. //depot/projects/mips/sys/mips/mips/mips_subr.S#6 edit .. //depot/projects/mips/sys/mips/mips/pmap.c#14 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#18 edit Differences ... ==== //depot/projects/mips/sys/mips/include/cpuregs.h#9 (text+ko) ==== @@ -76,9 +76,13 @@ */ #define MIPS_KUSEG_START 0x0 +#define MIPS_KUSEG_END 0x000000ffffffffff #define MIPS_XKSEG_START 0xc000000000000000 +#define MIPS_XKSEG_END 0xc00000ff7fffffff #define MIPS_KSEG0_START 0xffffffff80000000 +#define MIPS_KSEG0_END 0xffffffff9fffffff #define MIPS_KSEG1_START 0xffffffffa0000000 +#define MIPS_KSEG1_END 0xffffffffbfffffff #define MIPS_KSEG2_START 0xffffffffc0000000 #define MIPS_MAX_MEM_ADDR 0xbe000000 #define MIPS_RESERVED_ADDR 0xbfc80000 ==== //depot/projects/mips/sys/mips/include/locore.h#5 (text+ko) ==== @@ -88,6 +88,7 @@ */ typedef struct { void (*setTLBpid)(int pid); + void (*TBIA)(int); void (*TBIAP)(int); void (*TBIS)(vm_paddr_t); int (*tlbUpdate)(u_int highreg, u_int lowreg); @@ -103,6 +104,7 @@ extern long *mips_locoresw[]; #define MachSetPID mips64_SetPID +#define MIPS_TBIA mips64_TBIA #define MIPS_TBIAP() mips64_TBIAP(mips_num_tlb_entries) #define MIPS_TBIS mips64_TBIS #define MachTLBUpdate mips64_TLBUpdate ==== //depot/projects/mips/sys/mips/include/param.h#10 (text+ko) ==== @@ -10,10 +10,10 @@ #endif /* - * We use a 4K page on MIPS systems. Override PAGE_* definitions + * We use an 8K page on MIPS systems. Override PAGE_* definitions * to compile-time constants. */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT 13 #define PAGE_SIZE (1 << PAGE_SHIFT) #define PAGE_MASK (PAGE_SIZE - 1) @@ -68,9 +68,9 @@ #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) -#define NBPG 4096 /* bytes/page */ +#define NBPG 8192 /* bytes/page */ #define PGOFSET (NBPG-1) /* byte offset into page */ -#define PGSHIFT 12 /* LOG2(NBPG) */ +#define PGSHIFT 13 /* LOG2(NBPG) */ #define NPTEPG (NBPG/4) #define NBSEG 0x400000 /* bytes/segment */ ==== //depot/projects/mips/sys/mips/include/pcpu.h#4 (text+ko) ==== @@ -35,7 +35,8 @@ #include #define PCPU_MD_FIELDS \ - /* XXX Nothing to see here. */ + u_char pc_next_asid; /* next ASID to alloc */ \ + u_int pc_current_asidgen; /* ASID rollover check */ #define PCPUP (pcpup) ==== //depot/projects/mips/sys/mips/include/pmap.h#10 (text+ko) ==== @@ -31,22 +31,42 @@ #include -struct md_page { -}; +#ifndef LOCORE -#define PMAP_SEGTABSIZE 512 +struct pv_entry; -struct segtab { - union pt_entry *seg_tab[PMAP_SEGTABSIZE]; -}; - -struct pmap { +typedef struct pmap { struct pmap_statistics pm_stats; int pm_asid; int pm_asidgen; + int pm_active; + pt_entry_t *pm_lev1; /* KVA of lev0map */ + vm_object_t pm_pteobj; /* Container for pte's */ + TAILQ_HEAD(,pv_entry) pm_pvlist; /* list of mappings in pmap */ + struct vm_page *pm_ptphint; /* pmap ptp hint */ + LIST_ENTRY(pmap) pm_list; /* list of all pmaps. */ +} *pmap_t; + +struct md_page { + int pv_list_count; + TAILQ_HEAD(,pv_entry) pv_list; }; -typedef struct pmap *pmap_t; +#define ASID_BITS 8 +#define ASIDGEN_BITS (sizeof(int) * 9 - ASID_BITS) +#define ASIDGEN_MASK ((1 << ASIDGEN_BITS) - 1) + +/* + * For each vm_page_t, there is a list of all currently valid virtual + * mappings of that page. An entry is a pv_entry_t, the list is pv_table. + */ +typedef struct pv_entry { + pmap_t pv_pmap; /* pmap where mapping lies */ + vm_offset_t pv_va; /* virtual address for mapping */ + TAILQ_ENTRY(pv_entry) pv_list; + TAILQ_ENTRY(pv_entry) pv_plist; + vm_page_t pv_ptem; /* VM page for pte */ +} *pv_entry_t; extern pmap_t kernel_pmap; extern vm_offset_t avail_start; @@ -55,13 +75,41 @@ extern vm_size_t physsz; extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; -extern struct segtab *segbase; -void pmap_bootstrap(vm_offset_t); +void pmap_bootstrap(void); vm_offset_t pmap_kextract(vm_offset_t); vm_offset_t pmap_steal_memory(vm_size_t); #define pmap_resident_count(pm) ((pm)->pm_stats.resident_count) #define vtophys(va) pmap_kextract((vm_offset_t)(va)) +#endif /*!LOCORE*/ + +#define NLPT 3 /* levels of page tables */ +#define MIPS_PTSHIFT (PAGE_SHIFT-NLPT) /* bits that index within page tables */ +#define MIPS_PGBYTES (1 << PAGE_SHIFT) +#define MIPS_L3SHIFT PAGE_SHIFT +#define MIPS_L2SHIFT (MIPS_L3SHIFT+MIPS_PTSHIFT) +#define MIPS_L1SHIFT (MIPS_L2SHIFT+MIPS_PTSHIFT) + +/* + * Pte related macros + */ +#define VADDR(l1, l2, l3) (((l1) << MIPS_L1SHIFT) \ + + ((l2) << MIPS_L2SHIFT) \ + + ((l3) << MIPS_L3SHIFT) + +#ifndef NKPT +#define NKPT 9 /* initial number of kernel page tables */ +#endif +#define NKLEV2MAPS 255 /* max number of lev2 page tables */ +#define NKLEV3MAPS (NKLEV2MAPS << MIPS_PTSHIFT) /* max number of lev3 page tables */ + +#define PTLEV1I (NPTEPG-1) /* Lev0 entry that points to Lev0 */ +#define K0SEGLEV1I (NPTEPG/2) +#define K1SEGLEV1I (K0SEGLEV1I+(NPTEPG/4)) + +#define NUSERLEV2MAPS (NPTEPG/2) +#define NUSERLEV3MAPS (NUSERLEV2MAPS << MIPS_PTSHIFT) + #endif /* !_MACHINE_PMAP_H_ */ ==== //depot/projects/mips/sys/mips/include/pte.h#4 (text+ko) ==== @@ -100,10 +100,11 @@ */ #ifndef LOCORE +#if 0/*DOCUMENTATION&OLD*/ struct mips3_pte { #if BYTE_ORDER == BIG_ENDIAN -unsigned int pg_prot:2, /* SW: access control */ - pg_pfnum:24, /* HW: core page frame number or 0 */ +unsigned int pg_prot:3, /* SW: access control */ + pg_pfnum:23, /* HW: core page frame number or 0 */ pg_attr:3, /* HW: cache attribute */ pg_m:1, /* HW: dirty bit */ pg_v:1, /* HW: valid bit */ @@ -114,10 +115,11 @@ pg_v:1, /* HW: valid bit */ pg_m:1, /* HW: dirty bit */ pg_attr:3, /* HW: cache attribute */ - pg_pfnum:24, /* HW: core page frame number or 0 */ - pg_prot:2; /* SW: access control */ + pg_pfnum:23, /* HW: core page frame number or 0 */ + pg_prot:3; /* SW: access control */ #endif }; +#endif /* * Structure defining an tlb entry data set. @@ -133,6 +135,7 @@ #define MIPS3_PG_WIRED 0x80000000 /* SW */ #define MIPS3_PG_RO 0x40000000 /* SW */ +#define MIPS3_PG_M 0x20000000 /* SW */ #define MIPS3_PG_SVPN 0xfffff000 /* Software page no mask */ #define MIPS3_PG_HVPN 0xffffe000 /* Hardware page no mask */ @@ -202,10 +205,13 @@ #ifndef LOCORE #include +typedef unsigned long pt_entry_t; +#if 0 typedef union pt_entry { unsigned int pt_entry; /* for copying, etc. */ struct mips3_pte pt_mips3_pte; } pt_entry_t; +#endif #define mips_pg_nv_bit() (MIPS1_PG_NV) /* same on mips1 and mips3 */ @@ -227,18 +233,34 @@ #define mips_tlbpfn_to_paddr(x) mips3_tlbpfn_to_paddr((vm_offset_t)(x)) #define mips_paddr_to_tlbpfn(x) mips3_paddr_to_tlbpfn((x)) -#endif /* ! LOCORE */ +/* + * Address of current address space page table maps + */ +#ifdef _KERNEL +/* + * PTmap is recursive pagemap at top of virtual address space. + * Within PTmap, the lev1 and lev0 page tables can be found. + */ + /* lev3 page tables */ +#define PTmap ((pt_entry_t*)VPTBASE) + /* lev2 page tables */ +#define PTlev2 ((pt_entry_t*)(PTmap+(PTLEV1I<> PGSHIFT)) -#define ptetokv(pte) \ - ((((pt_entry_t *)(pte) - kptemap) << PGSHIFT) + VM_MIN_KERNEL_ADDRESS) +#define vtopte(va) (PTmap + (btop(va) \ + & ((1 << 3*MIPS_PTSHIFT)-1))) +#endif /* _KERNEL */ -extern pt_entry_t *kptemap; /* kernel pte table */ -extern vm_size_t kptemapsize; /* number of pte's in Sysmap */ -#endif /* defined(_KERNEL) && !defined(LOCORE) */ +#endif /* ! LOCORE */ #endif /* __MIPS_PTE_H__ */ ==== //depot/projects/mips/sys/mips/include/vmparam.h#8 (text+ko) ==== @@ -114,6 +114,12 @@ #define MAXSLP 20 /* + * MIPS provides a machine specific single page allocator through the use + * of KSEG0. + */ +#define UMA_MD_SMALL_ALLOC + +/* * Mach derived constants */ @@ -124,9 +130,10 @@ #define VM_MIN_ADDRESS ((vm_offset_t)0x0000000000000000) #define VM_MAXUSER_ADDRESS ((vm_offset_t)0x0000010000000000) #define VM_MAX_ADDRESS ((vm_offset_t)0x0000010000000000) -#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xFFFFFFFF80000000) -#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFFFFFFFFA0000000) +#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)MIPS_XKSEG_START) +#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)VPTBASE-1) #define KERNBASE (VM_MIN_KERNEL_ADDRESS) +#define VPTBASE (MIPS_XKSEG_START+0xffffffff) /* virtual sizes (bytes) for various kernel submaps */ #define VM_KMEM_SIZE (16*1024*1024) /* XXX ??? */ ==== //depot/projects/mips/sys/mips/mips/exception.S#2 (text+ko) ==== @@ -58,6 +58,44 @@ .set at VEND(ExceptionVector) +LEAF(CacheVector) + .set noat + + dsubu sp, sp, TF_SIZE + dla k0, 1f + j exception_save_registers + move k1, sp +1: + /* + * No turning back, and nothing we can do. Just call into + * trap and let it tell the user lovely things about how bad + * their cache has been, + */ + mfc0 a1, MIPS_COP_0_CAUSE + dmfc0 a2, MIPS_COP_0_BAD_VADDR + jal trap + move a0, k1 + + jal exception_restore_registers + daddu sp, sp, TF_SIZE + eret + .set at +VEND(CacheVector) + +LEAF(TLBMissVector) + .set noat + j ExceptionVector + nop + .set at +VEND(TLBMissVector) + +LEAF(XTLBMissVector) + .set noat + j ExceptionVector + nop + .set at +VEND(XTLBMissVector) + /* * Restore registers from a trapframe pointed to in k1, returning to ra * that is passed in, and kept in k0. @@ -91,7 +129,7 @@ /* * Brief interlude. */ - mtc0 a1, MIPS_COP_0_EXC_PC + dmtc0 a1, MIPS_COP_0_EXC_PC mthi a0 mtlo v1 mtc0 v0, MIPS_COP_0_STATUS @@ -148,7 +186,7 @@ mfc0 v0, MIPS_COP_0_STATUS mflo v1 mfhi a0 - mfc0 a1, MIPS_COP_0_EXC_PC + dmfc0 a1, MIPS_COP_0_EXC_PC sd t0, TF_REG_T0(k1) sd t1, TF_REG_T1(k1) ==== //depot/projects/mips/sys/mips/mips/machdep.c#27 (text+ko) ==== @@ -192,13 +192,21 @@ vm_offset_t kstack0; vm_paddr_t kstack0_phys; +vm_size_t physsz; + static void cpu_identify(void); void cpu_startup(void *); SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL); + void mips_init(void) { + physmem = btoc(physsz); + + mips_vector_init(); + pmap_bootstrap(); + proc_linkup(&proc0, &ksegrp0, &kse0, &thread0); proc0.p_uarea = (struct user *)uarea0; proc0.p_stats = &proc0.p_uarea->u_stats; @@ -567,6 +575,7 @@ const mips_locore_jumpvec_t mips64_locore_vec = { mips64_SetPID, + mips64_TBIA, mips64_TBIAP, mips64_TBIS, mips64_TLBUpdate, @@ -580,50 +589,39 @@ extern char ExceptionVector[], ExceptionVectorEnd[]; /* TLB miss handler address and end */ - extern char mips64_TLBMiss[], mips64_TLBMissEnd[]; - extern char mips64_XTLBMiss[], mips64_XTLBMissEnd[]; + extern char TLBMissVector[], TLBMissVectorEnd[]; + extern char XTLBMissVector[], XTLBMissVectorEnd[]; /* Cache error handler */ - extern char mips64_cache[], mips64_cacheEnd[]; + extern char CacheVector[], CacheVectorEnd[]; -#if 0 - /* MIPS32/MIPS64 interrupt exception handler */ - extern char mips64_intr[], mips64_intrEnd[]; -#endif - /* * Copy down exception vector code. */ - if (mips64_TLBMissEnd - mips64_TLBMiss > 0x80) + if (TLBMissVectorEnd - TLBMissVector > 0x80) panic("startup: UTLB vector code too large"); - memcpy((void *)MIPS_UTLB_MISS_EXC_VEC, mips64_TLBMiss, - mips64_TLBMissEnd - mips64_TLBMiss); + memcpy((void *)MIPS_UTLB_MISS_EXC_VEC, TLBMissVector, + TLBMissVectorEnd - TLBMissVector); - if (mips64_XTLBMissEnd - mips64_XTLBMiss > 0x80) + if (XTLBMissVectorEnd - XTLBMissVector > 0x80) panic("startup: XTLB vector code too large"); - memcpy((void *)MIPS3_XTLB_MISS_EXC_VEC, mips64_XTLBMiss, - mips64_XTLBMissEnd - mips64_XTLBMiss); + memcpy((void *)MIPS3_XTLB_MISS_EXC_VEC, XTLBMissVector, + XTLBMissVectorEnd - XTLBMissVector); - if (mips64_cacheEnd - mips64_cache > 0x80) + if (CacheVectorEnd - CacheVector > 0x80) panic("startup: Cache error vector code too large"); - memcpy((void *)MIPS3_CACHE_ERR_EXC_VEC, mips64_cache, - mips64_cacheEnd - mips64_cache); + memcpy((void *)MIPS3_CACHE_ERR_EXC_VEC, CacheVector, + CacheVectorEnd - CacheVector); if (ExceptionVectorEnd - ExceptionVector > 0x80) panic("startup: General exception vector code too large"); memcpy((void *)MIPS3_GEN_EXC_VEC, ExceptionVector, ExceptionVectorEnd - ExceptionVector); -#if 0 /* XXX - why doesn't mipsNN_intr() work? */ - if (mips64_intrEnd - mips64_intr > 0x80) - panic("startup: interrupt exception vector code too large"); - memcpy((void *)MIPS3_INTR_EXC_VEC, mips64_intr, - mips64_intrEnd - mips64_intr); -#else + /* XXX do a real interrupt vector for the mips32/64? */ memcpy((void *)MIPS3_INTR_EXC_VEC, ExceptionVector, ExceptionVectorEnd - ExceptionVector); -#endif /* * Copy locore-function vector. ==== //depot/projects/mips/sys/mips/mips/mips_subr.S#6 (text+ko) ==== @@ -152,27 +152,6 @@ #endif /* - * VECTOR - * exception vector entrypoint - * XXX: regmask should be used to generate .mask - */ -#define VECTOR(x, regmask) \ - .ent x; \ - EXPORT(x); \ - -#ifdef __STDC__ -#define VECTOR_END(x) \ - EXPORT(x ## End); \ - END(x) -#else -#define VECTOR_END(x) \ - EXPORT(x/**/End); \ - END(x) -#endif - -#define _VECTOR_END(x) VECTOR_END(x) - -/* * XXX We need a cleaner way of handling the instruction hazards of * the various processors. Here are the relevant rules for the QED 52XX: * tlbw[ri] -- two integer ops beforehand @@ -194,1258 +173,11 @@ * for those CPU, define COP0_SYNC as sync.p */ - -/* - *============================================================================ - * - * MIPS III ISA support, part 1: locore exception vectors. - * The following code is copied to the vector locations to which - * the CPU jumps in response to an exception or a TLB miss. - * - *============================================================================ - */ .set noreorder .set mips64 -/* - * TLB handling data. 'segbase' points to the base of the segment - * table. this is read and written by C code in mips_machdep.c. - * - * XXX: use linear mapped PTs at fixed VA in kseg2 in the future? - */ .text - -/* - *---------------------------------------------------------------------------- - * - * mips3_TLBMiss -- - * - * Vector code for the TLB-miss exception vector 0x80000000 - * on an r4000. - * - * This code is copied to the TLB exception vector address to - * handle TLB translation misses. - * NOTE: This code should be relocatable and max 32 instructions!!! - * - * Don't check for invalid pte's here. We load them as well and - * let the processor trap to load the correct value after service. - *---------------------------------------------------------------------------- - */ -VECTOR(MIPSX(TLBMiss), unknown) - .set noat - mfc0 k0, MIPS_COP_0_BAD_VADDR #00: k0=bad address - lui k1, %hi(segbase) #01: k1=hi of segbase - bltz k0, 4f #02: k0<0 -> 4f (kernel fault) - srl k0, 20 #03: k0=seg offset (almost) - lw k1, %lo(segbase)(k1) #04: k1=segment tab base - andi k0, k0, 0xffc #05: k0=seg offset (mask 0x3) - addu k1, k0, k1 #06: k1=seg entry address - lw k1, 0(k1) #07: k1=seg entry - mfc0 k0, MIPS_COP_0_BAD_VADDR #08: k0=bad address (again) - beq k1, zero, 5f #09: ==0 -- no page table - srl k0, 10 #0a: k0=VPN (aka va>>10) - andi k0, k0, 0xff8 #0b: k0=page tab offset - addu k1, k1, k0 #0c: k1=pte address - lw k0, 0(k1) #0d: k0=lo0 pte - lw k1, 4(k1) #0e: k1=lo1 pte - sll k0, 2 #0f: chop top 2 bits (part 1a) - srl k0, 2 #10: chop top 2 bits (part 1b) - mtc0 k0, MIPS_COP_0_TLB_LO0 #11: lo0 is loaded - sll k1, 2 #12: chop top 2 bits (part 2a) - srl k1, 2 #13: chop top 2 bits (part 2b) - mtc0 k1, MIPS_COP_0_TLB_LO1 #14: lo1 is loaded - nop #15: standard nop - nop #16: extra nop for QED5230 - tlbwr #17: write to tlb - nop #18: standard nop - nop #19: needed by R4000/4400 - nop #1a: needed by R4000/4400 - eret #1b: return from exception -4: j MIPSX(TLBMissException) #1c: kernel exception - nop #1d: branch delay slot -5: j slowfault #1e: no page table present - nop #1f: branch delay slot - .set at -_VECTOR_END(MIPSX(TLBMiss)) - -/* - * mips3_XTLBMiss routine - * - * Vector code for the XTLB-miss exception vector 0x80000080 on an r4000. - * - * This code is copied to the XTLB exception vector address to - * handle TLB translation misses while in 64-bit mode. - * NOTE: This code should be relocatable and max 32 instructions!!! - * - * Note that we do not support the full size of the PTEs, relying - * on appropriate truncation/sign extension. - * - * Don't check for invalid pte's here. We load them as well and - * let the processor trap to load the correct value after service. - */ -VECTOR(MIPSX(XTLBMiss), unknown) - .set noat - dmfc0 k0, MIPS_COP_0_BAD_VADDR #00: k0=bad address - lui k1, %hi(segbase) #01: k1=hi of segbase - bltz k0, 4f #02: k0<0 -> 4f (kernel fault) - srl k0, 20 #03: k0=seg offset (almost) - lw k1, %lo(segbase)(k1) #04: k1=segment tab base - andi k0, k0, 0xffc #05: k0=seg offset (mask 0x3) - addu k1, k0, k1 #06: k1=seg entry address - lw k1, 0(k1) #07: k1=seg entry - dmfc0 k0, MIPS_COP_0_BAD_VADDR #08: k0=bad address (again) - beq k1, zero, 5f #09: ==0 -- no page table - srl k0, 10 #0a: k0=VPN (aka va>>10) - andi k0, k0, 0xff8 #0b: k0=page tab offset - addu k1, k1, k0 #0c: k1=pte address - lw k0, 0(k1) #0d: k0=lo0 pte - lw k1, 4(k1) #0e: k1=lo1 pte - sll k0, 2 #0f: chop top 2 bits (part 1a) - srl k0, 2 #10: chop top 2 bits (part 1b) - mtc0 k0, MIPS_COP_0_TLB_LO0 #11: lo0 is loaded - sll k1, 2 #12: chop top 2 bits (part 2a) - srl k1, 2 #13: chop top 2 bits (part 2b) - mtc0 k1, MIPS_COP_0_TLB_LO1 #14: lo1 is loaded - nop #15: standard nop - nop #16: extra nop for QED5230 - tlbwr #17: write to tlb - nop #18: standard nop - nop #19: needed by R4000/4400 - nop #1a: needed by R4000/4400 - eret #1b: return from exception -4: j MIPSX(TLBMissException) #1c: kernel exception - nop #1d: branch delay slot -5: j slowfault #1e: no page table present - nop #1f: branch delay slot - .set at -_VECTOR_END(MIPSX(XTLBMiss)) - -/* - * Vector to real handler in KSEG1. - */ -VECTOR(MIPSX(cache), unknown) - la k0, MIPSX(cacheException) - li k1, MIPS_PHYS_MASK - and k0, k1 - li k1, MIPS_KSEG1_START - or k0, k1 - j k0 - nop -_VECTOR_END(MIPSX(cache)) - -/* - * Handle MIPS32/MIPS64 style interrupt exception vector. - */ -VECTOR(MIPSX(intr), unknown) - la k0, MIPSX(KernIntr) - j k0 - nop -_VECTOR_END(MIPSX(intr)) - -/*---------------------------------------------------------------------------- - * - * slowfault -- - * - * Alternate entry point into the mips3_UserGenException or - * or mips3_user_Kern_exception, when the ULTB miss handler couldn't - * find a TLB entry. - * - * Find out what mode we came from and call the appropriate handler. - * - *---------------------------------------------------------------------------- - */ - -/* - * We couldn't find a TLB entry. - * Find out what mode we came from and call the appropriate handler. - */ -slowfault: - .set noat - mfc0 k0, MIPS_COP_0_STATUS - nop - and k0, k0, MIPS3_SR_KSU_USER - bne k0, zero, MIPSX(UserGenException) - nop - .set at -/* - * Fall though ... - */ - -/* - * mips3_KernGenException - * - * Handle an exception from kernel mode. - * Build trapframe on stack to hold interrupted kernel context, then - * call trap() to process the condition. - * - * trapframe is pointed to by the 5th arg - * and a dummy sixth argument is used to avoid alignment problems - * { - * register_t cf_args[4 + 1]; - * register_t cf_pad; (for 8 word alignment) - * register_t cf_sp; - * register_t cf_ra; - * mips_reg_t kf_regs[17]; - trapframe begins here - * mips_reg_t kf_sr; - - * mips_reg_t kf_mullo; - - * mips_reg_t kf_mulhi; - - * mips_reg_t kf_epc; - may be changed by trap() call - * }; - */ -NESTED_NOPROFILE(MIPSX(KernGenException), KERNFRAME_SIZ, ra) - .set noat - .mask 0x80000000, -4 -#if defined(DDB) || defined(KGDB) - la k0, kdbaux - REG_S s0, SF_REG_S0(k0) - REG_S s1, SF_REG_S1(k0) - REG_S s2, SF_REG_S2(k0) - REG_S s3, SF_REG_S3(k0) - REG_S s4, SF_REG_S4(k0) - REG_S s5, SF_REG_S5(k0) - REG_S s6, SF_REG_S6(k0) - REG_S s7, SF_REG_S7(k0) - REG_S sp, SF_REG_SP(k0) - REG_S s8, SF_REG_S8(k0) - REG_S gp, SF_REG_RA(k0) -#endif -/* - * Save the relevant kernel registers onto the stack. - * We don't need to save s0 - s8, sp and gp because - * the compiler does it for us. - */ - subu sp, sp, KERNFRAME_SIZ - REG_S AT, TF_BASE+TF_REG_AST(sp) - REG_S v0, TF_BASE+TF_REG_V0(sp) - REG_S v1, TF_BASE+TF_REG_V1(sp) - mflo v0 - mfhi v1 - REG_S a0, TF_BASE+TF_REG_A0(sp) - REG_S a1, TF_BASE+TF_REG_A1(sp) - REG_S a2, TF_BASE+TF_REG_A2(sp) - REG_S a3, TF_BASE+TF_REG_A3(sp) - mfc0 a0, MIPS_COP_0_STATUS # 1st arg is STATUS - REG_S t0, TF_BASE+TF_REG_T0(sp) - REG_S t1, TF_BASE+TF_REG_T1(sp) - REG_S t2, TF_BASE+TF_REG_T2(sp) - REG_S t3, TF_BASE+TF_REG_T3(sp) - mfc0 a1, MIPS_COP_0_CAUSE # 2nd arg is CAUSE - REG_S ta0, TF_BASE+TF_REG_TA0(sp) - REG_S ta1, TF_BASE+TF_REG_TA1(sp) - REG_S ta2, TF_BASE+TF_REG_TA2(sp) - REG_S ta3, TF_BASE+TF_REG_TA3(sp) - mfc0 a2, MIPS_COP_0_BAD_VADDR # 3rd arg is fault address - REG_S t8, TF_BASE+TF_REG_T8(sp) - REG_S t9, TF_BASE+TF_REG_T9(sp) - REG_S ra, TF_BASE+TF_REG_RA(sp) - REG_S a0, TF_BASE+TF_REG_SR(sp) - mfc0 a3, MIPS_COP_0_EXC_PC # 4th arg is exception PC - REG_S v0, TF_BASE+TF_REG_MULLO(sp) - REG_S v1, TF_BASE+TF_REG_MULHI(sp) - REG_S a3, TF_BASE+TF_REG_EPC(sp) - addu v0, sp, TF_BASE - sw v0, KERNFRAME_ARG5(sp) # 5th arg is p. to trapframe -#ifdef IPL_ICU_MASK - .set at - lw v0, md_imask - sw v0, TF_BASE+TF_PPL(sp) - nop - .set noat -#endif -/* - * Call the trap handler. - */ -#if defined(DDB) || defined(DEBUG) || defined(KGDB) - addu v0, sp, KERNFRAME_SIZ - sw v0, KERNFRAME_SP(sp) -#endif - mtc0 zero, MIPS_COP_0_STATUS # Set kernel no error level - COP0_SYNC - nop - nop - nop - PRINTF("OMG\n"); - jal trap # - sw a3, KERNFRAME_RA(sp) # for debugging - -/* - * Restore registers and return from the exception. - */ - mtc0 zero, MIPS_COP_0_STATUS # Make sure int disabled - COP0_SYNC - nop # 3 nop delay - nop - nop -#ifdef IPL_ICU_MASK - .set at - lw a0, TF_BASE+TF_PPL(sp) - sw a0, md_imask - jal md_imask_update - nop - .set noat -#endif - REG_L a0, TF_BASE+TF_REG_SR(sp) # ??? why differs ??? - REG_L t0, TF_BASE+TF_REG_MULLO(sp) - REG_L t1, TF_BASE+TF_REG_MULHI(sp) - REG_L k0, TF_BASE+TF_REG_EPC(sp) # might be changed inside trap - mtc0 a0, MIPS_COP_0_STATUS # restore the SR, disable intrs - COP0_SYNC - mtlo t0 - mthi t1 - _MTC0 k0, MIPS_COP_0_EXC_PC # set return address - COP0_SYNC - REG_L AT, TF_BASE+TF_REG_AST(sp) - REG_L v0, TF_BASE+TF_REG_V0(sp) - REG_L v1, TF_BASE+TF_REG_V1(sp) - REG_L a0, TF_BASE+TF_REG_A0(sp) - REG_L a1, TF_BASE+TF_REG_A1(sp) - REG_L a2, TF_BASE+TF_REG_A2(sp) - REG_L a3, TF_BASE+TF_REG_A3(sp) - REG_L t0, TF_BASE+TF_REG_T0(sp) - REG_L t1, TF_BASE+TF_REG_T1(sp) - REG_L t2, TF_BASE+TF_REG_T2(sp) - REG_L t3, TF_BASE+TF_REG_T3(sp) - REG_L ta0, TF_BASE+TF_REG_TA0(sp) - REG_L ta1, TF_BASE+TF_REG_TA1(sp) - REG_L ta2, TF_BASE+TF_REG_TA2(sp) - REG_L ta3, TF_BASE+TF_REG_TA3(sp) - REG_L t8, TF_BASE+TF_REG_T8(sp) - REG_L t9, TF_BASE+TF_REG_T9(sp) - REG_L ra, TF_BASE+TF_REG_RA(sp) - addu sp, sp, KERNFRAME_SIZ -#ifdef DDBnotyet - la k0, kdbaux - REG_L s0, SF_REG_S0(k0) - REG_L s1, SF_REG_S1(k0) - REG_L s2, SF_REG_S2(k0) - REG_L s3, SF_REG_S3(k0) - REG_L s4, SF_REG_S4(k0) - REG_L s5, SF_REG_S5(k0) - REG_L s6, SF_REG_S6(k0) - REG_L s7, SF_REG_S7(k0) - REG_L sp, SF_REG_SP(k0) - REG_L s8, SF_REG_S8(k0) - REG_L gp, SF_REG_RA(k0) -#endif - eret # return to interrupted point - .set at -END(MIPSX(KernGenException)) - -/* - * mipsN_UserGenException - * - * Handle an exception from user mode. - * Save user context atop the kernel stack, then call trap() to process - * the condition. The context can be manipulated alternatively via - * curlwp->p_md.md_regs. - */ -NESTED_NOPROFILE(MIPSX(UserGenException), CALLFRAME_SIZ, ra) - .set noat - .mask 0x80000000, -4 -/* - * Save all of the registers except for the kernel temporaries in u_pcb. - */ - ld k1, pcpup - ld k1, PC_CURPCB(k1) - #nop # -slip- - addu k1, k1, USPACE - FRAME_SIZ - REG_S AT, FRAME_AST(k1) - REG_S v0, FRAME_V0(k1) - REG_S v1, FRAME_V1(k1) - mflo v0 - REG_S a0, FRAME_A0(k1) - REG_S a1, FRAME_A1(k1) - REG_S a2, FRAME_A2(k1) - REG_S a3, FRAME_A3(k1) - mfhi v1 - REG_S t0, FRAME_T0(k1) - REG_S t1, FRAME_T1(k1) - REG_S t2, FRAME_T2(k1) - REG_S t3, FRAME_T3(k1) - mfc0 a0, MIPS_COP_0_STATUS # 1st arg is STATUS - REG_S ta0, FRAME_TA0(k1) - REG_S ta1, FRAME_TA1(k1) - REG_S ta2, FRAME_TA2(k1) - REG_S ta3, FRAME_TA3(k1) - mfc0 a1, MIPS_COP_0_CAUSE # 2nd arg is CAUSE - REG_S s0, FRAME_S0(k1) - REG_S s1, FRAME_S1(k1) - REG_S s2, FRAME_S2(k1) - REG_S s3, FRAME_S3(k1) - _MFC0 a2, MIPS_COP_0_BAD_VADDR # 3rd arg is fault address - REG_S s4, FRAME_S4(k1) - REG_S s5, FRAME_S5(k1) - REG_S s6, FRAME_S6(k1) - REG_S s7, FRAME_S7(k1) - _MFC0 a3, MIPS_COP_0_EXC_PC # 4th arg is exception PC - REG_S t8, FRAME_T8(k1) - REG_S t9, FRAME_T9(k1) - REG_S gp, FRAME_GP(k1) - REG_S sp, FRAME_SP(k1) - REG_S s8, FRAME_S8(k1) - REG_S ra, FRAME_RA(k1) - REG_S a0, FRAME_SR(k1) - REG_S v0, FRAME_MULLO(k1) - REG_S v1, FRAME_MULHI(k1) - REG_S a3, FRAME_EPC(k1) -#ifdef IPL_ICU_MASK - .set at - lw t0, md_imask - sw t0, FRAME_PPL(k1) - .set noat -#endif - addu sp, k1, -CALLFRAME_SIZ # switch to kernel SP -#ifdef __GP_SUPPORT__ - la gp, _gp # switch to kernel GP -#endif -/* - * Turn off fpu and enter kernel mode - */ - .set at - and t0, a0, ~(MIPS_SR_COP_1_BIT | MIPS_SR_EXL | MIPS_SR_KSU_MASK | MIPS_SR_INT_IE) - .set noat -/* - * Call the trap handler. - */ - mtc0 t0, MIPS_COP_0_STATUS - COP0_SYNC - jal trap - sw a3, CALLFRAME_SIZ-4(sp) # for debugging -/* - * Check pending asynchronous traps. - */ - ld t0, pcpup - ld t0, PC_CURTHREAD(t0) - lw t0, TD_FLAGS(t0) - and t0, TDF_ASTPENDING - beq t0, zero, 1f - nop -/* - * We have pending asynchronous traps; all the state is already saved. - */ - jal ast - lw a0, CALLFRAME_SIZ + FRAME_EPC(sp) -1: -/* - * Restore user registers and return. - * First disable interrupts and set exception level. - */ - mtc0 zero, MIPS_COP_0_STATUS # disable interrupt - COP0_SYNC - nop # 3 clock delay before - nop # exceptions blocked - nop # for R4X - li v0, MIPS_SR_EXL - mtc0 v0, MIPS_COP_0_STATUS # set exception level - COP0_SYNC - nop # 3 nop delay - nop - nop >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun May 25 15:51:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB08537B404; Sun, 25 May 2003 15:51:20 -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 3EB0737B401 for ; Sun, 25 May 2003 15:51:20 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B8C2043F85 for ; Sun, 25 May 2003 15:51:19 -0700 (PDT) (envelope-from jmallett@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 h4PMpJ0U015345 for ; Sun, 25 May 2003 15:51:19 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PMpGuX015324 for perforce@freebsd.org; Sun, 25 May 2003 15:51:16 -0700 (PDT) Date: Sun, 25 May 2003 15:51:16 -0700 (PDT) Message-Id: <200305252251.h4PMpGuX015324@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31873 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, 25 May 2003 22:51:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=31873 Change 31873 by jmallett@jmallett_dalek on 2003/05/25 15:50:36 Use cpufunc-style mips_{rd,wr}_ stuff instead of NetBSD locore_mips3.S stuff which is about to mostly go away. I don't touch things related to configN on MIPS32/64 chips, as that's a can of worms I have absolutely ZERO desire to open. Affected files ... .. //depot/projects/mips/sys/mips/include/cpufunc.h#10 edit .. //depot/projects/mips/sys/mips/mips/cache.c#4 edit .. //depot/projects/mips/sys/mips/mips/cache_r5k.c#3 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#28 edit .. //depot/projects/mips/sys/mips/sgimips/ip22.c#3 edit Differences ... ==== //depot/projects/mips/sys/mips/include/cpufunc.h#10 (text+ko) ==== @@ -33,21 +33,51 @@ #include #include -uint32_t mips_cp0_cause_read(void); -void mips_cp0_cause_write(uint32_t); -uint32_t mips_cp0_status_read(void); -void mips_cp0_status_write(uint32_t); +static __inline void +mips_wbflush(void) +{ + __asm __volatile ("sync" : : : "memory"); +} + +#define MIPS_RDRW32_COP0(n,r) \ +static __inline u_int32_t \ +mips_rd_ ## n (void) \ +{ \ + int v0; \ + __asm __volatile ("mfc0 %[v0], $"__XSTRING(r)";" \ + : [v0] "=&r"(v0)); \ + return (v0); \ +} \ +static __inline void \ +mips_wr_ ## n (u_int32_t a0) \ +{ \ + __asm __volatile ("mtc0 %[a0], $"__XSTRING(r)";" \ + __XSTRING(COP0_SYNC)";" \ + "nop;" \ + "nop;" \ + : \ + : [a0] "r"(a0)); \ +} + +MIPS_RDRW32_COP0(compare, MIPS_COP_0_COMPARE) +MIPS_RDRW32_COP0(config, MIPS_COP_0_CONFIG) +MIPS_RDRW32_COP0(count, MIPS_COP_0_COUNT) +MIPS_RDRW32_COP0(wired, MIPS_COP_0_TLB_WIRED) +MIPS_RDRW32_COP0(cause, MIPS_COP_0_CAUSE) +MIPS_RDRW32_COP0(status, MIPS_COP_0_STATUS) static __inline register_t intr_disable(void) { register_t s; - mips_cp0_status_write((s = mips_cp0_status_read()) & ~MIPS_SR_IE); + s = mips_rd_status(); + mips_wr_status(s & ~MIPS_SR_IE); + return (s); } -#define intr_restore(s) mips_cp0_status_write((s)) +#define intr_restore(s) mips_wr_status((s)) static __inline void mips_break(void) @@ -64,7 +94,7 @@ static __inline void mips_write_membar(void) { - __asm __volatile ("sync" : : : "memory"); + mips_wbflush(); } #endif /* _KERNEL */ ==== //depot/projects/mips/sys/mips/mips/cache.c#4 (text+ko) ==== @@ -561,7 +561,9 @@ mips3_get_cache_config(int csizebase) { int has_sdcache_enable = 0; - uint32_t config = mips3_cp0_config_read(); + uint32_t config; + + config = mips_rd_config(); mips_picache_size = MIPS3_CONFIG_CACHE_SIZE(config, MIPS3_CONFIG_IC_MASK, csizebase, MIPS3_CONFIG_IC_SHIFT); @@ -617,7 +619,7 @@ /* MIPS32/MIPS64, use coprocessor 0 config registers */ uint32_t cfg, cfg1; - cfg = mips3_cp0_config_read(); + cfg = mips_rd_config(); cfg1 = mipsNN_cp0_config1_read(); #ifdef MIPS_DISABLE_L1_CACHE ==== //depot/projects/mips/sys/mips/mips/cache_r5k.c#3 (text+ko) ==== @@ -227,9 +227,9 @@ return; } - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); while (va < eva) { __asm __volatile("nop; nop; nop; nop;"); @@ -237,7 +237,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void @@ -248,9 +248,9 @@ va = trunc_line(va); - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); while ((eva - va) >= (32 * 32)) { (void) *(__volatile int *)MIPS_PHYS_TO_KSEG1(0); @@ -265,7 +265,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void @@ -406,9 +406,9 @@ va = trunc_line(va); - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); while (va < eva) { __asm __volatile("nop; nop; nop; nop;"); @@ -416,7 +416,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void @@ -427,9 +427,9 @@ va = trunc_line(va); - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); /* * Between blasts of big cache chunks, give interrupts @@ -447,7 +447,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void @@ -500,9 +500,9 @@ va = trunc_line(va); - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); while (va < eva) { __asm __volatile("nop; nop; nop; nop;"); @@ -510,7 +510,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void @@ -521,9 +521,9 @@ va = trunc_line(va); - ostatus = mips_cp0_status_read(); + ostatus = mips_rd_status(); - mips_cp0_status_write(ostatus & ~MIPS_SR_INT_IE); + mips_wr_status(ostatus & ~MIPS_SR_INT_IE); /* * Between blasts of big cache chunks, give interrupts @@ -541,7 +541,7 @@ va += 32; } - mips_cp0_status_write(ostatus); + mips_wr_status(ostatus); } void ==== //depot/projects/mips/sys/mips/mips/machdep.c#28 (text+ko) ==== @@ -579,7 +579,7 @@ mips64_TBIAP, mips64_TBIS, mips64_TLBUpdate, - mips64_wbflush, + mips_wbflush, }; static void @@ -633,7 +633,7 @@ mips_dcache_wbinv_all(); /* Clear BEV in SR so we start handling our own exceptions */ - mips_cp0_status_write(mips_cp0_status_read() & ~MIPS_SR_BEV); + mips_wr_status(mips_rd_status() & ~MIPS_SR_BEV); } /* @@ -686,7 +686,7 @@ /* MIPS32/MIPS64, use coprocessor 0 config registers */ uint32_t cfg, cfg1; - cfg = mips3_cp0_config_read(); + cfg = mips_rd_config(); cfg1 = mipsNN_cp0_config1_read(); /* pick CPU type */ @@ -757,9 +757,9 @@ switch (cpu_arch) { case CPU_ARCH_MIPS3: case CPU_ARCH_MIPS64: - mips3_cp0_wired_write(0); + mips_wr_wired(0); mips64_TBIA(mips_num_tlb_entries); - mips3_cp0_wired_write(MIPS3_TLB_WIRED_UPAGES); + mips_wr_wired(MIPS3_TLB_WIRED_UPAGES); mips64_vector_init(); memcpy(mips_locoresw, mips64_locoresw, sizeof(mips_locoresw)); break; ==== //depot/projects/mips/sys/mips/sgimips/ip22.c#3 (text+ko) ==== @@ -215,11 +215,11 @@ *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fa00014) = 0; if (ipending & MIPS_INT_MASK_5) { - last_clk_intr = mips3_cp0_count_read(); + last_clk_intr = mips_rd_count(); next_clk_intr += curcpu()->ci_cycles_per_hz; - mips3_cp0_compare_write(next_clk_intr); - newcnt = mips3_cp0_count_read(); + mips_wr_compare(next_clk_intr); + newcnt = mips_rd_count(); /* * Missed one or more clock interrupts, so let's start @@ -229,7 +229,7 @@ missed_clk_intrs++; next_clk_intr = newcnt + curcpu()->ci_cycles_per_hz; - mips3_cp0_compare_write(next_clk_intr); + mips_wr_compare(next_clk_intr); } cf.pc = pc; @@ -432,7 +432,7 @@ { uint32_t res, count; - count = mips3_cp0_count_read() - last_clk_intr; + count = mips_rd_count() - last_clk_intr; MIPS_COUNT_TO_MHZ(curcpu(), count, res); return (res); } @@ -461,7 +461,7 @@ *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) = sampletime & 0xff; *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) = sampletime >> 8; - startctr = mips3_cp0_count_read(); + startctr = mips_rd_count(); /* Wait for the MSB to count down to zero */ do { @@ -469,7 +469,7 @@ lsb = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) & 0xff; msb = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) & 0xff; - endctr = mips3_cp0_count_read(); + endctr = mips_rd_count(); } while (msb); /* Turn off timer */ From owner-p4-projects@FreeBSD.ORG Sun May 25 15:55:28 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C576037B401; Sun, 25 May 2003 15:55:27 -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 4B7E637B404 for ; Sun, 25 May 2003 15:55:27 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A12DE43FAF for ; Sun, 25 May 2003 15:55:26 -0700 (PDT) (envelope-from jmallett@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 h4PMtQ0U015493 for ; Sun, 25 May 2003 15:55:26 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4PMtQTe015482 for perforce@freebsd.org; Sun, 25 May 2003 15:55:26 -0700 (PDT) Date: Sun, 25 May 2003 15:55:26 -0700 (PDT) Message-Id: <200305252255.h4PMtQTe015482@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31874 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, 25 May 2003 22:55:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=31874 Change 31874 by jmallett@jmallett_dalek on 2003/05/25 15:54:43 Nuke functions that have been replaced by stuff, since they're only meant for C anyway. Affected files ... .. //depot/projects/mips/sys/mips/mips/locore_mips3.S#9 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/locore_mips3.S#9 (text+ko) ==== @@ -125,82 +125,6 @@ .text -/*---------------------------------------------------------------------------- - * - * mips3_wbflush -- - * - * Return when the write buffer is empty. - * - * Common for all MIPS3 and greater ISAs - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------------- - */ -LEAF(mips3_wbflush) -XLEAF(mips5900_wbflush) -XLEAF(mips32_wbflush) -XLEAF(mips64_wbflush) - nop - sync - j ra - nop -END(mips3_wbflush) - -/* - * u_int32_t mips3_cp0_compare_read(void) - * - * Return the current value of the CP0 Compare register. - */ -LEAF(mips3_cp0_compare_read) - mfc0 v0, MIPS_COP_0_COMPARE - j ra - nop -END(mips3_cp0_compare_read) - -/* - * void mips3_cp0_compare_write(u_int32_t) - * - * Set the value of the CP0 Compare register. - */ -LEAF(mips3_cp0_compare_write) - mtc0 a0, MIPS_COP_0_COMPARE - COP0_SYNC - nop - nop - j ra - nop -END(mips3_cp0_compare_write) - -/* - * u_int32_t mips3_cp0_config_read(void) - * - * Return the current value of the CP0 Config register. - */ -LEAF(mips3_cp0_config_read) - mfc0 v0, MIPS_COP_0_CONFIG - j ra - nop -END(mips3_cp0_config_read) - -/* - * void mips3_cp0_config_write(u_int32_t) - * - * Set the value of the CP0 Config register. - */ -LEAF(mips3_cp0_config_write) - mtc0 a0, MIPS_COP_0_CONFIG - COP0_SYNC - nop - nop - j ra - nop -END(mips3_cp0_config_write) - /* * u_int32_t mipsNN_cp0_config1_read(void) * @@ -258,114 +182,6 @@ .set pop END(mipsNN_cp0_config3_read) -/* - * u_int32_t mips3_cp0_count_read(void) - * - * Return the current value of the CP0 Count register. - */ -LEAF(mips3_cp0_count_read) - mfc0 v0, MIPS_COP_0_COUNT - j ra - nop -END(mips3_cp0_count_read) - -/* - * void mips3_cp0_count_write(u_int32_t) - * - * Set the value of the CP0 Count register. - */ -LEAF(mips3_cp0_count_write) - mtc0 a0, MIPS_COP_0_COUNT - COP0_SYNC - nop - nop - j ra - nop -END(mips3_cp0_count_write) - -/* - * u_int32_t mips3_cp0_wired_read(void) - * - * Return the current value of the CP0 Wired register. - */ -LEAF(mips3_cp0_wired_read) - mfc0 v0, MIPS_COP_0_TLB_WIRED - j ra - nop -END(mips3_cp0_wired_read) - -/* - * void mips3_cp0_wired_write(u_int32_t) - * - * Set the value of the CP0 Wired register. - */ -LEAF(mips3_cp0_wired_write) - mtc0 a0, MIPS_COP_0_TLB_WIRED - COP0_SYNC - nop - nop - j ra - nop -END(mips3_cp0_wired_write) - -/* - * u_int32_t mips_cp0_cause_read(void) - * - * Return the current value of the CP0 Cause register. - * - * Note: Not profiled, skews CPU-clock measurement (mips_mcclock.c) - * to uselessness. - */ -LEAF(mips_cp0_cause_read) - mfc0 v0, MIPS_COP_0_CAUSE - j ra - nop -END(mips_cp0_cause_read) - -/* - * void mips_cp0_cause_write(u_int32_t) - * - * Set the value of the CP0 Cause register. - */ -LEAF(mips_cp0_cause_write) - mtc0 a0, MIPS_COP_0_CAUSE - COP0_SYNC - nop - nop - j ra - nop -END(mips_cp0_cause_write) - - -/* - * u_int32_t mips_cp0_status_read(void) - * - * Return the current value of the CP0 Status register. - */ -LEAF(mips_cp0_status_read) - mfc0 v0, MIPS_COP_0_STATUS - j ra - nop -END(mips_cp0_status_read) - -/* - * void mips_cp0_status_write(u_int32_t) - * - * Set the value of the CP0 Status register. - * - * Note: This is almost certainly not the way you want to write a - * "permanent" value to to the CP0 Status register, since it gets - * saved in trap frames and restores. - */ -LEAF(mips_cp0_status_write) - mtc0 a0, MIPS_COP_0_STATUS - COP0_SYNC - nop - nop - j ra - nop -END(mips_cp0_status_write) - LEAF(mips_wait_idle) j mips_maybewait_idle li t1, 1 From owner-p4-projects@FreeBSD.ORG Sun May 25 19:45:08 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EDB5737B404; Sun, 25 May 2003 19:45: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 9580937B401 for ; Sun, 25 May 2003 19:45:07 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 41E3B43F75 for ; Sun, 25 May 2003 19:45:07 -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 h4Q2j70U032859 for ; Sun, 25 May 2003 19:45:07 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4Q2j6aE032856 for perforce@freebsd.org; Sun, 25 May 2003 19:45:06 -0700 (PDT) Date: Sun, 25 May 2003 19:45:06 -0700 (PDT) Message-Id: <200305260245.h4Q2j6aE032856@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 31879 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, 26 May 2003 02:45:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=31879 Change 31879 by peter@peter_hammer on 2003/05/25 19:44:43 Update some bits based on documentation I dug up. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/identcpu.c#10 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/identcpu.c#10 (text+ko) ==== @@ -358,17 +358,17 @@ "\022PGE36" /* 36 bit address space support */ "\023RSVD" /* Reserved, unknown */ "\024MP" /* Multiprocessor Capable */ - "\025" + "\025NX" /* Has EFER.NXE, NX (no execute pte bit) */ "\026" - "\027AMIE" /* AMD MMX Instruction Extensions */ + "\027MMX+" /* AMD MMX Instruction Extensions */ "\030MMX" "\031FXSAVE" /* FXSAVE/FXRSTOR */ "\032" "\033" "\034" "\035" - "\036" - "\037DSP" /* AMD 3DNow! Instruction Extensions */ - "\0403DNow!" + "\036LM" /* Long mode */ + "\0373DNow!+" /* AMD 3DNow! Instruction Extensions */ + "\0403DNow!" /* AMD 3DNow! Instructions */ ); } From owner-p4-projects@FreeBSD.ORG Mon May 26 06:32:16 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FDCB37B405; Mon, 26 May 2003 06:32:15 -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 2A3C237B404 for ; Mon, 26 May 2003 06:32:15 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 94E4B43F3F for ; Mon, 26 May 2003 06:32:14 -0700 (PDT) (envelope-from des@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 h4QDWE0U081851 for ; Mon, 26 May 2003 06:32:14 -0700 (PDT) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4QDWE8J081848 for perforce@freebsd.org; Mon, 26 May 2003 06:32:14 -0700 (PDT) Date: Mon, 26 May 2003 06:32:14 -0700 (PDT) Message-Id: <200305261332.h4QDWE8J081848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 31890 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, 26 May 2003 13:32:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=31890 Change 31890 by des@des.at.des.thinksec.com on 2003/05/26 06:31:28 Continue improving the new configuration parser, particularly error reporting: error messages relating to policy files now include line numbers, and the parser will warn about invalid facility names. Also fix an off-by-one bug in the option handling code. Affected files ... .. //depot/projects/openpam/include/security/openpam.h#23 edit .. //depot/projects/openpam/lib/openpam_configure.c#9 edit .. //depot/projects/openpam/lib/openpam_impl.h#26 edit .. //depot/projects/openpam/lib/openpam_load.c#18 edit .. //depot/projects/openpam/lib/openpam_readline.c#2 edit Differences ... ==== //depot/projects/openpam/include/security/openpam.h#23 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/include/security/openpam.h#22 $ + * $P4: //depot/projects/openpam/include/security/openpam.h#23 $ */ #ifndef _SECURITY_OPENPAM_H_INCLUDED @@ -126,6 +126,7 @@ #ifdef FOPEN_MAX char * openpam_readline(FILE *_f, + int *_lineno, size_t *_lenp); #endif ==== //depot/projects/openpam/lib/openpam_configure.c#9 (text+ko) ==== @@ -31,10 +31,9 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_configure.c#8 $ + * $P4: //depot/projects/openpam/lib/openpam_configure.c#9 $ */ -#include #include #include #include @@ -44,6 +43,21 @@ #include "openpam_impl.h" +const char *_pam_facility_name[PAM_NUM_FACILITIES] = { + [PAM_ACCOUNT] = "account", + [PAM_AUTH] = "auth", + [PAM_PASSWORD] = "password", + [PAM_SESSION] = "session", +}; + +const char *_pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = { + [PAM_BINDING] = "binding", + [PAM_OPTIONAL] = "optional", + [PAM_REQUIRED] = "required", + [PAM_REQUISITE] = "requisite", + [PAM_SUFFICIENT] = "sufficient", +}; + static int openpam_load_chain(pam_chain_t **, const char *, const char *); /* @@ -67,10 +81,10 @@ { /* skip current word */ - while (*str && !isspace(*str)) + while (*str && *str != ' ') ++str; /* skip whitespace */ - while (isspace(*str)) + while (*str == ' ') ++str; return (str); } @@ -84,13 +98,26 @@ const char *end; char *word; - for (end = str; *end && !isspace(*end); ++end) + for (end = str; *end && *end != ' '; ++end) /* nothing */ ; if (asprintf(&word, "%.*s", (int)(end - str), str) < 0) return (NULL); return (word); } +/* + * Return the length of the first word in a string. + */ +static int +wordlen(const char *str) +{ + int i; + + for (i = 0; str[i] && str[i] != ' '; ++i) + /* nothing */ ; + return (i); +} + typedef enum { pam_conf_style, pam_d_style } openpam_style_t; /* @@ -105,19 +132,19 @@ { pam_chain_t *this, **next; const char *p, *q; - int count, i, ret; + int count, i, lineno, ret; char *line, *name; FILE *f; if ((f = fopen(filename, "r")) == NULL) { - openpam_log(errno == ENOENT ? PAM_LOG_NOTICE : PAM_LOG_ERROR, + openpam_log(errno == ENOENT ? PAM_LOG_DEBUG : PAM_LOG_NOTICE, "%s: %m", filename); return (0); } next = chain; this = *next = NULL; - count = 0; - while ((line = openpam_readline(f, NULL)) != NULL) { + count = lineno = 0; + while ((line = openpam_readline(f, &lineno, NULL)) != NULL) { p = line; /* match service name */ @@ -130,6 +157,14 @@ } /* match facility name */ + for (i = 0; i < PAM_NUM_FACILITIES; ++i) + if (match_word(p, _pam_facility_name[i])) + break; + if (i == PAM_NUM_FACILITIES) { + openpam_log(PAM_LOG_NOTICE, + "%s(%d): invalid facility '%.*s' (ignored)", + filename, lineno, wordlen(p), p); + } if (!match_word(p, facility)) { FREE(line); continue; @@ -141,8 +176,8 @@ p = next_word(p); if (*next_word(p) != '\0') openpam_log(PAM_LOG_NOTICE, - "%s: garbage at end of 'include' line", - filename); + "%s(%d): garbage at end of 'include' line", + filename, lineno); if ((name = dup_word(p)) == NULL) goto syserr; ret = openpam_load_chain(next, name, facility); @@ -162,30 +197,23 @@ goto syserr; /* control flag */ - if (match_word(p, "required")) { - this->flag = PAM_REQUIRED; - } else if (match_word(p, "requisite")) { - this->flag = PAM_REQUISITE; - } else if (match_word(p, "sufficient")) { - this->flag = PAM_SUFFICIENT; - } else if (match_word(p, "optional")) { - this->flag = PAM_OPTIONAL; - } else if (match_word(p, "binding")) { - this->flag = PAM_BINDING; - } else { - q = next_word(p); + for (i = 0; i < PAM_NUM_CONTROL_FLAGS; ++i) + if (match_word(p, _pam_control_flag_name[i])) + break; + if (i == PAM_NUM_CONTROL_FLAGS) { openpam_log(PAM_LOG_ERROR, - "%s: invalid control flag '%.*s'", - filename, (int)(q - p), p); + "%s(%d): invalid control flag '%.*s'", + filename, lineno, wordlen(p), p); goto fail; } + this->flag = i; /* module name */ p = next_word(p); - q = next_word(p); if (*p == '\0') { openpam_log(PAM_LOG_ERROR, - "%s: missing module name", filename); + "%s(%d): missing module name", + filename, lineno); goto fail; } if ((name = dup_word(p)) == NULL) @@ -196,6 +224,7 @@ goto fail; /* module options */ + p = q = next_word(p); while (*q != '\0') { ++this->optc; q = next_word(q); @@ -204,16 +233,16 @@ if (this->optv == NULL) goto syserr; for (i = 0; i < this->optc; ++i) { - p = next_word(p); if ((this->optv[i] = dup_word(p)) == NULL) goto syserr; + p = next_word(p); } /* hook it up */ *next = this; next = &this->next; this = NULL; - ++count; + ++count; /* next please... */ FREE(line); @@ -273,13 +302,6 @@ return (0); } -const char *_pam_chain_name[PAM_NUM_CHAINS] = { - [PAM_AUTH] = "auth", - [PAM_ACCOUNT] = "account", - [PAM_SESSION] = "session", - [PAM_PASSWORD] = "password" -}; - /* * OpenPAM internal * @@ -292,12 +314,12 @@ { int i, ret; - for (i = 0; i < PAM_NUM_CHAINS; ++i) { + for (i = 0; i < PAM_NUM_FACILITIES; ++i) { ret = openpam_load_chain(&pamh->chains[i], - service, _pam_chain_name[i]); + service, _pam_facility_name[i]); if (ret == 0) ret = openpam_load_chain(&pamh->chains[i], - PAM_OTHER, _pam_chain_name[i]); + PAM_OTHER, _pam_facility_name[i]); if (ret < 0) { openpam_clear_chains(pamh->chains); return (PAM_SYSTEM_ERR); ==== //depot/projects/openpam/lib/openpam_impl.h#26 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_impl.h#25 $ + * $P4: //depot/projects/openpam/lib/openpam_impl.h#26 $ */ #ifndef _OPENPAM_IMPL_H_INCLUDED @@ -49,21 +49,21 @@ /* * Control flags */ +#define PAM_BINDING 0 #define PAM_REQUIRED 1 #define PAM_REQUISITE 2 #define PAM_SUFFICIENT 3 #define PAM_OPTIONAL 4 -#define PAM_BINDING 5 -#define PAM_NUM_CONTROLFLAGS 6 +#define PAM_NUM_CONTROL_FLAGS 5 /* - * Chains + * Facilities */ #define PAM_AUTH 0 #define PAM_ACCOUNT 1 #define PAM_SESSION 2 #define PAM_PASSWORD 3 -#define PAM_NUM_CHAINS 4 +#define PAM_NUM_FACILITIES 4 typedef struct pam_chain pam_chain_t; struct pam_chain { @@ -86,7 +86,7 @@ char *service; /* chains */ - pam_chain_t *chains[PAM_NUM_CHAINS]; + pam_chain_t *chains[PAM_NUM_FACILITIES]; pam_chain_t *current; int primitive; ==== //depot/projects/openpam/lib/openpam_load.c#18 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_load.c#17 $ + * $P4: //depot/projects/openpam/lib/openpam_load.c#18 $ */ #include @@ -170,7 +170,7 @@ { int i; - for (i = 0; i < PAM_NUM_CHAINS; ++i) + for (i = 0; i < PAM_NUM_FACILITIES; ++i) openpam_destroy_chain(policy[i]); } ==== //depot/projects/openpam/lib/openpam_readline.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_readline.c#1 $ + * $P4: //depot/projects/openpam/lib/openpam_readline.c#2 $ */ #include @@ -50,7 +50,7 @@ */ char * -openpam_readline(FILE *f, size_t *lenp) +openpam_readline(FILE *f, int *lineno, size_t *lenp) { char *line; size_t len, size; @@ -92,6 +92,9 @@ } /* eol */ if (ch == '\n') { + if (lineno != NULL) + ++*lineno; + /* remove trailing whitespace */ while (len > 0 && isspace(line[len - 1])) --len; @@ -140,6 +143,9 @@ * If a line ends in a backslash, the backslash is stripped and the next * line is appended. * + * If =lineno is not =NULL, the integer variable it points to is + * incremented every time a newline character is read. + * * If =lenp is not =NULL, the length of the line (not including the * terminating NUL character) is stored in the variable it points to. * From owner-p4-projects@FreeBSD.ORG Mon May 26 18:05:28 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 869EF37B404; Mon, 26 May 2003 18:05:27 -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 3359337B401 for ; Mon, 26 May 2003 18:05:27 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E044643F75 for ; Mon, 26 May 2003 18:05:25 -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 h4R15P0U033971 for ; Mon, 26 May 2003 18:05:25 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4R15PSE033955 for perforce@freebsd.org; Mon, 26 May 2003 18:05:25 -0700 (PDT) Date: Mon, 26 May 2003 18:05:25 -0700 (PDT) Message-Id: <200305270105.h4R15PSE033955@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 31910 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, 27 May 2003 01:05:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=31910 Change 31910 by marcel@marcel_nfs on 2003/05/26 18:04:37 IFC 31909 Affected files ... .. //depot/projects/ia64/lib/libthr/arch/i386/i386/_setcurthread.c#5 integrate .. //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#5 integrate .. //depot/projects/ia64/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_create.c#7 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_init.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_private.h#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_stack.c#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/early-adopter/article.sgml#7 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#11 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/intro.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/i386/proc-i386.sgml#5 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/ia64/article.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/ia64/proc-ia64.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/share/sgml/release.dsl#8 integrate .. //depot/projects/ia64/sys/alpha/alpha/busdma_machdep.c#14 integrate .. //depot/projects/ia64/sys/alpha/include/bus.h#9 integrate .. //depot/projects/ia64/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/ia64/sys/amd64/include/bus_dma.h#3 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.c#11 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.reg#10 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.seq#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_inline.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_osm.h#8 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_pci.c#10 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.c#11 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.h#7 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.reg#7 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.seq#6 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_inline.h#6 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_osm.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_pci.c#8 integrate .. //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#17 integrate .. //depot/projects/ia64/sys/i386/include/bus_dma.h#5 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#71 integrate .. //depot/projects/ia64/sys/ia64/ia64/pmap.c#64 integrate .. //depot/projects/ia64/sys/ia64/ia64/support.s#8 integrate .. //depot/projects/ia64/sys/sparc64/include/bus.h#13 integrate .. //depot/projects/ia64/sys/sparc64/include/iommuvar.h#10 integrate .. //depot/projects/ia64/sys/sparc64/pci/psycho.c#22 integrate .. //depot/projects/ia64/sys/sparc64/sbus/sbus.c#13 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/bus_machdep.c#16 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/iommu.c#16 integrate .. //depot/projects/ia64/tools/tools/tinderbox/tbmaster.pl#11 integrate .. //depot/projects/ia64/usr.bin/usbhidctl/usbhid.c#6 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/info/show.c#12 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/lib/lib.h#9 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/lib/str.c#3 integrate Differences ... ==== //depot/projects/ia64/lib/libthr/arch/i386/i386/_setcurthread.c#5 (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/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.7 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.8 2003/05/25 22:40:57 mtm Exp $ */ #include @@ -87,13 +87,15 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thr) +_set_curthread(ucontext_t *uc, struct pthread *thr, int *err) { union descriptor desc; void **ldt_entry; int ldt_index; int error; + *err = 0; + /* * If we are setting up the initial thread, the gs register * won't be setup for the current thread. In any case, we @@ -106,8 +108,11 @@ if (ldt_inited == NULL) ldt_init(); - if (ldt_free == NULL) - abort(); + if (ldt_free == NULL) { + /* Concurrent thread limit reached */ + *err = curthread->error = EAGAIN; + return (NULL); + } /* * Pull one off of the free list and update the free list pointer. ==== //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.2 2003/05/25 06:49:19 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include #include @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_special.tp = (uint64_t)thread; else ==== //depot/projects/ia64/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.2 2003/04/03 03:34:50 jake Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include #include @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_global[6] = (uint64_t)thread; else ==== //depot/projects/ia64/lib/libthr/thread/thr_create.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/libthr/thread/thr_create.c,v 1.7 2003/05/25 08:35:37 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.9 2003/05/26 00:37:07 mtm Exp $ */ #include #include @@ -116,7 +116,17 @@ new_thread->ctx.uc_stack.ss_sp = new_thread->stack; new_thread->ctx.uc_stack.ss_size = pattr->stacksize_attr; makecontext(&new_thread->ctx, _thread_start, 0); - new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread); + new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread, &ret); + if (ret != 0) { + if (pattr->stackaddr_attr == NULL) { + STACK_LOCK; + _thread_stack_free(new_thread->stack, + pattr->stacksize_attr, pattr->guardsize_attr); + STACK_UNLOCK; + } + free(new_thread); + return (ret); + } /* Copy the thread attributes: */ memcpy(&new_thread->attr, pattr, sizeof(struct pthread_attr)); ==== //depot/projects/ia64/lib/libthr/thread/thr_gc.c#5 (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/libthr/thread/thr_gc.c,v 1.4 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.5 2003/05/26 00:37:07 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -113,6 +113,7 @@ * the caller to pthread_create() and has not * been destroyed yet: */ + STACK_LOCK; if (pthread->attr.stackaddr_attr == NULL && pthread->stack != NULL) { _thread_stack_free(pthread->stack, @@ -120,6 +121,7 @@ pthread->attr.guardsize_attr); pthread->stack = NULL; } + STACK_UNLOCK; /* * If the thread has not been detached, leave ==== //depot/projects/ia64/lib/libthr/thread/thr_init.c#5 (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/libthr/thread/thr_init.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.7 2003/05/25 22:40:57 mtm Exp $ */ /* Allocate space for global thread variables here: */ @@ -162,6 +162,7 @@ size_t len; int mib[2]; sigset_t set; + int error; struct clockinfo clockinfo; struct sigaction act; @@ -221,7 +222,7 @@ memset(pthread, 0, sizeof(struct pthread)); _thread_initial = pthread; - pthread->arch_id = _set_curthread(NULL, pthread); + pthread->arch_id = _set_curthread(NULL, pthread, &error); /* Get our thread id. */ thr_self(&pthread->thr_id); ==== //depot/projects/ia64/lib/libthr/thread/thr_join.c#4 (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/libthr/thread/thr_join.c,v 1.5 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.6 2003/05/26 00:28:49 mtm Exp $ */ #include #include @@ -82,13 +82,13 @@ _SPINLOCK(&pthread->lock); break; } - THREAD_LIST_UNLOCK; /* Check if the thread was not found or has been detached: */ if (thread == NULL || ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) { if (thread != NULL) _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ESRCH; goto out; @@ -98,6 +98,7 @@ /* Multiple joiners are not supported. */ /* XXXTHR - support multiple joiners. */ _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ENOTSUP; goto out; @@ -112,16 +113,16 @@ /* Keep track of which thread we're joining to: */ curthread->join_status.thread = pthread; - _SPINUNLOCK(&pthread->lock); while (curthread->join_status.thread == pthread) { PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ _thread_critical_exit(curthread); + _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); - /* XXX - For correctness reasons. */ - DEAD_LIST_LOCK; + _thread_critical_enter(curthread); } @@ -133,14 +134,6 @@ if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; _thread_critical_exit(curthread); - /* - * XXX - Must unlock here, instead of doing it earlier, - * because it could lead to a deadlock. If the thread - * we are joining is waiting on this lock we would - * deadlock if we released this lock before unlocking the - * joined thread. - */ - DEAD_LIST_UNLOCK; } else { /* * The thread exited (is dead) without being detached, and no @@ -158,6 +151,7 @@ _SPINUNLOCK(&pthread->lock); if (pthread_cond_signal(&_gc_cond) != 0) PANIC("Cannot signal gc cond"); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; } ==== //depot/projects/ia64/lib/libthr/thread/thr_private.h#5 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.12 2003/05/25 08:48:11 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.14 2003/05/26 00:37:07 mtm Exp $ */ #ifndef _THR_PRIVATE_H @@ -578,6 +578,14 @@ ; #endif +SCLASS spinlock_t stack_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += _SPINLOCK_INITIALIZER +#endif +; +#define STACK_LOCK _SPINLOCK(&stack_lock); +#define STACK_UNLOCK _SPINUNLOCK(&stack_lock); + /* List of all threads: */ SCLASS TAILQ_HEAD(, pthread) _thread_list #ifdef GLOBAL_PTHREAD_PRIVATE @@ -711,7 +719,7 @@ void _cond_wait_backout(pthread_t); int _find_thread(pthread_t); pthread_t _get_curthread(void); -void *_set_curthread(ucontext_t *, struct pthread *); +void *_set_curthread(ucontext_t *, struct pthread *, int *); void _retire_thread(void *arch_id); void *_thread_stack_alloc(size_t, size_t); void _thread_stack_free(void *, size_t, size_t); ==== //depot/projects/ia64/lib/libthr/thread/thr_stack.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/lib/libthr/thread/thr_stack.c,v 1.2 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.3 2003/05/26 00:37:07 mtm Exp $ */ #include #include @@ -144,7 +144,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - DEAD_LIST_LOCK; + STACK_LOCK; if ((spare_stack = LIST_FIRST(&_dstackq)) != NULL) { /* Use the spare stack. */ @@ -153,7 +153,7 @@ } /* Unlock the garbage collector mutex. */ - DEAD_LIST_UNLOCK; + STACK_UNLOCK; } /* * The user specified a non-default stack and/or guard size, so try to @@ -165,7 +165,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - DEAD_LIST_LOCK; + STACK_LOCK; LIST_FOREACH(spare_stack, &_mstackq, qe) { if (spare_stack->stacksize == stack_size && @@ -177,7 +177,7 @@ } /* Unlock the garbage collector mutex. */ - DEAD_LIST_UNLOCK; + STACK_UNLOCK; } /* Check if a stack was not allocated from a stack cache: */ ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/early-adopter/article.sgml#7 (text+ko) ==== @@ -19,24 +19,28 @@ %release; + +X"> +X"> + ]>
- &os; 5.0-RELEASE ½é´üÍøÍѼԤΤ¿¤á¤Î¼ê°ú¤­ + &os; &release.current; ½é´üÍøÍѼԤΤ¿¤á¤Î¼ê°ú¤­ &os; ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à - $FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.6 2003/02/11 18:56:46 rushani Exp $ + $FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.7 2003/05/26 15:32:33 rushani Exp $ 2002 @@ -44,44 +48,56 @@ &os; ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à + + + ¤³¤Îµ­»ö¤Ç¤Ï¡¢&os; &release.current; ¤Î¸½¾õ¤ò + &release.5x; ·ÏÎó¤Î¥ê¥ê¡¼¥¹¤Þ¤¿¤Ï &os; °ìÈ̤ËÉÔ´·¤ì¤Ê + ÍøÍѼԤÎΩ¾ì¤«¤é¾ÜºÙ¤Ë½Ò¤Ù¤Æ¤¤¤Þ¤¹¡£ + ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¤ÎÇطʤȤʤë»ö¾ð¡¢ + ¿·µ¡Ç½¤Î¥Ï¥¤¥é¥¤¥È¡¢½é´üÍøÍѼԤ¬Ä¾Ì̤¹¤ë²ÄǽÀ­¤Î¤¢¤ë¾ã³²¤òµ­ºÜ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤Þ¤¿¡¢4-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Î¾­Íè¤Î¥ê¥ê¡¼¥¹·×²è¤È + ´û¸¤Î¥·¥¹¥Æ¥à¤ò¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¤¿¤á¤Î¥Ò¥ó¥È¤ò¤¤¤¯¤Ä¤«¾Ò²ð¤·¤Æ¤¤¤Þ¤¹¡£ + ¤Ï¤¸¤á¤Ë - &os; 5.0 ¤Ï¡¢2 ǯ¤Ö¤ê¤Ë¸ø³«¤µ¤ì¤ë¿·¤·¤¤¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£ + &os; &release.5x; ¤Ï¡¢2 ǯ¤Ö¤ê¤Ë¸ø³«¤µ¤ì¤ë¿·¤·¤¤¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£ ¤µ¤Þ¤¶¤Þ¤Ê¿·µ¡Ç½¤Ë²Ã¤¨¤Æ¡¢¥·¥¹¥Æ¥à¥¢¡¼¥­¥Æ¥¯¥Á¥ã¥ì¥Ù¥ë¤Ç¤Î³«È¯¤â ¿ô¿¤¯È¿±Ç¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤·¤³¤Î¿ÊÊâ¤Ï¡¢¤Þ¤À¹­¤¯»î¸³¤µ¤ì¤Æ¤¤¤Ê¤¤ ¿·¤·¤¤¥³¡¼¥É¤¬Èó¾ï¤Ë¿¤¯Æ³Æþ¤µ¤ì¤¿·ë²Ì¤Ç¤â¤¢¤ê¤Þ¤¹¡£ - ¤½¤Î¤¿¤á¡¢¸½ºß¤Î 4.X ¥ê¥ê¡¼¥¹¤ÈÈæ³Ó¤¹¤ë¤È¡¢ - 5.0 ¤Ï°ÂÄêÀ­¤äÀ­Ç½¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïµ¡Ç½À­¤Ê¤É¤ÎÅÀ¤ÇÎô¤Ã¤Æ¤¤¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ + ¤½¤Î¤¿¤á¡¢¸½ºß¤Î &release.4x; ¥ê¥ê¡¼¥¹¤ÈÈæ³Ó¤¹¤ë¤È¡¢ + ½é´ü¤Î &release.5x; ¥ê¥ê¡¼¥¹¤Ï°ÂÄêÀ­¤äÀ­Ç½¡¢ + ¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïµ¡Ç½À­¤Ê¤É¤ÎÅÀ¤ÇÎô¤Ã¤Æ¤¤¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ - &a.re; ¤Ï¤³¤Î¤è¤¦¤ÊÍýͳ¤«¤é¡¢²¿¤â¹Í¤¨¤º¤Ë¸Å¤¤ - &os; ¥ê¥ê¡¼¥¹¤ò 5.0 ¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¤Î¤Ï¤ª¤¹¤¹¤á¤·¤Þ¤»¤ó¡£ - º£¤Þ¤Ç¤É¤ª¤ê¤ÎÆ°ºî¤ò´üÂÔ¤¹¤ë¥æ¡¼¥¶¤Ë¤ÏÆäˡ¢Åöʬ¤Î´Ö¤Ï - 4.X ¥ê¥ê¡¼¥¹ (4.7-RELEASE ¤ä¼¡²ó¸ø³«Í½Äê¤Î - 4.8-RELEASE ¤Ê¤É) ¤ÎÍøÍѤò¤ª¤¹¤¹¤á¤·¤Þ¤¹¡£¤½¤Î¤è¤¦¤Ê¥æ¡¼¥¶¤¬ - 5.X ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò¹Í¤¨¤ë»þ´ü¤È¤·¤Æ¤Ï¡¢ + &a.re; ¤Ï¤³¤Î¤è¤¦¤ÊÍýͳ¤«¤é¡¢¿·¤·¤¤¥ê¥ê¡¼¥¹¤Ë¤ª¤¤¤ÆȯÀ¸¤·¤¦¤ëÌäÂê¤ò + ¥æ¡¼¥¶¤¬¼«³Ð¤·¤Æ (¤½¤·¤ÆÂн褹¤ë½àÈ÷¤¬¤Ç¤­¤Æ) ¤¤¤Ê¤¤¸Â¤ê¡¢ + ¸Å¤¤ &os; ¥ê¥ê¡¼¥¹¤ò &release.current; ¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¤Î¤ò + ÌÀ³Î¤ËÈó¿ä¾©¤È¤·¤Æ¤¤¤Þ¤¹¡£ + Æäˡ¢º£¤Þ¤Ç¤É¤ª¤ê¤ÎÆ°ºî¤ò´üÂÔ¤¹¤ë¿µ½Å¤Ê¥æ¡¼¥¶¤Ë¤Ï¡¢¤·¤Ð¤é¤¯¤Î´Ö¤Ï + (4.8-RELEASE ¤Î¤è¤¦¤Ê) &release.4x; ¥ê¥ê¡¼¥¹¤Ç±¿ÍѤ¹¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹¡£ + &release.5x; ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò¹Í¤¨¤ë»þ´ü¤È¤·¤Æ¤Ï¡¢ ¤ª¤½¤é¤¯ 5-STABLE ³«È¯¥Ö¥é¥ó¥Á¤¬ºîÀ®¤µ¤ì¤¿¸å¤¬Å¬Åö¤Ç¤·¤ç¤¦¡£ - ¤³¤ì¤Ï 5.1-RELEASE ¤« 5.2-RELEASE ¤Î¸ø³«¤¢¤¿¤ê¤Ë¤Ê¤ë¸«¹þ¤ß¤Ç¤¹¡£ + ¤³¤ì¤Ï 5.2-RELEASE ¤Î¸ø³«¤¢¤¿¤ê¤Ë¤Ê¤ë¸«¹þ¤ß¤Ç¤¹¡£ - (&os; 5.0 ¤Ï¤¤¤ï¤æ¤ëÍñ·ÜÌäÂê¤òÊú¤¨¤Æ¤¤¤Þ¤¹¡£ - ¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï³§¤¬²Äǽ¤Ê¸Â¤ê 5.0-RELEASE - ¤ò°ÂÄê¤Ç¿®ÍêÀ­¤Î¹â¤¤¤â¤Î¤Ë¤·¤è¤¦¤È¹Í¤¨¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ + (&os; &release.5x; ¤Ï¤¤¤ï¤æ¤ëÍñ·ÜÌäÂê¤òÊú¤¨¤Æ¤¤¤Þ¤¹¡£ + ¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï³§¤¬²Äǽ¤Ê¸Â¤ê¥ê¥ê¡¼¥¹¤ò + °ÂÄê¤Ç¿®ÍêÀ­¤Î¹â¤¤¤â¤Î¤Ë¤·¤è¤¦¤È¹Í¤¨¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¤½¤Î°ÂÄêÀ­¤È¿®ÍêÀ­¤òÆÀ¤ë¤Ë¤Ï¡¢¹­¤¤ÈϰϤǤλ¡¢ Æä˥·¥¹¥Æ¥à¤Î¿·¤·¤¤µ¡Ç½¤ËÂФ¹¤ë»î¸³¤¬É¬ÍפǤ¹¡£ ¤·¤«¤·¡¢¤¿¤¯¤µ¤ó¤Î¥æ¡¼¥¶¤Ë¥·¥¹¥Æ¥à¤ò»î¸³¤·¤Æ¤â¤é¤¦¤¿¤á¤Ë¤Ï¡¢ ¼ÂºÝ¤Î¤È¤³¤íºÇ½é¤Î¥ê¥ê¡¼¥¹¤òºîÀ®¤·¡¢ ÇÛÉÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹!) - ¤³¤Îʸ½ñ¤Ç¤Ï¡¢&os; 5.0-RELEASE ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤È±¿ÍѤˤª¤±¤ë + ¤³¤Îʸ½ñ¤Ç¤Ï¡¢&os; &release.current; ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤È±¿ÍѤˤª¤±¤ë ¤¤¤¯¤Ä¤«¤ÎÌäÂêÅÀ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤º¡¢&os; ¤Î¥ê¥ê¡¼¥¹¹©Äø¤Î³µÍפˤĤ¤¤Æ²òÀ⤷¡¢ - ¼¡¤Ë &os; 5.0 ¤ÎÆÃÉ®¤¹¤Ù¤­¿·µ¡Ç½¤Î¤¤¤¯¤Ä¤«¤È¡¢ + ¼¡¤Ë &os; &release.current; ¤ÎÆÃÉ®¤¹¤Ù¤­¿·µ¡Ç½¤Î¤¤¤¯¤Ä¤«¤È¡¢ ÉÔÃí°Õ¤«¤é¥æ¡¼¥¶¤¬´Ù¤ê¤ä¤¹¤¤¤È»×¤ï¤ì¤ëÌäÂê¤Ë¤Ä¤¤¤Æ¾Ò²ð¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢4-STABLE ¥Ù¡¼¥¹¤Î¥ê¥ê¡¼¥¹¤ò»È¤¤Â³¤±¤è¤¦¤È¹Í¤¨¤Æ¤¤¤ë¥æ¡¼¥¶¸þ¤±¤Ë¡¢ º£¸å¤Î 4-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Ë¤ª¤±¤ëû´ü¡¦Ãæ´üŪ¤Ê¥×¥é¥ó¤Ë¤Ä¤¤¤Æ¤â¿¨¤ì¤Þ¤¹¡£ - ºÇ¸å¤Ë¡¢4.X ¥·¥¹¥Æ¥à¤ò 5.0 + ºÇ¸å¤Ë¡¢&release.4x; ¥·¥¹¥Æ¥à¤ò &release.current; ¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ëºÝ¤ÎÃí°ÕÅÀ¤ò¼¨¤·¤Þ¤¹¡£ @@ -102,12 +118,12 @@ ¤Ç¤¢¤ëÄøÅٻ¤µ¤ì¤¿µ¡Ç½¤À¤±¤¬Äɲ䵤ì¤Þ¤¹¡£ ¸½»þÅÀ¤Ç³èȯ¤Ë³«È¯¤µ¤ì¤Æ¤¤¤ë STABLE ¥Ö¥é¥ó¥Á¤Ï 1 ¤Ä¤À¤±¤Ç¤¹¡£ ¤½¤Î¥Ö¥é¥ó¥Á¤Ï 4-STABLE ¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢ - &os; 4.X + &os; &release.4x; ¥ê¥ê¡¼¥¹¤Ï¤¹¤Ù¤Æ¤³¤Î¥Ö¥é¥ó¥Á¤«¤éºîÀ®¤µ¤ì¤Þ¤·¤¿¡£ ¤³¤Î¥Ö¥é¥ó¥Á¤Ï CVS ¥ê¥Ý¥¸¥È¥ê¤Ç RELENG_4 ¤È¤¤¤¦¥¿¥°¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡£ - &os; 5.0 ¤Ï CURRENT ¥Ö¥é¥ó¥Á¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ + &os; 5.0 ¤È 5.1 ¤Ï CURRENT ¥Ö¥é¥ó¥Á¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ CURRENT ¥Ö¥é¥ó¥Á¤«¤é¤Î¥ê¥ê¡¼¥¹¤Ï 2 ǯ¤Ö¤ê¤Ç¤¹ (Á°²ó¤Î &os; 4.0 ¤Ï 2000 ǯ 3 ·î¤Ç¤·¤¿)¡£ @@ -117,29 +133,33 @@ °ÊÁ°¤Î 2 ¤Ä¤Î stable ¥Ö¥é¥ó¥Á (3-STABLE ¤ª¤è¤Ó 4-STABLE) ¤Ï¡¢ ¤½¤ì¤¾¤ì¤Î x.0 ¥ê¥ê¡¼¥¹¤Îľ¸å (¤½¤ì¤¾¤ì 3.0 ¤È 4.0) ¤Ë ºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¤³¤ÎÊýË¡¤Ç¤Ï¡¢ - ¿·¤·¤¤ STABLE ¥Ö¥é¥ó¥Á¤¬ºîÀ®¤µ¤ì¤Æ¤«¤é¡¢ - CURRENT ¥Ö¥é¥ó¥Á¤È¤½¤Î¿·¤·¤¤¥Ö¥é¥ó¥Á¤¬°ÂÄꤹ¤ë¤Þ¤Ç¤Ë + ¿·¤·¤¤ STABLE ¥Ö¥é¥ó¥Á¤¬ºîÀ®¤µ¤ì¤ëÁ°¤Ë¡¢ + CURRENT ¥Ö¥é¥ó¥Á¤¬°ÂÄꤹ¤ë ½½Ê¬¤Ê»þ´Ö¤¬³ÎÊݤǤ­¤Ê¤¤¤È¤¤¤¦ÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤¿¤á¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤Ï¡¢ ³Æ¥Ö¥é¥ó¥Á¤¬¤½¤Î¥Ö¥é¥ó¥Á¤Î»ý¤ÄÀ­³Ê¤ËÂФ·¤Æ Èæ³ÓŪ°ÂÄꤷ¤¿¾õÂ֤ˤʤ俤³¤È¤ò³Îǧ¤·¤Æ¤«¤é¡¢ CVS ¥ê¥Ý¥¸¥È¥ê¤Ë 5-STABLE ¥Ö¥é¥ó¥Á¤òºîÀ®¤¹¤ë¤³¤È¤òͽÄꤷ¤Æ¤¤¤Þ¤¹¡£ - ¤ª¤½¤é¤¯¥Ö¥é¥ó¥Á¤¬ºîÀ®¤µ¤ì¤ë¤Þ¤Ç¤Ë¡¢5.X + ¤ª¤½¤é¤¯¥Ö¥é¥ó¥Á¤¬ºîÀ®¤µ¤ì¤ë¤Þ¤Ç¤Ë¡¢&release.5x; ·ÏÎ󤫤é¥ê¥ê¡¼¥¹ÈǤ¬¤¤¤¯¤Ä¤«¸ø³«¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£ - 5-STABLE ¥Ö¥é¥ó¥Á¤ÎÅоì¤Ï¡¢5.1-RELEASE ¤« 5.2-RELEASE + 5-STABLE ¥Ö¥é¥ó¥Á¤ÎÅоì¤Ï¡¢5.2-RELEASE ¤Î¸å¤¢¤¿¤ê¤Ë¤Ê¤ë¤È¸«¹þ¤ó¤Ç¤¤¤Þ¤¹¡£ &os; ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¹©Äø¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï¡¢ ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¤Î¥¦¥§¥Ö¥Ú¡¼¥¸ - ¤ª¤è¤Ó¡¢&os; ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¤È¤¤¤¦µ­»ö¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ + ¤ª¤è¤Ó¡¢&os; ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥° + ¤È¤¤¤¦µ­»ö¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ + ¤­¤¿¤ë 5-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Ë¤Ä¤¤¤Æ¤ÎÆõ­»ö¹à¤Ï + 5-STABL ³«È¯¥Ö¥é¥ó¥Á¤Î¥í¡¼¥É¥Þ¥Ã¥× + ¤È¤¤¤¦µ­»ö¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ ¿·µ¡Ç½ - &os; 5.0 ¤ÎÂ礭¤ÊÌ¥ÎϤΠ1 ¤Ä¤Ï¡¢¿ô¿¤¯¤Î¿·µ¡Ç½¤Ç¤¹¡£ + &os; &release.5x; ¤ÎÂ礭¤ÊÌ¥ÎϤΠ1 ¤Ä¤Ï¡¢¿ô¿¤¯¤Î¿·µ¡Ç½¤Ç¤¹¡£ ¤³¤ì¤é¤Î¿·¤·¤¤µ¡Ç½¤Ï¡¢&os; 4-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Ë¤ÏÅý¹ç¤Ç¤­¤Ê¤«¤Ã¤¿ Â礭¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¥ì¥Ù¥ë¤ÎÊѹ¹¤âÅöÁ³¤Ê¤¬¤é´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹ (°ìÊý¤Ç¿·¤·¤¤¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ä¥æ¡¼¥¶¥é¥ó¥É¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ê¤É¡¢ @@ -149,7 +169,8 @@ SMPng: ¼¡À¤Âå¤Ë¸þ¤±¤¿ SMP ¥Þ¥·¥óÂбþ¤Ç¤¹ (³«È¯Ãæ)¡£ - ¸½ºß¤Ï¡¢¥«¡¼¥Í¥ë¤Ë¤ª¤±¤ë¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤ÎƱ»þ¼Â¹Ô¤ËÉôʬŪ¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¸½ºß¤Ï¡¢¥«¡¼¥Í¥ë¤Ë¤ª¤±¤ë¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤ÎƱ»þ¼Â¹Ô¤ËÉôʬŪ¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Îºî¶È¤Ï¸½ºß¿Ê¹ÔÃæ¤Ç¤¹¡£ @@ -157,7 +178,10 @@ (Kernel Scheduled Entities; KSE) ¤Ï¡¢¥¹¥±¥¸¥å¡¼¥é¥¢¥¯¥Æ¥£¥Ù¡¼¥·¥ç¥ó (Scheduler Activations) ¤Î¼êË¡¤ÈƱÍͤΡ¢ 1 ¸Ä¤Î¥×¥í¥»¥¹¤¬Ê£¿ô¤Î¥«¡¼¥Í¥ë¥ì¥Ù¥ë¥¹¥ì¥Ã¥É¤ò - »ý¤Æ¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Îµ¡¹½¤Ç¤¹¡£ + »ý¤Æ¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Îµ¡¹½¤Ç¤¹¡£¤³¤Îµ¡¹½¤òÍøÍѤ·¤Æ + ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥æ¡¼¥¶¥é¥ó¥É¥×¥í¥°¥é¥à¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢ + (¼Â¸³Åª¤Ê) libkse ¥é¥¤¥Ö¥é¥ê¤È + libthr ¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£ @@ -168,7 +192,7 @@ GCC: ¥³¥ó¥Ñ¥¤¥é¥Ä¡¼¥ë¥Á¥§¥¤¥ó¤¬ GCC 2.95.X ¥Ù¡¼¥¹¤Î¤â¤Î¤«¤é¡¢ - GCC 3.2.1 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + GCC 3.2.2 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ @@ -190,7 +214,11 @@ UFS2: UFS2 ¥ª¥ó¥Ç¥£¥¹¥¯¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¿·¤¿¤ËÄɲ䵤ì¤Þ¤·¤¿¡£ - ¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ëñ°Ì¤Ç¤Î³Èĥ°À­¤ÈµðÂç¤Ê¥Õ¥¡¥¤¥ë¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ëñ°Ì¤Ç¤Î³Èĥ°À­¤ÈµðÂç¤Ê¥Õ¥¡¥¤¥ë¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤Þ¤¿¡¢UFS2 ¤Ï &man.newfs.8; ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + pc98 ¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤ª¤¤¤Æ¡¢ + &man.sysinstall.8; ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç + UFS2 ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¤Þ¤¹¡£ @@ -199,14 +227,14 @@ - ¤µ¤é¤Ë¾Ü¤·¤¤¿·µ¡Ç½¤Î¥ê¥¹¥È¤Ï¡¢&os; 5.0 - ¤Î¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ + ¤µ¤é¤Ë¾Ü¤·¤¤¿·µ¡Ç½¤Î¥ê¥¹¥È¤Ï¡¢&os; &release.prev; ¤È + &os; &release.current; ¤Î¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ ½é´ü¥ê¥ê¡¼¥¹¤ò»È¤¦¾å¤Ç¤Î·çÅÀ - &os; 5.0 ¤Ë¤ÏÀâÌÀ¤·¤¿¤è¤¦¤Ê¿·µ¡Ç½¤¬Äɲ䵤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ + &os; &release.5x; ¤Ë¤ÏÀâÌÀ¤·¤¿¤è¤¦¤Ê¿·µ¡Ç½¤¬Äɲ䵤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ÌäÂ꤬¤¢¤Ã¤¿¤ê¡¢°Õ¿Þ¤É¤ª¤ê¤ËÆ°¤«¤Ê¤¤¤È¤¤¤¦Éôʬ¤â¤¤¤¯¤Ä¤«Â¸ºß¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Â¿¤¯¤Îµ¡Ç½¤¬¤Þ¤À³«È¯Ãæ¤Ç¤¢¤ë¤³¤È¤Ëµ¯°ø¤·¤¿¤â¤Î¤Ç¤¹¡£ ¼¡¤Ë¡¢ÌäÂê¤Î¤¢¤ëÉôʬ¤Î¤¤¤¯¤Ä¤«¤ò¤Þ¤È¤á¤¿¥ê¥¹¥È¤ò¼¨¤·¤Þ¤¹¡£ @@ -215,7 +243,9 @@ ¤¿¤È¤¨¤Ð¡¢¾å¤Î¿·µ¡Ç½¥ê¥¹¥È¤Ë¤¢¤ë SMPng ¤ä KSE ¤Ê¤É¡¢ - ³«È¯¤¬¤Þ¤À½ª¤ï¤Ã¤Æ¤¤¤Ê¤¤µ¡Ç½¤¬Â¿¤¯¤¢¤ê¤Þ¤¹¡£ + ³«È¯¤¬¤Þ¤À½ª¤ï¤Ã¤Æ¤¤¤Ê¤¤µ¡Ç½¤¬Â¿¤¯¤¢¤ê¤Þ¤¹¡£ + ¤³¤ì¤é¤Îµ¡Ç½¤Ï¥Æ¥¹¥È¤È¼Â¸³ÍÑÅӤˤϸþ¤¤¤Æ¤¤¤ë¤â¤Î¤Î¡¢ + À½ÉÊÉʼÁ¤Ë¤Ï㤷¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ @@ -237,6 +267,14 @@ + ÍøÍѼԤÈÊݼéôÅö¼Ô¤¬ÉÔ­¤·¤Æ¤¤¤ë¤¿¤á¡¢ + &os; ¥Ù¡¼¥¹¥·¥¹¥Æ¥à¤Î°ìÉô¤¬ÇËþ¾õÂ֤˴٤ê¤Þ¤·¤¿¡£ + ¤³¤ì¤é (¤Î»È¤ï¤ì¤Ê¤¤¤³¤È¤Î¿¤¤µ¡Ç½) ¤Ï¸½ºßºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + ÆÃÉ®¤¹¤Ù¤­»öÎã¤Ë¡¢a.out ·Á¼°¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¡¢ + XNS ¥Í¥Ã¥È¥ï¡¼¥­¥ó¥°Âбþ¡¢X-10 ¥³¥ó¥È¥í¡¼¥é¥É¥é¥¤¥Ð¤¬µó¤²¤é¤ì¤Þ¤¹¡£ + + + &os; 4.0 ¤ÇÀµ¤·¤¯Æ°ºî¤·¤Æ¤¤¤¿Â¿¤¯¤Î ports/packages ¤¬¡¢ &os; 5.0 ¤Ç¤Ï¹½ÃۤǤ­¤Ê¤¯¤Ê¤Ã¤¿¤ê¡¢ Àµ¤·¤¯Æ°ºî¤·¤Ê¤¯¤Ê¤Ã¤¿¤ê¤·¤Æ¤¤¤Þ¤¹¡£ @@ -245,8 +283,8 @@ - &os; 5.0 ¤Ï CURRENT ¤«¤é 2 ǯ¤Ö¤ê¤Ë¥ê¥ê¡¼¥¹¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£ - ¤³¤ì¤Ï¤½¤Î¿¤¯¤Î¿·µ¡Ç½¤¬¡¢°ìÈ̸þ¤±¤Ë¹­¤¯¸ø³«¤µ¤ì¤ë½é¤á¤Æ¤Îµ¡²ñ¤Ë¤Ê¤ê¤Þ¤¹¡£ + &os; &release.5x; ¤Î¿¤¯¤Î¿·µ¡Ç½¤¬¡¢ + °ìÈ̸þ¤±¤Ë¹­¤¯¸ø³«¤µ¤ì¤ë½é¤á¤Æ¤Îµ¡²ñ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢(SMPng ¤Ê¤É¤Î) ¤³¤Î¤è¤¦¤Ê¿·µ¡Ç½¤Ë¤è¤Ã¤Æ¡¢ Â礭¤¯Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ @@ -263,7 +301,7 @@ &os; 5.0 ¤Ï¡¢¤³¤Î¤è¤¦¤Ê -STABLE ¥Ö¥é¥ó¥Á¤Î»ý¤Ä°ÂÄêÀ­¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó (ÌõÃí: &os; 5.0 ¤Ø¤Î¿·µ¡Ç½Äɲäϡ¢¡Ö°ÂÄꤷ¤¿¸å¤ËÅý¹ç¡×¤È¤¤¤¦ -STABLE ¥Ö¥é¥ó¥Á¤Î´·½¬¤Ë§¤Ã¤Æ¤¤¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤Ç¤¹)¡£ - (5-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Ï¡¢5.1-RELEASE ¤â¤·¤¯¤Ï 5.2-RELEASE + (5-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Ï¡¢5.2-RELEASE ¤Î¸å¤¢¤¿¤ê¤ËºîÀ®¤µ¤ì¤ëͽÄê¤Ç¤¹)¡£ @@ -272,14 +310,14 @@ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/index.html">¥Ï¥ó¥É¥Ö¥Ã¥¯ ¤È FAQ - ¤Î¤è¤¦¤Êʸ½ñ¤Ï &os; 5.0 + ¤Î¤è¤¦¤Êʸ½ñ¤Ï &os; &release.5x; ¤Þ¤Ç¤Ë²Ã¤¨¤é¤ì¤¿ºÇ¶á¤ÎÊѹ¹¤òÈ¿±Ç¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤Î¤è¤¦¤Ë¥·¥¹¥Æ¥à¤Î°ÂÄêÀ­¤Ë±Æ¶Á¤¹¤ë·çÅÀ¤¬Â¿¤¯¤¢¤ë¤³¤È¤«¤é¡¢ - 5.X ·ÏÎ󤬽½Ê¬¤Ë°ÂÄꤹ¤ë¤Þ¤Ç¤Î´Ö¡¢ + &release.5x; ·ÏÎ󤬽½Ê¬¤Ë°ÂÄꤹ¤ë¤Þ¤Ç¤Î´Ö¡¢ ¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤Ï¡¢ ¸½ºß¤Îµ¡Ç½À­¡¦°ÂÄêÀ­¤ò½ÅÍ׻뤹¤ë¥µ¥¤¥È¤ä¥æ¡¼¥¶¤ËÂФ·¤Æ 4-STABLE ¥Ö¥é¥ó¥Á¤«¤é¸ø³«¤µ¤ì¤ë¥ê¥ê¡¼¥¹ÈǤòÍøÍѤ¹¤ë¤³¤È¤ò¿ä¾©¤·¤Æ¤¤¤Þ¤¹¡£ @@ -289,25 +327,25 @@ 4-STABLE ¥Ö¥é¥ó¥Á¤ËÂФ¹¤ëº£¸å¤ÎͽÄê &os; 5.0 ¤¬¸ø³«¤µ¤ì¤Æ¤â¡¢4-STABLE ¥Ö¥é¥ó¥Á¤Î³«È¯¤¬½ªÎ»¤¹¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ - ¤³¤Î¥Ö¥é¥ó¥Á¤«¤é¤Ï¾¯¤Ê¤¯¤È¤â 1 ²ó¡¢4.8-RELEASE ¤¬¸ø³«¤µ¤ì¤Þ¤¹¡£ - 4.8-RELEASE ¤Î¸ø³«¤Ï¡¢¸½»þÅÀ¤Ç¤Ï 2003 ǯ 3 ·î 1 Æü¤ÎͽÄê¤Ç¤¹¡£ - - ¼¹É®»þÅÀ¤Ç¤Ï¡¢¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤Ï - 4-STABLE ¥Ö¥é¥ó¥Á¤«¤é¤Î (4.8 °Ê¹ß¤Î) ¥ê¥ê¡¼¥¹¤Î¸ø³«¤Ë¤Ä¤¤¤Æ¡¢ - ¤Ï¤Ã¤­¤ê¤È¤·¤¿·×²è¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤¿¤À¤·¡¢4.9-RELEASE¡¢¤¢¤ë¤¤¤Ï - 4.10-RELEASE ¤Î¸ø³«¤Ï½½Ê¬¤Ë¤¢¤ê¤¨¤Þ¤¹¡£4-STABLE ¥Ö¥é¥ó¥Á¤«¤é¤Î - ¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÍ×ÁǤ¬Íí¤ó¤Ç¤­¤Þ¤¹¡£ + ¼ÂºÝ¤Ë¡¢&os; 4.8-RELEASE ¤Ï 5.0-RELEASE ¤Î + 2 ¥õ·î¸å¤Î 2003 ǯ 4 ·î¤Ë¸ø³«¤µ¤ì¤Þ¤·¤¿¡£ + ¤³¤Î¥Ö¥é¥ó¥Á¤«¤é¤Ï¡¢ºÇÄã¤Ç¤â¤â¤¦ 1 ²ó¤Î¥ê¥ê¡¼¥¹¡¢ + ¤¹¤Ê¤ï¤Á 4.9-RELEASE ¤¬¸ø³«¤µ¤ì¤ë¤Ç¤·¤ç¤¦ + (¸½ºß¤Ï 2003 ǯ¤Î²Æ¤òͽÄꤷ¤Æ¤¤¤Þ¤¹)¡£ + 4.10-RELEASE ¤¬¸ø³«¤µ¤ì¤ë²ÄǽÀ­¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¹¡£ + 4-STABLE ¥Ö¥é¥ó¥Á¤«¤é¤Î¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎÍ×ÁǤ¬Íí¤ó¤Ç¤­¤Þ¤¹¡£ ºÇ¤â½ÅÍפʤΤϡ¢5-STABLE ¥Ö¥é¥ó¥Á¤ÎºîÀ®¤È¡¢¤½¤Î°ÂÄêÀ­¤Ç¤¹¡£ CURRENT ¤¬ 5-STABLE ¥Ö¥é¥ó¥Á¤òºîÀ®¤Ç¤­¤ë¤Û¤É¤Ë°ÂÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ ¥ê¥ê¡¼¥¹¤Ï 4-STABLE ¥Ö¥é¥ó¥Á¤«¤éºîÀ®¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ ¤Þ¤¿ 4-STABLE ¤Ë¤Ï¡¢4-STABLE ¥Ö¥é¥ó¥Á¤«¤é¤ÎºÇ½ª¥ê¥ê¡¼¥¹¤¬ ¹ðÃΤµ¤ì¤ë¤Þ¤Ç¡¢³«È¯¼Ô¤ÎȽÃǤȥê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¤Î - ¥Ý¥ê¥·¤Ë´ð¤Å¤¤¤Æ HEAD ¤«¤é¿·µ¡Ç½¤¬Åý¹ç¤µ¤ì¤Þ¤¹¡£ + ¥Ý¥ê¥·¤Ë´ð¤Å¤¤¤Æ HEAD ¤«¤é¿·µ¡Ç½¤¬Åý¹ç¤µ¤ì¤Þ¤¹¡£ - ¤¢¤ëÄøÅ٤Ǥ¹¤¬¡¢¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤Ï¡¢ + ¤¢¤ëÄøÅ٤Ǥ¹¤¬¡¢¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤Ï + ³«È¯¼Ô¥³¥ß¥å¥Ë¥Æ¥£¤ÈƱÍÍ¤Ë¥×¥í¥¸¥§¥¯¥ÈÁ´ÂΤȤ·¤Æ¡¢ ¾­Íè¤Î 4-STABLE ¥ê¥ê¡¼¥¹¤ËÂФ¹¤ë¥æ¡¼¥¶¤Î¥Ë¡¼¥º¤ò¹Íθ¤¹¤ë¤Ä¤â¤ê¤Ç¤¹¡£ ¤¿¤À¤·¤½¤Î¥Ë¡¼¥º¤Ï¡¢¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°ºî¶È¤ËɬÍפÊÏ«ÎÏ¡¦»ñ¸» - (¿ÍŪ»ñ¸»¡¢·×»»µ¡»ñ¸»¡¢¥ß¥é¡¼¥¢¡¼¥«¥¤¥ÖÍÆÎÌ) + (Æä˳«È¯¼Ô¤Î»þ´Ö¡¢·×»»µ¡»ñ¸»¡¢¥ß¥é¡¼¥¢¡¼¥«¥¤¥ÖÍÆÎÌ) ¤Ë¸«¹ç¤Ã¤¿¤â¤Î¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£ &a.security-officer; ¤Ï &os; ¥¦¥§¥Ö¥µ¥¤¥È¤Î @@ -321,11 +359,11 @@ - ¥¢¥Ã¥×¥°¥ì¡¼¥É¤ÎºÝ¤ÎÃí°ÕÅÀ + &os; &release.4x; ¤«¤é¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ëºÝ¤ÎÃí°ÕÅÀ ¤³¤ÎÀá¤Ç¤Ï¸½ºß &os; ¥·¥¹¥Æ¥à¤òÍøÍѤ·¤Æ¤¤¤ëÊý¸þ¤±¤Ë¡¢ - &os; 4.X ¥·¥¹¥Æ¥à¤ò - 5.X ¥·¥¹¥Æ¥à¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ëºÝ¤Î + &os; &release.4x; ¥·¥¹¥Æ¥à¤ò + &release.5x; ¥·¥¹¥Æ¥à¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ëºÝ¤Î Ãí°ÕÅÀ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ &os; ¤ò¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¾ì¹ç¤Ï¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤¿¤¤¥Ð¡¼¥¸¥ç¥ó¤Î ¥ê¥ê¡¼¥¹¥Î¡¼¥È¤È errata ʸ½ñ¤òÆɤळ¤È¡¢¤Þ¤¿¡¢ @@ -339,15 +377,18 @@ ¤¹¤Ù¤Æ¤ò¥Ð¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¡¢ºÆ¥Õ¥©¡¼¥Þ¥Ã¥È¡¢ºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢ ºÇ¸å¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤òŸ³«¤¹¤ë¤³¤È¤Ç¤·¤ç¤¦¡£ ¤³¤ÎÊýË¡¤Ï¡¢¸ß´¹À­¤¬¤Ê¤«¤Ã¤¿¤ê¡¢¸Å¤¯¤Æ»È¤¨¤Ê¤¤¼Â¹Ô¥Õ¥¡¥¤¥ë¤ä - ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤Ã¤Æ¡¢¿·¤·¤¤¥·¥¹¥Æ¥à¤¬±øÀ÷¤µ¤ì¤ëÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤Ã¤Æ¡¢¿·¤·¤¤¥·¥¹¥Æ¥à¤¬±øÀ÷¤µ¤ì¤ëÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤Þ¤¿¡¢¿·µ¬¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ + ¥Ç¥Õ¥©¥ë¥È¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë + UFS2 ¤Î¿·µ¡Ç½¤Î²¸·Ã¤ò¼õ¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¸½»þÅÀ¤Î &man.sysinstall.8; ¤Î¥Ð¥¤¥Ê¥ê¥¢¥Ã¥×¥°¥ì¡¼¥Éµ¡Ç½¤Ï¡¢ ¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¤ò¤Þ¤¿¤°¥¢¥Ã¥×¥°¥ì¡¼¥É¤ËÂФ·¤Æ ½½Ê¬¤Ë»î¸³¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤½¤Î¤¿¤á¡¢¤³¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤Ï¤ª¤¹¤¹¤á¤Ç¤­¤Þ¤»¤ó¡£ Æäˡ¢¥Ð¥¤¥Ê¥ê¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ï - &os; 4.X ¤Ë¸ºß¤·¤Æ - &os 5.0 ¤Ë¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò¥·¥¹¥Æ¥à¤Ë¿ô¿¤¯»Ä¤·¤Þ¤¹¡£ + &os; &release.4x; ¤Ë¸ºß¤·¤Æ + &os; &release.5x; ¤Ë¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò¥·¥¹¥Æ¥à¤Ë¿ô¿¤¯»Ä¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¸Å¤¤¥Õ¥¡¥¤¥ë¤Ï²¿¤é¤«¤ÎÌäÂê¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ i386 ¤ª¤è¤Ó pc98 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î 4-STABLE ¤Ç¤Ï¡¢ @@ -372,7 +413,7 @@ ¥«¡¼¥Í¥ë¤Ç¤Ï¤Ê¤¯¡¢Ä̾ï¤Î GENERIC ¥«¡¼¥Í¥ë¤¬ »ÈÍѤǤ­¤ë¤È¤¤¤¦ÅÀ¤¬¤¢¤²¤é¤ì¤ë¤Ç¤·¤ç¤¦¡£ ÍýÏÀŪ¤Ë¤Ï¡¢Microsoft Windows NT 4 ¥¤¥ó¥¹¥È¡¼¥ë CDROM - ¤¬µ¯Æ°¤Ç¤­¤ë¥·¥¹¥Æ¥à¤Ê¤é¡¢&os; 5.0 CDROM ¤âÆ°ºî¤¹¤ë¤Ï¤º¤Ç¤¹¡£ + ¤¬µ¯Æ°¤Ç¤­¤ë¥·¥¹¥Æ¥à¤Ê¤é¡¢&os; &release.5x; CDROM ¤âÆ°ºî¤¹¤ë¤Ï¤º¤Ç¤¹¡£ @@ -404,8 +445,8 @@ ¤â¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ ¤³¤ÎÊѹ¹¤Ëµ¤¤Å¤¯¥æ¡¼¥¶¤Ï¤´¤¯°ìÉô¤Ç¤·¤ç¤¦¡£ - ´ðËÜŪ¤Ë¡¢½¾Íè¤Î 4.X - ¤Ç»È¤Ã¤Æ¤¤¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ï 5.X ¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ + ´ðËÜŪ¤Ë¡¢½¾Íè¤Î &release.4x; + ¤Ç»È¤Ã¤Æ¤¤¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ï &release.5x; ¤Ç¤âÆ°ºî¤·¤Þ¤¹¡£ ¤¿¤À¤·¡¢¤³¤ì¤Ë¤Ï compat4x ÇÛÉÛʪ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ ¤Ä¤Þ¤ê¡¢¸Å¤¤ ports ¤ò»È¤¦¤³¤È¤Ï¤ª¤½¤é¤¯²Äǽ¤Ç¤¹¡£ @@ -418,16 +459,43 @@ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ê¥Í¡¼¥à¤·¤Æ¤ª¤¯¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£ ¤³¤¦¤·¤Ê¤¤¤È¡¢(ÆÃ¤Ë C++ ¥×¥í¥°¥é¥à¤Ç) ¥³¥ó¥Ñ¥¤¥é¤¬¸Å¤¤¥Ø¥Ã¥À¤È ¿·¤·¤¤¥Ø¥Ã¥À¤òº®¤¼¤Æ»ÈÍѤ·¤Æ¤·¤Þ¤¤¡¢¤ª¤«¤·¤Ê·ë²Ì¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ + + MAKEDEV ¤¬¤â¤Ï¤äÄ󶡤µ¤ì¤Ê¤¯¤Ê¤ê¡¢ + ¤Þ¤¿É¬Íפʤ¯¤Ê¤ê¤Þ¤·¤¿¡£ + FreeBSD &release.5x; ¤Ï¡¢É¬Íפ˱þ¤¸¤Æ¥Ç¥Ð¥¤¥¹¥Î¡¼¥É¤ò¼«Æ°Åª¤ËºîÀ®¤¹¤ë + ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ + ¾ÜºÙ¤Ï &man.devfs.5; ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ + + UFS2 ¤¬ + &man.newfs.8; ¤òÍøÍѤ·¤ÆºîÀ®¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î + ¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥£¥¹¥¯¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + ¤Þ¤¿¡¢pc98 ¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤ª¤¤¤Æ¡¢ + &man.sysinstall.8; ¤¬¥Ç¥£¥¹¥¯¥é¥Ù¥ëºîÀ®²èÌ̤ǺîÀ®¤¹¤ë + ¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + &os; &release.4x; ¤Ï UFS1 ¤Î¤ß¤òǧ¼±¤¹¤ë (UFS2 ¤Ïǧ¼±¤·¤Þ¤»¤ó) ¤Î¤Ç¡¢ + &release.5x; ¤È &release.4x; + ¤ÎξÊý¤¬¥¢¥¯¥»¥¹¤¹¤ëɬÍפΤ¢¤ë¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï + UFS1 ¤ÇºîÀ®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¤³¤ì¤Ï &man.newfs.8; ¤Î ¥ª¥×¥·¥ç¥ó¤òÍøÍѤ¹¤ë¤« + &man.sysinstall.8; ¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ëºîÀ®²èÌ̤ǻؼ¨¤¹¤ë¤³¤È¤Ç + »ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ï¡¢Ã±°ì¤Î¥Þ¥·¥ó¤Ç + &os; &release.5x; ¤È &os; &release.4x; + ¤ÎÁÐÊý¤òµ¯Æ°¤¹¤ë¥·¥¹¥Æ¥à¤Ç¤·¤Ð¤·¤ÐȯÀ¸¤·¤Þ¤¹¡£ + ¥Ç¥£¥¹¥¯¥Õ¥©¡¼¥Þ¥Ã¥È´Ö¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÊÑ´¹¤¹¤ëÊýË¡¤Ï + (¥Ð¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºÆÅÙºîÀ®¤·¡¢ + ¥Ð¥Ã¥¯¥¢¥Ã¥×¤òŸ³«¤¹¤ë°Ê³°¤Ë) ¸ºß¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¤Þ¤È¤á - &os; 5.0 ¤Ë¤ÏÌ¥ÎÏŪ¤Êµ¡Ç½¤¬¤¿¤¯¤µ¤ó´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ + &os; &release.current; ¤Ë¤ÏÌ¥ÎÏŪ¤Êµ¡Ç½¤¬¤¿¤¯¤µ¤ó´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¸½»þÅÀ¤Ç¤Ï¡¢¤½¤ì¤¬¤¹¤Ù¤Æ¤Î³§¤µ¤ó¤Î´üÂԤ˱þ¤¨¤é¤ì¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤³¤Îʸ½ñ¤Ç¤Ï¡¢¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¤ÎÇØ·Ê¤È - 5.X ·ÏÎó¤ÎÆÃÉ®¤¹¤Ù¤­¿·µ¡Ç½¤Î°ìÉô¤Ë¤Ä¤¤¤Æ¡¢ + &release.5x; ·ÏÎó¤ÎÆÃÉ®¤¹¤Ù¤­¿·µ¡Ç½¤Î°ìÉô¤Ë¤Ä¤¤¤Æ¡¢ ½é´ü¥ê¥ê¡¼¥¹¤ò»È¤¦¾å¤Ç¤Î¤¤¤¯¤Ä¤«¤Î·çÅÀ¤Ë¤Ä¤¤¤Æ¤È¤ê¤¢¤²¤Þ¤·¤¿¡£ ¤Þ¤¿¡¢¾­Íè¤Î 4-STABLE ³«È¯¥Ö¥é¥ó¥Á¤Î·×²è¤È¡¢ ½é´ü¥ê¥ê¡¼¥¹¤òÍøÍѤ¹¤ë¿Í¸þ¤±¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Î¥Ò¥ó¥È¤âÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#11 (text+ko) ==== @@ -28,13 +28,13 @@ this file to fix "missed" conversions are likely to break the build. - $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.12 2003/04/26 19:48:15 hrs Exp $ - Original revision: 1.143 + $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.13 2003/05/26 15:32:33 rushani Exp $ + Original revision: 1.155 --> - $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.12 2003/04/26 19:48:15 hrs Exp $ + $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.13 2003/05/26 15:32:33 rushani Exp $ Âбþ¥Ï¡¼¥É¥¦¥§¥¢ @@ -94,7 +94,10 @@ Promise Fasttrak-33, -66, -100, -100 TX2/TX4, -133 TX2/TX2000 - Promise Ultra-33, -66, -100, -133 TX2/TX2000 + Promise SATA150 TX2/TX4 ¥·¥ê¥¢¥ë ATA/150 + + + Promise Ultra-33, -66, -100, -133 TX2/TX2000/TX4000 ServerWorks ROSB4 ATA33 @@ -842,10 +845,12 @@ - LSI Logic Fusion/MP + IBM / Adaptec ServeRAID ¥·¥ê¡¼¥º (ips ¥É¥é¥¤¥Ð) + + LSI Logic Fusion/MP architecture Fiber Channel controllers (mpt ¥É¥é¥¤¥Ð) - + LSI FC909, FC929 @@ -1602,16 +1607,19 @@ Billionton USB100, USB100LP, USB100EL, USBE100 - Corega Ether FEther USB-TX, FEther USB-TXS + Corega Ether FEther USB-T, FEther USB-TX, FEther USB-TXS D-Link DSB-650, DSB-650TX, DSB-650TX-PNA + Elecom LD-USBL/TX + + Elsa Microlink USB2Ethernet - I/O Data USB ETTX + I-O Data USB ETTX Kingston KNU101TX @@ -1620,7 +1628,10 @@ LinkSys USB10T, USB10TA, USB10TX, USB100TX, USB100H1 - Melco Inc. LUA-TX, LUA2-TX + Melco LUA-TX, LUA2-TX + + + Planex UE-200TX Siemens Speedstream @@ -1700,6 +1711,19 @@ + RealTek RTL8150 ¥Ù¡¼¥¹¤Î USB Ethernet NIC + (&man.rue.4; ¥É¥é¥¤¥Ð) + + + + GREEN HOUSE GH-USB100B + + + Melco LUA-KTX + + + + ASIX Electronics AX88172 ¥Ù¡¼¥¹¤Î USB Ethernet NIC (&man.axe.4; ¥É¥é¥¤¥Ð) @@ -1877,7 +1901,7 @@ Intel Pro/100 S ¥Ç¥¹¥¯¥È¥Ã¥×¡¢¥µ¡¼¥Ð¡¢¥Ç¥å¥¢¥ë¥Ý¡¼¥È¥µ¡¼¥Ð¥¢¥À¥×¥¿ - + ¿¤¯¤Î Intel À½¥Þ¥¶¡¼¥Ü¡¼¥É¤ËÆ⢤µ¤ì¤Æ¤¤¤ë Ethernet NIC @@ -1980,16 +2004,16 @@ 3C575TX/575B/XFE575BT/575C/656/656B/656C (Cardbus) - + Dell Optiplex GX1 Æ⢤Π3C918 - + Dell On-board 3C920 - + Dell Precision Æ⢤Π3C905B - + Dell Latitude ¥é¥Ã¥×¥È¥Ã¥×¥É¥Ã¥­¥ó¥°¥¹¥Æ¡¼¥·¥ç¥ó¤ËÆ⢤µ¤ì¤Æ¤¤¤ë 3C905-TX @@ -2138,12 +2162,12 @@ SysKonnect SK-9D21 ¤ª¤è¤Ó 9D41 - + DELL PowerEdge 2550 ¥µ¡¼¥Ð¤ËÆ⢤µ¤ì¤Æ¤¤¤ë Gigabit Ethernet NIC - - IBM x235 server ¤ËÆ⢤µ¤ì¤Æ¤¤¤ë gigabit Ethernet NIC + + IBM x235 server ¤ËÆ⢤µ¤ì¤Æ¤¤¤ë Gigabit Ethernet NIC @@ -2644,73 +2668,76 @@ - PCI ¥Ù¡¼¥¹¤Î¥Þ¥ë¥Á¥Ý¡¼¥È¥·¥ê¥¢¥ë¥Ü¡¼¥É (&man.puc.4; + PCI ¥Ù¡¼¥¹¤Î¥Þ¥ë¥Á¥Ý¡¼¥È¥·¥ê¥¢¥ë¥Ü¡¼¥É (&man.puc.4; ¥É¥é¥¤¥Ð) - + Actiontech 56K PCI - + Avlab Technology, PCI IO 2S ¤ª¤è¤Ó PCI IO 4S - + Comtrol RocketPort 550 - + Decision Computers PCCOM 4-port ¥·¥ê¥¢¥ë¤ª¤è¤Ó¥Ç¥å¥¢¥ë¥Ý¡¼¥È RS232/422/485 - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon May 26 19:12:49 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 17B8E37B404; Mon, 26 May 2003 19:12: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 A3AF237B401 for ; Mon, 26 May 2003 19:12:48 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E87C43F75 for ; Mon, 26 May 2003 19:12:48 -0700 (PDT) (envelope-from jmallett@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 h4R2Cm0U037370 for ; Mon, 26 May 2003 19:12:48 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4R2Clvq037367 for perforce@freebsd.org; Mon, 26 May 2003 19:12:47 -0700 (PDT) Date: Mon, 26 May 2003 19:12:47 -0700 (PDT) Message-Id: <200305270212.h4R2Clvq037367@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31912 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, 27 May 2003 02:12:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=31912 Change 31912 by jmallett@jmallett_dalek on 2003/05/26 19:12:44 Put input constraints that we actually need to have the value of into the input field. Affected files ... .. //depot/projects/mips/sys/mips/include/atomic.h#17 edit Differences ... ==== //depot/projects/mips/sys/mips/include/atomic.h#17 (text+ko) ==== @@ -107,8 +107,8 @@ asmop "\n\t" \ "sc %[temp], %[p]\n\t" \ "beqz %[temp], 1b\n\t" \ - : [val] "=&r"(val), [temp] "=&r"(temp), [p] "+m"(*p) \ - : \ + : [temp] "=&r"(temp), [p] "+m"(*p) \ + : [val] "r"(val) \ : "memory" \ ); \ } @@ -195,8 +195,8 @@ asmop "\n\t" \ "scd %[temp], %[p]\n\t" \ "beqz %[temp], 1b\n\t" \ - : [val] "=&r"(val), [temp] "=&r"(temp), [p] "+m"(*p) \ - : \ + : [temp] "=&r"(temp), [p] "+m"(*p) \ + : [val] "r"(val) \ : "memory" \ ); \ } From owner-p4-projects@FreeBSD.ORG Mon May 26 19:23:02 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0C21637B404; Mon, 26 May 2003 19:23: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 9FFAE37B401 for ; Mon, 26 May 2003 19:23:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3571143F93 for ; Mon, 26 May 2003 19:23:01 -0700 (PDT) (envelope-from jmallett@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 h4R2N10U037724 for ; Mon, 26 May 2003 19:23:01 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4R2N04p037721 for perforce@freebsd.org; Mon, 26 May 2003 19:23:00 -0700 (PDT) Date: Mon, 26 May 2003 19:23:00 -0700 (PDT) Message-Id: <200305270223.h4R2N04p037721@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31913 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, 27 May 2003 02:23:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=31913 Change 31913 by jmallett@jmallett_dalek on 2003/05/26 19:22:21 Typo. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#4 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ } trap_ids[] = { { 0, "Int", "Interrupt" }, { 1, "Mod", "TLB modification" }, - { 2, "TLBL", "TLB (fetch" }, + { 2, "TLBL", "TLB (fetch)" }, { 3, "TLBS", "TLB (store)" }, { 4, "AdEL", "Address error (fetch)" }, { 5, "AdES", "Address error (store)" }, From owner-p4-projects@FreeBSD.ORG Tue May 27 00:42:32 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8DA5337B404; Tue, 27 May 2003 00:42: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 25B1137B401 for ; Tue, 27 May 2003 00:42:31 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26A7643F85 for ; Tue, 27 May 2003 00:42:30 -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 h4R7gU0U059422 for ; Tue, 27 May 2003 00:42:30 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4R7gT9S059419 for perforce@freebsd.org; Tue, 27 May 2003 00:42:29 -0700 (PDT) Date: Tue, 27 May 2003 00:42:29 -0700 (PDT) Message-Id: <200305270742.h4R7gT9S059419@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 31918 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, 27 May 2003 07:42:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=31918 Change 31918 by marcel@marcel_nfs on 2003/05/27 00:41:31 IFC @31917 Affected files ... .. //depot/projects/ia64/sys/alpha/alpha/busdma_machdep.c#15 integrate .. //depot/projects/ia64/sys/alpha/include/bus.h#10 integrate .. //depot/projects/ia64/sys/amd64/amd64/busdma_machdep.c#3 integrate .. //depot/projects/ia64/sys/amd64/include/bus_dma.h#4 integrate .. //depot/projects/ia64/sys/dev/advansys/advansys.c#5 integrate .. //depot/projects/ia64/sys/dev/advansys/adwcam.c#5 integrate .. //depot/projects/ia64/sys/dev/aha/aha.c#8 integrate .. //depot/projects/ia64/sys/dev/ahb/ahb.c#6 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_osm.c#10 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_osm.c#10 integrate .. //depot/projects/ia64/sys/dev/amd/amd.c#3 integrate .. //depot/projects/ia64/sys/dev/buslogic/bt.c#8 integrate .. //depot/projects/ia64/sys/dev/dpt/dpt_scsi.c#8 integrate .. //depot/projects/ia64/sys/dev/ida/ida.c#10 integrate .. //depot/projects/ia64/sys/dev/mpt/mpt_freebsd.c#7 integrate .. //depot/projects/ia64/sys/dev/trm/trm.c#7 integrate .. //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#18 integrate .. //depot/projects/ia64/sys/i386/include/bus_dma.h#6 integrate .. //depot/projects/ia64/sys/ia64/ia64/busdma_machdep.c#13 integrate .. //depot/projects/ia64/sys/ia64/ia64/exception.s#25 integrate .. //depot/projects/ia64/sys/ia64/ia64/unwind.c#7 integrate .. //depot/projects/ia64/sys/ia64/include/bus.h#11 integrate .. //depot/projects/ia64/sys/powerpc/include/bus.h#10 integrate .. //depot/projects/ia64/sys/powerpc/powerpc/busdma_machdep.c#13 integrate .. //depot/projects/ia64/sys/sparc64/include/bus.h#14 integrate .. //depot/projects/ia64/sys/sparc64/pci/psycho.c#23 integrate .. //depot/projects/ia64/sys/sparc64/sbus/sbus.c#14 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/bus_machdep.c#17 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/iommu.c#17 integrate Differences ... ==== //depot/projects/ia64/sys/alpha/alpha/busdma_machdep.c#15 (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/alpha/alpha/busdma_machdep.c,v 1.36 2003/05/26 04:00:51 scottl Exp $ + * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.37 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -769,7 +769,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/ia64/sys/alpha/include/bus.h#10 (text+ko) ==== @@ -67,7 +67,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/alpha/include/bus.h,v 1.19 2003/05/26 04:00:51 scottl Exp $ */ +/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.20 2003/05/27 04:59:56 scottl Exp $ */ #ifndef _ALPHA_BUS_H_ #define _ALPHA_BUS_H_ @@ -482,6 +482,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -615,7 +616,7 @@ /* * Perform a syncronization operation on the given map. */ -void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); +void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); #define bus_dmamap_sync(dmat, dmamap, op) \ if ((dmamap) != NULL) \ _bus_dmamap_sync(dmat, dmamap, op) ==== //depot/projects/ia64/sys/amd64/amd64/busdma_machdep.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.44 2003/05/26 04:00:51 scottl Exp $ + * $FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.45 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -702,7 +702,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/ia64/sys/amd64/include/bus_dma.h#4 (text+ko) ==== @@ -67,7 +67,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.20 2003/05/26 04:00:51 scottl Exp $ */ +/* $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.21 2003/05/27 04:59:56 scottl Exp $ */ #ifndef _AMD64_BUS_DMA_H_ #define _AMD64_BUS_DMA_H_ @@ -91,6 +91,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -224,7 +225,7 @@ /* * Perform a syncronization operation on the given map. */ -void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); +void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); #define bus_dmamap_sync(dmat, dmamap, op) \ if ((dmamap) != NULL) \ _bus_dmamap_sync(dmat, dmamap, op) ==== //depot/projects/ia64/sys/dev/advansys/advansys.c#5 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/advansys/advansys.c,v 1.23 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/advansys/advansys.c,v 1.24 2003/05/27 04:59:56 scottl Exp $ */ /* * Ported from: @@ -568,7 +568,7 @@ scsiq.q2.vm_id = 0; if (nsegments != 0) { - int op; + bus_dmasync_op_t op; scsiq.q1.data_addr = dm_segs->ds_addr; scsiq.q1.data_cnt = dm_segs->ds_len; @@ -1130,7 +1130,7 @@ LIST_REMOVE(&ccb->ccb_h, sim_links.le); untimeout(adv_timeout, ccb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/advansys/adwcam.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/advansys/adwcam.c,v 1.14 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/advansys/adwcam.c,v 1.15 2003/05/27 04:59:56 scottl Exp $ */ /* * Ported from: @@ -255,7 +255,7 @@ } if (nseg != 0) { - int op; + bus_dmasync_op_t op; acb->queue.data_addr = dm_segs[0].ds_addr; acb->queue.data_cnt = ccb->csio.dxfer_len; @@ -1334,7 +1334,7 @@ ccb = acb->ccb; untimeout(adwtimeout, acb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/aha/aha.c#8 (text+ko) ==== @@ -55,7 +55,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aha/aha.c,v 1.46 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/aha/aha.c,v 1.47 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -1115,7 +1115,7 @@ if (nseg != 0) { aha_sg_t *sg; bus_dma_segment_t *end_seg; - int op; + bus_dmasync_op_t op; end_seg = dm_segs + nseg; @@ -1254,7 +1254,7 @@ } if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/ahb/ahb.c#6 (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/ahb/ahb.c,v 1.27 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/ahb/ahb.c,v 1.28 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -788,7 +788,7 @@ LIST_REMOVE(&ccb->ccb_h, sim_links.le); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; @@ -912,7 +912,7 @@ if (nseg != 0) { ahb_sg_t *sg; bus_dma_segment_t *end_seg; - int op; + bus_dmasync_op_t op; end_seg = dm_segs + nseg; ==== //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_osm.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ * * $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic79xx_osm.c#26 $ * - * $FreeBSD: src/sys/dev/aic7xxx/aic79xx_osm.c,v 1.11 2003/05/04 00:20:07 gibbs Exp $ + * $FreeBSD: src/sys/dev/aic7xxx/aic79xx_osm.c,v 1.12 2003/05/27 04:59:57 scottl Exp $ */ #include @@ -215,7 +215,7 @@ untimeout(ahd_timeout, (caddr_t)scb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - /*XXX bus_dmasync_op_t*/int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; @@ -1056,7 +1056,7 @@ scb->sg_count = 0; if (nsegments != 0) { void *sg; - /*bus_dmasync_op_t*/int op; + bus_dmasync_op_t op; u_int i; /* Copy the segments into our SG list */ ==== //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_osm.c#10 (text+ko) ==== @@ -30,7 +30,7 @@ * * $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic7xxx_osm.c#12 $ * - * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx_osm.c,v 1.34 2003/05/03 23:55:38 gibbs Exp $ + * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx_osm.c,v 1.35 2003/05/27 04:59:57 scottl Exp $ */ #include @@ -284,7 +284,7 @@ untimeout(ahc_timeout, (caddr_t)scb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - /*XXX bus_dmasync_op_t*/int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; @@ -1107,7 +1107,7 @@ if (nsegments != 0) { struct ahc_dma_seg *sg; bus_dma_segment_t *end_seg; - /*XXX bus_dmasync_op_t*/int op; + bus_dmasync_op_t op; end_seg = dm_segs + nsegments; ==== //depot/projects/ia64/sys/dev/amd/amd.c#3 (text+ko) ==== @@ -30,7 +30,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/amd/amd.c,v 1.17 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/amd/amd.c,v 1.18 2003/05/27 04:59:57 scottl Exp $ */ /* @@ -328,7 +328,7 @@ if (nseg != 0) { struct amd_sg *sg; bus_dma_segment_t *end_seg; - int op; + bus_dmasync_op_t op; end_seg = dm_segs + nseg; @@ -1888,7 +1888,7 @@ ("SRBdone - TagNumber %d\n", pSRB->TagNumber)); if ((pccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/buslogic/bt.c#8 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/buslogic/bt.c,v 1.37 2003/04/10 23:50:05 mux Exp $ + * $FreeBSD: src/sys/dev/buslogic/bt.c,v 1.38 2003/05/27 04:59:57 scottl Exp $ */ /* @@ -1471,7 +1471,7 @@ if (nseg != 0) { bt_sg_t *sg; bus_dma_segment_t *end_seg; - int op; + bus_dmasync_op_t op; end_seg = dm_segs + nseg; @@ -1608,7 +1608,7 @@ } if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/dpt/dpt_scsi.c#8 (text+ko) ==== @@ -43,7 +43,7 @@ * arrays that span controllers (Wow!). */ -#ident "$FreeBSD: src/sys/dev/dpt/dpt_scsi.c,v 1.41 2003/04/10 23:50:05 mux Exp $" +#ident "$FreeBSD: src/sys/dev/dpt/dpt_scsi.c,v 1.42 2003/05/27 04:59:57 scottl Exp $" #define _DPT_C_ @@ -746,7 +746,7 @@ if (nseg != 0) { dpt_sg_t *sg; bus_dma_segment_t *end_seg; - int op; + bus_dmasync_op_t op; end_seg = dm_segs + nseg; @@ -1695,7 +1695,7 @@ ccb = dccb->ccb; untimeout(dpttimeout, dccb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/ida/ida.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ida/ida.c,v 1.26 2003/04/10 23:50:06 mux Exp $ + * $FreeBSD: src/sys/dev/ida/ida.c,v 1.27 2003/05/27 04:59:57 scottl Exp $ */ /* @@ -324,7 +324,7 @@ { struct ida_hardware_qcb *hwqcb; struct ida_qcb *qcb; - int op; + bus_dmasync_op_t op; int s, error; s = splbio(); @@ -377,7 +377,7 @@ { struct ida_hardware_qcb *hwqcb; struct ida_qcb *qcb; - int op; + bus_dmasync_op_t op; struct bio *bp; bp = bioq_first(&ida->bio_queue); @@ -501,7 +501,7 @@ * finish up command */ if (qcb->flags & DMA_DATA_TRANSFER) { - int op; + bus_dmasync_op_t op; op = qcb->flags & DMA_DATA_IN ? BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE; ==== //depot/projects/ia64/sys/dev/mpt/mpt_freebsd.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/mpt/mpt_freebsd.c,v 1.9 2003/04/10 23:50:06 mux Exp $ */ +/* $FreeBSD: src/sys/dev/mpt/mpt_freebsd.c,v 1.10 2003/05/27 04:59:57 scottl Exp $ */ /* * FreeBSD/CAM specific routines for LSI '909 FC adapters. * FreeBSD Version. @@ -224,7 +224,7 @@ if (nseg > MPT_NSGL_FIRST(mpt)) { int i, nleft = nseg; u_int32_t flags; - int op; + bus_dmamap_sync_t op; SGE_CHAIN32 *ce; mpt_req->DataLength = ccb->csio.dxfer_len; @@ -305,7 +305,7 @@ } else if (nseg > 0) { int i; u_int32_t flags; - int op; + bus_dmamap_sync_t op; mpt_req->DataLength = ccb->csio.dxfer_len; flags = MPI_SGE_FLAGS_SIMPLE_ELEMENT; @@ -878,7 +878,7 @@ untimeout(mpttimeout, ccb, ccb->ccb_h.timeout_ch); if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmamap_sync_t op; if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { op = BUS_DMASYNC_POSTREAD; ==== //depot/projects/ia64/sys/dev/trm/trm.c#7 (text+ko) ==== @@ -62,7 +62,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/trm/trm.c,v 1.7 2003/04/10 23:50:06 mux Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/trm/trm.c,v 1.8 2003/05/27 04:59:58 scottl Exp $"); #include @@ -2504,7 +2504,7 @@ target_id = pSRB->pccb->ccb_h.target_id; target_lun = pSRB->pccb->ccb_h.target_lun; if ((pccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { - int op; + bus_dmasync_op_t op; if ((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) op = BUS_DMASYNC_POSTREAD; else ==== //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#18 (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/i386/i386/busdma_machdep.c,v 1.44 2003/05/26 04:00:51 scottl Exp $ + * $FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.45 2003/05/27 04:59:58 scottl Exp $ */ #include @@ -702,7 +702,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/ia64/sys/i386/include/bus_dma.h#6 (text+ko) ==== @@ -67,7 +67,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/i386/include/bus_dma.h,v 1.19 2003/05/26 04:00:51 scottl Exp $ */ +/* $FreeBSD: src/sys/i386/include/bus_dma.h,v 1.20 2003/05/27 04:59:58 scottl Exp $ */ #ifndef _I386_BUS_DMA_H_ #define _I386_BUS_DMA_H_ @@ -91,6 +91,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -224,7 +225,7 @@ /* * Perform a syncronization operation on the given map. */ -void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); +void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); #define bus_dmamap_sync(dmat, dmamap, op) \ if ((dmamap) != NULL) \ _bus_dmamap_sync(dmat, dmamap, op) ==== //depot/projects/ia64/sys/ia64/ia64/busdma_machdep.c#13 (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/busdma_machdep.c,v 1.23 2003/04/10 23:03:33 mux Exp $ + * $FreeBSD: src/sys/ia64/ia64/busdma_machdep.c,v 1.24 2003/05/27 04:59:58 scottl Exp $ */ #include @@ -765,7 +765,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/ia64/sys/ia64/ia64/exception.s#25 (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/ia64/ia64/exception.s,v 1.45 2003/05/24 20:51:55 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/exception.s,v 1.46 2003/05/27 07:10:58 marcel Exp $ */ #include @@ -1125,6 +1125,7 @@ } { .mmi alloc r15=ar.pfs,0,0,2,0 + ;; flushrs mov out0=11 ;; ==== //depot/projects/ia64/sys/ia64/ia64/unwind.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/unwind.c,v 1.6 2003/05/16 21:26:41 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/unwind.c,v 1.7 2003/05/27 01:15:16 marcel Exp $ */ #include @@ -61,7 +61,7 @@ unw_alloc(size_t sz) { - return (malloc(sz, M_UNWIND, M_WAITOK)); + return (malloc(sz, M_UNWIND, M_NOWAIT)); } static void ==== //depot/projects/ia64/sys/ia64/include/bus.h#11 (text+ko) ==== @@ -67,7 +67,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/ia64/include/bus.h,v 1.10 2003/04/29 09:50:03 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/include/bus.h,v 1.11 2003/05/27 04:59:58 scottl Exp $ */ #ifndef _MACHINE_BUS_H_ #define _MACHINE_BUS_H_ @@ -864,6 +864,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -998,7 +999,7 @@ */ void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); static __inline void -bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t dmamap, int op) +bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t dmamap, bus_dmasync_op_t op) { if ((dmamap) != NULL) _bus_dmamap_sync(dmat, dmamap, op); ==== //depot/projects/ia64/sys/powerpc/include/bus.h#10 (text+ko) ==== @@ -66,7 +66,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $NetBSD: bus.h,v 1.9.4.1 2000/06/30 16:27:30 simonb Exp $ - * $FreeBSD: src/sys/powerpc/include/bus.h,v 1.9 2003/04/18 02:38:10 grehan Exp $ + * $FreeBSD: src/sys/powerpc/include/bus.h,v 1.10 2003/05/27 04:59:58 scottl Exp $ */ #ifndef _MACPPC_BUS_H_ @@ -756,6 +756,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -888,7 +889,7 @@ /* * Perform a syncronization operation on the given map. */ -void bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); +void bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); /* * Release the mapping held by map. ==== //depot/projects/ia64/sys/powerpc/powerpc/busdma_machdep.c#13 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/busdma_machdep.c,v 1.14 2003/04/19 02:18:51 grehan Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/busdma_machdep.c,v 1.15 2003/05/27 04:59:58 scottl Exp $"); /* * MacPPC bus dma support routines @@ -521,7 +521,7 @@ } void -bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { return; ==== //depot/projects/ia64/sys/sparc64/include/bus.h#14 (text+ko) ==== @@ -69,7 +69,7 @@ * and * from: FreeBSD: src/sys/alpha/include/bus.h,v 1.9 2001/01/09 * - * $FreeBSD: src/sys/sparc64/include/bus.h,v 1.24 2003/05/26 04:00:52 scottl Exp $ + * $FreeBSD: src/sys/sparc64/include/bus.h,v 1.25 2003/05/27 04:59:59 scottl Exp $ */ #ifndef _MACHINE_BUS_H_ @@ -905,6 +905,7 @@ struct mbuf; struct uio; +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -975,7 +976,7 @@ bus_dmamap_t, struct uio *, bus_dmamap_callback2_t *, void *, int); void (*dt_dmamap_unload)(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); void (*dt_dmamap_sync)(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, - int); + bus_dmasync_op_t); /* * DMA memory utility functions. @@ -1080,7 +1081,8 @@ sparc64_dmamap_unload((t), (t), (p)) static __inline void -sparc64_dmamap_sync(bus_dma_tag_t pt, bus_dma_tag_t dt, bus_dmamap_t m, int op) +sparc64_dmamap_sync(bus_dma_tag_t pt, bus_dma_tag_t dt, bus_dmamap_t m, + bus_dmasync_op_t op) { bus_dma_tag_t lt; ==== //depot/projects/ia64/sys/sparc64/pci/psycho.c#23 (text+ko) ==== @@ -28,7 +28,7 @@ * * from: NetBSD: psycho.c,v 1.39 2001/10/07 20:30:41 eeh Exp * - * $FreeBSD: src/sys/sparc64/pci/psycho.c,v 1.33 2003/05/26 04:00:52 scottl Exp $ + * $FreeBSD: src/sys/sparc64/pci/psycho.c,v 1.34 2003/05/27 04:59:59 scottl Exp $ */ /* @@ -111,7 +111,8 @@ static int psycho_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, struct uio *, bus_dmamap_callback2_t *, void *, int); static void psycho_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); -static void psycho_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, int); +static void psycho_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, + bus_dmasync_op_t); static int psycho_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, bus_dmamap_t *); static void psycho_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, @@ -1402,7 +1403,7 @@ static void psycho_dmamap_sync(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map, - int op) + bus_dmasync_op_t op) { struct psycho_softc *sc; ==== //depot/projects/ia64/sys/sparc64/sbus/sbus.c#14 (text+ko) ==== @@ -100,7 +100,7 @@ * from: @(#)sbus.c 8.1 (Berkeley) 6/11/93 * from: NetBSD: sbus.c,v 1.46 2001/10/07 20:30:41 eeh Exp * - * $FreeBSD: src/sys/sparc64/sbus/sbus.c,v 1.18 2003/05/26 04:00:52 scottl Exp $ + * $FreeBSD: src/sys/sparc64/sbus/sbus.c,v 1.19 2003/05/27 04:59:59 scottl Exp $ */ /* @@ -242,7 +242,8 @@ static int sbus_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, struct uio *, bus_dmamap_callback2_t *, void *, int); static void sbus_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); -static void sbus_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, int); +static void sbus_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, + bus_dmasync_op_t); static int sbus_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, bus_dmamap_t *); static void sbus_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, @@ -979,7 +980,7 @@ static void sbus_dmamap_sync(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map, - int op) + bus_dmasync_op_t op) { struct sbus_softc *sc = (struct sbus_softc *)pdmat->dt_cookie; ==== //depot/projects/ia64/sys/sparc64/sparc64/bus_machdep.c#17 (text+ko) ==== @@ -106,7 +106,7 @@ * and * from: FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.24 2001/08/15 * - * $FreeBSD: src/sys/sparc64/sparc64/bus_machdep.c,v 1.29 2003/05/26 16:59:00 scottl Exp $ + * $FreeBSD: src/sys/sparc64/sparc64/bus_machdep.c,v 1.30 2003/05/27 04:59:59 scottl Exp $ */ #include @@ -169,7 +169,8 @@ static int nexus_dmamap_load_uio(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, struct uio *, bus_dmamap_callback2_t *, void *, int); static void nexus_dmamap_unload(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t); -static void nexus_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, int); +static void nexus_dmamap_sync(bus_dma_tag_t, bus_dma_tag_t, bus_dmamap_t, + bus_dmasync_op_t); static int nexus_dmamem_alloc(bus_dma_tag_t, bus_dma_tag_t, void **, int, bus_dmamap_t *); static void nexus_dmamem_free(bus_dma_tag_t, bus_dma_tag_t, void *, @@ -548,7 +549,7 @@ */ static void nexus_dmamap_sync(bus_dma_tag_t pdmat, bus_dma_tag_t ddmat, bus_dmamap_t map, - int op) + bus_dmasync_op_t op) { /* ==== //depot/projects/ia64/sys/sparc64/sparc64/iommu.c#17 (text+ko) ==== @@ -106,7 +106,7 @@ * from: @(#)sbus.c 8.1 (Berkeley) 6/11/93 * from: NetBSD: iommu.c,v 1.42 2001/08/06 22:02:58 eeh Exp * - * $FreeBSD: src/sys/sparc64/sparc64/iommu.c,v 1.27 2003/05/26 16:59:00 scottl Exp $ + * $FreeBSD: src/sys/sparc64/sparc64/iommu.c,v 1.28 2003/05/27 04:59:59 scottl Exp $ */ /* @@ -992,7 +992,7 @@ void iommu_dvmamap_sync(bus_dma_tag_t pt, bus_dma_tag_t dt, struct iommu_state *is, - bus_dmamap_t map, int op) + bus_dmamap_t map, bus_dmasync_op_t op) { struct bus_dmamap_res *r; vm_offset_t va; From owner-p4-projects@FreeBSD.ORG Tue May 27 14:21:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8693937B404; Tue, 27 May 2003 14:21:20 -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 1E31337B401 for ; Tue, 27 May 2003 14:21:20 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92B5C43F93 for ; Tue, 27 May 2003 14:21:18 -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 h4RLLI0U050985 for ; Tue, 27 May 2003 14:21:18 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLLFHI050982 for perforce@freebsd.org; Tue, 27 May 2003 14:21:15 -0700 (PDT) Date: Tue, 27 May 2003 14:21:15 -0700 (PDT) Message-Id: <200305272121.h4RLLFHI050982@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 31939 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, 27 May 2003 21:21:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=31939 Change 31939 by peter@peter_daintree on 2003/05/27 14:20:15 IFC @31936 Affected files ... .. //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#6 integrate .. //depot/projects/hammer/lib/libthr/arch/ia64/ia64/_curthread.c#3 integrate .. //depot/projects/hammer/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_cancel.c#4 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_create.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_exit.c#4 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_find_thread.c#2 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_gc.c#3 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_info.c#2 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_init.c#4 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_join.c#3 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_kern.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_private.h#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_spinlock.c#3 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_stack.c#2 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/early-adopter/article.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/errata/article.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/alpha/proc-alpha.sgml#5 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/common/dev.sgml#7 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/common/intro.sgml#3 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/i386/proc-i386.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/ia64/article.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/ia64/proc-ia64.sgml#3 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/hardware/sparc64/proc-sparc64.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/installation/common/install.sgml#6 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/installation/common/trouble.sgml#5 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/installation/common/upgrade.sgml#4 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/readme/article.sgml#5 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/relnotes/common/new.sgml#8 integrate .. //depot/projects/hammer/release/doc/de_DE.ISO8859-1/share/sgml/release.dsl#5 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#28 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/early-adopter/article.sgml#3 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#5 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/common/intro.sgml#3 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/i386/proc-i386.sgml#4 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/ia64/article.sgml#3 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/ia64/proc-ia64.sgml#3 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/share/sgml/release.dsl#5 integrate .. //depot/projects/hammer/sys/alpha/alpha/busdma_machdep.c#7 integrate .. //depot/projects/hammer/sys/alpha/include/bus.h#7 integrate .. //depot/projects/hammer/sys/amd64/amd64/busdma_machdep.c#5 integrate .. //depot/projects/hammer/sys/amd64/include/bus_dma.h#6 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/dsmethod.c#5 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/nsalloc.c#4 integrate .. //depot/projects/hammer/sys/dev/advansys/advansys.c#5 integrate .. //depot/projects/hammer/sys/dev/advansys/adwcam.c#5 integrate .. //depot/projects/hammer/sys/dev/aha/aha.c#6 integrate .. //depot/projects/hammer/sys/dev/ahb/ahb.c#5 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx.c#7 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx.h#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx.reg#7 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx.seq#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_inline.h#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_osm.c#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_osm.h#4 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_pci.c#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx.c#7 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx.h#5 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx.reg#5 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx.seq#4 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx_inline.h#5 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx_osm.c#9 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx_osm.h#6 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx_pci.c#5 integrate .. //depot/projects/hammer/sys/dev/amd/amd.c#3 integrate .. //depot/projects/hammer/sys/dev/buslogic/bt.c#6 integrate .. //depot/projects/hammer/sys/dev/dpt/dpt_scsi.c#6 integrate .. //depot/projects/hammer/sys/dev/firewire/fwdma.h#2 integrate .. //depot/projects/hammer/sys/dev/ida/ida.c#6 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_freebsd.c#6 integrate .. //depot/projects/hammer/sys/dev/trm/trm.c#5 integrate .. //depot/projects/hammer/sys/geom/geom_disk.c#13 integrate .. //depot/projects/hammer/sys/i386/i386/busdma_machdep.c#8 integrate .. //depot/projects/hammer/sys/i386/include/bus_dma.h#5 integrate .. //depot/projects/hammer/sys/ia64/ia64/busdma_machdep.c#7 integrate .. //depot/projects/hammer/sys/ia64/ia64/exception.s#12 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#15 integrate .. //depot/projects/hammer/sys/ia64/ia64/pmap.c#13 integrate .. //depot/projects/hammer/sys/ia64/ia64/support.s#4 integrate .. //depot/projects/hammer/sys/ia64/ia64/unwind.c#4 integrate .. //depot/projects/hammer/sys/ia64/include/bus.h#6 integrate .. //depot/projects/hammer/sys/kern/kern_alq.c#5 integrate .. //depot/projects/hammer/sys/kern/kern_umtx.c#2 integrate .. //depot/projects/hammer/sys/kern/subr_sbuf.c#6 integrate .. //depot/projects/hammer/sys/pci/agp_intel.c#6 integrate .. //depot/projects/hammer/sys/pci/agpreg.h#4 integrate .. //depot/projects/hammer/sys/powerpc/include/bus.h#5 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/busdma_machdep.c#6 integrate .. //depot/projects/hammer/sys/sparc64/include/bus.h#8 integrate .. //depot/projects/hammer/sys/sparc64/include/iommuvar.h#5 integrate .. //depot/projects/hammer/sys/sparc64/pci/psycho.c#10 integrate .. //depot/projects/hammer/sys/sparc64/sbus/sbus.c#5 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/bus_machdep.c#8 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/iommu.c#7 integrate .. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.pl#8 integrate .. //depot/projects/hammer/usr.bin/usbhidctl/usbhid.c#3 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/info/show.c#6 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/lib/lib.h#5 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/lib/str.c#2 integrate Differences ... ==== //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#6 (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/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.7 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.8 2003/05/25 22:40:57 mtm Exp $ */ #include @@ -87,13 +87,15 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thr) +_set_curthread(ucontext_t *uc, struct pthread *thr, int *err) { union descriptor desc; void **ldt_entry; int ldt_index; int error; + *err = 0; + /* * If we are setting up the initial thread, the gs register * won't be setup for the current thread. In any case, we @@ -106,8 +108,11 @@ if (ldt_inited == NULL) ldt_init(); - if (ldt_free == NULL) - abort(); + if (ldt_free == NULL) { + /* Concurrent thread limit reached */ + *err = curthread->error = EAGAIN; + return (NULL); + } /* * Pull one off of the free list and update the free list pointer. ==== //depot/projects/hammer/lib/libthr/arch/ia64/ia64/_curthread.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.2 2003/05/25 06:49:19 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include #include @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_special.tp = (uint64_t)thread; else ==== //depot/projects/hammer/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.2 2003/04/03 03:34:50 jake Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include #include @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_global[6] = (uint64_t)thread; else ==== //depot/projects/hammer/lib/libthr/thread/thr_cancel.c#4 (text+ko) ==== @@ -1,6 +1,6 @@ /* * David Leonard , 1999. Public domain. - * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.4 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.5 2003/05/25 08:48:11 mtm Exp $ */ #include #include @@ -21,7 +21,16 @@ _pthread_cancel(pthread_t pthread) { int ret; + pthread_t joined; + /* + * When canceling a thread that has joined another thread, this + * routine breaks the normal lock order of locking first the + * joined and then the joiner. Therefore, it is necessary that + * if it can't obtain the second lock, that it release the first + * one and restart from the top. + */ +retry: if ((ret = _find_thread(pthread)) != 0) /* The thread is not on the list of active threads */ goto out; @@ -70,10 +79,14 @@ /* * Disconnect the thread from the joinee: */ - if (pthread->join_status.thread != NULL) { - pthread->join_status.thread->joiner - = NULL; - pthread->join_status.thread = NULL; + if ((joined = pthread->join_status.thread) != NULL) { + if (_spintrylock(&joined->lock) == EBUSY) { + _thread_critical_exit(pthread); + goto retry; + } + pthread->join_status.thread->joiner = NULL; + _spinunlock(&joined->lock); + joined = pthread->join_status.thread = NULL; } pthread->cancelflags |= PTHREAD_CANCELLING; PTHREAD_NEW_STATE(pthread, PS_RUNNING); ==== //depot/projects/hammer/lib/libthr/thread/thr_create.c#5 (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/libthr/thread/thr_create.c,v 1.6 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.9 2003/05/26 00:37:07 mtm Exp $ */ #include #include @@ -116,7 +116,17 @@ new_thread->ctx.uc_stack.ss_sp = new_thread->stack; new_thread->ctx.uc_stack.ss_size = pattr->stacksize_attr; makecontext(&new_thread->ctx, _thread_start, 0); - new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread); + new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread, &ret); + if (ret != 0) { + if (pattr->stackaddr_attr == NULL) { + STACK_LOCK; + _thread_stack_free(new_thread->stack, + pattr->stacksize_attr, pattr->guardsize_attr); + STACK_UNLOCK; + } + free(new_thread); + return (ret); + } /* Copy the thread attributes: */ memcpy(&new_thread->attr, pattr, sizeof(struct pthread_attr)); @@ -155,16 +165,14 @@ new_thread->flags = 0; /* - * Protect the scheduling queues. - */ - GIANT_LOCK(curthread); - - /* * Initialise the unique id which GDB uses to * track threads. */ new_thread->uniqueid = next_uniqueid++; + THREAD_LIST_LOCK; + _thread_critical_enter(new_thread); + /* * Check if the garbage collector thread * needs to be started. @@ -174,6 +182,8 @@ /* Add the thread to the linked list of all threads: */ TAILQ_INSERT_HEAD(&_thread_list, new_thread, tle); + THREAD_LIST_UNLOCK; + /* * Create the thread. * @@ -190,11 +200,11 @@ PANIC("thr_create"); } - GIANT_UNLOCK(curthread); - /* Return a pointer to the thread structure: */ (*thread) = new_thread; + _thread_critical_exit(new_thread); + /* * Start a garbage collector thread * if necessary. ==== //depot/projects/hammer/lib/libthr/thread/thr_exit.c#4 (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/libthr/thread/thr_exit.c,v 1.5 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -95,6 +95,7 @@ _pthread_exit(void *status) { pthread_t pthread; + int exitNow = 0; /* Check if this thread is already in the process of exiting: */ if ((curthread->flags & PTHREAD_EXITING) != 0) { @@ -121,37 +122,14 @@ _thread_cleanupspecific(); } - /* - * Lock the garbage collector mutex to ensure that the garbage - * collector is not using the dead thread list. - */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); - - /* Add this thread to the list of dead threads. */ - TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); - - /* - * Signal the garbage collector thread that there is something - * to clean up. - */ - if (pthread_cond_signal(&_gc_cond) != 0) - PANIC("Cannot signal gc cond"); - - /* - * Avoid a race condition where a scheduling signal can occur - * causing the garbage collector thread to run. If this happens, - * the current thread can be cleaned out from under us. - */ - GIANT_LOCK(curthread); + /* Lock the dead list first to maintain correct lock order */ + DEAD_LIST_LOCK; + _thread_critical_enter(curthread); - /* Unlock the garbage collector mutex. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); - /* Check if there is a thread joining this one: */ if (curthread->joiner != NULL) { pthread = curthread->joiner; + _SPINLOCK(&pthread->lock); curthread->joiner = NULL; /* Make the joining thread runnable: */ @@ -161,6 +139,7 @@ pthread->join_status.ret = curthread->ret; pthread->join_status.error = 0; pthread->join_status.thread = NULL; + _SPINUNLOCK(&pthread->lock); /* Make this thread collectable by the garbage collector. */ PTHREAD_ASSERT(((curthread->attr.flags & PTHREAD_DETACHED) == @@ -168,14 +147,31 @@ curthread->attr.flags |= PTHREAD_DETACHED; } - /* Remove this thread from the thread list: */ + /* + * Add this thread to the list of dead threads, and + * also remove it from the active threads list. + */ + THREAD_LIST_LOCK; + TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); TAILQ_REMOVE(&_thread_list, curthread, tle); - PTHREAD_SET_STATE(curthread, PS_DEAD); - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); + + /* + * Signal the garbage collector thread that there is something + * to clean up. + */ + if (pthread_cond_signal(&_gc_cond) != 0) + PANIC("Cannot signal gc cond"); /* If we're the last thread, call it quits */ if (TAILQ_EMPTY(&_thread_list)) + exitNow = 1; + + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; + + if (exitNow) exit(0); /* ==== //depot/projects/hammer/lib/libthr/thread/thr_find_thread.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/libthr/thread/thr_find_thread.c,v 1.2 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_find_thread.c,v 1.3 2003/05/25 08:35:37 mtm Exp $ */ #include #include @@ -44,7 +44,7 @@ if (pthread == NULL || pthread->magic != PTHREAD_MAGIC) return(EINVAL); - GIANT_LOCK(curthread); + THREAD_LIST_LOCK; /* Search for the specified thread: */ TAILQ_FOREACH(pthread1, &_thread_list, tle) { @@ -52,7 +52,7 @@ break; } - GIANT_UNLOCK(curthread); + THREAD_LIST_UNLOCK; /* Return zero if the thread exists: */ return ((pthread1 != NULL) ? 0:ESRCH); ==== //depot/projects/hammer/lib/libthr/thread/thr_gc.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/libthr/thread/thr_gc.c,v 1.3 2003/04/20 02:56:12 marcel Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.5 2003/05/26 00:37:07 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -75,19 +75,17 @@ _thread_dump_info(); /* - * Lock the garbage collector mutex which ensures that + * Lock the list of dead threads which ensures that * this thread sees another thread exit: */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + DEAD_LIST_LOCK; /* No stack or thread structure to free yet. */ p_stack = NULL; pthread_cln = NULL; - GIANT_LOCK(curthread); - /* Check if this is the last running thread. */ + THREAD_LIST_LOCK; if (TAILQ_FIRST(&_thread_list) == curthread && TAILQ_NEXT(curthread, tle) == NULL) /* @@ -95,6 +93,7 @@ * now. */ f_done = 1; + THREAD_LIST_UNLOCK; /* * Enter a loop to search for the first dead thread that @@ -106,57 +105,45 @@ /* Don't destroy the initial thread. */ if (pthread == _thread_initial) continue; + + _SPINLOCK(&pthread->lock); + /* - * Check if this thread has detached: + * Check if the stack was not specified by + * the caller to pthread_create() and has not + * been destroyed yet: */ - if ((pthread->attr.flags & - PTHREAD_DETACHED) != 0) { - /* Remove this thread from the dead list: */ - TAILQ_REMOVE(&_dead_list, pthread, dle); + STACK_LOCK; + if (pthread->attr.stackaddr_attr == NULL && + pthread->stack != NULL) { + _thread_stack_free(pthread->stack, + pthread->attr.stacksize_attr, + pthread->attr.guardsize_attr); + pthread->stack = NULL; + } + STACK_UNLOCK; - /* - * Check if the stack was not specified by - * the caller to pthread_create() and has not - * been destroyed yet: - */ - if (pthread->attr.stackaddr_attr == NULL && - pthread->stack != NULL) { - _thread_stack_free(pthread->stack, - pthread->attr.stacksize_attr, - pthread->attr.guardsize_attr); - } + /* + * If the thread has not been detached, leave + * it on the dead thread list. + */ + if ((pthread->attr.flags & PTHREAD_DETACHED) == 0) { + _SPINUNLOCK(&pthread->lock); + continue; + } - /* - * Point to the thread structure that must - * be freed outside the locks: - */ - pthread_cln = pthread; + /* Remove this thread from the dead list: */ + TAILQ_REMOVE(&_dead_list, pthread, dle); - } else { - /* - * This thread has not detached, so do - * not destroy it. - * - * Check if the stack was not specified by - * the caller to pthread_create() and has not - * been destroyed yet: - */ - if (pthread->attr.stackaddr_attr == NULL && - pthread->stack != NULL) { - _thread_stack_free(pthread->stack, - pthread->attr.stacksize_attr, - pthread->attr.guardsize_attr); + /* + * Point to the thread structure that must + * be freed outside the locks: + */ + pthread_cln = pthread; - /* - * NULL the stack pointer now that the - * memory has been freed: - */ - pthread->stack = NULL; - } - } + _SPINUNLOCK(&pthread->lock); } - GIANT_UNLOCK(curthread); /* * Check if this is not the last thread and there is no * memory to free this time around. @@ -177,15 +164,14 @@ * timeout (for a backup poll). */ if ((ret = pthread_cond_timedwait(&_gc_cond, - &_gc_mutex, &abstime)) != 0 && ret != ETIMEDOUT) { + &dead_list_lock, &abstime)) != 0 && ret != ETIMEDOUT) { _thread_printf(STDERR_FILENO, "ret = %d", ret); PANIC("gc cannot wait for a signal"); } } /* Unlock the garbage collector mutex: */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); + DEAD_LIST_UNLOCK; /* * If there is memory to free, do it now. The call to ==== //depot/projects/hammer/lib/libthr/thread/thr_info.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/libthr/thread/thr_info.c,v 1.2 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_info.c,v 1.3 2003/05/25 08:31:33 mtm Exp $ */ #include #include @@ -109,6 +109,7 @@ } /* Check if there are no dead threads: */ + DEAD_LIST_LOCK; if (TAILQ_FIRST(&_dead_list) == NULL) { /* Output a record: */ strcpy(s, "\n\nTHERE ARE NO DEAD THREADS\n"); @@ -126,6 +127,7 @@ dump_thread(fd, pthread, /*long_version*/ 0); } } + DEAD_LIST_UNLOCK; /* Close the dump file: */ __sys_close(fd); ==== //depot/projects/hammer/lib/libthr/thread/thr_init.c#4 (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/libthr/thread/thr_init.c,v 1.5 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.7 2003/05/25 22:40:57 mtm Exp $ */ /* Allocate space for global thread variables here: */ @@ -162,6 +162,7 @@ size_t len; int mib[2]; sigset_t set; + int error; struct clockinfo clockinfo; struct sigaction act; @@ -221,7 +222,7 @@ memset(pthread, 0, sizeof(struct pthread)); _thread_initial = pthread; - pthread->arch_id = _set_curthread(NULL, pthread); + pthread->arch_id = _set_curthread(NULL, pthread, &error); /* Get our thread id. */ thr_self(&pthread->thr_id); @@ -326,7 +327,7 @@ clockinfo.tick : CLOCK_RES_USEC_MIN; /* Initialise the garbage collector mutex and condition variable. */ - if (_pthread_mutex_init(&_gc_mutex,NULL) != 0 || + if (_pthread_mutex_init(&dead_list_lock,NULL) != 0 || _pthread_cond_init(&_gc_cond,NULL) != 0) PANIC("Failed to initialise garbage collector mutex or condvar"); } ==== //depot/projects/hammer/lib/libthr/thread/thr_join.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/libthr/thread/thr_join.c,v 1.4 2003/05/20 18:48:41 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.6 2003/05/26 00:28:49 mtm Exp $ */ #include #include @@ -60,38 +60,36 @@ } /* - * Lock the garbage collector mutex to ensure that the garbage - * collector is not using the dead thread list. - */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); - - GIANT_LOCK(curthread); - - /* * Search for the specified thread in the list of active threads. This * is done manually here rather than calling _find_thread() because * the searches in _thread_list and _dead_list (as well as setting up * join/detach state) have to be done atomically. */ + DEAD_LIST_LOCK; + THREAD_LIST_LOCK; TAILQ_FOREACH(thread, &_thread_list, tle) - if (thread == pthread) + if (thread == pthread) { + _SPINLOCK(&pthread->lock); break; + } if (thread == NULL) /* * Search for the specified thread in the list of dead threads: */ TAILQ_FOREACH(thread, &_dead_list, dle) - if (thread == pthread) + if (thread == pthread) { + _SPINLOCK(&pthread->lock); break; - + } /* Check if the thread was not found or has been detached: */ if (thread == NULL || ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) { - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + if (thread != NULL) + _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; ret = ESRCH; goto out; @@ -99,21 +97,17 @@ if (pthread->joiner != NULL) { /* Multiple joiners are not supported. */ /* XXXTHR - support multiple joiners. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; ret = ENOTSUP; goto out; } - /* - * Unlock the garbage collector mutex, now that the garbage collector - * can't be run: - */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); /* Check if the thread is not dead: */ if (pthread->state != PS_DEAD) { + _thread_critical_enter(curthread); /* Set the running thread to be the joiner: */ pthread->joiner = curthread; @@ -123,9 +117,13 @@ while (curthread->join_status.thread == pthread) { PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); + _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); - GIANT_LOCK(curthread); + + _thread_critical_enter(curthread); } /* @@ -135,6 +133,7 @@ ret = curthread->join_status.error; if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; + _thread_critical_exit(curthread); } else { /* * The thread exited (is dead) without being detached, and no @@ -149,12 +148,14 @@ /* Make the thread collectable by the garbage collector. */ pthread->attr.flags |= PTHREAD_DETACHED; - + _SPINUNLOCK(&pthread->lock); + if (pthread_cond_signal(&_gc_cond) != 0) + PANIC("Cannot signal gc cond"); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; } out: - GIANT_UNLOCK(curthread); - _thread_leave_cancellation_point(); /* Return the completion status: */ ==== //depot/projects/hammer/lib/libthr/thread/thr_kern.c#5 (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/lib/libthr/thread/thr_kern.c,v 1.7 2003/05/23 10:28:13 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_kern.c,v 1.8 2003/05/25 07:58:22 mtm Exp $ */ #include @@ -68,6 +68,13 @@ * acquired the giant lock. */ _SPINLOCK(&pthread->lock); + + /* If we are already in a critical section, just up the refcount */ + if (++curthread->crit_ref > 1) + return; + PTHREAD_ASSERT(curthread->crit_ref == 1, + ("Critical section reference count must be 1!")); + if (__sys_sigprocmask(SIG_SETMASK, &set, &sav)) { _thread_printf(STDERR_FILENO, "Critical Enter: sig err %d\n", errno); @@ -81,6 +88,12 @@ { sigset_t set; + /* We might be in a nested critical section */ + if (--curthread->crit_ref > 0) + return; + PTHREAD_ASSERT(curthread->crit_ref == 0, + ("Non-Zero critical section reference count.")); + /* * Restore signals. */ ==== //depot/projects/hammer/lib/libthr/thread/thr_private.h#5 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.9 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.14 2003/05/26 00:37:07 mtm Exp $ */ #ifndef _THR_PRIVATE_H @@ -426,6 +426,7 @@ u_int64_t uniqueid; /* for gdb */ thr_id_t thr_id; sigset_t savedsig; + int crit_ref; /* crit. section netsting level */ /* * Lock for accesses to this thread structure. @@ -577,6 +578,14 @@ ; #endif +SCLASS spinlock_t stack_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += _SPINLOCK_INITIALIZER +#endif +; +#define STACK_LOCK _SPINLOCK(&stack_lock); +#define STACK_UNLOCK _SPINUNLOCK(&stack_lock); + /* List of all threads: */ SCLASS TAILQ_HEAD(, pthread) _thread_list #ifdef GLOBAL_PTHREAD_PRIVATE @@ -593,6 +602,34 @@ ; #endif +/* + * These two locks protect the global active threads list and + * the global dead threads list, respectively. Combining these + * into one lock for both lists doesn't seem wise, since it + * would likely increase contention during busy thread creation + * and destruction for very little savings in space. + * + * The lock for the "dead threads list" must be a pthread mutex + * because it is used with condition variables to synchronize + * the gc thread with active threads in the process of exiting or + * dead threads who have just been joined. + */ +SCLASS spinlock_t thread_list_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += _SPINLOCK_INITIALIZER +#endif +; +SCLASS pthread_mutex_t dead_list_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += NULL +#endif +; + +#define THREAD_LIST_LOCK _SPINLOCK(&thread_list_lock) +#define THREAD_LIST_UNLOCK _SPINUNLOCK(&thread_list_lock) +#define DEAD_LIST_LOCK _pthread_mutex_lock(&dead_list_lock) +#define DEAD_LIST_UNLOCK _pthread_mutex_unlock(&dead_list_lock) + /* Initial thread: */ SCLASS struct pthread *_thread_initial #ifdef GLOBAL_PTHREAD_PRIVATE @@ -643,12 +680,7 @@ SCLASS int _giant_count; -/* Garbage collector mutex and condition variable. */ -SCLASS pthread_mutex_t _gc_mutex -#ifdef GLOBAL_PTHREAD_PRIVATE -= NULL -#endif -; +/* Garbage collector condition variable. */ SCLASS pthread_cond_t _gc_cond #ifdef GLOBAL_PTHREAD_PRIVATE = NULL @@ -687,7 +719,7 @@ void _cond_wait_backout(pthread_t); int _find_thread(pthread_t); pthread_t _get_curthread(void); -void *_set_curthread(ucontext_t *, struct pthread *); +void *_set_curthread(ucontext_t *, struct pthread *, int *); void _retire_thread(void *arch_id); void *_thread_stack_alloc(size_t, size_t); void _thread_stack_free(void *, size_t, size_t); @@ -713,6 +745,7 @@ int _pthread_once(pthread_once_t *, void (*) (void)); pthread_t _pthread_self(void); int _pthread_setspecific(pthread_key_t, const void *); +int _spintrylock(spinlock_t *); inline void _spinlock_pthread(pthread_t, spinlock_t *); inline void _spinunlock_pthread(pthread_t, spinlock_t *); void _thread_exit(char *, int, char *); ==== //depot/projects/hammer/lib/libthr/thread/thr_spinlock.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/libthr/thread/thr_spinlock.c,v 1.3 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.4 2003/05/25 08:48:11 mtm Exp $ * */ @@ -69,6 +69,16 @@ _spinlock_pthread(curthread, lck); } +int +_spintrylock(spinlock_t *lck) +{ + int error; + error = umtx_trylock((struct umtx *)lck, curthread->thr_id); + if (error != 0 && error != EBUSY) + abort(); + return (error); +} + inline void _spinlock_pthread(pthread_t pthread, spinlock_t *lck) { ==== //depot/projects/hammer/lib/libthr/thread/thr_stack.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.1 2003/04/01 03:46:29 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.3 2003/05/26 00:37:07 mtm Exp $ */ #include #include @@ -144,8 +144,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - if (pthread_mutex_lock(&_gc_mutex) != 0) - PANIC("Cannot lock gc mutex"); + STACK_LOCK; if ((spare_stack = LIST_FIRST(&_dstackq)) != NULL) { /* Use the spare stack. */ @@ -154,8 +153,7 @@ } /* Unlock the garbage collector mutex. */ - if (pthread_mutex_unlock(&_gc_mutex) != 0) - PANIC("Cannot unlock gc mutex"); + STACK_UNLOCK; } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue May 27 14:26:26 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 37A0237B404; Tue, 27 May 2003 14:26:26 -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 E02A037B401 for ; Tue, 27 May 2003 14:26:25 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B73243F85 for ; Tue, 27 May 2003 14:26:25 -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 h4RLQP0U051130 for ; Tue, 27 May 2003 14:26:25 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLQOXf051127 for perforce@freebsd.org; Tue, 27 May 2003 14:26:24 -0700 (PDT) Date: Tue, 27 May 2003 14:26:24 -0700 (PDT) Message-Id: <200305272126.h4RLQOXf051127@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 31940 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, 27 May 2003 21:26:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=31940 Change 31940 by peter@peter_hammer on 2003/05/27 14:26:21 Some of the ld -r targets were missing ${LDFLAGS}. rectify. Affected files ... .. //depot/projects/hammer/share/mk/bsd.lib.mk#5 edit Differences ... ==== //depot/projects/hammer/share/mk/bsd.lib.mk#5 (text+ko) ==== @@ -54,12 +54,12 @@ .c.o: ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .c.po: ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .c.So: @@ -69,12 +69,12 @@ .cc.o .C.o .cpp.o .cxx.o: ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .cc.po .C.po .cpp.po .cxx.po: ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .cc.So .C.So .cpp.So .cxx.So: @@ -84,12 +84,12 @@ .f.o: ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .f.po: ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} - @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .f.So: @@ -99,12 +99,12 @@ .m.o: ${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .m.po: ${OBJC} ${OBJCFLAGS} -pg -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .m.So: @@ -127,7 +127,7 @@ .s.So .asm.So: ${CC} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS} \ ${AINC} -c ${.IMPSRC} -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .S.o: @@ -143,7 +143,7 @@ .S.So: ${CC} ${PICFLAG} -DPIC ${CFLAGS} ${AINC} -c ${.IMPSRC} \ -o ${.TARGET} - @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} + @${LD} ${LDFLAGS} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} all: objwarn From owner-p4-projects@FreeBSD.ORG Tue May 27 14:36:39 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5CEE437B404; Tue, 27 May 2003 14:36:39 -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 147E537B401 for ; Tue, 27 May 2003 14:36:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F64343FB1 for ; Tue, 27 May 2003 14:36:38 -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 h4RLac0U051512 for ; Tue, 27 May 2003 14:36:38 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLabmR051509 for perforce@freebsd.org; Tue, 27 May 2003 14:36:37 -0700 (PDT) Date: Tue, 27 May 2003 14:36:37 -0700 (PDT) Message-Id: <200305272136.h4RLabmR051509@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 31941 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, 27 May 2003 21:36:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=31941 Change 31941 by peter@peter_hammer on 2003/05/27 14:36:33 Remove the duplicate bfd_elf32_i386_freebsd_vec fromt the VECS list, otherwise nm etc cannot figure out the format. Affected files ... .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.amd64#2 edit Differences ... ==== //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.amd64#2 (text+ko) ==== @@ -3,7 +3,7 @@ .include "${.CURDIR}/Makefile.i386" # Get the i386 DEFAULT_VECTOR and VECS. -I386_VECS:= ${DEFAULT_VECTOR} ${VECS} +I386_VECS:= ${VECS} DEFAULT_VECTOR= bfd_elf64_x86_64_vec From owner-p4-projects@FreeBSD.ORG Tue May 27 14:39:44 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A3FB37B404; Tue, 27 May 2003 14:39:43 -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 42FA737B401 for ; Tue, 27 May 2003 14:39:43 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DF32743FBD for ; Tue, 27 May 2003 14:39:42 -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 h4RLdg0U051614 for ; Tue, 27 May 2003 14:39:42 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLdg01051611 for perforce@freebsd.org; Tue, 27 May 2003 14:39:42 -0700 (PDT) Date: Tue, 27 May 2003 14:39:42 -0700 (PDT) Message-Id: <200305272139.h4RLdg01051611@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 31942 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, 27 May 2003 21:39:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=31942 Change 31942 by peter@peter_hammer on 2003/05/27 14:39:24 make libstand build in 32 bit mode for amd64. Affected files ... .. //depot/projects/hammer/lib/libstand/Makefile#4 edit Differences ... ==== //depot/projects/hammer/lib/libstand/Makefile#4 (text+ko) ==== @@ -24,6 +24,10 @@ .if ${MACHINE_ARCH} == "powerpc" CFLAGS+= -msoft-float .endif +.if ${MACHINE_ARCH} == "amd64" +CFLAGS+= -m32 +LDFLAGS+= -m elf_i386_fbsd +.endif # standalone components and stuff we have modified locally SRCS+= zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \ @@ -34,13 +38,17 @@ SRCS+= strcasecmp.c # byte order functions from libc +.if ${MACHINE_ARCH} != "amd64" .PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/net +.else +.PATH: ${.CURDIR}/../libc/i386/net +.endif SRCS+= htons.S ntohs.S htonl.S ntohl.S # string functions from libc .PATH: ${.CURDIR}/../libc/string .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \ - ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "amd64" SRCS+= bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \ memcpy.c memmove.c memset.c qdivrem.c rindex.c strcat.c strchr.c \ strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c \ @@ -107,7 +115,11 @@ .endif # _setjmp/_longjmp +.if ${MACHINE_ARCH} == "amd64" +.PATH: ${.CURDIR}/i386 +.else .PATH: ${.CURDIR}/${MACHINE_ARCH} +.endif SRCS+= _setjmp.S # decompression functionality from libbz2 @@ -169,3 +181,12 @@ SRCS+= splitfs.c .include + +.if ${MACHINE_ARCH} == "amd64" +${SRCS:M*.c:R:S/$/.o/g}: machine + +beforedepend: machine + +machine: + ln -s ${.CURDIR}/../../sys/i386/include machine +.endif From owner-p4-projects@FreeBSD.ORG Tue May 27 14:39:45 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D704337B407; Tue, 27 May 2003 14:39: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 B667537B40E for ; Tue, 27 May 2003 14:39:43 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 62BF343FBD for ; Tue, 27 May 2003 14:39:43 -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 h4RLdh0U051620 for ; Tue, 27 May 2003 14:39:43 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLdgG5051617 for perforce@freebsd.org; Tue, 27 May 2003 14:39:42 -0700 (PDT) Date: Tue, 27 May 2003 14:39:42 -0700 (PDT) Message-Id: <200305272139.h4RLdgG5051617@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 31943 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, 27 May 2003 21:39:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=31943 Change 31943 by peter@peter_hammer on 2003/05/27 14:39:34 turn libstand back on. Affected files ... .. //depot/projects/hammer/lib/Makefile#14 edit Differences ... ==== //depot/projects/hammer/lib/Makefile#14 (text+ko) ==== @@ -29,7 +29,7 @@ libipx libisc libmenu ${_libmilter} ${_libmp} ${_libncp} \ libnetgraph libopie libpam libpanel libpcap ${_libpthread} \ ${_libsm} ${_libsmb} ${_libsmdb} ${_libsmutil} \ - ${_libstand} ${_libtelnet} libufs libugidfw libusbhid ${_libvgl} \ + libstand ${_libtelnet} libufs libugidfw libusbhid ${_libvgl} \ libwrap libxpg4 liby libz .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) @@ -41,7 +41,6 @@ .endif .if ${MACHINE_ARCH} != "amd64" -_libstand= libstand .if !defined(NOLIBC_R) _libc_r= libc_r .endif From owner-p4-projects@FreeBSD.ORG Tue May 27 14:43:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C911337B404; Tue, 27 May 2003 14:43: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 8119237B401 for ; Tue, 27 May 2003 14:43:49 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1A59043F93 for ; Tue, 27 May 2003 14:43: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 h4RLhm0U051916 for ; Tue, 27 May 2003 14:43:48 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLhmFR051910 for perforce@freebsd.org; Tue, 27 May 2003 14:43:48 -0700 (PDT) Date: Tue, 27 May 2003 14:43:48 -0700 (PDT) Message-Id: <200305272143.h4RLhmFR051910@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 31944 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, 27 May 2003 21:43:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=31944 Change 31944 by peter@peter_hammer on 2003/05/27 14:43:29 Evil hack so that binutils can tell the difference between .o files of the format elf32-i386-freebsd and elf32-i386. Without this, nm calls it 'ambiguous format' and cant do anything. ar and ranlib etc wont build a libxxx.a __.SYMDEF etc (so ld says 'run ranlib') etc. Alpha also has the same issue, but amd64 is the only one that it hurts. Affected files ... .. //depot/projects/hammer/contrib/binutils/bfd/elf32-i386-fbsd.c#2 edit .. //depot/projects/hammer/contrib/binutils/bfd/elf32-i386.c#4 edit Differences ... ==== //depot/projects/hammer/contrib/binutils/bfd/elf32-i386-fbsd.c#2 (text+ko) ==== @@ -22,6 +22,9 @@ #define ELF_ARCH bfd_arch_i386 #define ELF_MACHINE_CODE EM_386 #define ELF_MAXPAGESIZE 0x1000 +#ifdef __amd64__ +#define ELF_OSABI ELFOSABI_FREEBSD +#endif #include "bfd.h" #include "sysdep.h" ==== //depot/projects/hammer/contrib/binutils/bfd/elf32-i386.c#4 (text+ko) ==== @@ -629,6 +629,20 @@ /* Allocate our special target data. */ struct elf_i386_obj_tdata *new_tdata; bfd_size_type amt = sizeof (struct elf_i386_obj_tdata); + Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form. */ + + i_ehdrp = elf_elfheader (abfd); + +#ifdef __amd64__ +#ifdef ELF_OSABI + if (i_ehdrp->e_ident[EI_OSABI] != ELF_OSABI) + return false; +#endif +#if defined(__FreeBSD__) && !defined(ELF_OSABI) + if (i_ehdrp->e_ident[EI_OSABI] == ELFOSABI_FREEBSD) + return false; +#endif +#endif new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) return false; From owner-p4-projects@FreeBSD.ORG Tue May 27 14:44:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BC5BC37B432; Tue, 27 May 2003 14:44: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 54BBB37B415 for ; Tue, 27 May 2003 14:44:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 00E2343F3F for ; Tue, 27 May 2003 14:44:51 -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 h4RLio0U051979 for ; Tue, 27 May 2003 14:44:50 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLiouR051976 for perforce@freebsd.org; Tue, 27 May 2003 14:44:50 -0700 (PDT) Date: Tue, 27 May 2003 14:44:50 -0700 (PDT) Message-Id: <200305272144.h4RLiouR051976@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 31945 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, 27 May 2003 21:44:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=31945 Change 31945 by peter@peter_hammer on 2003/05/27 14:44:02 build in 32 bit mode Affected files ... .. //depot/projects/hammer/sys/boot/ficl/Makefile#2 edit Differences ... ==== //depot/projects/hammer/sys/boot/ficl/Makefile#2 (text+ko) ==== @@ -34,8 +34,24 @@ # Optional OO extension softwords #SOFTWORDS+= oo.fr classes.fr +.if defined(REALLY_AMD64) +CFLAGS+= -m32 -I. +LDFLAGS= -m elf_i386_fbsd +.endif + CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR}/../common softcore.c: ${SOFTWORDS} softcore.awk (cd ${.CURDIR}/softwords; cat ${SOFTWORDS} \ | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET} + +.if defined(REALLY_AMD64) +${SRCS:M*.c:R:S/$/.o/g}: machine + +beforedepend ${OBJS}: machine + +machine: + ln -sf ${.CURDIR}/../../i386/include machine + +CLEANFILES+= machine +.endif From owner-p4-projects@FreeBSD.ORG Tue May 27 14:51:01 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 87A6E37B404; Tue, 27 May 2003 14:51:00 -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 3B8DF37B401 for ; Tue, 27 May 2003 14:50:59 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 47E1643F75 for ; Tue, 27 May 2003 14:50:59 -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 h4RLox0U052279 for ; Tue, 27 May 2003 14:50:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLowtW052276 for perforce@freebsd.org; Tue, 27 May 2003 14:50:58 -0700 (PDT) Date: Tue, 27 May 2003 14:50:58 -0700 (PDT) Message-Id: <200305272150.h4RLowtW052276@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 31946 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, 27 May 2003 21:51:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=31946 Change 31946 by peter@peter_hammer on 2003/05/27 14:50:36 make this build for amd64 from this subdir Affected files ... .. //depot/projects/hammer/sys/boot/ficl/Makefile#3 edit Differences ... ==== //depot/projects/hammer/sys/boot/ficl/Makefile#3 (text+ko) ==== @@ -1,5 +1,9 @@ # $FreeBSD: src/sys/boot/ficl/Makefile,v 1.32 2002/05/13 11:09:06 ru Exp $ # +.if ${MACHINE_ARCH} == "amd64" +.MAKEFLAGS: MACHINE_ARCH=i386 MACHINE=i386 REALLY_AMD64=true +.endif + .PATH: ${.CURDIR}/${MACHINE_ARCH} BASE_SRCS= dict.c ficl.c fileaccess.c float.c loader.c math64.c \ prefix.c search.c stack.c tools.c vm.c words.c From owner-p4-projects@FreeBSD.ORG Tue May 27 14:55:06 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4B5CE37B404; Tue, 27 May 2003 14:55:06 -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 D396837B401 for ; Tue, 27 May 2003 14:55:05 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 790D443F75 for ; Tue, 27 May 2003 14:55:05 -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 h4RLt50U052385 for ; Tue, 27 May 2003 14:55:05 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLt5v1052382 for perforce@freebsd.org; Tue, 27 May 2003 14:55:05 -0700 (PDT) Date: Tue, 27 May 2003 14:55:05 -0700 (PDT) Message-Id: <200305272155.h4RLt5v1052382@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 31947 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, 27 May 2003 21:55:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=31947 Change 31947 by peter@peter_hammer on 2003/05/27 14:54:41 Make this build on amd64, and from just about any subdir. Affected files ... .. //depot/projects/hammer/sys/boot/Makefile#6 edit .. //depot/projects/hammer/sys/boot/common/Makefile.inc#6 edit .. //depot/projects/hammer/sys/boot/i386/Makefile.inc#2 edit .. //depot/projects/hammer/sys/boot/i386/boot2/Makefile#4 edit .. //depot/projects/hammer/sys/boot/i386/btx/Makefile.inc#1 add .. //depot/projects/hammer/sys/boot/i386/btx/btxldr/Makefile#3 edit Differences ... ==== //depot/projects/hammer/sys/boot/Makefile#6 (text+ko) ==== @@ -1,8 +1,7 @@ # $FreeBSD: src/sys/boot/Makefile,v 1.16 2003/04/30 22:13:36 peter Exp $ .if ${MACHINE_ARCH} == "amd64" -MACHINE_ARCH=i386 -MACHINE=i386 +.MAKEFLAGS: MACHINE_ARCH=i386 MACHINE=i386 REALLY_AMD64=true .endif .if !defined(NOFORTH) ==== //depot/projects/hammer/sys/boot/common/Makefile.inc#6 (text+ko) ==== @@ -34,7 +34,3 @@ .endif MAN+= loader.8 - -.if ${MACHINE_ARCH} == "amd64" -CFLAGS+= -m32 -.endif ==== //depot/projects/hammer/sys/boot/i386/Makefile.inc#2 (text+ko) ==== @@ -4,3 +4,14 @@ LOADER_ADDRESS?= 0x200000 CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 + +.if ${MACHINE_ARCH} == "amd64" +.MAKEFLAGS: MACHINE_ARCH=i386 MACHINE=i386 REALLY_AMD64=true +.endif + +.if defined(REALLY_AMD64) && !defined(__been_to_Makefile_inc) +__been_to_Makefile_inc= 1 +CFLAGS+= -m32 +LDFLAGS+= -m elf_i386_fbsd +AFLAGS+= --32 +.endif ==== //depot/projects/hammer/sys/boot/i386/boot2/Makefile#4 (text+ko) ==== @@ -109,3 +109,15 @@ boot2 ${DESTDIR}${BINDIR}/boot2 .include + +.if defined(REALLY_AMD64) +boot2.o: machine + +beforedepend ${OBJS}: machine + +machine: + ln -sf ${.CURDIR}/../../../i386/include machine + +CLEANFILES+= machine +.endif + ==== //depot/projects/hammer/sys/boot/i386/btx/btxldr/Makefile#3 (text+ko) ==== @@ -19,5 +19,4 @@ CLEANFILES+= btxldr btxldr.out btxldr.o -.include <${.CURDIR}/../../Makefile.inc> .include From owner-p4-projects@FreeBSD.ORG Tue May 27 14:55:08 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 59A0637B407; Tue, 27 May 2003 14:55: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 6556A37B405 for ; Tue, 27 May 2003 14:55:06 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EF2C543F75 for ; Tue, 27 May 2003 14:55:05 -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 h4RLt50U052391 for ; Tue, 27 May 2003 14:55:05 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLt5te052388 for perforce@freebsd.org; Tue, 27 May 2003 14:55:05 -0700 (PDT) Date: Tue, 27 May 2003 14:55:05 -0700 (PDT) Message-Id: <200305272155.h4RLt5te052388@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 31948 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, 27 May 2003 21:55:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=31948 Change 31948 by peter@peter_hammer on 2003/05/27 14:55:00 need btxld now Affected files ... .. //depot/projects/hammer/usr.sbin/Makefile#17 edit Differences ... ==== //depot/projects/hammer/usr.sbin/Makefile#17 (text+ko) ==== @@ -193,6 +193,10 @@ .endif .endif +.if ${MACHINE_ARCH} == "amd64" +SUBDIR+= btxld +.endif + .if ${MACHINE} == "i386" SUBDIR+=boot0cfg .endif From owner-p4-projects@FreeBSD.ORG Tue May 27 14:56:09 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF47537B404; Tue, 27 May 2003 14: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 5B3AA37B401 for ; Tue, 27 May 2003 14:56:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E68DE43F3F for ; Tue, 27 May 2003 14:56:07 -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 h4RLu70U052483 for ; Tue, 27 May 2003 14:56:07 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RLu7OL052480 for perforce@freebsd.org; Tue, 27 May 2003 14:56:07 -0700 (PDT) Date: Tue, 27 May 2003 14:56:07 -0700 (PDT) Message-Id: <200305272156.h4RLu7OL052480@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 31949 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, 27 May 2003 21:56:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=31949 Change 31949 by peter@peter_hammer on 2003/05/27 14:55:17 turn sys/boot back on unconditionally, exactly as it was before. Affected files ... .. //depot/projects/hammer/sys/Makefile#4 edit Differences ... ==== //depot/projects/hammer/sys/Makefile#4 (text+ko) ==== @@ -1,10 +1,7 @@ # $FreeBSD: src/sys/Makefile,v 1.27 2003/05/08 06:35:39 peter Exp $ -SUBDIR= # The boot loader -.if ${MACHINE_ARCH} != "amd64" -SUBDIR+=boot -.endif +SUBDIR= boot # KLD modules build for both a.out and ELF .if defined(MODULES_WITH_WORLD) From owner-p4-projects@FreeBSD.ORG Tue May 27 15:02:17 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6896E37B404; Tue, 27 May 2003 15:02:17 -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 242A337B401 for ; Tue, 27 May 2003 15:02:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C39E843FAF for ; Tue, 27 May 2003 15:02:16 -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 h4RM2G0U052800 for ; Tue, 27 May 2003 15:02:16 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RM2GIo052797 for perforce@freebsd.org; Tue, 27 May 2003 15:02:16 -0700 (PDT) Date: Tue, 27 May 2003 15:02:16 -0700 (PDT) Message-Id: <200305272202.h4RM2GIo052797@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 31951 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, 27 May 2003 22:02:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=31951 Change 31951 by peter@peter_daintree on 2003/05/27 15:01:43 remove a CYA comment in case it gets accidently committed Affected files ... .. //depot/projects/hammer/sys/vm/vm_pager.c#8 edit Differences ... ==== //depot/projects/hammer/sys/vm/vm_pager.c#8 (text+ko) ==== @@ -340,15 +340,6 @@ bp->b_rcred = NOCRED; bp->b_wcred = NOCRED; bp->b_qindex = 0; /* On no queue (QUEUE_NONE) */ -#ifdef __amd64__ - /* - * If you get a compile error here, it is because your gcc is - * misconfigured. Do *NOT* bandaid it, because this is a mine - * canary. If this fails to compile, then gcc will generate - * invalid code in kern/subr_scanf.c and net/radix.c. - * Fix your gcc, do not not this line. - */ -#endif bp->b_data = (caddr_t) (MAXPHYS * (bp - swbuf)) + swapbkva; bp->b_kvabase = bp->b_data; bp->b_kvasize = MAXPHYS; From owner-p4-projects@FreeBSD.ORG Tue May 27 15:03:19 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 67AE737B404; Tue, 27 May 2003 15:03:19 -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 1B70437B401 for ; Tue, 27 May 2003 15:03:19 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A718843F3F for ; Tue, 27 May 2003 15:03:18 -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 h4RM3I0U053765 for ; Tue, 27 May 2003 15:03:18 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RM3IbD053762 for perforce@freebsd.org; Tue, 27 May 2003 15:03:18 -0700 (PDT) Date: Tue, 27 May 2003 15:03:18 -0700 (PDT) Message-Id: <200305272203.h4RM3IbD053762@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 31952 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, 27 May 2003 22:03:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=31952 Change 31952 by peter@peter_daintree on 2003/05/27 15:02:17 add rcsid for new file Affected files ... .. //depot/projects/hammer/sys/boot/i386/btx/Makefile.inc#2 edit Differences ... ==== //depot/projects/hammer/sys/boot/i386/btx/Makefile.inc#2 (text+ko) ==== @@ -1,1 +1,2 @@ +# $FreeBSD$ .include <${.CURDIR}/../../Makefile.inc> From owner-p4-projects@FreeBSD.ORG Tue May 27 15:12:31 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16E7A37B404; Tue, 27 May 2003 15:12: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 AB6C237B401 for ; Tue, 27 May 2003 15:12:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 59FD743F93 for ; Tue, 27 May 2003 15:12:30 -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 h4RMCU0U054084 for ; Tue, 27 May 2003 15:12:30 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4RMCTxI054081 for perforce@freebsd.org; Tue, 27 May 2003 15:12:29 -0700 (PDT) Date: Tue, 27 May 2003 15:12:29 -0700 (PDT) Message-Id: <200305272212.h4RMCTxI054081@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 31953 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, 27 May 2003 22:12:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=31953 Change 31953 by peter@peter_daintree on 2003/05/27 15:11:45 oops, dont create unused variables Affected files ... .. //depot/projects/hammer/contrib/binutils/bfd/elf32-i386.c#5 edit Differences ... ==== //depot/projects/hammer/contrib/binutils/bfd/elf32-i386.c#5 (text+ko) ==== @@ -629,11 +629,11 @@ /* Allocate our special target data. */ struct elf_i386_obj_tdata *new_tdata; bfd_size_type amt = sizeof (struct elf_i386_obj_tdata); +#ifdef __amd64__ Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form. */ i_ehdrp = elf_elfheader (abfd); -#ifdef __amd64__ #ifdef ELF_OSABI if (i_ehdrp->e_ident[EI_OSABI] != ELF_OSABI) return false; From owner-p4-projects@FreeBSD.ORG Tue May 27 19:59:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 60F3737B404; Tue, 27 May 2003 19:59:20 -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 1214337B401 for ; Tue, 27 May 2003 19:59:20 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9069243F75 for ; Tue, 27 May 2003 19:59:19 -0700 (PDT) (envelope-from jmallett@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 h4S2xJ0U072710 for ; Tue, 27 May 2003 19:59:19 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4S2xJlq072707 for perforce@freebsd.org; Tue, 27 May 2003 19:59:19 -0700 (PDT) Date: Tue, 27 May 2003 19:59:19 -0700 (PDT) Message-Id: <200305280259.h4S2xJlq072707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31959 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, 28 May 2003 02:59:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=31959 Change 31959 by jmallett@jmallett_big-lizard on 2003/05/27 19:58:36 IFC this. I'm not very sure I got things totally right here and want to take another look, XXX! Affected files ... .. //depot/projects/mips/include/Makefile#14 integrate Differences ... ==== //depot/projects/mips/include/Makefile#14 (text+ko) ==== @@ -1,10 +1,7 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.196 2003/04/17 14:14:21 nectar Exp $ +# $FreeBSD: src/include/Makefile,v 1.197 2003/05/05 12:54:26 bde Exp $ # -# Doing a make install builds /usr/include -# -# The ``rm -rf''s used below are safe because rm doesn't follow symbolic -# links. +# Doing a "make install" builds /usr/include. CLEANFILES= osreldate.h version vers.c SUBDIR= arpa protocols rpcsvc rpc @@ -39,13 +36,10 @@ fs/fdescfs fs/fifofs fs/msdosfs fs/ntfs fs/nullfs fs/nwfs fs/portalfs \ fs/procfs fs/smbfs fs/umapfs fs/unionfs isofs/cd9660 \ netatm/ipatm netatm/sigpvc netatm/spans netatm/uni \ - netgraph/bluetooth/include \ security/mac_biba security/mac_bsdextended security/mac_lomac\ security/mac_mls security/mac_partition ufs/ffs ufs/ufs -# For SHARED=symlinks, cam, netatm, and netgraph are symlinks, so cam/scsi, -# netatm/*, and netgraph/* are taken care of -LSYMSUBDIRS= ${LSUBDIRS:Ncam/scsi:Nnetatm/*:Nnetgraph/*} +LSUBSUBDIRS= netgraph/bluetooth/include # Define SHARED to indicate whether you want symbolic links to the system # source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is @@ -64,7 +58,7 @@ . ${.CURDIR}/../sys/conf/newvers.sh; \ echo "$$COPYRIGHT" > osreldate.h; \ echo "#ifdef _KERNEL" >> osreldate.h; \ - echo '#error "/usr/include/osreldate.h cannot be used in the kernel, use sys/param.h"' >> osreldate.h; \ + echo '#error " cannot be used in the kernel, use "' >> osreldate.h; \ echo "#else" >> osreldate.h; \ echo \#'undef __FreeBSD_version' >> osreldate.h; \ echo \#'define __FreeBSD_version' $$RELDATE >> osreldate.h; \ @@ -80,57 +74,99 @@ INCSLINKS+= posix4/$i ${INCLUDEDIR}/$i .endfor +.include + +installincludes: ${SHARED} +${SHARED}: compat + +# Take care of stale directory-level symlinks. +compat: +.for i in ${LDIRS} ${LSUBDIRS} machine crypto + if [ -L ${DESTDIR}${INCLUDEDIR}/$i ]; then \ + rm -f ${DESTDIR}${INCLUDEDIR}/$i; \ + fi +.endfor + mtree -deU ${MTREE_FOLLOWS_SYMLINKS} \ + -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ + -p ${DESTDIR}${INCLUDEDIR} + copies: -.for i in ${LDIRS} ${LSYMSUBDIRS} platform machine crypto - if [ -L ${DESTDIR}/usr/include/$i ]; then \ - rm -f ${DESTDIR}/usr/include/$i; \ - fi +.for i in ${LDIRS} ${LSUBDIRS} crypto machine machine/pc platform +.if exists(${DESTDIR}${INCLUDEDIR}/$i) + cd ${DESTDIR}${INCLUDEDIR}/$i; \ + for h in *.h; do \ + if [ -L $$h ]; then rm -f $$h; fi; \ + done +.endif .endfor - mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/../etc/mtree/BSD.include.dist \ - -p ${DESTDIR}/usr/include -.for i in ${LDIRS} ${LSUBDIRS} +.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} cd ${.CURDIR}/../sys; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ - ${DESTDIR}/usr/include/$i + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \ + ${DESTDIR}${INCLUDEDIR}/$i .endfor cd ${.CURDIR}/../sys; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 opencrypto/*.h \ - ${DESTDIR}/usr/include/crypto + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 opencrypto/*.h \ + ${DESTDIR}${INCLUDEDIR}/crypto .if ${MACHINE_ARCH} != ${MACHINE} && exists(${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}) cd ${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ - ${DESTDIR}/usr/include/platform + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/platform .endif -.if exists(${.CURDIR}/../sys/${MACHINE_ARCH}/include) cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ - ${DESTDIR}/usr/include/machine + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/machine .if exists(${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc) cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ - ${DESTDIR}/usr/include/machine/pc + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/machine/pc .endif -.endif symlinks: @${ECHO} "Setting up symlinks to kernel source tree..." .for i in ${LDIRS} - rm -rf ${DESTDIR}/usr/include/$i - ln -s ../../sys/$i ${DESTDIR}/usr/include/$i + cd ${.CURDIR}/../sys/$i; \ + for h in *.h; do \ + ln -fs ../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ + done +.endfor +.for i in ${LSUBDIRS} + cd ${.CURDIR}/../sys/$i; \ + for h in *.h; do \ + ln -fs ../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ + done .endfor - rm -rf ${DESTDIR}/usr/include/crypto - ln -s ../../sys/opencrypto ${DESTDIR}/usr/include/crypto -.for i in ${LSYMSUBDIRS} - rm -rf ${DESTDIR}/usr/include/$i - ln -s ../../../sys/$i ${DESTDIR}/usr/include/$i +.for i in ${LSUBSUBDIRS} + cd ${.CURDIR}/../sys/$i; \ + for h in *.h; do \ + ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ + done .endfor - rm -rf ${DESTDIR}/usr/include/platform -.if ${MACHINE_ARCH} != ${MACHINE} && exists(../../sys/${MACHINE_ARCH}/${MACHINE}) - ln -s ../../sys/${MACHINE_ARCH}/${MACHINE} ${DESTDIR}/usr/include/platform -.endif rm -rf ${DESTDIR}/usr/include/machine ln -s ../../sys/${MACHINE_ARCH}/include ${DESTDIR}/usr/include/machine .include installincludes: ${SHARED} + cd ${.CURDIR}/../sys/opencrypto; \ + for h in *.h; do \ + ln -fs ../../../sys/opencrypto/$$h \ + ${DESTDIR}${INCLUDEDIR}/crypto; \ + done +.if ${MACHINE_ARCH} != ${MACHINE} && exists(${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}) + cd ${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}; \ + for h in *.h; do \ + ln -fs ../../../sys/${MACHINE_ARCH}/${MACHINE}/$$h \ + ${DESTDIR}${INCLUDEDIR}/platform; \ + done + cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include; \ + for h in *.h; do \ + ln -fs ../../../sys/${MACHINE_ARCH}/include/$$h \ + ${DESTDIR}${INCLUDEDIR}/machine; \ + done +.if exists(${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc) + cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include/pc; \ + for h in *.h; do \ + ln -fs ../../../../sys/${MACHINE_ARCH}/include/pc/$$h \ + ${DESTDIR}${INCLUDEDIR}/machine/pc; \ + done +.endif From owner-p4-projects@FreeBSD.ORG Tue May 27 20:01:02 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E2E737B404; Tue, 27 May 2003 20:01: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 4AE7337B401 for ; Tue, 27 May 2003 20:01:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2A5E843F85 for ; Tue, 27 May 2003 20:00:59 -0700 (PDT) (envelope-from jmallett@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 h4S30w0U072843 for ; Tue, 27 May 2003 20:00:58 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4S30adg072777 for perforce@freebsd.org; Tue, 27 May 2003 20:00:36 -0700 (PDT) Date: Tue, 27 May 2003 20:00:36 -0700 (PDT) Message-Id: <200305280300.h4S30adg072777@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31960 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, 28 May 2003 03:01:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=31960 Change 31960 by jmallett@jmallett_big-lizard on 2003/05/27 20:00:09 IFC. Affected files ... .. //depot/projects/mips/MAINTAINERS#11 integrate .. //depot/projects/mips/Makefile.inc1#16 integrate .. //depot/projects/mips/UPDATING#11 integrate .. //depot/projects/mips/bin/cat/cat.c#3 integrate .. //depot/projects/mips/bin/chflags/chflags.1#3 integrate .. //depot/projects/mips/bin/chflags/chflags.c#2 integrate .. //depot/projects/mips/bin/chio/chio.c#2 integrate .. //depot/projects/mips/bin/chmod/chmod.c#3 integrate .. //depot/projects/mips/bin/cp/cp.c#4 integrate .. //depot/projects/mips/bin/csh/Makefile#2 integrate .. //depot/projects/mips/bin/dd/dd.c#4 integrate .. //depot/projects/mips/bin/df/df.1#2 integrate .. //depot/projects/mips/bin/df/df.c#4 integrate .. //depot/projects/mips/bin/domainname/domainname.c#2 integrate .. //depot/projects/mips/bin/echo/echo.1#3 integrate .. //depot/projects/mips/bin/echo/echo.c#3 integrate .. //depot/projects/mips/bin/ed/Makefile#2 integrate .. //depot/projects/mips/bin/ed/ed.1#2 integrate .. //depot/projects/mips/bin/ed/main.c#2 integrate .. //depot/projects/mips/bin/hostname/hostname.c#2 integrate .. //depot/projects/mips/bin/kill/kill.c#2 integrate .. //depot/projects/mips/bin/ln/ln.c#2 integrate .. //depot/projects/mips/bin/ls/extern.h#4 integrate .. //depot/projects/mips/bin/ls/ls.1#7 integrate .. //depot/projects/mips/bin/ls/ls.c#8 integrate .. //depot/projects/mips/bin/ls/print.c#7 integrate .. //depot/projects/mips/bin/ls/util.c#3 integrate .. //depot/projects/mips/bin/mkdir/mkdir.c#2 integrate .. //depot/projects/mips/bin/mv/mv.c#2 integrate .. //depot/projects/mips/bin/mv/pathnames.h#2 delete .. //depot/projects/mips/bin/pax/ar_io.c#4 integrate .. //depot/projects/mips/bin/pax/ar_subs.c#2 integrate .. //depot/projects/mips/bin/pax/cache.c#3 integrate .. //depot/projects/mips/bin/pax/cpio.c#4 integrate .. //depot/projects/mips/bin/pax/extern.h#2 integrate .. //depot/projects/mips/bin/pax/gen_subs.c#3 integrate .. //depot/projects/mips/bin/pax/getoldopt.c#2 integrate .. //depot/projects/mips/bin/pax/options.c#3 integrate .. //depot/projects/mips/bin/pax/pat_rep.c#3 integrate .. //depot/projects/mips/bin/pax/pax.c#2 integrate .. //depot/projects/mips/bin/pax/pax.h#3 integrate .. //depot/projects/mips/bin/pax/tar.1#3 integrate .. //depot/projects/mips/bin/pax/tar.c#2 integrate .. //depot/projects/mips/bin/ps/Makefile#3 integrate .. //depot/projects/mips/bin/ps/fmt.c#3 integrate .. //depot/projects/mips/bin/ps/ps.1#4 integrate .. //depot/projects/mips/bin/pwd/pwd.1#3 integrate .. //depot/projects/mips/bin/pwd/pwd.c#2 integrate .. //depot/projects/mips/bin/rcp/rcp.c#4 integrate .. //depot/projects/mips/bin/rm/rm.c#2 integrate .. //depot/projects/mips/bin/rmdir/rmdir.c#2 integrate .. //depot/projects/mips/bin/sh/Makefile#2 integrate .. //depot/projects/mips/bin/sh/arith.y#2 integrate .. //depot/projects/mips/bin/sh/arith_lex.l#2 integrate .. //depot/projects/mips/bin/sh/mknodes.c#2 integrate .. //depot/projects/mips/bin/sh/mksyntax.c#2 integrate .. //depot/projects/mips/bin/sh/sh.1#5 integrate .. //depot/projects/mips/bin/sh/var.c#2 integrate .. //depot/projects/mips/bin/sleep/sleep.c#3 integrate .. //depot/projects/mips/bin/stty/gfmt.c#2 integrate .. //depot/projects/mips/bin/stty/stty.c#2 integrate .. //depot/projects/mips/bin/sync/sync.c#2 integrate .. //depot/projects/mips/contrib/gcc/config/i386/freebsd.h#4 integrate .. //depot/projects/mips/contrib/groff/ChangeLog#3 integrate .. //depot/projects/mips/contrib/groff/FREEBSD-upgrade#2 integrate .. //depot/projects/mips/contrib/groff/INSTALL#3 integrate .. //depot/projects/mips/contrib/groff/MANIFEST#2 integrate .. //depot/projects/mips/contrib/groff/Makefile.ccpg#3 integrate .. //depot/projects/mips/contrib/groff/Makefile.comm#3 integrate .. //depot/projects/mips/contrib/groff/Makefile.dev#2 integrate .. //depot/projects/mips/contrib/groff/Makefile.in#3 integrate .. //depot/projects/mips/contrib/groff/Makefile.lib#2 integrate .. //depot/projects/mips/contrib/groff/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/NEWS#3 integrate .. //depot/projects/mips/contrib/groff/PROBLEMS#3 integrate .. //depot/projects/mips/contrib/groff/REVISION#3 integrate .. //depot/projects/mips/contrib/groff/VERSION#3 integrate .. //depot/projects/mips/contrib/groff/aclocal.m4#3 integrate .. //depot/projects/mips/contrib/groff/configure#3 integrate .. //depot/projects/mips/contrib/groff/configure.ac#3 integrate .. //depot/projects/mips/contrib/groff/contrib/groffer/ChangeLog#2 integrate .. //depot/projects/mips/contrib/groff/contrib/groffer/Makefile.sub#2 integrate .. //depot/projects/mips/contrib/groff/contrib/groffer/README#1 branch .. //depot/projects/mips/contrib/groff/contrib/groffer/TODO#2 integrate .. //depot/projects/mips/contrib/groff/contrib/groffer/groffer.man#2 integrate .. //depot/projects/mips/contrib/groff/contrib/groffer/groffer.sh#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mm/ChangeLog#3 integrate .. //depot/projects/mips/contrib/groff/contrib/mm/groff_mm.man#3 integrate .. //depot/projects/mips/contrib/groff/contrib/mm/m.tmac#3 integrate .. //depot/projects/mips/contrib/groff/contrib/mm/mm/4.MT#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/BUGS#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/ChangeLog#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/Makefile.sub#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/NEWS#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/examples/elvis_syntax#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/examples/typeset.mom#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/docelement.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/docprocessing.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/goodies.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/inlines.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/intro.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/reserved.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/toc.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/momdoc/typesetting.html#2 integrate .. //depot/projects/mips/contrib/groff/contrib/mom/om.tmac#2 integrate .. //depot/projects/mips/contrib/groff/contrib/pic2graph/pic2graph.sh#2 integrate .. //depot/projects/mips/contrib/groff/doc/Makefile.in#2 integrate .. //depot/projects/mips/contrib/groff/doc/Makefile.sub#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-1#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-10#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-11#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-2#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-3#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-4#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-5#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-6#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-7#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-8#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff-9#2 integrate .. //depot/projects/mips/contrib/groff/doc/groff.texinfo#3 integrate .. //depot/projects/mips/contrib/groff/doc/pic.ms#3 integrate .. //depot/projects/mips/contrib/groff/doc/texinfo.tex#3 integrate .. //depot/projects/mips/contrib/groff/doc/webpage.ms#2 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/NB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/NBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/NI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/NR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100-12/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/NB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/NBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/NI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/NR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX100/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/NB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/NBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/NI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/NR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75-12/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/NB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/NBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/NI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/NR#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devX75/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devascii/R.proto#3 integrate .. //depot/projects/mips/contrib/groff/font/devcp1047/R.proto#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CW#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CWEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CWI#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CWIEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CWITC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/CWTC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/EX#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HBEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HBI#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HBIEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HBITC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HBTC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HIEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HITC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HR#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HREC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/HRTC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/MI#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/SC#1 branch .. //depot/projects/mips/contrib/groff/font/devdvi/TB#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TBEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TBI#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TBIEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TBITC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TBTC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TI#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TIEC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TITC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TR#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TREC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/TRTC#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/Makefile#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/ec.map#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/tc.map#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texb.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texex.map#2 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texi.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texmi.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texr.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/texsy.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devdvi/generate/textex.map#1 branch .. //depot/projects/mips/contrib/groff/font/devdvi/generate/textt.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devhtml/DESC.proto#3 integrate .. //depot/projects/mips/contrib/groff/font/devhtml/R.proto#3 integrate .. //depot/projects/mips/contrib/groff/font/devlatin1/R.proto#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/EB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/EI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/ER#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HNB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HNBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HNI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HNR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlbp/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/ALBB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/ALBR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/AOB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/AOI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/AOR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CLARENDON#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CORONET#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/GB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/GBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/GI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/GR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/LGB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/LGI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/LGR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/MARIGOLD#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/OB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/OBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/OI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/OR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/S#2 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UCB#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UCBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UCI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UCR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UI#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/UR#3 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/generate/special.map#2 integrate .. //depot/projects/mips/contrib/groff/font/devlj4/generate/text.map#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/AB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/ABI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/AI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/AR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/BMB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/BMBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/BMI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/BMR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/CB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/CBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/CI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/CR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/EURO#1 branch .. //depot/projects/mips/contrib/groff/font/devps/HB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HNB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HNBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HNI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HNR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/HR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/NB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/NBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/NI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/NR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/PB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/PBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/PI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/PR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/S#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/SS#2 integrate .. //depot/projects/mips/contrib/groff/font/devps/TB#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/TBI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/TI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/TR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/ZCMI#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/ZD#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/ZDR#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/download#2 integrate .. //depot/projects/mips/contrib/groff/font/devps/freeeuro.afm#1 branch .. //depot/projects/mips/contrib/groff/font/devps/freeeuro.pfa#1 branch .. //depot/projects/mips/contrib/groff/font/devps/generate/Makefile#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/generate/freeeuro.sfd#1 branch .. //depot/projects/mips/contrib/groff/font/devps/generate/sfdtopfa.pe#1 branch .. //depot/projects/mips/contrib/groff/font/devps/generate/symbolchars#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/generate/textmap#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/prologue.ps#3 integrate .. //depot/projects/mips/contrib/groff/font/devps/symbolmap#3 integrate .. //depot/projects/mips/contrib/groff/font/devutf8/NOTES#3 integrate .. //depot/projects/mips/contrib/groff/font/devutf8/R.proto#3 integrate .. //depot/projects/mips/contrib/groff/man/groff.man#3 integrate .. //depot/projects/mips/contrib/groff/man/groff_char.man#3 integrate .. //depot/projects/mips/contrib/groff/man/groff_diff.man#2 integrate .. //depot/projects/mips/contrib/groff/man/groff_font.man#3 integrate .. //depot/projects/mips/contrib/groff/man/groff_out.man#4 integrate .. //depot/projects/mips/contrib/groff/man/groff_tmac.man#2 integrate .. //depot/projects/mips/contrib/groff/man/roff.man#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grodvi/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grodvi/dvi.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grodvi/dvi.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grodvi/grodvi.man#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grohtml/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-table.cc#2 delete .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-table.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-table.h#2 integrate .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-text.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-text.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grohtml/html-text.h#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grohtml/output.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grohtml/output.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grohtml/post-html.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grohtml/post-html.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grolbp/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grolbp/charset.h#2 integrate .. //depot/projects/mips/contrib/groff/src/devices/grolbp/lbp.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grolbp/lbp.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grolbp/lbp.h#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grolj4/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grolj4/lj4.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grolj4/lj4.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grops/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grops/TODO#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grops/grops.man#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grops/ps.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grops/ps.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grops/ps.h#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grops/psrm.cc#3 delete .. //depot/projects/mips/contrib/groff/src/devices/grops/psrm.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/devices/grotty/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/devices/grotty/tty.cc#4 delete .. //depot/projects/mips/contrib/groff/src/devices/grotty/tty.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/include/color.h#2 integrate .. //depot/projects/mips/contrib/groff/src/include/config.hin#2 integrate .. //depot/projects/mips/contrib/groff/src/include/driver.h#3 integrate .. //depot/projects/mips/contrib/groff/src/include/error.h#2 integrate .. //depot/projects/mips/contrib/groff/src/include/html-strings.h#3 integrate .. //depot/projects/mips/contrib/groff/src/include/lib.h#3 integrate .. //depot/projects/mips/contrib/groff/src/include/nonposix.h#3 integrate .. //depot/projects/mips/contrib/groff/src/include/printer.h#3 integrate .. //depot/projects/mips/contrib/groff/src/include/ptable.h#2 integrate .. //depot/projects/mips/contrib/groff/src/libs/libbib/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/libs/libbib/common.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libbib/common.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libbib/index.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libbib/index.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libbib/linear.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libbib/linear.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libbib/search.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libbib/search.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libdriver/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/libs/libdriver/input.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libdriver/input.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libdriver/printer.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libdriver/printer.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/libs/libgroff/assert.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/assert.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/change_lf.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/change_lf.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/cmap.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/cmap.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/color.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/color.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/cset.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/cset.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/device.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/device.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/errarg.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/errarg.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/error.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/error.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/fatal.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/fatal.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/filename.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/filename.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/font.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/font.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/fontfile.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/fontfile.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/geometry.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/geometry.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/htmlhint.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/htmlhint.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/invalid.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/invalid.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/lf.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/lf.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/lineno.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/lineno.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/macropath.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/macropath.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/maxfilename.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/maxfilename.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/mksdir.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/mksdir.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/mkstemp.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/mkstemp.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/nametoindex.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/nametoindex.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/new.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/new.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/paper.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/paper.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/prime.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/prime.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/progname.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/progname.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/ptable.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/ptable.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/searchpath.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/searchpath.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/strcasecmp.c#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/string.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/string.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/strncasecmp.c#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/strsave.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/strsave.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/tmpfile.cc#3 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/tmpfile.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/libs/libgroff/tmpname.cc#2 delete .. //depot/projects/mips/contrib/groff/src/libs/libgroff/tmpname.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/eqn/box.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/box.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/delim.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/delim.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/lex.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/lex.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/limit.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/limit.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/list.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/list.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/main.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/main.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/mark.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/mark.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/neqn.sh#2 integrate .. //depot/projects/mips/contrib/groff/src/preproc/eqn/other.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/other.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/over.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/over.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/pile.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/pile.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/script.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/script.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/special.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/special.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/sqrt.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/sqrt.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/eqn/text.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/eqn/text.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/grn/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/grn/README#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/grn/hdb.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/grn/hdb.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/grn/hgraph.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/grn/hgraph.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/grn/hpoint.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/grn/hpoint.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/grn/main.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/grn/main.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/html/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/html/pre-html.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/html/pre-html.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/html/pushback.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/html/pushback.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/html/pushback.h#2 integrate .. //depot/projects/mips/contrib/groff/src/preproc/pic/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/pic/common.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/common.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/pic/lex.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/lex.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/pic/main.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/main.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/pic/object.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/object.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/pic/pic.h#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/pic/pic.man#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/pic/pic.y#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/pic/tex.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/tex.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/pic/troff.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/pic/troff.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/refer/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/refer/command.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/refer/command.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/refer/ref.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/refer/ref.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/refer/refer.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/refer/refer.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/refer/refer.man#2 integrate .. //depot/projects/mips/contrib/groff/src/preproc/refer/token.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/refer/token.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/soelim/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/soelim/soelim.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/soelim/soelim.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/soelim/soelim.man#2 integrate .. //depot/projects/mips/contrib/groff/src/preproc/tbl/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/preproc/tbl/main.cc#3 delete .. //depot/projects/mips/contrib/groff/src/preproc/tbl/main.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/tbl/table.cc#2 delete .. //depot/projects/mips/contrib/groff/src/preproc/tbl/table.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/preproc/tbl/tbl.man#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/groff/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/groff/groff.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/groff/groff.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/groff/groff.man#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/groff/pipeline.c#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/grog/grog.man#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/nroff/Makefile.sub#2 integrate .. //depot/projects/mips/contrib/groff/src/roff/nroff/nroff.man#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/nroff/nroff.sh#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/charinfo.h#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/column.cc#2 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/column.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/dictionary.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/dictionary.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/div.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/div.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/div.h#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/env.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/env.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/glyphuni.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/input.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/input.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/node.cc#4 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/node.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/node.h#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/number.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/number.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/reg.cc#2 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/reg.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/reg.h#2 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/symbol.cc#3 delete .. //depot/projects/mips/contrib/groff/src/roff/troff/symbol.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/token.h#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/troff.man#3 integrate .. //depot/projects/mips/contrib/groff/src/roff/troff/unicode.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/unicode.h#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/uniglyph.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/roff/troff/uniuni.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/addftinfo/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/addftinfo/addftinfo.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/addftinfo/addftinfo.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/addftinfo/guess.cc#2 delete .. //depot/projects/mips/contrib/groff/src/utils/addftinfo/guess.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/afmtodit/Makefile.sub#2 integrate .. //depot/projects/mips/contrib/groff/src/utils/afmtodit/afmtodit.man#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/afmtodit/afmtodit.pl#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/hpftodit/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/hpftodit/hpftodit.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/hpftodit/hpftodit.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/hpftodit/hpftodit.man#2 integrate .. //depot/projects/mips/contrib/groff/src/utils/indxbib/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/indxbib/indxbib.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/indxbib/indxbib.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/lkbib/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/lkbib/lkbib.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/lkbib/lkbib.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/lookbib/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/lookbib/lookbib.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/lookbib/lookbib.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/utils/pfbtops/pfbtops.c#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/pfbtops/pfbtops.man#2 integrate .. //depot/projects/mips/contrib/groff/src/utils/tfmtodit/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/src/utils/tfmtodit/tfmtodit.cc#3 delete .. //depot/projects/mips/contrib/groff/src/utils/tfmtodit/tfmtodit.cpp#1 branch .. //depot/projects/mips/contrib/groff/src/xditview/ChangeLog#3 integrate .. //depot/projects/mips/contrib/groff/src/xditview/DviChar.c#3 integrate .. //depot/projects/mips/contrib/groff/src/xditview/Imakefile.in#3 integrate .. //depot/projects/mips/contrib/groff/src/xditview/draw.c#2 integrate .. //depot/projects/mips/contrib/groff/tmac/Makefile.sub#3 integrate .. //depot/projects/mips/contrib/groff/tmac/README#2 integrate .. //depot/projects/mips/contrib/groff/tmac/X.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/Xps.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/a4.tmac#2 integrate .. //depot/projects/mips/contrib/groff/tmac/an-old.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/composite.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/cp1047.tmac#2 integrate .. //depot/projects/mips/contrib/groff/tmac/doc-common#4 integrate .. //depot/projects/mips/contrib/groff/tmac/doc-ditroff#4 integrate .. //depot/projects/mips/contrib/groff/tmac/doc-nroff#4 integrate .. //depot/projects/mips/contrib/groff/tmac/doc.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/dvi.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/ec.tmac#2 integrate .. //depot/projects/mips/contrib/groff/tmac/eqnrc#2 integrate .. //depot/projects/mips/contrib/groff/tmac/europs.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/groff_man.man#3 integrate .. //depot/projects/mips/contrib/groff/tmac/groff_mdoc.man#3 integrate .. //depot/projects/mips/contrib/groff/tmac/html-end.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/html.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/hyphen.us#3 integrate .. //depot/projects/mips/contrib/groff/tmac/hyphenex.pl#1 branch .. //depot/projects/mips/contrib/groff/tmac/hyphenex.us#1 branch .. //depot/projects/mips/contrib/groff/tmac/latin1.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/latin2.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/latin9.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/lbp.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/lj4.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/papersize.tmac#1 branch .. //depot/projects/mips/contrib/groff/tmac/ps.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/pspic.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/troffrc#5 integrate .. //depot/projects/mips/contrib/groff/tmac/troffrc-end#3 integrate .. //depot/projects/mips/contrib/groff/tmac/tty-char.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/tty.tmac#3 integrate .. //depot/projects/mips/contrib/groff/tmac/www.tmac#3 integrate .. //depot/projects/mips/contrib/groff/win32-diffs#3 delete .. //depot/projects/mips/contrib/isc-dhcp/client/clparse.c#3 integrate .. //depot/projects/mips/contrib/openpam/CREDITS#3 integrate .. //depot/projects/mips/contrib/openpam/HISTORY#3 integrate .. //depot/projects/mips/contrib/openpam/INSTALL#2 integrate .. //depot/projects/mips/contrib/openpam/LICENSE#2 integrate .. //depot/projects/mips/contrib/openpam/MANIFEST#3 integrate .. //depot/projects/mips/contrib/openpam/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/README#3 integrate .. //depot/projects/mips/contrib/openpam/RELNOTES#3 integrate .. //depot/projects/mips/contrib/openpam/bin/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/bin/su/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/bin/su/su.c#2 integrate .. //depot/projects/mips/contrib/openpam/doc/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/doc/man/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam.man#2 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_borrow_cred.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_free_data.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_get_option.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_log.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_nullconv.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_restore_cred.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_set_option.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/openpam_ttyconv.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam.man#2 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_acct_mgmt.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_authenticate.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_chauthtok.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_close_session.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_conv.3#2 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_end.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_error.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_get_authtok.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_get_data.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_get_item.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_get_user.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_getenv.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_getenvlist.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_info.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_open_session.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_prompt.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_putenv.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_set_data.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_set_item.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_setcred.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_setenv.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_acct_mgmt.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_authenticate.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_chauthtok.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_close_session.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_open_session.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_sm_setcred.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_start.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_strerror.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_verror.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_vinfo.3#3 integrate .. //depot/projects/mips/contrib/openpam/doc/man/pam_vprompt.3#3 integrate .. //depot/projects/mips/contrib/openpam/include/security/openpam.h#2 integrate .. //depot/projects/mips/contrib/openpam/include/security/openpam_version.h#2 integrate .. //depot/projects/mips/contrib/openpam/include/security/pam_appl.h#2 integrate .. //depot/projects/mips/contrib/openpam/include/security/pam_constants.h#3 integrate .. //depot/projects/mips/contrib/openpam/include/security/pam_modules.h#2 integrate .. //depot/projects/mips/contrib/openpam/include/security/pam_types.h#3 integrate .. //depot/projects/mips/contrib/openpam/lib/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_borrow_cred.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_configure.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_dispatch.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_dynamic.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_findenv.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_free_data.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_get_option.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_impl.h#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_load.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_log.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_nullconv.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_restore_cred.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_set_option.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_static.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/openpam_ttyconv.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_acct_mgmt.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_authenticate.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_authenticate_secondary.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_chauthtok.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_close_session.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_end.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_error.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_authtok.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_data.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_item.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_mapped_authtok.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_mapped_username.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_get_user.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_getenv.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_getenvlist.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_info.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_open_session.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_prompt.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_putenv.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_set_data.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_set_item.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_set_mapped_authtok.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_set_mapped_username.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_setcred.c#4 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_setenv.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_acct_mgmt.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_authenticate.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_authenticate_secondary.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_chauthtok.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_close_session.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_get_mapped_authtok.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_get_mapped_username.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_open_session.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_set_mapped_authtok.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_set_mapped_username.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_sm_setcred.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_start.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_strerror.c#3 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_verror.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_vinfo.c#2 integrate .. //depot/projects/mips/contrib/openpam/lib/pam_vprompt.c#4 integrate .. //depot/projects/mips/contrib/openpam/misc/gendoc.pl#3 integrate .. //depot/projects/mips/contrib/openpam/modules/Makefile#3 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_deny/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_deny/pam_deny.c#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_dummy/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_dummy/pam_dummy.c#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_permit/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_permit/pam_permit.c#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_unix/Makefile#2 integrate .. //depot/projects/mips/contrib/openpam/modules/pam_unix/pam_unix.c#3 integrate .. //depot/projects/mips/contrib/smbfs/smbutil/common.h#2 integrate .. //depot/projects/mips/contrib/tar/src/buffer.c#3 integrate .. //depot/projects/mips/contrib/texinfo/AUTHORS#2 integrate .. //depot/projects/mips/contrib/texinfo/COPYING#2 integrate .. //depot/projects/mips/contrib/texinfo/COPYING.DOC#2 integrate .. //depot/projects/mips/contrib/texinfo/ChangeLog#2 integrate .. //depot/projects/mips/contrib/texinfo/FREEBSD-Xlist#2 integrate .. //depot/projects/mips/contrib/texinfo/FREEBSD-upgrade#2 integrate .. //depot/projects/mips/contrib/texinfo/INSTALL#2 integrate .. //depot/projects/mips/contrib/texinfo/INTRODUCTION#2 integrate .. //depot/projects/mips/contrib/texinfo/NEWS#2 integrate .. //depot/projects/mips/contrib/texinfo/README#2 integrate .. //depot/projects/mips/contrib/texinfo/TODO#2 integrate .. //depot/projects/mips/contrib/texinfo/config.h#2 integrate .. //depot/projects/mips/contrib/texinfo/config.h.in#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/README#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/fdl.texi#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/help2man#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/info-stnd.texi#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/info.1#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/info.5#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/info.texi#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/install-info.1#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/makeinfo.1#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/texindex.1#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/texinfo.5#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/texinfo.txi#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/version-stnd.texi#2 integrate .. //depot/projects/mips/contrib/texinfo/doc/version.texi#2 integrate .. //depot/projects/mips/contrib/texinfo/info/README#2 integrate .. //depot/projects/mips/contrib/texinfo/info/dir.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/display.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/display.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/doc.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/doc.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/echo-area.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/echo-area.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/filesys.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/filesys.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/footnotes.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/footnotes.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/funs.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/gc.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/indices.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/indices.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/info-utils.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/info-utils.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/info.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/info.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/infodoc.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/infokey.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/infokey.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/infomap.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/infomap.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/m-x.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/man.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/man.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/nodemenu.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/nodes.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/nodes.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/search.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/search.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/session.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/session.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/signals.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/signals.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/termdep.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/terminal.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/terminal.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/tilde.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/variables.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/variables.h#2 integrate .. //depot/projects/mips/contrib/texinfo/info/window.c#2 integrate .. //depot/projects/mips/contrib/texinfo/info/window.h#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/README#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/getopt.c#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/getopt.h#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/getopt1.c#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/gettext.h#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/substring.c#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/system.h#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/xalloc.h#1 branch .. //depot/projects/mips/contrib/texinfo/lib/xexit.c#2 integrate .. //depot/projects/mips/contrib/texinfo/lib/xstrdup.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/README#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/cmds.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/cmds.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/defun.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/defun.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/docbook.c#2 delete .. //depot/projects/mips/contrib/texinfo/makeinfo/docbook.h#2 delete .. //depot/projects/mips/contrib/texinfo/makeinfo/files.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/files.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/footnote.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/footnote.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/html.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/html.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/index.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/index.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/insertion.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/insertion.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/lang.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/lang.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/macro.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/macro.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/makeinfo.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/makeinfo.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/multi.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/node.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/node.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/sectioning.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/sectioning.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/texinfo.dtd#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/texinfo.xsl#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/toc.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/toc.h#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/xml.c#2 integrate .. //depot/projects/mips/contrib/texinfo/makeinfo/xml.h#2 integrate .. //depot/projects/mips/contrib/texinfo/util/README#2 integrate .. //depot/projects/mips/contrib/texinfo/util/install-info.c#2 integrate .. //depot/projects/mips/contrib/texinfo/util/texindex.c#2 integrate .. //depot/projects/mips/crypto/openssh/auth-krb4.c#4 integrate .. //depot/projects/mips/crypto/openssh/auth-pam.c#4 integrate .. //depot/projects/mips/crypto/openssh/auth2-pam.c#4 integrate .. //depot/projects/mips/crypto/openssh/authfd.c#4 integrate .. //depot/projects/mips/crypto/openssh/authfile.c#3 integrate .. //depot/projects/mips/crypto/openssh/canohost.c#4 integrate .. //depot/projects/mips/crypto/openssh/channels.c#4 integrate .. //depot/projects/mips/crypto/openssh/channels.h#3 integrate .. //depot/projects/mips/crypto/openssh/cipher.c#4 integrate .. //depot/projects/mips/crypto/openssh/compat.h#4 integrate .. //depot/projects/mips/crypto/openssh/hostfile.c#3 integrate .. //depot/projects/mips/crypto/openssh/key.c#4 integrate .. //depot/projects/mips/crypto/openssh/log.h#3 integrate .. //depot/projects/mips/crypto/openssh/rijndael.c#3 integrate .. //depot/projects/mips/crypto/openssh/scp.c#4 integrate .. //depot/projects/mips/crypto/openssh/serverloop.c#4 integrate .. //depot/projects/mips/crypto/openssh/session.h#3 integrate .. //depot/projects/mips/crypto/openssh/ssh-add.c#4 integrate .. //depot/projects/mips/crypto/openssh/ssh-keyscan.c#4 integrate .. //depot/projects/mips/crypto/openssh/ssh.h#3 integrate .. //depot/projects/mips/crypto/openssh/sshconnect.c#4 integrate .. //depot/projects/mips/crypto/openssh/sshconnect1.c#3 integrate .. //depot/projects/mips/crypto/openssh/sshconnect2.c#4 integrate .. //depot/projects/mips/crypto/openssh/sshlogin.c#3 integrate .. //depot/projects/mips/crypto/openssh/sshlogin.h#3 integrate .. //depot/projects/mips/crypto/openssh/sshpty.c#4 integrate .. //depot/projects/mips/crypto/telnet/libtelnet/auth.c#2 integrate .. //depot/projects/mips/crypto/telnet/libtelnet/enc_des.c#3 integrate .. //depot/projects/mips/crypto/telnet/telnet/authenc.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/commands.c#3 integrate .. //depot/projects/mips/crypto/telnet/telnet/externs.h#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/main.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/network.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/ring.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/sys_bsd.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/telnet.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/terminal.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnet/utilities.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/authenc.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/global.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/slc.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/state.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/sys_term.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/telnetd.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/termstat.c#2 integrate .. //depot/projects/mips/crypto/telnet/telnetd/utility.c#2 integrate .. //depot/projects/mips/etc/Makefile#10 integrate .. //depot/projects/mips/etc/defaults/rc.conf#12 integrate .. //depot/projects/mips/etc/devd.conf#3 integrate .. //depot/projects/mips/etc/devfs.conf#1 branch .. //depot/projects/mips/etc/etc.alpha/rc.alpha#2 delete .. //depot/projects/mips/etc/etc.amd64/ttys#1 branch .. //depot/projects/mips/etc/etc.i386/rc.i386#2 delete .. //depot/projects/mips/etc/etc.ia64/rc.ia64#2 delete .. //depot/projects/mips/etc/etc.sparc64/rc.sparc64#2 delete .. //depot/projects/mips/etc/ftpusers#2 integrate .. //depot/projects/mips/etc/group#3 integrate .. //depot/projects/mips/etc/mail/aliases#4 integrate .. //depot/projects/mips/etc/master.passwd#2 integrate .. //depot/projects/mips/etc/mtree/BSD.x11-4.dist#3 integrate .. //depot/projects/mips/etc/netstart#2 integrate .. //depot/projects/mips/etc/network.subr#2 integrate .. //depot/projects/mips/etc/newsyslog.conf#4 integrate .. //depot/projects/mips/etc/pam.d/ftpd#5 integrate .. //depot/projects/mips/etc/pam.d/gdm#4 integrate .. //depot/projects/mips/etc/pam.d/kde#4 integrate .. //depot/projects/mips/etc/pam.d/login#5 integrate .. //depot/projects/mips/etc/pam.d/other#5 integrate .. //depot/projects/mips/etc/pam.d/sshd#7 integrate .. //depot/projects/mips/etc/pam.d/su#7 integrate .. //depot/projects/mips/etc/pam.d/telnetd#5 integrate .. //depot/projects/mips/etc/pam.d/xdm#5 integrate .. //depot/projects/mips/etc/pccard_ether#3 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue May 27 21:20:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 08E0937B401; Tue, 27 May 2003 21:20: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 8CE8737B407 for ; Tue, 27 May 2003 21:20:48 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8C2EB43FAF for ; Tue, 27 May 2003 21:20:46 -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 h4S4Kk0U083060 for ; Tue, 27 May 2003 21:20:46 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4S4KiN5083029 for perforce@freebsd.org; Tue, 27 May 2003 21:20:44 -0700 (PDT) Date: Tue, 27 May 2003 21:20:44 -0700 (PDT) Message-Id: <200305280420.h4S4KiN5083029@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 31964 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, 28 May 2003 04:20:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=31964 Change 31964 by marcel@marcel_nfs on 2003/05/27 21:20:04 IFC @31962 Affected files ... .. //depot/projects/ia64/contrib/binutils/bfd/elf64-alpha.c#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_exit.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#5 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/early-adopter/article.sgml#8 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/errata/article.sgml#10 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/alpha/proc-alpha.sgml#14 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/common/dev.sgml#16 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/common/intro.sgml#3 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/i386/proc-i386.sgml#5 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/ia64/article.sgml#5 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/ia64/proc-ia64.sgml#3 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/hardware/sparc64/proc-sparc64.sgml#6 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/installation/common/install.sgml#11 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/installation/common/trouble.sgml#9 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/installation/common/upgrade.sgml#6 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/readme/article.sgml#10 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/relnotes/common/new.sgml#22 integrate .. //depot/projects/ia64/release/doc/de_DE.ISO8859-1/share/sgml/release.dsl#7 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#95 integrate .. //depot/projects/ia64/sys/amd64/amd64/identcpu.c#3 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/dsmethod.c#9 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/nsalloc.c#7 integrate .. //depot/projects/ia64/sys/dev/firewire/fwdma.h#2 integrate .. //depot/projects/ia64/sys/dev/mpt/mpt_freebsd.c#8 integrate .. //depot/projects/ia64/sys/net/if_loop.c#17 integrate .. //depot/projects/ia64/sys/pci/agp_intel.c#10 integrate .. //depot/projects/ia64/sys/pci/agpreg.h#6 integrate Differences ... ==== //depot/projects/ia64/contrib/binutils/bfd/elf64-alpha.c#8 (text+ko) ==== @@ -19,6 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* $FreeBSD: src/contrib/binutils/bfd/elf64-alpha.c,v 1.18 2003/05/28 03:32:33 obrien Exp $ */ + /* We need a published ABI spec for this. Until one comes out, don't assume this'll remain unchanged forever. */ @@ -4490,8 +4492,20 @@ value -= gp; goto default_reloc; + case R_ALPHA_GPREL32: + /* If the target section was a removed linkonce section, + r_symndx will be zero. In this case, assume that the + switch will not be used, so don't fill it in. If we + do nothing here, we'll get relocation truncated messages, + due to the placement of the application above 4GB. */ + if (r_symndx == 0) + { + r = bfd_reloc_ok; + break; + } + /* FALLTHRU */ + case R_ALPHA_GPREL16: - case R_ALPHA_GPREL32: case R_ALPHA_GPRELLOW: if (dynamic_symbol_p) { ==== //depot/projects/ia64/lib/libthr/thread/thr_exit.c#5 (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/libthr/thread/thr_exit.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.7 2003/05/27 21:48:42 mtm Exp $ */ #include #include @@ -94,7 +94,7 @@ void _pthread_exit(void *status) { - pthread_t pthread; + pthread_t pthread, joiner; int exitNow = 0; /* Check if this thread is already in the process of exiting: */ @@ -122,10 +122,27 @@ _thread_cleanupspecific(); } +retry: + /* + * Proper lock order, to minimize deadlocks, between joining + * and exiting threads is: DEAD_LIST, THREAD_LIST, exiting, joiner. + * In order to do this *and* protect from races, we must resort + * this test-and-retry loop. + */ + joiner = curthread->joiner; + /* Lock the dead list first to maintain correct lock order */ DEAD_LIST_LOCK; + THREAD_LIST_LOCK; _thread_critical_enter(curthread); + if (joiner != curthread->joiner) { + _thread_critical_exit(curthread); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; + goto retry; + } + /* Check if there is a thread joining this one: */ if (curthread->joiner != NULL) { pthread = curthread->joiner; @@ -151,7 +168,6 @@ * Add this thread to the list of dead threads, and * also remove it from the active threads list. */ - THREAD_LIST_LOCK; TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); TAILQ_REMOVE(&_thread_list, curthread, tle); PTHREAD_SET_STATE(curthread, PS_DEAD); ==== //depot/projects/ia64/lib/libthr/thread/thr_join.c#5 (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/libthr/thread/thr_join.c,v 1.6 2003/05/26 00:28:49 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.7 2003/05/27 21:43:49 mtm Exp $ */ #include #include @@ -107,9 +107,10 @@ /* Check if the thread is not dead: */ if (pthread->state != PS_DEAD) { - _thread_critical_enter(curthread); /* Set the running thread to be the joiner: */ pthread->joiner = curthread; + _SPINUNLOCK(&pthread->lock); + _thread_critical_enter(curthread); /* Keep track of which thread we're joining to: */ curthread->join_status.thread = pthread; @@ -118,11 +119,19 @@ PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ _thread_critical_exit(curthread); - _SPINUNLOCK(&pthread->lock); THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); + /* + * XXX - For correctness reasons. + * We must aquire these in the same order and also + * importantly, release in the same order, order because + * otherwise we might deadlock with the joined thread + * when we attempt to release one of these locks. + */ + DEAD_LIST_LOCK; + THREAD_LIST_LOCK; _thread_critical_enter(curthread); } @@ -134,6 +143,8 @@ if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; _thread_critical_exit(curthread); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; } else { /* * The thread exited (is dead) without being detached, and no ==== //depot/projects/ia64/release/doc/de_DE.ISO8859-1/early-adopter/article.sgml#8 (text+ko) ==== @@ -1,9 +1,9 @@ %release; + +X"> +X"> + ]>
- Hinweise für die ersten Anwender von &os; 5.0-RELEASE + Hinweise für die ersten Anwender von &os; + &release.current; The &os; Release Engineering Team - $FreeBSD: src/release/doc/de_DE.ISO8859-1/early-adopter/article.sgml,v 1.10 2003/01/18 16:42:18 ue Exp $ + $FreeBSD: src/release/doc/de_DE.ISO8859-1/early-adopter/article.sgml,v 1.11 2003/05/27 16:11:08 alex Exp $ 2002 @@ -42,37 +47,52 @@ The &os; Release Engineering Team + + + Dieser Artikel enthält Informationen über den + Status von &os; &release.current; für die Anwender, die + bisher noch keine Erfahrung mit den &release.5x; Versionen + oder &os; sammeln konnten. Er enthält einige + Hintergrundinformationen über die vor und während + einer Veröffentlichung ablaufende Prozesse, nennt die + wichtigsten Neuerungen und die Stellen, an denen die ersten + Anwender Probleme haben könnten. Weiterhin gibt es + Informationen über die Pläne für weitere + Veröffentlichungen im Entwicklungszweig 4-STABLE und + ein paar Hinweise für die Aktualisierung bestehender + Systeme. + Einführung - Nach über zwei Jahren steht mit &os; 5.0 wieder eine - komplett neue &os;-Version zur Verfügung. Sie bietet nicht - nur diverse neue Möglichkeiten, auch und gerade - unter der Haube hat sich einiges verbessert. Der - Nachteil dieser Neuerungen ist, daß große Teile des - Systems neu und nicht ausreichend getestet sind. Im Vergleich - zu den existierenden 4.X Versionen - kann der Schritt zu 5.0 zu Verschlechterungen in den Bereichen - Stabilität, Leistung und teilweise auch Funktionalität - führen. + Nach über zwei Jahren steht mit &os; &release.5x; + wieder eine komplett neue &os;-Version zur Verfügung. Sie + bietet nicht nur diverse neue Möglichkeiten, auch und + gerade unter der Haube hat sich einiges + verbessert. Der Nachteil dieser Neuerungen ist, daß + große Teile des Systems neu und nicht ausreichend getestet + sind. Im Vergleich zu den existierenden &release.4x; Versionen + kann der Schritt zu den ersten &release.5x; Versionen zu + Verschlechterungen in den Bereichen Stabilität, Leistung + und teilweise auch Funktionalität führen. Aus diesen Gründen warnen wir alle Anwender, ihre - Systeme nicht blind von älteren - &os;-Versionen auf 5.0 zu aktualisieren. Gerade konservative - Anwender sollten in der nahen Zukunft - 4.X-Versionen (wie 4.7-RELEASE oder - das demnächst erscheinende 4.8-RELEASE) benutzen. Wir - meinen, daß diese Anwender erst zu - 5.X wechseln sollten, nachdem der - Entwicklungszweig 5-STABLE existiert, der wahrscheinlich nach - der Veröffentlichung von 5.1-RELEASE oder 5.2-RELEASE - eingerichtet werden wird. + Systeme nicht von älteren &os;-Versionen auf 5.0 zu + aktualisieren, wenn sie die "Problemzonen" nicht kennen + oder nicht bereit sind, die Einschränkungen in den neuesten + Versionen in Kauf zu nehmen. Gerade konservative Anwender + sollten in der nahen Zukunft &release.4x;-Versionen (wie + 4.8-RELEASE) benutzen. Wir meinen, daß diese Anwender + erst zu &release.5x; wechseln sollten, nachdem der + Entwicklungszweig 5-STABLE existiert; dies wird wahrscheinlich + nach der Veröffentlichung von 5.2-RELEASE + passieren. Hier zeigt sich das Henne und Ei Problem bei - der Veröffentlichung von &os; 5.0. Alle am &os; Project - beteiligten Personen wollen ein 5.0-RELEASE, das möglichst + der Veröffentlichung von &os; &release.5x;. Alle am &os; + Project beteiligten Personen wollen ein &os;, das möglichst stabil und zuverlässig ist. Um dieses Ziel zu erreichen, müssen die neue Version und speziell die neuen Komponenten von möglichst vielen Anwendern getestet werden. @@ -82,18 +102,17 @@ zu testenden Version! Dieser Artikel beschreibt einige der Probleme, die bei der - Installation und Benutzung von &os; 5.0-RELEASE auftreten + Installation und Benutzung von &os; &release.current; auftreten können. Zuerst wird beschrieben, wie eine neue FreeBSD Version veröffentlicht wird. Dann werden die - interessanteren Neuerungen in FreeBSD 5.0 und die Bereiche, in - denen (gerade für unvorsichtige Anwender) Probleme - auftreten können, vorgestellt. Anwender, die erst einmal - bei Systemen auf Basis von 4-STABLE bleiben möchten, + interessanteren Neuerungen in FreeBSD &release.current; und die + Bereiche, in denen (gerade für unvorsichtige Anwender) + Probleme auftreten können, vorgestellt. Anwender, die erst + einmal bei Systemen auf Basis von 4-STABLE bleiben möchten, erhalten einen kurzen Ausblick auf die kurz- und mittelfristigen Planungen für diesen Entwicklungszweig. Zuletzt wird besprochen, was bei einer Aktualisierung eines existierenden - 4.X Systems auf 5.0 beachtet werden - muß. + &release.4x; Systems auf 5.0 beachtet werden muß. @@ -116,16 +135,16 @@ (stabil) genannten Entwicklungszweige. Neuerungen werden nur in diese Entwicklungszweige übernommen, nachdem sie in CURRENT getestet wurden. Zur Zeit gibt es nur einen aktiven STABLE - Entwicklungszweig: 4-STABLE; dieser Zweig war - die Grundlage für alle 4.X - Versionen. Dieser Zweig wird innerhalb des CVS Repository durch - den symbolischen Namen RELENG_4 - gekennzeichnet. + Entwicklungszweig: 4-STABLE; dieser Zweig war + die Grundlage für alle &release.4x; Versionen. Dieser + Zweig wird innerhalb des CVS Repository durch den symbolischen + Namen RELENG_4 gekennzeichnet. - Die Basis für &os; 5.0 wird der Entwicklungszweig - CURRENT sein. Damit wird zum ersten Mal nach über zwei - Jahren eine neue Version auf Basis dieses Entwicklungszweiges - erscheinen (die letzte war &os; 4.0, im März 2000). + Die Basis für &os; 5.0 und 5.1 ist der + Entwicklungszweig CURRENT. Damit wird zum ersten Mal nach + über zwei Jahren eine neue Version auf Basis dieses + Entwicklungszweiges erscheinen (die letzte war &os; 4.0, im + März 2000). Einige Zeit nach der Veröffentlichung von &os; 5.0 wird im &os; CVS Repository der Zweig 5-STABLE mit dem @@ -134,31 +153,38 @@ 4-STABLE) wurden unmittelbar nach der Veröffentlichung der jeweiligen Punkt Null Versionen (3.0 bzw. 4.0) erzeugt. Rückblickend müssen wir feststellen, - daß dadurch weder CURRENT noch der neue Entwicklungszweig - genügend Zeit hatten, um einen stabilen Zustand zu - erreichen. + daß dadurch in beiden Fällen nicht genug Zeit war, um + CURRENT zu stabilisieren, bevor der neue Entwicklungszweig + eingerichtet wurde. Dies führte zu unnötiger + Mehrarbeit, da Fehlerkorrekturen von einem Zweig in den anderen + Zweig übertragen werden mußten; außerdem kam + es zu einigen Änderungen in der Architektur, die nicht in + den jeweils anderen Zweig übernommen werden konnten. Aus diesem Grund wird das Release Engineering Team den neuen 5-STABLE Entwicklungszweig erst dann im CVS Repository einrichten, wenn eine solide Grundlage zur Verfügung steht. Es ist sehr wahrscheinlich, daß vorher mehrere - 5.X Versionen erscheinen werden; zur - Zeit rechnen wir damit, daß 5-STABLE nach dem Erscheinen - von 5.1-RELEASE oder 5.2-RELEASE erzeugt werden wird. + &release.5x; Versionen erscheinen werden; zur Zeit rechnen wir + damit, daß 5-STABLE nach dem Erscheinen von 5.2-RELEASE + erzeugt werden wird. Weitere Informationen über den Ablauf bei der Veröffentlichung einer neuen &os; Version finden Sie auf den Release Engineering Web pages und im Artikel Release - Engineering. + url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/index.html">&os; + Release Engineering. Informationen über den + geplanten Entwicklungszweig 5-STABLE finden Sie auf der The + Roadmap for 5-STABLE. Neuerungen - Die Glanzpunkte von &os; 5.0 sind die vielen Neuerungen. + Die Glanzpunkte von &os; &release.5x; sind die vielen Neuerungen. Diese Neuerungen und die neue Funktionalität basieren zum größten Teil auf massiven Änderungen der Systemarchitektur, die nicht in den Entwicklungszweig 4-STABLE @@ -181,7 +207,11 @@ KSE: Die Kernel Scheduled Entities erlauben es einem Prozess, mehrere Threads auf Kernel-Ebene - zu nutzen, analog zur Aktivierung via Scheduler. + zu nutzen, analog zur Aktivierung via Scheduler. Die + (experimentellen) Bibliotheken libkse + und libthr erlauben auch normalen + Programmen mit mehreren Threads, diese Erweiterung zu + nutzen. @@ -192,7 +222,7 @@ GCC: Der Compiler und die dazugehörigen Werkzeuge - basieren jetzt auf GCC 3.2.1 und nicht mehr auf GCC + basieren jetzt auf GCC 3.2.2 und nicht mehr auf GCC 2.95.X. @@ -219,7 +249,11 @@ UFS2: Dieses neue Dateisystem unterstützt größere Dateien und zusätzliche - Dateiberechtigungen. + Dateiberechtigungen. &man.newfs.8; erzeugt jetzt + standardmäßig UFS2 Dateisysteme und auf allen + Plattformen außer PC98 gilt dies auch für + Dateisysteme, die mit &man.sysinstall.8; erzeugt + werden. @@ -229,23 +263,26 @@ Eine ausführlichere Übersicht über die Neuerungen finden Sie in den Release Notes - für &os; 5.0. + für &os; &release.prev; und &release.current;. - Nachteile für frühre Anwender + Nachteile für frühe Anwender - Ein Nachteil der Neuerungen in &os; 5.0 ist, daß es in - einigen Bereichen auf Grund der noch nicht abgeschlossenen - Entwicklung zu Problemen oder zu unerwarteten Effekten kommen - kann. Einige (aber nicht alle) der Problemzonen sind in der - folgenden Liste zusammengefaßt: + Ein Nachteil der Neuerungen in &os; &release.5x; ist, + daß es in einigen Bereichen auf Grund der noch nicht + abgeschlossenen Entwicklung zu Problemen oder zu unerwarteten + Effekten kommen kann. Einige (aber nicht alle) der Problemzonen + sind in der folgenden Liste zusammengefaßt: Die Arbeit an diversen Neuerungen ist noch nicht abgeschlossen, dazu gehören unter anderem SMPng und - KSE. + KSE. Diese Erweiterungen sind zwar für Test- und + Experimentalzwecke ausreichend stabil, aber unter + Umständen nicht stabil genug für den + Produktionsbetrieb. @@ -270,20 +307,27 @@ + Einige Teile des &os;-Basissystems wurden nicht mehr + gepflegt, weil es nicht genügend Anwender und/oder + Entwickler gab. Diese Teile mußten entfernt werden, + dazu zählen unter anderem die Erzeugung von Programmen + im Format a.out;, die XNS-Netzwerkprotokolle und der Treiber + für den X-10 Controller. + + + Viele Ports und Packages, die mit &os; 4-STABLE noch - korrekt liefen, könen mit &os; 5.0 nicht genutzt - oder nicht compiliert werden. Der Grund ist in der Regel - der neue Compiler oder die Aufräumarbeiten in den + korrekt liefen, können mit &os; 5.0 nicht genutzt oder + nicht kompiliert werden. Der Grund ist in der Regel der + neue Compiler oder die Aufräumarbeiten in den Header-Dateien. - Da &os; 5.0 nach über zwei Jahren Entwicklung - die erste Version auf Basis des Entwicklungszweiges CURRENT - ist, wurden viele Neuerungen bisher nur auf relativ wenigen - Systemen getestet. Viele dieser Neuerungen (wie SMPng) - haben Auswirkungen auf große Bereiche des - Kernels. + Viele der Neuerungen in &os; &release.5x; wurden bisher + nur auf relativ wenigen Systemen getestet. Viele dieser + Neuerungen (wie SMPng) haben Auswirkungen auf große + Bereiche des Kernels. @@ -299,17 +343,17 @@ gereift sind. Bei &os; 5.0 fehlt dieser stabilisierende Effekt eines -STABLE Entwicklungszweiges. Der Entwicklungszweig 5-STABLE wird wahrscheinlich erst - einige Zeit nach der Veröffentlichung von 5.1-RELEASE - oder 5.2-RELEASE eingerichtet werden. + einige Zeit nach der Veröffentlichung von 5.2-RELEASE + eingerichtet werden. Die Dokumentation (wie z.B. das &os; Handbuch und der FAQ) sind teilweise noch nicht auf dem Stand von - &os; 5.0. + url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/index.html">Handbuch + und der FAQ) + ist teilweise noch nicht auf dem Stand von + &os; &release.5x;. @@ -317,41 +361,36 @@ Stabilität des Systems haben, rät das Release Engineering Team konservativen Anwendern und Firmen, Versionen aus dem Entwicklungszweig 4-STABLE zu verwenden, bis die - 5.X Versionen zuverlässiger + &release.5x; Versionen zuverlässiger geworden sind. Die Zukunft des Entwicklungszweiges 4-STABLE - Die Veröffentlichung von &os; 5.0 bedeutet nicht das - Ende der Entwicklungszweiges 4-STABLE. Es wird auf jeden Fall - noch eine weitere Version auf der Basis dieses - Entwicklungszweiges geben: Das voraussichtlich im März - 2003 erscheinende 4.8-RELEASE. + Die Veröffentlichung von &os; 5.0 bedeutete nicht das + Ende des Entwicklungszweiges 4-STABLE: &os; 4.8 erschien im + April 2003, zwei Monate nach der Veröffentlichung von &os; + 5.0. Es wird wahrscheinlich noch eine weitere Version auf der + Basis dieses Entwicklungszweiges geben: Das für den Sommer + 2003 geplante 4.9-RELEASE. Auch eine Version 4.10 liegt im + Bereich des Möglichen. Dies hängt von mehreren + Faktoren ab, der wichtigste davon ist die Existenz und + Stabilität des Entwicklungszweiges 5-STABLE. Wenn CURRENT + nicht stabil genug ist, um einen Entwicklungszweig 5-STABLE zu + rechtfertigen, werden weitere Versionen auf Basis des + Entwicklungszweiges 4-STABLE möglich und notwendig sein. + Bis zum Erscheinen der offiziell letzten Version auf Basis von + 4-STABLE bleibt es den Entwicklern überlassen, ob sie + Neuerungen aus HEAD in 4-STABLE einpflegen + (im Rahmen der schon bestehenden Regelungen). - Zum gegenwärtigen Zeitpunkt hat das Release Engineering - Team noch keine Entscheidung über weitere Versionen - (jenseits von 4.8) auf Basis des Entwicklungszweiges 4-STABLE - getroffen. Allerdings ist es sehr wahrscheinlich, daß es - ein 4.9-RELEASE oder sogar ein 4.10-RELEASE geben wird. Dies - hängt von mehreren Faktoren ab, der wichtigste davon ist - die Existenz und Stabilität des Entwicklungszweiges - 5-STABLE. Wenn CURRENT nicht stabil genug ist, um einen - Entwicklungszweiges 5-STABLE zu rechtfertigen, werden weitere - Versionen auf Basis des Entwicklungszweiges 4-STABLE - möglich und notwendig sein. Bis zum Erscheinen der - offiziell letzten Version auf Basis von 4-STABLE bleibt es den - Entwicklern überlassen, ob sie Neuerungen aus HEAD in - 4-STABLE einpflegen (im Rahmen der schon bestehenden - Regelungen). + Bis zu einem gewissen Grad werden das Release Engineering + Team und die Entwickler auch die Wünsche der Benutzer nach + weiteren Versionen auf Basis von 4-STABLE beachten. Allerdings + nur, so weit dies im Rahmen der beschränkten Ressourcen + möglich ist. - Bis zu einem gewissen Grad wird das Release Engineering Team - auch die Wünsche der Benutzer nach weiteren Versionen auf - Basis von 4-STABLE beachten. Allerdings nur, so weit dies im - Rahmen der beschränkten Ressourcen möglich - ist. - Neue Versionen auf Basis des Entwicklungszweiges 4-STABLE werden vom &a.security-officer; im üblichen Rahmen unterstützt werden, genauere Informationen dazu finden Sie @@ -361,28 +400,31 @@ letzten beiden Versionen jedes Entwicklungszweiges durch die Veröffentlichung von Sicherheitshinweisen und Patches unterstützt; dem Team ist es allerdings freigestellt, diese - Unterstützung auf weitere Versionen auszudehnen. + Unterstützung auf weitere Versionen oder spezielle Probleme + auszudehnen. - Hinweise für die Aktualisierung + Hinweise für die Aktualisierung von &os; &release.4x; Dieses Kapitel enthält Hinweise für Anwender, die - ihr bestehendes &os; 4.X System auf - &os; 5.X aktualisieren wollen. Wie - bei jeder Aktualisierung ist es auf jeden Fall notwendig, voher - die Release Notes und die Errata der neuen Version zu lesen; bei - Aktualisierung über den Quellcode ist - src/UPDATING Pflichtlektüre. + ihr bestehendes &os; &release.4x; System auf &os; &release.5x; + aktualisieren wollen. Wie bei jeder Aktualisierung ist es auf + jeden Fall notwendig, vorher die Release Notes und die Errata der + neuen Version zu lesen; bei Aktualisierung über den + Quellcode ist src/UPDATING + Pflichtlektüre. Aktualisierung ohne Quellcode Der einfachste Ansatz ist immer noch - Sicherheitskopien erstellen, Platte formatieren, neues + Sicherheitskopien erstellen, Platte formatieren, neues System installieren, Daten wieder einspielen. Dadurch werden alle Probleme mit veralteten und nicht kompatiblen - Programmen und Konfigurationsdateien umgangen. + Programmen und Konfigurationsdateien umgangen. Die neuen + Dateisysteme können maximalen Nutzen aus den diversen + Neuerungen (speziell UFS2) ziehen. Zum gegenwärtigen Zeitpunkt hat noch niemand ausführlich getestet, ob und wie gut die @@ -390,10 +432,10 @@ Update von 4.0 zu 5.0 funktioniert. Wir raten daher dringend von der Verwendung dieser Funktion ab. Eines der Hauptprobleme ist, daß bei dieser Variante diverse - Dateien nicht gelöscht werden, die zwar von - 4.X genutzt wurden, aber in 5.0 - nicht mehr vorhanden sind. Diese Altlasten können zu - Problemen führen. + Dateien nicht gelöscht werden, die zwar von &release.4x; + genutzt wurden, aber in &release.5x; nicht mehr vorhanden + sind. Diese Altlasten können zu Problemen + führen. Auf i386 und pc98 Systemen kann die Konfiguration von ISA Geräten beim Systemstart mit dem Werkzeug UserConfig @@ -417,7 +459,7 @@ (GENERIC) statt des auf den Disketten verwendeten Mini-Kernels zu nutzen. Jedes System, das von den Installations-CDs für Windows NT 4.0 booten kann, sollte - auch mit der &os; 5.0 CD-ROM zurechtkommen. + auch mit den &os; &release.5x; CD-ROMs zurechtkommen. @@ -436,17 +478,17 @@ Allgemeine Hinweise Perl wurde aus dem Basissystem - entfernt und sollte entweder via Package oder über die + entfernt und sollte entweder als Package oder über die Ports Collection installiert werden. Die bisher übliche - Praxis, Perl als Teil des Basissystem zu behandeln und mit ihm - zusammen zu compilieren, führte zu diversen Problemen, + Praxis, Perl als Teil des Basissystems zu behandeln und mit ihm + zusammen zu kompilieren, führte zu diversen Problemen, die eine Aktualisierung von Perl erschwerten. Die im Standardsystem vorhandenen Programme, die Perl benötigten, wurden entweder in einer anderen Sprache neu geschrieben (wenn sie noch benötigt wurden) oder ersatzlos entfernt (wenn sie überflüssig waren). Da &man.sysinstall.8; das Perl Package bei den meisten - Distributionen automatisch mit instaliert, sollte diese + Distributionen automatisch mit installiert, sollte diese Änderung kaum Auswirkungen auf die Anwender haben. @@ -458,12 +500,12 @@ Nach dem Aufruf von use.perl port sollte alles wie erwartet funktionieren. - Es ist zwar möglich, Programme aus - 4.X mit - 5.X zu betreiben, allerdings - muß dazu die Distribution compat4x - installiert sein. Damit könnte es - auch möglich sein, alte Ports zu benutzen. + Es ist zwar möglich, für &release.4x; + geschriebene Programme unter &release.5x; zu nutzen, + allerdings muß dazu die Distribution + compat4x installiert sein. Damit + könnte es auch möglich sein, + alte Ports zu benutzen. Bei der Aktualisierung eines bestehenden Systems auf Basis von 4-STABLE, ist es unbedingt notwendig, die alten Dateien in @@ -474,21 +516,42 @@ Verzeichnis nicht entfernt, kann es zu Problemen kommen (speziell mit C++-Programmen), da der Compiler dann einen Mix aus alten und neuen Headerdateien verwendet. + + Es gibt kein MAKEDEV mehr, weil es + nicht mehr benötigt wird. &os; &release.5x; benutzt ein + spezielles Dateisystem für Geräte, das die + entsprechenden Device Nodes bei Bedarf automatisch erzeugt. + Weitere Informationen finden Sie in &man.devfs.5;. + + Alle mit &man.newfs.8; erzeugten Dateisysteme werden + standardmäßig im Format UFS2 angelegt. Diese gilt + auf allen Plattformen außer PC98 auch für + Dateisysteme, die mit &man.sysinstall.8; erzeugt werden. Da + &os; &release.4x; nur UFS1 lesen kann, müssen alle + Dateisysteme, die sowohl mit &release.4x; als auch mit + &release.5x; nutzbar sein sollen, im Format UFS1 erzeugt + werden. Dieser Fall tritt typischerweise auf Systemen auf, + auf denen &release.4x; und &release.5x; installiert und + abwechselnd betrieben werden. In &man.newfs.8; steht dazu die + Option zur Verfügung, auch + &man.sysinstall.8; enthält eine entsprechende Option. + Bitte beachten Sie, daß es kein Konvertierungsprogramm + zur Umwandlung von UFS1 nach UFS2 (oder umgekehrt) gibt, nur + die Variante Backup, Formatieren, Restore. Zusammenfassung - &os; 5.0 enthält zwar viele interessante Neuerungen, - aber es ist noch nicht für alle Anwender geeignet. Aus - diesem Grund haben wir in diesem Dokument Informationen - über die Abläufe bei der Veröffentlichung einer - neuen Version, die interessantesten Neuerungen in den - 5.X Versionen und - wahrscheinliche Probleme gegeben. Weiterhin enthielt er einen - Ausblick auf die Zukunft des Entwicklungszweiges 4-STABLE und - Informationen für Anwender, die schon jetzt auf 5.0 - umsteigen wollen. + &os; &release.current; enthält zwar viele interessante + Neuerungen, aber es ist noch nicht für alle Anwender + geeignet. Aus diesem Grund haben wir in diesem Dokument + Informationen über die Abläufe bei der + Veröffentlichung einer neuen Version, die interessantesten + Neuerungen in den &release.5x; Versionen und wahrscheinliche + Probleme gegeben. Weiterhin enthielt er einen Ausblick auf die + Zukunft des Entwicklungszweiges 4-STABLE und Informationen + für Anwender, die schon jetzt umsteigen wollen.
==== //depot/projects/ia64/release/doc/de_DE.ISO8859-1/errata/article.sgml#10 (text+ko) ==== @@ -8,8 +8,8 @@ (If we didn't do this, then the file with the datestamp might not be the one that received the last change in the document.) - $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/errata/article.sgml,v 1.19 2003/02/06 21:56:00 ue Exp $ - basiert auf: 1.19 + $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/errata/article.sgml,v 1.39 2003/05/24 13:23:46 ue Exp $ + basiert auf: 1.38 --> Das &os; Projekt - $FreeBSD: src/release/doc/de_DE.ISO8859-1/errata/article.sgml,v 1.10 2003/02/07 07:27:27 ue Exp $ + $FreeBSD: src/release/doc/de_DE.ISO8859-1/errata/article.sgml,v 1.11 2003/05/27 16:11:08 alex Exp $ 2000 @@ -67,7 +67,7 @@ - also wichtige Informationen, die erst nach + also wichtige Informationen, die kurz vor bzw. erst nach der Veröffentlichung bekannt wurden. Dazu gehören Ratschläge zur Sicherheit sowie Änderungen in der Software oder Dokumentation, welche die Stabilität und die @@ -128,12 +128,65 @@ Sicherheitshinweise - Zur Zeit gibt es keine Sicherheitshinweise. + Ein über das Netzwerk nutzbarer Fehler in + CVS könnte dazu führen, + daß ein Angreifer beliebige Programme auf dem CVS Server + ausführen kann. Weitere Informationen finden Sie in FreeBSD-SA-03:01. + + Durch Auswertung der Antwortzeiten von + OpenSSL wäre es einem Angreifer + mit sehr viel Rechenleistung möglich gewesen, unter + bestimmten Umständen den Klartext der übermittelten + Daten zu erhalten. Dieser Fehler wurde in &os; + &release.current; durch die neue + OpenSSL Version 0.9.7 behoben. Auf + den für Sicherheitsprobleme unterstützten + Entwicklungszweigen wurde der Fehler durch die neue + OpenSSL Version 0.9.6i behoben. + Weitere Informationen finden Sie in FreeBSD-SA-03:02 + + Es ist theoretisch möglich, daß ein Angreifer den + geheimen Schlüssel ermittelt, der von der Erweiterung + syncookies genutzt wird. Dadurch sinkt deren + Effektivität beim Schutz vor TCP SYN Flood + Denial-of-Service Angriffen. Hinweise, wie sie das Problem + umgehen können und weitere Informationen finden Sie in + FreeBSD-SA-03:03. + + Durch diverse Puffer-Überläufe in den von + sendmail genutzten Routinen zum + Parsen des Headers war es einen Angreifer möglich, eine + speziell konstruierte Nachricht an &man.sendmail.8; zu senden + und so beliebige Programme ausführen zu lassen. Diese + Programme verfügten über die Rechte des Benutzers, + unter dessen Kennung &man.sendmail.8; lief, also typischerweise + root. Weitere Informationen und Verweise + auf Patches finden Sie in FreeBSD-SA-03:04 + und FreeBSD-SA-03:07. + + Durch einen Puffer-Überlauf im XDR Kodierer/Dekodierer + war es einem Angreifer möglich, den Service zum Absturz zu + bringen. Informationen, wie Sie den Fehler beheben, finden Sie + in FreeBSD-SA-03:05. + + OpenSSL enthält zwei + Schwachstellen, die erst vor kurzer Zeit bekannt gemacht wurden. + Informationen, wie Sie die Probleme umgehen können und + weitere Informationen finden Sie in FreeBSD-SA-03:06. Aktuelle Informationen + GEOM + Die auf &man.geom.4; basierenden Routinen des Kernel zur Partitionierung erlauben es nicht, eine aktive Partition zu überschreiben. Mit anderen Worten, es ist in der Regel @@ -144,12 +197,14 @@ umgehen, sollten Sie von einer anderen Platte, einer CD oder der Fixit-Diskette booten. + &man.dump.8; + Werden Festplatten und ähnliche Medien mit einer Blockgröße von mehr als 512 Byte benutzt (zum Beispiel mit &man.geom.4; verschlüsselte Partitionen), behandelt &man.dump.8; die größeren Sektoren nicht korrekt und kann daher das Dateisystem nicht dumpen. Eine - Möglichkeit, das Problem zu umgehen, ist die Erzegung einer + Möglichkeit, das Problem zu umgehen, ist die Erzeugung einer rohen Kopie des gesamten Dateisystems, die dann als Eingabedatei für &man.dump.8; dient. Es ist möglich, ein komplettes Dateisystem in einer normalen Datei @@ -161,18 +216,30 @@ Eine etwas einfachere Lösung ist, &man.tar.1; oder &man.cpio.1; zur Erzeugung des Backups zu verwende. + &man.mly.4; + Es gibt Berichte, daß sich Systeme bei der Installation von &os; 5.0 Snapshots auf RAIDs an &man.mly.4;-kompatiblen Controller aufgehängt haben, obwohl - die Systeme problemlos mit 4.7-RELEASE zusammenarbeiten. + die Systeme problemlos mit 4.7-RELEASE zusammenarbeiten. Dieser + Fehler wurde in &os; &release.current; bereits behoben. + + NETNCP/Unterstützung des + Dateisystems NETNCP und nwfs sind offenbar noch nicht an KSE - angepaßt worden und funktionieren daher nicht. + angepaßt worden und funktionieren daher nicht. Dieser + Fehler wurde in &os; &release.current; bereits behoben.
+ + &man.iir.4; Controller Bei der Installation scheinen &man.iir.4;-Controller korrekt erkannt zu werden, allerdings finden Sie keine der angeschlossenen Festplatten. + Timing-Probleme in + &man.truss.1; + Es scheint ein Timing-Problem beim Start des Debuggings mit &man.truss.1; zu geben, durch das &man.truss.1; manchmal nicht in der Lage ist, eine Verbindung zu einem Prozeß @@ -180,7 +247,7 @@ &man.truss.1;, daß es die &man.procfs.5; Node für den zu debuggenden Prozeß nicht öffnen kann. Es scheint einen weiteren Fehler zu geben, durch den &man.truss.1; sich - aufhöngt, wenn &man.execve.2; den Wert + aufhängt, wenn &man.execve.2; den Wert ENOENT zurückgibt. Ein weiteres Timing-Problem führt dazu, daß &man.truss.1; beim Start manchmal PIOCWAIT: Input/output @@ -189,18 +256,25 @@ zur Ausführung von Prozessen eingreifen, werden sie erst nach dem Erscheinen von 5.0 ins System aufgenommen. + Partitionierung von Festplatten durch + das Installationsprogramm + Es gibt einige Meldungen über Fehler bei der Partitionierung von Festplatten mit &man.sysinstall.8;. Eines der Probleme ist, daß &man.sysinstall.8; den freien Platz auf einer Festplatten nicht neu berechnen kann, nachdem der Typ einer FDISK-Partition geändert wurde. + Veraltete Dokumentation + In einigen Fällen wurde die Dokumentation (wie zum Beispiel die FAQ und das Handbuch) nicht aktualisiert und geht nicht auf die Neuerungen in &os; &release.prev; ein. Zum Beispiel fehlt noch Dokumentation zu &man.gbde.8; und den neuen fast IPsec Routinen. + SMB Dateisystem + Ab und zu kommt beim Versuch, die Verbindung zu einem SMBFS Share zu trennen, die Meldung Device busy, obwohl das Share nicht benutzt wird. Die @@ -213,14 +287,18 @@ einer Kernel Panic führen. Dieser Fehler wurde in &release.current; bereits behoben. + &man.fstat.2; + Wird &man.fstat.2; auf einen Socket angewendet, für den bereits eine Verbindung besteht, sollte es die Anzahl der zum Lesen verfügbaren Zeichen in dem Feld st_size der Struktur struct - stat. Leider wird bei TCP Sockets immer ein + stat zurückgeben. Leider wird bei TCP Sockets immer ein st_size von 0 gemeldet. Dieser Fehler wurde in &release.current; bereits behoben. + Kernel Event Queues + Der zu &man.kqueue.2; gehörende Filter EVFILT_READ meldet fälschlicherweise immer, daß an einem TCP Socket 0 @@ -231,30 +309,94 @@ fehlerhaft. Dieser Fehler wurde in &release.current; bereits behoben. + POSIX Named Semaphores + Eine der Neuerungen in &os; &release.prev; ist die Unterstützung für Named Semaphores nach POSIX. Die Routinen enthalten leider einen Fehler, durch den sich - &man.sem.open.3; falsch verhalten kann, wenn eine Sempahore von - einem Prozess mehrfach geöffnet wird und durch + &man.sem.open.3; falsch verhalten kann, wenn eine Semaphore von + einem Prozeß mehrfach geöffnet wird und durch den &man.sem.close.3; zum Absturz des Programms führen kann. Dieser Fehler wurde in &release.current; bereits behoben. + Zugriffsrechte für + /dev/tty + &os; &release.prev; enthält einen kleinen Fehler im Bereich der Berechtigungen von /dev/tty. Dieser Fehler tritt auf, wenn sich ein Benutzer einloggt, der weder root noch Mitglied der Gruppe - tty. Wechselt dieser Benutzer nun mit - &man.su.1; zu einer anderen Benutzerkennungen, die ebenfalls + tty ist. Wechselt dieser Benutzer nun mit + &man.su.1; zu einer anderen Benutzerkennung, die ebenfalls weder root noch Mitglied der Gruppe tty ist, kann er &man.ssh.1; nicht nutzen, da es /dev/tty nicht öffnen kann. Dieser Fehler wurde in &release.current; bereits behoben. + &man.growfs.8; + &man.growfs.8; funktioniert auf &man.vinum.4; Partitionen - nicht mehr, da auf ihnen kein Disklabel mehr emuliert wird - und &man.growfs.8; das Disklabel analysieren will. Das Problem + nicht mehr, da auf ihnen kein Disklabel mehr emuliert wird und + &man.growfs.8; das Disklabel analysieren will. Das Problem betrifft wahrscheinlich auch alle anderen Massenspeicher, für die &man.geom.4; benutzt wird. + + IPFW + + &man.ipfw.4; skipto Regeln funktionieren >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue May 27 22:35:19 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E997137B404; Tue, 27 May 2003 22:35:18 -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 A03C237B401 for ; Tue, 27 May 2003 22:35:18 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4AD0043F3F for ; Tue, 27 May 2003 22:35:18 -0700 (PDT) (envelope-from jmallett@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 h4S5ZI0U086526 for ; Tue, 27 May 2003 22:35:18 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4S5ZHEu086523 for perforce@freebsd.org; Tue, 27 May 2003 22:35:17 -0700 (PDT) Date: Tue, 27 May 2003 22:35:17 -0700 (PDT) Message-Id: <200305280535.h4S5ZHEu086523@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31967 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, 28 May 2003 05:35:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=31967 Change 31967 by jmallett@jmallett_big-lizard on 2003/05/27 22:34:55 Try to catch up with recent IFC. Affected files ... .. //depot/projects/mips/include/Makefile#15 edit Differences ... ==== //depot/projects/mips/include/Makefile#15 (text+ko) ==== @@ -141,23 +141,13 @@ ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor - rm -rf ${DESTDIR}/usr/include/machine - ln -s ../../sys/${MACHINE_ARCH}/include ${DESTDIR}/usr/include/machine - -.include - -installincludes: ${SHARED} - cd ${.CURDIR}/../sys/opencrypto; \ - for h in *.h; do \ - ln -fs ../../../sys/opencrypto/$$h \ - ${DESTDIR}${INCLUDEDIR}/crypto; \ - done .if ${MACHINE_ARCH} != ${MACHINE} && exists(${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}) cd ${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}; \ for h in *.h; do \ ln -fs ../../../sys/${MACHINE_ARCH}/${MACHINE}/$$h \ ${DESTDIR}${INCLUDEDIR}/platform; \ done +.endif cd ${.CURDIR}/../sys/${MACHINE_ARCH}/include; \ for h in *.h; do \ ln -fs ../../../sys/${MACHINE_ARCH}/include/$$h \ From owner-p4-projects@FreeBSD.ORG Tue May 27 22:42:28 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5514237B404; Tue, 27 May 2003 22:42: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 E060837B401 for ; Tue, 27 May 2003 22:42:27 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8CF3A43F3F for ; Tue, 27 May 2003 22:42:27 -0700 (PDT) (envelope-from jmallett@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 h4S5gR0U086767 for ; Tue, 27 May 2003 22:42:27 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4S5gR0B086764 for perforce@freebsd.org; Tue, 27 May 2003 22:42:27 -0700 (PDT) Date: Tue, 27 May 2003 22:42:27 -0700 (PDT) Message-Id: <200305280542.h4S5gR0B086764@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 31968 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, 28 May 2003 05:42:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=31968 Change 31968 by jmallett@jmallett_big-lizard on 2003/05/27 22:42:23 Add back just a bit of accidentally-removed stuff. Affected files ... .. //depot/projects/mips/include/Makefile#16 edit Differences ... ==== //depot/projects/mips/include/Makefile#16 (text+ko) ==== @@ -141,6 +141,11 @@ ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor + cd ${.CURDIR}/../sys/opencrypto; \ + for h in *.h; do \ + ln -fs ../../../sys/opencrypto/$$h \ + ${DESTDIR}${INCLUDEDIR}/crypto; \ + done .if ${MACHINE_ARCH} != ${MACHINE} && exists(${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}) cd ${.CURDIR}/../sys/${MACHINE_ARCH}/${MACHINE}; \ for h in *.h; do \ From owner-p4-projects@FreeBSD.ORG Wed May 28 08:27:23 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B5C8B37B404; Wed, 28 May 2003 08:27: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 4F54137B401 for ; Wed, 28 May 2003 08:27:22 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F4DD43F75 for ; Wed, 28 May 2003 08:27:21 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4SFRL0U027593 for ; Wed, 28 May 2003 08:27:21 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4SFRLmc027590 for perforce@freebsd.org; Wed, 28 May 2003 08:27:21 -0700 (PDT) Date: Wed, 28 May 2003 08:27:21 -0700 (PDT) Message-Id: <200305281527.h4SFRLmc027590@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 31981 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, 28 May 2003 15:27:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=31981 Change 31981 by rwatson@rwatson_tislabs on 2003/05/28 08:26:27 Re-work MLS label parsing: - Comments are good. - Avoid pointer arithmetic when possible. - Rename variables to be more clear about what they do - Avoid combining assignments, comparisons, and unary operators. The same changes should be applied to Biba as well. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#164 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#164 (text+ko) ==== @@ -639,8 +639,8 @@ static int mac_mls_parse_element(struct mac_mls_element *element, char *string) { - char *p, *tp, *np; - int crange, d, i; + char *compartment, *end, *level; + int i, inset, setbase, value; if (strcmp(string, "high") == 0 || strcmp(string, "hi") == 0) { @@ -656,39 +656,69 @@ element->mme_level = MAC_MLS_TYPE_UNDEF; } else { - d = strtol(string, &p, 10); - if (d < 0 || d > 65535) + element->mme_type = MAC_MLS_TYPE_LEVEL; + + /* + * Numeric level piece of the element. + */ + level = strsep(&string, ":"); + value = strtol(level, &end, 10); + if (end == level || *end != '\0') + return (EINVAL); + if (value < 0 || value > 65535) return (EINVAL); + element->mme_level = value; - element->mme_type = MAC_MLS_TYPE_LEVEL; - element->mme_level = d; - - if (p == string || *p == '\0') + /* + * Optional compartment piece of the element. If none + * are included, we assume that the label has no + * compartments. + */ + if (string == NULL) return (0); - if (*p != ':') - return (EINVAL); - np = ++p; - if (np == NULL || *np == '\0') + if (*string == '\0') return (0); - crange = d = 0; - while ((tp = strsep(&np, "+")) != NULL) { - d = strtol(tp, &p, 10); - if (*p != '\0' || d < 1 || - d > MAC_MLS_MAX_COMPARTMENTS || crange >= d) + + /* + * Because we support a notation that accepts 'X++Y' for a + * set of continuous compartment values, we must keep track + * of the most recent possible start value. Initialize the + * tracking to (-1) to indicate that we don't have a base + * for the set yet. + */ + setbase = -1; + inset = 0; + while ((compartment = strsep(&string, "+")) != NULL) { + if (*compartment == '\0') { + /* No base yet. */ + if (setbase == -1) + return (EINVAL); + /* Already in set. */ + if (inset != 0) + return (EINVAL); + inset = 1; + continue; + } + /* + * An actual entry in the list, possible following + * a continuous compartment set. + */ + value = strtol(compartment, &end, 10); + if (compartment == end || *end != '\0') + return (EINVAL); + if (value < 1 || value > MAC_MLS_MAX_COMPARTMENTS) return (EINVAL); - if (crange > 0) { - for (i = crange; i <= d; i++) + if (inset) { + for (i = setbase; i <= value; i++) { MAC_MLS_BIT_SET(i, element->mme_compartments); - crange = 0; - } - if (np != NULL && *np == '+') { - ++np; - crange = d; + } + inset = 0; } else - MAC_MLS_BIT_SET(d, element->mme_compartments); + MAC_MLS_BIT_SET(value, + element->mme_compartments); + setbase = value; } - } return (0); } From owner-p4-projects@FreeBSD.ORG Wed May 28 08:58:22 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 29B9437B404; Wed, 28 May 2003 08:58: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 A2BB037B401 for ; Wed, 28 May 2003 08:58:21 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 39FC443FB1 for ; Wed, 28 May 2003 08:58:21 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4SFwK0U033850 for ; Wed, 28 May 2003 08:58:20 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4SFwKqo033847 for perforce@freebsd.org; Wed, 28 May 2003 08:58:20 -0700 (PDT) Date: Wed, 28 May 2003 08:58:20 -0700 (PDT) Message-Id: <200305281558.h4SFwKqo033847@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 31982 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, 28 May 2003 15:58:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=31982 Change 31982 by rwatson@rwatson_tislabs on 2003/05/28 08:57:19 Mirror MLS element parsing cleanup into Biba: add comments, avoid pointer arithmetic, use more meaningful variable names, avoid concurrent assignment and other operations. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#205 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#205 (text+ko) ==== @@ -675,8 +675,8 @@ static int mac_biba_parse_element(struct mac_biba_element *element, char *string) { - char *p, *tp, *np; - int crange, d, i; + char *compartment, *end, *grade; + int i, inset, setbase, value; if (strcmp(string, "high") == 0 || strcmp(string, "hi") == 0) { @@ -691,37 +691,68 @@ element->mbe_type = MAC_BIBA_TYPE_EQUAL; element->mbe_grade = MAC_BIBA_TYPE_UNDEF; } else { - d = strtol(string, &p, 10); - if (d < 0 || d > 65535) + element->mbe_type = MAC_BIBA_TYPE_GRADE; + + /* + * Numeric grade piece of the element. + */ + grade = strsep(&string, ":"); + value = strtol(grade, &end, 10); + if (end == grade || *end != '\0') + return (EINVAL); + if (value < 0 || value > 65535) return (EINVAL); + element->mbe_grade = value; - element->mbe_type = MAC_BIBA_TYPE_GRADE; - element->mbe_grade = d; - - if (p == string || *p == '\0') + /* + * Optional compartment piece of the element. If none + * are included, we assume that the label has no + * compartments. + */ + if (string == NULL) return (0); - if (*p != ':') - return (EINVAL); - np = ++p; - if (np == NULL || *np == '\0') + if (*string == '\0') return (0); - crange = d = 0; - while ((tp = strsep(&np, "+")) != NULL) { - d = strtol(tp, &p, 10); - if (*p != '\0' || d < 1 || - d > MAC_BIBA_MAX_COMPARTMENTS || crange >= d) + + /* + * Because we support a notation that accepts 'X++Y' for a + * set of continuous compartment values, we must keep track + * of the most recent possible start value. Initialize the + * tracking to (-1) to indicate that we don't have a base + * for the set yet. + */ + setbase = -1; + inset = 0; + while ((compartment = strsep(&string, "+")) != NULL) { + if (*compartment == '\0') { + /* No base yet. */ + if (setbase == -1) + return (EINVAL); + /* Already in set. */ + if (inset != 0) + return (EINVAL); + inset = 1; + continue; + } + /* + * An actual entry in the list, possible following + * a continuous compartment set. + */ + value = strtol(compartment, &end, 10); + if (compartment == end || *end != '\0') + return (EINVAL); + if (value < 1 || value > MAC_BIBA_MAX_COMPARTMENTS) return (EINVAL); - if (crange > 0) { - for (i = crange; i <= d; i++) + if (inset) { + for (i = setbase; i <= value; i++) { MAC_BIBA_BIT_SET(i, element->mbe_compartments); - crange = 0; - } - if (np != NULL && *np == '+') { - ++np; - crange = d; + } + inset = 0; } else - MAC_BIBA_BIT_SET(d, element->mbe_compartments); + MAC_BIBA_BIT_SET(value, + element->mbe_compartments); + setbase = value; } } return (0); From owner-p4-projects@FreeBSD.ORG Wed May 28 22:21:17 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33B1337B404; Wed, 28 May 2003 22:21:16 -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 BD92737B401 for ; Wed, 28 May 2003 22:21:15 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 558F543F3F for ; Wed, 28 May 2003 22:21:14 -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 h4T5LE0U090699 for ; Wed, 28 May 2003 22:21:14 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4T5LDeV090696 for perforce@freebsd.org; Wed, 28 May 2003 22:21:13 -0700 (PDT) Date: Wed, 28 May 2003 22:21:13 -0700 (PDT) Message-Id: <200305290521.h4T5LDeV090696@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 32002 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, 29 May 2003 05:21:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=32002 Change 32002 by marcel@marcel_nfs on 2003/05/28 22:20:36 IFC @32001 Affected files ... .. //depot/projects/ia64/crypto/openssh/sshd.c#9 integrate .. //depot/projects/ia64/lib/libc/rpc/svc_vc.c#7 integrate .. //depot/projects/ia64/lib/libc/stdlib/realpath.c#8 integrate .. //depot/projects/ia64/lib/libc/xdr/xdr_rec.c#7 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#53 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#96 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/errata/article.sgml#12 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#12 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#22 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/nsalloc.c#8 integrate .. //depot/projects/ia64/sys/ia64/ia64/trap.c#53 integrate .. //depot/projects/ia64/sys/kern/vfs_cluster.c#21 integrate Differences ... ==== //depot/projects/ia64/crypto/openssh/sshd.c#9 (text+ko) ==== @@ -43,7 +43,7 @@ #include "includes.h" RCSID("$OpenBSD: sshd.c,v 1.263 2003/02/16 17:09:57 markus Exp $"); -RCSID("$FreeBSD: src/crypto/openssh/sshd.c,v 1.33 2003/04/23 17:10:53 des Exp $"); +RCSID("$FreeBSD: src/crypto/openssh/sshd.c,v 1.34 2003/05/28 19:39:33 des Exp $"); #include #include @@ -835,9 +835,10 @@ /* Save argv. Duplicate so setproctitle emulation doesn't clobber it */ saved_argc = ac; saved_argv = av; - saved_argv = xmalloc(sizeof(*saved_argv) * ac); + saved_argv = xmalloc(sizeof(*saved_argv) * (ac + 1)); for (i = 0; i < ac; i++) saved_argv[i] = xstrdup(av[i]); + saved_argv[ac] = NULL; #ifndef HAVE_SETPROCTITLE /* Prepare for later setproctitle emulation */ ==== //depot/projects/ia64/lib/libc/rpc/svc_vc.c#7 (text+ko) ==== @@ -34,7 +34,7 @@ static char *sccsid = "@(#)svc_tcp.c 2.2 88/08/01 4.0 RPCSRC"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.17 2003/01/26 23:01:49 mbr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.18 2003/05/28 09:16:35 mbr Exp $"); /* * svc_vc.c, Server side for Connection Oriented based RPC. @@ -488,7 +488,12 @@ cfp = (struct cf_conn *)xprt->xp_p1; if (cfp->nonblock) { - len = _read(sock, buf, (size_t)len); + if (sa->sa_family == AF_LOCAL) { + cm = (struct cmessage *)xprt->xp_verf.oa_base; + if ((len = __msgread_withcred(sock, buf, len, cm)) > 0) + xprt->xp_p2 = &cm->cmcred; + } else + len = _read(sock, buf, (size_t)len); if (len < 0) { if (errno == EAGAIN) len = 0; ==== //depot/projects/ia64/lib/libc/stdlib/realpath.c#8 (text+ko) ==== @@ -30,7 +30,7 @@ static char sccsid[] = "@(#)realpath.c 8.1 (Berkeley) 2/16/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/realpath.c,v 1.19 2003/05/01 19:03:14 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/realpath.c,v 1.20 2003/05/28 08:23:01 fjoe Exp $"); #include "namespace.h" #include @@ -119,7 +119,7 @@ */ if (resolved_len > 1) { resolved[resolved_len - 1] = '\0'; - q = strrchr(resolved, '/'); + q = strrchr(resolved, '/') + 1; *q = '\0'; resolved_len = q - resolved; } @@ -158,7 +158,7 @@ } else if (resolved_len > 1) { /* Strip the last path component. */ resolved[resolved_len - 1] = '\0'; - q = strrchr(resolved, '/'); + q = strrchr(resolved, '/') + 1; *q = '\0'; resolved_len = q - resolved; } ==== //depot/projects/ia64/lib/libc/xdr/xdr_rec.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ static char *sccsid = "@(#)xdr_rec.c 2.2 88/08/01 4.0 RPCSRC"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_rec.c,v 1.19 2003/02/27 13:40:01 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_rec.c,v 1.20 2003/05/28 09:13:09 mbr Exp $"); /* * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking" @@ -489,16 +489,7 @@ XDR *xdrs; { RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - enum xprt_stat xstat; - if (rstrm->nonblock) { - if (__xdrrec_getrec(xdrs, &xstat, FALSE)) - return FALSE; - if (!rstrm->in_haveheader && xstat == XPRT_IDLE) - return TRUE; - return FALSE; - } - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { if (! skip_input_bytes(rstrm, rstrm->fbtbc)) return (TRUE); @@ -719,6 +710,8 @@ { u_int32_t header; + if (rstrm->nonblock) + return FALSE; if (! get_input_bytes(rstrm, (char *)(void *)&header, sizeof(header))) return (FALSE); header = ntohl(header); ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#53 (text+ko) ==== @@ -31,7 +31,7 @@ - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.155 2003/05/24 18:50:20 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.156 2003/05/28 21:01:22 hrs Exp $ Supported Devices @@ -688,7 +688,7 @@ ICM PSC-2401 SCSI - Melco IFC-SC + MELCO IFC-SC RATOC REX-5536, REX-5536AM, REX-5536M, @@ -1273,7 +1273,7 @@ (PCMPC100 V2) - Melco LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX + MELCO LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX NDC Ethernet Instant-Link @@ -1609,7 +1609,7 @@ LinkSys USB10T, USB10TA, USB10TX, USB100TX, USB100H1 - Melco LUA-TX, LUA2-TX + MELCO LUA-TX, LUA2-TX Planex UE-200TX @@ -1716,7 +1716,7 @@ GREEN HOUSE GH-USB100B - Melco LUA-KTX + MELCO LUA-KTX @@ -2345,7 +2345,7 @@ Lucent WaveLAN/IEEE 802.11 - Melco Airconnect WLI-PCM-S11, WLI-PCM-L11 + MELCO Airconnect WLI-PCM-S11, WLI-PCM-L11 NCR WaveLAN/IEEE 802.11 @@ -2428,7 +2428,7 @@ Icom SL-200 - Melco WLI-PCM + MELCO WLI-PCM NEL SSMagic @@ -3306,21 +3306,21 @@ Matshita CF-VFDU03 floppy drive - Melco USB2.0 MO Drive MO-CH640U2 + MELCO USB2.0 MO Drive MO-CH640U2 - Melco USB/IEEE1394 Portable HD Drive HDP-i30P/CI, HDP-i40P/CI + I-O DATA USB/IEEE1394 Portable HD Drive HDP-i30P/CI, HDP-i40P/CI - Melco USB Flash Disk PetitDrive, + MELCO USB Flash Disk PetitDrive, RUF-32M, -64M, -128M, -256M - Melco USB2.0 Flash Disk PetitDrive2, + MELCO USB2.0 Flash Disk PetitDrive2, RUF-256M/U2, -512M/U2 - Melco USB Flash Disk ClipDrive, + MELCO USB Flash Disk ClipDrive, RUF-C32M, -C64M, -C128M, -C256M, -C512M @@ -3521,7 +3521,7 @@ FAX-Modem/PCCARD - Melco IGM-PCM56K/IGM-PCM56KH + MELCO IGM-PCM56K/IGM-PCM56KH Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#96 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.572 2003/05/27 15:43:59 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.573 2003/05/28 21:01:22 hrs Exp $ 2000 @@ -735,7 +735,7 @@ The format of the /etc/pwd.db and /etc/spwd.db password databases created by - &man.pwd.mkdb.8; is now byte-order dependent. The pre-processed + &man.pwd.mkdb.8; is now byte-order independent. The pre-processed password databases can now be moved between machines of different architectures. The format includes version numbers on entries to ensure compatibility with old binaries. ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/errata/article.sgml#12 (text+ko) ==== @@ -1,8 +1,8 @@ - $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.13 2003/05/26 15:32:33 rushani Exp $ + $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.14 2003/05/29 00:10:11 rushani Exp $ Âбþ¥Ï¡¼¥É¥¦¥§¥¢ @@ -696,7 +696,7 @@ ICM PSC-2401 SCSI - Melco IFC-SC + MELCO IFC-SC RATOC REX-5536, REX-5536AM, REX-5536M, @@ -1289,7 +1289,7 @@ (PCMPC100 V2) - Melco LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX + MELCO LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX NDC Ethernet Instant-Link @@ -1628,7 +1628,7 @@ LinkSys USB10T, USB10TA, USB10TX, USB100TX, USB100H1 - Melco LUA-TX, LUA2-TX + MELCO LUA-TX, LUA2-TX Planex UE-200TX @@ -1719,7 +1719,7 @@ GREEN HOUSE GH-USB100B - Melco LUA-KTX + MELCO LUA-KTX @@ -2367,7 +2367,7 @@ ICOM SL-1100 - Melco Airconnect WLI-PCM-S11, WLI-PCM-L11 + MELCO Airconnect WLI-PCM-S11, WLI-PCM-L11 NCR WaveLAN/IEEE 802.11 @@ -2452,7 +2452,7 @@ Icom SL-200 - Melco WLI-PCM + MELCO WLI-PCM NEL SSMagic @@ -3338,21 +3338,21 @@ Matshita CF-VFDU03 ¥Õ¥í¥Ã¥Ô¥É¥é¥¤¥Ö - Melco USB2.0 MO ¥É¥é¥¤¥Ö MO-CH640U2 + MELCO USB2.0 MO ¥É¥é¥¤¥Ö MO-CH640U2 - Melco USB/IEEE1394 ¥Ý¡¼¥¿¥Ö¥ë HD ¥É¥é¥¤¥Ö HDP-i30P/CI, HDP-i40P/CI + I-O DATA USB/IEEE1394 ¥Ý¡¼¥¿¥Ö¥ë HD ¥É¥é¥¤¥Ö HDP-i30P/CI, HDP-i40P/CI - Melco USB ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ PetitDrive, + MELCO USB ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ PetitDrive, RUF-32M, -64M, -128M, -256M - Melco USB2.0 ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ PetitDrive2, + MELCO USB2.0 ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ PetitDrive2, RUF-256M/U2, -512M/U2 - Melco USB ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ ClipDrive, + MELCO USB ¥Õ¥é¥Ã¥·¥å¥Ç¥£¥¹¥¯ ClipDrive, RUF-C32M, -C64M, -C128M, -C256M, -C512M @@ -3552,7 +3552,7 @@ FAX ¥â¥Ç¥à/PCCARD - Melco IGM-PCM56K/IGM-PCM56KH + MELCO IGM-PCM56K/IGM-PCM56KH Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#22 (text+ko) ==== @@ -1,9 +1,9 @@ @@ -11,7 +11,7 @@ FreeBSD ¥×¥í¥¸¥§¥¯¥È - $FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.84 2003/04/26 19:13:00 hrs Exp $ + $FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.86 2003/05/29 00:10:11 rushani Exp $ 2000 @@ -32,9 +32,8 @@ &release.branch; ³«È¯¥Ö¥é¥ó¥Á¤Î &os; ¥Ù¡¼¥¹¥·¥¹¥Æ¥à¤ËÂФ¹¤ëºÇ¶á¤Î Êѹ¹ÅÀ¤Î³µÍפ¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ]]> - ¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¡¼¥é¥ó¥ÉÁÐÊý¤ÎÊѹ¹ÅÀ¤¬Îóµó¤µ¤ì¤Æ¤¤¤ë¤Î¤Ë²Ã¤¨¡¢ - Á°¤Î¥ê¥ê¡¼¥¹°Ê¹ß¤Ëȯ¹Ô¤µ¤ì¤¿¥»¥­¥å¥ê¥Æ¥£´«¹ð¤Î¤¦¤Á¤¢¤Æ¤Ï¤Þ¤ë - ¤â¤Î¤â´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ + &os; ¥«¡¼¥Í¥ë¤ª¤è¤Ó¥æ¡¼¥¶¡¼¥é¥ó¥É¤Ë¤ª¤±¤ëÊѹ¹ÅÀ¡¢ + Á°¤Î¥ê¥ê¡¼¥¹°Ê¹ß¤Ëȯ¹Ô¤µ¤ì¤¿¥»¥­¥å¥ê¥Æ¥£´«¹ð¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤¿¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É¤ÎºÝ¤ÎÃí°ÕÅÀ¤âºÜ¤»¤Æ¤¢¤ê¤Þ¤¹¡£ @@ -42,11 +41,10 @@ ¤Ï¤¸¤á¤Ë - ¤³¤Îʸ½ñ¤Ï &arch.print; ¥Ï¡¼¥É¥¦¥§¥¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î - &os; &release.current; ¸þ¤±¤Î¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ç¤¹¡£ - &os; ¤ËºÇ¶áÄɲá¢Êѹ¹¡¢ºï½ü¤µ¤ì¤¿µ¡Ç½¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Æ¤¤¤Þ¤¹¡£ - ¤Þ¤¿¡¢&os; ¤ÎÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ä¤¤¤Æ¤â¸ÀµÚ¤·¤Æ - ¤¤¤Þ¤¹¡£ + ¤³¤Îʸ½ñ¤Ï &arch.print; ¥Ï¡¼¥É¥¦¥§¥¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÍÑ + &os; &release.current; ¤Î¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ç¤¹¡£ + ¤³¤ì¤Ï &os; ¤ËºÇ¶áÄɲá¢Êѹ¹¡¢ºï½ü¤µ¤ì¤¿µ¡Ç½¤Ë¤Ä¤¤¤Æ²òÀ⤷¤¿¤â¤Î¤Ç¤¢¤ê¡¢ + &os; ¤ÎÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ä¤¤¤Æ¤â¸ÀµÚ¤·¤Æ¤¤¤Þ¤¹¡£ ]]> + + &os; &release.type; ¤Î &release.branch; + ·ÏÎó¤ò¤Ï¤¸¤á¤ÆÍøÍѤ¹¤ë¥æ¡¼¥¶¤Ï¡¢¤Þ¤º &os; + &release.current; ½é´üÍøÍѼԤμê°ú¤­ ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ + ¤³¤Îʸ½ñ¤Ï (&os; ÇÛÉÛ¥Õ¥¡¥¤¥ë¤Î°ìÉô¤È¤·¤Æ¡¢ + ¤â¤·¤¯¤Ï &os; ¥¦¥§¥Ö¥µ¥¤¥È¾å¤Î) + ¥ê¥ê¡¼¥¹¥Î¡¼¥È¤ÈƱ¤¸¾ì½ê¤ËÃÖ¤«¤ì¤Æ¤ª¤ê¡¢ + &os; 4-STABLE + ³«È¯¥Ö¥é¥ó¥Á¤ò¥Ù¡¼¥¹¤Ë¤·¤¿¥ê¥ê¡¼¥¹¤ÈÈæ³Ó¤·¤Æ¡¢ + &os; &release.current; + ¤òÍøÍѤ¹¤ëºÝ¤ÎÍøÅÀ¤È·çÅÀ¤Ë¤Ä¤¤¤Æ½ÅÍפʾðÊ󤬽ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ + + &os; ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÁ°¤Ë¡¢É¬¤º¤½¤Î¥ê¥ê¡¼¥¹¤Î + errata ʸ½ñ¤ò¤ªÆɤߤ¯¤À¤µ¤¤¡£ + errata ʸ½ñ¤Ë¤Ï¡¢¥ê¥ê¡¼¥¹¹©Äø¤ÎºÇ¸å¤ä¥ê¥ê¡¼¥¹¸å¤ËȽÌÀ¤·¤¿ + ºÇ¿·¤Î ¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ + Ä̾盧¤ì¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢´ûÃΤΥХ°¡¢¥»¥­¥å¥ê¥Æ¥£´«¹ð¡¢ + ʸ½ñ¤ÎÄûÀµ¤Ç¤¹¡£&os; &release.current; + ¤ÎºÇ¿·ÈÇ errata ʸ½ñ¤Ï¡¢&os; ¥¦¥§¥Ö¥µ¥¤¥È¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¡£ + @@ -94,11 +112,16 @@ ]]> - ¥ê¥ê¡¼¥¹¥Î¡¼¥È¹àÌܤο¤¯¤Ï¡¢¿·¤·¤¤¥É¥é¥¤¥Ð¤ä¥Ï¡¼¥É¥¦¥§¥¢Âбþ¡¢ + ¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë¤Ï¡¢ + &release.prev.historic; °Ê¹ß¤Ë½Ð¤µ¤ì¤¿¥»¥­¥å¥ê¥Æ¥£´«¹ð¡¢ + ¿·¤·¤¤¥É¥é¥¤¥Ð¤ä¥Ï¡¼¥É¥¦¥§¥¢Âбþ¡¢ ¿·¤·¤¤¥³¥Þ¥ó¥É¤ä¥ª¥×¥·¥ç¥ó¡¢½ÅÍפʥХ°¥Õ¥£¥Ã¥¯¥¹¤ä´ó£¥½¥Õ¥È¥¦¥§¥¢ - ¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Î¤â¤Î¤Ç¤¹¡£ - &release.prev.historic; °Ê¹ß¤Ë½Ð¤µ¤ì¤¿¥»¥­¥å¥ê¥Æ¥£´«¹ð¤Î¤¦¤Á¡¢ - ¥ê¥ê¡¼¥¹¤Ë±Æ¶Á¤¹¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¤â·ÇºÜ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¡¢ + ports/packages ¤ä¥ê¥ê¡¼¥¹¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¹©Äø¤Ë´Ø¤¹¤ëÂ礭¤ÊÊѹ¹ÅÀ¤¬ + ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë¤Ï¡¢¥ê¥ê¡¼¥¹´Ö¤Ë²Ã¤¨¤é¤ì¤¿ + &os; ¤ÎÁ´Êѹ¹ÅÀ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ + µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£´«¹ð¡¢¥æ¡¼¥¶¤Ë±Æ¶Á¤Î¤¢¤ëÊѹ¹¡¢ + ´û¸¤Î¹½Â¤¤ËÂФ¹¤ëÂ礭¤Ê²þÎÉÅÀ¤¬Ãæ¿´¤È¤·¤¿¤â¤Î¤Ç¤¹¡£ &os; ¤Ë²Ã¤¨¤é¤ì¤¿Êѹ¹ÅÀ¤Î¤¦¤Á¡¢ ¥¹¥Ú¡¼¥¹¤ÎÅÔ¹ç¾å¤³¤³¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤â¿¿ô¸ºß¤·¤Þ¤¹¡£ @@ -167,12 +190,7 @@ NODEVFS ¥ª¥×¥·¥ç¥ó¤Ï¡¢ »ØÄê²Äǽ¤Ê¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó¤«¤éºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ - DRM ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤¬¡¢ - DRI CVS ¥ê¥Ý¥¸¥È¥ê¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Î¤â¤Î¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ - ¤³¤ì¤Ï XFree86 4.3.0 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Û¤ÜƱ°ì¤Î¤â¤Î¤Ç¤¹¤¬¡¢ - ¤¤¤¯¤Ä¤«¤Î¥Ð¥°½¤Àµ¤âÄɲäǴޤޤì¤Æ¤¤¤Þ¤¹¡£ - - ehci ¥É¥é¥¤¥Ð¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + &man.ehci.4; ¥É¥é¥¤¥Ð¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¤³¤ì¤Ï USB 2.0 ¥³¥ó¥È¥í¡¼¥é¤Ç»È¤ï¤ì¤Æ¤¤¤ë USB Enhanced Host Controller Interface ¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ @@ -198,6 +216,14 @@ ¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤ò²¾ÁÛ¥á¥â¥ê¥·¥¹¥Æ¥à¤ËÅÁ¤¨¤ë¤â¤Î¤Ç¤¹¡£ ¤½¤Î»þ¤Î¥×¥í¥»¥¹¤Ï¡¢¥¹¡¼¥Ñ¥æ¡¼¥¶¤¬½êÍ­¤¹¤ë¤â¤Î¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + (X-10 ¥Û¡¼¥à¥³¥ó¥È¥í¡¼¥ëÀ½ÉʤǻȤï¤ì¤Æ¤¤¤ë) TW-523 + ÅŸ»¥¤¥ó¥¿¥Õ¥§¡¼¥¹ÍѤΠtw ¥É¥é¥¤¥Ð¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£ + ¤³¤ì¤Ï¸½ºßÆ°ºî¤·¤Æ¤ª¤é¤º¡¢&release.branch; + ¤ÇÆ°ºî¤µ¤»¤ë¤Ë¤ÏÂçÉý¤ÊÊѹ¹¤¬É¬ÍפǤ¹¡£ + xten ¤ª¤è¤Ó xtend ¤È¤¤¤¦¡¢ + ¥æ¡¼¥¶¥é¥ó¥É¤ÎÀ©¸æ¥×¥í¥°¥é¥à¤âºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + SMP ¤Ë¤ª¤±¤ëÀ­Ç½¸þ¾å¤¬´üÂԤǤ­¤ë¡¢ @@ -277,7 +303,8 @@ ¥á¥Ç¥£¥¢¤«¤é¤Îµ¯Æ°¤ËÂбþ¤·¤Þ¤·¤¿¡£ &merged; - (°ÊÁ°¡¢&os; 4.X ¤Î¥â¥¸¥å¡¼¥ë¤¬ÃÖ¤«¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥£¥ì¥¯¥È¥ê¤À¤Ã¤¿) + (°ÊÁ°¡¢&os; 4.X + ¤Î¥â¥¸¥å¡¼¥ë¤¬ÃÖ¤«¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥£¥ì¥¯¥È¥ê¤À¤Ã¤¿) /modules ¥Ç¥£¥ì¥¯¥È¥ê¤¬¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ç kern.module_path ¤Ë´Þ¤Þ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£ @@ -286,7 +313,8 @@ ¤ËÃÖ¤«¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ - &os; 4.X ÍѤËÀ߷פµ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Ï¥Ñ¥Ë¥Ã¥¯¤ò¤ò°ú¤­µ¯¤³¤·¤ä¤¹¤¤¤¿¤á¡¢ + &os; 4.X + ÍѤËÀ߷פµ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Ï¥Ñ¥Ë¥Ã¥¯¤ò¤ò°ú¤­µ¯¤³¤·¤ä¤¹¤¤¤¿¤á¡¢ ÍøÍѤ¹¤ë¾ì¹ç¤Ï½½Ê¬Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ @@ -311,12 +339,17 @@ cm ¥É¥é¥¤¥Ð¤¬ IPX ¤ËÂбþ¤·¤Þ¤·¤¿¡£ &merged; + &man.rue.4; ¥Í¥Ã¥È¥ï¡¼¥¯¥É¥é¥¤¥Ð¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + ¤³¤ì¤Ï RealTek RTL8150 USB to Fast Ethernet + ¥³¥ó¥È¥í¡¼¥é¥Á¥Ã¥×¤ò¥Ù¡¼¥¹¤Ë¤·¤¿ Ethernet ¥¢¥À¥×¥¿¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + &man.sbsh.4; ¥É¥é¥¤¥Ð¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¤³¤ì¤Ï Granch SBNI16 SHDSL ¥â¥Ç¥à¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ &merged; 802.11 ¥ê¥ó¥¯ÁؤËÂбþ¤·¤¿ wlan ¥â¥¸¥å¡¼¥ë¤¬¿·¤·¤¯Äɲ䵤ì¤Þ¤·¤¿¡£ - ¸½ºß¡¢&man.wi.4; ¥É¥é¥¤¥Ð¤¬¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ + ¸½ºß¡¢&man.wi.4; ¥É¥é¥¤¥Ð¡¢&man.an.4; + ¥É¥é¥¤¥Ð¤¬¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÀßÄê»þ¤Ë¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯ (¤ä¾¤ÎÌäÂê) @@ -403,6 +436,36 @@ SiS ¥Á¥Ã¥×¥»¥Ã¥È¤¹¤Ù¤Æ¤ËÂбþ¤·¤Þ¤·¤¿ (¾ÜºÙ¤Ï¥Ï¡¼¥É¥¦¥§¥¢¥Î¡¼¥È¤ò¤´Í÷¤¯¤À¤µ¤¤)¡£ + &man.ata.4; ¥É¥é¥¤¥Ð¤¬ Promise + SATA150¡¢TX2¡¢TX4 Serial ATA/150 + ¥³¥ó¥È¥í¡¼¥é¤ËÂбþ¤·¤Þ¤·¤¿¡£ + + &man.ata.4; ¥É¥é¥¤¥Ð¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó»þ¤Ë + ¥Ç¥Ð¥¤¥¹¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + ¥³¥ó¥½¡¼¥ë¤Ë¥Õ¥é¥Ã¥·¥å¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¥Ç¥Ð¥¤¥¹¤«¤é¡¢ + ¥Õ¥é¥Ã¥·¥å¤Ë¼ºÇÔ¤·¤¿¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢ + ¤½¤ì¤Ï¤³¤ÎÊѹ¹¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£ + + CAM ¥ì¥¤¥ä¤¬ + 232 + ¸Ä°Ê¾å¤Î¥Ö¥í¥Ã¥¯¤ò»ý¤Ä¥Ç¥Ð¥¤¥¹¤ËÂбþ¤·¤Þ¤·¤¿ + (1 ¥Ö¥í¥Ã¥¯ 512 ¥Ð¥¤¥È¤È¤¹¤ë¤È¡¢¤³¤ì¤Ï 2TB + ¤è¤êÂ礭¤¤¥Ç¥Ð¥¤¥¹¤ËÂбþ¤·¤¿¤³¤È¤ËÁêÅö¤·¤Þ¤¹)¡£ + + + ¤³¤ÎÊѹ¹Á°¸å¤Ç¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¾ì¹ç¤Ï¡¢ + &man.pass.4; ¤â¤·¤¯¤Ï &man.xpt.4; + ¥Ç¥Ð¥¤¥¹¤òÍøÍѤ¹¤ë¥æ¡¼¥¶¥é¥ó¥É¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¤¹¤Ù¤Æ + ºÆ¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¤¿¤È¤¨¤Ð¡¢¥Ù¡¼¥¹¥·¥¹¥Æ¥à¤Ë´Þ¤Þ¤ì¤ë &man.camcontrol.8;¡¢ + port ¤Ë´Þ¤Þ¤ì¤ë + sysutils/cdrtools ¤ä + multimedia/xmms + ¤¬¤½¤ì¤é¤Ë³ºÅö¤·¤Þ¤¹¡£ + + + + &man.cd.4; ¤Ë¿ô¿¤¯¤ÎÊѹ¹¤¬²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£ ¥æ¡¼¥¶¤Ë±Æ¶Á¤¬¤¢¤ë¼ç¤Ê¤â¤Î¤È¤·¤Æ¡¢ ATAPI/USB/Firewire CDROM ¥É¥é¥¤¥Ö¤È¤Î¸ß´¹À­¸þ¾å¤¬¤¢¤ê¤Þ¤¹¡£ @@ -411,6 +474,12 @@ NO_GEOM ¥ª¥×¥·¥ç¥ó¤Ï¡¢ »ØÄê²Äǽ¤Ê¥«¡¼¥Í¥ëÀßÄꥪ¥×¥·¥ç¥ó¤«¤éºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+ &man.iir.4; ¥É¥é¥¤¥Ð¤¬¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + ¤³¤Î¹¹¿·¤Ç¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¥Ç¥£¥¹¥¯¤Î¸¡½Ð¤¬¤Ç¤­¤Ê¤¤¤È¤¤¤¦ÌäÂ꤬²ò·è¤·¤Æ¤¤¤Þ¤¹¡£ + + IBM (¸½ºß¤Ï Adaptec) ¤Î ServeRAID + ¥·¥ê¡¼¥º¤ËÂбþ¤·¤¿ ips ¥É¥é¥¤¥Ð¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + &man.mly.4; ¥É¥é¥¤¥Ð¤Ë¤¢¤Ã¤¿¡¢ ¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¥Ð¥°¤¬½¤Àµ¤µ¤ì¤Þ¤·¤¿¡£ @@ -479,6 +548,17 @@ &man.adduser.8; ¤¬¡¢¥·¥§¥ë¤ÎÆüìʸ»ú¤ò´Þ¤à¥Ñ¥¹¥ï¡¼¥É¤ò Àµ¤·¤¯½èÍý¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + ½¾Íè¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ËÂå¤ï¤Ã¤Æ¡¢ + &man.bsdlabel.8; ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬Æ³Æþ¤µ¤ì¤Þ¤·¤¿¡£ + ¤³¤ì¤Ï½¾Íè¤Î¤â¤Î¤ÈƱÍÍ¡¢¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤¢¤ë + BSD ¥é¥Ù¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë¤äɽ¼¨¡¢Êѹ¹¤ò¹Ô¤Ê¤Ã¤¿¤ê¡¢ + ¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¥³¡¼¥É¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + disklabel ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÈÈæ¤Ù¤Æ¡¢»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ä + ¥Ñ¥é¥á¡¼¥¿¤Î¿¤¯¤¬ºï½ü¤µ¤ì¤¿ÅÀ¤¬°Û¤Ê¤ê¤Þ¤¹¡£ + &man.bsdlabel.8; ¤Ë¤Ï¿·¤·¤¯ + ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Æ¤ª¤ê¡¢»ØÄꤷ¤¿¥Þ¥·¥ó¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿¥ì¥¤¥¢¥¦¥È¤ò + »ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ + &man.adduser.8; ¤Ë¡¢¥æ¡¼¥¶¤Î¥Ç¥Õ¥©¥ë¥È¥í¥°¥¤¥ó¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ @@ -506,17 +586,10 @@ ¤³¤ì¤Ï¡¢¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤Î¾ðÊó¤Îɽ¼¨¤È¡¢ ¥Í¥¤¥Æ¥£¥Ö¤ÊÀ­Ç½»î¸³¤ò¹Ô¤Ê¤¦¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£ - &man.disklabel.8; ¤«¤é¡¢ - ¥Õ¥é¥°¤È - ¥Õ¥é¥°¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£ + disklabel ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬ &man.bsdlabel.8; ¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤·¤¿¡£ + alpha¡¢i386¡¢pc98 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢disklabel ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï + &man.bsdlabel.8; ¤Ø¤Î¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ - &man.disklabel.8; ¤Ï¡¢¤½¤ì¤¬É¬Íפʥ¢¡¼¥­¥Æ¥¯¥Á¥ã - (i386, pc98, alpha, ia64) ¤Î¤ß¤Ç¹½ÃÛ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ - - i386 ¥Ö¡¼¥È¥í¡¼¥À¤¬°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËÅý¹ç¤µ¤ì¤¿¤¿¤á¡¢ - &man.disklabel.8; ¤Î - ¥ª¥×¥·¥ç¥ó¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£ - &man.dump.8; ¤Ë¡¢¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¤³¤ì¤Ï¡¢¥Ñ¥¹¤Î´Ö¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¹¹¿·¤òÈ¿±Ç¤·¤Ê¤¤¤È¤¤¤¦·çÅÀ¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ @@ -603,7 +676,11 @@ sysctl ÊÑ¿ô¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£ &man.devfs.5; ¤¬É¬¿Ü¤È¤Ê¤Ã¤¿¤¿¤á¡¢ - ɬÍפ¬¤Ê¤¯¤Ê¤Ã¤¿ MAKEDEV ¥¹¥¯¥ê¥×¥È¤Ïºï½ü¤µ¤ì¤Þ¤·¤¿¡£ + ɬÍפ¬¤Ê¤¯¤Ê¤Ã¤¿ MAKEDEV + ¥¹¥¯¥ê¥×¥È¤Ïºï½ü¤µ¤ì¤Þ¤·¤¿¡£ + + &man.mergemaster.8; ¤Ë¡¢ÃÖ¤­´¹¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòÊݸ¤¹¤ë + ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ &man.mixer.8; ¤Ë¡¢ÁêÂÐÃͤò»È¤Ã¤¿¥Ü¥ê¥å¡¼¥àÄ´À°¤¬¼ÂÁõ¤µ¤ì¤Þ¤·¤¿¡£ @@ -632,16 +709,50 @@ ¤³¤ì¤Ï¡¢¤½¤ì¤¾¤ì IPv4 ¤È IPv6 ¤Ë¤è¤ë NFS ¥Þ¥¦¥ó¥È¤ò¶Ø»ß¤·¤Þ¤¹¡£ &man.newfs.8; ¤Ï¡¢ - ¤ò»È¤Ã¤Æ UFS1 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Ç UFS2 + ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ UFS1 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Ç UFS2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ - &man.newsyslog.8; ¤Ë¡¢¥¨¥ó¥È¥ê¤Î°µ½Ì½èÍý¤Î³«»ÏÁ°¤Ë¡¢ - Á°²ó³«»Ï¤·¤¿°µ½Ì½èÍý¤ò¶¯À©½ªÎ»¤µ¤»¤ë - W ¥Õ¥é¥° (¥¨¥ó¥È¥ê¤Î¥°¥ë¡¼¥×¤Î¾ì¹ç¤Ï - G ¥Õ¥é¥°) ¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ - ¤³¤Îµ¡Ç½¤Ï¡¢Â礭¤¤¥Õ¥¡¥¤¥ë¤òƱ»þ¤Ë°µ½Ì¤¹¤ë½èÍý¤Ç¥·¥¹¥Æ¥à¤¬²áÉé²Ù¤Ë - ¤Ê¤ë¤Î¤òÈò¤±¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£ - &merged; + &man.newsyslog.8; ¤Ë¡¢Â¿¤¯¤Î¿·µ¡Ç½¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + + + ¥¨¥ó¥È¥ê¤Î°µ½Ì½èÍý¤Î³«»ÏÁ°¤Ë¡¢ + Á°²ó³«»Ï¤·¤¿°µ½Ì½èÍý¤ò¶¯À©½ªÎ»¤µ¤»¤ë + W ¥Õ¥é¥° (¥¨¥ó¥È¥ê¤Î¥°¥ë¡¼¥×¤Î¾ì¹ç¤Ï + G ¥Õ¥é¥°) ¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + ¤³¤Îµ¡Ç½¤Ï¡¢Â礭¤¤¥Õ¥¡¥¤¥ë¤òƱ»þ¤Ë°µ½Ì¤¹¤ë½èÍý¤Ç¥·¥¹¥Æ¥à¤¬²áÉé²Ù¤Ë + ¤Ê¤ë¤Î¤òÈò¤±¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£ + &merged; + + + + ¥í¡¼¥Æ¡¼¥·¥ç¥ó¤ò»ØÄꤷ¡¢ + ÀßÄê¥Õ¥¡¥¤¥ë¤Ë²¿¤â»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë»È¤ï¤ì¤ë + ¥Ç¥Õ¥©¥ë¥È¤Î¥í¡¼¥Æ¡¼¥ÈÆ°ºî + ¤¬»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + &merged; + + + + ¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥Æ¡¼¥È¤¹¤ë»þ¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë + ¥³¥Þ¥ó¥É¥é¥¤¥ó¥Õ¥é¥°¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + &merged; + + + + ¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥Æ¡¼¥È¤¹¤ë»þ¤Ë¡¢¥·¥°¥Ê¥ë¤òÁ÷¤ëɬÍפ¬¤Ê¤¤¤³¤È¤ò¼¨¤¹ + N ÀßÄê¥Õ¥¡¥¤¥ë¥Õ¥é¥°¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + &merged; + + + + ¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥Æ¡¼¥È¤¹¤ë»þ¤Ë¡¢(¥×¥í¥»¥¹Ã±ÂΤǤϤʤ¯) + ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤ò»ØÄꤹ¤ë + U ÀßÄê¥Õ¥¡¥¤¥ë¥Õ¥é¥°¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + &merged; + + + + &man.nsdispatch.3; ¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ë¤Ê¤ê¡¢ Name Service Switch (NSS) ¥â¥¸¥å¡¼¥ë¤ËÂбþ¤·¤Þ¤·¤¿¡£ @@ -676,12 +787,24 @@ ¤³¤ì¤Ï¡¢¼ç¤Ë Samba ¥µ¡¼¥Ó¥¹¤Î´ÉÍý¤òÍưפˤ¹¤ë¤¿¤á¤ÎÊѹ¹¤Ç¤¹¡£&merged; + &man.pwd.mkdb.8; ¤ÇÀ¸À®¤µ¤ì¤ë + /etc/pwd.db ¤ª¤è¤Ó + /etc/spwd.db ¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¹½Â¤¤¬¡¢ + ¥Ð¥¤¥È¥ª¡¼¥À¤Ë°Í¸¤·¤Ê¤¤·Á¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£ + Á°½èÍý¤µ¤ì¤¿¤³¤ì¤é¤Î¥Ñ¥¹¥ï¡¼¥É¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢ + °Û¤Ê¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã´Ö¤Ç°ÜÆ°¤µ¤»¤ÆÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ + ¸Å¤¤¥Ð¥¤¥Ê¥ê¤È¤Î¸ß´¹À­¤òÊݤĤ¿¤á¡¢ + ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥È¥ê¤Ë¤Ï¥Ð¡¼¥¸¥ç¥óÈֹ椬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ + &man.rand.3; ¤Î¡¢Íð¿ôÎó¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤Ã¤¿¥Ð¥°¤¬½¤Àµ¤µ¤ì¤Þ¤·¤¿ (¤¿¤À¤· &man.rand.3; ¤Ï¡¢°ÍÁ³¤È¤·¤Æ¼ÂÍÑŪ¤ÊÍÑÅӤˤÏŬ¤·¤Æ¤¤¤Þ¤»¤ó)¡£ &man.rtld.1; ¤¬¿·¤·¤¯¡¢ ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È°Í¸´Ø·¸¤ÎưŪ¥Þ¥Ã¥Ô¥ó¥°¤ËÂбþ¤·¤Þ¤·¤¿¡£ + ¤³¤Î¥ª¥×¥·¥ç¥óµ¡Ç½¤ÏÆäˡ¢ + Ê£¿ô¤Î°Û¤Ê¤ë¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¼Â¸³¤¹¤ë»þ¤ËÊØÍø¤Ç¤¹¡£ + ¤¿¤À¤·¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¹½ÃÛ¤µ¤ì¤Þ¤»¤ó¡£ ¾Ü¤·¤¯¤Ï &man.libmap.conf.5; ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ ¤³¤ì¤Ï¥ª¥×¥·¥ç¥óµ¡Ç½¤Î¤Ò¤È¤Ä¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ @@ -694,7 +817,7 @@ ¤è¤ê¶¯¤¤¤â¤Î¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ Sun ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ÇÆ°ºî¤¹¤ë - &man.disklabel.8; É÷¤Î¥×¥í¥°¥é¥à¡¢ + &man.bsdlabel.8; É÷¤Î¥×¥í¥°¥é¥à¡¢ sunlabel ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ &man.sysinstall.8; ¤Ï¡¢ @@ -748,7 +871,27 @@ ¥Õ¥é¥°¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¤³¤ì¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬ÂÐÏÃŪ¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¾ì¹ç¤ËÍ­ÍѤǤ¹¡£ - 1:1 ¥¹¥ì¥Ã¥É¥Ñ¥Ã¥±¡¼¥¸ (¤Ò¤È¤Ä¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤¢¤ë + KSE ¤ò»È¤Ã¤Æ POSIX ¥¹¥ì¥Ã¥Éµ¡Ç½¤òÄ󶡤¹¤ë + libkse + ¥é¥¤¥Ö¥é¥ê¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¡¢Í­¸ú²½¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + ¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï¸½ºß M:N ¥¹¥ì¥Ã¥Éµ¡Ç½¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥×¥í¥»¥¹¥¹¥³¡¼¥×¡¢¥·¥¹¥Æ¥à¥¹¥³¡¼¥×¥¹¥ì¥Ã¥É¤ÎξÊý¤ò»È¤¦¤³¤È¤¬¤Ç¤­¡¢ + ÊÂÎó¥ì¥Ù¥ë¤Î¼èÆÀ¡¦ÀßÄ꤬²Äǽ¤Ç¤¹¡£ + ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÂÎó¥ì¥Ù¥ë¤¬¥·¥¹¥Æ¥à¤Î CPU ¿ô¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ + ³ÆÊÂÎó¥ì¥Ù¥ë¤Ï 1 ¸Ä¤Î KSE ¤È´ØÏ¢¤Å¤±¤é¤ì¤ª¤ê¡¢ + ¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¥¹¥³¡¼¥×¥¹¥ì¥Ã¥É¤Ï¤³¤ì¤é¤Î KSE ¤ÎÃæ¤ÇÆ°ºî¤·¤Þ¤¹¡£ + ¥·¥¹¥Æ¥à¥¹¥³¡¼¥×¥¹¥ì¥Ã¥É¤Ï¡¢ÊÂÎó¥ì¥Ù¥ë¤ËÂбþ¤¹¤ëÆÈΩ¤·¤¿ + KSE ¤ò¼èÆÀ¤·¤Þ¤¹¡£ + libkse ¤Ï¤Þ¤Àºî¶ÈÃæ¤Î¤â¤Î¤Ç¤¢¤ê¡¢ + ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï»È¤ï¤ì¤Þ¤»¤ó¤¬¡¢¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤¹¤ë»þ¤Ë + + ¤Ç¤Ï¤Ê¤¯ + + ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ + libc_r + ¤ÎÂåÂØÉʤȤ·¤Æ»È¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + 1:1 ¥¹¥ì¥Ã¥É¥Ñ¥Ã¥±¡¼¥¸ (¤Ò¤È¤Ä¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤¢¤ë ¤¹¤Ù¤Æ¤Î pthread ¤ËÂФ·¤Æ¡¢¤Ò¤È¤Ä¤Î KSE ¤È¥¹¥ì¥Ã¥É¤¬Âбþ¤¹¤ë¤È¤¤¤¦¤â¤Î) ¤¬¼ÂÁõ¤µ¤ì¤Þ¤·¤¿¡£ ¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò·èÄꤷ¡¢ @@ -759,11 +902,51 @@ libc_r ¥é¥¤¥Ö¥é¥ê¤ÎÂåÂؤȤ·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤¿¤À¤·¡¢libthr ¤Ï (¸½»þÅÀ¤Ç¤Ï) ¥Ç¥Õ¥©¥ë¥È¤Ç¹½ÃÛ¤µ¤ì¤Þ¤»¤ó¡£ + + ½¾Í褫¤é BSD ¤Ç»È¤ï¤ì¤Æ¤­¤¿ /etc + ¤Ë¤¢¤ëµ¯Æ°¥¹¥¯¥ê¥×¥È¤¬ºï½ü¤µ¤ì¡¢ + NetBSD ¤«¤é°Ü¿¢¤µ¤ì¤¿ + rc.d ¥·¥¹¥Æ¥à¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤·¤¿ + (¤³¤ì¤Ï rcNG ¤È¤â¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹)¡£ + ½¾Í褢¤Ã¤¿µ¡Ç½¤Ï¤¹¤Ù¤Æ¤½¤Î¤Þ¤Þ»Ä¤Ã¤Æ¤ª¤ê¡¢ÆÃ¤Ë + /etc/rc.conf ¤Ê¤É¤Î¥Õ¥¡¥¤¥ë·²¤Ï¡¢ + º£¸å¤âɸ½à¤Î¥·¥¹¥Æ¥à¤Îµ¯Æ°ÀßÄê¼êÃʤȤ·¤Æ·Ñ³¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ + rc.d ¥·¥¹¥Æ¥à¤Ï &os; 5.0-RELEASE + ¤è¤ê¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¿¤á¡¢¤³¤ÎÊѹ¹¤Ï¡¢ + ¤Û¤È¤ó¤É¤Î¥æ¡¼¥¶¤Ë¤È¤Ã¤Æ°Õ¼±¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤â¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£ + /etc ¤Ë¤¢¤Ã¤¿°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤Þ¤·¤¿¤Î¤Ç¡¢ + ½¾Íè¤Î¥¹¥¿¥¤¥ë¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¥¹¥¯¥ê¥×¥È¤ò¥«¥¹¥¿¥Þ¥¤¥º¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Ï + Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + rc.atm, + rc.devfs, + rc.diskless1, + rc.diskless2, + rc.i386, + rc.alpha, + rc.amd64, + rc.ia64, + rc.sparc64, + rc.isdn, + rc.network, + rc.network6, + rc.pccard, + rc.serial, + rc.syscons, + rc.sysctl. + + &man.mergemaster.8;, ¤ò¼Â¹Ô¤¹¤ë¤È¡¢ + ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò°Û¤Ê¤ë¾ì½ê¤Ë°ÜÆ°¤¹¤ë¤«¤É¤¦¤«¿Ò¤Í¤é¤ì¤Þ¤¹¡£ + ¾Ü¤·¤¯¤Ï¡¢&man.rc.subr.8; ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ ´ó£¥½¥Õ¥È¥¦¥§¥¢ + ACPI-CA ¥³¡¼¥É¤¬¡¢ + 20021118 ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤«¤é + 20030228 ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + Bell Labs ͳÍè¤Î awk ¤¬ 2003 ǯ 3 ·î 14 Æü»þÅÀ¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤¬Åý¹ç¤µ¤ì¤Þ¤·¤¿¡£ @@ -779,17 +962,46 @@ 1.11.5 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ &merged; + The DRM kernel modules have been updated to + a snapshot from the DRI CVS repository, as of 24 April 2003. + The DRM_LINUX kernel option hsa been removed + because the handler is now provided by the Linux compatibility + code. + + DRM ¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤¬¡¢ + DRI CVS ¥ê¥Ý¥¸¥È¥ê¤Î 2003 ǯ 4 ·î 24 + Æü»þÅÀ¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + ɬÍפʥϥó¥É¥é¤¬ Linux ¸ß´¹µ¡Ç½¤ËÄɲ䵤줿¤¿¤á¡¢ + DRM_LINUX ¥«¡¼¥Í¥ë¥ª¥×¥·¥ç¥ó¤Ïºï½ü¤µ¤ì¤Þ¤·¤¿¡£ + FILE ¤¬¥Ð¡¼¥¸¥ç¥ó 3.41 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ &merged; GCC ¤¬ - 3.2.2 (¥ê¥ê¡¼¥¹ÈÇ) ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + 3.2.2 (¥ê¥ê¡¼¥¹ÈÇ) ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + + + GCC ¤Ï¡¢ + + ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È°Û¾ï¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤¬È½ÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢ + CPUTYPE=p4 Makefile ÊÑ¿ô¤ò + (¤¿¤È¤¨¤Ð &man.make.conf.5; ¤Ê¤É¤Ç) ÄêµÁ¤·¤Æ¡¢ + GCC ¤Î ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£ + ¸½ºß¤Î¾õ¶·¤Ï¡¢¾­ÍèŪ¤Ë GCC 3.3 + ¤òƳÆþ¤¹¤ë¤³¤È¤Ç²ò·è¤Ç¤­¤ë¸«¤È¤ª¤·¤Ç¤¹¡£ + + ʸ»úÎó¤ÈÉâÆ°¾®¿ôÅÀ¿ô¤òÊÑ´¹¤¹¤ë gdtoa ¥é¥¤¥Ö¥é¥ê¤¬Åý¹ç¤µ¤ì¤Þ¤·¤¿¡£ ¥½¡¼¥¹¤Ï 2003 ǯ 3 ·î 24 ÆüÉÕ¤±¤Î¤â¤Î¤Ç¤¹¡£ + groff (¤ª¤è¤Ó´ØÏ¢¥æ¡¼¥Æ¥£¥ê¥Æ¥£) ¤¬¡¢ + ¥Ð¡¼¥¸¥ç¥ó 1.18.1 ¤«¤é¥Ð¡¼¥¸¥ç¥ó 1.19 + ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + IPFilter ¤¬¥Ð¡¼¥¸¥ç¥ó 3.4.31 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ &merged; @@ -814,6 +1026,14 @@ k¥×¥í¥°¥é¥à̾ ¤È¤¤¤¦Ì¾Á°¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + Kerberos 5 + ¤¬ buildworld ¤Î²áÄø¤Ç¡¢ + ¥Ç¥Õ¥©¥ë¥È¤Ç¹½ÃÛ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ + ¸½ºß¡¢MAKE_KERBEROS5 ÊÑ¿ô¤Ï»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢ + ¥Ù¡¼¥¹¥·¥¹¥Æ¥à¤Î Kerberos 5 ¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢ + NO_KERBEROS Makefile + ÊÑ¿ô¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + libpcap ¤¬¡¢ Ʊ°ì¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¾å¤Ç¤ÎÊ£¿ô¤Î¥Ç¡¼¥¿¥ê¥ó¥¯¥¿¥¤¥×¤ÎÁªÂò¤ËÂбþ¤·¤Þ¤·¤¿¡£ @@ -821,7 +1041,8 @@ ¤¬¡¢2003 ǯ 1 ·î 22 Æü¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ OpenPAM - ¤¬¥ê¥ê¡¼¥¹ Daffodil ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + ¤¬¥ê¥ê¡¼¥¹ Citronella ¤«¤é¥ê¥ê¡¼¥¹ + Dianthus ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ OpenSSH ¤¬¥Ð¡¼¥¸¥ç¥ó 3.6.1p1 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ @@ -840,6 +1061,16 @@ ¥Õ¥é¥°¤È¡¢ ¥Ñ¥±¥Ã¥È¥­¥ã¥×¥Á¥ãÃæ¤Ë¤É¤Î¥Ç¡¼¥¿¥ê¥ó¥¯¥¿¥¤¥×¤ò»È¤¦¤Î¤«¤ò»ØÄꤹ¤ë ¥ª¥×¥·¥ç¥ó¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ + + texinfo + ¤¬¥Ð¡¼¥¸¥ç¥ó 4.2 ¤«¤é 4.5 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + + timezone ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ + tzdata2002d + ¤«¤é + tzdata2003a + ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + &merged; @@ -883,9 +1114,13 @@ &merged; FreeBSD ¤¬¸ø¼°¤ËÂбþ¤·¤Æ¤¤¤ë KDE - ¤Î¥ê¥ê¡¼¥¹¤¬¡¢¥Ð¡¼¥¸¥ç¥ó 3.1.1a ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ + ¤Î¥ê¥ê¡¼¥¹¤¬¡¢¥Ð¡¼¥¸¥ç¥ó 3.1.2 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ &merged; + ¸ÄÊ̤Πkrb5 ÇÛÉÛʪ¤¬Çѻߤµ¤ì¤Þ¤·¤¿¡£ + Kerberos 5 ¥é¥¤¥Ö¥é¥ê¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢ + crypto ÇÛÉÛʪ¤Ë´Þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ + &man.sysinstall.8; ¤¬¡¢XFree86 ¤Î ¸Ä¡¹¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ËºÆÅÙÂбþ¤·¤Þ¤·¤¿¡£ ¤³¤ÎÊѹ¹¤Ë¤è¤ê¡¢(¥æ¡¼¥¶¤¬°Õ¼±¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤¬) @@ -896,7 +1131,12 @@ ¤Î¥ê¥ê¡¼¥¹¤¬¡¢¥Ð¡¼¥¸¥ç¥ó 4.3.0 ¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ &merged; - &os; 2.X ¤«¤é 3.X¡¢&os; 3.X ¤«¤é 4.X + &os; + 2.X ¤«¤é + 3.X¡¢ + &os; + 3.X ¤«¤é + 4.X ¤È¤¤¤¦¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó´Ö¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò¹Ô¤Ê¤¦µ¡Ç½¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£ @@ -916,7 +1156,7 @@ Á°¤Î¥ê¥ê¡¼¥¹¤Î &os; ¤«¤é¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É ¸½Â¸¤¹¤ë &os; ¥·¥¹¥Æ¥à¤«¤é¥¢¥Ã¥×¥°¥ì¡¼¥É¤¹¤ë¥æ¡¼¥¶¤Ï - &os; 5.0-RELEASE ½é´üÍøÍѼԤΤ¿¤á¤Î¼ê°ú¤­ + &os; &release.current; ½é´üÍøÍѼԤΤ¿¤á¤Î¼ê°ú¤­ ¤òÆɤळ¤È¤ò ¶¯¤¯ ¿ä¾©¤·¤Þ¤¹¡£ ¤³¤Îʸ½ñ¤Ï¡¢Ä̾ï EARLY.TXT ¤È¤¤¤¦Ì¾Á°¤Ç ÇÛÉÛʪ¤Ë¼ýÏ¿¤µ¤ì¤Æ¤ª¤ê¡¢ ==== //depot/projects/ia64/sys/contrib/dev/acpica/nsalloc.c#8 (text+ko) ==== @@ -321,7 +321,7 @@ ACPI_NAMESPACE_NODE *Node, /* New Child*/ ACPI_OBJECT_TYPE Type) { - UINT16 OwnerId = 0; + UINT16 OwnerId = TABLE_ID_DSDT; ACPI_NAMESPACE_NODE *ChildNode; #ifdef ACPI_ALPHABETIC_NAMESPACE @@ -652,7 +652,7 @@ * ******************************************************************************/ -void +static void AcpiNsRemoveReference ( ACPI_NAMESPACE_NODE *Node) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu May 29 09:29:53 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1DC437B404; Thu, 29 May 2003 09:29: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 73FDB37B401 for ; Thu, 29 May 2003 09:29:52 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0900F43F75 for ; Thu, 29 May 2003 09:29:52 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TGTp0U041083 for ; Thu, 29 May 2003 09:29:51 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TGTpwc041080 for perforce@freebsd.org; Thu, 29 May 2003 09:29:51 -0700 (PDT) Date: Thu, 29 May 2003 09:29:51 -0700 (PDT) Message-Id: <200305291629.h4TGTpwc041080@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 32011 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, 29 May 2003 16:29:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=32011 Change 32011 by rwatson@rwatson_tislabs on 2003/05/29 09:29:44 Use strsep() to pass Biba and MLS labels into their elements rather than hand-parsing. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#206 edit .. //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#165 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#206 (text+ko) ==== @@ -765,38 +765,30 @@ static int mac_biba_parse(struct mac_biba *mac_biba, char *string) { - char *range, *rangeend, *rangehigh, *rangelow, *single; + char *rangehigh, *rangelow, *single; int error; - /* Do we have a range? */ - single = string; - range = index(string, '('); - if (range == single) + single = strsep(&string, "("); + if (*single == '\0') single = NULL; - rangelow = rangehigh = NULL; - if (range != NULL) { - /* Nul terminate the end of the single string. */ - *range = '\0'; - range++; - rangelow = range; - rangehigh = index(rangelow, '-'); - if (rangehigh == NULL) + + if (string != NULL) { + rangelow = strsep(&string, "-"); + if (string == NULL) return (EINVAL); - rangehigh++; - if (*rangelow == '\0' || *rangehigh == '\0') + rangehigh = strsep(&string, ")"); + if (string == NULL) return (EINVAL); - rangeend = index(rangehigh, ')'); - if (rangeend == NULL) + if (*string != '\0') return (EINVAL); - if (*(rangeend + 1) != '\0') - return (EINVAL); - /* Nul terminate the ends of the ranges. */ - *(rangehigh - 1) = '\0'; - *rangeend = '\0'; + } else { + rangelow = NULL; + rangehigh = NULL; } + KASSERT((rangelow != NULL && rangehigh != NULL) || (rangelow == NULL && rangehigh == NULL), - ("mac_biba_internalize_label: range mismatch")); + ("mac_biba_parse: range mismatch")); bzero(mac_biba, sizeof(*mac_biba)); if (single != NULL) { ==== //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#165 (text+ko) ==== @@ -730,38 +730,30 @@ static int mac_mls_parse(struct mac_mls *mac_mls, char *string) { - char *range, *rangeend, *rangehigh, *rangelow, *single; + char *rangehigh, *rangelow, *single; int error; - /* Do we have a range? */ - single = string; - range = index(string, '('); - if (range == single) + single = strsep(&string, "("); + if (*single == '\0') single = NULL; - rangelow = rangehigh = NULL; - if (range != NULL) { - /* Nul terminate the end of the single string. */ - *range = '\0'; - range++; - rangelow = range; - rangehigh = index(rangelow, '-'); - if (rangehigh == NULL) + + if (string != NULL) { + rangelow = strsep(&string, "-"); + if (string == NULL) return (EINVAL); - rangehigh++; - if (*rangelow == '\0' || *rangehigh == '\0') + rangehigh = strsep(&string, ")"); + if (string == NULL) return (EINVAL); - rangeend = index(rangehigh, ')'); - if (rangeend == NULL) + if (*string != '\0') return (EINVAL); - if (*(rangeend + 1) != '\0') - return (EINVAL); - /* Nul terminate the ends of the ranges. */ - *(rangehigh - 1) = '\0'; - *rangeend = '\0'; + } else { + rangelow = NULL; + rangehigh = NULL; } + KASSERT((rangelow != NULL && rangehigh != NULL) || (rangelow == NULL && rangehigh == NULL), - ("mac_mls_internalize_label: range mismatch")); + ("mac_mls_parse: range mismatch")); bzero(mac_mls, sizeof(*mac_mls)); if (single != NULL) { From owner-p4-projects@FreeBSD.ORG Thu May 29 09:46:15 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2CEA37B404; Thu, 29 May 2003 09:46: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 4242537B405 for ; Thu, 29 May 2003 09:46:14 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A6C343FBD for ; Thu, 29 May 2003 09:46:13 -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 h4TGkC0U041776 for ; Thu, 29 May 2003 09:46:12 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TGkBJa041773 for perforce@freebsd.org; Thu, 29 May 2003 09:46:11 -0700 (PDT) Date: Thu, 29 May 2003 09:46:11 -0700 (PDT) Message-Id: <200305291646.h4TGkBJa041773@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 32012 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, 29 May 2003 16:46:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=32012 Change 32012 by jhb@jhb_laptop on 2003/05/29 09:45:54 IFC @32008. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#15 integrate .. //depot/projects/smpng/sys/alpha/include/bus.h#9 integrate .. //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/genassym.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/locore.S#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/smpng/sys/amd64/amd64/mem.c#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/nexus.c#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#3 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_sysvec.c#3 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_util.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/asm.h#3 integrate .. //depot/projects/smpng/sys/amd64/include/bus_amd64.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/bus_dma.h#3 integrate .. //depot/projects/smpng/sys/amd64/include/param.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/smpng/sys/amd64/include/reg.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/smpng/sys/conf/kern.mk#5 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/dsmethod.c#13 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/nsalloc.c#12 integrate .. //depot/projects/smpng/sys/dev/advansys/advansys.c#5 integrate .. //depot/projects/smpng/sys/dev/advansys/adwcam.c#5 integrate .. //depot/projects/smpng/sys/dev/aha/aha.c#8 integrate .. //depot/projects/smpng/sys/dev/ahb/ahb.c#6 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.c#11 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.h#9 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.reg#10 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.seq#9 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_inline.h#9 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_osm.c#9 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_osm.h#7 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.c#14 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.h#8 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.reg#8 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.seq#8 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_inline.h#7 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_osm.c#9 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_osm.h#8 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/amd/amd.c#3 integrate .. //depot/projects/smpng/sys/dev/buslogic/bt.c#8 integrate .. //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#14 integrate .. //depot/projects/smpng/sys/dev/dpt/dpt_scsi.c#6 integrate .. //depot/projects/smpng/sys/dev/fb/vga.c#14 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdma.h#2 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#36 integrate .. //depot/projects/smpng/sys/dev/ida/ida.c#10 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_freebsd.c#6 integrate .. //depot/projects/smpng/sys/dev/pci/pci_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/trm/trm.c#6 integrate .. //depot/projects/smpng/sys/dev/vinum/vinum.c#12 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumconfig.c#12 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumext.h#9 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumioctl.c#14 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumlock.c#3 integrate .. //depot/projects/smpng/sys/dev/vinum/vinummemory.c#6 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumobj.h#5 integrate .. //depot/projects/smpng/sys/dev/vinum/vinumvar.h#5 integrate .. //depot/projects/smpng/sys/geom/geom_disk.c#26 integrate .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#17 integrate .. //depot/projects/smpng/sys/i386/include/bus_dma.h#5 integrate .. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#15 integrate .. //depot/projects/smpng/sys/ia64/ia64/context.s#2 integrate .. //depot/projects/smpng/sys/ia64/ia64/exception.s#25 integrate .. //depot/projects/smpng/sys/ia64/ia64/locore.s#19 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#56 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#45 integrate .. //depot/projects/smpng/sys/ia64/ia64/support.s#12 integrate .. //depot/projects/smpng/sys/ia64/ia64/syscall.s#2 integrate .. //depot/projects/smpng/sys/ia64/ia64/trap.c#48 integrate .. //depot/projects/smpng/sys/ia64/ia64/unaligned.c#4 integrate .. //depot/projects/smpng/sys/ia64/ia64/unwind.c#7 integrate .. //depot/projects/smpng/sys/ia64/include/bus.h#9 integrate .. //depot/projects/smpng/sys/ia64/include/cpu.h#13 integrate .. //depot/projects/smpng/sys/ia64/include/cpufunc.h#17 integrate .. //depot/projects/smpng/sys/kern/kern_alq.c#3 integrate .. //depot/projects/smpng/sys/kern/kern_switch.c#30 integrate .. //depot/projects/smpng/sys/kern/kern_umtx.c#2 integrate .. //depot/projects/smpng/sys/kern/subr_sbuf.c#11 integrate .. //depot/projects/smpng/sys/kern/vfs_cluster.c#24 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#54 integrate .. //depot/projects/smpng/sys/net/if_loop.c#18 integrate .. //depot/projects/smpng/sys/nfsserver/nfs.h#9 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#28 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsubs.c#15 integrate .. //depot/projects/smpng/sys/pci/agp_intel.c#10 integrate .. //depot/projects/smpng/sys/pci/agpreg.h#6 integrate .. //depot/projects/smpng/sys/powerpc/include/bus.h#10 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#11 integrate .. //depot/projects/smpng/sys/sparc64/include/bus.h#14 integrate .. //depot/projects/smpng/sys/sparc64/include/iommuvar.h#10 integrate .. //depot/projects/smpng/sys/sparc64/pci/psycho.c#21 integrate .. //depot/projects/smpng/sys/sparc64/sbus/sbus.c#10 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/bus_machdep.c#16 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#16 integrate .. //depot/projects/smpng/sys/sys/stat.h#14 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#15 (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/alpha/alpha/busdma_machdep.c,v 1.35 2003/04/10 23:03:32 mux Exp $ + * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.37 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -350,18 +350,14 @@ * A dmamap to for use with dmamap_load is also allocated. */ int -bus_dmamem_alloc_size(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp, bus_size_t size) +bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, + bus_dmamap_t *mapp) { - - if (size > dmat->maxsize) - return (ENOMEM); - /* If we succeed, no mapping/bouncing will be required */ *mapp = &nobounce_dmamap; - if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) { - *vaddr = malloc(size, M_DEVBUF, + if ((dmat->maxsize <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) { + *vaddr = malloc(dmat->maxsize, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK); } else { /* @@ -370,7 +366,7 @@ * multi-seg allocations yet though. */ mtx_lock(&Giant); - *vaddr = contigmalloc(size, M_DEVBUF, + *vaddr = contigmalloc(dmat->maxsize, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK, 0ul, dmat->lowaddr, dmat->alignment? dmat->alignment : 1ul, dmat->boundary); @@ -381,20 +377,12 @@ return (0); } -int -bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp) -{ - return (bus_dmamem_alloc_size(dmat, vaddr, flags, mapp, dmat->maxsize)); -} - /* * Free a piece of memory and it's allociated dmamap, that was allocated * via bus_dmamem_alloc. */ void -bus_dmamem_free_size(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map, - bus_size_t size) +bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) { /* * dmamem does not need to be bounced, so the map should be @@ -402,21 +390,15 @@ */ if (map != &nobounce_dmamap) panic("bus_dmamem_free: Invalid map freed\n"); - if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) + if ((dmat->maxsize <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) free(vaddr, M_DEVBUF); else { mtx_lock(&Giant); - contigfree(vaddr, size, M_DEVBUF); + contigfree(vaddr, dmat->maxsize, M_DEVBUF); mtx_unlock(&Giant); } } -void -bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) -{ - bus_dmamem_free_size(dmat, vaddr, map, dmat->maxsize); -} - #define BUS_DMAMAP_NSEGS ((64 * 1024 / PAGE_SIZE) + 1) /* @@ -787,7 +769,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/smpng/sys/alpha/include/bus.h#9 (text+ko) ==== @@ -67,7 +67,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/alpha/include/bus.h,v 1.18 2003/04/10 23:03:32 mux Exp $ */ +/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.20 2003/05/27 04:59:56 scottl Exp $ */ #ifndef _ALPHA_BUS_H_ #define _ALPHA_BUS_H_ @@ -482,6 +482,7 @@ /* * Operations performed by bus_dmamap_sync(). */ +typedef int bus_dmasync_op_t; #define BUS_DMASYNC_PREREAD 1 #define BUS_DMASYNC_POSTREAD 2 #define BUS_DMASYNC_PREWRITE 4 @@ -567,9 +568,6 @@ * bus device space based on the constraints lited in the dma tag. * A dmamap to for use with dmamap_load is also allocated. */ -int bus_dmamem_alloc_size(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp, bus_size_t size); - int bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, bus_dmamap_t *mapp); @@ -577,9 +575,6 @@ * Free a piece of memory and it's allociated dmamap, that was allocated * via bus_dmamem_alloc. */ -void bus_dmamem_free_size(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map, - bus_size_t size); - void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map); /* @@ -621,7 +616,7 @@ /* * Perform a syncronization operation on the given map. */ -void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, int); +void _bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); #define bus_dmamap_sync(dmat, dmamap, op) \ if ((dmamap) != NULL) \ _bus_dmamap_sync(dmat, dmamap, op) ==== //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#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/amd64/amd64/busdma_machdep.c,v 1.43 2003/04/15 03:11:03 mux Exp $ + * $FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.45 2003/05/27 04:59:56 scottl Exp $ */ #include @@ -338,19 +338,15 @@ * A dmamap to for use with dmamap_load is also allocated. */ int -bus_dmamem_alloc_size(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp, bus_size_t size) +bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, + bus_dmamap_t *mapp) { - - if (size > dmat->maxsize) - return (ENOMEM); - /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; - if ((size <= PAGE_SIZE) && + if ((dmat->maxsize <= PAGE_SIZE) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) { - *vaddr = malloc(size, M_DEVBUF, + *vaddr = malloc(dmat->maxsize, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK); } else { /* @@ -359,7 +355,7 @@ * multi-seg allocations yet though. */ mtx_lock(&Giant); - *vaddr = contigmalloc(size, M_DEVBUF, + *vaddr = contigmalloc(dmat->maxsize, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK, 0ul, dmat->lowaddr, dmat->alignment? dmat->alignment : 1ul, dmat->boundary); @@ -370,20 +366,12 @@ return (0); } -int -bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp) -{ - return (bus_dmamem_alloc_size(dmat, vaddr, flags, mapp, dmat->maxsize)); -} - /* * Free a piece of memory and it's allociated dmamap, that was allocated * via bus_dmamem_alloc. Make the same choice for free/contigfree. */ void -bus_dmamem_free_size(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map, - bus_size_t size) +bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) { /* * dmamem does not need to be bounced, so the map should be @@ -391,21 +379,16 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); - if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) + if ((dmat->maxsize <= PAGE_SIZE) + && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) free(vaddr, M_DEVBUF); else { mtx_lock(&Giant); - contigfree(vaddr, size, M_DEVBUF); + contigfree(vaddr, dmat->maxsize, M_DEVBUF); mtx_unlock(&Giant); } } -void -bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) -{ - bus_dmamem_free_size(dmat, vaddr, map, dmat->maxsize); -} - /* * Utility function to load a linear buffer. lastaddrp holds state * between invocations (for multiple-buffer loads). segp contains @@ -719,7 +702,7 @@ } void -_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, int op) +_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { struct bounce_page *bpage; ==== //depot/projects/smpng/sys/amd64/amd64/genassym.c#5 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)genassym.c 5.11 (Berkeley) 5/10/91 - * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.146 2003/05/15 00:23:39 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.147 2003/05/23 05:04:53 peter Exp $ */ #include "opt_compat.h" @@ -99,8 +99,11 @@ ASSYM(PAGE_SIZE, PAGE_SIZE); ASSYM(NPTEPG, NPTEPG); ASSYM(NPDEPG, NPDEPG); -ASSYM(NPDEPTD, NPDEPTD); -ASSYM(NPGPTD, NPGPTD); +ASSYM(addr_PTmap, addr_PTmap); +ASSYM(addr_PDmap, addr_PDmap); +ASSYM(addr_PDPmap, addr_PDPmap); +ASSYM(addr_PML4map, addr_PML4map); +ASSYM(addr_PML4pml4e, addr_PML4pml4e); ASSYM(PDESIZE, sizeof(pd_entry_t)); ASSYM(PTESIZE, sizeof(pt_entry_t)); ASSYM(PTESHIFT, PTESHIFT); @@ -109,9 +112,14 @@ ASSYM(PDRSHIFT, PDRSHIFT); ASSYM(PDPSHIFT, PDPSHIFT); ASSYM(PML4SHIFT, PML4SHIFT); +ASSYM(val_KPDPI, KPDPI); +ASSYM(val_KPML4I, KPML4I); +ASSYM(val_PML4PML4I, PML4PML4I); ASSYM(USRSTACK, USRSTACK); ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS); ASSYM(KERNBASE, KERNBASE); +ASSYM(DMAP_MIN_ADDRESS, DMAP_MIN_ADDRESS); +ASSYM(DMAP_MAX_ADDRESS, DMAP_MAX_ADDRESS); ASSYM(MCLBYTES, MCLBYTES); ASSYM(PCB_CR3, offsetof(struct pcb, pcb_cr3)); ASSYM(PCB_R15, offsetof(struct pcb, pcb_r15)); ==== //depot/projects/smpng/sys/amd64/amd64/identcpu.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: Id: machdep.c,v 1.193 1996/06/18 01:22:04 bde Exp - * $FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.124 2003/05/11 23:01:04 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.125 2003/05/27 21:59:56 peter Exp $ */ #include "opt_cpu.h" @@ -358,17 +358,17 @@ "\022PGE36" /* 36 bit address space support */ "\023RSVD" /* Reserved, unknown */ "\024MP" /* Multiprocessor Capable */ - "\025" + "\025NX" /* Has EFER.NXE, NX (no execute pte bit) */ "\026" - "\027AMIE" /* AMD MMX Instruction Extensions */ + "\027MMX+" /* AMD MMX Instruction Extensions */ "\030MMX" "\031FXSAVE" /* FXSAVE/FXRSTOR */ "\032" "\033" "\034" "\035" - "\036" - "\037DSP" /* AMD 3DNow! Instruction Extensions */ - "\0403DNow!" + "\036LM" /* Long mode */ + "\0373DNow!+" /* AMD 3DNow! Instruction Extensions */ + "\0403DNow!" /* AMD 3DNow! Instructions */ ); } ==== //depot/projects/smpng/sys/amd64/amd64/locore.S#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.173 2003/05/15 00:20:17 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.174 2003/05/23 05:04:53 peter Exp $ */ #include @@ -36,8 +36,15 @@ /* * Compiled KERNBASE location */ - .globl kernbase + .globl kernbase,loc_PTmap,loc_PDmap,loc_PDPmap,loc_PML4map,loc_PML4pml4e,dmapbase,dmapend .set kernbase,KERNBASE + .set loc_PTmap,addr_PTmap + .set loc_PDmap,addr_PDmap + .set loc_PDPmap,addr_PDPmap + .set loc_PML4map,addr_PML4map + .set loc_PML4pml4e,addr_PML4pml4e + .set dmapbase,DMAP_MIN_ADDRESS + .set dmapend,DMAP_MAX_ADDRESS .text /********************************************************************** ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 - * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.579 2003/05/17 02:05:10 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.580 2003/05/23 05:04:53 peter Exp $ */ #include "opt_atalk.h" @@ -133,11 +133,6 @@ u_int64_t modulep; /* phys addr of metadata table */ u_int64_t physfree; /* first free page after kernel */ -u_int64_t IdlePTD; /* phys addr of kernel PTD */ -u_int64_t IdlePDP; /* phys addr of kernel level 3 */ -u_int64_t IdlePML4; /* phys addr of kernel level 4 */ -struct user *proc0uarea; /* address of proc 0 uarea space */ -vm_offset_t proc0kstack; /* address of proc 0 kstack space */ int cold = 1; @@ -945,7 +940,7 @@ physmap[physmap_idx + 1] = ptoa((vm_paddr_t)Maxmem); /* call pmap initialization to make new kernel address space */ - pmap_bootstrap(first, 0); + pmap_bootstrap(&first); /* * Size up each available chunk of physical memory. @@ -1086,69 +1081,6 @@ return (ret); } -static void -create_pagetables(void) -{ - u_int64_t p0kpa; - u_int64_t p0upa; - u_int64_t KPTphys; - int i; - - /* Allocate pages */ - KPTphys = allocpages(NKPT); - IdlePML4 = allocpages(NKPML4E); - IdlePDP = allocpages(NKPDPE); - IdlePTD = allocpages(NPGPTD); - p0upa = allocpages(UAREA_PAGES); - p0kpa = allocpages(KSTACK_PAGES); - - proc0uarea = (struct user *)(p0upa + KERNBASE); - proc0kstack = p0kpa + KERNBASE; - - /* Fill in the underlying page table pages */ - /* Read-only from zero to physfree */ - /* XXX not fully used, underneath 2M pages */ - for (i = 0; (i << PAGE_SHIFT) < physfree; i++) { - ((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT; - ((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V; - } - - /* Now map the page tables at their location within PTmap */ - for (i = 0; i < NKPT; i++) { - ((pd_entry_t *)IdlePTD)[i + KPTDI] = KPTphys + (i << PAGE_SHIFT); - ((pd_entry_t *)IdlePTD)[i + KPTDI] |= PG_RW | PG_V; - } - - /* Map from zero to end of allocations under 2M pages */ - /* This replaces some of the PTD entries above */ - for (i = 0; (i << PDRSHIFT) < physfree; i++) { - ((pd_entry_t *)IdlePTD)[i] = i << PDRSHIFT; - ((pd_entry_t *)IdlePTD)[i] |= PG_RW | PG_V | PG_PS; - } - - /* Now map the page tables at their location within PTmap */ - for (i = 0; i < NKPT; i++) { - ((pd_entry_t *)IdlePTD)[i] = KPTphys + (i << PAGE_SHIFT); - ((pd_entry_t *)IdlePTD)[i] |= PG_RW | PG_V; - } - - /* Now map the PTD at the top of the PTmap (ie: PTD[]) */ - for (i = 0; i < NPGPTD; i++) { - ((pd_entry_t *)IdlePTD)[i + PTDPTDI] = IdlePTD + (i << PAGE_SHIFT); - ((pd_entry_t *)IdlePTD)[i + PTDPTDI] |= PG_RW | PG_V; - } - - /* And connect up the PTD to the PDP */ - for (i = 0; i < NPGPTD; i++) { - ((pdp_entry_t *)IdlePDP)[i] = IdlePTD + (i << PAGE_SHIFT); - ((pdp_entry_t *)IdlePDP)[i] |= PG_RW | PG_V | PG_U; - } - - /* And connect up the PDP to the PML4 */ - ((pdp_entry_t *)IdlePML4)[0] = IdlePDP; - ((pdp_entry_t *)IdlePML4)[0] |= PG_RW | PG_V | PG_U; -} - void hammer_time(void) { @@ -1157,18 +1089,14 @@ struct region_descriptor r_gdt, r_idt; struct pcpu *pc; u_int64_t msr; + char *env; /* Turn on PTE NX (no execute) bit */ msr = rdmsr(MSR_EFER) | EFER_NXE; wrmsr(MSR_EFER, msr); - create_pagetables(); - /* XXX do %cr0 as well */ - load_cr4(rcr4() | CR4_PGE | CR4_PSE); - load_cr3(IdlePML4); - - proc0.p_uarea = proc0uarea; - thread0.td_kstack = proc0kstack; + proc0.p_uarea = (struct user *)(allocpages(UAREA_PAGES) + KERNBASE); + thread0.td_kstack = allocpages(KSTACK_PAGES) + KERNBASE; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; atdevbase = ISA_HOLE_START + KERNBASE; @@ -1310,8 +1238,12 @@ /* setup proc 0's pcb */ thread0.td_pcb->pcb_flags = 0; /* XXXKSE */ - thread0.td_pcb->pcb_cr3 = IdlePML4; + thread0.td_pcb->pcb_cr3 = KPML4phys; thread0.td_frame = &proc0_tf; + + env = getenv("kernelname"); + if (env != NULL) + strlcpy(kernelname, env, sizeof(kernelname)); } void ==== //depot/projects/smpng/sys/amd64/amd64/mem.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ * * from: Utah $Hdr: mem.c 1.13 89/10/08$ * from: @(#)mem.c 7.2 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.107 2003/05/01 01:05:21 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.108 2003/05/23 05:04:53 peter Exp $ */ /* @@ -63,6 +63,7 @@ #include #include #include +#include #include #include @@ -177,7 +178,7 @@ addr = trunc_page(uio->uio_offset); eaddr = round_page(uio->uio_offset + c); - if (addr < (vm_offset_t)VADDR(0, 0, PTDPTDI, 0)) + if (addr < (vm_offset_t)KERNBASE) return (EFAULT); for (; addr < eaddr; addr += PAGE_SIZE) if (pmap_extract(kernel_pmap, addr) == 0) ==== //depot/projects/smpng/sys/amd64/amd64/nexus.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.51 2003/05/12 02:44:37 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.52 2003/05/23 05:04:53 peter Exp $ */ /* @@ -355,8 +355,8 @@ */ vaddr = (caddr_t)(uintptr_t)(KERNBASE + rman_get_start(r)); } else { - u_int32_t paddr; - u_int32_t psize; + u_int64_t paddr; + u_int64_t psize; u_int32_t poffs; paddr = rman_get_start(r); ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.407 2003/05/11 22:40:24 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.408 2003/05/23 05:04:53 peter Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -125,6 +125,7 @@ #include #include #include +#include #include #include @@ -149,41 +150,35 @@ #endif /* - * Get PDEs and PTEs for user/kernel address space - */ -#define pmap_pde(m, v) (&((m)->pm_pdir[(vm_offset_t)(v) >> PDRSHIFT])) -#define pdir_pde(m, v) (m[(vm_offset_t)(v) >> PDRSHIFT]) - -#define pmap_pde_v(pte) ((*(int *)pte & PG_V) != 0) -#define pmap_pte_w(pte) ((*(int *)pte & PG_W) != 0) -#define pmap_pte_m(pte) ((*(int *)pte & PG_M) != 0) -#define pmap_pte_u(pte) ((*(int *)pte & PG_A) != 0) -#define pmap_pte_v(pte) ((*(int *)pte & PG_V) != 0) - -#define pmap_pte_set_w(pte, v) ((v)?(*(int *)pte |= PG_W):(*(int *)pte &= ~PG_W)) -#define pmap_pte_set_prot(pte, v) ((*(int *)pte &= ~PG_PROT), (*(int *)pte |= (v))) - -/* * Given a map and a machine independent protection code, * convert to a vax protection code. */ #define pte_prot(m, p) (protection_codes[p]) -static int protection_codes[8]; +static pt_entry_t protection_codes[8]; struct pmap kernel_pmap_store; LIST_HEAD(pmaplist, pmap); static struct pmaplist allpmaps; static struct mtx allpmaps_lock; -vm_paddr_t avail_start; /* PA of first available physical page */ -vm_paddr_t avail_end; /* PA of last available physical page */ +vm_paddr_t avail_start; /* PA of first available physical page */ +vm_paddr_t avail_end; /* PA of last available physical page */ vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ static boolean_t pmap_initialized = FALSE; /* Has pmap_init completed? */ static int nkpt; +static int ndmpdp; vm_offset_t kernel_vm_end; +static u_int64_t KPTphys; /* phys addr of kernel level 1 */ +static u_int64_t KPDphys; /* phys addr of kernel level 2 */ +static u_int64_t KPDPphys; /* phys addr of kernel level 3 */ +u_int64_t KPML4phys; /* phys addr of kernel level 4 */ + +static u_int64_t DMPDphys; /* phys addr of direct mapped level 2 */ +static u_int64_t DMPDPphys; /* phys addr of direct mapped level 3 */ + /* * Data for the pv entry allocation mechanism */ @@ -196,10 +191,8 @@ * All those kernel PT submaps that BSD is so fond of */ pt_entry_t *CMAP1 = 0; -static pt_entry_t *CMAP2, *CMAP3, *ptmmap; +static pt_entry_t *ptmmap; caddr_t CADDR1 = 0, ptvmmap = 0; -static caddr_t CADDR2, CADDR3; -static struct mtx CMAPCADDR12_lock; static pt_entry_t *msgbufmap; struct msgbuf *msgbufp = 0; @@ -209,12 +202,9 @@ static pt_entry_t *pt_crashdumpmap; static caddr_t crashdumpmap; -static pt_entry_t *PMAP1 = 0; -static pt_entry_t *PADDR1 = 0; - static PMAP_INLINE void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(void); -static void i386_protection_init(void); +static void amd64_protection_init(void); static __inline void pmap_changebit(vm_page_t m, int bit, boolean_t setem); static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, @@ -228,7 +218,7 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va); -static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex); +static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t 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); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); @@ -252,10 +242,195 @@ return newaddr; } +/********************/ +/* Inline functions */ +/********************/ + +/* Return a non-clipped PD index for a given VA */ +static __inline vm_pindex_t +pmap_pde_pindex(vm_offset_t va) +{ + return va >> PDRSHIFT; +} + + +/* Return various clipped indexes for a given VA */ +static __inline vm_pindex_t +pmap_pte_index(vm_offset_t va) +{ + + return ((va >> PAGE_SHIFT) & ((1ul << NPTEPGSHIFT) - 1)); +} + +static __inline vm_pindex_t +pmap_pde_index(vm_offset_t va) +{ + + return ((va >> PDRSHIFT) & ((1ul << NPDEPGSHIFT) - 1)); +} + +static __inline vm_pindex_t +pmap_pdpe_index(vm_offset_t va) +{ + + return ((va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1)); +} + +static __inline vm_pindex_t +pmap_pml4e_index(vm_offset_t va) +{ + + return ((va >> PML4SHIFT) & ((1ul << NPML4EPGSHIFT) - 1)); +} + +/* Return a pointer to the PML4 slot that corresponds to a VA */ +static __inline pml4_entry_t * +pmap_pml4e(pmap_t pmap, vm_offset_t va) +{ + + if (!pmap) + return NULL; + return (&pmap->pm_pml4[pmap_pml4e_index(va)]); +} + +/* Return a pointer to the PDP slot that corresponds to a VA */ +static __inline pdp_entry_t * +pmap_pdpe(pmap_t pmap, vm_offset_t va) +{ + pml4_entry_t *pml4e; + pdp_entry_t *pdpe; + + pml4e = pmap_pml4e(pmap, va); + if (pml4e == NULL || (*pml4e & PG_V) == 0) + return NULL; + pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME); + return (&pdpe[pmap_pdpe_index(va)]); +} + +/* Return a pointer to the PD slot that corresponds to a VA */ +static __inline pd_entry_t * +pmap_pde(pmap_t pmap, vm_offset_t va) +{ + pdp_entry_t *pdpe; + pd_entry_t *pde; + + pdpe = pmap_pdpe(pmap, va); + if (pdpe == NULL || (*pdpe & PG_V) == 0) + return NULL; + pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME); + return (&pde[pmap_pde_index(va)]); +} + +/* Return a pointer to the PT slot that corresponds to a VA */ +static __inline pt_entry_t * +pmap_pte(pmap_t pmap, vm_offset_t va) +{ + pd_entry_t *pde; + pt_entry_t *pte; + + pde = pmap_pde(pmap, va); + if (pde == NULL || (*pde & PG_V) == 0) + return NULL; + pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME); + return (&pte[pmap_pte_index(va)]); +} + + +PMAP_INLINE pt_entry_t * +vtopte(vm_offset_t va) +{ + u_int64_t mask = ((1ul << (NPTEPGSHIFT + NPDEPGSHIFT + NPDPEPGSHIFT + NPML4EPGSHIFT)) - 1); + + return (PTmap + (amd64_btop(va) & mask)); +} + +static u_int64_t +allocpages(int n) +{ + u_int64_t ret; + + ret = avail_start; + bzero((void *)ret, n * PAGE_SIZE); + avail_start += n * PAGE_SIZE; + return (ret); +} + +static void +create_pagetables(void) +{ + int i; + + /* Allocate pages */ + KPTphys = allocpages(NKPT); + KPML4phys = allocpages(1); + KPDPphys = allocpages(NKPML4E); + KPDphys = allocpages(NKPDPE); + + ndmpdp = (ptoa(Maxmem) + NBPDP - 1) >> PDPSHIFT; + if (ndmpdp < 1) + ndmpdp = 1; + DMPDPphys = allocpages(NDMPML4E); + DMPDphys = allocpages(ndmpdp); + + /* Fill in the underlying page table pages */ + /* Read-only from zero to physfree */ + /* XXX not fully used, underneath 2M pages */ + for (i = 0; (i << PAGE_SHIFT) < avail_start; i++) { + ((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT; + ((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V; + } + + /* Now map the page tables at their location within PTmap */ + for (i = 0; i < NKPT; i++) { + ((pd_entry_t *)KPDphys)[i] = KPTphys + (i << PAGE_SHIFT); + ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V; + } + +#if 0 + /* Map from zero to end of allocations under 2M pages */ + /* This replaces some of the KPTphys entries above */ + for (i = 0; (i << PDRSHIFT) < avail_start; i++) { + ((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT; + ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS; + } +#endif + + /* And connect up the PD to the PDP */ + for (i = 0; i < NKPDPE; i++) { + ((pdp_entry_t *)KPDPphys)[i + KPDPI] = KPDphys + (i << PAGE_SHIFT); + ((pdp_entry_t *)KPDPphys)[i + KPDPI] |= PG_RW | PG_V | PG_U; + } + + + /* Now set up the direct map space using 2MB pages */ + for (i = 0; i < NPDEPG * ndmpdp; i++) { + ((pd_entry_t *)DMPDphys)[i] = i << PDRSHIFT; + ((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS; + } + + /* And the direct map space's PDP */ + for (i = 0; i < ndmpdp; i++) { + ((pdp_entry_t *)DMPDPphys)[i] = DMPDphys + (i << PAGE_SHIFT); + ((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_U; + } + + /* And recursively map PML4 to itself in order to get PTmap */ + ((pdp_entry_t *)KPML4phys)[PML4PML4I] = KPML4phys; + ((pdp_entry_t *)KPML4phys)[PML4PML4I] |= PG_RW | PG_V | PG_U; + + /* Connect the Direct Map slot up to the PML4 */ + ((pdp_entry_t *)KPML4phys)[DMPML4I] = DMPDPphys; + ((pdp_entry_t *)KPML4phys)[DMPML4I] |= PG_RW | PG_V | PG_U; + + /* Connect the KVA slot up to the PML4 */ + ((pdp_entry_t *)KPML4phys)[KPML4I] = KPDPphys; + ((pdp_entry_t *)KPML4phys)[KPML4I] |= PG_RW | PG_V | PG_U; +} + /* * Bootstrap the system enough to run with virtual memory. * - * On the i386 this is called after mapping has already been enabled + * On amd64 this is called after mapping has already been enabled * and just syncs the pmap module with what has already been done. * [We can't call it easily with mapping off since the kernel is not * mapped with PA == VA, hence we would have to relocate every address @@ -263,40 +438,39 @@ * (physical) address starting relative to 0] */ void -pmap_bootstrap(firstaddr, loadaddr) - vm_paddr_t firstaddr; - vm_paddr_t loadaddr; +pmap_bootstrap(firstaddr) + vm_paddr_t *firstaddr; { vm_offset_t va; pt_entry_t *pte; - int i; - avail_start = firstaddr; + avail_start = *firstaddr; /* - * XXX The calculation of virtual_avail is wrong. It's NKPT*PAGE_SIZE too - * large. It should instead be correctly calculated in locore.s and - * not based on 'first' (which is a physical address, not a virtual - * address, for the start of unused physical memory). The kernel - * page tables are NOT double mapped and thus should not be included - * in this calculation. + * Create an initial set of page tables to run the kernel in. */ - virtual_avail = (vm_offset_t) KERNBASE + firstaddr; + create_pagetables(); + *firstaddr = avail_start; + + virtual_avail = (vm_offset_t) KERNBASE + avail_start; virtual_avail = pmap_kmem_choose(virtual_avail); virtual_end = VM_MAX_KERNEL_ADDRESS; + + /* XXX do %cr0 as well */ + load_cr4(rcr4() | CR4_PGE | CR4_PSE); + load_cr3(KPML4phys); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu May 29 12:57:09 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9F82837B404; Thu, 29 May 2003 12:57: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 36DCC37B401 for ; Thu, 29 May 2003 12:57:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEE3C43F75 for ; Thu, 29 May 2003 12:57:07 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TJv70U057345 for ; Thu, 29 May 2003 12:57:07 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TJv7pq057342 for perforce@freebsd.org; Thu, 29 May 2003 12:57:07 -0700 (PDT) Date: Thu, 29 May 2003 12:57:07 -0700 (PDT) Message-Id: <200305291957.h4TJv7pq057342@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 32034 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, 29 May 2003 19:57:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=32034 Change 32034 by rwatson@rwatson_tislabs on 2003/05/29 12:56:54 At some point, the mac_biba compartment subset logic seems to have become inverted; return to logic wherein the Biba dominate logic for a>=b uses: a.grade >= b.grade a.compartment (superset) b.compartment This brings the _mac branch back into sync with the main FreeBSD tree; I couldn't find a description for the reason for this change, but if I missed it, please let me know. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#207 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#207 (text+ko) ==== @@ -200,9 +200,9 @@ case MAC_BIBA_TYPE_GRADE: for (bit = 1; bit <= MAC_BIBA_MAX_COMPARTMENTS; bit++) - if (MAC_BIBA_BIT_TEST(bit, + if (!MAC_BIBA_BIT_TEST(bit, a->mbe_compartments) && - !MAC_BIBA_BIT_TEST(bit, + MAC_BIBA_BIT_TEST(bit, b->mbe_compartments)) return (0); return (a->mbe_grade >= b->mbe_grade); From owner-p4-projects@FreeBSD.ORG Thu May 29 13:18:36 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D467937B404; Thu, 29 May 2003 13:18:35 -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 5042E37B401 for ; Thu, 29 May 2003 13:18:35 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EA47A43F93 for ; Thu, 29 May 2003 13:18:34 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TKIY0U059261 for ; Thu, 29 May 2003 13:18:34 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TKIYqW059258 for perforce@freebsd.org; Thu, 29 May 2003 13:18:34 -0700 (PDT) Date: Thu, 29 May 2003 13:18:34 -0700 (PDT) Message-Id: <200305292018.h4TKIYqW059258@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 32036 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, 29 May 2003 20:18:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=32036 Change 32036 by rwatson@rwatson_tislabs on 2003/05/29 13:18:14 Style sync to -current. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#208 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#208 (text+ko) ==== @@ -202,8 +202,7 @@ for (bit = 1; bit <= MAC_BIBA_MAX_COMPARTMENTS; bit++) if (!MAC_BIBA_BIT_TEST(bit, a->mbe_compartments) && - MAC_BIBA_BIT_TEST(bit, - b->mbe_compartments)) + MAC_BIBA_BIT_TEST(bit, b->mbe_compartments)) return (0); return (a->mbe_grade >= b->mbe_grade); From owner-p4-projects@FreeBSD.ORG Thu May 29 13:22:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CBF537B401; Thu, 29 May 2003 13:22:23 -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 3A84237B404 for ; Thu, 29 May 2003 13:22:23 -0700 (PDT) Received: from mail.speakeasy.net (mail11.speakeasy.net [216.254.0.211]) by mx1.FreeBSD.org (Postfix) with ESMTP id 349A143F75 for ; Thu, 29 May 2003 13:22:22 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 13559 invoked from network); 29 May 2003 20:12:53 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 29 May 2003 20:12:53 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.12.8/8.12.8) with ESMTP id h4TKCpp0085303; Thu, 29 May 2003 16:12:51 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.4 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200305291957.h4TJv7pq057342@repoman.freebsd.org> Date: Thu, 29 May 2003 16:13:02 -0400 (EDT) From: John Baldwin To: Robert Watson cc: Perforce Change Reviews Subject: RE: PERFORCE change 32034 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, 29 May 2003 20:22:24 -0000 On 29-May-2003 Robert Watson wrote: > http://perforce.freebsd.org/chv.cgi?CH=32034 > > Change 32034 by rwatson@rwatson_tislabs on 2003/05/29 12:56:54 > > At some point, the mac_biba compartment subset logic seems > to have become inverted; return to logic wherein the Biba > dominate logic for a>=b uses: > > a.grade >= b.grade > a.compartment (superset) b.compartment > > This brings the _mac branch back into sync with the main > FreeBSD tree; I couldn't find a description for the reason > for this change, but if I missed it, please let me know. Appears to have been in rev #189 of this file (new p4 client has annotate support now): Change 21367 by amigus@amigus_beetle on 2002/11/21 22:52:51 Clean up parsing code (use strsep()) and introduce compartment range declaration and display. Biba/MLS now accepts and reports compartment sets using a '++' notation. For example "mls/10:1++64" would denote level 10 wih compartments 1 to 64. Affected files ... ... //depot/projects/trustedbsd/mac/sys/security/mac_biba/mac_biba.c#189 edit ... //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#150 edit -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ From owner-p4-projects@FreeBSD.ORG Thu May 29 13:29:50 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1E8B437B404; Thu, 29 May 2003 13:29: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 B30E237B401 for ; Thu, 29 May 2003 13:29:49 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 428AF43F75 for ; Thu, 29 May 2003 13:29:49 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TKTn0U059652 for ; Thu, 29 May 2003 13:29:49 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TKTmgG059649 for perforce@freebsd.org; Thu, 29 May 2003 13:29:48 -0700 (PDT) Date: Thu, 29 May 2003 13:29:48 -0700 (PDT) Message-Id: <200305292029.h4TKTmgG059649@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 32037 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, 29 May 2003 20:29:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=32037 Change 32037 by rwatson@rwatson_tislabs on 2003/05/29 13:29:26 Synchronize additional whitespace against FreeBSD vendor tree. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#166 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac_mls/mac_mls.c#166 (text+ko) ==== @@ -654,7 +654,6 @@ strcmp(string, "eq") == 0) { element->mme_type = MAC_MLS_TYPE_EQUAL; element->mme_level = MAC_MLS_TYPE_UNDEF; - } else { element->mme_type = MAC_MLS_TYPE_LEVEL; From owner-p4-projects@FreeBSD.ORG Thu May 29 14:14:36 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DB62B37B404; Thu, 29 May 2003 14:14:35 -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 7889937B401; Thu, 29 May 2003 14:14:35 -0700 (PDT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id B184743F93; Thu, 29 May 2003 14:14:34 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.9/8.12.9) with ESMTP id h4TLDfOn007104; Thu, 29 May 2003 17:13:42 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)h4TLDf1h007101; Thu, 29 May 2003 17:13:41 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Thu, 29 May 2003 17:13:41 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Perforce Change Reviews Subject: RE: PERFORCE change 32034 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, 29 May 2003 21:14:36 -0000 On Thu, 29 May 2003, John Baldwin wrote: > Appears to have been in rev #189 of this file (new p4 client has > annotate support now): Ooo, p4 annotate. Need to update. > Clean up parsing code (use strsep()) and introduce compartment > range declaration and display. > Biba/MLS now accepts and reports compartment sets using a '++' > notation. For example "mls/10:1++64" would denote level 10 > wih compartments 1 to 64. So indeed, it looks like it may have been accidentally introduced. A good sign that we need more regression tests. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories From owner-p4-projects@FreeBSD.ORG Thu May 29 14:51:43 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A1C0537B404; Thu, 29 May 2003 14:51: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 54F6637B401 for ; Thu, 29 May 2003 14:51:42 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 38BB443F3F for ; Thu, 29 May 2003 14:51:41 -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 h4TLpf0U064477 for ; Thu, 29 May 2003 14:51:41 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TLpeUI064474 for perforce@freebsd.org; Thu, 29 May 2003 14:51:40 -0700 (PDT) Date: Thu, 29 May 2003 14:51:40 -0700 (PDT) Message-Id: <200305292151.h4TLpeUI064474@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 32055 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, 29 May 2003 21:51:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=32055 Change 32055 by peter@peter_daintree on 2003/05/29 14:51:15 IFC @32051 Affected files ... .. //depot/projects/hammer/contrib/amd/conf/transp/transp_sockets.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-alpha.c#5 integrate .. //depot/projects/hammer/crypto/openssh/sshd.c#5 integrate .. //depot/projects/hammer/lib/libc/rpc/svc_vc.c#3 integrate .. //depot/projects/hammer/lib/libc/stdlib/realpath.c#6 integrate .. //depot/projects/hammer/lib/libc/xdr/xdr_rec.c#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_init.c#7 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#9 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#9 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_spinlock.c#5 integrate .. //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#7 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_cond.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_create.c#6 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_exit.c#5 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_gc.c#4 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_join.c#4 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#6 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#23 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#29 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/errata/article.sgml#5 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#6 integrate .. //depot/projects/hammer/release/doc/ja_JP.eucJP/relnotes/common/new.sgml#6 integrate .. //depot/projects/hammer/share/man/man4/axe.4#2 integrate .. //depot/projects/hammer/share/man/man4/mac_portacl.4#2 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/pae.4#3 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/sbni.4#2 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/vpd.4#2 integrate .. //depot/projects/hammer/share/man/man4/my.4#2 integrate .. //depot/projects/hammer/share/man/man4/rndtest.4#2 integrate .. //depot/projects/hammer/share/man/man4/rue.4#2 integrate .. //depot/projects/hammer/share/man/man4/sbsh.4#2 integrate .. //depot/projects/hammer/sys/amd64/amd64/identcpu.c#11 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/nsalloc.c#5 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#16 integrate .. //depot/projects/hammer/sys/ia64/ia64/trap.c#11 integrate .. //depot/projects/hammer/sys/ia64/ia64/unaligned.c#3 integrate .. //depot/projects/hammer/sys/ia64/include/cpu.h#7 integrate .. //depot/projects/hammer/sys/kern/kern_sysctl.c#7 integrate .. //depot/projects/hammer/sys/kern/subr_mbuf.c#11 integrate .. //depot/projects/hammer/sys/kern/uipc_syscalls.c#8 integrate .. //depot/projects/hammer/sys/kern/vfs_cluster.c#8 integrate .. //depot/projects/hammer/sys/net/if_loop.c#7 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/tick.c#5 integrate Differences ... ==== //depot/projects/hammer/contrib/amd/conf/transp/transp_sockets.c#2 (text+ko) ==== @@ -50,6 +50,9 @@ #include #include +#ifndef RPC_MAXDATASIZE +#define RPC_MAXDATASIZE 9000 +#endif /* * find the IP address that can be used to connect to the local host @@ -216,6 +219,8 @@ int create_amq_service(int *udp_soAMQp, SVCXPRT **udp_amqpp, int *tcp_soAMQp, SVCXPRT **tcp_amqpp) { + int maxrec = RPC_MAXDATASIZE; + /* first create TCP service */ if (tcp_soAMQp) { *tcp_soAMQp = socket(AF_INET, SOCK_STREAM, 0); @@ -231,6 +236,9 @@ return 2; } } +#ifdef SVCSET_CONNMAXREC + SVC_CONTROL(*tcp_amqpp, SVCSET_CONNMAXREC, &maxrec); +#endif /* next create UDP service */ if (udp_soAMQp) { ==== //depot/projects/hammer/contrib/binutils/bfd/elf64-alpha.c#5 (text+ko) ==== @@ -19,6 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* $FreeBSD: src/contrib/binutils/bfd/elf64-alpha.c,v 1.18 2003/05/28 03:32:33 obrien Exp $ */ + /* We need a published ABI spec for this. Until one comes out, don't assume this'll remain unchanged forever. */ @@ -4490,8 +4492,20 @@ value -= gp; goto default_reloc; + case R_ALPHA_GPREL32: + /* If the target section was a removed linkonce section, + r_symndx will be zero. In this case, assume that the + switch will not be used, so don't fill it in. If we + do nothing here, we'll get relocation truncated messages, + due to the placement of the application above 4GB. */ + if (r_symndx == 0) + { + r = bfd_reloc_ok; + break; + } + /* FALLTHRU */ + case R_ALPHA_GPREL16: - case R_ALPHA_GPREL32: case R_ALPHA_GPRELLOW: if (dynamic_symbol_p) { ==== //depot/projects/hammer/crypto/openssh/sshd.c#5 (text+ko) ==== @@ -43,7 +43,7 @@ #include "includes.h" RCSID("$OpenBSD: sshd.c,v 1.263 2003/02/16 17:09:57 markus Exp $"); -RCSID("$FreeBSD: src/crypto/openssh/sshd.c,v 1.33 2003/04/23 17:10:53 des Exp $"); +RCSID("$FreeBSD: src/crypto/openssh/sshd.c,v 1.34 2003/05/28 19:39:33 des Exp $"); #include #include @@ -835,9 +835,10 @@ /* Save argv. Duplicate so setproctitle emulation doesn't clobber it */ saved_argc = ac; saved_argv = av; - saved_argv = xmalloc(sizeof(*saved_argv) * ac); + saved_argv = xmalloc(sizeof(*saved_argv) * (ac + 1)); for (i = 0; i < ac; i++) saved_argv[i] = xstrdup(av[i]); + saved_argv[ac] = NULL; #ifndef HAVE_SETPROCTITLE /* Prepare for later setproctitle emulation */ ==== //depot/projects/hammer/lib/libc/rpc/svc_vc.c#3 (text+ko) ==== @@ -34,7 +34,7 @@ static char *sccsid = "@(#)svc_tcp.c 2.2 88/08/01 4.0 RPCSRC"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.17 2003/01/26 23:01:49 mbr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.19 2003/05/29 19:43:22 mbr Exp $"); /* * svc_vc.c, Server side for Connection Oriented based RPC. @@ -487,8 +487,15 @@ cfp = (struct cf_conn *)xprt->xp_p1; + cm = NULL; + sa = (struct sockaddr *)xprt->xp_rtaddr.buf; if (cfp->nonblock) { - len = _read(sock, buf, (size_t)len); + if (sa->sa_family == AF_LOCAL) { + cm = (struct cmessage *)xprt->xp_verf.oa_base; + if ((len = __msgread_withcred(sock, buf, len, cm)) > 0) + xprt->xp_p2 = &cm->cmcred; + } else + len = _read(sock, buf, (size_t)len); if (len < 0) { if (errno == EAGAIN) len = 0; @@ -517,8 +524,6 @@ } } while ((pollfd.revents & POLLIN) == 0); - cm = NULL; - sa = (struct sockaddr *)xprt->xp_rtaddr.buf; if (sa->sa_family == AF_LOCAL) { cm = (struct cmessage *)xprt->xp_verf.oa_base; if ((len = __msgread_withcred(sock, buf, len, cm)) > 0) { ==== //depot/projects/hammer/lib/libc/stdlib/realpath.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ static char sccsid[] = "@(#)realpath.c 8.1 (Berkeley) 2/16/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/realpath.c,v 1.19 2003/05/01 19:03:14 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdlib/realpath.c,v 1.20 2003/05/28 08:23:01 fjoe Exp $"); #include "namespace.h" #include @@ -119,7 +119,7 @@ */ if (resolved_len > 1) { resolved[resolved_len - 1] = '\0'; - q = strrchr(resolved, '/'); + q = strrchr(resolved, '/') + 1; *q = '\0'; resolved_len = q - resolved; } @@ -158,7 +158,7 @@ } else if (resolved_len > 1) { /* Strip the last path component. */ resolved[resolved_len - 1] = '\0'; - q = strrchr(resolved, '/'); + q = strrchr(resolved, '/') + 1; *q = '\0'; resolved_len = q - resolved; } ==== //depot/projects/hammer/lib/libc/xdr/xdr_rec.c#3 (text+ko) ==== @@ -35,7 +35,7 @@ static char *sccsid = "@(#)xdr_rec.c 2.2 88/08/01 4.0 RPCSRC"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_rec.c,v 1.19 2003/02/27 13:40:01 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_rec.c,v 1.20 2003/05/28 09:13:09 mbr Exp $"); /* * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking" @@ -489,16 +489,7 @@ XDR *xdrs; { RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private); - enum xprt_stat xstat; - if (rstrm->nonblock) { - if (__xdrrec_getrec(xdrs, &xstat, FALSE)) - return FALSE; - if (!rstrm->in_haveheader && xstat == XPRT_IDLE) - return TRUE; - return FALSE; - } - while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) { if (! skip_input_bytes(rstrm, rstrm->fbtbc)) return (TRUE); @@ -719,6 +710,8 @@ { u_int32_t header; + if (rstrm->nonblock) + return FALSE; if (! get_input_bytes(rstrm, (char *)(void *)&header, sizeof(header))) return (FALSE); header = ntohl(header); ==== //depot/projects/hammer/lib/libpthread/thread/thr_init.c#7 (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_init.c,v 1.52 2003/05/16 19:58:29 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_init.c,v 1.53 2003/05/29 17:10:45 deischen Exp $ */ /* Allocate space for global thread variables here: */ @@ -515,6 +515,7 @@ if (_lock_init(&_keytable_lock, LCK_ADAPTIVE, _thr_lock_wait, _thr_lock_wakeup) != 0) PANIC("Cannot initialize thread specific keytable lock"); + _thr_spinlock_init(); /* Clear pending signals and get the process signal mask. */ sigemptyset(&_thr_proc_sigpending); ==== //depot/projects/hammer/lib/libpthread/thread/thr_private.h#9 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.87 2003/05/16 19:58:29 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.88 2003/05/29 17:10:45 deischen Exp $ */ #ifndef _THR_PRIVATE_H @@ -1114,6 +1114,7 @@ void _thr_sched_switch(struct pthread *); void _thr_sched_switch_unlocked(struct pthread *); void _thr_set_timeout(const struct timespec *); +void _thr_seterrno(struct pthread *, int); void _thr_sig_handler(int, siginfo_t *, ucontext_t *); void _thr_sig_check_pending(struct pthread *); void _thr_sig_rundown(struct pthread *, ucontext_t *, @@ -1121,7 +1122,7 @@ void _thr_sig_send(struct pthread *pthread, int sig); void _thr_sig_wrapper(void); void _thr_sigframe_restore(struct pthread *thread, struct pthread_sigframe *psf); -void _thr_seterrno(struct pthread *, int); +void _thr_spinlock_init(void); void _thr_enter_cancellation_point(struct pthread *); void _thr_leave_cancellation_point(struct pthread *); int _thr_setconcurrency(int new_level); ==== //depot/projects/hammer/lib/libpthread/thread/thr_sig.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_sig.c,v 1.51 2003/05/24 02:29:25 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_sig.c,v 1.52 2003/05/29 17:10:45 deischen Exp $ */ #include #include @@ -175,7 +175,7 @@ void _thr_sig_handler(int sig, siginfo_t *info, ucontext_t *ucp) { - void (*sigfunc)(int, siginfo_t *, void *); + __siginfohandler_t *sigfunc; struct kse *curkse; curkse = _get_curkse(); @@ -184,7 +184,8 @@ sigfunc = _thread_sigact[sig - 1].sa_sigaction; ucp->uc_sigmask = _thr_proc_sigmask; if (((__sighandler_t *)sigfunc != SIG_DFL) && - ((__sighandler_t *)sigfunc != SIG_IGN)) { + ((__sighandler_t *)sigfunc != SIG_IGN) && + (sigfunc != (__siginfohandler_t *)_thr_sig_handler)) { if (((_thread_sigact[sig - 1].sa_flags & SA_SIGINFO) != 0) || (info == NULL)) (*(sigfunc))(sig, info, ucp); ==== //depot/projects/hammer/lib/libpthread/thread/thr_spinlock.c#5 (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_spinlock.c,v 1.15 2003/04/28 23:56:12 deischen Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_spinlock.c,v 1.16 2003/05/29 17:10:45 deischen Exp $ * */ @@ -40,6 +40,20 @@ #include "spinlock.h" #include "thr_private.h" +#define MAX_SPINLOCKS 5 + +struct spinlock_extra { + struct lock lock; + kse_critical_t crit; +}; + +static void init_spinlock(spinlock_t *lck); + +static struct lock spinlock_static_lock; +static struct spinlock_extra extra[MAX_SPINLOCKS]; +static int spinlock_count = 0; +static int initialized = 0; + /* * These are for compatability only. Spinlocks of this type * are deprecated. @@ -48,12 +62,13 @@ void _spinunlock(spinlock_t *lck) { + struct spinlock_extra *extra; kse_critical_t crit; - crit = (kse_critical_t)lck->fname; - atomic_store_rel_long(&lck->access_lock, 0); - if (crit != NULL) - _kse_critical_leave(crit); + extra = (struct spinlock_extra *)lck->fname; + crit = extra->crit; + KSE_LOCK_RELEASE(_get_curkse(), &extra->lock); + _kse_critical_leave(crit); } @@ -66,21 +81,21 @@ void _spinlock(spinlock_t *lck) { + struct spinlock_extra *extra; kse_critical_t crit; + THR_ASSERT(__isthreaded != 0, "Spinlock called when not threaded."); + THR_ASSERT(initialized != 0, "Spinlocks not initialized."); /* * Try to grab the lock and loop if another thread grabs * it before we do. */ - if (_kse_isthreaded()) - crit = _kse_critical_enter(); - else - crit = NULL; - while(_atomic_lock(&lck->access_lock)) { - while (lck->access_lock) - ; - } - lck->fname = (char *)crit; + crit = _kse_critical_enter(); + if (lck->fname == NULL) + init_spinlock(lck); + extra = (struct spinlock_extra *)lck->fname; + KSE_LOCK_ACQUIRE(_get_curkse(), &extra->lock); + extra->crit = crit; } /* @@ -98,3 +113,40 @@ { _spinlock(lck); } + +static void +init_spinlock(spinlock_t *lck) +{ + struct kse *curkse = _get_curkse(); + + KSE_LOCK_ACQUIRE(curkse, &spinlock_static_lock); + if ((lck->fname == NULL) && (spinlock_count < MAX_SPINLOCKS)) { + lck->fname = (char *)&extra[spinlock_count]; + spinlock_count++; + } + KSE_LOCK_RELEASE(curkse, &spinlock_static_lock); + THR_ASSERT(lck->fname != NULL, "Exceeded max spinlocks"); +} + +void +_thr_spinlock_init(void) +{ + int i; + + if (initialized != 0) { + _lock_destroy(&spinlock_static_lock); + for (i = 0; i < MAX_SPINLOCKS; i++) { + _lock_destroy(&extra[i].lock); + } + } + + if (_lock_init(&spinlock_static_lock, LCK_ADAPTIVE, + _kse_lock_wait, _kse_lock_wakeup) != 0) + PANIC("Cannot initialize spinlock_static_lock"); + for (i = 0; i < MAX_SPINLOCKS; i++) { + if (_lock_init(&extra[i].lock, LCK_ADAPTIVE, + _kse_lock_wait, _kse_lock_wakeup) != 0) + PANIC("Cannot initialize spinlock extra"); + } + initialized = 1; +} ==== //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#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: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.8 2003/05/25 22:40:57 mtm Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.9 2003/05/29 20:49:17 mtm Exp $ */ #include @@ -111,6 +111,8 @@ if (ldt_free == NULL) { /* Concurrent thread limit reached */ *err = curthread->error = EAGAIN; + if (thr != _thread_initial) + _SPINUNLOCK(&ldt_lock); return (NULL); } ==== //depot/projects/hammer/lib/libthr/thread/thr_cond.c#5 (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/libthr/thread/thr_cond.c,v 1.6 2003/05/24 01:02:16 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cond.c,v 1.7 2003/05/29 20:54:00 mtm Exp $ */ #include #include @@ -38,8 +38,15 @@ #include "thr_private.h" /* + * Proctect two different threads calling a pthread_cond_* function + * from accidentally initializing the condition variable twice. + */ +static spinlock_t static_cond_lock = _SPINLOCK_INITIALIZER; + +/* * Prototypes */ +static inline int cond_init(pthread_cond_t *); static pthread_t cond_queue_deq(pthread_cond_t); static void cond_queue_remove(pthread_cond_t, pthread_t); static void cond_queue_enq(pthread_cond_t, pthread_t); @@ -202,7 +209,7 @@ * If the condition variable is statically initialized, perform dynamic * initialization. */ - if (*cond == NULL && (rval = pthread_cond_init(cond, NULL)) != 0) + if (*cond == PTHREAD_COND_INITIALIZER && (rval = cond_init(cond)) != 0) return (rval); @@ -363,7 +370,7 @@ * If the condition variable is statically initialized, perform dynamic * initialization. */ - if (*cond == NULL && (rval = pthread_cond_init(cond, NULL)) != 0) + if (*cond == PTHREAD_COND_INITIALIZER && (rval = cond_init(cond)) != 0) return (rval); COND_LOCK(*cond); @@ -518,3 +525,14 @@ pthread->flags |= PTHREAD_FLAGS_IN_CONDQ; pthread->data.cond = cond; } + +static inline int +cond_init(pthread_cond_t *cond) +{ + _SPINLOCK(&static_cond_lock); + if (*cond == PTHREAD_COND_INITIALIZER) + return (_pthread_cond_init(cond, NULL)); + _SPINUNLOCK(&static_cond_lock); + return (0); +} + ==== //depot/projects/hammer/lib/libthr/thread/thr_create.c#6 (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/libthr/thread/thr_create.c,v 1.9 2003/05/26 00:37:07 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.10 2003/05/29 20:40:50 mtm Exp $ */ #include #include @@ -171,7 +171,6 @@ new_thread->uniqueid = next_uniqueid++; THREAD_LIST_LOCK; - _thread_critical_enter(new_thread); /* * Check if the garbage collector thread @@ -182,8 +181,6 @@ /* Add the thread to the linked list of all threads: */ TAILQ_INSERT_HEAD(&_thread_list, new_thread, tle); - THREAD_LIST_UNLOCK; - /* * Create the thread. * @@ -200,11 +197,11 @@ PANIC("thr_create"); } + THREAD_LIST_UNLOCK; + /* Return a pointer to the thread structure: */ (*thread) = new_thread; - _thread_critical_exit(new_thread); - /* * Start a garbage collector thread * if necessary. ==== //depot/projects/hammer/lib/libthr/thread/thr_exit.c#5 (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/libthr/thread/thr_exit.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.8 2003/05/29 20:46:53 mtm Exp $ */ #include #include @@ -94,7 +94,7 @@ void _pthread_exit(void *status) { - pthread_t pthread; + pthread_t pthread, joiner; int exitNow = 0; /* Check if this thread is already in the process of exiting: */ @@ -122,10 +122,27 @@ _thread_cleanupspecific(); } +retry: + /* + * Proper lock order, to minimize deadlocks, between joining + * and exiting threads is: DEAD_LIST, THREAD_LIST, exiting, joiner. + * In order to do this *and* protect from races, we must resort + * this test-and-retry loop. + */ + joiner = curthread->joiner; + /* Lock the dead list first to maintain correct lock order */ DEAD_LIST_LOCK; + THREAD_LIST_LOCK; _thread_critical_enter(curthread); + if (joiner != curthread->joiner) { + _thread_critical_exit(curthread); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; + goto retry; + } + /* Check if there is a thread joining this one: */ if (curthread->joiner != NULL) { pthread = curthread->joiner; @@ -151,34 +168,35 @@ * Add this thread to the list of dead threads, and * also remove it from the active threads list. */ - THREAD_LIST_LOCK; TAILQ_INSERT_HEAD(&_dead_list, curthread, dle); TAILQ_REMOVE(&_thread_list, curthread, tle); PTHREAD_SET_STATE(curthread, PS_DEAD); _thread_critical_exit(curthread); + /* If we're the last thread, call it quits */ + if (TAILQ_EMPTY(&_thread_list)) + exitNow = 1; + + THREAD_LIST_UNLOCK; + /* * Signal the garbage collector thread that there is something - * to clean up. + * to clean up. But don't allow it to free the memory until after + * it is retired by holding on to the dead list lock. */ if (pthread_cond_signal(&_gc_cond) != 0) PANIC("Cannot signal gc cond"); - /* If we're the last thread, call it quits */ - if (TAILQ_EMPTY(&_thread_list)) - exitNow = 1; + if (exitNow) + exit(0); - THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; - if (exitNow) - exit(0); - /* - * Retire the architecture specific id so that it can be used for - * new threads. + * This function will not return unless we are the last + * thread, which we can't be because we've already checked + * for that. */ - _retire_thread(curthread->arch_id); _thr_exit(); /* This point should not be reached. */ ==== //depot/projects/hammer/lib/libthr/thread/thr_gc.c#4 (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/libthr/thread/thr_gc.c,v 1.5 2003/05/26 00:37:07 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.6 2003/05/29 20:46:53 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -142,6 +142,13 @@ pthread_cln = pthread; _SPINUNLOCK(&pthread->lock); + + /* + * Retire the architecture specific id so it may be + * used for new threads. + */ + _retire_thread(pthread_cln->arch_id); + } /* ==== //depot/projects/hammer/lib/libthr/thread/thr_join.c#4 (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/libthr/thread/thr_join.c,v 1.6 2003/05/26 00:28:49 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.8 2003/05/29 20:46:53 mtm Exp $ */ #include #include @@ -107,9 +107,10 @@ /* Check if the thread is not dead: */ if (pthread->state != PS_DEAD) { - _thread_critical_enter(curthread); /* Set the running thread to be the joiner: */ pthread->joiner = curthread; + _SPINUNLOCK(&pthread->lock); + _thread_critical_enter(curthread); /* Keep track of which thread we're joining to: */ curthread->join_status.thread = pthread; @@ -118,11 +119,19 @@ PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ _thread_critical_exit(curthread); - _SPINUNLOCK(&pthread->lock); THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); + /* + * XXX - For correctness reasons. + * We must aquire these in the same order and also + * importantly, release in the same order, order because + * otherwise we might deadlock with the joined thread + * when we attempt to release one of these locks. + */ + DEAD_LIST_LOCK; + THREAD_LIST_LOCK; _thread_critical_enter(curthread); } @@ -134,6 +143,8 @@ if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; _thread_critical_exit(curthread); + THREAD_LIST_UNLOCK; + DEAD_LIST_UNLOCK; } else { /* * The thread exited (is dead) without being detached, and no @@ -149,9 +160,9 @@ /* Make the thread collectable by the garbage collector. */ pthread->attr.flags |= PTHREAD_DETACHED; _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; if (pthread_cond_signal(&_gc_cond) != 0) PANIC("Cannot signal gc cond"); - THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; } ==== //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#6 (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/libthr/thread/thr_mutex.c,v 1.8 2003/05/23 09:48:20 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.9 2003/05/29 20:58:31 mtm Exp $ */ #include #include @@ -101,7 +101,7 @@ if (mutex == NULL) ret = EINVAL; - else if (*mutex == NULL) + else if (*mutex == PTHREAD_MUTEX_INITIALIZER) ret = _pthread_mutex_init(mutex, NULL); else { /* @@ -269,35 +269,25 @@ static int init_static(pthread_mutex_t *mutex) { - int ret; - _SPINLOCK(&static_init_lock); - - if (*mutex == NULL) - ret = _pthread_mutex_init(mutex, NULL); - else - ret = 0; - + if (*mutex == PTHREAD_MUTEX_INITIALIZER) { + _SPINUNLOCK(&static_init_lock); + return(_pthread_mutex_init(mutex, NULL)); + } _SPINUNLOCK(&static_init_lock); - - return (ret); + return (0); } static int init_static_private(pthread_mutex_t *mutex) { - int ret; - _SPINLOCK(&static_init_lock); - - if (*mutex == NULL) - ret = _pthread_mutex_init(mutex, &static_mattr); - else - ret = 0; - + if (*mutex == PTHREAD_MUTEX_INITIALIZER) { + _SPINUNLOCK(&static_init_lock); + return (_pthread_mutex_init(mutex, &static_mattr)); + } _SPINUNLOCK(&static_init_lock); - - return (ret); + return (0); } int @@ -312,7 +302,8 @@ * If the mutex is statically initialized, perform the dynamic * initialization: */ - else if ((*mutex != NULL) || (ret = init_static(mutex)) == 0) + else if ((*mutex != PTHREAD_MUTEX_INITIALIZER) || + (ret = init_static(mutex)) == 0) ret = mutex_lock_common(mutex, 1); return (ret); @@ -330,7 +321,8 @@ * If the mutex is statically initialized, perform the dynamic * initialization marking the mutex private (delete safe): */ - else if ((*mutex != NULL) || (ret = init_static_private(mutex)) == 0) + else if ((*mutex != PTHREAD_MUTEX_INITIALIZER) || + (ret = init_static_private(mutex)) == 0) ret = mutex_lock_common(mutex, 1); return (ret); @@ -514,7 +506,8 @@ * If the mutex is statically initialized, perform the dynamic * initialization: */ - else if ((*mutex != NULL) || ((ret = init_static(mutex)) == 0)) + else if ((*mutex != PTHREAD_MUTEX_INITIALIZER) || + ((ret = init_static(mutex)) == 0)) ret = mutex_lock_common(mutex, 0); return (ret); @@ -535,7 +528,8 @@ * If the mutex is statically initialized, perform the dynamic * initialization marking it private (delete safe): */ - else if ((*mutex != NULL) || ((ret = init_static_private(mutex)) == 0)) + else if ((*mutex != PTHREAD_MUTEX_INITIALIZER) || + ((ret = init_static_private(mutex)) == 0)) ret = mutex_lock_common(mutex, 0); return (ret); ==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#23 (text+ko) ==== @@ -31,7 +31,7 @@ - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.155 2003/05/24 18:50:20 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.156 2003/05/28 21:01:22 hrs Exp $ Supported Devices @@ -688,7 +688,7 @@ ICM PSC-2401 SCSI - Melco IFC-SC + MELCO IFC-SC RATOC REX-5536, REX-5536AM, REX-5536M, @@ -1273,7 +1273,7 @@ (PCMPC100 V2) - Melco LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX + MELCO LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX NDC Ethernet Instant-Link @@ -1609,7 +1609,7 @@ LinkSys USB10T, USB10TA, USB10TX, USB100TX, USB100H1 - Melco LUA-TX, LUA2-TX + MELCO LUA-TX, LUA2-TX Planex UE-200TX @@ -1716,7 +1716,7 @@ GREEN HOUSE GH-USB100B - Melco LUA-KTX + MELCO LUA-KTX @@ -2345,7 +2345,7 @@ Lucent WaveLAN/IEEE 802.11 - Melco Airconnect WLI-PCM-S11, WLI-PCM-L11 + MELCO Airconnect WLI-PCM-S11, WLI-PCM-L11 NCR WaveLAN/IEEE 802.11 @@ -2428,7 +2428,7 @@ Icom SL-200 - Melco WLI-PCM + MELCO WLI-PCM NEL SSMagic @@ -3306,21 +3306,21 @@ Matshita CF-VFDU03 floppy drive - Melco USB2.0 MO Drive MO-CH640U2 + MELCO USB2.0 MO Drive MO-CH640U2 - Melco USB/IEEE1394 Portable HD Drive HDP-i30P/CI, HDP-i40P/CI + I-O DATA USB/IEEE1394 Portable HD Drive HDP-i30P/CI, HDP-i40P/CI - Melco USB Flash Disk PetitDrive, + MELCO USB Flash Disk PetitDrive, RUF-32M, -64M, -128M, -256M - Melco USB2.0 Flash Disk PetitDrive2, + MELCO USB2.0 Flash Disk PetitDrive2, RUF-256M/U2, -512M/U2 - Melco USB Flash Disk ClipDrive, + MELCO USB Flash Disk ClipDrive, RUF-C32M, -C64M, -C128M, -C256M, -C512M @@ -3521,7 +3521,7 @@ FAX-Modem/PCCARD - Melco IGM-PCM56K/IGM-PCM56KH + MELCO IGM-PCM56K/IGM-PCM56KH Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) ==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#29 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.572 2003/05/27 15:43:59 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.573 2003/05/28 21:01:22 hrs Exp $ 2000 @@ -735,7 +735,7 @@ The format of the /etc/pwd.db and /etc/spwd.db password databases created by - &man.pwd.mkdb.8; is now byte-order dependent. The pre-processed + &man.pwd.mkdb.8; is now byte-order independent. The pre-processed password databases can now be moved between machines of different architectures. The format includes version numbers on entries to ensure compatibility with old binaries. ==== //depot/projects/hammer/release/doc/ja_JP.eucJP/errata/article.sgml#5 (text+ko) ==== @@ -1,8 +1,8 @@