From owner-p4-projects@FreeBSD.ORG Sun Jun 13 03:58:15 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3287516A4D2; Sun, 13 Jun 2004 03:58:14 +0000 (GMT) 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 E414F16A4D0 for ; Sun, 13 Jun 2004 03:58:13 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DB6D743D1D for ; Sun, 13 Jun 2004 03:58:13 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5D3w8XT001287 for ; Sun, 13 Jun 2004 03:58:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D3w8Fo001284 for perforce@freebsd.org; Sun, 13 Jun 2004 03:58:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 13 Jun 2004 03:58:08 GMT Message-Id: <200406130358.i5D3w8Fo001284@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 54775 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, 13 Jun 2004 03:58:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=54775 Change 54775 by rwatson@rwatson_tislabs on 2004/06/13 03:57:24 Integrate netperf_socket: - geom_vinum - Loop back of socket MAC label locking via SOCK_LOCK(so). Affected files ... .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#2 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf.c#8 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_ioctl.c#7 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pfvar.h#3 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/netperf_socket/sys/kern/kern_prot.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/subr_witness.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/sys_socket.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#12 integrate .. //depot/projects/netperf_socket/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/netperf_socket/sys/netatalk/ddp_input.c#5 integrate .. //depot/projects/netperf_socket/sys/netatalk/ddp_output.c#5 integrate .. //depot/projects/netperf_socket/sys/netinet/in_pcb.c#11 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_syncache.c#7 integrate .. //depot/projects/netperf_socket/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/netperf_socket/sys/sys/socketvar.h#13 integrate Differences ... ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.46 2003/10/20 10:38:48 tjr Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.47 2004/06/13 02:50:04 rwatson Exp $"); #define COMPAT_43 1 @@ -171,7 +171,9 @@ return (error); #ifdef MAC + SOCK_LOCK(so); error = mac_check_socket_send(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) goto done1; #endif @@ -275,7 +277,9 @@ return (error); #ifdef MAC + SOCK_LOCK(so); error = mac_check_socket_receive(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) goto done1; #endif ==== //depot/projects/netperf_socket/sys/contrib/pf/net/pf.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.8 2004/05/02 20:47:24 dhartmei Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.9 2004/06/13 01:36:30 mlaier Exp $ */ /* $OpenBSD: pf.c,v 1.389.2.4 2004/04/30 23:27:57 brad Exp $ */ /* @@ -5835,7 +5835,7 @@ { u_short action, reason = 0, log = 0; struct mbuf *m = *m0; - struct ip6_hdr *h; + struct ip6_hdr *h = NULL; /* make the compiler happy */ struct pf_rule *a = NULL, *r = &pf_default_rule, *tr; struct pf_state *s = NULL; struct pf_ruleset *ruleset = NULL; ==== //depot/projects/netperf_socket/sys/contrib/pf/net/pf_ioctl.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.7 2004/05/31 22:48:19 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.8 2004/06/13 01:36:31 mlaier Exp $ */ /* $OpenBSD: pf_ioctl.c,v 1.81.2.2 2004/04/30 23:28:58 brad Exp $ */ /* @@ -128,6 +128,9 @@ #endif struct pf_rule pf_default_rule; +#ifdef ALTQ +static int pfaltq_running; +#endif #define TAGID_MAX 50000 TAILQ_HEAD(pf_tags, pf_tagname) pf_tags = TAILQ_HEAD_INITIALIZER(pf_tags); @@ -229,26 +232,12 @@ init_pf_mutex(void) { mtx_init(&pf_task_mtx, "pf task mtx", NULL, MTX_DEF); -/* - * pf_altq_mtx is initialized at altq_subr.c. - * - * #if defined(ALTQ) && !defined(ALTQ3_COMPAT) - * mtx_init(&pf_altq_mtx, "pf altq mtx", NULL, MTX_DEF); - * #endif - */ } void destroy_pf_mutex(void) { mtx_destroy(&pf_task_mtx); -/* - * pf_altq_mtx is initialized at altq_subr.c. - * - * #if defined(ALTQ) && !defined(ALTQ3_COMPAT) - * mtx_destroy(&pf_altq_mtx); - * #endif - */ } void @@ -1771,16 +1760,8 @@ break; } } -#ifdef __FreeBSD__ - if (error == 0) { - mtx_lock(&pf_altq_mtx); - pfaltq_running = 1; - mtx_unlock(&pf_altq_mtx); - } -#else if (error == 0) pfaltq_running = 1; -#endif splx(s); DPFPRINTF(PF_DEBUG_MISC, ("altq: started\n")); break; @@ -1812,16 +1793,8 @@ error = err; } } -#ifdef __FreeBSD__ - if (error == 0) { - mtx_lock(&pf_altq_mtx); - pfaltq_running = 0; - mtx_unlock(&pf_altq_mtx); - } -#else if (error == 0) pfaltq_running = 0; -#endif splx(s); DPFPRINTF(PF_DEBUG_MISC, ("altq: stopped\n")); break; @@ -2807,16 +2780,8 @@ error = err; } } -#ifdef __FreeBSD__ - if (error == 0) { - mtx_lock(&pf_altq_mtx); - pfaltq_running = 0; - mtx_unlock(&pf_altq_mtx); - } -#else if (error == 0) pfaltq_running = 0; -#endif splx(s); } while (0); @@ -3210,11 +3175,6 @@ destroy_pf_mutex(); return (ENOMEM); } -#ifdef ALTQ - mtx_lock(&pf_altq_mtx); - ++pfaltq_ref; - mtx_unlock(&pf_altq_mtx); -#endif return (0); } @@ -3240,11 +3200,6 @@ cleanup_pf_zone(); pf_osfp_cleanup(); destroy_dev(pf_dev); -#ifdef ALTQ - mtx_lock(&pf_altq_mtx); - --pfaltq_ref; - mtx_unlock(&pf_altq_mtx); -#endif destroy_pf_mutex(); return error; } @@ -3278,8 +3233,5 @@ DECLARE_MODULE(pf, pf_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); MODULE_DEPEND(pf, pflog, PFLOG_MINVER, PFLOG_PREFVER, PFLOG_MAXVER); MODULE_DEPEND(pf, pfsync, PFSYNC_MINVER, PFSYNC_PREFVER, PFSYNC_MAXVER); -#ifdef ALTQ -MODULE_DEPEND(pf, pfaltq, PFALTQ_MINVER, PFALTQ_PREFVER, PFALTQ_MAXVER); -#endif MODULE_VERSION(pf, PF_MODVER); #endif /* __FreeBSD__ */ ==== //depot/projects/netperf_socket/sys/contrib/pf/net/pfvar.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.4 2004/03/17 21:11:02 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.5 2004/06/13 01:36:31 mlaier Exp $ */ /* $OpenBSD: pfvar.h,v 1.170 2003/08/22 21:50:34 david Exp $ */ /* @@ -175,10 +175,6 @@ if(var) uma_zdestroy(var) extern struct mtx pf_task_mtx; -#ifdef ALTQ -extern struct mtx pf_altq_mtx; -extern int pfaltq_ref; -#endif #define PF_ASSERT(h) mtx_assert(&pf_task_mtx, (h)) ==== //depot/projects/netperf_socket/sys/kern/kern_prot.c#6 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_prot.c,v 1.182 2004/06/11 11:16:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_prot.c,v 1.183 2004/06/13 02:50:05 rwatson Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -1685,7 +1685,9 @@ if (error) return (ENOENT); #ifdef MAC + SOCK_LOCK(so); error = mac_check_socket_visible(cred, so); + SOCK_UNLOCK(so); if (error) return (error); #endif ==== //depot/projects/netperf_socket/sys/kern/subr_witness.c#5 (text+ko) ==== @@ -82,7 +82,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.173 2004/06/03 20:07:44 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.174 2004/06/13 00:23:03 rwatson Exp $"); #include "opt_ddb.h" #include "opt_witness.h" @@ -272,30 +272,37 @@ */ { "filedesc structure", &lock_class_mtx_sleep }, { "accept", &lock_class_mtx_sleep }, + { "so_snd", &lock_class_mtx_sleep }, + { "so_rcv", &lock_class_mtx_sleep }, { "sellck", &lock_class_mtx_sleep }, { NULL, NULL }, /* * Routing */ + { "so_rcv", &lock_class_mtx_sleep }, { "radix node head", &lock_class_mtx_sleep }, { "rtentry", &lock_class_mtx_sleep }, { "ifaddr", &lock_class_mtx_sleep }, { NULL, NULL }, /* * UNIX Domain Sockets + */ + { "unp", &lock_class_mtx_sleep }, + { "so_snd", &lock_class_mtx_sleep }, { NULL, NULL }, - */ /* * UDP/IP */ { "udp", &lock_class_mtx_sleep }, { "udpinp", &lock_class_mtx_sleep }, + { "so_snd", &lock_class_mtx_sleep }, { NULL, NULL }, /* * TCP/IP */ { "tcp", &lock_class_mtx_sleep }, { "tcpinp", &lock_class_mtx_sleep }, + { "so_snd", &lock_class_mtx_sleep }, { NULL, NULL }, /* * SLIP ==== //depot/projects/netperf_socket/sys/kern/sys_socket.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.57 2004/04/05 21:03:36 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.58 2004/06/13 02:50:05 rwatson Exp $"); #include "opt_mac.h" @@ -77,7 +77,9 @@ NET_LOCK_GIANT(); #ifdef MAC + SOCK_LOCK(so); error = mac_check_socket_receive(active_cred, so); + SOCK_UNLOCK(so); if (error) { NET_UNLOCK_GIANT(); return (error); @@ -102,7 +104,9 @@ NET_LOCK_GIANT(); #ifdef MAC + SOCK_LOCK(so); error = mac_check_socket_send(active_cred, so); + SOCK_UNLOCK(so); if (error) { NET_UNLOCK_GIANT(); return (error); ==== //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.128 2004/06/04 04:07:08 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.129 2004/06/13 02:50:05 rwatson Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -231,7 +231,9 @@ so->so_timeo = head->so_timeo; so->so_cred = crhold(head->so_cred); #ifdef MAC + SOCK_LOCK(head); mac_create_socket_from_socket(head, so); + SOCK_UNLOCK(head); #endif if (soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat) || ==== //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#17 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.190 2004/06/12 20:47:28 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.192 2004/06/13 02:50:05 rwatson Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -190,8 +190,9 @@ if ((error = fgetsock(td, fd, &so, NULL)) != 0) goto done2; #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_bind(td->td_ucred, so, sa); + SOCK_UNLOCK(so); if (error) goto done1; #endif @@ -224,8 +225,9 @@ NET_LOCK_GIANT(); if ((error = fgetsock(td, uap->s, &so, NULL)) == 0) { #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_listen(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) goto done; #endif @@ -311,15 +313,15 @@ KASSERT(!(so->so_qstate & SQ_INCOMP), ("accept1: so SQ_INCOMP")); KASSERT(so->so_qstate & SQ_COMP, ("accept1: so not SQ_COMP")); - /* - * Before changing the flags on the socket, we have to bump the + /* + * Before changing the flags on the socket, we have to bump the * reference count. Otherwise, if the protocol calls sofree(), - * the socket will be released due to a zero refcount. - */ + * the socket will be released due to a zero refcount. + */ SOCK_LOCK(so); soref(so); /* file descriptor reference */ SOCK_UNLOCK(so); - + TAILQ_REMOVE(&head->so_comp, so, so_list); head->so_qlen--; so->so_qstate &= ~SQ_COMP; @@ -485,8 +487,9 @@ goto done1; } #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_connect(td->td_ucred, so, sa); + SOCK_UNLOCK(so); if (error) goto bad; #endif @@ -708,8 +711,9 @@ goto bad2; #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_send(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) goto bad; #endif @@ -952,8 +956,9 @@ } #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_receive(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) { fputsock(so); NET_UNLOCK_GIANT(); @@ -1759,8 +1764,9 @@ } #ifdef MAC - /* XXXRW: MAC requires socket lock? */ + SOCK_LOCK(so); error = mac_check_socket_send(td->td_ucred, so); + SOCK_UNLOCK(so); if (error) goto done; #endif ==== //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#12 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.123 2004/06/12 20:47:28 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.124 2004/06/13 02:50:05 rwatson Exp $"); #include "opt_mac.h" @@ -873,8 +873,10 @@ sizeof(unp->unp_peercred)); unp->unp_flags |= UNP_HAVEPC; #ifdef MAC + SOCK_LOCK(so); mac_set_socket_peer_from_socket(so, so3); mac_set_socket_peer_from_socket(so3, so); + SOCK_UNLOCK(so); #endif so2 = so3; ==== //depot/projects/netperf_socket/sys/netatalk/ddp_input.c#5 (text+ko) ==== @@ -2,7 +2,7 @@ * Copyright (c) 1990,1994 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. * - * $FreeBSD: src/sys/netatalk/ddp_input.c,v 1.23 2004/03/22 04:50:36 rwatson Exp $ + * $FreeBSD: src/sys/netatalk/ddp_input.c,v 1.24 2004/06/13 02:50:05 rwatson Exp $ */ #include "opt_mac.h" @@ -366,10 +366,13 @@ } #ifdef MAC + SOCK_LOCK(ddp->ddp_socket); if (mac_check_socket_deliver(ddp->ddp_socket, m) != 0) { + SOCK_UNLOCK(ddp->ddp_socket); m_freem(m); return; } + SOCK_UNLOCK(ddp->ddp_socket); #endif /* ==== //depot/projects/netperf_socket/sys/netatalk/ddp_output.c#5 (text+ko) ==== @@ -21,7 +21,7 @@ * netatalk@itd.umich.edu */ -/* $FreeBSD: src/sys/netatalk/ddp_output.c,v 1.23 2004/03/22 04:50:36 rwatson Exp $ */ +/* $FreeBSD: src/sys/netatalk/ddp_output.c,v 1.24 2004/06/13 02:50:05 rwatson Exp $ */ #include "opt_mac.h" @@ -52,7 +52,9 @@ struct ddpcb *ddp = sotoddpcb(so); #ifdef MAC + SOCK_LOCK(so); mac_create_mbuf_from_socket(so, m); + SOCK_UNLOCK(so); #endif M_PREPEND(m, sizeof(struct ddpehdr), M_TRYWAIT); ==== //depot/projects/netperf_socket/sys/netinet/in_pcb.c#11 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)in_pcb.c 8.4 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/in_pcb.c,v 1.148 2004/06/12 20:47:31 rwatson Exp $ + * $FreeBSD: src/sys/netinet/in_pcb.c,v 1.149 2004/06/13 02:50:06 rwatson Exp $ */ #include "opt_ipsec.h" @@ -176,7 +176,9 @@ error = mac_init_inpcb(inp, M_NOWAIT); if (error != 0) goto out; + SOCK_LOCK(so); mac_create_inpcb_from_socket(so, inp); + SOCK_UNLOCK(so); #endif #if defined(IPSEC) || defined(FAST_IPSEC) #ifdef FAST_IPSEC @@ -1175,10 +1177,11 @@ #ifdef MAC struct inpcb *inp; - /* XXX: Will assert socket lock when we have them. */ inp = (struct inpcb *)so->so_pcb; INP_LOCK(inp); + SOCK_LOCK(so); mac_inpcb_sosetlabel(so, inp); + SOCK_UNLOCK(so); INP_UNLOCK(inp); #endif } ==== //depot/projects/netperf_socket/sys/netinet/ip_divert.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/ip_divert.c,v 1.89 2004/06/11 04:06:51 rwatson Exp $ + * $FreeBSD: src/sys/netinet/ip_divert.c,v 1.90 2004/06/13 02:50:06 rwatson Exp $ */ #include "opt_inet.h" @@ -263,7 +263,9 @@ KASSERT(m->m_pkthdr.rcvif == NULL, ("rcvif not null")); #ifdef MAC + SOCK_LOCK(so); mac_create_mbuf_from_socket(so, m); + SOCK_UNLOCK(so); #endif if (control) ==== //depot/projects/netperf_socket/sys/netinet/tcp_input.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.237 2004/05/02 15:10:17 darrenr Exp $ + * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.238 2004/06/13 02:50:06 rwatson Exp $ */ #include "opt_ipfw.h" /* for ipfw_fwd */ @@ -1354,7 +1354,9 @@ tcpstat.tcps_connects++; soisconnected(so); #ifdef MAC + SOCK_LOCK(so); mac_set_socket_peer_from_mbuf(m, so); + SOCK_UNLOCK(so); #endif /* Do window scaling on this connection? */ if ((tp->t_flags & (TF_RCVD_SCALE|TF_REQ_SCALE)) == ==== //depot/projects/netperf_socket/sys/netinet/tcp_syncache.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.57 2004/05/04 02:11:47 rwatson Exp $ + * $FreeBSD: src/sys/netinet/tcp_syncache.c,v 1.58 2004/06/13 02:50:06 rwatson Exp $ */ #include "opt_inet.h" @@ -558,7 +558,9 @@ goto abort2; } #ifdef MAC + SOCK_LOCK(so); mac_set_socket_peer_from_mbuf(m, so); + SOCK_UNLOCK(so); #endif inp = sotoinpcb(so); ==== //depot/projects/netperf_socket/sys/security/mac/mac_socket.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/security/mac/mac_socket.c,v 1.1 2004/02/26 03:51:04 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/security/mac/mac_socket.c,v 1.2 2004/06/13 02:50:07 rwatson Exp $"); #include "opt_mac.h" @@ -218,6 +218,7 @@ struct socket *newsocket) { + SOCK_LOCK_ASSERT(oldsocket); MAC_PERFORM(create_socket_from_socket, oldsocket, oldsocket->so_label, newsocket, newsocket->so_label); } @@ -227,6 +228,7 @@ struct label *newlabel) { + SOCK_LOCK_ASSERT(socket); MAC_PERFORM(relabel_socket, cred, socket, socket->so_label, newlabel); } @@ -235,6 +237,8 @@ { struct label *label; + SOCK_LOCK_ASSERT(socket); + label = mac_mbuf_to_label(mbuf); MAC_PERFORM(set_socket_peer_from_mbuf, mbuf, label, socket, @@ -246,6 +250,12 @@ struct socket *newsocket) { + /* + * XXXRW: only hold the socket lock on one at a time, as one + * socket is the original, and one is the new. However, it's + * called in both directions, so we can't assert the lock + * here currently. + */ MAC_PERFORM(set_socket_peer_from_socket, oldsocket, oldsocket->so_label, newsocket, newsocket->so_peerlabel); } @@ -257,6 +267,7 @@ label = mac_mbuf_to_label(mbuf); + SOCK_LOCK_ASSERT(socket); MAC_PERFORM(create_mbuf_from_socket, socket, socket->so_label, mbuf, label); } @@ -267,6 +278,8 @@ { int error; + SOCK_LOCK_ASSERT(socket); + if (!mac_enforce_socket) return (0); @@ -282,6 +295,8 @@ { int error; + SOCK_LOCK_ASSERT(socket); + if (!mac_enforce_socket) return (0); @@ -297,6 +312,8 @@ struct label *label; int error; + SOCK_LOCK_ASSERT(socket); + if (!mac_enforce_socket) return (0); @@ -313,6 +330,8 @@ { int error; + SOCK_LOCK_ASSERT(socket); + if (!mac_enforce_socket) return (0); @@ -325,6 +344,8 @@ { int error; + SOCK_LOCK_ASSERT(so); + if (!mac_enforce_socket) return (0); @@ -339,6 +360,8 @@ { int error; + SOCK_LOCK_ASSERT(socket); + MAC_CHECK(check_socket_relabel, cred, socket, socket->so_label, newlabel); @@ -350,6 +373,8 @@ { int error; + SOCK_LOCK_ASSERT(so); + if (!mac_enforce_socket) return (0); @@ -363,6 +388,8 @@ { int error; + SOCK_LOCK_ASSERT(socket); + if (!mac_enforce_socket) return (0); @@ -377,12 +404,24 @@ { int error; + /* + * We acquire the socket lock when we perform the test and set, + * but have to release it as the pcb code needs to acquire the + * pcb lock, which will precede the socket lock in the lock + * order. However, this is fine, as any race will simply + * result in the inpcb being refreshed twice, but still + * consistently, as the inpcb code will acquire the socket lock + * before refreshing, holding both locks. + */ + SOCK_LOCK(so); error = mac_check_socket_relabel(cred, so, label); - if (error) + if (error) { + SOCK_UNLOCK(so); return (error); + } mac_relabel_socket(cred, so, label); - + SOCK_UNLOCK(so); /* * If the protocol has expressed interest in socket layer changes, * such as if it needs to propagate changes to a cached pcb @@ -419,9 +458,7 @@ if (error) goto out; - /* XXX: Socket lock here. */ error = mac_socket_label_set(cred, so, intlabel); - /* XXX: Socket unlock here. */ out: mac_socket_label_free(intlabel); return (error); @@ -431,6 +468,7 @@ mac_getsockopt_label(struct ucred *cred, struct socket *so, struct mac *mac) { char *buffer, *elements; + struct label *intlabel; int error; error = mac_check_structmac_consistent(mac); @@ -445,8 +483,13 @@ } buffer = malloc(mac->m_buflen, M_MACTEMP, M_WAITOK | M_ZERO); - error = mac_externalize_socket_label(so->so_label, elements, - buffer, mac->m_buflen); + intlabel = mac_socket_label_alloc(M_WAITOK); + SOCK_LOCK(so); + mac_copy_socket_label(so->so_label, intlabel); + SOCK_UNLOCK(so); + error = mac_externalize_socket_label(intlabel, elements, buffer, + mac->m_buflen); + mac_socket_label_free(intlabel); if (error == 0) error = copyout(buffer, mac->m_string, strlen(buffer)+1); @@ -461,6 +504,7 @@ struct mac *mac) { char *elements, *buffer; + struct label *intlabel; int error; error = mac_check_structmac_consistent(mac); @@ -475,8 +519,13 @@ } buffer = malloc(mac->m_buflen, M_MACTEMP, M_WAITOK | M_ZERO); - error = mac_externalize_socket_peer_label(so->so_peerlabel, - elements, buffer, mac->m_buflen); + intlabel = mac_socket_label_alloc(M_WAITOK); + SOCK_LOCK(so); + mac_copy_socket_label(so->so_peerlabel, intlabel); + SOCK_UNLOCK(so); + error = mac_externalize_socket_peer_label(intlabel, elements, buffer, + mac->m_buflen); + mac_socket_label_free(intlabel); if (error == 0) error = copyout(buffer, mac->m_string, strlen(buffer)+1); ==== //depot/projects/netperf_socket/sys/sys/socketvar.h#13 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/socketvar.h,v 1.119 2004/06/12 20:47:32 rwatson Exp $ + * $FreeBSD: src/sys/sys/socketvar.h,v 1.121 2004/06/13 02:50:07 rwatson Exp $ */ #ifndef _SYS_SOCKETVAR_H_ @@ -124,8 +124,8 @@ void (*so_upcall)(struct socket *, void *, int); void *so_upcallarg; struct ucred *so_cred; /* user credentials */ - struct label *so_label; /* MAC label for socket */ - struct label *so_peerlabel; /* cached MAC label for socket peer */ + struct label *so_label; /* (b) MAC label for socket */ + struct label *so_peerlabel; /* (b) cached MAC label for peer */ /* NB: generation count must not be first; easiest to make it last. */ so_gen_t so_gencnt; /* generation count */ void *so_emuldata; /* private data for emulators */ @@ -249,6 +249,7 @@ }; #ifdef _KERNEL + /* * Macros for sockets and socket buffering. */ From owner-p4-projects@FreeBSD.ORG Sun Jun 13 04:05:24 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 611BE16A4DC; Sun, 13 Jun 2004 04:05:23 +0000 (GMT) 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 35F2216A4D1 for ; Sun, 13 Jun 2004 04:05:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1481E43D39 for ; Sun, 13 Jun 2004 04:05:23 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5D45IFM004205 for ; Sun, 13 Jun 2004 04:05:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D45ITT004202 for perforce@freebsd.org; Sun, 13 Jun 2004 04:05:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 13 Jun 2004 04:05:18 GMT Message-Id: <200406130405.i5D45ITT004202@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 54777 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, 13 Jun 2004 04:05:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=54777 Change 54777 by rwatson@rwatson_tislabs on 2004/06/13 04:04:45 Integ netperf_socket. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/include/pmap.h#8 integrate .. //depot/projects/netperf_socket/sys/i386/include/pmap.h#6 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/include/pmap.h#8 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.117 2004/06/08 01:02:52 peter Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.118 2004/06/13 03:44:11 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -226,8 +226,6 @@ LIST_ENTRY(pmap) pm_list; /* List of all pmaps */ }; -#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) - typedef struct pmap *pmap_t; #ifdef _KERNEL @@ -264,13 +262,14 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; +#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) + void pmap_bootstrap(vm_paddr_t *); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kremove(vm_offset_t); void *pmap_mapdev(vm_paddr_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); -pt_entry_t *pmap_pte_quick(pmap_t, vm_offset_t) __pure2; void pmap_invalidate_page(pmap_t, vm_offset_t); void pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t); void pmap_invalidate_all(pmap_t); ==== //depot/projects/netperf_socket/sys/i386/include/pmap.h#6 (text+ko) ==== @@ -38,7 +38,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/i386/include/pmap.h,v 1.108 2004/04/10 23:28:49 alc Exp $ + * $FreeBSD: src/sys/i386/include/pmap.h,v 1.109 2004/06/13 03:44:11 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -287,8 +287,6 @@ #endif }; -#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) - typedef struct pmap *pmap_t; #ifdef _KERNEL @@ -328,6 +326,8 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; +#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) + void pmap_bootstrap(vm_paddr_t, vm_paddr_t); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void *pmap_kenter_temporary(vm_paddr_t pa, int i); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 04:46:17 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1900616A4D1; Sun, 13 Jun 2004 04:46:17 +0000 (GMT) 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 DF46016A4CE for ; Sun, 13 Jun 2004 04:46:16 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C2DB743D5C for ; Sun, 13 Jun 2004 04:46:16 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D4iANC012213 for ; Sun, 13 Jun 2004 04:44:10 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D4i9ti012210 for perforce@freebsd.org; Sun, 13 Jun 2004 04:44:09 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 04:44:09 GMT Message-Id: <200406130444.i5D4i9ti012210@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 54783 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, 13 Jun 2004 04:46:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=54783 Change 54783 by marcel@marcel_nfs on 2004/06/13 04:43:14 Replace a reference to ddb_regs with one to the current trapframe. Affected files ... .. //depot/projects/gdb/sys/i386/i386/db_trace.c#6 edit Differences ... ==== //depot/projects/gdb/sys/i386/i386/db_trace.c#6 (text+ko) ==== @@ -370,7 +370,7 @@ } else if ((instr & 0xffff) == 0x0000e589) { /* movl %esp, %ebp */ actframe = (void *)get_esp(tf); - if (ddb_regs.tf_ebp == 0) { + if (tf->tf_ebp == 0) { /* Fake frame better. */ frame = actframe; } From owner-p4-projects@FreeBSD.ORG Sun Jun 13 05:07:29 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3853216A4D1; Sun, 13 Jun 2004 05:07:29 +0000 (GMT) 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 12B7116A4CE for ; Sun, 13 Jun 2004 05:07:29 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0CF8543D41 for ; Sun, 13 Jun 2004 05:07:29 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D55c13023578 for ; Sun, 13 Jun 2004 05:05:38 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D55bH3023575 for perforce@freebsd.org; Sun, 13 Jun 2004 05:05:37 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 05:05:37 GMT Message-Id: <200406130505.i5D55bH3023575@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 54786 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, 13 Jun 2004 05:07:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=54786 Change 54786 by marcel@marcel_nfs on 2004/06/13 05:05:10 Ok, time to mess it all up again. I've been having a lot of problems getting backtraces to work from trapframes so a new approach is needed. With this commit td_last_frame is officially slamdunked to the realm of the goners. We're going to use the PCB as the context for debugging and only frob the trapframe for singlestepping. A quick and dirty prototype has shown that the PCB has a lot of advantages, including handling of dumppcb and the generation of backtraces outside the debugger. A simple call to savectx() creates a PCB from which a backtrace can be generated. This branch is broken until further notice. Affected files ... .. //depot/projects/gdb/sys/sys/proc.h#15 edit Differences ... ==== //depot/projects/gdb/sys/sys/proc.h#15 (text+ko) ==== @@ -141,7 +141,6 @@ * p - select lock (sellock) * q - td_contested lock * r - p_peers lock - * t - updated at kernel (re)entry. Read-only in all other cases. * x - created at fork, only changes during single threading in exec * z - zombie threads/kse/ksegroup lock * @@ -272,7 +271,6 @@ int td_flags; /* (j) TDF_* flags. */ int td_inhibitors; /* (j) Why can not run. */ int td_pflags; /* (k) Private thread (TDP_*) flags. */ - struct trapframe *td_last_frame; /* (t) Trapframe of last entry. */ struct kse *td_last_kse; /* (j) Previous value of td_kse. */ struct kse *td_kse; /* (j) Current KSE if running. */ int td_dupfd; /* (k) Ret value from fdopen. XXX */ From owner-p4-projects@FreeBSD.ORG Sun Jun 13 05:33:27 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0F0916A4D1; Sun, 13 Jun 2004 05:33:26 +0000 (GMT) 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 9B70916A4CE for ; Sun, 13 Jun 2004 05:33:26 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7D12643D2F for ; Sun, 13 Jun 2004 05:33:26 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D5VBmP027907 for ; Sun, 13 Jun 2004 05:31:11 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D5VBN6027900 for perforce@freebsd.org; Sun, 13 Jun 2004 05:31:11 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 05:31:11 GMT Message-Id: <200406130531.i5D5VBN6027900@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 54788 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, 13 Jun 2004 05:33:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=54788 Change 54788 by marcel@marcel_nfs on 2004/06/13 05:30:58 o In kdb_trap(), save the current context in kdb_pcb. o In kdb_thr_first() and kdb_thr_next(), remove checking td_last_frame and instead check PS_INMEM. o In kdb_thr_select(), switch kdb_thrctx to the PCB of the thread we're selecting, unless it's curthread. For curthread the context is in kdb_pcb. Affected files ... .. //depot/projects/gdb/sys/kern/subr_kdb.c#14 edit .. //depot/projects/gdb/sys/sys/kdb.h#11 edit Differences ... ==== //depot/projects/gdb/sys/kern/subr_kdb.c#14 (text+ko) ==== @@ -38,10 +38,13 @@ #include #include +#include int kdb_active = 0; void *kdb_jmpbufp = NULL; struct kdb_dbbe *kdb_dbbe = NULL; +struct pcb kdb_pcb; +struct pcb *kdb_thrctx = NULL; struct thread *kdb_thread = NULL; struct trapframe *kdb_frame = NULL; @@ -282,11 +285,11 @@ p = LIST_FIRST(&allproc); while (p != NULL) { - thr = FIRST_THREAD_IN_PROC(p); - while (thr != NULL && thr->td_last_frame == NULL) - thr = TAILQ_NEXT(thr, td_plist); - if (thr != NULL) - return (thr); + if (p->p_sflag & PS_INMEM) { + thr = FIRST_THREAD_IN_PROC(p); + if (thr != NULL) + return (thr); + } p = LIST_NEXT(p, p_list); } return (NULL); @@ -311,12 +314,10 @@ p = thr->td_proc; thr = TAILQ_NEXT(thr, td_plist); do { - while (thr != NULL && thr->td_last_frame == NULL) - thr = TAILQ_NEXT(thr, td_plist); if (thr != NULL) return (thr); p = LIST_NEXT(p, p_list); - if (p != NULL) + if (p != NULL && (p->p_sflag & PS_INMEM)) thr = FIRST_THREAD_IN_PROC(p); } while (p != NULL); return (NULL); @@ -325,10 +326,10 @@ int kdb_thr_select(struct thread *thr) { - if (thr == NULL || thr->td_last_frame == NULL) + if (thr == NULL) return (EINVAL); kdb_thread = thr; - kdb_frame = kdb_thread->td_last_frame; + kdb_thrctx = (thr == curthread) ? &kdb_pcb : thr->td_pcb; return (0); } @@ -348,11 +349,13 @@ if (kdb_active) return (0); + savectx(&kdb_pcb); + critical_enter(); kdb_active++; - kdb_thread = curthread; kdb_frame = tf; + kdb_thr_select(curthread); #ifdef SMP stop_cpus(PCPU_GET(other_cpus)); ==== //depot/projects/gdb/sys/sys/kdb.h#11 (text+ko) ==== @@ -52,13 +52,15 @@ }; \ DATA_SET(kdb_dbbe_set, name##_dbbe) +struct pcb; struct thread; struct trapframe; extern int kdb_active; /* Non-zero while in debugger. */ extern struct kdb_dbbe *kdb_dbbe; /* Default debugger backend or NULL. */ +extern struct trapframe *kdb_frame; /* Frame to kdb_trap(). */ +extern struct pcb *kdb_thrctx; /* Current context. */ extern struct thread *kdb_thread; /* Current thread. */ -extern struct trapframe *kdb_frame; /* Current frame. */ int kdb_alt_break(int, int *); void kdb_backtrace(void); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 05:57:08 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA95416A4D1; Sun, 13 Jun 2004 05:57:07 +0000 (GMT) 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 A4A8316A4CE for ; Sun, 13 Jun 2004 05:57:07 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9E56843D2F for ; Sun, 13 Jun 2004 05:57:07 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D5thrq033741 for ; Sun, 13 Jun 2004 05:55:43 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D5tgsl033738 for perforce@freebsd.org; Sun, 13 Jun 2004 05:55:42 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 05:55:42 GMT Message-Id: <200406130555.i5D5tgsl033738@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 54791 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, 13 Jun 2004 05:57:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=54791 Change 54791 by marcel@marcel_nfs on 2004/06/13 05:54:59 o Add kdb_thr_ctx(), which given a struct thread returns the threads context (=PCB). Affected files ... .. //depot/projects/gdb/sys/kern/subr_kdb.c#15 edit .. //depot/projects/gdb/sys/sys/kdb.h#12 edit Differences ... ==== //depot/projects/gdb/sys/kern/subr_kdb.c#15 (text+ko) ==== @@ -277,6 +277,12 @@ * Thread related support functions. */ +struct pcb * +kdb_thr_ctx(struct thread *thr) +{ + return ((thr == curthread) ? &kdb_pcb : thr->td_pcb); +} + struct thread * kdb_thr_first(void) { @@ -329,7 +335,7 @@ if (thr == NULL) return (EINVAL); kdb_thread = thr; - kdb_thrctx = (thr == curthread) ? &kdb_pcb : thr->td_pcb; + kdb_thrctx = kdb_thr_ctx(thr); return (0); } ==== //depot/projects/gdb/sys/sys/kdb.h#12 (text+ko) ==== @@ -68,6 +68,7 @@ void kdb_init(void); void * kdb_jmpbuf(jmp_buf); void kdb_reenter(void); +struct pcb *kdb_thr_ctx(struct thread *); struct thread *kdb_thr_first(void); struct thread *kdb_thr_lookup(pid_t); struct thread *kdb_thr_next(struct thread *); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 05:58:41 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 01AC516A4D1; Sun, 13 Jun 2004 05:58:40 +0000 (GMT) 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 D045616A4CE for ; Sun, 13 Jun 2004 05:58:40 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA01843D31 for ; Sun, 13 Jun 2004 05:58:40 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D5ujUE033759 for ; Sun, 13 Jun 2004 05:56:45 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D5uiwQ033756 for perforce@freebsd.org; Sun, 13 Jun 2004 05:56:44 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 05:56:44 GMT Message-Id: <200406130556.i5D5uiwQ033756@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 54792 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, 13 Jun 2004 05:58:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=54792 Change 54792 by marcel@marcel_nfs on 2004/06/13 05:56:44 Remove references to td_last_frame. All backtraces start off with a call frame now. Use the new kdb_thr_ctx() to get the initial context of the given thread. Affected files ... .. //depot/projects/gdb/sys/i386/i386/db_trace.c#7 edit Differences ... ==== //depot/projects/gdb/sys/i386/i386/db_trace.c#7 (text+ko) ==== @@ -429,7 +429,6 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, char *modif) { - struct trapframe *tf; struct thread *td; td = (have_addr) ? kdb_thr_lookup(addr) : kdb_thread; @@ -437,9 +436,7 @@ db_printf("Thread %d not found\n", addr); return; } - tf = td->td_last_frame; - db_backtrace(td, tf, (struct i386_frame *)tf->tf_ebp, - (db_addr_t)tf->tf_eip, count); + db_trace_thread(td, count); } void @@ -459,11 +456,11 @@ int db_trace_thread(struct thread *thr, int count) { - struct trapframe *tf; + struct pcb *ctx; - tf = thr->td_last_frame; - return (db_backtrace(thr, tf, (struct i386_frame *)tf->tf_ebp, - (db_addr_t)tf->tf_eip, count)); + ctx = kdb_thr_ctx(thr); + return (db_backtrace(thr, NULL, (struct i386_frame *)ctx->pcb_ebp, + ctx->pcb_eip, count)); } int From owner-p4-projects@FreeBSD.ORG Sun Jun 13 06:05:08 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D539D16A4D3; Sun, 13 Jun 2004 06:05:07 +0000 (GMT) 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 9F0C516A4CE for ; Sun, 13 Jun 2004 06:05:07 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9912743D2D for ; Sun, 13 Jun 2004 06:05:07 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D63sq1036649 for ; Sun, 13 Jun 2004 06:03:54 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D63r5N036646 for perforce@freebsd.org; Sun, 13 Jun 2004 06:03:53 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 06:03:53 GMT Message-Id: <200406130603.i5D63r5N036646@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 54793 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, 13 Jun 2004 06:05:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=54793 Change 54793 by marcel@marcel_nfs on 2004/06/13 06:03:53 Remove assignment to td_last_frame. Affected files ... .. //depot/projects/gdb/sys/i386/i386/intr_machdep.c#6 edit .. //depot/projects/gdb/sys/i386/i386/trap.c#12 edit .. //depot/projects/gdb/sys/i386/isa/clock.c#11 edit Differences ... ==== //depot/projects/gdb/sys/i386/i386/intr_machdep.c#6 (text+ko) ==== @@ -50,7 +50,6 @@ #include #include #include -#include #include #ifdef DDB #include @@ -159,7 +158,6 @@ int error, vector; td = curthread; - td->td_last_frame = INTR_TO_TRAPFRAME(iframe); td->td_intr_nesting_level++; /* ==== //depot/projects/gdb/sys/i386/i386/trap.c#12 (text+ko) ==== @@ -193,8 +193,6 @@ } #endif - td->td_last_frame = &frame; - if ((frame.tf_eflags & PSL_I) == 0) { /* * Buggy application or kernel code has disabled @@ -927,7 +925,6 @@ sticks = td->td_sticks; td->td_frame = &frame; - td->td_last_frame = &frame; if (td->td_ucred != p->p_ucred) cred_update_thread(td); if (p->p_flag & P_SA) ==== //depot/projects/gdb/sys/i386/isa/clock.c#11 (text+ko) ==== @@ -177,8 +177,6 @@ clkintr(struct clockframe *frame) { - curthread->td_last_frame = CLOCK_TO_TRAPFRAME(frame); - if (timecounter->tc_get_timecount == i8254_get_timecount) { mtx_lock_spin(&clock_lock); if (i8254_ticked) @@ -371,8 +369,6 @@ rtcintr(struct clockframe *frame) { - curthread->td_last_frame = CLOCK_TO_TRAPFRAME(frame); - while (rtcin(RTC_INTR) & RTCIR_PERIOD) { if (profprocs != 0) { if (--pscnt == 0) From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:21:41 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A443116A4D0; Sun, 13 Jun 2004 07:21:41 +0000 (GMT) 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 6BA1916A4D3 for ; Sun, 13 Jun 2004 07:21:41 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 63A5243D39 for ; Sun, 13 Jun 2004 07:21:41 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7KS6R052012 for ; Sun, 13 Jun 2004 07:20:28 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7KSKL052009 for perforce@freebsd.org; Sun, 13 Jun 2004 07:20:28 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 07:20:28 GMT Message-Id: <200406130720.i5D7KSKL052009@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 54796 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, 13 Jun 2004 07:21:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=54796 Change 54796 by marcel@marcel_nfs on 2004/06/13 07:20:13 Replace trapframe references with PCB references. Affected files ... .. //depot/projects/gdb/sys/i386/i386/gdb_machdep.c#7 edit Differences ... ==== //depot/projects/gdb/sys/i386/i386/gdb_machdep.c#7 (text+ko) ==== @@ -34,10 +34,8 @@ #include #include -#include #include -#include -#include +#include #include #include @@ -45,30 +43,15 @@ void * gdb_cpu_getreg(int regnum, size_t *regsz) { - static register_t synth; - struct trapframe *tf = kdb_frame; *regsz = gdb_cpu_regsz(regnum); switch (regnum) { - case 0: return (&tf->tf_eax); - case 1: return (&tf->tf_ecx); - case 2: return (&tf->tf_edx); - case 3: return (&tf->tf_ebx); - case 5: return (&tf->tf_ebp); - case 6: return (&tf->tf_esi); - case 7: return (&tf->tf_edi); - case 8: return (&tf->tf_eip); - case 9: return (&tf->tf_eflags); - case 10: return (&tf->tf_cs); - case 12: return (&tf->tf_ds); - case 13: return (&tf->tf_es); - case 4: - synth = (!ISPL(tf->tf_cs)) ? - (int)&(kdb_thread->td_frame->tf_esp) : tf->tf_esp; - return (&synth); - case 11: - synth = (!ISPL(tf->tf_cs)) ? rss() : tf->tf_ss; - return (&synth); + case 3: return (&kdb_thrctx->pcb_ebx); + case 4: return (&kdb_thrctx->pcb_esp); + case 5: return (&kdb_thrctx->pcb_ebp); + case 6: return (&kdb_thrctx->pcb_esi); + case 7: return (&kdb_thrctx->pcb_edi); + case 8: return (&kdb_thrctx->pcb_eip); } return (NULL); } @@ -76,10 +59,9 @@ void gdb_cpu_setreg(int regnum, register_t val) { - struct trapframe *tf = kdb_frame; switch (regnum) { - case GDB_REG_PC: tf->tf_eip = val; break; + case GDB_REG_PC: kdb_thrctx->pcb_eip = val; break; } } From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:32:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8026716A4D1; Sun, 13 Jun 2004 07:32:50 +0000 (GMT) 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 5781516A4CE for ; Sun, 13 Jun 2004 07:32:50 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F43F43D45 for ; Sun, 13 Jun 2004 07:32:50 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7UfuV054081 for ; Sun, 13 Jun 2004 07:30:41 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7Uf5i054078 for perforce@freebsd.org; Sun, 13 Jun 2004 07:30:41 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 07:30:41 GMT Message-Id: <200406130730.i5D7Uf5i054078@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 54797 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, 13 Jun 2004 07:32:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=54797 Change 54797 by marcel@marcel_nfs on 2004/06/13 07:29:43 Axe ddb_regs. Static storage for thread context in a multi- threaded environment is not at all ideal. It's not needed at all in this case (however, software single stepping has still references to DDB_REGS). We can safely dereference kdb_thrctx. Note that the registers are still taken from the trapframe. Also note that curthread (i.e. the thread that entered the debugger) has a backtrace that starts from kdb_trap(). This needs to be changed, because otherwise single stepping is weird (you need to do a backtrace to see beyond the frame). Hence, it's better to create the context from the frame. Anyway: DDB on i386 works. Backtraces of all threads are all good! I'll check GDB tomorrow morning and worl on the other platforms after that. Affected files ... .. //depot/projects/gdb/sys/ddb/db_main.c#8 edit .. //depot/projects/gdb/sys/ddb/db_print.c#2 edit .. //depot/projects/gdb/sys/ddb/db_run.c#2 edit .. //depot/projects/gdb/sys/ddb/db_thread.c#6 edit .. //depot/projects/gdb/sys/i386/i386/db_trace.c#8 edit .. //depot/projects/gdb/sys/i386/include/db_machdep.h#2 edit Differences ... ==== //depot/projects/gdb/sys/ddb/db_main.c#8 (text+ko) ==== @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -49,7 +50,6 @@ KDB_BACKEND(ddb, db_init, db_trace_self, db_trap); -db_regs_t ddb_regs; vm_offset_t ksym_start, ksym_end; boolean_t @@ -196,8 +196,6 @@ if (cnunavailable()) return (0); - ddb_regs = *kdb_frame; - bkpt = IS_BREAKPOINT_TRAP(type, code); watchpt = IS_WATCHPOINT_TRAP(type, code); @@ -208,7 +206,7 @@ } prev_jb = kdb_jmpbuf(jb); if (setjmp(jb) == 0) { - db_dot = PC_REGS(DDB_REGS); + db_dot = PC_REGS(); db_print_thread(); if (bkpt) db_printf("Breakpoint at\t"); @@ -224,7 +222,5 @@ db_restart_at_pc(watchpt); - *kdb_frame = ddb_regs; - return (1); } ==== //depot/projects/gdb/sys/ddb/db_print.c#2 (text+ko) ==== @@ -37,6 +37,9 @@ __FBSDID("$FreeBSD: src/sys/ddb/db_print.c,v 1.27 2003/06/10 22:09:23 obrien Exp $"); #include +#include + +#include #include #include @@ -65,5 +68,5 @@ } db_printf("\n"); } - db_print_loc_and_inst(PC_REGS(DDB_REGS)); + db_print_loc_and_inst(PC_REGS()); } ==== //depot/projects/gdb/sys/ddb/db_run.c#2 (text+ko) ==== @@ -36,6 +36,10 @@ __FBSDID("$FreeBSD: src/sys/ddb/db_run.c,v 1.23 2003/06/10 22:09:23 obrien Exp $"); #include +#include + +#include +#include #include @@ -67,10 +71,6 @@ extern void db_clear_single_step(db_regs_t *regs); #endif -#ifdef notused -static void db_single_step(db_regs_t *regs); -#endif - boolean_t db_stop_at_pc(is_breakpoint) boolean_t *is_breakpoint; @@ -78,10 +78,10 @@ register db_addr_t pc; register db_breakpoint_t bkpt; - db_clear_single_step(DDB_REGS); + db_clear_single_step(); db_clear_breakpoints(); db_clear_watchpoints(); - pc = PC_REGS(DDB_REGS); + pc = PC_REGS(); #ifdef FIXUP_PC_AFTER_BREAK if (*is_breakpoint) { @@ -90,7 +90,7 @@ * machine requires it. */ FIXUP_PC_AFTER_BREAK - pc = PC_REGS(DDB_REGS); + pc = PC_REGS(); } #endif @@ -171,7 +171,7 @@ db_restart_at_pc(watchpt) boolean_t watchpt; { - register db_addr_t pc = PC_REGS(DDB_REGS); + register db_addr_t pc = PC_REGS(); if ((db_run_mode == STEP_COUNT) || (db_run_mode == STEP_RETURN) || @@ -205,27 +205,15 @@ * Step over breakpoint/watchpoint. */ db_run_mode = STEP_INVISIBLE; - db_set_single_step(DDB_REGS); + db_set_single_step(); } else { db_set_breakpoints(); db_set_watchpoints(); } } else { - db_set_single_step(DDB_REGS); - } -} - -#ifdef notused -static void -db_single_step(regs) - db_regs_t *regs; -{ - if (db_run_mode == STEP_CONTINUE) { - db_run_mode = STEP_INVISIBLE; - db_set_single_step(regs); + db_set_single_step(); } } -#endif #ifdef SOFTWARE_SSTEP /* ==== //depot/projects/gdb/sys/ddb/db_thread.c#6 (text+ko) ==== @@ -32,6 +32,8 @@ #include #include +#include + #include #include #include @@ -61,16 +63,13 @@ if (hastid) { thr = kdb_thr_lookup(tid); if (thr != NULL) { - *kdb_frame = ddb_regs; err = kdb_thr_select(thr); - if (err == 0) { - ddb_regs = *kdb_frame; - db_dot = PC_REGS(DDB_REGS); - } else { + if (err != 0) { db_printf("unable to switch to thread %d\n", (int)thr->td_tid); return; } + db_dot = PC_REGS(); } else { db_printf("%d: invalid thread\n", (int)tid); return; @@ -78,7 +77,7 @@ } db_print_thread(); - db_print_loc_and_inst(PC_REGS(DDB_REGS)); + db_print_loc_and_inst(PC_REGS()); } void ==== //depot/projects/gdb/sys/i386/i386/db_trace.c#8 (text+ko) ==== @@ -55,46 +55,38 @@ static db_varfcn_t db_dr5; static db_varfcn_t db_dr6; static db_varfcn_t db_dr7; +static db_varfcn_t db_esp; +static db_varfcn_t db_frame; static db_varfcn_t db_ss; -static db_varfcn_t db_esp; - -static __inline int -get_esp(struct trapframe *tf) -{ - return ((ISPL(tf->tf_cs)) ? tf->tf_esp : - (db_expr_t)tf + offsetof(struct trapframe, tf_esp)); -} /* * Machine register set. */ +#define DB_OFFSET(x) (db_expr_t *)offsetof(struct trapframe, x) struct db_variable db_regs[] = { - { "cs", &ddb_regs.tf_cs, FCN_NULL }, - { "ds", &ddb_regs.tf_ds, FCN_NULL }, - { "es", &ddb_regs.tf_es, FCN_NULL }, - { "fs", &ddb_regs.tf_fs, FCN_NULL }, -#if 0 - { "gs", &ddb_regs.tf_gs, FCN_NULL }, -#endif - { "ss", NULL, db_ss }, - { "eax", &ddb_regs.tf_eax, FCN_NULL }, - { "ecx", &ddb_regs.tf_ecx, FCN_NULL }, - { "edx", &ddb_regs.tf_edx, FCN_NULL }, - { "ebx", &ddb_regs.tf_ebx, FCN_NULL }, - { "esp", NULL, db_esp }, - { "ebp", &ddb_regs.tf_ebp, FCN_NULL }, - { "esi", &ddb_regs.tf_esi, FCN_NULL }, - { "edi", &ddb_regs.tf_edi, FCN_NULL }, - { "eip", &ddb_regs.tf_eip, FCN_NULL }, - { "efl", &ddb_regs.tf_eflags, FCN_NULL }, - { "dr0", NULL, db_dr0 }, - { "dr1", NULL, db_dr1 }, - { "dr2", NULL, db_dr2 }, - { "dr3", NULL, db_dr3 }, - { "dr4", NULL, db_dr4 }, - { "dr5", NULL, db_dr5 }, - { "dr6", NULL, db_dr6 }, - { "dr7", NULL, db_dr7 }, + { "cs", DB_OFFSET(tf_cs), db_frame }, + { "ds", DB_OFFSET(tf_ds), db_frame }, + { "es", DB_OFFSET(tf_es), db_frame }, + { "fs", DB_OFFSET(tf_fs), db_frame }, + { "ss", NULL, db_ss }, + { "eax", DB_OFFSET(tf_eax), db_frame }, + { "ecx", DB_OFFSET(tf_ecx), db_frame }, + { "edx", DB_OFFSET(tf_edx), db_frame }, + { "ebx", DB_OFFSET(tf_ebx), db_frame }, + { "esp", NULL, db_esp }, + { "ebp", DB_OFFSET(tf_ebp), db_frame }, + { "esi", DB_OFFSET(tf_esi), db_frame }, + { "edi", DB_OFFSET(tf_edi), db_frame }, + { "eip", DB_OFFSET(tf_eip), db_frame }, + { "efl", DB_OFFSET(tf_eflags), db_frame }, + { "dr0", NULL, db_dr0 }, + { "dr1", NULL, db_dr1 }, + { "dr2", NULL, db_dr2 }, + { "dr3", NULL, db_dr3 }, + { "dr4", NULL, db_dr4 }, + { "dr5", NULL, db_dr5 }, + { "dr6", NULL, db_dr6 }, + { "dr7", NULL, db_dr7 }, }; struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); @@ -121,23 +113,43 @@ DB_DRX_FUNC(dr6) DB_DRX_FUNC(dr7) +static __inline int +get_esp(struct trapframe *tf) +{ + return ((ISPL(tf->tf_cs)) ? tf->tf_esp : + (db_expr_t)tf + (uintptr_t)DB_OFFSET(tf_esp)); +} + static int -db_esp (struct db_variable *vp, db_expr_t *valuep, int op) +db_frame(struct db_variable *vp, db_expr_t *valuep, int op) +{ + int *reg; + + reg = (int *)((uintptr_t)kdb_frame + (db_expr_t)vp->valuep); + if (op == DB_VAR_GET) + *valuep = *reg; + else + *reg = *valuep; + return (0); +} + +static int +db_esp(struct db_variable *vp, db_expr_t *valuep, int op) { if (op == DB_VAR_GET) *valuep = get_esp(kdb_frame); - else if (ISPL(ddb_regs.tf_cs)) - ddb_regs.tf_esp = *valuep; + else if (ISPL(kdb_frame->tf_cs)) + kdb_frame->tf_esp = *valuep; return (0); } static int -db_ss (struct db_variable *vp, db_expr_t *valuep, int op) +db_ss(struct db_variable *vp, db_expr_t *valuep, int op) { if (op == DB_VAR_GET) - *valuep = (ISPL(ddb_regs.tf_cs)) ? ddb_regs.tf_ss : rss(); - else if (ISPL(ddb_regs.tf_cs)) - ddb_regs.tf_ss = *valuep; + *valuep = (ISPL(kdb_frame->tf_cs)) ? kdb_frame->tf_ss : rss(); + else if (ISPL(kdb_frame->tf_cs)) + kdb_frame->tf_ss = *valuep; return (0); } ==== //depot/projects/gdb/sys/i386/include/db_machdep.h#2 (text+ko) ==== @@ -30,30 +30,23 @@ #define _MACHINE_DB_MACHDEP_H_ #include -#include #include -#define i386_saved_state trapframe - typedef vm_offset_t db_addr_t; /* address - unsigned */ typedef int db_expr_t; /* expression - signed */ -typedef struct i386_saved_state db_regs_t; -extern db_regs_t ddb_regs; /* register state */ -#define DDB_REGS (&ddb_regs) - -#define PC_REGS(regs) ((db_addr_t)(regs)->tf_eip) +#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_eip) #define BKPT_INST 0xcc /* breakpoint instruction */ #define BKPT_SIZE (1) /* size of breakpoint inst */ #define BKPT_SET(inst) (BKPT_INST) -#define BKPT_SKIP ddb_regs.tf_eip += 1 +#define BKPT_SKIP kdb_frame->tf_eip += 1 -#define FIXUP_PC_AFTER_BREAK ddb_regs.tf_eip -= 1; +#define FIXUP_PC_AFTER_BREAK kdb_frame->tf_eip -= 1; -#define db_clear_single_step(regs) ((regs)->tf_eflags &= ~PSL_T) -#define db_set_single_step(regs) ((regs)->tf_eflags |= PSL_T) +#define db_clear_single_step kdb_cpu_clear_singlestep +#define db_set_single_step kdb_cpu_set_singlestep #define IS_BREAKPOINT_TRAP(type, code) ((type) == T_BPTFLT) /* From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:37:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6F23B16A4D1; Sun, 13 Jun 2004 07:37:50 +0000 (GMT) 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 4304116A4CE for ; Sun, 13 Jun 2004 07:37:50 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C5C443D46 for ; Sun, 13 Jun 2004 07:37:50 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7ZmLn055994 for ; Sun, 13 Jun 2004 07:35:48 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7ZmP7055991 for perforce@freebsd.org; Sun, 13 Jun 2004 07:35:48 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 07:35:48 GMT Message-Id: <200406130735.i5D7ZmP7055991@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 54798 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, 13 Jun 2004 07:37:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=54798 Change 54798 by jmallett@jmallett_oingo on 2004/06/13 07:35:25 Always set up the stack to be below the PCB+TF in cpu_thread_setup() Affected files ... .. //depot/projects/mips/sys/mips/mips/vm_machdep.c#18 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/vm_machdep.c#18 (text+ko) ==== @@ -77,9 +77,6 @@ */ bcopy(td->td_frame, td2->td_frame, sizeof *td2->td_frame); - /* And lastly, stack pointer, begin a trapframe below frame. */ - td2->td_pcb->pcb_regs[8] = (register_t)_ALIGN(td2->td_frame - 1); - /* * Call fork_trampoline into fork_return via the pcb. */ @@ -122,6 +119,8 @@ (struct pcb *)(td->td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; td->td_frame = (struct trapframe *)td->td_pcb - 1; td->td_pcb->pcb_regs[11] = MIPS_SR_KX | MIPS_SR_INT_IE; + /* Stack pointer. */ + td->td_pcb->pcb_regs[8] = (register_t)_ALIGN(td->td_frame - 1); } /* From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:38:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0FE2916A4D1; Sun, 13 Jun 2004 07:38:02 +0000 (GMT) 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 DDFE216A4CE for ; Sun, 13 Jun 2004 07:38:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D741D43D39 for ; Sun, 13 Jun 2004 07:38:01 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7ao87056034 for ; Sun, 13 Jun 2004 07:36:50 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7ao31056031 for perforce@freebsd.org; Sun, 13 Jun 2004 07:36:50 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 07:36:50 GMT Message-Id: <200406130736.i5D7ao31056031@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 54799 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, 13 Jun 2004 07:38:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54799 Change 54799 by jmallett@jmallett_oingo on 2004/06/13 07:35:58 Ignore return value of trap() Affected files ... .. //depot/projects/mips/sys/mips/mips/exception.S#28 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/exception.S#28 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/mips/exception.S#27 $ + * $P4: //depot/projects/mips/sys/mips/mips/exception.S#28 $ */ #include "opt_ddb.h" @@ -129,8 +129,6 @@ * trapframe, cause, badvaddr. * * The trapframe is copied from k1 to a0 in the BDslot. - * - * trap returns the frame. */ mfc0 a1, MIPS_COP_0_CAUSE dmfc0 a2, MIPS_COP_0_BAD_VADDR @@ -145,7 +143,7 @@ li t0, MIPS_SR_KX mtc0 t0, MIPS_COP_0_STATUS - move k1, v0 + move k1, sp jal exception_restore_registers nop daddu sp, sp, TF_SIZE From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:38:08 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 78F0716A4D1; Sun, 13 Jun 2004 07:38:08 +0000 (GMT) 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 4B9E916A4CE for ; Sun, 13 Jun 2004 07:38:08 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4496B43D39 for ; Sun, 13 Jun 2004 07:38:08 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7apfE056041 for ; Sun, 13 Jun 2004 07:36:51 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7aorc056038 for perforce@freebsd.org; Sun, 13 Jun 2004 07:36:50 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 07:36:50 GMT Message-Id: <200406130736.i5D7aorc056038@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 54800 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, 13 Jun 2004 07:38:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=54800 Change 54800 by jmallett@jmallett_oingo on 2004/06/13 07:36:38 Return nothing, and do TF copying. Before this, I was corrupting things by way of overlapping the sp of thread0 with everything else. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#20 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#20 (text+ko) ==== @@ -87,9 +87,9 @@ #define MAXTRAPID 31 /* XXX belongs in a header some day? */ -struct trapframe *trap(struct trapframe *, u_int, void *); +void trap(struct trapframe *, u_int, void *); -struct trapframe * +void trap(struct trapframe *tf, u_int cause, void *badvaddr) { struct trap_identifier *tid; @@ -100,9 +100,8 @@ code = (cause & MIPS_CR_EXC_CODE) >> MIPS_CR_EXC_CODE_SHIFT; kernelmode = (tf->tf_regs[TF_SR] & MIPS_SR_KSU_USER) == 0; - if (curthread != NULL) { - curthread->td_frame = tf; - } + if (curthread != NULL) + bcopy(tf, curthread->td_frame, sizeof *tf); /* * Handle that which we can. @@ -111,25 +110,11 @@ case TrMod: /* XXX Kernel only. */ tlb_modified(badvaddr); - platform_trap_exit(); - if (curthread) - tf = curthread->td_frame; - return (tf); + goto done; case TrInt: - platform_trap_exit(); -#if 0 - /* - * It looks like these break interrupt preemption. - */ - critical_enter(); -#endif + /*platform_trap_exit();*/ platform_intr(tf); -#if 0 - critical_exit(); -#endif - if (curthread) - tf = curthread->td_frame; - return (tf); + goto done; default: /* Fatal! */ break; @@ -186,6 +171,5 @@ done: platform_trap_exit(); if (curthread) - tf = curthread->td_frame; - return (tf); + bcopy(curthread->td_frame, tf, sizeof *tf); } From owner-p4-projects@FreeBSD.ORG Sun Jun 13 07:38:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2EB716A4D1; Sun, 13 Jun 2004 07:38:39 +0000 (GMT) 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 5050616A4CE for ; Sun, 13 Jun 2004 07:38:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3DEAC43D54 for ; Sun, 13 Jun 2004 07:38:39 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D7br1Y056082 for ; Sun, 13 Jun 2004 07:37:53 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D7bqDk056079 for perforce@freebsd.org; Sun, 13 Jun 2004 07:37:52 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 07:37:52 GMT Message-Id: <200406130737.i5D7bqDk056079@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 54801 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, 13 Jun 2004 07:38:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=54801 Change 54801 by jmallett@jmallett_oingo on 2004/06/13 07:37:18 Prevent corruption of thread0 pcb, tf and stack by starting the stack at the correct place loaded into the PCB by cpu_thread_setup. Affected files ... .. //depot/projects/mips/sys/mips/mips/locore.S#13 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/locore.S#13 (text+ko) ==== @@ -90,10 +90,10 @@ jal platform_start nop - ld sp, kstack0 - daddiu sp, KSTACK_PAGES << PAGE_SHIFT - dsrl sp, 3 - dsll sp, 3 + ld k0, pcpup + ld k0, PC_CURTHREAD(k0) + ld k0, TD_PCB(k0) + ld k0, SF_REG_SP(k0) /* Start MI things rolling. */ jal mi_startup From owner-p4-projects@FreeBSD.ORG Sun Jun 13 09:49:36 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 20A3F16A4D1; Sun, 13 Jun 2004 09:49:36 +0000 (GMT) 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 D306316A4CE for ; Sun, 13 Jun 2004 09:49:35 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B99E443D45 for ; Sun, 13 Jun 2004 09:49:35 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5D9mXDm090551 for ; Sun, 13 Jun 2004 09:48:33 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5D9mXFP090548 for perforce@freebsd.org; Sun, 13 Jun 2004 09:48:33 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 09:48:33 GMT Message-Id: <200406130948.i5D9mXFP090548@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 54806 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, 13 Jun 2004 09:49:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=54806 Change 54806 by jmallett@jmallett_oingo on 2004/06/13 09:47:51 Add check_address(), which is an NIHBSD compatible function to NetBSD's badvaddr(), but it doesn't do alignment. Most things can do that for themselves. At least ISTR badvaddr() checks int alignment. Use check_address() in HPC ala NetBSD. Next year, resolve to ramble less in commit/submit messages. Affected files ... .. //depot/projects/mips/sys/mips/include/trap.h#5 edit .. //depot/projects/mips/sys/mips/mips/trap.c#21 edit .. //depot/projects/mips/sys/mips/sgimips/hpc/hpc.c#3 edit Differences ... ==== //depot/projects/mips/sys/mips/include/trap.h#5 (text+ko) ==== @@ -50,6 +50,10 @@ #define TrVCED 31 #ifndef LOCORE /* XXX */ +struct trapframe; + +void trap(struct trapframe *, u_int, void *); +int check_address(void *); void platform_trap_enter(void); void platform_trap_exit(void); #endif ==== //depot/projects/mips/sys/mips/mips/trap.c#21 (text+ko) ==== @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -86,8 +87,9 @@ }; #define MAXTRAPID 31 -/* XXX belongs in a header some day? */ -void trap(struct trapframe *, u_int, void *); +/* Protected by critical sections, for checking for bad addresses. */ +static char *trap_addr; +static int trap_error; void trap(struct trapframe *tf, u_int cause, void *badvaddr) @@ -99,7 +101,7 @@ code = (cause & MIPS_CR_EXC_CODE) >> MIPS_CR_EXC_CODE_SHIFT; kernelmode = (tf->tf_regs[TF_SR] & MIPS_SR_KSU_USER) == 0; - + if (curthread != NULL) bcopy(tf, curthread->td_frame, sizeof *tf); @@ -115,6 +117,13 @@ /*platform_trap_exit();*/ platform_intr(tf); goto done; + case TrAdEL: + if (trap_error == -1) { + if (trap_addr == badvaddr) + trap_error = EINVAL; + goto done; + } + /* fall through */ default: /* Fatal! */ break; @@ -173,3 +182,25 @@ if (curthread) bcopy(curthread->td_frame, tf, sizeof *tf); } + +int +check_address(void *addr) +{ + vm_paddr_t pa; + char b; + int error; + + critical_enter(); + pa = pmap_kextract((vm_offset_t)addr); + trap_addr = (char *)MIPS_PHYS_TO_KSEG1(pa); + trap_error = -1; + b = *trap_addr; + trap_addr = NULL; + error = trap_error; + trap_error = 0; + critical_exit(); + + if (error == -1) + return (0); + return (error); +} ==== //depot/projects/mips/sys/mips/sgimips/hpc/hpc.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/hpc/hpc.c#2 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/hpc/hpc.c#3 $ */ #include @@ -36,6 +36,7 @@ #include #include +#include #include static devclass_t hpc_devclass; @@ -92,6 +93,10 @@ "port", &port); if (error != 0) return (ENODEV); + /* XXX circumvents resource_long_value() */ + error = check_address((void *)MIPS_PHYS_TO_KSEG1(port)); + if (error != 0) + return (error); sc->sc_tag = device_space_tag; sc->sc_handle = port; return (0); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 10:19:25 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDCBE16A4D1; Sun, 13 Jun 2004 10:19:24 +0000 (GMT) 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 92ED016A4CE for ; Sun, 13 Jun 2004 10:19:24 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8C92D43D49 for ; Sun, 13 Jun 2004 10:19:24 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DAH86x097558 for ; Sun, 13 Jun 2004 10:17:08 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DAH8WI097555 for perforce@freebsd.org; Sun, 13 Jun 2004 10:17:08 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 10:17:08 GMT Message-Id: <200406131017.i5DAH8WI097555@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 54807 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, 13 Jun 2004 10:19:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=54807 Change 54807 by jmallett@jmallett_oingo on 2004/06/13 10:16:25 Don't believe the lies of the IP24! Submitted by: Anders Gavare md1gavan at mdstud.chalmers.se Affected files ... .. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#6 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#5 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#6 $ */ #include @@ -104,6 +104,9 @@ uint32_t sysid; sysid = IMC_READ_4(imc_port, IMC_SYSID); + /* IP24 lies about having EISA. Don't believe its sugary-sweet lies! */ + if (mach_subtype == MACH_SGI_IP22_GUINESS) + sysid &= ~IMC_SYSID_HAVEISA; device_printf(dev, "revision %d, EISA %s\n", sysid & IMC_SYSID_REVMASK, sysid & IMC_SYSID_HAVEISA ? "present" : "not present"); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 10:19:41 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 957DE16A4D1; Sun, 13 Jun 2004 10:19:41 +0000 (GMT) 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 6EDEB16A4CE for ; Sun, 13 Jun 2004 10:19:41 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 68F7143D45 for ; Sun, 13 Jun 2004 10:19:41 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DAIAZK097592 for ; Sun, 13 Jun 2004 10:18:10 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DAIAQu097584 for perforce@freebsd.org; Sun, 13 Jun 2004 10:18:10 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 10:18:10 GMT Message-Id: <200406131018.i5DAIAQu097584@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 54808 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, 13 Jun 2004 10:19:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=54808 Change 54808 by jmallett@jmallett_oingo on 2004/06/13 10:17:48 Use check_address when checking the GIO slots. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/gio/gio.c#3 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/gio/gio.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#2 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#3 $ */ #include @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -85,8 +86,13 @@ struct gio_device *gd; uint32_t product; device_t dev; + int error; product = bus_space_read_4(iv->gi_tag, iv->gi_handle, 0); + /* XXX subverts bus space */ + error = check_address((char *)MIPS_PHYS_TO_KSEG1(iv->gi_handle)); + if (error != 0) + return (ENODEV); for (gd = gio_devices; gd->gd_name != NULL; gd++) { if (gd->gd_product == product) { dev = device_add_child(gio, gd->gd_name, -1); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 10:26:28 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0483216A4D1; Sun, 13 Jun 2004 10:26:28 +0000 (GMT) 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 CDF8B16A4CE for ; Sun, 13 Jun 2004 10:26:27 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C7B4843D2F for ; Sun, 13 Jun 2004 10:26:27 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DAPJ0q099535 for ; Sun, 13 Jun 2004 10:25:19 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DAPJIM099532 for perforce@freebsd.org; Sun, 13 Jun 2004 10:25:19 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 10:25:19 GMT Message-Id: <200406131025.i5DAPJIM099532@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 54809 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, 13 Jun 2004 10:26:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=54809 Change 54809 by jmallett@jmallett_oingo on 2004/06/13 10:24:58 Totally don't overlook intent like a chump. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/gio/gio.c#4 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/gio/gio.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#3 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#4 $ */ #include @@ -88,9 +88,9 @@ device_t dev; int error; - product = bus_space_read_4(iv->gi_tag, iv->gi_handle, 0); /* XXX subverts bus space */ error = check_address((char *)MIPS_PHYS_TO_KSEG1(iv->gi_handle)); + product = bus_space_read_4(iv->gi_tag, iv->gi_handle, 0); if (error != 0) return (ENODEV); for (gd = gio_devices; gd->gd_name != NULL; gd++) { From owner-p4-projects@FreeBSD.ORG Sun Jun 13 12:16:00 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 198E916A4D1; Sun, 13 Jun 2004 12:16:00 +0000 (GMT) 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 C7C2D16A4CE for ; Sun, 13 Jun 2004 12:15:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ACEFA43D5C for ; Sun, 13 Jun 2004 12:15:59 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DCFZwK024091 for ; Sun, 13 Jun 2004 12:15:35 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DCFY08024088 for perforce@freebsd.org; Sun, 13 Jun 2004 12:15:35 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 12:15:35 GMT Message-Id: <200406131215.i5DCFY08024088@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 54813 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, 13 Jun 2004 12:16:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=54813 Change 54813 by jmallett@jmallett_oingo on 2004/06/13 12:15:15 Handle the bad address checking stuff more correctly, add volatile to keep GCC from being teh clever. Someone really needs to tell it that global/file-scoped data can change in the kernel, even if it's not volatile... Sigh. Funny thing is, if I had put check_address anywhere but trap() and made them globals, I bet it WOULD have assumed some blindspots :( Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#22 edit .. //depot/projects/mips/sys/mips/sgimips/gio/gio.c#5 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#22 (text+ko) ==== @@ -88,23 +88,27 @@ #define MAXTRAPID 31 /* Protected by critical sections, for checking for bad addresses. */ -static char *trap_addr; -static int trap_error; +static volatile char *trap_addr; +static volatile int trap_error; void -trap(struct trapframe *tf, u_int cause, void *badvaddr) +trap(struct trapframe *retf, u_int cause, void *badvaddr) { + struct trapframe *tf; struct trap_identifier *tid; int code, kernelmode; platform_trap_enter(); + if (curthread != NULL) + tf = curthread->td_frame; + else + tf = retf; + bcopy(retf, tf, sizeof *tf); + code = (cause & MIPS_CR_EXC_CODE) >> MIPS_CR_EXC_CODE_SHIFT; kernelmode = (tf->tf_regs[TF_SR] & MIPS_SR_KSU_USER) == 0; - if (curthread != NULL) - bcopy(tf, curthread->td_frame, sizeof *tf); - /* * Handle that which we can. */ @@ -118,9 +122,17 @@ platform_intr(tf); goto done; case TrAdEL: - if (trap_error == -1) { - if (trap_addr == badvaddr) - trap_error = EINVAL; + case TrDBE: + if (trap_error == -1/* && trap_addr == badvaddr*/) { + /* + * XXX Would like to check trap_addr==badvaddr, + * but it doesn't seem that CPUs set that in the DBE + * case :( + * + * XXX do an onfault thing like other ports? + */ + trap_error = EINVAL; + tf->tf_regs[TF_EPC] += 4; goto done; } /* fall through */ @@ -179,20 +191,19 @@ #endif done: platform_trap_exit(); - if (curthread) - bcopy(curthread->td_frame, tf, sizeof *tf); + bcopy(tf, retf, sizeof *tf); } int check_address(void *addr) { vm_paddr_t pa; - char b; + volatile char b; int error; critical_enter(); pa = pmap_kextract((vm_offset_t)addr); - trap_addr = (char *)MIPS_PHYS_TO_KSEG1(pa); + trap_addr = (volatile char *)MIPS_PHYS_TO_KSEG1(pa); trap_error = -1; b = *trap_addr; trap_addr = NULL; ==== //depot/projects/mips/sys/mips/sgimips/gio/gio.c#5 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#4 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/gio/gio.c#5 $ */ #include @@ -90,9 +90,9 @@ /* XXX subverts bus space */ error = check_address((char *)MIPS_PHYS_TO_KSEG1(iv->gi_handle)); - product = bus_space_read_4(iv->gi_tag, iv->gi_handle, 0); if (error != 0) return (ENODEV); + product = bus_space_read_4(iv->gi_tag, iv->gi_handle, 0); for (gd = gio_devices; gd->gd_name != NULL; gd++) { if (gd->gd_product == product) { dev = device_add_child(gio, gd->gd_name, -1); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 12:42:30 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 970AD16A4D1; Sun, 13 Jun 2004 12:42:30 +0000 (GMT) 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 6CB9F16A4CE for ; Sun, 13 Jun 2004 12:42:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6691543D46 for ; Sun, 13 Jun 2004 12:42:30 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DCg8sp029736 for ; Sun, 13 Jun 2004 12:42:08 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DCg7sH029721 for perforce@freebsd.org; Sun, 13 Jun 2004 12:42:07 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 12:42:07 GMT Message-Id: <200406131242.i5DCg7sH029721@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 54814 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, 13 Jun 2004 12:42:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=54814 Change 54814 by jmallett@jmallett_oingo on 2004/06/13 12:41:27 Snag busdma from PowerPC, looks liek this might work out of the box... Affected files ... .. //depot/projects/mips/sys/conf/files.mips#34 edit .. //depot/projects/mips/sys/mips/include/bus.h#5 edit .. //depot/projects/mips/sys/mips/mips/busdma_machdep.c#1 add Differences ... ==== //depot/projects/mips/sys/conf/files.mips#34 (text+ko) ==== @@ -12,6 +12,7 @@ # This stanza is MIPS MD files. mips/mips/autoconf.c standard mips/mips/bus_machdep.c standard +mips/mips/busdma_machdep.c standard mips/mips/critical.c standard mips/mips/elf_machdep.c standard mips/mips/exception.S standard ==== //depot/projects/mips/sys/mips/include/bus.h#5 (text+ko) ==== @@ -79,4 +79,184 @@ /* Map directly through device space. */ extern bus_space_tag_t device_space_tag; +/* BUSDMA below stolen from PowerPC include/bus.h... */ + +/* + * Flags used in various bus DMA methods. + */ +#define BUS_DMA_WAITOK 0x00 /* safe to sleep (pseudo-flag) */ +#define BUS_DMA_NOWAIT 0x01 /* not safe to sleep */ +#define BUS_DMA_ALLOCNOW 0x02 /* perform resource allocation now */ +#define BUS_DMA_COHERENT 0x04 /* hint: map memory DMA coherent */ +#define BUS_DMA_ZERO 0x08 /* allocate zero'ed memory */ +#define BUS_DMA_BUS1 0x10 /* placeholders for bus functions... */ +#define BUS_DMA_BUS2 0x20 +#define BUS_DMA_BUS3 0x40 +#define BUS_DMA_BUS4 0x80 + +/* Forwards needed by prototypes below. */ +struct mbuf; +struct uio; + +/* + * 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 +#define BUS_DMASYNC_POSTWRITE 8 + +/* + * bus_dma_tag_t + * + * A machine-dependent opaque type describing the characteristics + * of how to perform DMA mappings. This structure encapsultes + * information concerning address and alignment restrictions, number + * of S/G segments, amount of data per S/G segment, etc. + */ +typedef struct bus_dma_tag *bus_dma_tag_t; + +/* + * bus_dmamap_t + * + * DMA mapping instance information. + */ +typedef struct bus_dmamap *bus_dmamap_t; + +/* + * bus_dma_segment_t + * + * Describes a single contiguous DMA transaction. Values + * are suitable for programming into DMA registers. + */ +typedef struct bus_dma_segment { + bus_addr_t ds_addr; /* DMA address */ + bus_size_t ds_len; /* length of transfer */ +} bus_dma_segment_t; + +/* + * A function that returns 1 if the address cannot be accessed by + * a device and 0 if it can be. + */ +typedef int bus_dma_filter_t(void *, bus_addr_t); + +/* + * A function that performs driver-specific syncronization on behalf of + * busdma. + */ +typedef enum { + BUS_DMA_LOCK = 0x01, + BUS_DMA_UNLOCK = 0x02, +} bus_dma_lock_op_t; + +typedef void bus_dma_lock_t(void *, bus_dma_lock_op_t); + +/* + * Allocate a device specific dma_tag encapsulating the constraints of + * the parent tag in addition to other restrictions specified: + * + * alignment: alignment for segments. + * boundary: Boundary that segments cannot cross. + * lowaddr: Low restricted address that cannot appear in a mapping. + * highaddr: High restricted address that cannot appear in a mapping. + * filtfunc: An optional function to further test if an address + * within the range of lowaddr and highaddr cannot appear + * in a mapping. + * filtfuncarg: An argument that will be passed to filtfunc in addition + * to the address to test. + * maxsize: Maximum mapping size supported by this tag. + * nsegments: Number of discontinuities allowed in maps. + * maxsegsz: Maximum size of a segment in the map. + * flags: Bus DMA flags. + * dmat: A pointer to set to a valid dma tag should the return + * value of this function indicate success. + */ +int bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, + bus_size_t boundary, bus_addr_t lowaddr, + bus_addr_t highaddr, bus_dma_filter_t *filtfunc, + void *filtfuncarg, bus_size_t maxsize, int nsegments, + bus_size_t maxsegsz, int flags, bus_dma_lock_t *lockfunc, + void *lockfuncarg, bus_dma_tag_t *dmat); + +int bus_dma_tag_destroy(bus_dma_tag_t dmat); + +/* + * Allocate a handle for mapping from kva/uva/physical + * address space into bus device space. + */ +int bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp); + +/* + * Destroy a handle for mapping from kva/uva/physical + * address space into bus device space. + */ +int bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map); + +/* + * Allocate a piece of memory that can be efficiently mapped into + * 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(bus_dma_tag_t dmat, void** vaddr, int flags, + bus_dmamap_t *mapp); + +/* + * Free a piece of memory and it's allociated dmamap, that was allocated + * via bus_dmamem_alloc. + */ +void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map); + +/* + * A function that processes a successfully loaded dma map or an error + * from a delayed load map. + */ +typedef void bus_dmamap_callback_t(void *, bus_dma_segment_t *, int, int); + +/* + * Map the buffer buf into bus space using the dmamap map. + */ +int bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf, + bus_size_t buflen, bus_dmamap_callback_t *callback, + void *callback_arg, int flags); + +/* + * Like bus_dmamap_callback but includes map size in bytes. This is + * defined as a separate interface to maintain compatiiblity for users + * of bus_dmamap_callback_t--at some point these interfaces should be merged. + */ +typedef void bus_dmamap_callback2_t(void *, bus_dma_segment_t *, int, bus_size_t, int); +/* + * Like bus_dmamap_load but for mbufs. Note the use of the + * bus_dmamap_callback2_t interface. + */ +int bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, + struct mbuf *mbuf, + bus_dmamap_callback2_t *callback, void *callback_arg, + int flags); +/* + * Like bus_dmamap_load but for uios. Note the use of the + * bus_dmamap_callback2_t interface. + */ +int bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, + struct uio *ui, + bus_dmamap_callback2_t *callback, void *callback_arg, + int flags); + +/* + * Perform a syncronization operation on the given map. + */ +void bus_dmamap_sync(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); + +/* + * Release the mapping held by map. + */ +void bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map); + +/* + * Generic helper function for manipulating mutexes. + */ +void busdma_lock_mutex(void *arg, bus_dma_lock_op_t op); + + #endif /* !_MACHINE_BUS_H_ */ From owner-p4-projects@FreeBSD.ORG Sun Jun 13 13:27:25 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E74EE16A4D1; Sun, 13 Jun 2004 13:27:24 +0000 (GMT) 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 9B50716A4CE for ; Sun, 13 Jun 2004 13:27:24 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 811F143D31 for ; Sun, 13 Jun 2004 13:27:24 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DD5cZP041330 for ; Sun, 13 Jun 2004 13:05:38 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DD5bqV041327 for perforce@freebsd.org; Sun, 13 Jun 2004 13:05:37 GMT (envelope-from jmallett@freebsd.org) Date: Sun, 13 Jun 2004 13:05:37 GMT Message-Id: <200406131305.i5DD5bqV041327@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 54816 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, 13 Jun 2004 13:27:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=54816 Change 54816 by jmallett@jmallett_oingo on 2004/06/13 13:05:08 Push IMC address over to hints. Affected files ... .. //depot/projects/mips/sys/mips/conf/INDY.hints#2 edit .. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#7 edit Differences ... ==== //depot/projects/mips/sys/mips/conf/INDY.hints#2 (text+ko) ==== @@ -1,4 +1,5 @@ -# $P4: //depot/projects/mips/sys/mips/conf/INDY.hints#1 $ +# $P4: //depot/projects/mips/sys/mips/conf/INDY.hints#2 $ hint.hpc.0.port="0x1fb80000" hint.hpc.1.port="0x1fb00000" hint.hpc.2.port="0x1f980000" +hint.imc.0.port="0x1fa00000" ==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#6 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#7 $ */ #include @@ -62,7 +62,7 @@ }; static driver_t imc_driver = { - "imc", imc_methods, 1 + "imc", imc_methods, sizeof (long) }; static const char *imc_devices[] = { @@ -70,8 +70,6 @@ NULL }; -static const u_long imc_port = 0x1fa00000; /* XXX hints */ - #define IMC_READ_4(port, r) \ bus_space_read_4(device_space_tag, (port), (r)) @@ -82,6 +80,9 @@ imc_probe(device_t dev) { const char **namep; + int error; + long *scp; + long port; if (device_get_unit(dev) != 0) return (ENXIO); @@ -89,6 +90,13 @@ switch (mach_type) { case MACH_SGI_IP22: device_set_desc(dev, "IMC Bus"); + error = resource_long_value(device_get_name(dev), + device_get_unit(dev), + "port", &port); + if (error != 0) + return (ENODEV); + scp = device_get_softc(dev); + *scp = port; for (namep = imc_devices; *namep != NULL; namep++) device_add_child(dev, *namep, -1); return (0); @@ -100,10 +108,15 @@ static int imc_attach(device_t dev) { + long port; + long *scp; uint32_t reg; uint32_t sysid; - sysid = IMC_READ_4(imc_port, IMC_SYSID); + scp = device_get_softc(dev); + port = *scp; + + sysid = IMC_READ_4(port, IMC_SYSID); /* IP24 lies about having EISA. Don't believe its sugary-sweet lies! */ if (mach_subtype == MACH_SGI_IP22_GUINESS) sysid &= ~IMC_SYSID_HAVEISA; @@ -111,8 +124,8 @@ sysid & IMC_SYSID_HAVEISA ? "present" : "not present"); /* Clear error status. */ - IMC_WRITE_4(imc_port, IMC_CPU_ERRSTAT, 0); - IMC_WRITE_4(imc_port, IMC_GIO_ERRSTAT, 0); + IMC_WRITE_4(port, IMC_CPU_ERRSTAT, 0); + IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0); /* * Enable parity reporting on GIO/main memory transactions. @@ -122,15 +135,15 @@ * has the opposite sense... Turning it on turns the checks off!). * Finally, turn on interrupt writes to the CPU from the MC. */ - reg = IMC_READ_4(imc_port, IMC_CPUCTRL0); + reg = IMC_READ_4(port, IMC_CPUCTRL0); reg &= ~IMC_CPUCTRL0_NCHKMEMPAR; reg |= (IMC_CPUCTRL0_GPR | IMC_CPUCTRL0_MPR | IMC_CPUCTRL0_INTENA); - IMC_WRITE_4(imc_port, IMC_CPUCTRL0, reg); + IMC_WRITE_4(port, IMC_CPUCTRL0, reg); /* Setup the MC write buffer depth */ - reg = IMC_READ_4(imc_port, IMC_CPUCTRL1); + reg = IMC_READ_4(port, IMC_CPUCTRL1); reg = (reg & ~IMC_CPUCTRL1_MCHWMSK) | 13; - IMC_WRITE_4(imc_port, IMC_CPUCTRL1, reg); + IMC_WRITE_4(port, IMC_CPUCTRL1, reg); /* * Set GIO64 arbitrator configuration register: @@ -139,7 +152,7 @@ * on the graphics variant present and I'm not sure how to figure * that out or 100% sure what the correct settings are for each. */ - reg = IMC_READ_4(imc_port, IMC_GIO64ARB); + reg = IMC_READ_4(port, IMC_GIO64ARB); reg &= (IMC_GIO64ARB_GRX64 | IMC_GIO64ARB_GRXRT | IMC_GIO64ARB_GRXMST); /* GIO64 invariant for all IP22 platforms: one GIO bus, HPC1 @ 64 */ @@ -168,7 +181,7 @@ } break; } - IMC_WRITE_4(imc_port, IMC_GIO64ARB, reg); + IMC_WRITE_4(port, IMC_GIO64ARB, reg); bus_generic_attach(dev); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 18:50:45 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 28C6416A4D1; Sun, 13 Jun 2004 18:50:45 +0000 (GMT) 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 01C8516A4CE for ; Sun, 13 Jun 2004 18:50:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ED6A243D48 for ; Sun, 13 Jun 2004 18:50:44 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5DIoB00022679 for ; Sun, 13 Jun 2004 18:50:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DIoAJ2022676 for perforce@freebsd.org; Sun, 13 Jun 2004 18:50:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 13 Jun 2004 18:50:10 GMT Message-Id: <200406131850.i5DIoAJ2022676@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 54837 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, 13 Jun 2004 18:50:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=54837 Change 54837 by rwatson@rwatson_tislabs on 2004/06/13 18:50:09 Integrate netperf_socket: - ALTQ integration - Proper RFC IP over Firewire Affected files ... .. //depot/projects/netperf_socket/sys/conf/NOTES#21 integrate .. //depot/projects/netperf_socket/sys/conf/files#26 integrate .. //depot/projects/netperf_socket/sys/conf/kern.pre.mk#11 integrate .. //depot/projects/netperf_socket/sys/conf/kmod.mk#9 integrate .. //depot/projects/netperf_socket/sys/conf/options#14 integrate .. //depot/projects/netperf_socket/sys/dev/aac/aac_debug.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#13 integrate .. //depot/projects/netperf_socket/sys/dev/awi/awi.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9xvar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/netperf_socket/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/netperf_socket/sys/dev/ichwd/ichwd.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/pdq/pdq_freebsd.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/usb/if_udav.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/wi/if_wi.c#5 integrate .. //depot/projects/netperf_socket/sys/i4b/driver/i4b_ipr.c#2 integrate .. //depot/projects/netperf_socket/sys/net/firewire.h#1 branch .. //depot/projects/netperf_socket/sys/net/if.c#9 integrate .. //depot/projects/netperf_socket/sys/net/if_arp.h#4 integrate .. //depot/projects/netperf_socket/sys/net/if_fwsubr.c#1 branch .. //depot/projects/netperf_socket/sys/net/if_ppp.c#5 integrate .. //depot/projects/netperf_socket/sys/net/if_sl.c#5 integrate .. //depot/projects/netperf_socket/sys/net/if_spppsubr.c#5 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#11 integrate .. //depot/projects/netperf_socket/sys/net80211/ieee80211_input.c#3 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_rfc1490.c#3 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_rfc1490.h#2 integrate .. //depot/projects/netperf_socket/sys/netinet/if_ether.c#9 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_input.c#12 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_output.c#11 integrate .. //depot/projects/netperf_socket/sys/netinet6/ip6_input.c#7 integrate .. //depot/projects/netperf_socket/sys/pci/if_mn.c#4 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#11 integrate Differences ... ==== //depot/projects/netperf_socket/sys/conf/NOTES#21 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1230 2004/06/11 11:16:19 phk Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1232 2004/06/13 17:29:06 mlaier Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -399,6 +399,20 @@ # mchain library. It can be either loaded as KLD or compiled into kernel options LIBMCHAIN +# altq(9). Enable the base part of the hooks with the ALTQ option. +# Individual disciplines must be built into the base system and can not be +# loaded as modules at this point. In order to build a SMP kernel you must +# also have the ALTQ_NOPCC option. +options ALTQ +options ALTQ_CBQ # Class Bases Queueing +options ALTQ_RED # Random Early Drop +options ALTQ_RIO # RED In/Out +options ALTQ_HFSC # Hierarchical Packet Scheduler +options ALTQ_CDNR # Traffic conditioner +options ALTQ_PRIQ # Prioirity Queueing +options ALTQ_NOPCC # Required for SMP build +options ALTQ_DEBUG + # netgraph(4). Enable the base netgraph code with the NETGRAPH option. # Individual node types can be enabled with the corresponding option # listed below; however, this is not strictly necessary as netgraph @@ -2226,6 +2240,7 @@ device sbp # SCSI over Firewire (Requires scbus and da) device sbp_targ # SBP-2 Target mode (Requires scbus and targ) device fwe # Ethernet over FireWire (non-standard!) +device fwip # IP over FireWire (rfc2734 and rfc3146) ##################################################################### # dcons support (Dumb Console Device) ==== //depot/projects/netperf_socket/sys/conf/files#26 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.903 2004/06/10 05:21:44 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.905 2004/06/13 17:29:06 mlaier Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -85,6 +85,14 @@ coda/coda_vfsops.c optional vcoda coda/coda_vnops.c optional vcoda compat/linprocfs/linprocfs.c optional linprocfs +contrib/altq/altq/altq_cbq.c optional altq +contrib/altq/altq/altq_cdnr.c optional altq +contrib/altq/altq/altq_hfsc.c optional altq +contrib/altq/altq/altq_priq.c optional altq +contrib/altq/altq/altq_red.c optional altq +contrib/altq/altq/altq_rio.c optional altq +contrib/altq/altq/altq_rmclass.c optional altq +contrib/altq/altq/altq_subr.c optional altq contrib/dev/acpica/dbcmds.c optional acpi acpi_debug contrib/dev/acpica/dbdisply.c optional acpi acpi_debug contrib/dev/acpica/dbexec.c optional acpi acpi_debug @@ -447,6 +455,7 @@ dev/firewire/fwohci.c optional firewire dev/firewire/fwohci_pci.c optional firewire pci dev/firewire/if_fwe.c optional fwe +dev/firewire/if_fwip.c optional fwip dev/firewire/sbp.c optional sbp dev/firewire/sbp_targ.c optional sbp_targ dev/fxp/if_fxp.c optional fxp @@ -1216,6 +1225,7 @@ net/if_ethersubr.c optional ether net/if_faith.c optional faith net/if_fddisubr.c optional fddi +net/if_fwsubr.c optional firewire net/if_gif.c optional gif net/if_gre.c optional gre net/if_iso88025subr.c optional token ==== //depot/projects/netperf_socket/sys/conf/kern.pre.mk#11 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.52 2004/04/27 16:38:13 emax Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.53 2004/06/13 17:29:06 mlaier Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -51,6 +51,9 @@ # include path into 100+ source files. INCLUDES+= -I$S/contrib/dev/acpica +# ... and the same for altq +INCLUDES+= -I$S/contrib/altq + # ... and the same for ipfilter INCLUDES+= -I$S/contrib/ipfilter ==== //depot/projects/netperf_socket/sys/conf/kmod.mk#9 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/sys/conf/kmod.mk,v 1.160 2004/06/09 16:08:20 imp Exp $ +# $FreeBSD: src/sys/conf/kmod.mk,v 1.161 2004/06/13 17:29:06 mlaier Exp $ # # The include file handles installing Kernel Loadable Device # drivers (KLD's). @@ -96,6 +96,10 @@ # set because there are no standard paths for non-headers. CFLAGS+= -I. -I@ +# Add -I path for altq headers as they are included via net/if_var.h +# for example. +CFLAGS+= -I@/contrib/altq + # Add a -I path to standard headers like . Use a relative # path to src/include if possible. If the @ symlink hasn't been built # yet, then we can't tell if the relative path exists. Add both the ==== //depot/projects/netperf_socket/sys/conf/options#14 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.452 2004/06/11 11:16:19 phk Exp $ +# $FreeBSD: src/sys/conf/options,v 1.453 2004/06/13 17:29:06 mlaier Exp $ # # On the handling of kernel options # @@ -294,6 +294,15 @@ # Net stuff. ACCEPT_FILTER_DATA ACCEPT_FILTER_HTTP +ALTQ opt_global.h +ALTQ_CBQ opt_altq.h +ALTQ_RED opt_altq.h +ALTQ_RIO opt_altq.h +ALTQ_HFSC opt_altq.h +ALTQ_CDNR opt_altq.h +ALTQ_PRIQ opt_altq.h +ALTQ_NOPCC opt_altq.h +ALTQ_DEBUG opt_altq.h BOOTP opt_bootp.h BOOTP_COMPAT opt_bootp.h BOOTP_NFSROOT opt_bootp.h ==== //depot/projects/netperf_socket/sys/dev/aac/aac_debug.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac_debug.c,v 1.18 2004/02/07 20:54:29 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac_debug.c,v 1.19 2004/06/13 17:57:15 obrien Exp $"); /* * Debugging support. @@ -366,10 +366,10 @@ break; case AifEnDiskSetEvent: /* A disk set event occured. */ device_printf(sc->aac_dev, "(DiskSetEvent) event %d " - "diskset %lld creator %lld\n", + "diskset %jd creator %jd\n", aif->data.EN.data.EDS.eventType, - (long long)aif->data.EN.data.EDS.DsNum, - (long long)aif->data.EN.data.EDS.CreatorId); + (intmax_t)aif->data.EN.data.EDS.DsNum, + (intmax_t)aif->data.EN.data.EDS.CreatorId); break; case AifDenMorphComplete: /* A morph operation * completed */ ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#21 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.157 2004/06/05 09:56:04 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.158 2004/06/13 17:29:35 njl Exp $ */ #include "opt_acpi.h" @@ -1125,7 +1125,10 @@ child = BUS_ADD_CHILD(bus, level * 10, NULL, -1); if (child == NULL) break; + + /* Associate the handle with the device_t and vice versa. */ acpi_set_handle(child, handle); + AcpiAttachData(handle, acpi_fake_objhandler, child); /* Check if the device can generate wake events. */ if (ACPI_SUCCESS(AcpiEvaluateObject(handle, "_PRW", NULL, NULL))) @@ -1159,6 +1162,15 @@ return_ACPI_STATUS (AE_OK); } +/* + * AcpiAttachData() requires an object handler but never uses it. This is a + * placeholder object handler so we can store a device_t in an ACPI_HANDLE. + */ +void +acpi_fake_objhandler(ACPI_HANDLE h, UINT32 fn, void *data) +{ +} + static void acpi_shutdown_pre_sync(void *arg, int howto) { ==== //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#13 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.69 2004/05/28 07:15:55 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.70 2004/06/13 17:29:35 njl Exp $ */ #include "bus_if.h" @@ -174,6 +174,15 @@ __ACPI_BUS_ACCESSOR(acpi, magic, ACPI, MAGIC, int) __ACPI_BUS_ACCESSOR(acpi, private, ACPI, PRIVATE, void *) +void acpi_fake_objhandler(ACPI_HANDLE h, UINT32 fn, void *data); +static __inline device_t +acpi_get_device(ACPI_HANDLE handle) +{ + void *dev = NULL; + AcpiGetData(handle, acpi_fake_objhandler, &dev); + return ((device_t)dev); +} + static __inline ACPI_OBJECT_TYPE acpi_get_type(device_t dev) { ==== //depot/projects/netperf_socket/sys/dev/awi/awi.c#4 (text+ko) ==== @@ -89,7 +89,7 @@ __KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $"); #endif #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.32 2004/04/18 01:05:02 onoe Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.33 2004/06/13 17:29:07 mlaier Exp $"); #endif #include "opt_inet.h" @@ -235,10 +235,12 @@ } #endif +#if 0 /* ALTQ */ #define IFQ_PURGE(ifq) IF_DRAIN(ifq) #define IF_POLL(ifq, m) ((m) = (ifq)->ifq_head) #define IFQ_POLL(ifq, m) IF_POLL((ifq), (m)) #define IFQ_DEQUEUE(ifq, m) IF_DEQUEUE((ifq), (m)) +#endif #endif ==== //depot/projects/netperf_socket/sys/dev/esp/ncr53c9x.c#3 (text+ko) ==== @@ -104,7 +104,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/esp/ncr53c9x.c,v 1.3 2004/06/12 05:19:17 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/esp/ncr53c9x.c,v 1.4 2004/06/13 09:08:44 scottl Exp $"); #include #include @@ -117,7 +117,6 @@ #include #include #include -#include #include #include @@ -185,9 +184,6 @@ ((ms +0u) * hz) /1000u) #endif -static int ecb_zone_initialized = 0; -static uma_zone_t ecb_zone; - /* * Names for the NCR53c9x variants, correspnding to the variant tags * in ncr53c9xvar.h. @@ -228,6 +224,8 @@ struct cam_devq *devq; struct cam_sim *sim; struct cam_path *path; + struct ncr53c9x_ecb *ecb; + int i; mtx_init(&sc->sc_lock, "ncr", "ncr53c9x lock", MTX_DEF); @@ -304,7 +302,8 @@ return (ENOMEM); sim = cam_sim_alloc(ncr53c9x_action, ncr53c9x_poll, "esp", sc, - device_get_unit(sc->sc_dev), 256, 256, devq); + device_get_unit(sc->sc_dev), 1, + NCR_TAG_DEPTH, devq); if (sim == NULL) { cam_simq_free(devq); return (ENOMEM); @@ -332,6 +331,19 @@ sc->sc_state = 0; ncr53c9x_init(sc, 1); + TAILQ_INIT(&sc->free_list); + if ((sc->ecb_array = malloc(sizeof(struct ncr53c9x_ecb) * NCR_TAG_DEPTH, + M_DEVBUF, M_NOWAIT|M_ZERO)) == NULL) { + device_printf(sc->sc_dev, "Cannot allocate ecb array!\n"); + return (ENOMEM); + } + for (i = 0; i < NCR_TAG_DEPTH; i++) { + ecb = &sc->ecb_array[i]; + ecb->sc = sc; + ecb->tag_id = i; + TAILQ_INSERT_HEAD(&sc->free_list, ecb, free_links); + } + callout_reset(&sc->sc_watchdog, 60*hz, ncr53c9x_watch, sc); return (0); @@ -453,14 +465,6 @@ NCR_MISC(("[NCR_INIT(%d) %d] ", doreset, sc->sc_state)); - if (!ecb_zone_initialized) { - /* All instances share this zone */ - ecb_zone = uma_zcreate("ncr53c9x ecb zone", - sizeof(struct ncr53c9x_ecb), NULL, NULL, - NULL, NULL, 0, 0); - ecb_zone_initialized = 1; - } - if (sc->sc_state == 0) { /* First time through; initialize. */ @@ -791,7 +795,7 @@ { ecb->flags = 0; - uma_zfree(ecb_zone, (void *)ecb); + TAILQ_INSERT_TAIL(&sc->free_list, ecb, free_links); return; } @@ -800,11 +804,14 @@ { struct ncr53c9x_ecb *ecb; - ecb = (struct ncr53c9x_ecb *)uma_zalloc(ecb_zone, M_NOWAIT); + ecb = TAILQ_FIRST(&sc->free_list); if (ecb) { - bzero(ecb, sizeof(struct ncr53c9x_ecb)); - ecb->flags |= ECB_ALLOC; - ecb->sc = sc; + if (ecb->flags != 0) + panic("ecb flags not cleared\n"); + TAILQ_REMOVE(&sc->free_list, ecb, free_links); + ecb->flags = ECB_ALLOC; + bzero(&ecb->ccb, sizeof(struct ncr53c9x_ecb) - + offsetof(struct ncr53c9x_ecb, ccb)); } return (ecb); } @@ -847,7 +854,7 @@ struct ccb_pathinq *cpi = &ccb->cpi; cpi->version_num = 1; - cpi->hba_inquiry = PI_SDTR_ABLE/*|PI_TAG_ABLE*/; + cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE; cpi->hba_inquiry |= (sc->sc_rev == NCR_VARIANT_FAS366) ? PI_WIDE_16 : 0; cpi->target_sprt = 0; @@ -1000,6 +1007,7 @@ ti->flags &= ~T_WIDE; ti->width = 0; } + ti->flags |= T_NEGOTIATE; } if ((cts->valid & CCB_TRANS_SYNC_RATE_VALID) != 0) { @@ -1088,6 +1096,10 @@ tag = 0; else if ((ecb->flags & ECB_SENSE) != 0) tag = 0; + else if ((ecb->ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) == 0) + tag = 0; + else if (ecb->ccb->csio.tag_action == CAM_TAG_ACTION_NONE) + tag = 0; else tag = ecb->ccb->csio.tag_action; @@ -1122,8 +1134,8 @@ } ecb->tag[0] = tag; if (tag != 0) { - li->queued[ecb->ccb->csio.tag_id] = ecb; - ecb->tag[1] = ecb->ccb->csio.tag_id; + li->queued[ecb->tag_id] = ecb; + ecb->tag[1] = ecb->tag_id; li->used++; } if (li->untagged != NULL && (li->busy != 1)) { @@ -1218,7 +1230,8 @@ if (ccb->ccb_h.status == CAM_REQ_CMP) { if ((ecb->flags & ECB_ABORT) != 0) { ccb->ccb_h.status = CAM_CMD_TIMEOUT; - } else if ((ecb->flags & ECB_SENSE) != 0) { + } else if ((ecb->flags & ECB_SENSE) != 0 && + (ecb->stat != SCSI_STATUS_CHECK_COND)) { ccb->ccb_h.status = CAM_AUTOSNS_VALID; } else if (ecb->stat == SCSI_STATUS_CHECK_COND) { if ((ecb->flags & ECB_SENSE) != 0) ==== //depot/projects/netperf_socket/sys/dev/esp/ncr53c9xvar.h#3 (text+ko) ==== @@ -66,7 +66,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD: src/sys/dev/esp/ncr53c9xvar.h,v 1.2 2004/06/11 15:33:20 scottl Exp $ */ +/* $FreeBSD: src/sys/dev/esp/ncr53c9xvar.h,v 1.3 2004/06/13 09:08:44 scottl Exp $ */ #ifndef _DEV_IC_NCR53C9XVAR_H_ #define _DEV_IC_NCR53C9XVAR_H_ @@ -101,6 +101,9 @@ #define NCR_VARIANT_NCR53C90_86C01 10 #define NCR_VARIANT_MAX 11 +/* XXX Max tag depth. Should this be defined in the register header? */ +#define NCR_TAG_DEPTH 256 + /* * ECB. Holds additional information for each SCSI command Comments: We * need a separate scsi command block because we may need to overwrite it @@ -110,10 +113,14 @@ * occasionally xs->retries. */ struct ncr53c9x_ecb { - TAILQ_ENTRY(ncr53c9x_ecb) chain; - union ccb *ccb; /* SCSI xfer ctrl block from above */ + /* These fields are preserved between alloc and free */ struct ncr53c9x_softc *sc; + int tag_id; int flags; + + union ccb *ccb; /* SCSI xfer ctrl block from above */ + TAILQ_ENTRY(ncr53c9x_ecb) free_links; + TAILQ_ENTRY(ncr53c9x_ecb) chain; #define ECB_ALLOC 0x01 #define ECB_READY 0x02 #define ECB_SENSE 0x04 @@ -168,7 +175,7 @@ unsigned char avail; /* where to start scanning */ unsigned char busy; struct ncr53c9x_ecb *untagged; - struct ncr53c9x_ecb *queued[256]; + struct ncr53c9x_ecb *queued[NCR_TAG_DEPTH]; }; struct ncr53c9x_tinfo { @@ -348,6 +355,9 @@ int sc_extended_geom; /* Should we return extended geometry */ struct mtx sc_lock; /* driver mutex */ + + struct ncr53c9x_ecb *ecb_array; + TAILQ_HEAD(,ncr53c9x_ecb) free_list; }; /* values for sc_state */ ==== //depot/projects/netperf_socket/sys/dev/ichwd/ichwd.c#3 (text+ko) ==== @@ -54,7 +54,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.3 2004/05/30 20:08:34 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.4 2004/06/13 05:00:19 jmg Exp $"); #include #include @@ -247,8 +247,10 @@ /* good, add child to bus */ if ((dev = device_find_child(parent, driver->name, 0)) == NULL) - dev = BUS_ADD_CHILD(parent, 0, driver->name, -1); - device_set_desc_copy(dev, id->desc); + dev = BUS_ADD_CHILD(parent, 0, driver->name, 0); + + if (dev != NULL) + device_set_desc_copy(dev, id->desc); } static int ==== //depot/projects/netperf_socket/sys/dev/pdq/pdq_freebsd.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Id: pdqvar.h,v 1.21 1997/03/21 21:16:04 thomas Exp - * $FreeBSD: src/sys/dev/pdq/pdq_freebsd.h,v 1.7 2003/10/31 18:32:03 brooks Exp $ + * $FreeBSD: src/sys/dev/pdq/pdq_freebsd.h,v 1.8 2004/06/13 17:29:07 mlaier Exp $ * */ @@ -97,8 +97,10 @@ #define sc_ifmedia ifmedia #define sc_if arpcom.ac_if #define sc_bpf sc_if.if_bpf +#if 0 /* ALTQ */ #define IFQ_DEQUEUE IF_DEQUEUE #define IFQ_IS_EMPTY(q) ((q)->ifq_len == 0) +#endif typedef struct _pdq_os_ctx_t { struct arpcom arpcom; ==== //depot/projects/netperf_socket/sys/dev/usb/if_udav.c#5 (text+ko) ==== @@ -1,6 +1,6 @@ /* $NetBSD: if_udav.c,v 1.2 2003/09/04 15:17:38 tsutsui Exp $ */ /* $nabe: if_udav.c,v 1.3 2003/08/21 16:57:19 nabe Exp $ */ -/* $FreeBSD: src/sys/dev/usb/if_udav.c,v 1.5 2004/06/09 00:25:44 naddy Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_udav.c,v 1.6 2004/06/13 11:22:58 sanpei Exp $ */ /* * Copyright (c) 2003 * Shingo WATANABE . All rights reserved. @@ -45,7 +45,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_udav.c,v 1.5 2004/06/09 00:25:44 naddy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_udav.c,v 1.6 2004/06/13 11:22:58 sanpei Exp $"); #include "opt_inet.h" #if defined(__NetBSD__) @@ -1538,6 +1538,28 @@ switch (cmd) { #if defined(__FreeBSD__) + case SIOCSIFFLAGS: + if (ifp->if_flags & IFF_UP) { + if (ifp->if_flags & IFF_RUNNING && + ifp->if_flags & IFF_PROMISC) { + UDAV_SETBIT(sc, UDAV_RCR, + UDAV_RCR_ALL|UDAV_RCR_PRMSC); + } else if (ifp->if_flags & IFF_RUNNING && + !(ifp->if_flags & IFF_PROMISC)) { + if (ifp->if_flags & IFF_ALLMULTI) + UDAV_CLRBIT(sc, UDAV_RCR, + UDAV_RCR_PRMSC); + else + UDAV_CLRBIT(sc, UDAV_RCR, + UDAV_RCR_ALL|UDAV_RCR_PRMSC); + } else if (!(ifp->if_flags & IFF_RUNNING)) + udav_init(sc); + } else { + if (ifp->if_flags & IFF_RUNNING) + udav_stop(ifp, 1); + } + error = 0; + break; case SIOCADDMULTI: case SIOCDELMULTI: udav_setmulti(sc); @@ -1552,10 +1574,12 @@ default: error = ether_ioctl(ifp, cmd, data); +#if defined(__NetBSD__) if (error == ENETRESET) { udav_setmulti(sc); error = 0; } +#endif break; } ==== //depot/projects/netperf_socket/sys/dev/wi/if_wi.c#5 (text+ko) ==== @@ -62,7 +62,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.166 2004/04/01 00:38:45 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.167 2004/06/13 17:29:07 mlaier Exp $"); #define WI_HERMES_AUTOINC_WAR /* Work around data write autoinc bug. */ #define WI_HERMES_STATS_WAR /* Work around stats counter bug. */ @@ -114,9 +114,11 @@ #include #include +#if 0 /* ALTQ */ #define IF_POLL(ifq, m) ((m) = (ifq)->ifq_head) #define IFQ_POLL(ifq, m) IF_POLL((ifq), (m)) #define IFQ_DEQUEUE(ifq, m) IF_DEQUEUE((ifq), (m)) +#endif static void wi_start(struct ifnet *); static int wi_reset(struct wi_softc *); ==== //depot/projects/netperf_socket/sys/i4b/driver/i4b_ipr.c#2 (text+ko) ==== @@ -54,7 +54,7 @@ *---------------------------------------------------------------------------*/ #include -__FBSDID("$FreeBSD: src/sys/i4b/driver/i4b_ipr.c,v 1.26 2003/10/31 18:32:07 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/i4b/driver/i4b_ipr.c,v 1.27 2004/06/13 17:29:08 mlaier Exp $"); #include "i4bipr.h" @@ -382,7 +382,7 @@ if(ip->ip_tos & IPTOS_LOWDELAY) ifq = &sc->sc_fastq; else - ifq = &sc->sc_if.if_snd; + ifq = (struct ifqueue *)&sc->sc_if.if_snd; /* check for space in choosen send queue */ ==== //depot/projects/netperf_socket/sys/net/if.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if.c 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/net/if.c,v 1.191 2004/04/24 22:24:48 luigi Exp $ + * $FreeBSD: src/sys/net/if.c,v 1.192 2004/06/13 17:29:08 mlaier Exp $ */ #include "opt_compat.h" @@ -82,7 +82,7 @@ static void if_init(void *); static void if_check(void *); static int if_findindex(struct ifnet *); -static void if_qflush(struct ifqueue *); +static void if_qflush(struct ifaltq *); static void if_route(struct ifnet *, int flag, int fam); static void if_slowtimo(void *); static void if_unroute(struct ifnet *, int flag, int fam); @@ -441,6 +441,13 @@ ifa->ifa_refcnt = 1; TAILQ_INSERT_HEAD(&ifp->if_addrhead, ifa, ifa_link); ifp->if_broadcastaddr = 0; /* reliably crash if used uninitialized */ +#ifdef ALTQ + ifp->if_snd.altq_type = 0; + ifp->if_snd.altq_disc = NULL; + ifp->if_snd.altq_flags &= ALTQF_CANTCHANGE; + ifp->if_snd.altq_tbr = NULL; + ifp->if_snd.altq_ifp = ifp; +#endif if (domains) if_attachdomain1(ifp); @@ -519,6 +526,12 @@ */ s = splnet(); if_down(ifp); +#ifdef ALTQ + if (ALTQ_IS_ENABLED(&ifp->if_snd)) + altq_disable(&ifp->if_snd); + if (ALTQ_IS_ATTACHED(&ifp->if_snd)) + altq_detach(&ifp->if_snd); +#endif for (ifa = TAILQ_FIRST(&ifp->if_addrhead); ifa; ifa = next) { next = TAILQ_NEXT(ifa, ifa_link); @@ -1189,10 +1202,14 @@ * Flush an interface queue. */ static void -if_qflush(struct ifqueue *ifq) +if_qflush(struct ifaltq *ifq) { struct mbuf *m, *n; +#ifdef ALTQ + if (ALTQ_IS_ENABLED(ifq)) + ALTQ_PURGE(ifq); +#endif n = ifq->ifq_head; while ((m = n) != 0) { n = m->m_act; ==== //depot/projects/netperf_socket/sys/net/if_arp.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if_arp.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/net/if_arp.h,v 1.19 2004/04/18 01:15:32 luigi Exp $ + * $FreeBSD: src/sys/net/if_arp.h,v 1.20 2004/06/13 10:54:35 dfr Exp $ */ #ifndef _NET_IF_ARP_H_ @@ -49,6 +49,7 @@ #define ARPHRD_IEEE802 6 /* token-ring hardware format */ #define ARPHRD_ARCNET 7 /* arcnet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ +#define ARPHRD_IEEE1394 24 /* firewire hardware format */ u_short ar_pro; /* format of protocol address */ u_char ar_hln; /* length of hardware address */ u_char ar_pln; /* length of protocol address */ ==== //depot/projects/netperf_socket/sys/net/if_ppp.c#5 (text+ko) ==== @@ -69,7 +69,7 @@ * Paul Mackerras (paulus@cs.anu.edu.au). */ -/* $FreeBSD: src/sys/net/if_ppp.c,v 1.97 2004/04/19 01:36:24 rwatson Exp $ */ +/* $FreeBSD: src/sys/net/if_ppp.c,v 1.98 2004/06/13 17:29:08 mlaier Exp $ */ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ /* from NetBSD: if_ppp.c,v 1.15.2.2 1994/07/28 05:17:58 cgd Exp */ @@ -933,7 +933,8 @@ sc->sc_npqtail = &m0->m_nextpkt; } else { /* fastq and if_snd are emptied at spl[soft]net now */ - ifq = (m0->m_flags & M_HIGHPRI)? &sc->sc_fastq: &ifp->if_snd; + ifq = (m0->m_flags & M_HIGHPRI)? &sc->sc_fastq: + (struct ifqueue *)&ifp->if_snd; IF_LOCK(ifq); if (_IF_QFULL(ifq) && dst->sa_family != AF_UNSPEC) { _IF_DROP(ifq); @@ -988,7 +989,8 @@ */ *mpp = m->m_nextpkt; m->m_nextpkt = NULL; - ifq = (m->m_flags & M_HIGHPRI)? &sc->sc_fastq: &sc->sc_if.if_snd; + ifq = (m->m_flags & M_HIGHPRI)? &sc->sc_fastq: + (struct ifqueue *)&sc->sc_if.if_snd; if (! IF_HANDOFF(ifq, m, NULL)) { sc->sc_if.if_oerrors++; sc->sc_stats.ppp_oerrors++; ==== //depot/projects/netperf_socket/sys/net/if_sl.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if_sl.c 8.6 (Berkeley) 2/1/94 - * $FreeBSD: src/sys/net/if_sl.c,v 1.115 2004/06/07 20:43:37 phk Exp $ + * $FreeBSD: src/sys/net/if_sl.c,v 1.116 2004/06/13 17:29:08 mlaier Exp $ */ /* @@ -571,7 +571,7 @@ m_freem(m); return (EHOSTUNREACH); } - ifq = &sc->sc_if.if_snd; + ifq = (struct ifqueue *)&sc->sc_if.if_snd; ip = mtod(m, struct ip *); if (sc->sc_if.if_flags & SC_NOICMP && ip->ip_p == IPPROTO_ICMP) { m_freem(m); ==== //depot/projects/netperf_socket/sys/net/if_spppsubr.c#5 (text+ko) ==== @@ -17,7 +17,7 @@ * * From: Version 2.4, Thu Apr 30 17:17:21 MSD 1997 * - * $FreeBSD: src/sys/net/if_spppsubr.c,v 1.108 2004/05/25 21:54:07 rik Exp $ + * $FreeBSD: src/sys/net/if_spppsubr.c,v 1.109 2004/06/13 17:29:08 mlaier Exp $ */ #include @@ -781,7 +781,7 @@ s = splimp(); } - ifq = &ifp->if_snd; + ifq = (struct ifqueue *)&ifp->if_snd; #ifdef INET if (dst->sa_family == AF_INET) { /* XXX Check mbuf length here? */ @@ -1038,7 +1038,7 @@ { struct sppp *sp = (struct sppp*) ifp; - sppp_qflush (&sp->pp_if.if_snd); + sppp_qflush ((struct ifqueue *)&sp->pp_if.if_snd); sppp_qflush (&sp->pp_fastq); sppp_qflush (&sp->pp_cpq); } ==== //depot/projects/netperf_socket/sys/net/if_var.h#11 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * From: @(#)if.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/net/if_var.h,v 1.74 2004/05/03 13:48:35 andre Exp $ + * $FreeBSD: src/sys/net/if_var.h,v 1.75 2004/06/13 17:29:08 mlaier Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -82,6 +82,10 @@ #define IF_DUNIT_NONE -1 +#if 1 /* ALTQ */ +#include +#endif + TAILQ_HEAD(ifnethead, ifnet); /* we use TAILQs so that the order of */ TAILQ_HEAD(ifaddrhead, ifaddr); /* instantiation is preserved in the list */ TAILQ_HEAD(ifprefixhead, ifprefix); @@ -171,7 +175,11 @@ (void *); int (*if_resolvemulti) /* validate/resolve multicast */ (struct ifnet *, struct sockaddr **, struct sockaddr *); +#if 1 /* ALTQ */ + struct ifaltq if_snd; /* output queue (includes altq) */ +#else struct ifqueue if_snd; /* output queue */ +#endif const u_int8_t *if_broadcastaddr; /* linklevel broadcast bytestring */ struct lltable *lltables; /* list of L3-L2 resolution tables */ @@ -228,6 +236,7 @@ */ #define IF_LOCK(ifq) mtx_lock(&(ifq)->ifq_mtx) #define IF_UNLOCK(ifq) mtx_unlock(&(ifq)->ifq_mtx) +#define IF_LOCK_ASSERT(ifq) mtx_assert(&(ifq)->ifq_mtx, MA_OWNED) #define _IF_QFULL(ifq) ((ifq)->ifq_len >= (ifq)->ifq_maxlen) #define _IF_DROP(ifq) ((ifq)->ifq_drops++) #define _IF_QLEN(ifq) ((ifq)->ifq_len) @@ -278,18 +287,25 @@ IF_UNLOCK(ifq); \ } while (0) -#define IF_DRAIN(ifq) do { \ +#define _IF_POLL(ifq, m) ((m) = (ifq)->ifq_head) +#define IF_POLL(ifq, m) _IF_POLL(ifq, m) + +#define _IF_DRAIN(ifq) do { \ struct mbuf *m; \ - IF_LOCK(ifq); \ for (;;) { \ _IF_DEQUEUE(ifq, m); \ if (m == NULL) \ break; \ m_freem(m); \ } \ - IF_UNLOCK(ifq); \ } while (0) +#define IF_DRAIN(ifq) do { \ + IF_LOCK(ifq); \ + _IF_DRAIN(ifq); \ + IF_UNLOCK(ifq); \ +} while(0) + #ifdef _KERNEL /* interface address change event */ typedef void (*ifaddr_event_handler_t)(void *, struct ifnet *); @@ -311,8 +327,10 @@ #define IF_AFDATA_UNLOCK(ifp) mtx_unlock(&(ifp)->if_afdata_mtx) #define IF_AFDATA_DESTROY(ifp) mtx_destroy(&(ifp)->if_afdata_mtx) -#define IF_HANDOFF(ifq, m, ifp) if_handoff(ifq, m, ifp, 0) -#define IF_HANDOFF_ADJ(ifq, m, ifp, adj) if_handoff(ifq, m, ifp, adj) +#define IF_HANDOFF(ifq, m, ifp) \ + if_handoff((struct ifqueue *)ifq, m, ifp, 0) +#define IF_HANDOFF_ADJ(ifq, m, ifp, adj) \ + if_handoff((struct ifqueue *)ifq, m, ifp, adj) static __inline int if_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust) @@ -338,6 +356,185 @@ (*ifp->if_start)(ifp); return (1); } +#if 1 /* ALTQ */ +#define IFQ_ENQUEUE(ifq, m, err) \ +do { \ + IF_LOCK(ifq); \ + if (ALTQ_IS_ENABLED(ifq)) \ + ALTQ_ENQUEUE(ifq, m, NULL, err); \ + else { \ + if (_IF_QFULL(ifq)) { \ + m_freem(m); \ + (err) = ENOBUFS; \ + } else { \ + _IF_ENQUEUE(ifq, m); \ + (err) = 0; \ + } \ + } \ + if (err) \ + (ifq)->ifq_drops++; \ + IF_UNLOCK(ifq); \ +} while (0) + +#define IFQ_DEQUEUE_NOLOCK(ifq, m) \ +do { \ + if (TBR_IS_ENABLED(ifq)) \ + (m) = tbr_dequeue(ifq, ALTDQ_REMOVE); \ + else if (ALTQ_IS_ENABLED(ifq)) \ + ALTQ_DEQUEUE(ifq, m); \ + else \ + _IF_DEQUEUE(ifq, m); \ +} while (0) + +#define IFQ_DEQUEUE(ifq, m) \ +do { \ + IF_LOCK(ifq); \ + IFQ_DEQUEUE_NOLOCK(ifq, m); \ + IF_UNLOCK(ifq); \ +} while (0) + +#define IFQ_POLL_NOLOCK(ifq, m) \ +do { \ + if (TBR_IS_ENABLED(ifq)) \ + (m) = tbr_dequeue(ifq, ALTDQ_POLL); \ + else if (ALTQ_IS_ENABLED(ifq)) \ + ALTQ_POLL(ifq, m); \ + else \ + _IF_POLL(ifq, m); \ +} while (0) + +#define IFQ_POLL(ifq, m) \ +do { \ + IF_LOCK(ifq); \ + IFQ_POLL_NOLOCK(ifq, m); \ + IF_UNLOCK(ifq); \ +} while (0) + +#define IFQ_PURGE_NOLOCK(ifq) \ +do { \ + if (ALTQ_IS_ENABLED(ifq)) { \ + ALTQ_PURGE(ifq); \ + } else \ + _IF_DRAIN(ifq); \ +} while (0) + +#define IFQ_PURGE(ifq) \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jun 13 19:15:59 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0134616A4D2; Sun, 13 Jun 2004 19:15:58 +0000 (GMT) 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 BE28616A4CE for ; Sun, 13 Jun 2004 19:15:58 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A038543D49 for ; Sun, 13 Jun 2004 19:15:58 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DJFjbE029962 for ; Sun, 13 Jun 2004 19:15:45 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DJFiNb029959 for perforce@freebsd.org; Sun, 13 Jun 2004 19:15:44 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 19:15:44 GMT Message-Id: <200406131915.i5DJFiNb029959@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 54840 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, 13 Jun 2004 19:15:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=54840 Change 54840 by marcel@marcel_nfs on 2004/06/13 19:15:17 Use the PCB instead of the trapframe for thread context. Add support for using dumppcb and dumptid. This allows us to set the current thread to the one that did the kernel dump and also use the saved context. Note that the kernel currently doesn't save dumptid. Affected files ... .. //depot/projects/gdb/usr.bin/kgdb/kgdb.h#7 edit .. //depot/projects/gdb/usr.bin/kgdb/kthr.c#4 edit .. //depot/projects/gdb/usr.bin/kgdb/md_i386.c#5 edit Differences ... ==== //depot/projects/gdb/usr.bin/kgdb/kgdb.h#7 (text+ko) ==== @@ -107,13 +107,13 @@ extern kvm_t *kvm; extern int verbose; -struct trapframe; +struct pcb; struct kthr { struct kthr *next; uintptr_t kaddr; - struct trapframe *td_frame; uintptr_t td_kstack; + struct pcb *td_pcb; int td_tid; }; ==== //depot/projects/gdb/usr.bin/kgdb/kthr.c#4 (text+ko) ==== @@ -37,10 +37,13 @@ #include #include -#include +#include #include "kgdb.h" +struct pcb *dumppcb; +int dumptid; + static struct kthr *first; struct kthr *curkthr; @@ -53,7 +56,7 @@ struct kthr * kgdb_thr_init(void) { - struct nlist nl[2]; + struct nlist nl[3]; struct proc p; struct thread td; struct kthr *thr; @@ -67,25 +70,38 @@ } kvm_read(kvm, nl[0].n_value, &paddr, sizeof(paddr)); + nl[0].n_name = (char *)(uintptr_t)"_dumppcb"; + nl[1].n_name = (char *)(uintptr_t)"_dumptid"; + nl[2].n_name = NULL; + if (kvm_nlist(kvm, nl) != 0) { + warnx(kvm_geterr(kvm)); + dumppcb = NULL; + dumptid = -1; + } else { + dumppcb = (struct pcb *)(nl[0].n_value); + kvm_read(kvm, nl[1].n_value, &dumptid, sizeof(dumptid)); + } + while (paddr != 0) { kvm_read(kvm, paddr, &p, sizeof(p)); tdaddr = (uintptr_t)TAILQ_FIRST(&p.p_threads); while (tdaddr != 0) { kvm_read(kvm, tdaddr, &td, sizeof(td)); - if (td.td_last_frame != NULL) { - thr = malloc(sizeof(*thr)); - thr->next = first; - thr->kaddr = tdaddr; - thr->td_frame = td.td_last_frame; - thr->td_kstack = td.td_kstack; - thr->td_tid = td.td_tid; - first = thr; - } + thr = malloc(sizeof(*thr)); + thr->next = first; + thr->kaddr = tdaddr; + thr->td_pcb = (td.td_tid == dumptid) ? dumppcb : + td.td_pcb; + thr->td_kstack = td.td_kstack; + thr->td_tid = td.td_tid; + first = thr; tdaddr = (uintptr_t)TAILQ_NEXT(&td, td_plist); } paddr = (uintptr_t)LIST_NEXT(&p, p_list); } - curkthr = first; + curkthr = kgdb_thr_lookup(dumptid); + if (curkthr == NULL) + curkthr = first; return (first); } ==== //depot/projects/gdb/usr.bin/kgdb/md_i386.c#5 (text+ko) ==== @@ -33,60 +33,32 @@ #include #include #include -#include #include +#include #include #include #include "kgdb.h" -static int -getreg(int *addr) -{ - int val; - - kvm_read(kvm, (uintptr_t)addr, &val, sizeof(val)); - return (val); -} - void * gdb_cpu_getreg(int regnum, size_t *regsz) { - struct trapframe *tf = curkthr->td_frame; - int cs; *regsz = gdb_cpu_regsz(regnum); switch (regnum) { - case 0: return (&tf->tf_eax); - case 1: return (&tf->tf_ecx); - case 2: return (&tf->tf_edx); - case 3: return (&tf->tf_ebx); - case 5: return (&tf->tf_ebp); - case 6: return (&tf->tf_esi); - case 7: return (&tf->tf_edi); - case 8: return (&tf->tf_eip); - case 9: return (&tf->tf_eflags); - case 10: return (&tf->tf_cs); - case 12: return (&tf->tf_ds); - case 13: return (&tf->tf_es); - case 4: - cs = getreg(&tf->tf_cs); - return (!ISPL(cs)) ? &tf->tf_ebp : &tf->tf_esp; - case 11: - cs = getreg(&tf->tf_cs); - return (!ISPL(cs)) ? &tf->tf_ds : &tf->tf_ss; + case 3: return (&curkthr->td_pcb->pcb_ebx); + case 4: return (&curkthr->td_pcb->pcb_esp); + case 5: return (&curkthr->td_pcb->pcb_ebp); + case 6: return (&curkthr->td_pcb->pcb_esi); + case 7: return (&curkthr->td_pcb->pcb_edi); + case 8: return (&curkthr->td_pcb->pcb_eip); } return (NULL); } void -gdb_cpu_setreg(int regnum, register_t val) +gdb_cpu_setreg(int regnum __unused, register_t val __unused) { - struct trapframe *tf = curkthr->td_frame; - - switch (regnum) { - case GDB_REG_PC: tf->tf_eip = val; break; - } } int From owner-p4-projects@FreeBSD.ORG Sun Jun 13 19:17:19 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4AAD916A4D1; Sun, 13 Jun 2004 19:17:19 +0000 (GMT) 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 2597B16A4CE for ; Sun, 13 Jun 2004 19:17:19 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2000A43D41 for ; Sun, 13 Jun 2004 19:17:19 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DJGlVc029994 for ; Sun, 13 Jun 2004 19:16:47 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DJGk7s029991 for perforce@freebsd.org; Sun, 13 Jun 2004 19:16:46 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 19:16:46 GMT Message-Id: <200406131916.i5DJGk7s029991@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 54841 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, 13 Jun 2004 19:17:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=54841 Change 54841 by marcel@marcel_nfs on 2004/06/13 19:16:05 Also save the thread ID of the thread doing the dump. Affected files ... .. //depot/projects/gdb/sys/kern/kern_shutdown.c#7 edit Differences ... ==== //depot/projects/gdb/sys/kern/kern_shutdown.c#7 (text+ko) ==== @@ -123,7 +123,10 @@ int dumping; /* system is dumping */ static struct dumperinfo dumper; /* our selected dumper */ -static struct pcb dumppcb; /* "You Are Here" sign for dump-debuggers */ + +/* Context information for dump-debuggers. */ +static struct pcb dumppcb; /* Registers. */ +static int dumptid; /* Thread ID. */ static void boot(int) __dead2; static void poweroff_wait(void *, int); @@ -229,6 +232,7 @@ { savectx(&dumppcb); + dumptid = curthread->td_tid; dumping++; dumpsys(&dumper); } From owner-p4-projects@FreeBSD.ORG Sun Jun 13 19:54:44 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26D0D16A4D1; Sun, 13 Jun 2004 19:54:44 +0000 (GMT) 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 DED3516A4CE for ; Sun, 13 Jun 2004 19:54:43 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D53D243D49 for ; Sun, 13 Jun 2004 19:54:43 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5DJsZ1I038096 for ; Sun, 13 Jun 2004 19:54:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DJsYHq038093 for perforce@freebsd.org; Sun, 13 Jun 2004 19:54:34 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 13 Jun 2004 19:54:34 GMT Message-Id: <200406131954.i5DJsYHq038093@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 54845 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, 13 Jun 2004 19:54:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=54845 Change 54845 by rwatson@rwatson_tislabs on 2004/06/13 19:53:50 Top-up integrate of netperf_socket. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#12 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9x.c#4 integrate .. //depot/projects/netperf_socket/sys/net/if_fwsubr.c#2 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#12 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.467 2004/06/12 20:01:47 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.468 2004/06/13 19:48:38 alc Exp $"); /* * Manages physical address maps. @@ -142,7 +142,6 @@ #include #endif -#define PMAP_KEEP_PDIRS #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 #endif @@ -208,8 +207,7 @@ static PMAP_INLINE void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(void); -static void pmap_clear_ptes(vm_page_t m, int bit) - __always_inline; +static void pmap_clear_ptes(vm_page_t m, int bit); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva); static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); @@ -1336,13 +1334,11 @@ void pmap_growkernel(vm_offset_t addr) { - int s; vm_paddr_t paddr; vm_page_t nkpg; pd_entry_t *pde, newpdir; pdp_entry_t newpdp; - s = splhigh(); mtx_assert(&kernel_map->system_mtx, MA_OWNED); if (kernel_vm_end == 0) { kernel_vm_end = KERNBASE; @@ -1390,7 +1386,6 @@ kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1); } - splx(s); } @@ -1439,9 +1434,7 @@ { pv_entry_t pv; int rtval; - int s; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->md.pv_list_count < pmap->pm_stats.resident_count) { TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { @@ -1467,7 +1460,6 @@ free_pv_entry(pv); } - splx(s); return rtval; } @@ -1479,10 +1471,8 @@ pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t mpte, vm_page_t m) { - int s; pv_entry_t pv; - s = splvm(); pv = get_pv_entry(); pv->pv_va = va; pv->pv_pmap = pmap; @@ -1494,7 +1484,6 @@ m->md.pv_list_count++; vm_page_unlock_queues(); - splx(s); } /* @@ -1674,7 +1663,6 @@ { register pv_entry_t pv; pt_entry_t *pte, tpte; - int s; #if defined(PMAP_DIAGNOSTIC) /* @@ -1686,7 +1674,6 @@ } #endif mtx_assert(&vm_page_queue_mtx, MA_OWNED); - s = splvm(); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { pv->pv_pmap->pm_stats.resident_count--; pte = pmap_pte(pv->pv_pmap, pv->pv_va); @@ -1718,7 +1705,6 @@ free_pv_entry(pv); } vm_page_flag_clear(m, PG_WRITEABLE); - splx(s); } /* @@ -2411,23 +2397,19 @@ { pv_entry_t pv; int loops = 0; - int s; if (!pmap_initialized || (m->flags & PG_FICTITIOUS)) return FALSE; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { if (pv->pv_pmap == pmap) { - splx(s); return TRUE; } loops++; if (loops >= 16) break; } - splx(s); return (FALSE); } @@ -2448,7 +2430,6 @@ pt_entry_t *pte, tpte; vm_page_t m; pv_entry_t pv, npv; - int s; #ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY if (!curthread || (pmap != vmspace_pmap(curthread->td_proc->p_vmspace))) { @@ -2457,7 +2438,6 @@ } #endif mtx_assert(&vm_page_queue_mtx, MA_OWNED); - s = splvm(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { if (pv->pv_va >= eva || pv->pv_va < sva) { @@ -2517,7 +2497,6 @@ pmap_unuse_pt(pv->pv_pmap, pv->pv_va, pv->pv_ptem); free_pv_entry(pv); } - splx(s); pmap_invalidate_all(pmap); } @@ -2532,12 +2511,10 @@ { pv_entry_t pv; pt_entry_t *pte; - int s; if (!pmap_initialized || (m->flags & PG_FICTITIOUS)) return FALSE; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { /* @@ -2555,11 +2532,9 @@ #endif pte = pmap_pte(pv->pv_pmap, pv->pv_va); if (*pte & PG_M) { - splx(s); return TRUE; } } - splx(s); return (FALSE); } @@ -2592,13 +2567,11 @@ { register pv_entry_t pv; pt_entry_t pbits, *pte; - int s; if (!pmap_initialized || (m->flags & PG_FICTITIOUS) || (bit == PG_RW && (m->flags & PG_WRITEABLE) == 0)) return; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); /* * Loop over all current mappings setting/clearing as appropos If @@ -2636,7 +2609,6 @@ } if (bit == PG_RW) vm_page_flag_clear(m, PG_WRITEABLE); - splx(s); } /* @@ -2674,13 +2646,11 @@ register pv_entry_t pv, pvf, pvn; pt_entry_t *pte; pt_entry_t v; - int s; int rtval = 0; if (!pmap_initialized || (m->flags & PG_FICTITIOUS)) return (rtval); - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { @@ -2709,7 +2679,6 @@ } } while ((pv = pvn) != NULL && pv != pvf); } - splx(s); return (rtval); } ==== //depot/projects/netperf_socket/sys/dev/esp/ncr53c9x.c#4 (text+ko) ==== @@ -104,7 +104,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/esp/ncr53c9x.c,v 1.4 2004/06/13 09:08:44 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/esp/ncr53c9x.c,v 1.5 2004/06/13 18:45:57 scottl Exp $"); #include #include @@ -667,7 +667,7 @@ * always possible that the interrupt may never happen. */ ecb->ccb->ccb_h.timeout_ch = - timeout(ncr53c9x_timeout, sc, mstohz(ecb->timeout)); + timeout(ncr53c9x_timeout, ecb, mstohz(ecb->timeout)); /* * The docs say the target register is never reset, and I @@ -1217,7 +1217,7 @@ lun = ccb->ccb_h.target_lun; li = TINFO_LUN(ti, lun); - untimeout(ncr53c9x_timeout, sc, ccb->ccb_h.timeout_ch); + untimeout(ncr53c9x_timeout, ecb, ccb->ccb_h.timeout_ch); /* * Now, if we've come here with no error code, i.e. we've kept the @@ -2331,7 +2331,7 @@ goto reset; } printf("sending REQUEST SENSE\n"); - untimeout(ncr53c9x_timeout, sc, + untimeout(ncr53c9x_timeout, ecb, ecb->ccb->ccb_h.timeout_ch); ncr53c9x_sense(sc, ecb); goto out; @@ -2400,7 +2400,7 @@ */ if (sc->sc_state == NCR_SELECTING) { NCR_INTS(("backoff selector ")); - untimeout(ncr53c9x_timeout, sc, + untimeout(ncr53c9x_timeout, ecb, ecb->ccb->ccb_h.timeout_ch); ncr53c9x_dequeue(sc, ecb); TAILQ_INSERT_HEAD(&sc->ready_list, ecb, chain); @@ -2855,7 +2855,7 @@ * Reschedule timeout. */ ecb->ccb->ccb_h.timeout_ch = - timeout(ncr53c9x_timeout, sc, mstohz(ecb->timeout)); + timeout(ncr53c9x_timeout, ecb, mstohz(ecb->timeout)); } else { /* * Just leave the command where it is. ==== //depot/projects/netperf_socket/sys/net/if_fwsubr.c#2 (text+ko) ==== @@ -11,10 +11,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -31,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/net/if_fwsubr.c,v 1.1 2004/06/13 10:54:35 dfr Exp $ + * $FreeBSD: src/sys/net/if_fwsubr.c,v 1.2 2004/06/13 19:15:44 dfr Exp $ */ #include "opt_inet.h" From owner-p4-projects@FreeBSD.ORG Sun Jun 13 20:26:27 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA6C716A4D1; Sun, 13 Jun 2004 20:26:26 +0000 (GMT) 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 94EB916A4CE for ; Sun, 13 Jun 2004 20:26:26 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 78B8943D46 for ; Sun, 13 Jun 2004 20:26:26 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DKQIGA045530 for ; Sun, 13 Jun 2004 20:26:18 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DKQI97045527 for perforce@freebsd.org; Sun, 13 Jun 2004 20:26:18 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 20:26:18 GMT Message-Id: <200406132026.i5DKQI97045527@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 54852 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, 13 Jun 2004 20:26:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=54852 Change 54852 by marcel@marcel_nfs on 2004/06/13 20:25:47 Add prototype for db_set_variable. Affected files ... .. //depot/projects/gdb/sys/ddb/ddb.h#8 edit Differences ... ==== //depot/projects/gdb/sys/ddb/ddb.h#8 (text+ko) ==== @@ -100,6 +100,7 @@ /* machine-dependent */ int db_readline(char *lstart, int lsize); void db_restart_at_pc(boolean_t watchpt); +int db_set_variable(db_expr_t value); void db_set_watchpoints(void); void db_setup_paging(db_page_calloutfcn_t *callout, void *arg, int maxlines); From owner-p4-projects@FreeBSD.ORG Sun Jun 13 20:29:31 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D9C8016A4D1; Sun, 13 Jun 2004 20:29:30 +0000 (GMT) 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 B344616A4CE for ; Sun, 13 Jun 2004 20:29:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 98A9E43D2F for ; Sun, 13 Jun 2004 20:29:30 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DKSMJW045617 for ; Sun, 13 Jun 2004 20:28:22 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DKSLSd045614 for perforce@freebsd.org; Sun, 13 Jun 2004 20:28:21 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 20:28:21 GMT Message-Id: <200406132028.i5DKSLSd045614@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 54854 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, 13 Jun 2004 20:29:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=54854 Change 54854 by marcel@marcel_nfs on 2004/06/13 20:28:17 o KNFify db_variables.c o Change prototype for db_read_variable. o Make db_write_variable and db_set_variable usable. Affected files ... .. //depot/projects/gdb/sys/ddb/db_variables.c#2 edit .. //depot/projects/gdb/sys/ddb/db_variables.h#2 edit Differences ... ==== //depot/projects/gdb/sys/ddb/db_variables.c#2 (text+ko) ==== @@ -39,11 +39,6 @@ #include static int db_find_variable(struct db_variable **varp); -static void db_write_variable(struct db_variable *, db_expr_t *); - -#ifdef notused -static int db_set_variable(db_expr_t value); -#endif static struct db_variable db_vars[] = { { "radix", &db_radix, FCN_NULL }, @@ -51,123 +46,107 @@ { "maxwidth", &db_max_width, FCN_NULL }, { "tabstops", &db_tab_stop_width, FCN_NULL }, }; -static struct db_variable *db_evars = - db_vars + sizeof(db_vars)/sizeof(db_vars[0]); +static struct db_variable *db_evars = + db_vars + sizeof(db_vars)/sizeof(db_vars[0]); static int -db_find_variable(varp) - struct db_variable **varp; +db_find_variable(struct db_variable **varp) { - int t; struct db_variable *vp; + int t; t = db_read_token(); if (t == tIDENT) { - for (vp = db_vars; vp < db_evars; vp++) { - if (!strcmp(db_tok_string, vp->name)) { - *varp = vp; - return (1); + for (vp = db_vars; vp < db_evars; vp++) { + if (!strcmp(db_tok_string, vp->name)) { + *varp = vp; + return (1); + } } - } - for (vp = db_regs; vp < db_eregs; vp++) { - if (!strcmp(db_tok_string, vp->name)) { - *varp = vp; - return (1); + for (vp = db_regs; vp < db_eregs; vp++) { + if (!strcmp(db_tok_string, vp->name)) { + *varp = vp; + return (1); + } } - } } db_error("Unknown variable\n"); return (0); } int -db_get_variable(valuep) - db_expr_t *valuep; +db_get_variable(db_expr_t *valuep) { struct db_variable *vp; if (!db_find_variable(&vp)) - return (0); + return (0); - db_read_variable(vp, valuep); - - return (1); + return (db_read_variable(vp, valuep)); } -#ifdef notused -static int -db_set_variable(value) - db_expr_t value; +int +db_set_variable(db_expr_t value) { struct db_variable *vp; if (!db_find_variable(&vp)) - return (0); + return (0); - db_write_variable(vp, &value); - - return (1); + return (db_write_variable(vp, value)); } -#endif -void -db_read_variable(vp, valuep) - struct db_variable *vp; - db_expr_t *valuep; +int +db_read_variable(struct db_variable *vp, db_expr_t *valuep) { - db_varfcn_t *func = vp->fcn; + db_varfcn_t *func = vp->fcn; - if (func == FCN_NULL) - *valuep = *(vp->valuep); - else - (*func)(vp, valuep, DB_VAR_GET); + if (func == FCN_NULL) { + *valuep = *(vp->valuep); + return (1); + } + return ((*func)(vp, valuep, DB_VAR_GET)); } -static void -db_write_variable(vp, valuep) - struct db_variable *vp; - db_expr_t *valuep; +int +db_write_variable(struct db_variable *vp, db_expr_t value) { - db_varfcn_t *func = vp->fcn; + db_varfcn_t *func = vp->fcn; - if (func == FCN_NULL) - *(vp->valuep) = *valuep; - else - (*func)(vp, valuep, DB_VAR_SET); + if (func == FCN_NULL) { + *(vp->valuep) = value; + return (1); + } + return ((*func)(vp, &value, DB_VAR_SET)); } void -db_set_cmd(dummy1, dummy2, dummy3, dummy4) - db_expr_t dummy1; - boolean_t dummy2; - db_expr_t dummy3; - char * dummy4; +db_set_cmd(db_expr_t dummy1, boolean_t dummy2, db_expr_t dummy3, char *dummy4) { - db_expr_t value; struct db_variable *vp; - int t; + db_expr_t value; + int t; t = db_read_token(); if (t != tDOLLAR) { - db_error("Unknown variable\n"); - return; + db_error("Unknown variable\n"); + return; } if (!db_find_variable(&vp)) { - db_error("Unknown variable\n"); - return; + db_error("Unknown variable\n"); + return; } t = db_read_token(); if (t != tEQ) - db_unread_token(t); + db_unread_token(t); if (!db_expression(&value)) { - db_error("No value\n"); - return; + db_error("No value\n"); + return; } - if (db_read_token() != tEOL) { - db_error("?\n"); - } + if (db_read_token() != tEOL) + db_error("?\n"); - db_write_variable(vp, &value); + db_write_variable(vp, value); } ==== //depot/projects/gdb/sys/ddb/db_variables.h#2 (text+ko) ==== @@ -52,6 +52,7 @@ extern struct db_variable db_regs[]; /* machine registers */ extern struct db_variable *db_eregs; -void db_read_variable(struct db_variable *, db_expr_t *); +int db_read_variable(struct db_variable *, db_expr_t *); +int db_write_variable(struct db_variable *, db_expr_t); #endif /* _!DDB_DB_VARIABLES_H_ */ From owner-p4-projects@FreeBSD.ORG Sun Jun 13 20:31:14 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9546F16A4D1; Sun, 13 Jun 2004 20:31:14 +0000 (GMT) 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 4F92B16A4CE for ; Sun, 13 Jun 2004 20:31:14 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E8F343D53 for ; Sun, 13 Jun 2004 20:31:14 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DKUPL5045735 for ; Sun, 13 Jun 2004 20:30:25 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DKUPxG045732 for perforce@freebsd.org; Sun, 13 Jun 2004 20:30:25 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 20:30:25 GMT Message-Id: <200406132030.i5DKUPxG045732@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 54855 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, 13 Jun 2004 20:31:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=54855 Change 54855 by marcel@marcel_nfs on 2004/06/13 20:29:36 The variable access functions are supposed to return 1 on success and 0 only on failure. Fix them. Affected files ... .. //depot/projects/gdb/sys/i386/i386/db_trace.c#9 edit Differences ... ==== //depot/projects/gdb/sys/i386/i386/db_trace.c#9 (text+ko) ==== @@ -101,7 +101,7 @@ *valuep = r ## reg (); \ else \ load_ ## reg (*valuep); \ - return (0); \ + return (1); \ } DB_DRX_FUNC(dr0) @@ -125,32 +125,43 @@ { int *reg; + if (kdb_frame == NULL) + return (0); + reg = (int *)((uintptr_t)kdb_frame + (db_expr_t)vp->valuep); if (op == DB_VAR_GET) *valuep = *reg; else *reg = *valuep; - return (0); + return (1); } static int db_esp(struct db_variable *vp, db_expr_t *valuep, int op) { + + if (kdb_frame == NULL) + return (0); + if (op == DB_VAR_GET) *valuep = get_esp(kdb_frame); else if (ISPL(kdb_frame->tf_cs)) kdb_frame->tf_esp = *valuep; - return (0); + return (1); } static int db_ss(struct db_variable *vp, db_expr_t *valuep, int op) { + + if (kdb_frame == NULL) + return (0); + if (op == DB_VAR_GET) *valuep = (ISPL(kdb_frame->tf_cs)) ? kdb_frame->tf_ss : rss(); else if (ISPL(kdb_frame->tf_cs)) kdb_frame->tf_ss = *valuep; - return (0); + return (1); } /* From owner-p4-projects@FreeBSD.ORG Sun Jun 13 21:37:26 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E21F16A4D1; Sun, 13 Jun 2004 21:37:25 +0000 (GMT) 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 5742C16A4CE for ; Sun, 13 Jun 2004 21:37:25 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E65843D45 for ; Sun, 13 Jun 2004 21:37:25 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5DLZmQ2066971 for ; Sun, 13 Jun 2004 21:35:48 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5DLZmGa066968 for perforce@freebsd.org; Sun, 13 Jun 2004 21:35:48 GMT (envelope-from marcel@freebsd.org) Date: Sun, 13 Jun 2004 21:35:48 GMT Message-Id: <200406132135.i5DLZmGa066968@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 54862 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, 13 Jun 2004 21:37:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=54862 Change 54862 by marcel@marcel_nfs on 2004/06/13 21:34:57 Flip ia64 over from working on the trapframe to working on the PCB. A new function, called unw_create_from_pcb, has been added to start a backtrace given a PCB. The previous unw_create has been renamed to unw_create_from_frame. unw_create_from_pcb is not entirely correct yet, but I wanted to get this submitted first. Affected files ... .. //depot/projects/gdb/sys/ia64/ia64/db_interface.c#8 edit .. //depot/projects/gdb/sys/ia64/ia64/db_trace.c#3 edit .. //depot/projects/gdb/sys/ia64/ia64/dump_machdep.c#3 edit .. //depot/projects/gdb/sys/ia64/ia64/interrupt.c#5 edit .. //depot/projects/gdb/sys/ia64/ia64/trap.c#10 edit .. //depot/projects/gdb/sys/ia64/ia64/unwind.c#4 edit .. //depot/projects/gdb/sys/ia64/include/db_machdep.h#4 edit .. //depot/projects/gdb/sys/ia64/include/kdb.h#4 edit .. //depot/projects/gdb/sys/ia64/include/unwind.h#2 edit Differences ... ==== //depot/projects/gdb/sys/ia64/ia64/db_interface.c#8 (text+ko) ==== @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -62,196 +63,217 @@ #define SLOT_MASK ((1ULL << SLOT_BITS) - 1ULL) #define SLOT_SHIFT(i) (TMPL_BITS+((i)<<3)+(i)) -static int db_get_rse_reg(struct db_variable *vp, db_expr_t *valuep, int op); -static int db_get_ip_reg(struct db_variable *vp, db_expr_t *valuep, int op); +static db_varfcn_t db_frame; +static db_varfcn_t db_getrse; +static db_varfcn_t db_getip; +#define DB_OFFSET(x) (db_expr_t *)offsetof(struct trapframe, x) struct db_variable db_regs[] = { - /* Misc control/app registers */ -#define DB_MISC_REGS 13 /* make sure this is correct */ + {"ip", NULL, db_getip}, + {"cr.ifs", DB_OFFSET(tf_special.cfm), db_frame}, + {"cr.ifa", DB_OFFSET(tf_special.ifa), db_frame}, + {"ar.bspstore", DB_OFFSET(tf_special.bspstore), db_frame}, + {"ndirty", DB_OFFSET(tf_special.ndirty), db_frame}, + {"rp", DB_OFFSET(tf_special.rp), db_frame}, + {"ar.pfs", DB_OFFSET(tf_special.pfs), db_frame}, + {"psr", DB_OFFSET(tf_special.psr), db_frame}, + {"cr.isr", DB_OFFSET(tf_special.isr), db_frame}, + {"pr", DB_OFFSET(tf_special.pr), db_frame}, + {"ar.rsc", DB_OFFSET(tf_special.rsc), db_frame}, + {"ar.rnat", DB_OFFSET(tf_special.rnat), db_frame}, + {"ar.unat", DB_OFFSET(tf_special.unat), db_frame}, + {"ar.fpsr", DB_OFFSET(tf_special.fpsr), db_frame}, + {"gp", DB_OFFSET(tf_special.gp), db_frame}, + {"sp", DB_OFFSET(tf_special.sp), db_frame}, + {"tp", DB_OFFSET(tf_special.tp), db_frame}, + {"b6", DB_OFFSET(tf_scratch.br6), db_frame}, + {"b7", DB_OFFSET(tf_scratch.br7), db_frame}, + {"r2", DB_OFFSET(tf_scratch.gr2), db_frame}, + {"r3", DB_OFFSET(tf_scratch.gr3), db_frame}, + {"r8", DB_OFFSET(tf_scratch.gr8), db_frame}, + {"r9", DB_OFFSET(tf_scratch.gr9), db_frame}, + {"r10", DB_OFFSET(tf_scratch.gr10), db_frame}, + {"r11", DB_OFFSET(tf_scratch.gr11), db_frame}, + {"r14", DB_OFFSET(tf_scratch.gr14), db_frame}, + {"r15", DB_OFFSET(tf_scratch.gr15), db_frame}, + {"r16", DB_OFFSET(tf_scratch.gr16), db_frame}, + {"r17", DB_OFFSET(tf_scratch.gr17), db_frame}, + {"r18", DB_OFFSET(tf_scratch.gr18), db_frame}, + {"r19", DB_OFFSET(tf_scratch.gr19), db_frame}, + {"r20", DB_OFFSET(tf_scratch.gr20), db_frame}, + {"r21", DB_OFFSET(tf_scratch.gr21), db_frame}, + {"r22", DB_OFFSET(tf_scratch.gr22), db_frame}, + {"r23", DB_OFFSET(tf_scratch.gr23), db_frame}, + {"r24", DB_OFFSET(tf_scratch.gr24), db_frame}, + {"r25", DB_OFFSET(tf_scratch.gr25), db_frame}, + {"r26", DB_OFFSET(tf_scratch.gr26), db_frame}, + {"r27", DB_OFFSET(tf_scratch.gr27), db_frame}, + {"r28", DB_OFFSET(tf_scratch.gr28), db_frame}, + {"r29", DB_OFFSET(tf_scratch.gr29), db_frame}, + {"r30", DB_OFFSET(tf_scratch.gr30), db_frame}, + {"r31", DB_OFFSET(tf_scratch.gr31), db_frame}, + {"r32", (db_expr_t*)0, db_getrse}, + {"r33", (db_expr_t*)1, db_getrse}, + {"r34", (db_expr_t*)2, db_getrse}, + {"r35", (db_expr_t*)3, db_getrse}, + {"r36", (db_expr_t*)4, db_getrse}, + {"r37", (db_expr_t*)5, db_getrse}, + {"r38", (db_expr_t*)6, db_getrse}, + {"r39", (db_expr_t*)7, db_getrse}, + {"r40", (db_expr_t*)8, db_getrse}, + {"r41", (db_expr_t*)9, db_getrse}, + {"r42", (db_expr_t*)10, db_getrse}, + {"r43", (db_expr_t*)11, db_getrse}, + {"r44", (db_expr_t*)12, db_getrse}, + {"r45", (db_expr_t*)13, db_getrse}, + {"r46", (db_expr_t*)14, db_getrse}, + {"r47", (db_expr_t*)15, db_getrse}, + {"r48", (db_expr_t*)16, db_getrse}, + {"r49", (db_expr_t*)17, db_getrse}, + {"r50", (db_expr_t*)18, db_getrse}, + {"r51", (db_expr_t*)19, db_getrse}, + {"r52", (db_expr_t*)20, db_getrse}, + {"r53", (db_expr_t*)21, db_getrse}, + {"r54", (db_expr_t*)22, db_getrse}, + {"r55", (db_expr_t*)23, db_getrse}, + {"r56", (db_expr_t*)24, db_getrse}, + {"r57", (db_expr_t*)25, db_getrse}, + {"r58", (db_expr_t*)26, db_getrse}, + {"r59", (db_expr_t*)27, db_getrse}, + {"r60", (db_expr_t*)28, db_getrse}, + {"r61", (db_expr_t*)29, db_getrse}, + {"r62", (db_expr_t*)30, db_getrse}, + {"r63", (db_expr_t*)31, db_getrse}, + {"r64", (db_expr_t*)32, db_getrse}, + {"r65", (db_expr_t*)33, db_getrse}, + {"r66", (db_expr_t*)34, db_getrse}, + {"r67", (db_expr_t*)35, db_getrse}, + {"r68", (db_expr_t*)36, db_getrse}, + {"r69", (db_expr_t*)37, db_getrse}, + {"r70", (db_expr_t*)38, db_getrse}, + {"r71", (db_expr_t*)39, db_getrse}, + {"r72", (db_expr_t*)40, db_getrse}, + {"r73", (db_expr_t*)41, db_getrse}, + {"r74", (db_expr_t*)42, db_getrse}, + {"r75", (db_expr_t*)43, db_getrse}, + {"r76", (db_expr_t*)44, db_getrse}, + {"r77", (db_expr_t*)45, db_getrse}, + {"r78", (db_expr_t*)46, db_getrse}, + {"r79", (db_expr_t*)47, db_getrse}, + {"r80", (db_expr_t*)48, db_getrse}, + {"r81", (db_expr_t*)49, db_getrse}, + {"r82", (db_expr_t*)50, db_getrse}, + {"r83", (db_expr_t*)51, db_getrse}, + {"r84", (db_expr_t*)52, db_getrse}, + {"r85", (db_expr_t*)53, db_getrse}, + {"r86", (db_expr_t*)54, db_getrse}, + {"r87", (db_expr_t*)55, db_getrse}, + {"r88", (db_expr_t*)56, db_getrse}, + {"r89", (db_expr_t*)57, db_getrse}, + {"r90", (db_expr_t*)58, db_getrse}, + {"r91", (db_expr_t*)59, db_getrse}, + {"r92", (db_expr_t*)60, db_getrse}, + {"r93", (db_expr_t*)61, db_getrse}, + {"r94", (db_expr_t*)62, db_getrse}, + {"r95", (db_expr_t*)63, db_getrse}, + {"r96", (db_expr_t*)64, db_getrse}, + {"r97", (db_expr_t*)65, db_getrse}, + {"r98", (db_expr_t*)66, db_getrse}, + {"r99", (db_expr_t*)67, db_getrse}, + {"r100", (db_expr_t*)68, db_getrse}, + {"r101", (db_expr_t*)69, db_getrse}, + {"r102", (db_expr_t*)70, db_getrse}, + {"r103", (db_expr_t*)71, db_getrse}, + {"r104", (db_expr_t*)72, db_getrse}, + {"r105", (db_expr_t*)73, db_getrse}, + {"r106", (db_expr_t*)74, db_getrse}, + {"r107", (db_expr_t*)75, db_getrse}, + {"r108", (db_expr_t*)76, db_getrse}, + {"r109", (db_expr_t*)77, db_getrse}, + {"r110", (db_expr_t*)78, db_getrse}, + {"r111", (db_expr_t*)79, db_getrse}, + {"r112", (db_expr_t*)80, db_getrse}, + {"r113", (db_expr_t*)81, db_getrse}, + {"r114", (db_expr_t*)82, db_getrse}, + {"r115", (db_expr_t*)83, db_getrse}, + {"r116", (db_expr_t*)84, db_getrse}, + {"r117", (db_expr_t*)85, db_getrse}, + {"r118", (db_expr_t*)86, db_getrse}, + {"r119", (db_expr_t*)87, db_getrse}, + {"r120", (db_expr_t*)88, db_getrse}, + {"r121", (db_expr_t*)89, db_getrse}, + {"r122", (db_expr_t*)90, db_getrse}, + {"r123", (db_expr_t*)91, db_getrse}, + {"r124", (db_expr_t*)92, db_getrse}, + {"r125", (db_expr_t*)93, db_getrse}, + {"r126", (db_expr_t*)94, db_getrse}, + {"r127", (db_expr_t*)95, db_getrse}, +}; +struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); - {"ip", NULL, db_get_ip_reg}, - {"psr", (db_expr_t*) &ddb_regs.tf_special.psr, FCN_NULL}, - {"cr.isr", (db_expr_t*) &ddb_regs.tf_special.isr, FCN_NULL}, - {"cr.ifa", (db_expr_t*) &ddb_regs.tf_special.ifa, FCN_NULL}, - {"pr", (db_expr_t*) &ddb_regs.tf_special.pr, FCN_NULL}, - {"ar.rsc", (db_expr_t*) &ddb_regs.tf_special.rsc, FCN_NULL}, - {"ar.pfs", (db_expr_t*) &ddb_regs.tf_special.pfs, FCN_NULL}, - {"cr.ifs", (db_expr_t*) &ddb_regs.tf_special.cfm, FCN_NULL}, - {"ar.bspstore", (db_expr_t*) &ddb_regs.tf_special.bspstore, FCN_NULL}, - {"ndirty", (db_expr_t*) &ddb_regs.tf_special.ndirty, FCN_NULL}, - {"ar.rnat", (db_expr_t*) &ddb_regs.tf_special.rnat, FCN_NULL}, - {"ar.unat", (db_expr_t*) &ddb_regs.tf_special.unat, FCN_NULL}, - {"ar.fpsr", (db_expr_t*) &ddb_regs.tf_special.fpsr, FCN_NULL}, +static int +db_frame(struct db_variable *vp, db_expr_t *valuep, int op) +{ + uint64_t *reg; - /* Branch registers */ - {"rp", (db_expr_t*) &ddb_regs.tf_special.rp, FCN_NULL}, - /* b1, b2, b3, b4, b5 are preserved */ - {"b6", (db_expr_t*) &ddb_regs.tf_scratch.br6, FCN_NULL}, - {"b7", (db_expr_t*) &ddb_regs.tf_scratch.br7, FCN_NULL}, - - /* Static registers */ - {"gp", (db_expr_t*) &ddb_regs.tf_special.gp, FCN_NULL}, - {"r2", (db_expr_t*) &ddb_regs.tf_scratch.gr2, FCN_NULL}, - {"r3", (db_expr_t*) &ddb_regs.tf_scratch.gr3, FCN_NULL}, - {"r8", (db_expr_t*) &ddb_regs.tf_scratch.gr8, FCN_NULL}, - {"r9", (db_expr_t*) &ddb_regs.tf_scratch.gr9, FCN_NULL}, - {"r10", (db_expr_t*) &ddb_regs.tf_scratch.gr10, FCN_NULL}, - {"r11", (db_expr_t*) &ddb_regs.tf_scratch.gr11, FCN_NULL}, - {"sp", (db_expr_t*) &ddb_regs.tf_special.sp, FCN_NULL}, - {"tp", (db_expr_t*) &ddb_regs.tf_special.tp, FCN_NULL}, - {"r14", (db_expr_t*) &ddb_regs.tf_scratch.gr14, FCN_NULL}, - {"r15", (db_expr_t*) &ddb_regs.tf_scratch.gr15, FCN_NULL}, - {"r16", (db_expr_t*) &ddb_regs.tf_scratch.gr16, FCN_NULL}, - {"r17", (db_expr_t*) &ddb_regs.tf_scratch.gr17, FCN_NULL}, - {"r18", (db_expr_t*) &ddb_regs.tf_scratch.gr18, FCN_NULL}, - {"r19", (db_expr_t*) &ddb_regs.tf_scratch.gr19, FCN_NULL}, - {"r20", (db_expr_t*) &ddb_regs.tf_scratch.gr20, FCN_NULL}, - {"r21", (db_expr_t*) &ddb_regs.tf_scratch.gr21, FCN_NULL}, - {"r22", (db_expr_t*) &ddb_regs.tf_scratch.gr22, FCN_NULL}, - {"r23", (db_expr_t*) &ddb_regs.tf_scratch.gr23, FCN_NULL}, - {"r24", (db_expr_t*) &ddb_regs.tf_scratch.gr24, FCN_NULL}, - {"r25", (db_expr_t*) &ddb_regs.tf_scratch.gr25, FCN_NULL}, - {"r26", (db_expr_t*) &ddb_regs.tf_scratch.gr26, FCN_NULL}, - {"r27", (db_expr_t*) &ddb_regs.tf_scratch.gr27, FCN_NULL}, - {"r28", (db_expr_t*) &ddb_regs.tf_scratch.gr28, FCN_NULL}, - {"r29", (db_expr_t*) &ddb_regs.tf_scratch.gr29, FCN_NULL}, - {"r30", (db_expr_t*) &ddb_regs.tf_scratch.gr30, FCN_NULL}, - {"r31", (db_expr_t*) &ddb_regs.tf_scratch.gr31, FCN_NULL}, - - /* Stacked registers */ - {"r32", (db_expr_t*) 32, db_get_rse_reg}, - {"r33", (db_expr_t*) 33, db_get_rse_reg}, - {"r34", (db_expr_t*) 34, db_get_rse_reg}, - {"r35", (db_expr_t*) 35, db_get_rse_reg}, - {"r36", (db_expr_t*) 36, db_get_rse_reg}, - {"r37", (db_expr_t*) 37, db_get_rse_reg}, - {"r38", (db_expr_t*) 38, db_get_rse_reg}, - {"r39", (db_expr_t*) 39, db_get_rse_reg}, - {"r40", (db_expr_t*) 40, db_get_rse_reg}, - {"r41", (db_expr_t*) 41, db_get_rse_reg}, - {"r42", (db_expr_t*) 42, db_get_rse_reg}, - {"r43", (db_expr_t*) 43, db_get_rse_reg}, - {"r44", (db_expr_t*) 44, db_get_rse_reg}, - {"r45", (db_expr_t*) 45, db_get_rse_reg}, - {"r46", (db_expr_t*) 46, db_get_rse_reg}, - {"r47", (db_expr_t*) 47, db_get_rse_reg}, - {"r48", (db_expr_t*) 48, db_get_rse_reg}, - {"r49", (db_expr_t*) 49, db_get_rse_reg}, - {"r50", (db_expr_t*) 50, db_get_rse_reg}, - {"r51", (db_expr_t*) 51, db_get_rse_reg}, - {"r52", (db_expr_t*) 52, db_get_rse_reg}, - {"r53", (db_expr_t*) 53, db_get_rse_reg}, - {"r54", (db_expr_t*) 54, db_get_rse_reg}, - {"r55", (db_expr_t*) 55, db_get_rse_reg}, - {"r56", (db_expr_t*) 56, db_get_rse_reg}, - {"r57", (db_expr_t*) 57, db_get_rse_reg}, - {"r58", (db_expr_t*) 58, db_get_rse_reg}, - {"r59", (db_expr_t*) 59, db_get_rse_reg}, - {"r60", (db_expr_t*) 60, db_get_rse_reg}, - {"r61", (db_expr_t*) 61, db_get_rse_reg}, - {"r62", (db_expr_t*) 62, db_get_rse_reg}, - {"r63", (db_expr_t*) 63, db_get_rse_reg}, - {"r64", (db_expr_t*) 64, db_get_rse_reg}, - {"r65", (db_expr_t*) 65, db_get_rse_reg}, - {"r66", (db_expr_t*) 66, db_get_rse_reg}, - {"r67", (db_expr_t*) 67, db_get_rse_reg}, - {"r68", (db_expr_t*) 68, db_get_rse_reg}, - {"r69", (db_expr_t*) 69, db_get_rse_reg}, - {"r70", (db_expr_t*) 70, db_get_rse_reg}, - {"r71", (db_expr_t*) 71, db_get_rse_reg}, - {"r72", (db_expr_t*) 72, db_get_rse_reg}, - {"r73", (db_expr_t*) 73, db_get_rse_reg}, - {"r74", (db_expr_t*) 74, db_get_rse_reg}, - {"r75", (db_expr_t*) 75, db_get_rse_reg}, - {"r76", (db_expr_t*) 76, db_get_rse_reg}, - {"r77", (db_expr_t*) 77, db_get_rse_reg}, - {"r78", (db_expr_t*) 78, db_get_rse_reg}, - {"r79", (db_expr_t*) 79, db_get_rse_reg}, - {"r80", (db_expr_t*) 80, db_get_rse_reg}, - {"r81", (db_expr_t*) 81, db_get_rse_reg}, - {"r82", (db_expr_t*) 82, db_get_rse_reg}, - {"r83", (db_expr_t*) 83, db_get_rse_reg}, - {"r84", (db_expr_t*) 84, db_get_rse_reg}, - {"r85", (db_expr_t*) 85, db_get_rse_reg}, - {"r86", (db_expr_t*) 86, db_get_rse_reg}, - {"r87", (db_expr_t*) 87, db_get_rse_reg}, - {"r88", (db_expr_t*) 88, db_get_rse_reg}, - {"r89", (db_expr_t*) 89, db_get_rse_reg}, - {"r90", (db_expr_t*) 90, db_get_rse_reg}, - {"r91", (db_expr_t*) 91, db_get_rse_reg}, - {"r92", (db_expr_t*) 92, db_get_rse_reg}, - {"r93", (db_expr_t*) 93, db_get_rse_reg}, - {"r94", (db_expr_t*) 94, db_get_rse_reg}, - {"r95", (db_expr_t*) 95, db_get_rse_reg}, - {"r96", (db_expr_t*) 96, db_get_rse_reg}, - {"r97", (db_expr_t*) 97, db_get_rse_reg}, - {"r98", (db_expr_t*) 98, db_get_rse_reg}, - {"r99", (db_expr_t*) 99, db_get_rse_reg}, - {"r100", (db_expr_t*) 100, db_get_rse_reg}, - {"r101", (db_expr_t*) 101, db_get_rse_reg}, - {"r102", (db_expr_t*) 102, db_get_rse_reg}, - {"r103", (db_expr_t*) 103, db_get_rse_reg}, - {"r104", (db_expr_t*) 104, db_get_rse_reg}, - {"r105", (db_expr_t*) 105, db_get_rse_reg}, - {"r106", (db_expr_t*) 106, db_get_rse_reg}, - {"r107", (db_expr_t*) 107, db_get_rse_reg}, - {"r108", (db_expr_t*) 108, db_get_rse_reg}, - {"r109", (db_expr_t*) 109, db_get_rse_reg}, - {"r110", (db_expr_t*) 110, db_get_rse_reg}, - {"r111", (db_expr_t*) 111, db_get_rse_reg}, - {"r112", (db_expr_t*) 112, db_get_rse_reg}, - {"r113", (db_expr_t*) 113, db_get_rse_reg}, - {"r114", (db_expr_t*) 114, db_get_rse_reg}, - {"r115", (db_expr_t*) 115, db_get_rse_reg}, - {"r116", (db_expr_t*) 116, db_get_rse_reg}, - {"r117", (db_expr_t*) 117, db_get_rse_reg}, - {"r118", (db_expr_t*) 118, db_get_rse_reg}, - {"r119", (db_expr_t*) 119, db_get_rse_reg}, - {"r120", (db_expr_t*) 120, db_get_rse_reg}, - {"r121", (db_expr_t*) 121, db_get_rse_reg}, - {"r122", (db_expr_t*) 122, db_get_rse_reg}, - {"r123", (db_expr_t*) 123, db_get_rse_reg}, - {"r124", (db_expr_t*) 124, db_get_rse_reg}, - {"r125", (db_expr_t*) 125, db_get_rse_reg}, - {"r126", (db_expr_t*) 126, db_get_rse_reg}, - {"r127", (db_expr_t*) 127, db_get_rse_reg}, -}; -struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); + if (kdb_frame == NULL) + return (0); + reg = (uint64_t*)((uintptr_t)kdb_frame + (uintptr_t)vp->valuep); + if (op == DB_VAR_GET) + *valuep = *reg; + else + *reg = *valuep; + return (1); +} static int -db_get_rse_reg(struct db_variable *vp, db_expr_t *valuep, int op) +db_getrse(struct db_variable *vp, db_expr_t *valuep, int op) { u_int64_t *reg; uint64_t bsp; int nats, regno, sof; - bsp = ddb_regs.tf_special.bspstore + ddb_regs.tf_special.ndirty; - regno = (db_expr_t)vp->valuep - 32; - sof = (int)(ddb_regs.tf_special.cfm & 0x7f); - nats = (sof - regno + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; + if (kdb_frame == NULL) + return (0); - reg = (void*)(bsp - ((sof - regno + nats) << 3)); + regno = (int)(intptr_t)valuep; + bsp = kdb_frame->tf_special.bspstore + kdb_frame->tf_special.ndirty; + sof = (int)(kdb_frame->tf_special.cfm & 0x7f); - if (regno < sof) { - if (op == DB_VAR_GET) - *valuep = *reg; - else - *reg = *valuep; - } else { - if (op == DB_VAR_GET) - *valuep = 0xdeadbeefdeadbeef; - } + if (regno >= sof) + return (0); - return (0); + nats = (sof - regno + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; + reg = (void*)(bsp - ((sof - regno + nats) << 3)); + if (op == DB_VAR_GET) + *valuep = *reg; + else + *reg = *valuep; + return (1); } static int -db_get_ip_reg(struct db_variable *vp, db_expr_t *valuep, int op) +db_getip(struct db_variable *vp, db_expr_t *valuep, int op) { - /* Read only */ - if (op == DB_VAR_GET) - *valuep = PC_REGS(DDB_REGS); - return 0; + u_long iip, slot; + + if (kdb_frame == NULL) + return (0); + + if (op == DB_VAR_GET) { + iip = kdb_frame->tf_special.iip; + slot = (kdb_frame->tf_special.psr >> 41) & 3; + *valuep = iip + slot; + } else { + iip = *valuep & ~0xf; + slot = *valuep & 0xf; + if (slot > 2) + return (0); + kdb_frame->tf_special.iip = iip; + kdb_frame->tf_special.psr &= ~IA64_PSR_RI; + kdb_frame->tf_special.psr |= slot << 41; + } + return (1); } /* @@ -298,41 +320,6 @@ return (ret); } -u_long -db_register_value(db_regs_t *regs, int regno) -{ - uint64_t *rsp; - uint64_t bsp; - int nats, sof; - - if (regno == 0) - return (0); - if (regno == 1) - return (regs->tf_special.gp); - if (regno >= 2 && regno <= 3) - return ((®s->tf_scratch.gr2)[regno - 2]); - if (regno >= 8 && regno <= 11) - return ((®s->tf_scratch.gr8)[regno - 8]); - if (regno == 12) - return (regs->tf_special.sp); - if (regno == 13) - return (regs->tf_special.tp); - if (regno >= 14 && regno <= 31) - return ((®s->tf_scratch.gr14)[regno - 14]); - - sof = (int)(regs->tf_special.cfm & 0x7f); - if (regno >= 32 && regno < sof + 32) { - bsp = regs->tf_special.bspstore + regs->tf_special.ndirty; - regno -= 32; - nats = (sof - regno + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; - rsp = (void*)(bsp - ((sof - regno + nats) << 3)); - return (*rsp); - } - - db_printf(" **** STRANGE REGISTER NUMBER %d **** ", regno); - return (0); -} - void db_bkpt_write(db_addr_t addr, BKPT_INST_TYPE *storage) { @@ -375,10 +362,13 @@ db_bkpt_skip(void) { - ddb_regs.tf_special.psr += IA64_PSR_RI_1; - if ((ddb_regs.tf_special.psr & IA64_PSR_RI) > IA64_PSR_RI_2) { - ddb_regs.tf_special.psr &= ~IA64_PSR_RI; - ddb_regs.tf_special.iip += 16; + if (kdb_frame == NULL) + return; + + kdb_frame->tf_special.psr += IA64_PSR_RI_1; + if ((kdb_frame->tf_special.psr & IA64_PSR_RI) > IA64_PSR_RI_2) { + kdb_frame->tf_special.psr &= ~IA64_PSR_RI; + kdb_frame->tf_special.iip += 16; } } ==== //depot/projects/gdb/sys/ia64/ia64/db_trace.c#3 (text+ko) ==== @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2003, 2004 Marcel Moolenaar * Copyright (c) 2000-2001 Doug Rabson * All rights reserved. * @@ -31,6 +32,8 @@ #include #include +#include +#include #include #include @@ -40,22 +43,22 @@ #include #include - int db_md_set_watchpoint(db_expr_t addr, db_expr_t size); int db_md_clr_watchpoint(db_expr_t addr, db_expr_t size); void db_md_list_watchpoints(void); static int -db_backtrace(struct thread *td, struct trapframe *tf, int count) +db_backtrace(struct thread *td, struct pcb *pcb, int count) { struct unw_regstate rs; + struct trapframe *tf; const char *name; db_expr_t offset; uint64_t bsp, cfm, ip, pfs, reg, sp; c_db_sym_t sym; int args, error, i; - error = unw_create(&rs, tf); + error = unw_create_from_pcb(&rs, pcb); while (!error && count--) { error = unw_get_cfm(&rs, &cfm); if (!error) @@ -114,7 +117,7 @@ /* XXX ask if we should unwind across the trapframe. */ db_printf("--- trapframe at %p\n", tf); unw_delete(&rs); - error = unw_create(&rs, tf); + error = unw_create_from_frame(&rs, tf); } unw_delete(&rs); @@ -132,21 +135,25 @@ db_printf("Thread %d not found\n", (int)addr); return; } - db_backtrace(td, td->td_last_frame, count); + db_trace_thread(td, count); } void db_trace_self(void) { + struct pcb pcb; - db_backtrace(curthread, NULL, -1); + savectx(&pcb); + db_backtrace(curthread, &pcb, -1); } int db_trace_thread(struct thread *td, int count) { + struct pcb *ctx; - return (db_backtrace(td, td->td_last_frame, count)); + ctx = kdb_thr_ctx(td); + return (db_backtrace(td, ctx, count)); } int ==== //depot/projects/gdb/sys/ia64/ia64/dump_machdep.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2004 Marcel Moolenaar + * Copyright (c) 2002 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,8 +32,6 @@ #include #include #include -#include -#include #include #include #include @@ -54,13 +52,8 @@ typedef int callback_t(EFI_MEMORY_DESCRIPTOR*, int, void*); -extern int osreldate; - static struct kerneldumpheader kdh; static off_t dumplo, fileofs; -static char notenm[] = "FreeBSD"; -static size_t notesz; -static int nthreads; /* Handle buffered writes. */ static char buffer[DEV_BSIZE]; @@ -124,88 +117,10 @@ error = di->dumper(di->priv, buffer, 0, dumplo, DEV_BSIZE); dumplo += DEV_BSIZE; - fragsz = 0; return (error); } static int -note_size(uint64_t *sz) -{ - struct proc *p; - struct thread *t; - - nthreads = 0; - LIST_FOREACH(p, &allproc, p_list) { - FOREACH_THREAD_IN_PROC(p, t) { - nthreads++; - } - } - notesz = sizeof(Elf_Note) + sizeof(notenm) + sizeof(prstatus_t); - notesz *= nthreads; - *sz = MD_ALIGN(notesz); - return (1); -} - -static int -note_hdr(struct dumperinfo *di) -{ - Elf64_Phdr phdr; - int error; - - bzero(&phdr, sizeof(phdr)); - phdr.p_type = PT_NOTE; - phdr.p_offset = fileofs; - phdr.p_filesz = notesz; - - error = buf_write(di, (char*)&phdr, sizeof(phdr)); - fileofs += MD_ALIGN(notesz); - return (error); -} - -static int -note_data(struct dumperinfo *di) -{ - prstatus_t pr; - Elf_Note note; - struct proc *p; - struct thread *t; - int error; - - note.n_namesz = sizeof(notenm); - note.n_descsz = sizeof(pr); - note.n_type = NT_PRSTATUS; - error = 0; - LIST_FOREACH(p, &allproc, p_list) { - FOREACH_THREAD_IN_PROC(p, t) { - error = buf_write(di, (char*)¬e, sizeof(note)); - if (error) - return (error); - error = buf_write(di, notenm, sizeof(notenm)); - if (error) - return (error); - pr.pr_version = PRSTATUS_VERSION; - pr.pr_statussz = sizeof(prstatus_t); - pr.pr_gregsetsz = sizeof(gregset_t); - pr.pr_fpregsetsz = sizeof(fpregset_t); - pr.pr_osreldate = osreldate; - pr.pr_cursig = 0; - pr.pr_pid = t->td_tid; - if (t->td_last_frame != NULL) - t->td_frame = t->td_last_frame; - fill_regs(t, &pr.pr_reg); - error = buf_write(di, (char*)&pr, sizeof(pr)); - if (error) - return (error); - } - } - error = buf_flush(di); - if (error) - return (error); - dumplo += MD_ALIGN(notesz) - DEV_ALIGN(notesz); - return (0); -} - -static int cb_dumpdata(EFI_MEMORY_DESCRIPTOR *mdp, int seqnr, void *arg) { struct dumperinfo *di = (struct dumperinfo*)arg; @@ -220,7 +135,7 @@ pgs = mdp->NumberOfPages; pa = IA64_PHYS_TO_RR7(mdp->PhysicalStart); - printf(" chunk %d: %ld pages ", seqnr + 1, (long)pgs); + printf(" chunk %d: %ld pages ", seqnr, (long)pgs); while (pgs) { sz = (pgs > (DFLTPHYS >> EFI_PAGE_SHIFT)) @@ -324,7 +239,7 @@ ehdr.e_ident[EI_DATA] = ELFDATA2MSB; #endif ehdr.e_ident[EI_VERSION] = EV_CURRENT; - ehdr.e_ident[EI_OSABI] = ELFOSABI_FREEBSD; + ehdr.e_ident[EI_OSABI] = ELFOSABI_STANDALONE; /* XXX big picture? */ ehdr.e_type = ET_CORE; ehdr.e_machine = EM_IA_64; ehdr.e_phoff = sizeof(ehdr); @@ -334,8 +249,8 @@ ehdr.e_shentsize = sizeof(Elf64_Shdr); /* Calculate dump size. */ - ehdr.e_phnum = note_size(&dumpsize); - ehdr.e_phnum += foreach_chunk(cb_size, &dumpsize); + dumpsize = 0L; + ehdr.e_phnum = foreach_chunk(cb_size, &dumpsize); hdrsz = ehdr.e_phoff + ehdr.e_phnum * ehdr.e_phentsize; fileofs = MD_ALIGN(hdrsz); dumpsize += fileofs; @@ -351,8 +266,8 @@ mkdumpheader(&kdh, KERNELDUMP_IA64_VERSION, dumpsize, di->blocksize); - printf("Dumping %llu MB (%d memory chunks; %d threads)\n", - (long long)dumpsize >> 20, ehdr.e_phnum - 1, nthreads); + printf("Dumping %llu MB (%d chunks)\n", (long long)dumpsize >> 20, + ehdr.e_phnum); /* Dump leader */ error = di->dumper(di->priv, &kdh, 0, dumplo, sizeof(kdh)); @@ -365,10 +280,6 @@ if (error) goto fail; - /* Dump note header. */ - error = note_hdr(di); - if (error < 0) - goto fail; /* Dump program headers */ error = foreach_chunk(cb_dumphdr, di); if (error < 0) @@ -377,17 +288,13 @@ /* * All headers are written using blocked I/O, so we know the - * current offset is (still) block aligned. Skip the alignment + * current offset is (still) block aligned. Skip the alignement * in the file to have the segment contents aligned at page * boundary. We cannot use MD_ALIGN on dumplo, because we don't * care and may very well be unaligned within the dump device. */ dumplo += hdrgap; - /* Dump note segment. */ - error = note_data(di); - if (error < 0) - goto fail; /* Dump memory chunks (updates dumplo) */ error = foreach_chunk(cb_dumpdata, di); if (error < 0) ==== //depot/projects/gdb/sys/ia64/ia64/interrupt.c#5 (text+ko) ==== @@ -136,7 +136,6 @@ ia64_set_fpsr(IA64_FPSR_DEFAULT); td = curthread; - td->td_last_frame = tf; atomic_add_int(&td->td_intr_nesting_level, 1); /* ==== //depot/projects/gdb/sys/ia64/ia64/trap.c#10 (text+ko) ==== @@ -358,7 +358,6 @@ atomic_add_int(&cnt.v_trap, 1); td = curthread; - td->td_last_frame = tf; p = td->td_proc; ucode = 0; @@ -903,7 +902,6 @@ td = curthread; td->td_frame = tf; - td->td_last_frame = tf; p = td->td_proc; sticks = td->td_sticks; ==== //depot/projects/gdb/sys/ia64/ia64/unwind.c#4 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -246,12 +247,13 @@ } int -unw_create(struct unw_regstate *rs, struct trapframe *tf) +unw_create_from_frame(struct unw_regstate *rs, struct trapframe *tf) { uint64_t bsp; int nats, sof, uwxerr; rs->frame = tf; + rs->pcb = NULL; rs->env = uwx_init(); if (rs->env == NULL) return (ENOMEM); @@ -270,6 +272,34 @@ return ((uwxerr) ? EINVAL : 0); /* XXX */ } +int +unw_create_from_pcb(struct unw_regstate *rs, struct pcb *pcb) +{ + uint64_t bsp; + int nats, sof, uwxerr; + + rs->frame = NULL; + rs->pcb = pcb; + rs->env = uwx_init(); + if (rs->env == NULL) + return (ENOMEM); + + uwxerr = uwx_register_callbacks(rs->env, (intptr_t)rs, + unw_cb_copyin, unw_cb_lookup); + if (uwxerr) + return (EINVAL); /* XXX */ + + bsp = pcb->pcb_special.bspstore; + sof = (int)(pcb->pcb_special.pfs & 0x7f); + nats = (sof + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; + + uwxerr = uwx_init_context(rs->env, pcb->pcb_special.rp, + pcb->pcb_special.sp, bsp - ((sof + nats) << 3), + pcb->pcb_special.pfs); + + return ((uwxerr) ? EINVAL : 0); /* XXX */ +} + void unw_delete(struct unw_regstate *rs) { ==== //depot/projects/gdb/sys/ia64/include/db_machdep.h#4 (text+ko) ==== @@ -1,55 +1,51 @@ -/* $FreeBSD: src/sys/ia64/include/db_machdep.h,v 1.9 2003/05/16 21:26:41 marcel Exp $ */ -/* $NetBSD: db_machdep.h,v 1.6 1997/09/06 02:02:25 thorpej Exp $ */ - /* - * Copyright (c) 1995 Carnegie-Mellon University. + * Copyright (c) 2004 Marcel Moolenaar * All rights reserved. * - * Author: Chris G. Demetriou + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: * - * Permission to use, copy, modify and distribute this software and - * its documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND - * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie the - * rights to redistribute these changes. + * $FreeBSD: src/sys/ia64/include/db_machdep.h,v 1.9 2003/05/16 21:26:41 marcel Exp $ */ #ifndef _MACHINE_DB_MACHDEP_H_ #define _MACHINE_DB_MACHDEP_H_ -/* - * Machine-dependent defines for new kernel debugger. - */ +#include + +/* We define some of our own commands. */ +#define DB_MACHINE_COMMANDS + +/* We use Elf64 symbols in DDB. */ +#define DB_ELFSIZE 64 -#include -#include -#include -#include +/* Pretty arbitrary. */ +#define DB_SMALL_VALUE_MAX 0x7fffffff +#define DB_SMALL_VALUE_MIN (-0x400001) typedef vm_offset_t db_addr_t; /* address - unsigned */ typedef long db_expr_t; /* expression - signed */ -typedef struct trapframe db_regs_t; -extern db_regs_t ddb_regs; /* register state */ -#define DDB_REGS (&ddb_regs) +#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_special.rp) -#define PC_REGS(regs) ((db_addr_t)(regs)->tf_special.iip + \ - (((regs)->tf_special.psr >> 41) & 3)) - #define BKPT_WRITE(addr, storage) db_bkpt_write(addr, storage) #define BKPT_CLEAR(addr, storage) db_bkpt_clear(addr, storage) #define BKPT_SKIP db_bkpt_skip() @@ -59,8 +55,8 @@ void db_bkpt_clear(db_addr_t, uint64_t *storage); void db_bkpt_skip(void); -#define db_set_single_step(regs) regs->tf_special.psr |= IA64_PSR_SS -#define db_clear_single_step(regs) regs->tf_special.psr &= ~IA64_PSR_SS +#define db_clear_single_step kdb_cpu_clear_singlestep +#define db_set_single_step kdb_cpu_set_singlestep #define IS_BREAKPOINT_TRAP(type, code) (type == IA64_VEC_BREAK) #define IS_WATCHPOINT_TRAP(type, code) 0 @@ -77,26 +73,4 @@ #define next_instr_address(v, b) ((db_addr_t) ((b) ? (v) : ((v) + 4))) -u_long db_register_value(db_regs_t *, int); - -uint64_t *db_rse_current_frame(void); -uint64_t *db_rse_previous_frame(uint64_t *bsp, int sof); -uint64_t *db_rse_register_address(uint64_t *bsp, int regno); - -/* - * Pretty arbitrary - */ -#define DB_SMALL_VALUE_MAX 0x7fffffff -#define DB_SMALL_VALUE_MIN (-0x400001) - -/* - * We define some of our own commands. - */ -#define DB_MACHINE_COMMANDS - -/* - * We use Elf64 symbols in DDB. - */ -#define DB_ELFSIZE 64 - #endif /* _MACHINE_DB_MACHDEP_H_ */ ==== //depot/projects/gdb/sys/ia64/include/kdb.h#4 (text+ko) ==== @@ -29,7 +29,9 @@ #ifndef _MACHINE_KDB_H_ #define _MACHINE_KDB_H_ +#include #include +#include static __inline void kdb_cpu_clear_singlestep(void) ==== //depot/projects/gdb/sys/ia64/include/unwind.h#2 (text+ko) ==== @@ -29,15 +29,19 @@ #ifndef _MACHINE_UNWIND_H_ #define _MACHINE_UNWIND_H_ +struct pcb; +struct trapframe; struct uwx_env; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 14 00:56:49 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 722C316A4D1; Mon, 14 Jun 2004 00:56:49 +0000 (GMT) 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 4A86A16A4CE for ; Mon, 14 Jun 2004 00:56:49 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 44D6543D1D for ; Mon, 14 Jun 2004 00:56:49 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E0twav017538 for ; Mon, 14 Jun 2004 00:55:58 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E0tw9x017535 for perforce@freebsd.org; Mon, 14 Jun 2004 00:55:58 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 00:55:58 GMT Message-Id: <200406140055.i5E0tw9x017535@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 54876 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, 14 Jun 2004 00:56:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=54876 Change 54876 by marcel@marcel_nfs on 2004/06/14 00:55:57 o Add convenience macros to access the subfields in CFM and ar.pfs registers. o Add a convenience function (inline) to adjust a backingstore pointer by a certain amount of slots. o Make this header more friendly to userland. Affected files ... .. //depot/projects/gdb/sys/ia64/include/md_var.h#3 edit Differences ... ==== //depot/projects/gdb/sys/ia64/include/md_var.h#3 (text+ko) ==== @@ -33,6 +33,33 @@ * Miscellaneous machine-dependent declarations. */ +struct ia64_fdesc { + uint64_t func; + uint64_t gp; +}; + +#define FDESC_FUNC(fn) (((struct ia64_fdesc *) fn)->func) +#define FDESC_GP(fn) (((struct ia64_fdesc *) fn)->gp) + +/* Convenience macros to decompose CFM & ar.pfs. */ +#define IA64_CFM_SOF(x) ((x) & 0x7f) +#define IA64_CFM_SOL(x) (((x) >> 7) & 0x7f) +#define IA64_CFM_SOR(x) (((x) >> 14) & 0x0f) +#define IA64_CFM_RRB_GR(x) (((x) >> 18) & 0x7f) +#define IA64_CFM_RRB_FR(x) (((x) >> 25) & 0x7f) +#define IA64_CFM_RRB_PR(x) (((x) >> 32) & 0x3f) + +/* Concenience function (inline) to adjust backingstore pointers. */ +static __inline uint64_t +ia64_bsp_adjust(uint64_t bsp, int nslots) +{ + int bias = ((unsigned int)bsp & 0x1f8) >> 3; + nslots += (nslots + bias + 63*8) / 63 - 8; + return bsp + (nslots << 3); +} + +#ifdef _KERNEL + extern char sigcode[]; extern char esigcode[]; extern int szsigcode; @@ -43,14 +70,6 @@ struct thread; struct trapframe; -struct ia64_fdesc { - u_int64_t func; - u_int64_t gp; -}; - -#define FDESC_FUNC(fn) (((struct ia64_fdesc *) fn)->func) -#define FDESC_GP(fn) (((struct ia64_fdesc *) fn)->gp) - void busdma_swi(void); int copyout_regstack(struct thread *, uint64_t *, uint64_t *); void cpu_mp_add(u_int, u_int, u_int); @@ -70,4 +89,6 @@ void trap(int, struct trapframe *); int unaligned_fixup(struct trapframe *, struct thread *); +#endif /* _KERNEL */ + #endif /* !_MACHINE_MD_VAR_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 00:59:24 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 95C8B16A4D1; Mon, 14 Jun 2004 00:59:24 +0000 (GMT) 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 6819116A4CE for ; Mon, 14 Jun 2004 00:59:24 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5175243D1F for ; Mon, 14 Jun 2004 00:59:24 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E0x3iM017662 for ; Mon, 14 Jun 2004 00:59:03 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E0x2qP017659 for perforce@freebsd.org; Mon, 14 Jun 2004 00:59:02 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 00:59:02 GMT Message-Id: <200406140059.i5E0x2qP017659@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 54877 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, 14 Jun 2004 00:59:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=54877 Change 54877 by marcel@marcel_nfs on 2004/06/14 00:58:39 Convert from trapframe to PCB. Followup to previous commits. Affected files ... .. //depot/projects/gdb/sys/ia64/ia64/gdb_machdep.c#8 edit Differences ... ==== //depot/projects/gdb/sys/ia64/ia64/gdb_machdep.c#8 (text+ko) ==== @@ -34,8 +34,9 @@ #include #include -#include #include +#include +#include #include #include @@ -45,88 +46,65 @@ gdb_cpu_getreg(int regnum, size_t *regsz) { static uint64_t synth; - struct trapframe *tf = kdb_frame; + uint64_t cfm; *regsz = gdb_cpu_regsz(regnum); switch (regnum) { /* Registers 0-127: general registers. */ - case 1: return (&tf->tf_special.gp); - case 2: return (&tf->tf_scratch.gr2); - case 3: return (&tf->tf_scratch.gr3); - case 8: return (&tf->tf_scratch.gr8); - case 9: return (&tf->tf_scratch.gr9); - case 10: return (&tf->tf_scratch.gr10); - case 11: return (&tf->tf_scratch.gr11); - case 12: return (&tf->tf_special.sp); - case 13: return (&tf->tf_special.tp); - case 14: return (&tf->tf_scratch.gr14); - case 15: return (&tf->tf_scratch.gr15); - case 16: return (&tf->tf_scratch.gr16); - case 17: return (&tf->tf_scratch.gr17); - case 18: return (&tf->tf_scratch.gr18); - case 19: return (&tf->tf_scratch.gr19); - case 20: return (&tf->tf_scratch.gr20); - case 21: return (&tf->tf_scratch.gr21); - case 22: return (&tf->tf_scratch.gr22); - case 23: return (&tf->tf_scratch.gr23); - case 24: return (&tf->tf_scratch.gr24); - case 25: return (&tf->tf_scratch.gr25); - case 26: return (&tf->tf_scratch.gr26); - case 27: return (&tf->tf_scratch.gr27); - case 28: return (&tf->tf_scratch.gr28); - case 29: return (&tf->tf_scratch.gr29); - case 30: return (&tf->tf_scratch.gr30); - case 31: return (&tf->tf_scratch.gr31); + case 1: return (&kdb_thrctx->pcb_special.gp); + case 4: return (&kdb_thrctx->pcb_preserved.gr4); + case 5: return (&kdb_thrctx->pcb_preserved.gr5); + case 6: return (&kdb_thrctx->pcb_preserved.gr6); + case 7: return (&kdb_thrctx->pcb_preserved.gr7); + case 12: return (&kdb_thrctx->pcb_special.sp); + case 13: return (&kdb_thrctx->pcb_special.tp); /* Registers 128-255: floating-point registers. */ - case 134: return (&tf->tf_scratch_fp.fr6); - case 135: return (&tf->tf_scratch_fp.fr7); - case 136: return (&tf->tf_scratch_fp.fr8); - case 137: return (&tf->tf_scratch_fp.fr9); - case 138: return (&tf->tf_scratch_fp.fr10); - case 139: return (&tf->tf_scratch_fp.fr11); - case 140: return (&tf->tf_scratch_fp.fr12); - case 141: return (&tf->tf_scratch_fp.fr13); - case 142: return (&tf->tf_scratch_fp.fr14); - case 143: return (&tf->tf_scratch_fp.fr15); + case 130: return (&kdb_thrctx->pcb_preserved_fp.fr2); + case 131: return (&kdb_thrctx->pcb_preserved_fp.fr3); + case 132: return (&kdb_thrctx->pcb_preserved_fp.fr4); + case 133: return (&kdb_thrctx->pcb_preserved_fp.fr5); + case 144: return (&kdb_thrctx->pcb_preserved_fp.fr16); + case 145: return (&kdb_thrctx->pcb_preserved_fp.fr17); + case 146: return (&kdb_thrctx->pcb_preserved_fp.fr18); + case 147: return (&kdb_thrctx->pcb_preserved_fp.fr19); + case 148: return (&kdb_thrctx->pcb_preserved_fp.fr20); + case 149: return (&kdb_thrctx->pcb_preserved_fp.fr21); + case 150: return (&kdb_thrctx->pcb_preserved_fp.fr22); + case 151: return (&kdb_thrctx->pcb_preserved_fp.fr23); + case 152: return (&kdb_thrctx->pcb_preserved_fp.fr24); + case 153: return (&kdb_thrctx->pcb_preserved_fp.fr25); + case 154: return (&kdb_thrctx->pcb_preserved_fp.fr26); + case 155: return (&kdb_thrctx->pcb_preserved_fp.fr27); + case 156: return (&kdb_thrctx->pcb_preserved_fp.fr28); + case 157: return (&kdb_thrctx->pcb_preserved_fp.fr29); + case 158: return (&kdb_thrctx->pcb_preserved_fp.fr30); + case 159: return (&kdb_thrctx->pcb_preserved_fp.fr31); /* Registers 320-327: branch registers. */ - case 320: return (&tf->tf_special.rp); - case 326: return (&tf->tf_scratch.br6); - case 327: return (&tf->tf_scratch.br7); + case 321: return (&kdb_thrctx->pcb_preserved.br1); + case 322: return (&kdb_thrctx->pcb_preserved.br2); + case 323: return (&kdb_thrctx->pcb_preserved.br3); + case 324: return (&kdb_thrctx->pcb_preserved.br4); + case 325: return (&kdb_thrctx->pcb_preserved.br5); /* Registers 328-333: misc. other registers. */ - case 330: return (&tf->tf_special.pr); - case 331: return (&tf->tf_special.iip); - case 332: return (&tf->tf_special.psr); - case 333: return (&tf->tf_special.cfm); + case 330: return (&kdb_thrctx->pcb_special.pr); + case 331: return (&kdb_thrctx->pcb_special.rp); + case 333: return (&kdb_thrctx->pcb_special.pfs); /* Registers 334-461: application registers. */ - case 350: return (&tf->tf_special.rsc); - case 353: return (&tf->tf_special.rnat); - case 359: return (&tf->tf_scratch.csd); - case 360: return (&tf->tf_scratch.ssd); - case 366: return (&tf->tf_scratch.ccv); - case 370: return (&tf->tf_special.unat); - case 374: return (&tf->tf_special.fpsr); - case 398: return (&tf->tf_special.pfs); + case 350: return (&kdb_thrctx->pcb_special.rsc); + case 351: /* bsp */ + case 352: /* bspstore. */ + synth = kdb_thrctx->pcb_special.bspstore; + cfm = kdb_thrctx->pcb_special.pfs; + synth = ia64_bsp_adjust(synth, + IA64_CFM_SOF(cfm) - IA64_CFM_SOL(cfm)); + return (&synth); + case 353: return (&kdb_thrctx->pcb_special.rnat); + case 370: return (&kdb_thrctx->pcb_special.unat); + case 374: return (&kdb_thrctx->pcb_special.fpsr); + case 399: return (&kdb_thrctx->pcb_preserved.lc); /* Synthesized registers. */ - case 351: /* bsp */ - /* - * If the trapframe belongs to a kernel entry from user - * space, setup bspstore to point to the base of the - * kernel stack. - */ - synth = (tf->tf_special.bspstore >= IA64_RR_BASE(5)) ? - tf->tf_special.bspstore : (kdb_thread->td_kstack + - (tf->tf_special.bspstore & 0x1ffUL)); - synth += tf->tf_special.ndirty; return (&synth); - case 352: /* bspstore. */ - /* - * If the trapframe belongs to a kernel entry from user - * space, setup bacpstore to point to the base of the - * kernel stack. - */ - synth = (tf->tf_special.bspstore >= IA64_RR_BASE(5)) ? - tf->tf_special.bspstore : (kdb_thread->td_kstack + - (tf->tf_special.bspstore & 0x1ffUL)); + synth = kdb_thrctx->pcb_special.bspstore; return (&synth); } return (NULL); @@ -144,7 +122,9 @@ int gdb_cpu_query(void) { +#if 0 uint64_t bspstore, *kstack; +#endif uintmax_t slot; if (!gdb_rx_equal("Part:dirty:read::")) @@ -155,9 +135,12 @@ return (-1); } + gdb_tx_err(EINVAL); + return (-1); + +#if 0 /* slot is unsigned. No need to test for negative values. */ if (slot >= (kdb_frame->tf_special.ndirty >> 3)) { - gdb_tx_err(EINVAL); return (-1); } @@ -173,4 +156,5 @@ gdb_tx_mem((void*)(kstack + slot), 8); gdb_tx_end(); return (1); +#endif } From owner-p4-projects@FreeBSD.ORG Mon Jun 14 01:14:38 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 73CC816A4D1; Mon, 14 Jun 2004 01:14:38 +0000 (GMT) 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 4F6C516A4CE for ; Mon, 14 Jun 2004 01:14:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 49AC743D31 for ; Mon, 14 Jun 2004 01:14:38 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E1EMDk022544 for ; Mon, 14 Jun 2004 01:14:22 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E1EL5v022541 for perforce@freebsd.org; Mon, 14 Jun 2004 01:14:21 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 01:14:21 GMT Message-Id: <200406140114.i5E1EL5v022541@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 54878 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, 14 Jun 2004 01:14:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=54878 Change 54878 by marcel@marcel_nfs on 2004/06/14 01:13:22 Make it possible to synthesize information. Synthesized info does not live in the core file and thus should not be fetched with kvm_read first. The implementation is a bit primitive, but it's not clear how frequently it's needed, let alone how complex the use cases can get. Affected files ... .. //depot/projects/gdb/usr.bin/kgdb/kgdb.h#8 edit .. //depot/projects/gdb/usr.bin/kgdb/packet.c#6 edit Differences ... ==== //depot/projects/gdb/usr.bin/kgdb/kgdb.h#8 (text+ko) ==== @@ -27,6 +27,8 @@ #ifndef _KGDB_H_ #define _KGDB_H_ +extern unsigned char gdb_membuf[]; + extern char *gdb_rxp; extern size_t gdb_rxsz; extern char *gdb_txp; ==== //depot/projects/gdb/usr.bin/kgdb/packet.c#6 (text+ko) ==== @@ -56,6 +56,8 @@ 10 + (((c) < 'a') ? (c) - 'A' : (c) - 'a')) #define N2C(n) (((n) < 10) ? (n) + '0' : (n) + 'a' - 10) +unsigned char gdb_membuf[256]; + static int gdb_packet(void) { @@ -318,21 +320,24 @@ int gdb_tx_mem(const unsigned char *addr, size_t size) { - unsigned char sbuf[256]; unsigned char *dbuf, *p; ssize_t res; - dbuf = (size > sizeof(sbuf)) ? malloc(size) : sbuf; - res = kvm_read(kvm, (unsigned long)addr, dbuf, size); - if (res != (ssize_t)size) - return (0); + if (addr != gdb_membuf) { + dbuf = (size > sizeof(gdb_membuf)) ? malloc(size) : gdb_membuf; + res = kvm_read(kvm, (unsigned long)addr, dbuf, size); + if (res != (ssize_t)size) + return (0); + } else + dbuf = (unsigned char *)(uintptr_t)addr; + p = dbuf; while (size-- > 0) { *gdb_txp++ = N2C(*p >> 4); *gdb_txp++ = N2C(*p & 0x0f); p++; } - if (dbuf != sbuf) + if (dbuf != gdb_membuf) free(dbuf); return (1); } From owner-p4-projects@FreeBSD.ORG Mon Jun 14 01:15:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 37CC516A4D1; Mon, 14 Jun 2004 01:15:35 +0000 (GMT) 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 EF87116A4CE for ; Mon, 14 Jun 2004 01:15:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E927643D39 for ; Mon, 14 Jun 2004 01:15:34 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E1FOX1022601 for ; Mon, 14 Jun 2004 01:15:24 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E1FNO4022598 for perforce@freebsd.org; Mon, 14 Jun 2004 01:15:23 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 01:15:23 GMT Message-Id: <200406140115.i5E1FNO4022598@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 54879 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, 14 Jun 2004 01:15:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=54879 Change 54879 by marcel@marcel_nfs on 2004/06/14 01:15:08 Port ia64 to the PCB world. This uses the new convencience foo in md_var.h, as well as the support for synthesized info. Affected files ... .. //depot/projects/gdb/usr.bin/kgdb/md_ia64.c#5 edit Differences ... ==== //depot/projects/gdb/usr.bin/kgdb/md_ia64.c#5 (text+ko) ==== @@ -37,9 +37,11 @@ #include #include #include +#include -#include #include +#include +#include #include #include "kgdb.h" @@ -56,91 +58,63 @@ void * gdb_cpu_getreg(int regnum, size_t *regsz) { - static uint64_t synth; - struct trapframe *tf = curkthr->td_frame; - uint64_t bspstore; + uint64_t bsp, cfm; *regsz = gdb_cpu_regsz(regnum); switch (regnum) { /* Registers 0-127: general registers. */ - case 1: return (&tf->tf_special.gp); - case 2: return (&tf->tf_scratch.gr2); - case 3: return (&tf->tf_scratch.gr3); - case 8: return (&tf->tf_scratch.gr8); - case 9: return (&tf->tf_scratch.gr9); - case 10: return (&tf->tf_scratch.gr10); - case 11: return (&tf->tf_scratch.gr11); - case 12: return (&tf->tf_special.sp); - case 13: return (&tf->tf_special.tp); - case 14: return (&tf->tf_scratch.gr14); - case 15: return (&tf->tf_scratch.gr15); - case 16: return (&tf->tf_scratch.gr16); - case 17: return (&tf->tf_scratch.gr17); - case 18: return (&tf->tf_scratch.gr18); - case 19: return (&tf->tf_scratch.gr19); - case 20: return (&tf->tf_scratch.gr20); - case 21: return (&tf->tf_scratch.gr21); - case 22: return (&tf->tf_scratch.gr22); - case 23: return (&tf->tf_scratch.gr23); - case 24: return (&tf->tf_scratch.gr24); - case 25: return (&tf->tf_scratch.gr25); - case 26: return (&tf->tf_scratch.gr26); - case 27: return (&tf->tf_scratch.gr27); - case 28: return (&tf->tf_scratch.gr28); - case 29: return (&tf->tf_scratch.gr29); - case 30: return (&tf->tf_scratch.gr30); - case 31: return (&tf->tf_scratch.gr31); + case 1: return (&curkthr->td_pcb->pcb_special.gp); + case 4: return (&curkthr->td_pcb->pcb_preserved.gr4); + case 5: return (&curkthr->td_pcb->pcb_preserved.gr5); + case 6: return (&curkthr->td_pcb->pcb_preserved.gr6); + case 7: return (&curkthr->td_pcb->pcb_preserved.gr7); + case 12: return (&curkthr->td_pcb->pcb_special.sp); + case 13: return (&curkthr->td_pcb->pcb_special.tp); /* Registers 128-255: floating-point registers. */ - case 134: return (&tf->tf_scratch_fp.fr6); - case 135: return (&tf->tf_scratch_fp.fr7); - case 136: return (&tf->tf_scratch_fp.fr8); - case 137: return (&tf->tf_scratch_fp.fr9); - case 138: return (&tf->tf_scratch_fp.fr10); - case 139: return (&tf->tf_scratch_fp.fr11); - case 140: return (&tf->tf_scratch_fp.fr12); - case 141: return (&tf->tf_scratch_fp.fr13); - case 142: return (&tf->tf_scratch_fp.fr14); - case 143: return (&tf->tf_scratch_fp.fr15); + case 130: return (&curkthr->td_pcb->pcb_preserved_fp.fr2); + case 131: return (&curkthr->td_pcb->pcb_preserved_fp.fr3); + case 132: return (&curkthr->td_pcb->pcb_preserved_fp.fr4); + case 133: return (&curkthr->td_pcb->pcb_preserved_fp.fr5); + case 144: return (&curkthr->td_pcb->pcb_preserved_fp.fr16); + case 145: return (&curkthr->td_pcb->pcb_preserved_fp.fr17); + case 146: return (&curkthr->td_pcb->pcb_preserved_fp.fr18); + case 147: return (&curkthr->td_pcb->pcb_preserved_fp.fr19); + case 148: return (&curkthr->td_pcb->pcb_preserved_fp.fr20); + case 149: return (&curkthr->td_pcb->pcb_preserved_fp.fr21); + case 150: return (&curkthr->td_pcb->pcb_preserved_fp.fr22); + case 151: return (&curkthr->td_pcb->pcb_preserved_fp.fr23); + case 152: return (&curkthr->td_pcb->pcb_preserved_fp.fr24); + case 153: return (&curkthr->td_pcb->pcb_preserved_fp.fr25); + case 154: return (&curkthr->td_pcb->pcb_preserved_fp.fr26); + case 155: return (&curkthr->td_pcb->pcb_preserved_fp.fr27); + case 156: return (&curkthr->td_pcb->pcb_preserved_fp.fr28); + case 157: return (&curkthr->td_pcb->pcb_preserved_fp.fr29); + case 158: return (&curkthr->td_pcb->pcb_preserved_fp.fr30); + case 159: return (&curkthr->td_pcb->pcb_preserved_fp.fr31); /* Registers 320-327: branch registers. */ - case 320: return (&tf->tf_special.rp); - case 326: return (&tf->tf_scratch.br6); - case 327: return (&tf->tf_scratch.br7); + case 321: return (&curkthr->td_pcb->pcb_preserved.br1); + case 322: return (&curkthr->td_pcb->pcb_preserved.br2); + case 323: return (&curkthr->td_pcb->pcb_preserved.br3); + case 324: return (&curkthr->td_pcb->pcb_preserved.br4); + case 325: return (&curkthr->td_pcb->pcb_preserved.br5); /* Registers 328-333: misc. other registers. */ - case 330: return (&tf->tf_special.pr); - case 331: return (&tf->tf_special.iip); - case 332: return (&tf->tf_special.psr); - case 333: return (&tf->tf_special.cfm); + case 330: return (&curkthr->td_pcb->pcb_special.pr); + case 331: return (&curkthr->td_pcb->pcb_special.rp); + case 333: return (&curkthr->td_pcb->pcb_special.pfs); /* Registers 334-461: application registers. */ - case 350: return (&tf->tf_special.rsc); - case 353: return (&tf->tf_special.rnat); - case 359: return (&tf->tf_scratch.csd); - case 360: return (&tf->tf_scratch.ssd); - case 366: return (&tf->tf_scratch.ccv); - case 370: return (&tf->tf_special.unat); - case 374: return (&tf->tf_special.fpsr); - case 398: return (&tf->tf_special.pfs); - /* Synthesized registers. */ + case 350: return (&curkthr->td_pcb->pcb_special.rsc); case 351: /* bsp */ - /* - * If the trapframe belongs to a kernel entry from user - * space, setup bspstore to point to the base of the - * kernel stack. - */ - bspstore = getreg(&tf->tf_special.bspstore); - synth = (bspstore >= IA64_RR_BASE(5)) ? bspstore : - (curkthr->td_kstack + (bspstore & 0x1ffUL)); - synth += getreg(&tf->tf_special.ndirty); - return (&synth); - case 352: /* bspstore. */ - /* - * If the trapframe belongs to a kernel entry from user - * space, setup bacpstore to point to the base of the - * kernel stack. - */ - bspstore = getreg(&tf->tf_special.bspstore); - synth = (bspstore >= IA64_RR_BASE(5)) ? bspstore : - (curkthr->td_kstack + (bspstore & 0x1ffUL)); - return (&synth); + case 352: /* bspstore */ + bsp = getreg(&curkthr->td_pcb->pcb_special.bspstore); + cfm = getreg(&curkthr->td_pcb->pcb_special.pfs); + bsp = ia64_bsp_adjust(bsp, + IA64_CFM_SOF(cfm) - IA64_CFM_SOL(cfm)); + memcpy(gdb_membuf, &bsp, sizeof(bsp)); + return (gdb_membuf); + case 353: return (&curkthr->td_pcb->pcb_special.rnat); + case 370: return (&curkthr->td_pcb->pcb_special.unat); + case 374: return (&curkthr->td_pcb->pcb_special.fpsr); + case 399: return (&curkthr->td_pcb->pcb_preserved.lc); } return (NULL); } @@ -157,7 +131,9 @@ int gdb_cpu_query(void) { +#if 0 uint64_t bspstore, *kstack; +#endif uintmax_t slot; if (!gdb_rx_equal("Part:dirty:read::")) @@ -168,6 +144,10 @@ return (-1); } + gdb_tx_err(EINVAL); + return (-1); + +#if 0 /* slot is unsigned. No need to test for negative values. */ if (slot >= (getreg(&curkthr->td_frame->tf_special.ndirty) >> 3)) { gdb_tx_err(EINVAL); @@ -186,4 +166,5 @@ gdb_tx_mem((void*)(kstack + slot), 8); gdb_tx_end(); return (1); +#endif } From owner-p4-projects@FreeBSD.ORG Mon Jun 14 01:20:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E36C416A4D1; Mon, 14 Jun 2004 01:20:34 +0000 (GMT) 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 B8E7816A4CE for ; Mon, 14 Jun 2004 01:20:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9EDC343D54 for ; Mon, 14 Jun 2004 01:20:34 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E1KVgg022809 for ; Mon, 14 Jun 2004 01:20:31 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E1KUub022806 for perforce@freebsd.org; Mon, 14 Jun 2004 01:20:30 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 01:20:30 GMT Message-Id: <200406140120.i5E1KUub022806@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 54880 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, 14 Jun 2004 01:20:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=54880 Change 54880 by jmallett@jmallett_oingo on 2004/06/14 01:20:09 Handle CPU-level interrupts (soft and hard) and move the clock intr handler to the clock code. XXX all of this is generic MIPS, but I'm not comfortable with it being there, so it's with the SGI port for now. Ideally we'd have a "cpu" bus with CPU interrupts off it and we'd establish interrupts with that, and it would do the same as the hardintr/softintr stuff here. And off the cpu would hang the normal mips clock, which here is being called SGI IP22 solely because of its calls to the (abstracted) code for getting cycles per hz, which right now only works on the IP22. Affected files ... .. //depot/projects/mips/sys/mips/include/cpuregs.h#16 edit .. //depot/projects/mips/sys/mips/sgimips/clock.c#8 edit .. //depot/projects/mips/sys/mips/sgimips/intr.h#5 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#32 edit Differences ... ==== //depot/projects/mips/sys/mips/include/cpuregs.h#16 (text+ko) ==== @@ -210,30 +210,18 @@ * The interrupt masks. * If a bit in the mask is 1 then the interrupt is enabled (or pending). */ -#define MIPS_INT_MASKX 0xff00 +#define MIPS_INT_MASK 0xff00 #define MIPS_INT_MASK_5 0x8000 #define MIPS_INT_MASK_4 0x4000 #define MIPS_INT_MASK_3 0x2000 #define MIPS_INT_MASK_2 0x1000 #define MIPS_INT_MASK_1 0x0800 #define MIPS_INT_MASK_0 0x0400 -#define MIPS_HARD_INT_MASKX 0xfc00 +#define MIPS_HARD_INT_MASK 0xfc00 #define MIPS_SOFT_INT_MASK_1 0x0200 #define MIPS_SOFT_INT_MASK_0 0x0100 /* - * mips3 CPUs have on-chip timer at INT_MASK_5. Each platform can - * choose to enable this interrupt. - */ -#if defined(MIPS_ENABLE_CLOCK_INTR) -#define MIPS_INT_MASK MIPS_INT_MASKX -#define MIPS_HARD_INT_MASK MIPS_HARD_INT_MASKX -#else -#define MIPS_INT_MASK (MIPS_INT_MASKX & ~MIPS_INT_MASK_5) -#define MIPS_HARD_INT_MASK (MIPS_HARD_INT_MASKX & ~MIPS_INT_MASK_5) -#endif - -/* * The bits in the context register. * * XXX XContext ==== //depot/projects/mips/sys/mips/sgimips/clock.c#8 (text+ko) ==== @@ -33,10 +33,13 @@ #include #include +#include #include #include +#include #include +#include #include static unsigned @@ -51,9 +54,28 @@ ~0, 0, "Uninitialized SGIMIPS", - 1000 + 800 }; +static void +sgimips_clock5_intr(void *arg) +{ + struct clockframe cf; + struct trapframe *tf; + + if (curthread == NULL) + return; + + /* + * Set next clock edge. + */ + tf = curthread->td_frame; + cf.sr = tf->tf_regs[TF_SR]; + cf.pc = tf->tf_regs[TF_EPC]; + hardclock(&cf); + mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); +} + void cpu_initclocks(void) { @@ -67,8 +89,7 @@ } tc_init(&sgimips_timecounter); mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); - /* XXX intr_establish? */ - mips_wr_status(mips_rd_status() | MIPS_INT_MASK_5); + platform_establish_hardintr(5, sgimips_clock5_intr, NULL); } void ==== //depot/projects/mips/sys/mips/sgimips/intr.h#5 (text+ko) ==== @@ -23,14 +23,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#4 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#5 $ */ #ifndef _SGIMIPS_INTR_H_ #define _SGIMIPS_INTR_H_ -/* - * Nothing to see here. - */ +void platform_establish_hardintr(int, void (*)(void *), void *); +void platform_establish_softintr(int, void (*)(void *), void *); #endif /* _SGIMIPS_INTR_H_ */ ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#32 (text+ko) ==== @@ -51,7 +51,7 @@ #include "opt_model.h" -struct machine_type { +static struct machine_type { const char *identifier; void (*init)(void); int type; @@ -62,6 +62,13 @@ { NULL, NULL, 0 } }; +struct intrhand { + void (*handler)(void *); + void *arg; +}; +static struct intrhand intrhard[6]; +static struct intrhand intrsoft[2]; + int arcsmem, availmem, lpmem; int mach_type, mach_subtype, mach_boardrev; @@ -168,26 +175,72 @@ } void +platform_establish_hardintr(int intr, void (*handler)(void *), void *arg) +{ + struct intrhand *ih; + + if (intr < 0 || intr > 5) + panic("%s called for unknown hard intr %d", __func__, intr); + ih = &intrhard[intr]; + ih->handler = handler; + ih->arg = arg; + + /* Route above the 2 lower software interrupt bits. */ + mips_wr_status(mips_rd_status() | (((1 << intr) << 8) << 2)); +} + +void +platform_establish_softintr(int intr, void (*handler)(void *), void *arg) +{ + struct intrhand *ih; + + if (intr < 0 || intr > 1) + panic("%s called for unknown soft intr %d", __func__, intr); + ih = &intrsoft[intr]; + ih->handler = handler; + ih->arg = arg; + + mips_wr_status(mips_rd_status() | ((1 << intr) << 8)); +} + +void platform_intr(struct trapframe *tf) { + struct intrhand *ih; register_t cause; + int hard; + int intr; + int i; cause = mips_rd_cause(); + intr = (cause & MIPS_INT_MASK) >> 8; + cause &= ~MIPS_INT_MASK; + mips_wr_cause(cause); - if (cause & MIPS_INT_MASK_5) { - struct clockframe cf; - - /* - * Set next clock edge. - */ - cf.sr = tf->tf_regs[TF_SR]; - cf.pc = tf->tf_regs[TF_EPC]; - hardclock(&cf); - mips_wr_compare(mips_rd_count() + - curcpu()->ci_cycles_per_hz); - } else { - printf("stray intr cause %lx\n", cause); + while ((i = fls(intr)) != 0) { + intr &= ~(1 << (i - 1)); + switch (i) { + case 1: case 2: + /* Software interrupt. */ + i--; /* Get a 0-offset interrupt. */ + hard = 0; + ih = &intrsoft[i]; + break; + default: + /* Hardware interrupt. */ + i -= 2; /* Trim software interrupt bits. */ + i--; /* Get a 0-offset interrupt. */ + hard = 1; + ih = &intrhard[i]; + break; + } + if (ih->handler != NULL) + (*ih->handler)(ih->arg); + else + printf("stray %s interrupt %d\n", + hard ? "hard" : "soft", i); } + KASSERT(i == 0, ("all interrupts handled")); } void From owner-p4-projects@FreeBSD.ORG Mon Jun 14 02:04:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B262B16A4D1; Mon, 14 Jun 2004 02:04:01 +0000 (GMT) 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 8122616A4CE for ; Mon, 14 Jun 2004 02:04:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7860843D1F for ; Mon, 14 Jun 2004 02:04:01 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5E23PHS033668 for ; Mon, 14 Jun 2004 02:03:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E23O4q033664 for perforce@freebsd.org; Mon, 14 Jun 2004 02:03:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 14 Jun 2004 02:03:25 GMT Message-Id: <200406140203.i5E23O4q033664@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 54883 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, 14 Jun 2004 02:04:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54883 Change 54883 by rwatson@rwatson_tislabs on 2004/06/14 02:02:31 Integrate netperf_socket. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#13 integrate .. //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#8 integrate .. //depot/projects/netperf_socket/sys/amd64/include/pmap.h#9 integrate .. //depot/projects/netperf_socket/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/netperf_socket/sys/crypto/des/des_ecb.c#2 integrate .. //depot/projects/netperf_socket/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/netperf_socket/sys/crypto/des/des_setkey.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#22 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_acad.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_button.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_cmbat.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_ec.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_isab.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_lid.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcib_acpi.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_resource.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#14 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pci/emu10k1.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#9 integrate .. //depot/projects/netperf_socket/sys/net/if_fwsubr.c#3 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/pc98gdc.c#4 integrate .. //depot/projects/netperf_socket/sys/sys/_types.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/resource.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/types.h#5 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#13 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.468 2004/06/13 19:48:38 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.470 2004/06/14 01:17:50 alc Exp $"); /* * Manages physical address maps. @@ -464,6 +464,7 @@ /* * Initialize the kernel pmap (which is statically allocated). */ + PMAP_LOCK_INIT(kernel_pmap); kernel_pmap->pm_pml4 = (pdp_entry_t *) (KERNBASE + KPML4phys); kernel_pmap->pm_active = -1; /* don't allow deactivation */ TAILQ_INIT(&kernel_pmap->pm_pvlist); @@ -1035,6 +1036,7 @@ struct pmap *pmap; { + PMAP_LOCK_INIT(pmap); pmap->pm_pml4 = (pml4_entry_t *)(KERNBASE + KPML4phys); pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvlist); @@ -1055,6 +1057,8 @@ vm_page_t pml4pg; static vm_pindex_t color; + PMAP_LOCK_INIT(pmap); + /* * allocate the page directory page */ @@ -1306,6 +1310,7 @@ atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(m); vm_page_unlock_queues(); + PMAP_LOCK_DESTROY(pmap); } static int @@ -1675,6 +1680,7 @@ #endif mtx_assert(&vm_page_queue_mtx, MA_OWNED); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { + PMAP_LOCK(pv->pv_pmap); pv->pv_pmap->pm_stats.resident_count--; pte = pmap_pte(pv->pv_pmap, pv->pv_va); tpte = pte_load_clear(pte); @@ -1702,6 +1708,7 @@ TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; pmap_unuse_pt(pv->pv_pmap, pv->pv_va, pv->pv_ptem); + PMAP_UNLOCK(pv->pv_pmap); free_pv_entry(pv); } vm_page_flag_clear(m, PG_WRITEABLE); @@ -1733,6 +1740,7 @@ anychanged = 0; + PMAP_LOCK(pmap); for (; sva < eva; sva = va_next) { pml4e = pmap_pml4e(pmap, sva); @@ -1810,6 +1818,7 @@ } if (anychanged) pmap_invalidate_all(pmap); + PMAP_UNLOCK(pmap); } /* @@ -2183,6 +2192,7 @@ * Wiring is not a hardware characteristic so there is no need to * invalidate TLB. */ + PMAP_LOCK(pmap); pte = pmap_pte(pmap, va); if (wired && (*pte & PG_W) == 0) { pmap->pm_stats.wired_count++; @@ -2191,6 +2201,7 @@ pmap->pm_stats.wired_count--; atomic_clear_long(pte, PG_W); } + PMAP_UNLOCK(pmap); } @@ -2438,6 +2449,7 @@ } #endif mtx_assert(&vm_page_queue_mtx, MA_OWNED); + PMAP_LOCK(pmap); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { if (pv->pv_va >= eva || pv->pv_va < sva) { @@ -2498,6 +2510,7 @@ free_pv_entry(pv); } pmap_invalidate_all(pmap); + PMAP_UNLOCK(pmap); } /* @@ -2530,10 +2543,13 @@ continue; } #endif + PMAP_LOCK(pv->pv_pmap); pte = pmap_pte(pv->pv_pmap, pv->pv_va); if (*pte & PG_M) { + PMAP_UNLOCK(pv->pv_pmap); return TRUE; } + PMAP_UNLOCK(pv->pv_pmap); } return (FALSE); } @@ -2593,6 +2609,7 @@ } #endif + PMAP_LOCK(pv->pv_pmap); pte = pmap_pte(pv->pv_pmap, pv->pv_va); pbits = *pte; if (pbits & bit) { @@ -2606,6 +2623,7 @@ } pmap_invalidate_page(pv->pv_pmap, pv->pv_va); } + PMAP_UNLOCK(pv->pv_pmap); } if (bit == PG_RW) vm_page_flag_clear(m, PG_WRITEABLE); @@ -2666,17 +2684,20 @@ if (!pmap_track_modified(pv->pv_va)) continue; + PMAP_LOCK(pv->pv_pmap); pte = pmap_pte(pv->pv_pmap, pv->pv_va); if (pte && ((v = pte_load(pte)) & PG_A) != 0) { - pte_store(pte, v & ~PG_A); + atomic_clear_long(pte, PG_A); pmap_invalidate_page(pv->pv_pmap, pv->pv_va); rtval++; if (rtval > 4) { + PMAP_UNLOCK(pv->pv_pmap); break; } } + PMAP_UNLOCK(pv->pv_pmap); } while ((pv = pvn) != NULL && pv != pvf); } ==== //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#8 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.410 2004/06/03 21:40:41 peter Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.411 2004/06/13 23:03:57 obrien Exp $ machine amd64 cpu HAMMER @@ -28,6 +28,7 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_ULE # ULE scheduler +options ADAPTIVE_MUTEXES # mutexes first spin lock, then sleep options INET # InterNETworking options INET6 # IPv6 communications protocols options FFS # Berkeley Fast Filesystem ==== //depot/projects/netperf_socket/sys/amd64/include/pmap.h#9 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.118 2004/06/13 03:44:11 alc Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.119 2004/06/14 01:17:50 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -129,6 +129,8 @@ #ifndef LOCORE +#include +#include #include typedef u_int64_t pd_entry_t; @@ -218,6 +220,7 @@ }; struct pmap { + struct mtx pm_mtx; pml4_entry_t *pm_pml4; /* KVA of level 4 page table */ TAILQ_HEAD(,pv_entry) pm_pvlist; /* list of mappings in pmap */ u_int pm_active; /* active on cpus */ @@ -231,6 +234,17 @@ #ifdef _KERNEL extern struct pmap kernel_pmap_store; #define kernel_pmap (&kernel_pmap_store) + +#define PMAP_LOCK(pmap) mtx_lock(&(pmap)->pm_mtx) +#define PMAP_LOCK_ASSERT(pmap, type) \ + mtx_assert(&(pmap)->pm_mtx, (type)) +#define PMAP_LOCK_DESTROY(pmap) mtx_destroy(&(pmap)->pm_mtx) +#define PMAP_LOCK_INIT(pmap) mtx_init(&(pmap)->pm_mtx, "pmap", \ + NULL, MTX_DEF) +#define PMAP_LOCKED(pmap) mtx_owned(&(pmap)->pm_mtx) +#define PMAP_MTX(pmap) (&(pmap)->pm_mtx) +#define PMAP_TRYLOCK(pmap) mtx_trylock(&(pmap)->pm_mtx) +#define PMAP_UNLOCK(pmap) mtx_unlock(&(pmap)->pm_mtx) #endif /* ==== //depot/projects/netperf_socket/sys/contrib/altq/altq/altq_subr.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.2 2004/06/12 00:57:20 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.3 2004/06/13 22:52:38 mlaier Exp $ */ /* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */ /* @@ -71,7 +71,9 @@ /* machine dependent clock related includes */ #ifdef __FreeBSD__ +#if __FreeBSD__ < 3 #include "opt_cpu.h" /* for FreeBSD-2.2.8 to get i586_ctr_freq */ +#endif #include #endif #if defined(__i386__) ==== //depot/projects/netperf_socket/sys/crypto/des/des_ecb.c#2 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $FreeBSD: src/sys/crypto/des/des_ecb.c,v 1.5 2002/03/05 09:19:02 ume Exp $ */ /* $KAME: des_ecb.c,v 1.6 2001/09/10 04:03:58 itojun Exp $ */ /* crypto/des/ecb_enc.c */ + /* Copyright (C) 1995-1998 Eric Young (eay@mincom.oz.au) * All rights reserved. * @@ -48,6 +48,9 @@ * [including the GNU Public Licence.] */ +#include +__FBSDID("$FreeBSD: src/sys/crypto/des/des_ecb.c,v 1.6 2004/06/14 00:38:54 obrien Exp $"); + #include #include #include ==== //depot/projects/netperf_socket/sys/crypto/des/des_enc.c#2 (text+ko) ==== @@ -1,7 +1,7 @@ /* $KAME: des_enc.c,v 1.1 2001/09/10 04:03:58 itojun Exp $ */ -/* $FreeBSD: src/sys/crypto/des/des_enc.c,v 1.1 2002/03/05 09:19:02 ume Exp $ */ /* crypto/des/des_enc.c */ + /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -59,6 +59,9 @@ * [including the GNU Public Licence.] */ +#include +__FBSDID("$FreeBSD: src/sys/crypto/des/des_enc.c,v 1.2 2004/06/14 00:38:54 obrien Exp $"); + #include #include ==== //depot/projects/netperf_socket/sys/crypto/des/des_setkey.c#2 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $FreeBSD: src/sys/crypto/des/des_setkey.c,v 1.6 2002/03/05 09:19:02 ume Exp $ */ /* $KAME: des_setkey.c,v 1.7 2001/09/10 04:03:58 itojun Exp $ */ /* crypto/des/set_key.c */ + /* Copyright (C) 1995-1996 Eric Young (eay@mincom.oz.au) * All rights reserved. * @@ -55,6 +55,10 @@ * 1.1 added norm_expand_bits * 1.0 First working version */ + +#include +__FBSDID("$FreeBSD: src/sys/crypto/des/des_setkey.c,v 1.7 2004/06/14 00:38:16 obrien Exp $"); + #include #include #include ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#22 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.158 2004/06/13 17:29:35 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.159 2004/06/13 22:52:30 njl Exp $ */ #include "opt_acpi.h" @@ -81,6 +81,9 @@ struct mtx acpi_mutex; #endif +/* Local pools for managing system resources for ACPI child devices. */ +struct rman acpi_rman_io, acpi_rman_mem; + struct acpi_quirks { char *OemId; uint32_t OemRevision; @@ -111,10 +114,7 @@ uintptr_t *result); static int acpi_write_ivar(device_t dev, device_t child, int index, uintptr_t value); -static int acpi_set_resource(device_t dev, device_t child, int type, - int rid, u_long start, u_long count); -static int acpi_get_resource(device_t dev, device_t child, int type, - int rid, u_long *startp, u_long *countp); +static struct resource_list *acpi_get_rlist(device_t dev, device_t child); static struct resource *acpi_alloc_resource(device_t bus, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags); @@ -162,8 +162,9 @@ DEVMETHOD(bus_print_child, acpi_print_child), DEVMETHOD(bus_read_ivar, acpi_read_ivar), DEVMETHOD(bus_write_ivar, acpi_write_ivar), - DEVMETHOD(bus_set_resource, acpi_set_resource), - DEVMETHOD(bus_get_resource, acpi_get_resource), + DEVMETHOD(bus_get_resource_list, acpi_get_rlist), + DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), + DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), DEVMETHOD(bus_alloc_resource, acpi_alloc_resource), DEVMETHOD(bus_release_resource, acpi_release_resource), DEVMETHOD(bus_child_pnpinfo_str, acpi_child_pnpinfo_str_method), @@ -395,6 +396,20 @@ bzero(sc, sizeof(*sc)); sc->acpi_dev = dev; + /* Initialize resource manager. */ + acpi_rman_io.rm_type = RMAN_ARRAY; + acpi_rman_io.rm_start = 0; + acpi_rman_io.rm_end = 0xffff; + acpi_rman_io.rm_descr = "I/O ports"; + if (rman_init(&acpi_rman_io) != 0) + panic("acpi rman_init IO ports failed"); + acpi_rman_mem.rm_type = RMAN_ARRAY; + acpi_rman_mem.rm_start = 0; + acpi_rman_mem.rm_end = ~0ul; + acpi_rman_mem.rm_descr = "I/O memory addresses"; + if (rman_init(&acpi_rman_mem) != 0) + panic("acpi rman_init memory failed"); + #ifdef ACPI_DEBUGGER debugpoint = getenv("debug.acpi.debugger"); if (debugpoint) { @@ -824,56 +839,102 @@ /* * Handle child resource allocation/removal */ -static int -acpi_set_resource(device_t dev, device_t child, int type, int rid, - u_long start, u_long count) +static struct resource_list * +acpi_get_rlist(device_t dev, device_t child) { - struct acpi_device *ad = device_get_ivars(child); - struct resource_list *rl = &ad->ad_rl; + struct acpi_device *ad; - resource_list_add(rl, type, rid, start, start + count -1, count); - - return(0); -} - -static int -acpi_get_resource(device_t dev, device_t child, int type, int rid, - u_long *startp, u_long *countp) -{ - struct acpi_device *ad = device_get_ivars(child); - struct resource_list *rl = &ad->ad_rl; - struct resource_list_entry *rle; - - rle = resource_list_find(rl, type, rid); - if (!rle) - return(ENOENT); - - if (startp) - *startp = rle->start; - if (countp) - *countp = rle->count; - - return (0); + ad = device_get_ivars(child); + return (&ad->ad_rl); } static struct resource * acpi_alloc_resource(device_t bus, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) + u_long start, u_long end, u_long count, u_int flags) { struct acpi_device *ad = device_get_ivars(child); struct resource_list *rl = &ad->ad_rl; + struct resource_list_entry *rle; + struct resource *res; + struct rman *rm; + int needactivate; + + /* + * If this is an allocation of the "default" range for a given RID, and + * we know what the resources for this device are (i.e., they're on the + * child's resource list), use those start/end values. + */ + if (start == 0UL && end == ~0UL) { + rle = resource_list_find(rl, type, *rid); + if (rle == NULL) + return (NULL); + start = rle->start; + end = rle->end; + count = rle->count; + } + + /* If we don't manage this address, pass the request up to the parent. */ + rle = acpi_sysres_find(type, start); + if (rle == NULL) { + return (BUS_ALLOC_RESOURCE(device_get_parent(bus), child, type, rid, + start, end, count, flags)); + } - return (resource_list_alloc(rl, bus, child, type, rid, start, end, count, - flags)); + /* We only handle memory and IO resources through rman. */ + switch (type) { + case SYS_RES_IOPORT: + rm = &acpi_rman_io; + break; + case SYS_RES_MEMORY: + rm = &acpi_rman_mem; + break; + default: + panic("acpi_alloc_resource: invalid res type %d", type); + } + + /* If we do know it, allocate it from the local pool. */ + needactivate = flags & RF_ACTIVE; + flags &= ~RF_ACTIVE; + res = rman_reserve_resource(rm, start, end, count, flags, child); + if (res == NULL) + return (NULL); + + /* Copy the bus tag from the pre-allocated resource. */ + rman_set_bustag(res, rman_get_bustag(rle->res)); + if (type == SYS_RES_IOPORT) + rman_set_bushandle(res, res->r_start); + + /* If requested, activate the resource using the parent's method. */ + if (needactivate) + if (bus_activate_resource(child, type, *rid, res) != 0) { + rman_release_resource(res); + return (NULL); + } + + return (res); } static int -acpi_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r) +acpi_release_resource(device_t bus, device_t child, int type, int rid, + struct resource *r) { - struct acpi_device *ad = device_get_ivars(child); - struct resource_list *rl = &ad->ad_rl; + int ret; + + /* + * If we know about this address, deactivate it and release it to the + * local pool. If we don't, pass this request up to the parent. + */ + if (acpi_sysres_find(type, rman_get_start(r)) == NULL) { + if (rman_get_flags(r) & RF_ACTIVE) { + ret = bus_deactivate_resource(child, type, rid, r); + if (ret != 0) + return (ret); + } + ret = rman_release_resource(r); + } else + ret = BUS_RELEASE_RESOURCE(device_get_parent(bus), child, type, rid, r); - return (resource_list_release(rl, bus, child, type, rid, r)); + return (ret); } /* Allocate an IO port or memory resource, given its GAS. */ @@ -1043,8 +1104,8 @@ { ACPI_HANDLE parent; ACPI_STATUS status; + int i; static char *scopes[] = {"\\_PR_", "\\_TZ_", "\\_SI", "\\_SB_", NULL}; - int i; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ACPI_ASSERTLOCK; @@ -1091,6 +1152,28 @@ return_VOID; } +static int +acpi_probe_order(ACPI_HANDLE handle, int level, int *order) +{ + int ret; + + ret = 0; + /* IO port and memory system resource holders are first. */ + if (acpi_MatchHid(handle, "PNP0C01") || acpi_MatchHid(handle, "PNP0C02")) { + *order = 1; + ret = 1; + } + + /* The embedded controller is needed to handle accesses early. */ + if (acpi_MatchHid(handle, "PNP0C09")) { + *order = 2; + ret = 1; + } + + *order = (level + 1) * 10; + return (ret); +} + /* * Evaluate a child device and determine whether we might attach a device to * it. @@ -1099,7 +1182,8 @@ acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status) { ACPI_OBJECT_TYPE type; - device_t child, bus = (device_t)context; + device_t child, bus; + int order, probe_now; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -1107,6 +1191,7 @@ if (acpi_avoid(handle)) return_ACPI_STATUS (AE_OK); + bus = (device_t)context; if (ACPI_SUCCESS(AcpiGetType(handle, &type))) { switch(type) { case ACPI_TYPE_DEVICE: @@ -1122,7 +1207,8 @@ */ ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "scanning '%s'\n", acpi_name(handle))); - child = BUS_ADD_CHILD(bus, level * 10, NULL, -1); + probe_now = acpi_probe_order(handle, level, &order); + child = BUS_ADD_CHILD(bus, order, NULL, -1); if (child == NULL) break; @@ -1154,6 +1240,8 @@ acpi_parse_resources(child, handle, &acpi_res_parse_set, NULL); /* If we're debugging, probe/attach now rather than later */ + if (probe_now) + device_probe_and_attach(child); ACPI_DEBUG_EXEC(device_probe_and_attach(child)); break; } @@ -1342,13 +1430,12 @@ } /* - * Match a HID string against a device + * Match a HID string against a handle */ BOOLEAN -acpi_MatchHid(device_t dev, char *hid) +acpi_MatchHid(ACPI_HANDLE h, char *hid) { ACPI_DEVICE_INFO *devinfo; - ACPI_HANDLE h; ACPI_BUFFER buf; ACPI_STATUS error; int ret, i; @@ -1356,15 +1443,13 @@ ACPI_ASSERTLOCK; ret = FALSE; - if (hid == NULL) - return (FALSE); - if ((h = acpi_get_handle(dev)) == NULL) - return (FALSE); + if (hid == NULL || h == NULL) + return (ret); buf.Pointer = NULL; buf.Length = ACPI_ALLOCATE_BUFFER; error = AcpiGetObjectInfo(h, &buf); if (ACPI_FAILURE(error)) - return (FALSE); + return (ret); devinfo = (ACPI_DEVICE_INFO *)buf.Pointer; if ((devinfo->Valid & ACPI_VALID_HID) != 0 && ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_acad.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/dev/acpica/acpi_acad.c,v 1.26 2004/05/30 20:08:23 phk Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_acad.c,v 1.27 2004/06/13 22:52:30 njl Exp $ */ #include "opt_acpi.h" @@ -137,7 +137,7 @@ acpi_acad_probe(device_t dev) { if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("acad") && - acpi_MatchHid(dev, "ACPI0003")) { + acpi_MatchHid(acpi_get_handle(dev), "ACPI0003")) { device_set_desc(dev, "AC Adapter"); return (0); } ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_button.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.26 2004/05/30 20:08:23 phk Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_button.c,v 1.27 2004/06/13 22:52:30 njl Exp $ */ #include "opt_acpi.h" @@ -90,24 +90,26 @@ acpi_button_probe(device_t dev) { struct acpi_button_softc *sc; + ACPI_HANDLE h; int ret = ENXIO; + h = acpi_get_handle(dev); sc = device_get_softc(dev); if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("button")) { - if (acpi_MatchHid(dev, "PNP0C0C")) { + if (acpi_MatchHid(h, "PNP0C0C")) { device_set_desc(dev, "Power Button"); sc->button_type = ACPI_POWER_BUTTON; ret = 0; - } else if (acpi_MatchHid(dev, "ACPI_FPB")) { + } else if (acpi_MatchHid(h, "ACPI_FPB")) { device_set_desc(dev, "Power Button (fixed)"); sc->button_type = ACPI_POWER_BUTTON; sc->fixed = 1; ret = 0; - } else if (acpi_MatchHid(dev, "PNP0C0E")) { + } else if (acpi_MatchHid(h, "PNP0C0E")) { device_set_desc(dev, "Sleep Button"); sc->button_type = ACPI_SLEEP_BUTTON; ret = 0; - } else if (acpi_MatchHid(dev, "ACPI_FSB")) { + } else if (acpi_MatchHid(h, "ACPI_FSB")) { device_set_desc(dev, "Sleep Button (fixed)"); sc->button_type = ACPI_SLEEP_BUTTON; sc->fixed = 1; ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_cmbat.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.29 2004/05/30 20:08:23 phk Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.30 2004/06/13 22:52:30 njl Exp $ */ #include "opt_acpi.h" @@ -291,8 +291,8 @@ static int acpi_cmbat_probe(device_t dev) { - if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && - !acpi_disabled("cmbat") && acpi_MatchHid(dev, "PNP0C0A")) { + if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("cmbat") + && acpi_MatchHid(acpi_get_handle(dev), "PNP0C0A")) { device_set_desc(dev, "Control Method Battery"); return (0); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_ec.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.51 2004/05/30 20:08:23 phk Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.52 2004/06/13 22:52:30 njl Exp $ */ /****************************************************************************** * @@ -137,7 +137,7 @@ *****************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.51 2004/05/30 20:08:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.52 2004/06/13 22:52:30 njl Exp $"); #include "opt_acpi.h" #include @@ -454,7 +454,7 @@ if (DEV_ECDT(dev)) { params = acpi_get_private(dev); ret = 0; - } else if (acpi_MatchHid(dev, "PNP0C09")) { + } else if (acpi_MatchHid(acpi_get_handle(dev), "PNP0C09")) { params = malloc(sizeof(struct acpi_ec_params), M_TEMP, M_WAITOK | M_ZERO); h = acpi_get_handle(dev); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_isab.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.7 2004/05/30 20:08:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_isab.c,v 1.8 2004/06/13 22:52:30 njl Exp $"); /* * ISA Bridge driver for Generic ISA Bus Devices. See section 10.7 of the @@ -90,11 +90,13 @@ static int acpi_isab_probe(device_t dev) { + ACPI_HANDLE h; + h = acpi_get_handle(dev); if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("isa") && devclass_get_device(isab_devclass, 0) == dev && - (acpi_MatchHid(dev, "PNP0A05") || acpi_MatchHid(dev, "PNP0A06"))) { + (acpi_MatchHid(h, "PNP0A05") || acpi_MatchHid(h, "PNP0A06"))) { device_set_desc(dev, "ACPI Generic ISA bridge"); return (0); } ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_lid.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.22 2004/05/30 20:08:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_lid.c,v 1.23 2004/06/13 22:52:30 njl Exp $"); #include "opt_acpi.h" #include @@ -82,7 +82,7 @@ acpi_lid_probe(device_t dev) { if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("lid") && - acpi_MatchHid(dev, "PNP0C0D")) { + acpi_MatchHid(acpi_get_handle(dev), "PNP0C0D")) { device_set_desc(dev, "Control Method Lid Switch"); return (0); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_pcib_acpi.c#5 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.34 2004/05/30 20:08:23 phk Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_pcib_acpi.c,v 1.35 2004/06/13 22:52:30 njl Exp $ */ #include "opt_acpi.h" #include @@ -117,7 +117,7 @@ { if (acpi_get_type(dev) == ACPI_TYPE_DEVICE && !acpi_disabled("pci") && - acpi_MatchHid(dev, "PNP0A03")) { + acpi_MatchHid(acpi_get_handle(dev), "PNP0A03")) { if (pci_cfgregopen() == 0) return (ENXIO); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_resource.c#6 (text+ko) ==== @@ -26,12 +26,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.24 2004/05/30 20:08:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_resource.c,v 1.25 2004/06/13 22:52:30 njl Exp $"); #include "opt_acpi.h" #include #include #include +#include #include #include @@ -537,72 +538,125 @@ } /* - * Resource-owning placeholders. + * Resource-owning placeholders for IO and memory pseudo-devices. * - * This code "owns" system resource objects that aren't - * otherwise useful to devices, and which shouldn't be - * considered "free". - * - * Note that some systems claim *all* of the physical address space - * with a PNP0C01 device, so we cannot correctly "own" system memory - * here (must be done in the SMAP handler on x86 systems, for - * example). + * This code allocates system resource objects that will be owned by ACPI + * child devices. Really, the acpi parent device should have the resources + * but this would significantly affect the device probe code. */ -static int acpi_sysresource_probe(device_t dev); -static int acpi_sysresource_attach(device_t dev); +static int acpi_sysres_probe(device_t dev); +static int acpi_sysres_attach(device_t dev); -static device_method_t acpi_sysresource_methods[] = { +static device_method_t acpi_sysres_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, acpi_sysresource_probe), - DEVMETHOD(device_attach, acpi_sysresource_attach), + DEVMETHOD(device_probe, acpi_sysres_probe), + DEVMETHOD(device_attach, acpi_sysres_attach), {0, 0} }; -static driver_t acpi_sysresource_driver = { +static driver_t acpi_sysres_driver = { "acpi_sysresource", - acpi_sysresource_methods, + acpi_sysres_methods, 0, }; -static devclass_t acpi_sysresource_devclass; -DRIVER_MODULE(acpi_sysresource, acpi, acpi_sysresource_driver, - acpi_sysresource_devclass, 0, 0); +static devclass_t acpi_sysres_devclass; +DRIVER_MODULE(acpi_sysresource, acpi, acpi_sysres_driver, acpi_sysres_devclass, + 0, 0); MODULE_DEPEND(acpi_sysresource, acpi, 1, 1, 1); static int -acpi_sysresource_probe(device_t dev) +acpi_sysres_probe(device_t dev) { - if (!acpi_disabled("sysresource") && acpi_MatchHid(dev, "PNP0C02")) - device_set_desc(dev, "System Resource"); - else + ACPI_HANDLE h; + + h = acpi_get_handle(dev); + if (acpi_disabled("sysresource") || + (!acpi_MatchHid(h, "PNP0C01") && !acpi_MatchHid(h, "PNP0C02"))) return (ENXIO); + device_set_desc(dev, "System Resource"); device_quiet(dev); return (-100); } static int -acpi_sysresource_attach(device_t dev) +acpi_sysres_attach(device_t dev) { - struct resource *res; - int i, rid; + device_t gparent; + struct resource *res; + struct rman *rm; + struct resource_list_entry *rle; + struct resource_list *rl; /* - * Suck up all the resources that might have been assigned to us. - * Note that it's impossible to tell the difference between a - * resource that someone else has claimed, and one that doesn't - * exist. + * Pre-allocate/manage all memory and IO resources. We detect duplicates + * by setting rle->res to the resource we got from the parent. We can't + * ignore them since rman can't handle duplicates. */ - for (i = 0; i < 100; i++) { - rid = i; - res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, &rid, 0); - rid = i; - res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, 0); - rid = i; - res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE); + rl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); + SLIST_FOREACH(rle, rl, link) { + if (rle->res != NULL) { + device_printf(dev, "duplicate resource for %lx\n", rle->start); + continue; + } + + /* Only memory and IO resources are valid here. */ + switch (rle->type) { + case SYS_RES_IOPORT: + rm = &acpi_rman_io; + break; + case SYS_RES_MEMORY: + rm = &acpi_rman_mem; + break; + default: + continue; + } + + /* Pre-allocate resource and add to our rman pool. */ + gparent = device_get_parent(device_get_parent(dev)); + res = BUS_ALLOC_RESOURCE(gparent, dev, rle->type, &rle->rid, + rle->start, rle->start + rle->count - 1, rle->count, 0); + if (res != NULL) { + rman_manage_region(rm, rman_get_start(res), rman_get_end(res)); + rle->res = res; + } } return (0); } + +struct resource_list_entry * +acpi_sysres_find(int type, u_long addr) +{ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 14 02:34:07 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD2A016A4D1; Mon, 14 Jun 2004 02:34:06 +0000 (GMT) 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 8379916A4CE for ; Mon, 14 Jun 2004 02:34:06 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C68B43D5A for ; Mon, 14 Jun 2004 02:34:06 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E2Y4EU039700 for ; Mon, 14 Jun 2004 02:34:04 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E2Y3b5039697 for perforce@freebsd.org; Mon, 14 Jun 2004 02:34:03 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 02:34:03 GMT Message-Id: <200406140234.i5E2Y3b5039697@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 54886 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, 14 Jun 2004 02:34:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=54886 Change 54886 by jmallett@jmallett_oingo on 2004/06/14 02:33:06 Synch ip22 int code from NetBSD, including timecounter code, which is all I want in a NetBSD-derived ip22.c for now. Lose the cache stuff, I'm avoiding the hell out of caches right now anyway. This also means we have actual interrupt code here! Now to go make some busses consume it. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/int2reg.h#1 add .. //depot/projects/mips/sys/mips/sgimips/int2var.h#1 add .. //depot/projects/mips/sys/mips/sgimips/intr.h#6 edit .. //depot/projects/mips/sys/mips/sgimips/ip22.c#8 edit .. //depot/projects/mips/sys/mips/sgimips/models.h#2 edit .. //depot/projects/mips/sys/mips/sgimips/timerreg.h#1 add Differences ... ==== //depot/projects/mips/sys/mips/sgimips/intr.h#6 (text+ko) ==== @@ -23,12 +23,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#5 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#6 $ */ #ifndef _SGIMIPS_INTR_H_ #define _SGIMIPS_INTR_H_ +#define NINTR 32 + void platform_establish_hardintr(int, void (*)(void *), void *); void platform_establish_softintr(int, void (*)(void *), void *); ==== //depot/projects/mips/sys/mips/sgimips/ip22.c#8 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $NetBSD: ip22.c,v 1.14 2002/11/09 19:21:12 thorpej Exp $ */ +/* $NetBSD: int.c,v 1.7 2004/04/11 12:05:37 pooka Exp $ */ /* - * Copyright (c) 2001, 2002 Rafal K. Boni + * Copyright (c) 2004 Christopher SEKIYA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,128 +27,255 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* + * INT/INT2/INT3 interrupt controller (used in Indy's, Indigo's, etc..) + */ + +#include +#ifdef __KERNEL_RCSID +__KERNEL_RCSID(0, "$NetBSD: int.c,v 1.7 2004/04/11 12:05:37 pooka Exp $"); +#endif +__FBSDID("$FreeBSD$"); + #include #include #include #include -#include -#include -#include +#include #include - +#include +#include #include #include #include +#include -static u_int32_t iocwrite; /* IOC write register: read-only */ -static u_int32_t iocreset; /* IOC reset register: read-only */ +static bus_space_handle_t ioh; +static bus_space_tag_t iot; -void ip22_watchdog(int); -unsigned long ip22_cal_timer(u_int32_t, u_int32_t); +static void int_local0_intr(void *); +static void int_local1_intr(void *); +static void int_mappable_intr(void *); +static unsigned long int_cal_timer(void); +static void ip22_watchdog(int); -/* ip22_cache.S */ -extern void ip22_sdcache_enable(void); -extern void ip22_sdcache_disable(void); +static struct intrhand { + void (*ih_fun)(void *); + void *ih_arg; +} intrtab[NINTR]; void ip22_init(void) { - u_int i; - u_int32_t sysid; - u_int32_t int23addr; - unsigned long cps; - unsigned long ctrdiff[3]; + u_int32_t address; + + if (mach_type == MACH_SGI_IP22) { + printf("int: "); + if (mach_subtype == MACH_SGI_IP22_FULLHOUSE) { + printf("IP22"); + address = INT_IP22; + } else { + printf("IP24"); + address = INT_IP24; + } + } else + panic("int0: passed match, but failed attach?"); + + printf(" addr 0x%x", address); + +#if notyet + bus_space_map(iot, address, 0, 0, &ioh); +#else + ioh = address; +#endif + iot = device_space_tag; + + /* Clean out interrupt masks */ + bus_space_write_4(iot, ioh, INT2_LOCAL0_MASK, 0); + bus_space_write_4(iot, ioh, INT2_LOCAL1_MASK, 0); + bus_space_write_4(iot, ioh, INT2_MAP_MASK0, 0); + bus_space_write_4(iot, ioh, INT2_MAP_MASK1, 0); + + /* Reset timer interrupts */ + bus_space_write_4(iot, ioh, INT2_TIMER_CLEAR, 0x03); + + switch (mach_type) { + case MACH_SGI_IP22: + { + int i; + unsigned long cps; + unsigned long ctrdiff[3]; + + platform_establish_hardintr(0, int_local0_intr, NULL); + platform_establish_hardintr(1, int_local1_intr, NULL); + + /* calibrate timer */ + int_cal_timer(); + + cps = 0; + for (i = 0; + i < sizeof(ctrdiff) / sizeof(ctrdiff[0]); i++) { + do { + ctrdiff[i] = int_cal_timer(); + } while (ctrdiff[i] == 0); + + cps += ctrdiff[i]; + } + + cps = cps / (sizeof(ctrdiff) / sizeof(ctrdiff[0])); + + printf(": bus %luMHz, CPU %luMHz", cps / 10000, cps / 5000); + + /* R4k/R4400/R4600/R5k count at half CPU frequency */ + curcpu()->ci_cpu_freq = 2 * cps * hz; + break; + } + default: + panic("int0: unsupported machine type %i\n", mach_type); + break; + } + + printf("\n"); + + curcpu()->ci_cycles_per_hz = curcpu()->ci_cpu_freq / (2 * hz); + curcpu()->ci_divisor_delay = curcpu()->ci_cpu_freq / (2 * 1000000); + MIPS_SET_CI_RECIPRICAL(curcpu()); + + if (mach_type == MACH_SGI_IP22) { + /* Wire interrupts 7, 11 to mappable interrupt 0,1 handlers */ + intrtab[7].ih_fun = int_mappable_intr; + intrtab[7].ih_arg = (void*) 0; + + intrtab[11].ih_fun = int_mappable_intr; + intrtab[11].ih_arg = (void*) 1; + } /* enable watchdog timer, clear it */ - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fa00004) |= 0x100; + platform.watchdog = ip22_watchdog; + (*platform.watchdog)(1); *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fa00014) = 0; +} - sysid = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd9858); +static void +int_mappable_intr(void *arg) +{ + int i; + int intnum; + u_int32_t mstat; + u_int32_t mmask; + long which = (long)arg; - if (sysid & 1) - mach_subtype = MACH_SGI_IP22_FULLHOUSE; - else - mach_subtype = MACH_SGI_IP22_GUINESS; + mstat = bus_space_read_4(iot, ioh, INT2_MAP_STATUS); + mmask = bus_space_read_4(iot, ioh, INT2_MAP_MASK0 + (which << 2)); - mach_boardrev = (sysid >> 1) & 0x0f; + mstat &= mmask; - printf("IOC rev %d, machine %s, board rev %d\n", (sysid >> 5) & 0x07, - (sysid & 1) ? "Indigo2 (Fullhouse)" : "Indy (Guiness)", - (sysid >> 1) & 0x0f); + for (i = 0; i < 8; i++) { + intnum = i + 16 + (which << 3); + if (mstat & (1 << i)) { + if (intrtab[intnum].ih_fun != NULL) + (intrtab[intnum].ih_fun)(intrtab[intnum].ih_arg); + else + printf("int0: unexpected mapped interrupt %d\n", + intnum); + } + } +} - if (mach_subtype == MACH_SGI_IP22_FULLHOUSE) - int23addr = 0x1fbd9000; - else - int23addr = 0x1fbd9880; +static void +int_local0_intr(void *arg) +{ + int i; + u_int32_t l0stat; + u_int32_t l0mask; - /* Reset timer interrupts */ - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(int23addr + 0x20) = 3; + l0stat = bus_space_read_4(iot, ioh, INT2_LOCAL0_STATUS); + l0mask = bus_space_read_4(iot, ioh, INT2_LOCAL0_MASK); - /* - * Reset Parallel port, Keyboard/mouse and EISA. Turn LED off. - * For Fullhouse, toggle magic GIO reset bit. - */ - iocreset = 0x17; - if (mach_subtype == MACH_SGI_IP22_FULLHOUSE) - iocreset |= 0x08; + l0stat &= l0mask; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd9870) = iocreset; + for (i = 0; i < 8; i++) { + if (l0stat & (1 << i)) { + if (intrtab[i].ih_fun != NULL) + (intrtab[i].ih_fun)(intrtab[i].ih_arg); + else + printf("int0: unexpected local0 interrupt %d\n", + i); + } + } +} - /* - * Set the 10BaseT port to use UTP cable, set autoselect mode for - * the ethernet interface (AUI vs. TP), set the two serial ports - * to PC mode. - */ - iocwrite = 0x3a; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd9878) = iocwrite; +static void +int_local1_intr(void *arg) +{ + int i; + u_int32_t l1stat; + u_int32_t l1mask; - /* Clean out interrupt masks */ - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(int23addr + 0x04) = 0x00; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(int23addr + 0x0c) = 0x00; + l1stat = bus_space_read_4(iot, ioh, INT2_LOCAL1_STATUS); + l1mask = bus_space_read_4(iot, ioh, INT2_LOCAL1_MASK); - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(int23addr + 0x14) = 0x00; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(int23addr + 0x18) = 0x00; + l1stat &= l1mask; - /* Set the general control registers for Guiness */ - if (mach_subtype == MACH_SGI_IP22_GUINESS) { - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd9848) = 0xff; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd984c) = 0xff; + for (i = 0; i < 8; i++) { + if (l1stat & (1 << i)) { + if (intrtab[8 + i].ih_fun != NULL) + (intrtab[8 + i].ih_fun)(intrtab[8 + i].ih_arg); + else + printf("int0: unexpected local1 interrupt %x\n", + 8 + i); + } } +} - platform.watchdog = ip22_watchdog; +void +ip22_intr_establish(int level, void (*handler)(void *), void *arg) +{ + u_int32_t mask; - /* Prime cache */ - ip22_cal_timer(int23addr + 0x3c, int23addr + 0x38); + if (level < 0 || level >= NINTR) + panic("invalid interrupt level"); - cps = 0; - for(i = 0; i < sizeof(ctrdiff) / sizeof(ctrdiff[0]); i++) { - do { - ctrdiff[i] = ip22_cal_timer(int23addr + 0x3c, - int23addr + 0x38); - } while (ctrdiff[i] == 0); - - cps += ctrdiff[i]; + if (intrtab[level].ih_fun != NULL) { + printf("int0: cannot share interrupts yet.\n"); + return; } - cps = cps / (sizeof(ctrdiff) / sizeof(ctrdiff[0])); + intrtab[level].ih_fun = handler; + intrtab[level].ih_arg = arg; - printf("Timer calibration, got %lu cycles (%lu, %lu, %lu)\n", cps, - ctrdiff[0], ctrdiff[1], ctrdiff[2]); + if (level < 8) { + mask = bus_space_read_4(iot, ioh, INT2_LOCAL0_MASK); + mask |= (1 << level); + bus_space_write_4(iot, ioh, INT2_LOCAL0_MASK, mask); + } else if (level < 16) { + mask = bus_space_read_4(iot, ioh, INT2_LOCAL1_MASK); + mask |= (1 << (level - 8)); + bus_space_write_4(iot, ioh, INT2_LOCAL1_MASK, mask); + } else if (level < 24) { + /* Map0 interrupt maps to l0 bit 7, so turn that on too */ + mask = bus_space_read_4(iot, ioh, INT2_LOCAL0_MASK); + mask |= (1 << 7); + bus_space_write_4(iot, ioh, INT2_LOCAL0_MASK, mask); - /* Counter on R4k/R4400/R4600/R5k counts at half the CPU frequency */ - curcpu()->ci_cpu_freq = 2 * cps * hz; - curcpu()->ci_cycles_per_hz = curcpu()->ci_cpu_freq / (2 * hz); - curcpu()->ci_divisor_delay = curcpu()->ci_cpu_freq / (2 * 1000000); - MIPS_SET_CI_RECIPRICAL(curcpu()); + mask = bus_space_read_4(iot, ioh, INT2_MAP_MASK0); + mask |= (1 << (level - 16)); + bus_space_write_4(iot, ioh, INT2_MAP_MASK0, mask); + } else { + /* Map1 interrupt maps to l1 bit 3, so turn that on too */ + mask = bus_space_read_4(iot, ioh, INT2_LOCAL1_MASK); + mask |= (1 << 3); + bus_space_write_4(iot, ioh, INT2_LOCAL1_MASK, mask); - printf("CPU clock speed = %lu.%02luMhz\n", - curcpu()->ci_cpu_freq / 1000000, - (curcpu()->ci_cpu_freq / 10000) % 100); + mask = bus_space_read_4(iot, ioh, INT2_MAP_MASK1); + mask |= (1 << (level - 24)); + bus_space_write_4(iot, ioh, INT2_MAP_MASK1, mask); + } } -unsigned long -ip22_cal_timer(u_int32_t tctrl, u_int32_t tcount) +static unsigned long +int_cal_timer(void) { int s; int roundtime; @@ -167,58 +294,32 @@ s = splhigh(); - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tctrl) = 0x80 | 0x30 | 0x04; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) = sampletime & 0xff; - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) = sampletime >> 8; + bus_space_write_4(iot, ioh, INT2_TIMER_CONTROL, + ( TIMER_SEL2 | TIMER_16BIT | TIMER_RATEGEN) ); + bus_space_write_4(iot, ioh, INT2_TIMER_2, (sampletime & 0xff)); + bus_space_write_4(iot, ioh, INT2_TIMER_2, (sampletime >> 8)); startctr = mips_rd_count(); /* Wait for the MSB to count down to zero */ do { - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tctrl) = 0x80 | 0x00; - lsb = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) & 0xff; - msb = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tcount) & 0xff; + bus_space_write_4(iot, ioh, INT2_TIMER_CONTROL, TIMER_SEL2 ); + lsb = bus_space_read_4(iot, ioh, INT2_TIMER_2) & 0xff; + msb = bus_space_read_4(iot, ioh, INT2_TIMER_2) & 0xff; endctr = mips_rd_count(); } while (msb); /* Turn off timer */ - *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(tctrl) = 0x80 | 0x30 | 0x08; + bus_space_write_4(iot, ioh, INT2_TIMER_CONTROL, + ( TIMER_SEL2 | TIMER_16BIT | TIMER_SWSTROBE) ); splx(s); return (endctr - startctr) / roundtime * roundtime; } -void ip22_cache_init(void); - -void -ip22_cache_init(void) -{ - - /* - * If we don't have an R4000-style cache, then initialize the - * IP22 SysAD L2 cache. - * - * XXX: For now we disable the SysAD cache on R4600/R5k systems, - * as there's no code to drive it; also make sure to clear the - * flags used by the generic MIPS code so it doesn't attempt to - * use the L2. - */ - switch (MIPS_PRID_IMPL(cpu_id)) { - case MIPS_R4600: -#ifndef ENABLE_MIPS_R3NKK - case MIPS_R5000: -#endif - mips_sdcache_size = 0; - mips_sdcache_line_size = 0; - printf("disabling IP22 SysAD L2 cache\n"); - ip22_sdcache_disable(); - break; - } -} - -void +static void ip22_watchdog(int enable) { if (enable) ==== //depot/projects/mips/sys/mips/sgimips/models.h#2 (text+ko) ==== @@ -38,5 +38,6 @@ extern int mach_boardrev; /* machine board revision, in case it matters */ void ip22_init(void); +void ip22_intr_establish(int, void (*)(void *), void *); #endif /* _SGIMIPS_MODELS_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 02:58:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C262D16A4D1; Mon, 14 Jun 2004 02:58:38 +0000 (GMT) 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 93D2416A4CE for ; Mon, 14 Jun 2004 02:58:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7640D43D39 for ; Mon, 14 Jun 2004 02:58:38 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E2wYQj043951 for ; Mon, 14 Jun 2004 02:58:34 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E2wYI6043948 for perforce@freebsd.org; Mon, 14 Jun 2004 02:58:34 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 02:58:34 GMT Message-Id: <200406140258.i5E2wYI6043948@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 54887 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, 14 Jun 2004 02:58:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=54887 Change 54887 by jmallett@jmallett_oingo on 2004/06/14 02:57:52 NFS_ROOT and MD_ROOT options. Affected files ... .. //depot/projects/mips/sys/mips/conf/INDY#10 edit Differences ... ==== //depot/projects/mips/sys/mips/conf/INDY#10 (text+ko) ==== @@ -35,6 +35,8 @@ options INET options NFSCLIENT options NFSSERVER +options NFS_ROOT +options MD_ROOT options PROCFS options PSEUDOFS device random From owner-p4-projects@FreeBSD.ORG Mon Jun 14 04:16:13 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92A5C16A4D1; Mon, 14 Jun 2004 04:16:13 +0000 (GMT) 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 6E17D16A4CE for ; Mon, 14 Jun 2004 04:16:13 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6728F43D41 for ; Mon, 14 Jun 2004 04:16:13 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5E4GDwI062645 for ; Mon, 14 Jun 2004 04:16:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E4GCOl062642 for perforce@freebsd.org; Mon, 14 Jun 2004 04:16:12 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 14 Jun 2004 04:16:12 GMT Message-Id: <200406140416.i5E4GCOl062642@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 54895 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, 14 Jun 2004 04:16:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=54895 Change 54895 by rwatson@rwatson_tislabs on 2004/06/14 04:15:50 Integrate netperf_socket: ALTQ build fix. Affected files ... .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#23 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_asus.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#6 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#12 integrate Differences ... ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#23 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.159 2004/06/13 22:52:30 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.161 2004/06/14 04:01:12 njl Exp $ */ #include "opt_acpi.h" @@ -125,6 +125,7 @@ static int acpi_isa_pnp_probe(device_t bus, device_t child, struct isa_pnp_id *ids); static void acpi_probe_children(device_t bus); +static int acpi_probe_order(ACPI_HANDLE handle, int *order); static ACPI_STATUS acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status); static void acpi_shutdown_pre_sync(void *arg, int howto); @@ -1152,25 +1153,31 @@ return_VOID; } +/* + * Determine the probe order for a given device and return non-zero if it + * should be attached immediately. + */ static int -acpi_probe_order(ACPI_HANDLE handle, int level, int *order) +acpi_probe_order(ACPI_HANDLE handle, int *order) { int ret; + /* + * 1. I/O port and memory system resource holders + * 2. Embedded controllers (to handle early accesses) + */ ret = 0; - /* IO port and memory system resource holders are first. */ if (acpi_MatchHid(handle, "PNP0C01") || acpi_MatchHid(handle, "PNP0C02")) { *order = 1; ret = 1; - } - - /* The embedded controller is needed to handle accesses early. */ - if (acpi_MatchHid(handle, "PNP0C09")) { + } else if (acpi_MatchHid(handle, "PNP0C09")) { *order = 2; ret = 1; } - *order = (level + 1) * 10; + /* Always probe/attach immediately if we're debugging. */ + ACPI_DEBUG_EXEC(ret = 1); + return (ret); } @@ -1203,11 +1210,14 @@ /* * Create a placeholder device for this node. Sort the placeholder - * so that the probe/attach passes will run breadth-first. + * so that the probe/attach passes will run breadth-first. Orders + * less than 10 are reserved for special objects (i.e., system + * resources). Larger values are used for all other devices. */ ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "scanning '%s'\n", acpi_name(handle))); - probe_now = acpi_probe_order(handle, level, &order); + order = (level + 1) * 10; + probe_now = acpi_probe_order(handle, &order); child = BUS_ADD_CHILD(bus, order, NULL, -1); if (child == NULL) break; @@ -1239,10 +1249,9 @@ */ acpi_parse_resources(child, handle, &acpi_res_parse_set, NULL); - /* If we're debugging, probe/attach now rather than later */ + /* If order was overridden, probe/attach now rather than later. */ if (probe_now) device_probe_and_attach(child); - ACPI_DEBUG_EXEC(device_probe_and_attach(child)); break; } } ==== //depot/projects/netperf_socket/sys/i386/acpica/acpi_asus.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_asus.c,v 1.3 2004/05/30 20:34:56 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_asus.c,v 1.4 2004/06/14 03:40:56 njl Exp $"); /* * Driver for extra ACPI-controlled gadgets (hotkeys, leds, etc) found on @@ -213,7 +213,7 @@ if (!acpi_disabled("asus") && acpi_get_type(dev) == ACPI_TYPE_DEVICE && - acpi_MatchHid(dev, "ATK0100")) { + acpi_MatchHid(acpi_get_handle(dev), "ATK0100")) { sc = device_get_softc(dev); sc->dev = dev; sc->handle = acpi_get_handle(dev); ==== //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_toshiba.c,v 1.8 2004/05/30 20:34:56 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_toshiba.c,v 1.9 2004/06/14 03:40:56 njl Exp $"); #include "opt_acpi.h" #include @@ -212,13 +212,15 @@ static int acpi_toshiba_probe(device_t dev) { + ACPI_HANDLE h; int ret = ENXIO; + h = acpi_get_handle(dev); if (!acpi_disabled("toshiba") && acpi_get_type(dev) == ACPI_TYPE_DEVICE && device_get_unit(dev) == 0 && - (acpi_MatchHid(dev, "TOS6200") || - acpi_MatchHid(dev, "TOS6207"))) { + (acpi_MatchHid(h, "TOS6200") || + acpi_MatchHid(h, "TOS6207"))) { device_set_desc(dev, "Toshiba HCI Extras"); ret = 0; } ==== //depot/projects/netperf_socket/sys/net/if_var.h#12 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * From: @(#)if.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/net/if_var.h,v 1.75 2004/06/13 17:29:08 mlaier Exp $ + * $FreeBSD: src/sys/net/if_var.h,v 1.76 2004/06/14 03:55:09 mlaier Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -356,7 +356,7 @@ (*ifp->if_start)(ifp); return (1); } -#if 1 /* ALTQ */ +#ifdef ALTQ #define IFQ_ENQUEUE(ifq, m, err) \ do { \ IF_LOCK(ifq); \ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 04:21:29 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4345F16A4D3; Mon, 14 Jun 2004 04:21:29 +0000 (GMT) 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 19B6816A4D0 for ; Mon, 14 Jun 2004 04:21:29 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1072443D41 for ; Mon, 14 Jun 2004 04:21:29 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E4LKVD063470 for ; Mon, 14 Jun 2004 04:21:20 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E4LKm5063464 for perforce@freebsd.org; Mon, 14 Jun 2004 04:21:20 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 04:21:20 GMT Message-Id: <200406140421.i5E4LKm5063464@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 54897 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, 14 Jun 2004 04:21:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=54897 Change 54897 by marcel@marcel_nfs on 2004/06/14 04:20:41 Now that the unwind context can be created from the PCB as well as the trapframe, we cannot dereference the frame pointer for the registers the unwinder wants us to copyin. We need to fetch them from the PCB if appropriate. While here, replace some backstore pointer magic with the new convenience macros/functions. Affected files ... .. //depot/projects/gdb/sys/ia64/ia64/unwind.c#5 edit Differences ... ==== //depot/projects/gdb/sys/ia64/ia64/unwind.c#5 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 Marcel Moolenaar + * Copyright (c) 2003, 2004 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -156,11 +157,101 @@ return (NULL); } +static uint64_t +unw_copyin_from_frame(struct trapframe *tf, uint64_t from) +{ + uint64_t val; + int reg; + + if (from == UWX_REG_AR_PFS) + val = tf->tf_special.pfs; + else if (from == UWX_REG_PREDS) + val = tf->tf_special.pr; + else if (from == UWX_REG_AR_RNAT) + val = tf->tf_special.rnat; + else if (from == UWX_REG_AR_UNAT) + val = tf->tf_special.unat; + else if (from >= UWX_REG_GR(0) && from <= UWX_REG_GR(127)) { + reg = from - UWX_REG_GR(0); + if (reg == 1) + val = tf->tf_special.gp; + else if (reg == 12) + val = tf->tf_special.sp; + else if (reg == 13) + val = tf->tf_special.tp; + else if (reg >= 2 && reg <= 3) + val = (&tf->tf_scratch.gr2)[reg - 2]; + else if (reg >= 8 && reg <= 11) + val = (&tf->tf_scratch.gr8)[reg - 8]; + else if (reg >= 14 && reg <= 31) + val = (&tf->tf_scratch.gr14)[reg - 14]; + else + goto oops; + } else if (from >= UWX_REG_BR(0) && from <= UWX_REG_BR(7)) { + reg = from - UWX_REG_BR(0); + if (reg == 0) + val = tf->tf_special.rp; + else if (reg >= 6 && reg <= 7) + val = (&tf->tf_scratch.br6)[reg - 6]; + else + goto oops; + } else + goto oops; + return (val); + + oops: + printf("UNW: %s(%p, %lx)\n", __func__, tf, from); + return (0UL); +} + +static uint64_t +unw_copyin_from_pcb(struct pcb *pcb, uint64_t from) +{ + uint64_t val; + int reg; + + if (from == UWX_REG_AR_PFS) + val = pcb->pcb_special.pfs; + else if (from == UWX_REG_PREDS) + val = pcb->pcb_special.pr; + else if (from == UWX_REG_AR_RNAT) + val = pcb->pcb_special.rnat; + else if (from == UWX_REG_AR_UNAT) + val = pcb->pcb_special.unat; + else if (from >= UWX_REG_GR(0) && from <= UWX_REG_GR(127)) { + reg = from - UWX_REG_GR(0); + if (reg == 1) + val = pcb->pcb_special.gp; + else if (reg == 12) + val = pcb->pcb_special.sp; + else if (reg == 13) + val = pcb->pcb_special.tp; + else if (reg >= 4 && reg <= 7) + val = (&pcb->pcb_preserved.gr4)[reg - 4]; + else + goto oops; + } else if (from >= UWX_REG_BR(0) && from <= UWX_REG_BR(7)) { + reg = from - UWX_REG_BR(0); + if (reg == 0) + val = pcb->pcb_special.rp; + else if (reg >= 1 && reg <= 5) + val = (&pcb->pcb_preserved.br1)[reg - 1]; + else + goto oops; + } else + goto oops; + return (val); + + oops: + printf("UNW: %s(%p, %lx)\n", __func__, pcb, from); + return (0UL); +} + static int unw_cb_copyin(int req, char *to, uint64_t from, int len, intptr_t tok) { struct unw_regstate *rs = (void*)tok; - int reg; + uint64_t val; switch (req) { case UWX_COPYIN_UINFO: @@ -172,49 +263,19 @@ *((uint64_t*)to) = *((uint64_t*)from); return (8); case UWX_COPYIN_REG: - if (from == UWX_REG_AR_PFS) - from = rs->frame->tf_special.pfs; - else if (from == UWX_REG_PREDS) - from = rs->frame->tf_special.pr; - else if (from == UWX_REG_AR_RNAT) - from = rs->frame->tf_special.rnat; - else if (from == UWX_REG_AR_UNAT) - from = rs->frame->tf_special.unat; - else if (from >= UWX_REG_GR(0) && from <= UWX_REG_GR(127)) { - reg = from - UWX_REG_GR(0); - if (reg == 1) - from = rs->frame->tf_special.gp; - else if (reg == 12) - from = rs->frame->tf_special.sp; - else if (reg == 13) - from = rs->frame->tf_special.tp; - else if (reg >= 2 && reg <= 3) - from = (&rs->frame->tf_scratch.gr2)[reg - 2]; - else if (reg >= 8 && reg <= 11) - from = (&rs->frame->tf_scratch.gr8)[reg - 8]; - else if (reg >= 14 && reg <= 31) - from = (&rs->frame->tf_scratch.gr14)[reg - 14]; - else - goto oops; - } else if (from >= UWX_REG_BR(0) && from <= UWX_REG_BR(7)) { - reg = from - UWX_REG_BR(0); - if (reg == 0) - from = rs->frame->tf_special.rp; - else if (reg >= 6 && reg <= 7) - from = (&rs->frame->tf_scratch.br6)[reg - 6]; - else - goto oops; - } else + if (rs->frame != NULL) + val = unw_copyin_from_frame(rs->frame, from); + else if (rs->pcb != NULL) + val = unw_copyin_from_pcb(rs->pcb, from); + else goto oops; - - *((uint64_t*)to) = from; + *((uint64_t*)to) = val; return (len); } oops: printf("UNW: %s(%d, %p, %lx, %d, %lx)\n", __func__, req, to, from, len, tok); - return (0); } @@ -250,7 +311,7 @@ unw_create_from_frame(struct unw_regstate *rs, struct trapframe *tf) { uint64_t bsp; - int nats, sof, uwxerr; + int uwxerr; rs->frame = tf; rs->pcb = NULL; @@ -264,10 +325,10 @@ return (EINVAL); /* XXX */ bsp = tf->tf_special.bspstore + tf->tf_special.ndirty; - sof = (int)(tf->tf_special.cfm & 0x7f); - nats = (sof + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; + bsp = ia64_bsp_adjust(bsp, -IA64_CFM_SOF(tf->tf_special.cfm)); + uwxerr = uwx_init_context(rs->env, tf->tf_special.iip, - tf->tf_special.sp, bsp - ((sof + nats) << 3), tf->tf_special.cfm); + tf->tf_special.sp, bsp, tf->tf_special.cfm); return ((uwxerr) ? EINVAL : 0); /* XXX */ } @@ -275,8 +336,8 @@ int unw_create_from_pcb(struct unw_regstate *rs, struct pcb *pcb) { - uint64_t bsp; - int nats, sof, uwxerr; + uint64_t bsp, cfm; + int uwxerr; rs->frame = NULL; rs->pcb = pcb; @@ -290,12 +351,11 @@ return (EINVAL); /* XXX */ bsp = pcb->pcb_special.bspstore; - sof = (int)(pcb->pcb_special.pfs & 0x7f); - nats = (sof + 63 - ((int)(bsp >> 3) & 0x3f)) / 63; + cfm = pcb->pcb_special.pfs; + bsp = ia64_bsp_adjust(bsp, -IA64_CFM_SOL(cfm)); uwxerr = uwx_init_context(rs->env, pcb->pcb_special.rp, - pcb->pcb_special.sp, bsp - ((sof + nats) << 3), - pcb->pcb_special.pfs); + pcb->pcb_special.sp, bsp, pcb->pcb_special.pfs); return ((uwxerr) ? EINVAL : 0); /* XXX */ } From owner-p4-projects@FreeBSD.ORG Mon Jun 14 04:24:30 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7277916A4D1; Mon, 14 Jun 2004 04:24:30 +0000 (GMT) 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 34FFC16A4CE for ; Mon, 14 Jun 2004 04:24:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2EACD43D45 for ; Mon, 14 Jun 2004 04:24:30 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E4OPYe064538 for ; Mon, 14 Jun 2004 04:24:25 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E4OP27064535 for perforce@freebsd.org; Mon, 14 Jun 2004 04:24:25 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 04:24:25 GMT Message-Id: <200406140424.i5E4OP27064535@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 54898 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, 14 Jun 2004 04:24:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=54898 Change 54898 by marcel@marcel_nfs on 2004/06/14 04:23:29 o Use backingstore convenience macros. o Return error conditions to the caller. Affected files ... .. //depot/projects/gdb/sys/ia64/ia64/db_trace.c#4 edit Differences ... ==== //depot/projects/gdb/sys/ia64/ia64/db_trace.c#4 (text+ko) ==== @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -70,15 +71,14 @@ if (error) break; - args = (cfm >> 7) & 0x7f; + args = IA64_CFM_SOL(cfm); if (args > 8) args = 8; error = unw_step(&rs); if (!error) { - error = unw_get_cfm(&rs, &pfs); - if (!error) { - i = (pfs & 0x7f) - ((pfs >> 7) & 0x7f); + if (!unw_get_cfm(&rs, &pfs)) { + i = IA64_CFM_SOF(pfs) - IA64_CFM_SOL(pfs); if (args > i) args = i; } @@ -121,7 +121,7 @@ } unw_delete(&rs); - return (0); + return (error); } void From owner-p4-projects@FreeBSD.ORG Mon Jun 14 04:27:30 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DEB1216A4D1; Mon, 14 Jun 2004 04:27:29 +0000 (GMT) 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 B90D116A4CE for ; Mon, 14 Jun 2004 04:27:29 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B2D0443D45 for ; Mon, 14 Jun 2004 04:27:29 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E4RTtU064655 for ; Mon, 14 Jun 2004 04:27:29 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E4RT38064652 for perforce@freebsd.org; Mon, 14 Jun 2004 04:27:29 GMT (envelope-from marcel@freebsd.org) Date: Mon, 14 Jun 2004 04:27:29 GMT Message-Id: <200406140427.i5E4RT38064652@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 54899 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, 14 Jun 2004 04:27:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=54899 Change 54899 by marcel@marcel_nfs on 2004/06/14 04:26:32 Skip registers of which we cannot get the values. This is needed on ia64, where the register frame has a variable size. While here, KNFify. Affected files ... .. //depot/projects/gdb/sys/ddb/db_print.c#3 edit Differences ... ==== //depot/projects/gdb/sys/ddb/db_print.c#3 (text+ko) ==== @@ -46,27 +46,24 @@ #include void -db_show_regs(dummy1, dummy2, dummy3, dummy4) - db_expr_t dummy1; - boolean_t dummy2; - db_expr_t dummy3; - char * dummy4; +db_show_regs(db_expr_t _1, boolean_t _2, db_expr_t _3, char *_4) { - register struct db_variable *regp; - db_expr_t value, offset; - const char * name; + struct db_variable *regp; + db_expr_t value, offset; + const char *name; for (regp = db_regs; regp < db_eregs; regp++) { - db_read_variable(regp, &value); - db_printf("%-12s%#10lr", regp->name, (unsigned long)value); - db_find_xtrn_sym_and_offset((db_addr_t)value, &name, &offset); - if (name != NULL && offset <= (unsigned long)db_maxoff && - offset != value) { - db_printf("\t%s", name); - if (offset != 0) - db_printf("+%+#lr", (long)offset); - } - db_printf("\n"); + if (!db_read_variable(regp, &value)) + continue; + db_printf("%-12s%#10lr", regp->name, (unsigned long)value); + db_find_xtrn_sym_and_offset((db_addr_t)value, &name, &offset); + if (name != NULL && offset <= (unsigned long)db_maxoff && + offset != value) { + db_printf("\t%s", name); + if (offset != 0) + db_printf("+%+#lr", (long)offset); + } + db_printf("\n"); } db_print_loc_and_inst(PC_REGS()); } From owner-p4-projects@FreeBSD.ORG Mon Jun 14 04:53:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 67DEC16A4D1; Mon, 14 Jun 2004 04:53:02 +0000 (GMT) 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 372CB16A4D0 for ; Mon, 14 Jun 2004 04:53:02 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 218DE43D39 for ; Mon, 14 Jun 2004 04:53:02 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E4r1Zc076803 for ; Mon, 14 Jun 2004 04:53:01 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E4r1Mo076800 for perforce@freebsd.org; Mon, 14 Jun 2004 04:53:01 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 04:53:01 GMT Message-Id: <200406140453.i5E4r1Mo076800@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 54901 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, 14 Jun 2004 04:53:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54901 Change 54901 by jmallett@jmallett_oingo on 2004/06/14 04:52:32 Open, Close, Seek. Fix return type botch for errors from Read/Write. Affected files ... .. //depot/projects/mips/sys/dev/arcs/arcs.c#4 edit .. //depot/projects/mips/sys/dev/arcs/arcs.h#3 edit Differences ... ==== //depot/projects/mips/sys/dev/arcs/arcs.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/dev/arcs/arcs.c#3 $ + * $P4: //depot/projects/mips/sys/dev/arcs/arcs.c#4 $ */ #include @@ -51,9 +51,12 @@ #define ARCS_FV_EnterInteractiveMode_Offset (7 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_GetChild_Offset (10 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_GetMemoryDescriptor_Offset (18 * sizeof (ARCS_Pointer_t)) +#define ARCS_FV_Open_Offset (23 * sizeof (ARCS_Pointer_t)) +#define ARCS_FV_Close_Offset (24 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_Read_Offset (25 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_GetReadStatus_Offset (26 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_Write_Offset (27 * sizeof (ARCS_Pointer_t)) +#define ARCS_FV_Seek_Offset (28 * sizeof (ARCS_Pointer_t)) #define ARCS_FV_GetEnvironmentVariable_Offset (30 * sizeof (ARCS_Pointer_t)) int @@ -135,10 +138,46 @@ return (value); } +int +ARCS_Open(const char *name, int mode, int *fdp) +{ + uint32_t (*Open)(ARCS_Pointer_t, uint32_t, ARCS_Pointer_t); + int error; + uint32_t errord; + ARCS_Pointer_t named; + uint32_t moded; + uint32_t fdd; + ARCS_Pointer_t fdpd; + + Open = (uint32_t (*)(ARCS_Pointer_t, uint32_t, ARCS_Pointer_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Open_Offset]; + named = (ARCS_Pointer_t)(intptr_t)name; + moded = (uint32_t)mode; + fdpd = (ARCS_Pointer_t)(intptr_t)&fdd; + errord = (*Open)(named, moded, fdpd); + error = (int)errord; + *fdp = (int)fdd; + return (error); +} + +int +ARCS_Close(int fd) +{ + uint32_t (*Close)(uint32_t); + int error; + uint32_t errord; + uint32_t fdd; + + Close = (uint32_t (*)(uint32_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Close_Offset]; + fdd = (uint32_t)fd; + errord = (*Close)(fdd); + error = (int)errord; + return (error); +} + size_t ARCS_Read(int fd, char *buf, size_t buflen) { - ARCS_Pointer_t (*Read)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t); + uint32_t (*Read)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t); size_t len; uint32_t fdd; ARCS_Pointer_t bufd; @@ -146,7 +185,7 @@ uint32_t lend; ARCS_Pointer_t lenpd; - Read = (ARCS_Pointer_t (*)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Read_Offset]; + Read = (uint32_t (*)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Read_Offset]; fdd = (uint32_t)fd; bufd = (ARCS_Pointer_t)(intptr_t)buf; buflend = (uint32_t)buflen; @@ -174,7 +213,7 @@ size_t ARCS_Write(int fd, const char *buf, size_t buflen) { - ARCS_Pointer_t (*Write)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t); + uint32_t (*Write)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t); size_t len; uint32_t fdd; ARCS_Pointer_t bufd; @@ -182,7 +221,7 @@ uint32_t lend; ARCS_Pointer_t lenpd; - Write = (ARCS_Pointer_t (*)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Write_Offset]; + Write = (uint32_t (*)(uint32_t, ARCS_Pointer_t, uint32_t, ARCS_Pointer_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Write_Offset]; fdd = (uint32_t)fd; bufd = (ARCS_Pointer_t)(intptr_t)buf; buflend = (uint32_t)buflen; @@ -192,6 +231,28 @@ return (len); } +int +ARCS_Seek(int fd, off_t *offp, int whence) +{ + uint32_t (*Seek)(uint32_t, ARCS_Pointer_t, uint32_t); + int error; + uint32_t errord; + uint32_t fdd; + uint64_t offd; + ARCS_Pointer_t offpd; + uint32_t whenced; + + Seek = (uint32_t (*)(uint32_t, ARCS_Pointer_t, uint32_t))(intptr_t)*(ARCS_Pointer_t *)&ARCS_FV[ARCS_FV_Seek_Offset]; + fdd = (uint32_t)fd; + offd = (uint64_t)*offp; + offpd = (ARCS_Pointer_t)(intptr_t)&offd; + whenced = (uint32_t)whence; + errord = (*Seek)(fdd, offpd, whenced); + error = (int)errord; + *offp = offd; + return (error); +} + struct ARCS_Component * ARCS_GetChild(const struct ARCS_Component *component) { ==== //depot/projects/mips/sys/dev/arcs/arcs.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/dev/arcs/arcs.h#2 $ + * $P4: //depot/projects/mips/sys/dev/arcs/arcs.h#3 $ */ #ifndef _DEV_ARCS_ARCS_H_ @@ -34,6 +34,8 @@ #if defined (IP22) typedef int32_t ARCS_Pointer_t; +#elif defined (IP30) +typedef int64_t ARCS_Pointer_t; #endif #else #error "ARCS not supported." @@ -107,9 +109,12 @@ void ARCS_Reboot(void); const char *ARCS_GetEnvironmentVariable(const char *); struct ARCS_Mem *ARCS_GetMemoryDescriptor(const struct ARCS_Mem *); +int ARCS_Open(const char *, int, int *); +int ARCS_Close(int); size_t ARCS_Read(int, char *, size_t); int ARCS_GetReadStatus(int); size_t ARCS_Write(int, const char *, size_t); +int ARCS_Seek(int, off_t *, int); struct ARCS_Component *ARCS_GetChild(const struct ARCS_Component *); #endif /* _DEV_ARCS_ARCS_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 06:13:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E729516A4D1; Mon, 14 Jun 2004 06:13:45 +0000 (GMT) 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 BC97016A4CE for ; Mon, 14 Jun 2004 06:13:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F3CB43D2D for ; Mon, 14 Jun 2004 06:13:45 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E6DjAT094932 for ; Mon, 14 Jun 2004 06:13:45 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E6Djof094923 for perforce@freebsd.org; Mon, 14 Jun 2004 06:13:45 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 06:13:45 GMT Message-Id: <200406140613.i5E6Djof094923@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 54905 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, 14 Jun 2004 06:13:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=54905 Change 54905 by jmallett@jmallett_oingo on 2004/06/14 06:12:51 Give a half-assed go at an ofwdisk alike arcs_disk. Right now it will only report the disk as being 8 blocks big. I'm hopefuly I can use this to read the volume header and figure out the size of the disk that way and reattach. I don't know if that's acceptable in the GEOM world. I think I can do it all in probe, though. Also need to do a lot to ARCS to give it some physical pages it can map into a space that's likely to work for ARCS, so that we don't have to worry about what address space buffers get passed to it. Right now this probably doesn't even come close to working, it's being committed as a placeholder. Affected files ... .. //depot/projects/mips/sys/conf/files.mips#35 edit .. //depot/projects/mips/sys/dev/arcs/arcs.h#4 edit .. //depot/projects/mips/sys/dev/arcs/arcs_disk.c#1 add .. //depot/projects/mips/sys/mips/conf/INDY#11 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#33 edit Differences ... ==== //depot/projects/mips/sys/conf/files.mips#35 (text+ko) ==== @@ -57,6 +57,7 @@ # This stanza is device files. dev/arcs/arcs.c optional arcs dev/arcs/arcs_console.c optional arcs +dev/arcs/arcs_disk.c optional arcs_disk arcs mips/sgimips/gio/gio.c optional gio ==== //depot/projects/mips/sys/dev/arcs/arcs.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/dev/arcs/arcs.h#3 $ + * $P4: //depot/projects/mips/sys/dev/arcs/arcs.h#4 $ */ #ifndef _DEV_ARCS_ARCS_H_ @@ -70,6 +70,19 @@ #define ARCS_FD_StandardInput 0 #define ARCS_FD_StandardOutput 1 +/* + * Open() mode. + */ +#define ARCS_O_RDONLY 0 +#define ARCS_O_WRONLY 1 +#define ARCS_O_RDWR 2 + +/* + * Seek() whence. + */ +#define ARCS_SEEK_ABSOLUTE 0 +#define ARCS_SEEK_RELATIVE 1 + /* Pages are 4K in ARCS. */ #define ARCS_PAGESHIFT 12 ==== //depot/projects/mips/sys/mips/conf/INDY#11 (text+ko) ==== @@ -19,7 +19,8 @@ options IP22 #IP22 (Indy, Indigo2, ...) # Hardware support -device arcs #ARCS Firmware + Console +device arcs #ARCS Firmware + Console. +device arcs_disk #ARCS Disk. device imc #IMC bus. device hpc #HPC bus. device gio #GIO bus. ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#33 (text+ko) ==== @@ -249,6 +249,7 @@ switch (mach_type) { case MACH_SGI_IP22: device_add_child(root_bus, "imc", 0); + device_add_child(root_bus, "arcs_disk", 0); break; default: panic("cannot autoconfigure type %d", mach_type); From owner-p4-projects@FreeBSD.ORG Mon Jun 14 06:13:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A881616A4DA; Mon, 14 Jun 2004 06:13:46 +0000 (GMT) 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 30B3C16A4F0 for ; Mon, 14 Jun 2004 06:13:46 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 120DC43D41 for ; Mon, 14 Jun 2004 06:13:46 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E6DjCl094939 for ; Mon, 14 Jun 2004 06:13:45 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E6DjpR094935 for perforce@freebsd.org; Mon, 14 Jun 2004 06:13:45 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 06:13:45 GMT Message-Id: <200406140613.i5E6DjpR094935@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 54906 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, 14 Jun 2004 06:13:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=54906 Change 54906 by jmallett@jmallett_oingo on 2004/06/14 06:13:03 IP30. Affected files ... .. //depot/projects/mips/sys/conf/options.mips#15 edit Differences ... ==== //depot/projects/mips/sys/conf/options.mips#15 (text+ko) ==== @@ -2,6 +2,7 @@ # Options specific to the mips platform kernels IP22 opt_model.h +IP30 opt_model.h R4000 opt_global.h R4400 opt_global.h From owner-p4-projects@FreeBSD.ORG Mon Jun 14 07:42:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 34F8016A4D2; Mon, 14 Jun 2004 07:42:39 +0000 (GMT) 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 0829D16A4CE for ; Mon, 14 Jun 2004 07:42:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0118E43D45 for ; Mon, 14 Jun 2004 07:42:39 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5E7gZPN016436 for ; Mon, 14 Jun 2004 07:42:35 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5E7gYfP016432 for perforce@freebsd.org; Mon, 14 Jun 2004 07:42:34 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 07:42:34 GMT Message-Id: <200406140742.i5E7gYfP016432@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 54909 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, 14 Jun 2004 07:42:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=54909 Change 54909 by jmallett@jmallett_oingo on 2004/06/14 07:42:22 duhhh forgot copyright. Affected files ... .. //depot/projects/mips/sys/dev/arcs/arcs_disk.c#2 edit Differences ... ==== //depot/projects/mips/sys/dev/arcs/arcs_disk.c#2 (text+ko) ==== @@ -1,3 +1,31 @@ +/*- + * Copyright (c) 2004 Juli Mallett + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $P4: //depot/projects/mips/sys/dev/arcs/arcs_disk.c#2 $ + */ + #include #include #include From owner-p4-projects@FreeBSD.ORG Mon Jun 14 18:36:43 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5618C16A4CF; Mon, 14 Jun 2004 18:36:43 +0000 (GMT) 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 25F5516A4D1 for ; Mon, 14 Jun 2004 18:36:43 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 131B943D39 for ; Mon, 14 Jun 2004 18:36:43 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5EIa82u080075 for ; Mon, 14 Jun 2004 18:36:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EIa7n6080072 for perforce@freebsd.org; Mon, 14 Jun 2004 18:36:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 14 Jun 2004 18:36:07 GMT Message-Id: <200406141836.i5EIa7n6080072@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 54938 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, 14 Jun 2004 18:36:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=54938 Change 54938 by rwatson@rwatson_tislabs on 2004/06/14 18:35:51 Integrate netperf_socket: - Loop back so_state breakout to sb_state fields from rwatson_netperf. Affected files ... .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#6 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#24 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/firewire.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/if_fwip.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/ips/ips_commands.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/sound/isa/sb16.c#6 integrate .. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#2 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sema.c#2 integrate .. //depot/projects/netperf_socket/sys/kern/sys_socket.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#18 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/netperf_socket/sys/net/firewire.h#2 integrate .. //depot/projects/netperf_socket/sys/netatm/atm_aal5.c#2 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#7 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_ksocket.c#7 integrate .. //depot/projects/netperf_socket/sys/netinet/accf_http.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#8 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_usrreq.c#8 integrate .. //depot/projects/netperf_socket/sys/netipx/spx_usrreq.c#4 integrate .. //depot/projects/netperf_socket/sys/netsmb/smb_trantcp.c#4 integrate .. //depot/projects/netperf_socket/sys/sys/_types.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#12 integrate .. //depot/projects/netperf_socket/sys/sys/socketvar.h#14 integrate Differences ... ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.113 2004/02/19 12:38:12 bms Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.114 2004/06/14 07:26:23 phk Exp $"); #include #include @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -65,6 +66,7 @@ static linux_ioctl_function_t linux_ioctl_cdrom; static linux_ioctl_function_t linux_ioctl_vfat; static linux_ioctl_function_t linux_ioctl_console; +static linux_ioctl_function_t linux_ioctl_hdio; static linux_ioctl_function_t linux_ioctl_disk; static linux_ioctl_function_t linux_ioctl_socket; static linux_ioctl_function_t linux_ioctl_sound; @@ -79,6 +81,8 @@ { linux_ioctl_vfat, LINUX_IOCTL_VFAT_MIN, LINUX_IOCTL_VFAT_MAX }; static struct linux_ioctl_handler console_handler = { linux_ioctl_console, LINUX_IOCTL_CONSOLE_MIN, LINUX_IOCTL_CONSOLE_MAX }; +static struct linux_ioctl_handler hdio_handler = +{ linux_ioctl_hdio, LINUX_IOCTL_HDIO_MIN, LINUX_IOCTL_HDIO_MAX }; static struct linux_ioctl_handler disk_handler = { linux_ioctl_disk, LINUX_IOCTL_DISK_MIN, LINUX_IOCTL_DISK_MAX }; static struct linux_ioctl_handler socket_handler = @@ -95,6 +99,7 @@ DATA_SET(linux_ioctl_handler_set, cdrom_handler); DATA_SET(linux_ioctl_handler_set, vfat_handler); DATA_SET(linux_ioctl_handler_set, console_handler); +DATA_SET(linux_ioctl_handler_set, hdio_handler); DATA_SET(linux_ioctl_handler_set, disk_handler); DATA_SET(linux_ioctl_handler_set, socket_handler); DATA_SET(linux_ioctl_handler_set, sound_handler); @@ -112,7 +117,106 @@ static TAILQ_HEAD(, handler_element) handlers = TAILQ_HEAD_INITIALIZER(handlers); +/* + * hdio related ioctls for VMWare support + */ + +struct linux_hd_geometry { + u_int8_t heads; + u_int8_t sectors; + u_int16_t cylinders; + u_int32_t start; +}; + +struct linux_hd_big_geometry { + u_int8_t heads; + u_int8_t sectors; + u_int32_t cylinders; + u_int32_t start; +}; + static int +linux_ioctl_hdio(struct thread *td, struct linux_ioctl_args *args) +{ + struct file *fp; + int error; + u_int sectorsize, fwcylinders, fwheads, fwsectors; + off_t mediasize, bytespercyl; + + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + switch (args->cmd & 0xffff) { + case LINUX_HDIO_GET_GEO: + case LINUX_HDIO_GET_GEO_BIG: + error = fo_ioctl(fp, DIOCGMEDIASIZE, + (caddr_t)&mediasize, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGSECTORSIZE, + (caddr_t)§orsize, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGFWHEADS, + (caddr_t)&fwheads, td->td_ucred, td); + if (!error) + error = fo_ioctl(fp, DIOCGFWSECTORS, + (caddr_t)&fwsectors, td->td_ucred, td); + /* + * XXX: DIOCGFIRSTOFFSET is not yet implemented, so + * so pretend that GEOM always says 0. This is NOT VALID + * for slices or partitions, only the per-disk raw devices. + */ + + fdrop(fp, td); + if (error) + return (error); + /* + * 1. Calculate the number of bytes in a cylinder, + * given the firmware's notion of heads and sectors + * per cylinder. + * 2. Calculate the number of cylinders, given the total + * size of the media. + * All internal calculations should have 64-bit precision. + */ + bytespercyl = (off_t) sectorsize * fwheads * fwsectors; + fwcylinders = mediasize / bytespercyl; +#if defined(DEBUG) + linux_msg(td, "HDIO_GET_GEO: mediasize %jd, c/h/s %d/%d/%d, " + "bpc %jd", + (intmax_t)mediasize, fwcylinders, fwheads, fwsectors, + (intmax_t)bytespercyl); +#endif + if ((args->cmd & 0xffff) == LINUX_HDIO_GET_GEO) { + struct linux_hd_geometry hdg; + + hdg.cylinders = fwcylinders; + hdg.heads = fwheads; + hdg.sectors = fwsectors; + hdg.start = 0; + error = copyout(&hdg, (void *)args->arg, sizeof(hdg)); + } else if ((args->cmd & 0xffff) == LINUX_HDIO_GET_GEO_BIG) { + struct linux_hd_big_geometry hdbg; + + hdbg.cylinders = fwcylinders; + hdbg.heads = fwheads; + hdbg.sectors = fwsectors; + hdbg.start = 0; + error = copyout(&hdbg, (void *)args->arg, sizeof(hdbg)); + } + return (error); + break; + default: + /* XXX */ + linux_msg(td, + "ioctl fd=%d, cmd=0x%x ('%c',%d) is not implemented", + args->fd, (int)(args->cmd & 0xffff), + (int)(args->cmd & 0xff00) >> 8, + (int)(args->cmd & 0xff)); + break; + } + fdrop(fp, td); + return (ENOIOCTL); +} + +static int linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args) { struct file *fp; @@ -138,6 +242,7 @@ */ return (copyout(§orsize, (void *)args->arg, sizeof(sectorsize))); + break; } fdrop(fp, td); return (ENOIOCTL); ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#3 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.17 2004/02/19 12:38:12 bms Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.18 2004/06/14 07:26:23 phk Exp $ */ #ifndef _LINUX_IOCTL_H_ @@ -47,8 +47,18 @@ #define LINUX_BLKSECTGET 0x1267 #define LINUX_BLKSSZGET 0x1268 -#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET -#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET +#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET +#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET + +/* + * hdio + */ +#define LINUX_HDIO_GET_GEO 0x0301 +#define LINUX_HDIO_GET_IDENTITY 0x030D /* not yet implemented */ +#define LINUX_HDIO_GET_GEO_BIG 0x0330 + +#define LINUX_IOCTL_HDIO_MIN LINUX_HDIO_GET_GEO +#define LINUX_IOCTL_HDIO_MAX LINUX_HDIO_GET_GEO_BIG /* * cdrom ==== //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.c,v 1.6 2004/05/31 22:48:19 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/if_pflog.c,v 1.7 2004/06/14 16:13:05 mlaier Exp $ */ /* $OpenBSD: if_pflog.c,v 1.9 2003/05/14 08:42:00 canacar Exp $ */ /* * The authors of this code are John Ioannidis (ji@tla.org), @@ -218,23 +218,15 @@ pflogstart(struct ifnet *ifp) { struct mbuf *m; -#if defined(__FreeBSD__) && defined(ALTQ) - struct ifaltq *ifq; -#else - struct ifqueue *ifq; -#endif int s; -#ifdef __FreeBSD__ - ifq = &ifp->if_snd; -#endif for (;;) { s = splimp(); #ifdef __FreeBSD__ - IF_LOCK(ifq); - _IF_DROP(ifq); - _IF_DEQUEUE(ifq, m); - IF_UNLOCK(ifq); + IF_LOCK(&ifp->if_snd); + _IF_DROP(&ifp->if_snd); + _IF_DEQUEUE(&ifp->if_snd, m); + IF_UNLOCK(&ifp->if_snd); #else IF_DROP(&ifp->if_snd); IF_DEQUEUE(&ifp->if_snd, m); ==== //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.6 2004/05/31 22:48:19 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/if_pfsync.c,v 1.7 2004/06/14 16:13:05 mlaier Exp $ */ /* $OpenBSD: if_pfsync.c,v 1.6 2003/06/21 09:07:01 djm Exp $ */ /* @@ -218,23 +218,15 @@ pfsyncstart(struct ifnet *ifp) { struct mbuf *m; -#if defined(__FreeBSD__) && defined(ALTQ) - struct ifaltq *ifq; -#else - struct ifqueue *ifq; -#endif int s; -#ifdef __FreeBSD__ - ifq = &ifp->if_snd; -#endif for (;;) { s = splimp(); #ifdef __FreeBSD__ - IF_LOCK(ifq); - _IF_DROP(ifq); - _IF_DEQUEUE(ifq, m); - IF_UNLOCK(ifq); + IF_LOCK(&ifp->if_snd); + _IF_DROP(&ifp->if_snd); + _IF_DEQUEUE(&ifp->if_snd, m); + IF_UNLOCK(&ifp->if_snd); #else IF_DROP(&ifp->if_snd); IF_DEQUEUE(&ifp->if_snd, m); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#24 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.161 2004/06/14 04:01:12 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.162 2004/06/14 04:37:45 njl Exp $ */ #include "opt_acpi.h" @@ -128,7 +128,6 @@ static int acpi_probe_order(ACPI_HANDLE handle, int *order); static ACPI_STATUS acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status); -static void acpi_shutdown_pre_sync(void *arg, int howto); static void acpi_shutdown_final(void *arg, int howto); static void acpi_shutdown_poweroff(void *arg); static void acpi_enable_fixed_events(struct acpi_softc *sc); @@ -522,16 +521,12 @@ SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "verbose", CTLFLAG_RD | CTLFLAG_RW, &sc->acpi_verbose, 0, "verbose mode"); - SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "disable_on_poweroff", CTLFLAG_RD | CTLFLAG_RW, - &sc->acpi_disable_on_poweroff, 0, "ACPI subsystem disable on poweroff"); /* * Default to 1 second before sleeping to give some machines time to * stabilize. */ sc->acpi_sleep_delay = 1; - sc->acpi_disable_on_poweroff = 0; if (bootverbose) sc->acpi_verbose = 1; if ((env = getenv("hw.acpi.verbose")) && strcmp(env, "0")) { @@ -574,9 +569,7 @@ } #endif - /* Register our shutdown handlers */ - EVENTHANDLER_REGISTER(shutdown_pre_sync, acpi_shutdown_pre_sync, sc, - SHUTDOWN_PRI_LAST); + /* Register our shutdown handler. */ EVENTHANDLER_REGISTER(shutdown_final, acpi_shutdown_final, sc, SHUTDOWN_PRI_LAST); @@ -1269,29 +1262,9 @@ } static void -acpi_shutdown_pre_sync(void *arg, int howto) -{ - struct acpi_softc *sc = arg; - - ACPI_ASSERTLOCK; - - /* - * Disable all ACPI events before soft off, otherwise the system - * will be turned on again on some laptops. - * - * XXX this should probably be restricted to masking some events just - * before powering down, since we may still need ACPI during the - * shutdown process. - */ - if (sc->acpi_disable_on_poweroff) - acpi_Disable(sc); -} - -static void acpi_shutdown_final(void *arg, int howto) { ACPI_STATUS status; - ACPI_ASSERTLOCK; /* * If powering off, run the actual shutdown code on each processor. @@ -1322,8 +1295,6 @@ { ACPI_STATUS status; - ACPI_ASSERTLOCK; - /* Only attempt to power off if this is the BSP (cpuid 0). */ if (PCPU_GET(cpuid) != 0) return; ==== //depot/projects/netperf_socket/sys/dev/firewire/firewire.c#6 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.75 2004/05/30 20:08:32 phk Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.76 2004/06/14 09:34:20 dfr Exp $ * */ @@ -248,8 +248,8 @@ } if (info->flag & FWTI_TLABEL) { - if((tl = fw_get_tlabel(fc, xfer)) == -1 ) - return EIO; + if ((tl = fw_get_tlabel(fc, xfer)) == -1) + return EAGAIN; fp->mode.hdr.tlrt = tl << 2; } @@ -1739,7 +1739,8 @@ } splx(s); - printf("fw_get_tlabel: no free tlabel\n"); + if (firewire_debug > 1) + printf("fw_get_tlabel: no free tlabel\n"); return(-1); } ==== //depot/projects/netperf_socket/sys/dev/firewire/if_fwip.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/if_fwip.c,v 1.2 2004/06/13 13:58:00 dfr Exp $ + * $FreeBSD: src/sys/dev/firewire/if_fwip.c,v 1.3 2004/06/14 09:34:20 dfr Exp $ */ #include "opt_inet.h" @@ -552,6 +552,7 @@ struct fw_xferq *xferq; struct fw_pkt *fp; uint16_t nodeid; + int error; int i = 0; GIANT_REQUIRED; @@ -666,7 +667,18 @@ xfer->send.pay_len = m->m_pkthdr.len; - if (fw_asyreq(fc, -1, xfer) != 0) { + error = fw_asyreq(fc, -1, xfer); + if (error == EAGAIN) { + /* + * We ran out of tlabels - requeue the packet + * for later transmission. + */ + xfer->mbuf = 0; + STAILQ_INSERT_TAIL(&fwip->xferlist, xfer, link); + IF_PREPEND(&ifp->if_snd, m); + break; + } + if (error) { /* error */ ifp->if_oerrors ++; /* XXX set error code */ ==== //depot/projects/netperf_socket/sys/dev/ips/ips_commands.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ips/ips_commands.c,v 1.10 2004/05/30 04:01:29 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ips/ips_commands.c,v 1.11 2004/06/14 18:19:04 jdp Exp $"); #include @@ -248,7 +248,7 @@ ips_adapter_info_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 30*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 30*hz) != 0)) error = ETIMEDOUT; if (error == 0) { @@ -352,7 +352,7 @@ command->data_buffer,IPS_DRIVE_INFO_LEN, ips_drive_info_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 10*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 10*hz) != 0)) error = ETIMEDOUT; if (error == 0) { @@ -606,7 +606,7 @@ command->data_buffer,IPS_NVRAM_PAGE_SIZE, ips_read_nvram_callback, command, BUS_DMA_NOWAIT); if ((status->value == IPS_ERROR_STATUS) || - (sema_timedwait(&command->cmd_sema, 30*hz) == 0)) + (sema_timedwait(&command->cmd_sema, 30*hz) != 0)) error = ETIMEDOUT; if (error == 0) { ==== //depot/projects/netperf_socket/sys/dev/sound/isa/sb16.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ #include "mixer_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/sb16.c,v 1.85 2004/05/13 11:33:44 truckman Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/sb16.c,v 1.86 2004/06/14 15:01:16 josef Exp $"); #define SB16_BUFFSIZE 4096 #define PLAIN_SB16(x) ((((x)->bd_flags) & (BD_F_SB16|BD_F_SB16X)) == BD_F_SB16) @@ -331,6 +331,19 @@ } static int +rel2abs_volume(int x, int max) +{ + int temp; + + temp = ((x * max) + 50) / 100; + if (temp > max) + temp = max; + else if (temp < 0) + temp = 0; + return (temp); +} + +static int sb16mix_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) { struct sb_info *sb = mix_getdevinfo(m); @@ -340,8 +353,8 @@ e = &sb16_mixtab[dev]; max = (1 << e->bits) - 1; - left = (left * max) / 100; - right = (right * max) / 100; + left = rel2abs_volume(left, max); + right = rel2abs_volume(right, max); sb_setmixer(sb, e->reg, left << e->ofs); if (e->stereo) ==== //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.95 2004/06/01 01:18:50 truckman Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.96 2004/06/14 18:16:20 rwatson Exp $ */ #include @@ -211,7 +211,7 @@ } fip->fi_readers = fip->fi_writers = 0; wso->so_snd.sb_lowat = PIPE_BUF; - rso->so_state |= SS_CANTRCVMORE; + rso->so_rcv.sb_state |= SBS_CANTRCVMORE; vp->v_fifoinfo = fip; } @@ -229,7 +229,7 @@ if (ap->a_mode & FREAD) { fip->fi_readers++; if (fip->fi_readers == 1) { - fip->fi_writesock->so_state &= ~SS_CANTSENDMORE; + fip->fi_writesock->so_snd.sb_state &= ~SBS_CANTSENDMORE; if (fip->fi_writers > 0) { wakeup(&fip->fi_writers); sowwakeup(fip->fi_writesock); @@ -243,7 +243,7 @@ } fip->fi_writers++; if (fip->fi_writers == 1) { - fip->fi_readsock->so_state &= ~SS_CANTRCVMORE; + fip->fi_readsock->so_rcv.sb_state &= ~SBS_CANTRCVMORE; if (fip->fi_readers > 0) { wakeup(&fip->fi_readers); sorwakeup(fip->fi_writesock); @@ -447,7 +447,7 @@ struct socket *so = (struct socket *)kn->kn_hook; kn->kn_data = so->so_rcv.sb_cc; - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; return (1); } @@ -471,7 +471,7 @@ struct socket *so = (struct socket *)kn->kn_hook; kn->kn_data = sbspace(&so->so_snd); - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; return (1); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.1 2004/06/12 21:16:10 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.2 2004/06/14 17:12:32 le Exp $"); #include #include @@ -278,7 +278,6 @@ g_destroy_consumer(cp); if (!LIST_EMPTY(&gp->consumer)) return; - g_free(gp->softc); g_wither_geom(gp, error); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_raid5.c,v 1.1 2004/06/12 21:16:10 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_raid5.c,v 1.2 2004/06/14 17:06:55 le Exp $"); #include #include @@ -297,8 +297,7 @@ stripestart = (boff - stripeoff) / (p->sdcount - 1); KASSERT(stripestart >= 0, ("gv_build_raid5_request: stripestart < 0")); - if (stripeoff >= p->stripesize) - stripeoff -= p->stripesize; + stripeoff %= p->stripesize; /* The offset of the request on this subdisk. */ real_off = stripestart + stripeoff; ==== //depot/projects/netperf_socket/sys/kern/kern_sema.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_sema.c,v 1.4 2003/06/11 00:56:56 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_sema.c,v 1.5 2004/06/14 18:19:05 jdp Exp $"); #include #include @@ -108,7 +108,7 @@ int _sema_timedwait(struct sema *sema, int timo, const char *file, int line) { - int ret, timed_out; + int error; mtx_lock(&sema->sema_mtx); @@ -118,27 +118,25 @@ * continuously, since the timeout period is merely a lower bound on how * long to wait. */ - for (timed_out = 0; sema->sema_value == 0 && timed_out == 0;) { + for (error = 0; sema->sema_value == 0 && error == 0;) { sema->sema_waiters++; - timed_out = cv_timedwait(&sema->sema_cv, &sema->sema_mtx, timo); + error = cv_timedwait(&sema->sema_cv, &sema->sema_mtx, timo); sema->sema_waiters--; } if (sema->sema_value > 0) { /* Success. */ sema->sema_value--; - ret = 1; + error = 0; CTR6(KTR_LOCK, "%s(%p) \"%s\" v = %d at %s:%d", __func__, sema, cv_wmesg(&sema->sema_cv), sema->sema_value, file, line); } else { - ret = 0; - CTR5(KTR_LOCK, "%s(%p) \"%s\" fail at %s:%d", __func__, sema, cv_wmesg(&sema->sema_cv), file, line); } mtx_unlock(&sema->sema_mtx); - return (ret); + return (error); } int ==== //depot/projects/netperf_socket/sys/kern/sys_socket.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.58 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.59 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" @@ -168,7 +168,7 @@ return (0); case SIOCATMARK: - *(int *)data = (so->so_state&SS_RCVATMARK) != 0; + *(int *)data = (so->so_rcv.sb_state & SBS_RCVATMARK) != 0; return (0); } /* @@ -207,13 +207,13 @@ bzero((caddr_t)ub, sizeof (*ub)); ub->st_mode = S_IFSOCK; /* - * If SS_CANTRCVMORE is set, but there's still data left in the + * If SBS_CANTRCVMORE is set, but there's still data left in the * receive buffer, the socket is still readable. */ - if ((so->so_state & SS_CANTRCVMORE) == 0 || + if ((so->so_rcv.sb_state & SBS_CANTRCVMORE) == 0 || so->so_rcv.sb_cc != 0) ub->st_mode |= S_IRUSR | S_IRGRP | S_IROTH; - if ((so->so_state & SS_CANTSENDMORE) == 0) + if ((so->so_snd.sb_state & SBS_CANTSENDMORE) == 0) ub->st_mode |= S_IWUSR | S_IWGRP | S_IWOTH; ub->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; ub->st_uid = so->so_cred->cr_uid; ==== //depot/projects/netperf_socket/sys/kern/uipc_socket.c#17 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.177 2004/06/12 20:47:28 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.178 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -598,7 +598,7 @@ if (error) goto out; do { - if (so->so_state & SS_CANTSENDMORE) + if (so->so_snd.sb_state & SBS_CANTSENDMORE) snderr(EPIPE); if (so->so_error) { error = so->so_error; @@ -748,7 +748,7 @@ if (dontroute) so->so_options |= SO_DONTROUTE; /* - * XXX all the SS_CANTSENDMORE checks previously + * XXX all the SBS_CANTSENDMORE checks previously * done could be out of date. We could have recieved * a reset packet in an interrupt or maybe we slept * while doing page faults in uiomove() etc. We could @@ -910,7 +910,7 @@ so->so_error = 0; goto release; } - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { if (m) goto dontblock; else @@ -1054,7 +1054,7 @@ else KASSERT(m->m_type == MT_DATA || m->m_type == MT_HEADER, ("m->m_type == %d", m->m_type)); - so->so_state &= ~SS_RCVATMARK; + so->so_rcv.sb_state &= ~SBS_RCVATMARK; len = uio->uio_resid; if (so->so_oobmark && len > so->so_oobmark - offset) len = so->so_oobmark - offset; @@ -1144,7 +1144,7 @@ if ((flags & MSG_PEEK) == 0) { so->so_oobmark -= len; if (so->so_oobmark == 0) { - so->so_state |= SS_RCVATMARK; + so->so_rcv.sb_state |= SBS_RCVATMARK; break; } } else { @@ -1164,7 +1164,7 @@ */ while (flags & MSG_WAITALL && m == NULL && uio->uio_resid > 0 && !sosendallatonce(so) && nextrecord == NULL) { - if (so->so_error || so->so_state & SS_CANTRCVMORE) + if (so->so_error || so->so_rcv.sb_state & SBS_CANTRCVMORE) break; /* * Notify the protocol that some data has been @@ -1210,7 +1210,7 @@ (*pr->pr_usrreqs->pru_rcvd)(so, flags); } if (orig_resid == uio->uio_resid && orig_resid && - (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0) + (flags & MSG_EOR) == 0 && (so->so_rcv.sb_state & SBS_CANTRCVMORE) == 0) goto restart; /* XXX multi-counts msgs */ if (flagsp != NULL) @@ -1850,7 +1850,7 @@ revents |= events & (POLLOUT | POLLWRNORM); if (events & (POLLPRI | POLLRDBAND)) - if (so->so_oobmark || (so->so_state & SS_RCVATMARK)) + if (so->so_oobmark || (so->so_rcv.sb_state & SBS_RCVATMARK)) revents |= events & (POLLPRI | POLLRDBAND); if (revents == 0) { @@ -1921,7 +1921,7 @@ SOCKBUF_LOCK(&so->so_rcv); /* XXX too conservative? */ kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; - if (so->so_state & SS_CANTRCVMORE) { + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; kn->kn_fflags = so->so_error; result = 1; @@ -1956,7 +1956,7 @@ SOCKBUF_LOCK(&so->so_snd); /* XXX too conservative? */ kn->kn_data = sbspace(&so->so_snd); - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; kn->kn_fflags = so->so_error; result = 1; ==== //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#14 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.129 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.130 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -166,7 +166,9 @@ if (need_lock) SOCK_LOCK(so); so->so_state &= ~SS_ISCONNECTING; - so->so_state |= (SS_ISDISCONNECTING|SS_CANTRCVMORE|SS_CANTSENDMORE); + so->so_state |= SS_ISDISCONNECTING; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; wakeup(&so->so_timeo); SOCK_UNLOCK(so); sowwakeup(so); @@ -184,7 +186,9 @@ if (need_lock) SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTING|SS_ISCONNECTED|SS_ISDISCONNECTING); - so->so_state |= (SS_CANTRCVMORE|SS_CANTSENDMORE|SS_ISDISCONNECTED); + so->so_state |= SS_ISDISCONNECTED; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; wakeup(&so->so_timeo); SOCK_UNLOCK(so); sbdrop(&so->so_snd, so->so_snd.sb_cc); @@ -293,7 +297,7 @@ struct socket *so; { - so->so_state |= SS_CANTSENDMORE; + so->so_snd.sb_state |= SBS_CANTSENDMORE; sowwakeup(so); } @@ -312,7 +316,7 @@ struct socket *so; { - so->so_state |= SS_CANTRCVMORE; + so->so_rcv.sb_state |= SBS_CANTRCVMORE; sorwakeup(so); } ==== //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#18 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.192 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.193 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -292,7 +292,7 @@ goto noconnection; } while (TAILQ_EMPTY(&head->so_comp) && head->so_error == 0) { - if (head->so_state & SS_CANTRCVMORE) { + if (head->so_rcv.sb_state & SBS_CANTRCVMORE) { head->so_error = ECONNABORTED; break; } @@ -1849,7 +1849,7 @@ */ SOCKBUF_LOCK(&so->so_snd); if ((so->so_state & SS_NBIO) && sbspace(&so->so_snd) <= 0) { - if (so->so_state & SS_CANTSENDMORE) + if (so->so_snd.sb_state & SBS_CANTSENDMORE) error = EPIPE; else error = EAGAIN; @@ -2015,8 +2015,8 @@ * blocks before the pru_send (or more accurately, any blocking * results in a loop back to here to re-check). */ - if ((so->so_state & SS_CANTSENDMORE) || so->so_error) { - if (so->so_state & SS_CANTSENDMORE) { + if ((so->so_snd.sb_state & SBS_CANTSENDMORE) || so->so_error) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { error = EPIPE; } else { error = so->so_error; ==== //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.124 2004/06/13 02:50:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.125 2004/06/14 18:16:19 rwatson Exp $"); #include "opt_mac.h" @@ -402,7 +402,7 @@ } } - if (so->so_state & SS_CANTSENDMORE) { + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { error = EPIPE; break; } ==== //depot/projects/netperf_socket/sys/kern/vfs_subr.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.491 2004/05/31 19:06:01 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.492 2004/06/14 14:25:03 phk Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -1705,11 +1705,8 @@ delay = dirdelay; break; case VCHR: - if (newvp->v_rdev->si_mountpoint != NULL) { - delay = metadelay; - break; - } - /* FALLTHROUGH */ + delay = metadelay; + break; default: delay = filedelay; } ==== //depot/projects/netperf_socket/sys/net/firewire.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/net/firewire.h,v 1.1 2004/06/13 10:54:35 dfr Exp $ + * $FreeBSD: src/sys/net/firewire.h,v 1.2 2004/06/14 08:17:51 dfr Exp $ */ #ifndef _NET_FIREWIRE_H_ @@ -51,7 +51,7 @@ #if BYTE_ORDER == BIG_ENDIAN uint32_t lf :2; uint32_t reserved1 :2; - uint32_t datagram_size :12 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 14 19:08:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F08416A4D0; Mon, 14 Jun 2004 19:08:01 +0000 (GMT) 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 1440D16A4CE for ; Mon, 14 Jun 2004 19:08:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0D18A43D53 for ; Mon, 14 Jun 2004 19:08:01 +0000 (GMT) (envelope-from ps@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EJ7qiI087342 for ; Mon, 14 Jun 2004 19:07:52 GMT (envelope-from ps@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EJ7oC5087339 for perforce@freebsd.org; Mon, 14 Jun 2004 19:07:50 GMT (envelope-from ps@freebsd.org) Date: Mon, 14 Jun 2004 19:07:50 GMT Message-Id: <200406141907.i5EJ7oC5087339@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ps@freebsd.org using -f From: Paul Saab To: Perforce Change Reviews Subject: PERFORCE change 54943 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, 14 Jun 2004 19:08:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54943 Change 54943 by ps@butter.corp on 2004/06/14 19:07:18 IFC Affected files ... .. //depot/projects/sack/alpha/alpha/machdep.c#2 integrate .. //depot/projects/sack/alpha/alpha/pmap.c#2 integrate .. //depot/projects/sack/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/sack/alpha/include/pc/bios.h#2 integrate .. //depot/projects/sack/amd64/acpica/madt.c#2 integrate .. //depot/projects/sack/amd64/amd64/fpu.c#2 integrate .. //depot/projects/sack/amd64/amd64/identcpu.c#2 integrate .. //depot/projects/sack/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/sack/amd64/amd64/machdep.c#2 integrate .. //depot/projects/sack/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/sack/amd64/amd64/mpboot.S#2 integrate .. //depot/projects/sack/amd64/amd64/pmap.c#2 integrate .. //depot/projects/sack/amd64/conf/GENERIC#2 integrate .. //depot/projects/sack/amd64/include/asm.h#2 integrate .. //depot/projects/sack/amd64/include/md_var.h#2 integrate .. //depot/projects/sack/amd64/include/param.h#2 integrate .. //depot/projects/sack/amd64/include/pmap.h#2 integrate .. //depot/projects/sack/amd64/include/profile.h#2 integrate .. //depot/projects/sack/amd64/include/specialreg.h#2 integrate .. //depot/projects/sack/boot/i386/boot0/boot0.S#2 integrate .. //depot/projects/sack/compat/linux/linux_ioctl.c#2 integrate .. //depot/projects/sack/compat/linux/linux_ioctl.h#2 integrate .. //depot/projects/sack/compat/linux/linux_misc.c#2 integrate .. //depot/projects/sack/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/sack/compat/svr4/svr4_stream.c#2 integrate .. //depot/projects/sack/conf/NOTES#2 integrate .. //depot/projects/sack/conf/files#3 integrate .. //depot/projects/sack/conf/files.alpha#2 integrate .. //depot/projects/sack/conf/files.sparc64#2 integrate .. //depot/projects/sack/conf/kern.pre.mk#2 integrate .. //depot/projects/sack/conf/kmod.mk#2 integrate .. //depot/projects/sack/conf/options#3 integrate .. //depot/projects/sack/contrib/altq/altq/altq.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/sack/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/sack/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/sack/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/sack/contrib/ipfilter/netinet/ip_compat.h#2 integrate .. //depot/projects/sack/contrib/pf/net/if_pflog.c#2 integrate .. //depot/projects/sack/contrib/pf/net/if_pfsync.c#2 integrate .. //depot/projects/sack/contrib/pf/net/pf.c#2 integrate .. //depot/projects/sack/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/sack/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/sack/crypto/des/des_ecb.c#2 integrate .. //depot/projects/sack/crypto/des/des_enc.c#2 integrate .. //depot/projects/sack/crypto/des/des_setkey.c#2 integrate .. //depot/projects/sack/dev/aac/aac_debug.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_isab.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_pci_link.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_pcib_acpi.c#2 integrate .. //depot/projects/sack/dev/acpica/acpi_resource.c#2 integrate .. //depot/projects/sack/dev/acpica/acpivar.h#2 integrate .. //depot/projects/sack/dev/ata/ata-lowlevel.c#2 integrate .. //depot/projects/sack/dev/awi/awi.c#2 integrate .. //depot/projects/sack/dev/bge/if_bge.c#2 integrate .. //depot/projects/sack/dev/bge/if_bgereg.h#2 integrate .. //depot/projects/sack/dev/bktr/bktr_mem.c#2 integrate .. //depot/projects/sack/dev/cx/if_cx.c#2 integrate .. //depot/projects/sack/dev/cy/cy.c#2 integrate .. //depot/projects/sack/dev/digi/digi.c#2 integrate .. //depot/projects/sack/dev/drm/drm.h#2 integrate .. //depot/projects/sack/dev/drm/drmP.h#2 integrate .. //depot/projects/sack/dev/drm/drm_drv.h#2 integrate .. //depot/projects/sack/dev/drm/drm_linux_list.h#1 branch .. //depot/projects/sack/dev/drm/drm_os_freebsd.h#2 integrate .. //depot/projects/sack/dev/drm/drm_pciids.h#1 branch .. //depot/projects/sack/dev/drm/drm_sarea.h#2 integrate .. //depot/projects/sack/dev/drm/mga.h#2 integrate .. //depot/projects/sack/dev/drm/mga_drm.h#2 integrate .. //depot/projects/sack/dev/drm/r128.h#2 integrate .. //depot/projects/sack/dev/drm/r128_drm.h#2 integrate .. //depot/projects/sack/dev/drm/r128_state.c#2 integrate .. //depot/projects/sack/dev/drm/radeon.h#2 integrate .. //depot/projects/sack/dev/drm/radeon_drm.h#2 integrate .. //depot/projects/sack/dev/drm/radeon_drv.h#2 integrate .. //depot/projects/sack/dev/drm/radeon_mem.c#2 integrate .. //depot/projects/sack/dev/drm/radeon_state.c#2 integrate .. //depot/projects/sack/dev/drm/sis.h#2 integrate .. //depot/projects/sack/dev/drm/sis_drv.c#2 integrate .. //depot/projects/sack/dev/drm/sis_mm.c#2 integrate .. //depot/projects/sack/dev/drm/tdfx.h#2 integrate .. //depot/projects/sack/dev/ed/if_ed.c#2 integrate .. //depot/projects/sack/dev/eisa/eisa_if.m#1 branch .. //depot/projects/sack/dev/eisa/eisaconf.c#2 integrate .. //depot/projects/sack/dev/eisa/eisaconf.h#2 integrate .. //depot/projects/sack/dev/esp/esp_sbus.c#1 branch .. //depot/projects/sack/dev/esp/lsi64854.c#1 branch .. //depot/projects/sack/dev/esp/lsi64854reg.h#1 branch .. //depot/projects/sack/dev/esp/lsi64854var.h#1 branch .. //depot/projects/sack/dev/esp/ncr53c9x.c#1 branch .. //depot/projects/sack/dev/esp/ncr53c9xreg.h#1 branch .. //depot/projects/sack/dev/esp/ncr53c9xvar.h#1 branch .. //depot/projects/sack/dev/fb/vga.c#2 integrate .. //depot/projects/sack/dev/fe/if_fe.c#2 integrate .. //depot/projects/sack/dev/firewire/firewire.c#2 integrate .. //depot/projects/sack/dev/firewire/if_fwip.c#1 branch .. //depot/projects/sack/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/sack/dev/gem/if_gem.c#2 integrate .. //depot/projects/sack/dev/hme/if_hme.c#2 integrate .. //depot/projects/sack/dev/ichwd/ichwd.c#2 integrate .. //depot/projects/sack/dev/ips/ips_commands.c#2 integrate .. //depot/projects/sack/dev/kbd/atkbd.c#2 integrate .. //depot/projects/sack/dev/lge/if_lge.c#2 integrate .. //depot/projects/sack/dev/lnc/if_lnc.c#2 integrate .. //depot/projects/sack/dev/my/if_my.c#2 integrate .. //depot/projects/sack/dev/nge/if_nge.c#2 integrate .. //depot/projects/sack/dev/ofw/ofw_console.c#2 integrate .. //depot/projects/sack/dev/pcf/envctrl.c#2 integrate .. //depot/projects/sack/dev/pcf/pcf_ebus.c#1 branch .. //depot/projects/sack/dev/pcf/pcf_isa.c#2 integrate .. //depot/projects/sack/dev/pdq/pdq_freebsd.h#2 integrate .. //depot/projects/sack/dev/re/if_re.c#2 integrate .. //depot/projects/sack/dev/rp/rp.c#2 integrate .. //depot/projects/sack/dev/sab/sab.c#2 integrate .. //depot/projects/sack/dev/si/si.c#2 integrate .. //depot/projects/sack/dev/sio/sio.c#2 integrate .. //depot/projects/sack/dev/sn/if_sn.c#2 integrate .. //depot/projects/sack/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/sack/dev/sound/pci/emu10k1.c#2 integrate .. //depot/projects/sack/dev/sx/sx.c#2 integrate .. //depot/projects/sack/dev/twe/twe.c#2 integrate .. //depot/projects/sack/dev/twe/twe_freebsd.c#2 integrate .. //depot/projects/sack/dev/twe/twevar.h#2 integrate .. //depot/projects/sack/dev/tx/if_tx.c#2 integrate .. //depot/projects/sack/dev/usb/if_aue.c#2 integrate .. //depot/projects/sack/dev/usb/if_axe.c#2 integrate .. //depot/projects/sack/dev/usb/if_cue.c#2 integrate .. //depot/projects/sack/dev/usb/if_rue.c#2 integrate .. //depot/projects/sack/dev/usb/if_udav.c#2 integrate .. //depot/projects/sack/dev/usb/ucom.c#2 integrate .. //depot/projects/sack/dev/usb/uhub.c#2 integrate .. //depot/projects/sack/dev/wi/if_wi.c#2 integrate .. //depot/projects/sack/dev/wi/if_wi_pccard.c#2 integrate .. //depot/projects/sack/dev/xe/if_xe.c#2 integrate .. //depot/projects/sack/fs/fifofs/fifo_vnops.c#2 integrate .. //depot/projects/sack/geom/geom_io.c#2 integrate .. //depot/projects/sack/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/sack/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/sack/i386/acpica/acpi_asus.c#2 integrate .. //depot/projects/sack/i386/acpica/acpi_machdep.c#2 integrate .. //depot/projects/sack/i386/acpica/acpi_toshiba.c#2 integrate .. //depot/projects/sack/i386/acpica/madt.c#2 integrate .. //depot/projects/sack/i386/bios/mca_machdep.c#2 integrate .. //depot/projects/sack/i386/bios/smapi.c#2 integrate .. //depot/projects/sack/i386/bios/smbios.c#2 integrate .. //depot/projects/sack/i386/bios/vpd.c#2 integrate .. //depot/projects/sack/i386/conf/NOTES#2 integrate .. //depot/projects/sack/i386/i386/bios.c#2 integrate .. //depot/projects/sack/i386/i386/machdep.c#2 integrate .. //depot/projects/sack/i386/i386/pmap.c#2 integrate .. //depot/projects/sack/i386/i386/symbols.raw#2 integrate .. //depot/projects/sack/i386/include/md_var.h#2 integrate .. //depot/projects/sack/i386/include/pc/bios.h#2 integrate .. //depot/projects/sack/i386/include/pmap.h#2 integrate .. //depot/projects/sack/i386/isa/vesa.c#2 integrate .. //depot/projects/sack/i386/pci/pci_pir.c#2 integrate .. //depot/projects/sack/i4b/driver/i4b_ipr.c#2 integrate .. //depot/projects/sack/ia64/ia64/machdep.c#2 integrate .. //depot/projects/sack/ia64/ia64/pmap.c#2 integrate .. //depot/projects/sack/isa/syscons_isa.c#2 integrate .. //depot/projects/sack/kern/kern_descrip.c#2 integrate .. //depot/projects/sack/kern/kern_exit.c#2 integrate .. //depot/projects/sack/kern/kern_kse.c#2 integrate .. //depot/projects/sack/kern/kern_proc.c#2 integrate .. //depot/projects/sack/kern/kern_prot.c#2 integrate .. //depot/projects/sack/kern/kern_resource.c#2 integrate .. //depot/projects/sack/kern/kern_sema.c#2 integrate .. //depot/projects/sack/kern/kern_sig.c#2 integrate .. //depot/projects/sack/kern/kern_sysctl.c#2 integrate .. //depot/projects/sack/kern/kern_thread.c#2 integrate .. //depot/projects/sack/kern/kern_xxx.c#2 integrate .. //depot/projects/sack/kern/subr_witness.c#2 integrate .. //depot/projects/sack/kern/sys_socket.c#2 integrate .. //depot/projects/sack/kern/tty.c#2 integrate .. //depot/projects/sack/kern/tty_compat.c#2 integrate .. //depot/projects/sack/kern/tty_conf.c#2 integrate .. //depot/projects/sack/kern/tty_pty.c#2 integrate .. //depot/projects/sack/kern/uipc_mbuf.c#2 integrate .. //depot/projects/sack/kern/uipc_socket.c#2 integrate .. //depot/projects/sack/kern/uipc_socket2.c#2 integrate .. //depot/projects/sack/kern/uipc_syscalls.c#2 integrate .. //depot/projects/sack/kern/uipc_usrreq.c#2 integrate .. //depot/projects/sack/kern/vfs_subr.c#2 integrate .. //depot/projects/sack/kern/vfs_syscalls.c#2 integrate .. //depot/projects/sack/modules/aic7xxx/ahc/ahc_eisa/Makefile#2 integrate .. //depot/projects/sack/modules/em/Makefile#2 integrate .. //depot/projects/sack/modules/esp/Makefile#1 branch .. //depot/projects/sack/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/sack/modules/ipfilter/Makefile#2 integrate .. //depot/projects/sack/modules/ixgb/Makefile#2 integrate .. //depot/projects/sack/modules/vx/Makefile#2 integrate .. //depot/projects/sack/net/bpf.c#2 integrate .. //depot/projects/sack/net/firewire.h#1 branch .. //depot/projects/sack/net/if.c#2 integrate .. //depot/projects/sack/net/if_arp.h#2 integrate .. //depot/projects/sack/net/if_fwsubr.c#1 branch .. //depot/projects/sack/net/if_ppp.c#2 integrate .. //depot/projects/sack/net/if_sl.c#2 integrate .. //depot/projects/sack/net/if_spppsubr.c#2 integrate .. //depot/projects/sack/net/if_var.h#2 integrate .. //depot/projects/sack/net/netisr.h#2 integrate .. //depot/projects/sack/net/raw_cb.c#2 integrate .. //depot/projects/sack/net/raw_usrreq.c#2 integrate .. //depot/projects/sack/net/rtsock.c#2 integrate .. //depot/projects/sack/net80211/ieee80211_input.c#2 integrate .. //depot/projects/sack/netatalk/ddp_input.c#2 integrate .. //depot/projects/sack/netatalk/ddp_output.c#2 integrate .. //depot/projects/sack/netatalk/ddp_pcb.c#2 integrate .. //depot/projects/sack/netatm/atm_aal5.c#2 integrate .. //depot/projects/sack/netatm/atm_ioctl.h#2 integrate .. //depot/projects/sack/netatm/atm_socket.c#2 integrate .. //depot/projects/sack/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#2 integrate .. //depot/projects/sack/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#2 integrate .. //depot/projects/sack/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#2 integrate .. //depot/projects/sack/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 integrate .. //depot/projects/sack/netgraph/ng_ksocket.c#2 integrate .. //depot/projects/sack/netgraph/ng_rfc1490.c#2 integrate .. //depot/projects/sack/netgraph/ng_rfc1490.h#2 integrate .. //depot/projects/sack/netinet/accf_http.c#2 integrate .. //depot/projects/sack/netinet/if_ether.c#2 integrate .. //depot/projects/sack/netinet/igmp.c#2 integrate .. //depot/projects/sack/netinet/in.h#2 integrate .. //depot/projects/sack/netinet/in_pcb.c#2 integrate .. //depot/projects/sack/netinet/ip_divert.c#2 integrate .. //depot/projects/sack/netinet/ip_fw.h#2 integrate .. //depot/projects/sack/netinet/ip_fw2.c#2 integrate .. //depot/projects/sack/netinet/ip_input.c#2 integrate .. //depot/projects/sack/netinet/ip_output.c#2 integrate .. //depot/projects/sack/netinet/raw_ip.c#2 integrate .. //depot/projects/sack/netinet/tcp_input.c#3 integrate .. //depot/projects/sack/netinet/tcp_subr.c#3 integrate .. //depot/projects/sack/netinet/tcp_syncache.c#3 integrate .. //depot/projects/sack/netinet/tcp_usrreq.c#2 integrate .. //depot/projects/sack/netinet6/in6_pcb.c#2 integrate .. //depot/projects/sack/netinet6/ip6_input.c#2 integrate .. //depot/projects/sack/netipx/ipx_pcb.c#2 integrate .. //depot/projects/sack/netipx/ipx_usrreq.c#2 integrate .. //depot/projects/sack/netipx/spx_usrreq.c#2 integrate .. //depot/projects/sack/netnatm/natm.c#2 integrate .. //depot/projects/sack/netsmb/smb_trantcp.c#2 integrate .. //depot/projects/sack/pc98/i386/machdep.c#2 integrate .. //depot/projects/sack/pc98/pc98/pc98gdc.c#2 integrate .. //depot/projects/sack/pc98/pc98/sio.c#2 integrate .. //depot/projects/sack/pci/if_dc.c#2 integrate .. //depot/projects/sack/pci/if_de.c#2 integrate .. //depot/projects/sack/pci/if_mn.c#2 integrate .. //depot/projects/sack/pci/if_pcn.c#2 integrate .. //depot/projects/sack/pci/if_rl.c#2 integrate .. //depot/projects/sack/pci/if_sf.c#2 integrate .. //depot/projects/sack/pci/if_sis.c#2 integrate .. //depot/projects/sack/pci/if_sk.c#2 integrate .. //depot/projects/sack/pci/if_ste.c#2 integrate .. //depot/projects/sack/pci/if_vr.c#2 integrate .. //depot/projects/sack/pci/if_wb.c#2 integrate .. //depot/projects/sack/pci/if_xl.c#2 integrate .. //depot/projects/sack/security/mac/mac_socket.c#2 integrate .. //depot/projects/sack/sparc64/conf/GENERIC#2 integrate .. //depot/projects/sack/sys/_types.h#2 integrate .. //depot/projects/sack/sys/gmon.h#2 integrate .. //depot/projects/sack/sys/ioctl.h#2 integrate .. //depot/projects/sack/sys/mbuf.h#2 integrate .. //depot/projects/sack/sys/param.h#2 integrate .. //depot/projects/sack/sys/resource.h#2 integrate .. //depot/projects/sack/sys/signal.h#2 integrate .. //depot/projects/sack/sys/socketvar.h#2 integrate .. //depot/projects/sack/sys/tty.h#2 integrate .. //depot/projects/sack/sys/types.h#2 integrate .. //depot/projects/sack/sys/vmmeter.h#2 integrate .. //depot/projects/sack/ufs/ffs/ffs_snapshot.c#2 integrate .. //depot/projects/sack/vm/uma_core.c#2 integrate .. //depot/projects/sack/vm/vm_mmap.c#2 integrate Differences ... ==== //depot/projects/sack/alpha/alpha/machdep.c#2 (text+ko) ==== @@ -88,7 +88,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.219 2004/04/01 20:56:43 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.220 2004/06/11 11:16:17 phk Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -1180,7 +1180,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sip = (osiginfo_t *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1304,7 +1304,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sfp = (struct sigframe4 *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1428,7 +1428,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sfp = (struct sigframe *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1543,7 +1543,7 @@ return (EINVAL); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) /* * Restore the user-supplied information */ @@ -1633,7 +1633,7 @@ alpha_pal_wrusp(uc.uc_mcontext.mc_regs[R_SP]); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) if (uc.uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; else @@ -1709,7 +1709,7 @@ alpha_pal_wrusp(uc.uc_mcontext.mc_regs[R_SP]); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) if (uc.uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; else ==== //depot/projects/sack/alpha/alpha/pmap.c#2 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.146 2004/04/26 17:49:05 gallatin Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.149 2004/06/12 06:03:27 alc Exp $"); #include #include @@ -172,7 +172,6 @@ #include #include #include -#include #include @@ -555,52 +554,6 @@ return 0; } -void * -uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) -{ - static vm_pindex_t color; - vm_page_t m; - int pflags; - void *va; - - *flags = UMA_SLAB_PRIV; - - if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT; - else - pflags = VM_ALLOC_SYSTEM; - - if (wait & M_ZERO) - pflags |= VM_ALLOC_ZERO; - - for (;;) { - m = vm_page_alloc(NULL, color++, pflags | VM_ALLOC_NOOBJ); - if (m == NULL) { - if (wait & M_NOWAIT) - return (NULL); - else - VM_WAIT; - } else - break; - } - - va = (void *)ALPHA_PHYS_TO_K0SEG(m->phys_addr); - if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) - bzero(va, PAGE_SIZE); - return (va); -} - -void -uma_small_free(void *mem, int size, u_int8_t flags) -{ - vm_page_t m; - - m = PHYS_TO_VM_PAGE(ALPHA_K0SEG_TO_PHYS((vm_offset_t)mem)); - vm_page_lock_queues(); - vm_page_free(m); - vm_page_unlock_queues(); -} - /* * Initialize the pmap module. * Called by vm_init, to initialize any structures that the pmap @@ -612,7 +565,6 @@ pmap_init(void) { int i; - int initial_pvs; /* * Allocate memory for random pmap data structures. Includes the @@ -630,12 +582,9 @@ /* * init the pv free list */ - initial_pvs = vm_page_array_size; - if (initial_pvs < MINPV) - initial_pvs = MINPV; pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); - uma_prealloc(pvzone, initial_pvs); + uma_prealloc(pvzone, MINPV); /* * Now it is safe to enable pv_table recording. ==== //depot/projects/sack/alpha/include/pc/bios.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/pc/bios.h,v 1.5 1999/08/28 00:38:56 peter Exp $ + * $FreeBSD: src/sys/alpha/include/pc/bios.h,v 1.6 2004/06/10 20:30:54 jhb Exp $ * from: i386/include/pc bios.h,v 1.2 */ @@ -71,13 +71,8 @@ }; extern void bios32(caddr_t func_addr, struct bios32_args *args); -#if 0 -#define BIOS_PADDRTOVADDR(x) (((x) - ISA_HOLE_START) + atdevbase) -#define BIOS_VADDRTOPADDR(x) (((x) - atdevbase) + ISA_HOLE_START) -#else #define BIOS_PADDRTOVADDR(x) (x) #define BIOS_VADDRTOPADDR(x) (x) -#endif /* * System Management BIOS / Desktop Management Interface tables ==== //depot/projects/sack/amd64/acpica/madt.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.13 2004/06/03 20:25:04 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.14 2004/06/10 21:30:08 peter Exp $"); #include #include @@ -65,7 +65,6 @@ } ioapics[NIOAPICS]; struct lapic_info { - u_int la_present:1; u_int la_enabled:1; u_int la_acpi_id:8; } lapics[NLAPICS]; @@ -447,18 +446,17 @@ printf("MADT: Found CPU APIC ID %d ACPI ID %d: %s\n", proc->LocalApicId, proc->ProcessorId, proc->ProcessorEnabled ? "enabled" : "disabled"); + if (!proc->ProcessorEnabled) + break; if (proc->LocalApicId >= NLAPICS) panic("%s: CPU ID %d too high", __func__, proc->LocalApicId); la = &lapics[proc->LocalApicId]; - KASSERT(la->la_present == 0, + KASSERT(la->la_enabled == 0, ("Duplicate local APIC ID %d", proc->LocalApicId)); - la->la_present = 1; + la->la_enabled = 1; la->la_acpi_id = proc->ProcessorId; - if (proc->ProcessorEnabled) { - la->la_enabled = 1; - lapic_create(proc->LocalApicId, 0); - } + lapic_create(proc->LocalApicId, 0); break; } } @@ -548,15 +546,12 @@ int i; for (i = 0; i < NLAPICS; i++) { - if (!lapics[i].la_present) + if (!lapics[i].la_enabled) continue; if (lapics[i].la_acpi_id != acpi_id) continue; *apic_id = i; - if (lapics[i].la_enabled) - return (0); - else - return (ENXIO); + return (0); } return (ENOENT); } @@ -770,7 +765,7 @@ pc = pcpu_find(i); KASSERT(pc != NULL, ("no pcpu data for CPU %d", i)); la = &lapics[pc->pc_apic_id]; - if (!la->la_present || !la->la_enabled) + if (!la->la_enabled) panic("APIC: CPU with APIC ID %u is not enabled", pc->pc_apic_id); pc->pc_acpi_id = la->la_acpi_id; ==== //depot/projects/sack/amd64/amd64/fpu.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.151 2004/06/06 09:16:02 das Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.153 2004/06/08 01:35:48 peter Exp $"); #include #include @@ -73,6 +73,7 @@ #define fnstsw(addr) __asm __volatile("fnstsw %0" : "=m" (*(addr))) #define fxrstor(addr) __asm("fxrstor %0" : : "m" (*(addr))) #define fxsave(addr) __asm __volatile("fxsave %0" : "=m" (*(addr))) +#define ldmxcsr(r) __asm __volatile("ldmxcsr %0" : : "m" (r)) #define start_emulating() __asm("smsw %%ax; orb %0,%%al; lmsw %%ax" \ : : "n" (CR0_TS) : "ax") #define stop_emulating() __asm("clts") @@ -111,6 +112,7 @@ fpuinit(void) { register_t savecrit; + u_int mxcsr; u_short control; savecrit = intr_disable(); @@ -119,6 +121,8 @@ fninit(); control = __INITIAL_FPUCW__; fldcw(&control); + mxcsr = __INITIAL_MXCSR__; + ldmxcsr(mxcsr); fxsave(&fpu_cleanstate); start_emulating(); fpu_cleanstate_ready = 1; ==== //depot/projects/sack/amd64/amd64/identcpu.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.132 2004/06/03 20:18:15 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.134 2004/06/08 01:20:37 peter Exp $"); #include "opt_cpu.h" @@ -69,13 +69,10 @@ void earlysetcpuclass(void); void panicifcpuunsupported(void); -static void print_AMD_features(void); static void print_AMD_info(void); static void print_AMD_assoc(int i); -int cpu_feature2; /* XXX change cpu_feature to long? */ int cpu_class; -u_int cpu_exthigh; /* Highest arg to extended CPUID */ char machine[] = "amd64"; SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, "Machine class"); @@ -109,26 +106,18 @@ strncpy(cpu_model, amd64_cpus[cpu].cpu_name, sizeof (cpu_model)); /* Check for extended CPUID information and a processor name. */ - if (cpu_high > 0 && - (strcmp(cpu_vendor, "GenuineIntel") == 0 || - strcmp(cpu_vendor, "AuthenticAMD") == 0)) { - do_cpuid(0x80000000, regs); - if (regs[0] >= 0x80000000) { - cpu_exthigh = regs[0]; - if (cpu_exthigh >= 0x80000004) { - brand = cpu_brand; - for (i = 0x80000002; i < 0x80000005; i++) { - do_cpuid(i, regs); - memcpy(brand, regs, sizeof(regs)); - brand += sizeof(regs); - } - } + if (cpu_exthigh >= 0x80000004) { + brand = cpu_brand; + for (i = 0x80000002; i < 0x80000005; i++) { + do_cpuid(i, regs); + memcpy(brand, regs, sizeof(regs)); + brand += sizeof(regs); } } if (strcmp(cpu_vendor, "GenuineIntel") == 0) { - /* Better late than never I suppose.. */ - strcat(cpu_model, "IA-32e"); + /* Please make up your mind folks! */ + strcat(cpu_model, "EM64T"); } else if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { /* * Values taken from AMD Processor Recognition @@ -259,6 +248,43 @@ "\040" ); } + if (amd_feature != 0) { + printf("\n AMD Features=0x%b", amd_feature, + "\020" /* in hex */ + "\001" /* Same */ + "\002" /* Same */ + "\003" /* Same */ + "\004" /* Same */ + "\005" /* Same */ + "\006" /* Same */ + "\007" /* Same */ + "\010" /* Same */ + "\011" /* Same */ + "\012" /* Same */ + "\013" /* Undefined */ + "\014SYSCALL" /* Have SYSCALL/SYSRET */ + "\015" /* Same */ + "\016" /* Same */ + "\017" /* Same */ + "\020" /* Same */ + "\021" /* Same */ + "\022" /* Same */ + "\023" /* Reserved, unknown */ + "\024MP" /* Multiprocessor Capable */ + "\025NX" /* Has EFER.NXE, NX */ + "\026" /* Undefined */ + "\027MMX+" /* AMD MMX Extensions */ + "\030" /* Same */ + "\031" /* Same */ + "\032" /* Undefined */ + "\033" /* Undefined */ + "\034" /* Undefined */ + "\035" /* Undefined */ + "\036LM" /* 64 bit long mode */ + "\0373DNow+" /* AMD 3DNow! Extensions */ + "\0403DNow" /* AMD 3DNow! */ + ); + } /* * If this CPU supports hyperthreading then mention @@ -269,8 +295,6 @@ printf("\n Hyperthreading: %d logical CPUs", (cpu_procinfo & CPUID_HTT_CORES) >> 16); } - if (cpu_exthigh >= 0x80000001) - print_AMD_features(); } /* Avoid ugly blank lines: only print newline when we have to. */ if (*cpu_vendor || cpu_id) @@ -327,6 +351,16 @@ cpu_feature = regs[3]; cpu_feature2 = regs[2]; + if (strcmp(cpu_vendor, "GenuineIntel") == 0 || + strcmp(cpu_vendor, "AuthenticAMD") == 0) { + do_cpuid(0x80000000, regs); + cpu_exthigh = regs[0]; + } + if (cpu_exthigh >= 0x80000001) { + do_cpuid(0x80000001, regs); + amd_feature = regs[3] & ~(cpu_feature & 0x0183f3ff); + } + /* XXX */ cpu = CPU_CLAWHAMMER; } @@ -358,111 +392,64 @@ static void print_AMD_info(void) { + u_int regs[4]; - if (cpu_exthigh >= 0x80000005) { - u_int regs[4]; + if (cpu_exthigh < 0x80000005) + return; - do_cpuid(0x80000005, regs); - printf("L1 2MB data TLB: %d entries", (regs[0] >> 16) & 0xff); - print_AMD_assoc(regs[0] >> 24); + do_cpuid(0x80000005, regs); + printf("L1 2MB data TLB: %d entries", (regs[0] >> 16) & 0xff); + print_AMD_assoc(regs[0] >> 24); - printf("L1 2MB instruction TLB: %d entries", regs[0] & 0xff); - print_AMD_assoc((regs[0] >> 8) & 0xff); + printf("L1 2MB instruction TLB: %d entries", regs[0] & 0xff); + print_AMD_assoc((regs[0] >> 8) & 0xff); - printf("L1 4KB data TLB: %d entries", (regs[1] >> 16) & 0xff); - print_AMD_assoc(regs[1] >> 24); + printf("L1 4KB data TLB: %d entries", (regs[1] >> 16) & 0xff); + print_AMD_assoc(regs[1] >> 24); - printf("L1 4KB instruction TLB: %d entries", regs[1] & 0xff); - print_AMD_assoc((regs[1] >> 8) & 0xff); + printf("L1 4KB instruction TLB: %d entries", regs[1] & 0xff); + print_AMD_assoc((regs[1] >> 8) & 0xff); - printf("L1 data cache: %d kbytes", regs[2] >> 24); - printf(", %d bytes/line", regs[2] & 0xff); - printf(", %d lines/tag", (regs[2] >> 8) & 0xff); - print_AMD_assoc((regs[2] >> 16) & 0xff); + printf("L1 data cache: %d kbytes", regs[2] >> 24); + printf(", %d bytes/line", regs[2] & 0xff); + printf(", %d lines/tag", (regs[2] >> 8) & 0xff); + print_AMD_assoc((regs[2] >> 16) & 0xff); - printf("L1 instruction cache: %d kbytes", regs[3] >> 24); - printf(", %d bytes/line", regs[3] & 0xff); - printf(", %d lines/tag", (regs[3] >> 8) & 0xff); - print_AMD_assoc((regs[3] >> 16) & 0xff); + printf("L1 instruction cache: %d kbytes", regs[3] >> 24); + printf(", %d bytes/line", regs[3] & 0xff); + printf(", %d lines/tag", (regs[3] >> 8) & 0xff); + print_AMD_assoc((regs[3] >> 16) & 0xff); - if (cpu_exthigh >= 0x80000006) { - do_cpuid(0x80000006, regs); - if ((regs[0] >> 16) != 0) { - printf("L2 2MB data TLB: %d entries", - (regs[0] >> 16) & 0xfff); - print_AMD_l2_assoc(regs[0] >> 28); - printf("L2 2MB instruction TLB: %d entries", - regs[0] & 0xfff); - print_AMD_l2_assoc((regs[0] >> 28) & 0xf); - } else { - printf("L2 2MB unified TLB: %d entries", - regs[0] & 0xfff); - print_AMD_l2_assoc((regs[0] >> 28) & 0xf); - } - if ((regs[1] >> 16) != 0) { - printf("L2 4KB data TLB: %d entries", - (regs[1] >> 16) & 0xfff); - print_AMD_l2_assoc(regs[1] >> 28); + if (cpu_exthigh >= 0x80000006) { + do_cpuid(0x80000006, regs); + if ((regs[0] >> 16) != 0) { + printf("L2 2MB data TLB: %d entries", + (regs[0] >> 16) & 0xfff); + print_AMD_l2_assoc(regs[0] >> 28); + printf("L2 2MB instruction TLB: %d entries", + regs[0] & 0xfff); + print_AMD_l2_assoc((regs[0] >> 28) & 0xf); + } else { + printf("L2 2MB unified TLB: %d entries", + regs[0] & 0xfff); + print_AMD_l2_assoc((regs[0] >> 28) & 0xf); + } + if ((regs[1] >> 16) != 0) { + printf("L2 4KB data TLB: %d entries", + (regs[1] >> 16) & 0xfff); + print_AMD_l2_assoc(regs[1] >> 28); - printf("L2 4KB instruction TLB: %d entries", - (regs[1] >> 16) & 0xfff); - print_AMD_l2_assoc((regs[1] >> 28) & 0xf); - } else { - printf("L2 4KB unified TLB: %d entries", - (regs[1] >> 16) & 0xfff); - print_AMD_l2_assoc((regs[1] >> 28) & 0xf); - } - printf("L2 unified cache: %d kbytes", regs[2] >> 16); - printf(", %d bytes/line", regs[2] & 0xff); - printf(", %d lines/tag", (regs[2] >> 8) & 0x0f); - print_AMD_l2_assoc((regs[2] >> 12) & 0x0f); + printf("L2 4KB instruction TLB: %d entries", + (regs[1] >> 16) & 0xfff); + print_AMD_l2_assoc((regs[1] >> 28) & 0xf); + } else { + printf("L2 4KB unified TLB: %d entries", + (regs[1] >> 16) & 0xfff); + print_AMD_l2_assoc((regs[1] >> 28) & 0xf); } + printf("L2 unified cache: %d kbytes", regs[2] >> 16); + printf(", %d bytes/line", regs[2] & 0xff); + printf(", %d lines/tag", (regs[2] >> 8) & 0x0f); + print_AMD_l2_assoc((regs[2] >> 12) & 0x0f); } } - -static void -print_AMD_features(void) -{ - u_int regs[4]; - - /* - * Values taken from AMD Processor Recognition - * http://www.amd.com/products/cpg/athlon/techdocs/pdf/20734.pdf - */ - do_cpuid(0x80000001, regs); - printf("\n AMD Features=0x%b", regs[3] & ~(cpu_feature & 0x0183f3ff), - "\020" /* in hex */ - "\001FPU" /* Integral FPU */ - "\002VME" /* Extended VM86 mode support */ - "\003DE" /* Debug extensions */ - "\004PSE" /* 4MByte page tables */ - "\005TSC" /* Timestamp counter */ - "\006MSR" /* Machine specific registers */ - "\007PAE" /* Physical address extension */ - "\010MCE" /* Machine Check support */ - "\011CX8" /* CMPEXCH8 instruction */ - "\012APIC" /* SMP local APIC */ - "\013" - "\014SYSCALL" /* SYSENTER/SYSEXIT instructions */ - "\015MTRR" /* Memory Type Range Registers */ - "\016PGE" /* PG_G (global bit) support */ - "\017MCA" /* Machine Check Architecture */ - "\020CMOV" /* CMOV instruction */ - "\021PAT" /* Page attributes table */ - "\022PGE36" /* 36 bit address space support */ - "\023RSVD" /* Reserved, unknown */ - "\024MP" /* Multiprocessor Capable */ - "\025NX" /* Has EFER.NXE, NX (no execute pte bit) */ - "\026" - "\027MMX+" /* AMD MMX Instruction Extensions */ - "\030MMX" - "\031FXSAVE" /* FXSAVE/FXRSTOR */ - "\032" - "\033" - "\034" - "\035" - "\036LM" /* Long mode */ - "\0373DNow!+" /* AMD 3DNow! Instruction Extensions */ - "\0403DNow!" /* AMD 3DNow! Instructions */ - ); -} ==== //depot/projects/sack/amd64/amd64/initcpu.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.47 2003/11/21 03:01:59 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.48 2004/06/08 01:02:51 peter Exp $"); #include "opt_cpu.h" @@ -41,7 +41,8 @@ #include #include -void initializecpu(void); +#include +#include static int hw_instruction_sse; SYSCTL_INT(_hw, OID_AUTO, instruction_sse, CTLFLAG_RD, @@ -49,31 +50,30 @@ int cpu; /* Are we 386, 386sx, 486, etc? */ u_int cpu_feature; /* Feature flags */ +u_int cpu_feature2; /* Feature flags */ +u_int amd_feature; /* Feature flags */ u_int cpu_high; /* Highest arg to CPUID */ +u_int cpu_exthigh; /* Highest arg to extended CPUID */ u_int cpu_id; /* Stepping ID */ u_int cpu_procinfo; /* HyperThreading Info / Brand Index / CLFUSH */ char cpu_vendor[20]; /* CPU Origin code */ u_int cpu_fxsr; /* SSE enabled */ /* - * Initialize CR4 (Control register 4) to enable SSE instructions. + * Initialize CPU control registers */ void -enable_sse(void) +initializecpu(void) { + uint64_t msr; + if ((cpu_feature & CPUID_XMM) && (cpu_feature & CPUID_FXSR)) { load_cr4(rcr4() | CR4_FXSR | CR4_XMM); cpu_fxsr = hw_instruction_sse = 1; } -} - -void -initializecpu(void) -{ - - switch (cpu) { - default: - break; + if ((amd_feature & AMDID_NX) != 0) { + msr = rdmsr(MSR_EFER) | EFER_NXE; + wrmsr(MSR_EFER, msr); + pg_nx = PG_NX; } - enable_sse(); } ==== //depot/projects/sack/amd64/amd64/machdep.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.607 2004/05/19 01:23:48 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.610 2004/06/11 11:16:18 phk Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -130,7 +130,6 @@ extern void printcpuinfo(void); /* XXX header file */ extern void identify_cpu(void); extern void panicifcpuunsupported(void); -extern void initializecpu(void); #define CS_SECURE(cs) (ISPL(cs) == SEL_UPL) #define EFL_SECURE(ef, oef) ((((ef) ^ (oef)) & ~PSL_USERCHANGE) == 0) @@ -141,7 +140,6 @@ SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL) int _udatasel, _ucodesel, _ucode32sel; -u_long atdevbase; int cold = 1; @@ -264,7 +262,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jun 14 20:27:32 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5F95616A4D0; Mon, 14 Jun 2004 20:27:32 +0000 (GMT) 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 1B23216A4CE for ; Mon, 14 Jun 2004 20:27:32 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0280D43D2D for ; Mon, 14 Jun 2004 20:27:32 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5EKRVFh004773 for ; Mon, 14 Jun 2004 20:27:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EKRVho004770 for perforce@freebsd.org; Mon, 14 Jun 2004 20:27:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 14 Jun 2004 20:27:31 GMT Message-Id: <200406142027.i5EKRVho004770@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 54947 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, 14 Jun 2004 20:27:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=54947 Change 54947 by rwatson@rwatson_tislabs on 2004/06/14 20:26:34 Integrate netperf_socket. Affected files ... .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/conf/NOTES#19 integrate .. //depot/projects/netperf_socket/sys/sys/gmon.h#4 integrate Differences ... ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.15 2004/05/28 17:31:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.16 2004/06/14 18:54:14 jhb Exp $"); #include "opt_acpi.h" #include @@ -48,6 +48,7 @@ TAILQ_ENTRY(acpi_pci_link_entry) links; ACPI_HANDLE handle; UINT8 current_irq; + UINT8 initial_irq; ACPI_RESOURCE possible_resources; UINT8 number_of_interrupts; UINT8 interrupts[MAX_POSSIBLE_INTERRUPTS]; @@ -72,9 +73,6 @@ static int irq_penalty[MAX_ACPI_INTERRUPTS]; -static int acpi_pci_link_is_valid_irq(struct acpi_pci_link_entry *link, - UINT8 irq); - #define ACPI_STA_PRESENT 0x00000001 #define ACPI_STA_ENABLE 0x00000002 #define ACPI_STA_SHOWINUI 0x00000004 @@ -384,12 +382,7 @@ acpi_name(handle), AcpiFormatException(error))); } - if (!acpi_pci_link_is_valid_irq(link, link->current_irq)) { - ACPI_DEBUG_PRINT((ACPI_DB_WARN, - "initial IRQ %u is invalid for link %s\n", - link->current_irq, acpi_name(handle))); - link->current_irq = 0; - } + link->initial_irq = link->current_irq; error = AcpiGetPossibleResources(handle, &buf); if (ACPI_FAILURE(error)) { @@ -532,6 +525,11 @@ if (link->interrupts[i] == irq) return (1); } + + /* allow initial IRQ as valid one. */ + if (link->initial_irq == irq) + return (1); + return (0); } ==== //depot/projects/netperf_socket/sys/i386/conf/NOTES#19 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1160 2004/05/17 14:42:59 rik Exp $ +# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1161 2004/06/14 18:37:23 jhb Exp $ # # @@ -44,7 +44,7 @@ # they are enabled. However, most HTT systems do not list HTT CPUs # in the MP Table if they are enabled, thus we guess at the HTT CPUs # for the MP Table case. However, we shouldn't try to guess and use -# these CPUs if HTTT is disabled. Thus, HTT guessing is only enabled +# these CPUs if HTT is disabled. Thus, HTT guessing is only enabled # for the MP Table if the user explicitly asks for it via the # MPTABLE_FORCE_HTT option. Do NOT use this option if you have HTT # disabled in your BIOS. @@ -1014,7 +1014,7 @@ # VM OPTIONS # Disable the 4 MByte page PSE CPU feature. The PSE feature allows the -# kernel to use a 4 MByte pages to map the kernel instead of 4k pages. +# kernel to use 4 MByte pages to map the kernel instead of 4k pages. # This saves on the amount of memory needed for page tables needed to # map the kernel. You should only disable this feature as a temporary # workaround if you are having problems with it enabled. ==== //depot/projects/netperf_socket/sys/sys/gmon.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)gmon.h 8.2 (Berkeley) 1/4/94 - * $FreeBSD: src/sys/sys/gmon.h,v 1.18 2004/05/19 15:41:26 bde Exp $ + * $FreeBSD: src/sys/sys/gmon.h,v 1.19 2004/06/14 18:39:28 bms Exp $ */ #ifndef _SYS_GMON_H_ @@ -228,6 +228,15 @@ void nullfunc(void); void nullfunc_loop(void); +#else /* !_KERNEL */ + +#include + +__BEGIN_DECLS +void moncontrol(int); +void monstartup(u_long, u_long); +__END_DECLS + #endif /* _KERNEL */ #endif /* !_SYS_GMON_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 22:42:57 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4EEF16A4D0; Mon, 14 Jun 2004 22:42:56 +0000 (GMT) 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 9E59F16A4CE for ; Mon, 14 Jun 2004 22:42:56 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 97F6E43D31 for ; Mon, 14 Jun 2004 22:42:56 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EMgbb1042206 for ; Mon, 14 Jun 2004 22:42:37 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EMgbnS042203 for perforce@freebsd.org; Mon, 14 Jun 2004 22:42:37 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 22:42:37 GMT Message-Id: <200406142242.i5EMgbnS042203@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 54960 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, 14 Jun 2004 22:42:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=54960 Change 54960 by jmallett@jmallett_oingo on 2004/06/14 22:42:18 Go back to cute AND'ing of bits. Looks like this may actually be a requirement for at least one of my systems, or I'm on crack. Affected files ... .. //depot/projects/mips/sys/mips/mips/locore.S#14 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/locore.S#14 (text+ko) ==== @@ -54,19 +54,27 @@ GLOBAL(btext) ENTRY(start) /* - * t0: Bits to set: + * t0: Bits to preserve if set: + * Soft reset + * Boot exception vectors (firmware-provided) + */ + li t0, MIPS_SR_BEV | MIPS_SR_SR + /* + * t1: Bits to set explicitly: * Kernel mode is 64-bit * Enable FPU */ - li t0, MIPS_SR_KX | MIPS_SR_COP_1_BIT + li t1, MIPS_SR_KX | MIPS_SR_COP_1_BIT /* - * Read coprocessor 0 status register, and set bits we want to - * explicitly set. + * Read coprocessor 0 status register, clear bits not + * preserved (namely, clearing interrupt bits), and set + * bits we want to explicitly set. */ - mfc0 t1, MIPS_COP_0_STATUS - or t1, t0 - mtc0 t1, MIPS_COP_0_STATUS + mfc0 t2, MIPS_COP_0_STATUS + and t2, t0 + or t2, t1 + mtc0 t2, MIPS_COP_0_STATUS COP0_SYNC /* Extra nops for the FPU to spin up. */ From owner-p4-projects@FreeBSD.ORG Mon Jun 14 22:44:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B242316A4D1; Mon, 14 Jun 2004 22:44:01 +0000 (GMT) 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 8ABD216A4CF for ; Mon, 14 Jun 2004 22:44:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C6B243D39 for ; Mon, 14 Jun 2004 22:44:01 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EMhdpT042285 for ; Mon, 14 Jun 2004 22:43:39 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EMhdKj042282 for perforce@freebsd.org; Mon, 14 Jun 2004 22:43:39 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 22:43:39 GMT Message-Id: <200406142243.i5EMhdKj042282@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 54961 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, 14 Jun 2004 22:44:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54961 Change 54961 by jmallett@jmallett_oingo on 2004/06/14 22:43:22 Bring back IP22 vs. IP24 detection. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/ip22.c#9 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/ip22.c#9 (text+ko) ==== @@ -69,6 +69,20 @@ ip22_init(void) { u_int32_t address; + u_int32_t sysid; + + sysid = *(volatile u_int32_t *)MIPS_PHYS_TO_KSEG1(0x1fbd9858); + + if (sysid & 1) + mach_subtype = MACH_SGI_IP22_FULLHOUSE; + else + mach_subtype = MACH_SGI_IP22_GUINESS; + + mach_boardrev = (sysid >> 1) & 0x0f; + + printf("IOC rev %d, machine %s, board rev %d\n", (sysid >> 5) & 0x07, + (sysid & 1) ? "Indigo2 (Fullhouse)" : "Indy (Guiness)", + (sysid >> 1) & 0x0f); if (mach_type == MACH_SGI_IP22) { printf("int: "); From owner-p4-projects@FreeBSD.ORG Mon Jun 14 22:45:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B85AC16A4D0; Mon, 14 Jun 2004 22:45:01 +0000 (GMT) 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 9335816A4CE for ; Mon, 14 Jun 2004 22:45:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8CB7243D46 for ; Mon, 14 Jun 2004 22:45:01 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EMifY3042386 for ; Mon, 14 Jun 2004 22:44:41 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EMifbM042383 for perforce@freebsd.org; Mon, 14 Jun 2004 22:44:41 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 22:44:41 GMT Message-Id: <200406142244.i5EMifbM042383@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 54962 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, 14 Jun 2004 22:45:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54962 Change 54962 by jmallett@jmallett_oingo on 2004/06/14 22:43:41 Kills interrupt sharing dead. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#34 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#34 (text+ko) ==== @@ -182,6 +182,8 @@ if (intr < 0 || intr > 5) panic("%s called for unknown hard intr %d", __func__, intr); ih = &intrhard[intr]; + if (ih->handler != NULL && ih->handler != handler) + panic("%s cannot share hard intr %d", __func__, intr); ih->handler = handler; ih->arg = arg; @@ -197,6 +199,8 @@ if (intr < 0 || intr > 1) panic("%s called for unknown soft intr %d", __func__, intr); ih = &intrsoft[intr]; + if (ih->handler != NULL && ih->handler != handler) + panic("%s cannot share soft intr %d", __func__, intr); ih->handler = handler; ih->arg = arg; From owner-p4-projects@FreeBSD.ORG Mon Jun 14 22:45:02 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4534916A4D7; Mon, 14 Jun 2004 22:45:02 +0000 (GMT) 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 0EFAD16A4F9 for ; Mon, 14 Jun 2004 22:45:02 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 075EE43D49 for ; Mon, 14 Jun 2004 22:45:02 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EMiga5042392 for ; Mon, 14 Jun 2004 22:44:42 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EMigpg042389 for perforce@freebsd.org; Mon, 14 Jun 2004 22:44:42 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 22:44:42 GMT Message-Id: <200406142244.i5EMigpg042389@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 54963 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, 14 Jun 2004 22:45:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=54963 Change 54963 by jmallett@jmallett_oingo on 2004/06/14 22:44:06 Functionalize bus resetting, and further, make it the int4 handler. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#7 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 $ */ #include @@ -38,6 +38,7 @@ #include #include #include +#include static devclass_t imc_devclass; @@ -70,6 +71,8 @@ NULL }; +static void imc_reset(void *); + #define IMC_READ_4(port, r) \ bus_space_read_4(device_space_tag, (port), (r)) @@ -123,9 +126,9 @@ device_printf(dev, "revision %d, EISA %s\n", sysid & IMC_SYSID_REVMASK, sysid & IMC_SYSID_HAVEISA ? "present" : "not present"); - /* Clear error status. */ - IMC_WRITE_4(port, IMC_CPU_ERRSTAT, 0); - IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0); + /* Clear error status and set up bus error handler. */ + imc_reset(dev); + platform_establish_hardintr(4, imc_reset, dev); /* * Enable parity reporting on GIO/main memory transactions. @@ -188,4 +191,18 @@ return (0); } +static void +imc_reset(void *arg) +{ + device_t dev; + long *scp; + long port; + + dev = (device_t)arg; + scp = device_get_softc(dev); + port = *scp; + IMC_WRITE_4(port, IMC_CPU_ERRSTAT, 0); + IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0); +} + DRIVER_MODULE(imc, root, imc_driver, imc_devclass, 0, 0); From owner-p4-projects@FreeBSD.ORG Mon Jun 14 23:00:43 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 753A516A4D6; Mon, 14 Jun 2004 23:00:43 +0000 (GMT) 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 3DADF16A4CF for ; Mon, 14 Jun 2004 23:00:43 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A9FB143D5D for ; Mon, 14 Jun 2004 23:00:25 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EN01oH044613 for ; Mon, 14 Jun 2004 23:00:01 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EN01B9044610 for perforce@freebsd.org; Mon, 14 Jun 2004 23:00:01 GMT (envelope-from jmallett@freebsd.org) Date: Mon, 14 Jun 2004 23:00:01 GMT Message-Id: <200406142300.i5EN01B9044610@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 54964 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, 14 Jun 2004 23:00:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=54964 Change 54964 by jmallett@jmallett_oingo on 2004/06/14 22:59:23 Establish intr before saying we want to turn on the clock. Affected files ... .. //depot/projects/mips/sys/mips/sgimips/clock.c#9 edit Differences ... ==== //depot/projects/mips/sys/mips/sgimips/clock.c#9 (text+ko) ==== @@ -88,8 +88,8 @@ panic("cannot init clock for type %d", mach_type); } tc_init(&sgimips_timecounter); + platform_establish_hardintr(5, sgimips_clock5_intr, NULL); mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); - platform_establish_hardintr(5, sgimips_clock5_intr, NULL); } void From owner-p4-projects@FreeBSD.ORG Mon Jun 14 23:01:23 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 798F016A4D0; Mon, 14 Jun 2004 23:01:23 +0000 (GMT) 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 4F13516A4CE for ; Mon, 14 Jun 2004 23:01:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 461D643D5D for ; Mon, 14 Jun 2004 23:01:23 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5EN16D0044690 for ; Mon, 14 Jun 2004 23:01:06 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5EN13co044687 for perforce@freebsd.org; Mon, 14 Jun 2004 23:01:03 GMT (envelope-from peter@freebsd.org) Date: Mon, 14 Jun 2004 23:01:03 GMT Message-Id: <200406142301.i5EN13co044687@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 54965 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, 14 Jun 2004 23:01:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=54965 Change 54965 by peter@peter_daintree on 2004/06/14 23:00:22 IFC @54959 Affected files ... .. //depot/projects/hammer/UPDATING#40 integrate .. //depot/projects/hammer/bin/setfacl/Makefile#2 integrate .. //depot/projects/hammer/contrib/groff/doc/meintro.me#2 integrate .. //depot/projects/hammer/contrib/groff/doc/meref.me#2 integrate .. //depot/projects/hammer/etc/etc.arm/ttys#1 branch .. //depot/projects/hammer/etc/mtree/BSD.include.dist#19 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/Makefile#11 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/kvm-fbsd-alpha.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/kvm-fbsd-i386.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/kvm-fbsd-sparc64.h#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/kvm-fbsd.c#8 integrate .. //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#16 integrate .. //depot/projects/hammer/include/Makefile#23 integrate .. //depot/projects/hammer/lib/libc/gmon/moncontrol.3#3 integrate .. //depot/projects/hammer/lib/libc/net/inet.3#3 integrate .. //depot/projects/hammer/lib/libc/stdtime/asctime.c#3 integrate .. //depot/projects/hammer/lib/libc/stdtime/difftime.c#3 integrate .. //depot/projects/hammer/lib/libc/stdtime/localtime.c#5 integrate .. //depot/projects/hammer/lib/libc/stdtime/private.h#2 integrate .. //depot/projects/hammer/lib/libc/stdtime/strftime.c#3 integrate .. //depot/projects/hammer/lib/libc/sys/getrlimit.2#3 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_create.c#14 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#25 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#20 integrate .. //depot/projects/hammer/lib/libpthread/thread/thr_sigsuspend.c#11 integrate .. //depot/projects/hammer/lib/libradius/radlib.c#3 integrate .. //depot/projects/hammer/lib/msun/amd64/fenv.c#2 integrate .. //depot/projects/hammer/lib/msun/ia64/fenv.c#2 integrate .. //depot/projects/hammer/lib/msun/man/ieee_test.3#2 integrate .. //depot/projects/hammer/libexec/ftpd/ftpd.c#14 integrate .. //depot/projects/hammer/sbin/fdisk/fdisk.c#12 integrate .. //depot/projects/hammer/sbin/gvinum/Makefile#1 branch .. //depot/projects/hammer/sbin/gvinum/gvinum.c#1 branch .. //depot/projects/hammer/sbin/gvinum/gvinum.h#1 branch .. //depot/projects/hammer/sbin/ifconfig/ifconfig.8#15 integrate .. //depot/projects/hammer/sbin/md5/Makefile#3 integrate .. //depot/projects/hammer/sbin/md5/md5.1#4 integrate .. //depot/projects/hammer/sbin/md5/md5.c#5 integrate .. //depot/projects/hammer/sbin/sunlabel/sunlabel.c#8 integrate .. //depot/projects/hammer/share/man/man4/Makefile#40 integrate .. //depot/projects/hammer/share/man/man4/bge.4#9 integrate .. //depot/projects/hammer/share/man/man4/ciss.4#4 integrate .. //depot/projects/hammer/share/man/man4/cue.4#5 integrate .. //depot/projects/hammer/share/man/man4/dc.4#9 integrate .. //depot/projects/hammer/share/man/man4/fwip.4#1 branch .. //depot/projects/hammer/share/man/man4/gx.4#4 integrate .. //depot/projects/hammer/share/man/man4/kue.4#5 integrate .. //depot/projects/hammer/share/man/man4/lge.4#3 integrate .. //depot/projects/hammer/share/man/man4/ng_rfc1490.4#3 integrate .. //depot/projects/hammer/share/man/man4/nge.4#3 integrate .. //depot/projects/hammer/share/man/man4/uftdi.4#2 integrate .. //depot/projects/hammer/share/man/man7/hier.7#16 integrate .. //depot/projects/hammer/share/man/man9/sema.9#2 integrate .. //depot/projects/hammer/share/man/man9/style.9#13 integrate .. //depot/projects/hammer/share/misc/iso3166#5 integrate .. //depot/projects/hammer/sys/alpha/alpha/machdep.c#23 integrate .. //depot/projects/hammer/sys/alpha/alpha/pmap.c#24 integrate .. //depot/projects/hammer/sys/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#90 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#79 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC#44 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#37 integrate .. //depot/projects/hammer/sys/boot/i386/boot0/boot0.S#3 integrate .. //depot/projects/hammer/sys/compat/linux/linux_ioctl.c#15 integrate .. //depot/projects/hammer/sys/compat/linux/linux_ioctl.h#6 integrate .. //depot/projects/hammer/sys/compat/linux/linux_misc.c#19 integrate .. //depot/projects/hammer/sys/compat/linux/linux_uid16.c#6 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_stream.c#9 integrate .. //depot/projects/hammer/sys/conf/NOTES#47 integrate .. //depot/projects/hammer/sys/conf/files#62 integrate .. //depot/projects/hammer/sys/conf/files.alpha#14 integrate .. //depot/projects/hammer/sys/conf/kern.pre.mk#25 integrate .. //depot/projects/hammer/sys/conf/kmod.mk#29 integrate .. //depot/projects/hammer/sys/conf/options#40 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/altq.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/hammer/sys/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/hammer/sys/contrib/pf/net/if_pflog.c#6 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf.c#7 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_ioctl.c#7 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pfvar.h#3 integrate .. //depot/projects/hammer/sys/crypto/des/des_ecb.c#2 integrate .. //depot/projects/hammer/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/hammer/sys/crypto/des/des_setkey.c#2 integrate .. //depot/projects/hammer/sys/dev/aac/aac_debug.c#6 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#35 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_acad.c#12 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_button.c#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_cmbat.c#12 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_ec.c#21 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_isab.c#6 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_lid.c#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_pci_link.c#14 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_pcib_acpi.c#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_resource.c#10 integrate .. //depot/projects/hammer/sys/dev/acpica/acpivar.h#27 integrate .. //depot/projects/hammer/sys/dev/ata/ata-lowlevel.c#16 integrate .. //depot/projects/hammer/sys/dev/awi/awi.c#11 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_mem.c#4 integrate .. //depot/projects/hammer/sys/dev/cy/cy.c#5 integrate .. //depot/projects/hammer/sys/dev/digi/digi.c#9 integrate .. //depot/projects/hammer/sys/dev/drm/drm.h#6 integrate .. //depot/projects/hammer/sys/dev/drm/drmP.h#8 integrate .. //depot/projects/hammer/sys/dev/drm/drm_drv.h#14 integrate .. //depot/projects/hammer/sys/dev/drm/drm_linux_list.h#1 branch .. //depot/projects/hammer/sys/dev/drm/drm_os_freebsd.h#12 integrate .. //depot/projects/hammer/sys/dev/drm/drm_pciids.h#1 branch .. //depot/projects/hammer/sys/dev/drm/drm_sarea.h#3 integrate .. //depot/projects/hammer/sys/dev/drm/mga.h#5 integrate .. //depot/projects/hammer/sys/dev/drm/mga_drm.h#3 integrate .. //depot/projects/hammer/sys/dev/drm/r128.h#6 integrate .. //depot/projects/hammer/sys/dev/drm/r128_drm.h#4 integrate .. //depot/projects/hammer/sys/dev/drm/r128_state.c#7 integrate .. //depot/projects/hammer/sys/dev/drm/radeon.h#8 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_drm.h#6 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_drv.h#7 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_mem.c#4 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_state.c#7 integrate .. //depot/projects/hammer/sys/dev/drm/sis.h#3 integrate .. //depot/projects/hammer/sys/dev/drm/sis_drv.c#3 integrate .. //depot/projects/hammer/sys/dev/drm/sis_mm.c#4 integrate .. //depot/projects/hammer/sys/dev/drm/tdfx.h#4 integrate .. //depot/projects/hammer/sys/dev/esp/esp_sbus.c#2 integrate .. //depot/projects/hammer/sys/dev/esp/ncr53c9x.c#2 integrate .. //depot/projects/hammer/sys/dev/esp/ncr53c9xvar.h#2 integrate .. //depot/projects/hammer/sys/dev/firewire/firewire.c#27 integrate .. //depot/projects/hammer/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/hammer/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/hammer/sys/dev/hme/if_hme.c#13 integrate .. //depot/projects/hammer/sys/dev/ichwd/ichwd.c#4 integrate .. //depot/projects/hammer/sys/dev/ips/ips_commands.c#11 integrate .. //depot/projects/hammer/sys/dev/pdq/pdq_freebsd.h#5 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#10 integrate .. //depot/projects/hammer/sys/dev/si/si.c#8 integrate .. //depot/projects/hammer/sys/dev/sio/sio.c#33 integrate .. //depot/projects/hammer/sys/dev/sound/isa/sb16.c#9 integrate .. //depot/projects/hammer/sys/dev/sound/pci/emu10k1.c#11 integrate .. //depot/projects/hammer/sys/dev/sx/sx.c#4 integrate .. //depot/projects/hammer/sys/dev/twe/twe.c#9 integrate .. //depot/projects/hammer/sys/dev/twe/twe_freebsd.c#12 integrate .. //depot/projects/hammer/sys/dev/twe/twevar.h#7 integrate .. //depot/projects/hammer/sys/dev/usb/if_udav.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/ucom.c#13 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi.c#28 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#18 integrate .. //depot/projects/hammer/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/hammer/sys/i386/acpica/acpi_asus.c#3 integrate .. //depot/projects/hammer/sys/i386/acpica/acpi_toshiba.c#7 integrate .. //depot/projects/hammer/sys/i386/conf/NOTES#42 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#34 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#34 integrate .. //depot/projects/hammer/sys/i386/include/pmap.h#13 integrate .. //depot/projects/hammer/sys/i4b/driver/i4b_ipr.c#8 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#36 integrate .. //depot/projects/hammer/sys/ia64/ia64/pmap.c#26 integrate .. //depot/projects/hammer/sys/kern/kern_descrip.c#24 integrate .. //depot/projects/hammer/sys/kern/kern_kse.c#2 integrate .. //depot/projects/hammer/sys/kern/kern_prot.c#14 integrate .. //depot/projects/hammer/sys/kern/kern_resource.c#17 integrate .. //depot/projects/hammer/sys/kern/kern_sema.c#3 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#42 integrate .. //depot/projects/hammer/sys/kern/kern_sysctl.c#14 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#52 integrate .. //depot/projects/hammer/sys/kern/kern_xxx.c#6 integrate .. //depot/projects/hammer/sys/kern/subr_witness.c#29 integrate .. //depot/projects/hammer/sys/kern/sys_socket.c#10 integrate .. //depot/projects/hammer/sys/kern/tty.c#16 integrate .. //depot/projects/hammer/sys/kern/tty_compat.c#5 integrate .. //depot/projects/hammer/sys/kern/tty_conf.c#5 integrate .. //depot/projects/hammer/sys/kern/tty_pty.c#14 integrate .. //depot/projects/hammer/sys/kern/uipc_mbuf.c#19 integrate .. //depot/projects/hammer/sys/kern/uipc_socket.c#25 integrate .. //depot/projects/hammer/sys/kern/uipc_socket2.c#19 integrate .. //depot/projects/hammer/sys/kern/uipc_syscalls.c#27 integrate .. //depot/projects/hammer/sys/kern/uipc_usrreq.c#15 integrate .. //depot/projects/hammer/sys/kern/vfs_subr.c#39 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#29 integrate .. //depot/projects/hammer/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/hammer/sys/net/bpf.c#17 integrate .. //depot/projects/hammer/sys/net/firewire.h#1 branch .. //depot/projects/hammer/sys/net/if.c#19 integrate .. //depot/projects/hammer/sys/net/if_arp.h#5 integrate .. //depot/projects/hammer/sys/net/if_fwsubr.c#1 branch .. //depot/projects/hammer/sys/net/if_ppp.c#13 integrate .. //depot/projects/hammer/sys/net/if_sl.c#11 integrate .. //depot/projects/hammer/sys/net/if_spppsubr.c#12 integrate .. //depot/projects/hammer/sys/net/if_var.h#16 integrate .. //depot/projects/hammer/sys/net/raw_cb.c#5 integrate .. //depot/projects/hammer/sys/net/raw_usrreq.c#8 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_input.c#10 integrate .. //depot/projects/hammer/sys/netatalk/ddp_input.c#6 integrate .. //depot/projects/hammer/sys/netatalk/ddp_output.c#7 integrate .. //depot/projects/hammer/sys/netatalk/ddp_pcb.c#3 integrate .. //depot/projects/hammer/sys/netatm/atm_aal5.c#4 integrate .. //depot/projects/hammer/sys/netatm/atm_socket.c#7 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#12 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#10 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#10 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#8 integrate .. //depot/projects/hammer/sys/netgraph/ng_ksocket.c#10 integrate .. //depot/projects/hammer/sys/netgraph/ng_rfc1490.c#5 integrate .. //depot/projects/hammer/sys/netgraph/ng_rfc1490.h#4 integrate .. //depot/projects/hammer/sys/netinet/accf_http.c#3 integrate .. //depot/projects/hammer/sys/netinet/if_ether.c#13 integrate .. //depot/projects/hammer/sys/netinet/igmp.c#7 integrate .. //depot/projects/hammer/sys/netinet/in_pcb.c#25 integrate .. //depot/projects/hammer/sys/netinet/ip_divert.c#16 integrate .. //depot/projects/hammer/sys/netinet/ip_fw2.c#30 integrate .. //depot/projects/hammer/sys/netinet/ip_input.c#30 integrate .. //depot/projects/hammer/sys/netinet/ip_output.c#30 integrate .. //depot/projects/hammer/sys/netinet/tcp_input.c#25 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#21 integrate .. //depot/projects/hammer/sys/netinet/tcp_syncache.c#16 integrate .. //depot/projects/hammer/sys/netinet/tcp_usrreq.c#14 integrate .. //depot/projects/hammer/sys/netinet6/in6_pcb.c#15 integrate .. //depot/projects/hammer/sys/netinet6/ip6_input.c#14 integrate .. //depot/projects/hammer/sys/netipx/ipx_pcb.c#4 integrate .. //depot/projects/hammer/sys/netipx/ipx_usrreq.c#5 integrate .. //depot/projects/hammer/sys/netipx/spx_usrreq.c#7 integrate .. //depot/projects/hammer/sys/netnatm/natm.c#11 integrate .. //depot/projects/hammer/sys/netsmb/smb_trantcp.c#6 integrate .. //depot/projects/hammer/sys/pc98/i386/machdep.c#28 integrate .. //depot/projects/hammer/sys/pc98/pc98/pc98gdc.c#9 integrate .. //depot/projects/hammer/sys/pc98/pc98/sio.c#22 integrate .. //depot/projects/hammer/sys/pci/if_mn.c#9 integrate .. //depot/projects/hammer/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/hammer/sys/sys/_types.h#8 integrate .. //depot/projects/hammer/sys/sys/gmon.h#4 integrate .. //depot/projects/hammer/sys/sys/ioctl.h#4 integrate .. //depot/projects/hammer/sys/sys/param.h#33 integrate .. //depot/projects/hammer/sys/sys/resource.h#6 integrate .. //depot/projects/hammer/sys/sys/signal.h#8 integrate .. //depot/projects/hammer/sys/sys/socketvar.h#16 integrate .. //depot/projects/hammer/sys/sys/types.h#15 integrate .. //depot/projects/hammer/sys/vm/vm_mmap.c#24 integrate .. //depot/projects/hammer/tools/regression/lib/msun/Makefile#1 branch .. //depot/projects/hammer/tools/regression/lib/msun/test-fenv.c#1 branch .. //depot/projects/hammer/tools/tools/kttcp/sys/kttcp.c#2 integrate .. //depot/projects/hammer/tools/tools/tinderbox/etc/Makefile#6 integrate .. //depot/projects/hammer/tools/tools/tinderbox/etc/update_current.rc#1 branch .. //depot/projects/hammer/tools/tools/tinderbox/etc/update_stable.rc#1 branch .. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.1#9 integrate .. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.pl#20 integrate .. //depot/projects/hammer/tools/tools/tinderbox/www/index.cgi#9 integrate .. //depot/projects/hammer/usr.bin/Makefile#32 integrate .. //depot/projects/hammer/usr.bin/fstat/fstat.c#7 integrate .. //depot/projects/hammer/usr.bin/su/su.c#13 integrate .. //depot/projects/hammer/usr.bin/talk/get_names.c#2 integrate .. //depot/projects/hammer/usr.bin/talk/talk.1#3 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.1#7 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.c#10 integrate .. //depot/projects/hammer/usr.bin/truss/amd64-fbsd.c#1 branch .. //depot/projects/hammer/usr.bin/truss/extern.h#5 integrate .. //depot/projects/hammer/usr.bin/truss/main.c#7 integrate .. //depot/projects/hammer/usr.bin/truss/syscalls.c#11 integrate .. //depot/projects/hammer/usr.bin/whois/whois.1#4 integrate .. //depot/projects/hammer/usr.bin/whois/whois.c#8 integrate .. //depot/projects/hammer/usr.bin/xinstall/install.1#4 integrate .. //depot/projects/hammer/usr.sbin/acpi/iasl/iasl.8#2 integrate .. //depot/projects/hammer/usr.sbin/adduser/adduser.conf.5#3 integrate .. //depot/projects/hammer/usr.sbin/apm/apm.c#7 integrate .. //depot/projects/hammer/usr.sbin/arlcontrol/arlcontrol.8#3 integrate .. //depot/projects/hammer/usr.sbin/arp/arp.c#7 integrate .. //depot/projects/hammer/usr.sbin/asf/asf.8#4 integrate .. //depot/projects/hammer/usr.sbin/bluetooth/hcsecd/hcsecd.conf.5#2 integrate .. //depot/projects/hammer/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.8#3 integrate .. //depot/projects/hammer/usr.sbin/bluetooth/sdpd/sdpd.8#2 integrate .. //depot/projects/hammer/usr.sbin/dconschat/dconschat.8#4 integrate .. //depot/projects/hammer/usr.sbin/ip6addrctl/ip6addrctl.8#2 integrate .. //depot/projects/hammer/usr.sbin/moused/moused.8#5 integrate .. //depot/projects/hammer/usr.sbin/mtree/specspec.c#3 integrate .. //depot/projects/hammer/usr.sbin/ndiscvt/ndiscvt.8#3 integrate .. //depot/projects/hammer/usr.sbin/newsyslog/newsyslog.c#14 integrate .. //depot/projects/hammer/usr.sbin/newsyslog/newsyslog.conf.5#3 integrate .. //depot/projects/hammer/usr.sbin/nologin/nologin.5#2 integrate .. //depot/projects/hammer/usr.sbin/traceroute6/traceroute6.c#7 integrate .. //depot/projects/hammer/usr.sbin/watchdogd/watchdog.8#3 integrate .. //depot/projects/hammer/usr.sbin/watchdogd/watchdogd.8#4 integrate .. //depot/projects/hammer/usr.sbin/zzz/zzz.8#3 integrate Differences ... ==== //depot/projects/hammer/UPDATING#40 (text+ko) ==== @@ -17,7 +17,19 @@ developers choose to disable these features on build machines to maximize performance. -20040607: +20040614: + The return value of sema_timedwait(9) has been changed to + make it consistent with cv_timedwait(9). Be sure to recompile + the ips module and any third-party modules which call + sema_timedwait. + +20040613: + ALTQ is now linked to the build. This breaks ABI for struct ifnet. + Make sure to recompile modules and any userland that makes use of + sizeof(struct ifnet). In order to get the altq headers in place + please recompile and reinstall world. + +20040607: Splitting kern_thread.c into 2 files (adding kern_kse.c) requires that you re-run config after updating your tree. @@ -1611,4 +1623,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.309 2004/06/07 21:37:40 julian Exp $ +$FreeBSD: src/UPDATING,v 1.312 2004/06/14 18:19:04 jdp Exp $ ==== //depot/projects/hammer/bin/setfacl/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/bin/setfacl/Makefile,v 1.7 2001/12/04 01:57:46 obrien Exp $ +# $FreeBSD: src/bin/setfacl/Makefile,v 1.8 2004/06/13 19:22:53 obrien Exp $ -PROG= setfacl -SRCS= file.c mask.c merge.c remove.c setfacl.c util.c +PROG= setfacl +SRCS= file.c mask.c merge.c remove.c setfacl.c util.c .include ==== //depot/projects/hammer/contrib/groff/doc/meintro.me#2 (text+ko) ==== @@ -2239,8 +2239,5 @@ and the plethora of people who have contributed ideas and have given support for the project. .sp 1i -This document was -\*G'ed -on \*(td -and applies to the version of the \-me macros +This document applies to the version of the \-me macros included with \*G version \*(MO. ==== //depot/projects/hammer/contrib/groff/doc/meref.me#2 (text+ko) ==== @@ -195,9 +195,7 @@ (upper or lower case) or digit. .pp -This documentation was \*G'ed -on \*(td -and applies to \*G version +This documentation applies to \*G version \*(MO of the \-me macros. .sh 1 "Paragraphing" @@ -1822,19 +1820,19 @@ .DE Today's date, directly printable. -The date is of the form \*(td. +The date is of the form February 15, 2003. Other forms of the date can be used by using .NR (dy (the day of the month; -for example, \n(dy), +for example, 15), .ST (mo (as noted above) or .NR (mo (the same, but as an ordinal number; -for example, \*(mo is \n(mo), +for example, February is 2), .NR (y4 (the current year), and ==== //depot/projects/hammer/etc/mtree/BSD.include.dist#19 (text+ko) ==== @@ -1,10 +1,12 @@ -# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.82 2004/05/20 10:29:26 pjd Exp $ +# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.83 2004/06/13 17:29:05 mlaier Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # /set type=dir uname=root gname=wheel mode=0755 . + altq + .. arpa .. bsnmp ==== //depot/projects/hammer/gnu/usr.bin/binutils/gdb/Makefile#11 (text+ko) ==== @@ -1,5 +1,5 @@ # ex:ts=8 -# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.79 2004/03/17 07:40:42 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.80 2004/06/11 16:09:38 obrien Exp $ .include "../Makefile.inc0" @@ -45,7 +45,7 @@ scm-exp.c scm-lang.c scm-valprint.c \ coffread.c dbxread.c dwarfread.c dwarf2read.c elfread.c \ solib.c solib-svr4.c solib-legacy.c -XSRCS+= freebsd-uthread.c kvm-fbsd.c solib-fbsd-kld.c +XSRCS+= freebsd-uthread.c kvm-fbsd.c kvm-fbsd-machine.h solib-fbsd-kld.c SRCS= init.c ${XSRCS} nm.h tm.h xm.h gdbversion.c xregex.h .include "${.CURDIR}/Makefile.${TARGET_ARCH}" @@ -73,7 +73,7 @@ LDADD+= ${RELTOP}/libiberty/libiberty.a LDADD+= -lreadline -ltermcap -CLEANFILES= init.c init.c-tmp nm.h tm.h xm.h gdbversion.c xregex.h +CLEANFILES= init.c init.c-tmp nm.h tm.h xm.h gdbversion.c xregex.h kvm-fbsd-machine.h # We do this by grepping through sources. If that turns out to be too slow, # maybe we could just require every .o file to have an initialization routine @@ -127,6 +127,9 @@ ln -sf ${GDBDIR}/gdb/config/${GDB_CPU}/${H}.h ${.TARGET} .endfor +kvm-fbsd-machine.h: + ln -sf ${.CURDIR}/kvm-fbsd-${TARGET_ARCH}.h ${.TARGET} + GDB_VERSION= "5.2.1 (FreeBSD)" gdbversion.c: Makefile @echo '#include "version.h"' > ${.TARGET} ==== //depot/projects/hammer/gnu/usr.bin/binutils/gdb/kvm-fbsd.c#8 (text+ko) ==== @@ -19,7 +19,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $FreeBSD: src/gnu/usr.bin/binutils/gdb/kvm-fbsd.c,v 1.48 2004/05/10 17:45:51 obrien Exp $ */ +#include +__FBSDID("$FreeBSD: src/gnu/usr.bin/binutils/gdb/kvm-fbsd.c,v 1.49 2004/06/11 16:09:38 obrien Exp $"); /* * This works like "remote" but, you use it like this: @@ -33,31 +34,27 @@ */ #include -#include -#include #include -#include -#include +#include #include #include #include #include -#include -#include #include "defs.h" +#include #include "gdb_string.h" #include "frame.h" /* required by inferior.h */ #include "inferior.h" -#include "symtab.h" #include "symfile.h" #include "objfiles.h" #include "command.h" #include "bfd.h" -#include "target.h" #include "gdbcore.h" #include "solist.h" +#include "kvm-fbsd-machine.h" + static void kcore_files_info (struct target_ops *); @@ -68,10 +65,6 @@ get_kcore_registers (int); static int -xfer_mem (CORE_ADDR, char *, int, int, struct mem_attrib *, - struct target_ops *); - -static int xfer_umem (CORE_ADDR, char *, int, int); #ifdef SOLIB_ADD @@ -116,7 +109,7 @@ #define KERNOFF (ksym_kernbase ()) #define INKERNEL(x) ((x) >= KERNOFF) -CORE_ADDR +static CORE_ADDR ksym_lookup(const char *name) { struct minimal_symbol *sym; @@ -190,8 +183,6 @@ static int set_context (CORE_ADDR addr) { - CORE_ADDR procaddr = 0; - if (kvread (addr, &cur_pcb)) error ("cannot read pcb at %#x", addr); @@ -349,253 +340,6 @@ printf_filtered ("No kernel core file now.\n"); } -#ifdef __alpha__ - -#include "alpha/tm-alpha.h" -#ifndef S0_REGNUM -#define S0_REGNUM (T7_REGNUM+1) -#endif - -fetch_kcore_registers (struct pcb *pcbp) -{ - - /* First clear out any garbage. */ - memset (registers, '\0', REGISTER_BYTES); - - /* SP */ - *(long *) ®isters[REGISTER_BYTE (SP_REGNUM)] = - pcbp->pcb_hw.apcb_ksp; - - /* S0 through S6 */ - memcpy (®isters[REGISTER_BYTE (S0_REGNUM)], - &pcbp->pcb_context[0], 7 * sizeof (long)); - - /* PC */ - *(long *) ®isters[REGISTER_BYTE (PC_REGNUM)] = - pcbp->pcb_context[7]; - - registers_fetched (); -} - - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR this_saved_pc; - - this_saved_pc = alpha_frame_saved_pc (fi); - - sym = lookup_minimal_symbol_by_pc (this_saved_pc); - - if (sym != NULL && - (strcmp (SYMBOL_NAME (sym), "XentArith") == 0 || - strcmp (SYMBOL_NAME (sym), "XentIF") == 0 || - strcmp (SYMBOL_NAME (sym), "XentInt") == 0 || - strcmp (SYMBOL_NAME (sym), "XentMM") == 0 || - strcmp (SYMBOL_NAME (sym), "XentSys") == 0 || - strcmp (SYMBOL_NAME (sym), "XentUna") == 0 || - strcmp (SYMBOL_NAME (sym), "XentRestart") == 0)) - { - return (read_memory_integer (fi->frame + 32 * 8, 8)); - } - else - { - return (this_saved_pc); - } -} - -#endif /* __alpha__ */ - -#ifdef __i386__ - -static CORE_ADDR -ksym_maxuseraddr (void) -{ - static CORE_ADDR maxuseraddr; - struct minimal_symbol *sym; - - if (maxuseraddr == 0) - { - sym = lookup_minimal_symbol ("PTmap", NULL, NULL); - if (sym == NULL) { - maxuseraddr = VM_MAXUSER_ADDRESS; - } else { - maxuseraddr = SYMBOL_VALUE_ADDRESS (sym); - } - } - return maxuseraddr; -} - - -/* Symbol names of kernel entry points. Use special frames. */ -#define KSYM_TRAP "calltrap" -#define KSYM_INTR "Xintr" -#define KSYM_FASTINTR "Xfastintr" -#define KSYM_OLDSYSCALL "Xlcall_syscall" -#define KSYM_SYSCALL "Xint0x80_syscall" - -/* The following is FreeBSD-specific hackery to decode special frames - and elide the assembly-language stub. This could be made faster by - defining a frame_type field in the machine-dependent frame information, - but we don't think that's too important right now. */ -enum frametype { tf_normal, tf_trap, tf_interrupt, tf_syscall }; - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR this_saved_pc; - enum frametype frametype; - - this_saved_pc = read_memory_integer (fi->frame + 4, 4); - sym = lookup_minimal_symbol_by_pc (this_saved_pc); - frametype = tf_normal; - if (sym != NULL) - { - if (strcmp (SYMBOL_NAME (sym), KSYM_TRAP) == 0) - frametype = tf_trap; - else - if (strncmp (SYMBOL_NAME (sym), KSYM_INTR, - strlen (KSYM_INTR)) == 0 || strncmp (SYMBOL_NAME(sym), - KSYM_FASTINTR, strlen (KSYM_FASTINTR)) == 0) - frametype = tf_interrupt; - else - if (strcmp (SYMBOL_NAME (sym), KSYM_SYSCALL) == 0 || - strcmp (SYMBOL_NAME (sym), KSYM_OLDSYSCALL) == 0) - frametype = tf_syscall; - } - - switch (frametype) - { - case tf_normal: - return (this_saved_pc); -#define oEIP offsetof (struct trapframe, tf_eip) - - case tf_trap: - return (read_memory_integer (fi->frame + 8 + oEIP, 4)); - - case tf_interrupt: - return (read_memory_integer (fi->frame + 12 + oEIP, 4)); - - case tf_syscall: - return (read_memory_integer (fi->frame + 8 + oEIP, 4)); -#undef oEIP - } -} - -static int -fetch_kcore_registers (struct pcb *pcb) -{ - int i; - int noreg; - - /* Get the register values out of the sys pcb and store them where - `read_register' will find them. */ - /* - * XXX many registers aren't available. - * XXX for the non-core case, the registers are stale - they are for - * the last context switch to the debugger. - * XXX gcc's register numbers aren't all #defined in tm-i386.h. - */ - noreg = 0; - for (i = 0; i < 3; ++i) /* eax,ecx,edx */ - supply_register (i, (char *)&noreg); - - supply_register (3, (char *) &pcb->pcb_ebx); - supply_register (SP_REGNUM, (char *) &pcb->pcb_esp); - supply_register (FP_REGNUM, (char *) &pcb->pcb_ebp); - supply_register (6, (char *) &pcb->pcb_esi); - supply_register (7, (char *) &pcb->pcb_edi); - supply_register (PC_REGNUM, (char *) &pcb->pcb_eip); - - for (i = 9; i < 14; ++i) /* eflags, cs, ss, ds, es, fs */ - supply_register (i, (char *) &noreg); - supply_register (15, (char *) &pcb->pcb_gs); - - /* XXX 80387 registers? */ -} - -#endif /* __i386__ */ - -#ifdef __sparc64__ - -#define SPARC_INTREG_SIZE 8 - -static void -fetch_kcore_registers (struct pcb *pcbp) -{ - static struct frame top; - CORE_ADDR f_addr; - int i; - - /* Get the register values out of the sys pcb and store them where - `read_register' will find them. */ - /* - * XXX many registers aren't available. - * XXX for the non-core case, the registers are stale - they are for - * the last context switch to the debugger. - * XXX do something with the floating-point registers? - */ - supply_register (SP_REGNUM, (char *)&pcbp->pcb_ufp); - supply_register (PC_REGNUM, (char *)&pcbp->pcb_pc); - f_addr = extract_address (&pcbp->pcb_ufp, SPARC_INTREG_SIZE); - /* Load the previous frame by hand (XXX) and supply it. */ - read_memory (f_addr + SPOFF, (char *)&top, sizeof (top)); - for (i = 0; i < 8; i++) - supply_register (i + L0_REGNUM, (char *)&top.fr_local[i]); - for (i = 0; i < 8; i++) - supply_register (i + I0_REGNUM, (char *)&top.fr_in[i]); -} - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR frame, pc_addr, pc; - char *buf; - - buf = alloca (MAX_REGISTER_RAW_SIZE); - /* XXX: duplicates fi->extra_info->bottom. */ - frame = (fi->next != NULL) ? fi->next->frame : read_sp (); - pc_addr = frame + offsetof (struct frame, fr_in[7]); - -#define READ_PC(pc, a, b) do { \ - read_memory (a, b, SPARC_INTREG_SIZE); \ - pc = extract_address (b, SPARC_INTREG_SIZE); \ -} while (0) - - READ_PC (pc, pc_addr, buf); - - sym = lookup_minimal_symbol_by_pc (pc); - if (sym != NULL) - { - if (strncmp (SYMBOL_NAME (sym), "tl0_", 4) == 0 || - strcmp (SYMBOL_NAME (sym), "btext") == 0 || - strcmp (SYMBOL_NAME (sym), "mp_startup") == 0 || - strcmp (SYMBOL_NAME (sym), "fork_trampoline") == 0) - { - /* - * Ugly kluge: user space addresses aren't separated from kernel - * ones by range; if encountering a trap from user space, just - * return a 0 to stop the trace. - * Do the same for entry points of kernel processes to avoid - * printing garbage. - */ - pc = 0; - } - if (strncmp (SYMBOL_NAME (sym), "tl1_", 4) == 0) - { - pc_addr = fi->frame + sizeof (struct frame) + - offsetof (struct trapframe, tf_tpc); - READ_PC (pc, pc_addr, buf); - } - } - return (pc); -} - -#endif /* __sparc64__ */ - /* Get the registers out of a core file. This is the machine- independent part. Fetch_core_registers is the machine-dependent part, typically implemented in the xm-file for each architecture. */ @@ -623,16 +367,7 @@ printf_filtered ("\t`%s'\n", core_file); } -/* If mourn is being called in all the right places, this could be say - `gdb internal error' (since generic_mourn calls breakpoint_init_inferior). */ - static int -ignore (CORE_ADDR addr, char *contents) -{ - return 0; -} - -static int xfer_kmem (CORE_ADDR memaddr, char *myaddr, int len, int write, struct mem_attrib *attrib, struct target_ops *target) { @@ -651,7 +386,7 @@ n = kvm_read (core_kd, memaddr, myaddr, len) ; if (n < 0) { fprintf_unfiltered (gdb_stderr, "can not access 0x%x, %s\n", - memaddr, kvm_geterr (core_kd)); + (unsigned)memaddr, kvm_geterr (core_kd)); n = 0; } ==== //depot/projects/hammer/gnu/usr.bin/cc/cc_tools/Makefile#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.76 2004/06/10 22:18:33 peter Exp $ +# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.77 2004/06/11 00:35:29 peter Exp $ # # This could probably be merged with ../cc_int/Makefile, but bsd.lib.mk @@ -187,7 +187,7 @@ .if ${TARGET_ARCH} == "amd64" TARGET_INC+= ${GCC_CPU}/x86-64.h TARGET_INC+= ${GCC_CPU}/freebsd64.h -TARGET_INC+= ${.CURDIR}/freebsd64-fix.h +TARGET_INC+= freebsd64-fix.h .endif TARGET_INC+= defaults.h ==== //depot/projects/hammer/include/Makefile#23 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.213 2004/05/20 10:29:26 pjd Exp $ +# $FreeBSD: src/include/Makefile,v 1.214 2004/06/13 17:29:05 mlaier Exp $ # # Doing a "make install" builds /usr/include. @@ -111,6 +111,9 @@ cd ${.CURDIR}/../sys/dev/bktr; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \ ${DESTDIR}${INCLUDEDIR}/dev/bktr + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/altq cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/netinet @@ -149,6 +152,11 @@ ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + for h in *.h; do \ + ln -fs ../../../sys/contrib/altq/altq/$$h \ + ${DESTDIR}${INCLUDEDIR}/altq; \ + done cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ for h in *.h; do \ ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \ ==== //depot/projects/hammer/lib/libc/gmon/moncontrol.3#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)moncontrol.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.14 2002/12/19 09:40:22 ru Exp $ +.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.15 2004/06/14 18:41:24 bms Exp $ .\" -.Dd June 4, 1993 +.Dd June 14, 2004 .Dt MONCONTROL 3 .Os .Sh NAME @@ -43,6 +43,7 @@ .Lb libc .Sh SYNOPSIS .In sys/types.h +.In sys/gmon.h .Ft int .Fn moncontrol "int mode" .Ft int ==== //depot/projects/hammer/lib/libc/net/inet.3#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.25 2002/09/06 11:23:49 tjr Exp $ +.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.27 2004/06/14 14:24:18 bms Exp $ .\" -.Dd June 17, 1996 +.Dd June 14, 2004 .Dt INET 3 .Os .Sh NAME @@ -119,10 +119,17 @@ .Pp The function .Fn inet_ntop -converts an address from network format (usually a +converts an address +.Fa *src +from network format +(usually a .Ft struct in_addr or some other binary form, in network byte order) to presentation format (suitable for external display purposes). +The +.Fa size +argument specifies the size, in bytes, of the buffer +.Fa *dst . It returns NULL if a system error occurs (in which case, .Va errno will have been set), or it returns a pointer to the destination string. @@ -226,6 +233,18 @@ and .Fn inet_network for malformed requests. +.Sh ERRORS +The +.Fn inet_ntop +call fails if: +.Bl -tag -width Er +.It Bq Er ENOSPC +.Fa size +was not large enough to store the presentation form of the address. +.It Bq Er EAFNOSUPPORT +.Fa *src +was not an AF_INET or AF_INET6 family address. +.El .Sh SEE ALSO .Xr addr2ascii 3 , .Xr byteorder 3 , ==== //depot/projects/hammer/lib/libc/stdtime/asctime.c#3 (text+ko) ==== @@ -1,15 +1,15 @@ /* ** This file is in the public domain, so clarified as of -** June 5, 1996 by Arthur David Olson (arthur_david_olson@nih.gov). +** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). */ #include #ifndef lint #ifndef NOID -static char elsieid[] __unused = "@(#)asctime.c 7.7"; +static char elsieid[] __unused = "@(#)asctime.c 7.9"; #endif /* !defined NOID */ #endif /* !defined lint */ -__FBSDID("$FreeBSD: src/lib/libc/stdtime/asctime.c,v 1.11 2003/02/16 17:29:11 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdtime/asctime.c,v 1.12 2004/06/14 10:31:52 stefanf Exp $"); /*LINTLIBRARY*/ @@ -19,24 +19,14 @@ #include "tzfile.h" /* -** A la X3J11, with core dump avoidance. +** A la ISO/IEC 9945-1, ANSI/IEEE Std 1003.1, Second Edition, 1996-07-12. */ - char * -asctime(timeptr) +asctime_r(timeptr, buf) const struct tm * timeptr; +char * buf; { - static char result[3 * 2 + 5 * INT_STRLEN_MAXIMUM(int) + - 3 + 2 + 1 + 1]; - return(asctime_r(timeptr, result)); -} - -char * -asctime_r(timeptr, result) -const struct tm * timeptr; -char *result; -{ static const char wday_name[][3] = { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 15 00:23:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2359016A4D0; Tue, 15 Jun 2004 00:23:50 +0000 (GMT) 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 E74E016A4CE for ; Tue, 15 Jun 2004 00:23:49 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DFDF243D31 for ; Tue, 15 Jun 2004 00:23:49 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F0NmJM064507 for ; Tue, 15 Jun 2004 00:23:48 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F0Nm2C064504 for perforce@freebsd.org; Tue, 15 Jun 2004 00:23:48 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 00:23:48 GMT Message-Id: <200406150023.i5F0Nm2C064504@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 54968 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, 15 Jun 2004 00:23:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=54968 Change 54968 by peter@peter_daintree on 2004/06/15 00:23:19 integ -I -b i386_hammer (mostly metadata sync) Affected files ... .. //depot/projects/hammer/sys/amd64/acpica/acpi_machdep.c#12 integrate .. //depot/projects/hammer/sys/amd64/acpica/madt.c#36 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#91 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#80 integrate .. //depot/projects/hammer/sys/amd64/conf/NOTES#33 integrate .. //depot/projects/hammer/sys/amd64/include/md_var.h#29 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#38 integrate Differences ... ==== //depot/projects/hammer/sys/amd64/acpica/acpi_machdep.c#12 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/acpica/madt.c#36 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#91 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#80 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/conf/NOTES#33 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# (XXX from i386:NOTES,v 1.1160) +# (XXX from i386:NOTES,v 1.1161) # $FreeBSD: src/sys/amd64/conf/NOTES,v 1.14 2004/05/17 22:13:14 peter Exp $ # ==== //depot/projects/hammer/sys/amd64/include/md_var.h#29 (text+ko) ==== ==== //depot/projects/hammer/sys/amd64/include/pmap.h#38 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Tue Jun 15 01:23:04 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF05216A4D0; Tue, 15 Jun 2004 01:23:03 +0000 (GMT) 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 801A016A4CE for ; Tue, 15 Jun 2004 01:23:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 78A3443D1D for ; Tue, 15 Jun 2004 01:23:03 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F1N3Zq083959 for ; Tue, 15 Jun 2004 01:23:03 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F1N20v083956 for perforce@freebsd.org; Tue, 15 Jun 2004 01:23:02 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 01:23:02 GMT Message-Id: <200406150123.i5F1N20v083956@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 54972 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, 15 Jun 2004 01:23:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=54972 Change 54972 by peter@peter_hammer on 2004/06/15 01:22:28 really fix amd64 kld modules this time. Affected files ... .. //depot/projects/hammer/sys/kern/link_elf_obj.c#39 edit Differences ... ==== //depot/projects/hammer/sys/kern/link_elf_obj.c#39 (text+ko) ==== @@ -747,12 +747,17 @@ link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, linker_symval_t *symval) { + Elf_Addr base; elf_file_t ef = (elf_file_t) lf; const Elf_Sym *es = (const Elf_Sym*) sym; + if (es >= ef->ddbsymtab && es < (ef->ddbsymtab + ef->ddbsymcnt)) { + base = findbase(ef, es->st_shndx); + if (base == 0) + base = (Elf_Addr)ef->address; symval->name = ef->ddbstrtab + es->st_name; - symval->value = (caddr_t) ef->address + es->st_value; + symval->value = (caddr_t)base + es->st_value; symval->size = es->st_size; return 0; } @@ -878,6 +883,8 @@ break; } } + if (ret == 0) + return (0); return ret + sym->st_value; } From owner-p4-projects@FreeBSD.ORG Tue Jun 15 01:41:29 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 648D316A4D0; Tue, 15 Jun 2004 01:41:28 +0000 (GMT) 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 34BAA16A4CE for ; Tue, 15 Jun 2004 01:41:28 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2BFFC43D1D for ; Tue, 15 Jun 2004 01:41:28 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F1fS20087180 for ; Tue, 15 Jun 2004 01:41:28 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F1fRLh087171 for perforce@freebsd.org; Tue, 15 Jun 2004 01:41:27 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 01:41:27 GMT Message-Id: <200406150141.i5F1fRLh087171@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 54975 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, 15 Jun 2004 01:41:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=54975 Change 54975 by peter@peter_daintree on 2004/06/15 01:40:33 IFC @54974 Affected files ... .. //depot/projects/hammer/lib/libc/sys/read.2#5 integrate .. //depot/projects/hammer/libexec/talkd/talkd.c#4 integrate .. //depot/projects/hammer/sbin/routed/table.c#5 integrate .. //depot/projects/hammer/share/man/man4/Makefile#41 integrate .. //depot/projects/hammer/share/man/man4/ip.4#9 integrate .. //depot/projects/hammer/share/misc/pci_vendors#9 integrate .. //depot/projects/hammer/sys/kern/link_elf_obj.c#40 integrate .. //depot/projects/hammer/sys/vm/vm_contig.c#17 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.c#11 integrate Differences ... ==== //depot/projects/hammer/lib/libc/sys/read.2#5 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)read.2 8.4 (Berkeley) 2/26/94 -.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.22 2004/01/25 06:24:08 ache Exp $ +.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.23 2004/06/15 01:24:41 kbyanc Exp $ .\" .Dd February 26, 1994 .Dt READ 2 @@ -189,7 +189,8 @@ The .Fa iovcnt argument -was less than or equal to 0, or greater than 16. +was less than or equal to 0, or greater than +.Li IOV_MAX . .It Bq Er EINVAL One of the .Fa iov_len ==== //depot/projects/hammer/libexec/talkd/talkd.c#4 (text+ko) ==== @@ -42,7 +42,7 @@ static char sccsid[] = "@(#)talkd.c 8.1 (Berkeley) 6/4/93"; #endif static const char rcsid[] = - "$FreeBSD: src/libexec/talkd/talkd.c,v 1.15 2003/09/28 09:16:09 tjr Exp $"; + "$FreeBSD: src/libexec/talkd/talkd.c,v 1.17 2004/06/14 22:44:13 bms Exp $"; #endif /* not lint */ /* @@ -72,11 +72,10 @@ CTL_MSG request; CTL_RESPONSE response; -int sockt; int debug = 0; long lastmsgtime; -char hostname[MAXHOSTNAMELEN]; +char hostname[MAXHOSTNAMELEN]; #define TIMEOUT 30 #define MAXIDLE 120 @@ -110,7 +109,7 @@ signal(SIGALRM, timeout); alarm(TIMEOUT); for (;;) { - cc = recv(0, (char *)mp, sizeof (*mp), 0); + cc = recv(0, (char *)mp, sizeof(*mp), 0); if (cc != sizeof (*mp)) { if (cc < 0 && errno != EINTR) syslog(LOG_WARNING, "recv: %m"); @@ -122,8 +121,8 @@ ctl_addr.sa_len = sizeof(ctl_addr); process_request(mp, &response); /* can block here, is this what I want? */ - cc = sendto(sockt, (char *)&response, sizeof (response), 0, - &ctl_addr, sizeof (ctl_addr)); + cc = sendto(STDIN_FILENO, (char *)&response, + sizeof(response), 0, &ctl_addr, sizeof(ctl_addr)); if (cc != sizeof (response)) syslog(LOG_WARNING, "sendto: %m"); } ==== //depot/projects/hammer/sbin/routed/table.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $ + * $FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $ */ #include "defs.h" @@ -34,12 +34,12 @@ #ifdef __NetBSD__ __RCSID("$NetBSD$"); #elif defined(__FreeBSD__) -__RCSID("$FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $"); +__RCSID("$FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $"); #else __RCSID("$Revision: 2.27 $"); #ident "$Revision: 2.27 $" #endif -#ident "$FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $" +#ident "$FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $" static struct rt_spare *rts_better(struct rt_entry *); static struct rt_spare rts_empty = {0,0,0,HOPCNT_INFINITY,0,0,0}; @@ -1110,10 +1110,10 @@ if (rtm->rtm_flags & RTF_LLINFO) continue; -#if defined(RTF_CLONED) && defined(__bsdi__) +#if defined(RTF_WASCLONED) && defined(__FreeBSD__) /* ignore cloned routes */ - if (rtm->rtm_flags & RTF_CLONED) + if (rtm->rtm_flags & RTF_WASCLONED) continue; #endif @@ -1267,8 +1267,8 @@ continue; } -#if defined(RTF_CLONED) && defined(__bsdi__) - if (m.r.rtm.rtm_flags & RTF_CLONED) { +#if defined(RTF_WASCLONED) && defined(__FreeBSD__) + if (m.r.rtm.rtm_flags & RTF_WASCLONED) { trace_act("ignore cloned %s", str); continue; } ==== //depot/projects/hammer/share/man/man4/Makefile#41 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.269 2004/06/14 10:55:03 dfr Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.270 2004/06/15 01:18:56 bms Exp $ MAN= aac.4 \ acpi.4 \ @@ -368,6 +368,7 @@ MLINKS+=ipfirewall.4 ipaccounting.4 \ ipfirewall.4 ipacct.4 \ ipfirewall.4 ipfw.4 +MLINKS+=ip.4 rawip.4 MLINKS+=kue.4 if_kue.4 MLINKS+=lge.4 if_lge.4 MLINKS+=lo.4 loop.4 ==== //depot/projects/hammer/share/man/man4/ip.4#9 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/ip.4,v 1.35 2004/04/22 08:49:51 silby Exp $ +.\" $FreeBSD: src/share/man/man4/ip.4,v 1.36 2004/06/15 01:08:09 bms Exp $ .\" -.Dd March 3, 2001 +.Dd June 14, 2004 .Dt IP 4 .Os .Sh NAME @@ -529,6 +529,14 @@ ip->ip_off = offset; .Ed .Pp +The ip_len and ip_off fields +.Em must be provided in host byte order . +All other fields must be provided in network byte order. +See +.Xr byteorder 4 +for more information on network byte order. +If the ip_id field is set to 0, then the kernel will choose an +appopriate value. If the header source address is set to .Dv INADDR_ANY , the kernel will choose an appropriate address. @@ -568,10 +576,24 @@ an option field was shorter than the minimum value or longer than the option buffer provided. .El +.Pp +The following errors may occur when attempting to send +.Tn IP +datagrams via a +.Dq raw socket +with the +.Em IP_HDRINCL +option set: +.Bl -tag -width Er +.It Bq Er EINVAL +The user-supplied ip_len field was not equal to the length of the datagram +written to the socket. +.El .Sh SEE ALSO .Xr getsockopt 2 , .Xr recv 2 , .Xr send 2 , +.Xr byteorder 4 , .Xr icmp 4 , .Xr inet 4 , .Xr intro 4 ==== //depot/projects/hammer/share/misc/pci_vendors#9 (text+ko) ==== @@ -1,4 +1,4 @@ -; $FreeBSD: src/share/misc/pci_vendors,v 1.26 2003/10/29 11:14:58 sheldonh Exp $ +; $FreeBSD: src/share/misc/pci_vendors,v 1.28 2004/06/15 00:38:12 bms Exp $ ; ; Automatically generated by src/tools/tools/pciid/mk_pci_vendors.pl ; (with the -l option), using the following source lists: @@ -291,6 +291,7 @@ 5655 Mach 64 VT3 5656 Mach64 VT4 PCI (PQFP Package) 5964 Radeon 9200 Series + 5941 Radeon 9200 Series - Secondary 5D44 Radeon 9200 Series - Secondary 700F A3/U1 PCI to AGP Bridge 7010 RS200 PCI to AGP Bridge @@ -976,6 +977,7 @@ 8026 TSB43AB21 1394a-2000 OHCI PHY/link-layer Controller 8027 PCI4451 OHCI-Lynx IEEE-1394 FireWire Adapter 8400 802.11b+ 22Mbps Wireless Adapter + 9066 TNETW1130 802.11g+ 54/108 Mbps Wireless Adapter A001 TDC1570 64-Bit PCI ATM Interface A100 TDC1561 32-Bit PCI ATM Interface A102 TNETA1575 HyperSAR Plus w/PCI Host interface & UTOPIA Interface ==== //depot/projects/hammer/sys/kern/link_elf_obj.c#40 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.81 2004/05/18 05:15:43 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.83 2004/06/15 01:35:57 peter Exp $"); #include "opt_ddb.h" #include "opt_mac.h" ==== //depot/projects/hammer/sys/vm/vm_contig.c#17 (text+ko) ==== @@ -60,7 +60,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.34 2004/04/06 20:15:36 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.35 2004/06/15 01:02:00 green Exp $"); #include #include @@ -119,7 +119,7 @@ } else if (object->type == OBJT_SWAP || object->type == OBJT_DEFAULT) { m_tmp = m; - vm_pageout_flush(&m_tmp, 1, 0); + vm_pageout_flush(&m_tmp, 1, VM_PAGER_PUT_SYNC); VM_OBJECT_UNLOCK(object); return (TRUE); } @@ -152,6 +152,7 @@ vm_object_t object; vm_offset_t addr, tmp_addr; int pass, pqtype; + int inactl, actl, inactmax, actmax; vm_page_t pga = vm_page_array; size = round_page(size); @@ -163,7 +164,7 @@ panic("contigmalloc1: boundary must be a power of 2"); start = 0; - for (pass = 0; pass <= 1; pass++) { + for (pass = 2; pass >= 0; pass--) { vm_page_lock_queues(); again0: mtx_lock_spin(&vm_page_queue_free_mtx); @@ -188,11 +189,29 @@ if ((i == cnt.v_page_count) || ((VM_PAGE_TO_PHYS(&pga[i]) + size) > high)) { mtx_unlock_spin(&vm_page_queue_free_mtx); + /* + * Instead of racing to empty the inactive/active + * queues, give up, even with more left to free, + * if we try more than the initial amount of pages. + * + * There's no point attempting this on the last pass. + */ + if (pass > 0) { + inactl = actl = 0; + inactmax = vm_page_queues[PQ_INACTIVE].lcnt; + actmax = vm_page_queues[PQ_ACTIVE].lcnt; again1: - if (vm_contig_launder(PQ_INACTIVE)) - goto again1; - if (vm_contig_launder(PQ_ACTIVE)) - goto again1; + if (inactl < inactmax && + vm_contig_launder(PQ_INACTIVE)) { + inactl++; + goto again1; + } + if (actl < actmax && + vm_contig_launder(PQ_ACTIVE)) { + actl++; + goto again1; + } + } vm_page_unlock_queues(); continue; } ==== //depot/projects/hammer/usr.bin/tar/bsdtar.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "bsdtar_platform.h" -__FBSDID("$FreeBSD: src/usr.bin/tar/bsdtar.c,v 1.24 2004/06/11 01:35:56 kientzle Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/tar/bsdtar.c,v 1.26 2004/06/15 00:28:34 kientzle Exp $"); #include #include @@ -75,6 +75,7 @@ #define OPTION_NODUMP 3 #define OPTION_HELP 4 #define OPTION_INCLUDE 5 +#define OPTION_ONE_FILE_SYSTEM 5 const struct option tar_longopts[] = { { "absolute-paths", no_argument, NULL, 'P' }, @@ -104,6 +105,7 @@ { "nodump", no_argument, NULL, OPTION_NODUMP }, { "norecurse", no_argument, NULL, 'n' }, { "no-same-owner", no_argument, NULL, 'o' }, + { "one-file-system", no_argument, NULL, OPTION_ONE_FILE_SYSTEM }, { "preserve-permissions", no_argument, NULL, 'p' }, { "read-full-blocks", no_argument, NULL, 'B' }, { "same-permissions", no_argument, NULL, 'p' }, @@ -228,6 +230,7 @@ #ifdef HAVE_GETOPT_LONG case OPTION_HELP: long_help(bsdtar); + exit(0); break; #endif #ifdef HAVE_GETOPT_LONG @@ -248,7 +251,7 @@ case 'L': /* BSD convention */ bsdtar->symlink_mode = 'L'; break; - case 'l': /* SUSv2 */ + case 'l': /* SUSv2; note that GNU -l conflicts */ bsdtar->option_warn_links = 1; break; case 'm': /* SUSv2 */ @@ -265,9 +268,14 @@ case 'O': /* GNU tar */ bsdtar->option_stdout = 1; break; - case 'o': /* SUSv2 */ + case 'o': /* SUSv2; note that GNU -o conflicts */ bsdtar->extract_flags &= ~ARCHIVE_EXTRACT_OWNER; break; +#if HAVE_GETOPT_LONG + case OPTION_ONE_FILE_SYSTEM: /* -l in GNU tar */ + bsdtar->option_dont_traverse_mounts = 1; + break; +#endif #if 0 /* * The common BSD -P option is not necessary, since @@ -321,9 +329,6 @@ case 'w': /* SUSv2 */ bsdtar->option_interactive = 1; break; - case 'X': /* -l in GNU tar */ - bsdtar->option_dont_traverse_mounts = 1; - break; case 'x': /* SUSv2 */ if (mode != '\0') bsdtar_errc(bsdtar, 1, 0, @@ -362,7 +367,7 @@ */ if (mode == '\0' && possible_help_request) { long_help(bsdtar); - exit(1); + exit(0); } if (mode == '\0') @@ -519,14 +524,14 @@ p = bsdtar->progname; - printf("Basic Usage:\n"); - printf(" List: %s -tf [archive-filename]\n", p); - printf(" Extract: %s -xf [archive-filename]\n", p); - printf(" Create: %s -cf [archive-filename] [filenames...]\n", p); + fprintf(stderr, "Usage:\n"); + fprintf(stderr, " List: %s -tf \n", p); + fprintf(stderr, " Extract: %s -xf \n", p); + fprintf(stderr, " Create: %s -cf [filenames...]\n", p); #ifdef HAVE_GETOPT_LONG - printf(" Help: %s --help\n", p); + fprintf(stderr, " Help: %s --help\n", p); #else - printf(" Help: %s -h\n", p); + fprintf(stderr, " Help: %s -h\n", p); #endif exit(1); } @@ -543,7 +548,9 @@ " , add these items to archive\n", " -z, -j Compress archive with gzip/bzip2\n", " -F {ustar|pax|cpio|shar} Select archive format\n", +#ifdef HAVE_GETOPT_LONG " --exclude Skip files that match pattern\n", +#endif " C= Change to before processing remaining files\n", " @ Add entries from to output\n", "List: %p -t [options] []\n", @@ -558,6 +565,16 @@ }; +/* + * Note that the word 'bsdtar' will always appear in the first line + * of output. + * + * In particular, /bin/sh scripts that need to test for the presence + * of bsdtar can use the following template: + * + * if (tar --help 2>&1 | grep bsdtar >/dev/null 2>&1 ) then \ + * echo bsdtar; else echo not bsdtar; fi + */ static void long_help(struct bsdtar *bsdtar) { @@ -567,7 +584,13 @@ prog = bsdtar->progname; - printf("%s: manipulate archive files\n", prog); + fflush(stderr); + if (strcmp(prog,"bsdtar")!=0) + p = "(bsdtar)"; + else + p = ""; + + fprintf(stderr, "%s%s: manipulate archive files\n", prog, p); for (msg = long_help_msg; *msg != NULL; msg++) { for (p = *msg; p != NULL; p++) { @@ -575,7 +598,7 @@ break; else if (*p == '%') { if (p[1] == 'p') { - fputs(prog, stdout); + fputs(prog, stderr); p++; } else putchar('%'); @@ -583,4 +606,5 @@ putchar(*p); } } + fflush(stderr); } From owner-p4-projects@FreeBSD.ORG Tue Jun 15 03:59:53 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46CF516A4D0; Tue, 15 Jun 2004 03:59:53 +0000 (GMT) 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 2073416A4CE for ; Tue, 15 Jun 2004 03:59:53 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1822D43D46 for ; Tue, 15 Jun 2004 03:59:53 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5F3xNW1017621 for ; Tue, 15 Jun 2004 03:59:23 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F3xMrs017618 for perforce@freebsd.org; Tue, 15 Jun 2004 03:59:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 15 Jun 2004 03:59:22 GMT Message-Id: <200406150359.i5F3xMrs017618@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 54985 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, 15 Jun 2004 03:59:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=54985 Change 54985 by rwatson@rwatson_tislabs on 2004/06/15 03:59:11 Integrate netperf_socket; among other things, loop back some initial locking of sb_state. Affected files ... .. //depot/projects/netperf_socket/sys/contrib/altq/altq/altq_subr.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/altq/altq/if_altq.h#3 integrate .. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#7 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#7 integrate .. //depot/projects/netperf_socket/sys/i386/i386/bios.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/link_elf_obj.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#15 integrate .. //depot/projects/netperf_socket/sys/net/if.c#10 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#13 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#9 integrate .. //depot/projects/netperf_socket/sys/netipx/spx_usrreq.c#5 integrate .. //depot/projects/netperf_socket/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/netperf_socket/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/netperf_socket/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/netperf_socket/sys/sys/socketvar.h#15 integrate .. //depot/projects/netperf_socket/sys/vm/vm_contig.c#7 integrate Differences ... ==== //depot/projects/netperf_socket/sys/contrib/altq/altq/altq_subr.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.3 2004/06/13 22:52:38 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.4 2004/06/15 01:45:19 mlaier Exp $ */ /* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */ /* @@ -91,6 +91,7 @@ */ static void tbr_timeout(void *); int (*altq_input)(struct mbuf *, int) = NULL; +static struct mbuf *tbr_dequeue(struct ifaltq *, int); static int tbr_timer = 0; /* token bucket regulator timer */ static struct callout tbr_callout = CALLOUT_INITIALIZER; @@ -312,7 +313,7 @@ #define TBR_SCALE(x) ((int64_t)(x) << TBR_SHIFT) #define TBR_UNSCALE(x) ((x) >> TBR_SHIFT) -struct mbuf * +static struct mbuf * tbr_dequeue(ifq, op) struct ifaltq *ifq; int op; @@ -370,6 +371,9 @@ struct tb_profile *profile; { struct tb_regulator *tbr, *otbr; + + if (tbr_dequeue_ptr == NULL) + tbr_dequeue_ptr = tbr_dequeue; if (machclk_freq == 0) init_machclk(); ==== //depot/projects/netperf_socket/sys/contrib/altq/altq/if_altq.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/altq/altq/if_altq.h,v 1.2 2004/06/12 18:47:24 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/altq/altq/if_altq.h,v 1.3 2004/06/15 01:45:19 mlaier Exp $ */ /* $KAME: if_altq.h,v 1.11 2003/07/10 12:07:50 kjc Exp $ */ /* @@ -181,9 +181,9 @@ extern int altq_detach(struct ifaltq *); extern int altq_enable(struct ifaltq *); extern int altq_disable(struct ifaltq *); -extern struct mbuf *tbr_dequeue(struct ifaltq *, int); +extern struct mbuf *(*tbr_dequeue_ptr)(struct ifaltq *, int); extern int (*altq_input)(struct mbuf *, int); -#if 1 /* ALTQ3_CLFIER_COMPAT */ +#if 0 /* ALTQ3_CLFIER_COMPAT */ void altq_etherclassify(struct ifaltq *, struct mbuf *, struct altq_pktattr *); #endif #endif /* _KERNEL */ ==== //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.96 2004/06/14 18:16:20 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.97 2004/06/15 03:51:43 rwatson Exp $ */ #include @@ -211,7 +211,9 @@ } fip->fi_readers = fip->fi_writers = 0; wso->so_snd.sb_lowat = PIPE_BUF; + SOCKBUF_LOCK(&rso->so_rcv); rso->so_rcv.sb_state |= SBS_CANTRCVMORE; + SOCKBUF_UNLOCK(&rso->so_rcv); vp->v_fifoinfo = fip; } @@ -229,7 +231,9 @@ if (ap->a_mode & FREAD) { fip->fi_readers++; if (fip->fi_readers == 1) { + SOCKBUF_LOCK(&fip->fi_writesock->so_snd); fip->fi_writesock->so_snd.sb_state &= ~SBS_CANTSENDMORE; + SOCKBUF_UNLOCK(&fip->fi_writesock->so_snd); if (fip->fi_writers > 0) { wakeup(&fip->fi_writers); sowwakeup(fip->fi_writesock); @@ -243,7 +247,9 @@ } fip->fi_writers++; if (fip->fi_writers == 1) { + SOCKBUF_LOCK(&fip->fi_writesock->so_rcv); fip->fi_readsock->so_rcv.sb_state &= ~SBS_CANTRCVMORE; + SOCKBUF_UNLOCK(&fip->fi_writesock->so_rcv); if (fip->fi_readers > 0) { wakeup(&fip->fi_readers); sorwakeup(fip->fi_writesock); ==== //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_toshiba.c,v 1.9 2004/06/14 03:40:56 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/acpica/acpi_toshiba.c,v 1.10 2004/06/15 02:17:23 njl Exp $"); #include "opt_acpi.h" #include @@ -529,7 +529,7 @@ if (!acpi_disabled("toshiba") && acpi_get_type(dev) == ACPI_TYPE_DEVICE && device_get_unit(dev) == 0 && - acpi_MatchHid(dev, "TOS6201")) { + acpi_MatchHid(device_get_handle(dev), "TOS6201")) { device_quiet(dev); device_set_desc(dev, "Toshiba Video"); ret = 0; ==== //depot/projects/netperf_socket/sys/i386/i386/bios.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/bios.c,v 1.67 2004/06/10 20:43:03 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/bios.c,v 1.68 2004/06/15 02:12:12 njl Exp $"); /* * Code for dealing with the BIOS in x86 PC systems. @@ -556,7 +556,7 @@ return; /* ACPI already active */ - if (devclass_get_softc(devclass_find("acpi"), 0) != NULL) + if (devclass_find("acpi") != NULL) return; /* get count of PnP devices */ ==== //depot/projects/netperf_socket/sys/kern/link_elf_obj.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.81 2004/05/18 05:15:43 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.83 2004/06/15 01:35:57 peter Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -747,12 +747,16 @@ link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, linker_symval_t *symval) { + Elf_Addr base; elf_file_t ef = (elf_file_t) lf; const Elf_Sym *es = (const Elf_Sym*) sym; if (es >= ef->ddbsymtab && es < (ef->ddbsymtab + ef->ddbsymcnt)) { + base = findbase(ef, es->st_shndx); + if (base == 0) + base = (Elf_Addr)ef->address; symval->name = ef->ddbstrtab + es->st_name; - symval->value = (caddr_t) ef->address + es->st_value; + symval->value = (caddr_t)base + es->st_value; symval->size = es->st_size; return 0; } @@ -878,6 +882,8 @@ break; } } + if (ret == 0) + return (0); return ret + sym->st_value; } ==== //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#15 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.130 2004/06/14 18:16:19 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.131 2004/06/15 03:51:44 rwatson Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -167,8 +167,12 @@ SOCK_LOCK(so); so->so_state &= ~SS_ISCONNECTING; so->so_state |= SS_ISDISCONNECTING; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_CANTRCVMORE; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_state |= SBS_CANTSENDMORE; + SOCKBUF_UNLOCK(&so->so_snd); wakeup(&so->so_timeo); SOCK_UNLOCK(so); sowwakeup(so); @@ -187,8 +191,12 @@ SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTING|SS_ISCONNECTED|SS_ISDISCONNECTING); so->so_state |= SS_ISDISCONNECTED; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_CANTRCVMORE; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_state |= SBS_CANTSENDMORE; + SOCKBUF_UNLOCK(&so->so_snd); wakeup(&so->so_timeo); SOCK_UNLOCK(so); sbdrop(&so->so_snd, so->so_snd.sb_cc); ==== //depot/projects/netperf_socket/sys/net/if.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if.c 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/net/if.c,v 1.192 2004/06/13 17:29:08 mlaier Exp $ + * $FreeBSD: src/sys/net/if.c,v 1.193 2004/06/15 01:45:18 mlaier Exp $ */ #include "opt_compat.h" @@ -75,6 +75,8 @@ #include #endif +struct mbuf *(*tbr_dequeue_ptr)(struct ifaltq *, int) = NULL; + static void if_attachdomain(void *); static void if_attachdomain1(struct ifnet *); static int ifconf(u_long, caddr_t); @@ -441,13 +443,11 @@ ifa->ifa_refcnt = 1; TAILQ_INSERT_HEAD(&ifp->if_addrhead, ifa, ifa_link); ifp->if_broadcastaddr = 0; /* reliably crash if used uninitialized */ -#ifdef ALTQ ifp->if_snd.altq_type = 0; ifp->if_snd.altq_disc = NULL; ifp->if_snd.altq_flags &= ALTQF_CANTCHANGE; ifp->if_snd.altq_tbr = NULL; ifp->if_snd.altq_ifp = ifp; -#endif if (domains) if_attachdomain1(ifp); ==== //depot/projects/netperf_socket/sys/net/if_var.h#13 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * From: @(#)if.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/net/if_var.h,v 1.76 2004/06/14 03:55:09 mlaier Exp $ + * $FreeBSD: src/sys/net/if_var.h,v 1.78 2004/06/15 03:40:39 mlaier Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -356,7 +356,7 @@ (*ifp->if_start)(ifp); return (1); } -#ifdef ALTQ +#if 1 /* ALTQ */ #define IFQ_ENQUEUE(ifq, m, err) \ do { \ IF_LOCK(ifq); \ @@ -379,7 +379,7 @@ #define IFQ_DEQUEUE_NOLOCK(ifq, m) \ do { \ if (TBR_IS_ENABLED(ifq)) \ - (m) = tbr_dequeue(ifq, ALTDQ_REMOVE); \ + (m) = tbr_dequeue_ptr(ifq, ALTDQ_REMOVE); \ else if (ALTQ_IS_ENABLED(ifq)) \ ALTQ_DEQUEUE(ifq, m); \ else \ @@ -396,7 +396,7 @@ #define IFQ_POLL_NOLOCK(ifq, m) \ do { \ if (TBR_IS_ENABLED(ifq)) \ - (m) = tbr_dequeue(ifq, ALTDQ_POLL); \ + (m) = tbr_dequeue_ptr(ifq, ALTDQ_POLL); \ else if (ALTQ_IS_ENABLED(ifq)) \ ALTQ_POLL(ifq, m); \ else \ @@ -482,7 +482,7 @@ } while (0) #define IFQ_HANDOFF(ifp, m, err) \ - IFQ_HANDOFF_ADJ(ifq, m, 0, err) + IFQ_HANDOFF_ADJ(ifp, m, 0, err) #define IFQ_DRV_DEQUEUE(ifq, m) \ do { \ ==== //depot/projects/netperf_socket/sys/netinet/tcp_input.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.239 2004/06/14 18:16:21 rwatson Exp $ + * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.240 2004/06/15 03:51:44 rwatson Exp $ */ #include "opt_ipfw.h" /* for ipfw_fwd */ @@ -2253,8 +2253,11 @@ tp->rcv_up = th->th_seq + th->th_urp; so->so_oobmark = so->so_rcv.sb_cc + (tp->rcv_up - tp->rcv_nxt) - 1; - if (so->so_oobmark == 0) + if (so->so_oobmark == 0) { + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_RCVATMARK; + SOCKBUF_UNLOCK(&so->so_rcv); + } sohasoutofband(so); tp->t_oobflags &= ~(TCPOOB_HAVEDATA | TCPOOB_HADDATA); } ==== //depot/projects/netperf_socket/sys/netipx/spx_usrreq.c#5 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netipx/spx_usrreq.c,v 1.42 2004/06/14 18:16:22 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netipx/spx_usrreq.c,v 1.43 2004/06/15 03:51:44 rwatson Exp $"); #include #include @@ -566,8 +566,11 @@ cb->s_oobflags &= ~SF_IOOB; if (so->so_rcv.sb_cc) so->so_oobmark = so->so_rcv.sb_cc; - else + else { + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_RCVATMARK; + SOCKBUF_UNLOCK(&so->so_rcv); + } } q = q->si_prev; remque(q->si_next); @@ -597,7 +600,9 @@ MCHTYPE(m, MT_OOBDATA); spx_newchecks[1]++; so->so_oobmark = 0; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state &= ~SBS_RCVATMARK; + SOCKBUF_UNLOCK(&so->so_rcv); } if (packetp == 0) { m->m_data += SPINC; ==== //depot/projects/netperf_socket/sys/sys/socketvar.h#15 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/socketvar.h,v 1.122 2004/06/14 18:16:18 rwatson Exp $ + * $FreeBSD: src/sys/sys/socketvar.h,v 1.123 2004/06/14 22:03:14 rwatson Exp $ */ #ifndef _SYS_SOCKETVAR_H_ @@ -194,7 +194,7 @@ #define SOCK_UNLOCK(_so) SOCKBUF_UNLOCK(&(_so)->so_rcv) #define SOCK_LOCK_ASSERT(_so) SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv) -/*- +/* * Socket state bits. * * Historically, this bits were all kept in the so_state field. For ==== //depot/projects/netperf_socket/sys/vm/vm_contig.c#7 (text+ko) ==== @@ -60,7 +60,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.34 2004/04/06 20:15:36 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.35 2004/06/15 01:02:00 green Exp $"); #include #include @@ -119,7 +119,7 @@ } else if (object->type == OBJT_SWAP || object->type == OBJT_DEFAULT) { m_tmp = m; - vm_pageout_flush(&m_tmp, 1, 0); + vm_pageout_flush(&m_tmp, 1, VM_PAGER_PUT_SYNC); VM_OBJECT_UNLOCK(object); return (TRUE); } @@ -152,6 +152,7 @@ vm_object_t object; vm_offset_t addr, tmp_addr; int pass, pqtype; + int inactl, actl, inactmax, actmax; vm_page_t pga = vm_page_array; size = round_page(size); @@ -163,7 +164,7 @@ panic("contigmalloc1: boundary must be a power of 2"); start = 0; - for (pass = 0; pass <= 1; pass++) { + for (pass = 2; pass >= 0; pass--) { vm_page_lock_queues(); again0: mtx_lock_spin(&vm_page_queue_free_mtx); @@ -188,11 +189,29 @@ if ((i == cnt.v_page_count) || ((VM_PAGE_TO_PHYS(&pga[i]) + size) > high)) { mtx_unlock_spin(&vm_page_queue_free_mtx); + /* + * Instead of racing to empty the inactive/active + * queues, give up, even with more left to free, + * if we try more than the initial amount of pages. + * + * There's no point attempting this on the last pass. + */ + if (pass > 0) { + inactl = actl = 0; + inactmax = vm_page_queues[PQ_INACTIVE].lcnt; + actmax = vm_page_queues[PQ_ACTIVE].lcnt; again1: - if (vm_contig_launder(PQ_INACTIVE)) - goto again1; - if (vm_contig_launder(PQ_ACTIVE)) - goto again1; + if (inactl < inactmax && + vm_contig_launder(PQ_INACTIVE)) { + inactl++; + goto again1; + } + if (actl < actmax && + vm_contig_launder(PQ_ACTIVE)) { + actl++; + goto again1; + } + } vm_page_unlock_queues(); continue; } From owner-p4-projects@FreeBSD.ORG Tue Jun 15 04:07:45 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2CDCB16A4D0; Tue, 15 Jun 2004 04:07:45 +0000 (GMT) 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 05FBE16A4CE for ; Tue, 15 Jun 2004 04:07:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F16AB43D58 for ; Tue, 15 Jun 2004 04:07:44 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F47YJr020605 for ; Tue, 15 Jun 2004 04:07:34 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F47YZL020602 for perforce@freebsd.org; Tue, 15 Jun 2004 04:07:34 GMT (envelope-from marcel@freebsd.org) Date: Tue, 15 Jun 2004 04:07:34 GMT Message-Id: <200406150407.i5F47YZL020602@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 54988 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, 15 Jun 2004 04:07:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=54988 Change 54988 by marcel@marcel_nfs on 2004/06/15 04:07:19 First round of getting alpha and sparc64 from trapframe to PCB. This also fixes softwate single stepping in DDB (used by alpha). Affected files ... .. //depot/projects/gdb/sys/alpha/alpha/db_disasm.c#2 edit .. //depot/projects/gdb/sys/alpha/alpha/db_interface.c#7 edit .. //depot/projects/gdb/sys/alpha/alpha/db_trace.c#3 edit .. //depot/projects/gdb/sys/alpha/include/db_machdep.h#3 edit .. //depot/projects/gdb/sys/ddb/db_run.c#3 edit .. //depot/projects/gdb/sys/sparc64/include/db_machdep.h#2 edit .. //depot/projects/gdb/sys/sparc64/include/kdb.h#3 edit .. //depot/projects/gdb/sys/sparc64/sparc64/db_trace.c#3 edit .. //depot/projects/gdb/sys/sparc64/sparc64/trap.c#7 edit Differences ... ==== //depot/projects/gdb/sys/alpha/alpha/db_disasm.c#2 (text+ko) ==== @@ -813,26 +813,9 @@ * (optional) alternate format. Return address of start of * next instruction. */ -int alpha_print_instruction(db_addr_t, alpha_instruction, boolean_t); -db_addr_t -db_disasm(loc, altfmt) - db_addr_t loc; - boolean_t altfmt; -{ - alpha_instruction inst; - - inst.bits = db_get_value(loc, 4, 0); - - loc += alpha_print_instruction(loc, inst, altfmt); - return (loc); -} - -int -alpha_print_instruction(iadr, i, showregs) - db_addr_t iadr; - alpha_instruction i; - boolean_t showregs; +static int +alpha_print_instr(db_addr_t iadr, alpha_instruction i, boolean_t showregs) { const char *opcode; int ireg; @@ -1038,7 +1021,7 @@ if (i.mem_format.opcode == op_ldah) signed_immediate <<= 16; db_printf(" <0x%lx>", signed_immediate + - db_register_value(DDB_REGS, i.mem_format.rs)); + db_register_value(i.mem_format.rs)); } break; case op_br: @@ -1084,10 +1067,23 @@ db_printf(","); db_printf("%s=0x%lx", name_of_register[regnum[ireg]], - db_register_value(DDB_REGS, regnum[ireg])); + db_register_value(regnum[ireg])); } db_printf(">"); } db_printf("\n"); return (sizeof(alpha_instruction)); } + +db_addr_t +db_disasm(loc, altfmt) + db_addr_t loc; + boolean_t altfmt; +{ + alpha_instruction inst; + + inst.bits = db_get_value(loc, 4, 0); + + loc += alpha_print_instr(loc, inst, altfmt); + return (loc); +} ==== //depot/projects/gdb/sys/alpha/alpha/db_interface.c#7 (text+ko) ==== @@ -72,45 +72,60 @@ #include #include +static db_varfcn_t db_frame; + struct db_variable db_regs[] = { - { "v0", &ddb_regs.tf_regs[FRAME_V0], FCN_NULL }, - { "t0", &ddb_regs.tf_regs[FRAME_T0], FCN_NULL }, - { "t1", &ddb_regs.tf_regs[FRAME_T1], FCN_NULL }, - { "t2", &ddb_regs.tf_regs[FRAME_T2], FCN_NULL }, - { "t3", &ddb_regs.tf_regs[FRAME_T3], FCN_NULL }, - { "t4", &ddb_regs.tf_regs[FRAME_T4], FCN_NULL }, - { "t5", &ddb_regs.tf_regs[FRAME_T5], FCN_NULL }, - { "t6", &ddb_regs.tf_regs[FRAME_T6], FCN_NULL }, - { "t7", &ddb_regs.tf_regs[FRAME_T7], FCN_NULL }, - { "s0", &ddb_regs.tf_regs[FRAME_S0], FCN_NULL }, - { "s1", &ddb_regs.tf_regs[FRAME_S1], FCN_NULL }, - { "s2", &ddb_regs.tf_regs[FRAME_S2], FCN_NULL }, - { "s3", &ddb_regs.tf_regs[FRAME_S3], FCN_NULL }, - { "s4", &ddb_regs.tf_regs[FRAME_S4], FCN_NULL }, - { "s5", &ddb_regs.tf_regs[FRAME_S5], FCN_NULL }, - { "s6", &ddb_regs.tf_regs[FRAME_S6], FCN_NULL }, - { "a0", &ddb_regs.tf_regs[FRAME_A0], FCN_NULL }, - { "a1", &ddb_regs.tf_regs[FRAME_A1], FCN_NULL }, - { "a2", &ddb_regs.tf_regs[FRAME_A2], FCN_NULL }, - { "a3", &ddb_regs.tf_regs[FRAME_A3], FCN_NULL }, - { "a4", &ddb_regs.tf_regs[FRAME_A4], FCN_NULL }, - { "a5", &ddb_regs.tf_regs[FRAME_A5], FCN_NULL }, - { "t8", &ddb_regs.tf_regs[FRAME_T8], FCN_NULL }, - { "t9", &ddb_regs.tf_regs[FRAME_T9], FCN_NULL }, - { "t10", &ddb_regs.tf_regs[FRAME_T10], FCN_NULL }, - { "t11", &ddb_regs.tf_regs[FRAME_T11], FCN_NULL }, - { "ra", &ddb_regs.tf_regs[FRAME_RA], FCN_NULL }, - { "t12", &ddb_regs.tf_regs[FRAME_T12], FCN_NULL }, - { "at", &ddb_regs.tf_regs[FRAME_AT], FCN_NULL }, - { "gp", &ddb_regs.tf_regs[FRAME_GP], FCN_NULL }, - { "sp", &ddb_regs.tf_regs[FRAME_SP], FCN_NULL }, - { "pc", &ddb_regs.tf_regs[FRAME_PC], FCN_NULL }, - { "ps", &ddb_regs.tf_regs[FRAME_PS], FCN_NULL }, - { "ai", &ddb_regs.tf_regs[FRAME_T11], FCN_NULL }, - { "pv", &ddb_regs.tf_regs[FRAME_T12], FCN_NULL }, + { "v0", (db_expr_t *)FRAME_V0, db_frame }, + { "t0", (db_expr_t *)FRAME_T0, db_frame }, + { "t1", (db_expr_t *)FRAME_T1, db_frame }, + { "t2", (db_expr_t *)FRAME_T2, db_frame }, + { "t3", (db_expr_t *)FRAME_T3, db_frame }, + { "t4", (db_expr_t *)FRAME_T4, db_frame }, + { "t5", (db_expr_t *)FRAME_T5, db_frame }, + { "t6", (db_expr_t *)FRAME_T6, db_frame }, + { "t7", (db_expr_t *)FRAME_T7, db_frame }, + { "s0", (db_expr_t *)FRAME_S0, db_frame }, + { "s1", (db_expr_t *)FRAME_S1, db_frame }, + { "s2", (db_expr_t *)FRAME_S2, db_frame }, + { "s3", (db_expr_t *)FRAME_S3, db_frame }, + { "s4", (db_expr_t *)FRAME_S4, db_frame }, + { "s5", (db_expr_t *)FRAME_S5, db_frame }, + { "s6", (db_expr_t *)FRAME_S6, db_frame }, + { "a0", (db_expr_t *)FRAME_A0, db_frame }, + { "a1", (db_expr_t *)FRAME_A1, db_frame }, + { "a2", (db_expr_t *)FRAME_A2, db_frame }, + { "a3", (db_expr_t *)FRAME_A3, db_frame }, + { "a4", (db_expr_t *)FRAME_A4, db_frame }, + { "a5", (db_expr_t *)FRAME_A5, db_frame }, + { "t8", (db_expr_t *)FRAME_T8, db_frame }, + { "t9", (db_expr_t *)FRAME_T9, db_frame }, + { "t10", (db_expr_t *)FRAME_T10, db_frame }, + { "t11", (db_expr_t *)FRAME_T11, db_frame }, + { "ra", (db_expr_t *)FRAME_RA, db_frame }, + { "t12", (db_expr_t *)FRAME_T12, db_frame }, + { "at", (db_expr_t *)FRAME_AT, db_frame }, + { "gp", (db_expr_t *)FRAME_GP, db_frame }, + { "sp", (db_expr_t *)FRAME_SP, db_frame }, + { "pc", (db_expr_t *)FRAME_PC, db_frame }, + { "ps", (db_expr_t *)FRAME_PS, db_frame }, + { "ai", (db_expr_t *)FRAME_T11, db_frame }, + { "pv", (db_expr_t *)FRAME_T12, db_frame }, }; struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); +static int +db_frame(struct db_variable *vp, db_expr_t *valuep, int op) +{ + + if (kdb_frame == NULL) + return (0); + if (op == DB_VAR_GET) + *valuep = kdb_frame->tf_regs[(uintptr_t)vp->valuep]; + else + kdb_frame->tf_regs[(uintptr_t)vp->valuep] = *valuep; + return (1); +} + /* * Read bytes from kernel address space for debugger. */ @@ -216,9 +231,7 @@ }; u_long -db_register_value(regs, regno) - db_regs_t *regs; - int regno; +db_register_value(int regno) { if (regno > 31 || regno < 0) { @@ -229,7 +242,7 @@ if (regno == 31) return (0); - return (regs->tf_regs[reg_to_frame[regno]]); + return (kdb_frame->tf_regs[reg_to_frame[regno]]); } /* @@ -385,10 +398,7 @@ } db_addr_t -db_branch_taken(ins, pc, regs) - int ins; - db_addr_t pc; - db_regs_t *regs; +db_branch_taken(int ins, db_addr_t pc) { alpha_instruction insn; db_addr_t newpc; @@ -399,7 +409,7 @@ * Jump format: target PC is (contents of instruction's "RB") & ~3. */ case op_j: - newpc = db_register_value(regs, insn.jump_format.rs) & ~3; + newpc = db_register_value(insn.jump_format.rs) & ~3; break; /* ==== //depot/projects/gdb/sys/alpha/alpha/db_trace.c#3 (text+ko) ==== @@ -204,10 +204,10 @@ } static int -db_backtrace(struct thread *td, struct trapframe *tf, db_addr_t frame, - db_addr_t pc, int count) +db_backtrace(struct thread *td, db_addr_t frame, db_addr_t pc, int count) { struct prologue_info pi; + struct trapframe *tf; const char *symname; c_db_sym_t sym; db_expr_t diff; @@ -219,6 +219,7 @@ count = 1024; last_ipl = ~0L; + tf = NULL; while (count--) { sym = db_search_symbol(pc, DB_STGY_ANY, &diff); if (sym == DB_SYM_NULL) @@ -326,7 +327,6 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, char *modif) { - struct trapframe *tf; struct thread *td; td = (have_addr) ? kdb_thr_lookup(addr) : kdb_thread; @@ -334,9 +334,7 @@ db_printf("Thread %d not found\n", (int)addr); return; } - tf = td->td_last_frame; - db_backtrace(td, tf, (db_addr_t)(tf + 1), tf->tf_regs[FRAME_PC], - count); + db_trace_thread(td, count); } void @@ -349,17 +347,17 @@ " lda %1,1f \n" "1:\n" : "=r" (sp), "=r" (pc)); - db_backtrace(curthread, NULL, sp, pc, -1); + db_backtrace(curthread, sp, pc, -1); } int db_trace_thread(struct thread *thr, int count) { - struct trapframe *tf; + struct pcb *ctx; - tf = thr->td_last_frame; - return (db_backtrace(thr, tf, (db_addr_t)(tf + 1), - tf->tf_regs[FRAME_PC], count)); + ctx = kdb_thr_ctx(thr); + return (db_backtrace(thr, ctx->pcb_hw.apcb_ksp, ctx->pcb_context[7], + count)); } int ==== //depot/projects/gdb/sys/alpha/include/db_machdep.h#3 (text+ko) ==== @@ -31,55 +31,41 @@ #ifndef _ALPHA_DB_MACHDEP_H_ #define _ALPHA_DB_MACHDEP_H_ -/* - * Machine-dependent defines for new kernel debugger. - */ -#ifndef KLD_MODULE -#include "opt_ddb.h" -#endif - #include #include #include -#define DB_NO_AOUT +#define DB_NO_AOUT typedef vm_offset_t db_addr_t; /* address - unsigned */ typedef long db_expr_t; /* expression - signed */ -typedef struct trapframe db_regs_t; -#ifdef DDB -extern db_regs_t ddb_regs; /* register state */ -#endif -#define DDB_REGS (&ddb_regs) +#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_context[7]) -#define PC_REGS(regs) ((db_addr_t)(regs)->tf_regs[FRAME_PC]) - #define BKPT_INST 0x00000080 /* breakpoint instruction */ #define BKPT_SIZE (4) /* size of breakpoint inst */ #define BKPT_SET(inst) (BKPT_INST) -#define FIXUP_PC_AFTER_BREAK \ - (ddb_regs.tf_regs[FRAME_PC] -= BKPT_SIZE); +#define FIXUP_PC_AFTER_BREAK (kdb_frame->tf_regs[FRAME_PC] -= BKPT_SIZE); #define SOFTWARE_SSTEP 1 /* no hardware support */ -#define IS_BREAKPOINT_TRAP(type, code) ((type) == ALPHA_KENTRY_IF && \ - (code) == ALPHA_IF_CODE_BPT) + +#define IS_BREAKPOINT_TRAP(type, code) \ + ((type) == ALPHA_KENTRY_IF && (code) == ALPHA_IF_CODE_BPT) #define IS_WATCHPOINT_TRAP(type, code) 0 /* * Functions needed for software single-stepping. */ +boolean_t db_inst_trap_return(int inst); +boolean_t db_inst_return(int inst); +boolean_t db_inst_call(int inst); +boolean_t db_inst_branch(int inst); +boolean_t db_inst_load(int inst); +boolean_t db_inst_store(int inst); +boolean_t db_inst_unconditional_flow_transfer(int inst); +db_addr_t db_branch_taken(int inst, db_addr_t pc); -boolean_t db_inst_trap_return(int inst); -boolean_t db_inst_return(int inst); -boolean_t db_inst_call(int inst); -boolean_t db_inst_branch(int inst); -boolean_t db_inst_load(int inst); -boolean_t db_inst_store(int inst); -boolean_t db_inst_unconditional_flow_transfer(int inst); -db_addr_t db_branch_taken(int inst, db_addr_t pc, db_regs_t *regs); - #define inst_trap_return(ins) db_inst_trap_return(ins) #define inst_return(ins) db_inst_return(ins) #define inst_call(ins) db_inst_call(ins) @@ -88,13 +74,12 @@ #define inst_store(ins) db_inst_store(ins) #define inst_unconditional_flow_transfer(ins) \ db_inst_unconditional_flow_transfer(ins) -#define branch_taken(ins, pc, regs) \ - db_branch_taken((ins), (pc), (regs)) +#define branch_taken(ins, pc) db_branch_taken(ins, pc) /* No delay slots on Alpha. */ #define next_instr_address(v, b) ((db_addr_t) ((b) ? (v) : ((v) + 4))) -u_long db_register_value(db_regs_t *, int); +u_long db_register_value(int); /* * Pretty arbitrary ==== //depot/projects/gdb/sys/ddb/db_run.c#3 (text+ko) ==== @@ -65,10 +65,10 @@ int db_store_count; #ifndef db_set_single_step -extern void db_set_single_step(db_regs_t *regs); +void db_set_single_step(void); #endif #ifndef db_clear_single_step -extern void db_clear_single_step(db_regs_t *regs); +void db_clear_single_step(void); #endif boolean_t @@ -249,11 +249,10 @@ db_breakpoint_t db_taken_bkpt = 0; void -db_set_single_step(regs) - register db_regs_t *regs; +db_set_single_step(void) { - db_addr_t pc = PC_REGS(regs), brpc; - unsigned inst; + db_addr_t pc = PC_REGS(), brpc; + unsigned inst; /* * User was stopped at pc, e.g. the instruction @@ -261,28 +260,27 @@ */ inst = db_get_value(pc, sizeof(int), FALSE); if (inst_branch(inst) || inst_call(inst)) { - brpc = branch_taken(inst, pc, regs); - if (brpc != pc) { /* self-branches are hopeless */ - db_taken_bkpt = db_set_temp_breakpoint(brpc); - } - pc = next_instr_address(pc,1); + brpc = branch_taken(inst, pc); + if (brpc != pc) { /* self-branches are hopeless */ + db_taken_bkpt = db_set_temp_breakpoint(brpc); + } + pc = next_instr_address(pc, 1); } - pc = next_instr_address(pc,0); + pc = next_instr_address(pc, 0); db_not_taken_bkpt = db_set_temp_breakpoint(pc); } void -db_clear_single_step(regs) - db_regs_t *regs; +db_clear_single_step(void) { if (db_not_taken_bkpt != 0) { - db_delete_temp_breakpoint(db_not_taken_bkpt); - db_not_taken_bkpt = 0; + db_delete_temp_breakpoint(db_not_taken_bkpt); + db_not_taken_bkpt = 0; } if (db_taken_bkpt != 0) { - db_delete_temp_breakpoint(db_taken_bkpt); - db_taken_bkpt = 0; + db_delete_temp_breakpoint(db_taken_bkpt); + db_taken_bkpt = 0; } } ==== //depot/projects/gdb/sys/sparc64/include/db_machdep.h#2 (text+ko) ==== @@ -38,23 +38,19 @@ typedef vm_offset_t db_addr_t; typedef long db_expr_t; -typedef struct trapframe db_regs_t; -extern db_regs_t ddb_regs; -#define DDB_REGS (&ddb_regs) +#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_pc) -#define PC_REGS(regs) ((db_addr_t)(regs)->tf_tpc) - #define BKPT_INST (0x91d03001) #define BKPT_SIZE (4) #define BKPT_SET(inst) (BKPT_INST) #define BKPT_SKIP do { \ - ddb_regs.tf_tpc = ddb_regs.tf_tnpc + 4; \ - ddb_regs.tf_tnpc += 8; \ + kdb_frame->tf_tpc = kdb_frame->tf_tnpc + 4; \ + kdb_frame->tf_tnpc += 8; \ } while (0) -#define db_clear_single_step(regs) -#define db_set_single_step(regs) +#define db_clear_single_step kdb_cpu_clear_singlestep +#define db_set_single_step kdb_cpu_set_singlestep #define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT) #define IS_WATCHPOINT_TRAP(type, code) (0) ==== //depot/projects/gdb/sys/sparc64/include/kdb.h#3 (text+ko) ==== @@ -29,7 +29,7 @@ #ifndef _MACHINE_KDB_H_ #define _MACHINE_KDB_H_ -#include +#include static __inline void kdb_cpu_clear_singlestep(void) ==== //depot/projects/gdb/sys/sparc64/sparc64/db_trace.c#3 (text+ko) ==== @@ -51,29 +51,47 @@ #define INKERNEL(va) \ ((va) >= VM_MIN_KERNEL_ADDRESS && (va) <= VM_MAX_KERNEL_ADDRESS) +static db_varfcn_t db_frame; + +#define DB_OFFSET(x) (db_expr_t *)offsetof(struct trapframe, x) struct db_variable db_regs[] = { - { "g0", &ddb_regs.tf_global[0], FCN_NULL }, - { "g1", &ddb_regs.tf_global[1], FCN_NULL }, - { "g2", &ddb_regs.tf_global[2], FCN_NULL }, - { "g3", &ddb_regs.tf_global[3], FCN_NULL }, - { "g4", &ddb_regs.tf_global[4], FCN_NULL }, - { "g5", &ddb_regs.tf_global[5], FCN_NULL }, - { "g6", &ddb_regs.tf_global[6], FCN_NULL }, - { "g7", &ddb_regs.tf_global[7], FCN_NULL }, - { "i0", &ddb_regs.tf_out[0], FCN_NULL }, - { "i1", &ddb_regs.tf_out[1], FCN_NULL }, - { "i2", &ddb_regs.tf_out[2], FCN_NULL }, - { "i3", &ddb_regs.tf_out[3], FCN_NULL }, - { "i4", &ddb_regs.tf_out[4], FCN_NULL }, - { "i5", &ddb_regs.tf_out[5], FCN_NULL }, - { "i6", &ddb_regs.tf_out[6], FCN_NULL }, - { "i7", &ddb_regs.tf_out[7], FCN_NULL }, - { "tnpc", &ddb_regs.tf_tnpc, FCN_NULL }, - { "tpc", &ddb_regs.tf_tpc, FCN_NULL }, - { "tstate", &ddb_regs.tf_tstate, FCN_NULL }, + { "g0", DB_OFFSET(tf_global[0]), db_frame }, + { "g1", DB_OFFSET(tf_global[1]), db_frame }, + { "g2", DB_OFFSET(tf_global[2]), db_frame }, + { "g3", DB_OFFSET(tf_global[3]), db_frame }, + { "g4", DB_OFFSET(tf_global[4]), db_frame }, + { "g5", DB_OFFSET(tf_global[5]), db_frame }, + { "g6", DB_OFFSET(tf_global[6]), db_frame }, + { "g7", DB_OFFSET(tf_global[7]), db_frame }, + { "i0", DB_OFFSET(tf_out[0]), db_frame }, + { "i1", DB_OFFSET(tf_out[1]), db_frame }, + { "i2", DB_OFFSET(tf_out[2]), db_frame }, + { "i3", DB_OFFSET(tf_out[3]), db_frame }, + { "i4", DB_OFFSET(tf_out[4]), db_frame }, + { "i5", DB_OFFSET(tf_out[5]), db_frame }, + { "i6", DB_OFFSET(tf_out[6]), db_frame }, + { "i7", DB_OFFSET(tf_out[7]), db_frame }, + { "tnpc", DB_OFFSET(tf_tnpc), db_frame }, + { "tpc", DB_OFFSET(tf_tpc), db_frame }, + { "tstate", DB_OFFSET(tf_tstate), db_frame }, }; struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); +static int +db_frame(struct db_variable *vp, db_expr_t *valuep, int op) +{ + uint64_t *reg; + + if (kdb_frame == NULL) + return (0); + reg = (uint64_t*)((uintptr_t)kdb_frame + (uintptr_t)vp->valuep); + if (op == DB_VAR_GET) + *valuep = *reg; + else + *reg = *valuep; + return (1); +} + /* * User stack trace (debugging aid). */ @@ -200,9 +218,9 @@ } static int -db_backtrace(struct thread *td, struct trapframe *tf, struct frame *fp, - int count) +db_backtrace(struct thread *td, struct frame *fp, int count) { + struct trapframe *tf; const char *name; c_db_sym_t sym; db_expr_t offset; @@ -215,9 +233,6 @@ if (count == -1) count = 1024; - if (fp == NULL && tf != NULL) - fp = (struct frame *)(tf->tf_out[6] + SPOFF); - trap = 0; user = 0; npc = 0; @@ -267,7 +282,7 @@ db_printf("Thread %d not found\n", (int)addr); return; } - db_backtrace(td, td->td_last_frame, NULL, count); + db_trace_thread(td, count); } void @@ -276,12 +291,14 @@ db_expr_t addr; addr = (db_expr_t)__builtin_frame_address(1); - db_backtrace(curthread, NULL, (struct frame *)(addr + SPOFF), -1); + db_backtrace(curthread, (struct frame *)(addr + SPOFF), -1); } int db_trace_thread(struct thread *td, int count) { + struct pcb *ctx; - return (db_backtrace(td, td->td_last_frame, NULL, count)); + ctx = kdb_thr_ctx(td); + return (db_backtrace(td, (struct frame*)(ctx->pcb_sp + SPOFF), count)); } ==== //depot/projects/gdb/sys/sparc64/sparc64/trap.c#7 (text+ko) ==== @@ -250,7 +250,6 @@ p = td->td_proc; sticks = td->td_sticks; td->td_frame = tf; - td->td_last_frame = tf; if (td->td_ucred != p->p_ucred) cred_update_thread(td); @@ -305,8 +304,6 @@ } #endif - td->td_last_frame = tf; - switch (tf->tf_type & ~T_KERNEL) { #ifdef KDB case T_BREAKPOINT: @@ -526,7 +523,6 @@ sticks = td->td_sticks; td->td_frame = tf; - td->td_last_frame = tf; if (td->td_ucred != p->p_ucred) cred_update_thread(td); if (p->p_flag & P_SA) From owner-p4-projects@FreeBSD.ORG Tue Jun 15 08:09:42 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0EB5E16A4D0; Tue, 15 Jun 2004 08:09:42 +0000 (GMT) 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 D45A516A4CF for ; Tue, 15 Jun 2004 08:09:41 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B56C743D58 for ; Tue, 15 Jun 2004 08:09:41 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F89Sqi081843 for ; Tue, 15 Jun 2004 08:09:28 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F89Sb3081840 for perforce@freebsd.org; Tue, 15 Jun 2004 08:09:28 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 08:09:28 GMT Message-Id: <200406150809.i5F89Sb3081840@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 54995 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, 15 Jun 2004 08:09:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=54995 Change 54995 by jmallett@jmallett_oingo on 2004/06/15 08:09:01 Up critical section on the running thread before dispatching an interrupt, it may result in a context switch, and we need to avoid that if we're already in a critical section. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#23 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#23 (text+ko) ==== @@ -119,7 +119,9 @@ goto done; case TrInt: /*platform_trap_exit();*/ + critical_enter(); platform_intr(tf); + critical_exit(); goto done; case TrAdEL: case TrDBE: From owner-p4-projects@FreeBSD.ORG Tue Jun 15 09:34:23 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 294BE16A4D0; Tue, 15 Jun 2004 09:34:23 +0000 (GMT) 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 0564716A4CE for ; Tue, 15 Jun 2004 09:34:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD6E343D49 for ; Tue, 15 Jun 2004 09:34:22 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F9YIRc007027 for ; Tue, 15 Jun 2004 09:34:18 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F9YIRu007024 for perforce@freebsd.org; Tue, 15 Jun 2004 09:34:18 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 09:34:18 GMT Message-Id: <200406150934.i5F9YIRu007024@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 54999 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, 15 Jun 2004 09:34:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=54999 Change 54999 by jmallett@jmallett_oingo on 2004/06/15 09:33:37 notyet. I think this could be causing a panic on real hardware, but I haven't figured out, well, anything yet. Affected files ... .. //depot/projects/mips/sys/mips/conf/INDY#12 edit Differences ... ==== //depot/projects/mips/sys/mips/conf/INDY#12 (text+ko) ==== @@ -20,7 +20,6 @@ # Hardware support device arcs #ARCS Firmware + Console. -device arcs_disk #ARCS Disk. device imc #IMC bus. device hpc #HPC bus. device gio #GIO bus. From owner-p4-projects@FreeBSD.ORG Tue Jun 15 09:36:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CD3D16A4D0; Tue, 15 Jun 2004 09:36:35 +0000 (GMT) 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 61E7C16A4CE for ; Tue, 15 Jun 2004 09:36:35 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5A68243D53 for ; Tue, 15 Jun 2004 09:36:35 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F9aMLn007137 for ; Tue, 15 Jun 2004 09:36:22 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F9aLAI007134 for perforce@freebsd.org; Tue, 15 Jun 2004 09:36:21 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 09:36:21 GMT Message-Id: <200406150936.i5F9aLAI007134@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 55000 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, 15 Jun 2004 09:36:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=55000 Change 55000 by jmallett@jmallett_oingo on 2004/06/15 09:35:25 Take a major axe across one of the bigger chunks of NetBSD code. Severely cripple ability to deal with "modern" MIPS32/MIPS64 chips and concentrate on the R4400 and similar that are much more comfortable for trying to get *one thing right* right now. I can abstract work as much as I need to support more in the future, of course, this is all just here as a result of using some NetBSD code as a crutch. I need to get on from that so I can get to understanding all the stuff I've done and simplifying all the interactions. Hell, we still don't even run cached! Affected files ... .. //depot/projects/mips/sys/conf/files.mips#36 edit .. //depot/projects/mips/sys/mips/include/cpu.h#17 edit .. //depot/projects/mips/sys/mips/include/md_var.h#10 edit .. //depot/projects/mips/sys/mips/mips/cache.c#7 edit .. //depot/projects/mips/sys/mips/mips/cpu.c#1 add .. //depot/projects/mips/sys/mips/mips/db_interface.c#15 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#44 edit Differences ... ==== //depot/projects/mips/sys/conf/files.mips#36 (text+ko) ==== @@ -13,6 +13,7 @@ mips/mips/autoconf.c standard mips/mips/bus_machdep.c standard mips/mips/busdma_machdep.c standard +mips/mips/cpu.c standard mips/mips/critical.c standard mips/mips/elf_machdep.c standard mips/mips/exception.S standard ==== //depot/projects/mips/sys/mips/include/cpu.h#17 (text+ko) ==== @@ -86,48 +86,6 @@ return (++now); } -/* - * Macros to find the CPU architecture we're on at run-time, - * or if possible, at compile-time. - */ - -#define CPU_ARCH_MIPSx 0 /* XXX unknown */ -#define CPU_ARCH_MIPS1 (1 << 0) -#define CPU_ARCH_MIPS2 (1 << 1) -#define CPU_ARCH_MIPS3 (1 << 2) -#define CPU_ARCH_MIPS4 (1 << 3) -#define CPU_ARCH_MIPS5 (1 << 4) -#define CPU_ARCH_MIPS32 (1 << 5) -#define CPU_ARCH_MIPS64 (1 << 6) - -#ifndef LOCORE -/* XXX simonb - * Should the following be in a cpu_info type structure? - * And how many of these are per-cpu vs. per-system? (Ie, - * we can assume that all cpus have the same mmu-type, but - * maybe not that all cpus run at the same clock speed. - * Some SGI's apparently support R12k and R14k in the same - * box.) - */ -extern int cpu_arch; -extern int mips_cpu_flags; -extern int mips_has_r4k_mmu; -#define MIPS_HAS_R4K_MMU (mips_has_r4k_mmu) -extern int mips_has_llsc; -#define MIPS_HAS_LLSC (mips_has_llsc) -extern int mips3_pg_cached; - -#define CPU_MIPS_R4K_MMU 0x0001 -#define CPU_MIPS_NO_LLSC 0x0002 -#define CPU_MIPS_CAUSE_IV 0x0004 -#define CPU_MIPS_DOUBLE_COUNT 0x0080 /* 1 cp0 count == 2 clock cycles */ -#define CPU_MIPS_USE_WAIT 0x0100 /* Use "wait"-based cpu_idle() */ -#define CPU_MIPS_NO_WAIT 0x0200 /* Inverse of previous, for mips32/64 */ -#define CPU_MIPS_D_CACHE_COHERENT 0x0400 /* D-cache is fully coherent */ -#define CPU_MIPS_I_D_CACHE_COHERENT 0x0800 /* I-cache funcs don't need to flush the D-cache */ -#define MIPS_NOT_SUPP 0x8000 -#endif - void fork_trampoline(void); void cpu_halt(void); void cpu_reset(void); ==== //depot/projects/mips/sys/mips/include/md_var.h#10 (text+ko) ==== @@ -36,6 +36,8 @@ extern int cpu_id; extern int fpu_id; +void cpu_identify(void); +void mips_cpu_init(void); void mips_init(void); /* Platform call-downs. */ ==== //depot/projects/mips/sys/mips/mips/cache.c#7 (text+ko) ==== @@ -141,7 +141,6 @@ void mips3_get_cache_config(int); static void mips_config_cache_prehistoric(void); -static void mips_config_cache_modern(void); /* * mips_dcache_compute_align: @@ -179,7 +178,7 @@ if (MIPS_PRID_CID(cpu_id) == MIPS_PRID_CID_PREHISTORIC) mips_config_cache_prehistoric(); if (MIPS_PRID_CID(cpu_id) != MIPS_PRID_CID_PREHISTORIC) - mips_config_cache_modern(); + panic("don't support modern MIPS CPUs yet"); #ifdef DIAGNOSTIC /* Check that all cache ops are set up. */ @@ -612,205 +611,3 @@ static void cache_noop(void) __attribute__((__unused__)); static void cache_noop(void) {} - -static void -mips_config_cache_modern(void) -{ - /* MIPS32/MIPS64, use coprocessor 0 config registers */ - uint32_t cfg, cfg1; - - cfg = mips_rd_config(); - cfg1 = mipsNN_cp0_config1_read(); - -#ifdef MIPS_DISABLE_L1_CACHE - cfg1 &= ~MIPSNN_CFG1_IL_MASK; - cfg1 &= ~MIPSNN_CFG1_DL_MASK; - mipsNN_cp0_config1_write(cfg1); -#endif - - /* figure out Dcache params. */ - switch (MIPSNN_GET(CFG1_DL, cfg1)) { - case MIPSNN_CFG1_DL_NONE: - mips_pdcache_line_size = mips_pdcache_way_size = - mips_pdcache_ways = 0; - break; - case MIPSNN_CFG1_DL_RSVD: - panic("reserved MIPS32/64 Dcache line size"); - break; - default: - if (MIPSNN_GET(CFG1_DS, cfg1) == MIPSNN_CFG1_DS_RSVD) - panic("reserved MIPS32/64 Dcache sets per way"); - mips_pdcache_line_size = MIPSNN_CFG1_DL(cfg1); - mips_pdcache_way_size = - mips_pdcache_line_size * MIPSNN_CFG1_DS(cfg1); - mips_pdcache_ways = MIPSNN_CFG1_DA(cfg1) + 1; - - /* - * Compute the total size and "way mask" for the - * primary Icache. - */ - mips_pdcache_size = - mips_pdcache_way_size * mips_pdcache_ways; - mips_pdcache_way_mask = mips_pdcache_way_size - 1; - break; - } - - /* figure out Icache params. */ - switch (MIPSNN_GET(CFG1_IL, cfg1)) { - case MIPSNN_CFG1_IL_NONE: - mips_picache_line_size = mips_picache_way_size = - mips_picache_ways = 0; - break; - case MIPSNN_CFG1_IL_RSVD: - panic("reserved MIPS32/64 Icache line size"); - break; - default: - if (MIPSNN_GET(CFG1_IS, cfg1) == MIPSNN_CFG1_IS_RSVD) - panic("reserved MIPS32/64 Icache sets per way"); - mips_picache_line_size = MIPSNN_CFG1_IL(cfg1); - mips_picache_way_size = - mips_picache_line_size * MIPSNN_CFG1_IS(cfg1); - mips_picache_ways = MIPSNN_CFG1_IA(cfg1) + 1; - - /* - * Compute the total size and "way mask" for the - * primary Dcache. - */ - mips_picache_size = - mips_picache_way_size * mips_picache_ways; - mips_picache_way_mask = mips_picache_way_size - 1; - break; - } - -#define CACHE_DEBUG -#ifdef CACHE_DEBUG - printf("MIPS32/64 params: cpu arch: %d\n", cpu_arch); - printf("MIPS32/64 params: TLB entries: %d\n", mips_num_tlb_entries); - if (mips_picache_line_size == 0) - printf("MIPS32/64 params: no Icache\n"); - else { - printf("MIPS32/64 params: Icache: line = %d, total = %d, " - "ways = %d\n", mips_picache_line_size, - mips_picache_way_size * mips_picache_ways, - mips_picache_ways); - printf("\t\t sets = %d\n", (mips_picache_way_size * - mips_picache_ways / mips_picache_line_size) / - mips_picache_ways); - } - if (mips_pdcache_line_size == 0) - printf("MIPS32/64 params: no Dcache\n"); - else { - printf("MIPS32/64 params: Dcache: line = %d, total = %d, " - "ways = %d\n", mips_pdcache_line_size, - mips_pdcache_way_size * mips_pdcache_ways, - mips_pdcache_ways); - printf("\t\t sets = %d\n", (mips_pdcache_way_size * - mips_pdcache_ways / mips_pdcache_line_size) / - mips_pdcache_ways); - } -#endif /* CACHE_DEBUG */ - - switch (mips_picache_line_size) { - case 16: - mips_cache_ops.mco_icache_sync_all = mipsNN_icache_sync_all_16; - mips_cache_ops.mco_icache_sync_range = - mipsNN_icache_sync_range_16; - mips_cache_ops.mco_icache_sync_range_index = - mipsNN_icache_sync_range_index_16; - break; - case 32: - mips_cache_ops.mco_icache_sync_all = mipsNN_icache_sync_all_32; - mips_cache_ops.mco_icache_sync_range = - mipsNN_icache_sync_range_32; - mips_cache_ops.mco_icache_sync_range_index = - mipsNN_icache_sync_range_index_32; - break; -#ifdef MIPS_DISABLE_L1_CACHE - case 0: - mips_cache_ops.mco_icache_sync_all = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_icache_sync_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_icache_sync_range_index = (void *)(uintptr_t)cache_noop; - break; -#endif - default: - panic("no Icache ops for %d byte lines", - mips_picache_line_size); - } - - switch (mips_pdcache_line_size) { - case 16: - mips_cache_ops.mco_pdcache_wbinv_all = - mips_cache_ops.mco_intern_pdcache_wbinv_all = - mipsNN_pdcache_wbinv_all_16; - mips_cache_ops.mco_pdcache_wbinv_range = - mipsNN_pdcache_wbinv_range_16; - mips_cache_ops.mco_pdcache_wbinv_range_index = - mips_cache_ops.mco_intern_pdcache_wbinv_range_index = - mipsNN_pdcache_wbinv_range_index_16; - mips_cache_ops.mco_pdcache_inv_range = - mipsNN_pdcache_inv_range_16; - mips_cache_ops.mco_pdcache_wb_range = - mips_cache_ops.mco_intern_pdcache_wb_range = - mipsNN_pdcache_wb_range_16; - break; - case 32: - mips_cache_ops.mco_pdcache_wbinv_all = - mips_cache_ops.mco_intern_pdcache_wbinv_all = - mipsNN_pdcache_wbinv_all_32; - mips_cache_ops.mco_pdcache_wbinv_range = - mipsNN_pdcache_wbinv_range_32; - mips_cache_ops.mco_pdcache_wbinv_range_index = - mips_cache_ops.mco_intern_pdcache_wbinv_range_index = - mipsNN_pdcache_wbinv_range_index_32; - mips_cache_ops.mco_pdcache_inv_range = - mipsNN_pdcache_inv_range_32; - mips_cache_ops.mco_pdcache_wb_range = - mips_cache_ops.mco_intern_pdcache_wb_range = - mipsNN_pdcache_wb_range_32; - break; -#ifdef MIPS_DISABLE_L1_CACHE - case 0: - mips_cache_ops.mco_pdcache_wbinv_all = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_intern_pdcache_wbinv_all = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wbinv_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wbinv_range_index = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_intern_pdcache_wbinv_range_index = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_inv_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wb_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_intern_pdcache_wb_range = (void *)(uintptr_t)cache_noop; - break; -#endif - default: - panic("no Dcache ops for %d byte lines", - mips_pdcache_line_size); - } - - mipsNN_cache_init(cfg, cfg1); - - if (mips_cpu_flags & - (CPU_MIPS_D_CACHE_COHERENT | CPU_MIPS_I_D_CACHE_COHERENT)) { -#ifdef CACHE_DEBUG - printf(" Dcache is coherent\n"); -#endif - mips_cache_ops.mco_pdcache_wbinv_all = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wbinv_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wbinv_range_index = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_inv_range = (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_pdcache_wb_range = (void *)(uintptr_t)cache_noop; - } - if (mips_cpu_flags & CPU_MIPS_I_D_CACHE_COHERENT) { -#ifdef CACHE_DEBUG - printf(" Icache is coherent against Dcache\n"); -#endif - mips_cache_ops.mco_intern_pdcache_wbinv_all = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_intern_pdcache_wbinv_range_index = - (void *)(uintptr_t)cache_noop; - mips_cache_ops.mco_intern_pdcache_wb_range = - (void *)(uintptr_t)cache_noop; - } -} ==== //depot/projects/mips/sys/mips/mips/db_interface.c#15 (text+ko) ==== @@ -357,31 +357,21 @@ SHOW32(MIPS_COP_0_TLB_INDEX, "index"); SHOW32(MIPS_COP_0_TLB_RANDOM, "random"); - if (!MIPS_HAS_R4K_MMU) { - SHOW32(MIPS_COP_0_TLB_LOW, "entrylow"); - } else { - SHOW64(MIPS_COP_0_TLB_LO0, "entrylo0"); - SHOW64(MIPS_COP_0_TLB_LO1, "entrylo1"); - } + SHOW64(MIPS_COP_0_TLB_LO0, "entrylo0"); + SHOW64(MIPS_COP_0_TLB_LO1, "entrylo1"); SHOW64(MIPS_COP_0_TLB_CONTEXT, "context"); - if (MIPS_HAS_R4K_MMU) { - SHOW32(MIPS_COP_0_TLB_PG_MASK, "pagemask"); - SHOW32(MIPS_COP_0_TLB_WIRED, "wired"); - } + SHOW32(MIPS_COP_0_TLB_PG_MASK, "pagemask"); + SHOW32(MIPS_COP_0_TLB_WIRED, "wired"); SHOW64(MIPS_COP_0_BAD_VADDR, "badvaddr"); - if (cpu_arch >= CPU_ARCH_MIPS3) { - SHOW32(MIPS_COP_0_COUNT, "count"); - } + SHOW32(MIPS_COP_0_COUNT, "count"); SHOW64(MIPS_COP_0_TLB_HI, "entryhi"); - if (cpu_arch >= CPU_ARCH_MIPS3) { - SHOW32(MIPS_COP_0_COMPARE, "compare"); - } + SHOW32(MIPS_COP_0_COMPARE, "compare"); SHOW32(MIPS_COP_0_STATUS, "status"); SHOW32(MIPS_COP_0_CAUSE, "cause"); @@ -394,22 +384,20 @@ val = mipsNN_cp0_config1_read(); printf(" config1: %#x\n", val); - if (mips_has_llsc) { - SHOW64(MIPS_COP_0_LLADDR, "lladdr"); - SHOW64(MIPS_COP_0_WATCH_LO, "watchlo"); + SHOW64(MIPS_COP_0_LLADDR, "lladdr"); + SHOW64(MIPS_COP_0_WATCH_LO, "watchlo"); - SHOW32(MIPS_COP_0_WATCH_HI, "watchhi"); + SHOW32(MIPS_COP_0_WATCH_HI, "watchhi"); - SHOW64(MIPS_COP_0_TLB_XCONTEXT, "xcontext"); - SHOW64(MIPS_COP_0_PERFCNT, "perfcnt"); + SHOW64(MIPS_COP_0_TLB_XCONTEXT, "xcontext"); + SHOW64(MIPS_COP_0_PERFCNT, "perfcnt"); - SHOW32(MIPS_COP_0_ECC, "ecc"); - SHOW32(MIPS_COP_0_CACHE_ERR, "cacherr"); - SHOW32(MIPS_COP_0_TAG_LO, "cachelo"); - SHOW32(MIPS_COP_0_TAG_HI, "cachehi"); + SHOW32(MIPS_COP_0_ECC, "ecc"); + SHOW32(MIPS_COP_0_CACHE_ERR, "cacherr"); + SHOW32(MIPS_COP_0_TAG_LO, "cachelo"); + SHOW32(MIPS_COP_0_TAG_HI, "cachehi"); - SHOW64(MIPS_COP_0_ERROR_PC, "errorpc"); - } + SHOW64(MIPS_COP_0_ERROR_PC, "errorpc"); } /* ==== //depot/projects/mips/sys/mips/mips/machdep.c#44 (text+ko) ==== @@ -1,121 +1,4 @@ -/* - * Copyright 2002 Wasabi Systems, Inc. - * All rights reserved. - * - * Written by Simon Burge for Wasabi Systems, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed for the NetBSD Project by - * Wasabi Systems, Inc. - * 4. The name of Wasabi Systems, Inc. may not be used to endorse - * or promote products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Copyright 2000, 2001 - * Broadcom Corporation. All rights reserved. - * - * This software is furnished under license and may be used and copied only - * in accordance with the following terms and conditions. Subject to these - * conditions, you may download, copy, install, use, modify and distribute - * modified or unmodified copies of this software in source and/or binary - * form. No title or ownership is transferred hereby. - * - * 1) Any source code used, modified or distributed must reproduce and - * retain this copyright notice and list of conditions as they appear in - * the source file. - * - * 2) No right is granted to use any trade name, trademark, or logo of - * Broadcom Corporation. The "Broadcom Corporation" name may not be - * used to endorse or promote products derived from this software - * without the prior written permission of Broadcom Corporation. - * - * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR - * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM BE LIABLE - * FOR ANY DAMAGES WHATSOEVER, AND IN PARTICULAR, BROADCOM SHALL NOT BE - * LIABLE FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - /*- - * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, - * NASA Ames Research Center and by Chris Demetriou. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Copyright 1996 The Board of Trustees of The Leland Stanford - * Junior University. All Rights Reserved. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. Stanford University - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/*- * Copyright (c) 2002 Juli Mallett * All rights reserved. * @@ -179,15 +62,7 @@ #include #endif -int cpu_arch; -int mips_cpu_flags; -int mips_has_r4k_mmu; -int mips_has_llsc; - -int mips_num_tlb_entries; - int cold = 1; -int cpu_id, fpu_id; static struct pcpu pcpu0; struct pcpu *pcpup = &pcpu0; @@ -201,8 +76,6 @@ vm_size_t physsz; -static void mips_vector_init(void); -static void cpu_identify(void); void cpu_startup(void *); SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL); @@ -211,7 +84,7 @@ { physmem = btoc(physsz); - mips_vector_init(); + mips_cpu_init(); pmap_bootstrap(); proc_linkup(&proc0, &ksegrp0, &kse0, &thread0); @@ -232,6 +105,7 @@ cpu_startup(void *dummy) { cpu_identify(); + platform_identify(); printf("real memory = %lu (%lu MB)\n", physsz, physsz / (1024 * 1024)); @@ -349,501 +223,3 @@ { return (-1); } - -/* - * XXX begin NetBSD stuff, I want to rewrite or move out most. - */ - -struct pridtab { - int cpu_cid; - int cpu_pid; - int cpu_rev; /* -1 == wildcard */ - int cpu_copts; /* -1 == wildcard */ - int cpu_isa; /* -1 == probed (mips32/mips64) */ - int cpu_ntlb; /* -1 == unknown, 0 == probed */ - int cpu_flags; - char *cpu_name; -}; - -/* - * Assumptions: - * - All MIPS3+ have an r4k-style MMU. _Many_ assumptions throughout - * much of the mips code about this. Includes overloaded usage of - * MIPS_PLUS. - * - All MIPS3+ use the same exception model (cp0 status, cause bits, - * etc). _Many_ assumptions throughout much of the mips code about - * this. Includes overloaded usage of MIPS_PLUS. - * - All MIPS3+ have a count register. MIPS_HAS_CLOCK in - * will need to be revised if this is false. - */ -#define MIPS32_FLAGS CPU_MIPS_R4K_MMU | CPU_MIPS_CAUSE_IV | CPU_MIPS_USE_WAIT -#define MIPS64_FLAGS MIPS32_FLAGS /* same as MIPS32 flags (for now) */ - -static const struct pridtab *mycpu; - -static const struct pridtab cputab[] = { - { 0, MIPS_R2000, -1, -1, CPU_ARCH_MIPS1, 64, - CPU_MIPS_NO_LLSC, "MIPS R2000 CPU" }, - { 0, MIPS_R3000, MIPS_REV_R3000, -1, CPU_ARCH_MIPS1, 64, - CPU_MIPS_NO_LLSC, "MIPS R3000 CPU" }, - { 0, MIPS_R3000, MIPS_REV_R3000A, -1, CPU_ARCH_MIPS1, 64, - CPU_MIPS_NO_LLSC, "MIPS R3000A CPU" }, - { 0, MIPS_R6000, -1, -1, CPU_ARCH_MIPS2, 32, - MIPS_NOT_SUPP, "MIPS R6000 CPU" }, - - /* - * rev 0x00 and 0x30 are R4000, 0x40, 0x50 and 0x60 are R4400. - * should we allow ranges and use 0x00 - 0x3f for R4000 and - * 0x40 - 0xff for R4400? - */ - { 0, MIPS_R4000, MIPS_REV_R4000_A, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R4000 CPU" }, - { 0, MIPS_R4000, MIPS_REV_R4000_B, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R4000 CPU" }, - { 0, MIPS_R4000, MIPS_REV_R4400_A, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R4400 CPU" }, - { 0, MIPS_R4000, MIPS_REV_R4400_B, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R4400 CPU" }, - { 0, MIPS_R4000, MIPS_REV_R4400_C, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R4400 CPU" }, - - { 0, MIPS_R3LSI, -1, -1, CPU_ARCH_MIPS1, -1, - MIPS_NOT_SUPP, "LSI Logic R3000 derivative" }, - { 0, MIPS_R6000A, -1, -1, CPU_ARCH_MIPS2, 32, - MIPS_NOT_SUPP, "MIPS R6000A CPU" }, - { 0, MIPS_R3IDT, -1, -1, CPU_ARCH_MIPS1, -1, - MIPS_NOT_SUPP, "IDT R3041 or RC36100 CPU" }, - { 0, MIPS_R4100, -1, -1, CPU_ARCH_MIPS3, 32, - CPU_MIPS_R4K_MMU | CPU_MIPS_NO_LLSC, "NEC VR4100 CPU" }, - { 0, MIPS_R4200, -1, -1, CPU_ARCH_MIPS3, -1, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "NEC VR4200 CPU" }, - { 0, MIPS_R4300, -1, -1, CPU_ARCH_MIPS3, 32, - CPU_MIPS_R4K_MMU, "NEC VR4300 CPU" }, - { 0, MIPS_R4600, -1, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "QED R4600 Orion CPU" }, - { 0, MIPS_R4700, -1, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU, "QED R4700 Orion CPU" }, - - { 0, MIPS_R8000, -1, -1, CPU_ARCH_MIPS4, 384, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "MIPS R8000 Blackbird/TFP CPU" }, - { 0, MIPS_R10000, -1, -1, CPU_ARCH_MIPS4, 64, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "MIPS R10000 CPU" }, - { 0, MIPS_R12000, -1, -1, CPU_ARCH_MIPS4, 64, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "MIPS R12000 CPU" }, - { 0, MIPS_R14000, -1, -1, CPU_ARCH_MIPS4, 64, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "MIPS R14000 CPU" }, - - /* XXX - * If the Processor Revision ID of the 4650 isn't 0, the following - * entry needs to be adjusted. Can't use a wildcard match because - * the TX39 series processors share the same Processor ID value. - * Or maybe put TX39 CPUs first if the revid doesn't overlap with - * the 4650... - */ - { 0, MIPS_R4650, 0, -1, CPU_ARCH_MIPS3, -1, - MIPS_NOT_SUPP /* no MMU! */, "QED R4650 CPU" }, - { 0, MIPS_TX3900, MIPS_REV_TX3912, -1, CPU_ARCH_MIPS1, 32, - CPU_MIPS_NO_LLSC, "Toshiba TX3912 CPU" }, - { 0, MIPS_TX3900, MIPS_REV_TX3922, -1, CPU_ARCH_MIPS1, 64, - CPU_MIPS_NO_LLSC, "Toshiba TX3922 CPU" }, - { 0, MIPS_TX3900, MIPS_REV_TX3927, -1, CPU_ARCH_MIPS1, 64, - CPU_MIPS_NO_LLSC, "Toshiba TX3927 CPU" }, - { 0, MIPS_R5000, -1, -1, CPU_ARCH_MIPS4, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "MIPS R5000 CPU" }, - { 0, MIPS_RM5200, -1, -1, CPU_ARCH_MIPS4, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_CAUSE_IV | CPU_MIPS_DOUBLE_COUNT | - CPU_MIPS_USE_WAIT, "QED RM5200 CPU" }, - - /* XXX - * The rm7000 rev 2.0 can have 64 tlbs, and has 6 extra interrupts. See - * "Migrating to the RM7000 from other MIPS Microprocessors" - * for more details. - */ - { 0, MIPS_RM7000, -1, -1, CPU_ARCH_MIPS4, 48, - MIPS_NOT_SUPP | CPU_MIPS_CAUSE_IV | CPU_MIPS_DOUBLE_COUNT | - CPU_MIPS_USE_WAIT, "QED RM7000 CPU" }, - - /* - * IDT RC32300 core is a 32 bit MIPS2 processor with - * MIPS3/MIPS4 extensions. It has an R4000-style TLB, - * while all registers are 32 bits and any 64 bit - * instructions like ld/sd/dmfc0/dmtc0 are not allowed. - * - * note that the Config register has a non-standard base - * for IC and DC (2^9 instead of 2^12). - * - */ - { 0, MIPS_RC32300, -1, -1, CPU_ARCH_MIPS3, 16, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "IDT RC32300 CPU" }, - { 0, MIPS_RC32364, -1, -1, CPU_ARCH_MIPS3, 16, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "IDT RC32364 CPU" }, - { 0, MIPS_RC64470, -1, -1, CPU_ARCH_MIPSx, -1, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "IDT RC64474/RC64475 CPU" }, - - { 0, MIPS_R5400, -1, -1, CPU_ARCH_MIPSx, -1, - MIPS_NOT_SUPP | CPU_MIPS_R4K_MMU, "NEC VR5400 CPU" }, - { 0, MIPS_R5900, -1, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_NO_LLSC | CPU_MIPS_R4K_MMU, "Toshiba R5900 CPU" }, - - { 0, MIPS_TX4900, MIPS_REV_TX4927, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "Toshiba TX4927 CPU" }, - { 0, MIPS_TX4900, -1, -1, CPU_ARCH_MIPS3, 48, - CPU_MIPS_R4K_MMU | CPU_MIPS_DOUBLE_COUNT, - "Toshiba TX4900 CPU" }, - -#if 0 /* ID collisions : can we use a CU1 test or similar? */ - { 0, MIPS_R3SONY, -1, -1, CPU_ARCH_MIPS1, -1, - MIPS_NOT_SUPP, "SONY R3000 derivative" }, /* 0x21; crash R4700? */ - { 0, MIPS_R3NKK, -1, -1, CPU_ARCH_MIPS1, -1, - MIPS_NOT_SUPP, "NKK R3000 derivative" }, /* 0x23; crash R5000? */ -#endif - - { MIPS_PRID_CID_MTI, MIPS_4Kc, -1, -1, -1, 0, - MIPS32_FLAGS | CPU_MIPS_DOUBLE_COUNT, "4Kc" }, - { MIPS_PRID_CID_MTI, MIPS_4KEc, -1, -1, -1, 0, - MIPS32_FLAGS | CPU_MIPS_DOUBLE_COUNT, "4KEc" }, - { MIPS_PRID_CID_MTI, MIPS_4KSc, -1, -1, -1, 0, - MIPS32_FLAGS | CPU_MIPS_DOUBLE_COUNT, "4KSc" }, - { MIPS_PRID_CID_MTI, MIPS_5Kc, -1, -1, -1, 0, - MIPS64_FLAGS | CPU_MIPS_DOUBLE_COUNT, "5Kc" }, - { MIPS_PRID_CID_MTI, MIPS_20Kc, -1, -1, -1, 0, - MIPS64_FLAGS, "20Kc" }, - - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV1, -1, MIPS_AU1000, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1000 (Rev 1 core)" }, - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV2, -1, MIPS_AU1000, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1000 (Rev 2 core)" }, - - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV1, -1, MIPS_AU1500, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1500 (Rev 1 core)" }, - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV2, -1, MIPS_AU1500, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1500 (Rev 2 core)" }, - - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV1, -1, MIPS_AU1100, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1100 (Rev 1 core)" }, - { MIPS_PRID_CID_ALCHEMY, MIPS_AU_REV2, -1, MIPS_AU1100, -1, 0, - MIPS32_FLAGS | CPU_MIPS_NO_WAIT | CPU_MIPS_I_D_CACHE_COHERENT, - "Au1100 (Rev 2 core)" }, - - { 0, 0, 0, 0, 0, 0, - 0, NULL } -}; - -static const struct pridtab fputab[] = { - { 0, MIPS_SOFT, -1, 0, 0, 0, 0, "software emulated floating point" }, - { 0, MIPS_R2360, -1, 0, 0, 0, 0, "MIPS R2360 Floating Point Board" }, - { 0, MIPS_R2010, -1, 0, 0, 0, 0, "MIPS R2010 FPC" }, - { 0, MIPS_R3010, -1, 0, 0, 0, 0, "MIPS R3010 FPC" }, - { 0, MIPS_R6010, -1, 0, 0, 0, 0, "MIPS R6010 FPC" }, - { 0, MIPS_R4010, -1, 0, 0, 0, 0, "MIPS R4010 FPC" }, -}; - -/* - * Company ID's are not sparse (yet), this array is indexed directly - * by pridtab->cpu_cid. - */ -static const char *cidnames[] = { - "Prehistoric", - "MIPS", /* or "MIPS Technologies, Inc. */ - "Broadcom", /* or "Broadcom Corp." */ - "Alchemy", /* or "Alchemy Semiconductor" */ - "SiByte", /* or "Broadcom Corp. (SiByte)" */ - "SandCraft", -}; -#define ncidnames (sizeof(cidnames) / sizeof(cidnames[0])) - -static void -mips_vector_install(vm_offset_t addr, char *begin, char *end) -{ - size_t len, max; - - max = 0x80; - len = end - begin; - - if (len > max) - panic("Exception code too big for vector %lx\n", addr); - - if (len == max) - printf("Exception vector at %lx has no more free space\n", addr); - memcpy((void *)addr, begin, len); -} - -/* r4000 exception handler address and end */ -extern char ExceptionVector[], ExceptionVectorEnd[]; - -/* TLB miss handler address and end */ -extern char TLBMissVector[], TLBMissVectorEnd[]; -extern char XTLBMissVector[], XTLBMissVectorEnd[]; - -/* Cache error handler */ -extern char CacheVector[], CacheVectorEnd[]; - -/* - * Do all the stuff that locore normally does before calling main(), - * that is common to all mips-CPU NetBSD ports. - * - * The principal purpose of this function is to examine the - * variable cpu_id, into which the kernel locore start code - * writes the cpu ID register, and to then copy appropriate - * code into the CPU exception-vector entries and the jump tables - * used to hide the differences in cache and TLB handling in - * different MIPS CPUs. - * - * This should be the very first thing called by each port's - * init_main() function. - */ - -/* - * Initialize the hardware exception vectors, and the jump table used to - * call locore cache and TLB management functions, based on the kind - * of CPU the kernel is running on. - */ -static void -mips_vector_init(void) -{ - const struct pridtab *ct; - - mycpu = NULL; - for (ct = cputab; ct->cpu_name != NULL; ct++) { - if (MIPS_PRID_CID(cpu_id) != ct->cpu_cid || - MIPS_PRID_IMPL(cpu_id) != ct->cpu_pid) - continue; - if (ct->cpu_rev >= 0 && - MIPS_PRID_REV(cpu_id) != ct->cpu_rev) - continue; - if (ct->cpu_copts >= 0 && - MIPS_PRID_COPTS(cpu_id) != ct->cpu_copts) - continue; - - mycpu = ct; - cpu_arch = ct->cpu_isa; - mips_num_tlb_entries = ct->cpu_ntlb; - break; - } - - if (mycpu == NULL) - panic("CPU type (0x%x) not supported", cpu_id); - - if (MIPS_PRID_CID(cpu_id) != 0) { - /* MIPS32/MIPS64, use coprocessor 0 config registers */ - uint32_t cfg, cfg1; - - cfg = mips_rd_config(); - cfg1 = mipsNN_cp0_config1_read(); - - /* pick CPU type */ - switch (MIPSNN_GET(CFG_AT, cfg)) { - case MIPSNN_CFG_AT_MIPS32: - cpu_arch = CPU_ARCH_MIPS32; - break; - case MIPSNN_CFG_AT_MIPS64: - cpu_arch = CPU_ARCH_MIPS64; - break; - case MIPSNN_CFG_AT_MIPS64S: - default: - panic("MIPS32/64 architecture type %d not supported", - MIPSNN_GET(CFG_AT, cfg)); - } - - if (MIPSNN_GET(CFG_AR, cfg) != MIPSNN_CFG_AR_REV1) - printf("WARNING: MIPS32/64 arch revision != revision 1!\n"); - - /* figure out MMU type (and number of TLB entries) */ - switch (MIPSNN_GET(CFG_MT, cfg)) { - case MIPSNN_CFG_MT_TLB: - mips_num_tlb_entries = MIPSNN_CFG1_MS(cfg1); - break; - case MIPSNN_CFG_MT_NONE: - case MIPSNN_CFG_MT_BAT: - case MIPSNN_CFG_MT_FIXED: - default: - panic("MIPS32/64 MMU type %d not supported", - MIPSNN_GET(CFG_MT, cfg)); - } - } - - if (cpu_arch < 1) - panic("Unknown CPU ISA for CPU type 0x%x", cpu_id); - if (mips_num_tlb_entries < 1) - panic("Unknown number of TLBs for CPU type 0x%x", cpu_id); - - /* - * Check cpu-specific flags. - */ - mips_cpu_flags = mycpu->cpu_flags; - mips_has_r4k_mmu = mips_cpu_flags & CPU_MIPS_R4K_MMU; - mips_has_llsc = (mips_cpu_flags & CPU_MIPS_NO_LLSC) == 0; - -#ifdef __HAVE_MIPS_MACHDEP_CACHE_CONFIG - mips_machdep_cache_config(); -#endif - - /* - * Determine cache configuration and initialize our cache - * frobbing routine function pointers. - */ - mips_config_cache(); - - /* - * Now initialize our ISA-dependent function vector. - */ - switch (cpu_arch) { - case CPU_ARCH_MIPS3: - case CPU_ARCH_MIPS4: - case CPU_ARCH_MIPS64: - break; - default: - printf("cpu_arch 0x%x: not supported\n", cpu_arch); - cpu_halt(); - } - - tlb_invalidate_all(); - - /* - * Copy down exception vector code. - */ - - mips_vector_install(MIPS_UTLB_MISS_EXC_VEC, - TLBMissVector, TLBMissVectorEnd); - mips_vector_install(MIPS_XTLB_MISS_EXC_VEC, - XTLBMissVector, XTLBMissVectorEnd); - mips_vector_install(MIPS_CACHE_ERR_EXC_VEC, - CacheVector, CacheVectorEnd); - mips_vector_install(MIPS_GEN_EXC_VEC, - ExceptionVector, ExceptionVectorEnd); - /* XXX do a real interrupt vector for the mips32/64? */ - mips_vector_install(MIPS_INTR_EXC_VEC, - ExceptionVector, ExceptionVectorEnd); - - mips_icache_sync_all(); - mips_dcache_wbinv_all(); - - /* Clear BEV in SR so we start handling our own exceptions */ - mips_wr_status(mips_rd_status() & ~MIPS_SR_BEV); -} - -/* - * Identify product revision IDs of cpu and fpu. - */ -static void -cpu_identify(void) -{ - static const char * const waynames[] = { - "fully set-associative", /* 0 */ - "direct-mapped", /* 1 */ - "2-way set-associative", /* 2 */ - NULL, /* 3 */ - "4-way set-associative", /* 4 */ - }; -#define nwaynames (sizeof(waynames) / sizeof(waynames[0])) - static const char * const wtnames[] = { - "write-back", - "write-through", - }; - static const char * const label = "cpu0"; /* XXX */ - char *cpuname, *fpuname; - int i; - - cpuname = mycpu->cpu_name; - - fpuname = NULL; - for (i = 0; i < sizeof(fputab)/sizeof(fputab[0]); i++) { - if (MIPS_PRID_CID(fpu_id) == fputab[i].cpu_cid && - MIPS_PRID_IMPL(fpu_id) == fputab[i].cpu_pid) { - fpuname = fputab[i].cpu_name; - break; - } - } - if (fpuname == NULL && MIPS_PRID_IMPL(fpu_id) == MIPS_PRID_IMPL(cpu_id)) - fpuname = "built-in FPU"; - if (MIPS_PRID_IMPL(cpu_id) == MIPS_R4700) /* FPU PRid is 0x20 */ - fpuname = "built-in FPU"; - if (MIPS_PRID_IMPL(cpu_id) == MIPS_RC64470) /* FPU PRid is 0x21 */ - fpuname = "built-in FPU"; - - if (mycpu->cpu_cid != 0) { - if (mycpu->cpu_cid <= ncidnames) - printf("%s ", cidnames[mycpu->cpu_cid]); - else { - printf("Unknown Company ID - 0x%x", mycpu->cpu_cid); - printf("%s: ", label); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 15 09:50:15 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 984C516A4CF; Tue, 15 Jun 2004 09:50:15 +0000 (GMT) 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 6B20816A4CF for ; Tue, 15 Jun 2004 09:50:15 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6617C43D41 for ; Tue, 15 Jun 2004 09:50:15 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5F9nd2L009164 for ; Tue, 15 Jun 2004 09:49:39 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5F9ncpu009161 for perforce@freebsd.org; Tue, 15 Jun 2004 09:49:38 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 09:49:38 GMT Message-Id: <200406150949.i5F9ncpu009161@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 55001 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, 15 Jun 2004 09:50:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=55001 Change 55001 by jmallett@jmallett_oingo on 2004/06/15 09:48:44 LOVE MUMMY! Er, I mean, CURSE! Flush the cache in the right lock step with setting up exception vectors, otherwise on teh Indigo2, at least, I get badness with our exception vectors not being used. Quirky. Affected files ... .. //depot/projects/mips/sys/mips/mips/cpu.c#2 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/cpu.c#2 (text+ko) ==== @@ -163,9 +163,9 @@ mips_config_cache(); tlb_invalidate_all(); + mips_vector_init(); mips_icache_sync_all(); mips_dcache_wbinv_all(); - mips_vector_init(); } void From owner-p4-projects@FreeBSD.ORG Tue Jun 15 11:01:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3ABDD16A4D0; Tue, 15 Jun 2004 11:01:50 +0000 (GMT) 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 0CE1216A4CE for ; Tue, 15 Jun 2004 11:01:50 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0791F43D55 for ; Tue, 15 Jun 2004 11:01:50 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FB16xF024424 for ; Tue, 15 Jun 2004 11:01:06 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FB161l024421 for perforce@freebsd.org; Tue, 15 Jun 2004 11:01:06 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 11:01:06 GMT Message-Id: <200406151101.i5FB161l024421@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 55003 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, 15 Jun 2004 11:01:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=55003 Change 55003 by jmallett@jmallett_oingo on 2004/06/15 11:00:14 Grow back a VCED handler. Affected files ... .. //depot/projects/mips/sys/mips/mips/exception.S#29 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/exception.S#29 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/mips/exception.S#28 $ + * $P4: //depot/projects/mips/sys/mips/mips/exception.S#29 $ */ #include "opt_ddb.h" @@ -78,7 +78,7 @@ .dword GenericException /* Res (28) */ .dword GenericException /* Res (29) */ .dword GenericException /* Res (30) */ - .dword GenericException /* VCED */ + .dword VCED /* VCED */ .text .set noreorder @@ -224,6 +224,20 @@ VEND(XTLBMissVector) /* + * Handle a data-cache virtual coherency error. + */ +LEAF(VCED) + .set noat + dmfc0 k0, MIPS_COP_0_BAD_VADDR + dsrl k0, 4 + dsll k0, 4 + cache (CACHE_R4K_SD | CACHEOP_R4K_HIT_WB_INV), 0(k0) + cache (CACHE_R4K_D | CACHEOP_R4K_HIT_INV), 0(k0) + eret + .set at +END(VCED) + +/* * Restore registers from a trapframe pointed to in k1, returning to ra * that is passed in, and kept in k0. */ From owner-p4-projects@FreeBSD.ORG Tue Jun 15 11:01:52 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52FA216A4D0; Tue, 15 Jun 2004 11:01:52 +0000 (GMT) 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 2865516A4CE for ; Tue, 15 Jun 2004 11:01:52 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 22BCC43D31 for ; Tue, 15 Jun 2004 11:01:52 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FB177J024430 for ; Tue, 15 Jun 2004 11:01:07 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FB17Jx024427 for perforce@freebsd.org; Tue, 15 Jun 2004 11:01:07 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 11:01:07 GMT Message-Id: <200406151101.i5FB17Jx024427@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 55004 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, 15 Jun 2004 11:01:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=55004 Change 55004 by jmallett@jmallett_oingo on 2004/06/15 11:00:54 Add other PG_C attributes from MIPS R4000 user thingo. Affected files ... .. //depot/projects/mips/sys/mips/include/pte.h#23 edit Differences ... ==== //depot/projects/mips/sys/mips/include/pte.h#23 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/include/pte.h#22 $ + * $P4: //depot/projects/mips/sys/mips/include/pte.h#23 $ */ #ifndef _MACHINE_PTE_H_ @@ -108,6 +108,10 @@ */ #define PG_C(attr) ((attr & 0x07) << 3) #define PG_C_UNCACHED (PG_C(0x02)) +#define PG_C_CNC (PG_C(0x03)) +#define PG_C_CCE (PG_C(0x04)) +#define PG_C_CCEOW (PG_C(0x05)) +#define PG_C_CCUOW (PG_C(0x06)) #define PG_D 0x04 #define PG_V 0x02 #define PG_G 0x01 From owner-p4-projects@FreeBSD.ORG Tue Jun 15 11:03:27 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 093D316A4D0; Tue, 15 Jun 2004 11:03:27 +0000 (GMT) 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 BFC7416A4CE for ; Tue, 15 Jun 2004 11:03:26 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4F9243D64 for ; Tue, 15 Jun 2004 11:03:26 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FB29FU025579 for ; Tue, 15 Jun 2004 11:02:09 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FB29Xt025562 for perforce@freebsd.org; Tue, 15 Jun 2004 11:02:09 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 11:02:09 GMT Message-Id: <200406151102.i5FB29Xt025562@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 55005 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, 15 Jun 2004 11:03:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=55005 Change 55005 by jmallett@jmallett_oingo on 2004/06/15 11:02:02 Dole out cached addresses, add some cache writebacks in clever locations. Yay a TLB abstraction to hide most of this behind. Now I just have to hide the direct mapping stuff behind a TLB interface. This gets the Indigo2 (real) to run to mountroot> Affected files ... .. //depot/projects/mips/sys/mips/conf/INDY#13 edit .. //depot/projects/mips/sys/mips/mips/pmap.c#38 edit .. //depot/projects/mips/sys/mips/mips/tlb.c#25 edit Differences ... ==== //depot/projects/mips/sys/mips/conf/INDY#13 (text+ko) ==== @@ -12,7 +12,7 @@ makeoptions MIPSOPTS=-mips3 #Build for a MIPS III -makeoptions TEXTADDR=0xA8069000 #Indy +makeoptions TEXTADDR=0x88069000 #Indy # Platform support platform sgimips #SGI MIPS systems. ==== //depot/projects/mips/sys/mips/mips/pmap.c#38 (text+ko) ==== @@ -247,7 +247,7 @@ pa = phys_avail[0]; phys_avail[0] += size; - va = MIPS_PHYS_TO_KSEG1(pa); + va = MIPS_PHYS_TO_KSEG0(pa); bzero((caddr_t) va, size); return va; } @@ -330,7 +330,7 @@ break; } - va = (void *)MIPS_PHYS_TO_KSEG1(m->phys_addr); + va = (void *)MIPS_PHYS_TO_KSEG0(m->phys_addr); if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(va, PAGE_SIZE); return (va); @@ -341,7 +341,7 @@ { vm_page_t m; - m = PHYS_TO_VM_PAGE(MIPS_KSEG1_TO_PHYS((vm_offset_t)mem)); + m = PHYS_TO_VM_PAGE(MIPS_KSEG0_TO_PHYS((vm_offset_t)mem)); vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); @@ -519,6 +519,8 @@ if (va >= MIPS_KSEG1_START && va <= MIPS_KSEG1_END) pa = MIPS_KSEG1_TO_PHYS(va); + else if (va >= MIPS_KSEG0_START && va <= MIPS_KSEG0_END) + pa = MIPS_KSEG0_TO_PHYS(va); else pa = pmap_extract(kernel_pmap, va); return pa; @@ -646,7 +648,7 @@ #if 0 /* XXX notyet, need pmap_extract etc., to love us. */ return MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_UC, start); #endif - return MIPS_PHYS_TO_KSEG1(start); + return MIPS_PHYS_TO_KSEG0(start); } void @@ -696,7 +698,7 @@ vm_page_unlock_queues(); VM_OBJECT_UNLOCK(pmap->pm_pteobj); - pmap->pm_lev1 = (pt_entry_t*) MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(lev1pg)); + pmap->pm_lev1 = (pt_entry_t*) MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(lev1pg)); /* install self-referential address mapping entry (not PG_ASM) */ pmap->pm_lev1[PTLEV1I] = pmap_phys_to_pte(VM_PAGE_TO_PHYS(lev1pg)) @@ -1251,7 +1253,7 @@ void pmap_zero_page(vm_page_t m) { - vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); bzero((caddr_t) va, PAGE_SIZE); } @@ -1267,7 +1269,7 @@ void pmap_zero_page_area(vm_page_t m, int off, int size) { - vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); bzero((char *)(caddr_t)va + off, size); } @@ -1281,7 +1283,7 @@ void pmap_zero_page_idle(vm_page_t m) { - vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); bzero((caddr_t) va, PAGE_SIZE); } @@ -1295,8 +1297,8 @@ void pmap_copy_page(vm_page_t msrc, vm_page_t mdst) { - vm_offset_t src = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(msrc)); - vm_offset_t dst = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(mdst)); + vm_offset_t src = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(msrc)); + vm_offset_t dst = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(mdst)); bcopy((caddr_t) src, (caddr_t) dst, PAGE_SIZE); } ==== //depot/projects/mips/sys/mips/mips/tlb.c#25 (text+ko) ==== @@ -52,6 +52,7 @@ #include +#include #include #include #include @@ -125,12 +126,14 @@ pte = tlb_pte_find(pmap->pm_lev1, va); if (pte_valid(pte)) tlb_invalidate_page(va); + else + mips_dcache_wbinv_range_index(va, PAGE_SIZE); if ((bits & PG_V) == 0) panic("pmap %p entering invalid mapping for va %lx to pa %lx [%lx]", pmap, (u_long)va, (u_long)pa, (u_long)bits); *pte &= PG_G; *pte |= MIPS_PA_TO_PFN(pa) | bits; - *pte |= PG_C_UNCACHED; + *pte |= PG_C_CNC; /* Cacheable noncoherent. */ } void @@ -220,6 +223,7 @@ i = mips_rd_index(); if (i >= 0) tlb_invalidate_one(i); + mips_dcache_wbinv_range_index(va, PAGE_SIZE); } /* From owner-p4-projects@FreeBSD.ORG Tue Jun 15 11:07:56 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A53316A4D0; Tue, 15 Jun 2004 11:07:56 +0000 (GMT) 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 E852E16A4CE for ; Tue, 15 Jun 2004 11:07:55 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E424D43D5E for ; Tue, 15 Jun 2004 11:07:55 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FB6FR9027456 for ; Tue, 15 Jun 2004 11:06:15 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FB6FDc027453 for perforce@freebsd.org; Tue, 15 Jun 2004 11:06:15 GMT (envelope-from dfr@freebsd.org) Date: Tue, 15 Jun 2004 11:06:15 GMT Message-Id: <200406151106.i5FB6FDc027453@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 55007 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, 15 Jun 2004 11:07:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=55007 Change 55007 by dfr@dfr_home on 2004/06/15 11:05:59 Add weak libc stubs for _rtld_allocate_tls and _rtld_free_tls. Affected files ... .. //depot/projects/kse/lib/libc/gen/tls.c#2 edit Differences ... ==== //depot/projects/kse/lib/libc/gen/tls.c#2 (text+ko) ==== @@ -32,6 +32,8 @@ * runtime from ld-elf.so.1. */ +#include + #ifdef __i386__ extern void *___tls_get_addr(void *ti) __attribute__((__regparm__(1))); @@ -45,8 +47,22 @@ #endif +#pragma weak __tls_get_addr void * __tls_get_addr() { return (0); } + +#pragma weak _rtld_allocate_tls +void * +_rtld_allocate_tls(size_t tcbsize, size_t tcbalign) +{ + return (0); +} + +#pragma weak _rtld_free_tls +void +_rtld_free_tls(void *tcb, size_t tcbsize, size_t tcbalign) +{ +} From owner-p4-projects@FreeBSD.ORG Tue Jun 15 12:04:38 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 496E416A4D0; Tue, 15 Jun 2004 12:04:38 +0000 (GMT) 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 05B9916A4CE for ; Tue, 15 Jun 2004 12:04:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E1BFE43D41 for ; Tue, 15 Jun 2004 12:04:37 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FC4Tp9040867 for ; Tue, 15 Jun 2004 12:04:29 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FC4Tvk040864 for perforce@freebsd.org; Tue, 15 Jun 2004 12:04:29 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 12:04:29 GMT Message-Id: <200406151204.i5FC4Tvk040864@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 55012 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, 15 Jun 2004 12:04:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=55012 Change 55012 by jmallett@jmallett_oingo on 2004/06/15 12:04:10 Attach cpu as a device, attach mainbus off that, make mainbus a property of the platform, kill platform_configure() in favor of something that goes through newbus. This is in preparation of being able to hang the main interrupt stuff and clock off the cpu. Affected files ... .. //depot/projects/mips/sys/conf/files.mips#37 edit .. //depot/projects/mips/sys/mips/include/hwfunc.h#5 edit .. //depot/projects/mips/sys/mips/mips/autoconf.c#5 edit .. //depot/projects/mips/sys/mips/mips/cpu.c#3 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#45 edit .. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#9 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#35 edit .. //depot/projects/mips/sys/mips/sgimips/mainbus.c#1 add Differences ... ==== //depot/projects/mips/sys/conf/files.mips#37 (text+ko) ==== @@ -47,6 +47,7 @@ geom/geom_fx.c optional sgimips mips/sgimips/clock.c optional sgimips mips/sgimips/machdep_sgimips.c optional sgimips +mips/sgimips/mainbus.c optional sgimips mips/sbmips/clock.c optional sbmips mips/sbmips/machdep_sbmips.c optional sbmips ==== //depot/projects/mips/sys/mips/include/hwfunc.h#5 (text+ko) ==== @@ -34,7 +34,6 @@ * Hooks downward into hardware functionality. */ -void platform_configure(void); void platform_halt(void); void platform_intr(struct trapframe *); void platform_reset(void); ==== //depot/projects/mips/sys/mips/mips/autoconf.c#5 (text+ko) ==== @@ -38,7 +38,13 @@ static void configure(void *arg) { - platform_configure(); + device_t cpu; + + cpu = device_add_child(root_bus, "cpu", 0); /* XXX mp_ncpus */ + if (cpu == NULL) + panic("cpu didn't attach"); + device_add_child(cpu, "mainbus", 0); + root_bus_configure(); /* Enable interrupts. */ ==== //depot/projects/mips/sys/mips/mips/cpu.c#3 (text+ko) ==== @@ -184,3 +184,43 @@ printf("\n"); printf("XXX should print cache identification here\n"); } + +static devclass_t cpu_devclass; + +/* + * Device methods + */ +static int cpu_probe(device_t); + +static device_method_t cpu_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, cpu_probe), + DEVMETHOD(device_attach, bus_generic_attach), + DEVMETHOD(device_detach, bus_generic_detach), + DEVMETHOD(device_shutdown, bus_generic_shutdown), + + /* XXXJM TODO DONGS ETC. Allocate hard/soft intrs off this. */ + /* Bus interface */ + DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), + + { 0, 0 } +}; + +static driver_t cpu_driver = { + "cpu", cpu_methods, 1 +}; + +static int +cpu_probe(device_t dev) +{ + struct wtf wtf; + + if (device_get_unit(dev) != 0) + panic("can't attach more cpus"); + + mips_wtf(&wtf); + device_set_desc(dev, wtf.wtf_type); + return (0); +} +DRIVER_MODULE(cpu, root, cpu_driver, cpu_devclass, 0, 0); ==== //depot/projects/mips/sys/mips/mips/machdep.c#45 (text+ko) ==== ==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#9 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#9 $ */ #include @@ -205,4 +205,4 @@ IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0); } -DRIVER_MODULE(imc, root, imc_driver, imc_devclass, 0, 0); +DRIVER_MODULE(imc, mainbus, imc_driver, imc_devclass, 0, 0); ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#35 (text+ko) ==== @@ -247,20 +247,6 @@ KASSERT(i == 0, ("all interrupts handled")); } -void -platform_configure(void) -{ - switch (mach_type) { - case MACH_SGI_IP22: - device_add_child(root_bus, "imc", 0); - device_add_child(root_bus, "arcs_disk", 0); - break; - default: - panic("cannot autoconfigure type %d", mach_type); - break; - } -} - /* * XXX Maybe return the state of the watchdog in enter, and pass it to * exit? Like spl(). From owner-p4-projects@FreeBSD.ORG Tue Jun 15 12:38:33 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CCBBF16A4D0; Tue, 15 Jun 2004 12:38:32 +0000 (GMT) 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 80C7316A4CE for ; Tue, 15 Jun 2004 12:38:32 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 67A1743D53 for ; Tue, 15 Jun 2004 12:38:32 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FCcDAi047013 for ; Tue, 15 Jun 2004 12:38:13 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FCcCF3047010 for perforce@freebsd.org; Tue, 15 Jun 2004 12:38:12 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 12:38:12 GMT Message-Id: <200406151238.i5FCcCF3047010@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 55016 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, 15 Jun 2004 12:38:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=55016 Change 55016 by jmallett@jmallett_oingo on 2004/06/15 12:38:03 Kill locore_mips3.S. Just gut the MIPS32/MIPS64 functions for now, as I'm purposely rolling back to something simpler, and again, this was part of accomodating NetBSD before I understood a lot of the extremities here. Replace setjmp/longjmp with versions copied from my savectx/cpu_throw in swtch.S. Tested the latter with ddb and a simple "call yourmom" which correctly returned to the db> prompt rather than panicking :) Affected files ... .. //depot/projects/mips/sys/conf/files.mips#38 edit .. //depot/projects/mips/sys/mips/include/locore.h#14 edit .. //depot/projects/mips/sys/mips/mips/db_interface.c#16 edit .. //depot/projects/mips/sys/mips/mips/locore_mips3.S#15 delete .. //depot/projects/mips/sys/mips/mips/support.S#11 edit Differences ... ==== //depot/projects/mips/sys/conf/files.mips#38 (text+ko) ==== @@ -19,7 +19,6 @@ mips/mips/exception.S standard mips/mips/in_cksum.c optional inet mips/mips/locore.S standard no-obj -mips/mips/locore_mips3.S standard mips/mips/machdep.c standard mips/mips/pmap.c standard mips/mips/sig_machdep.c standard ==== //depot/projects/mips/sys/mips/include/locore.h#14 (text+ko) ==== @@ -31,11 +31,6 @@ struct tlb; -uint32_t mipsNN_cp0_config1_read(void); -void mipsNN_cp0_config1_write(uint32_t); -uint32_t mipsNN_cp0_config2_read(void); -uint32_t mipsNN_cp0_config3_read(void); - /* * CPU identification, from PRID register. */ ==== //depot/projects/mips/sys/mips/mips/db_interface.c#16 (text+ko) ==== @@ -352,8 +352,6 @@ DB_COMMAND(cp0, db_cp0dump_cmd) { - uint32_t val; - SHOW32(MIPS_COP_0_TLB_INDEX, "index"); SHOW32(MIPS_COP_0_TLB_RANDOM, "random"); @@ -381,9 +379,6 @@ SHOW32(MIPS_COP_0_PRID, "prid"); SHOW32(MIPS_COP_0_CONFIG, "config"); - val = mipsNN_cp0_config1_read(); - printf(" config1: %#x\n", val); - SHOW64(MIPS_COP_0_LLADDR, "lladdr"); SHOW64(MIPS_COP_0_WATCH_LO, "watchlo"); ==== //depot/projects/mips/sys/mips/mips/support.S#11 (text+ko) ==== @@ -26,9 +26,13 @@ * $FreeBSD$ */ +#include "opt_ddb.h" + #include #include +#include "assym.s" + /* * If an unaligned access occurs, someone is doing something wrong, don't * fixup here, let things happen elsewhere, if at all. We shouldn't suck. @@ -281,3 +285,53 @@ jr ra nop END(copyinstr) + +#ifdef DDB + +/* + * setjmp(9) + * int setjmp(jmp_buf) + */ +ENTRY(setjmp) + mfc0 t0, MIPS_COP_0_STATUS + sd s0, SF_REG_S0(a0) + sd s1, SF_REG_S1(a0) + sd s2, SF_REG_S2(a0) + sd s3, SF_REG_S3(a0) + sd s4, SF_REG_S4(a0) + sd s5, SF_REG_S5(a0) + sd s6, SF_REG_S6(a0) + sd s7, SF_REG_S7(a0) + sd s8, SF_REG_S8(a0) + sd sp, SF_REG_SP(a0) + sd t0, SF_REG_SR(a0) + sd ra, SF_REG_RA(a0) + li v0, 0 + jr ra + nop +END(setjmp) + +/* + * longjmp(9) + * void longjmp(jmp_buf, retval) + */ +ENTRY(longjmp) + ld s0, SF_REG_S0(a0) + ld s1, SF_REG_S1(a0) + ld s2, SF_REG_S2(a0) + ld s3, SF_REG_S3(a0) + ld s4, SF_REG_S4(a0) + ld s5, SF_REG_S5(a0) + ld s6, SF_REG_S6(a0) + ld s7, SF_REG_S7(a0) + ld s8, SF_REG_S8(a0) + ld sp, SF_REG_SP(a0) + ld ra, SF_REG_RA(a0) + ld t0, SF_REG_SR(a0) + mtc0 t0, MIPS_COP_0_STATUS + move v0, a1 + jr ra + nop +END(longjmp) + +#endif /* DDB */ From owner-p4-projects@FreeBSD.ORG Tue Jun 15 12:49:28 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E5B1E16A4D0; Tue, 15 Jun 2004 12:49:27 +0000 (GMT) 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 A807316A4CE for ; Tue, 15 Jun 2004 12:49:27 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A2A1243D2F for ; Tue, 15 Jun 2004 12:49:27 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FCnR32055261 for ; Tue, 15 Jun 2004 12:49:27 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FCnRck055258 for perforce@freebsd.org; Tue, 15 Jun 2004 12:49:27 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 12:49:27 GMT Message-Id: <200406151249.i5FCnRck055258@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 55017 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, 15 Jun 2004 12:49:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=55017 Change 55017 by jmallett@jmallett_oingo on 2004/06/15 12:49:25 Catch up files without 2004 copyright. Affected files ... .. //depot/projects/mips/sys/mips/include/atomic.h#19 edit .. //depot/projects/mips/sys/mips/include/clock.h#2 edit .. //depot/projects/mips/sys/mips/include/elf.h#6 edit .. //depot/projects/mips/sys/mips/include/exec.h#2 edit .. //depot/projects/mips/sys/mips/include/frame.h#5 edit .. //depot/projects/mips/sys/mips/include/hwfunc.h#6 edit .. //depot/projects/mips/sys/mips/include/md_var.h#11 edit .. //depot/projects/mips/sys/mips/include/mutex.h#2 edit .. //depot/projects/mips/sys/mips/include/pcb.h#7 edit .. //depot/projects/mips/sys/mips/include/pcpu.h#5 edit .. //depot/projects/mips/sys/mips/include/pmap.h#16 edit .. //depot/projects/mips/sys/mips/include/proc.h#5 edit .. //depot/projects/mips/sys/mips/include/ptrace.h#2 edit .. //depot/projects/mips/sys/mips/include/reg.h#8 edit .. //depot/projects/mips/sys/mips/include/smp.h#2 edit .. //depot/projects/mips/sys/mips/mips/autoconf.c#6 edit .. //depot/projects/mips/sys/mips/mips/db_hwwatch.c#2 edit .. //depot/projects/mips/sys/mips/mips/elf_machdep.c#4 edit .. //depot/projects/mips/sys/mips/mips/genassym.c#13 edit .. //depot/projects/mips/sys/mips/mips/locore.S#15 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#46 edit .. //depot/projects/mips/sys/mips/mips/sig_machdep.c#3 edit .. //depot/projects/mips/sys/mips/mips/support.S#12 edit .. //depot/projects/mips/sys/mips/mips/sys_machdep.c#2 edit .. //depot/projects/mips/sys/mips/mips/syscall.c#3 edit .. //depot/projects/mips/sys/mips/mips/tlb.c#26 edit .. //depot/projects/mips/sys/mips/mips/trap.c#24 edit .. //depot/projects/mips/sys/mips/mips/vm_machdep.c#19 edit .. //depot/projects/mips/sys/mips/sbmips/clock.c#2 edit .. //depot/projects/mips/sys/mips/sgimips/clock.c#10 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#36 edit .. //depot/projects/mips/sys/mips/sgimips/models.h#3 edit .. //depot/projects/mips/sys/mips/sgimips/param.h#8 edit .. //depot/projects/mips/sys/mips/sgimips/vmparam.h#3 edit Differences ... ==== //depot/projects/mips/sys/mips/include/atomic.h#19 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett. All rights reserved. + * Copyright (c) 2002-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/clock.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/elf.h#6 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/exec.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/frame.h#5 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett. All rights reserved. + * Copyright (c) 2002-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/hwfunc.h#6 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/md_var.h#11 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/mutex.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett. All rights reserved. + * Copyright (c) 2002-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/pcb.h#7 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/pcpu.h#5 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett + * Copyright (c) 2002-2004 Juli Mallett * Copyright (c) 1999 Luoqi Chen * Copyright (c) Peter Wemm * All rights reserved. ==== //depot/projects/mips/sys/mips/include/pmap.h#16 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett + * Copyright (c) 2002-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/include/proc.h#5 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett + * Copyright (c) 2002-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/include/ptrace.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/reg.h#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/include/smp.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/autoconf.c#6 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/db_hwwatch.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/elf_machdep.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/genassym.c#13 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett. All rights reserved. + * Copyright (c) 2002-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/locore.S#15 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett + * Copyright (c) 2003-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/mips/machdep.c#46 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett + * Copyright (c) 2002-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/mips/sig_machdep.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/support.S#12 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett + * Copyright (c) 2003-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/mips/sys_machdep.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/syscall.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/tlb.c#26 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/trap.c#24 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/mips/vm_machdep.c#19 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett + * Copyright (c) 2003-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/sbmips/clock.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/sgimips/clock.c#10 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#36 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Juli Mallett + * Copyright (c) 2002-2004 Juli Mallett * All rights reserved. * * Redistribution and use in source and binary forms, with or without ==== //depot/projects/mips/sys/mips/sgimips/models.h#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/sgimips/param.h#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions ==== //depot/projects/mips/sys/mips/sgimips/vmparam.h#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Juli Mallett. All rights reserved. + * Copyright (c) 2003-2004 Juli Mallett. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-p4-projects@FreeBSD.ORG Tue Jun 15 13:11:34 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 46AB516A4D0; Tue, 15 Jun 2004 13:11:34 +0000 (GMT) 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 0E50C16A4CE for ; Tue, 15 Jun 2004 13:11:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0775C43D55 for ; Tue, 15 Jun 2004 13:11:34 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FDB7np061005 for ; Tue, 15 Jun 2004 13:11:07 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FDAtYP060333 for perforce@freebsd.org; Tue, 15 Jun 2004 13:10:55 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 13:10:55 GMT Message-Id: <200406151310.i5FDAtYP060333@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 55019 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, 15 Jun 2004 13:11:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=55019 Change 55019 by jmallett@jmallett_oingo on 2004/06/15 13:10:21 IFC. Affected files ... .. //depot/projects/mips/UPDATING#20 integrate .. //depot/projects/mips/bin/ls/ls.c#11 integrate .. //depot/projects/mips/bin/ls/print.c#12 integrate .. //depot/projects/mips/bin/setfacl/Makefile#2 integrate .. //depot/projects/mips/contrib/cvs/BUGS#3 integrate .. //depot/projects/mips/contrib/cvs/ChangeLog#5 integrate .. //depot/projects/mips/contrib/cvs/FREEBSD-Xlist#1 branch .. //depot/projects/mips/contrib/cvs/FREEBSD-upgrade#2 integrate .. //depot/projects/mips/contrib/cvs/HACKING#2 integrate .. //depot/projects/mips/contrib/cvs/INSTALL#5 integrate .. //depot/projects/mips/contrib/cvs/Makefile.am#4 integrate .. //depot/projects/mips/contrib/cvs/Makefile.in#4 integrate .. //depot/projects/mips/contrib/cvs/NEWS#5 integrate .. //depot/projects/mips/contrib/cvs/acinclude.m4#4 integrate .. //depot/projects/mips/contrib/cvs/aclocal.m4#4 integrate .. //depot/projects/mips/contrib/cvs/config.h.in#5 integrate .. //depot/projects/mips/contrib/cvs/configure#5 integrate .. //depot/projects/mips/contrib/cvs/configure.in#5 integrate .. //depot/projects/mips/contrib/cvs/diff/ChangeLog#4 integrate .. //depot/projects/mips/contrib/cvs/diff/Makefile.am#2 integrate .. //depot/projects/mips/contrib/cvs/diff/Makefile.in#4 integrate .. //depot/projects/mips/contrib/cvs/doc/ChangeLog#5 integrate .. //depot/projects/mips/contrib/cvs/doc/Makefile.am#3 integrate .. //depot/projects/mips/contrib/cvs/doc/Makefile.in#4 integrate .. //depot/projects/mips/contrib/cvs/doc/cvs.1#1 branch .. //depot/projects/mips/contrib/cvs/doc/cvs.man.footer#1 branch .. //depot/projects/mips/contrib/cvs/doc/cvs.man.header#1 branch .. //depot/projects/mips/contrib/cvs/doc/cvs.texinfo#4 integrate .. //depot/projects/mips/contrib/cvs/doc/mkman.in#1 branch .. //depot/projects/mips/contrib/cvs/doc/stamp-1#5 integrate .. //depot/projects/mips/contrib/cvs/doc/stamp-vti#5 integrate .. //depot/projects/mips/contrib/cvs/doc/version-client.texi#5 integrate .. //depot/projects/mips/contrib/cvs/doc/version.texi#5 integrate .. //depot/projects/mips/contrib/cvs/lib/ChangeLog#5 integrate .. //depot/projects/mips/contrib/cvs/lib/Makefile.am#4 integrate .. //depot/projects/mips/contrib/cvs/lib/Makefile.in#4 integrate .. //depot/projects/mips/contrib/cvs/lib/system.h#4 integrate .. //depot/projects/mips/contrib/cvs/lib/xsize.h#1 branch .. //depot/projects/mips/contrib/cvs/man/ChangeLog#4 integrate .. //depot/projects/mips/contrib/cvs/man/Makefile.am#3 integrate .. //depot/projects/mips/contrib/cvs/man/Makefile.in#4 integrate .. //depot/projects/mips/contrib/cvs/src/ChangeLog#5 integrate .. //depot/projects/mips/contrib/cvs/src/add.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/client.c#5 integrate .. //depot/projects/mips/contrib/cvs/src/commit.c#5 integrate .. //depot/projects/mips/contrib/cvs/src/cvs.h#5 integrate .. //depot/projects/mips/contrib/cvs/src/filesubr.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/history.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/ignore.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/log.c#5 integrate .. //depot/projects/mips/contrib/cvs/src/sanity.sh#5 integrate .. //depot/projects/mips/contrib/cvs/src/server.c#6 integrate .. //depot/projects/mips/contrib/cvs/src/subr.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/update.c#5 integrate .. //depot/projects/mips/contrib/cvs/src/vers_ts.c#4 integrate .. //depot/projects/mips/contrib/cvs/src/wrapper.c#4 integrate .. //depot/projects/mips/contrib/groff/doc/meintro.me#2 integrate .. //depot/projects/mips/contrib/groff/doc/meref.me#2 integrate .. //depot/projects/mips/etc/etc.arm/ttys#1 branch .. //depot/projects/mips/etc/mtree/BSD.include.dist#13 integrate .. //depot/projects/mips/etc/rc.d/preseedrandom#3 integrate .. //depot/projects/mips/games/fortune/datfiles/fortunes2-o#6 integrate .. //depot/projects/mips/gnu/usr.bin/Makefile#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/Makefile#9 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/kvm-fbsd-alpha.h#1 branch .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/kvm-fbsd-i386.h#1 branch .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/kvm-fbsd-sparc64.h#1 branch .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/kvm-fbsd.c#7 integrate .. //depot/projects/mips/gnu/usr.bin/cc/cc_tools/Makefile#11 integrate .. //depot/projects/mips/gnu/usr.bin/cc/cc_tools/freebsd64-fix.h#1 branch .. //depot/projects/mips/include/Makefile#21 integrate .. //depot/projects/mips/lib/libarchive/archive_read_extract.c#4 integrate .. //depot/projects/mips/lib/libc/gen/fts.c#4 integrate .. //depot/projects/mips/lib/libc/gmon/moncontrol.3#3 integrate .. //depot/projects/mips/lib/libc/net/inet.3#2 integrate .. //depot/projects/mips/lib/libc/stdio/fvwrite.c#3 integrate .. //depot/projects/mips/lib/libc/stdio/local.h#6 integrate .. //depot/projects/mips/lib/libc/stdio/vfprintf.c#10 integrate .. //depot/projects/mips/lib/libc/stdio/vfwprintf.c#12 integrate .. //depot/projects/mips/lib/libc/stdio/wbuf.c#2 integrate .. //depot/projects/mips/lib/libc/stdio/wsetup.c#2 integrate .. //depot/projects/mips/lib/libc/stdtime/asctime.c#3 integrate .. //depot/projects/mips/lib/libc/stdtime/difftime.c#3 integrate .. //depot/projects/mips/lib/libc/stdtime/localtime.c#4 integrate .. //depot/projects/mips/lib/libc/stdtime/private.h#2 integrate .. //depot/projects/mips/lib/libc/stdtime/strftime.c#2 integrate .. //depot/projects/mips/lib/libc/sys/getrlimit.2#3 integrate .. //depot/projects/mips/lib/libc/sys/read.2#5 integrate .. //depot/projects/mips/lib/libkvm/kvm.c#3 integrate .. //depot/projects/mips/lib/libpthread/thread/thr_create.c#8 integrate .. //depot/projects/mips/lib/libpthread/thread/thr_private.h#12 integrate .. //depot/projects/mips/lib/libpthread/thread/thr_sig.c#8 integrate .. //depot/projects/mips/lib/libpthread/thread/thr_sigsuspend.c#6 integrate .. //depot/projects/mips/lib/libradius/radlib.c#3 integrate .. //depot/projects/mips/lib/libvgl/main.c#2 integrate .. //depot/projects/mips/lib/msun/amd64/fenv.c#2 integrate .. //depot/projects/mips/lib/msun/ia64/fenv.c#2 integrate .. //depot/projects/mips/lib/msun/man/ieee_test.3#2 integrate .. //depot/projects/mips/lib/msun/src/math.h#13 integrate .. //depot/projects/mips/lib/msun/src/s_rintf.c#2 integrate .. //depot/projects/mips/libexec/ftpd/ftpd.c#14 integrate .. //depot/projects/mips/libexec/talkd/talkd.c#4 integrate .. //depot/projects/mips/release/Makefile#26 integrate .. //depot/projects/mips/release/doc/en_US.ISO8859-1/installation/common/artheader.sgml#3 integrate .. //depot/projects/mips/sbin/fdisk/fdisk.c#8 integrate .. //depot/projects/mips/sbin/gvinum/Makefile#1 branch .. //depot/projects/mips/sbin/gvinum/gvinum.c#1 branch .. //depot/projects/mips/sbin/gvinum/gvinum.h#1 branch .. //depot/projects/mips/sbin/ifconfig/ifconfig.8#12 integrate .. //depot/projects/mips/sbin/ipfw/ipfw.8#14 integrate .. //depot/projects/mips/sbin/ipfw/ipfw2.c#12 integrate .. //depot/projects/mips/sbin/md5/Makefile#3 integrate .. //depot/projects/mips/sbin/md5/md5.1#4 integrate .. //depot/projects/mips/sbin/md5/md5.c#6 integrate .. //depot/projects/mips/sbin/routed/table.c#5 integrate .. //depot/projects/mips/sbin/sunlabel/sunlabel.c#5 integrate .. //depot/projects/mips/share/examples/kld/cdev/module/cdev.c#2 integrate .. //depot/projects/mips/share/man/man4/Makefile#27 integrate .. //depot/projects/mips/share/man/man4/bge.4#7 integrate .. //depot/projects/mips/share/man/man4/ciss.4#5 integrate .. //depot/projects/mips/share/man/man4/cue.4#5 integrate .. //depot/projects/mips/share/man/man4/dc.4#6 integrate .. //depot/projects/mips/share/man/man4/fwip.4#1 branch .. //depot/projects/mips/share/man/man4/gx.4#4 integrate .. //depot/projects/mips/share/man/man4/ip.4#8 integrate .. //depot/projects/mips/share/man/man4/kue.4#5 integrate .. //depot/projects/mips/share/man/man4/lge.4#3 integrate .. //depot/projects/mips/share/man/man4/ng_rfc1490.4#3 integrate .. //depot/projects/mips/share/man/man4/nge.4#3 integrate .. //depot/projects/mips/share/man/man4/uftdi.4#2 integrate .. //depot/projects/mips/share/man/man7/hier.7#10 integrate .. //depot/projects/mips/share/man/man9/ifnet.9#9 integrate .. //depot/projects/mips/share/man/man9/sema.9#2 integrate .. //depot/projects/mips/share/man/man9/style.9#10 integrate .. //depot/projects/mips/share/misc/iso3166#4 integrate .. //depot/projects/mips/share/misc/pci_vendors#6 integrate .. //depot/projects/mips/sys/alpha/alpha/machdep.c#18 integrate .. //depot/projects/mips/sys/alpha/alpha/pmap.c#14 integrate .. //depot/projects/mips/sys/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/mips/sys/alpha/include/pc/bios.h#2 integrate .. //depot/projects/mips/sys/amd64/acpica/madt.c#4 integrate .. //depot/projects/mips/sys/amd64/amd64/machdep.c#9 integrate .. //depot/projects/mips/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/mips/sys/amd64/conf/GENERIC#8 integrate .. //depot/projects/mips/sys/amd64/include/asm.h#4 integrate .. //depot/projects/mips/sys/amd64/include/md_var.h#8 integrate .. //depot/projects/mips/sys/amd64/include/pmap.h#7 integrate .. //depot/projects/mips/sys/amd64/include/profile.h#5 integrate .. //depot/projects/mips/sys/boot/i386/boot0/boot0.S#2 integrate .. //depot/projects/mips/sys/compat/linux/linux_ioctl.c#11 integrate .. //depot/projects/mips/sys/compat/linux/linux_ioctl.h#5 integrate .. //depot/projects/mips/sys/compat/linux/linux_misc.c#13 integrate .. //depot/projects/mips/sys/compat/linux/linux_uid16.c#4 integrate .. //depot/projects/mips/sys/compat/svr4/svr4_stream.c#7 integrate .. //depot/projects/mips/sys/conf/NOTES#28 integrate .. //depot/projects/mips/sys/conf/files#32 integrate .. //depot/projects/mips/sys/conf/files.alpha#12 integrate .. //depot/projects/mips/sys/conf/files.sparc64#14 integrate .. //depot/projects/mips/sys/conf/kern.pre.mk#15 integrate .. //depot/projects/mips/sys/conf/kmod.mk#16 integrate .. //depot/projects/mips/sys/conf/options#27 integrate .. //depot/projects/mips/sys/contrib/altq/altq/altq.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/mips/sys/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/mips/sys/contrib/ipfilter/netinet/ip_compat.h#4 integrate .. //depot/projects/mips/sys/contrib/pf/net/if_pflog.c#5 integrate .. //depot/projects/mips/sys/contrib/pf/net/if_pfsync.c#5 integrate .. //depot/projects/mips/sys/contrib/pf/net/pf.c#4 integrate .. //depot/projects/mips/sys/contrib/pf/net/pf_ioctl.c#5 integrate .. //depot/projects/mips/sys/contrib/pf/net/pfvar.h#3 integrate .. //depot/projects/mips/sys/crypto/des/des_ecb.c#2 integrate .. //depot/projects/mips/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/mips/sys/crypto/des/des_setkey.c#2 integrate .. //depot/projects/mips/sys/dev/aac/aac_debug.c#7 integrate .. //depot/projects/mips/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_acad.c#7 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_button.c#5 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_cmbat.c#7 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_ec.c#10 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_isab.c#3 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_lid.c#6 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_pci_link.c#10 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_pcib_acpi.c#7 integrate .. //depot/projects/mips/sys/dev/acpica/acpi_resource.c#6 integrate .. //depot/projects/mips/sys/dev/acpica/acpivar.h#14 integrate .. //depot/projects/mips/sys/dev/ata/ata-all.c#22 integrate .. //depot/projects/mips/sys/dev/ata/ata-chipset.c#16 integrate .. //depot/projects/mips/sys/dev/ata/ata-lowlevel.c#7 integrate .. //depot/projects/mips/sys/dev/ata/ata-pci.c#15 integrate .. //depot/projects/mips/sys/dev/ata/ata-pci.h#14 integrate .. //depot/projects/mips/sys/dev/awi/awi.c#10 integrate .. //depot/projects/mips/sys/dev/bge/if_bge.c#17 integrate .. //depot/projects/mips/sys/dev/bge/if_bgereg.h#11 integrate .. //depot/projects/mips/sys/dev/bktr/bktr_mem.c#4 integrate .. //depot/projects/mips/sys/dev/cx/if_cx.c#6 integrate .. //depot/projects/mips/sys/dev/cy/cy.c#2 integrate .. //depot/projects/mips/sys/dev/digi/digi.c#8 integrate .. //depot/projects/mips/sys/dev/drm/drm.h#5 integrate .. //depot/projects/mips/sys/dev/drm/drmP.h#7 integrate .. //depot/projects/mips/sys/dev/drm/drm_drv.h#11 integrate .. //depot/projects/mips/sys/dev/drm/drm_linux_list.h#1 branch .. //depot/projects/mips/sys/dev/drm/drm_os_freebsd.h#8 integrate .. //depot/projects/mips/sys/dev/drm/drm_pciids.h#1 branch .. //depot/projects/mips/sys/dev/drm/drm_sarea.h#3 integrate .. //depot/projects/mips/sys/dev/drm/mga.h#4 integrate .. //depot/projects/mips/sys/dev/drm/mga_drm.h#3 integrate .. //depot/projects/mips/sys/dev/drm/r128.h#5 integrate .. //depot/projects/mips/sys/dev/drm/r128_drm.h#4 integrate .. //depot/projects/mips/sys/dev/drm/r128_state.c#6 integrate .. //depot/projects/mips/sys/dev/drm/radeon.h#7 integrate .. //depot/projects/mips/sys/dev/drm/radeon_drm.h#6 integrate .. //depot/projects/mips/sys/dev/drm/radeon_drv.h#7 integrate .. //depot/projects/mips/sys/dev/drm/radeon_mem.c#4 integrate .. //depot/projects/mips/sys/dev/drm/radeon_state.c#7 integrate .. //depot/projects/mips/sys/dev/drm/sis.h#2 integrate .. //depot/projects/mips/sys/dev/drm/sis_drv.c#2 integrate .. //depot/projects/mips/sys/dev/drm/sis_mm.c#3 integrate .. //depot/projects/mips/sys/dev/drm/tdfx.h#3 integrate .. //depot/projects/mips/sys/dev/ed/if_ed.c#13 integrate .. //depot/projects/mips/sys/dev/eisa/eisa_if.m#1 branch .. //depot/projects/mips/sys/dev/eisa/eisaconf.c#5 integrate .. //depot/projects/mips/sys/dev/eisa/eisaconf.h#2 integrate .. //depot/projects/mips/sys/dev/esp/esp_sbus.c#1 branch .. //depot/projects/mips/sys/dev/esp/lsi64854.c#1 branch .. //depot/projects/mips/sys/dev/esp/lsi64854reg.h#1 branch .. //depot/projects/mips/sys/dev/esp/lsi64854var.h#1 branch .. //depot/projects/mips/sys/dev/esp/ncr53c9x.c#1 branch .. //depot/projects/mips/sys/dev/esp/ncr53c9xreg.h#1 branch .. //depot/projects/mips/sys/dev/esp/ncr53c9xvar.h#1 branch .. //depot/projects/mips/sys/dev/fb/vga.c#9 integrate .. //depot/projects/mips/sys/dev/fe/if_fe.c#10 integrate .. //depot/projects/mips/sys/dev/firewire/firewire.c#21 integrate .. //depot/projects/mips/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/mips/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/mips/sys/dev/gem/if_gem.c#10 integrate .. //depot/projects/mips/sys/dev/hme/if_hme.c#8 integrate .. //depot/projects/mips/sys/dev/ichwd/ichwd.c#2 integrate .. //depot/projects/mips/sys/dev/ips/ips_commands.c#7 integrate .. //depot/projects/mips/sys/dev/kbd/atkbd.c#5 integrate .. //depot/projects/mips/sys/dev/lge/if_lge.c#12 integrate .. //depot/projects/mips/sys/dev/lnc/if_lnc.c#10 integrate .. //depot/projects/mips/sys/dev/my/if_my.c#14 integrate .. //depot/projects/mips/sys/dev/nge/if_nge.c#14 integrate .. //depot/projects/mips/sys/dev/ofw/ofw_console.c#11 integrate .. //depot/projects/mips/sys/dev/pcf/envctrl.c#2 integrate .. //depot/projects/mips/sys/dev/pcf/pcf_ebus.c#1 branch .. //depot/projects/mips/sys/dev/pcf/pcf_isa.c#2 integrate .. //depot/projects/mips/sys/dev/pdq/pdq_freebsd.h#7 integrate .. //depot/projects/mips/sys/dev/re/if_re.c#6 integrate .. //depot/projects/mips/sys/dev/rp/rp.c#9 integrate .. //depot/projects/mips/sys/dev/sab/sab.c#14 integrate .. //depot/projects/mips/sys/dev/si/si.c#8 integrate .. //depot/projects/mips/sys/dev/sio/sio.c#15 integrate .. //depot/projects/mips/sys/dev/sn/if_sn.c#11 integrate .. //depot/projects/mips/sys/dev/sound/isa/sb16.c#8 integrate .. //depot/projects/mips/sys/dev/sound/pci/emu10k1.c#12 integrate .. //depot/projects/mips/sys/dev/sx/sx.c#2 integrate .. //depot/projects/mips/sys/dev/twe/twe.c#8 integrate .. //depot/projects/mips/sys/dev/twe/twe_freebsd.c#13 integrate .. //depot/projects/mips/sys/dev/twe/twevar.h#6 integrate .. //depot/projects/mips/sys/dev/tx/if_tx.c#12 integrate .. //depot/projects/mips/sys/dev/usb/if_aue.c#12 integrate .. //depot/projects/mips/sys/dev/usb/if_axe.c#6 integrate .. //depot/projects/mips/sys/dev/usb/if_cue.c#12 integrate .. //depot/projects/mips/sys/dev/usb/if_rue.c#6 integrate .. //depot/projects/mips/sys/dev/usb/if_udav.c#3 integrate .. //depot/projects/mips/sys/dev/usb/ucom.c#9 integrate .. //depot/projects/mips/sys/dev/usb/uhub.c#3 integrate .. //depot/projects/mips/sys/dev/wi/if_wi.c#17 integrate .. //depot/projects/mips/sys/dev/wi/if_wi_pccard.c#12 integrate .. //depot/projects/mips/sys/dev/xe/if_xe.c#11 integrate .. //depot/projects/mips/sys/fs/fifofs/fifo_vnops.c#10 integrate .. //depot/projects/mips/sys/geom/geom_io.c#19 integrate .. //depot/projects/mips/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/mips/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/mips/sys/i386/acpica/acpi_asus.c#2 integrate .. //depot/projects/mips/sys/i386/acpica/acpi_machdep.c#11 integrate .. //depot/projects/mips/sys/i386/acpica/acpi_toshiba.c#4 integrate .. //depot/projects/mips/sys/i386/acpica/madt.c#5 integrate .. //depot/projects/mips/sys/i386/bios/mca_machdep.c#3 integrate .. //depot/projects/mips/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/mips/sys/i386/bios/smbios.c#4 integrate .. //depot/projects/mips/sys/i386/bios/vpd.c#4 integrate .. //depot/projects/mips/sys/i386/conf/NOTES#26 integrate .. //depot/projects/mips/sys/i386/i386/bios.c#7 integrate .. //depot/projects/mips/sys/i386/i386/machdep.c#20 integrate .. //depot/projects/mips/sys/i386/i386/pmap.c#24 integrate .. //depot/projects/mips/sys/i386/i386/symbols.raw#2 integrate .. //depot/projects/mips/sys/i386/include/md_var.h#9 integrate .. //depot/projects/mips/sys/i386/include/pc/bios.h#3 integrate .. //depot/projects/mips/sys/i386/include/pmap.h#10 integrate .. //depot/projects/mips/sys/i386/isa/vesa.c#6 integrate .. //depot/projects/mips/sys/i386/pci/pci_pir.c#3 integrate .. //depot/projects/mips/sys/i4b/driver/i4b_ipr.c#8 integrate .. //depot/projects/mips/sys/ia64/ia64/machdep.c#18 integrate .. //depot/projects/mips/sys/ia64/ia64/pmap.c#19 integrate .. //depot/projects/mips/sys/isa/syscons_isa.c#5 integrate .. //depot/projects/mips/sys/kern/kern_descrip.c#19 integrate .. //depot/projects/mips/sys/kern/kern_exit.c#24 integrate .. //depot/projects/mips/sys/kern/kern_kse.c#2 integrate .. //depot/projects/mips/sys/kern/kern_proc.c#16 integrate .. //depot/projects/mips/sys/kern/kern_prot.c#11 integrate .. //depot/projects/mips/sys/kern/kern_resource.c#14 integrate .. //depot/projects/mips/sys/kern/kern_sema.c#3 integrate .. //depot/projects/mips/sys/kern/kern_sig.c#22 integrate .. //depot/projects/mips/sys/kern/kern_sysctl.c#13 integrate .. //depot/projects/mips/sys/kern/kern_thread.c#27 integrate .. //depot/projects/mips/sys/kern/kern_xxx.c#4 integrate .. //depot/projects/mips/sys/kern/link_elf_obj.c#2 integrate .. //depot/projects/mips/sys/kern/subr_witness.c#21 integrate .. //depot/projects/mips/sys/kern/sys_socket.c#9 integrate .. //depot/projects/mips/sys/kern/tty.c#16 integrate .. //depot/projects/mips/sys/kern/tty_compat.c#4 integrate .. //depot/projects/mips/sys/kern/tty_conf.c#5 integrate .. //depot/projects/mips/sys/kern/tty_pty.c#11 integrate .. //depot/projects/mips/sys/kern/uipc_mbuf.c#12 integrate .. //depot/projects/mips/sys/kern/uipc_socket.c#16 integrate .. //depot/projects/mips/sys/kern/uipc_socket2.c#11 integrate .. //depot/projects/mips/sys/kern/uipc_syscalls.c#21 integrate .. //depot/projects/mips/sys/kern/uipc_usrreq.c#15 integrate .. //depot/projects/mips/sys/kern/vfs_subr.c#21 integrate .. //depot/projects/mips/sys/kern/vfs_syscalls.c#20 integrate .. //depot/projects/mips/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile#2 integrate .. //depot/projects/mips/sys/modules/em/Makefile#3 integrate .. //depot/projects/mips/sys/modules/esp/Makefile#1 branch .. //depot/projects/mips/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/mips/sys/modules/ipfilter/Makefile#4 integrate .. //depot/projects/mips/sys/modules/ixgb/Makefile#2 integrate .. //depot/projects/mips/sys/modules/vx/Makefile#2 integrate .. //depot/projects/mips/sys/net/bpf.c#14 integrate .. //depot/projects/mips/sys/net/firewire.h#1 branch .. //depot/projects/mips/sys/net/if.c#14 integrate .. //depot/projects/mips/sys/net/if_arp.h#4 integrate .. //depot/projects/mips/sys/net/if_fwsubr.c#1 branch .. //depot/projects/mips/sys/net/if_ppp.c#12 integrate .. //depot/projects/mips/sys/net/if_sl.c#12 integrate .. //depot/projects/mips/sys/net/if_spppsubr.c#11 integrate .. //depot/projects/mips/sys/net/if_var.h#9 integrate .. //depot/projects/mips/sys/net/netisr.h#5 integrate .. //depot/projects/mips/sys/net/raw_cb.c#7 integrate .. //depot/projects/mips/sys/net/raw_cb.h#3 integrate .. //depot/projects/mips/sys/net/raw_usrreq.c#9 integrate .. //depot/projects/mips/sys/net/rtsock.c#8 integrate .. //depot/projects/mips/sys/net80211/ieee80211_input.c#4 integrate .. //depot/projects/mips/sys/netatalk/ddp_input.c#6 integrate .. //depot/projects/mips/sys/netatalk/ddp_output.c#7 integrate .. //depot/projects/mips/sys/netatalk/ddp_pcb.c#3 integrate .. //depot/projects/mips/sys/netatm/atm_aal5.c#4 integrate .. //depot/projects/mips/sys/netatm/atm_ioctl.h#4 integrate .. //depot/projects/mips/sys/netatm/atm_socket.c#5 integrate .. //depot/projects/mips/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#10 integrate .. //depot/projects/mips/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#9 integrate .. //depot/projects/mips/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#9 integrate .. //depot/projects/mips/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#5 integrate .. //depot/projects/mips/sys/netgraph/ng_ksocket.c#7 integrate .. //depot/projects/mips/sys/netgraph/ng_rfc1490.c#6 integrate .. //depot/projects/mips/sys/netgraph/ng_rfc1490.h#4 integrate .. //depot/projects/mips/sys/netinet/accf_http.c#3 integrate .. //depot/projects/mips/sys/netinet/if_ether.c#11 integrate .. //depot/projects/mips/sys/netinet/igmp.c#9 integrate .. //depot/projects/mips/sys/netinet/in.h#9 integrate .. //depot/projects/mips/sys/netinet/in_pcb.c#15 integrate .. //depot/projects/mips/sys/netinet/ip_divert.c#13 integrate .. //depot/projects/mips/sys/netinet/ip_fw.h#7 integrate .. //depot/projects/mips/sys/netinet/ip_fw2.c#15 integrate .. //depot/projects/mips/sys/netinet/ip_input.c#21 integrate .. //depot/projects/mips/sys/netinet/ip_output.c#20 integrate .. //depot/projects/mips/sys/netinet/raw_ip.c#14 integrate .. //depot/projects/mips/sys/netinet/tcp_input.c#21 integrate .. //depot/projects/mips/sys/netinet/tcp_subr.c#16 integrate .. //depot/projects/mips/sys/netinet/tcp_syncache.c#13 integrate .. //depot/projects/mips/sys/netinet/tcp_usrreq.c#10 integrate .. //depot/projects/mips/sys/netinet6/in6_pcb.c#11 integrate .. //depot/projects/mips/sys/netinet6/ip6_input.c#11 integrate .. //depot/projects/mips/sys/netipx/ipx_pcb.c#4 integrate .. //depot/projects/mips/sys/netipx/ipx_usrreq.c#7 integrate .. //depot/projects/mips/sys/netipx/spx_usrreq.c#7 integrate .. //depot/projects/mips/sys/netnatm/natm.c#9 integrate .. //depot/projects/mips/sys/netsmb/smb_trantcp.c#7 integrate .. //depot/projects/mips/sys/pc98/i386/machdep.c#20 integrate .. //depot/projects/mips/sys/pc98/pc98/pc98gdc.c#8 integrate .. //depot/projects/mips/sys/pc98/pc98/sio.c#17 integrate .. //depot/projects/mips/sys/pci/if_dc.c#20 integrate .. //depot/projects/mips/sys/pci/if_de.c#12 integrate .. //depot/projects/mips/sys/pci/if_mn.c#9 integrate .. //depot/projects/mips/sys/pci/if_pcn.c#14 integrate .. //depot/projects/mips/sys/pci/if_rl.c#19 integrate .. //depot/projects/mips/sys/pci/if_sf.c#14 integrate .. //depot/projects/mips/sys/pci/if_sis.c#17 integrate .. //depot/projects/mips/sys/pci/if_sk.c#14 integrate .. //depot/projects/mips/sys/pci/if_ste.c#14 integrate .. //depot/projects/mips/sys/pci/if_vr.c#16 integrate .. //depot/projects/mips/sys/pci/if_wb.c#14 integrate .. //depot/projects/mips/sys/pci/if_xl.c#18 integrate .. //depot/projects/mips/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/mips/sys/sparc64/conf/GENERIC#17 integrate .. //depot/projects/mips/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/mips/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/mips/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/mips/sys/sys/_types.h#7 integrate .. //depot/projects/mips/sys/sys/gmon.h#3 integrate .. //depot/projects/mips/sys/sys/ioctl.h#4 integrate .. //depot/projects/mips/sys/sys/mbuf.h#16 integrate .. //depot/projects/mips/sys/sys/param.h#19 integrate .. //depot/projects/mips/sys/sys/resource.h#6 integrate .. //depot/projects/mips/sys/sys/signal.h#9 integrate .. //depot/projects/mips/sys/sys/socketvar.h#11 integrate .. //depot/projects/mips/sys/sys/tty.h#6 integrate .. //depot/projects/mips/sys/sys/types.h#11 integrate .. //depot/projects/mips/sys/sys/vmmeter.h#4 integrate .. //depot/projects/mips/sys/ufs/ffs/ffs_snapshot.c#17 integrate .. //depot/projects/mips/sys/vm/uma_core.c#20 integrate .. //depot/projects/mips/sys/vm/vm_contig.c#12 integrate .. //depot/projects/mips/sys/vm/vm_mmap.c#13 integrate .. //depot/projects/mips/tools/regression/lib/msun/Makefile#1 branch .. //depot/projects/mips/tools/regression/lib/msun/test-fenv.c#1 branch .. //depot/projects/mips/tools/tools/kttcp/sys/kttcp.c#2 integrate .. //depot/projects/mips/tools/tools/tinderbox/etc/Makefile#5 integrate .. //depot/projects/mips/tools/tools/tinderbox/etc/update_current.rc#1 branch .. //depot/projects/mips/tools/tools/tinderbox/etc/update_stable.rc#1 branch .. //depot/projects/mips/tools/tools/tinderbox/tbmaster.1#6 integrate .. //depot/projects/mips/tools/tools/tinderbox/tbmaster.pl#12 integrate .. //depot/projects/mips/tools/tools/tinderbox/www/index.cgi#5 integrate .. //depot/projects/mips/usr.bin/Makefile#17 integrate .. //depot/projects/mips/usr.bin/fstat/fstat.c#4 integrate .. //depot/projects/mips/usr.bin/su/su.c#12 integrate .. //depot/projects/mips/usr.bin/talk/get_names.c#2 integrate .. //depot/projects/mips/usr.bin/talk/talk.1#3 integrate .. //depot/projects/mips/usr.bin/tar/bsdtar.1#3 integrate .. //depot/projects/mips/usr.bin/tar/bsdtar.c#3 integrate .. //depot/projects/mips/usr.bin/tar/bsdtar.h#3 integrate .. //depot/projects/mips/usr.bin/tar/matching.c#2 integrate .. //depot/projects/mips/usr.bin/truss/amd64-fbsd.c#1 branch .. //depot/projects/mips/usr.bin/truss/extern.h#5 integrate .. //depot/projects/mips/usr.bin/truss/main.c#7 integrate .. //depot/projects/mips/usr.bin/truss/syscalls.c#9 integrate .. //depot/projects/mips/usr.bin/whois/whois.1#4 integrate .. //depot/projects/mips/usr.bin/whois/whois.c#7 integrate .. //depot/projects/mips/usr.bin/xinstall/install.1#4 integrate .. //depot/projects/mips/usr.sbin/acpi/iasl/iasl.8#2 integrate .. //depot/projects/mips/usr.sbin/adduser/adduser.conf.5#2 integrate .. //depot/projects/mips/usr.sbin/adduser/rmuser.8#6 integrate .. //depot/projects/mips/usr.sbin/apm/apm.c#6 integrate .. //depot/projects/mips/usr.sbin/arlcontrol/arlcontrol.8#2 integrate .. //depot/projects/mips/usr.sbin/arp/arp.c#7 integrate .. //depot/projects/mips/usr.sbin/asf/asf.8#2 integrate .. //depot/projects/mips/usr.sbin/bluetooth/hcsecd/hcsecd.conf.5#2 integrate .. //depot/projects/mips/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.8#3 integrate .. //depot/projects/mips/usr.sbin/bluetooth/sdpd/sdpd.8#2 integrate .. //depot/projects/mips/usr.sbin/bootparamd/bootparamd/main.c#2 integrate .. //depot/projects/mips/usr.sbin/dconschat/dconschat.8#4 integrate .. //depot/projects/mips/usr.sbin/ip6addrctl/ip6addrctl.8#2 integrate .. //depot/projects/mips/usr.sbin/moused/moused.8#5 integrate .. //depot/projects/mips/usr.sbin/mtree/specspec.c#3 integrate .. //depot/projects/mips/usr.sbin/ndiscvt/ndiscvt.8#3 integrate .. //depot/projects/mips/usr.sbin/newsyslog/newsyslog.c#11 integrate .. //depot/projects/mips/usr.sbin/newsyslog/newsyslog.conf.5#3 integrate .. //depot/projects/mips/usr.sbin/nologin/nologin.5#2 integrate .. //depot/projects/mips/usr.sbin/pstat/pstat.c#9 integrate .. //depot/projects/mips/usr.sbin/traceroute6/traceroute6.8#4 integrate .. //depot/projects/mips/usr.sbin/traceroute6/traceroute6.c#5 integrate .. //depot/projects/mips/usr.sbin/watchdogd/watchdog.8#3 integrate .. //depot/projects/mips/usr.sbin/watchdogd/watchdogd.8#4 integrate .. //depot/projects/mips/usr.sbin/zzz/zzz.8#2 integrate Differences ... ==== //depot/projects/mips/UPDATING#20 (text+ko) ==== @@ -17,7 +17,19 @@ developers choose to disable these features on build machines to maximize performance. -20040607: +20040614: + The return value of sema_timedwait(9) has been changed to + make it consistent with cv_timedwait(9). Be sure to recompile + the ips module and any third-party modules which call + sema_timedwait. + +20040613: + ALTQ is now linked to the build. This breaks ABI for struct ifnet. + Make sure to recompile modules and any userland that makes use of + sizeof(struct ifnet). In order to get the altq headers in place + please recompile and reinstall world. + +20040607: Splitting kern_thread.c into 2 files (adding kern_kse.c) requires that you re-run config after updating your tree. @@ -1611,4 +1623,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.309 2004/06/07 21:37:40 julian Exp $ +$FreeBSD: src/UPDATING,v 1.312 2004/06/14 18:19:04 jdp Exp $ ==== //depot/projects/mips/bin/ls/ls.c#11 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.77 2004/06/03 15:04:00 le Exp $"); +__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.78 2004/06/08 09:30:10 das Exp $"); #include #include @@ -452,7 +452,13 @@ fts_open(argv, options, f_nosort ? NULL : mastercmp)) == NULL) err(1, "fts_open"); - display(NULL, fts_children(ftsp, 0), options); + /* + * We ignore errors from fts_children here since they will be + * replicated and signalled on the next call to fts_read() below. + */ + chp = fts_children(ftsp, 0); + if (chp != NULL) + display(NULL, chp, options); if (f_listdir) return; @@ -533,16 +539,6 @@ char ngroup[STRBUF_SIZEOF(uid_t) + 1]; char nuser[STRBUF_SIZEOF(gid_t) + 1]; - /* - * If list is NULL there are two possibilities: that the parent - * directory p has no children, or that fts_children() returned an - * error. We ignore the error case since it will be replicated - * on the next call to fts_read() on the post-order visit to the - * directory p, and will be signaled in traverse(). - */ - if (list == NULL) - return; - needstats = f_inode || f_longform || f_size; flen = 0; btotal = 0; @@ -784,7 +780,13 @@ ++entries; } - if (!entries) + /* + * If there are no entries to display, we normally stop right + * here. However, we must continue if we have to display the + * total block count. In this case, we display the total only + * on the second (p != NULL) pass. + */ + if (!entries && (!(f_longform || f_size) || p == NULL)) return; d.list = list; ==== //depot/projects/mips/bin/ls/print.c#12 (text+ko) ==== @@ -36,7 +36,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ls/print.c,v 1.72 2004/05/25 14:53:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/bin/ls/print.c,v 1.73 2004/06/08 09:27:42 das Exp $"); #include #include @@ -142,8 +142,10 @@ int haveacls; dev_t prevdev; - if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size)) + if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && + (f_longform || f_size)) { (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); + } haveacls = 1; prevdev = (dev_t)-1; @@ -294,8 +296,10 @@ if (num % numcols) ++numrows; - if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size)) + if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && + (f_longform || f_size)) { (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); + } base = 0; for (row = 0; row < numrows; ++row) { ==== //depot/projects/mips/bin/setfacl/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/bin/setfacl/Makefile,v 1.7 2001/12/04 01:57:46 obrien Exp $ +# $FreeBSD: src/bin/setfacl/Makefile,v 1.8 2004/06/13 19:22:53 obrien Exp $ -PROG= setfacl -SRCS= file.c mask.c merge.c remove.c setfacl.c util.c +PROG= setfacl +SRCS= file.c mask.c merge.c remove.c setfacl.c util.c .include ==== //depot/projects/mips/contrib/cvs/BUGS#3 (text+ko) ==== @@ -47,12 +47,6 @@ are never a problem, whether or not LockDir is in use. -* "make remotecheck" sometimes fails on test 187a3 with - cvs server: in directory .: - cvs [server aborted]: *PANIC* administration files missing -This does not happen every time. (-kingdon, Nov 96, Red Hat linux 3.0.3). - - * The -m option to "cvs add" does not work with client/server CVS. CVS will accept the option, but it won't actually set the file's description. @@ -84,121 +78,6 @@ P.S. Is anyone working on fixing these bugs? -* From: Roland McGrath - To: Cyclic CVS Hackers - Subject: weird bug - Date: Sat, 25 Mar 1995 16:41:41 -0500 - X-Windows: Even your dog won't like it. - - I just noticed some droppings on my disk from what must be a pretty weird - bug in remote CVS. - - In my home directory on a repository machine I use, I find: - - drwxr-xr-x 4 roland staff 512 Mar 7 14:08 cvs-serv28962 - drwxr-xr-x 4 roland staff 512 Mar 7 14:11 cvs-serv28978 - drwxr-xr-x 4 roland staff 512 Mar 7 15:13 cvs-serv29141 - - OK, so these are leftover cruft from some cvs run that got aborted. - Well, it should clean up after itself, but so what. - - The last one is pretty dull; the real weirdness is the contents of the - first two directories. - - duality 77 # ls -RF cvs-serv28978/ - CVS/ cvs-serv28978/ - - cvs-serv28978/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978: - arpa/ - - cvs-serv28978/cvs-serv28978/arpa: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978: - assert/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978: - bare/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978: - conf/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978: - crypt/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978: - csu/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu: - CVS/ cvs-serv28978/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu/CVS: - Entries Repository - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu/cvs-serv28978: - ctype/ - - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu/cvs-serv28978/ctype: - CVS/ cvs-serv28978/ - - [...] - - ls: cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu/cvs-serv28978/ctype/cvs-serv28978/dirent/cvs-serv28978/elf/cvs-serv28978/gnu/cvs-serv28978/gnulib/cvs-serv28978/grp/cvs-serv28978/hurd/cvs-serv28978/hurd/hurd/cvs-serv28978/inet/cvs-serv28978/inet/arpa/cvs-serv28978/inet/netinet[...]/cvs-serv28978/posix/cvs-serv28978/posix/glob/cvs-serv28978/posix/gnu/cvs-serv28978/posix/sys/cvs-serv28978/protocols/cvs-serv28978/pwd/cvs-serv28978/resolv/cvs-serv28978/resolv/arpa/cvs-serv28978/resolv/sys/cvs-serv28978/resource/cvs-serv28978/resource/sys/cvs-serv28978/rpc/cvs-serv28978/setjmp/cvs-serv28978/signal/cvs-serv28978/signal/sys/cvs-serv28978/socket/cvs-serv28978/socket: File name too long - cvs-serv28978/cvs-serv28978/arpa/cvs-serv28978/assert/cvs-serv28978/bare/cvs-serv28978/conf/cvs-serv28978/crypt/cvs-serv28978/csu/cvs-serv28978/ctype/cvs-serv28978/dirent/cvs-serv28978/elf/cvs-serv28978/gnu/cvs-serv28978/gnulib/cvs-serv28978/grp/cvs-serv28978/hurd/cvs-serv28978/hurd/hurd/cvs-serv28978/inet/cvs-serv28978/inet/arpa/cvs-serv28978/inet/netinet[...]/cvs-serv28978/posix/glob/cvs-serv28978/posix/gnu/cvs-serv28978/posix/sys/cvs-serv28978/protocols/cvs-serv28978/pwd/cvs-serv28978/resolv/cvs-serv28978/resolv/arpa/cvs-serv28978/resolv/sys/cvs-serv28978/resource/cvs-serv28978/resource/sys/cvs-serv28978/rpc/cvs-serv28978/setjmp/cvs-serv28978/signal/cvs-serv28978/signal/sys/cvs-serv28978/socket/cvs-serv28978: - -* From: Roland McGrath - To: Cyclic CVS Hackers - Subject: bizarre failure mode - Date: Tue, 7 Mar 95 14:17:28 -0500 - - This is pretty weird: - - CVS_SERVER='TMPDIR=. /usr/local/bin/cvs' ../cvs-build/src/cvs update -q - cvs [server aborted]: could not get working directory: Result too large - [Exit 1] - asylum 29 % grep 'Result too large' /usr/include/sys/errno.h - #define ERANGE 34 /* Result too large */ - - Now, getcwd fails with ERANGE when the buffer is too small. But I don't - know why that would be the case; I don't think there are exceptionally long - directory names involved. It would be robust to notice ERANGE and use a - bigger buffer. But I suspect something weirder is going on. - - The repository in question in duality.gnu.ai.mit.edu:/gd4/gnu/cvsroot/libc. - - Send me a PGP-signed message if you want the password to use the machine - where the problem showed up. - * CVS does not always seem to be waiting to the next filesystem timestamp quanta after commits. So far this has only shown up in testing under the BSDI OS. The symptoms are that ocassionally CVS will not notice that modified files @@ -208,18 +87,22 @@ an incorrect value, though this does not explain why symptoms have only been noticed under BSDI. + * Spaces in arguments to `cvs diff' are currently split on spaces and tabs before being passed to diff. This can often cause diff to abort since it can no longer interpret its options string and if it can, coincidentally, interpret its option string, then the problem may be output in unexpected formats. + * `release' of a project subdir does not remove the `subdir' entry from `./CVS/Entries'. -* The Windows Microsoft Visual C++ project files are out of date, but the - project can still be built under Windows using `nmake'. See the INSTALL - file for more. + +* Most of the remote commands are encountering assertion failures when listing + the toplevel of the repository (e.g. `cvs rlog .'). This appears to be + related to the symlinked CVS root fix. + * Status ==== //depot/projects/mips/contrib/cvs/ChangeLog#5 (text+ko) ==== @@ -1,3 +1,83 @@ +2004-06-09 Derek Price + + * NEWS: Note Stefan & Sebastian's security fixes. + * acinclude.m4 (gl_SIZE_MAX, gl_XSIZE): Import from GNULIB. + * configure.in: Call gl_XSIZE. + +2004-06-09 Derek Price + + * NEWS: Note CAN-2004-0414 fix. + +2004-05-19 Derek Price + + * NEWS: Note CAN-2004-0396 fix. + +2004-05-17 Derek Price + + * BUGS: Note assertion failure of r* commands. + +2004-05-17 Derek Price + + * BUGS: Remove out of date comment about out of date Windows build + files and several bug reports that are so old, without similar recent + reports, that I'm assuming that the problems have been fixed. + +2004-05-15 Derek Price + + * cvsnt.dsp: Header file list updated. + * cvsnt.dep: Regenerated for "cvsnt.dsp" change. + * cvsnt.mak: Regenerated for "cvsnt.dsp" change. + (Patch from Conrad Pino .) + +2004-05-13 Derek Price + + * NEWS: Note MSVC++ project file regeneration. + +2004-05-13 Derek Price + + * cvsnt.dsw: Rename "zlib/zlib.*" to "zlib/libz.*". + Add project "lib/libcvs". + * cvsnt.dsp: Revised for "cvsnt.dsw" changes. Move "lib/*.c" to + project "lib/libcvs". Upgraded to Visual C++ 6.0 format. + * cvsnt.dep: Added for "cvsnt.dsp" change. + * cvsnt.mak: Regenerated for "cvsnt.dsp" change. + (Patch from Conrad Pino .) + + * configure.in: Generate windows-NT/fix-msvc-mak. + +2004-04-30 Derek Price + + * NEWS: Note that man page is generated from cvs.texinfo now. + * configure.in: Build doc/mkman. + * configure, Makefile.in: Regenerated. + +2004-04-26 Derek Price + + * NEWS: Note that :ext: no longer relies on an external transport with + a GNU argument processor. + +2004-04-20 Derek Price + + * NEWS: Note XP directory deletion fix. + +2004-04-16 Derek Price + + * NEWS: Correct CVS name for piped checkout issue now that we have one. + +2004-04-15 Derek Price + + * NEWS: Retroactively add CVE issue name for the piped etc issue. + +2004-04-15 Derek Price + + * NEWS: Retroactively add CVE issue name for the trojan server issue. + +2004-04-14 Derek Price + + * INSTALL (Building from source code under Unix): Move Autoconf & + Automake notes... + * HACKING (Regenerating Build Files): ...here. + 2004-04-13 Derek Price * NEWS: Note validation of paths passed to the client. ==== //depot/projects/mips/contrib/cvs/FREEBSD-upgrade#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/contrib/cvs/FREEBSD-upgrade,v 1.10 2002/09/02 05:58:30 peter Exp $ +$FreeBSD: src/contrib/cvs/FREEBSD-upgrade,v 1.11 2004/06/09 20:51:26 des Exp $ MAINTAINER= peter@FreeBSD.org @@ -7,39 +7,19 @@ versions or official-patch versions must be imported. To prepare a new cvs dist for import, extract it into a fresh directory; +then delete the files and directories listed in FREEBSD-Xlist. -The following generated files were deleted: -doc/*.ps -doc/*.info* -doc/texinfo.tex -lib/getdate.c -cvsnt.* -cvs.spec* -build.com -*/*.com -*/*.dsp -*/.cvsignore -.cvsignore -README.VMS - -The following non-freebsd-specific directories were deleted: -os2 -emx -windows-NT -vms -zlib - -It is imported from it's top level directory something like this: +CVS is imported from its top level directory something like this: cvs -n import src/contrib/cvs CVSHOME v -The -n option is "dont do anything" so you can see what is about to happen +The -n option is "don't do anything" so you can see what is about to happen first. Remove it when it looks ok. The initial import was done with: cvs import src/contrib/cvs CVSHOME v1_8_1 When new versions are imported, cvs will give instructions on how to merge -the local and vendor changes when/if conflicts arise.. +the local and vendor changes when/if conflicts arise. The developers can be reached at: . Local changes that are suitable for public consumption should be submitted for inclusion ==== //depot/projects/mips/contrib/cvs/HACKING#2 (text+ko) ==== @@ -104,6 +104,25 @@ (the latter causes Visual C++ 2.1 to create makefiles which Visual C++ 4.0 cannot use). +* Regenerating Build Files + +On UNIX, if you wish to change the Build files, you will need Autoconf and +Automake. + +Some combinations of Automake and Autoconf versions may break the +CVS build if file timestamps aren't set correctly and people don't +have the same versions the developers do, so the rules to run them +automatically aren't included in the generated Makefiles unless you run +configure with the --enable-maintainer-mode option. + +The CVS Makefiles and configure script were built using Automake 1.7.9 and +Autoconf 2.58, respectively. + +There is a known bug in Autoconf 2.57 that will prevent the configure +scripts it generates from working on some platforms. Other combinations of +autotool versions may or may not work. If you get other versions to work, +please send a report to . + * Writing patches (strategy) Only some kinds of changes are suitable for inclusion in the ==== //depot/projects/mips/contrib/cvs/INSTALL#5 (text+ko) ==== @@ -257,21 +257,7 @@ Building from source code under Unix: -1) Some combinations of Automake and Autoconf versions may break the - CVS build if file timestamps aren't set correctly and people don't - have the same versions the developers do, so the rules to run them - automatically aren't included in the generated Makefiles unless you run - configure with --enable-maintainer-mode. - - The CVS Makefiles and configure script were built using Automake 1.7.9 and - Autoconf 2.58, respectively. - - There is a known bug in Autoconf 2.57 that will prevent the configure - scripts it generates from working on some platforms. Other combinations of - autotool versions may or may not work. If you get other versions to work, - please send a report to . - -2) Run "configure": +1) Run "configure": $ ./configure >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 15 14:03:20 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AFD3016A4D0; Tue, 15 Jun 2004 14:03:20 +0000 (GMT) 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 6689816A4CE for ; Tue, 15 Jun 2004 14:03:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C49643D48 for ; Tue, 15 Jun 2004 14:03:20 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FE3GS7073475 for ; Tue, 15 Jun 2004 14:03:16 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FE3FAT073472 for perforce@freebsd.org; Tue, 15 Jun 2004 14:03:15 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 14:03:15 GMT Message-Id: <200406151403.i5FE3FAT073472@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 55024 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, 15 Jun 2004 14:03:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=55024 Change 55024 by jmallett@jmallett_oingo on 2004/06/15 14:02:35 Hang an r4k clock off the cpu bus, and have it handle the setup of the timecounter. XXX I still left ownership of cpu_initclocks to the platform, and in fact, it still sets clocks_running. This gives it a chance to do its thing, or establish an alternate clock. Really I don't like this, but I don't see an easy way to message the clock to start running :/ In the end I expect this will all just become a property of the cpu port and whatever devices and timecounters attach. At that point, would be nice to push this down to the timecounter layer and make it disable the timecounter and device, so we can free up irq 5, if it chooses a higher quality timecounter. For now, do it this way, cause I must needs get the r4k clock into newbus, so I can do bad things to interrupts. Affected files ... .. //depot/projects/mips/sys/conf/files.mips#39 edit .. //depot/projects/mips/sys/mips/include/clock.h#3 edit .. //depot/projects/mips/sys/mips/mips/clock_r4k.c#1 add .. //depot/projects/mips/sys/mips/mips/cpu.c#4 edit .. //depot/projects/mips/sys/mips/mips/machdep.c#47 edit .. //depot/projects/mips/sys/mips/sgimips/clock.c#11 edit Differences ... ==== //depot/projects/mips/sys/conf/files.mips#39 (text+ko) ==== @@ -13,6 +13,7 @@ mips/mips/autoconf.c standard mips/mips/bus_machdep.c standard mips/mips/busdma_machdep.c standard +mips/mips/clock_r4k.c standard mips/mips/cpu.c standard mips/mips/critical.c standard mips/mips/elf_machdep.c standard ==== //depot/projects/mips/sys/mips/include/clock.h#3 (text+ko) ==== @@ -28,12 +28,14 @@ #ifndef _MACHINE_CLOCK_H_ #define _MACHINE_CLOCK_H_ -#ifdef KERNEL +#ifdef _KERNEL /* * Nothing to see here. */ -#endif /* KERNEL */ +extern int clocks_running; + +#endif /* _KERNEL */ #endif /* !_MACHINE_CLOCK_H_ */ ==== //depot/projects/mips/sys/mips/mips/cpu.c#4 (text+ko) ==== @@ -215,12 +215,24 @@ cpu_probe(device_t dev) { struct wtf wtf; + device_t clock; if (device_get_unit(dev) != 0) panic("can't attach more cpus"); mips_wtf(&wtf); device_set_desc(dev, wtf.wtf_type); + + switch (wtf.wtf_class) { + case MIPS_R4000: + clock = device_add_child(dev, "r4k_clock", device_get_unit(dev)); + if (clock == NULL) + device_printf(dev, "r4k_clock failed to attach"); + break; + default: + device_printf(dev, "clock not available"); + break; + } return (0); } DRIVER_MODULE(cpu, root, cpu_driver, cpu_devclass, 0, 0); ==== //depot/projects/mips/sys/mips/mips/machdep.c#47 (text+ko) ==== @@ -63,6 +63,7 @@ #endif int cold = 1; +int clocks_running; static struct pcpu pcpu0; struct pcpu *pcpup = &pcpu0; ==== //depot/projects/mips/sys/mips/sgimips/clock.c#11 (text+ko) ==== @@ -25,71 +25,22 @@ * $FreeBSD$ */ -/* - * XXX have a generic int5 clock in the mips/ code, and just use some - * per-platform callbacks to get the freq. Obviously this should be an - * optional device. - */ - #include #include #include #include #include +#include #include #include #include #include -static unsigned -sgimips_get_timecount(struct timecounter *tc) -{ - return (mips_rd_count()); -} - -static struct timecounter sgimips_timecounter = { - sgimips_get_timecount, - NULL, - ~0, - 0, - "Uninitialized SGIMIPS", - 800 -}; - -static void -sgimips_clock5_intr(void *arg) -{ - struct clockframe cf; - struct trapframe *tf; - - if (curthread == NULL) - return; - - /* - * Set next clock edge. - */ - tf = curthread->td_frame; - cf.sr = tf->tf_regs[TF_SR]; - cf.pc = tf->tf_regs[TF_EPC]; - hardclock(&cf); - mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); -} - void cpu_initclocks(void) { - switch (mach_type) { - case MACH_SGI_IP22: - sgimips_timecounter.tc_frequency = curcpu()->ci_cpu_freq; - sgimips_timecounter.tc_name = "SGI IP22"; - break; - default: - panic("cannot init clock for type %d", mach_type); - } - tc_init(&sgimips_timecounter); - platform_establish_hardintr(5, sgimips_clock5_intr, NULL); - mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); + clocks_running = 1; } void From owner-p4-projects@FreeBSD.ORG Tue Jun 15 14:10:29 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE2D916A4D0; Tue, 15 Jun 2004 14:10:28 +0000 (GMT) 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 A9C0016A4CF for ; Tue, 15 Jun 2004 14:10:28 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A2C1943D53 for ; Tue, 15 Jun 2004 14:10:28 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FEASPD073752 for ; Tue, 15 Jun 2004 14:10:28 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FEAPBp073749 for perforce@freebsd.org; Tue, 15 Jun 2004 14:10:25 GMT (envelope-from dfr@freebsd.org) Date: Tue, 15 Jun 2004 14:10:25 GMT Message-Id: <200406151410.i5FEAPBp073749@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 55025 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, 15 Jun 2004 14:10:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=55025 Change 55025 by dfr@dfr_home on 2004/06/15 14:09:56 IFC. Affected files ... .. //depot/projects/kse/gnu/usr.bin/binutils/gdb/Makefile#9 integrate .. //depot/projects/kse/gnu/usr.bin/binutils/gdb/kvm-fbsd-alpha.h#1 branch .. //depot/projects/kse/gnu/usr.bin/binutils/gdb/kvm-fbsd-i386.h#1 branch .. //depot/projects/kse/gnu/usr.bin/binutils/gdb/kvm-fbsd-sparc64.h#1 branch .. //depot/projects/kse/gnu/usr.bin/binutils/gdb/kvm-fbsd.c#6 integrate .. //depot/projects/kse/include/Makefile#6 integrate .. //depot/projects/kse/lib/libc/gen/fts.c#5 integrate .. //depot/projects/kse/lib/libc/gmon/moncontrol.3#3 integrate .. //depot/projects/kse/lib/libc/net/inet.3#4 integrate .. //depot/projects/kse/lib/libc/stdio/fvwrite.c#3 integrate .. //depot/projects/kse/lib/libc/stdio/local.h#8 integrate .. //depot/projects/kse/lib/libc/stdio/vfprintf.c#9 integrate .. //depot/projects/kse/lib/libc/stdio/vfwprintf.c#5 integrate .. //depot/projects/kse/lib/libc/stdio/wbuf.c#3 integrate .. //depot/projects/kse/lib/libc/stdio/wsetup.c#2 integrate .. //depot/projects/kse/lib/libc/stdtime/asctime.c#3 integrate .. //depot/projects/kse/lib/libc/stdtime/difftime.c#3 integrate .. //depot/projects/kse/lib/libc/stdtime/localtime.c#4 integrate .. //depot/projects/kse/lib/libc/stdtime/private.h#2 integrate .. //depot/projects/kse/lib/libc/stdtime/strftime.c#4 integrate .. //depot/projects/kse/lib/libc/sys/getrlimit.2#4 integrate .. //depot/projects/kse/lib/libc/sys/read.2#3 integrate .. //depot/projects/kse/lib/libc/sys/sigaction.2#5 integrate .. //depot/projects/kse/lib/libkvm/kvm.c#9 integrate .. //depot/projects/kse/lib/libpthread/arch/amd64/amd64/context.S#2 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_create.c#2 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_private.h#2 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_sig.c#2 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_sigsuspend.c#2 integrate .. //depot/projects/kse/sys/alpha/alpha/machdep.c#47 integrate .. //depot/projects/kse/sys/alpha/alpha/pmap.c#38 integrate .. //depot/projects/kse/sys/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/kse/sys/alpha/include/pc/bios.h#2 integrate .. //depot/projects/kse/sys/amd64/acpica/madt.c#3 integrate .. //depot/projects/kse/sys/amd64/amd64/fpu.c#4 integrate .. //depot/projects/kse/sys/amd64/amd64/identcpu.c#4 integrate .. //depot/projects/kse/sys/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/kse/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/kse/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/kse/sys/amd64/amd64/mpboot.S#2 integrate .. //depot/projects/kse/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/kse/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/kse/sys/amd64/include/asm.h#3 integrate .. //depot/projects/kse/sys/amd64/include/md_var.h#3 integrate .. //depot/projects/kse/sys/amd64/include/param.h#2 integrate .. //depot/projects/kse/sys/amd64/include/pmap.h#4 integrate .. //depot/projects/kse/sys/amd64/include/profile.h#4 integrate .. //depot/projects/kse/sys/amd64/include/specialreg.h#3 integrate .. //depot/projects/kse/sys/boot/i386/boot0/boot0.S#2 integrate .. //depot/projects/kse/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/kse/sys/compat/linux/linux_ioctl.c#21 integrate .. //depot/projects/kse/sys/compat/linux/linux_ioctl.h#6 integrate .. //depot/projects/kse/sys/compat/linux/linux_misc.c#23 integrate .. //depot/projects/kse/sys/compat/linux/linux_uid16.c#11 integrate .. //depot/projects/kse/sys/compat/svr4/svr4_stream.c#14 integrate .. //depot/projects/kse/sys/conf/NOTES#22 integrate .. //depot/projects/kse/sys/conf/files#56 integrate .. //depot/projects/kse/sys/conf/files.alpha#20 integrate .. //depot/projects/kse/sys/conf/files.sparc64#23 integrate .. //depot/projects/kse/sys/conf/kern.pre.mk#18 integrate .. //depot/projects/kse/sys/conf/kmod.mk#16 integrate .. //depot/projects/kse/sys/conf/options#31 integrate .. //depot/projects/kse/sys/contrib/altq/altq/altq.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/kse/sys/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/kse/sys/contrib/ipfilter/netinet/ip_compat.h#7 integrate .. //depot/projects/kse/sys/contrib/pf/net/if_pflog.c#3 integrate .. //depot/projects/kse/sys/contrib/pf/net/if_pfsync.c#3 integrate .. //depot/projects/kse/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/kse/sys/contrib/pf/net/pf_ioctl.c#3 integrate .. //depot/projects/kse/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/kse/sys/crypto/des/des_ecb.c#3 integrate .. //depot/projects/kse/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/kse/sys/crypto/des/des_setkey.c#3 integrate .. //depot/projects/kse/sys/dev/aac/aac_debug.c#10 integrate .. //depot/projects/kse/sys/dev/acpica/acpi.c#32 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_acad.c#9 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_button.c#9 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_cmbat.c#12 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_ec.c#15 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_isab.c#3 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_lid.c#9 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_pci.c#6 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_pci_link.c#4 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_pcib.c#13 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_powerres.c#12 integrate .. //depot/projects/kse/sys/dev/acpica/acpi_resource.c#13 integrate .. //depot/projects/kse/sys/dev/acpica/acpivar.h#19 integrate .. //depot/projects/kse/sys/dev/ata/ata-all.c#25 integrate .. //depot/projects/kse/sys/dev/ata/ata-chipset.c#4 integrate .. //depot/projects/kse/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/kse/sys/dev/ata/ata-pci.c#29 integrate .. //depot/projects/kse/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/kse/sys/dev/awi/awi.c#10 integrate .. //depot/projects/kse/sys/dev/bge/if_bge.c#18 integrate .. //depot/projects/kse/sys/dev/bge/if_bgereg.h#10 integrate .. //depot/projects/kse/sys/dev/bktr/bktr_mem.c#6 integrate .. //depot/projects/kse/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/kse/sys/dev/cy/cy.c#2 integrate .. //depot/projects/kse/sys/dev/digi/digi.c#14 integrate .. //depot/projects/kse/sys/dev/drm/drm.h#3 integrate .. //depot/projects/kse/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/kse/sys/dev/drm/drm_drv.h#6 integrate .. //depot/projects/kse/sys/dev/drm/drm_linux_list.h#1 branch .. //depot/projects/kse/sys/dev/drm/drm_os_freebsd.h#7 integrate .. //depot/projects/kse/sys/dev/drm/drm_pciids.h#1 branch .. //depot/projects/kse/sys/dev/drm/drm_sarea.h#3 integrate .. //depot/projects/kse/sys/dev/drm/mga.h#3 integrate .. //depot/projects/kse/sys/dev/drm/mga_drm.h#3 integrate .. //depot/projects/kse/sys/dev/drm/r128.h#3 integrate .. //depot/projects/kse/sys/dev/drm/r128_drm.h#3 integrate .. //depot/projects/kse/sys/dev/drm/r128_state.c#4 integrate .. //depot/projects/kse/sys/dev/drm/radeon.h#3 integrate .. //depot/projects/kse/sys/dev/drm/radeon_drm.h#3 integrate .. //depot/projects/kse/sys/dev/drm/radeon_drv.h#4 integrate .. //depot/projects/kse/sys/dev/drm/radeon_mem.c#3 integrate .. //depot/projects/kse/sys/dev/drm/radeon_state.c#4 integrate .. //depot/projects/kse/sys/dev/drm/sis.h#2 integrate .. //depot/projects/kse/sys/dev/drm/sis_drv.c#2 integrate .. //depot/projects/kse/sys/dev/drm/sis_mm.c#2 integrate .. //depot/projects/kse/sys/dev/drm/tdfx.h#3 integrate .. //depot/projects/kse/sys/dev/ed/if_ed.c#8 integrate .. //depot/projects/kse/sys/dev/eisa/eisa_if.m#1 branch .. //depot/projects/kse/sys/dev/eisa/eisaconf.c#4 integrate .. //depot/projects/kse/sys/dev/eisa/eisaconf.h#4 integrate .. //depot/projects/kse/sys/dev/esp/esp_sbus.c#1 branch .. //depot/projects/kse/sys/dev/esp/lsi64854.c#1 branch .. //depot/projects/kse/sys/dev/esp/lsi64854reg.h#1 branch .. //depot/projects/kse/sys/dev/esp/lsi64854var.h#1 branch .. //depot/projects/kse/sys/dev/esp/ncr53c9x.c#1 branch .. //depot/projects/kse/sys/dev/esp/ncr53c9xreg.h#1 branch .. //depot/projects/kse/sys/dev/esp/ncr53c9xvar.h#1 branch .. //depot/projects/kse/sys/dev/fb/vga.c#10 integrate .. //depot/projects/kse/sys/dev/fe/if_fe.c#6 integrate .. //depot/projects/kse/sys/dev/firewire/firewire.c#5 integrate .. //depot/projects/kse/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/kse/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/kse/sys/dev/gem/if_gem.c#8 integrate .. //depot/projects/kse/sys/dev/hme/if_hme.c#9 integrate .. //depot/projects/kse/sys/dev/ichwd/ichwd.c#2 integrate .. //depot/projects/kse/sys/dev/ips/ips_commands.c#3 integrate .. //depot/projects/kse/sys/dev/kbd/atkbd.c#5 integrate .. //depot/projects/kse/sys/dev/lge/if_lge.c#9 integrate .. //depot/projects/kse/sys/dev/lnc/if_lnc.c#6 integrate .. //depot/projects/kse/sys/dev/my/if_my.c#7 integrate .. //depot/projects/kse/sys/dev/nge/if_nge.c#15 integrate .. //depot/projects/kse/sys/dev/ofw/ofw_console.c#10 integrate .. //depot/projects/kse/sys/dev/pcf/envctrl.c#2 integrate .. //depot/projects/kse/sys/dev/pcf/pcf_ebus.c#1 branch .. //depot/projects/kse/sys/dev/pcf/pcf_isa.c#2 integrate .. //depot/projects/kse/sys/dev/pdq/pdq_freebsd.h#4 integrate .. //depot/projects/kse/sys/dev/re/if_re.c#3 integrate .. //depot/projects/kse/sys/dev/rp/rp.c#9 integrate .. //depot/projects/kse/sys/dev/sab/sab.c#5 integrate .. //depot/projects/kse/sys/dev/si/si.c#8 integrate .. //depot/projects/kse/sys/dev/sio/sio.c#22 integrate .. //depot/projects/kse/sys/dev/sio/sio_pci.c#8 integrate .. //depot/projects/kse/sys/dev/sn/if_sn.c#6 integrate .. //depot/projects/kse/sys/dev/sound/isa/sb16.c#10 integrate .. //depot/projects/kse/sys/dev/sound/pci/emu10k1.c#7 integrate .. //depot/projects/kse/sys/dev/sx/sx.c#2 integrate .. //depot/projects/kse/sys/dev/twe/twe.c#7 integrate .. //depot/projects/kse/sys/dev/twe/twe_freebsd.c#10 integrate .. //depot/projects/kse/sys/dev/twe/twevar.h#6 integrate .. //depot/projects/kse/sys/dev/tx/if_tx.c#5 integrate .. //depot/projects/kse/sys/dev/usb/if_aue.c#16 integrate .. //depot/projects/kse/sys/dev/usb/if_axe.c#4 integrate .. //depot/projects/kse/sys/dev/usb/if_cue.c#7 integrate .. //depot/projects/kse/sys/dev/usb/if_rue.c#4 integrate .. //depot/projects/kse/sys/dev/usb/if_udav.c#3 integrate .. //depot/projects/kse/sys/dev/usb/ucom.c#6 integrate .. //depot/projects/kse/sys/dev/usb/uhub.c#13 integrate .. //depot/projects/kse/sys/dev/wi/if_wi.c#28 integrate .. //depot/projects/kse/sys/dev/wi/if_wi_pccard.c#8 integrate .. //depot/projects/kse/sys/dev/xe/if_xe.c#7 integrate .. //depot/projects/kse/sys/fs/fifofs/fifo_vnops.c#21 integrate .. //depot/projects/kse/sys/geom/geom_io.c#8 integrate .. //depot/projects/kse/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/kse/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/kse/sys/i386/acpica/acpi_asus.c#2 integrate .. //depot/projects/kse/sys/i386/acpica/acpi_machdep.c#5 integrate .. //depot/projects/kse/sys/i386/acpica/acpi_toshiba.c#3 integrate .. //depot/projects/kse/sys/i386/acpica/madt.c#3 integrate .. //depot/projects/kse/sys/i386/bios/mca_machdep.c#3 integrate .. //depot/projects/kse/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/kse/sys/i386/bios/smbios.c#3 integrate .. //depot/projects/kse/sys/i386/bios/vpd.c#3 integrate .. //depot/projects/kse/sys/i386/conf/NOTES#43 integrate .. //depot/projects/kse/sys/i386/i386/bios.c#15 integrate .. //depot/projects/kse/sys/i386/i386/machdep.c#63 integrate .. //depot/projects/kse/sys/i386/i386/pmap.c#48 integrate .. //depot/projects/kse/sys/i386/i386/symbols.raw#2 integrate .. //depot/projects/kse/sys/i386/include/md_var.h#16 integrate .. //depot/projects/kse/sys/i386/include/pc/bios.h#6 integrate .. //depot/projects/kse/sys/i386/include/pmap.h#14 integrate .. //depot/projects/kse/sys/i386/isa/vesa.c#7 integrate .. //depot/projects/kse/sys/i386/pci/pci_pir.c#3 integrate .. //depot/projects/kse/sys/i4b/driver/i4b_ipr.c#8 integrate .. //depot/projects/kse/sys/ia64/ia64/machdep.c#42 integrate .. //depot/projects/kse/sys/ia64/ia64/pmap.c#35 integrate .. //depot/projects/kse/sys/isa/syscons_isa.c#4 integrate .. //depot/projects/kse/sys/kern/kern_descrip.c#42 integrate .. //depot/projects/kse/sys/kern/kern_exit.c#67 integrate .. //depot/projects/kse/sys/kern/kern_kse.c#2 integrate .. //depot/projects/kse/sys/kern/kern_proc.c#92 integrate .. //depot/projects/kse/sys/kern/kern_prot.c#35 integrate .. //depot/projects/kse/sys/kern/kern_resource.c#28 integrate .. //depot/projects/kse/sys/kern/kern_sema.c#5 integrate .. //depot/projects/kse/sys/kern/kern_sig.c#73 integrate .. //depot/projects/kse/sys/kern/kern_sysctl.c#19 integrate .. //depot/projects/kse/sys/kern/kern_thread.c#116 integrate .. //depot/projects/kse/sys/kern/kern_xxx.c#9 integrate .. //depot/projects/kse/sys/kern/link_elf_obj.c#2 integrate .. //depot/projects/kse/sys/kern/subr_witness.c#35 integrate .. //depot/projects/kse/sys/kern/sys_socket.c#13 integrate .. //depot/projects/kse/sys/kern/tty.c#35 integrate .. //depot/projects/kse/sys/kern/tty_compat.c#6 integrate .. //depot/projects/kse/sys/kern/tty_conf.c#6 integrate .. //depot/projects/kse/sys/kern/tty_pty.c#15 integrate .. //depot/projects/kse/sys/kern/uipc_mbuf.c#14 integrate .. //depot/projects/kse/sys/kern/uipc_socket.c#26 integrate .. //depot/projects/kse/sys/kern/uipc_socket2.c#25 integrate .. //depot/projects/kse/sys/kern/uipc_syscalls.c#27 integrate .. //depot/projects/kse/sys/kern/uipc_usrreq.c#25 integrate .. //depot/projects/kse/sys/kern/vfs_subr.c#48 integrate .. //depot/projects/kse/sys/kern/vfs_syscalls.c#41 integrate .. //depot/projects/kse/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile#2 integrate .. //depot/projects/kse/sys/modules/em/Makefile#4 integrate .. //depot/projects/kse/sys/modules/esp/Makefile#1 branch .. //depot/projects/kse/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/kse/sys/modules/ipfilter/Makefile#5 integrate .. //depot/projects/kse/sys/modules/ixgb/Makefile#2 integrate .. //depot/projects/kse/sys/modules/vx/Makefile#2 integrate .. //depot/projects/kse/sys/net/bpf.c#17 integrate .. //depot/projects/kse/sys/net/firewire.h#1 branch .. //depot/projects/kse/sys/net/if.c#24 integrate .. //depot/projects/kse/sys/net/if_arp.h#7 integrate .. //depot/projects/kse/sys/net/if_fwsubr.c#1 branch .. //depot/projects/kse/sys/net/if_ppp.c#15 integrate .. //depot/projects/kse/sys/net/if_sl.c#15 integrate .. //depot/projects/kse/sys/net/if_spppsubr.c#13 integrate .. //depot/projects/kse/sys/net/if_var.h#18 integrate .. //depot/projects/kse/sys/net/netisr.h#8 integrate .. //depot/projects/kse/sys/net/raw_cb.c#7 integrate .. //depot/projects/kse/sys/net/raw_cb.h#7 integrate .. //depot/projects/kse/sys/net/raw_usrreq.c#11 integrate .. //depot/projects/kse/sys/net/rtsock.c#23 integrate .. //depot/projects/kse/sys/net80211/ieee80211_input.c#3 integrate .. //depot/projects/kse/sys/netatalk/ddp_input.c#8 integrate .. //depot/projects/kse/sys/netatalk/ddp_output.c#4 integrate .. //depot/projects/kse/sys/netatalk/ddp_pcb.c#2 integrate .. //depot/projects/kse/sys/netatm/atm_aal5.c#9 integrate .. //depot/projects/kse/sys/netatm/atm_ioctl.h#5 integrate .. //depot/projects/kse/sys/netatm/atm_socket.c#8 integrate .. //depot/projects/kse/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#4 integrate .. //depot/projects/kse/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#4 integrate .. //depot/projects/kse/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#4 integrate .. //depot/projects/kse/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#3 integrate .. //depot/projects/kse/sys/netgraph/ng_ksocket.c#21 integrate .. //depot/projects/kse/sys/netgraph/ng_message.h#4 integrate .. //depot/projects/kse/sys/netgraph/ng_rfc1490.c#6 integrate .. //depot/projects/kse/sys/netgraph/ng_rfc1490.h#3 integrate .. //depot/projects/kse/sys/netinet/accf_http.c#7 integrate .. //depot/projects/kse/sys/netinet/if_ether.c#17 integrate .. //depot/projects/kse/sys/netinet/igmp.c#8 integrate .. //depot/projects/kse/sys/netinet/in.h#14 integrate .. //depot/projects/kse/sys/netinet/in_pcb.c#24 integrate .. //depot/projects/kse/sys/netinet/ip_divert.c#19 integrate .. //depot/projects/kse/sys/netinet/ip_fw.h#14 integrate .. //depot/projects/kse/sys/netinet/ip_fw2.c#9 integrate .. //depot/projects/kse/sys/netinet/ip_input.c#29 integrate .. //depot/projects/kse/sys/netinet/ip_output.c#32 integrate .. //depot/projects/kse/sys/netinet/raw_ip.c#20 integrate .. //depot/projects/kse/sys/netinet/tcp_input.c#32 integrate .. //depot/projects/kse/sys/netinet/tcp_subr.c#24 integrate .. //depot/projects/kse/sys/netinet/tcp_syncache.c#22 integrate .. //depot/projects/kse/sys/netinet/tcp_usrreq.c#16 integrate .. //depot/projects/kse/sys/netinet6/in6_pcb.c#20 integrate .. //depot/projects/kse/sys/netinet6/ip6_input.c#14 integrate .. //depot/projects/kse/sys/netipx/ipx_pcb.c#9 integrate .. //depot/projects/kse/sys/netipx/ipx_usrreq.c#10 integrate .. //depot/projects/kse/sys/netipx/spx_usrreq.c#11 integrate .. //depot/projects/kse/sys/netnatm/natm.c#9 integrate .. //depot/projects/kse/sys/netsmb/smb_trantcp.c#11 integrate .. //depot/projects/kse/sys/pc98/i386/machdep.c#37 integrate .. //depot/projects/kse/sys/pc98/pc98/pc98gdc.c#7 integrate .. //depot/projects/kse/sys/pc98/pc98/sio.c#22 integrate .. //depot/projects/kse/sys/pci/if_dc.c#24 integrate .. //depot/projects/kse/sys/pci/if_de.c#7 integrate .. //depot/projects/kse/sys/pci/if_mn.c#5 integrate .. //depot/projects/kse/sys/pci/if_pcn.c#10 integrate .. //depot/projects/kse/sys/pci/if_rl.c#18 integrate .. //depot/projects/kse/sys/pci/if_sf.c#13 integrate .. //depot/projects/kse/sys/pci/if_sis.c#18 integrate .. //depot/projects/kse/sys/pci/if_sk.c#11 integrate .. //depot/projects/kse/sys/pci/if_ste.c#16 integrate .. //depot/projects/kse/sys/pci/if_vr.c#11 integrate .. //depot/projects/kse/sys/pci/if_wb.c#9 integrate .. //depot/projects/kse/sys/pci/if_xl.c#15 integrate .. //depot/projects/kse/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/kse/sys/sparc64/conf/GENERIC#23 integrate .. //depot/projects/kse/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/kse/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/kse/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/kse/sys/sys/_types.h#8 integrate .. //depot/projects/kse/sys/sys/gmon.h#5 integrate .. //depot/projects/kse/sys/sys/ioctl.h#5 integrate .. //depot/projects/kse/sys/sys/linedisc.h#2 integrate .. //depot/projects/kse/sys/sys/mbuf.h#18 integrate .. //depot/projects/kse/sys/sys/param.h#29 integrate .. //depot/projects/kse/sys/sys/resource.h#9 integrate .. //depot/projects/kse/sys/sys/signal.h#10 integrate .. //depot/projects/kse/sys/sys/socketvar.h#28 integrate .. //depot/projects/kse/sys/sys/tty.h#11 integrate .. //depot/projects/kse/sys/sys/types.h#23 integrate .. //depot/projects/kse/sys/sys/vmmeter.h#5 integrate .. //depot/projects/kse/sys/ufs/ffs/ffs_snapshot.c#17 integrate .. //depot/projects/kse/sys/vm/uma_core.c#17 integrate .. //depot/projects/kse/sys/vm/vm_contig.c#12 integrate .. //depot/projects/kse/sys/vm/vm_mmap.c#24 integrate .. //depot/projects/kse/sys/vm/vm_pageq.c#8 integrate .. //depot/projects/kse/tools/regression/lib/msun/Makefile#1 branch .. //depot/projects/kse/tools/regression/lib/msun/test-fenv.c#1 branch Differences ... ==== //depot/projects/kse/gnu/usr.bin/binutils/gdb/Makefile#9 (text+ko) ==== @@ -1,5 +1,5 @@ # ex:ts=8 -# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.79 2004/03/17 07:40:42 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.80 2004/06/11 16:09:38 obrien Exp $ .include "../Makefile.inc0" @@ -45,7 +45,7 @@ scm-exp.c scm-lang.c scm-valprint.c \ coffread.c dbxread.c dwarfread.c dwarf2read.c elfread.c \ solib.c solib-svr4.c solib-legacy.c -XSRCS+= freebsd-uthread.c kvm-fbsd.c solib-fbsd-kld.c +XSRCS+= freebsd-uthread.c kvm-fbsd.c kvm-fbsd-machine.h solib-fbsd-kld.c SRCS= init.c ${XSRCS} nm.h tm.h xm.h gdbversion.c xregex.h .include "${.CURDIR}/Makefile.${TARGET_ARCH}" @@ -73,7 +73,7 @@ LDADD+= ${RELTOP}/libiberty/libiberty.a LDADD+= -lreadline -ltermcap -CLEANFILES= init.c init.c-tmp nm.h tm.h xm.h gdbversion.c xregex.h +CLEANFILES= init.c init.c-tmp nm.h tm.h xm.h gdbversion.c xregex.h kvm-fbsd-machine.h # We do this by grepping through sources. If that turns out to be too slow, # maybe we could just require every .o file to have an initialization routine @@ -127,6 +127,9 @@ ln -sf ${GDBDIR}/gdb/config/${GDB_CPU}/${H}.h ${.TARGET} .endfor +kvm-fbsd-machine.h: + ln -sf ${.CURDIR}/kvm-fbsd-${TARGET_ARCH}.h ${.TARGET} + GDB_VERSION= "5.2.1 (FreeBSD)" gdbversion.c: Makefile @echo '#include "version.h"' > ${.TARGET} ==== //depot/projects/kse/gnu/usr.bin/binutils/gdb/kvm-fbsd.c#6 (text+ko) ==== @@ -19,7 +19,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $FreeBSD: src/gnu/usr.bin/binutils/gdb/kvm-fbsd.c,v 1.48 2004/05/10 17:45:51 obrien Exp $ */ +#include +__FBSDID("$FreeBSD: src/gnu/usr.bin/binutils/gdb/kvm-fbsd.c,v 1.49 2004/06/11 16:09:38 obrien Exp $"); /* * This works like "remote" but, you use it like this: @@ -33,31 +34,27 @@ */ #include -#include -#include #include -#include -#include +#include #include #include #include #include -#include -#include #include "defs.h" +#include #include "gdb_string.h" #include "frame.h" /* required by inferior.h */ #include "inferior.h" -#include "symtab.h" #include "symfile.h" #include "objfiles.h" #include "command.h" #include "bfd.h" -#include "target.h" #include "gdbcore.h" #include "solist.h" +#include "kvm-fbsd-machine.h" + static void kcore_files_info (struct target_ops *); @@ -68,10 +65,6 @@ get_kcore_registers (int); static int -xfer_mem (CORE_ADDR, char *, int, int, struct mem_attrib *, - struct target_ops *); - -static int xfer_umem (CORE_ADDR, char *, int, int); #ifdef SOLIB_ADD @@ -116,7 +109,7 @@ #define KERNOFF (ksym_kernbase ()) #define INKERNEL(x) ((x) >= KERNOFF) -CORE_ADDR +static CORE_ADDR ksym_lookup(const char *name) { struct minimal_symbol *sym; @@ -190,8 +183,6 @@ static int set_context (CORE_ADDR addr) { - CORE_ADDR procaddr = 0; - if (kvread (addr, &cur_pcb)) error ("cannot read pcb at %#x", addr); @@ -349,253 +340,6 @@ printf_filtered ("No kernel core file now.\n"); } -#ifdef __alpha__ - -#include "alpha/tm-alpha.h" -#ifndef S0_REGNUM -#define S0_REGNUM (T7_REGNUM+1) -#endif - -fetch_kcore_registers (struct pcb *pcbp) -{ - - /* First clear out any garbage. */ - memset (registers, '\0', REGISTER_BYTES); - - /* SP */ - *(long *) ®isters[REGISTER_BYTE (SP_REGNUM)] = - pcbp->pcb_hw.apcb_ksp; - - /* S0 through S6 */ - memcpy (®isters[REGISTER_BYTE (S0_REGNUM)], - &pcbp->pcb_context[0], 7 * sizeof (long)); - - /* PC */ - *(long *) ®isters[REGISTER_BYTE (PC_REGNUM)] = - pcbp->pcb_context[7]; - - registers_fetched (); -} - - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR this_saved_pc; - - this_saved_pc = alpha_frame_saved_pc (fi); - - sym = lookup_minimal_symbol_by_pc (this_saved_pc); - - if (sym != NULL && - (strcmp (SYMBOL_NAME (sym), "XentArith") == 0 || - strcmp (SYMBOL_NAME (sym), "XentIF") == 0 || - strcmp (SYMBOL_NAME (sym), "XentInt") == 0 || - strcmp (SYMBOL_NAME (sym), "XentMM") == 0 || - strcmp (SYMBOL_NAME (sym), "XentSys") == 0 || - strcmp (SYMBOL_NAME (sym), "XentUna") == 0 || - strcmp (SYMBOL_NAME (sym), "XentRestart") == 0)) - { - return (read_memory_integer (fi->frame + 32 * 8, 8)); - } - else - { - return (this_saved_pc); - } -} - -#endif /* __alpha__ */ - -#ifdef __i386__ - -static CORE_ADDR -ksym_maxuseraddr (void) -{ - static CORE_ADDR maxuseraddr; - struct minimal_symbol *sym; - - if (maxuseraddr == 0) - { - sym = lookup_minimal_symbol ("PTmap", NULL, NULL); - if (sym == NULL) { - maxuseraddr = VM_MAXUSER_ADDRESS; - } else { - maxuseraddr = SYMBOL_VALUE_ADDRESS (sym); - } - } - return maxuseraddr; -} - - -/* Symbol names of kernel entry points. Use special frames. */ -#define KSYM_TRAP "calltrap" -#define KSYM_INTR "Xintr" -#define KSYM_FASTINTR "Xfastintr" -#define KSYM_OLDSYSCALL "Xlcall_syscall" -#define KSYM_SYSCALL "Xint0x80_syscall" - -/* The following is FreeBSD-specific hackery to decode special frames - and elide the assembly-language stub. This could be made faster by - defining a frame_type field in the machine-dependent frame information, - but we don't think that's too important right now. */ -enum frametype { tf_normal, tf_trap, tf_interrupt, tf_syscall }; - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR this_saved_pc; - enum frametype frametype; - - this_saved_pc = read_memory_integer (fi->frame + 4, 4); - sym = lookup_minimal_symbol_by_pc (this_saved_pc); - frametype = tf_normal; - if (sym != NULL) - { - if (strcmp (SYMBOL_NAME (sym), KSYM_TRAP) == 0) - frametype = tf_trap; - else - if (strncmp (SYMBOL_NAME (sym), KSYM_INTR, - strlen (KSYM_INTR)) == 0 || strncmp (SYMBOL_NAME(sym), - KSYM_FASTINTR, strlen (KSYM_FASTINTR)) == 0) - frametype = tf_interrupt; - else - if (strcmp (SYMBOL_NAME (sym), KSYM_SYSCALL) == 0 || - strcmp (SYMBOL_NAME (sym), KSYM_OLDSYSCALL) == 0) - frametype = tf_syscall; - } - - switch (frametype) - { - case tf_normal: - return (this_saved_pc); -#define oEIP offsetof (struct trapframe, tf_eip) - - case tf_trap: - return (read_memory_integer (fi->frame + 8 + oEIP, 4)); - - case tf_interrupt: - return (read_memory_integer (fi->frame + 12 + oEIP, 4)); - - case tf_syscall: - return (read_memory_integer (fi->frame + 8 + oEIP, 4)); -#undef oEIP - } -} - -static int -fetch_kcore_registers (struct pcb *pcb) -{ - int i; - int noreg; - - /* Get the register values out of the sys pcb and store them where - `read_register' will find them. */ - /* - * XXX many registers aren't available. - * XXX for the non-core case, the registers are stale - they are for - * the last context switch to the debugger. - * XXX gcc's register numbers aren't all #defined in tm-i386.h. - */ - noreg = 0; - for (i = 0; i < 3; ++i) /* eax,ecx,edx */ - supply_register (i, (char *)&noreg); - - supply_register (3, (char *) &pcb->pcb_ebx); - supply_register (SP_REGNUM, (char *) &pcb->pcb_esp); - supply_register (FP_REGNUM, (char *) &pcb->pcb_ebp); - supply_register (6, (char *) &pcb->pcb_esi); - supply_register (7, (char *) &pcb->pcb_edi); - supply_register (PC_REGNUM, (char *) &pcb->pcb_eip); - - for (i = 9; i < 14; ++i) /* eflags, cs, ss, ds, es, fs */ - supply_register (i, (char *) &noreg); - supply_register (15, (char *) &pcb->pcb_gs); - - /* XXX 80387 registers? */ -} - -#endif /* __i386__ */ - -#ifdef __sparc64__ - -#define SPARC_INTREG_SIZE 8 - -static void -fetch_kcore_registers (struct pcb *pcbp) -{ - static struct frame top; - CORE_ADDR f_addr; - int i; - - /* Get the register values out of the sys pcb and store them where - `read_register' will find them. */ - /* - * XXX many registers aren't available. - * XXX for the non-core case, the registers are stale - they are for - * the last context switch to the debugger. - * XXX do something with the floating-point registers? - */ - supply_register (SP_REGNUM, (char *)&pcbp->pcb_ufp); - supply_register (PC_REGNUM, (char *)&pcbp->pcb_pc); - f_addr = extract_address (&pcbp->pcb_ufp, SPARC_INTREG_SIZE); - /* Load the previous frame by hand (XXX) and supply it. */ - read_memory (f_addr + SPOFF, (char *)&top, sizeof (top)); - for (i = 0; i < 8; i++) - supply_register (i + L0_REGNUM, (char *)&top.fr_local[i]); - for (i = 0; i < 8; i++) - supply_register (i + I0_REGNUM, (char *)&top.fr_in[i]); -} - -CORE_ADDR -fbsd_kern_frame_saved_pc (struct frame_info *fi) -{ - struct minimal_symbol *sym; - CORE_ADDR frame, pc_addr, pc; - char *buf; - - buf = alloca (MAX_REGISTER_RAW_SIZE); - /* XXX: duplicates fi->extra_info->bottom. */ - frame = (fi->next != NULL) ? fi->next->frame : read_sp (); - pc_addr = frame + offsetof (struct frame, fr_in[7]); - -#define READ_PC(pc, a, b) do { \ - read_memory (a, b, SPARC_INTREG_SIZE); \ - pc = extract_address (b, SPARC_INTREG_SIZE); \ -} while (0) - - READ_PC (pc, pc_addr, buf); - - sym = lookup_minimal_symbol_by_pc (pc); - if (sym != NULL) - { - if (strncmp (SYMBOL_NAME (sym), "tl0_", 4) == 0 || - strcmp (SYMBOL_NAME (sym), "btext") == 0 || - strcmp (SYMBOL_NAME (sym), "mp_startup") == 0 || - strcmp (SYMBOL_NAME (sym), "fork_trampoline") == 0) - { - /* - * Ugly kluge: user space addresses aren't separated from kernel - * ones by range; if encountering a trap from user space, just - * return a 0 to stop the trace. - * Do the same for entry points of kernel processes to avoid - * printing garbage. - */ - pc = 0; - } - if (strncmp (SYMBOL_NAME (sym), "tl1_", 4) == 0) - { - pc_addr = fi->frame + sizeof (struct frame) + - offsetof (struct trapframe, tf_tpc); - READ_PC (pc, pc_addr, buf); - } - } - return (pc); -} - -#endif /* __sparc64__ */ - /* Get the registers out of a core file. This is the machine- independent part. Fetch_core_registers is the machine-dependent part, typically implemented in the xm-file for each architecture. */ @@ -623,16 +367,7 @@ printf_filtered ("\t`%s'\n", core_file); } -/* If mourn is being called in all the right places, this could be say - `gdb internal error' (since generic_mourn calls breakpoint_init_inferior). */ - static int -ignore (CORE_ADDR addr, char *contents) -{ - return 0; -} - -static int xfer_kmem (CORE_ADDR memaddr, char *myaddr, int len, int write, struct mem_attrib *attrib, struct target_ops *target) { @@ -651,7 +386,7 @@ n = kvm_read (core_kd, memaddr, myaddr, len) ; if (n < 0) { fprintf_unfiltered (gdb_stderr, "can not access 0x%x, %s\n", - memaddr, kvm_geterr (core_kd)); + (unsigned)memaddr, kvm_geterr (core_kd)); n = 0; } ==== //depot/projects/kse/include/Makefile#6 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.213 2004/05/20 10:29:26 pjd Exp $ +# $FreeBSD: src/include/Makefile,v 1.214 2004/06/13 17:29:05 mlaier Exp $ # # Doing a "make install" builds /usr/include. @@ -111,6 +111,9 @@ cd ${.CURDIR}/../sys/dev/bktr; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \ ${DESTDIR}${INCLUDEDIR}/dev/bktr + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/altq cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/netinet @@ -149,6 +152,11 @@ ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + for h in *.h; do \ + ln -fs ../../../sys/contrib/altq/altq/$$h \ + ${DESTDIR}${INCLUDEDIR}/altq; \ + done cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ for h in *.h; do \ ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \ ==== //depot/projects/kse/lib/libc/gen/fts.c#5 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/gen/fts.c,v 1.26 2004/05/13 15:59:38 bde Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/fts.c,v 1.27 2004/06/08 06:23:23 das Exp $"); #include "namespace.h" #include @@ -710,8 +710,6 @@ cur->fts_flags |= FTS_DONTCHDIR; descend = 0; cderrno = errno; - (void)closedir(dirp); - dirp = NULL; } else descend = 1; } else ==== //depot/projects/kse/lib/libc/gmon/moncontrol.3#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)moncontrol.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.14 2002/12/19 09:40:22 ru Exp $ +.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.15 2004/06/14 18:41:24 bms Exp $ .\" -.Dd June 4, 1993 +.Dd June 14, 2004 .Dt MONCONTROL 3 .Os .Sh NAME @@ -43,6 +43,7 @@ .Lb libc .Sh SYNOPSIS .In sys/types.h +.In sys/gmon.h .Ft int .Fn moncontrol "int mode" .Ft int ==== //depot/projects/kse/lib/libc/net/inet.3#4 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.25 2002/09/06 11:23:49 tjr Exp $ +.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.27 2004/06/14 14:24:18 bms Exp $ .\" -.Dd June 17, 1996 +.Dd June 14, 2004 .Dt INET 3 .Os .Sh NAME @@ -119,10 +119,17 @@ .Pp The function .Fn inet_ntop -converts an address from network format (usually a +converts an address +.Fa *src +from network format +(usually a .Ft struct in_addr or some other binary form, in network byte order) to presentation format (suitable for external display purposes). +The +.Fa size +argument specifies the size, in bytes, of the buffer +.Fa *dst . It returns NULL if a system error occurs (in which case, .Va errno will have been set), or it returns a pointer to the destination string. @@ -226,6 +233,18 @@ and .Fn inet_network for malformed requests. +.Sh ERRORS +The +.Fn inet_ntop +call fails if: +.Bl -tag -width Er +.It Bq Er ENOSPC +.Fa size +was not large enough to store the presentation form of the address. +.It Bq Er EAFNOSUPPORT +.Fa *src +was not an AF_INET or AF_INET6 family address. +.El .Sh SEE ALSO .Xr addr2ascii 3 , .Xr byteorder 3 , ==== //depot/projects/kse/lib/libc/stdio/fvwrite.c#3 (text+ko) ==== @@ -38,9 +38,8 @@ static char sccsid[] = "@(#)fvwrite.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fvwrite.c,v 1.16 2004/03/02 19:43:51 jkh Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fvwrite.c,v 1.17 2004/06/08 05:45:48 das Exp $"); -#include #include #include #include @@ -68,10 +67,8 @@ if ((len = uio->uio_resid) == 0) return (0); /* make sure we can write */ - if (cantwrite(fp)) { - errno = EBADF; + if (prepwrite(fp) != 0) return (EOF); - } #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define COPY(n) (void)memcpy((void *)fp->_p, (void *)p, (size_t)(n)) ==== //depot/projects/kse/lib/libc/stdio/local.h#8 (text+ko) ==== @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)local.h 8.3 (Berkeley) 7/3/94 - * $FreeBSD: src/lib/libc/stdio/local.h,v 1.24 2004/05/22 15:19:41 tjr Exp $ + * $FreeBSD: src/lib/libc/stdio/local.h,v 1.25 2004/06/08 05:45:32 das Exp $ */ #include /* for off_t */ @@ -93,9 +93,10 @@ }; /* - * Return true iff the given FILE cannot be written now. + * Prepare the given FILE for writing, and return 0 iff it + * can be written now. Otherwise, return EOF and set errno. */ -#define cantwrite(fp) \ +#define prepwrite(fp) \ ((((fp)->_flags & __SWR) == 0 || \ ((fp)->_bf._base == NULL && ((fp)->_flags & __SSTR) == 0)) && \ __swsetup(fp)) ==== //depot/projects/kse/lib/libc/stdio/vfprintf.c#9 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)vfprintf.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.65 2004/05/02 10:55:05 das Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.67 2004/06/08 12:03:48 stefanf Exp $"); /* * Actual printf innards. @@ -642,7 +642,7 @@ decimal_point = localeconv()->decimal_point; #endif /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */ - if (cantwrite(fp)) + if (prepwrite(fp) != 0) return (EOF); /* optimise fprintf(stderr) (and other unbuffered Unix files) */ @@ -1273,7 +1273,7 @@ */ #define ADDTYPE(type) \ ((nextarg >= tablesize) ? \ - __grow_type_table(nextarg, &typetable, &tablesize) : 0, \ + __grow_type_table(nextarg, &typetable, &tablesize) : (void)0, \ (nextarg > tablemax) ? tablemax = nextarg : 0, \ typetable[nextarg++] = type) ==== //depot/projects/kse/lib/libc/stdio/vfwprintf.c#5 (text+ko) ==== @@ -40,7 +40,7 @@ #endif /* LIBC_SCCS and not lint */ #endif #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/vfwprintf.c,v 1.20 2004/05/02 20:09:14 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/vfwprintf.c,v 1.22 2004/06/08 12:03:48 stefanf Exp $"); /* * Actual wprintf innards. @@ -648,7 +648,7 @@ #endif convbuf = NULL; /* sorry, fwprintf(read_only_file, L"") returns WEOF, not 0 */ - if (cantwrite(fp)) + if (prepwrite(fp) != 0) return (EOF); /* optimise fprintf(stderr) (and other unbuffered Unix files) */ @@ -1268,7 +1268,7 @@ */ #define ADDTYPE(type) \ ((nextarg >= tablesize) ? \ - __grow_type_table(nextarg, &typetable, &tablesize) : 0, \ + __grow_type_table(nextarg, &typetable, &tablesize) : (void)0, \ (nextarg > tablemax) ? tablemax = nextarg : 0, \ typetable[nextarg++] = type) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 15 14:42:20 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7078016A4D0; Tue, 15 Jun 2004 14:42:20 +0000 (GMT) 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 44BF416A4CE for ; Tue, 15 Jun 2004 14:42:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3EB8243D1F for ; Tue, 15 Jun 2004 14:42:20 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FEg7wV081635 for ; Tue, 15 Jun 2004 14:42:07 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FEg622081626 for perforce@freebsd.org; Tue, 15 Jun 2004 14:42:06 GMT (envelope-from jmallett@freebsd.org) Date: Tue, 15 Jun 2004 14:42:06 GMT Message-Id: <200406151442.i5FEg622081626@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 55026 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, 15 Jun 2004 14:42:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=55026 Change 55026 by jmallett@jmallett_oingo on 2004/06/15 14:41:17 Move CPU interrupt establishment to a file with the idea that: o) The CPU bus will provide access for other busses and devices to raw interrupts by way of a "fast" style call. o) CPU interrupts are few(#) and short between, and usually map to something else or MUST be handled fast, i.e. bus reset or clock tick. o) You can jam on the ithreads at the layer they're needed (I will probably add an intr_machdep.c for this purpose later.) o) Soft interrutps on the CPU need to go through a magic API anyway. Does FreeBSD even have anything to really use them? Might be a fun way to fake a real interrupty console with ARCS. o) Nothing should request a hard interrupt without going through the bus layer. This is just the mechanical separation and fixup of wrong includes of directly. Also moves interrupt processing out of the trap() path, since it is not owned by the platform anymore. It is now done in cpu_intr() in interrupt.c, which was like platform_intr(), except it can pass on the trapframe. XXX A big caveat to doing the bussification of interrupts will be the mapped interrupt stuff. I think I have a good model of that in my head for hanging off "mainbus" - it's why I killed the local0 and whatnot in NetBSD at first anyway, but I brought them back because I needed to go down that road soon :( Meta-XXX note that by "hanging off" I do not mean a device attached to mainbus, that'd just be tricky. I mean it would have carnal knowledge of the machine and be able to figure out how to map interrupts. This actually seems reasonable to me. Either that or do a nexus down at that level. Affected files ... .. //depot/projects/mips/sys/conf/files.mips#40 edit .. //depot/projects/mips/sys/mips/include/intr.h#3 edit .. //depot/projects/mips/sys/mips/mips/clock_r4k.c#2 edit .. //depot/projects/mips/sys/mips/mips/exception.S#30 edit .. //depot/projects/mips/sys/mips/mips/interrupt.c#1 add .. //depot/projects/mips/sys/mips/mips/trap.c#25 edit .. //depot/projects/mips/sys/mips/sgimips/clock.c#12 edit .. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#10 edit .. //depot/projects/mips/sys/mips/sgimips/intr.h#7 edit .. //depot/projects/mips/sys/mips/sgimips/ip22.c#10 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#37 edit .. //depot/projects/mips/sys/mips/sgimips/mainbus.c#2 edit Differences ... ==== //depot/projects/mips/sys/conf/files.mips#40 (text+ko) ==== @@ -19,6 +19,7 @@ mips/mips/elf_machdep.c standard mips/mips/exception.S standard mips/mips/in_cksum.c optional inet +mips/mips/interrupt.c standard mips/mips/locore.S standard no-obj mips/mips/machdep.c standard mips/mips/pmap.c standard ==== //depot/projects/mips/sys/mips/include/intr.h#3 (text+ko) ==== @@ -23,15 +23,21 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/include/intr.h#2 $ + * $P4: //depot/projects/mips/sys/mips/include/intr.h#3 $ */ #ifndef _MACHINE_INTR_H_ #define _MACHINE_INTR_H_ +struct trapframe; + /* * Include the platform-specific MD interrupt header. */ #include +void cpu_establish_hardintr(int, void (*)(void *), void *); +void cpu_establish_softintr(int, void (*)(void *), void *); +void cpu_intr(struct trapframe *); + #endif /* !_MACHINE_INTR_H_ */ ==== //depot/projects/mips/sys/mips/mips/clock_r4k.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ #include #include #include -#include +#include static unsigned r4k_get_timecount(struct timecounter *); @@ -112,7 +112,7 @@ { r4k_timecounter.tc_frequency = curcpu()->ci_cpu_freq; tc_init(&r4k_timecounter); - platform_establish_hardintr(5, r4k_clock_intr, NULL); + cpu_establish_hardintr(5, r4k_clock_intr, NULL); mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); return (0); } ==== //depot/projects/mips/sys/mips/mips/exception.S#30 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/mips/exception.S#29 $ + * $P4: //depot/projects/mips/sys/mips/mips/exception.S#30 $ */ #include "opt_ddb.h" @@ -125,15 +125,36 @@ mtc0 t0, MIPS_COP_0_STATUS /* + * If this is an interrupt, call cpu_intr() with the arguments: + * trapframe + * + * Otherwise, go to trap(). Trapframe is set to a0 from k1 in the + * BDslot here. + */ + mfc0 a1, MIPS_COP_0_CAUSE + and k0, a1, MIPS_CR_EXC_CODE + bnez k0, 1f + move a0, k1 + + jal cpu_intr + nop + + b 2f + nop + + /* * Call trap() with arguments: * trapframe, cause, badvaddr. * - * The trapframe is copied from k1 to a0 in the BDslot. + * The trapframe is copied from k1 to a0 in the BDslot above. + * Cause is set up above when computing the code. */ +1: mfc0 a1, MIPS_COP_0_CAUSE dmfc0 a2, MIPS_COP_0_BAD_VADDR jal trap - move a0, k1 + nop +2: /* * Make sure interrupts are disabled for the purposes of ==== //depot/projects/mips/sys/mips/mips/trap.c#25 (text+ko) ==== @@ -117,12 +117,6 @@ /* XXX Kernel only. */ tlb_modified(badvaddr); goto done; - case TrInt: - /*platform_trap_exit();*/ - critical_enter(); - platform_intr(tf); - critical_exit(); - goto done; case TrAdEL: case TrDBE: if (trap_error == -1/* && trap_addr == badvaddr*/) { ==== //depot/projects/mips/sys/mips/sgimips/clock.c#12 (text+ko) ==== @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include void ==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#10 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#9 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#10 $ */ #include @@ -36,9 +36,9 @@ #include #include +#include #include #include -#include static devclass_t imc_devclass; @@ -128,7 +128,7 @@ /* Clear error status and set up bus error handler. */ imc_reset(dev); - platform_establish_hardintr(4, imc_reset, dev); + cpu_establish_hardintr(4, imc_reset, dev); /* * Enable parity reporting on GIO/main memory transactions. ==== //depot/projects/mips/sys/mips/sgimips/intr.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#6 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/intr.h#7 $ */ #ifndef _SGIMIPS_INTR_H_ @@ -31,7 +31,4 @@ #define NINTR 32 -void platform_establish_hardintr(int, void (*)(void *), void *); -void platform_establish_softintr(int, void (*)(void *), void *); - #endif /* _SGIMIPS_INTR_H_ */ ==== //depot/projects/mips/sys/mips/sgimips/ip22.c#10 (text+ko) ==== @@ -44,9 +44,9 @@ #include #include +#include #include #include -#include #include #include #include @@ -121,8 +121,8 @@ unsigned long cps; unsigned long ctrdiff[3]; - platform_establish_hardintr(0, int_local0_intr, NULL); - platform_establish_hardintr(1, int_local1_intr, NULL); + cpu_establish_hardintr(0, int_local0_intr, NULL); + cpu_establish_hardintr(1, int_local1_intr, NULL); /* calibrate timer */ int_cal_timer(); ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#37 (text+ko) ==== @@ -43,7 +43,7 @@ #include #include -#include +#include #include #include @@ -62,13 +62,6 @@ { NULL, NULL, 0 } }; -struct intrhand { - void (*handler)(void *); - void *arg; -}; -static struct intrhand intrhard[6]; -static struct intrhand intrsoft[2]; - int arcsmem, availmem, lpmem; int mach_type, mach_subtype, mach_boardrev; @@ -174,79 +167,6 @@ ctob(availmem) / (1024 * 1024)); } -void -platform_establish_hardintr(int intr, void (*handler)(void *), void *arg) -{ - struct intrhand *ih; - - if (intr < 0 || intr > 5) - panic("%s called for unknown hard intr %d", __func__, intr); - ih = &intrhard[intr]; - if (ih->handler != NULL && ih->handler != handler) - panic("%s cannot share hard intr %d", __func__, intr); - ih->handler = handler; - ih->arg = arg; - - /* Route above the 2 lower software interrupt bits. */ - mips_wr_status(mips_rd_status() | (((1 << intr) << 8) << 2)); -} - -void -platform_establish_softintr(int intr, void (*handler)(void *), void *arg) -{ - struct intrhand *ih; - - if (intr < 0 || intr > 1) - panic("%s called for unknown soft intr %d", __func__, intr); - ih = &intrsoft[intr]; - if (ih->handler != NULL && ih->handler != handler) - panic("%s cannot share soft intr %d", __func__, intr); - ih->handler = handler; - ih->arg = arg; - - mips_wr_status(mips_rd_status() | ((1 << intr) << 8)); -} - -void -platform_intr(struct trapframe *tf) -{ - struct intrhand *ih; - register_t cause; - int hard; - int intr; - int i; - - cause = mips_rd_cause(); - intr = (cause & MIPS_INT_MASK) >> 8; - cause &= ~MIPS_INT_MASK; - mips_wr_cause(cause); - - while ((i = fls(intr)) != 0) { - intr &= ~(1 << (i - 1)); - switch (i) { - case 1: case 2: - /* Software interrupt. */ - i--; /* Get a 0-offset interrupt. */ - hard = 0; - ih = &intrsoft[i]; - break; - default: - /* Hardware interrupt. */ - i -= 2; /* Trim software interrupt bits. */ - i--; /* Get a 0-offset interrupt. */ - hard = 1; - ih = &intrhard[i]; - break; - } - if (ih->handler != NULL) - (*ih->handler)(ih->arg); - else - printf("stray %s interrupt %d\n", - hard ? "hard" : "soft", i); - } - KASSERT(i == 0, ("all interrupts handled")); -} - /* * XXX Maybe return the state of the watchdog in enter, and pass it to * exit? Like spl(). ==== //depot/projects/mips/sys/mips/sgimips/mainbus.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips/sys/mips/sgimips/mainbus.c#1 $ + * $P4: //depot/projects/mips/sys/mips/sgimips/mainbus.c#2 $ */ #include @@ -36,8 +36,8 @@ #include #include +#include #include -#include static devclass_t mainbus_devclass; From owner-p4-projects@FreeBSD.ORG Tue Jun 15 21:07:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DB22316A4D0; Tue, 15 Jun 2004 21:07:34 +0000 (GMT) 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 B201F16A4CE for ; Tue, 15 Jun 2004 21:07:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AD5D343D31 for ; Tue, 15 Jun 2004 21:07:34 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FL7635078110 for ; Tue, 15 Jun 2004 21:07:06 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FL76Ll078107 for perforce@freebsd.org; Tue, 15 Jun 2004 21:07:06 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 21:07:06 GMT Message-Id: <200406152107.i5FL76Ll078107@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 55046 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, 15 Jun 2004 21:07:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=55046 Change 55046 by peter@peter_daintree on 2004/06/15 21:06:29 Argh. The search_symbol methods need to compensate for the bases too. I think its time to switch to iedwose's alternate strategy. Affected files ... .. //depot/projects/hammer/sys/kern/link_elf_obj.c#41 edit Differences ... ==== //depot/projects/hammer/sys/kern/link_elf_obj.c#41 (text+ko) ==== @@ -772,6 +772,7 @@ u_long off = (uintptr_t) (void *) value; u_long diff = off; u_long st_value; + Elf_Addr base; const Elf_Sym *es; const Elf_Sym *best = 0; int i; @@ -779,7 +780,10 @@ for (i = 0, es = ef->ddbsymtab; i < ef->ddbsymcnt; i++, es++) { if (es->st_name == 0) continue; - st_value = es->st_value + (uintptr_t) (void *) ef->address; + base = findbase(ef, es->st_shndx); + if (base == 0) + base = (Elf_Addr)ef->address; + st_value = es->st_value + base; if (off >= st_value) { if (off - st_value < diff) { diff = off - st_value; From owner-p4-projects@FreeBSD.ORG Tue Jun 15 21:08:24 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8DC2716A4D0; Tue, 15 Jun 2004 21:08:24 +0000 (GMT) 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 6629116A4CE for ; Tue, 15 Jun 2004 21:08:24 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5F13243D46 for ; Tue, 15 Jun 2004 21:08:24 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FL890j078132 for ; Tue, 15 Jun 2004 21:08:09 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FL88CA078129 for perforce@freebsd.org; Tue, 15 Jun 2004 21:08:08 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 21:08:08 GMT Message-Id: <200406152108.i5FL88CA078129@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 55047 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, 15 Jun 2004 21:08:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=55047 Change 55047 by peter@peter_daintree on 2004/06/15 21:07:47 IFC @55045 Affected files ... .. //depot/projects/hammer/lib/libarchive/archive_read_extract.c#10 integrate .. //depot/projects/hammer/sbin/geom/core/Makefile#2 integrate .. //depot/projects/hammer/share/man/man4/ip.4#10 integrate .. //depot/projects/hammer/share/man/man7/security.7#7 integrate .. //depot/projects/hammer/share/man/man9/rtentry.9#5 integrate .. //depot/projects/hammer/sys/alpha/alpha/pmap.c#25 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#81 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/if_altq.h#2 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#27 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#35 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.c#22 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.h#22 integrate .. //depot/projects/hammer/sys/dev/ciss/ciss.c#23 integrate .. //depot/projects/hammer/sys/dev/firewire/sbp.c#29 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#19 integrate .. //depot/projects/hammer/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/hammer/sys/i386/acpica/acpi_toshiba.c#8 integrate .. //depot/projects/hammer/sys/i386/i386/bios.c#14 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#35 integrate .. //depot/projects/hammer/sys/kern/uipc_socket2.c#20 integrate .. //depot/projects/hammer/sys/net/if.c#20 integrate .. //depot/projects/hammer/sys/net/if_var.h#17 integrate .. //depot/projects/hammer/sys/net/raw_cb.c#6 integrate .. //depot/projects/hammer/sys/net/raw_cb.h#3 integrate .. //depot/projects/hammer/sys/net/raw_usrreq.c#9 integrate .. //depot/projects/hammer/sys/netinet/tcp_input.c#26 integrate .. //depot/projects/hammer/sys/netipx/spx_usrreq.c#8 integrate .. //depot/projects/hammer/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/hammer/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/hammer/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/hammer/sys/sys/socketvar.h#17 integrate .. //depot/projects/hammer/usr.bin/su/su.c#14 integrate .. //depot/projects/hammer/usr.bin/talk/talk.1#4 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.c#12 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.h#7 integrate .. //depot/projects/hammer/usr.bin/tar/matching.c#5 integrate Differences ... ==== //depot/projects/hammer/lib/libarchive/archive_read_extract.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.17 2004/06/05 06:08:40 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.18 2004/06/15 07:12:04 kientzle Exp $"); #include #include @@ -394,11 +394,10 @@ mode = st->st_mode; /* - * XXX TODO: Does this really work under all conditions? - * E.g., root restores a dir owned by someone else? XXX + * Use conservative permissions when creating directories + * to close a few security races. */ - /* Ensure we can write to this directory. */ - writable_mode = mode | 0700; + writable_mode = 0700; if (mode != writable_mode || flags & ARCHIVE_EXTRACT_TIME) { /* Add this dir to the fixup list. */ @@ -694,21 +693,34 @@ /* * Returns 0 if it successfully created necessary directories. * Otherwise, returns ARCHIVE_WARN. + * + * XXX TODO: Merge this with archive_extract_dir() above; that will + * allow us to deal with all directory-related security and + * permissions issues in one place. XXX */ static int mkdirpath(struct archive *a, const char *path) { char *p; struct extract *extract; + size_t len; extract = a->extract; /* Copy path to mutable storage, then call mkdirpath_recursive. */ archive_strcpy(&(extract->mkdirpath), path); + p = extract->mkdirpath.s; + len = strlen(p); + /* Prune trailing "/." sequence. */ + if (len > 2 && p[len - 1] == '.' && p[len - 2] == '/') { + p[len - 1] = 0; + len--; + } /* Prune a trailing '/' character. */ - p = extract->mkdirpath.s; - if (p[strlen(p)-1] == '/') - p[strlen(p)-1] = 0; + if (p[len - 1] == '/') { + p[len - 1] = 0; + len--; + } /* Recursively try to build the path. */ return (mkdirpath_recursive(p)); } @@ -736,6 +748,10 @@ static int mksubdir(char *path) { + /* + * TODO: Change mode here to 0700 and add a fixup entry + * to change the mode to 0755 after the extract is finished. + */ int mode = 0755; if (mkdir(path, mode) == 0) return (0); ==== //depot/projects/hammer/sbin/geom/core/Makefile#2 (text+ko) ==== @@ -1,9 +1,9 @@ -# $FreeBSD: src/sbin/geom/core/Makefile,v 1.5 2004/05/26 17:51:53 pjd Exp $ +# $FreeBSD: src/sbin/geom/core/Makefile,v 1.6 2004/06/15 17:31:35 pjd Exp $ .PATH: ${.CURDIR}/../misc PROG= geom -NOMAN= notyet +MAN= geom.8 SRCS= geom.c subr.c CFLAGS+= -DCLASSDIR=\"${CLASSDIR}\" ==== //depot/projects/hammer/share/man/man4/ip.4#10 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/ip.4,v 1.36 2004/06/15 01:08:09 bms Exp $ +.\" $FreeBSD: src/share/man/man4/ip.4,v 1.37 2004/06/15 16:48:42 bms Exp $ .\" .Dd June 14, 2004 .Dt IP 4 @@ -529,13 +529,20 @@ ip->ip_off = offset; .Ed .Pp -The ip_len and ip_off fields -.Em must be provided in host byte order . +The +.Va ip_len +and +.Va ip_off +fields +.Em must +be provided in host byte order . All other fields must be provided in network byte order. See .Xr byteorder 4 for more information on network byte order. -If the ip_id field is set to 0, then the kernel will choose an +If the +.Va ip_id +field is set to 0 then the kernel will choose an appopriate value. If the header source address is set to .Dv INADDR_ANY , @@ -582,12 +589,13 @@ datagrams via a .Dq raw socket with the -.Em IP_HDRINCL +.Dv IP_HDRINCL option set: .Bl -tag -width Er .It Bq Er EINVAL -The user-supplied ip_len field was not equal to the length of the datagram -written to the socket. +The user-supplied +.Va ip_len +field was not equal to the length of the datagram written to the socket. .El .Sh SEE ALSO .Xr getsockopt 2 , ==== //depot/projects/hammer/share/man/man7/security.7#7 (text+ko) ==== @@ -2,40 +2,46 @@ .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" -.\" $FreeBSD: src/share/man/man7/security.7,v 1.36 2004/05/18 18:17:25 dannyboy Exp $ +.\" $FreeBSD: src/share/man/man7/security.7,v 1.37 2004/06/15 12:48:50 ru Exp $ .\" .Dd September 18, 1999 .Dt SECURITY 7 .Os .Sh NAME .Nm security -.Nd introduction to security under FreeBSD +.Nd introduction to security under +.Fx .Sh DESCRIPTION Security is a function that begins and ends with the system administrator. While all .Bx multi-user systems have some inherent security, the job of building and maintaining additional security mechanisms to keep users -.Sq honest +.Dq honest is probably -one of the single largest undertakings of the sysadmin. Machines are +one of the single largest undertakings of the sysadmin. +Machines are only as secure as you make them, and security concerns are ever competing with the human necessity for convenience. .Ux systems, in general, are capable of running a huge number of simultaneous processes -and many of these processes operate as servers \(em meaning that external entities -can connect and talk to them. As yesterday's mini-computers and mainframes +and many of these processes operate as servers \(em meaning that external +entities can connect and talk to them. +As yesterday's mini-computers and mainframes become today's desktops, and as computers become networked and internetworked, security becomes an ever bigger issue. .Pp -Security is best implemented through a layered onion approach. In a nutshell, +Security is best implemented through a layered onion approach. +In a nutshell, what you want to do is to create as many layers of security as are convenient -and then carefully monitor the system for intrusions. You do not want to +and then carefully monitor the system for intrusions. +You do not want to overbuild your security or you will interfere with the detection side, and detection is one of the single most important aspects of any security -mechanism. For example, it makes little sense to set the -.Pa schg +mechanism. +For example, it makes little sense to set the +.Cm schg flags (see .Xr chflags 1 ) @@ -44,13 +50,14 @@ easily detectable change that may result in your security mechanisms not detecting the attacker at all. .Pp -System security also pertains to dealing with various forms of attack, +System security also pertains to dealing with various forms of attacks, including attacks that attempt to crash or otherwise make a system unusable -but do not attempt to break root. Security concerns can be split up into +but do not attempt to break root. +Security concerns can be split up into several categories: .Bl -enum -offset indent .It -Denial of service attacks +Denial of Service attacks (DoS) .It User account compromises .It @@ -62,61 +69,80 @@ .El .Pp A denial of service attack is an action that deprives the machine of needed -resources. Typically, D.O.S. attacks are brute-force mechanisms that attempt +resources. +Typically, DoS attacks are brute-force mechanisms that attempt to crash or otherwise make a machine unusable by overwhelming its servers or -network stack. Some D.O.S. attacks try to take advantages of bugs in the -networking stack to crash a machine with a single packet. The latter can -only be fixed by applying a bug fix to the kernel. Attacks on servers can +network stack. +Some DoS attacks try to take advantages of bugs in the +networking stack to crash a machine with a single packet. +The latter can +only be fixed by applying a bug fix to the kernel. +Attacks on servers can often be fixed by properly specifying options to limit the load the servers -incur on the system under adverse conditions. Brute-force network -attacks are harder to deal with. A spoofed-packet attack, for example, is +incur on the system under adverse conditions. +Brute-force network attacks are harder to deal with. +A spoofed-packet attack, for example, is nearly impossible to stop short of cutting your system off from the Internet. It may not be able to take your machine down, but it can fill up Internet pipe. .Pp -A user account compromise is even more common than a D.O.S. attack. Many -sysadmins still run standard telnetd, rlogind, rshd, and ftpd servers on their -machines. These servers, by default, do not operate over encrypted -connections. The result is that if you have any moderate-sized user base, +A user account compromise is even more common than a DoS attack. +Many +sysadmins still run standard +.Xr telnetd 8 , +.Xr rlogind 8 , +.Xr rshd 8 , +and +.Xr ftpd 8 +servers on their machines. +These servers, by default, do not operate over encrypted +connections. +The result is that if you have any moderate-sized user base, one or more of your users logging into your system from a remote location -(which is the most common and convenient way to login to a system) -will -have his or her password sniffed. The attentive system admin will analyze +(which is the most common and convenient way to log in to a system) +will have his or her password sniffed. +The attentive system administrator will analyze his remote access logs looking for suspicious source addresses even for successful logins. .Pp One must always assume that once an attacker has access to a user account, -the attacker can break root. However, the reality is that in a well secured +the attacker can break root. +However, the reality is that in a well secured and maintained system, access to a user account does not necessarily give the -attacker access to root. The distinction is important because without access +attacker access to root. +The distinction is important because without access to root the attacker cannot generally hide his tracks and may, at best, be able to do nothing more than mess with the user's files or crash the machine. User account compromises are very common because users tend not to take the precautions that sysadmins take. .Pp System administrators must keep in mind that there are potentially many ways -to break root on a machine. The attacker may know the root password, +to break root on a machine. +The attacker may know the root password, the attacker may find a bug in a root-run server and be able to break root over a network -connection to that server, or the attacker may know of a bug in an suid-root +connection to that server, or the attacker may know of a bug in an SUID-root program that allows the attacker to break root once he has broken into a -user's account. If an attacker has found a way to break root on a machine, +user's account. +If an attacker has found a way to break root on a machine, the attacker may not have a need to install a backdoor. Many of the root holes found and closed to date involve a considerable amount -of work by the attacker to cleanup after himself, so most attackers do install -backdoors. This gives you a convenient way to detect the attacker. Making +of work by the attacker to clean up after himself, so most attackers do install +backdoors. +This gives you a convenient way to detect the attacker. +Making it impossible for an attacker to install a backdoor may actually be detrimental to your security because it will not close off the hole the attacker used to break in in the first place. .Pp Security remedies should always be implemented with a multi-layered -.Sq onion peel +.Dq onion peel approach and can be categorized as follows: .Bl -enum -offset indent .It Securing root and staff accounts .It -Securing root \(em root-run servers and suid/sgid binaries +Securing root \(em root-run servers and SUID/SGID binaries .It Securing user accounts .It @@ -129,69 +155,111 @@ Paranoia .El .Sh SECURING THE ROOT ACCOUNT AND SECURING STAFF ACCOUNTS -Don't bother securing staff accounts if you haven't secured the root -account. Most systems have a password assigned to the root account. The +Do not bother securing staff accounts if you have not secured the root +account. +Most systems have a password assigned to the root account. +The first thing you do is assume that the password is -.Sq always -compromised. This does not mean that you should remove the password. The +.Em always +compromised. +This does not mean that you should remove the password. +The password is almost always necessary for console access to the machine. What it does mean is that you should not make it possible to use the password outside of the console or possibly even with a .Xr su 1 -command. -For example, make sure that your pty's are specified as being unsecure +utility. +For example, make sure that your PTYs are specified as being +.Dq Li unsecure in the -.Sq Pa /etc/ttys +.Pa /etc/ttys file -so that direct root logins via telnet or rlogin are disallowed. If using -other login services such as sshd, make sure that direct root logins are -disabled there as well. Consider every access method \(em services such as -ftp often fall through the cracks. Direct root logins should only be allowed +so that direct root logins via +.Xr telnet 1 +or +.Xr rlogin 1 +are disallowed. +If using +other login services such as +.Xr sshd 8 , +make sure that direct root logins are +disabled there as well. +Consider every access method \(em services such as +.Xr ftp 1 +often fall through the cracks. +Direct root logins should only be allowed via the system console. .Pp Of course, as a sysadmin you have to be able to get to root, so we open up -a few holes. But we make sure these holes require additional password -verification to operate. One way to make root accessible is to add appropriate -staff accounts to the wheel group -(in +a few holes. +But we make sure these holes require additional password +verification to operate. +One way to make root accessible is to add appropriate +staff accounts to the +.Dq Li wheel +group (in .Pa /etc/group ) . -The staff members placed -in the wheel group are allowed to -.Sq su -to root. You should never give staff -members native wheel access by putting them in the wheel group in their -password entry. Staff accounts should be placed in a -.Sq staff -group, and then added to the wheel group via the -.Sq Pa /etc/group -file. Only those staff members who actually need to have root access -should be placed in the wheel group. It is also possible, when using an -authentication method such as kerberos, to use kerberos's -.Sq Pa .k5login +The staff members placed in the +.Li wheel +group are allowed to +.Xr su 1 +to root. +You should never give staff +members native +.Li wheel +access by putting them in the +.Li wheel +group in their password entry. +Staff accounts should be placed in a +.Dq Li staff +group, and then added to the +.Li wheel +group via the +.Pa /etc/group +file. +Only those staff members who actually need to have root access +should be placed in the +.Li wheel +group. +It is also possible, when using an +authentication method such as Kerberos, to use Kerberos's +.Pa .k5login file in the root account to allow a .Xr ksu 1 -to root without having to place anyone at all in the wheel group. This -may be the better solution since the wheel mechanism still allows an +to root without having to place anyone at all in the +.Li wheel +group. +This +may be the better solution since the +.Li wheel +mechanism still allows an intruder to break root if the intruder has gotten hold of your password -file and can break into a staff account. While having the wheel mechanism -is better than having nothing at all, it isn't necessarily the safest +file and can break into a staff account. +While having the +.Li wheel +mechanism +is better than having nothing at all, it is not necessarily the safest option. .Pp An indirect way to secure the root account is to secure your staff accounts by using an alternative login access method and *'ing out the crypted password -for the staff accounts. This way an intruder may be able to steal the password +for the staff accounts. +This way an intruder may be able to steal the password file but will not be able to break into any staff accounts or root, even if root has a crypted password associated with it (assuming, of course, that -you've limited root access to the console). Staff members +you have limited root access to the console). +Staff members get into their staff accounts through a secure login mechanism such as .Xr kerberos 1 or .Xr ssh 1 using a private/public -key pair. When you use something like kerberos you generally must secure -the machines which run the kerberos servers and your desktop workstation. -When you use a public/private key pair with ssh, you must generally secure -the machine you are logging in FROM +key pair. +When you use something like Kerberos you generally must secure +the machines which run the Kerberos servers and your desktop workstation. +When you use a public/private key pair with SSH, you must generally secure +the machine you are logging in +.Em from (typically your workstation), but you can also add an additional layer of protection to the key pair by password @@ -199,63 +267,104 @@ .Xr ssh-keygen 1 . Being able to *-out the passwords for staff accounts also guarantees that staff members -can only login through secure access methods that you have setup. You can +can only log in through secure access methods that you have set up. +You can thus force all staff members to use secure, encrypted connections for -all their sessions which closes an important hole used by many intruders: That +all their sessions which closes an important hole used by many intruders: that of sniffing the network from an unrelated, less secure machine. .Pp The more indirect security mechanisms also assume that you are logging in -from a more restrictive server to a less restrictive server. For example, -if your main box is running all sorts of servers, your workstation shouldn't -be running any. In order for your workstation to be reasonably secure +from a more restrictive server to a less restrictive server. +For example, +if your main box is running all sorts of servers, your workstation should not +be running any. +In order for your workstation to be reasonably secure you should run as few servers as possible, up to and including no servers at all, and you should run a password-protected screen blanker. Of course, given physical access to -a workstation an attacker can break any sort of security you put on it. +a workstation, an attacker can break any sort of security you put on it. This is definitely a problem that you should consider but you should also consider the fact that the vast majority of break-ins occur remotely, over a network, from people who do not have physical access to your workstation or servers. .Pp -Using something like kerberos also gives you the ability to disable or +Using something like Kerberos also gives you the ability to disable or change the password for a staff account in one place and have it immediately -affect all the machines the staff member may have an account on. If a staff +affect all the machines the staff member may have an account on. +If a staff member's account gets compromised, the ability to instantly change his -password on all machines should not be underrated. With discrete passwords, -changing a password on N machines can be a mess. You can also impose -re-passwording restrictions with kerberos: not only can a kerberos ticket -be made to timeout after a while, but the kerberos system can require that +password on all machines should not be underrated. +With discrete passwords, changing a password on N machines can be a mess. +You can also impose +re-passwording restrictions with Kerberos: not only can a Kerberos ticket +be made to timeout after a while, but the Kerberos system can require that the user choose a new password after a certain period of time (say, once a month). -.Sh SECURING ROOT \(em ROOT-RUN SERVERS AND SUID/SGID BINARIES -The prudent sysadmin only runs the servers he needs to, no more, no less. Be -aware that third party servers are often the most bug-prone. For example, -running an old version of imapd or popper is like giving a universal root -ticket out to the entire world. Never run a server that you have not checked -out carefully. Many servers do not need to be run as root. For example, -the ntalk, comsat, and finger daemons can be run in special user -.Sq sandboxes . -A sandbox isn't perfect unless you go to a large amount of trouble, but the -onion approach to security still stands: If someone is able to break in +.Sh SECURING ROOT \(em ROOT-RUN SERVERS AND SUID/SGID BINARIES +The prudent sysadmin only runs the servers he needs to, no more, no less. +Be aware that third party servers are often the most bug-prone. +For example, +running an old version of +.Xr imapd 8 +or +.Xr popper 8 +is like giving a universal root +ticket out to the entire world. +Never run a server that you have not checked +out carefully. +Many servers do not need to be run as root. +For example, +the +.Xr talkd 8 , +.Xr comsat 8 , +and +.Xr fingerd 8 +daemons can be run in special user +.Dq sandboxes . +A sandbox is not perfect unless you go to a large amount of trouble, but the +onion approach to security still stands: if someone is able to break in through a server running in a sandbox, they still have to break out of the -sandbox. The more layers the attacker must break through, the lower the -likelihood of his success. Root holes have historically been found in +sandbox. +The more layers the attacker must break through, the lower the +likelihood of his success. +Root holes have historically been found in virtually every server ever run as root, including basic system servers. -If you are running a machine through which people only login via sshd and -never login via telnetd or rshd or rlogind, then turn off those services! +If you are running a machine through which people only log in via +.Xr sshd 8 +and never log in via +.Xr telnetd 8 , +.Xr rshd 8 , +or +.Xr rlogind 8 , +then turn off those services! .Pp .Fx -now defaults to running ntalkd, comsat, and finger in a sandbox. +now defaults to running +.Xr talkd 8 , +.Xr comsat 8 , +and +.Xr fingerd 8 +in a sandbox. Another program which may be a candidate for running in a sandbox is .Xr named 8 . -The default rc.conf includes the arguments necessary to run -named in a sandbox in a commented-out form. Depending on whether you +The default +.Pa rc.conf +includes the arguments necessary to run +.Xr named 8 +in a sandbox in a commented-out form. +Depending on whether you are installing a new system or upgrading an existing system, the special -user accounts used by these sandboxes may not be installed. The prudent +user accounts used by these sandboxes may not be installed. +The prudent sysadmin would research and implement sandboxes for servers whenever possible. .Pp There are a number of other servers that typically do not run in sandboxes: -sendmail, popper, imapd, ftpd, and others. There are alternatives to +.Xr sendmail 8 , +.Xr popper 8 , +.Xr imapd 8 , +.Xr ftpd 8 , +and others. +There are alternatives to some of these, but installing them may require more work then you are willing to put (the convenience factor strikes again). @@ -263,52 +372,69 @@ servers as root and rely on other mechanisms to detect break-ins that might occur through them. .Pp -The other big potential root hole in a system are the suid-root and sgid -binaries installed on the system. Most of these binaries, such as rlogin, +The other big potential root hole in a system are the SUID-root and SGID +binaries installed on the system. +Most of these binaries, such as +.Xr rlogin 1 , reside in -.Pa /bin , -.Pa /sbin , -.Pa /usr/bin , +.Pa /bin , /sbin , /usr/bin , or .Pa /usr/sbin . While nothing is 100% safe, -the system-default suid and sgid binaries can be considered reasonably safe. -Still, root holes are occasionally found in these binaries. A root hole -was found in Xlib in 1998 that made xterm -(which is typically suid) +the system-default SUID and SGID binaries can be considered reasonably safe. +Still, root holes are occasionally found in these binaries. +A root hole +was found in Xlib in 1998 that made +.Xr xterm 1 +(which is typically SUID) vulnerable. -It is better to be safe than sorry and the prudent sysadmin will restrict suid +It is better to be safe than sorry and the prudent sysadmin will restrict SUID binaries that only staff should run to a special group that only staff can access, and get rid of -.Pq Li "chmod 000" -any suid binaries that nobody uses. A -server with no display generally does not need an xterm binary. Sgid binaries -can be almost as dangerous. If an intruder can break an sgid-kmem binary the +.Pq Dq Li "chmod 000" +any SUID binaries that nobody uses. +A server with no display generally does not need an +.Xr xterm 1 +binary. +SGID binaries can be almost as dangerous. +If an intruder can break an SGID-kmem binary the intruder might be able to read .Pa /dev/kmem and thus read the crypted password -file, potentially compromising any passworded account. Alternatively an -intruder who breaks group kmem can monitor keystrokes sent through pty's, -including pty's used by users who login through secure methods. An intruder -that breaks the tty group can write to almost any user's tty. If a user +file, potentially compromising any passworded account. +Alternatively an +intruder who breaks group +.Dq Li kmem +can monitor keystrokes sent through PTYs, +including PTYs used by users who log in through secure methods. +An intruder +that breaks the +.Dq Li tty +group can write to almost any user's TTY. +If a user is running a terminal program or emulator with a keyboard-simulation feature, the intruder can potentially generate a data stream that causes the user's terminal to echo a command, which is then run as that user. .Sh SECURING USER ACCOUNTS -User accounts are usually the most difficult to secure. While you can impose -Draconian access restrictions on your staff and *-out their passwords, you -may not be able to do so with any general user accounts you might have. If +User accounts are usually the most difficult to secure. +While you can impose +draconian access restrictions on your staff and *-out their passwords, you +may not be able to do so with any general user accounts you might have. +If you do have sufficient control then you may win out and be able to secure the -user accounts properly. If not, you simply have to be more vigilant in your -monitoring of those accounts. Use of ssh and kerberos for user accounts is +user accounts properly. +If not, you simply have to be more vigilant in your +monitoring of those accounts. +Use of SSH and Kerberos for user accounts is more problematic due to the extra administration and technical support required, but still a very good solution compared to a crypted password file. .Sh SECURING THE PASSWORD FILE The only sure fire way is to *-out as many passwords as you can and -use ssh or kerberos for access to those accounts. Even though the +use SSH or Kerberos for access to those accounts. +Even though the crypted password file .Pq Pa /etc/spwd.db can only be read by root, it may @@ -318,64 +444,102 @@ Your security scripts should always check for and report changes to the password file (see -.Sq Checking file integrity +.Sx CHECKING FILE INTEGRITY below). .Sh SECURING THE KERNEL CORE, RAW DEVICES, AND FILE SYSTEMS If an attacker breaks root he can do just about anything, but there -are certain conveniences. For example, most modern kernels have a -packet sniffing device driver built in. Under +are certain conveniences. +For example, most modern kernels have a packet sniffing device driver built in. +Under .Fx it is called the -.Sq bpf -device. An intruder will commonly attempt to run a packet sniffer -on a compromised machine. You do not need to give the intruder the -capability and most systems should not have the bpf device compiled in. +.Xr bpf 4 +device. +An intruder will commonly attempt to run a packet sniffer +on a compromised machine. +You do not need to give the intruder the +capability and most systems should not have the +.Xr bpf 4 +device compiled in. .Pp -But even if you turn off the bpf device, -you still have +But even if you turn off the +.Xr bpf 4 +device, you still have .Pa /dev/mem and .Pa /dev/kmem -to worry about. For that matter, +to worry about. +For that matter, the intruder can still write to raw disk devices. Also, there is another kernel feature called the module loader, .Xr kldload 8 . An enterprising intruder can use a KLD module to install -his own bpf device or other sniffing device on a running kernel. +his own +.Xr bpf 4 +device or other sniffing device on a running kernel. To avoid these problems you have to run -the kernel at a higher secure level, at least securelevel 1. The securelevel -can be set with a sysctl on the kern.securelevel variable. Once you have +the kernel at a higher secure level, at least securelevel 1. +The securelevel can be set with a +.Xr sysctl 8 +on the +.Va kern.securelevel +variable. +Once you have set the securelevel to 1, write access to raw devices will be denied and -special chflags flags, such as -.Sq schg , -will be enforced. You must also ensure +special +.Xr chflags 1 +flags, such as +.Cm schg , +will be enforced. +You must also ensure that the -.Sq schg +.Cm schg flag is set on critical startup binaries, directories, and script files \(em everything that gets run up to the point where the securelevel -is set. This might be overdoing it, and upgrading the system is much more -difficult when you operate at a higher secure level. You may compromise and -run the system at a higher secure level but not set the schg flag for every -system file and directory under the sun. Another possibility is to simply -mount / and /usr read-only. It should be noted that being too draconian in +is set. +This might be overdoing it, and upgrading the system is much more +difficult when you operate at a higher secure level. +You may compromise and +run the system at a higher secure level but not set the +.Cm schg +flag for every +system file and directory under the sun. +Another possibility is to simply +mount +.Pa / +and +.Pa /usr +read-only. +It should be noted that being too draconian in what you attempt to protect may prevent the all-important detection of an intrusion. .Sh CHECKING FILE INTEGRITY: BINARIES, CONFIG FILES, ETC When it comes right down to it, you can only protect your core system configuration and control files so much before the convenience factor -rears its ugly head. For example, using chflags to set the schg bit -on most of the files in / and /usr is probably counterproductive because -while it may protect the files, it also closes a detection window. The +rears its ugly head. +For example, using +.Xr chflags 1 +to set the +.Cm schg +bit on most of the files in +.Pa / +and +.Pa /usr +is probably counterproductive because +while it may protect the files, it also closes a detection window. +The last layer of your security onion is perhaps the most important \(em detection. The rest of your security is pretty much useless (or, worse, presents you with -a false sense of safety) if you cannot detect potential incursions. Half +a false sense of safety) if you cannot detect potential incursions. +Half the job of the onion is to slow down the attacker rather than stop him in order to give the detection layer a chance to catch him in the act. .Pp The best way to detect an incursion is to look for modified, missing, or -unexpected files. The best +unexpected files. +The best way to look for modified files is from another (often centralized) limited-access system. Writing your security scripts on the extra-secure limited-access system @@ -383,64 +547,81 @@ In order to take maximum advantage you generally have to give the limited-access box significant access to the other machines in the business, usually either by doing a read-only NFS export of the other machines to the -limited-access box, or by setting up ssh keypairs to allow the limit-access -box to ssh to the other machines. Except for its network traffic, NFS is +limited-access box, or by setting up SSH keypairs to allow the limit-access +box to SSH to the other machines. +Except for its network traffic, NFS is the least visible method \(em allowing you to monitor the file systems on each -client box virtually undetected. If your +client box virtually undetected. +If your limited-access server is connected to the client boxes through a switch, -the NFS method is often the better choice. If your limited-access server +the NFS method is often the better choice. +If your limited-access server is connected to the client boxes through a hub or through several layers -of routing, the NFS method may be too insecure (network-wise) and using ssh -may be the better choice even with the audit-trail tracks that ssh lays. +of routing, the NFS method may be too insecure (network-wise) and using SSH +may be the better choice even with the audit-trail tracks that SSH lays. .Pp Once you give a limit-access box at least read access to the client systems it is supposed to monitor, you must write scripts to do the actual -monitoring. Given an NFS mount, you can write scripts out of simple system +monitoring. +Given an NFS mount, you can write scripts out of simple system utilities such as .Xr find 1 and +.Xr md5 1 . +It is best to physically .Xr md5 1 -It is best to physically md5 the client-box files boxes at least once a +the client-box files boxes at least once a day, and to test control files such as those found in .Pa /etc and .Pa /usr/local/etc -even more often. When mismatches are found relative to the base md5 +even more often. +When mismatches are found relative to the base MD5 information the limited-access machine knows is valid, it should scream at -a sysadmin to go check it out. A good security script will also check for -inappropriate suid binaries and for new or deleted files on system partitions +a sysadmin to go check it out. +A good security script will also check for +inappropriate SUID binaries and for new or deleted files on system partitions such as .Pa / and -.Pa /usr +.Pa /usr . .Pp -When using ssh rather than NFS, writing the security script is much more -difficult. You essentially have to -.Pa scp +When using SSH rather than NFS, writing the security script is much more +difficult. +You essentially have to +.Xr scp 1 the scripts to the client box in order to run them, making them visible, and -for safety you also need to scp the binaries (such as find) that those scripts -use. The ssh daemon on the client box may already be compromised. All in all, -using ssh may be necessary when running over unsecure links, but it's also a +for safety you also need to +.Xr scp 1 +the binaries (such as +.Xr find 1 ) +that those scripts use. +The +.Xr sshd 8 +daemon on the client box may already be compromised. +All in all, +using SSH may be necessary when running over unsecure links, but it is also a lot harder to deal with. .Pp A good security script will also check for changes to user and staff members access configuration files: -.Pa .rhosts , -.Pa .shosts , -.Pa .ssh/authorized_keys +.Pa .rhosts , .shosts , .ssh/authorized_keys and so forth... files that might fall outside the purview of the MD5 check. .Pp If you have a huge amount of user disk space it may take too long to run -through every file on those partitions. In this case, setting mount -flags to disallow suid binaries and devices on those partitions is a good -idea. The -.Sq nodev +through every file on those partitions. +In this case, setting mount +flags to disallow SUID binaries and devices on those partitions is a good +idea. +The +.Cm nodev and -.Sq nosuid +.Cm nosuid options (see .Xr mount 8 ) -are what you want to look into. I would scan them anyway at least once a +are what you want to look into. +I would scan them anyway at least once a week, since the object of this layer is to detect a break-in whether or not the break-in is effective. .Pp @@ -449,82 +630,110 @@ .Xr accton 8 ) is a relatively low-overhead feature of the operating system which I recommend using as a post-break-in evaluation -mechanism. It is especially useful in tracking down how an intruder has +mechanism. +It is especially useful in tracking down how an intruder has actually broken into a system, assuming the file is still intact after the break-in occurs. .Pp Finally, security scripts should process the log files and the logs themselves >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jun 15 21:53:20 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8273116A4D0; Tue, 15 Jun 2004 21:53:20 +0000 (GMT) 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 4F93B16A4CE for ; Tue, 15 Jun 2004 21:53:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3248843D41 for ; Tue, 15 Jun 2004 21:53:20 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FLq2L7087726 for ; Tue, 15 Jun 2004 21:52:02 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FLq2to087717 for perforce@freebsd.org; Tue, 15 Jun 2004 21:52:02 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 21:52:02 GMT Message-Id: <200406152152.i5FLq2to087717@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 55048 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, 15 Jun 2004 21:53:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=55048 Change 55048 by peter@peter_daintree on 2004/06/15 21:51:25 white space Affected files ... .. //depot/projects/hammer/sys/kern/link_elf_obj.c#42 edit Differences ... ==== //depot/projects/hammer/sys/kern/link_elf_obj.c#42 (text+ko) ==== @@ -751,7 +751,6 @@ elf_file_t ef = (elf_file_t) lf; const Elf_Sym *es = (const Elf_Sym*) sym; - if (es >= ef->ddbsymtab && es < (ef->ddbsymtab + ef->ddbsymcnt)) { base = findbase(ef, es->st_shndx); if (base == 0) From owner-p4-projects@FreeBSD.ORG Tue Jun 15 23:25:59 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E87916A4D0; Tue, 15 Jun 2004 23:25:59 +0000 (GMT) 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 2C27816A4CE for ; Tue, 15 Jun 2004 23:25:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2760143D2D for ; Tue, 15 Jun 2004 23:25:59 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5FNPwSp008659 for ; Tue, 15 Jun 2004 23:25:59 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5FNPwet008656 for perforce@freebsd.org; Tue, 15 Jun 2004 23:25:58 GMT (envelope-from peter@freebsd.org) Date: Tue, 15 Jun 2004 23:25:58 GMT Message-Id: <200406152325.i5FNPwet008656@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 55052 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, 15 Jun 2004 23:26:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=55052 Change 55052 by peter@peter_daintree on 2004/06/15 23:25:10 Use Ian Dowse's idea of adjusting the symbol table once at load time rather than constantly trying to figure out which section each symbol is in and finding its base address. Incidently, this makes the internal look/feel of the after-load state more consistent with the non-obj loader. Affected files ... .. //depot/projects/hammer/sys/kern/link_elf_obj.c#43 edit Differences ... ==== //depot/projects/hammer/sys/kern/link_elf_obj.c#43 (text+ko) ==== @@ -187,7 +187,8 @@ struct thread *td = curthread; /* XXX */ Elf_Ehdr *hdr; Elf_Shdr *shdr; - int nbytes, i; + Elf_Sym *es; + int nbytes, i, j; vm_offset_t mapbase; size_t mapsize; int error = 0; @@ -504,6 +505,14 @@ if (ef->shstrtab && shdr[i].sh_name != 0) ef->progtab[pb].name = ef->shstrtab + shdr[i].sh_name; + + /* Update all symbol values with the offset. */ + for (j = 0; j < ef->ddbsymcnt; j++) { + es = &ef->ddbsymtab[j]; + if (es->st_shndx != i) + continue; + es->st_value += (Elf_Addr)ef->progtab[pb].addr; + } mapbase += shdr[i].sh_size; pb++; break; @@ -643,11 +652,11 @@ Elf_Addr base = 0; for (i = 0; i < ef->nprogtab; i++) { - if (sec == ef->progtab[i].sec) + if (sec == ef->progtab[i].sec) { base = (Elf_Addr)ef->progtab[i].addr; + break; + } } - if (base == 0) - base = (Elf_Addr)ef->address; return base; } @@ -672,6 +681,8 @@ panic("lost a reltab!"); rellim = rel + ef->reltab[i].nrel; base = findbase(ef, ef->reltab[i].sec); + if (base == 0) + panic("lost base for reltab"); for ( ; rel < rellim; rel++) { symidx = ELF_R_SYM(rel->r_info); if (symidx >= ef->ddbsymcnt) @@ -697,6 +708,8 @@ panic("lost a relatab!"); relalim = rela + ef->relatab[i].nrela; base = findbase(ef, ef->relatab[i].sec); + if (base == 0) + panic("lost base for relatab"); for ( ; rela < relalim; rela++) { symidx = ELF_R_SYM(rela->r_info); if (symidx >= ef->ddbsymcnt) @@ -726,20 +739,13 @@ const char *strp; int i; -/* XXX search for globals first */ for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { strp = ef->ddbstrtab + symp->st_name; - if (strcmp(name, strp) == 0) { - if (symp->st_shndx != SHN_UNDEF || - (symp->st_value != 0 && - ELF_ST_TYPE(symp->st_info) == STT_FUNC)) { - *sym = (c_linker_sym_t) symp; - return 0; - } else - return ENOENT; + if (symp->st_shndx != SHN_UNDEF && strcmp(name, strp) == 0) { + *sym = (c_linker_sym_t) symp; + return 0; } } - return ENOENT; } @@ -747,16 +753,12 @@ link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, linker_symval_t *symval) { - Elf_Addr base; elf_file_t ef = (elf_file_t) lf; const Elf_Sym *es = (const Elf_Sym*) sym; if (es >= ef->ddbsymtab && es < (ef->ddbsymtab + ef->ddbsymcnt)) { - base = findbase(ef, es->st_shndx); - if (base == 0) - base = (Elf_Addr)ef->address; symval->name = ef->ddbstrtab + es->st_name; - symval->value = (caddr_t)base + es->st_value; + symval->value = (caddr_t)es->st_value; symval->size = es->st_size; return 0; } @@ -771,7 +773,6 @@ u_long off = (uintptr_t) (void *) value; u_long diff = off; u_long st_value; - Elf_Addr base; const Elf_Sym *es; const Elf_Sym *best = 0; int i; @@ -779,10 +780,7 @@ for (i = 0, es = ef->ddbsymtab; i < ef->ddbsymcnt; i++, es++) { if (es->st_name == 0) continue; - base = findbase(ef, es->st_shndx); - if (base == 0) - base = (Elf_Addr)ef->address; - st_value = es->st_value + base; + st_value = es->st_value; if (off >= st_value) { if (off - st_value < diff) { diff = off - st_value; @@ -868,7 +866,6 @@ const Elf_Sym *sym; const char *symbol; Elf_Addr ret; - int i; /* Don't even try to lookup the symbol if the index is bogus. */ if (symidx >= ef->ddbsymcnt) @@ -877,19 +874,8 @@ sym = ef->ddbsymtab + symidx; /* Quick answer if there is a definition included. */ - if (sym->st_shndx != SHN_UNDEF) { - ret = 0; - /* Relative to section number */ - for (i = 0; i < ef->nprogtab; i++) { - if (sym->st_shndx == ef->progtab[i].sec) { - ret = (Elf_Addr)ef->progtab[i].addr; - break; - } - } - if (ret == 0) - return (0); - return ret + sym->st_value; - } + if (sym->st_shndx != SHN_UNDEF) + return (sym->st_value); /* If we get here, then it is undefined and needs a lookup. */ switch (ELF_ST_BIND(sym->st_info)) { @@ -937,6 +923,8 @@ panic("lost a reltab!"); rellim = rel + ef->reltab[i].nrel; base = findbase(ef, ef->reltab[i].sec); + if (base == 0) + panic("lost base for reltab"); for ( ; rel < rellim; rel++) { symidx = ELF_R_SYM(rel->r_info); if (symidx >= ef->ddbsymcnt) @@ -957,6 +945,8 @@ panic("lost a relatab!"); relalim = rela + ef->relatab[i].nrela; base = findbase(ef, ef->relatab[i].sec); + if (base == 0) + panic("lost base for relatab"); for ( ; rela < relalim; rela++) { symidx = ELF_R_SYM(rela->r_info); if (symidx >= ef->ddbsymcnt) From owner-p4-projects@FreeBSD.ORG Wed Jun 16 00:01:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19DCF16A4CE; Wed, 16 Jun 2004 00:01:45 +0000 (GMT) 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 57E4916A557 for ; Wed, 16 Jun 2004 00:01:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DC0E43D1D for ; Wed, 16 Jun 2004 00:01:12 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5G00fEE014903 for ; Wed, 16 Jun 2004 00:00:41 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5G00fFr014900 for perforce@freebsd.org; Wed, 16 Jun 2004 00:00:41 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 00:00:41 GMT Message-Id: <200406160000.i5G00fFr014900@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 55053 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, 16 Jun 2004 00:01:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=55053 Change 55053 by jmallett@jmallett_oingo on 2004/06/16 00:00:16 Allocate IRQs as resourced via the CPU. XXX sgimips still touches cpu_establish_hardintr directly. That's due to the bug of me not having those interrupts hanging off something hurr. Affected files ... .. //depot/projects/mips/sys/mips/mips/clock_r4k.c#3 edit .. //depot/projects/mips/sys/mips/mips/cpu.c#5 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/clock_r4k.c#3 (text+ko) ==== @@ -30,13 +30,13 @@ #include #include #include +#include #include #include #include #include #include -#include static unsigned r4k_get_timecount(struct timecounter *); @@ -83,15 +83,16 @@ struct clockframe cf; struct trapframe *tf; - if (curthread == NULL) - return; + /* + * Magic. Setting up with an arg of NULL means we get passed tf. + */ + tf = arg; + cf.sr = tf->tf_regs[TF_SR]; + cf.pc = tf->tf_regs[TF_EPC]; /* * Set next clock edge. */ - tf = curthread->td_frame; - cf.sr = tf->tf_regs[TF_SR]; - cf.pc = tf->tf_regs[TF_EPC]; if (clocks_running) hardclock(&cf); mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); @@ -110,9 +111,26 @@ static int r4k_clock_attach(device_t dev) { + struct resource *irq; + int error; + int rid; + r4k_timecounter.tc_frequency = curcpu()->ci_cpu_freq; + + rid = 0; + irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 5, 5, 1, RF_ACTIVE); + if (irq == NULL) { + device_printf(dev, "failed to allocate irq\n"); + return (ENXIO); + } + error = bus_setup_intr(dev, irq, INTR_TYPE_CLK, r4k_clock_intr, NULL, + NULL); + if (error != 0) { + device_printf(dev, "bus_setup_intr returned %d\n", error); + return (error); + } + tc_init(&r4k_timecounter); - cpu_establish_hardintr(5, r4k_clock_intr, NULL); mips_wr_compare(mips_rd_count() + curcpu()->ci_cycles_per_hz); return (0); } ==== //depot/projects/mips/sys/mips/mips/cpu.c#5 (text+ko) ==== @@ -29,13 +29,14 @@ #include #include #include +#include #include #include #include #include -#include +#include #include #include #include @@ -185,23 +186,30 @@ printf("XXX should print cache identification here\n"); } +static struct rman cpu_hardirq_rman; + static devclass_t cpu_devclass; /* * Device methods */ static int cpu_probe(device_t); +static int cpu_attach(device_t); +static struct resource *cpu_alloc_resource(device_t, device_t, int, int *, + u_long, u_long, u_long, u_int); +static int cpu_setup_intr(device_t, device_t, struct resource *, int, + driver_intr_t *, void *, void **); static device_method_t cpu_methods[] = { /* Device interface */ DEVMETHOD(device_probe, cpu_probe), - DEVMETHOD(device_attach, bus_generic_attach), + DEVMETHOD(device_attach, cpu_attach), DEVMETHOD(device_detach, bus_generic_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), - /* XXXJM TODO DONGS ETC. Allocate hard/soft intrs off this. */ /* Bus interface */ - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_alloc_resource, cpu_alloc_resource), + DEVMETHOD(bus_setup_intr, cpu_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), { 0, 0 } @@ -235,4 +243,68 @@ } return (0); } + +static int +cpu_attach(device_t dev) +{ + int error; + + cpu_hardirq_rman.rm_start = 0; + cpu_hardirq_rman.rm_end = 5; + cpu_hardirq_rman.rm_type = RMAN_ARRAY; + cpu_hardirq_rman.rm_descr = "CPU Hard Interrupts"; + + error = rman_init(&cpu_hardirq_rman); + if (error != 0) { + device_printf(dev, "failed to initialize irq resources\n"); + return (error); + } + /* XXX rman_manage_all. */ + error = rman_manage_region(&cpu_hardirq_rman, + cpu_hardirq_rman.rm_start, + cpu_hardirq_rman.rm_end); + if (error != 0) { + device_printf(dev, "failed to manage irq resources\n"); + return (error); + } + + return (bus_generic_attach(dev)); +} + +/* + * XXX this routing should be horribly complex and use a resource list and + * make us add a CPU softc! + */ +static struct resource * +cpu_alloc_resource(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct resource *res; + + if (type != SYS_RES_IRQ) + return (NULL); + res = rman_reserve_resource(&cpu_hardirq_rman, start, end, count, 0, + child); + return (res); +} + +static int +cpu_setup_intr(device_t dev, device_t child, struct resource *res, int flags, + driver_intr_t *handler, void *arg, void **cookiep) +{ + int error; + int intr; + + error = rman_activate_resource(res); + if (error != 0) { + device_printf(child, "could not activate irq\n"); + return (error); + } + intr = res->r_start; + + cpu_establish_hardintr(intr, handler, arg); + device_printf(child, "established CPU interrupt %d\n", intr); + return (0); +} + DRIVER_MODULE(cpu, root, cpu_driver, cpu_devclass, 0, 0); From owner-p4-projects@FreeBSD.ORG Wed Jun 16 01:53:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D712916A4D0; Wed, 16 Jun 2004 01:53:00 +0000 (GMT) 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 A666016A4CE for ; Wed, 16 Jun 2004 01:53:00 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A1DB643D46 for ; Wed, 16 Jun 2004 01:53:00 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5G1qx0x047299 for ; Wed, 16 Jun 2004 01:52:59 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5G1qwfk047296 for perforce@freebsd.org; Wed, 16 Jun 2004 01:52:58 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 01:52:58 GMT Message-Id: <200406160152.i5G1qwfk047296@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 55057 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, 16 Jun 2004 01:53:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=55057 Change 55057 by jmallett@jmallett_oingo on 2004/06/16 01:52:26 flags. Affected files ... .. //depot/projects/mips/sys/mips/mips/clock_r4k.c#4 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/clock_r4k.c#4 (text+ko) ==== @@ -123,8 +123,9 @@ device_printf(dev, "failed to allocate irq\n"); return (ENXIO); } - error = bus_setup_intr(dev, irq, INTR_TYPE_CLK, r4k_clock_intr, NULL, - NULL); + error = bus_setup_intr(dev, irq, + INTR_TYPE_CLK | INTR_MPSAFE | INTR_FAST, + r4k_clock_intr, NULL, NULL); if (error != 0) { device_printf(dev, "bus_setup_intr returned %d\n", error); return (error); From owner-p4-projects@FreeBSD.ORG Wed Jun 16 05:40:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2692716A4D0; Wed, 16 Jun 2004 05:40:39 +0000 (GMT) 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 DCA3616A4CE for ; Wed, 16 Jun 2004 05:40:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D1A0943D46 for ; Wed, 16 Jun 2004 05:40:38 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5G5ecf8002556 for ; Wed, 16 Jun 2004 05:40:38 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5G5eZf5002552 for perforce@freebsd.org; Wed, 16 Jun 2004 05:40:35 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 05:40:35 GMT Message-Id: <200406160540.i5G5eZf5002552@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 55062 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, 16 Jun 2004 05:40:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=55062 Change 55062 by marcel@marcel_nfs on 2004/06/16 05:39:47 IFC @55059 Affected files ... .. //depot/projects/gdb/UPDATING#15 integrate .. //depot/projects/gdb/bin/setfacl/Makefile#2 integrate .. //depot/projects/gdb/contrib/groff/doc/meintro.me#2 integrate .. //depot/projects/gdb/contrib/groff/doc/meref.me#2 integrate .. //depot/projects/gdb/etc/mtree/BSD.include.dist#6 integrate .. //depot/projects/gdb/include/Makefile#6 integrate .. //depot/projects/gdb/lib/libarchive/archive_read_extract.c#15 integrate .. //depot/projects/gdb/lib/libc/amd64/gen/signalcontext.c#3 integrate .. //depot/projects/gdb/lib/libc/gmon/moncontrol.3#2 integrate .. //depot/projects/gdb/lib/libc/net/inet.3#2 integrate .. //depot/projects/gdb/lib/libc/stdtime/asctime.c#2 integrate .. //depot/projects/gdb/lib/libc/stdtime/difftime.c#2 integrate .. //depot/projects/gdb/lib/libc/stdtime/localtime.c#3 integrate .. //depot/projects/gdb/lib/libc/stdtime/private.h#2 integrate .. //depot/projects/gdb/lib/libc/stdtime/strftime.c#2 integrate .. //depot/projects/gdb/lib/libc/sys/getrlimit.2#2 integrate .. //depot/projects/gdb/lib/libc/sys/read.2#3 integrate .. //depot/projects/gdb/lib/libkvm/kvm_proc.c#4 integrate .. //depot/projects/gdb/lib/libpthread/thread/thr_create.c#2 integrate .. //depot/projects/gdb/lib/libpthread/thread/thr_private.h#3 integrate .. //depot/projects/gdb/lib/libpthread/thread/thr_sig.c#2 integrate .. //depot/projects/gdb/lib/libpthread/thread/thr_sigsuspend.c#2 integrate .. //depot/projects/gdb/lib/libradius/radlib.c#3 integrate .. //depot/projects/gdb/lib/msun/man/ieee_test.3#2 integrate .. //depot/projects/gdb/libexec/ftpd/ftpd.c#4 integrate .. //depot/projects/gdb/libexec/talkd/talkd.c#2 integrate .. //depot/projects/gdb/sbin/fdisk/fdisk.c#2 integrate .. //depot/projects/gdb/sbin/geom/core/Makefile#3 integrate .. //depot/projects/gdb/sbin/gvinum/Makefile#1 branch .. //depot/projects/gdb/sbin/gvinum/gvinum.c#1 branch .. //depot/projects/gdb/sbin/gvinum/gvinum.h#1 branch .. //depot/projects/gdb/sbin/ifconfig/ifconfig.8#8 integrate .. //depot/projects/gdb/sbin/routed/table.c#4 integrate .. //depot/projects/gdb/share/man/man4/Makefile#11 integrate .. //depot/projects/gdb/share/man/man4/bge.4#4 integrate .. //depot/projects/gdb/share/man/man4/ciss.4#3 integrate .. //depot/projects/gdb/share/man/man4/cue.4#3 integrate .. //depot/projects/gdb/share/man/man4/dc.4#2 integrate .. //depot/projects/gdb/share/man/man4/fwip.4#1 branch .. //depot/projects/gdb/share/man/man4/gx.4#2 integrate .. //depot/projects/gdb/share/man/man4/ip.4#3 integrate .. //depot/projects/gdb/share/man/man4/kue.4#2 integrate .. //depot/projects/gdb/share/man/man4/lge.4#2 integrate .. //depot/projects/gdb/share/man/man4/ng_rfc1490.4#2 integrate .. //depot/projects/gdb/share/man/man4/nge.4#2 integrate .. //depot/projects/gdb/share/man/man4/uftdi.4#2 integrate .. //depot/projects/gdb/share/man/man7/hier.7#5 integrate .. //depot/projects/gdb/share/man/man7/security.7#4 integrate .. //depot/projects/gdb/share/man/man9/rtentry.9#3 integrate .. //depot/projects/gdb/share/man/man9/sema.9#2 integrate .. //depot/projects/gdb/share/man/man9/style.9#2 integrate .. //depot/projects/gdb/share/misc/iso3166#2 integrate .. //depot/projects/gdb/share/misc/pci_vendors#2 integrate .. //depot/projects/gdb/sys/alpha/alpha/pmap.c#9 integrate .. //depot/projects/gdb/sys/amd64/amd64/pmap.c#12 integrate .. //depot/projects/gdb/sys/amd64/conf/GENERIC#8 integrate .. //depot/projects/gdb/sys/amd64/include/pmap.h#8 integrate .. //depot/projects/gdb/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/gdb/sys/compat/linux/linux_ioctl.h#3 integrate .. //depot/projects/gdb/sys/compat/svr4/svr4_stream.c#2 integrate .. //depot/projects/gdb/sys/conf/NOTES#24 integrate .. //depot/projects/gdb/sys/conf/files#28 integrate .. //depot/projects/gdb/sys/conf/kern.pre.mk#10 integrate .. //depot/projects/gdb/sys/conf/kmod.mk#8 integrate .. //depot/projects/gdb/sys/conf/options#22 integrate .. //depot/projects/gdb/sys/contrib/altq/altq/altq.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/gdb/sys/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/gdb/sys/contrib/pf/net/if_pflog.c#6 integrate .. //depot/projects/gdb/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf.c#6 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_ioctl.c#7 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pfvar.h#3 integrate .. //depot/projects/gdb/sys/crypto/des/des_ecb.c#2 integrate .. //depot/projects/gdb/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/gdb/sys/crypto/des/des_setkey.c#2 integrate .. //depot/projects/gdb/sys/dev/aac/aac_debug.c#3 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi.c#20 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_acad.c#8 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_button.c#6 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_cmbat.c#4 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_ec.c#9 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_isab.c#4 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_lid.c#6 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_pci_link.c#5 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_pcib_acpi.c#5 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_resource.c#6 integrate .. //depot/projects/gdb/sys/dev/acpica/acpivar.h#15 integrate .. //depot/projects/gdb/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/gdb/sys/dev/ata/ata-chipset.c#9 integrate .. //depot/projects/gdb/sys/dev/ata/ata-pci.c#10 integrate .. //depot/projects/gdb/sys/dev/ata/ata-pci.h#8 integrate .. //depot/projects/gdb/sys/dev/awi/awi.c#5 integrate .. //depot/projects/gdb/sys/dev/ciss/ciss.c#11 integrate .. //depot/projects/gdb/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/gdb/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/gdb/sys/dev/esp/ncr53c9xvar.h#3 integrate .. //depot/projects/gdb/sys/dev/firewire/firewire.c#9 integrate .. //depot/projects/gdb/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/gdb/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/gdb/sys/dev/firewire/sbp.c#4 integrate .. //depot/projects/gdb/sys/dev/hme/if_hme.c#9 integrate .. //depot/projects/gdb/sys/dev/ichwd/ichwd.c#4 integrate .. //depot/projects/gdb/sys/dev/ips/ips_commands.c#4 integrate .. //depot/projects/gdb/sys/dev/pdq/pdq_freebsd.h#2 integrate .. //depot/projects/gdb/sys/dev/sound/isa/sb16.c#6 integrate .. //depot/projects/gdb/sys/dev/sound/pci/emu10k1.c#6 integrate .. //depot/projects/gdb/sys/dev/usb/if_udav.c#5 integrate .. //depot/projects/gdb/sys/dev/wi/if_wi.c#5 integrate .. //depot/projects/gdb/sys/fs/fifofs/fifo_vnops.c#6 integrate .. //depot/projects/gdb/sys/fs/specfs/spec_vnops.c#8 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/gdb/sys/i386/acpica/acpi_asus.c#4 integrate .. //depot/projects/gdb/sys/i386/acpica/acpi_toshiba.c#6 integrate .. //depot/projects/gdb/sys/i386/conf/NOTES#13 integrate .. //depot/projects/gdb/sys/i386/i386/bios.c#5 integrate .. //depot/projects/gdb/sys/i386/i386/pmap.c#7 integrate .. //depot/projects/gdb/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/gdb/sys/i386/include/pmap.h#6 integrate .. //depot/projects/gdb/sys/i4b/driver/i4b_ipr.c#2 integrate .. //depot/projects/gdb/sys/kern/init_main.c#4 integrate .. //depot/projects/gdb/sys/kern/kern_clock.c#9 integrate .. //depot/projects/gdb/sys/kern/kern_descrip.c#8 integrate .. //depot/projects/gdb/sys/kern/kern_proc.c#8 integrate .. //depot/projects/gdb/sys/kern/kern_prot.c#5 integrate .. //depot/projects/gdb/sys/kern/kern_resource.c#7 integrate .. //depot/projects/gdb/sys/kern/kern_sema.c#2 integrate .. //depot/projects/gdb/sys/kern/link_elf_obj.c#4 integrate .. //depot/projects/gdb/sys/kern/sched_4bsd.c#5 integrate .. //depot/projects/gdb/sys/kern/sched_ule.c#12 integrate .. //depot/projects/gdb/sys/kern/subr_witness.c#10 integrate .. //depot/projects/gdb/sys/kern/sys_socket.c#4 integrate .. //depot/projects/gdb/sys/kern/tty_conf.c#4 integrate .. //depot/projects/gdb/sys/kern/uipc_socket.c#9 integrate .. //depot/projects/gdb/sys/kern/uipc_socket2.c#9 integrate .. //depot/projects/gdb/sys/kern/uipc_syscalls.c#14 integrate .. //depot/projects/gdb/sys/kern/uipc_usrreq.c#8 integrate .. //depot/projects/gdb/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/gdb/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/gdb/sys/net/bridge.c#6 integrate .. //depot/projects/gdb/sys/net/firewire.h#1 branch .. //depot/projects/gdb/sys/net/if.c#9 integrate .. //depot/projects/gdb/sys/net/if_arcsubr.c#6 integrate .. //depot/projects/gdb/sys/net/if_arp.h#4 integrate .. //depot/projects/gdb/sys/net/if_ef.c#3 integrate .. //depot/projects/gdb/sys/net/if_ethersubr.c#13 integrate .. //depot/projects/gdb/sys/net/if_fddisubr.c#8 integrate .. //depot/projects/gdb/sys/net/if_fwsubr.c#1 branch .. //depot/projects/gdb/sys/net/if_iso88025subr.c#7 integrate .. //depot/projects/gdb/sys/net/if_ppp.c#5 integrate .. //depot/projects/gdb/sys/net/if_sl.c#6 integrate .. //depot/projects/gdb/sys/net/if_spppsubr.c#5 integrate .. //depot/projects/gdb/sys/net/if_tun.c#5 integrate .. //depot/projects/gdb/sys/net/if_var.h#12 integrate .. //depot/projects/gdb/sys/net/if_vlan.c#6 integrate .. //depot/projects/gdb/sys/net/raw_cb.c#4 integrate .. //depot/projects/gdb/sys/net/raw_cb.h#3 integrate .. //depot/projects/gdb/sys/net/raw_usrreq.c#4 integrate .. //depot/projects/gdb/sys/net80211/ieee80211_input.c#4 integrate .. //depot/projects/gdb/sys/netatalk/ddp_input.c#4 integrate .. //depot/projects/gdb/sys/netatalk/ddp_output.c#4 integrate .. //depot/projects/gdb/sys/netatalk/ddp_pcb.c#4 integrate .. //depot/projects/gdb/sys/netatm/atm_aal5.c#2 integrate .. //depot/projects/gdb/sys/netatm/atm_socket.c#2 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#6 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#5 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#5 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#6 integrate .. //depot/projects/gdb/sys/netgraph/ng_ksocket.c#5 integrate .. //depot/projects/gdb/sys/netgraph/ng_rfc1490.c#3 integrate .. //depot/projects/gdb/sys/netgraph/ng_rfc1490.h#2 integrate .. //depot/projects/gdb/sys/netinet/accf_http.c#3 integrate .. //depot/projects/gdb/sys/netinet/if_ether.c#8 integrate .. //depot/projects/gdb/sys/netinet/in_pcb.c#8 integrate .. //depot/projects/gdb/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/gdb/sys/netinet/ip_fw2.c#8 integrate .. //depot/projects/gdb/sys/netinet/ip_input.c#8 integrate .. //depot/projects/gdb/sys/netinet/ip_output.c#9 integrate .. //depot/projects/gdb/sys/netinet/tcp_input.c#8 integrate .. //depot/projects/gdb/sys/netinet/tcp_subr.c#8 integrate .. //depot/projects/gdb/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/gdb/sys/netinet/tcp_usrreq.c#7 integrate .. //depot/projects/gdb/sys/netinet6/in6_pcb.c#5 integrate .. //depot/projects/gdb/sys/netinet6/ip6_input.c#6 integrate .. //depot/projects/gdb/sys/netipx/ipx_pcb.c#3 integrate .. //depot/projects/gdb/sys/netipx/ipx_usrreq.c#2 integrate .. //depot/projects/gdb/sys/netipx/spx_usrreq.c#3 integrate .. //depot/projects/gdb/sys/netnatm/natm.c#3 integrate .. //depot/projects/gdb/sys/netsmb/smb_trantcp.c#3 integrate .. //depot/projects/gdb/sys/nfsclient/bootp_subr.c#3 integrate .. //depot/projects/gdb/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/gdb/sys/nfsclient/nfs_socket.c#7 integrate .. //depot/projects/gdb/sys/pc98/pc98/pc98gdc.c#4 integrate .. //depot/projects/gdb/sys/pci/if_mn.c#4 integrate .. //depot/projects/gdb/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/gdb/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/gdb/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/gdb/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/gdb/sys/sys/_types.h#2 integrate .. //depot/projects/gdb/sys/sys/gmon.h#4 integrate .. //depot/projects/gdb/sys/sys/param.h#13 integrate .. //depot/projects/gdb/sys/sys/proc.h#16 integrate .. //depot/projects/gdb/sys/sys/resource.h#4 integrate .. //depot/projects/gdb/sys/sys/sched.h#4 integrate .. //depot/projects/gdb/sys/sys/socketvar.h#6 integrate .. //depot/projects/gdb/sys/sys/types.h#5 integrate .. //depot/projects/gdb/sys/ufs/ffs/ffs_snapshot.c#4 integrate .. //depot/projects/gdb/sys/vm/vm_contig.c#6 integrate .. //depot/projects/gdb/sys/vm/vm_glue.c#8 integrate .. //depot/projects/gdb/sys/vm/vm_pageout.c#5 integrate .. //depot/projects/gdb/tools/tools/kttcp/sys/kttcp.c#2 integrate .. //depot/projects/gdb/tools/tools/tinderbox/etc/Makefile#3 integrate .. //depot/projects/gdb/tools/tools/tinderbox/etc/update_current.rc#1 branch .. //depot/projects/gdb/tools/tools/tinderbox/etc/update_stable.rc#1 branch .. //depot/projects/gdb/tools/tools/tinderbox/tbmaster.1#4 integrate .. //depot/projects/gdb/tools/tools/tinderbox/tbmaster.pl#5 integrate .. //depot/projects/gdb/tools/tools/tinderbox/www/index.cgi#3 integrate .. //depot/projects/gdb/usr.bin/Makefile#9 integrate .. //depot/projects/gdb/usr.bin/fstat/fstat.c#2 integrate .. //depot/projects/gdb/usr.bin/su/su.c#3 integrate .. //depot/projects/gdb/usr.bin/talk/get_names.c#2 integrate .. //depot/projects/gdb/usr.bin/talk/talk.1#2 integrate .. //depot/projects/gdb/usr.bin/tar/bsdtar.c#17 integrate .. //depot/projects/gdb/usr.bin/tar/bsdtar.h#9 integrate .. //depot/projects/gdb/usr.bin/tar/matching.c#5 integrate .. //depot/projects/gdb/usr.bin/truss/amd64-fbsd.c#1 branch .. //depot/projects/gdb/usr.bin/truss/extern.h#2 integrate .. //depot/projects/gdb/usr.bin/truss/main.c#2 integrate .. //depot/projects/gdb/usr.bin/whois/whois.1#2 integrate .. //depot/projects/gdb/usr.bin/whois/whois.c#2 integrate .. //depot/projects/gdb/usr.sbin/acpi/iasl/iasl.8#2 integrate .. //depot/projects/gdb/usr.sbin/adduser/adduser.conf.5#3 integrate .. //depot/projects/gdb/usr.sbin/apm/apm.c#3 integrate .. //depot/projects/gdb/usr.sbin/arlcontrol/arlcontrol.8#3 integrate .. //depot/projects/gdb/usr.sbin/arp/arp.c#5 integrate .. //depot/projects/gdb/usr.sbin/asf/asf.8#2 integrate .. //depot/projects/gdb/usr.sbin/bluetooth/hcsecd/hcsecd.conf.5#2 integrate .. //depot/projects/gdb/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.8#2 integrate .. //depot/projects/gdb/usr.sbin/bluetooth/sdpd/sdpd.8#2 integrate .. //depot/projects/gdb/usr.sbin/dconschat/dconschat.8#4 integrate .. //depot/projects/gdb/usr.sbin/ip6addrctl/ip6addrctl.8#2 integrate .. //depot/projects/gdb/usr.sbin/moused/moused.8#2 integrate .. //depot/projects/gdb/usr.sbin/mtree/specspec.c#2 integrate .. //depot/projects/gdb/usr.sbin/ndiscvt/ndiscvt.8#2 integrate .. //depot/projects/gdb/usr.sbin/newsyslog/newsyslog.c#6 integrate .. //depot/projects/gdb/usr.sbin/newsyslog/newsyslog.conf.5#3 integrate .. //depot/projects/gdb/usr.sbin/nologin/nologin.5#2 integrate .. //depot/projects/gdb/usr.sbin/traceroute6/traceroute6.c#2 integrate .. //depot/projects/gdb/usr.sbin/watchdogd/watchdog.8#3 integrate .. //depot/projects/gdb/usr.sbin/watchdogd/watchdogd.8#4 integrate .. //depot/projects/gdb/usr.sbin/zzz/zzz.8#2 integrate Differences ... ==== //depot/projects/gdb/UPDATING#15 (text+ko) ==== @@ -17,7 +17,19 @@ developers choose to disable these features on build machines to maximize performance. -20040607: +20040614: + The return value of sema_timedwait(9) has been changed to + make it consistent with cv_timedwait(9). Be sure to recompile + the ips module and any third-party modules which call + sema_timedwait. + +20040613: + ALTQ is now linked to the build. This breaks ABI for struct ifnet. + Make sure to recompile modules and any userland that makes use of + sizeof(struct ifnet). In order to get the altq headers in place + please recompile and reinstall world. + +20040607: Splitting kern_thread.c into 2 files (adding kern_kse.c) requires that you re-run config after updating your tree. @@ -1611,4 +1623,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.309 2004/06/07 21:37:40 julian Exp $ +$FreeBSD: src/UPDATING,v 1.312 2004/06/14 18:19:04 jdp Exp $ ==== //depot/projects/gdb/bin/setfacl/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/bin/setfacl/Makefile,v 1.7 2001/12/04 01:57:46 obrien Exp $ +# $FreeBSD: src/bin/setfacl/Makefile,v 1.8 2004/06/13 19:22:53 obrien Exp $ -PROG= setfacl -SRCS= file.c mask.c merge.c remove.c setfacl.c util.c +PROG= setfacl +SRCS= file.c mask.c merge.c remove.c setfacl.c util.c .include ==== //depot/projects/gdb/contrib/groff/doc/meintro.me#2 (text+ko) ==== @@ -2239,8 +2239,5 @@ and the plethora of people who have contributed ideas and have given support for the project. .sp 1i -This document was -\*G'ed -on \*(td -and applies to the version of the \-me macros +This document applies to the version of the \-me macros included with \*G version \*(MO. ==== //depot/projects/gdb/contrib/groff/doc/meref.me#2 (text+ko) ==== @@ -195,9 +195,7 @@ (upper or lower case) or digit. .pp -This documentation was \*G'ed -on \*(td -and applies to \*G version +This documentation applies to \*G version \*(MO of the \-me macros. .sh 1 "Paragraphing" @@ -1822,19 +1820,19 @@ .DE Today's date, directly printable. -The date is of the form \*(td. +The date is of the form February 15, 2003. Other forms of the date can be used by using .NR (dy (the day of the month; -for example, \n(dy), +for example, 15), .ST (mo (as noted above) or .NR (mo (the same, but as an ordinal number; -for example, \*(mo is \n(mo), +for example, February is 2), .NR (y4 (the current year), and ==== //depot/projects/gdb/etc/mtree/BSD.include.dist#6 (text+ko) ==== @@ -1,10 +1,12 @@ -# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.82 2004/05/20 10:29:26 pjd Exp $ +# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.83 2004/06/13 17:29:05 mlaier Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # /set type=dir uname=root gname=wheel mode=0755 . + altq + .. arpa .. bsnmp ==== //depot/projects/gdb/include/Makefile#6 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.213 2004/05/20 10:29:26 pjd Exp $ +# $FreeBSD: src/include/Makefile,v 1.214 2004/06/13 17:29:05 mlaier Exp $ # # Doing a "make install" builds /usr/include. @@ -111,6 +111,9 @@ cd ${.CURDIR}/../sys/dev/bktr; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ioctl_*.h \ ${DESTDIR}${INCLUDEDIR}/dev/bktr + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ + ${DESTDIR}${INCLUDEDIR}/altq cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/netinet @@ -149,6 +152,11 @@ ln -fs ../../../../../sys/$i/$$h ${DESTDIR}${INCLUDEDIR}/$i; \ done .endfor + cd ${.CURDIR}/../sys/contrib/altq/altq; \ + for h in *.h; do \ + ln -fs ../../../sys/contrib/altq/altq/$$h \ + ${DESTDIR}${INCLUDEDIR}/altq; \ + done cd ${.CURDIR}/../sys/contrib/ipfilter/netinet; \ for h in *.h; do \ ln -fs ../../../sys/contrib/ipfilter/netinet/$$h \ ==== //depot/projects/gdb/lib/libarchive/archive_read_extract.c#15 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.17 2004/06/05 06:08:40 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.18 2004/06/15 07:12:04 kientzle Exp $"); #include #include @@ -394,11 +394,10 @@ mode = st->st_mode; /* - * XXX TODO: Does this really work under all conditions? - * E.g., root restores a dir owned by someone else? XXX + * Use conservative permissions when creating directories + * to close a few security races. */ - /* Ensure we can write to this directory. */ - writable_mode = mode | 0700; + writable_mode = 0700; if (mode != writable_mode || flags & ARCHIVE_EXTRACT_TIME) { /* Add this dir to the fixup list. */ @@ -694,21 +693,34 @@ /* * Returns 0 if it successfully created necessary directories. * Otherwise, returns ARCHIVE_WARN. + * + * XXX TODO: Merge this with archive_extract_dir() above; that will + * allow us to deal with all directory-related security and + * permissions issues in one place. XXX */ static int mkdirpath(struct archive *a, const char *path) { char *p; struct extract *extract; + size_t len; extract = a->extract; /* Copy path to mutable storage, then call mkdirpath_recursive. */ archive_strcpy(&(extract->mkdirpath), path); + p = extract->mkdirpath.s; + len = strlen(p); + /* Prune trailing "/." sequence. */ + if (len > 2 && p[len - 1] == '.' && p[len - 2] == '/') { + p[len - 1] = 0; + len--; + } /* Prune a trailing '/' character. */ - p = extract->mkdirpath.s; - if (p[strlen(p)-1] == '/') - p[strlen(p)-1] = 0; + if (p[len - 1] == '/') { + p[len - 1] = 0; + len--; + } /* Recursively try to build the path. */ return (mkdirpath_recursive(p)); } @@ -736,6 +748,10 @@ static int mksubdir(char *path) { + /* + * TODO: Change mode here to 0700 and add a fixup entry + * to change the mode to 0755 after the extract is finished. + */ int mode = 0755; if (mkdir(path, mode) == 0) return (0); ==== //depot/projects/gdb/lib/libc/amd64/gen/signalcontext.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/signalcontext.c,v 1.3 2004/03/31 07:27:31 peter Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/signalcontext.c,v 1.4 2004/06/15 21:46:36 davidxu Exp $"); #include #include @@ -58,7 +58,7 @@ * This means that we need an 8-byte-odd alignment since the ABI expects * the return address to be pushed, thus breaking the 16 byte alignment. */ - sp = (ucp->uc_mcontext.mc_rsp - sizeof(ucontext_t)) & ~15UL; + sp = (ucp->uc_mcontext.mc_rsp - 128 - sizeof(ucontext_t)) & ~15UL; sig_uc = (ucontext_t *)sp; bcopy(ucp, sig_uc, sizeof(*sig_uc)); sp = (sp - sizeof(siginfo_t)) & ~15UL; ==== //depot/projects/gdb/lib/libc/gmon/moncontrol.3#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)moncontrol.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.14 2002/12/19 09:40:22 ru Exp $ +.\" $FreeBSD: src/lib/libc/gmon/moncontrol.3,v 1.15 2004/06/14 18:41:24 bms Exp $ .\" -.Dd June 4, 1993 +.Dd June 14, 2004 .Dt MONCONTROL 3 .Os .Sh NAME @@ -43,6 +43,7 @@ .Lb libc .Sh SYNOPSIS .In sys/types.h +.In sys/gmon.h .Ft int .Fn moncontrol "int mode" .Ft int ==== //depot/projects/gdb/lib/libc/net/inet.3#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.25 2002/09/06 11:23:49 tjr Exp $ +.\" $FreeBSD: src/lib/libc/net/inet.3,v 1.27 2004/06/14 14:24:18 bms Exp $ .\" -.Dd June 17, 1996 +.Dd June 14, 2004 .Dt INET 3 .Os .Sh NAME @@ -119,10 +119,17 @@ .Pp The function .Fn inet_ntop -converts an address from network format (usually a +converts an address +.Fa *src +from network format +(usually a .Ft struct in_addr or some other binary form, in network byte order) to presentation format (suitable for external display purposes). +The +.Fa size +argument specifies the size, in bytes, of the buffer +.Fa *dst . It returns NULL if a system error occurs (in which case, .Va errno will have been set), or it returns a pointer to the destination string. @@ -226,6 +233,18 @@ and .Fn inet_network for malformed requests. +.Sh ERRORS +The +.Fn inet_ntop +call fails if: +.Bl -tag -width Er +.It Bq Er ENOSPC +.Fa size +was not large enough to store the presentation form of the address. +.It Bq Er EAFNOSUPPORT +.Fa *src +was not an AF_INET or AF_INET6 family address. +.El .Sh SEE ALSO .Xr addr2ascii 3 , .Xr byteorder 3 , ==== //depot/projects/gdb/lib/libc/stdtime/asctime.c#2 (text+ko) ==== @@ -1,15 +1,15 @@ /* ** This file is in the public domain, so clarified as of -** June 5, 1996 by Arthur David Olson (arthur_david_olson@nih.gov). +** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). */ #include #ifndef lint #ifndef NOID -static char elsieid[] __unused = "@(#)asctime.c 7.7"; +static char elsieid[] __unused = "@(#)asctime.c 7.9"; #endif /* !defined NOID */ #endif /* !defined lint */ -__FBSDID("$FreeBSD: src/lib/libc/stdtime/asctime.c,v 1.11 2003/02/16 17:29:11 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdtime/asctime.c,v 1.12 2004/06/14 10:31:52 stefanf Exp $"); /*LINTLIBRARY*/ @@ -19,24 +19,14 @@ #include "tzfile.h" /* -** A la X3J11, with core dump avoidance. +** A la ISO/IEC 9945-1, ANSI/IEEE Std 1003.1, Second Edition, 1996-07-12. */ - char * -asctime(timeptr) +asctime_r(timeptr, buf) const struct tm * timeptr; +char * buf; { - static char result[3 * 2 + 5 * INT_STRLEN_MAXIMUM(int) + - 3 + 2 + 1 + 1]; - return(asctime_r(timeptr, result)); -} - -char * -asctime_r(timeptr, result) -const struct tm * timeptr; -char *result; -{ static const char wday_name[][3] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; @@ -44,13 +34,6 @@ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - /* - ** Big enough for something such as - ** ??? ???-2147483648 -2147483648:-2147483648:-2147483648 -2147483648\n - ** (two three-character abbreviations, five strings denoting integers, - ** three explicit spaces, two explicit colons, a newline, - ** and a trailing ASCII nul). - */ const char * wn; const char * mn; @@ -65,10 +48,31 @@ ** "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n" ** Since the .2 in 02.2d is ignored, we drop it. */ - (void) sprintf(result, "%.3s %.3s%3d %02d:%02d:%02d %d\n", + (void) sprintf(buf, "%.3s %.3s%3d %02d:%02d:%02d %d\n", wn, mn, timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, TM_YEAR_BASE + timeptr->tm_year); - return result; + return buf; +} + +/* +** A la X3J11, with core dump avoidance. +*/ + +char * +asctime(timeptr) +const struct tm * timeptr; +{ + /* + ** Big enough for something such as + ** ??? ???-2147483648 -2147483648:-2147483648:-2147483648 -2147483648\n + ** (two three-character abbreviations, five strings denoting integers, + ** three explicit spaces, two explicit colons, a newline, + ** and a trailing ASCII nul). + */ + static char result[3 * 2 + 5 * INT_STRLEN_MAXIMUM(int) + + 3 + 2 + 1 + 1]; + + return asctime_r(timeptr, result); } ==== //depot/projects/gdb/lib/libc/stdtime/difftime.c#2 (text+ko) ==== @@ -6,10 +6,10 @@ #include #ifndef lint #ifndef NOID -static char elsieid[] __unused = "@(#)difftime.c 7.7"; +static char elsieid[] __unused = "@(#)difftime.c 7.9"; #endif /* !defined NOID */ #endif /* !defined lint */ -__FBSDID("$FreeBSD: src/lib/libc/stdtime/difftime.c,v 1.7 2003/02/16 17:29:11 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdtime/difftime.c,v 1.8 2004/06/14 10:31:52 stefanf Exp $"); /*LINTLIBRARY*/ @@ -36,10 +36,16 @@ time_t delta; time_t hibit; - if (sizeof(time_t) < sizeof(double)) - return (double) time1 - (double) time0; - if (sizeof(time_t) < sizeof(long_double)) - return (long_double) time1 - (long_double) time0; + { + time_t tt; + double d; + long_double ld; + + if (sizeof tt < sizeof d) + return (double) time1 - (double) time0; + if (sizeof tt < sizeof ld) + return (long_double) time1 - (long_double) time0; + } if (time1 < time0) return -difftime(time0, time1); /* ==== //depot/projects/gdb/lib/libc/stdtime/localtime.c#3 (text+ko) ==== @@ -1,15 +1,15 @@ /* ** This file is in the public domain, so clarified as of -** June 5, 1996 by Arthur David Olson (arthur_david_olson@nih.gov). +** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). */ #include #ifndef lint #ifndef NOID -static char elsieid[] __unused = "@(#)localtime.c 7.57"; +static char elsieid[] __unused = "@(#)localtime.c 7.78"; #endif /* !defined NOID */ #endif /* !defined lint */ -__FBSDID("$FreeBSD: src/lib/libc/stdtime/localtime.c,v 1.38 2004/06/11 03:34:02 kensmith Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdtime/localtime.c,v 1.39 2004/06/14 10:31:52 stefanf Exp $"); /* ** Leap second handling from Bradley White (bww@k.gp.cs.cmu.edu). @@ -77,12 +77,23 @@ static const char gmt[] = "UTC"; +/* +** The DST rules to use if TZ has no rules and we can't load TZDEFRULES. +** We default to US rules as of 1999-08-17. +** POSIX 1003.1 section 8.1.1 says that the default DST rules are +** implementation dependent; for historical reasons, US rules are a +** common default. +*/ +#ifndef TZDEFRULESTRING +#define TZDEFRULESTRING ",M4.1.0,M10.5.0" +#endif /* !defined TZDEFDST */ + struct ttinfo { /* time type information */ - long tt_gmtoff; /* GMT offset in seconds */ + long tt_gmtoff; /* UTC offset in seconds */ int tt_isdst; /* used to set tm_isdst */ int tt_abbrind; /* abbreviation list index */ int tt_ttisstd; /* TRUE if transition is std time */ - int tt_ttisgmt; /* TRUE if transition is GMT */ + int tt_ttisgmt; /* TRUE if transition is UTC */ }; struct lsinfo { /* leap second information */ @@ -152,6 +163,10 @@ void(*funcp) (const time_t *, long, struct tm*), long offset, int * okayp); +static time_t time2sub(struct tm *tmp, + void(*funcp) (const time_t *, + long, struct tm*), + long offset, int * okayp, int do_norm_secs); static void timesub(const time_t * timep, long offset, const struct state * sp, struct tm * tmp); static int tmcomp(const struct tm * atmp, @@ -328,27 +343,23 @@ } { struct tzhead * tzhp; - char buf[sizeof *sp + sizeof *tzhp]; + union { + struct tzhead tzhead; + char buf[sizeof *sp + sizeof *tzhp]; + } u; int ttisstdcnt; int ttisgmtcnt; - i = _read(fid, buf, sizeof buf); + i = _read(fid, u.buf, sizeof u.buf); if (_close(fid) != 0) return -1; - p = buf; - p += (sizeof tzhp->tzh_magic) + (sizeof tzhp->tzh_reserved); - ttisstdcnt = (int) detzcode(p); - p += 4; - ttisgmtcnt = (int) detzcode(p); - p += 4; - sp->leapcnt = (int) detzcode(p); - p += 4; - sp->timecnt = (int) detzcode(p); - p += 4; - sp->typecnt = (int) detzcode(p); - p += 4; - sp->charcnt = (int) detzcode(p); - p += 4; + ttisstdcnt = (int) detzcode(u.tzhead.tzh_ttisstdcnt); + ttisgmtcnt = (int) detzcode(u.tzhead.tzh_ttisgmtcnt); + sp->leapcnt = (int) detzcode(u.tzhead.tzh_leapcnt); + sp->timecnt = (int) detzcode(u.tzhead.tzh_timecnt); + sp->typecnt = (int) detzcode(u.tzhead.tzh_typecnt); + sp->charcnt = (int) detzcode(u.tzhead.tzh_charcnt); + p = u.tzhead.tzh_charcnt + sizeof u.tzhead.tzh_charcnt; if (sp->leapcnt < 0 || sp->leapcnt > TZ_MAX_LEAPS || sp->typecnt <= 0 || sp->typecnt > TZ_MAX_TYPES || sp->timecnt < 0 || sp->timecnt > TZ_MAX_TIMES || @@ -356,7 +367,7 @@ (ttisstdcnt != sp->typecnt && ttisstdcnt != 0) || (ttisgmtcnt != sp->typecnt && ttisgmtcnt != 0)) return -1; - if (i - (p - buf) < sp->timecnt * 4 + /* ats */ + if (i - (p - u.buf) < sp->timecnt * 4 + /* ats */ sp->timecnt + /* types */ sp->typecnt * (4 + 2) + /* ttinfos */ sp->charcnt + /* chars */ @@ -614,8 +625,8 @@ } /* -** Given the Epoch-relative time of January 1, 00:00:00 GMT, in a year, the -** year, a rule, and the offset from GMT at the time that rule takes effect, +** Given the Epoch-relative time of January 1, 00:00:00 UTC, in a year, the +** year, a rule, and the offset from UTC at the time that rule takes effect, ** calculate the Epoch-relative time that rule takes effect. */ @@ -701,10 +712,10 @@ } /* - ** "value" is the Epoch-relative time of 00:00:00 GMT on the day in + ** "value" is the Epoch-relative time of 00:00:00 UTC on the day in ** question. To get the Epoch-relative time of the specified local ** time on that day, add the transition time and the current offset - ** from GMT. + ** from UTC. */ return value + rulep->r_time + offset; } @@ -766,6 +777,8 @@ if (name == NULL) return -1; } else dstoffset = stdoffset - SECSPERHOUR; + if (*name == '\0' && load_result != 0) + name = TZDEFRULESTRING; if (*name == ',' || *name == ';') { struct rule start; struct rule end; @@ -828,8 +841,6 @@ if (*name != '\0') return -1; - if (load_result != 0) - return -1; /* ** Initial values of theirstdoffset and theirdstoffset. */ @@ -903,6 +914,7 @@ sp->ttis[1].tt_gmtoff = -dstoffset; sp->ttis[1].tt_isdst = TRUE; sp->ttis[1].tt_abbrind = stdlen + 1; + sp->typecnt = 2; } } else { dstlen = 0; @@ -915,7 +927,7 @@ sp->charcnt = stdlen + 1; if (dstlen != 0) sp->charcnt += dstlen + 1; - if (sp->charcnt > sizeof sp->chars) + if ((size_t) sp->charcnt > sizeof sp->chars) return -1; cp = sp->chars; (void) strncpy(cp, stdname, stdlen); @@ -976,9 +988,9 @@ return; } - if (lcl_is_set > 0 && strcmp(lcl_TZname, name) == 0) + if (lcl_is_set > 0 && strcmp(lcl_TZname, name) == 0) return; - lcl_is_set = (strlen(name) < sizeof(lcl_TZname)); + lcl_is_set = strlen(name) < sizeof lcl_TZname; if (lcl_is_set) (void) strcpy(lcl_TZname, name); @@ -997,6 +1009,8 @@ */ lclptr->leapcnt = 0; /* so, we're off a little */ lclptr->timecnt = 0; + lclptr->typecnt = 0; + lclptr->ttis[0].tt_isdst = 0; lclptr->ttis[0].tt_gmtoff = 0; lclptr->ttis[0].tt_abbrind = 0; (void) strcpy(lclptr->chars, gmt); @@ -1071,18 +1085,6 @@ } struct tm * -localtime_r(timep, p_tm) -const time_t * const timep; -struct tm *p_tm; -{ - _MUTEX_LOCK(&lcl_mutex); - tzset_basic(); - localsub(timep, 0L, p_tm); - _MUTEX_UNLOCK(&lcl_mutex); - return(p_tm); -} - -struct tm * localtime(timep) const time_t * const timep; { @@ -1119,6 +1121,22 @@ } /* +** Re-entrant version of localtime. +*/ + +struct tm * +localtime_r(timep, tm) +const time_t * const timep; +struct tm * tm; +{ + _MUTEX_LOCK(&lcl_mutex); + tzset_basic(); + localsub(timep, 0L, tm); + _MUTEX_UNLOCK(&lcl_mutex); + return tm; +} + +/* ** gmtsub is to gmtime as localsub is to localtime. */ @@ -1142,7 +1160,7 @@ #ifdef TM_ZONE /* ** Could get fancy here and deliver something such as - ** "GMT+xxxx" or "GMT-xxxx" if offset is non-zero, + ** "UTC+xxxx" or "UTC-xxxx" if offset is non-zero, ** but this is no time for a treasure hunt. */ if (offset != 0) @@ -1197,11 +1215,17 @@ } } +/* +* Re-entrant version of gmtime. +*/ + struct tm * -gmtime_r(const time_t * timep, struct tm * tm) +gmtime_r(timep, tm) +const time_t * const timep; +struct tm * tm; { gmtsub(timep, 0L, tm); - return(tm); + return tm; } #ifdef STD_INSPIRED >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 16 13:20:08 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A269E16A4D0; Wed, 16 Jun 2004 13:20:08 +0000 (GMT) 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 74B3016A4CE for ; Wed, 16 Jun 2004 13:20:08 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6C41443D48 for ; Wed, 16 Jun 2004 13:20:08 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GDK7f8024782 for ; Wed, 16 Jun 2004 13:20:08 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GDJUfX024769 for perforce@freebsd.org; Wed, 16 Jun 2004 13:19:30 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 13:19:30 GMT Message-Id: <200406161319.i5GDJUfX024769@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 55087 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, 16 Jun 2004 13:20:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=55087 Change 55087 by jmallett@jmallett_oingo on 2004/06/16 13:19:15 IFC. Clean up some -i and -d requirements. Break the build by not catching up to dev_t, or bringing in mips bits for new BU. Affected files ... .. //depot/projects/mips/contrib/amd/doc/version.texi#2 integrate .. //depot/projects/mips/contrib/binutils/ChangeLog#3 integrate .. //depot/projects/mips/contrib/binutils/MAINTAINERS#3 integrate .. //depot/projects/mips/contrib/binutils/Makefile.def#1 branch .. //depot/projects/mips/contrib/binutils/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/Makefile.tpl#1 branch .. //depot/projects/mips/contrib/binutils/README-maintainer-mode#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/ChangeLog-0001#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/ChangeLog-0203#1 branch .. //depot/projects/mips/contrib/binutils/bfd/Makefile.am#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/Makefile.in#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/acinclude.m4#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/aclocal.m4#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/aout-arm.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/aout-encap.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/aout-target.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/aoutf1.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/aoutx.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/archive.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/archive64.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/archures.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/bfd-in.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/bfd-in2.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/bfd.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/bfdio.c#1 branch .. //depot/projects/mips/contrib/binutils/bfd/bfdwin.c#1 branch .. //depot/projects/mips/contrib/binutils/bfd/binary.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/bout.c#1 branch .. //depot/projects/mips/contrib/binutils/bfd/cache.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-alpha.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-arm.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-aux.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-i386.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-ia64.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-mips.c#7 delete .. //depot/projects/mips/contrib/binutils/bfd/coff-ppc.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-rs6000.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff-sparc.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/coff64-rs6000.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/coffcode.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/coffgen.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/cofflink.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/coffswap.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/config.bfd#6 integrate .. //depot/projects/mips/contrib/binutils/bfd/config.in#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/configure#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/configure.host#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/configure.in#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/corefile.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-alpha.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-arc.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-arm.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-i386.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-ia64-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-ia64.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-mips.c#7 delete .. //depot/projects/mips/contrib/binutils/bfd/cpu-powerpc.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-rs6000.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-s390.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/cpu-sparc.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/dep-in.sed#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/ChangeLog#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/ChangeLog-9103#1 branch .. //depot/projects/mips/contrib/binutils/bfd/doc/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/Makefile.in#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/aoutx.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/archive.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/archures.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/bfd.texinfo#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/bfdint.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/bfdio.texi#1 branch .. //depot/projects/mips/contrib/binutils/bfd/doc/bfdt.texi#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/bfdwin.texi#1 branch .. //depot/projects/mips/contrib/binutils/bfd/doc/cache.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/chew.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/coffcode.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/core.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/fdl.texi#1 branch .. //depot/projects/mips/contrib/binutils/bfd/doc/format.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/hash.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/init.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/libbfd.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/linker.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/mmo.texi#1 branch .. //depot/projects/mips/contrib/binutils/bfd/doc/opncls.texi#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/reloc.texi#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/section.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/syms.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/doc/targets.texi#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/dwarf1.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/dwarf2.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/ecoff.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/ecofflink.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/ecoffswap.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/efi-app-ia32.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/efi-app-ia64.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf-bfd.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf-eh-frame.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf-strtab.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-arc.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-arm.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-gen.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-i386.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-mips.c#7 delete .. //depot/projects/mips/contrib/binutils/bfd/elf32-ppc.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-s390.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf32-sparc.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-alpha.c#5 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-gen.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-mips.c#7 delete .. //depot/projects/mips/contrib/binutils/bfd/elf64-ppc.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-ppc.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-s390.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-sparc.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elf64-x86-64.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfarm-nabi.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfarm-oabi.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfcode.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfcore.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/elflink.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfxx-ia64.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/elfxx-target.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/format.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/freebsd.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/gen-aout.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/genlink.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/hash.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/i386aout.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/i386linux.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/ieee.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/ihex.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/init.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/libaout.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/libbfd-in.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/libbfd.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/libbfd.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/libcoff-in.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/libcoff.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/libecoff.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/libieee.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/libpei.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/linker.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/merge.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/netbsd-core.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/netbsd.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/opncls.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/osf-core.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/pe-arm.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/pe-i386.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/pe-mips.c#7 delete .. //depot/projects/mips/contrib/binutils/bfd/peXXigen.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/peicode.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/po/BLD-POTFILES.in#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/po/Make-in#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/po/SRC-POTFILES.in#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/po/bfd.pot#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/ppcboot.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/ptrace-core.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/reloc.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/reloc16.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/rs6000-core.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/sco5-core.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/section.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/simple.c#1 branch .. //depot/projects/mips/contrib/binutils/bfd/sparclinux.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/sparcnetbsd.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/srec.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/stabs.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/sunos.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/syms.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/sysdep.h#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/targets.c#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/tekhex.c#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/trad-core.c#2 integrate .. //depot/projects/mips/contrib/binutils/bfd/version.h#4 integrate .. //depot/projects/mips/contrib/binutils/bfd/xcoff-target.h#3 integrate .. //depot/projects/mips/contrib/binutils/bfd/xcofflink.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/ChangeLog-0001#1 branch .. //depot/projects/mips/contrib/binutils/binutils/ChangeLog-0203#1 branch .. //depot/projects/mips/contrib/binutils/binutils/ChangeLog-9197#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/ChangeLog-9899#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/MAINTAINERS#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/NEWS#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/README#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/acinclude.m4#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/aclocal.m4#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/addr2line.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/ar.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/arlex.l#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/arparse.y#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/arsup.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/arsup.h#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/binemul.c#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/binemul.h#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/bucomm.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/bucomm.h#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/budbg.h#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/budemang.c#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/budemang.h#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/coffdump.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/coffgrok.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/coffgrok.h#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/config.in#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/configure#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/configure.in#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/cxxfilt.c#1 branch .. //depot/projects/mips/contrib/binutils/binutils/debug.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/debug.h#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/deflex.l#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/dep-in.sed#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/dlltool.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/dlltool.h#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/dllwrap.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/Makefile.am#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/addr2line.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/ar.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/binutils.texi#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/cxxfilt.man#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/dlltool.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/fdl.texi#1 branch .. //depot/projects/mips/contrib/binutils/binutils/doc/nm.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/objcopy.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/objdump.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/ranlib.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/readelf.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/size.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/strings.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/doc/strip.1#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/filemode.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/ieee.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/nm.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/objcopy.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/objdump.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/po/Make-in#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/po/POTFILES.in#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/po/binutils.pot#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/prdbg.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/rclex.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/rclex.l#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/rdcoff.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/rddbg.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/readelf.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/rename.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/resbin.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/rescoff.c#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/resrc.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/size.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/srconv.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/stabs.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/strings.c#4 integrate .. //depot/projects/mips/contrib/binutils/binutils/sysdump.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/unwind-ia64.c#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/unwind-ia64.h#3 integrate .. //depot/projects/mips/contrib/binutils/binutils/version.c#2 integrate .. //depot/projects/mips/contrib/binutils/binutils/wrstabs.c#3 integrate .. //depot/projects/mips/contrib/binutils/config-ml.in#3 integrate .. //depot/projects/mips/contrib/binutils/config.guess#3 integrate .. //depot/projects/mips/contrib/binutils/config.if#2 integrate .. //depot/projects/mips/contrib/binutils/config.sub#3 integrate .. //depot/projects/mips/contrib/binutils/configure#3 integrate .. //depot/projects/mips/contrib/binutils/configure.in#3 integrate .. //depot/projects/mips/contrib/binutils/gas/CONTRIBUTORS#2 integrate .. //depot/projects/mips/contrib/binutils/gas/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/gas/ChangeLog-0203#1 branch .. //depot/projects/mips/contrib/binutils/gas/ChangeLog-9295#2 integrate .. //depot/projects/mips/contrib/binutils/gas/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/gas/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/gas/NEWS#3 integrate .. //depot/projects/mips/contrib/binutils/gas/README#2 integrate .. //depot/projects/mips/contrib/binutils/gas/acinclude.m4#2 integrate .. //depot/projects/mips/contrib/binutils/gas/aclocal.m4#3 integrate .. //depot/projects/mips/contrib/binutils/gas/app.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/as.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/as.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/atof-generic.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/bignum-copy.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/bignum.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/bit_fix.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/cgen.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/cgen.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/cond.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config.in#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-aout.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-aout.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-coff.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-coff.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-ecoff.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-ecoff.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-elf.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-elf.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-ieee.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-ieee.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/obj-multi.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-alpha.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-alpha.h#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-arc.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-arc.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-arm.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-arm.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-i386.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-i386.h#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-ia64.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-ia64.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-ppc.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-ppc.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-s390.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-s390.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-sparc.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/config/tc-sparc.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/te-generic.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/te-pe.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/config/te-ppcnw.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/configure#4 integrate .. //depot/projects/mips/contrib/binutils/gas/configure.in#4 integrate .. //depot/projects/mips/contrib/binutils/gas/dep-in.sed#3 integrate .. //depot/projects/mips/contrib/binutils/gas/depend.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/all.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/as.1#4 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/as.texinfo#3 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-alpha.texi#3 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-arm.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-i386.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-ia64.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-ppc.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-sh.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/c-sparc.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/gasver.texi#1 branch .. //depot/projects/mips/contrib/binutils/gas/doc/h8.texi#2 integrate .. //depot/projects/mips/contrib/binutils/gas/doc/internals.texi#3 integrate .. //depot/projects/mips/contrib/binutils/gas/dw2gencfi.c#1 branch .. //depot/projects/mips/contrib/binutils/gas/dw2gencfi.h#1 branch .. //depot/projects/mips/contrib/binutils/gas/dwarf2dbg.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/dwarf2dbg.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/ecoff.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/ecoff.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/ehopt.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/emul.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/expr.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/expr.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/flonum-copy.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/flonum-mult.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/flonum.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/frags.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/frags.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/hash.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/hash.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/input-file.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/input-file.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/input-scrub.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/itbl-ops.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/itbl-ops.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/listing.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/listing.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/macro.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/macro.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/messages.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/obj.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/output-file.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/output-file.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/po/Make-in#2 integrate .. //depot/projects/mips/contrib/binutils/gas/po/POTFILES.in#3 integrate .. //depot/projects/mips/contrib/binutils/gas/po/gas.pot#4 integrate .. //depot/projects/mips/contrib/binutils/gas/read.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/read.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/sb.c#2 integrate .. //depot/projects/mips/contrib/binutils/gas/sb.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/stabs.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/subsegs.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/subsegs.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/symbols.c#3 integrate .. //depot/projects/mips/contrib/binutils/gas/symbols.h#3 integrate .. //depot/projects/mips/contrib/binutils/gas/tc.h#2 integrate .. //depot/projects/mips/contrib/binutils/gas/write.c#4 integrate .. //depot/projects/mips/contrib/binutils/gas/write.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/include/ansidecl.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/aout/ChangeLog#2 integrate .. //depot/projects/mips/contrib/binutils/include/aout/aout64.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/aout/stab.def#2 integrate .. //depot/projects/mips/contrib/binutils/include/bfdlink.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/coff/ChangeLog#3 integrate .. //depot/projects/mips/contrib/binutils/include/coff/arm.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/coff/ecoff.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/coff/internal.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/coff/pe.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/coff/sh.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/coff/ti.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/demangle.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/dis-asm.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/ChangeLog#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/ChangeLog-9103#1 branch .. //depot/projects/mips/contrib/binutils/include/elf/arm.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/common.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/dwarf2.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/external.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/frv.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/h8.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/i370.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/ia64.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/internal.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/ip2k.h#1 branch .. //depot/projects/mips/contrib/binutils/include/elf/iq2000.h#1 branch .. //depot/projects/mips/contrib/binutils/include/elf/m32r.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/m68hc11.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/mips.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/mmix.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/mn10300.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/msp430.h#1 branch .. //depot/projects/mips/contrib/binutils/include/elf/ppc.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/ppc64.h#1 branch .. //depot/projects/mips/contrib/binutils/include/elf/reloc-macros.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/s390.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/sh.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/elf/sparc.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/v850.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/x86-64.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/xstormy16.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/elf/xtensa.h#1 branch .. //depot/projects/mips/contrib/binutils/include/fibheap.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/floatformat.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/hashtab.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/libiberty.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/obstack.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/ChangeLog#3 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/ChangeLog-9103#1 branch .. //depot/projects/mips/contrib/binutils/include/opcode/alpha.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/arc.h#3 branch .. //depot/projects/mips/contrib/binutils/include/opcode/cgen.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/convex.h#4 branch .. //depot/projects/mips/contrib/binutils/include/opcode/i386.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/ia64.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/mips.h#7 delete .. //depot/projects/mips/contrib/binutils/include/opcode/np1.h#3 branch .. //depot/projects/mips/contrib/binutils/include/opcode/pn.h#3 branch .. //depot/projects/mips/contrib/binutils/include/opcode/ppc.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/s390.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/opcode/sparc.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/partition.h#3 integrate .. //depot/projects/mips/contrib/binutils/include/safe-ctype.h#2 integrate .. //depot/projects/mips/contrib/binutils/include/splay-tree.h#3 integrate .. //depot/projects/mips/contrib/binutils/install-sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ChangeLog-0001#1 branch .. //depot/projects/mips/contrib/binutils/ld/ChangeLog-0203#1 branch .. //depot/projects/mips/contrib/binutils/ld/ChangeLog-9197#2 integrate .. //depot/projects/mips/contrib/binutils/ld/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/ld/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/ld/NEWS#3 integrate .. //depot/projects/mips/contrib/binutils/ld/README#2 integrate .. //depot/projects/mips/contrib/binutils/ld/aclocal.m4#3 integrate .. //depot/projects/mips/contrib/binutils/ld/config.in#3 integrate .. //depot/projects/mips/contrib/binutils/ld/configure#3 integrate .. //depot/projects/mips/contrib/binutils/ld/configure.host#4 integrate .. //depot/projects/mips/contrib/binutils/ld/configure.in#3 integrate .. //depot/projects/mips/contrib/binutils/ld/configure.tgt#4 integrate .. //depot/projects/mips/contrib/binutils/ld/deffile.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/deffilep.y#2 integrate .. //depot/projects/mips/contrib/binutils/ld/dep-in.sed#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/arcelf.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/armelf.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/armelf_linux.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/armelf_oabi.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/armpe.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32_sparc.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32b4300.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32bmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32bmipn32.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32bsmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32ebmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32elmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32l4300.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32lmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32lsmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32ppc.sh#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64_ia64.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64_s390.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64_sparc.sh#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64alpha.sh#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64bmip.sh#7 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf64ppc.sh#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf_i386.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf_s390.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf_x86_64.sh#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/sh.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/shl.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/shlelf.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emulparams/vanilla.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emulparams/vsta.sh#3 branch .. //depot/projects/mips/contrib/binutils/ld/emultempl/alphaelf.em#1 branch .. //depot/projects/mips/contrib/binutils/ld/emultempl/armcoff.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/armelf.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/armelf_oabi.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/elf32.em#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/generic.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/ia64elf.em#1 branch .. //depot/projects/mips/contrib/binutils/ld/emultempl/linux.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/needrelax.em#2 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/netbsd.em#1 branch .. //depot/projects/mips/contrib/binutils/ld/emultempl/pe.em#4 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/ppc64elf.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/sunos.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/ticoff.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/emultempl/vanilla.em#3 integrate .. //depot/projects/mips/contrib/binutils/ld/fdl.texi#1 branch .. //depot/projects/mips/contrib/binutils/ld/gen-doc.texi#2 integrate .. //depot/projects/mips/contrib/binutils/ld/genscripts.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ld/h8-doc.texi#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ld.1#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ld.h#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ld.texinfo#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldcref.c#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldctor.c#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldctor.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldemul.c#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldemul.h#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldexp.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldexp.h#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldfile.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldfile.h#3 integrate .. //depot/projects/mips/contrib/binutils/ld/ldgram.y#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldint.texinfo#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldlang.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldlang.h#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldlex.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldlex.l#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldmain.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldmain.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldmisc.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldmisc.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldver.c#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldver.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/ldver.texi#1 branch .. //depot/projects/mips/contrib/binutils/ld/ldwrite.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/ldwrite.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/lexsup.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/mri.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/mri.h#2 integrate .. //depot/projects/mips/contrib/binutils/ld/pe-dll.c#4 integrate .. //depot/projects/mips/contrib/binutils/ld/pe-dll.h#3 integrate .. //depot/projects/mips/contrib/binutils/ld/scripttempl/armcoff.sc#2 integrate .. //depot/projects/mips/contrib/binutils/ld/scripttempl/elf.sc#3 integrate .. //depot/projects/mips/contrib/binutils/ld/scripttempl/pe.sc#3 integrate .. //depot/projects/mips/contrib/binutils/ld/sysdep.h#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/libiberty/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/README#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/aclocal.m4#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/argv.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/asprintf.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/calloc.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/config.in#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/config.table#4 integrate .. //depot/projects/mips/contrib/binutils/libiberty/configure#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/copysign.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/cp-demangle.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/cp-demangle.h#1 branch .. //depot/projects/mips/contrib/binutils/libiberty/cp-demint.c#1 branch .. //depot/projects/mips/contrib/binutils/libiberty/cplus-dem.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/fibheap.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/floatformat.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/functions.texi#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/getcwd.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/getpwd.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/hashtab.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/hex.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/lbasename.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/libiberty.texi#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/lrealpath.c#1 branch .. //depot/projects/mips/contrib/binutils/libiberty/maint-tool#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/make-relative-prefix.c#1 branch .. //depot/projects/mips/contrib/binutils/libiberty/md5.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/memchr.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/memcmp.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/memcpy.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/memmove.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/memset.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/physmem.c#1 branch .. //depot/projects/mips/contrib/binutils/libiberty/regex.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/rename.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/safe-ctype.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/sigsetmask.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/splay-tree.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strcasecmp.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strdup.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strerror.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strncasecmp.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strncmp.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strsignal.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/strstr.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/vasprintf.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/vfprintf.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/vprintf.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/vsprintf.c#2 integrate .. //depot/projects/mips/contrib/binutils/libiberty/xatexit.c#3 integrate .. //depot/projects/mips/contrib/binutils/libiberty/xmalloc.c#3 integrate .. //depot/projects/mips/contrib/binutils/libtool.m4#2 integrate .. //depot/projects/mips/contrib/binutils/ltcf-c.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ltcf-cxx.sh#3 integrate .. //depot/projects/mips/contrib/binutils/ltcf-gcj.sh#2 integrate .. //depot/projects/mips/contrib/binutils/ltconfig#2 integrate .. //depot/projects/mips/contrib/binutils/missing#2 integrate .. //depot/projects/mips/contrib/binutils/mkinstalldirs#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ChangeLog#4 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ChangeLog-0001#1 branch .. //depot/projects/mips/contrib/binutils/opcodes/ChangeLog-0203#1 branch .. //depot/projects/mips/contrib/binutils/opcodes/Makefile.am#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/Makefile.in#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/aclocal.m4#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/alpha-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/arc-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/arm-dis.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/arm-opc.h#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-asm.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-asm.in#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-dis.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-dis.in#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-ibld.in#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/cgen.sh#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/config.in#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/configure#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/configure.in#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/dep-in.sed#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/dis-buf.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/dis-init.c#1 branch .. //depot/projects/mips/contrib/binutils/opcodes/disassemble.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/i386-dis.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-asmtab.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-dis.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-gen.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-ic.tbl#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-a.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-b.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-d.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-f.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-i.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-m.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc-x.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-opc.h#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-raw.tbl#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ia64-waw.tbl#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/po/Make-in#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/po/POTFILES.in#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/po/opcodes.pot#4 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ppc-dis.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/ppc-opc.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/s390-dis.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/s390-mkopc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/s390-opc.c#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/s390-opc.txt#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/sh-dis.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/sh-opc.h#2 integrate .. //depot/projects/mips/contrib/binutils/opcodes/sparc-dis.c#3 integrate .. //depot/projects/mips/contrib/binutils/opcodes/sparc-opc.c#3 integrate .. //depot/projects/mips/contrib/binutils/symlink-tree#2 integrate .. //depot/projects/mips/contrib/bsnmp/FREEBSD-Xlist#2 integrate .. //depot/projects/mips/etc/rc.sendmail#2 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/Makefile#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/Makefile.inc0#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/addr2line/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ar/Makefile#3 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/Makefile.inc0#7 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/alpha-freebsd/config.h#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/amd64-freebsd/config.h#2 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/i386-freebsd/config.h#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/ia64-freebsd/config.h#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/powerpc-freebsd/config.h#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/as/sparc64-freebsd/config.h#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/gdb/Makefile#10 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.alpha#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.amd64#3 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.i386#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.ia64#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.powerpc#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.sparc64#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/config.h#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ld/genscripts.sh#3 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile#7 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.alpha#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.i386#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/alpha/bfd.h#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/amd64/bfd.h#2 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/i386/bfd.h#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/sparc64/bfd.h#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbinutils/Makefile#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libbinutils/config.h#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libiberty/Makefile#6 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libiberty/config.h#3 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libopcodes/Makefile#2 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/libopcodes/config.h#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/nm/Makefile#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/objcopy/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/objdump/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/ranlib/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/readelf/Makefile#5 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/size/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/strings/Makefile#4 integrate .. //depot/projects/mips/gnu/usr.bin/binutils/strip/Makefile#4 integrate .. //depot/projects/mips/lib/libc/amd64/gen/signalcontext.c#3 integrate .. //depot/projects/mips/lib/libkvm/kvm_proc.c#10 integrate .. //depot/projects/mips/sbin/geom/core/Makefile#2 integrate .. //depot/projects/mips/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/mips/sbin/geom/misc/subr.h#2 integrate .. //depot/projects/mips/sbin/route/route.c#7 integrate .. //depot/projects/mips/sbin/routed/defs.h#5 integrate .. //depot/projects/mips/share/man/man4/acpi.4#14 integrate .. //depot/projects/mips/share/man/man4/aha.4#4 integrate .. //depot/projects/mips/share/man/man4/ata.4#8 integrate .. //depot/projects/mips/share/man/man4/awi.4#5 integrate .. //depot/projects/mips/share/man/man4/bpf.4#4 integrate .. //depot/projects/mips/share/man/man4/bridge.4#3 integrate .. //depot/projects/mips/share/man/man4/ddb.4#4 integrate .. //depot/projects/mips/share/man/man4/gre.4#4 integrate .. //depot/projects/mips/share/man/man4/inet.4#7 integrate .. //depot/projects/mips/share/man/man4/ip.4#9 integrate .. //depot/projects/mips/share/man/man4/kame.4#3 integrate .. //depot/projects/mips/share/man/man4/kue.4#6 integrate .. //depot/projects/mips/share/man/man4/mac_portacl.4#4 integrate .. //depot/projects/mips/share/man/man4/man4.i386/ct.4#3 integrate .. //depot/projects/mips/share/man/man4/man4.i386/cx.4#9 integrate .. //depot/projects/mips/share/man/man4/mpt.4#2 integrate .. //depot/projects/mips/share/man/man4/ng_one2many.4#6 integrate .. //depot/projects/mips/share/man/man4/ng_rfc1490.4#4 integrate .. //depot/projects/mips/share/man/man4/pcm.4#6 integrate .. //depot/projects/mips/share/man/man4/random.4#5 integrate .. //depot/projects/mips/share/man/man4/sbp.4#9 integrate .. //depot/projects/mips/share/man/man4/smb.4#3 integrate .. //depot/projects/mips/share/man/man4/smp.4#7 integrate .. //depot/projects/mips/share/man/man4/syscons.4#5 integrate .. //depot/projects/mips/share/man/man4/tcp.4#9 integrate .. //depot/projects/mips/share/man/man4/umass.4#12 integrate .. //depot/projects/mips/share/man/man4/wlan.4#3 integrate .. //depot/projects/mips/share/man/man5/config.5#3 integrate .. //depot/projects/mips/share/man/man5/devfs.5#4 integrate .. //depot/projects/mips/share/man/man5/hosts.lpd.5#3 integrate .. //depot/projects/mips/share/man/man5/libmap.conf.5#5 integrate .. //depot/projects/mips/share/man/man5/make.conf.5#16 integrate .. //depot/projects/mips/share/man/man5/periodic.conf.5#7 integrate .. //depot/projects/mips/share/man/man5/rc.conf.5#19 integrate .. //depot/projects/mips/share/man/man5/remote.5#4 integrate .. //depot/projects/mips/share/man/man5/resolver.5#3 integrate .. //depot/projects/mips/share/man/man7/build.7#4 integrate .. //depot/projects/mips/share/man/man7/firewall.7#5 integrate .. //depot/projects/mips/share/man/man7/hier.7#11 integrate .. //depot/projects/mips/share/man/man7/ports.7#8 integrate .. //depot/projects/mips/share/man/man7/security.7#6 integrate .. //depot/projects/mips/share/man/man8/diskless.8#7 integrate .. //depot/projects/mips/share/man/man9/DEVICE_IDENTIFY.9#4 integrate .. //depot/projects/mips/share/man/man9/VOP_GETPAGES.9#3 integrate .. //depot/projects/mips/share/man/man9/accept_filter.9#5 integrate .. //depot/projects/mips/share/man/man9/buf.9#5 integrate .. //depot/projects/mips/share/man/man9/bus_alloc_resource.9#7 integrate .. //depot/projects/mips/share/man/man9/cd.9#4 integrate .. //depot/projects/mips/share/man/man9/copy.9#4 integrate .. //depot/projects/mips/share/man/man9/device_add_child.9#5 integrate .. //depot/projects/mips/share/man/man9/mac.9#7 integrate .. //depot/projects/mips/share/man/man9/mutex.9#8 integrate .. //depot/projects/mips/share/man/man9/pfil.9#4 integrate .. //depot/projects/mips/share/man/man9/rtentry.9#4 integrate .. //depot/projects/mips/share/man/man9/style.9#11 integrate .. //depot/projects/mips/share/man/man9/sx.9#5 integrate .. //depot/projects/mips/share/man/man9/taskqueue.9#4 integrate .. //depot/projects/mips/share/man/man9/time.9#4 integrate .. //depot/projects/mips/share/man/man9/timeout.9#4 integrate .. //depot/projects/mips/share/man/man9/vm_page_alloc.9#3 integrate .. //depot/projects/mips/share/man/man9/vslock.9#4 integrate .. //depot/projects/mips/sys/alpha/alpha/mem.c#9 integrate .. //depot/projects/mips/sys/alpha/alpha/pmap.c#15 integrate .. //depot/projects/mips/sys/alpha/alpha/promcons.c#7 integrate .. //depot/projects/mips/sys/alpha/include/cpu.h#6 integrate .. //depot/projects/mips/sys/alpha/include/ioctl_meteor.h#2 integrate .. //depot/projects/mips/sys/alpha/tlsb/zs_tlsb.c#7 integrate .. //depot/projects/mips/sys/amd64/amd64/mem.c#6 integrate .. //depot/projects/mips/sys/amd64/amd64/pmap.c#10 integrate .. //depot/projects/mips/sys/amd64/include/cpu.h#4 integrate .. //depot/projects/mips/sys/amd64/isa/icu.h#2 integrate .. //depot/projects/mips/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/mips/sys/arm/include/bus.h#2 integrate .. //depot/projects/mips/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/mips/sys/boot/i386/libi386/bioscd.c#4 integrate .. //depot/projects/mips/sys/boot/i386/libi386/biosdisk.c#7 integrate .. //depot/projects/mips/sys/boot/i386/libi386/libi386.h#3 integrate .. //depot/projects/mips/sys/boot/pc98/boot2/dinode.h#3 integrate .. //depot/projects/mips/sys/boot/pc98/boot2/inode.h#3 integrate .. //depot/projects/mips/sys/boot/pc98/libpc98/biosdisk.c#6 integrate .. //depot/projects/mips/sys/cam/cam_xpt.c#8 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_ch.c#7 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_pass.c#6 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_pt.c#7 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_sa.c#13 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_ses.c#6 integrate .. //depot/projects/mips/sys/cam/scsi/scsi_target.c#9 integrate .. //depot/projects/mips/sys/coda/cnode.h#6 integrate .. //depot/projects/mips/sys/coda/coda.h#3 integrate .. //depot/projects/mips/sys/coda/coda_fbsd.c#8 integrate .. //depot/projects/mips/sys/coda/coda_psdev.c#5 integrate .. //depot/projects/mips/sys/coda/coda_psdev.h#2 integrate .. //depot/projects/mips/sys/coda/coda_venus.c#4 integrate .. //depot/projects/mips/sys/coda/coda_venus.h#3 integrate .. //depot/projects/mips/sys/coda/coda_vfsops.c#4 integrate .. //depot/projects/mips/sys/coda/coda_vnops.c#4 integrate .. //depot/projects/mips/sys/coda/coda_vnops.h#3 integrate .. //depot/projects/mips/sys/compat/linux/linux_stats.c#9 integrate .. //depot/projects/mips/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/mips/sys/contrib/dev/fla/fla.c#9 integrate .. //depot/projects/mips/sys/contrib/ipfilter/netinet/ip_fil.c#7 integrate .. //depot/projects/mips/sys/contrib/ipfilter/netinet/ip_fil.h#3 integrate .. //depot/projects/mips/sys/contrib/ipfilter/netinet/mlfk_ipl.c#4 integrate .. //depot/projects/mips/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/mips/sys/dev/aac/aac.c#15 integrate .. //depot/projects/mips/sys/dev/aac/aacvar.h#10 integrate .. //depot/projects/mips/sys/dev/acpica/acpi.c#22 integrate .. //depot/projects/mips/sys/dev/acpica/acpivar.h#15 integrate .. //depot/projects/mips/sys/dev/adlink/adlink.c#8 integrate .. //depot/projects/mips/sys/dev/amr/amr.c#10 integrate .. //depot/projects/mips/sys/dev/amr/amrvar.h#10 integrate .. //depot/projects/mips/sys/dev/asr/asr.c#11 integrate .. //depot/projects/mips/sys/dev/ata/ata-all.c#23 integrate .. //depot/projects/mips/sys/dev/ata/atapi-tape.c#13 integrate .. //depot/projects/mips/sys/dev/ata/atapi-tape.h#6 integrate .. //depot/projects/mips/sys/dev/bktr/bktr_core.c#7 integrate .. //depot/projects/mips/sys/dev/bktr/bktr_core.h#2 integrate .. //depot/projects/mips/sys/dev/bktr/bktr_os.c#12 integrate .. //depot/projects/mips/sys/dev/bktr/bktr_reg.h#4 integrate .. //depot/projects/mips/sys/dev/ciss/ciss.c#18 integrate .. //depot/projects/mips/sys/dev/ciss/cissvar.h#5 integrate .. //depot/projects/mips/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/mips/sys/dev/ctau/if_ct.c#4 integrate .. //depot/projects/mips/sys/dev/cx/if_cx.c#7 integrate .. //depot/projects/mips/sys/dev/cy/cy.c#3 integrate .. //depot/projects/mips/sys/dev/dcons/dcons.c#4 integrate .. //depot/projects/mips/sys/dev/digi/digi.c#9 integrate .. //depot/projects/mips/sys/dev/digi/digi.h#3 integrate .. //depot/projects/mips/sys/dev/drm/drmP.h#8 integrate .. //depot/projects/mips/sys/dev/drm/drm_drv.h#12 integrate .. //depot/projects/mips/sys/dev/drm/drm_fops.h#7 integrate .. //depot/projects/mips/sys/dev/drm/drm_os_freebsd.h#9 integrate .. //depot/projects/mips/sys/dev/drm/drm_vm.h#8 integrate .. //depot/projects/mips/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/mips/sys/dev/fb/vga.c#10 integrate .. //depot/projects/mips/sys/dev/fb/vgareg.h#3 integrate .. //depot/projects/mips/sys/dev/fdc/fdc.c#2 integrate .. //depot/projects/mips/sys/dev/firewire/firewirereg.h#14 integrate .. //depot/projects/mips/sys/dev/firewire/fwdev.c#12 integrate .. //depot/projects/mips/sys/dev/firewire/fwmem.c#12 integrate .. //depot/projects/mips/sys/dev/firewire/fwohci.c#22 integrate .. //depot/projects/mips/sys/dev/firewire/sbp.c#18 integrate .. //depot/projects/mips/sys/dev/gfb/gfb_pci.c#8 integrate .. //depot/projects/mips/sys/dev/ida/ida.c#12 integrate .. //depot/projects/mips/sys/dev/ida/idavar.h#5 integrate .. //depot/projects/mips/sys/dev/iicbus/iic.c#6 integrate .. //depot/projects/mips/sys/dev/iir/iir.h#8 integrate .. //depot/projects/mips/sys/dev/iir/iir_ctrl.c#9 integrate .. //depot/projects/mips/sys/dev/ips/ips.c#7 integrate .. //depot/projects/mips/sys/dev/ips/ips.h#7 integrate .. //depot/projects/mips/sys/dev/isp/isp_freebsd.c#8 integrate .. //depot/projects/mips/sys/dev/joy/joy.c#6 integrate .. //depot/projects/mips/sys/dev/joy/joyvar.h#2 integrate .. //depot/projects/mips/sys/dev/kbd/kbd.c#9 integrate .. //depot/projects/mips/sys/dev/kbd/kbdreg.h#3 integrate .. //depot/projects/mips/sys/dev/led/led.c#5 integrate .. //depot/projects/mips/sys/dev/led/led.h#3 integrate .. //depot/projects/mips/sys/dev/matcd/matcd.c#3 integrate .. //depot/projects/mips/sys/dev/matcd/matcd_data.h#2 integrate .. //depot/projects/mips/sys/dev/mcd/mcd.c#9 integrate .. //depot/projects/mips/sys/dev/mcd/mcdvar.h#4 integrate .. //depot/projects/mips/sys/dev/md/md.c#24 integrate .. //depot/projects/mips/sys/dev/mlx/mlx.c#10 integrate .. //depot/projects/mips/sys/dev/mlx/mlxvar.h#6 integrate .. //depot/projects/mips/sys/dev/mly/mly.c#13 integrate .. //depot/projects/mips/sys/dev/mly/mlyvar.h#3 integrate .. //depot/projects/mips/sys/dev/nmdm/nmdm.c#10 integrate .. //depot/projects/mips/sys/dev/null/null.c#7 integrate .. //depot/projects/mips/sys/dev/ofw/ofw_console.c#12 integrate .. //depot/projects/mips/sys/dev/ofw/openfirmio.c#8 integrate .. //depot/projects/mips/sys/dev/ofw/openpromio.c#3 integrate .. //depot/projects/mips/sys/dev/pci/pci.c#12 integrate .. //depot/projects/mips/sys/dev/pci/pci_user.c#8 integrate .. //depot/projects/mips/sys/dev/ppbus/lpt.c#9 integrate .. //depot/projects/mips/sys/dev/ppbus/pcfclock.c#9 integrate .. //depot/projects/mips/sys/dev/ppbus/ppi.c#7 integrate .. //depot/projects/mips/sys/dev/ppbus/pps.c#8 integrate .. //depot/projects/mips/sys/dev/random/randomdev.c#9 integrate .. //depot/projects/mips/sys/dev/rc/rc.c#10 integrate .. //depot/projects/mips/sys/dev/rp/rp.c#10 integrate .. //depot/projects/mips/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/mips/sys/dev/sab/sab.c#15 integrate .. //depot/projects/mips/sys/dev/scd/scd.c#8 integrate .. //depot/projects/mips/sys/dev/scd/scdvar.h#2 integrate .. //depot/projects/mips/sys/dev/si/si.c#9 integrate .. //depot/projects/mips/sys/dev/sio/sio.c#16 integrate .. //depot/projects/mips/sys/dev/smbus/smb.c#6 integrate .. //depot/projects/mips/sys/dev/snp/snp.c#11 integrate .. //depot/projects/mips/sys/dev/sound/pcm/dsp.c#13 integrate .. //depot/projects/mips/sys/dev/sound/pcm/mixer.c#10 integrate .. //depot/projects/mips/sys/dev/sound/pcm/mixer.h#3 integrate .. //depot/projects/mips/sys/dev/sound/pcm/sndstat.c#9 integrate .. //depot/projects/mips/sys/dev/sound/pcm/sound.h#10 integrate .. //depot/projects/mips/sys/dev/streams/streams.c#7 integrate .. //depot/projects/mips/sys/dev/sx/sx.c#3 integrate .. //depot/projects/mips/sys/dev/syscons/scvesactl.c#3 integrate .. //depot/projects/mips/sys/dev/syscons/syscons.c#13 integrate .. //depot/projects/mips/sys/dev/syscons/syscons.h#3 integrate .. //depot/projects/mips/sys/dev/syscons/sysmouse.c#6 integrate .. //depot/projects/mips/sys/dev/tdfx/tdfx_pci.c#11 integrate .. //depot/projects/mips/sys/dev/tdfx/tdfx_vars.h#3 integrate .. //depot/projects/mips/sys/dev/twa/twa.h#2 integrate .. //depot/projects/mips/sys/dev/twa/twa_freebsd.c#2 integrate .. //depot/projects/mips/sys/dev/twe/twe_compat.h#9 integrate .. //depot/projects/mips/sys/dev/twe/twe_freebsd.c#14 integrate .. //depot/projects/mips/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/mips/sys/dev/uart/uart_tty.c#4 integrate .. //depot/projects/mips/sys/dev/usb/ubser.c#3 integrate .. //depot/projects/mips/sys/dev/usb/ucom.c#10 integrate .. //depot/projects/mips/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/mips/sys/dev/usb/ufm.c#8 integrate .. //depot/projects/mips/sys/dev/usb/ugen.c#10 integrate .. //depot/projects/mips/sys/dev/usb/uhid.c#10 integrate .. //depot/projects/mips/sys/dev/usb/ulpt.c#7 integrate .. //depot/projects/mips/sys/dev/usb/ums.c#7 integrate .. //depot/projects/mips/sys/dev/usb/urio.c#7 integrate .. //depot/projects/mips/sys/dev/usb/usb.c#10 integrate .. //depot/projects/mips/sys/dev/usb/uscanner.c#10 integrate .. //depot/projects/mips/sys/dev/vinum/vinum.c#9 integrate .. //depot/projects/mips/sys/dev/vinum/vinumext.h#7 integrate .. //depot/projects/mips/sys/dev/vinum/vinumioctl.c#8 integrate .. //depot/projects/mips/sys/dev/vinum/vinumobj.h#4 integrate .. //depot/projects/mips/sys/dev/vinum/vinumutil.c#4 integrate .. //depot/projects/mips/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/mips/sys/dev/zs/z8530var.h#2 integrate .. //depot/projects/mips/sys/dev/zs/zs.c#9 integrate .. //depot/projects/mips/sys/fs/devfs/devfs.h#6 integrate .. //depot/projects/mips/sys/fs/devfs/devfs_devs.c#7 integrate .. //depot/projects/mips/sys/fs/devfs/devfs_rule.c#9 integrate .. //depot/projects/mips/sys/fs/devfs/devfs_vnops.c#12 integrate .. //depot/projects/mips/sys/fs/hpfs/hpfs.h#3 integrate .. //depot/projects/mips/sys/fs/hpfs/hpfs_hash.c#3 integrate .. //depot/projects/mips/sys/fs/hpfs/hpfs_vfsops.c#8 integrate .. //depot/projects/mips/sys/fs/msdosfs/msdosfs_denode.c#8 integrate .. //depot/projects/mips/sys/fs/msdosfs/msdosfs_vfsops.c#10 integrate .. //depot/projects/mips/sys/fs/msdosfs/msdosfsmount.h#5 integrate .. //depot/projects/mips/sys/fs/ntfs/ntfs.h#3 integrate .. //depot/projects/mips/sys/fs/ntfs/ntfs_ihash.c#3 integrate .. //depot/projects/mips/sys/fs/ntfs/ntfs_ihash.h#2 integrate .. //depot/projects/mips/sys/fs/ntfs/ntfs_inode.h#3 integrate .. //depot/projects/mips/sys/fs/ntfs/ntfs_vfsops.c#7 integrate .. //depot/projects/mips/sys/fs/specfs/spec_vnops.c#14 integrate .. //depot/projects/mips/sys/fs/udf/udf.h#4 integrate .. //depot/projects/mips/sys/geom/gate/g_gate.c#2 integrate .. //depot/projects/mips/sys/geom/geom.h#20 integrate .. //depot/projects/mips/sys/geom/geom_ctl.c#12 integrate .. //depot/projects/mips/sys/geom/geom_dev.c#18 integrate .. //depot/projects/mips/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/mips/sys/gnu/ext2fs/ext2_extern.h#3 integrate .. //depot/projects/mips/sys/gnu/ext2fs/ext2_ihash.c#4 integrate .. //depot/projects/mips/sys/gnu/ext2fs/ext2_mount.h#3 integrate .. //depot/projects/mips/sys/gnu/ext2fs/ext2_vfsops.c#11 integrate .. //depot/projects/mips/sys/gnu/ext2fs/inode.h#3 integrate .. //depot/projects/mips/sys/i386/acpica/acpi_asus.c#3 integrate .. //depot/projects/mips/sys/i386/acpica/acpi_machdep.c#12 integrate .. //depot/projects/mips/sys/i386/acpica/acpi_toshiba.c#5 integrate .. //depot/projects/mips/sys/i386/bios/apm.c#6 integrate .. //depot/projects/mips/sys/i386/bios/smapi.c#6 integrate .. //depot/projects/mips/sys/i386/i386/elan-mmcr.c#13 integrate .. //depot/projects/mips/sys/i386/i386/geode.c#4 integrate .. //depot/projects/mips/sys/i386/i386/machdep.c#21 integrate .. //depot/projects/mips/sys/i386/i386/mem.c#11 integrate .. //depot/projects/mips/sys/i386/i386/perfmon.c#5 integrate .. //depot/projects/mips/sys/i386/i386/pmap.c#25 integrate .. //depot/projects/mips/sys/i386/ibcs2/ibcs2_misc.c#7 integrate .. //depot/projects/mips/sys/i386/include/cpu.h#6 integrate .. //depot/projects/mips/sys/i386/include/ioctl_meteor.h#2 integrate .. //depot/projects/mips/sys/i386/include/pmap.h#11 integrate .. //depot/projects/mips/sys/i386/isa/mse.c#9 integrate .. //depot/projects/mips/sys/i386/isa/pcvt/pcvt_drv.c#8 integrate .. //depot/projects/mips/sys/i386/isa/pcvt/pcvt_ext.c#6 integrate .. //depot/projects/mips/sys/i386/isa/pcvt/pcvt_hdr.h#5 integrate .. //depot/projects/mips/sys/i386/isa/pcvt/pcvt_kbd.c#5 integrate .. //depot/projects/mips/sys/i386/isa/pcvt/pcvt_sup.c#5 integrate .. //depot/projects/mips/sys/i386/isa/spic.c#9 integrate .. //depot/projects/mips/sys/i386/isa/spkr.c#10 integrate .. //depot/projects/mips/sys/i4b/driver/i4b_ctl.c#6 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 16 13:32:21 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 017C816A4D0; Wed, 16 Jun 2004 13:32:20 +0000 (GMT) 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 C411D16A4CF for ; Wed, 16 Jun 2004 13:32:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AA6E143D1D for ; Wed, 16 Jun 2004 13:32:20 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GDVOE5027645 for ; Wed, 16 Jun 2004 13:31:24 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GDVMEU027608 for perforce@freebsd.org; Wed, 16 Jun 2004 13:31:22 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 13:31:22 GMT Message-Id: <200406161331.i5GDVMEU027608@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 55088 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, 16 Jun 2004 13:32:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=55088 Change 55088 by jmallett@jmallett_oingo on 2004/06/16 13:30:56 Untested vendor synch of mips bu bits. Affected files ... .. //depot/projects/mips/contrib/binutils/bfd/coff-mips.c#8 add .. //depot/projects/mips/contrib/binutils/bfd/cpu-mips.c#8 add .. //depot/projects/mips/contrib/binutils/bfd/elf32-mips.c#8 add .. //depot/projects/mips/contrib/binutils/bfd/elf64-mips.c#8 add .. //depot/projects/mips/contrib/binutils/bfd/elfn32-mips.c#1 add .. //depot/projects/mips/contrib/binutils/bfd/elfxx-mips.c#2 edit .. //depot/projects/mips/contrib/binutils/bfd/elfxx-mips.h#2 edit .. //depot/projects/mips/contrib/binutils/bfd/pe-mips.c#8 add .. //depot/projects/mips/contrib/binutils/bfd/pei-mips.c#1 add .. //depot/projects/mips/contrib/binutils/gas/config/e-mipsecoff.c#2 edit .. //depot/projects/mips/contrib/binutils/gas/config/e-mipself.c#2 edit .. //depot/projects/mips/contrib/binutils/gas/config/itbl-mips.h#2 edit .. //depot/projects/mips/contrib/binutils/gas/config/tc-mips.c#2 edit .. //depot/projects/mips/contrib/binutils/gas/config/tc-mips.h#2 edit .. //depot/projects/mips/contrib/binutils/gas/config/te-tmips.h#2 edit .. //depot/projects/mips/contrib/binutils/gas/doc/c-mips.texi#1 add .. //depot/projects/mips/contrib/binutils/include/coff/mips.h#2 edit .. //depot/projects/mips/contrib/binutils/include/elf/mips.h#3 edit .. //depot/projects/mips/contrib/binutils/include/opcode/mips.h#8 add .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipsbig.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipsbsd.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipsidt.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipsidtl.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipslit.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipslnews.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/mipspe.sh#2 edit .. //depot/projects/mips/contrib/binutils/ld/emultempl/mipsecoff.em#2 edit .. //depot/projects/mips/contrib/binutils/ld/emultempl/mipself.em#2 edit .. //depot/projects/mips/contrib/binutils/ld/scripttempl/mips.sc#2 edit .. //depot/projects/mips/contrib/binutils/opcodes/mips-dis.c#2 edit .. //depot/projects/mips/contrib/binutils/opcodes/mips-opc.c#2 edit .. //depot/projects/mips/contrib/binutils/opcodes/mips16-opc.c#2 edit Differences ... ==== //depot/projects/mips/contrib/binutils/bfd/elfxx-mips.c#2 (text+ko) ==== @@ -1,6 +1,6 @@ /* MIPS-specific support for ELF - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 - Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003 Free Software Foundation, Inc. Most of the information added by Ian Lance Taylor, Cygnus Support, . @@ -9,27 +9,28 @@ Traditional MIPS targets support added by Koundinya.K, Dansk Data Elektronik & Operations Research Group. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This file handles functionality common to the different MIPS ABI's. */ #include "bfd.h" #include "sysdep.h" #include "libbfd.h" +#include "libiberty.h" #include "elf-bfd.h" #include "elfxx-mips.h" #include "elf/mips.h" @@ -40,8 +41,36 @@ #include "coff/ecoff.h" #include "coff/mips.h" -/* This structure is used to hold .got information when linking. It - is stored in the tdata field of the bfd_elf_section_data structure. */ +#include "hashtab.h" + +/* This structure is used to hold .got entries while estimating got + sizes. */ +struct mips_got_entry +{ + /* The input bfd in which the symbol is defined. */ + bfd *abfd; + /* The index of the symbol, as stored in the relocation r_info, if + we have a local symbol; -1 otherwise. */ + long symndx; + union + { + /* If abfd == NULL, an address that must be stored in the got. */ + bfd_vma address; + /* If abfd != NULL && symndx != -1, the addend of the relocation + that should be added to the symbol value. */ + bfd_vma addend; + /* If abfd != NULL && symndx == -1, the hash table entry + corresponding to a global symbol in the got (or, local, if + h->forced_local). */ + struct mips_elf_link_hash_entry *h; + } d; + /* The offset from the beginning of the .got section to the entry + corresponding to this symbol+addend. If it's a global symbol + whose offset is yet to be decided, it's going to be -1. */ + long gotidx; +}; + +/* This structure is used to hold .got information when linking. */ struct mips_got_info { @@ -54,8 +83,73 @@ unsigned int local_gotno; /* The number of local .got entries we have used. */ unsigned int assigned_gotno; + /* A hash table holding members of the got. */ + struct htab *got_entries; + /* A hash table mapping input bfds to other mips_got_info. NULL + unless multi-got was necessary. */ + struct htab *bfd2got; + /* In multi-got links, a pointer to the next got (err, rather, most + of the time, it points to the previous got). */ + struct mips_got_info *next; +}; + +/* Map an input bfd to a got in a multi-got link. */ + +struct mips_elf_bfd2got_hash { + bfd *bfd; + struct mips_got_info *g; +}; + +/* Structure passed when traversing the bfd2got hash table, used to + create and merge bfd's gots. */ + +struct mips_elf_got_per_bfd_arg +{ + /* A hashtable that maps bfds to gots. */ + htab_t bfd2got; + /* The output bfd. */ + bfd *obfd; + /* The link information. */ + struct bfd_link_info *info; + /* A pointer to the primary got, i.e., the one that's going to get + the implicit relocations from DT_MIPS_LOCAL_GOTNO and + DT_MIPS_GOTSYM. */ + struct mips_got_info *primary; + /* A non-primary got we're trying to merge with other input bfd's + gots. */ + struct mips_got_info *current; + /* The maximum number of got entries that can be addressed with a + 16-bit offset. */ + unsigned int max_count; + /* The number of local and global entries in the primary got. */ + unsigned int primary_count; + /* The number of local and global entries in the current got. */ + unsigned int current_count; +}; + +/* Another structure used to pass arguments for got entries traversal. */ + +struct mips_elf_set_global_got_offset_arg +{ + struct mips_got_info *g; + int value; + unsigned int needed_relocs; + struct bfd_link_info *info; }; +struct _mips_elf_section_data +{ + struct bfd_elf_section_data elf; + union + { + struct mips_got_info *got_info; + bfd_byte *tdata; + } u; +}; + +#define mips_elf_section_data(sec) \ + ((struct _mips_elf_section_data *) elf_section_data (sec)) + /* This structure is passed to mips_elf_sort_hash_table_f when sorting the dynamic symbols. */ @@ -67,6 +161,10 @@ /* The least dynamic symbol table index corresponding to a symbol with a GOT entry. */ long min_got_dynindx; + /* The greatest dynamic symbol table index corresponding to a symbol + with a GOT entry that is not referenced (e.g., a dynamic symbol + with dynamic relocations pointing to it from non-primary GOTs). */ + long max_unref_got_dynindx; /* The greatest dynamic symbol table index not corresponding to a symbol without a GOT entry. */ long max_non_got_dynindx; @@ -88,17 +186,13 @@ /* If the R_MIPS_32, R_MIPS_REL32, or R_MIPS_64 reloc is against a readonly section. */ - boolean readonly_reloc; + bfd_boolean readonly_reloc; - /* The index of the first dynamic relocation (in the .rel.dyn - section) against this symbol. */ - unsigned int min_dyn_reloc_index; - /* We must not create a stub for a symbol that has relocations related to taking the function's address, i.e. any but R_MIPS_CALL*16 ones -- see "MIPS ABI Supplement, 3rd Edition", p. 4-20. */ - boolean no_fn_stub; + bfd_boolean no_fn_stub; /* If there is a stub that 32 bit functions should use to call this 16 bit function, this points to the section containing the stub. */ @@ -106,7 +200,7 @@ /* Whether we need the fn_stub; this is set if this symbol appears in any relocs other than a 16 bit call. */ - boolean need_fn_stub; + bfd_boolean need_fn_stub; /* If there is a stub that 16 bit functions should use to call this 32 bit function, this points to the section containing the stub. */ @@ -117,7 +211,7 @@ asection *call_fp_stub; /* Are we forced local? .*/ - boolean forced_local; + bfd_boolean forced_local; }; /* MIPS ELF linker hash table. */ @@ -136,11 +230,11 @@ bfd_size_type compact_rel_size; /* This flag indicates that the value of DT_MIPS_RLD_MAP dynamic entry is set to the address of __rld_obj_head as in IRIX5. */ - boolean use_rld_obj_head; + bfd_boolean use_rld_obj_head; /* This is the value of the __rld_map or __rld_obj_head symbol. */ bfd_vma rld_value; /* This is set if we see any mips16 stub sections. */ - boolean mips16_stubs_seen; + bfd_boolean mips16_stubs_seen; }; /* Structure used to pass information to mips_elf_output_extsym. */ @@ -151,7 +245,7 @@ struct bfd_link_info *info; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; - boolean failed; + bfd_boolean failed; }; /* The names of the runtime procedure table symbols used on IRIX5. */ @@ -260,110 +354,153 @@ loader for use by the static exception system. */ typedef struct runtime_pdr { - bfd_vma adr; /* memory address of start of procedure */ - long regmask; /* save register mask */ - long regoffset; /* save register offset */ - long fregmask; /* save floating point register mask */ - long fregoffset; /* save floating point register offset */ - long frameoffset; /* frame size */ - short framereg; /* frame pointer register */ - short pcreg; /* offset or reg of return pc */ - long irpss; /* index into the runtime string table */ + bfd_vma adr; /* Memory address of start of procedure. */ + long regmask; /* Save register mask. */ + long regoffset; /* Save register offset. */ + long fregmask; /* Save floating point register mask. */ + long fregoffset; /* Save floating point register offset. */ + long frameoffset; /* Frame size. */ + short framereg; /* Frame pointer register. */ + short pcreg; /* Offset or reg of return pc. */ + long irpss; /* Index into the runtime string table. */ long reserved; - struct exception_info *exception_info;/* pointer to exception array */ + struct exception_info *exception_info;/* Pointer to exception array. */ } RPDR, *pRPDR; #define cbRPDR sizeof (RPDR) #define rpdNil ((pRPDR) 0) static struct bfd_hash_entry *mips_elf_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); static void ecoff_swap_rpdr_out - PARAMS ((bfd *, const RPDR *, struct rpdr_ext *)); -static boolean mips_elf_create_procedure_table - PARAMS ((PTR, bfd *, struct bfd_link_info *, asection *, - struct ecoff_debug_info *)); -static boolean mips_elf_check_mips16_stubs - PARAMS ((struct mips_elf_link_hash_entry *, PTR)); + (bfd *, const RPDR *, struct rpdr_ext *); +static bfd_boolean mips_elf_create_procedure_table + (void *, bfd *, struct bfd_link_info *, asection *, + struct ecoff_debug_info *); +static bfd_boolean mips_elf_check_mips16_stubs + (struct mips_elf_link_hash_entry *, void *); static void bfd_mips_elf32_swap_gptab_in - PARAMS ((bfd *, const Elf32_External_gptab *, Elf32_gptab *)); + (bfd *, const Elf32_External_gptab *, Elf32_gptab *); static void bfd_mips_elf32_swap_gptab_out - PARAMS ((bfd *, const Elf32_gptab *, Elf32_External_gptab *)); + (bfd *, const Elf32_gptab *, Elf32_External_gptab *); static void bfd_elf32_swap_compact_rel_out - PARAMS ((bfd *, const Elf32_compact_rel *, Elf32_External_compact_rel *)); + (bfd *, const Elf32_compact_rel *, Elf32_External_compact_rel *); static void bfd_elf32_swap_crinfo_out - PARAMS ((bfd *, const Elf32_crinfo *, Elf32_External_crinfo *)); -#if 0 -static void bfd_mips_elf_swap_msym_in - PARAMS ((bfd *, const Elf32_External_Msym *, Elf32_Internal_Msym *)); -#endif -static void bfd_mips_elf_swap_msym_out - PARAMS ((bfd *, const Elf32_Internal_Msym *, Elf32_External_Msym *)); + (bfd *, const Elf32_crinfo *, Elf32_External_crinfo *); static int sort_dynamic_relocs - PARAMS ((const void *, const void *)); -static boolean mips_elf_output_extsym - PARAMS ((struct mips_elf_link_hash_entry *, PTR)); -static int gptab_compare PARAMS ((const void *, const void *)); -static asection * mips_elf_got_section PARAMS ((bfd *)); + (const void *, const void *); +static int sort_dynamic_relocs_64 + (const void *, const void *); +static bfd_boolean mips_elf_output_extsym + (struct mips_elf_link_hash_entry *, void *); +static int gptab_compare + (const void *, const void *); +static asection *mips_elf_rel_dyn_section + (bfd *, bfd_boolean); +static asection *mips_elf_got_section + (bfd *, bfd_boolean); static struct mips_got_info *mips_elf_got_info - PARAMS ((bfd *, asection **)); + (bfd *, asection **); +static long mips_elf_get_global_gotsym_index + (bfd *abfd); static bfd_vma mips_elf_local_got_index - PARAMS ((bfd *, struct bfd_link_info *, bfd_vma)); + (bfd *, bfd *, struct bfd_link_info *, bfd_vma); static bfd_vma mips_elf_global_got_index - PARAMS ((bfd *, struct elf_link_hash_entry *)); + (bfd *, bfd *, struct elf_link_hash_entry *); static bfd_vma mips_elf_got_page - PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, bfd_vma *)); + (bfd *, bfd *, struct bfd_link_info *, bfd_vma, bfd_vma *); static bfd_vma mips_elf_got16_entry - PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, boolean)); + (bfd *, bfd *, struct bfd_link_info *, bfd_vma, bfd_boolean); static bfd_vma mips_elf_got_offset_from_index - PARAMS ((bfd *, bfd *, bfd_vma)); -static bfd_vma mips_elf_create_local_got_entry - PARAMS ((bfd *, struct mips_got_info *, asection *, bfd_vma)); -static boolean mips_elf_sort_hash_table - PARAMS ((struct bfd_link_info *, unsigned long)); -static boolean mips_elf_sort_hash_table_f - PARAMS ((struct mips_elf_link_hash_entry *, PTR)); -static boolean mips_elf_record_global_got_symbol - PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *, - struct mips_got_info *)); + (bfd *, bfd *, bfd *, bfd_vma); +static struct mips_got_entry *mips_elf_create_local_got_entry + (bfd *, bfd *, struct mips_got_info *, asection *, bfd_vma); +static bfd_boolean mips_elf_sort_hash_table + (struct bfd_link_info *, unsigned long); +static bfd_boolean mips_elf_sort_hash_table_f + (struct mips_elf_link_hash_entry *, void *); +static bfd_boolean mips_elf_record_local_got_symbol + (bfd *, long, bfd_vma, struct mips_got_info *); +static bfd_boolean mips_elf_record_global_got_symbol + (struct elf_link_hash_entry *, bfd *, struct bfd_link_info *, + struct mips_got_info *); static const Elf_Internal_Rela *mips_elf_next_relocation - PARAMS ((bfd *, unsigned int, const Elf_Internal_Rela *, - const Elf_Internal_Rela *)); -static boolean mips_elf_local_relocation_p - PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, boolean)); -static bfd_vma mips_elf_sign_extend PARAMS ((bfd_vma, int)); -static boolean mips_elf_overflow_p PARAMS ((bfd_vma, int)); -static bfd_vma mips_elf_high PARAMS ((bfd_vma)); -static bfd_vma mips_elf_higher PARAMS ((bfd_vma)); -static bfd_vma mips_elf_highest PARAMS ((bfd_vma)); -static boolean mips_elf_create_compact_rel_section - PARAMS ((bfd *, struct bfd_link_info *)); -static boolean mips_elf_create_got_section - PARAMS ((bfd *, struct bfd_link_info *)); -static asection *mips_elf_create_msym_section - PARAMS ((bfd *)); + (bfd *, unsigned int, const Elf_Internal_Rela *, const Elf_Internal_Rela *); +static bfd_boolean mips_elf_local_relocation_p + (bfd *, const Elf_Internal_Rela *, asection **, bfd_boolean); +static bfd_boolean mips_elf_overflow_p + (bfd_vma, int); +static bfd_vma mips_elf_high + (bfd_vma); +static bfd_vma mips_elf_higher + (bfd_vma); +static bfd_vma mips_elf_highest + (bfd_vma); +static bfd_boolean mips_elf_create_compact_rel_section + (bfd *, struct bfd_link_info *); +static bfd_boolean mips_elf_create_got_section + (bfd *, struct bfd_link_info *, bfd_boolean); static bfd_reloc_status_type mips_elf_calculate_relocation - PARAMS ((bfd *, bfd *, asection *, struct bfd_link_info *, - const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *, - Elf_Internal_Sym *, asection **, bfd_vma *, const char **, - boolean *)); + (bfd *, bfd *, asection *, struct bfd_link_info *, + const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *, + Elf_Internal_Sym *, asection **, bfd_vma *, const char **, + bfd_boolean *, bfd_boolean); static bfd_vma mips_elf_obtain_contents - PARAMS ((reloc_howto_type *, const Elf_Internal_Rela *, bfd *, bfd_byte *)); -static boolean mips_elf_perform_relocation - PARAMS ((struct bfd_link_info *, reloc_howto_type *, - const Elf_Internal_Rela *, bfd_vma, bfd *, asection *, bfd_byte *, - boolean)); -static boolean mips_elf_stub_section_p - PARAMS ((bfd *, asection *)); + (reloc_howto_type *, const Elf_Internal_Rela *, bfd *, bfd_byte *); +static bfd_boolean mips_elf_perform_relocation + (struct bfd_link_info *, reloc_howto_type *, const Elf_Internal_Rela *, + bfd_vma, bfd *, asection *, bfd_byte *, bfd_boolean); +static bfd_boolean mips_elf_stub_section_p + (bfd *, asection *); static void mips_elf_allocate_dynamic_relocations - PARAMS ((bfd *, unsigned int)); -static boolean mips_elf_create_dynamic_relocation - PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Rela *, - struct mips_elf_link_hash_entry *, asection *, - bfd_vma, bfd_vma *, asection *)); -static INLINE int elf_mips_isa PARAMS ((flagword)); -static INLINE char* elf_mips_abi_name PARAMS ((bfd *)); + (bfd *, unsigned int); +static bfd_boolean mips_elf_create_dynamic_relocation + (bfd *, struct bfd_link_info *, const Elf_Internal_Rela *, + struct mips_elf_link_hash_entry *, asection *, bfd_vma, + bfd_vma *, asection *); +static void mips_set_isa_flags + (bfd *); +static INLINE char *elf_mips_abi_name + (bfd *); static void mips_elf_irix6_finish_dynamic_symbol - PARAMS ((bfd *, const char *, Elf_Internal_Sym *)); + (bfd *, const char *, Elf_Internal_Sym *); +static bfd_boolean mips_mach_extends_p + (unsigned long, unsigned long); +static bfd_boolean mips_32bit_flags_p + (flagword); +static INLINE hashval_t mips_elf_hash_bfd_vma + (bfd_vma); +static hashval_t mips_elf_got_entry_hash + (const void *); +static int mips_elf_got_entry_eq + (const void *, const void *); + +static bfd_boolean mips_elf_multi_got + (bfd *, struct bfd_link_info *, struct mips_got_info *, + asection *, bfd_size_type); +static hashval_t mips_elf_multi_got_entry_hash + (const void *); +static int mips_elf_multi_got_entry_eq + (const void *, const void *); +static hashval_t mips_elf_bfd2got_entry_hash + (const void *); +static int mips_elf_bfd2got_entry_eq + (const void *, const void *); +static int mips_elf_make_got_per_bfd + (void **, void *); +static int mips_elf_merge_gots + (void **, void *); +static int mips_elf_set_global_got_offset + (void **, void *); +static int mips_elf_set_no_stub + (void **, void *); +static int mips_elf_resolve_final_got_entry + (void **, void *); +static void mips_elf_resolve_final_got_entries + (struct mips_got_info *); +static bfd_vma mips_elf_adjust_gp + (bfd *, struct mips_got_info *, bfd *); +static struct mips_got_info *mips_elf_got_for_ibfd + (struct mips_got_info *, bfd *); /* This will be used when we sort the dynamic relocation records. */ static bfd *reldyn_sorting_bfd; @@ -375,7 +512,7 @@ /* Nonzero if ABFD is using the N64 ABI. */ #define ABI_64_P(abfd) \ - ((get_elf_backend_data (abfd)->s->elfclass == ELFCLASS64) != 0) + (get_elf_backend_data (abfd)->s->elfclass == ELFCLASS64) /* Nonzero if ABFD is using NewABI conventions. */ #define NEWABI_P(abfd) (ABI_N32_P (abfd) || ABI_64_P (abfd)) @@ -390,11 +527,10 @@ /* The name of the options section. */ #define MIPS_ELF_OPTIONS_SECTION_NAME(abfd) \ - (ABI_64_P (abfd) ? ".MIPS.options" : ".options") + (NEWABI_P (abfd) ? ".MIPS.options" : ".options") /* The name of the stub section. */ -#define MIPS_ELF_STUB_SECTION_NAME(abfd) \ - (ABI_64_P (abfd) ? ".MIPS.stubs" : ".stub") +#define MIPS_ELF_STUB_SECTION_NAME(abfd) ".MIPS.stubs" /* The size of an external REL relocation. */ #define MIPS_ELF_REL_SIZE(abfd) \ @@ -414,7 +550,7 @@ /* The default alignment for sections, as a power of two. */ #define MIPS_ELF_LOG_FILE_ALIGN(abfd) \ - (get_elf_backend_data (abfd)->s->file_align == 8 ? 3 : 2) + (get_elf_backend_data (abfd)->s->log_file_align) /* Get word-sized data. */ #define MIPS_ELF_GET_WORD(abfd, ptr) \ @@ -427,21 +563,29 @@ : bfd_put_32 (abfd, val, ptr)) /* Add a dynamic symbol table-entry. */ -#ifdef BFD64 -#define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \ - (ABI_64_P (elf_hash_table (info)->dynobj) \ - ? bfd_elf64_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val) \ - : bfd_elf32_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val)) -#else -#define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \ - (ABI_64_P (elf_hash_table (info)->dynobj) \ - ? (boolean) (abort (), false) \ - : bfd_elf32_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val)) -#endif +#define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \ + _bfd_elf_add_dynamic_entry (info, tag, val) #define MIPS_ELF_RTYPE_TO_HOWTO(abfd, rtype, rela) \ (get_elf_backend_data (abfd)->elf_backend_mips_rtype_to_howto (rtype, rela)) +/* Determine whether the internal relocation of index REL_IDX is REL + (zero) or RELA (non-zero). The assumption is that, if there are + two relocation sections for this section, one of them is REL and + the other is RELA. If the index of the relocation we're testing is + in range for the first relocation section, check that the external + relocation size is that for RELA. It is also assumed that, if + rel_idx is not in range for the first section, and this first + section contains REL relocs, then the relocation is in the second + section, that is RELA. */ +#define MIPS_RELOC_RELA_P(abfd, sec, rel_idx) \ + ((NUM_SHDR_ENTRIES (&elf_section_data (sec)->rel_hdr) \ + * get_elf_backend_data (abfd)->s->int_rels_per_ext_rel \ + > (bfd_vma)(rel_idx)) \ + == (elf_section_data (sec)->rel_hdr.sh_entsize \ + == (ABI_64_P (abfd) ? sizeof (Elf64_External_Rela) \ + : sizeof (Elf32_External_Rela)))) + /* In case we're on a 32-bit machine, construct a 64-bit "-1" value from smaller values. Start with zero, widen, *then* decrement. */ #define MINUS_ONE (((bfd_vma)0) - 1) @@ -449,20 +593,27 @@ /* The number of local .got entries we reserve. */ #define MIPS_RESERVED_GOTNO (2) -/* Instructions which appear in a stub. For some reason the stub is - slightly different on an SGI system. */ -#define ELF_MIPS_GP_OFFSET(abfd) (SGI_COMPAT (abfd) ? 0x7ff0 : 0x8000) +/* The offset of $gp from the beginning of the .got section. */ +#define ELF_MIPS_GP_OFFSET(abfd) (0x7ff0) + +/* The maximum size of the GOT for it to be addressable using 16-bit + offsets from $gp. */ +#define MIPS_ELF_GOT_MAX_SIZE(abfd) (ELF_MIPS_GP_OFFSET(abfd) + 0x7fff) + +/* Instructions which appear in a stub. */ #define STUB_LW(abfd) \ - (SGI_COMPAT (abfd) \ - ? (ABI_64_P (abfd) \ - ? 0xdf998010 /* ld t9,0x8010(gp) */ \ - : 0x8f998010) /* lw t9,0x8010(gp) */ \ - : 0x8f998010) /* lw t9,0x8000(gp) */ + ((ABI_64_P (abfd) \ + ? 0xdf998010 /* ld t9,0x8010(gp) */ \ + : 0x8f998010)) /* lw t9,0x8010(gp) */ #define STUB_MOVE(abfd) \ - (SGI_COMPAT (abfd) ? 0x03e07825 : 0x03e07821) /* move t7,ra */ -#define STUB_JALR 0x0320f809 /* jal t9 */ + ((ABI_64_P (abfd) \ + ? 0x03e0782d /* daddu t7,ra */ \ + : 0x03e07821)) /* addu t7,ra */ +#define STUB_JALR 0x0320f809 /* jalr t9,ra */ #define STUB_LI16(abfd) \ - (SGI_COMPAT (abfd) ? 0x34180000 : 0x24180000) /* ori t8,zero,0 */ + ((ABI_64_P (abfd) \ + ? 0x64180000 /* daddiu t8,zero,0 */ \ + : 0x24180000)) /* addiu t8,zero,0 */ #define MIPS_FUNCTION_STUB_SIZE (16) /* The name of the dynamic interpreter. This is put in the .interp @@ -474,6 +625,8 @@ : "/usr/lib/libc.so.1") #ifdef BFD64 +#define MNAME(bfd,pre,pos) \ + (ABI_64_P (bfd) ? CONCAT4 (pre,64,_,pos) : CONCAT4 (pre,32,_,pos)) #define ELF_R_SYM(bfd, i) \ (ABI_64_P (bfd) ? ELF64_R_SYM (i) : ELF32_R_SYM (i)) #define ELF_R_TYPE(bfd, i) \ @@ -481,6 +634,7 @@ #define ELF_R_INFO(bfd, s, t) \ (ABI_64_P (bfd) ? ELF64_R_INFO (s, t) : ELF32_R_INFO (s, t)) #else +#define MNAME(bfd,pre,pos) CONCAT4 (pre,32,_,pos) #define ELF_R_SYM(bfd, i) \ (ELF32_R_SYM (i)) #define ELF_R_TYPE(bfd, i) \ @@ -539,7 +693,7 @@ #define mips_elf_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \ (info))) /* Get the MIPS ELF linker hash table from a link_info structure. */ @@ -550,28 +704,24 @@ /* Create an entry in a MIPS ELF linker hash table. */ static struct bfd_hash_entry * -mips_elf_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +mips_elf_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, const char *string) { struct mips_elf_link_hash_entry *ret = (struct mips_elf_link_hash_entry *) entry; /* Allocate the structure if it has not already been allocated by a subclass. */ - if (ret == (struct mips_elf_link_hash_entry *) NULL) - ret = ((struct mips_elf_link_hash_entry *) - bfd_hash_allocate (table, - sizeof (struct mips_elf_link_hash_entry))); - if (ret == (struct mips_elf_link_hash_entry *) NULL) + if (ret == NULL) + ret = bfd_hash_allocate (table, sizeof (struct mips_elf_link_hash_entry)); + if (ret == NULL) return (struct bfd_hash_entry *) ret; /* Call the allocation method of the superclass. */ ret = ((struct mips_elf_link_hash_entry *) _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret, table, string)); - if (ret != (struct mips_elf_link_hash_entry *) NULL) + if (ret != NULL) { /* Set local fields. */ memset (&ret->esym, 0, sizeof (EXTR)); @@ -579,40 +729,51 @@ not been set. -1 means there is no associated ifd. */ ret->esym.ifd = -2; ret->possibly_dynamic_relocs = 0; - ret->readonly_reloc = false; - ret->min_dyn_reloc_index = 0; - ret->no_fn_stub = false; + ret->readonly_reloc = FALSE; + ret->no_fn_stub = FALSE; ret->fn_stub = NULL; - ret->need_fn_stub = false; + ret->need_fn_stub = FALSE; ret->call_stub = NULL; ret->call_fp_stub = NULL; - ret->forced_local = false; + ret->forced_local = FALSE; } return (struct bfd_hash_entry *) ret; } + +bfd_boolean +_bfd_mips_elf_new_section_hook (bfd *abfd, asection *sec) +{ + struct _mips_elf_section_data *sdata; + bfd_size_type amt = sizeof (*sdata); + + sdata = bfd_zalloc (abfd, amt); + if (sdata == NULL) + return FALSE; + sec->used_by_bfd = sdata; + + return _bfd_elf_new_section_hook (abfd, sec); +} /* Read ECOFF debugging information from a .mdebug section into a ecoff_debug_info structure. */ -boolean -_bfd_mips_elf_read_ecoff_info (abfd, section, debug) - bfd *abfd; - asection *section; - struct ecoff_debug_info *debug; +bfd_boolean +_bfd_mips_elf_read_ecoff_info (bfd *abfd, asection *section, + struct ecoff_debug_info *debug) { HDRR *symhdr; const struct ecoff_debug_swap *swap; - char *ext_hdr = NULL; + char *ext_hdr; swap = get_elf_backend_data (abfd)->elf_backend_ecoff_debug_swap; memset (debug, 0, sizeof (*debug)); - ext_hdr = (char *) bfd_malloc (swap->external_hdr_size); + ext_hdr = bfd_malloc (swap->external_hdr_size); if (ext_hdr == NULL && swap->external_hdr_size != 0) goto error_return; - if (! bfd_get_section_contents (abfd, section, ext_hdr, (file_ptr) 0, + if (! bfd_get_section_contents (abfd, section, ext_hdr, 0, swap->external_hdr_size)) goto error_return; @@ -627,32 +788,32 @@ else \ { \ bfd_size_type amt = (bfd_size_type) size * symhdr->count; \ - debug->ptr = (type) bfd_malloc (amt); \ + debug->ptr = bfd_malloc (amt); \ if (debug->ptr == NULL) \ goto error_return; \ - if (bfd_seek (abfd, (file_ptr) symhdr->offset, SEEK_SET) != 0 \ + if (bfd_seek (abfd, symhdr->offset, SEEK_SET) != 0 \ || bfd_bread (debug->ptr, amt, abfd) != amt) \ goto error_return; \ } READ (line, cbLineOffset, cbLine, sizeof (unsigned char), unsigned char *); - READ (external_dnr, cbDnOffset, idnMax, swap->external_dnr_size, PTR); - READ (external_pdr, cbPdOffset, ipdMax, swap->external_pdr_size, PTR); - READ (external_sym, cbSymOffset, isymMax, swap->external_sym_size, PTR); - READ (external_opt, cbOptOffset, ioptMax, swap->external_opt_size, PTR); + READ (external_dnr, cbDnOffset, idnMax, swap->external_dnr_size, void *); + READ (external_pdr, cbPdOffset, ipdMax, swap->external_pdr_size, void *); + READ (external_sym, cbSymOffset, isymMax, swap->external_sym_size, void *); + READ (external_opt, cbOptOffset, ioptMax, swap->external_opt_size, void *); READ (external_aux, cbAuxOffset, iauxMax, sizeof (union aux_ext), union aux_ext *); READ (ss, cbSsOffset, issMax, sizeof (char), char *); READ (ssext, cbSsExtOffset, issExtMax, sizeof (char), char *); - READ (external_fdr, cbFdOffset, ifdMax, swap->external_fdr_size, PTR); - READ (external_rfd, cbRfdOffset, crfd, swap->external_rfd_size, PTR); - READ (external_ext, cbExtOffset, iextMax, swap->external_ext_size, PTR); + READ (external_fdr, cbFdOffset, ifdMax, swap->external_fdr_size, void *); + READ (external_rfd, cbRfdOffset, crfd, swap->external_rfd_size, void *); + READ (external_ext, cbExtOffset, iextMax, swap->external_ext_size, void *); #undef READ debug->fdr = NULL; debug->adjust = NULL; - return true; + return TRUE; error_return: if (ext_hdr != NULL) @@ -679,16 +840,13 @@ free (debug->external_rfd); if (debug->external_ext != NULL) free (debug->external_ext); - return false; + return FALSE; } /* Swap RPDR (runtime procedure table entry) for output. */ static void -ecoff_swap_rpdr_out (abfd, in, ex) - bfd *abfd; - const RPDR *in; - struct rpdr_ext *ex; +ecoff_swap_rpdr_out (bfd *abfd, const RPDR *in, struct rpdr_ext *ex) { H_PUT_S32 (abfd, in->adr, ex->p_adr); H_PUT_32 (abfd, in->regmask, ex->p_regmask); @@ -708,19 +866,16 @@ /* Create a runtime procedure table from the .mdebug section. */ -static boolean -mips_elf_create_procedure_table (handle, abfd, info, s, debug) - PTR handle; - bfd *abfd; - struct bfd_link_info *info; - asection *s; - struct ecoff_debug_info *debug; +static bfd_boolean +mips_elf_create_procedure_table (void *handle, bfd *abfd, + struct bfd_link_info *info, asection *s, + struct ecoff_debug_info *debug) { const struct ecoff_debug_swap *swap; HDRR *hdr = &debug->symbolic_header; RPDR *rpdr, *rp; struct rpdr_ext *erp; - PTR rtproc; + void *rtproc; struct pdr_ext *epdr; struct sym_ext *esym; char *ss, **sv; @@ -747,44 +902,44 @@ { size = swap->external_pdr_size; - epdr = (struct pdr_ext *) bfd_malloc (size * count); + epdr = bfd_malloc (size * count); if (epdr == NULL) goto error_return; - if (! _bfd_ecoff_get_accumulated_pdr (handle, (PTR) epdr)) + if (! _bfd_ecoff_get_accumulated_pdr (handle, (bfd_byte *) epdr)) goto error_return; size = sizeof (RPDR); - rp = rpdr = (RPDR *) bfd_malloc (size * count); + rp = rpdr = bfd_malloc (size * count); if (rpdr == NULL) goto error_return; size = sizeof (char *); - sv = (char **) bfd_malloc (size * count); + sv = bfd_malloc (size * count); if (sv == NULL) goto error_return; count = hdr->isymMax; size = swap->external_sym_size; - esym = (struct sym_ext *) bfd_malloc (size * count); + esym = bfd_malloc (size * count); if (esym == NULL) goto error_return; - if (! _bfd_ecoff_get_accumulated_sym (handle, (PTR) esym)) + if (! _bfd_ecoff_get_accumulated_sym (handle, (bfd_byte *) esym)) goto error_return; count = hdr->issMax; - ss = (char *) bfd_malloc (count); + ss = bfd_malloc (count); if (ss == NULL) goto error_return; - if (! _bfd_ecoff_get_accumulated_ss (handle, (PTR) ss)) + if (! _bfd_ecoff_get_accumulated_ss (handle, ss)) goto error_return; count = hdr->ipdMax; for (i = 0; i < (unsigned long) count; i++, rp++) { - (*swap->swap_pdr_in) (abfd, (PTR) (epdr + i), &pdr); - (*swap->swap_sym_in) (abfd, (PTR) &esym[pdr.isym], &sym); + (*swap->swap_pdr_in) (abfd, epdr + i, &pdr); + (*swap->swap_sym_in) (abfd, &esym[pdr.isym], &sym); rp->adr = sym.value; rp->regmask = pdr.regmask; rp->regoffset = pdr.regoffset; @@ -801,7 +956,7 @@ size = sizeof (struct rpdr_ext) * (count + 2) + sindex; size = BFD_ALIGN (size, 16); - rtproc = (PTR) bfd_alloc (abfd, size); + rtproc = bfd_alloc (abfd, size); if (rtproc == NULL) { mips_elf_hash_table (info)->procedure_count = 0; @@ -810,7 +965,7 @@ mips_elf_hash_table (info)->procedure_count = count + 2; - erp = (struct rpdr_ext *) rtproc; + erp = rtproc; memset (erp, 0, sizeof (struct rpdr_ext)); erp++; str = (char *) rtproc + sizeof (struct rpdr_ext) * (count + 2); @@ -826,11 +981,11 @@ /* Set the size and contents of .rtproc section. */ s->_raw_size = size; - s->contents = (bfd_byte *) rtproc; + s->contents = rtproc; /* Skip this section later on (I don't think this currently matters, but someday it might). */ - s->link_order_head = (struct bfd_link_order *) NULL; + s->link_order_head = NULL; if (epdr != NULL) free (epdr); @@ -843,7 +998,7 @@ if (sv != NULL) free (sv); - return true; + return TRUE; error_return: if (epdr != NULL) @@ -856,16 +1011,15 @@ free (ss); if (sv != NULL) free (sv); - return false; + return FALSE; } /* Check the mips16 stubs for a particular symbol, and see if we can discard them. */ -static boolean -mips_elf_check_mips16_stubs (h, data) - struct mips_elf_link_hash_entry *h; - PTR data ATTRIBUTE_UNUSED; +static bfd_boolean +mips_elf_check_mips16_stubs (struct mips_elf_link_hash_entry *h, + void *data ATTRIBUTE_UNUSED) { if (h->root.root.type == bfd_link_hash_warning) h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link; @@ -909,23 +1063,17 @@ h->call_fp_stub->flags |= SEC_EXCLUDE; } - return true; + return TRUE; } bfd_reloc_status_type -_bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section, - relocateable, data, gp) - bfd *abfd; - asymbol *symbol; - arelent *reloc_entry; - asection *input_section; - boolean relocateable; - PTR data; - bfd_vma gp; +_bfd_mips_elf_gprel16_with_gp (bfd *abfd, asymbol *symbol, + arelent *reloc_entry, asection *input_section, + bfd_boolean relocatable, void *data, bfd_vma gp) { bfd_vma relocation; - unsigned long insn; - unsigned long val; + bfd_signed_vma val; + bfd_reloc_status_type status; if (bfd_is_com_section (symbol->section)) relocation = 0; @@ -938,37 +1086,230 @@ if (reloc_entry->address > input_section->_cooked_size) return bfd_reloc_outofrange; - insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address); + /* Set val to the offset into the section or symbol. */ + val = reloc_entry->addend; + + _bfd_mips_elf_sign_extend (val, 16); + + /* Adjust val for the final section location and GP value. If we + are producing relocatable output, we don't want to do this for + an external symbol. */ + if (! relocatable + || (symbol->flags & BSF_SECTION_SYM) != 0) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 16 13:53:12 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8847216A4D0; Wed, 16 Jun 2004 13:53:12 +0000 (GMT) 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 555B616A4CE for ; Wed, 16 Jun 2004 13:53:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4D5B943D1F for ; Wed, 16 Jun 2004 13:53:12 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GDqpT8032979 for ; Wed, 16 Jun 2004 13:52:51 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GDqpRC032976 for perforce@freebsd.org; Wed, 16 Jun 2004 13:52:51 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 13:52:51 GMT Message-Id: <200406161352.i5GDqpRC032976@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 55090 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, 16 Jun 2004 13:53:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=55090 Change 55090 by jmallett@jmallett_oingo on 2004/06/16 13:52:02 Don't spend quite all night trying to chase the binutils upgrade. Zap some vectors I really want to get rid of this time around. GAS is very broken right now, sigh. I'll fix that tomorrow, for the time being. I need to catch up with the new configs there. Affected files ... .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#7 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#9 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/mips/bfd.h#3 edit Differences ... ==== //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#7 (text+ko) ==== @@ -1,22 +1,11 @@ # $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.powerpc,v 1.11 2002/05/17 03:10:33 obrien Exp $ -TARGET_TUPLE?= mips-unknown-freebsd +TARGET_TUPLE?= mips-jmallett-freebsd -# XXXMIPS I guess FreeBSD will default to bemips? .if ${TARGET_ARCH} == "mips" -DEFAULT_EMULATION= elf32bmip -EMULATIONS= elf32bmip elf32bsmip elf32btsmip elf32ebmip elf32elmip elf32lmip \ - elf32lsmip elf32ltsmip elf64btsmip elf64ltsmip +DEFAULT_EMULATION= elf32btsmip +EMULATIONS= elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip -# XXXMIPS If you really want NTMIPS emulation, and did the BFD glue, go for it. -.ifdef WANT_NTMIPS_LD_SUPPORT -EMULATIONS+= mipspe -.endif -# XXXMIPS stuff doesn't make .xs and such. :/ -# jmallett - when I know what .xs are, and what they're for, I'll fix this. -.ifdef WANT_N32 -EMULATIONS+= elf32bmipn32 elf64bmip -.endif HOST= ${TARGET_TUPLE} CFLAGS+= -DDEFAULT_EMULATION=\"${DEFAULT_EMULATION}\" CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\" @@ -33,6 +22,7 @@ e${_EMULATION}.c: emulparams/${_EMULATION}.sh emultempl/elf32.em \ scripttempl/mips.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_mips_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - ${_EMULATION} "" ${_EMULATION} ${TARGET_TUPLE} + ${_EMULATION} "" no ${_EMULATION} ${TARGET_TUPLE} .endfor ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#9 (text+ko) ==== @@ -16,14 +16,7 @@ elflink.c \ elfxx-mips.c \ elfxx-target.h -VECS+= bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_bigmips_vec bfd_elf32_littlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec -# XXX troublemakers due to ambiguity, and BFD behaves badly if we only have -# *trad*. I'm sick of fighting it. -# The real problem here is that we have to use the *trad* at all. If we -# use elf64 (at least) in non-trad mode, BU seems to assume the binary will -# run on an IRIX system, and enforces such things as the rld_map section -# existing, but does not create it. gross gross gross. -#bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec +VECS+= bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec # XXXMIPS Conditionalie on the MACHINE/MACHINE_ARCH targetry to decide # whether elf{32,64}_{big,little}mips vectors, but default to the likely ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/mips/bfd.h#3 (text+ko) ==== @@ -1,15 +1,17 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/sparc64/bfd.h,v 1.12 2002/10/12 04:06:13 obrien Exp $ */ +/* $FreeBSD$ */ /* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", - "section.c", "archures.c", "reloc.c", "syms.c", "bfd.c", "archive.c", - "corefile.c", "targets.c" and "format.c". + "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", + "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", + "linker.c" and "simple.c". Run "make headers" in your build bfd/ to regenerate. */ /* Main header file for the bfd library -- portable access to object files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 - Free Software Foundation, Inc. + + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Contributed by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -49,10 +51,6 @@ #endif #endif -/* #define BFD_VERSION 213000000 */ -/* #define BFD_VERSION_DATE 20021010 */ -/* #define BFD_VERSION_STRING "2.13 20021010" */ - /* The word size used by BFD on the host. This may be 64 with a 32 bit target if the host is 64 bit, or if other 64 bit targets have been selected with --enable-targets, or if --enable-64-bit-bfd. */ @@ -61,19 +59,18 @@ /* The word size of the default bfd target. */ #define BFD_DEFAULT_TARGET_SIZE 64 -/* - * XXXMIPS By default, we want to use 32-bitness... But allow 64... - * does bfd let us!? - */ -#if defined(__i386__) || defined(__powerpc__) +#if defined(__i386__) || defined(__powerpc__) || defined(__arm__) #define BFD_HOST_64BIT_LONG 0 +#define BFD_HOST_64_BIT long long +#define BFD_HOST_U_64_BIT unsigned long long #else #define BFD_HOST_64BIT_LONG 1 +#define BFD_HOST_64_BIT long +#define BFD_HOST_U_64_BIT unsigned long #endif /* 32-bit host */ -#if 0 -#define BFD_HOST_64_BIT -#define BFD_HOST_U_64_BIT -#endif +#define BFD_HOST_LONG_LONG 1 +typedef BFD_HOST_64_BIT bfd_int64_t; +typedef BFD_HOST_U_64_BIT bfd_uint64_t; #if BFD_ARCH_SIZE >= 64 #define BFD64 @@ -88,65 +85,30 @@ #endif /* Forward declaration. */ -typedef struct _bfd bfd; +typedef struct bfd bfd; + +/* Boolean type used in bfd. Too many systems define their own + versions of "boolean" for us to safely typedef a "boolean" of + our own. Using an enum for "bfd_boolean" has its own set of + problems, with strange looking casts required to avoid warnings + on some older compilers. Thus we just use an int. -/* To squelch erroneous compiler warnings ("illegal pointer - combination") from the SVR3 compiler, we would like to typedef - boolean to int (it doesn't like functions which return boolean. - Making sure they are never implicitly declared to return int - doesn't seem to help). But this file is not configured based on - the host. */ -/* General rules: functions which are boolean return true on success - and false on failure (unless they're a predicate). -- bfd.doc */ -/* I'm sure this is going to break something and someone is going to - force me to change it. */ -/* typedef enum boolean {false, true} boolean; */ -/* Yup, SVR4 has a "typedef enum boolean" in -fnf */ -/* It gets worse if the host also defines a true/false enum... -sts */ -/* And even worse if your compiler has built-in boolean types... -law */ -/* And even worse if your compiler provides a stdbool.h that conflicts - with these definitions... gcc 2.95 and later do. If so, it must - be included first. -drow */ -#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -#define TRUE_FALSE_ALREADY_DEFINED -#else -#if defined (__bool_true_false_are_defined) -/* We have . */ -#define TRUE_FALSE_ALREADY_DEFINED -#endif -#endif -#ifdef MPW -/* Pre-emptive strike - get the file with the enum. */ -#include -#define TRUE_FALSE_ALREADY_DEFINED -#endif /* MPW */ -#ifndef TRUE_FALSE_ALREADY_DEFINED -typedef enum bfd_boolean {false, true} boolean; -#define BFD_TRUE_FALSE -#else -/* Use enum names that will appear nowhere else. */ -typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; -#endif + General rule: Functions which are bfd_boolean return TRUE on + success and FALSE on failure (unless they're a predicate). */ -/* Support for different sizes of target format ints and addresses. - If the type `long' is at least 64 bits, BFD_HOST_64BIT_LONG will be - set to 1 above. Otherwise, if gcc is being used, this code will - use gcc's "long long" type. Otherwise, BFD_HOST_64_BIT must be - defined above. */ +typedef int bfd_boolean; +#undef FALSE +#undef TRUE +#define FALSE 0 +#define TRUE 1 -#ifndef BFD_HOST_64_BIT -# if BFD_HOST_64BIT_LONG -# define BFD_HOST_64_BIT long -# define BFD_HOST_U_64_BIT unsigned long -# else -# ifdef __GNUC__ -# if __GNUC__ >= 2 -# define BFD_HOST_64_BIT long long -# define BFD_HOST_U_64_BIT unsigned long long -# endif /* __GNUC__ >= 2 */ -# endif /* ! defined (__GNUC__) */ -# endif /* ! BFD_HOST_64BIT_LONG */ -#endif /* ! defined (BFD_HOST_64_BIT) */ +#if 0 +/* Poison. */ +#undef false +#undef true +#define false dont_use_false_in_bfd +#define true dont_use_true_in_bfd +#endif #ifdef BFD64 @@ -195,19 +157,22 @@ #endif /* not BFD64 */ -/* A pointer to a position in a file. */ -/* FIXME: This should be using off_t from . - For now, try to avoid breaking stuff by not including here. - This will break on systems with 64-bit file offsets (e.g. 4.4BSD). - Probably the best long-term answer is to avoid using file_ptr AND off_t - in this header file, and to handle this in the BFD implementation - rather than in its interface. */ -/* typedef off_t file_ptr; */ -typedef bfd_signed_vma file_ptr; -typedef bfd_vma ufile_ptr; +#ifndef BFD_HOST_64_BIT +/* Fall back on a 32 bit type. The idea is to make these types always + available for function return types, but in the case that + BFD_HOST_64_BIT is undefined such a function should abort or + otherwise signal an error. */ +typedef bfd_signed_vma bfd_int64_t; +typedef bfd_vma bfd_uint64_t; +#endif + +/* An offset into a file. BFD always uses the largest possible offset + based on the build time availability of fseek, fseeko, or fseeko64. */ +typedef BFD_HOST_64_BIT file_ptr; +typedef unsigned BFD_HOST_64_BIT ufile_ptr; -extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma (bfd *, char *, bfd_vma); +extern void bfd_fprintf_vma (bfd *, void *, bfd_vma); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -220,7 +185,7 @@ typedef enum bfd_format { bfd_unknown = 0, /* File format is unknown. */ - bfd_object, /* Linker/assember/compiler output. */ + bfd_object, /* Linker/assembler/compiler output. */ bfd_archive, /* Object archive file. */ bfd_core, /* Core dump. */ bfd_type_end /* Marks the end; don't use it! */ @@ -283,6 +248,9 @@ /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 + +/* The sections in this BFD specify a memory page. */ +#define HAS_LOAD_PAGE 0x1000 /* Symbols and relocation. */ @@ -335,7 +303,7 @@ unsigned int line_number; /* Linenumber from start of function. */ union { - struct symbol_cache_entry *sym; /* Function name. */ + struct bfd_symbol *sym; /* Function name. */ bfd_vma offset; /* Offset into section. */ } u; } @@ -346,7 +314,7 @@ #define align_power(addr, align) \ (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align))) -typedef struct sec *sec_ptr; +typedef struct bfd_section *sec_ptr; #define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0) #define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0) @@ -362,9 +330,9 @@ #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (boolean)true), true) -#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) -#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) +#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) +#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) typedef struct stat stat_type; @@ -390,7 +358,7 @@ /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name PARAMS ((int)); +extern const char *bfd_get_stab_name (int); /* Hash table routines. There is no way to free up a hash table. */ @@ -423,75 +391,74 @@ built each of which calls the function in the superclass. Thus each function should be written to allocate a new block of memory only if the argument is NULL. */ - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* An objalloc for this hash table. This is a struct objalloc *, - but we use PTR to avoid requiring the inclusion of objalloc.h. */ - PTR memory; + but we use void * to avoid requiring the inclusion of objalloc.h. */ + void *memory; }; /* Initialize a hash table. */ -extern boolean bfd_hash_table_init - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); +extern bfd_boolean bfd_hash_table_init + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Initialize a hash table specifying a size. */ -extern boolean bfd_hash_table_init_n - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *), - unsigned int size)); +extern bfd_boolean bfd_hash_table_init_n + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *), + unsigned int size); /* Free up a hash table. */ -extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *)); +extern void bfd_hash_table_free + (struct bfd_hash_table *); -/* Look up a string in a hash table. If CREATE is true, a new entry +/* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The - COPY argument must be true if this routine should copy the string + COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, boolean create, - boolean copy)); + (struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy); /* Replace an entry in a hash table. */ extern void bfd_hash_replace - PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old, - struct bfd_hash_entry *nw)); + (struct bfd_hash_table *, struct bfd_hash_entry *old, + struct bfd_hash_entry *nw); /* Base method for creating a hash table entry. */ extern struct bfd_hash_entry *bfd_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, - const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *, - unsigned int)); +extern void *bfd_hash_allocate + (struct bfd_hash_table *, unsigned int); /* Traverse a hash table in a random order, calling a function on each - element. If the function returns false, the traversal stops. The + element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ -extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *, - boolean (*) (struct bfd_hash_entry *, - PTR), - PTR info)); +extern void bfd_hash_traverse + (struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, void *), + void *info); -#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table +#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table /* User program access to BFD facilities. */ /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell PARAMS ((bfd *)); -extern int bfd_flush PARAMS ((bfd *)); -extern int bfd_stat PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *); +extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *); +extern int bfd_seek (bfd *, file_ptr, int); +extern file_ptr bfd_tell (bfd *); +extern int bfd_flush (bfd *); +extern int bfd_stat (bfd *, struct stat *); /* Deprecated old routines. */ #if __GNUC__ @@ -509,8 +476,7 @@ (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) #endif -extern void warn_deprecated - PARAMS ((const char *, const char *, int, const char *)); +extern void warn_deprecated (const char *, const char *, int, const char *); /* Cast from const char * to char * so that caller can assign to a char * without a warning. */ @@ -546,40 +512,41 @@ #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) -#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) +#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -extern boolean bfd_cache_close PARAMS ((bfd *abfd)); +extern bfd_boolean bfd_cache_close + (bfd *abfd); /* NB: This declaration should match the autogenerated one in libbfd.h. */ -extern boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma, - boolean, boolean, unsigned int, struct sec **)); +extern bfd_boolean bfd_record_phdr + (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **); /* Byte swapping routines. */ -bfd_vma bfd_getb64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *)); -void bfd_putb64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 PARAMS ((bfd_vma, unsigned char *)); +bfd_uint64_t bfd_getb64 (const void *); +bfd_uint64_t bfd_getl64 (const void *); +bfd_int64_t bfd_getb_signed_64 (const void *); +bfd_int64_t bfd_getl_signed_64 (const void *); +bfd_vma bfd_getb32 (const void *); +bfd_vma bfd_getl32 (const void *); +bfd_signed_vma bfd_getb_signed_32 (const void *); +bfd_signed_vma bfd_getl_signed_32 (const void *); +bfd_vma bfd_getb16 (const void *); +bfd_vma bfd_getl16 (const void *); +bfd_signed_vma bfd_getb_signed_16 (const void *); +bfd_signed_vma bfd_getl_signed_16 (const void *); +void bfd_putb64 (bfd_uint64_t, void *); +void bfd_putl64 (bfd_uint64_t, void *); +void bfd_putb32 (bfd_vma, void *); +void bfd_putl32 (bfd_vma, void *); +void bfd_putb16 (bfd_vma, void *); +void bfd_putl16 (bfd_vma, void *); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits PARAMS ((bfd_byte *, int, boolean)); -void bfd_put_bits PARAMS ((bfd_vma, bfd_byte *, int, boolean)); +bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean); +void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean); /* Externally visible ECOFF routines. */ @@ -587,59 +554,54 @@ struct ecoff_debug_info; struct ecoff_debug_swap; struct ecoff_extr; -struct symbol_cache_entry; +struct bfd_symbol; struct bfd_link_info; struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif -extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd)); -extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value)); -extern boolean bfd_ecoff_set_regmasks - PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, - unsigned long *cprmask)); -extern PTR bfd_ecoff_debug_init - PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); +extern bfd_vma bfd_ecoff_get_gp_value + (bfd * abfd); +extern bfd_boolean bfd_ecoff_set_gp_value + (bfd *abfd, bfd_vma gp_value); +extern bfd_boolean bfd_ecoff_set_regmasks + (bfd *abfd, unsigned long gprmask, unsigned long fprmask, + unsigned long *cprmask); +extern void *bfd_ecoff_debug_init + (bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern void bfd_ecoff_debug_free - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - bfd *input_bfd, struct ecoff_debug_info *input_debug, - const struct ecoff_debug_swap *input_swap, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate_other - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, bfd *input_bfd, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_externals - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - boolean relocateable, - boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), - void (*set_index) (struct symbol_cache_entry *, - bfd_size_type))); -extern boolean bfd_ecoff_debug_one_external - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - const char *name, struct ecoff_extr *esym)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_accumulate + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct ecoff_debug_info *input_debug, + const struct ecoff_debug_swap *input_swap, struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_accumulate_other + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_externals + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, bfd_boolean relocatable, + bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *), + void (*set_index) (struct bfd_symbol *, bfd_size_type)); +extern bfd_boolean bfd_ecoff_debug_one_external + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, const char *name, + struct ecoff_extr *esym); extern bfd_size_type bfd_ecoff_debug_size - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap)); -extern boolean bfd_ecoff_write_debug - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, file_ptr where)); -extern boolean bfd_ecoff_write_accumulated_debug - PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - struct bfd_link_info *info, file_ptr where)); -extern boolean bfd_mips_ecoff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap); +extern bfd_boolean bfd_ecoff_write_debug + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, file_ptr where); +extern bfd_boolean bfd_ecoff_write_accumulated_debug + (void *handle, bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, + struct bfd_link_info *info, file_ptr where); +extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* Externally visible ELF routines. */ @@ -650,36 +612,37 @@ const char *name; }; -extern boolean bfd_elf32_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); -extern boolean bfd_elf64_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); +enum dynamic_lib_link_class { + DYN_NORMAL = 0, + DYN_AS_NEEDED = 1, + DYN_DT_NEEDED = 2 +}; + +extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean); extern struct bfd_link_needed_list *bfd_elf_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf_get_bfd_needed_list - PARAMS ((bfd *, struct bfd_link_needed_list **)); -extern boolean bfd_elf32_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); -extern boolean bfd_elf64_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); -extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *)); -extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *)); -extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_elf_get_bfd_needed_list + (bfd *, struct bfd_link_needed_list **); +extern bfd_boolean bfd_elf_size_dynamic_sections + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct bfd_section **, struct bfd_elf_version_tree *); +extern void bfd_elf_set_dt_needed_name + (bfd *, const char *); +extern const char *bfd_elf_get_dt_soname + (bfd *); +extern void bfd_elf_set_dyn_lib_class + (bfd *, int); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf64_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_elf_discard_info + (bfd *, struct bfd_link_info *); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd)); +extern long bfd_get_elf_phdr_upper_bound + (bfd *abfd); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -688,39 +651,58 @@ Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs)); +extern int bfd_get_elf_phdrs + (bfd *abfd, void *phdrs); + +/* Create a new BFD as if by bfd_openr. Rather than opening a file, + reconstruct an ELF file by reading the segments out of remote memory + based on the ELF file header at EHDR_VMA and the ELF program headers it + points to. If not null, *LOADBASEP is filled in with the difference + between the VMAs from which the segments were read, and the VMAs the + file headers (and hence BFD's idea of each section's VMA) put them at. + + The function TARGET_READ_MEMORY is called to copy LEN bytes from the + remote memory at target address VMA into the local buffer at MYADDR; it + should return zero on success or an `errno' code on failure. TEMPL must + be a BFD for an ELF target with the word size and byte order found in + the remote memory. */ +extern bfd *bfd_elf_bfd_from_remote_memory + (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, + int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ -extern int bfd_get_arch_size PARAMS ((bfd *)); +extern int bfd_get_arch_size + (bfd *); + +/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ +extern int bfd_get_sign_extend_vma + (bfd *); -/* Return true if address "naturally" sign extends, or -1 if not elf. */ -extern int bfd_get_sign_extend_vma PARAMS ((bfd *)); +extern struct bfd_section *_bfd_elf_tls_setup + (bfd *, struct bfd_link_info *); -extern boolean bfd_m68k_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); -extern boolean bfd_mips_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); +extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); +extern bfd_boolean bfd_mips_elf32_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* SunOS shared library support routines for the linker. */ extern struct bfd_link_needed_list *bfd_sunos_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sunos_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_sunos_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, - struct sec **)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_sunos_record_link_assignment + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_sunos_size_dynamic_sections + (bfd *, struct bfd_link_info *, struct bfd_section **, struct bfd_section **, struct bfd_section **); /* Linux shared library support routines for the linker. */ -extern boolean bfd_i386linux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_m68klinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sparclinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_i386linux_size_dynamic_sections + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_m68klinux_size_dynamic_sections + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_sparclinux_size_dynamic_sections + (bfd *, struct bfd_link_info *); /* mmap hacks */ @@ -730,7 +712,7 @@ typedef struct _bfd_window { /* What the user asked for. */ - PTR data; + void *data; bfd_size_type size; /* The actual window used by BFD. Small user-requested read-only regions sharing a page may share a single window into the object @@ -742,34 +724,36 @@ } bfd_window; -extern void bfd_init_window PARAMS ((bfd_window *)); -extern void bfd_free_window PARAMS ((bfd_window *)); -extern boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean)); +extern void bfd_init_window + (bfd_window *); +extern void bfd_free_window + (bfd_window *); +extern bfd_boolean bfd_get_file_window + (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); /* XCOFF support routines for the linker. */ -extern boolean bfd_xcoff_link_record_set - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_size_type)); -extern boolean bfd_xcoff_import_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_vma, const char *, const char *, const char *, unsigned int)); -extern boolean bfd_xcoff_export_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); -extern boolean bfd_xcoff_link_count_reloc - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, boolean, - int, boolean, boolean, struct sec **, boolean)); -extern boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); +extern bfd_boolean bfd_xcoff_link_record_set + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); +extern bfd_boolean bfd_xcoff_import_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, + const char *, const char *, const char *, unsigned int); +extern bfd_boolean bfd_xcoff_export_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); +extern bfd_boolean bfd_xcoff_link_count_reloc + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_record_link_assignment + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_size_dynamic_sections + (bfd *, struct bfd_link_info *, const char *, const char *, + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean); +extern bfd_boolean bfd_xcoff_link_generate_rtinit + (bfd *, const char *, const char *, bfd_boolean); /* XCOFF support routines for ar. */ -extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *)); +extern bfd_boolean bfd_xcoff_ar_archive_set_magic + (bfd *, char *); /* Externally visible COFF routines. */ @@ -778,144 +762,165 @@ union internal_auxent; #endif -extern boolean bfd_coff_get_syment - PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); +extern bfd_boolean bfd_coff_get_syment + (bfd *, struct bfd_symbol *, struct internal_syment *); -extern boolean bfd_coff_get_auxent - PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); +extern bfd_boolean bfd_coff_get_auxent + (bfd *, struct bfd_symbol *, int, union internal_auxent *); -extern boolean bfd_coff_set_symbol_class - PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); +extern bfd_boolean bfd_coff_set_symbol_class + (bfd *, struct bfd_symbol *, unsigned int); -extern boolean bfd_m68k_coff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); +extern bfd_boolean bfd_m68k_coff_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_arm_allocate_interworking_sections + (struct bfd_link_info *); -extern boolean bfd_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +extern bfd_boolean bfd_arm_process_before_allocation + (bfd *, struct bfd_link_info *, int); -extern boolean bfd_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); /* PE ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_pe_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_arm_pe_allocate_interworking_sections + (struct bfd_link_info *); -extern boolean bfd_arm_pe_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +extern bfd_boolean bfd_arm_pe_process_before_allocation + (bfd *, struct bfd_link_info *, int); -extern boolean bfd_arm_pe_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); /* ELF ARM Interworking support. Called from linker. */ -extern boolean bfd_elf32_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections + (struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_process_before_allocation + (bfd *, struct bfd_link_info *, int); + +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd + (bfd *, struct bfd_link_info *); -extern boolean bfd_elf32_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +/* ARM Note section processing. */ +extern bfd_boolean bfd_arm_merge_machines + (bfd *, bfd *); -extern boolean bfd_elf32_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_update_notes + (bfd *, const char *); -extern boolean bfd_elf32_arm_add_glue_sections_to_bfd - PARAMS ((bfd *, struct bfd_link_info *)); +extern unsigned int bfd_arm_get_mach_from_notes + (bfd *, const char *); /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page - PARAMS ((struct sec *, int)); + (struct bfd_section *, int); extern int bfd_ticoff_get_section_load_page - PARAMS ((struct sec *)); + (struct bfd_section *); + +/* H8/300 functions. */ +extern bfd_vma bfd_h8300_pad_address + (bfd *, bfd_vma); + +/* IA64 Itanium code generation. Called from linker. */ +extern void bfd_elf32_ia64_after_parse + (int); + +extern void bfd_elf64_ia64_after_parse + (int); /* Extracted from init.c. */ -void -bfd_init PARAMS ((void)); +void bfd_init (void); /* Extracted from opncls.c. */ -bfd * -bfd_openr PARAMS ((const char *filename, const char *target)); +bfd *bfd_openr (const char *filename, const char *target); + +bfd *bfd_fdopenr (const char *filename, const char *target, int fd); + +bfd *bfd_openstreamr (const char *, const char *, void *); + +bfd *bfd_openw (const char *filename, const char *target); + +bfd_boolean bfd_close (bfd *abfd); -bfd * -bfd_fdopenr PARAMS ((const char *filename, const char *target, int fd)); +bfd_boolean bfd_close_all_done (bfd *); -bfd * -bfd_openstreamr PARAMS ((const char *, const char *, PTR)); +bfd *bfd_create (const char *filename, bfd *templ); -bfd * -bfd_openw PARAMS ((const char *filename, const char *target)); +bfd_boolean bfd_make_writable (bfd *abfd); -boolean -bfd_close PARAMS ((bfd *abfd)); +bfd_boolean bfd_make_readable (bfd *abfd); -boolean -bfd_close_all_done PARAMS ((bfd *)); +unsigned long bfd_calc_gnu_debuglink_crc32 + (unsigned long crc, const unsigned char *buf, bfd_size_type len); -bfd * -bfd_create PARAMS ((const char *filename, bfd *templ)); +char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); -boolean -bfd_make_writable PARAMS ((bfd *abfd)); +struct bfd_section *bfd_create_gnu_debuglink_section + (bfd *abfd, const char *filename); -boolean -bfd_make_readable PARAMS ((bfd *abfd)); +bfd_boolean bfd_fill_in_gnu_debuglink_section + (bfd *abfd, struct bfd_section *sect, const char *filename); /* Extracted from libbfd.c. */ /* Byte swapping macros for user section data. */ #define bfd_put_8(abfd, val, ptr) \ - ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) + ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) #define bfd_put_signed_8 \ - bfd_put_8 + bfd_put_8 #define bfd_get_8(abfd, ptr) \ - (*(unsigned char *) (ptr) & 0xff) + (*(unsigned char *) (ptr) & 0xff) #define bfd_get_signed_8(abfd, ptr) \ - (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) + (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 16 21:20:12 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CCD5E16A4D0; Wed, 16 Jun 2004 21:20:11 +0000 (GMT) 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 8078C16A4CE for ; Wed, 16 Jun 2004 21:20:11 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 773AD43D55 for ; Wed, 16 Jun 2004 21:20:11 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GLJoOS044164 for ; Wed, 16 Jun 2004 21:19:50 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GLJ8pK044160 for perforce@freebsd.org; Wed, 16 Jun 2004 21:19:08 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 21:19:08 GMT Message-Id: <200406162119.i5GLJ8pK044160@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 55105 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, 16 Jun 2004 21:20:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=55105 Change 55105 by marcel@marcel_nfs on 2004/06/16 21:18:59 IFC @55104 Affected files ... .. //depot/projects/gdb/bin/test/TEST.README#2 integrate .. //depot/projects/gdb/contrib/binutils/ChangeLog#5 integrate .. //depot/projects/gdb/contrib/binutils/MAINTAINERS#5 integrate .. //depot/projects/gdb/contrib/binutils/Makefile.def#3 branch .. //depot/projects/gdb/contrib/binutils/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/Makefile.tpl#3 branch .. //depot/projects/gdb/contrib/binutils/README-maintainer-mode#5 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ChangeLog-0001#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ChangeLog-0203#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/acinclude.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aout-arm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aout-encap.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aout-target.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aoutf1.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/aoutx.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/archive.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/archive64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/archures.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/bfd-in.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/bfd-in2.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/bfd.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/bfdio.c#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/bfdwin.c#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/binary.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/bout.c#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/cache.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-alpha.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-arm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-aux.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-i386.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-ppc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-rs6000.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff-sparc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coff64-rs6000.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coffcode.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coffgen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cofflink.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/coffswap.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/config.bfd#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/configure.host#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/corefile.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-alpha.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-arc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-arm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-i386.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-ia64-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-powerpc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-rs6000.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-s390.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/cpu-sparc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/dep-in.sed#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/ChangeLog-9103#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/doc/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/aoutx.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/archive.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/archures.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/bfd.texinfo#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/bfdint.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/bfdio.texi#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/doc/bfdt.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/bfdwin.texi#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/doc/cache.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/chew.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/coffcode.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/core.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/fdl.texi#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/doc/format.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/hash.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/init.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/libbfd.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/linker.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/mmo.texi#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/doc/opncls.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/reloc.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/section.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/syms.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/doc/targets.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/dwarf1.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/dwarf2.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ecoff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ecofflink.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ecoffswap.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/efi-app-ia32.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/efi-app-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf-bfd.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf-eh-frame.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf-strtab.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-arc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-arm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-gen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-i386.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-ppc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-s390.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf32-sparc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-alpha.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-gen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-ppc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-ppc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-s390.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-sparc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elf64-x86-64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfarm-nabi.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfarm-oabi.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfcode.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfcore.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elflink.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfxx-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/elfxx-target.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/format.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/freebsd.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/gen-aout.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/genlink.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/hash.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/i386aout.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/i386linux.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ieee.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ihex.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/init.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libaout.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libbfd-in.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libbfd.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libbfd.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libcoff-in.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libcoff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libecoff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libieee.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/libpei.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/linker.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/merge.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/netbsd-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/netbsd.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/opncls.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/osf-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/pe-arm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/pe-i386.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/peXXigen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/peicode.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/po/BLD-POTFILES.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/po/Make-in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/po/SRC-POTFILES.in#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/po/bfd.pot#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ppcboot.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/ptrace-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/reloc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/reloc16.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/rs6000-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/sco5-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/section.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/simple.c#3 branch .. //depot/projects/gdb/contrib/binutils/bfd/sparclinux.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/sparcnetbsd.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/srec.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/stabs.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/sunos.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/syms.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/sysdep.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/targets.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/tekhex.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/trad-core.c#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/version.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/xcoff-target.h#4 integrate .. //depot/projects/gdb/contrib/binutils/bfd/xcofflink.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/ChangeLog-0001#3 branch .. //depot/projects/gdb/contrib/binutils/binutils/ChangeLog-0203#3 branch .. //depot/projects/gdb/contrib/binutils/binutils/ChangeLog-9197#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/ChangeLog-9899#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/MAINTAINERS#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/NEWS#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/README#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/acinclude.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/addr2line.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/ar.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/arlex.l#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/arparse.y#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/arsup.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/arsup.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/binemul.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/binemul.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/bucomm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/bucomm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/budbg.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/budemang.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/budemang.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/coffdump.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/coffgrok.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/coffgrok.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/cxxfilt.c#3 branch .. //depot/projects/gdb/contrib/binutils/binutils/debug.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/debug.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/deflex.l#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/dep-in.sed#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/dlltool.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/dlltool.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/dllwrap.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/addr2line.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/ar.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/binutils.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/cxxfilt.man#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/dlltool.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/fdl.texi#3 branch .. //depot/projects/gdb/contrib/binutils/binutils/doc/nm.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/objcopy.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/objdump.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/ranlib.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/readelf.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/size.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/strings.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/doc/strip.1#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/filemode.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/ieee.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/nm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/objcopy.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/objdump.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/po/Make-in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/po/POTFILES.in#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/po/binutils.pot#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/prdbg.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rclex.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rclex.l#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rdcoff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rddbg.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/readelf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rename.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/resbin.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/rescoff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/resrc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/size.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/srconv.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/stabs.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/strings.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/sysdump.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/unwind-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/unwind-ia64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/version.c#4 integrate .. //depot/projects/gdb/contrib/binutils/binutils/wrstabs.c#4 integrate .. //depot/projects/gdb/contrib/binutils/config-ml.in#4 integrate .. //depot/projects/gdb/contrib/binutils/config.guess#4 integrate .. //depot/projects/gdb/contrib/binutils/config.if#4 integrate .. //depot/projects/gdb/contrib/binutils/config.sub#4 integrate .. //depot/projects/gdb/contrib/binutils/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/CONTRIBUTORS#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/ChangeLog-0203#3 branch .. //depot/projects/gdb/contrib/binutils/gas/ChangeLog-9295#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/NEWS#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/README#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/acinclude.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/app.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/as.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/as.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/atof-generic.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/bignum-copy.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/bignum.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/bit_fix.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/cgen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/cgen.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/cond.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-aout.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-aout.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-coff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-coff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-ecoff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-ecoff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-elf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-elf.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-ieee.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-ieee.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/obj-multi.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-alpha.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-alpha.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-arc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-arc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-arm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-arm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-i386.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-i386.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-ia64.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-ia64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-ppc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-ppc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-s390.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-s390.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-sparc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/tc-sparc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/te-generic.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/te-pe.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/config/te-ppcnw.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/dep-in.sed#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/depend.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/all.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/as.1#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/as.texinfo#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-alpha.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-arm.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-i386.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-ia64.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-ppc.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-sh.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/c-sparc.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/gasver.texi#3 branch .. //depot/projects/gdb/contrib/binutils/gas/doc/h8.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/doc/internals.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/dw2gencfi.c#3 branch .. //depot/projects/gdb/contrib/binutils/gas/dw2gencfi.h#3 branch .. //depot/projects/gdb/contrib/binutils/gas/dwarf2dbg.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/dwarf2dbg.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/ecoff.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/ecoff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/ehopt.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/emul.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/expr.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/expr.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/flonum-copy.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/flonum-mult.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/flonum.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/frags.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/frags.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/hash.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/hash.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/input-file.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/input-file.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/input-scrub.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/itbl-ops.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/itbl-ops.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/listing.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/listing.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/macro.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/macro.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/messages.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/obj.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/output-file.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/output-file.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/po/Make-in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/po/POTFILES.in#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/po/gas.pot#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/read.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/read.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/sb.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/sb.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/stabs.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/subsegs.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/subsegs.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/symbols.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/symbols.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/tc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/write.c#4 integrate .. //depot/projects/gdb/contrib/binutils/gas/write.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/include/ansidecl.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/aout/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/include/aout/aout64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/aout/stab.def#4 integrate .. //depot/projects/gdb/contrib/binutils/include/bfdlink.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/arm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/ecoff.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/internal.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/pe.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/sh.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/coff/ti.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/demangle.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/dis-asm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/ChangeLog-9103#3 branch .. //depot/projects/gdb/contrib/binutils/include/elf/arm.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/common.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/dwarf2.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/external.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/frv.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/h8.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/i370.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/ia64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/internal.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/ip2k.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/elf/iq2000.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/elf/m32r.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/m68hc11.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/mips.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/mmix.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/mn10300.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/msp430.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/elf/ppc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/ppc64.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/elf/reloc-macros.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/s390.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/sh.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/sparc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/v850.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/x86-64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/xstormy16.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/elf/xtensa.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/fibheap.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/floatformat.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/hashtab.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/libiberty.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/obstack.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/ChangeLog-9103#3 branch .. //depot/projects/gdb/contrib/binutils/include/opcode/alpha.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/arc.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/opcode/cgen.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/convex.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/opcode/i386.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/ia64.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/np1.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/opcode/pn.h#3 branch .. //depot/projects/gdb/contrib/binutils/include/opcode/ppc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/s390.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/opcode/sparc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/partition.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/safe-ctype.h#4 integrate .. //depot/projects/gdb/contrib/binutils/include/splay-tree.h#4 integrate .. //depot/projects/gdb/contrib/binutils/install-sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ChangeLog-0001#3 branch .. //depot/projects/gdb/contrib/binutils/ld/ChangeLog-0203#3 branch .. //depot/projects/gdb/contrib/binutils/ld/ChangeLog-9197#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/NEWS#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/README#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/configure.host#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/configure.tgt#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/deffile.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/deffilep.y#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/dep-in.sed#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/arcelf.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/armelf.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/armelf_linux.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/armelf_oabi.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/armpe.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32_sparc.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32b4300.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32bmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32bmipn32.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32bsmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32ebmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32elmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32l4300.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32lmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32lsmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf32ppc.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64_ia64.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh#5 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64_s390.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64_sparc.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64alpha.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64bmip.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf64ppc.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf_i386.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf_s390.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/elf_x86_64.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/sh.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/shl.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/shlelf.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emulparams/vanilla.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emulparams/vsta.sh#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emultempl/alphaelf.em#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emultempl/armcoff.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/armelf.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/armelf_oabi.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/elf32.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/generic.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/ia64elf.em#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emultempl/linux.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/needrelax.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/netbsd.em#3 branch .. //depot/projects/gdb/contrib/binutils/ld/emultempl/pe.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/ppc64elf.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/sunos.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/ticoff.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/emultempl/vanilla.em#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/fdl.texi#3 branch .. //depot/projects/gdb/contrib/binutils/ld/gen-doc.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/genscripts.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/h8-doc.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ld.1#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ld.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ld.texinfo#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldcref.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldctor.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldctor.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldemul.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldemul.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldexp.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldexp.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldfile.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldfile.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldgram.y#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldint.texinfo#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldlang.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldlang.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldlex.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldlex.l#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldmain.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldmain.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldmisc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldmisc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldver.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldver.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldver.texi#3 branch .. //depot/projects/gdb/contrib/binutils/ld/ldwrite.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/ldwrite.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/lexsup.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/mri.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/mri.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/pe-dll.c#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/pe-dll.h#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/scripttempl/armcoff.sc#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/scripttempl/elf.sc#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/scripttempl/pe.sc#4 integrate .. //depot/projects/gdb/contrib/binutils/ld/sysdep.h#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/README#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/argv.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/asprintf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/calloc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/config.table#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/copysign.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/cp-demangle.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/cp-demangle.h#3 branch .. //depot/projects/gdb/contrib/binutils/libiberty/cp-demint.c#3 branch .. //depot/projects/gdb/contrib/binutils/libiberty/cplus-dem.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/fibheap.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/floatformat.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/functions.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/getcwd.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/getpwd.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/hashtab.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/hex.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/lbasename.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/libiberty.texi#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/lrealpath.c#3 branch .. //depot/projects/gdb/contrib/binutils/libiberty/maint-tool#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/make-relative-prefix.c#3 branch .. //depot/projects/gdb/contrib/binutils/libiberty/md5.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/memchr.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/memcmp.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/memcpy.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/memmove.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/memset.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/physmem.c#3 branch .. //depot/projects/gdb/contrib/binutils/libiberty/regex.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/rename.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/safe-ctype.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/sigsetmask.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/splay-tree.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strcasecmp.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strdup.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strerror.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strncasecmp.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strncmp.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strsignal.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/strstr.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/vasprintf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/vfprintf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/vprintf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/vsprintf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/xatexit.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libiberty/xmalloc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/libtool.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/ltcf-c.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ltcf-cxx.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ltcf-gcj.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/ltconfig#4 integrate .. //depot/projects/gdb/contrib/binutils/missing#4 integrate .. //depot/projects/gdb/contrib/binutils/mkinstalldirs#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ChangeLog#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ChangeLog-0001#3 branch .. //depot/projects/gdb/contrib/binutils/opcodes/ChangeLog-0203#3 branch .. //depot/projects/gdb/contrib/binutils/opcodes/Makefile.am#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/Makefile.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/aclocal.m4#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/alpha-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/arc-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/arm-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/arm-opc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-asm.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-asm.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-dis.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-ibld.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/cgen.sh#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/config.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/configure#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/configure.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/dep-in.sed#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/dis-buf.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/dis-init.c#3 branch .. //depot/projects/gdb/contrib/binutils/opcodes/disassemble.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/i386-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-asmtab.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-gen.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-ic.tbl#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-a.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-b.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-d.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-f.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-i.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-m.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc-x.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-opc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-raw.tbl#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ia64-waw.tbl#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/po/Make-in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/po/POTFILES.in#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/po/opcodes.pot#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ppc-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/ppc-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/s390-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/s390-mkopc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/s390-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/s390-opc.txt#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/sh-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/sh-opc.h#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/sparc-dis.c#4 integrate .. //depot/projects/gdb/contrib/binutils/opcodes/sparc-opc.c#4 integrate .. //depot/projects/gdb/contrib/binutils/symlink-tree#4 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/Makefile.inc0#5 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/addr2line/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ar/Makefile#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/Makefile.inc0#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/alpha-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/amd64-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/i386-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/ia64-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/powerpc-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/as/sparc64-freebsd/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/gdb/Makefile#6 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.alpha#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.amd64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.i386#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.ia64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.powerpc#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/Makefile.sparc64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ld/genscripts.sh#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile#5 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.alpha#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.i386#4 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/alpha/bfd.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/amd64/bfd.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/i386/bfd.h#5 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/sparc64/bfd.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbinutils/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbinutils/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libiberty/Makefile#5 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libiberty/config.h#4 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libopcodes/Makefile#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libopcodes/config.h#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/nm/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/objcopy/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/objdump/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/ranlib/Makefile#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/readelf/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/size/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/strings/Makefile#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/strip/Makefile#4 integrate .. //depot/projects/gdb/lib/libc/net/getaddrinfo.c#4 integrate .. //depot/projects/gdb/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/gdb/sbin/geom/misc/subr.h#2 integrate .. //depot/projects/gdb/sbin/route/route.c#7 integrate .. //depot/projects/gdb/sbin/routed/defs.h#4 integrate .. //depot/projects/gdb/share/man/man4/acpi.4#7 integrate .. //depot/projects/gdb/share/man/man4/aha.4#2 integrate .. //depot/projects/gdb/share/man/man4/ata.4#4 integrate .. //depot/projects/gdb/share/man/man4/awi.4#3 integrate .. //depot/projects/gdb/share/man/man4/bpf.4#3 integrate .. //depot/projects/gdb/share/man/man4/bridge.4#2 integrate .. //depot/projects/gdb/share/man/man4/ddb.4#2 integrate .. //depot/projects/gdb/share/man/man4/gre.4#3 integrate .. //depot/projects/gdb/share/man/man4/inet.4#2 integrate .. //depot/projects/gdb/share/man/man4/ip.4#4 integrate .. //depot/projects/gdb/share/man/man4/kame.4#2 integrate .. //depot/projects/gdb/share/man/man4/kue.4#3 integrate .. //depot/projects/gdb/share/man/man4/mac_portacl.4#3 integrate .. //depot/projects/gdb/share/man/man4/man4.i386/cx.4#5 integrate .. //depot/projects/gdb/share/man/man4/mpt.4#2 integrate .. //depot/projects/gdb/share/man/man4/ng_one2many.4#5 integrate .. //depot/projects/gdb/share/man/man4/ng_rfc1490.4#3 integrate .. //depot/projects/gdb/share/man/man4/pcm.4#2 integrate .. //depot/projects/gdb/share/man/man4/random.4#4 integrate .. //depot/projects/gdb/share/man/man4/sbp.4#2 integrate .. //depot/projects/gdb/share/man/man4/smb.4#3 integrate .. //depot/projects/gdb/share/man/man4/smp.4#3 integrate .. //depot/projects/gdb/share/man/man4/syscons.4#2 integrate .. //depot/projects/gdb/share/man/man4/tcp.4#4 integrate .. //depot/projects/gdb/share/man/man4/umass.4#3 integrate .. //depot/projects/gdb/share/man/man4/wlan.4#2 integrate .. //depot/projects/gdb/share/man/man5/config.5#3 integrate .. //depot/projects/gdb/share/man/man5/devfs.5#2 integrate .. //depot/projects/gdb/share/man/man5/hosts.lpd.5#3 integrate .. //depot/projects/gdb/share/man/man5/libmap.conf.5#5 integrate .. //depot/projects/gdb/share/man/man5/make.conf.5#5 integrate .. //depot/projects/gdb/share/man/man5/periodic.conf.5#4 integrate .. //depot/projects/gdb/share/man/man5/rc.conf.5#11 integrate .. //depot/projects/gdb/share/man/man5/remote.5#2 integrate .. //depot/projects/gdb/share/man/man5/resolver.5#2 integrate .. //depot/projects/gdb/share/man/man7/build.7#2 integrate .. //depot/projects/gdb/share/man/man7/firewall.7#2 integrate .. //depot/projects/gdb/share/man/man7/hier.7#6 integrate .. //depot/projects/gdb/share/man/man7/ports.7#3 integrate .. //depot/projects/gdb/share/man/man8/diskless.8#3 integrate .. //depot/projects/gdb/share/man/man9/DEVICE_IDENTIFY.9#4 integrate .. //depot/projects/gdb/share/man/man9/VOP_GETPAGES.9#2 integrate .. //depot/projects/gdb/share/man/man9/accept_filter.9#2 integrate .. //depot/projects/gdb/share/man/man9/buf.9#3 integrate .. //depot/projects/gdb/share/man/man9/bus_alloc_resource.9#4 integrate .. //depot/projects/gdb/share/man/man9/cd.9#3 integrate .. //depot/projects/gdb/share/man/man9/copy.9#3 integrate .. //depot/projects/gdb/share/man/man9/device_add_child.9#3 integrate .. //depot/projects/gdb/share/man/man9/ifnet.9#4 integrate .. //depot/projects/gdb/share/man/man9/mac.9#4 integrate .. //depot/projects/gdb/share/man/man9/mutex.9#3 integrate .. //depot/projects/gdb/share/man/man9/pfil.9#3 integrate .. //depot/projects/gdb/share/man/man9/sleepqueue.9#3 integrate .. //depot/projects/gdb/share/man/man9/style.9#3 integrate .. //depot/projects/gdb/share/man/man9/sx.9#4 integrate .. //depot/projects/gdb/share/man/man9/taskqueue.9#2 integrate .. //depot/projects/gdb/share/man/man9/time.9#3 integrate .. //depot/projects/gdb/share/man/man9/timeout.9#4 integrate .. //depot/projects/gdb/share/man/man9/vm_page_alloc.9#2 integrate .. //depot/projects/gdb/share/man/man9/vslock.9#3 integrate .. //depot/projects/gdb/sys/alpha/alpha/mem.c#5 integrate .. //depot/projects/gdb/sys/alpha/alpha/promcons.c#5 integrate .. //depot/projects/gdb/sys/alpha/include/cpu.h#3 integrate .. //depot/projects/gdb/sys/alpha/tlsb/zs_tlsb.c#7 integrate .. //depot/projects/gdb/sys/amd64/amd64/mem.c#5 integrate .. //depot/projects/gdb/sys/amd64/amd64/pmap.c#13 integrate .. //depot/projects/gdb/sys/amd64/include/cpu.h#3 integrate .. //depot/projects/gdb/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/gdb/sys/arm/include/bus.h#2 integrate .. //depot/projects/gdb/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/gdb/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/gdb/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/gdb/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/gdb/sys/boot/pc98/boot2/dinode.h#3 integrate .. //depot/projects/gdb/sys/boot/pc98/boot2/inode.h#3 integrate .. //depot/projects/gdb/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/gdb/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_sa.c#4 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/gdb/sys/coda/cnode.h#2 integrate .. //depot/projects/gdb/sys/coda/coda.h#2 integrate .. //depot/projects/gdb/sys/coda/coda_fbsd.c#4 integrate .. //depot/projects/gdb/sys/coda/coda_psdev.c#2 integrate .. //depot/projects/gdb/sys/coda/coda_psdev.h#2 integrate .. //depot/projects/gdb/sys/coda/coda_venus.c#3 integrate .. //depot/projects/gdb/sys/coda/coda_venus.h#2 integrate .. //depot/projects/gdb/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/gdb/sys/coda/coda_vnops.c#2 integrate .. //depot/projects/gdb/sys/coda/coda_vnops.h#2 integrate .. //depot/projects/gdb/sys/compat/linux/linux_stats.c#4 integrate .. //depot/projects/gdb/sys/contrib/dev/fla/fla.c#3 integrate .. //depot/projects/gdb/sys/contrib/ipfilter/netinet/ip_fil.c#3 integrate .. //depot/projects/gdb/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate .. //depot/projects/gdb/sys/contrib/ipfilter/netinet/mlfk_ipl.c#3 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_ioctl.c#8 integrate .. //depot/projects/gdb/sys/dev/aac/aac.c#7 integrate .. //depot/projects/gdb/sys/dev/aac/aacvar.h#5 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi.c#21 integrate .. //depot/projects/gdb/sys/dev/acpica/acpivar.h#16 integrate .. //depot/projects/gdb/sys/dev/adlink/adlink.c#5 integrate .. //depot/projects/gdb/sys/dev/amr/amr.c#4 integrate .. //depot/projects/gdb/sys/dev/amr/amrvar.h#3 integrate .. //depot/projects/gdb/sys/dev/asr/asr.c#10 integrate .. //depot/projects/gdb/sys/dev/ata/ata-all.c#9 integrate .. //depot/projects/gdb/sys/dev/ata/atapi-tape.c#4 integrate .. //depot/projects/gdb/sys/dev/ata/atapi-tape.h#3 integrate .. //depot/projects/gdb/sys/dev/bktr/bktr_core.c#3 integrate .. //depot/projects/gdb/sys/dev/bktr/bktr_core.h#2 integrate .. //depot/projects/gdb/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/gdb/sys/dev/bktr/bktr_reg.h#2 integrate .. //depot/projects/gdb/sys/dev/ciss/ciss.c#12 integrate .. //depot/projects/gdb/sys/dev/ciss/cissvar.h#3 integrate .. //depot/projects/gdb/sys/dev/cp/if_cp.c#4 integrate .. //depot/projects/gdb/sys/dev/ctau/if_ct.c#4 integrate .. //depot/projects/gdb/sys/dev/cx/if_cx.c#8 integrate .. //depot/projects/gdb/sys/dev/cy/cy.c#7 integrate .. //depot/projects/gdb/sys/dev/dcons/dcons.c#9 integrate .. //depot/projects/gdb/sys/dev/digi/digi.c#7 integrate .. //depot/projects/gdb/sys/dev/digi/digi.h#2 integrate .. //depot/projects/gdb/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/gdb/sys/dev/drm/drm_drv.h#5 integrate .. //depot/projects/gdb/sys/dev/drm/drm_fops.h#2 integrate .. //depot/projects/gdb/sys/dev/drm/drm_os_freebsd.h#4 integrate .. //depot/projects/gdb/sys/dev/drm/drm_vm.h#3 integrate .. //depot/projects/gdb/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/gdb/sys/dev/fb/vga.c#4 integrate .. //depot/projects/gdb/sys/dev/fb/vgareg.h#2 integrate .. //depot/projects/gdb/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/gdb/sys/dev/firewire/firewirereg.h#4 integrate .. //depot/projects/gdb/sys/dev/firewire/fwdev.c#7 integrate .. //depot/projects/gdb/sys/dev/firewire/fwmem.c#4 integrate .. //depot/projects/gdb/sys/dev/firewire/fwohci.c#7 integrate .. //depot/projects/gdb/sys/dev/ida/ida.c#4 integrate .. //depot/projects/gdb/sys/dev/ida/idavar.h#3 integrate .. //depot/projects/gdb/sys/dev/iicbus/iic.c#4 integrate .. //depot/projects/gdb/sys/dev/iir/iir.h#6 integrate .. //depot/projects/gdb/sys/dev/iir/iir_ctrl.c#5 integrate .. //depot/projects/gdb/sys/dev/ips/ips.c#5 integrate .. //depot/projects/gdb/sys/dev/ips/ips.h#6 integrate .. //depot/projects/gdb/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/gdb/sys/dev/joy/joy.c#4 integrate .. //depot/projects/gdb/sys/dev/joy/joyvar.h#2 integrate .. //depot/projects/gdb/sys/dev/kbd/kbd.c#5 integrate .. //depot/projects/gdb/sys/dev/kbd/kbdreg.h#2 integrate .. //depot/projects/gdb/sys/dev/led/led.c#6 integrate .. //depot/projects/gdb/sys/dev/led/led.h#3 integrate .. //depot/projects/gdb/sys/dev/matcd/matcd.c#3 integrate .. //depot/projects/gdb/sys/dev/matcd/matcd_data.h#2 integrate .. //depot/projects/gdb/sys/dev/mcd/mcd.c#3 integrate .. //depot/projects/gdb/sys/dev/mcd/mcdvar.h#2 integrate .. //depot/projects/gdb/sys/dev/md/md.c#10 integrate .. //depot/projects/gdb/sys/dev/mlx/mlx.c#4 integrate .. //depot/projects/gdb/sys/dev/mlx/mlxvar.h#3 integrate .. //depot/projects/gdb/sys/dev/mly/mly.c#5 integrate .. //depot/projects/gdb/sys/dev/mly/mlyvar.h#2 integrate .. //depot/projects/gdb/sys/dev/nmdm/nmdm.c#8 integrate .. //depot/projects/gdb/sys/dev/null/null.c#3 integrate .. //depot/projects/gdb/sys/dev/ofw/ofw_console.c#7 integrate .. //depot/projects/gdb/sys/dev/ofw/openfirmio.c#5 integrate .. //depot/projects/gdb/sys/dev/ofw/openpromio.c#3 integrate .. //depot/projects/gdb/sys/dev/pci/pci.c#12 integrate .. //depot/projects/gdb/sys/dev/pci/pci_user.c#3 integrate .. //depot/projects/gdb/sys/dev/ppbus/lpt.c#4 integrate .. //depot/projects/gdb/sys/dev/ppbus/pcfclock.c#5 integrate .. //depot/projects/gdb/sys/dev/ppbus/ppi.c#4 integrate .. //depot/projects/gdb/sys/dev/ppbus/pps.c#4 integrate .. //depot/projects/gdb/sys/dev/random/randomdev.c#9 integrate .. //depot/projects/gdb/sys/dev/rc/rc.c#7 integrate .. //depot/projects/gdb/sys/dev/rp/rp.c#6 integrate .. //depot/projects/gdb/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/gdb/sys/dev/sab/sab.c#9 integrate .. //depot/projects/gdb/sys/dev/scd/scd.c#3 integrate .. //depot/projects/gdb/sys/dev/scd/scdvar.h#2 integrate .. //depot/projects/gdb/sys/dev/si/si.c#6 integrate .. //depot/projects/gdb/sys/dev/sio/sio.c#14 integrate .. //depot/projects/gdb/sys/dev/smbus/smb.c#4 integrate .. //depot/projects/gdb/sys/dev/snp/snp.c#5 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/mixer.c#4 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/sndstat.c#3 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/sound.h#6 integrate .. //depot/projects/gdb/sys/dev/streams/streams.c#3 integrate .. //depot/projects/gdb/sys/dev/sx/sx.c#5 integrate .. //depot/projects/gdb/sys/dev/syscons/scvesactl.c#2 integrate .. //depot/projects/gdb/sys/dev/syscons/syscons.c#10 integrate .. //depot/projects/gdb/sys/dev/syscons/syscons.h#2 integrate .. //depot/projects/gdb/sys/dev/syscons/sysmouse.c#5 integrate .. //depot/projects/gdb/sys/dev/tdfx/tdfx_pci.c#5 integrate .. //depot/projects/gdb/sys/dev/tdfx/tdfx_vars.h#3 integrate .. //depot/projects/gdb/sys/dev/twa/twa.h#4 integrate .. //depot/projects/gdb/sys/dev/twa/twa_freebsd.c#5 integrate .. //depot/projects/gdb/sys/dev/twe/twe_compat.h#3 integrate .. //depot/projects/gdb/sys/dev/twe/twe_freebsd.c#7 integrate .. //depot/projects/gdb/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/gdb/sys/dev/uart/uart_tty.c#5 integrate .. //depot/projects/gdb/sys/dev/usb/ubser.c#5 integrate .. //depot/projects/gdb/sys/dev/usb/ucom.c#7 integrate .. //depot/projects/gdb/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/gdb/sys/dev/usb/ufm.c#3 integrate .. //depot/projects/gdb/sys/dev/usb/ugen.c#3 integrate .. //depot/projects/gdb/sys/dev/usb/uhid.c#4 integrate .. //depot/projects/gdb/sys/dev/usb/ulpt.c#3 integrate .. //depot/projects/gdb/sys/dev/usb/ums.c#4 integrate .. //depot/projects/gdb/sys/dev/usb/urio.c#3 integrate .. //depot/projects/gdb/sys/dev/usb/usb.c#4 integrate .. //depot/projects/gdb/sys/dev/usb/uscanner.c#5 integrate .. //depot/projects/gdb/sys/dev/vinum/vinum.c#3 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumext.h#3 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumioctl.c#3 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumobj.h#3 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumutil.c#2 integrate .. //depot/projects/gdb/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/gdb/sys/dev/zs/z8530var.h#2 integrate .. //depot/projects/gdb/sys/dev/zs/zs.c#7 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs.h#3 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs_devs.c#4 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/gdb/sys/fs/hpfs/hpfs.h#2 integrate .. //depot/projects/gdb/sys/fs/hpfs/hpfs_hash.c#3 integrate .. //depot/projects/gdb/sys/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/gdb/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/gdb/sys/fs/msdosfs/msdosfs_vfsops.c#5 integrate .. //depot/projects/gdb/sys/fs/msdosfs/msdosfsmount.h#3 integrate .. //depot/projects/gdb/sys/fs/ntfs/ntfs.h#2 integrate .. //depot/projects/gdb/sys/fs/ntfs/ntfs_ihash.c#3 integrate .. //depot/projects/gdb/sys/fs/ntfs/ntfs_ihash.h#2 integrate .. //depot/projects/gdb/sys/fs/ntfs/ntfs_inode.h#2 integrate .. //depot/projects/gdb/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/gdb/sys/fs/specfs/spec_vnops.c#9 integrate .. //depot/projects/gdb/sys/fs/udf/udf.h#2 integrate .. //depot/projects/gdb/sys/geom/gate/g_gate.c#5 integrate .. //depot/projects/gdb/sys/geom/geom.h#4 integrate .. //depot/projects/gdb/sys/geom/geom_ctl.c#3 integrate .. //depot/projects/gdb/sys/geom/geom_dev.c#4 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_drive.c#2 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_plex.c#2 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_volume.c#2 integrate .. //depot/projects/gdb/sys/gnu/ext2fs/ext2_extern.h#3 integrate .. //depot/projects/gdb/sys/gnu/ext2fs/ext2_ihash.c#3 integrate .. //depot/projects/gdb/sys/gnu/ext2fs/ext2_mount.h#3 integrate .. //depot/projects/gdb/sys/gnu/ext2fs/ext2_vfsops.c#5 integrate .. //depot/projects/gdb/sys/gnu/ext2fs/inode.h#3 integrate .. //depot/projects/gdb/sys/i386/acpica/acpi_asus.c#5 integrate .. //depot/projects/gdb/sys/i386/acpica/acpi_machdep.c#7 integrate .. //depot/projects/gdb/sys/i386/bios/apm.c#4 integrate .. //depot/projects/gdb/sys/i386/bios/apm.h#2 integrate .. //depot/projects/gdb/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/gdb/sys/i386/i386/elan-mmcr.c#7 integrate .. //depot/projects/gdb/sys/i386/i386/geode.c#4 integrate .. //depot/projects/gdb/sys/i386/i386/machdep.c#10 integrate .. //depot/projects/gdb/sys/i386/i386/mem.c#5 integrate .. //depot/projects/gdb/sys/i386/i386/perfmon.c#3 integrate .. //depot/projects/gdb/sys/i386/i386/pmap.c#8 integrate .. //depot/projects/gdb/sys/i386/include/cpu.h#3 integrate .. //depot/projects/gdb/sys/i386/include/pmap.h#7 integrate .. //depot/projects/gdb/sys/i386/isa/mse.c#5 integrate .. //depot/projects/gdb/sys/i386/isa/pcvt/pcvt_drv.c#6 integrate .. //depot/projects/gdb/sys/i386/isa/pcvt/pcvt_ext.c#4 integrate .. //depot/projects/gdb/sys/i386/isa/pcvt/pcvt_hdr.h#6 integrate .. //depot/projects/gdb/sys/i386/isa/pcvt/pcvt_kbd.c#4 integrate .. //depot/projects/gdb/sys/i386/isa/pcvt/pcvt_sup.c#3 integrate .. //depot/projects/gdb/sys/i386/isa/spic.c#5 integrate .. //depot/projects/gdb/sys/i386/isa/spkr.c#3 integrate .. //depot/projects/gdb/sys/i4b/driver/i4b_ctl.c#3 integrate .. //depot/projects/gdb/sys/i4b/driver/i4b_rbch.c#3 integrate .. //depot/projects/gdb/sys/i4b/driver/i4b_tel.c#3 integrate .. //depot/projects/gdb/sys/i4b/driver/i4b_trace.c#3 integrate .. //depot/projects/gdb/sys/i4b/layer4/i4b_i4bdrv.c#3 integrate .. //depot/projects/gdb/sys/ia64/ia64/mem.c#5 integrate .. //depot/projects/gdb/sys/ia64/ia64/ssc.c#5 integrate .. //depot/projects/gdb/sys/ia64/ia64/sscdisk.c#3 integrate .. //depot/projects/gdb/sys/ia64/include/cpu.h#3 integrate .. //depot/projects/gdb/sys/isa/psm.c#6 integrate .. //depot/projects/gdb/sys/isa/vga_isa.c#4 integrate .. //depot/projects/gdb/sys/isofs/cd9660/cd9660_node.c#3 integrate .. //depot/projects/gdb/sys/isofs/cd9660/cd9660_node.h#3 integrate .. //depot/projects/gdb/sys/isofs/cd9660/cd9660_vfsops.c#4 integrate .. //depot/projects/gdb/sys/isofs/cd9660/iso.h#3 integrate .. //depot/projects/gdb/sys/kern/kern_conf.c#6 integrate .. //depot/projects/gdb/sys/kern/kern_descrip.c#9 integrate .. //depot/projects/gdb/sys/kern/kern_physio.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:04:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 09F7316A4D0; Wed, 16 Jun 2004 23:04:01 +0000 (GMT) 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 C2A8216A4CE for ; Wed, 16 Jun 2004 23:04:00 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BCF7243D1F for ; Wed, 16 Jun 2004 23:04:00 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN3xDL071041 for ; Wed, 16 Jun 2004 23:03:59 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN3xlw071038 for perforce@freebsd.org; Wed, 16 Jun 2004 23:03:59 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:03:59 GMT Message-Id: <200406162303.i5GN3xlw071038@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 55110 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, 16 Jun 2004 23:04:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=55110 Change 55110 by marcel@marcel_nfs on 2004/06/16 23:03:17 Missed this one in the IFC @55104 Affected files ... .. //depot/projects/gdb/sys/dev/gfb/gfb_pci.c#4 integrate Differences ... ==== //depot/projects/gdb/sys/dev/gfb/gfb_pci.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/gfb/gfb_pci.c,v 1.11 2004/03/17 17:50:33 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/gfb/gfb_pci.c,v 1.12 2004/06/16 09:46:44 phk Exp $"); #include "opt_fb.h" @@ -228,7 +228,7 @@ #ifdef FB_INSTALL_CDEV int -pcigfb_open(dev_t dev, int flag, int mode, struct thread *td) +pcigfb_open(struct cdev *dev, int flag, int mode, struct thread *td) { struct gfb_softc *sc; int error; @@ -245,7 +245,7 @@ } int -pcigfb_close(dev_t dev, int flag, int mode, struct thread *td) +pcigfb_close(struct cdev *dev, int flag, int mode, struct thread *td) { struct gfb_softc *sc; @@ -254,7 +254,7 @@ } int -pcigfb_read(dev_t dev, struct uio *uio, int flag) +pcigfb_read(struct cdev *dev, struct uio *uio, int flag) { struct gfb_softc *sc; @@ -263,7 +263,7 @@ } int -pcigfb_write(dev_t dev, struct uio *uio, int flag) +pcigfb_write(struct cdev *dev, struct uio *uio, int flag) { struct gfb_softc *sc; @@ -272,7 +272,7 @@ } int -pcigfb_ioctl(dev_t dev, u_long cmd, caddr_t arg, int flag, struct thread *td) +pcigfb_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td) { struct gfb_softc *sc; @@ -281,7 +281,7 @@ } int -pcigfb_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +pcigfb_mmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { struct gfb_softc *sc; From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:05:12 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 57ED216A4CF; Wed, 16 Jun 2004 23:05:12 +0000 (GMT) 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 3172E16A4D0 for ; Wed, 16 Jun 2004 23:05:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 136AD43D53 for ; Wed, 16 Jun 2004 23:05:12 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN51oS071088 for ; Wed, 16 Jun 2004 23:05:01 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN51t3071085 for perforce@freebsd.org; Wed, 16 Jun 2004 23:05:01 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:05:01 GMT Message-Id: <200406162305.i5GN51t3071085@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 55111 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, 16 Jun 2004 23:05:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=55111 Change 55111 by marcel@marcel_nfs on 2004/06/16 23:04:35 Define lwpid_t as an int32_t. Affected files ... .. //depot/projects/gdb/sys/sys/_types.h#4 edit Differences ... ==== //depot/projects/gdb/sys/sys/_types.h#4 (text+ko) ==== @@ -43,6 +43,7 @@ typedef __int64_t __id_t; /* can hold a gid_t, pid_t, or uid_t */ typedef __uint32_t __ino_t; /* inode number */ typedef long __key_t; /* IPC key (for Sys V IPC) */ +typedef __int32_t __lwpid_t; /* Thread ID (a.k.a. LWP) */ typedef __uint16_t __mode_t; /* permissions */ typedef int __nl_item; typedef __uint16_t __nlink_t; /* link count */ From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:06:05 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFF2816A4D0; Wed, 16 Jun 2004 23:06:04 +0000 (GMT) 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 AAC1D16A4CE for ; Wed, 16 Jun 2004 23:06:04 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4F3743D58 for ; Wed, 16 Jun 2004 23:06:04 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN637N071195 for ; Wed, 16 Jun 2004 23:06:03 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN62YM071192 for perforce@freebsd.org; Wed, 16 Jun 2004 23:06:02 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:06:02 GMT Message-Id: <200406162306.i5GN62YM071192@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 55112 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, 16 Jun 2004 23:06:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=55112 Change 55112 by marcel@marcel_nfs on 2004/06/16 23:05:20 Retype td_tid from an int to a lwpid_t. Affected files ... .. //depot/projects/gdb/sys/sys/proc.h#17 edit Differences ... ==== //depot/projects/gdb/sys/sys/proc.h#17 (text+ko) ==== @@ -264,7 +264,7 @@ TAILQ_HEAD(, selinfo) td_selq; /* (p) List of selinfos. */ struct sleepqueue *td_sleepqueue; /* (k) Associated sleep queue. */ struct turnstile *td_turnstile; /* (k) Associated turnstile. */ - int td_tid; /* (b) Thread ID. */ + lwpid_t td_tid; /* (b) Thread ID. */ /* Cleared during fork1() or thread_sched_upcall(). */ #define td_startzero td_flags @@ -903,7 +903,7 @@ int thread_export_context(struct thread *td, int willexit); void thread_free(struct thread *td); void thread_link(struct thread *td, struct ksegrp *kg); -int thread_new_tid(void); +lwpid_t thread_new_tid(void); void thread_reap(void); struct thread *thread_schedule_upcall(struct thread *td, struct kse_upcall *ku); int thread_single(int how); From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:06:06 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D26BC16A4D1; Wed, 16 Jun 2004 23:06:05 +0000 (GMT) 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 41B6716A4F9 for ; Wed, 16 Jun 2004 23:06:05 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1BAC843D53 for ; Wed, 16 Jun 2004 23:06:05 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN64AJ071215 for ; Wed, 16 Jun 2004 23:06:04 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN63jZ071212 for perforce@freebsd.org; Wed, 16 Jun 2004 23:06:03 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:06:03 GMT Message-Id: <200406162306.i5GN63jZ071212@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 55114 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, 16 Jun 2004 23:06:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=55114 Change 55114 by marcel@marcel_nfs on 2004/06/16 23:05:59 Define lwpid_t (if not already defined). Affected files ... .. //depot/projects/gdb/sys/sys/types.h#7 edit Differences ... ==== //depot/projects/gdb/sys/sys/types.h#7 (text+ko) ==== @@ -180,6 +180,11 @@ #define _KEY_T_DECLARED #endif +#ifndef _LWPID_T_DECLARED +typedef __lwpid_t lwpid_t; /* Thread ID (a.k.a. LWP) */ +#define _LWPID_T_DECLARED +#endif + #ifndef _MODE_T_DECLARED typedef __mode_t mode_t; /* permissions */ #define _MODE_T_DECLARED From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:07:06 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A9E216A4D0; Wed, 16 Jun 2004 23:07:06 +0000 (GMT) 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 2509A16A4CE for ; Wed, 16 Jun 2004 23:07:06 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 080E743D2F for ; Wed, 16 Jun 2004 23:07:06 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN75jF071267 for ; Wed, 16 Jun 2004 23:07:05 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN75C0071263 for perforce@freebsd.org; Wed, 16 Jun 2004 23:07:05 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:07:05 GMT Message-Id: <200406162307.i5GN75C0071263@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 55115 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, 16 Jun 2004 23:07:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=55115 Change 55115 by marcel@marcel_nfs on 2004/06/16 23:06:44 Define prgregset_t. Affected files ... .. //depot/projects/gdb/sys/sys/procfs.h#2 edit Differences ... ==== //depot/projects/gdb/sys/sys/procfs.h#2 (text+ko) ==== @@ -65,6 +65,7 @@ gregset_t pr_reg; /* General purpose registers (1) */ } prstatus_t; +typedef gregset_t prgregset_t; typedef fpregset_t prfpregset_t; #define PRFNAMESZ 16 /* Maximum command length saved */ From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:09:25 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 411FC16A4D0; Wed, 16 Jun 2004 23:09:25 +0000 (GMT) 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 1B98F16A4CE for ; Wed, 16 Jun 2004 23:09:25 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1586F43D58 for ; Wed, 16 Jun 2004 23:09:25 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GN98pg071308 for ; Wed, 16 Jun 2004 23:09:08 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GN98Jk071305 for perforce@freebsd.org; Wed, 16 Jun 2004 23:09:08 GMT (envelope-from marcel@freebsd.org) Date: Wed, 16 Jun 2004 23:09:08 GMT Message-Id: <200406162309.i5GN98Jk071305@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 55116 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, 16 Jun 2004 23:09:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=55116 Change 55116 by marcel@marcel_nfs on 2004/06/16 23:08:25 o Add a skeletal libthread_db. o Add proc_service.h. Affected files ... .. //depot/projects/gdb/include/proc_service.h#1 add .. //depot/projects/gdb/lib/libthread_db/Makefile#1 add .. //depot/projects/gdb/lib/libthread_db/td_init.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_event_addr.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_event_getmsg.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_map_id2thr.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_map_lwp2thr.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_new.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_set_event.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_ta_thr_iter.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_event_enable.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_get_info.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_getfpregs.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_getgregs.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_setfpregs.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_setgregs.c#1 add .. //depot/projects/gdb/lib/libthread_db/td_thr_validate.c#1 add .. //depot/projects/gdb/lib/libthread_db/thread_db.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Jun 16 23:25:42 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 497EA16A4E2; Wed, 16 Jun 2004 23:25:40 +0000 (GMT) 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 2B86416A547 for ; Wed, 16 Jun 2004 23:25:40 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0749443D49 for ; Wed, 16 Jun 2004 23:25:40 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5GNNQ89075137 for ; Wed, 16 Jun 2004 23:23:26 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5GNNQHE075134 for perforce@freebsd.org; Wed, 16 Jun 2004 23:23:26 GMT (envelope-from jmallett@freebsd.org) Date: Wed, 16 Jun 2004 23:23:26 GMT Message-Id: <200406162323.i5GNNQHE075134@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 55117 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, 16 Jun 2004 23:25:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=55117 Change 55117 by jmallett@jmallett_oingo on 2004/06/16 23:22:48 Chase BU. Don't know if this works 100%. Try to take blame off obrien too. It builds now at least. Affected files ... .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#3 edit .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#8 edit Differences ... ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/as/powerpc-freebsd/config.h,v 1.5 2002/10/12 03:55:09 obrien Exp $ */ +/* $FreeBSD$ */ #define HAVE_DECL_GETOPT 1 @@ -30,9 +30,6 @@ /* Define to `long' if doesn't define. */ /* #undef off_t */ -/* Define if you need to in order for stat and other things to work. */ -/* #undef _POSIX_SOURCE */ - /* Define to `unsigned' if doesn't define. */ /* #undef size_t */ @@ -151,7 +148,7 @@ #define PACKAGE "gas" /* Version number of package */ -/* #define VERSION "2.13" */ +/* #define VERSION "2.15" */ /* Define if defaulting to ELF on SCO 5. */ /* #undef SCO_ELF */ @@ -164,9 +161,20 @@ /* Define as 1 if big endian. */ /* #undef TARGET_BYTES_BIG_ENDIAN */ +/* Default CPU for MIPS targets. */ +#define MIPS_CPU_STRING_DEFAULT "from-abi" +/* Allow use of E_MIPS_ABI_O32 on MIPS targets. */ +#define USE_E_MIPS_ABI_O32 1 + +/* Generate 64-bit code by default on MIPS targets. */ +#define MIPS_DEFAULT_64BIT 1 + +/* Choose a default ABI for MIPS targets. */ +#define MIPS_DEFAULT_ABI N32_ABI + /* Default architecture. */ -/* #undef DEFAULT_ARCH */ +#define DEFAULT_ARCH "mips3" /* Using cgen code? */ /* #undef USING_CGEN */ @@ -214,7 +222,7 @@ /* #undef USE_EMULATIONS */ /* Supported emulations. */ -#define EMULATIONS +#define EMULATIONS /* Default emulation. */ #define DEFAULT_EMULATION "" @@ -226,19 +234,19 @@ #define BFD_ASSEMBLER 1 /* Target alias. */ -#define TARGET_ALIAS "mips-freebsd-freebsd5.0" +/* #define TARGET_ALIAS "mips-jmallet-freebsd5" */ /* Canonical target. */ -#define TARGET_CANONICAL "mips-freebsd-freebsd5.0" +/* #define TARGET_CANONICAL "mips-jmallett-freebsd5" */ /* Target CPU. */ -#define TARGET_CPU "mips" +/* #define TARGET_CPU "mips" */ /* Target vendor. */ -#define TARGET_VENDOR "freebsd" +/* #define TARGET_VENDOR "jmallett" */ /* Target OS. */ -#define TARGET_OS "freebsd5.0" +#define TARGET_OS "freebsd5" /* Define if you have the stpcpy function */ #define HAVE_STPCPY 1 @@ -275,4 +283,3 @@ /* Define if errno is not declared in system header files. */ /* #undef NEED_DECLARATION_ERRNO */ - ==== //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#8 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.powerpc,v 1.11 2002/05/17 03:10:33 obrien Exp $ +# $FreeBSD$ -TARGET_TUPLE?= mips-jmallett-freebsd +TARGET_TUPLE= mips-jmallett-freebsd .if ${TARGET_ARCH} == "mips" DEFAULT_EMULATION= elf32btsmip From owner-p4-projects@FreeBSD.ORG Thu Jun 17 01:02:10 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDF3D16A4D1; Thu, 17 Jun 2004 01:02:09 +0000 (GMT) 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 8C0EE16A4CE; Thu, 17 Jun 2004 01:02:09 +0000 (GMT) Received: from exchhz01.viatech.com.cn (ip-40-162-97-218.anlai.com [218.97.162.40]) by mx1.FreeBSD.org (Postfix) with ESMTP id B327343D46; Thu, 17 Jun 2004 01:02:04 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from freebsd.org (DAVIDWNT [10.4.1.99]) by exchhz01.viatech.com.cn with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id NAMYWCR4; Thu, 17 Jun 2004 09:02:08 +0800 Message-ID: <40D0EE2F.8030204@freebsd.org> Date: Thu, 17 Jun 2004 09:04:47 +0800 From: David Xu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b) Gecko/20030723 Thunderbird/0.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Marcel Moolenaar References: <200406162309.i5GN98Jk071305@repoman.freebsd.org> In-Reply-To: <200406162309.i5GN98Jk071305@repoman.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: Perforce Change Reviews Subject: Re: PERFORCE change 55116 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, 17 Jun 2004 01:02:10 -0000 Marcel Moolenaar wrote: > http://perforce.freebsd.org/chv.cgi?CH=55116 > > Change 55116 by marcel@marcel_nfs on 2004/06/16 23:08:25 > > o Add a skeletal libthread_db. > o Add proc_service.h. > > Affected files ... > > .. //depot/projects/gdb/include/proc_service.h#1 add > .. //depot/projects/gdb/lib/libthread_db/Makefile#1 add > .. //depot/projects/gdb/lib/libthread_db/td_init.c#1 add > .. //depot/projects/gdb/lib/libthread_db/td_ta_event_addr.c#1 add > .. //depot/projects/gdb/lib/libthread_db/thread_db.h#1 add > > Differences ... > Can you tell me what is this ? do you have debugger code for KSE ready ? David Xu From owner-p4-projects@FreeBSD.ORG Thu Jun 17 01:24:14 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C0BE16A4D0; Thu, 17 Jun 2004 01:24:14 +0000 (GMT) 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 0F17116A4CE for ; Thu, 17 Jun 2004 01:24:14 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0833243D46 for ; Thu, 17 Jun 2004 01:24:14 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H1NusS008430 for ; Thu, 17 Jun 2004 01:23:56 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H1NuxY008427 for perforce@freebsd.org; Thu, 17 Jun 2004 01:23:56 GMT (envelope-from marcel@freebsd.org) Date: Thu, 17 Jun 2004 01:23:56 GMT Message-Id: <200406170123.i5H1NuxY008427@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 55123 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, 17 Jun 2004 01:24:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=55123 Change 55123 by marcel@marcel_nfs on 2004/06/17 01:23:21 o The psaddr_t type is supposed to be defined in . Move it there. o Properly declare struct ps_prochandle as an opaque structure. The implemention is defined by the provider of the service, not in this header. o Fix the prototype of ps_plog(). Affected files ... .. //depot/projects/gdb/include/proc_service.h#2 edit .. //depot/projects/gdb/sys/sys/procfs.h#3 edit Differences ... ==== //depot/projects/gdb/include/proc_service.h#2 (text+ko) ==== @@ -42,11 +42,8 @@ PS_NOSYM /* Symbol not found. */ } ps_err_e; -struct ps_prochandle { -}; +struct ps_prochandle; /* Opaque type. Defined by the implementor. */ -typedef void *psaddr_t; /* An address in the target process. */ - __BEGIN_DECLS ps_err_e ps_lcontinue(struct ps_prochandle *, lwpid_t); ps_err_e ps_lgetfpregs(struct ps_prochandle *, lwpid_t, prfpregset_t *); @@ -60,7 +57,7 @@ ps_err_e ps_pdwrite(struct ps_prochandle *, psaddr_t, const void *, size_t); ps_err_e ps_pglobal_lookup(struct ps_prochandle *, const char *, const char *, psaddr_t *); -void ps_plog(const char *); +void ps_plog(const char *, ...); ps_err_e ps_pstop(struct ps_prochandle *); ps_err_e ps_ptread(struct ps_prochandle *, psaddr_t, void *, size_t); ps_err_e ps_ptwrite(struct ps_prochandle *, psaddr_t, const void *, size_t); ==== //depot/projects/gdb/sys/sys/procfs.h#3 (text+ko) ==== @@ -80,4 +80,6 @@ char pr_psargs[PRARGSZ+1]; /* Arguments, null terminated (1) */ } prpsinfo_t; +typedef void *psaddr_t; /* An address in the target process. */ + #endif /* _SYS_PROCFS_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Jun 17 02:30:53 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 65DCB16A4D0; Thu, 17 Jun 2004 02:30:53 +0000 (GMT) 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 3743616A4CE for ; Thu, 17 Jun 2004 02:30:53 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2E84543D5F for ; Thu, 17 Jun 2004 02:30:53 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H2Uqsw021778 for ; Thu, 17 Jun 2004 02:30:53 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H2UHo6021715 for perforce@freebsd.org; Thu, 17 Jun 2004 02:30:17 GMT (envelope-from peter@freebsd.org) Date: Thu, 17 Jun 2004 02:30:17 GMT Message-Id: <200406170230.i5H2UHo6021715@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 55125 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, 17 Jun 2004 02:30:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=55125 Change 55125 by peter@peter_hammer on 2004/06/17 02:29:30 IFC @55122 Affected files ... .. //depot/projects/hammer/bin/test/TEST.README#2 integrate .. //depot/projects/hammer/contrib/binutils/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/binutils/MAINTAINERS#3 integrate .. //depot/projects/hammer/contrib/binutils/Makefile.def#1 branch .. //depot/projects/hammer/contrib/binutils/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/Makefile.tpl#1 branch .. //depot/projects/hammer/contrib/binutils/README-maintainer-mode#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ChangeLog#5 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ChangeLog-0001#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ChangeLog-0203#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/Makefile.am#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/Makefile.in#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/acinclude.m4#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aclocal.m4#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aout-arm.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aout-encap.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aout-target.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aoutf1.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/aoutx.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/archive.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/archive64.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/archures.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/bfd-in.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/bfd-in2.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/bfd.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/bfdio.c#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/bfdwin.c#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/binary.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/bout.c#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/cache.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-alpha.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-arm.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-aux.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-i386.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-ia64.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-ppc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-rs6000.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff-sparc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coff64-rs6000.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coffcode.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coffgen.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cofflink.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/coffswap.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/config.bfd#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/config.in#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/configure#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/configure.host#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/configure.in#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/corefile.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-alpha.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-arc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-arm.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-i386.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-ia64-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-ia64.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-powerpc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-rs6000.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-s390.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/cpu-sparc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/dep-in.sed#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/ChangeLog-9103#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/doc/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/Makefile.in#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/aoutx.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/archive.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/archures.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/bfd.texinfo#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/bfdint.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/bfdio.texi#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/doc/bfdt.texi#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/bfdwin.texi#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/doc/cache.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/chew.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/coffcode.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/core.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/fdl.texi#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/doc/format.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/hash.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/init.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/libbfd.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/linker.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/mmo.texi#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/doc/opncls.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/reloc.texi#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/section.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/syms.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/doc/targets.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/dwarf1.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/dwarf2.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ecoff.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ecofflink.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ecoffswap.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/efi-app-ia32.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/efi-app-ia64.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf-bfd.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf-eh-frame.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf-strtab.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-arc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-arm.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-gen.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-i386.c#7 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-ppc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-s390.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf32-sparc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-alpha.c#6 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-gen.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-ppc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-ppc.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-s390.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-sparc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elf64-x86-64.c#5 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfarm-nabi.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfarm-oabi.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfcode.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfcore.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elflink.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfxx-ia64.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/elfxx-target.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/format.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/freebsd.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/gen-aout.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/genlink.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/hash.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/i386aout.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/i386linux.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ieee.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ihex.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/init.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libaout.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libbfd-in.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libbfd.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libbfd.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libcoff-in.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libcoff.h#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libecoff.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libieee.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/libpei.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/linker.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/merge.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/netbsd-core.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/netbsd.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/opncls.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/osf-core.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/pe-arm.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/pe-i386.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/peXXigen.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/peicode.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/po/BLD-POTFILES.in#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/po/Make-in#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/po/SRC-POTFILES.in#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/po/bfd.pot#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ppcboot.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/ptrace-core.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/reloc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/reloc16.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/rs6000-core.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/sco5-core.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/section.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/simple.c#1 branch .. //depot/projects/hammer/contrib/binutils/bfd/sparclinux.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/sparcnetbsd.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/srec.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/stabs.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/sunos.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/syms.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/sysdep.h#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/targets.c#4 integrate .. //depot/projects/hammer/contrib/binutils/bfd/tekhex.c#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/trad-core.c#2 integrate .. //depot/projects/hammer/contrib/binutils/bfd/version.h#5 integrate .. //depot/projects/hammer/contrib/binutils/bfd/xcoff-target.h#3 integrate .. //depot/projects/hammer/contrib/binutils/bfd/xcofflink.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/ChangeLog#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/ChangeLog-0001#1 branch .. //depot/projects/hammer/contrib/binutils/binutils/ChangeLog-0203#1 branch .. //depot/projects/hammer/contrib/binutils/binutils/ChangeLog-9197#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/ChangeLog-9899#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/MAINTAINERS#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/NEWS#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/README#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/acinclude.m4#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/aclocal.m4#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/addr2line.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/ar.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/arlex.l#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/arparse.y#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/arsup.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/arsup.h#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/binemul.c#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/binemul.h#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/bucomm.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/bucomm.h#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/budbg.h#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/budemang.c#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/budemang.h#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/coffdump.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/coffgrok.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/coffgrok.h#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/config.in#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/configure#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/configure.in#5 integrate .. //depot/projects/hammer/contrib/binutils/binutils/cxxfilt.c#1 branch .. //depot/projects/hammer/contrib/binutils/binutils/debug.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/debug.h#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/deflex.l#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/dep-in.sed#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/dlltool.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/dlltool.h#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/dllwrap.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/Makefile.am#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/addr2line.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/ar.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/binutils.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/cxxfilt.man#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/dlltool.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/fdl.texi#1 branch .. //depot/projects/hammer/contrib/binutils/binutils/doc/nm.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/objcopy.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/objdump.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/ranlib.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/readelf.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/size.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/strings.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/doc/strip.1#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/filemode.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/ieee.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/nm.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/objcopy.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/objdump.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/po/Make-in#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/po/POTFILES.in#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/po/binutils.pot#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/prdbg.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rclex.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rclex.l#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rdcoff.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rddbg.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/readelf.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rename.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/resbin.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/rescoff.c#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/resrc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/size.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/srconv.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/stabs.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/strings.c#4 integrate .. //depot/projects/hammer/contrib/binutils/binutils/sysdump.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/unwind-ia64.c#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/unwind-ia64.h#3 integrate .. //depot/projects/hammer/contrib/binutils/binutils/version.c#2 integrate .. //depot/projects/hammer/contrib/binutils/binutils/wrstabs.c#3 integrate .. //depot/projects/hammer/contrib/binutils/config-ml.in#3 integrate .. //depot/projects/hammer/contrib/binutils/config.guess#3 integrate .. //depot/projects/hammer/contrib/binutils/config.if#2 integrate .. //depot/projects/hammer/contrib/binutils/config.sub#3 integrate .. //depot/projects/hammer/contrib/binutils/configure#3 integrate .. //depot/projects/hammer/contrib/binutils/configure.in#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/CONTRIBUTORS#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/ChangeLog#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/ChangeLog-0203#1 branch .. //depot/projects/hammer/contrib/binutils/gas/ChangeLog-9295#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/NEWS#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/README#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/acinclude.m4#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/aclocal.m4#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/app.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/as.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/as.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/atof-generic.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/bignum-copy.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/bignum.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/bit_fix.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/cgen.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/cgen.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/cond.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config.in#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-aout.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-aout.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-coff.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-coff.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-ecoff.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-ecoff.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-elf.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-elf.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-ieee.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-ieee.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/obj-multi.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-alpha.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-alpha.h#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-arc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-arc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-arm.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-arm.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-i386.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-i386.h#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-ia64.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-ia64.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-ppc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-ppc.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-s390.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-s390.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-sparc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/tc-sparc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/te-generic.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/te-pe.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/config/te-ppcnw.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/configure#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/configure.in#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/dep-in.sed#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/depend.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/all.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/as.1#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/as.texinfo#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-alpha.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-arm.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-i386.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-ia64.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-ppc.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-sh.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/c-sparc.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/gasver.texi#1 branch .. //depot/projects/hammer/contrib/binutils/gas/doc/h8.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/doc/internals.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/dw2gencfi.c#1 branch .. //depot/projects/hammer/contrib/binutils/gas/dw2gencfi.h#1 branch .. //depot/projects/hammer/contrib/binutils/gas/dwarf2dbg.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/dwarf2dbg.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/ecoff.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/ecoff.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/ehopt.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/emul.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/expr.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/expr.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/flonum-copy.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/flonum-mult.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/flonum.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/frags.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/frags.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/hash.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/hash.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/input-file.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/input-file.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/input-scrub.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/itbl-ops.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/itbl-ops.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/listing.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/listing.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/macro.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/macro.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/messages.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/obj.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/output-file.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/output-file.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/po/Make-in#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/po/POTFILES.in#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/po/gas.pot#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/read.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/read.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/sb.c#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/sb.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/stabs.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/subsegs.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/subsegs.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/symbols.c#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/symbols.h#3 integrate .. //depot/projects/hammer/contrib/binutils/gas/tc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/gas/write.c#4 integrate .. //depot/projects/hammer/contrib/binutils/gas/write.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/ChangeLog#4 integrate .. //depot/projects/hammer/contrib/binutils/include/ansidecl.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/aout/ChangeLog#2 integrate .. //depot/projects/hammer/contrib/binutils/include/aout/aout64.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/aout/stab.def#2 integrate .. //depot/projects/hammer/contrib/binutils/include/bfdlink.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/arm.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/ecoff.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/internal.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/pe.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/sh.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/coff/ti.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/demangle.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/dis-asm.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/ChangeLog-9103#1 branch .. //depot/projects/hammer/contrib/binutils/include/elf/arm.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/common.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/dwarf2.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/external.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/frv.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/h8.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/i370.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/ia64.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/internal.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/ip2k.h#1 branch .. //depot/projects/hammer/contrib/binutils/include/elf/iq2000.h#1 branch .. //depot/projects/hammer/contrib/binutils/include/elf/m32r.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/m68hc11.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/mips.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/mmix.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/mn10300.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/msp430.h#1 branch .. //depot/projects/hammer/contrib/binutils/include/elf/ppc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/ppc64.h#1 branch .. //depot/projects/hammer/contrib/binutils/include/elf/reloc-macros.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/s390.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/sh.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/sparc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/v850.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/x86-64.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/xstormy16.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/elf/xtensa.h#1 branch .. //depot/projects/hammer/contrib/binutils/include/fibheap.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/floatformat.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/hashtab.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/libiberty.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/obstack.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/ChangeLog#3 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/ChangeLog-9103#1 branch .. //depot/projects/hammer/contrib/binutils/include/opcode/alpha.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/arc.h#3 branch .. //depot/projects/hammer/contrib/binutils/include/opcode/cgen.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/convex.h#4 branch .. //depot/projects/hammer/contrib/binutils/include/opcode/i386.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/ia64.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/np1.h#3 branch .. //depot/projects/hammer/contrib/binutils/include/opcode/pn.h#3 branch .. //depot/projects/hammer/contrib/binutils/include/opcode/ppc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/s390.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/opcode/sparc.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/partition.h#3 integrate .. //depot/projects/hammer/contrib/binutils/include/safe-ctype.h#2 integrate .. //depot/projects/hammer/contrib/binutils/include/splay-tree.h#3 integrate .. //depot/projects/hammer/contrib/binutils/install-sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ChangeLog#5 integrate .. //depot/projects/hammer/contrib/binutils/ld/ChangeLog-0001#1 branch .. //depot/projects/hammer/contrib/binutils/ld/ChangeLog-0203#1 branch .. //depot/projects/hammer/contrib/binutils/ld/ChangeLog-9197#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/NEWS#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/README#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/aclocal.m4#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/config.in#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/configure#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/configure.host#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/configure.in#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/configure.tgt#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/deffile.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/deffilep.y#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/dep-in.sed#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/arcelf.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/armelf.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/armelf_linux.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/armelf_oabi.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/armpe.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32_sparc.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32b4300.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32bmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32bmipn32.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32bsmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32ebmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32elmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32l4300.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32lmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32lsmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf32ppc.sh#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64_ia64.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64_s390.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64_sparc.sh#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64alpha.sh#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64bmip.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf64ppc.sh#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf_i386.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf_s390.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/elf_x86_64.sh#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/sh.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/shl.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/shlelf.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emulparams/vanilla.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emulparams/vsta.sh#3 branch .. //depot/projects/hammer/contrib/binutils/ld/emultempl/alphaelf.em#1 branch .. //depot/projects/hammer/contrib/binutils/ld/emultempl/armcoff.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/armelf.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/armelf_oabi.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/elf32.em#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/generic.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/ia64elf.em#1 branch .. //depot/projects/hammer/contrib/binutils/ld/emultempl/linux.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/needrelax.em#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/netbsd.em#1 branch .. //depot/projects/hammer/contrib/binutils/ld/emultempl/pe.em#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/ppc64elf.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/sunos.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/ticoff.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/emultempl/vanilla.em#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/fdl.texi#1 branch .. //depot/projects/hammer/contrib/binutils/ld/gen-doc.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/genscripts.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/h8-doc.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ld.1#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ld.h#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ld.texinfo#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldcref.c#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldctor.c#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldctor.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldemul.c#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldemul.h#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldexp.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldexp.h#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldfile.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldfile.h#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldgram.y#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldint.texinfo#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldlang.c#5 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldlang.h#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldlex.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldlex.l#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldmain.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldmain.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldmisc.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldmisc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldver.c#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldver.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldver.texi#1 branch .. //depot/projects/hammer/contrib/binutils/ld/ldwrite.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/ldwrite.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/lexsup.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/mri.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/mri.h#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/pe-dll.c#4 integrate .. //depot/projects/hammer/contrib/binutils/ld/pe-dll.h#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/scripttempl/armcoff.sc#2 integrate .. //depot/projects/hammer/contrib/binutils/ld/scripttempl/elf.sc#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/scripttempl/pe.sc#3 integrate .. //depot/projects/hammer/contrib/binutils/ld/sysdep.h#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/ChangeLog#4 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/README#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/aclocal.m4#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/argv.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/asprintf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/calloc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/config.in#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/config.table#4 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/configure#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/copysign.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/cp-demangle.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/cp-demangle.h#1 branch .. //depot/projects/hammer/contrib/binutils/libiberty/cp-demint.c#1 branch .. //depot/projects/hammer/contrib/binutils/libiberty/cplus-dem.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/fibheap.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/floatformat.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/functions.texi#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/getcwd.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/getpwd.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/hashtab.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/hex.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/lbasename.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/libiberty.texi#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/lrealpath.c#1 branch .. //depot/projects/hammer/contrib/binutils/libiberty/maint-tool#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/make-relative-prefix.c#1 branch .. //depot/projects/hammer/contrib/binutils/libiberty/md5.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/memchr.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/memcmp.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/memcpy.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/memmove.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/memset.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/physmem.c#1 branch .. //depot/projects/hammer/contrib/binutils/libiberty/regex.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/rename.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/safe-ctype.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/sigsetmask.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/splay-tree.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strcasecmp.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strdup.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strerror.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strncasecmp.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strncmp.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strsignal.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/strstr.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/vasprintf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/vfprintf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/vprintf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/vsprintf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/xatexit.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libiberty/xmalloc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/libtool.m4#2 integrate .. //depot/projects/hammer/contrib/binutils/ltcf-c.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ltcf-cxx.sh#3 integrate .. //depot/projects/hammer/contrib/binutils/ltcf-gcj.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/ltconfig#2 integrate .. //depot/projects/hammer/contrib/binutils/missing#2 integrate .. //depot/projects/hammer/contrib/binutils/mkinstalldirs#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ChangeLog#4 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ChangeLog-0001#1 branch .. //depot/projects/hammer/contrib/binutils/opcodes/ChangeLog-0203#1 branch .. //depot/projects/hammer/contrib/binutils/opcodes/Makefile.am#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/Makefile.in#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/aclocal.m4#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/alpha-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/arc-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/arm-dis.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/arm-opc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-asm.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-asm.in#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-dis.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-dis.in#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-ibld.in#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/cgen.sh#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/config.in#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/configure#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/configure.in#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/dep-in.sed#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/dis-buf.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/dis-init.c#1 branch .. //depot/projects/hammer/contrib/binutils/opcodes/disassemble.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/i386-dis.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-asmtab.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-dis.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-gen.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-ic.tbl#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-a.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-b.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-d.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-f.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-i.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-m.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc-x.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-opc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-raw.tbl#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ia64-waw.tbl#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/po/Make-in#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/po/POTFILES.in#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/po/opcodes.pot#4 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ppc-dis.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/ppc-opc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/s390-dis.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/s390-mkopc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/s390-opc.c#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/s390-opc.txt#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/sh-dis.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/sh-opc.h#2 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/sparc-dis.c#3 integrate .. //depot/projects/hammer/contrib/binutils/opcodes/sparc-opc.c#3 integrate .. //depot/projects/hammer/contrib/binutils/symlink-tree#2 integrate .. //depot/projects/hammer/contrib/pf/authpf/authpf.8#2 integrate .. //depot/projects/hammer/contrib/pf/authpf/authpf.c#3 integrate .. //depot/projects/hammer/contrib/pf/ftp-proxy/ftp-proxy.8#3 integrate .. //depot/projects/hammer/contrib/pf/ftp-proxy/ftp-proxy.c#3 integrate .. //depot/projects/hammer/contrib/pf/ftp-proxy/util.c#2 integrate .. //depot/projects/hammer/contrib/pf/man/pf.4#3 integrate .. //depot/projects/hammer/contrib/pf/man/pf.conf.5#2 integrate .. //depot/projects/hammer/contrib/pf/man/pf.os.5#2 integrate .. //depot/projects/hammer/contrib/pf/man/pflog.4#3 integrate .. //depot/projects/hammer/contrib/pf/man/pfsync.4#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/parse.y#4 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pf_print_state.c#2 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl.8#2 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl.c#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl.h#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_altq.c#4 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_osfp.c#2 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_parser.c#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_parser.h#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_qstats.c#3 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_radix.c#2 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_table.c#3 integrate .. //depot/projects/hammer/contrib/pf/pflogd/pflogd.8#2 integrate .. //depot/projects/hammer/contrib/pf/pflogd/pflogd.c#3 integrate .. //depot/projects/hammer/contrib/pf/pflogd/pflogd.h#1 branch .. //depot/projects/hammer/contrib/pf/pflogd/pidfile.c#3 integrate .. //depot/projects/hammer/contrib/pf/pflogd/privsep.c#1 branch .. //depot/projects/hammer/contrib/pf/pflogd/privsep_fdpass.c#1 branch .. //depot/projects/hammer/gnu/usr.bin/binutils/Makefile#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/Makefile.inc0#9 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/addr2line/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ar/Makefile#3 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/Makefile.inc0#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/alpha-freebsd/config.h#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/amd64-freebsd/config.h#2 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/i386-freebsd/config.h#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/ia64-freebsd/config.h#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/powerpc-freebsd/config.h#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/as/sparc64-freebsd/config.h#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/gdb/Makefile#12 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.alpha#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.amd64#7 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.i386#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.ia64#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.powerpc#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/Makefile.sparc64#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/config.h#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ld/genscripts.sh#3 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile#8 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.alpha#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.i386#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/alpha/bfd.h#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/amd64/bfd.h#2 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/i386/bfd.h#6 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/sparc64/bfd.h#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbinutils/Makefile#8 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbinutils/config.h#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libiberty/Makefile#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libiberty/config.h#3 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libopcodes/Makefile#2 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libopcodes/config.h#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/nm/Makefile#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/objcopy/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/objdump/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/ranlib/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/readelf/Makefile#5 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/size/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/strings/Makefile#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/strip/Makefile#4 integrate .. //depot/projects/hammer/lib/libc/amd64/gen/signalcontext.c#7 integrate .. //depot/projects/hammer/lib/libc/net/getaddrinfo.c#14 integrate .. //depot/projects/hammer/lib/libkvm/kvm_proc.c#17 integrate .. //depot/projects/hammer/sbin/geom/misc/subr.c#2 integrate .. //depot/projects/hammer/sbin/geom/misc/subr.h#2 integrate .. //depot/projects/hammer/sbin/pfctl/Makefile#2 integrate .. //depot/projects/hammer/sbin/pflogd/Makefile#2 integrate .. //depot/projects/hammer/sbin/route/route.c#8 integrate .. //depot/projects/hammer/sbin/routed/defs.h#5 integrate .. //depot/projects/hammer/share/man/man4/acpi.4#24 integrate .. //depot/projects/hammer/share/man/man4/aha.4#6 integrate .. //depot/projects/hammer/share/man/man4/ata.4#9 integrate .. //depot/projects/hammer/share/man/man4/awi.4#6 integrate .. //depot/projects/hammer/share/man/man4/bpf.4#5 integrate .. //depot/projects/hammer/share/man/man4/bridge.4#3 integrate .. //depot/projects/hammer/share/man/man4/ddb.4#5 integrate .. //depot/projects/hammer/share/man/man4/gre.4#4 integrate .. //depot/projects/hammer/share/man/man4/inet.4#8 integrate .. //depot/projects/hammer/share/man/man4/ip.4#11 integrate .. //depot/projects/hammer/share/man/man4/kame.4#3 integrate .. //depot/projects/hammer/share/man/man4/kue.4#6 integrate .. //depot/projects/hammer/share/man/man4/mac_portacl.4#4 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/arl.4#4 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/cx.4#10 integrate .. //depot/projects/hammer/share/man/man4/mpt.4#2 integrate .. //depot/projects/hammer/share/man/man4/ng_one2many.4#7 integrate .. //depot/projects/hammer/share/man/man4/ng_rfc1490.4#4 integrate .. //depot/projects/hammer/share/man/man4/pcm.4#7 integrate .. //depot/projects/hammer/share/man/man4/random.4#5 integrate .. //depot/projects/hammer/share/man/man4/sbp.4#6 integrate .. //depot/projects/hammer/share/man/man4/smb.4#3 integrate .. //depot/projects/hammer/share/man/man4/smp.4#6 integrate .. //depot/projects/hammer/share/man/man4/syscons.4#6 integrate .. //depot/projects/hammer/share/man/man4/tcp.4#8 integrate .. //depot/projects/hammer/share/man/man4/umass.4#12 integrate .. //depot/projects/hammer/share/man/man4/wlan.4#4 integrate .. //depot/projects/hammer/share/man/man5/config.5#4 integrate .. //depot/projects/hammer/share/man/man5/devfs.5#4 integrate .. //depot/projects/hammer/share/man/man5/hosts.lpd.5#3 integrate .. //depot/projects/hammer/share/man/man5/libmap.conf.5#7 integrate .. //depot/projects/hammer/share/man/man5/make.conf.5#19 integrate .. //depot/projects/hammer/share/man/man5/periodic.conf.5#7 integrate .. //depot/projects/hammer/share/man/man5/rc.conf.5#27 integrate .. //depot/projects/hammer/share/man/man5/remote.5#4 integrate .. //depot/projects/hammer/share/man/man5/resolver.5#3 integrate .. //depot/projects/hammer/share/man/man7/build.7#6 integrate .. //depot/projects/hammer/share/man/man7/firewall.7#5 integrate .. //depot/projects/hammer/share/man/man7/hier.7#17 integrate .. //depot/projects/hammer/share/man/man7/ports.7#9 integrate .. //depot/projects/hammer/share/man/man8/diskless.8#7 integrate .. //depot/projects/hammer/share/man/man9/DEVICE_IDENTIFY.9#4 integrate .. //depot/projects/hammer/share/man/man9/VOP_GETPAGES.9#5 integrate .. //depot/projects/hammer/share/man/man9/accept_filter.9#5 integrate .. //depot/projects/hammer/share/man/man9/buf.9#5 integrate .. //depot/projects/hammer/share/man/man9/bus_alloc_resource.9#7 integrate .. //depot/projects/hammer/share/man/man9/cd.9#5 integrate .. //depot/projects/hammer/share/man/man9/copy.9#4 integrate .. //depot/projects/hammer/share/man/man9/device_add_child.9#5 integrate .. //depot/projects/hammer/share/man/man9/ifnet.9#14 integrate .. //depot/projects/hammer/share/man/man9/mac.9#6 integrate .. //depot/projects/hammer/share/man/man9/mutex.9#9 integrate .. //depot/projects/hammer/share/man/man9/pfil.9#5 integrate .. //depot/projects/hammer/share/man/man9/sleepqueue.9#3 integrate .. //depot/projects/hammer/share/man/man9/style.9#14 integrate .. //depot/projects/hammer/share/man/man9/sx.9#6 integrate .. //depot/projects/hammer/share/man/man9/taskqueue.9#4 integrate .. //depot/projects/hammer/share/man/man9/time.9#4 integrate .. //depot/projects/hammer/share/man/man9/timeout.9#5 integrate .. //depot/projects/hammer/share/man/man9/vm_page_alloc.9#3 integrate .. //depot/projects/hammer/share/man/man9/vslock.9#4 integrate .. //depot/projects/hammer/sys/alpha/alpha/mem.c#10 integrate .. //depot/projects/hammer/sys/alpha/alpha/promcons.c#9 integrate .. //depot/projects/hammer/sys/alpha/include/cpu.h#6 integrate .. //depot/projects/hammer/sys/alpha/tlsb/zs_tlsb.c#9 integrate .. //depot/projects/hammer/sys/amd64/amd64/mem.c#22 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#82 integrate .. //depot/projects/hammer/sys/amd64/include/cpu.h#12 integrate .. //depot/projects/hammer/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/hammer/sys/arm/include/bus.h#2 integrate .. //depot/projects/hammer/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/bioscd.c#4 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/biosdisk.c#8 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/libi386.h#6 integrate .. //depot/projects/hammer/sys/boot/pc98/boot2/dinode.h#3 integrate .. //depot/projects/hammer/sys/boot/pc98/boot2/inode.h#3 integrate .. //depot/projects/hammer/sys/boot/pc98/libpc98/biosdisk.c#6 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.c#9 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_ch.c#8 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_pass.c#6 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_pt.c#8 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_sa.c#12 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_ses.c#8 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_target.c#9 integrate .. //depot/projects/hammer/sys/coda/cnode.h#4 integrate .. //depot/projects/hammer/sys/coda/coda.h#3 integrate .. //depot/projects/hammer/sys/coda/coda_fbsd.c#8 integrate .. //depot/projects/hammer/sys/coda/coda_psdev.c#7 integrate .. //depot/projects/hammer/sys/coda/coda_psdev.h#2 integrate .. //depot/projects/hammer/sys/coda/coda_venus.c#6 integrate .. //depot/projects/hammer/sys/coda/coda_venus.h#3 integrate .. //depot/projects/hammer/sys/coda/coda_vfsops.c#6 integrate .. //depot/projects/hammer/sys/coda/coda_vnops.c#7 integrate .. //depot/projects/hammer/sys/coda/coda_vnops.h#3 integrate .. //depot/projects/hammer/sys/compat/linux/linux_stats.c#10 integrate .. //depot/projects/hammer/sys/conf/files#63 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/altq_subr.c#3 integrate .. //depot/projects/hammer/sys/contrib/dev/fla/fla.c#6 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/ip_fil.c#8 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/ip_fil.h#3 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/mlfk_ipl.c#4 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pflog.c#7 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pflog.h#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pfsync.c#7 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pfsync.h#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf.c#8 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_if.c#1 branch .. //depot/projects/hammer/sys/contrib/pf/net/pf_ioctl.c#8 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_norm.c#4 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_osfp.c#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_subr.c#1 branch .. //depot/projects/hammer/sys/contrib/pf/net/pf_table.c#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pfvar.h#4 integrate .. //depot/projects/hammer/sys/contrib/pf/netinet/in4_cksum.c#2 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#23 integrate .. //depot/projects/hammer/sys/dev/aac/aacvar.h#11 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#36 integrate .. //depot/projects/hammer/sys/dev/acpica/acpivar.h#28 integrate .. //depot/projects/hammer/sys/dev/adlink/adlink.c#9 integrate .. //depot/projects/hammer/sys/dev/amr/amr.c#10 integrate .. //depot/projects/hammer/sys/dev/amr/amrvar.h#9 integrate .. //depot/projects/hammer/sys/dev/asr/asr.c#12 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#28 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-tape.c#11 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-tape.h#5 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_core.c#11 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_core.h#2 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_os.c#13 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_reg.h#4 integrate .. //depot/projects/hammer/sys/dev/ciss/ciss.c#24 integrate .. //depot/projects/hammer/sys/dev/ciss/cissvar.h#5 integrate .. //depot/projects/hammer/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/hammer/sys/dev/ctau/if_ct.c#4 integrate .. //depot/projects/hammer/sys/dev/cx/if_cx.c#8 integrate .. //depot/projects/hammer/sys/dev/cy/cy.c#6 integrate .. //depot/projects/hammer/sys/dev/dcons/dcons.c#5 integrate .. //depot/projects/hammer/sys/dev/digi/digi.c#10 integrate .. //depot/projects/hammer/sys/dev/digi/digi.h#3 integrate .. //depot/projects/hammer/sys/dev/drm/drmP.h#9 integrate .. //depot/projects/hammer/sys/dev/drm/drm_drv.h#15 integrate .. //depot/projects/hammer/sys/dev/drm/drm_fops.h#8 integrate .. //depot/projects/hammer/sys/dev/drm/drm_os_freebsd.h#13 integrate .. //depot/projects/hammer/sys/dev/drm/drm_vm.h#9 integrate .. //depot/projects/hammer/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/hammer/sys/dev/fb/vga.c#17 integrate .. //depot/projects/hammer/sys/dev/fb/vgareg.h#3 integrate .. //depot/projects/hammer/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/hammer/sys/dev/firewire/firewirereg.h#16 integrate .. //depot/projects/hammer/sys/dev/firewire/fwdev.c#14 integrate .. //depot/projects/hammer/sys/dev/firewire/fwmem.c#15 integrate .. //depot/projects/hammer/sys/dev/firewire/fwohci.c#24 integrate .. //depot/projects/hammer/sys/dev/gfb/gfb_pci.c#9 integrate .. //depot/projects/hammer/sys/dev/ida/ida.c#11 integrate .. //depot/projects/hammer/sys/dev/ida/idavar.h#5 integrate .. //depot/projects/hammer/sys/dev/iicbus/iic.c#7 integrate .. //depot/projects/hammer/sys/dev/iir/iir.h#8 integrate .. //depot/projects/hammer/sys/dev/iir/iir_ctrl.c#9 integrate .. //depot/projects/hammer/sys/dev/ips/ips.c#10 integrate .. //depot/projects/hammer/sys/dev/ips/ips.h#10 integrate .. //depot/projects/hammer/sys/dev/isp/isp_freebsd.c#13 integrate .. //depot/projects/hammer/sys/dev/joy/joy.c#6 integrate .. //depot/projects/hammer/sys/dev/joy/joyvar.h#2 integrate .. //depot/projects/hammer/sys/dev/kbd/kbd.c#9 integrate .. //depot/projects/hammer/sys/dev/kbd/kbdreg.h#3 integrate .. //depot/projects/hammer/sys/dev/led/led.c#8 integrate .. //depot/projects/hammer/sys/dev/led/led.h#3 integrate .. //depot/projects/hammer/sys/dev/matcd/matcd.c#5 integrate .. //depot/projects/hammer/sys/dev/matcd/matcd_data.h#2 integrate .. //depot/projects/hammer/sys/dev/mcd/mcd.c#10 integrate .. //depot/projects/hammer/sys/dev/mcd/mcdvar.h#4 integrate .. //depot/projects/hammer/sys/dev/md/md.c#32 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx.c#8 integrate .. //depot/projects/hammer/sys/dev/mlx/mlxvar.h#6 integrate .. //depot/projects/hammer/sys/dev/mly/mly.c#11 integrate .. //depot/projects/hammer/sys/dev/mly/mlyvar.h#3 integrate .. //depot/projects/hammer/sys/dev/nmdm/nmdm.c#12 integrate .. //depot/projects/hammer/sys/dev/null/null.c#10 integrate .. //depot/projects/hammer/sys/dev/ofw/ofw_console.c#11 integrate .. //depot/projects/hammer/sys/dev/ofw/openfirmio.c#9 integrate .. //depot/projects/hammer/sys/dev/ofw/openpromio.c#4 integrate .. //depot/projects/hammer/sys/dev/pci/pci.c#21 integrate .. //depot/projects/hammer/sys/dev/pci/pci_user.c#8 integrate .. //depot/projects/hammer/sys/dev/ppbus/lpt.c#7 integrate .. //depot/projects/hammer/sys/dev/ppbus/pcfclock.c#8 integrate .. //depot/projects/hammer/sys/dev/ppbus/ppi.c#7 integrate .. //depot/projects/hammer/sys/dev/ppbus/pps.c#7 integrate .. //depot/projects/hammer/sys/dev/random/randomdev.c#15 integrate .. //depot/projects/hammer/sys/dev/rc/rc.c#9 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#11 integrate .. //depot/projects/hammer/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/hammer/sys/dev/sab/sab.c#14 integrate .. //depot/projects/hammer/sys/dev/scd/scd.c#8 integrate .. //depot/projects/hammer/sys/dev/scd/scdvar.h#2 integrate .. //depot/projects/hammer/sys/dev/si/si.c#9 integrate .. //depot/projects/hammer/sys/dev/sio/sio.c#34 integrate .. //depot/projects/hammer/sys/dev/smbus/smb.c#8 integrate .. //depot/projects/hammer/sys/dev/snp/snp.c#9 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/dsp.c#12 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/mixer.c#7 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/mixer.h#3 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/sndstat.c#6 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/sound.h#10 integrate .. //depot/projects/hammer/sys/dev/streams/streams.c#8 integrate .. //depot/projects/hammer/sys/dev/sx/sx.c#5 integrate .. //depot/projects/hammer/sys/dev/syscons/scvesactl.c#3 integrate .. //depot/projects/hammer/sys/dev/syscons/syscons.c#18 integrate .. //depot/projects/hammer/sys/dev/syscons/syscons.h#3 integrate .. //depot/projects/hammer/sys/dev/syscons/sysmouse.c#7 integrate .. //depot/projects/hammer/sys/dev/tdfx/tdfx_pci.c#12 integrate .. //depot/projects/hammer/sys/dev/tdfx/tdfx_vars.h#4 integrate .. //depot/projects/hammer/sys/dev/twa/twa.h#4 integrate .. //depot/projects/hammer/sys/dev/twa/twa_freebsd.c#5 integrate .. //depot/projects/hammer/sys/dev/twe/twe_compat.h#8 integrate .. //depot/projects/hammer/sys/dev/twe/twe_freebsd.c#13 integrate .. //depot/projects/hammer/sys/dev/uart/uart_bus.h#4 integrate .. //depot/projects/hammer/sys/dev/uart/uart_tty.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/ubser.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/ucom.c#14 integrate .. //depot/projects/hammer/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/hammer/sys/dev/usb/ufm.c#9 integrate .. //depot/projects/hammer/sys/dev/usb/ugen.c#14 integrate .. //depot/projects/hammer/sys/dev/usb/uhid.c#13 integrate .. //depot/projects/hammer/sys/dev/usb/ulpt.c#9 integrate .. //depot/projects/hammer/sys/dev/usb/ums.c#10 integrate .. //depot/projects/hammer/sys/dev/usb/urio.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb.c#11 integrate .. //depot/projects/hammer/sys/dev/usb/uscanner.c#14 integrate .. //depot/projects/hammer/sys/dev/vinum/vinum.c#10 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumext.h#8 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#11 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumobj.h#5 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumutil.c#5 integrate .. //depot/projects/hammer/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/hammer/sys/dev/zs/z8530var.h#2 integrate .. //depot/projects/hammer/sys/dev/zs/zs.c#9 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs.h#7 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_devs.c#5 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_rule.c#6 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#11 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs.h#3 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs_hash.c#3 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs_vfsops.c#8 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_denode.c#11 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_vfsops.c#18 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfsmount.h#6 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs.h#3 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_ihash.c#3 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_ihash.h#2 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_inode.h#3 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_vfsops.c#10 integrate .. //depot/projects/hammer/sys/fs/specfs/spec_vnops.c#20 integrate .. //depot/projects/hammer/sys/fs/udf/udf.h#5 integrate .. //depot/projects/hammer/sys/geom/gate/g_gate.c#2 integrate .. //depot/projects/hammer/sys/geom/geom.h#25 integrate .. //depot/projects/hammer/sys/geom/geom_ctl.c#16 integrate .. //depot/projects/hammer/sys/geom/geom_dev.c#22 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 17 02:38:03 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B19E616A4D0; Thu, 17 Jun 2004 02:38:03 +0000 (GMT) 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 57CDD16A4CE for ; Thu, 17 Jun 2004 02:38:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5171A43D1D for ; Thu, 17 Jun 2004 02:38:03 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H2c2q2023690 for ; Thu, 17 Jun 2004 02:38:02 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H2c21e023687 for perforce@freebsd.org; Thu, 17 Jun 2004 02:38:02 GMT (envelope-from marcel@freebsd.org) Date: Thu, 17 Jun 2004 02:38:02 GMT Message-Id: <200406170238.i5H2c21e023687@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 55126 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, 17 Jun 2004 02:38:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=55126 Change 55126 by marcel@marcel_nfs on 2004/06/17 02:37:04 Constify the register arguments. Affected files ... .. //depot/projects/gdb/lib/libthread_db/td_thr_setfpregs.c#2 edit .. //depot/projects/gdb/lib/libthread_db/td_thr_setgregs.c#2 edit .. //depot/projects/gdb/lib/libthread_db/thread_db.h#2 edit Differences ... ==== //depot/projects/gdb/lib/libthread_db/td_thr_setfpregs.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ #include td_err_e -td_thr_setfpregs(const td_thrhandle_t *th, prfpregset_t *r) +td_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *r) { return (TD_OK); } ==== //depot/projects/gdb/lib/libthread_db/td_thr_setgregs.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ #include td_err_e -td_thr_setgregs(const td_thrhandle_t *th, prgregset_t *r) +td_thr_setgregs(const td_thrhandle_t *th, const prgregset_t *r) { return (TD_OK); } ==== //depot/projects/gdb/lib/libthread_db/thread_db.h#2 (text+ko) ==== @@ -174,8 +174,8 @@ td_err_e td_thr_getfpregs(const td_thrhandle_t *, prfpregset_t *); td_err_e td_thr_getgregs(const td_thrhandle_t *, prgregset_t *); td_err_e td_thr_get_info(const td_thrhandle_t *, td_thrinfo_t *); -td_err_e td_thr_setfpregs(const td_thrhandle_t *, prfpregset_t *); -td_err_e td_thr_setgregs(const td_thrhandle_t *, prgregset_t *); +td_err_e td_thr_setfpregs(const td_thrhandle_t *, const prfpregset_t *); +td_err_e td_thr_setgregs(const td_thrhandle_t *, const prgregset_t *); td_err_e td_thr_validate(const td_thrhandle_t *); __END_DECLS From owner-p4-projects@FreeBSD.ORG Thu Jun 17 02:58:06 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 44AE416A4D0; Thu, 17 Jun 2004 02:58:06 +0000 (GMT) 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 1851C16A4CE for ; Thu, 17 Jun 2004 02:58:06 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1194143D46 for ; Thu, 17 Jun 2004 02:58:06 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H2vQeO027676 for ; Thu, 17 Jun 2004 02:57:26 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H2vQ7W027673 for perforce@freebsd.org; Thu, 17 Jun 2004 02:57:26 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 02:57:26 GMT Message-Id: <200406170257.i5H2vQ7W027673@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 55127 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, 17 Jun 2004 02:58:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=55127 Change 55127 by jmallett@jmallett_oingo on 2004/06/17 02:57:06 Shuffle. Now I only am having problems with gas. Affected files ... .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#4 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#10 edit Differences ... ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#4 (text+ko) ==== @@ -222,10 +222,10 @@ /* #undef USE_EMULATIONS */ /* Supported emulations. */ -#define EMULATIONS +/* #define EMULATIONS */ /* Default emulation. */ -#define DEFAULT_EMULATION "" +/* #define DEFAULT_EMULATION "" */ /* old COFF support? */ /* #undef MANY_SEGMENTS */ ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#10 (text+ko) ==== @@ -1,11 +1,8 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.sparc64,v 1.5 2001/10/14 00:58:59 obrien Exp $ +# $FreeBSD$ + +DEFAULT_VECTOR?= bfd_elf32_tradbigmips_vec -# XXXMIPS We want COFF at some point, to produce stuff for machines -# such as some early SGI ones which need COFF images to boot... -SRCS+= aout32.c \ - coff-mips.c \ - cpu-mips.c \ - ecoff.c \ +SRCS+= cpu-mips.c \ ecofflink.c \ elf32-mips.c \ elf32-target.h \ @@ -18,11 +15,8 @@ elfxx-target.h VECS+= bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec -# XXXMIPS Conditionalie on the MACHINE/MACHINE_ARCH targetry to decide -# whether elf{32,64}_{big,little}mips vectors, but default to the likely -# least-common-denominator for machines we'll support - 32-bit ELF. .if ${TARGET_ARCH} == "mips" -CFLAGS+= -DDEFAULT_VECTOR=bfd_elf32_tradbigmips_vec +CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR} .endif CLEANFILES+= elf32-target.h elf64-target.h From owner-p4-projects@FreeBSD.ORG Thu Jun 17 03:07:48 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6AE7B16A4D0; Thu, 17 Jun 2004 03:07:48 +0000 (GMT) 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 3B7B216A4CE for ; Thu, 17 Jun 2004 03:07:48 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 354CD43D41 for ; Thu, 17 Jun 2004 03:07:48 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H37dBo031060 for ; Thu, 17 Jun 2004 03:07:39 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H37cF7031057 for perforce@freebsd.org; Thu, 17 Jun 2004 03:07:38 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 03:07:38 GMT Message-Id: <200406170307.i5H37cF7031057@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 55128 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, 17 Jun 2004 03:07:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=55128 Change 55128 by jmallett@jmallett_oingo on 2004/06/17 03:07:34 In the GNU build environment include traditional mips stuff for fbsd. Affected files ... .. //depot/projects/mips/contrib/binutils/gas/configure.in#5 edit Differences ... ==== //depot/projects/mips/contrib/binutils/gas/configure.in#5 (text+ko) ==== @@ -383,6 +383,7 @@ mips-*-ultrix*) fmt=ecoff endian=little ;; mips-*-osf*) fmt=ecoff endian=little ;; mips-*-ecoff*) fmt=ecoff ;; + mips-*-freebsd*) fmt=elf em=tmips ;; mips-*-pe*) fmt=coff endian=little em=pe ;; mips-*-irix6*) fmt=elf em=irix ;; mips-*-irix5*) fmt=elf em=irix ;; From owner-p4-projects@FreeBSD.ORG Thu Jun 17 03:52:36 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E70416A4D1; Thu, 17 Jun 2004 03:52:36 +0000 (GMT) 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 0837716A4CE for ; Thu, 17 Jun 2004 03:52:36 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 023B443D5C for ; Thu, 17 Jun 2004 03:52:36 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H3qZv5040875 for ; Thu, 17 Jun 2004 03:52:35 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H3qYF0040860 for perforce@freebsd.org; Thu, 17 Jun 2004 03:52:34 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 03:52:34 GMT Message-Id: <200406170352.i5H3qYF0040860@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 55130 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, 17 Jun 2004 03:52:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=55130 Change 55130 by jmallett@jmallett_oingo on 2004/06/17 03:51:45 Hack to get TRADMIPS stuff. Prolly should've just CFLAGS+=-DTE_TMIPS. This makes tradmips assembling work, everything else works fine, just have to fix the ABI now. Affected files ... .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/targ-cpu.h#2 edit Differences ... ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/targ-cpu.h#2 (text+ko) ==== @@ -1,3 +1,6 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/as/powerpc-freebsd/targ-cpu.h,v 1.2 2002/05/18 04:50:32 obrien Exp $ */ +/* $FreeBSD$ */ #include "tc-mips.h" + +/* XXX belongs in targ-env.h */ +#include "te-tmips.h" From owner-p4-projects@FreeBSD.ORG Thu Jun 17 04:03:54 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4003F16A4D0; Thu, 17 Jun 2004 04:03:54 +0000 (GMT) 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 11F9D16A4CE for ; Thu, 17 Jun 2004 04:03:54 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0986943D48 for ; Thu, 17 Jun 2004 04:03:54 +0000 (GMT) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H43rtn043916 for ; Thu, 17 Jun 2004 04:03:53 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H43n5c043913 for perforce@freebsd.org; Thu, 17 Jun 2004 04:03:49 GMT (envelope-from julian@freebsd.org) Date: Thu, 17 Jun 2004 04:03:49 GMT Message-Id: <200406170403.i5H43n5c043913@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Subject: PERFORCE change 55131 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, 17 Jun 2004 04:03:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=55131 Change 55131 by julian@julian_jules1 on 2004/06/17 04:03:13 IFC Affected files ... .. //depot/projects/nsched/sys/alpha/alpha/mem.c#4 integrate .. //depot/projects/nsched/sys/alpha/alpha/pmap.c#5 integrate .. //depot/projects/nsched/sys/alpha/alpha/promcons.c#3 integrate .. //depot/projects/nsched/sys/alpha/alpha/uma_machdep.c#1 branch .. //depot/projects/nsched/sys/alpha/include/cpu.h#3 integrate .. //depot/projects/nsched/sys/alpha/tlsb/zs_tlsb.c#3 integrate .. //depot/projects/nsched/sys/amd64/amd64/mem.c#4 integrate .. //depot/projects/nsched/sys/amd64/amd64/pmap.c#8 integrate .. //depot/projects/nsched/sys/amd64/conf/GENERIC#5 integrate .. //depot/projects/nsched/sys/amd64/include/cpu.h#3 integrate .. //depot/projects/nsched/sys/amd64/include/pmap.h#7 integrate .. //depot/projects/nsched/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/nsched/sys/arm/include/bus.h#2 integrate .. //depot/projects/nsched/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/nsched/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/nsched/sys/boot/i386/libi386/biosdisk.c#2 integrate .. //depot/projects/nsched/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/nsched/sys/boot/pc98/boot2/dinode.h#3 integrate .. //depot/projects/nsched/sys/boot/pc98/boot2/inode.h#3 integrate .. //depot/projects/nsched/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/nsched/sys/cam/cam_xpt.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_pass.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/nsched/sys/cam/scsi/scsi_target.c#2 integrate .. //depot/projects/nsched/sys/coda/cnode.h#2 integrate .. //depot/projects/nsched/sys/coda/coda.h#2 integrate .. //depot/projects/nsched/sys/coda/coda_fbsd.c#3 integrate .. //depot/projects/nsched/sys/coda/coda_psdev.c#2 integrate .. //depot/projects/nsched/sys/coda/coda_psdev.h#2 integrate .. //depot/projects/nsched/sys/coda/coda_venus.c#2 integrate .. //depot/projects/nsched/sys/coda/coda_venus.h#2 integrate .. //depot/projects/nsched/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/nsched/sys/coda/coda_vnops.c#2 integrate .. //depot/projects/nsched/sys/coda/coda_vnops.h#2 integrate .. //depot/projects/nsched/sys/compat/linux/linux_ioctl.c#2 integrate .. //depot/projects/nsched/sys/compat/linux/linux_ioctl.h#2 integrate .. //depot/projects/nsched/sys/compat/linux/linux_stats.c#2 integrate .. //depot/projects/nsched/sys/compat/svr4/svr4_stream.c#2 integrate .. //depot/projects/nsched/sys/conf/NOTES#6 integrate .. //depot/projects/nsched/sys/conf/files#11 integrate .. //depot/projects/nsched/sys/conf/files.alpha#3 integrate .. //depot/projects/nsched/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/nsched/sys/conf/kmod.mk#5 integrate .. //depot/projects/nsched/sys/conf/options#7 integrate .. //depot/projects/nsched/sys/contrib/altq/altq/altq.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_cbq.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_cbq.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_cdnr.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_cdnr.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_classq.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_hfsc.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_hfsc.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_priq.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_priq.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_red.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_red.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_rio.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_rio.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_rmclass.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_rmclass.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_rmclass_debug.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_subr.c#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altq_var.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/altqconf.h#1 branch .. //depot/projects/nsched/sys/contrib/altq/altq/if_altq.h#1 branch .. //depot/projects/nsched/sys/contrib/dev/fla/fla.c#2 integrate .. //depot/projects/nsched/sys/contrib/ipfilter/netinet/ip_fil.c#2 integrate .. //depot/projects/nsched/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate .. //depot/projects/nsched/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate .. //depot/projects/nsched/sys/contrib/pf/net/if_pflog.c#4 integrate .. //depot/projects/nsched/sys/contrib/pf/net/if_pflog.h#2 integrate .. //depot/projects/nsched/sys/contrib/pf/net/if_pfsync.c#4 integrate .. //depot/projects/nsched/sys/contrib/pf/net/if_pfsync.h#2 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pf_if.c#1 branch .. //depot/projects/nsched/sys/contrib/pf/net/pf_ioctl.c#4 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pf_norm.c#3 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pf_osfp.c#2 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pf_subr.c#1 branch .. //depot/projects/nsched/sys/contrib/pf/net/pf_table.c#2 integrate .. //depot/projects/nsched/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/nsched/sys/contrib/pf/netinet/in4_cksum.c#2 integrate .. //depot/projects/nsched/sys/crypto/des/des_ecb.c#2 integrate .. //depot/projects/nsched/sys/crypto/des/des_enc.c#2 integrate .. //depot/projects/nsched/sys/crypto/des/des_setkey.c#2 integrate .. //depot/projects/nsched/sys/dev/aac/aac.c#4 integrate .. //depot/projects/nsched/sys/dev/aac/aac_debug.c#2 integrate .. //depot/projects/nsched/sys/dev/aac/aacvar.h#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi.c#6 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_acad.c#5 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_button.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_cmbat.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_ec.c#6 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_isab.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_lid.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_pci_link.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpi_resource.c#4 integrate .. //depot/projects/nsched/sys/dev/acpica/acpivar.h#5 integrate .. //depot/projects/nsched/sys/dev/adlink/adlink.c#3 integrate .. //depot/projects/nsched/sys/dev/amr/amr.c#2 integrate .. //depot/projects/nsched/sys/dev/amr/amrvar.h#2 integrate .. //depot/projects/nsched/sys/dev/an/if_an.c#3 integrate .. //depot/projects/nsched/sys/dev/asr/asr.c#4 integrate .. //depot/projects/nsched/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/nsched/sys/dev/ata/ata-chipset.c#3 integrate .. //depot/projects/nsched/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/nsched/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/nsched/sys/dev/ata/atapi-tape.c#2 integrate .. //depot/projects/nsched/sys/dev/ata/atapi-tape.h#3 integrate .. //depot/projects/nsched/sys/dev/awi/awi.c#3 integrate .. //depot/projects/nsched/sys/dev/bktr/bktr_core.c#3 integrate .. //depot/projects/nsched/sys/dev/bktr/bktr_core.h#2 integrate .. //depot/projects/nsched/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/nsched/sys/dev/bktr/bktr_reg.h#2 integrate .. //depot/projects/nsched/sys/dev/ciss/ciss.c#5 integrate .. //depot/projects/nsched/sys/dev/ciss/cissvar.h#3 integrate .. //depot/projects/nsched/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/nsched/sys/dev/ctau/if_ct.c#4 integrate .. //depot/projects/nsched/sys/dev/cx/if_cx.c#5 integrate .. //depot/projects/nsched/sys/dev/cy/cy.c#5 integrate .. //depot/projects/nsched/sys/dev/dcons/dcons.c#4 integrate .. //depot/projects/nsched/sys/dev/digi/digi.c#5 integrate .. //depot/projects/nsched/sys/dev/digi/digi.h#2 integrate .. //depot/projects/nsched/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/nsched/sys/dev/drm/drm_drv.h#3 integrate .. //depot/projects/nsched/sys/dev/drm/drm_fops.h#2 integrate .. //depot/projects/nsched/sys/dev/drm/drm_os_freebsd.h#3 integrate .. //depot/projects/nsched/sys/dev/drm/drm_vm.h#2 integrate .. //depot/projects/nsched/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/nsched/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/nsched/sys/dev/esp/ncr53c9xvar.h#3 integrate .. //depot/projects/nsched/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/nsched/sys/dev/fb/vga.c#4 integrate .. //depot/projects/nsched/sys/dev/fb/vgareg.h#2 integrate .. //depot/projects/nsched/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/nsched/sys/dev/firewire/firewire.c#4 integrate .. //depot/projects/nsched/sys/dev/firewire/firewirereg.h#3 integrate .. //depot/projects/nsched/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/nsched/sys/dev/firewire/fwmem.c#3 integrate .. //depot/projects/nsched/sys/dev/firewire/fwohci.c#3 integrate .. //depot/projects/nsched/sys/dev/firewire/if_fwip.c#1 branch .. //depot/projects/nsched/sys/dev/firewire/if_fwipvar.h#1 branch .. //depot/projects/nsched/sys/dev/firewire/sbp.c#3 integrate .. //depot/projects/nsched/sys/dev/gfb/gfb_pci.c#2 integrate .. //depot/projects/nsched/sys/dev/hme/if_hme.c#5 integrate .. //depot/projects/nsched/sys/dev/ichwd/ichwd.c#3 integrate .. //depot/projects/nsched/sys/dev/ida/ida.c#2 integrate .. //depot/projects/nsched/sys/dev/ida/idavar.h#2 integrate .. //depot/projects/nsched/sys/dev/iicbus/iic.c#3 integrate .. //depot/projects/nsched/sys/dev/iir/iir.h#3 integrate .. //depot/projects/nsched/sys/dev/iir/iir_ctrl.c#3 integrate .. //depot/projects/nsched/sys/dev/ips/ips.c#3 integrate .. //depot/projects/nsched/sys/dev/ips/ips.h#3 integrate .. //depot/projects/nsched/sys/dev/ips/ips_commands.c#3 integrate .. //depot/projects/nsched/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/nsched/sys/dev/joy/joy.c#2 integrate .. //depot/projects/nsched/sys/dev/joy/joyvar.h#2 integrate .. //depot/projects/nsched/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/nsched/sys/dev/kbd/kbdreg.h#2 integrate .. //depot/projects/nsched/sys/dev/led/led.c#3 integrate .. //depot/projects/nsched/sys/dev/led/led.h#3 integrate .. //depot/projects/nsched/sys/dev/matcd/matcd.c#2 integrate .. //depot/projects/nsched/sys/dev/matcd/matcd_data.h#2 integrate .. //depot/projects/nsched/sys/dev/mcd/mcd.c#2 integrate .. //depot/projects/nsched/sys/dev/mcd/mcdvar.h#2 integrate .. //depot/projects/nsched/sys/dev/md/md.c#5 integrate .. //depot/projects/nsched/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/nsched/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/nsched/sys/dev/mly/mly.c#2 integrate .. //depot/projects/nsched/sys/dev/mly/mlyvar.h#2 integrate .. //depot/projects/nsched/sys/dev/nmdm/nmdm.c#5 integrate .. //depot/projects/nsched/sys/dev/null/null.c#2 integrate .. //depot/projects/nsched/sys/dev/ofw/ofw_console.c#3 integrate .. //depot/projects/nsched/sys/dev/ofw/openfirmio.c#4 integrate .. //depot/projects/nsched/sys/dev/ofw/openpromio.c#2 integrate .. //depot/projects/nsched/sys/dev/pci/pci.c#5 integrate .. //depot/projects/nsched/sys/dev/pci/pci_user.c#2 integrate .. //depot/projects/nsched/sys/dev/pdq/pdq_freebsd.h#2 integrate .. //depot/projects/nsched/sys/dev/ppbus/lpt.c#2 integrate .. //depot/projects/nsched/sys/dev/ppbus/pcfclock.c#3 integrate .. //depot/projects/nsched/sys/dev/ppbus/ppi.c#2 integrate .. //depot/projects/nsched/sys/dev/ppbus/pps.c#2 integrate .. //depot/projects/nsched/sys/dev/random/randomdev.c#5 integrate .. //depot/projects/nsched/sys/dev/rc/rc.c#4 integrate .. //depot/projects/nsched/sys/dev/rp/rp.c#4 integrate .. //depot/projects/nsched/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/nsched/sys/dev/sab/sab.c#3 integrate .. //depot/projects/nsched/sys/dev/scd/scd.c#2 integrate .. //depot/projects/nsched/sys/dev/scd/scdvar.h#2 integrate .. //depot/projects/nsched/sys/dev/si/si.c#4 integrate .. //depot/projects/nsched/sys/dev/sio/sio.c#6 integrate .. //depot/projects/nsched/sys/dev/smbus/smb.c#3 integrate .. //depot/projects/nsched/sys/dev/snp/snp.c#3 integrate .. //depot/projects/nsched/sys/dev/sound/isa/sb16.c#4 integrate .. //depot/projects/nsched/sys/dev/sound/pci/emu10k1.c#4 integrate .. //depot/projects/nsched/sys/dev/sound/pcm/dsp.c#2 integrate .. //depot/projects/nsched/sys/dev/sound/pcm/mixer.c#2 integrate .. //depot/projects/nsched/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/nsched/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/nsched/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/nsched/sys/dev/streams/streams.c#2 integrate .. //depot/projects/nsched/sys/dev/sx/sx.c#4 integrate .. //depot/projects/nsched/sys/dev/syscons/scvesactl.c#2 integrate .. //depot/projects/nsched/sys/dev/syscons/syscons.c#3 integrate .. //depot/projects/nsched/sys/dev/syscons/syscons.h#2 integrate .. //depot/projects/nsched/sys/dev/syscons/sysmouse.c#3 integrate .. //depot/projects/nsched/sys/dev/tdfx/tdfx_pci.c#3 integrate .. //depot/projects/nsched/sys/dev/tdfx/tdfx_vars.h#2 integrate .. //depot/projects/nsched/sys/dev/twa/twa.h#3 integrate .. //depot/projects/nsched/sys/dev/twa/twa_freebsd.c#3 integrate .. //depot/projects/nsched/sys/dev/twe/twe_compat.h#3 integrate .. //depot/projects/nsched/sys/dev/twe/twe_freebsd.c#3 integrate .. //depot/projects/nsched/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/nsched/sys/dev/uart/uart_tty.c#3 integrate .. //depot/projects/nsched/sys/dev/usb/if_udav.c#4 integrate .. //depot/projects/nsched/sys/dev/usb/ubser.c#4 integrate .. //depot/projects/nsched/sys/dev/usb/ucom.c#5 integrate .. //depot/projects/nsched/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/nsched/sys/dev/usb/ufm.c#2 integrate .. //depot/projects/nsched/sys/dev/usb/ugen.c#2 integrate .. //depot/projects/nsched/sys/dev/usb/uhid.c#3 integrate .. //depot/projects/nsched/sys/dev/usb/ulpt.c#2 integrate .. //depot/projects/nsched/sys/dev/usb/ums.c#3 integrate .. //depot/projects/nsched/sys/dev/usb/urio.c#2 integrate .. //depot/projects/nsched/sys/dev/usb/usb.c#3 integrate .. //depot/projects/nsched/sys/dev/usb/uscanner.c#2 integrate .. //depot/projects/nsched/sys/dev/vinum/vinum.c#2 integrate .. //depot/projects/nsched/sys/dev/vinum/vinumext.h#2 integrate .. //depot/projects/nsched/sys/dev/vinum/vinumioctl.c#2 integrate .. //depot/projects/nsched/sys/dev/vinum/vinumobj.h#2 integrate .. //depot/projects/nsched/sys/dev/vinum/vinumutil.c#2 integrate .. //depot/projects/nsched/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/nsched/sys/dev/wi/if_wi.c#2 integrate .. //depot/projects/nsched/sys/dev/zs/z8530var.h#2 integrate .. //depot/projects/nsched/sys/dev/zs/zs.c#4 integrate .. //depot/projects/nsched/sys/fs/devfs/devfs.h#2 integrate .. //depot/projects/nsched/sys/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/nsched/sys/fs/devfs/devfs_rule.c#2 integrate .. //depot/projects/nsched/sys/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/nsched/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/nsched/sys/fs/hpfs/hpfs.h#2 integrate .. //depot/projects/nsched/sys/fs/hpfs/hpfs_hash.c#3 integrate .. //depot/projects/nsched/sys/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/nsched/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/nsched/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/nsched/sys/fs/msdosfs/msdosfsmount.h#2 integrate .. //depot/projects/nsched/sys/fs/ntfs/ntfs.h#2 integrate .. //depot/projects/nsched/sys/fs/ntfs/ntfs_ihash.c#3 integrate .. //depot/projects/nsched/sys/fs/ntfs/ntfs_ihash.h#2 integrate .. //depot/projects/nsched/sys/fs/ntfs/ntfs_inode.h#2 integrate .. //depot/projects/nsched/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/nsched/sys/fs/specfs/spec_vnops.c#4 integrate .. //depot/projects/nsched/sys/fs/udf/udf.h#2 integrate .. //depot/projects/nsched/sys/geom/gate/g_gate.c#2 integrate .. //depot/projects/nsched/sys/geom/geom.h#2 integrate .. //depot/projects/nsched/sys/geom/geom_ctl.c#2 integrate .. //depot/projects/nsched/sys/geom/geom_dev.c#2 integrate .. //depot/projects/nsched/sys/geom/vinum/geom_vinum.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum.h#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_drive.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_init.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_list.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_plex.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_raid5.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_raid5.h#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_rm.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_share.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_share.h#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_state.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_subr.c#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_var.h#1 branch .. //depot/projects/nsched/sys/geom/vinum/geom_vinum_volume.c#1 branch .. //depot/projects/nsched/sys/gnu/ext2fs/ext2_extern.h#3 integrate .. //depot/projects/nsched/sys/gnu/ext2fs/ext2_ihash.c#3 integrate .. //depot/projects/nsched/sys/gnu/ext2fs/ext2_mount.h#3 integrate .. //depot/projects/nsched/sys/gnu/ext2fs/ext2_vfsops.c#3 integrate .. //depot/projects/nsched/sys/gnu/ext2fs/inode.h#3 integrate .. //depot/projects/nsched/sys/i386/acpica/acpi_asus.c#3 integrate .. //depot/projects/nsched/sys/i386/acpica/acpi_machdep.c#4 integrate .. //depot/projects/nsched/sys/i386/acpica/acpi_toshiba.c#5 integrate .. //depot/projects/nsched/sys/i386/bios/apm.c#3 integrate .. //depot/projects/nsched/sys/i386/bios/apm.h#2 integrate .. //depot/projects/nsched/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/nsched/sys/i386/conf/NOTES#5 integrate .. //depot/projects/nsched/sys/i386/i386/bios.c#4 integrate .. //depot/projects/nsched/sys/i386/i386/elan-mmcr.c#4 integrate .. //depot/projects/nsched/sys/i386/i386/geode.c#3 integrate .. //depot/projects/nsched/sys/i386/i386/machdep.c#9 integrate .. //depot/projects/nsched/sys/i386/i386/mem.c#4 integrate .. //depot/projects/nsched/sys/i386/i386/perfmon.c#2 integrate .. //depot/projects/nsched/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/nsched/sys/i386/ibcs2/ibcs2_misc.c#2 integrate .. //depot/projects/nsched/sys/i386/include/cpu.h#3 integrate .. //depot/projects/nsched/sys/i386/include/pmap.h#4 integrate .. //depot/projects/nsched/sys/i386/isa/mse.c#3 integrate .. //depot/projects/nsched/sys/i386/isa/pcvt/pcvt_drv.c#3 integrate .. //depot/projects/nsched/sys/i386/isa/pcvt/pcvt_ext.c#3 integrate .. //depot/projects/nsched/sys/i386/isa/pcvt/pcvt_hdr.h#4 integrate .. //depot/projects/nsched/sys/i386/isa/pcvt/pcvt_kbd.c#2 integrate .. //depot/projects/nsched/sys/i386/isa/pcvt/pcvt_sup.c#3 integrate .. //depot/projects/nsched/sys/i386/isa/spic.c#3 integrate .. //depot/projects/nsched/sys/i386/isa/spkr.c#2 integrate .. //depot/projects/nsched/sys/i4b/driver/i4b_ctl.c#2 integrate .. //depot/projects/nsched/sys/i4b/driver/i4b_ipr.c#2 integrate .. //depot/projects/nsched/sys/i4b/driver/i4b_rbch.c#2 integrate .. //depot/projects/nsched/sys/i4b/driver/i4b_tel.c#2 integrate .. //depot/projects/nsched/sys/i4b/driver/i4b_trace.c#2 integrate .. //depot/projects/nsched/sys/i4b/layer4/i4b_i4bdrv.c#2 integrate .. //depot/projects/nsched/sys/ia64/ia64/mem.c#4 integrate .. //depot/projects/nsched/sys/ia64/ia64/pmap.c#5 integrate .. //depot/projects/nsched/sys/ia64/ia64/ssc.c#3 integrate .. //depot/projects/nsched/sys/ia64/ia64/sscdisk.c#2 integrate .. //depot/projects/nsched/sys/ia64/include/cpu.h#3 integrate .. //depot/projects/nsched/sys/isa/psm.c#4 integrate .. //depot/projects/nsched/sys/isa/vga_isa.c#3 integrate .. //depot/projects/nsched/sys/isofs/cd9660/cd9660_node.c#3 integrate .. //depot/projects/nsched/sys/isofs/cd9660/cd9660_node.h#3 integrate .. //depot/projects/nsched/sys/isofs/cd9660/cd9660_vfsops.c#3 integrate .. //depot/projects/nsched/sys/isofs/cd9660/iso.h#3 integrate .. //depot/projects/nsched/sys/kern/init_main.c#8 integrate .. //depot/projects/nsched/sys/kern/kern_clock.c#5 integrate .. //depot/projects/nsched/sys/kern/kern_conf.c#3 integrate .. //depot/projects/nsched/sys/kern/kern_descrip.c#5 integrate .. //depot/projects/nsched/sys/kern/kern_physio.c#2 integrate .. //depot/projects/nsched/sys/kern/kern_proc.c#7 integrate .. //depot/projects/nsched/sys/kern/kern_prot.c#4 integrate .. //depot/projects/nsched/sys/kern/kern_resource.c#5 integrate .. //depot/projects/nsched/sys/kern/kern_sema.c#2 integrate .. //depot/projects/nsched/sys/kern/link_elf_obj.c#4 integrate .. //depot/projects/nsched/sys/kern/sched_4bsd.c#14 integrate .. //depot/projects/nsched/sys/kern/sched_ule.c#6 integrate .. //depot/projects/nsched/sys/kern/subr_bus.c#4 integrate .. //depot/projects/nsched/sys/kern/subr_devstat.c#2 integrate .. //depot/projects/nsched/sys/kern/subr_log.c#3 integrate .. //depot/projects/nsched/sys/kern/subr_witness.c#3 integrate .. //depot/projects/nsched/sys/kern/sys_socket.c#3 integrate .. //depot/projects/nsched/sys/kern/tty.c#5 integrate .. //depot/projects/nsched/sys/kern/tty_conf.c#4 integrate .. //depot/projects/nsched/sys/kern/tty_cons.c#3 integrate .. //depot/projects/nsched/sys/kern/tty_pty.c#5 integrate .. //depot/projects/nsched/sys/kern/tty_tty.c#2 integrate .. //depot/projects/nsched/sys/kern/uipc_socket.c#4 integrate .. //depot/projects/nsched/sys/kern/uipc_socket2.c#5 integrate .. //depot/projects/nsched/sys/kern/uipc_syscalls.c#7 integrate .. //depot/projects/nsched/sys/kern/uipc_usrreq.c#4 integrate .. //depot/projects/nsched/sys/kern/vfs_bio.c#3 integrate .. //depot/projects/nsched/sys/kern/vfs_mount.c#3 integrate .. //depot/projects/nsched/sys/kern/vfs_subr.c#5 integrate .. //depot/projects/nsched/sys/modules/Makefile#4 integrate .. //depot/projects/nsched/sys/modules/geom/geom_vinum/Makefile#1 branch .. //depot/projects/nsched/sys/modules/pf/Makefile#3 integrate .. //depot/projects/nsched/sys/modules/pflog/Makefile#3 delete .. //depot/projects/nsched/sys/modules/pfsync/Makefile#3 delete .. //depot/projects/nsched/sys/net/bpf.c#4 integrate .. //depot/projects/nsched/sys/net/bridge.c#4 integrate .. //depot/projects/nsched/sys/net/firewire.h#1 branch .. //depot/projects/nsched/sys/net/if.c#4 integrate .. //depot/projects/nsched/sys/net/if_arcsubr.c#5 integrate .. //depot/projects/nsched/sys/net/if_arp.h#4 integrate .. //depot/projects/nsched/sys/net/if_ef.c#3 integrate .. //depot/projects/nsched/sys/net/if_ethersubr.c#6 integrate .. //depot/projects/nsched/sys/net/if_fddisubr.c#4 integrate .. //depot/projects/nsched/sys/net/if_fwsubr.c#1 branch .. //depot/projects/nsched/sys/net/if_iso88025subr.c#4 integrate .. //depot/projects/nsched/sys/net/if_ppp.c#3 integrate .. //depot/projects/nsched/sys/net/if_sl.c#4 integrate .. //depot/projects/nsched/sys/net/if_spppsubr.c#3 integrate .. //depot/projects/nsched/sys/net/if_tap.c#3 integrate .. //depot/projects/nsched/sys/net/if_tapvar.h#2 integrate .. //depot/projects/nsched/sys/net/if_tun.c#2 integrate .. //depot/projects/nsched/sys/net/if_var.h#4 integrate .. //depot/projects/nsched/sys/net/if_vlan.c#4 integrate .. //depot/projects/nsched/sys/net/ppp_tty.c#2 integrate .. //depot/projects/nsched/sys/net/raw_cb.c#4 integrate .. //depot/projects/nsched/sys/net/raw_cb.h#3 integrate .. //depot/projects/nsched/sys/net/raw_usrreq.c#3 integrate .. //depot/projects/nsched/sys/net80211/ieee80211_input.c#3 integrate .. //depot/projects/nsched/sys/netatalk/ddp_input.c#2 integrate .. //depot/projects/nsched/sys/netatalk/ddp_output.c#2 integrate .. //depot/projects/nsched/sys/netatalk/ddp_pcb.c#2 integrate .. //depot/projects/nsched/sys/netatm/atm_aal5.c#2 integrate .. //depot/projects/nsched/sys/netatm/atm_socket.c#2 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#4 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#5 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#3 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#4 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#4 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#4 integrate .. //depot/projects/nsched/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#4 integrate .. //depot/projects/nsched/sys/netgraph/ng_device.c#3 integrate .. //depot/projects/nsched/sys/netgraph/ng_ksocket.c#4 integrate .. //depot/projects/nsched/sys/netgraph/ng_rfc1490.c#3 integrate .. //depot/projects/nsched/sys/netgraph/ng_rfc1490.h#2 integrate .. //depot/projects/nsched/sys/netgraph/ng_tty.c#3 integrate .. //depot/projects/nsched/sys/netinet/accf_http.c#3 integrate .. //depot/projects/nsched/sys/netinet/if_ether.c#4 integrate .. //depot/projects/nsched/sys/netinet/in.h#4 integrate .. //depot/projects/nsched/sys/netinet/in_pcb.c#5 integrate .. //depot/projects/nsched/sys/netinet/in_proto.c#3 integrate .. //depot/projects/nsched/sys/netinet/ip_divert.c#4 integrate .. //depot/projects/nsched/sys/netinet/ip_fw2.c#5 integrate .. //depot/projects/nsched/sys/netinet/ip_input.c#4 integrate .. //depot/projects/nsched/sys/netinet/ip_output.c#5 integrate .. //depot/projects/nsched/sys/netinet/tcp_input.c#4 integrate .. //depot/projects/nsched/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/nsched/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/nsched/sys/netinet/tcp_usrreq.c#3 integrate .. //depot/projects/nsched/sys/netinet/udp_usrreq.c#4 integrate .. //depot/projects/nsched/sys/netinet6/in6_pcb.c#3 integrate .. //depot/projects/nsched/sys/netinet6/ip6_input.c#4 integrate .. //depot/projects/nsched/sys/netipx/ipx_pcb.c#2 integrate .. //depot/projects/nsched/sys/netipx/ipx_usrreq.c#2 integrate .. //depot/projects/nsched/sys/netipx/spx_usrreq.c#2 integrate .. //depot/projects/nsched/sys/netnatm/natm.c#2 integrate .. //depot/projects/nsched/sys/netncp/ncp_mod.c#3 integrate .. //depot/projects/nsched/sys/netsmb/smb_dev.c#3 integrate .. //depot/projects/nsched/sys/netsmb/smb_trantcp.c#2 integrate .. //depot/projects/nsched/sys/nfs4client/nfs4_dev.c#2 integrate .. //depot/projects/nsched/sys/nfsclient/bootp_subr.c#2 integrate .. //depot/projects/nsched/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/nsched/sys/nfsclient/nfs_bio.c#4 integrate .. //depot/projects/nsched/sys/nfsclient/nfs_socket.c#3 integrate .. //depot/projects/nsched/sys/opencrypto/cryptodev.c#3 integrate .. //depot/projects/nsched/sys/pc98/conf/NOTES#5 integrate .. //depot/projects/nsched/sys/pc98/i386/machdep.c#4 integrate .. //depot/projects/nsched/sys/pc98/pc98/fd.c#4 integrate .. //depot/projects/nsched/sys/pc98/pc98/mse.c#3 integrate .. //depot/projects/nsched/sys/pc98/pc98/olpt.c#3 integrate .. //depot/projects/nsched/sys/pc98/pc98/pc98gdc.c#3 integrate .. //depot/projects/nsched/sys/pc98/pc98/sio.c#6 integrate .. //depot/projects/nsched/sys/pc98/pc98/wd_cd.c#2 integrate .. //depot/projects/nsched/sys/pccard/pccard.c#2 integrate .. //depot/projects/nsched/sys/pccard/slot.h#2 integrate .. //depot/projects/nsched/sys/pci/agp.c#4 integrate .. //depot/projects/nsched/sys/pci/agppriv.h#3 integrate .. //depot/projects/nsched/sys/pci/if_mn.c#3 integrate .. //depot/projects/nsched/sys/pci/if_ti.c#3 integrate .. //depot/projects/nsched/sys/pci/if_tireg.h#2 integrate .. //depot/projects/nsched/sys/pci/xrpu.c#3 integrate .. //depot/projects/nsched/sys/powerpc/ofw/ofw_syscons.h#2 integrate .. //depot/projects/nsched/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/nsched/sys/security/mac/mac_vfs.c#2 integrate .. //depot/projects/nsched/sys/security/mac_biba/mac_biba.c#2 integrate .. //depot/projects/nsched/sys/security/mac_lomac/mac_lomac.c#2 integrate .. //depot/projects/nsched/sys/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/nsched/sys/security/mac_stub/mac_stub.c#2 integrate .. //depot/projects/nsched/sys/security/mac_test/mac_test.c#3 integrate .. //depot/projects/nsched/sys/sparc64/creator/creator.h#2 integrate .. //depot/projects/nsched/sys/sparc64/creator/creator_upa.c#3 integrate .. //depot/projects/nsched/sys/sparc64/include/cpu.h#3 integrate .. //depot/projects/nsched/sys/sparc64/sbus/lsi64854.c#1 branch .. //depot/projects/nsched/sys/sparc64/sbus/lsi64854reg.h#1 branch .. //depot/projects/nsched/sys/sparc64/sbus/lsi64854var.h#1 branch .. //depot/projects/nsched/sys/sparc64/sparc64/mem.c#4 integrate .. //depot/projects/nsched/sys/sys/_lock.h#2 integrate .. //depot/projects/nsched/sys/sys/_types.h#2 integrate .. //depot/projects/nsched/sys/sys/bio.h#3 integrate .. //depot/projects/nsched/sys/sys/conf.h#4 integrate .. //depot/projects/nsched/sys/sys/gmon.h#4 integrate .. //depot/projects/nsched/sys/sys/linedisc.h#2 integrate .. //depot/projects/nsched/sys/sys/mac.h#3 integrate .. //depot/projects/nsched/sys/sys/mac_policy.h#3 integrate .. //depot/projects/nsched/sys/sys/mbuf.h#6 integrate .. //depot/projects/nsched/sys/sys/mount.h#4 integrate .. //depot/projects/nsched/sys/sys/param.h#5 integrate .. //depot/projects/nsched/sys/sys/proc.h#13 integrate .. //depot/projects/nsched/sys/sys/resource.h#3 integrate .. //depot/projects/nsched/sys/sys/sched.h#6 integrate .. //depot/projects/nsched/sys/sys/socketvar.h#4 integrate .. //depot/projects/nsched/sys/sys/stat.h#3 integrate .. //depot/projects/nsched/sys/sys/sysctl.h#4 integrate .. //depot/projects/nsched/sys/sys/systm.h#4 integrate .. //depot/projects/nsched/sys/sys/tty.h#4 integrate .. //depot/projects/nsched/sys/sys/types.h#4 integrate .. //depot/projects/nsched/sys/sys/vnode.h#4 integrate .. //depot/projects/nsched/sys/ufs/ffs/ffs_alloc.c#5 integrate .. //depot/projects/nsched/sys/ufs/ffs/ffs_snapshot.c#3 integrate .. //depot/projects/nsched/sys/ufs/ffs/ffs_vfsops.c#4 integrate .. //depot/projects/nsched/sys/ufs/ufs/dinode.h#2 integrate .. //depot/projects/nsched/sys/ufs/ufs/ufs_extern.h#3 integrate .. //depot/projects/nsched/sys/ufs/ufs/ufs_ihash.c#3 integrate .. //depot/projects/nsched/sys/ufs/ufs/ufsmount.h#3 integrate .. //depot/projects/nsched/sys/vm/device_pager.c#4 integrate .. //depot/projects/nsched/sys/vm/swap_pager.c#3 integrate .. //depot/projects/nsched/sys/vm/vm_contig.c#3 integrate .. //depot/projects/nsched/sys/vm/vm_glue.c#4 integrate .. //depot/projects/nsched/sys/vm/vm_pageout.c#3 integrate Differences ... ==== //depot/projects/nsched/sys/alpha/alpha/mem.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.49 2004/06/03 05:58:27 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.50 2004/06/16 09:46:26 phk Exp $"); /* * Memory special file @@ -67,9 +67,9 @@ #include #include -static dev_t memdev, kmemdev; +static struct cdev *memdev, *kmemdev; #ifdef PERFMON -static dev_t perfdev; +static struct cdev *perfdev; #endif /* PERFMON */ static d_open_t mmopen; @@ -95,7 +95,7 @@ struct mem_range_softc mem_range_softc; static int -mmclose(dev_t dev, int flags, int fmt, struct thread *td) +mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) { switch (minor(dev)) { #ifdef PERFMON @@ -109,7 +109,7 @@ } static int -mmopen(dev_t dev, int flags, int fmt, struct thread *td) +mmopen(struct cdev *dev, int flags, int fmt, struct thread *td) { int error; @@ -136,7 +136,7 @@ /*ARGSUSED*/ static int -mmrw(dev_t dev, struct uio *uio, int flags) +mmrw(struct cdev *dev, struct uio *uio, int flags) { vm_offset_t o, v; int c = 0; @@ -219,7 +219,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { /* * /dev/mem is the only one that makes sense through this @@ -240,7 +240,7 @@ } static int -mmioctl(dev_t dev, u_long cmd, caddr_t cmdarg, int flags, struct thread *td) +mmioctl(struct cdev *dev, u_long cmd, caddr_t cmdarg, int flags, struct thread *td) { switch(minor(dev)) { #ifdef PERFMON ==== //depot/projects/nsched/sys/alpha/alpha/pmap.c#5 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.147 2004/06/10 04:30:59 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.150 2004/06/15 19:28:39 alc Exp $"); #include #include @@ -172,7 +172,6 @@ #include #include #include -#include #include @@ -555,52 +554,6 @@ return 0; } -void * -uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) -{ - static vm_pindex_t color; - vm_page_t m; - int pflags; - void *va; - - *flags = UMA_SLAB_PRIV; - - if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT; - else - pflags = VM_ALLOC_SYSTEM; - - if (wait & M_ZERO) - pflags |= VM_ALLOC_ZERO; - - for (;;) { - m = vm_page_alloc(NULL, color++, pflags | VM_ALLOC_NOOBJ); - if (m == NULL) { - if (wait & M_NOWAIT) - return (NULL); - else - VM_WAIT; - } else - break; - } - - va = (void *)ALPHA_PHYS_TO_K0SEG(m->phys_addr); - if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) - bzero(va, PAGE_SIZE); - return (va); -} - -void -uma_small_free(void *mem, int size, u_int8_t flags) -{ - vm_page_t m; - - m = PHYS_TO_VM_PAGE(ALPHA_K0SEG_TO_PHYS((vm_offset_t)mem)); - vm_page_lock_queues(); - vm_page_free(m); - vm_page_unlock_queues(); -} - /* * Initialize the pmap module. * Called by vm_init, to initialize any structures that the pmap @@ -1472,12 +1425,6 @@ return uma_zalloc(pvzone, M_NOWAIT); } -/* - * If it is the first entry on the list, it is actually - * in the header and we must copy the following entry up - * to the header. Otherwise we must search the list for - * the entry. In either case we free the now unused entry. - */ static int pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) ==== //depot/projects/nsched/sys/alpha/alpha/promcons.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.38 2004/06/04 16:02:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.39 2004/06/16 09:46:26 phk Exp $"); #include #include @@ -86,7 +86,7 @@ int promopen(dev, flag, mode, td) - dev_t dev; + struct cdev *dev; int flag, mode; struct thread *td; { @@ -137,7 +137,7 @@ int promclose(dev, flag, mode, td) - dev_t dev; + struct cdev *dev; int flag, mode; struct thread *td; { ==== //depot/projects/nsched/sys/alpha/include/cpu.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.37 2004/04/05 21:00:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.38 2004/06/16 09:46:26 phk Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /* @@ -66,7 +66,7 @@ /* * CTL_MACHDEP definitions. */ -#define CPU_CONSDEV 1 /* dev_t: console terminal device */ +#define CPU_CONSDEV 1 /* struct cdev *: console terminal device */ #define CPU_ROOT_DEVICE 2 /* string: root device name */ #define CPU_UNALIGNED_PRINT 3 /* int: print unaligned accesses */ #define CPU_UNALIGNED_FIX 4 /* int: fix unaligned accesses */ ==== //depot/projects/nsched/sys/alpha/tlsb/zs_tlsb.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.44 2004/06/04 16:02:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.45 2004/06/16 09:46:27 phk Exp $"); #include "opt_ddb.h" @@ -258,7 +258,7 @@ static int -zsopen(dev_t dev, int flag, int mode, struct thread *td) +zsopen(struct cdev *dev, int flag, int mode, struct thread *td) { struct zs_softc *sc = ZS_SOFTC(minor(dev)); struct tty *tp; @@ -305,7 +305,7 @@ } static int -zsclose(dev_t dev, int flag, int mode, struct thread *td) +zsclose(struct cdev *dev, int flag, int mode, struct thread *td) { struct zs_softc *sc = ZS_SOFTC(minor(dev)); struct tty *tp; ==== //depot/projects/nsched/sys/amd64/amd64/mem.c#4 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.115 2004/06/03 05:58:30 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.116 2004/06/16 09:46:27 phk Exp $"); /* * Memory special file @@ -68,7 +68,7 @@ #include #include -static dev_t memdev, kmemdev, iodev; +static struct cdev *memdev, *kmemdev, *iodev; static d_open_t mmopen; static d_close_t mmclose; @@ -95,7 +95,7 @@ struct mem_range_softc mem_range_softc; static int -mmclose(dev_t dev, int flags, int fmt, struct thread *td) +mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) { switch (minor(dev)) { case 14: @@ -105,7 +105,7 @@ } static int -mmopen(dev_t dev, int flags, int fmt, struct thread *td) +mmopen(struct cdev *dev, int flags, int fmt, struct thread *td) { int error; @@ -133,7 +133,7 @@ /*ARGSUSED*/ static int -mmrw(dev_t dev, struct uio *uio, int flags) +mmrw(struct cdev *dev, struct uio *uio, int flags) { int o; u_long c = 0, v; @@ -214,7 +214,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { switch (minor(dev)) { @@ -242,7 +242,7 @@ * and mem_range_attr_set. */ static int -mmioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct thread *td) +mmioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, struct thread *td) { int nd, error = 0; struct mem_range_op *mo = (struct mem_range_op *)data; ==== //depot/projects/nsched/sys/amd64/amd64/pmap.c#8 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.466 2004/06/08 02:20:40 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.474 2004/06/16 07:51:19 alc Exp $"); /* * Manages physical address maps. @@ -142,7 +142,6 @@ #include #endif -#define PMAP_KEEP_PDIRS #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 #endif @@ -208,8 +207,7 @@ static PMAP_INLINE void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(void); -static void pmap_clear_ptes(vm_page_t m, int bit) - __always_inline; +static void pmap_clear_ptes(vm_page_t m, int bit); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva); static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); @@ -466,6 +464,7 @@ /* * Initialize the kernel pmap (which is statically allocated). */ + PMAP_LOCK_INIT(kernel_pmap); kernel_pmap->pm_pml4 = (pdp_entry_t *) (KERNBASE + KPML4phys); kernel_pmap->pm_active = -1; /* don't allow deactivation */ TAILQ_INIT(&kernel_pmap->pm_pvlist); @@ -775,19 +774,23 @@ if (pmap == 0) return 0; + PMAP_LOCK(pmap); pdep = pmap_pde(pmap, va); if (pdep) { pde = *pdep; if (pde) { if ((pde & PG_PS) != 0) { rtval = (pde & ~PDRMASK) | (va & PDRMASK); + PMAP_UNLOCK(pmap); return rtval; } pte = pmap_pte(pmap, va); rtval = ((*pte & PG_FRAME) | (va & PAGE_MASK)); + PMAP_UNLOCK(pmap); return rtval; } } + PMAP_UNLOCK(pmap); return 0; } @@ -1037,6 +1040,7 @@ struct pmap *pmap; { + PMAP_LOCK_INIT(pmap); pmap->pm_pml4 = (pml4_entry_t *)(KERNBASE + KPML4phys); pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvlist); @@ -1057,6 +1061,8 @@ vm_page_t pml4pg; static vm_pindex_t color; + PMAP_LOCK_INIT(pmap); + /* * allocate the page directory page */ @@ -1308,6 +1314,7 @@ atomic_subtract_int(&cnt.v_wire_count, 1); vm_page_free_zero(m); vm_page_unlock_queues(); + PMAP_LOCK_DESTROY(pmap); } static int @@ -1336,13 +1343,11 @@ void pmap_growkernel(vm_offset_t addr) { - int s; vm_paddr_t paddr; vm_page_t nkpg; pd_entry_t *pde, newpdir; pdp_entry_t newpdp; - s = splhigh(); mtx_assert(&kernel_map->system_mtx, MA_OWNED); if (kernel_vm_end == 0) { kernel_vm_end = KERNBASE; @@ -1390,7 +1395,6 @@ kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1); } - splx(s); } @@ -1427,21 +1431,14 @@ return uma_zalloc(pvzone, M_NOWAIT); } -/* - * If it is the first entry on the list, it is actually - * in the header and we must copy the following entry up - * to the header. Otherwise we must search the list for - * the entry. In either case we free the now unused entry. - */ static int pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) { pv_entry_t pv; int rtval; - int s; - s = splvm(); + PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->md.pv_list_count < pmap->pm_stats.resident_count) { TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { @@ -1467,7 +1464,6 @@ free_pv_entry(pv); } - splx(s); return rtval; } @@ -1479,10 +1475,8 @@ pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t mpte, vm_page_t m) { - int s; pv_entry_t pv; - s = splvm(); pv = get_pv_entry(); pv->pv_va = va; pv->pv_pmap = pmap; @@ -1494,7 +1488,6 @@ m->md.pv_list_count++; vm_page_unlock_queues(); - splx(s); } /* @@ -1506,6 +1499,7 @@ pt_entry_t oldpte; vm_page_t m, mpte; + PMAP_LOCK_ASSERT(pmap, MA_OWNED); oldpte = pte_load_clear(ptq); if (oldpte & PG_W) pmap->pm_stats.wired_count -= 1; @@ -1546,6 +1540,7 @@ { pt_entry_t *pte; + PMAP_LOCK_ASSERT(pmap, MA_OWNED); pte = pmap_pte(pmap, va); if (pte == NULL || (*pte & PG_V) == 0) return; @@ -1572,8 +1567,12 @@ if (pmap == NULL) return; + /* + * Perform an unsynchronized read. This is, however, safe. + */ if (pmap->pm_stats.resident_count == 0) return; + PMAP_LOCK(pmap); /* * special handling of removing one page. a very @@ -1584,6 +1583,7 @@ pde = pmap_pde(pmap, sva); if (pde && (*pde & PG_PS) == 0) { pmap_remove_page(pmap, sva); + PMAP_UNLOCK(pmap); return; } } @@ -1654,6 +1654,7 @@ if (anyvalid) pmap_invalidate_all(pmap); + PMAP_UNLOCK(pmap); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 17 04:22:23 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5299D16A4D0; Thu, 17 Jun 2004 04:22:23 +0000 (GMT) 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 1FA1216A4CE for ; Thu, 17 Jun 2004 04:22:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 199C043D55 for ; Thu, 17 Jun 2004 04:22:23 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H4MGYH047649 for ; Thu, 17 Jun 2004 04:22:16 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H4MGWu047643 for perforce@freebsd.org; Thu, 17 Jun 2004 04:22:16 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 04:22:16 GMT Message-Id: <200406170422.i5H4MGWu047643@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 55132 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, 17 Jun 2004 04:22:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=55132 Change 55132 by jmallett@jmallett_oingo on 2004/06/17 04:22:06 Temporarily commit change to make N32 work. ld's emulation scripts aren't up to the challenge of n32 tradmips yet. So I'll be going back on this in a second. Affected files ... .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#5 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#11 edit Differences ... ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#5 (text+ko) ==== ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#11 (text+ko) ==== @@ -1,6 +1,6 @@ # $FreeBSD$ -DEFAULT_VECTOR?= bfd_elf32_tradbigmips_vec +DEFAULT_VECTOR?= bfd_elf32_ntradbigmips_vec SRCS+= cpu-mips.c \ ecofflink.c \ @@ -11,9 +11,15 @@ elf64-target.h \ elf64.c \ elflink.c \ + elfn32-mips.c \ elfxx-mips.c \ elfxx-target.h -VECS+= bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec +VECS+= bfd_elf32_ntradbigmips_vec \ + bfd_elf32_ntradlittlemips_vec \ + bfd_elf32_tradbigmips_vec \ + bfd_elf32_tradlittlemips_vec \ + bfd_elf64_tradbigmips_vec \ + bfd_elf64_tradlittlemips_vec .if ${TARGET_ARCH} == "mips" CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR} From owner-p4-projects@FreeBSD.ORG Thu Jun 17 06:57:40 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1889716A4D0; Thu, 17 Jun 2004 06:57:40 +0000 (GMT) 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 C94FC16A4CE for ; Thu, 17 Jun 2004 06:57:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C306C43D5E for ; Thu, 17 Jun 2004 06:57:39 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H6vRkV086711 for ; Thu, 17 Jun 2004 06:57:27 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H6vQ0k086708 for perforce@freebsd.org; Thu, 17 Jun 2004 06:57:26 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 06:57:26 GMT Message-Id: <200406170657.i5H6vQ0k086708@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 55138 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, 17 Jun 2004 06:57:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=55138 Change 55138 by jmallett@jmallett_oingo on 2004/06/17 06:57:10 Screw the world and switch over to 64-bit ELF. Now I have to do loader, using 32-bit code for elf32, because of braindamage to BU. I'd really rather be doing N32 Elf trad binaries and let GAS let me use 64-bit code without whining... I'd really like to do that. But instead, in order to keep using 64-bit longs and pointers with the C compiler, pacify the lower toolchain and switch to Elf64 - still trad mips though, now that I've figured out *that* mess. So now, without a loader, this won't produce something useful for real hardware, and I won't compromise on being a 64-bit-execution-only port. Tempting to go ahead and switch to XKPHYS, with loader running 32-bit anyway. But then that'd break systems with 32-bit ARCS. Maybe I should just decide I don't care, except that all the systems I have but 1 are 32-bit ARCS. Affected files ... .. //depot/projects/mips/contrib/gcc/config/mips/freebsd.h#13 edit .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#6 edit .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#9 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#12 edit .. //depot/projects/mips/sys/conf/Makefile.mips#15 edit .. //depot/projects/mips/sys/conf/ldscript.mips#5 edit .. //depot/projects/mips/sys/mips/conf/INDY#14 edit Differences ... ==== //depot/projects/mips/contrib/gcc/config/mips/freebsd.h#13 (text+ko) ==== ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#6 (text+ko) ==== @@ -165,13 +165,13 @@ #define MIPS_CPU_STRING_DEFAULT "from-abi" /* Allow use of E_MIPS_ABI_O32 on MIPS targets. */ -#define USE_E_MIPS_ABI_O32 1 +#define USE_E_MIPS_ABI_O32 0 /* Generate 64-bit code by default on MIPS targets. */ #define MIPS_DEFAULT_64BIT 1 /* Choose a default ABI for MIPS targets. */ -#define MIPS_DEFAULT_ABI N32_ABI +#define MIPS_DEFAULT_ABI N64_ABI /* Default architecture. */ #define DEFAULT_ARCH "mips3" ==== //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#9 (text+ko) ==== @@ -3,7 +3,7 @@ TARGET_TUPLE= mips-jmallett-freebsd .if ${TARGET_ARCH} == "mips" -DEFAULT_EMULATION= elf32btsmip +DEFAULT_EMULATION?= elf64btsmip EMULATIONS= elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip HOST= ${TARGET_TUPLE} ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#12 (text+ko) ==== @@ -1,6 +1,6 @@ # $FreeBSD$ -DEFAULT_VECTOR?= bfd_elf32_ntradbigmips_vec +DEFAULT_VECTOR?= bfd_elf64_tradbigmips_vec SRCS+= cpu-mips.c \ ecofflink.c \ ==== //depot/projects/mips/sys/conf/Makefile.mips#15 (text+ko) ==== ==== //depot/projects/mips/sys/conf/ldscript.mips#5 (text+ko) ==== @@ -1,64 +1,126 @@ /* $FreeBSD$ */ -/* Default linker script, for normal executables */ -OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips") +OUTPUT_FORMAT("elf64-tradbigmips", "elf64-tradbigmips", "elf64-tradlittlemips") OUTPUT_ARCH(mips) ENTRY(start) -SEARCH_DIR("/usr/lib"); /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS { - /* Read-only sections, merged into text segment. Assumes the - kernel Makefile sets the start address via -Ttext. */ - .text : + /* Read-only sections, merged into text segment: */ + .MIPS.options : { *(.MIPS.options) } + .dynamic : { *(.dynamic) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .text : { _ftext = . ; - *(.text) + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 - _etext = .; + .fini : + { + KEEP (*(.fini)) + } =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); PROVIDE (etext = .); - .rodata : { *(.rodata) } - .reginfo : { *(.reginfo) } -/* . = . + 0x1000; */ - .data : + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + .eh_frame_hdr : { *(.eh_frame_hdr) } + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + . = ALIGN(0x100000) + (. & (0x100000 - 1)); + .data : { _fdata = . ; - *(.data) - CONSTRUCTORS + *(.data .data.* .gnu.linkonce.d.*) } + .data1 : { *(.data1) } + .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } + .eh_frame : { KEEP (*(.eh_frame)) } + .jcr : { KEEP (*(.jcr)) } _gp = ALIGN(16) + 0x7ff0; - .lit8 : { *(.lit8) } - .lit4 : { *(.lit4) } - .sdata : { *(.sdata) } - _edata = .; + .got : { *(.got.plt) *(.got) } + .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } + .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : + { + *(.sdata .sdata.* .gnu.linkonce.s.*) + } + .lit8 : { *(.lit8) } + .lit4 : { *(.lit4) } + .srdata : { *(.srdata) } + _edata = .; PROVIDE (edata = .); __bss_start = .; _fbss = .; - .sbss : { *(.sbss) *(.scommon) } - .bss : + .sbss : + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } + .bss : { - *(.bss) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(64 / 8); } - _end = . ; + . = ALIGN(64 / 8); + _end = .; PROVIDE (end = .); - /* These are needed for ELF backends which have not yet been - converted to the new style linker. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } /* DWARF debug sections. - Symbols in the .debug DWARF section are relative to the beginning of the - section so we begin .debug at 0. It's not clear yet what needs to happen - for the others. */ + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_sfnames 0 : { *(.debug_sfnames) } - .line 0 : { *(.line) } - /* These must appear regardless of . */ + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } + /DISCARD/ : { *(.note.GNU-stack) } } ==== //depot/projects/mips/sys/mips/conf/INDY#14 (text+ko) ==== @@ -12,7 +12,7 @@ makeoptions MIPSOPTS=-mips3 #Build for a MIPS III -makeoptions TEXTADDR=0x88069000 #Indy +makeoptions TEXTADDR=0xFFFFFFFF88069000 #Indy # Platform support platform sgimips #SGI MIPS systems. From owner-p4-projects@FreeBSD.ORG Thu Jun 17 09:18:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B5A4516A4D0; Thu, 17 Jun 2004 09:18:34 +0000 (GMT) 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 88D0616A4CE for ; Thu, 17 Jun 2004 09:18:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6D21943D1D for ; Thu, 17 Jun 2004 09:18:34 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H9HcrM024834 for ; Thu, 17 Jun 2004 09:17:38 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H9Hb4g024831 for perforce@freebsd.org; Thu, 17 Jun 2004 09:17:37 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 09:17:37 GMT Message-Id: <200406170917.i5H9Hb4g024831@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 55144 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, 17 Jun 2004 09:18:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=55144 Change 55144 by jmallett@jmallett_oingo on 2004/06/17 09:17:00 Take a stab at doing tranditional MIPS support for n32 ABI, and add support for shared stuff to ld's n32 config. Make AS use the N32 ABI. Make LD generate and use the new N32 tradmips stuff. Move BFD back to using ntradmips. Slash and hack ldscript. Untested. Affected files ... .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32bmipn32.sh#8 edit .. //depot/projects/mips/contrib/binutils/ld/emulparams/elf32btsmipn32.sh#1 add .. //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#7 edit .. //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#10 edit .. //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#13 edit .. //depot/projects/mips/sys/conf/ldscript.mips#6 edit Differences ... ==== //depot/projects/mips/contrib/binutils/ld/emulparams/elf32bmipn32.sh#8 (text+ko) ==== @@ -10,7 +10,11 @@ BIG_OUTPUT_FORMAT="elf32-bigmips" LITTLE_OUTPUT_FORMAT="elf32-littlemips" +ARCH=mips +MACHINE= TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=mipself +GENERATE_SHLIB_SCRIPT=yes TEXT_START_ADDR=0x10000000 MAXPAGESIZE=0x100000 ==== //depot/projects/mips/gnu/usr.bin/binutils/as/mips-freebsd/config.h#7 (text+ko) ==== @@ -171,7 +171,7 @@ #define MIPS_DEFAULT_64BIT 1 /* Choose a default ABI for MIPS targets. */ -#define MIPS_DEFAULT_ABI N64_ABI +#define MIPS_DEFAULT_ABI N32_ABI /* Default architecture. */ #define DEFAULT_ARCH "mips3" ==== //depot/projects/mips/gnu/usr.bin/binutils/ld/Makefile.mips#10 (text+ko) ==== @@ -3,8 +3,8 @@ TARGET_TUPLE= mips-jmallett-freebsd .if ${TARGET_ARCH} == "mips" -DEFAULT_EMULATION?= elf64btsmip -EMULATIONS= elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip +DEFAULT_EMULATION?= elf32btsmipn32 +EMULATIONS= elf32btsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip HOST= ${TARGET_TUPLE} CFLAGS+= -DDEFAULT_EMULATION=\"${DEFAULT_EMULATION}\" ==== //depot/projects/mips/gnu/usr.bin/binutils/libbfd/Makefile.mips#13 (text+ko) ==== @@ -1,6 +1,6 @@ # $FreeBSD$ -DEFAULT_VECTOR?= bfd_elf64_tradbigmips_vec +DEFAULT_VECTOR?= bfd_elf32_ntradbigmips_vec SRCS+= cpu-mips.c \ ecofflink.c \ ==== //depot/projects/mips/sys/conf/ldscript.mips#6 (text+ko) ==== @@ -1,6 +1,6 @@ /* $FreeBSD$ */ -OUTPUT_FORMAT("elf64-tradbigmips", "elf64-tradbigmips", "elf64-tradlittlemips") +OUTPUT_FORMAT("elf32-ntradbigmips", "elf32-ntradbigmips", "elf32-ntradlittlemips") OUTPUT_ARCH(mips) ENTRY(start) /* Do we need any of these for elf? From owner-p4-projects@FreeBSD.ORG Thu Jun 17 09:47:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA53116A4D0; Thu, 17 Jun 2004 09:47:38 +0000 (GMT) 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 AED7E16A4CE for ; Thu, 17 Jun 2004 09:47:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A930D43D2F for ; Thu, 17 Jun 2004 09:47:38 +0000 (GMT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5H9lETs030918 for ; Thu, 17 Jun 2004 09:47:14 GMT (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5H9lEhe030915 for perforce@freebsd.org; Thu, 17 Jun 2004 09:47:14 GMT (envelope-from jmallett@freebsd.org) Date: Thu, 17 Jun 2004 09:47:14 GMT Message-Id: <200406170947.i5H9lEhe030915@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 55145 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, 17 Jun 2004 09:47:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=55145 Change 55145 by jmallett@jmallett_oingo on 2004/06/17 09:47:00 Try to get Elf N32 Tradbigmips going. Both the emulator and real hardware are unhappy with one of the PT_LOAD segments: loadable chunk 3 @ 00000000, vaddr 0000000000000000 len=0x21b79 Which is very, very wrong. Affected files ... .. //depot/projects/mips/sys/conf/ldscript.mips#7 edit Differences ... ==== //depot/projects/mips/sys/conf/ldscript.mips#7 (text+ko) ==== @@ -1,83 +1,227 @@ /* $FreeBSD$ */ - OUTPUT_FORMAT("elf32-ntradbigmips", "elf32-ntradbigmips", "elf32-ntradlittlemips") OUTPUT_ARCH(mips) ENTRY(start) +SEARCH_DIR(/usr/lib); /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS { /* Read-only sections, merged into text segment: */ - .MIPS.options : { *(.MIPS.options) } - .dynamic : { *(.dynamic) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .text : + . = . + SIZEOF_HEADERS; + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : + { + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t.*) + } + .rela.text : + { + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t.*) + } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.rodata : + { + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r.*) + } + .rela.rodata : + { + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r.*) + } + .rel.data : + { + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d.*) + } + .rela.data : + { + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d.*) + } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.sdata : + { + *(.rel.sdata) + *(.rel.sdata.*) + *(.rel.gnu.linkonce.s.*) + } + .rela.sdata : + { + *(.rela.sdata) + *(.rela.sdata.*) + *(.rela.gnu.linkonce.s.*) + } + .rel.sbss : + { + *(.rel.sbss) + *(.rel.sbss.*) + *(.rel.gnu.linkonce.sb.*) + } + .rela.sbss : + { + *(.rela.sbss) + *(.rela.sbss.*) + *(.rel.gnu.linkonce.sb.*) + } + .rel.sdata2 : + { + *(.rel.sdata2) + *(.rel.sdata2.*) + *(.rel.gnu.linkonce.s2.*) + } + .rela.sdata2 : + { + *(.rela.sdata2) + *(.rela.sdata2.*) + *(.rela.gnu.linkonce.s2.*) + } + .rel.sbss2 : + { + *(.rel.sbss2) + *(.rel.sbss2.*) + *(.rel.gnu.linkonce.sb2.*) + } + .rela.sbss2 : + { + *(.rela.sbss2) + *(.rela.sbss2.*) + *(.rela.gnu.linkonce.sb2.*) + } + .rel.bss : + { + *(.rel.bss) + *(.rel.bss.*) + *(.rel.gnu.linkonce.b.*) + } + .rela.bss : + { + *(.rela.bss) + *(.rela.bss.*) + *(.rela.gnu.linkonce.b.*) + } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .init : + { + KEEP (*(.init)) + } =0x1000000 + .text : { - _ftext = . ; - *(.text .stub .text.* .gnu.linkonce.t.*) + *(.trap) + *(.text) + *(.text.*) + *(.stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - } =0 - .fini : + *(.gnu.linkonce.t.*) + } =0x1000000 + .fini : { KEEP (*(.fini)) - } =0 + } =0x1000000 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - .eh_frame_hdr : { *(.eh_frame_hdr) } - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ - . = ALIGN(0x100000) + (. & (0x100000 - 1)); - .data : + .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + .reginfo : { *(.reginfo) } + .sdata2 : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) } + .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) } + . = ALIGN(0x2000) + (. & (0x2000 - 1)); + .data : + { + *(.data) + *(.data.*) + *(.gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + } + .data1 : { *(.data1) } + .eh_frame : { KEEP (*(.eh_frame)) } + .gcc_except_table : { *(.gcc_except_table) } + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } + .dtors : { - _fdata = . ; - *(.data .data.* .gnu.linkonce.d.*) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) } - .data1 : { *(.data1) } - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } - .eh_frame : { KEEP (*(.eh_frame)) } - .jcr : { KEEP (*(.jcr)) } + .plt : { *(.plt) } _gp = ALIGN(16) + 0x7ff0; - .got : { *(.got.plt) *(.got) } - .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } - .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } + .got : { *(.got.plt) *(.got) } + .dynamic : { *(.dynamic) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ - .sdata : + .sdata : { - *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata) + *(.sdata.*) + *(.gnu.linkonce.s.*) } - .lit8 : { *(.lit8) } - .lit4 : { *(.lit4) } - .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); __bss_start = .; - _fbss = .; - .sbss : + .sbss : { PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .); *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss) + *(.sbss.*) + *(.gnu.linkonce.sb.*) *(.scommon) PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .); } - .bss : + .bss : { *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) + *(.bss) + *(.bss.*) + *(.gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the @@ -88,13 +232,13 @@ _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } + .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ @@ -108,7 +252,7 @@ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } @@ -120,7 +264,5 @@ .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } - .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } - .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } - /DISCARD/ : { *(.note.GNU-stack) } + /* These must appear regardless of . */ } From owner-p4-projects@FreeBSD.ORG Thu Jun 17 15:42:06 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C8F5816A4D0; Thu, 17 Jun 2004 15:42:05 +0000 (GMT) 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 A4BDA16A4CE for ; Thu, 17 Jun 2004 15:42:05 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F7C343D31 for ; Thu, 17 Jun 2004 15:42:05 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5HFfdA6014832 for ; Thu, 17 Jun 2004 15:41:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5HFfdwC014826 for perforce@freebsd.org; Thu, 17 Jun 2004 15:41:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 17 Jun 2004 15:41:39 GMT Message-Id: <200406171541.i5HFfdwC014826@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 55164 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, 17 Jun 2004 15:42:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=55164 Change 55164 by rwatson@rwatson_tislabs on 2004/06/17 15:41:00 When tearing down a label, assert that it was properly initialized to help catch label corruption and multiple freeing. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac/mac_label.c#4 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac/mac_label.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003 Networks Associates Technology, Inc. + * Copyright (c) 2003-2004 Networks Associates Technology, Inc. * All rights reserved. * * This software was developed for the FreeBSD Project in part by Network @@ -75,6 +75,8 @@ KASSERT(size == sizeof(*label), ("mac_labelzone_dtor: wrong size\n")); label = mem; + KASSERT(label->l_flags & MAC_FLAG_INITIALIZED, + ("mac_labelzone_dtor: label not initialized")); #ifdef DIAGNOSTIC bzero(label, sizeof(*label)); #else From owner-p4-projects@FreeBSD.ORG Thu Jun 17 21:50:06 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4BF4116A4D1; Thu, 17 Jun 2004 21:50:06 +0000 (GMT) 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 0413216A4CF for ; Thu, 17 Jun 2004 21:50:06 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ED99943D49 for ; Thu, 17 Jun 2004 21:50:05 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5HLnUTo009903 for ; Thu, 17 Jun 2004 21:49:30 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5HLnT4o009899 for perforce@freebsd.org; Thu, 17 Jun 2004 21:49:29 GMT (envelope-from peter@freebsd.org) Date: Thu, 17 Jun 2004 21:49:29 GMT Message-Id: <200406172149.i5HLnT4o009899@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 55187 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, 17 Jun 2004 21:50:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=55187 Change 55187 by peter@peter_hammer on 2004/06/17 21:49:24 IFC @55185 Affected files ... .. //depot/projects/hammer/Makefile.inc1#53 integrate .. //depot/projects/hammer/contrib/pf/pfctl/pfctl_parser.c#4 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.sparc64#3 integrate .. //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/sparc64/elf64-sparc.c-bad-rtld.diff#1 branch .. //depot/projects/hammer/lib/libarchive/archive_read_extract.c#11 integrate .. //depot/projects/hammer/lib/libc/posix1e/Makefile.inc#9 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac_get.3#6 integrate .. //depot/projects/hammer/lib/libkvm/kvm_proc.c#18 integrate .. //depot/projects/hammer/libexec/Makefile#23 integrate .. //depot/projects/hammer/libexec/rtld-elf/Makefile#12 integrate .. //depot/projects/hammer/libexec/rtld-elf/arm/Makefile.inc#2 integrate .. //depot/projects/hammer/sbin/geom/class/concat/geom_concat.c#2 integrate .. //depot/projects/hammer/sbin/geom/class/stripe/geom_stripe.c#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_barrier_destroy.3#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_barrierattr.3#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_rwlock_timedrdlock.3#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_rwlock_timedwrlock.3#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_spin_init.3#2 integrate .. //depot/projects/hammer/share/man/man3/pthread_spin_lock.3#2 integrate .. //depot/projects/hammer/share/man/man4/acpi_video.4#2 integrate .. //depot/projects/hammer/share/man/man4/bfe.4#3 integrate .. //depot/projects/hammer/share/man/man4/dcons.4#3 integrate .. //depot/projects/hammer/share/man/man4/dcons_crom.4#3 integrate .. //depot/projects/hammer/share/man/man4/en.4#4 integrate .. //depot/projects/hammer/share/man/man4/fla.4#2 integrate .. //depot/projects/hammer/share/man/man4/gem.4#2 integrate .. //depot/projects/hammer/share/man/man4/harp.4#3 integrate .. //depot/projects/hammer/share/man/man4/hme.4#3 integrate .. //depot/projects/hammer/share/man/man4/idt.4#2 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#83 integrate .. //depot/projects/hammer/sys/arm/arm/nexus_io.c#3 integrate .. //depot/projects/hammer/sys/arm/include/bus.h#3 integrate .. //depot/projects/hammer/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/hammer/sys/arm/sa11x0/sa11x0_io.c#3 integrate .. //depot/projects/hammer/sys/boot/i386/boot0/boot0.S#4 integrate .. //depot/projects/hammer/sys/boot/pc98/libpc98/biosdisk.c#7 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_target.c#10 integrate .. //depot/projects/hammer/sys/coda/coda.h#4 integrate .. //depot/projects/hammer/sys/coda/coda_fbsd.c#9 integrate .. //depot/projects/hammer/sys/coda/coda_venus.c#7 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#14 integrate .. //depot/projects/hammer/sys/compat/linux/linux_stats.c#11 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_socket.c#5 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_socket.h#3 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_stream.c#10 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_types.h#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf.c#9 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_ioctl.c#9 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_norm.c#5 integrate .. //depot/projects/hammer/sys/dev/an/if_an.c#18 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#36 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-cam.c#17 integrate .. //depot/projects/hammer/sys/dev/cp/if_cp.c#4 integrate .. //depot/projects/hammer/sys/dev/ctau/if_ct.c#5 integrate .. //depot/projects/hammer/sys/dev/cx/if_cx.c#9 integrate .. //depot/projects/hammer/sys/dev/cy/cy.c#7 integrate .. //depot/projects/hammer/sys/dev/dcons/dcons.c#6 integrate .. //depot/projects/hammer/sys/dev/digi/digi.c#11 integrate .. //depot/projects/hammer/sys/dev/firewire/fwdev.c#15 integrate .. //depot/projects/hammer/sys/dev/led/led.c#9 integrate .. //depot/projects/hammer/sys/dev/nmdm/nmdm.c#13 integrate .. //depot/projects/hammer/sys/dev/snp/snp.c#10 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/dsp.c#13 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/mixer.c#8 integrate .. //depot/projects/hammer/sys/dev/syscons/syscons.c#19 integrate .. //depot/projects/hammer/sys/dev/vinum/vinum.c#11 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumconfig.c#14 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumio.c#15 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#12 integrate .. //depot/projects/hammer/sys/fs/specfs/spec_vnops.c#21 integrate .. //depot/projects/hammer/sys/geom/geom_dev.c#23 integrate .. //depot/projects/hammer/sys/i386/i386/bios.c#15 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#37 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_node.h#5 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_rrip.c#6 integrate .. //depot/projects/hammer/sys/kern/kern_acct.c#15 integrate .. //depot/projects/hammer/sys/kern/kern_conf.c#15 integrate .. //depot/projects/hammer/sys/kern/kern_proc.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_shutdown.c#14 integrate .. //depot/projects/hammer/sys/kern/tty_cons.c#14 integrate .. //depot/projects/hammer/sys/kern/tty_pty.c#16 integrate .. //depot/projects/hammer/sys/kern/tty_tty.c#8 integrate .. //depot/projects/hammer/sys/kern/uipc_usrreq.c#16 integrate .. //depot/projects/hammer/sys/kern/vfs_bio.c#32 integrate .. //depot/projects/hammer/sys/kern/vfs_mount.c#27 integrate .. //depot/projects/hammer/sys/kern/vfs_subr.c#41 integrate .. //depot/projects/hammer/sys/net/bpf.c#19 integrate .. //depot/projects/hammer/sys/net/if_tap.c#15 integrate .. //depot/projects/hammer/sys/net/if_tun.c#17 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#12 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#7 integrate .. //depot/projects/hammer/sys/netsmb/smb_dev.c#8 integrate .. //depot/projects/hammer/sys/nfs4client/nfs4_vn_subs.c#2 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_subs.c#14 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_serv.c#14 integrate .. //depot/projects/hammer/sys/sys/_types.h#10 integrate .. //depot/projects/hammer/sys/sys/acct.h#4 integrate .. //depot/projects/hammer/sys/sys/conf.h#14 integrate .. //depot/projects/hammer/sys/sys/param.h#35 integrate .. //depot/projects/hammer/sys/sys/snoop.h#4 integrate .. //depot/projects/hammer/sys/sys/stat.h#9 integrate .. //depot/projects/hammer/sys/sys/systm.h#19 integrate .. //depot/projects/hammer/sys/sys/tty.h#9 integrate .. //depot/projects/hammer/sys/sys/types.h#17 integrate .. //depot/projects/hammer/sys/sys/user.h#11 integrate .. //depot/projects/hammer/sys/sys/vnode.h#26 integrate .. //depot/projects/hammer/sys/vm/swap_pager.c#24 integrate .. //depot/projects/hammer/sys/vm/vm_page.c#28 integrate .. //depot/projects/hammer/sys/vm/vm_param.h#4 integrate .. //depot/projects/hammer/usr.bin/fstat/fstat.c#8 integrate .. //depot/projects/hammer/usr.bin/fstat/fstat.h#3 integrate .. //depot/projects/hammer/usr.bin/pkill/pkill.c#3 integrate .. //depot/projects/hammer/usr.sbin/boot0cfg/boot0cfg.8#5 integrate .. //depot/projects/hammer/usr.sbin/pw/psdate.c#2 integrate .. //depot/projects/hammer/usr.sbin/pw/pw_user.c#4 integrate .. //depot/projects/hammer/usr.sbin/pw/pw_vpw.c#2 integrate Differences ... ==== //depot/projects/hammer/Makefile.inc1#53 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.427 2004/05/17 16:19:51 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.430 2004/06/17 08:06:41 obrien Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -62,7 +62,10 @@ .if !defined(NOSHARE) SUBDIR+=share .endif -SUBDIR+=sys usr.bin usr.sbin etc +.if ${MACHINE_ARCH} != "alpha" +SUBDIR+=sys +.endif +SUBDIR+=usr.bin usr.sbin etc # These are last, since it is nice to at least get the base system # rebuilt before you do them. ==== //depot/projects/hammer/contrib/pf/pfctl/pfctl_parser.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/contrib/pf/pfctl/pfctl_parser.c,v 1.5 2004/06/16 23:39:31 mlaier Exp $"); +__FBSDID("$FreeBSD: src/contrib/pf/pfctl/pfctl_parser.c,v 1.6 2004/06/17 15:23:51 mlaier Exp $"); #include #include @@ -556,7 +556,7 @@ s->src_nodes, ""); for (i = 0; i < SCNT_MAX; i++) { printf(" %-25s %14lld ", pf_scounters[i], - s->scounters[i]); + (unsigned long long)s->scounters[i]); if (runtime > 0) printf("%14.1f/s\n", (double)s->scounters[i] / (double)runtime); ==== //depot/projects/hammer/gnu/usr.bin/binutils/libbfd/Makefile.sparc64#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.sparc64,v 1.7 2002/12/02 09:59:05 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.sparc64,v 1.8 2004/06/17 16:08:20 obrien Exp $ DEFAULT_VECTOR= bfd_elf64_sparc_vec @@ -7,7 +7,7 @@ elf32-sparc.c \ elf32-target.h \ elf32.c \ - elf64-sparc.c \ + elf64-sparc%FIXED.c \ elf64-target.h \ elf64.c \ elflink.c \ @@ -25,3 +25,8 @@ elf64-target.h: elfxx-target.h sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} + +CLEANFILES+= elf64-sparc%FIXED.c +elf64-sparc%FIXED.c: elf64-sparc.c elf64-sparc.c-bad-rtld.diff + cp ${.ALLSRC:M*.c} ${.TARGET} + patch -b .orig < ${.ALLSRC:M*.diff} ==== //depot/projects/hammer/lib/libarchive/archive_read_extract.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.18 2004/06/15 07:12:04 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.19 2004/06/17 03:09:06 kientzle Exp $"); #include #include @@ -336,7 +336,9 @@ } set_ownership(a, entry, flags); set_time(a, entry, flags); - set_perm(a, entry, archive_entry_mode(entry), flags); + /* Always restore permissions for regular files. */ + set_perm(a, entry, archive_entry_mode(entry), + flags | ARCHIVE_EXTRACT_PERM); set_extended_perm(a, entry, flags); close(fd); return (r); ==== //depot/projects/hammer/lib/libc/posix1e/Makefile.inc#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.15 2003/04/20 03:18:44 rwatson Exp $ +# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.16 2004/06/17 16:08:36 rwatson Exp $ MAINTAINER= rwatson@FreeBSD.org @@ -75,6 +75,7 @@ extattr.3 extattr_string_to_namespace.3 \ mac_get.3 mac_get_fd.3 \ mac_get.3 mac_get_file.3 \ + mac_get.3 mac_get_link.3 \ mac_get.3 mac_get_pid.3 \ mac_get.3 mac_get_proc.3 \ mac_prepare.3 mac_prepare_file_label.3 \ ==== //depot/projects/hammer/lib/libc/posix1e/mac_get.3#6 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2001 Networks Associates Technology, Inc. +.\" Copyright (c) 2001, 2004 Networks Associates Technology, Inc. .\" All rights reserved. .\" .\" This software was developed for the FreeBSD Project by Chris @@ -28,13 +28,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/posix1e/mac_get.3,v 1.8 2003/11/16 20:18:24 rwatson Exp $ +.\" $FreeBSD: src/lib/libc/posix1e/mac_get.3,v 1.9 2004/06/17 16:08:36 rwatson Exp $ .\" .Dd December 21, 2001 .Dt MAC_GET 3 .Os .Sh NAME .Nm mac_get_file , +.Nm mac_get_link , .Nm mac_get_fd , .Nm mac_get_proc .Nd get the label of a file, socket, socket peer or process @@ -45,6 +46,8 @@ .Ft int .Fn mac_get_file "const char *path" "mac_t label" .Ft int +.Fn mac_get_link "const char *path" "mac_t label" +.Ft int .Fn mac_get_fd "int fd" "mac_t label" .Ft int .Fn mac_get_peer "int fd" "mac_t label" @@ -57,6 +60,11 @@ .Fn mac_get_file system call returns the label associated with a file specified by pathname. +The +.Fn mac_get_link +function is the same as +.Fn mac_get_file , +except that it does not follow symlinks. .Pp The .Fn mac_get_fd ==== //depot/projects/hammer/lib/libkvm/kvm_proc.c#18 (text+ko) ==== @@ -42,7 +42,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libkvm/kvm_proc.c,v 1.74 2004/06/16 00:34:31 julian Exp $"); +__FBSDID("$FreeBSD: src/lib/libkvm/kvm_proc.c,v 1.75 2004/06/17 17:16:39 phk Exp $"); /* * Proc traversal interface for kvm. ps and w are (probably) the exclusive @@ -251,7 +251,7 @@ "can't read tty at %x", sess.s_ttyp); return (-1); } - kp->ki_tdev = tty.t_dev; + kp->ki_tdev = tty.t_dev; /* XXX: wrong */ if (tty.t_pgrp != NULL) { if (KREAD(kd, (u_long)tty.t_pgrp, &pgrp)) { _kvm_err(kd, kd->program, ==== //depot/projects/hammer/libexec/Makefile#23 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/libexec/Makefile,v 1.65 2004/03/08 22:03:28 mlaier Exp $ +# $FreeBSD: src/libexec/Makefile,v 1.67 2004/06/17 16:08:19 obrien Exp $ SUBDIR= atrun \ bootpd \ ==== //depot/projects/hammer/libexec/rtld-elf/Makefile#12 (text+ko) ==== @@ -1,12 +1,9 @@ -# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.29 2004/05/15 00:13:14 cognet Exp $ +# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.31 2004/06/17 19:01:53 cognet Exp $ PROG?= ld-elf.so.1 -# XXX: Hopefully this won't be needed after the next binutils import. -.if ${MACHINE_ARCH} != "arm" SRCS= rtld_start.S \ reloc.c rtld.c rtld_lock.c map_object.c \ malloc.c xmalloc.c debug.c libmap.c -.endif MAN= rtld.1 CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD ==== //depot/projects/hammer/libexec/rtld-elf/arm/Makefile.inc#2 (text+ko) ==== @@ -1,3 +1,1 @@ -# $FreeBSD: src/libexec/rtld-elf/arm/Makefile.inc,v 1.2 2004/05/15 00:13:14 cognet Exp $ -SRCS= reloc.c rtld.c rtld_start.S rtld_lock.c map_object.c \ - malloc.c xmalloc.c debug.c libmap.c +# $FreeBSD: src/libexec/rtld-elf/arm/Makefile.inc,v 1.3 2004/06/17 17:53:16 cognet Exp $ ==== //depot/projects/hammer/sbin/geom/class/concat/geom_concat.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/geom/class/concat/geom_concat.c,v 1.1 2004/05/20 10:24:22 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/geom/class/concat/geom_concat.c,v 1.2 2004/06/17 06:04:14 pjd Exp $"); #include #include @@ -153,8 +153,8 @@ concat_metadata_encode(&md, sector); error = g_metadata_store(name, sector, sizeof(sector)); if (error != 0) { - fprintf(stderr, "Can't store metadata on %s: %s.", name, - strerror(error)); + fprintf(stderr, "Can't store metadata on %s: %s.\n", + name, strerror(error)); gctl_error(req, "Not fully done."); continue; } @@ -187,8 +187,8 @@ error = g_metadata_clear(name, G_CONCAT_MAGIC); if (error != 0) { - fprintf(stderr, "Can't clear metadata on %s: %s.", name, - strerror(error)); + fprintf(stderr, "Can't clear metadata on %s: %s.\n", + name, strerror(error)); gctl_error(req, "Not fully done."); continue; } ==== //depot/projects/hammer/sbin/geom/class/stripe/geom_stripe.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/geom/class/stripe/geom_stripe.c,v 1.1 2004/05/20 10:24:23 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/geom/class/stripe/geom_stripe.c,v 1.2 2004/06/17 06:04:14 pjd Exp $"); #include #include @@ -172,8 +172,8 @@ stripe_metadata_encode(&md, sector); error = g_metadata_store(name, sector, sizeof(sector)); if (error != 0) { - fprintf(stderr, "Can't store metadata on %s: %s.", name, - strerror(error)); + fprintf(stderr, "Can't store metadata on %s: %s.\n", + name, strerror(error)); gctl_error(req, "Not fully done."); continue; } @@ -206,8 +206,8 @@ error = g_metadata_clear(name, G_STRIPE_MAGIC); if (error != 0) { - fprintf(stderr, "Can't clear metadata on %s: %s.", name, - strerror(error)); + fprintf(stderr, "Can't clear metadata on %s: %s.\n", + name, strerror(error)); gctl_error(req, "Not fully done."); continue; } ==== //depot/projects/hammer/share/man/man3/pthread_barrier_destroy.3#2 (text+ko) ==== @@ -22,15 +22,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_barrier_destroy.3,v 1.1 2004/02/19 13:51:52 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_barrier_destroy.3,v 1.2 2004/06/17 17:51:17 ru Exp $ .\" -.\" Note: The date here should be updated whenever a non-trivial -.\" change is made to the manual page. .Dd February 19, 2004 -.Dt PTHREAD_BARRIER_DESTROY 3 PTHREAD_BARRIER_INIT 3 PTHREAD_BARRIER_WAIT 3 +.Dt PTHREAD_BARRIER 3 .Os .Sh NAME -.Nm pthread_barrier_destroy pthread_barrier_init pthread_barrier_wait +.Nm pthread_barrier_destroy , pthread_barrier_init , pthread_barrier_wait .Nd "destroy, initialize or wait on a barrier object" .Sh LIBRARY .Lb libpthread @@ -50,7 +48,8 @@ .Fa barrier with attributes specified in .Fa attr , -or if it is NULL, +or if it is +.Dv NULL , with default attributes. The number of threads that must call .Fn pthread_barrier_wait @@ -76,27 +75,31 @@ argument to .Fn pthread_barrier_init . Once the threads have been released the barrier will be reset. -.Sh DIAGNOSTICS +.Sh RETURN VALUES If successful, both .Fn pthread_barrier_destroy and .Fn pthread_barrier_init will return zero. -Otherwise an error number will be returned to indicate the error. +Otherwise, an error number will be returned to indicate the error. If the call to .Fn pthread_barrier_wait -is successful all but one of the threads will return zero. -That one thread will return PTHREAD_BARRIER_SERIAL_THREAD. -Otherwise an error number will be returned to indicate the error. +is successful, all but one of the threads will return zero. +That one thread will return +.Dv PTHREAD_BARRIER_SERIAL_THREAD . +Otherwise, an error number will be returned to indicate the error. .Pp -None of these functions will return EINTR. +None of these functions will return +.Er EINTR . .Sh IMPLIMENTATION NOTES In both .Lb libpthread and .Lb libthr -the PTHREAD_BARRIER_SERIAL_THREAD return value will +the +.Dv PTHREAD_BARRIER_SERIAL_THREAD +return value will always be returned by the last thread to reach the barrier. .Sh ERRORS The @@ -139,7 +142,6 @@ .Fa barrier . .El .Sh SEE ALSO -.Xr pthread_barrier_wait 3 , .Xr pthread_barrierattr 3 .Sh HISTORY The ==== //depot/projects/hammer/share/man/man3/pthread_barrierattr.3#2 (text+ko) ==== @@ -22,16 +22,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_barrierattr.3,v 1.1 2004/02/19 13:51:52 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_barrierattr.3,v 1.2 2004/06/17 17:51:17 ru Exp $ .\" -.\" Note: The date here should be updated whenever a non-trivial -.\" change is made to the manual page. .Dd February 19, 2004 -.Dt PTHREAD_BARRIERATTR_DESTROY 3 PTHREAD_BARRIERATTR_GETPSHARED 3 PTHREAD_BARRIERATTR_INIT 3 PTHREAD_BARRIERATTR_SETPSHARED 3 +.Dt PTHREAD_BARRIERATTR 3 .Os .Sh NAME -.Nm pthread_barrierattr_destroy pthread_barrierattr_getpshared -.Nm pthread_barrierattr_init pthread_barrierattr_setpshared +.Nm pthread_barrierattr_destroy , pthread_barrierattr_getpshared , +.Nm pthread_barrierattr_init , pthread_barrierattr_setpshared .Nd "manipulate a barrier attribute object" .Sh LIBRARY .Lb libpthread @@ -69,7 +67,7 @@ function will set the process-shared attribute of .Fa attr to the value specified in -.Fa pshared. +.Fa pshared . The argument .Fa pshared may have one of the following values: @@ -81,12 +79,12 @@ The barrier object it is attached to may be accessed by threads in processes other than the one that created the object. .El -.Sh DIAGNOSTICS -If successful all these functions will return zero. -Otherwise an error number will be returned to indicate the error. +.Sh RETURN VALUES +If successful, all these functions will return zero. +Otherwise, an error number will be returned to indicate the error. .Pp -None of these functions will return EINTR. -.Pp +None of these functions will return +.Er EINTR . .Sh ERRORS The .Fn pthread_barrierattr_destroy , @@ -122,10 +120,10 @@ .Sh SEE ALSO .Xr pthread_barrier_destroy 3 , .Xr pthread_barrier_init 3 , -.Xr pthread_barrier_wait 3 , +.Xr pthread_barrier_wait 3 .Sh HISTORY The -.Fn pthread_barrierattr +.Fn pthread_barrierattr_* functions first appeared in .Lb libpthread in @@ -136,15 +134,16 @@ .Fx 5.3 . .Sh BUGS The implementation of -.Fn pthread_barriers +barriers does not fully conform to .St -p1003.2 because the process-shared attribute is ignored in .Lb libthr , and in -.Lb libpthread +.Lb libpthread ; if any value other than .Dv PTHREAD_PROCESSES_PRIVATE is specified in a call to -.Fn pthread_barrierattr_setpshared -it will return EINVAL. +.Fn pthread_barrierattr_setpshared , +it will return +.Er EINVAL . ==== //depot/projects/hammer/share/man/man3/pthread_rwlock_timedrdlock.3#2 (text+ko) ==== @@ -22,14 +22,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_rwlock_timedrdlock.3,v 1.1 2004/01/16 10:52:10 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_rwlock_timedrdlock.3,v 1.2 2004/06/17 17:49:30 ru Exp $ .\" .Dd January 16, 2004 .Dt PTHREAD_RWLOCK_TIMEDRDLOCK 3 .Os .Sh NAME -.Nm pthread_rwlock_timedrdlock , -.Nd acquire a read-write lock for reading or give up after a specified period +.Nm pthread_rwlock_timedrdlock +.Nd "acquire a read-write lock for reading or give up after a specified period" .Sh LIBRARY .Lb libpthread .Lb libthr @@ -47,15 +47,14 @@ .Fa abs_timeout expires. .Pp -.Pp A thread may hold multiple concurrent read locks. The -.Fn pthread_rwlock_unlock +.Xr pthread_rwlock_unlock 3 function must be called once for each lock acquired. .Pp If the thread should be interrupted by a signal, the -.Fn pthread_rwlock_wrlock +.Fn pthread_rwlock_timedrdlock function will be automatically restarted after the thread returns from the signal handler. .Pp @@ -69,17 +68,18 @@ .Sh RETURN VALUES If successful, the .Fn pthread_rwlock_timedrdlock -function will return zero. Otherwise an error number will be returned -to indicate the error. +function will return zero. +Otherwise, an error number will be returned to indicate the error. .Pp -This function shall not return an error code of EINTR. +This function shall not return an error code of +.Er EINTR . .Sh ERRORS The .Fn pthread_rwlock_timedrdlock function will fail if: .Bl -tag -width Er .It Bq Er ETIMEDOUT -The lock could not be acquired before the specified timeout expired +The lock could not be acquired before the specified timeout expired. .El .Pp The @@ -99,13 +99,14 @@ .Fa rwlock does not refer to an initialized read-write lock object, or the -.Fa abs_timeout nanosecond value is less than zero or +.Fa abs_timeout +nanosecond value is less than zero or greater than or equal to 1 billion. .El .Sh SEE ALSO .Xr pthread_rwlock_init 3 , -.Xr pthread_rwlock_timedwrlock 3 -.Xr pthread_rwlock_unlock 3 , +.Xr pthread_rwlock_timedwrlock 3 , +.Xr pthread_rwlock_unlock 3 .Sh STANDARDS The .Fn pthread_rwlock_timedrdlock ==== //depot/projects/hammer/share/man/man3/pthread_rwlock_timedwrlock.3#2 (text+ko) ==== @@ -22,14 +22,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_rwlock_timedwrlock.3,v 1.1 2004/01/16 10:52:10 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_rwlock_timedwrlock.3,v 1.2 2004/06/17 17:49:30 ru Exp $ .\" .Dd January 16, 2004 .Dt PTHREAD_RWLOCK_TIMEDWRLOCK 3 .Os .Sh NAME -.Nm pthread_rwlock_timedwrlock , -.Nd acquire a read-write lock for writing or give up after a specified period +.Nm pthread_rwlock_timedwrlock +.Nd "acquire a read-write lock for writing or give up after a specified period" .Sh LIBRARY .Lb libpthread .Lb libthr @@ -49,9 +49,9 @@ .Pp If the thread should be interrupted by a signal, the -.Fn pthread_rwlock_wrlock +.Fn pthread_rwlock_timedwrlock function will be automatically restarted after the thread returns from -the signal handler. +the signal handler. .Pp The calling thread may deadlock if at the time the call is made it holds @@ -63,17 +63,18 @@ .Sh RETURN VALUES If successful, the .Fn pthread_rwlock_timedwrlock -function will return zero. Otherwise an error number will be returned -to indicate the error. +function will return zero. +Otherwise, an error number will be returned to indicate the error. .Pp -This function shall not return an error code of EINTR. +This function shall not return an error code of +.Er EINTR . .Sh ERRORS The .Fn pthread_rwlock_timedwrlock function shall fail if: .Bl -tag -width Er .It Bq Er ETIMEDOUT -The lock could not be acquired before the specified timeout expired +The lock could not be acquired before the specified timeout expired. .El .Pp The @@ -88,13 +89,14 @@ .Fa rwlock does not refer to an initialized read-write lock object, or the -.Fa abs_timeout nanosecond value is less than zero or +.Fa abs_timeout +nanosecond value is less than zero or greater than or equal to 1 billion. .El .Sh SEE ALSO .Xr pthread_rwlock_init 3 , -.Xr pthread_rwlock_timedrdlock 3 -.Xr pthread_rwlock_unlock 3 , +.Xr pthread_rwlock_timedrdlock 3 , +.Xr pthread_rwlock_unlock 3 .Sh STANDARDS The .Fn pthread_rwlock_timedwrlock ==== //depot/projects/hammer/share/man/man3/pthread_spin_init.3#2 (text+ko) ==== @@ -22,15 +22,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_spin_init.3,v 1.1 2004/01/22 15:31:56 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_spin_init.3,v 1.2 2004/06/17 17:51:17 ru Exp $ .\" -.\" Note: The date here should be updated whenever a non-trivial -.\" change is made to the manual page. .Dd January 22, 2004 -.Dt PTHREAD_SPIN_INIT 3 PTHREAD_SPIN_DESTROY 3 +.Dt PTHREAD_SPIN_INIT 3 .Os .Sh NAME -.Nm pthread_spin_init pthread_spin_destroy +.Nm pthread_spin_init , pthread_spin_destroy .Nd "initialize or destroy a spin lock" .Sh LIBRARY .Lb libpthread @@ -51,15 +49,15 @@ If .Fa pshared is set to -.Dv PTHREAD_PROCESS_SHARED +.Dv PTHREAD_PROCESS_SHARED , any thread, whether belonging to the process in which the spinlock was created or not, that has access to the memory area where .Fa lock -resides can use +resides, can use .Fa lock . If it is set to -.Dv PTHREAD_PROCESS_PRIVATE +.Dv PTHREAD_PROCESS_PRIVATE , it can only be used by threads within the same process. .Pp The @@ -67,18 +65,17 @@ function will destroy .Fa lock and release any resources that may have been allocated on its behalf. -.Pp -.Sh DIAGNOSTICS +.Sh RETURN VALUES If successful, both .Fn pthread_spin_init and .Fn pthread_spin_destroy will return zero. -Otherwise an error number will be returned to indicate the error. +Otherwise, an error number will be returned to indicate the error. .Pp -Neither of these functions will return EINTR. -.Pp +Neither of these functions will return +.Er EINTR . .Sh ERRORS The .Fn pthread_spin_init @@ -138,4 +135,5 @@ .Lb libpthread if any value other than .Dv PTHREAD_PROCESSES_PRIVATE -is specified it returns EINVAL. +is specified, it returns +.Er EINVAL . ==== //depot/projects/hammer/share/man/man3/pthread_spin_lock.3#2 (text+ko) ==== @@ -22,12 +22,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/pthread_spin_lock.3,v 1.1 2004/01/22 15:31:56 mtm Exp $ +.\" $FreeBSD: src/share/man/man3/pthread_spin_lock.3,v 1.2 2004/06/17 17:51:17 ru Exp $ .\" -.\" Note: The date here should be updated whenever a non-trivial -.\" change is made to the manual page. .Dd January 22, 2004 -.Dt PTHREAD_SPIN_LOCK 3 PTHREAD_SPIN_TRYLOCK 3 PTHREAD_SPIN_UNLOCK 3 +.Dt PTHREAD_SPIN_LOCK 3 .Os .Sh NAME .Nm pthread_spin_lock pthread_spin_trylock pthread_spin_unlock @@ -49,7 +47,7 @@ function will acquire .Fa lock if it is not currently owned by another thread. -If the lock cannot be acquired immediately it will +If the lock cannot be acquired immediately, it will spin attempting to acquire the lock (it will not sleep) until it becomes available. .Pp @@ -69,12 +67,12 @@ .Fn pthread_spin_lock or .Fn pthread_spin_trylock . -.Sh DIAGNOSTICS -If successful all these functions will return zero. -Otherwise an error number will be returned to indicate the error. +.Sh RETURN VALUES +If successful, all these functions will return zero. +Otherwise, an error number will be returned to indicate the error. .Pp -None of these functions will return EINTR. -.Pp +None of these functions will return +.Er EINTR . .Sh ERRORS The .Fn pthread_spin_lock , @@ -115,8 +113,8 @@ .Fa lock . .El .Sh SEE ALSO -.Xr pthread_spin_init 3 , -.Xr pthread_spin_destroy 3 +.Xr pthread_spin_destroy 3 , +.Xr pthread_spin_init 3 .Sh HISTORY The .Fn pthread_spin_lock , ==== //depot/projects/hammer/share/man/man4/acpi_video.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/acpi_video.4,v 1.1 2004/03/03 16:34:03 njl Exp $ +.\" $FreeBSD: src/share/man/man4/acpi_video.4,v 1.2 2004/06/17 19:51:17 ru Exp $ .\" -.Dd March 03, 2004 +.Dd March 3, 2004 .Dt ACPI_VIDEO 4 .Os .Sh NAME @@ -38,20 +38,25 @@ backlight brightness. The availability of the .Xr sysctl 8 -variables depends on the functions offered by the hosts ACPI implementation. +variables depends on the functions offered by the host's ACPI implementation. .Sh SYSCTLS The following sysctls are currently implemented, -where is "crt", "lcd" or "tv": +where +.Aq Ar device +is +.Va crt , lcd , +or +.Va tv : .Bl -tag -width indent -.It Va hw.acpi.video..active +.It Va hw.acpi.video. Ns Ao Ar device Ac Ns Va .active Current state of the device. -.It Va hw.acpi.video..levels +.It Va hw.acpi.video. Ns Ao Ar device Ac Ns Va .levels List of supported brightness levels. -.It Va hw.acpi.video..brightness +.It Va hw.acpi.video. Ns Ao Ar device Ac Ns Va .brightness Current brightness level of the device. -.It Va hw.acpi.video..fullpower +.It Va hw.acpi.video. Ns Ao Ar device Ac Ns Va .fullpower Preset brightness level to be used in full power mode. -.It Va hw.acpi.video..economy +.It Va hw.acpi.video. Ns Ao Ar device Ac Ns Va .economy Preset brightness level to be used in economy mode. .El .Pp ==== //depot/projects/hammer/share/man/man4/bfe.4#3 (text+ko) ==== @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/bfe.4,v 1.2 2004/03/02 18:30:25 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/bfe.4,v 1.3 2004/06/17 19:51:17 ru Exp $ .\" .Dd September 4, 2003 .Dt BFE 4 @@ -42,28 +42,25 @@ The .Nm driver supports the following media types: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It autoselect -Enable autoselection of the media type and options -.It 10baseT/UTP -Set 10Mbps operation -.It 100baseTX -Set 100Mbps (fast ethernet) operation +.Bl -tag -width ".Cm 10baseT/UTP" +.It Cm autoselect +Enable autoselection of the media type and options. +.It Cm 10baseT/UTP +Set 10Mbps operation. +.It Cm 100baseTX +Set 100Mbps (Fast Ethernet) operation. .El .Pp The .Nm driver supports the following media options: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It full-duplex -Set full duplex operation +.Bl -tag -width ".Cm full-duplex" +.It Cm full-duplex +Set full duplex operation. .El .Pp For further information on configuring this device, see .Xr ifconfig 8 . -.Pp .Sh DIAGNOSTICS .Bl -diag .It "bfe%d: couldn't map memory" ==== //depot/projects/hammer/share/man/man4/dcons.4#3 (text+ko) ==== @@ -22,8 +22,7 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/dcons.4,v 1.4 2003/12/27 15:14:58 brueffer Exp $ -.\" +.\" $FreeBSD: src/share/man/man4/dcons.4,v 1.5 2004/06/17 19:51:17 ru Exp $ .\" .Dd February 11, 2003 .Dt DCONS 4 @@ -42,7 +41,7 @@ The .Nm device is a simple console device which just reads from and writes to -an allocated buffer for input and output respectivly. +an allocated buffer for input and output respectively. It is of no use by itself and it is supposed that the buffer is accessed via a bus like .Xr firewire 4 @@ -51,17 +50,20 @@ for interaction. .Pp The buffer consists of 4 channels. -There are 2 ports, one for the console tty and other is GDB ports then each port -has an input channel and an output channel. -.Sh EXAMPLE +There are 2 ports, one for the console TTY and another is GDB port, +then each port has an input channel and an output channel. +.Sh EXAMPLES If you want to run .Xr getty 8 -on dcons, insert the following line into +on +.Nm , +insert the following line into .Xr /etc/ttys 5 -and -send a HUP signal to +and send a +.Dv HUP +signal to .Xr init 8 -using +using .Xr kill 1 . .Bd -literal -offset indent dcons "/usr/libexec/getty std.9600" vt100 on secure @@ -70,12 +72,14 @@ Once the >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Jun 17 23:57:23 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 341EF16A4D0; Thu, 17 Jun 2004 23:57:23 +0000 (GMT) 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 F0DAE16A4CE for ; Thu, 17 Jun 2004 23:57:22 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E80EF43D1D for ; Thu, 17 Jun 2004 23:57:22 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5HNuhKs038426 for ; Thu, 17 Jun 2004 23:56:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5HNuX7R038421 for perforce@freebsd.org; Thu, 17 Jun 2004 23:56:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 17 Jun 2004 23:56:33 GMT Message-Id: <200406172356.i5HNuX7R038421@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 55197 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, 17 Jun 2004 23:57:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=55197 Change 55197 by rwatson@rwatson_paprika on 2004/06/17 23:56:18 Integrate netperf_socket to loop back in additional socket and socket buffer locking, raw_cb locking, conversions to conditional giant assertions in a number of places in the network stack, locking annotations for socket and socket buffer, . Also included are udev_t/dev_t changes, better clock_gettime(), nice moves to process from kseseg, a UFS deadlock fix, pf import, ATA stability fixes, etc. Affected files ... .. //depot/projects/netperf_socket/sys/alpha/alpha/mem.c#5 integrate .. //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#9 integrate .. //depot/projects/netperf_socket/sys/alpha/alpha/promcons.c#5 integrate .. //depot/projects/netperf_socket/sys/alpha/include/cpu.h#3 integrate .. //depot/projects/netperf_socket/sys/alpha/tlsb/zs_tlsb.c#5 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#5 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#14 integrate .. //depot/projects/netperf_socket/sys/amd64/include/cpu.h#3 integrate .. //depot/projects/netperf_socket/sys/arm/arm/nexus_io.c#2 integrate .. //depot/projects/netperf_socket/sys/arm/include/bus.h#2 integrate .. //depot/projects/netperf_socket/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/netperf_socket/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/i386/boot0/boot0.S#4 integrate .. //depot/projects/netperf_socket/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/netperf_socket/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/dinode.h#3 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/inode.h#3 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/netperf_socket/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/netperf_socket/sys/coda/cnode.h#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda.h#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_fbsd.c#4 integrate .. //depot/projects/netperf_socket/sys/coda/coda_psdev.c#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_psdev.h#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_venus.c#3 integrate .. //depot/projects/netperf_socket/sys/coda/coda_venus.h#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_vnops.c#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_vnops.h#2 integrate .. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_stats.c#4 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_socket.c#2 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_socket.h#2 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_types.h#3 integrate .. //depot/projects/netperf_socket/sys/conf/files#27 integrate .. //depot/projects/netperf_socket/sys/contrib/altq/altq/altq_subr.c#4 integrate .. //depot/projects/netperf_socket/sys/contrib/dev/fla/fla.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/ipfilter/netinet/ip_fil.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate .. //depot/projects/netperf_socket/sys/contrib/ipfilter/netinet/mlfk_ipl.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#7 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.h#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#7 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.h#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf.c#9 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_if.c#1 branch .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_ioctl.c#8 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_norm.c#5 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_osfp.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_subr.c#1 branch .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_table.c#3 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pfvar.h#4 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/netinet/in4_cksum.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/aac/aac.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/aac/aacvar.h#5 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#25 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#15 integrate .. //depot/projects/netperf_socket/sys/dev/adlink/adlink.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/amr/amr.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/amr/amrvar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/an/if_an.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/asr/asr.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-pci.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-pci.h#7 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-cam.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-tape.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-tape.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_core.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_core.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_os.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_reg.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/ciss/ciss.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/ciss/cissvar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/cp/if_cp.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ctau/if_ct.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/cx/if_cx.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/cy/cy.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/dcons/dcons.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/digi/digi.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/digi/digi.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drmP.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_drv.h#5 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_fops.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_os_freebsd.h#5 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_vm.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/fb/vga.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/fb/vgareg.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/firewirereg.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/fwdev.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/fwmem.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/fwohci.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/sbp.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/gfb/gfb_pci.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/ida/ida.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/ida/idavar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/iicbus/iic.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/iir/iir.h#6 integrate .. //depot/projects/netperf_socket/sys/dev/iir/iir_ctrl.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ips/ips.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/ips/ips.h#6 integrate .. //depot/projects/netperf_socket/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/joy/joy.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/joy/joyvar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/kbd/kbd.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/kbd/kbdreg.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/led/led.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/led/led.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/matcd/matcd.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/matcd/matcd_data.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/mcd/mcd.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/mcd/mcdvar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/md/md.c#15 integrate .. //depot/projects/netperf_socket/sys/dev/mlx/mlx.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/mlx/mlxvar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/mly/mly.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/mly/mlyvar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/nmdm/nmdm.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/null/null.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/ofw/ofw_console.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/ofw/openfirmio.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/ofw/openpromio.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/pci/pci.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/pci/pci_user.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/ppbus/lpt.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ppbus/pcfclock.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/ppbus/ppi.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/ppbus/pps.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/random/randomdev.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/rc/rc.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/rp/rp.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/rp/rpreg.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/sab/sab.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/scd/scd.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/scd/scdvar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/si/si.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/sio/sio.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/smbus/smb.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/snp/snp.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pcm/mixer.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pcm/sndstat.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pcm/sound.h#6 integrate .. //depot/projects/netperf_socket/sys/dev/streams/streams.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/sx/sx.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/scvesactl.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/sysmouse.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/tdfx/tdfx_pci.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/tdfx/tdfx_vars.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/twa/twa.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/twa/twa_freebsd.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/twe/twe_compat.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/twe/twe_freebsd.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/uart/uart_tty.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ubser.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ucom.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ufm.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ugen.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uhid.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ulpt.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ums.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/urio.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/usb.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uscanner.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinum.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumconfig.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumext.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumio.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumioctl.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumobj.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/vinum/vinumutil.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/watchdog/watchdog.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/zs/z8530var.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/zs/zs.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs.h#3 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_devs.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#8 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs.h#2 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_hash.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_vfsops.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfsmount.h#3 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs.h#2 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_ihash.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_ihash.h#2 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_inode.h#2 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_vfsops.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/portalfs/portal_vnops.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/specfs/spec_vnops.c#7 integrate .. //depot/projects/netperf_socket/sys/fs/udf/udf.h#2 integrate .. //depot/projects/netperf_socket/sys/geom/gate/g_gate.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom.h#4 integrate .. //depot/projects/netperf_socket/sys/geom/geom_ctl.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_dev.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#2 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_extern.h#3 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_ihash.c#3 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_mount.h#3 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_vfsops.c#5 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/inode.h#3 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_asus.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_machdep.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#8 integrate .. //depot/projects/netperf_socket/sys/i386/bios/apm.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/bios/apm.h#2 integrate .. //depot/projects/netperf_socket/sys/i386/bios/smapi.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/bios.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/elan-mmcr.c#8 integrate .. //depot/projects/netperf_socket/sys/i386/i386/geode.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mem.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/perfmon.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#10 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/include/cpu.h#3 integrate .. //depot/projects/netperf_socket/sys/i386/include/pmap.h#7 integrate .. //depot/projects/netperf_socket/sys/i386/isa/mse.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/isa/pcvt/pcvt_drv.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/isa/pcvt/pcvt_ext.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/isa/pcvt/pcvt_hdr.h#5 integrate .. //depot/projects/netperf_socket/sys/i386/isa/pcvt/pcvt_kbd.c#2 integrate .. //depot/projects/netperf_socket/sys/i386/isa/pcvt/pcvt_sup.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/isa/spic.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/isa/spkr.c#3 integrate .. //depot/projects/netperf_socket/sys/i4b/driver/i4b_ctl.c#3 integrate .. //depot/projects/netperf_socket/sys/i4b/driver/i4b_rbch.c#3 integrate .. //depot/projects/netperf_socket/sys/i4b/driver/i4b_tel.c#3 integrate .. //depot/projects/netperf_socket/sys/i4b/driver/i4b_trace.c#3 integrate .. //depot/projects/netperf_socket/sys/i4b/layer4/i4b_i4bdrv.c#3 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/mem.c#5 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/ssc.c#5 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/sscdisk.c#3 integrate .. //depot/projects/netperf_socket/sys/ia64/include/cpu.h#3 integrate .. //depot/projects/netperf_socket/sys/isa/psm.c#6 integrate .. //depot/projects/netperf_socket/sys/isa/vga_isa.c#4 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_node.c#3 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_node.h#3 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_rrip.c#3 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/iso.h#3 integrate .. //depot/projects/netperf_socket/sys/kern/init_main.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/kern_acct.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/kern_clock.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_conf.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_physio.c#2 integrate .. //depot/projects/netperf_socket/sys/kern/kern_proc.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_resource.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_shutdown.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_time.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/link_elf_obj.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/sched_4bsd.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/sched_ule.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/subr_bus.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/subr_devstat.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/subr_log.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/sys_socket.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/tty.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/tty_conf.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/tty_cons.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/tty_pty.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/tty_tty.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#18 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#16 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_aio.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_bio.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#10 integrate .. //depot/projects/netperf_socket/sys/modules/Makefile#10 integrate .. //depot/projects/netperf_socket/sys/modules/pf/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/modules/pflog/Makefile#3 delete .. //depot/projects/netperf_socket/sys/modules/pfsync/Makefile#3 delete .. //depot/projects/netperf_socket/sys/net/bpf.c#7 integrate .. //depot/projects/netperf_socket/sys/net/bridge.c#7 integrate .. //depot/projects/netperf_socket/sys/net/if.c#11 integrate .. //depot/projects/netperf_socket/sys/net/if_arcsubr.c#8 integrate .. //depot/projects/netperf_socket/sys/net/if_ef.c#3 integrate .. //depot/projects/netperf_socket/sys/net/if_ethersubr.c#15 integrate .. //depot/projects/netperf_socket/sys/net/if_fddisubr.c#7 integrate .. //depot/projects/netperf_socket/sys/net/if_fwsubr.c#4 integrate .. //depot/projects/netperf_socket/sys/net/if_iso88025subr.c#7 integrate .. //depot/projects/netperf_socket/sys/net/if_sl.c#6 integrate .. //depot/projects/netperf_socket/sys/net/if_spppsubr.c#6 integrate .. //depot/projects/netperf_socket/sys/net/if_tap.c#8 integrate .. //depot/projects/netperf_socket/sys/net/if_tapvar.h#5 integrate .. //depot/projects/netperf_socket/sys/net/if_tun.c#8 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#14 integrate .. //depot/projects/netperf_socket/sys/net/if_vlan.c#6 integrate .. //depot/projects/netperf_socket/sys/net/ppp_tty.c#2 integrate .. //depot/projects/netperf_socket/sys/net/raw_cb.c#6 integrate .. //depot/projects/netperf_socket/sys/net/raw_cb.h#3 integrate .. //depot/projects/netperf_socket/sys/net/raw_usrreq.c#6 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#5 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#6 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#4 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#8 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_device.c#4 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_ksocket.c#8 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_tty.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet/in.h#4 integrate .. //depot/projects/netperf_socket/sys/netinet/in_pcb.c#12 integrate .. //depot/projects/netperf_socket/sys/netinet/in_proto.c#5 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_input.c#13 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#10 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_syncache.c#8 integrate .. //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#7 integrate .. //depot/projects/netperf_socket/sys/netncp/ncp_mod.c#4 integrate .. //depot/projects/netperf_socket/sys/netsmb/smb_dev.c#4 integrate .. //depot/projects/netperf_socket/sys/netsmb/smb_trantcp.c#5 integrate .. //depot/projects/netperf_socket/sys/nfs4client/nfs4_dev.c#3 integrate .. //depot/projects/netperf_socket/sys/nfs4client/nfs4_vn_subs.c#2 integrate .. //depot/projects/netperf_socket/sys/nfsclient/bootp_subr.c#4 integrate .. //depot/projects/netperf_socket/sys/nfsclient/krpc_subr.c#3 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_bio.c#7 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_socket.c#7 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_subs.c#8 integrate .. //depot/projects/netperf_socket/sys/nfsserver/nfs_serv.c#8 integrate .. //depot/projects/netperf_socket/sys/nfsserver/nfs_syscalls.c#9 integrate .. //depot/projects/netperf_socket/sys/opencrypto/cryptodev.c#4 integrate .. //depot/projects/netperf_socket/sys/pc98/conf/NOTES#12 integrate .. //depot/projects/netperf_socket/sys/pc98/i386/machdep.c#5 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/fd.c#8 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/mse.c#5 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/olpt.c#5 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/pc98gdc.c#5 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/sio.c#10 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/wd_cd.c#3 integrate .. //depot/projects/netperf_socket/sys/pccard/pccard.c#3 integrate .. //depot/projects/netperf_socket/sys/pccard/slot.h#2 integrate .. //depot/projects/netperf_socket/sys/pci/agp.c#7 integrate .. //depot/projects/netperf_socket/sys/pci/agppriv.h#3 integrate .. //depot/projects/netperf_socket/sys/pci/if_ti.c#7 integrate .. //depot/projects/netperf_socket/sys/pci/if_tireg.h#2 integrate .. //depot/projects/netperf_socket/sys/pci/xrpu.c#5 integrate .. //depot/projects/netperf_socket/sys/powerpc/ofw/ofw_syscons.h#2 integrate .. //depot/projects/netperf_socket/sys/security/mac/mac_vfs.c#3 integrate .. //depot/projects/netperf_socket/sys/security/mac_biba/mac_biba.c#3 integrate .. //depot/projects/netperf_socket/sys/security/mac_lomac/mac_lomac.c#3 integrate .. //depot/projects/netperf_socket/sys/security/mac_mls/mac_mls.c#3 integrate .. //depot/projects/netperf_socket/sys/security/mac_stub/mac_stub.c#3 integrate .. //depot/projects/netperf_socket/sys/security/mac_test/mac_test.c#4 integrate .. //depot/projects/netperf_socket/sys/sparc64/creator/creator.h#2 integrate .. //depot/projects/netperf_socket/sys/sparc64/creator/creator_upa.c#4 integrate .. //depot/projects/netperf_socket/sys/sparc64/include/cpu.h#3 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/mem.c#5 integrate .. //depot/projects/netperf_socket/sys/sys/_lock.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/_types.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/acct.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/bio.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/conf.h#7 integrate .. //depot/projects/netperf_socket/sys/sys/linedisc.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/mac.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/mac_policy.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/mbuf.h#13 integrate .. //depot/projects/netperf_socket/sys/sys/mount.h#8 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#13 integrate .. //depot/projects/netperf_socket/sys/sys/proc.h#11 integrate .. //depot/projects/netperf_socket/sys/sys/sched.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/snoop.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/socketvar.h#16 integrate .. //depot/projects/netperf_socket/sys/sys/stat.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/sysctl.h#6 integrate .. //depot/projects/netperf_socket/sys/sys/systm.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/tty.h#6 integrate .. //depot/projects/netperf_socket/sys/sys/types.h#6 integrate .. //depot/projects/netperf_socket/sys/sys/user.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/vnode.h#6 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_alloc.c#5 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_snapshot.c#4 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_vfsops.c#5 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/dinode.h#2 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_extern.h#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_ihash.c#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufsmount.h#3 integrate .. //depot/projects/netperf_socket/sys/vm/device_pager.c#4 integrate .. //depot/projects/netperf_socket/sys/vm/swap_pager.c#4 integrate .. //depot/projects/netperf_socket/sys/vm/vm_glue.c#8 integrate .. //depot/projects/netperf_socket/sys/vm/vm_page.c#8 integrate .. //depot/projects/netperf_socket/sys/vm/vm_pageout.c#5 integrate .. //depot/projects/netperf_socket/sys/vm/vm_param.h#3 integrate Differences ... ==== //depot/projects/netperf_socket/sys/alpha/alpha/mem.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.49 2004/06/03 05:58:27 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.50 2004/06/16 09:46:26 phk Exp $"); /* * Memory special file @@ -67,9 +67,9 @@ #include #include -static dev_t memdev, kmemdev; +static struct cdev *memdev, *kmemdev; #ifdef PERFMON -static dev_t perfdev; +static struct cdev *perfdev; #endif /* PERFMON */ static d_open_t mmopen; @@ -95,7 +95,7 @@ struct mem_range_softc mem_range_softc; static int -mmclose(dev_t dev, int flags, int fmt, struct thread *td) +mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) { switch (minor(dev)) { #ifdef PERFMON @@ -109,7 +109,7 @@ } static int -mmopen(dev_t dev, int flags, int fmt, struct thread *td) +mmopen(struct cdev *dev, int flags, int fmt, struct thread *td) { int error; @@ -136,7 +136,7 @@ /*ARGSUSED*/ static int -mmrw(dev_t dev, struct uio *uio, int flags) +mmrw(struct cdev *dev, struct uio *uio, int flags) { vm_offset_t o, v; int c = 0; @@ -219,7 +219,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { /* * /dev/mem is the only one that makes sense through this @@ -240,7 +240,7 @@ } static int -mmioctl(dev_t dev, u_long cmd, caddr_t cmdarg, int flags, struct thread *td) +mmioctl(struct cdev *dev, u_long cmd, caddr_t cmdarg, int flags, struct thread *td) { switch(minor(dev)) { #ifdef PERFMON ==== //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#9 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.149 2004/06/12 06:03:27 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.150 2004/06/15 19:28:39 alc Exp $"); #include #include @@ -1425,12 +1425,6 @@ return uma_zalloc(pvzone, M_NOWAIT); } -/* - * If it is the first entry on the list, it is actually - * in the header and we must copy the following entry up - * to the header. Otherwise we must search the list for - * the entry. In either case we free the now unused entry. - */ static int pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) ==== //depot/projects/netperf_socket/sys/alpha/alpha/promcons.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.38 2004/06/04 16:02:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.39 2004/06/16 09:46:26 phk Exp $"); #include #include @@ -86,7 +86,7 @@ int promopen(dev, flag, mode, td) - dev_t dev; + struct cdev *dev; int flag, mode; struct thread *td; { @@ -137,7 +137,7 @@ int promclose(dev, flag, mode, td) - dev_t dev; + struct cdev *dev; int flag, mode; struct thread *td; { ==== //depot/projects/netperf_socket/sys/alpha/include/cpu.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.37 2004/04/05 21:00:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.38 2004/06/16 09:46:26 phk Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /* @@ -66,7 +66,7 @@ /* * CTL_MACHDEP definitions. */ -#define CPU_CONSDEV 1 /* dev_t: console terminal device */ +#define CPU_CONSDEV 1 /* struct cdev *: console terminal device */ #define CPU_ROOT_DEVICE 2 /* string: root device name */ #define CPU_UNALIGNED_PRINT 3 /* int: print unaligned accesses */ #define CPU_UNALIGNED_FIX 4 /* int: fix unaligned accesses */ ==== //depot/projects/netperf_socket/sys/alpha/tlsb/zs_tlsb.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.44 2004/06/04 16:02:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.45 2004/06/16 09:46:27 phk Exp $"); #include "opt_ddb.h" @@ -258,7 +258,7 @@ static int -zsopen(dev_t dev, int flag, int mode, struct thread *td) +zsopen(struct cdev *dev, int flag, int mode, struct thread *td) { struct zs_softc *sc = ZS_SOFTC(minor(dev)); struct tty *tp; @@ -305,7 +305,7 @@ } static int -zsclose(dev_t dev, int flag, int mode, struct thread *td) +zsclose(struct cdev *dev, int flag, int mode, struct thread *td) { struct zs_softc *sc = ZS_SOFTC(minor(dev)); struct tty *tp; ==== //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.115 2004/06/03 05:58:30 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.116 2004/06/16 09:46:27 phk Exp $"); /* * Memory special file @@ -68,7 +68,7 @@ #include #include -static dev_t memdev, kmemdev, iodev; +static struct cdev *memdev, *kmemdev, *iodev; static d_open_t mmopen; static d_close_t mmclose; @@ -95,7 +95,7 @@ struct mem_range_softc mem_range_softc; static int -mmclose(dev_t dev, int flags, int fmt, struct thread *td) +mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) { switch (minor(dev)) { case 14: @@ -105,7 +105,7 @@ } static int -mmopen(dev_t dev, int flags, int fmt, struct thread *td) +mmopen(struct cdev *dev, int flags, int fmt, struct thread *td) { int error; @@ -133,7 +133,7 @@ /*ARGSUSED*/ static int -mmrw(dev_t dev, struct uio *uio, int flags) +mmrw(struct cdev *dev, struct uio *uio, int flags) { int o; u_long c = 0, v; @@ -214,7 +214,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { switch (minor(dev)) { @@ -242,7 +242,7 @@ * and mem_range_attr_set. */ static int -mmioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct thread *td) +mmioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, struct thread *td) { int nd, error = 0; struct mem_range_op *mo = (struct mem_range_op *)data; ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#14 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.470 2004/06/14 01:17:50 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.475 2004/06/17 06:16:57 alc Exp $"); /* * Manages physical address maps. @@ -774,19 +774,23 @@ if (pmap == 0) return 0; + PMAP_LOCK(pmap); pdep = pmap_pde(pmap, va); if (pdep) { pde = *pdep; if (pde) { if ((pde & PG_PS) != 0) { rtval = (pde & ~PDRMASK) | (va & PDRMASK); + PMAP_UNLOCK(pmap); return rtval; } pte = pmap_pte(pmap, va); rtval = ((*pte & PG_FRAME) | (va & PAGE_MASK)); + PMAP_UNLOCK(pmap); return rtval; } } + PMAP_UNLOCK(pmap); return 0; } @@ -1223,10 +1227,6 @@ *pd = VM_PAGE_TO_PHYS(m) | PG_U | PG_RW | PG_V | PG_A | PG_M; } - vm_page_lock_queues(); - vm_page_wakeup(m); - vm_page_unlock_queues(); - return m; } @@ -1427,12 +1427,6 @@ return uma_zalloc(pvzone, M_NOWAIT); } -/* - * If it is the first entry on the list, it is actually - * in the header and we must copy the following entry up - * to the header. Otherwise we must search the list for - * the entry. In either case we free the now unused entry. - */ static int pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) @@ -1440,6 +1434,7 @@ pv_entry_t pv; int rtval; + PMAP_LOCK_ASSERT(pmap, MA_OWNED); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->md.pv_list_count < pmap->pm_stats.resident_count) { TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { @@ -1500,6 +1495,7 @@ pt_entry_t oldpte; vm_page_t m, mpte; + PMAP_LOCK_ASSERT(pmap, MA_OWNED); oldpte = pte_load_clear(ptq); if (oldpte & PG_W) pmap->pm_stats.wired_count -= 1; @@ -1540,6 +1536,7 @@ { pt_entry_t *pte; + PMAP_LOCK_ASSERT(pmap, MA_OWNED); pte = pmap_pte(pmap, va); if (pte == NULL || (*pte & PG_V) == 0) return; @@ -1566,8 +1563,12 @@ if (pmap == NULL) return; + /* + * Perform an unsynchronized read. This is, however, safe. + */ if (pmap->pm_stats.resident_count == 0) return; + PMAP_LOCK(pmap); /* * special handling of removing one page. a very @@ -1578,6 +1579,7 @@ pde = pmap_pde(pmap, sva); if (pde && (*pde & PG_PS) == 0) { pmap_remove_page(pmap, sva); + PMAP_UNLOCK(pmap); return; } } @@ -1648,6 +1650,7 @@ if (anyvalid) pmap_invalidate_all(pmap); + PMAP_UNLOCK(pmap); } /* @@ -1938,7 +1941,9 @@ if (opa) { int err; vm_page_lock_queues(); + PMAP_LOCK(pmap); err = pmap_remove_pte(pmap, pte, va); + PMAP_UNLOCK(pmap); vm_page_unlock_queues(); if (err) panic("pmap_enter: pte vanished, va: 0x%lx", va); @@ -2570,7 +2575,7 @@ if (pde == NULL || (*pde & PG_V) == 0) return (FALSE); pte = vtopte(addr); - if ((*pte & PG_V) == 0) + if (*pte & PG_V) return (FALSE); return (TRUE); } @@ -2791,12 +2796,12 @@ vm_page_t m; int val = 0; + PMAP_LOCK(pmap); ptep = pmap_pte(pmap, addr); - if (ptep == 0) { - return 0; - } + pte = (ptep != NULL) ? *ptep : 0; + PMAP_UNLOCK(pmap); - if ((pte = *ptep) != 0) { + if (pte != 0) { vm_paddr_t pa; val = MINCORE_INCORE; ==== //depot/projects/netperf_socket/sys/amd64/include/cpu.h#3 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)cpu.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/cpu.h,v 1.71 2004/04/05 21:25:51 imp Exp $ + * $FreeBSD: src/sys/amd64/include/cpu.h,v 1.72 2004/06/16 09:46:28 phk Exp $ */ #ifndef _MACHINE_CPU_H_ @@ -65,7 +65,7 @@ /* * CTL_MACHDEP definitions. */ -#define CPU_CONSDEV 1 /* dev_t: console terminal device */ +#define CPU_CONSDEV 1 /* struct cdev *: console terminal device */ #define CPU_ADJKERNTZ 2 /* int: timezone offset (seconds) */ #define CPU_DISRTCSET 3 /* int: disable resettodr() call */ #define CPU_WALLCLOCK 5 /* int: indicates wall CMOS clock */ ==== //depot/projects/netperf_socket/sys/arm/arm/nexus_io.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/nexus_io.c,v 1.1 2004/05/14 11:46:42 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/nexus_io.c,v 1.3 2004/06/17 17:51:47 cognet Exp $"); #include #include @@ -75,8 +75,6 @@ /* get kernel virtual address */ 0, /* there is no linear mapping */ - NULL, - /* barrier */ nexus_bs_barrier, @@ -190,7 +188,7 @@ } int -nexus_bs_mmap(dev_t dev, vm_offset_t off, vm_paddr_t *addr, int prot) +nexus_bs_mmap(struct cdev *dev, vm_offset_t off, vm_paddr_t *addr, int prot) { *addr = off; return (0); ==== //depot/projects/netperf_socket/sys/arm/include/bus.h#2 (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/arm/include/bus.h,v 1.1 2004/05/14 11:46:44 cognet Exp $ + * $FreeBSD: src/sys/arm/include/bus.h,v 1.3 2004/06/17 17:51:47 cognet Exp $ */ #ifndef _MACHINE_BUS_H_ @@ -117,9 +117,6 @@ /* get kernel virtual address */ void * (*bs_vaddr) (void *, bus_space_handle_t); - /* mmap bus space for user */ - int (*bs_mmap) (dev_t, vm_offset_t, vm_paddr_t *, int); - /* barrier */ void (*bs_barrier) (void *, bus_space_handle_t, bus_size_t, bus_size_t, int); @@ -258,12 +255,6 @@ (*(t)->bs_vaddr)((t)->bs_cookie, (h)) /* - * MMap bus space for a user application. - */ -#define bus_space_mmap(t, a, o, p, f) \ - (*(t)->bs_mmap)((t)->bs_cookie, (a), (o), (p), (f)) - -/* * Bus barrier operations. */ #define bus_space_barrier(t, h, o, l, f) \ @@ -411,7 +402,7 @@ void * __bs_c(f,_bs_vaddr) (void *t, bus_space_handle_t bsh); #define bs_mmap_proto(f) \ -int __bs_c(f,_bs_mmap) (dev_t, vm_offset_t, vm_paddr_t *, int); +int __bs_c(f,_bs_mmap) (struct cdev *, vm_offset_t, vm_paddr_t *, int); #define bs_barrier_proto(f) \ void __bs_c(f,_bs_barrier) (void *t, bus_space_handle_t bsh, \ ==== //depot/projects/netperf_socket/sys/arm/sa11x0/assabet_machdep.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.1 2004/05/14 11:46:45 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.2 2004/06/17 17:52:12 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -257,16 +257,6 @@ valloc_pages(kernelstack, KSTACK_PAGES); -#ifdef VERBOSE_INIT_ARM - printf("IRQ stack: p0x%08lx v0x%08lx\n", irqstack.pv_pa, - irqstack.pv_va); - printf("ABT stack: p0x%08lx v0x%08lx\n", abtstack.pv_pa, - abtstack.pv_va); - printf("UND stack: p0x%08lx v0x%08lx\n", undstack.pv_pa, - undstack.pv_va); - printf("SVC stack: p0x%08lx v0x%08lx\n", kernelstack.pv_pa, - kernelstack.pv_va); -#endif /* * Allocate memory for the l1 and l2 page tables. The scheme to avoid * wasting memory by allocating the l1pt on the first 16k memory was @@ -285,10 +275,6 @@ l1pagetable = kernel_l1pt.pv_pa; - /* XXX bla **/ -#if 0 - bcopy((void*)0xd0300000, &mfs_root, MD_ROOT_SIZE*1024); -#endif /* Map the L2 pages tables in the L1 page table */ pmap_link_l2pt(l1pagetable, 0x00000000, &kernel_pt_table[KERNEL_PT_SYS]); @@ -349,7 +335,7 @@ cpu_tlb_flushID(); cpu_domains(DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)); - /* + /* * Pages were allocated during the secondary bootstrap for the * stacks for different CPU modes. * We must now set the r13 registers in the different CPU modes to @@ -358,7 +344,6 @@ * of the stack memory. */ printf("init subsystems: stacks\n"); - set_stackptr(PSR_IRQ32_MODE, irqstack.pv_va + IRQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_ABT32_MODE, @@ -383,56 +368,8 @@ bootverbose = 1; -#if 0 - set_cpufuncs(); -#endif /* Set stack for exception handlers */ -#if 0 - printf("arm_init: physical_pages = %08x\n", physical_pages); - printf("arm_init: kernel_l1pt: pa = %08x, va = %08x\n", - kernel_l1pt.pv_pa, kernel_l1pt.pv_va); - printf("arm_init: proc0_uarea: pa = %08x, va = %08x\n", - proc0_uarea.pv_pa, proc0_uarea.pv_va); - printf("arm_init: proc0_kstack: pa = %08x, va = %08x\n", - proc0_kstack.pv_pa, proc0_kstack.pv_va); -#endif - -/* printf("arm_init: physfree = %08x\n", physical_freestart); - printf("arm_init: first = %08x\n", first); - printf("arm_init: end = %08x\n", (uint32_t) &end); - - printf("arm_init: params = %08x\n", params); - printf("arm_init: params: page_size = %08x\n", params->u1.s.page_size); - printf("arm_init: params: nrpages = %08x\n", params->u1.s.nr_pages); - printf("arm_init: params: ramdisk_size = %08x\n", params->u1.s.ramdisk_size); - printf("arm_init: params: flags = %08x\n", params->u1.s.flags); - printf("arm_init: params: rootdev = %08x\n", params->u1.s.rootdev); - printf("arm_init: params: video_num_cols = %08x\n", params->u1.s.video_num_cols); - printf("arm_init: params: video_num_rows = %08x\n", params->u1.s.video_num_rows); - printf("arm_init: params: video_x = %08x\n", params->u1.s.video_x); - printf("arm_init: params: video_y = %08x\n", params->u1.s.video_y); - printf("arm_init: params: memc_control_reg = %08x\n", params->u1.s.memc_control_reg); - printf("arm_init: params: sounddefault = %02x\n", params->u1.s.sounddefault); - printf("arm_init: params: adfsdrives = %02x\n", params->u1.s.adfsdrives); - printf("arm_init: params: bytes_per_char_h = %02x\n", params->u1.s.bytes_per_char_h); - printf("arm_init: params: bytes_per_char_v = %02x\n", params->u1.s.bytes_per_char_v); - for(i = 0; i < 4; i++) { - printf("arm_init: params: pages_in_bank[%d] = %08x\n", i, params->u1.s.pages_in_bank[i]); - } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 18 00:30:28 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D572516A4D0; Fri, 18 Jun 2004 00:30:27 +0000 (GMT) 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 A238116A4CE; Fri, 18 Jun 2004 00:30:27 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 21CC343D1F; Fri, 18 Jun 2004 00:30:27 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.11/8.12.11) with ESMTP id i5I0U48f043046; Thu, 17 Jun 2004 18:30:04 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Thu, 17 Jun 2004 18:30:22 -0600 (MDT) Message-Id: <20040617.183022.130621289.imp@bsdimp.com> To: jmallett@freebsd.org From: "M. Warner Losh" In-Reply-To: <200406170657.i5H6vQ0k086708@repoman.freebsd.org> References: <200406170657.i5H6vQ0k086708@repoman.freebsd.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: perforce@freebsd.org Subject: Re: PERFORCE change 55138 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 00:30:28 -0000 In message: <200406170657.i5H6vQ0k086708@repoman.freebsd.org> Juli Mallett writes: : Tempting to go ahead and switch to XKPHYS, with loader running 32-bit : anyway. But then that'd break systems with 32-bit ARCS. Maybe I : should just decide I don't care, except that all the systems I have : but 1 are 32-bit ARCS. Many of the little endian 'PC' mips boxes have 32-bit arcs. Warner From owner-p4-projects@FreeBSD.ORG Fri Jun 18 00:35:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C670D16A4D0; Fri, 18 Jun 2004 00:35:45 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 931) id 9E7DD16A4CF; Fri, 18 Jun 2004 00:35:45 +0000 (GMT) Date: Thu, 17 Jun 2004 14:35:45 -1000 From: juli mallett To: "M. Warner Losh" Message-ID: <20040618003545.GA3251@FreeBSD.org> References: <200406170657.i5H6vQ0k086708@repoman.freebsd.org> <20040617.183022.130621289.imp@bsdimp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040617.183022.130621289.imp@bsdimp.com> User-Agent: Mutt/1.4.1i X-Negacore: Yes X-Authentication-Warning: localhost: juli pwned teh intarweb X-Disclaimer: Opinions expressed about the deliciousness of eating brains are my own unless expressed by my employer. cc: perforce@freebsd.org Subject: Re: PERFORCE change 55138 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 00:35:46 -0000 * "M. Warner Losh" [ Date: 2004-06-17 ] [ w.r.t. Re: PERFORCE change 55138 for review ] > In message: <200406170657.i5H6vQ0k086708@repoman.freebsd.org> > Juli Mallett writes: > : Tempting to go ahead and switch to XKPHYS, with loader running 32-bit > : anyway. But then that'd break systems with 32-bit ARCS. Maybe I > : should just decide I don't care, except that all the systems I have > : but 1 are 32-bit ARCS. > > Many of the little endian 'PC' mips boxes have 32-bit arcs. Indeed. I've still never run across an NTMIPS machine in the flesh, since ages ago. I'm getting fairly grumpy with BU and the like. Now I've switched over to doing n32 with tradbigmips, and it's emitting some PT_LOAD with a vaddr of 0, and a non-zero size, which is pissing off the emulator, and to a greater extend, ARCS. :( Thanx, juli. -- juli mallett. jmallett@freebsd.org. adrift in the pacific. From owner-p4-projects@FreeBSD.ORG Fri Jun 18 01:16:49 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B183816A4D0; Fri, 18 Jun 2004 01:16:48 +0000 (GMT) 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 84F6D16A4CE for ; Fri, 18 Jun 2004 01:16:48 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C47643D1F for ; Fri, 18 Jun 2004 01:16:48 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I1GUFA062629 for ; Fri, 18 Jun 2004 01:16:30 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I1GRaM062626 for perforce@freebsd.org; Fri, 18 Jun 2004 01:16:27 GMT (envelope-from marcel@freebsd.org) Date: Fri, 18 Jun 2004 01:16:27 GMT Message-Id: <200406180116.i5I1GRaM062626@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 55202 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 01:16:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=55202 Change 55202 by marcel@marcel_nfs on 2004/06/18 01:15:41 IFC @55196 Affected files ... .. //depot/projects/gdb/Makefile.inc1#11 integrate .. //depot/projects/gdb/contrib/pf/authpf/authpf.8#2 integrate .. //depot/projects/gdb/contrib/pf/authpf/authpf.c#3 integrate .. //depot/projects/gdb/contrib/pf/ftp-proxy/ftp-proxy.8#3 integrate .. //depot/projects/gdb/contrib/pf/ftp-proxy/ftp-proxy.c#3 integrate .. //depot/projects/gdb/contrib/pf/ftp-proxy/util.c#2 integrate .. //depot/projects/gdb/contrib/pf/man/pf.4#3 integrate .. //depot/projects/gdb/contrib/pf/man/pf.conf.5#2 integrate .. //depot/projects/gdb/contrib/pf/man/pf.os.5#2 integrate .. //depot/projects/gdb/contrib/pf/man/pflog.4#3 integrate .. //depot/projects/gdb/contrib/pf/man/pfsync.4#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/parse.y#4 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pf_print_state.c#2 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl.8#2 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl.c#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl.h#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_altq.c#4 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_osfp.c#2 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_parser.c#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_parser.h#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_qstats.c#3 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_radix.c#2 integrate .. //depot/projects/gdb/contrib/pf/pfctl/pfctl_table.c#3 integrate .. //depot/projects/gdb/contrib/pf/pflogd/pflogd.8#2 integrate .. //depot/projects/gdb/contrib/pf/pflogd/pflogd.c#3 integrate .. //depot/projects/gdb/contrib/pf/pflogd/pflogd.h#1 branch .. //depot/projects/gdb/contrib/pf/pflogd/pidfile.c#3 integrate .. //depot/projects/gdb/contrib/pf/pflogd/privsep.c#1 branch .. //depot/projects/gdb/contrib/pf/pflogd/privsep_fdpass.c#1 branch .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.sparc64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/sparc64/elf64-sparc.c-bad-rtld.diff#1 branch .. //depot/projects/gdb/lib/libarchive/archive_read_extract.c#16 integrate .. //depot/projects/gdb/lib/libc/posix1e/Makefile.inc#2 integrate .. //depot/projects/gdb/lib/libc/posix1e/mac_get.3#2 integrate .. //depot/projects/gdb/lib/libc/sys/clock_gettime.2#2 integrate .. //depot/projects/gdb/lib/libkvm/kvm_proc.c#5 integrate .. //depot/projects/gdb/libexec/Makefile#4 integrate .. //depot/projects/gdb/libexec/rtld-elf/Makefile#4 integrate .. //depot/projects/gdb/libexec/rtld-elf/arm/Makefile.inc#2 integrate .. //depot/projects/gdb/sbin/geom/class/concat/geom_concat.c#2 integrate .. //depot/projects/gdb/sbin/geom/class/stripe/geom_stripe.c#2 integrate .. //depot/projects/gdb/sbin/pfctl/Makefile#2 integrate .. //depot/projects/gdb/sbin/pflogd/Makefile#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_barrier_destroy.3#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_barrierattr.3#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_rwlock_timedrdlock.3#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_rwlock_timedwrlock.3#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_spin_init.3#2 integrate .. //depot/projects/gdb/share/man/man3/pthread_spin_lock.3#2 integrate .. //depot/projects/gdb/share/man/man4/acpi_video.4#2 integrate .. //depot/projects/gdb/share/man/man4/bfe.4#3 integrate .. //depot/projects/gdb/share/man/man4/dcons.4#2 integrate .. //depot/projects/gdb/share/man/man4/dcons_crom.4#2 integrate .. //depot/projects/gdb/share/man/man4/en.4#2 integrate .. //depot/projects/gdb/share/man/man4/fla.4#2 integrate .. //depot/projects/gdb/share/man/man4/gem.4#2 integrate .. //depot/projects/gdb/share/man/man4/harp.4#2 integrate .. //depot/projects/gdb/share/man/man4/hme.4#3 integrate .. //depot/projects/gdb/share/man/man4/idt.4#2 integrate .. //depot/projects/gdb/share/man/man4/man4.i386/arl.4#3 integrate .. //depot/projects/gdb/sys/amd64/amd64/pmap.c#14 integrate .. //depot/projects/gdb/sys/arm/arm/nexus_io.c#3 integrate .. //depot/projects/gdb/sys/arm/include/bus.h#3 integrate .. //depot/projects/gdb/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/gdb/sys/arm/sa11x0/sa11x0_io.c#3 integrate .. //depot/projects/gdb/sys/boot/i386/boot0/boot0.S#4 integrate .. //depot/projects/gdb/sys/boot/pc98/libpc98/biosdisk.c#3 integrate .. //depot/projects/gdb/sys/cam/scsi/scsi_target.c#4 integrate .. //depot/projects/gdb/sys/coda/coda.h#3 integrate .. //depot/projects/gdb/sys/coda/coda_fbsd.c#5 integrate .. //depot/projects/gdb/sys/coda/coda_venus.c#4 integrate .. //depot/projects/gdb/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/gdb/sys/compat/linux/linux_stats.c#5 integrate .. //depot/projects/gdb/sys/compat/svr4/svr4_socket.c#2 integrate .. //depot/projects/gdb/sys/compat/svr4/svr4_socket.h#2 integrate .. //depot/projects/gdb/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/gdb/sys/compat/svr4/svr4_types.h#3 integrate .. //depot/projects/gdb/sys/conf/files#29 integrate .. //depot/projects/gdb/sys/contrib/pf/net/if_pflog.c#7 integrate .. //depot/projects/gdb/sys/contrib/pf/net/if_pflog.h#3 integrate .. //depot/projects/gdb/sys/contrib/pf/net/if_pfsync.c#7 integrate .. //depot/projects/gdb/sys/contrib/pf/net/if_pfsync.h#3 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf.c#7 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_if.c#1 branch .. //depot/projects/gdb/sys/contrib/pf/net/pf_ioctl.c#9 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_norm.c#4 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_osfp.c#3 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pf_subr.c#1 branch .. //depot/projects/gdb/sys/contrib/pf/net/pf_table.c#3 integrate .. //depot/projects/gdb/sys/contrib/pf/net/pfvar.h#4 integrate .. //depot/projects/gdb/sys/contrib/pf/netinet/in4_cksum.c#2 integrate .. //depot/projects/gdb/sys/dev/an/if_an.c#4 integrate .. //depot/projects/gdb/sys/dev/ata/ata-chipset.c#10 integrate .. //depot/projects/gdb/sys/dev/ata/atapi-cam.c#4 integrate .. //depot/projects/gdb/sys/dev/cp/if_cp.c#5 integrate .. //depot/projects/gdb/sys/dev/ctau/if_ct.c#5 integrate .. //depot/projects/gdb/sys/dev/cx/if_cx.c#9 integrate .. //depot/projects/gdb/sys/dev/cy/cy.c#8 integrate .. //depot/projects/gdb/sys/dev/dcons/dcons.c#10 integrate .. //depot/projects/gdb/sys/dev/digi/digi.c#8 integrate .. //depot/projects/gdb/sys/dev/firewire/fwdev.c#8 integrate .. //depot/projects/gdb/sys/dev/led/led.c#7 integrate .. //depot/projects/gdb/sys/dev/nmdm/nmdm.c#9 integrate .. //depot/projects/gdb/sys/dev/snp/snp.c#6 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/dsp.c#5 integrate .. //depot/projects/gdb/sys/dev/sound/pcm/mixer.c#5 integrate .. //depot/projects/gdb/sys/dev/syscons/syscons.c#11 integrate .. //depot/projects/gdb/sys/dev/vinum/vinum.c#4 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumconfig.c#4 integrate .. //depot/projects/gdb/sys/dev/vinum/vinumio.c#5 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs_vnops.c#4 integrate .. //depot/projects/gdb/sys/fs/fifofs/fifo_vnops.c#7 integrate .. //depot/projects/gdb/sys/fs/portalfs/portal_vnops.c#5 integrate .. //depot/projects/gdb/sys/fs/specfs/spec_vnops.c#10 integrate .. //depot/projects/gdb/sys/geom/geom_dev.c#5 integrate .. //depot/projects/gdb/sys/i386/i386/bios.c#6 integrate .. //depot/projects/gdb/sys/i386/i386/pmap.c#9 integrate .. //depot/projects/gdb/sys/isofs/cd9660/cd9660_node.h#4 integrate .. //depot/projects/gdb/sys/isofs/cd9660/cd9660_rrip.c#3 integrate .. //depot/projects/gdb/sys/kern/kern_acct.c#4 integrate .. //depot/projects/gdb/sys/kern/kern_conf.c#7 integrate .. //depot/projects/gdb/sys/kern/kern_proc.c#9 integrate .. //depot/projects/gdb/sys/kern/kern_shutdown.c#8 integrate .. //depot/projects/gdb/sys/kern/kern_time.c#3 integrate .. //depot/projects/gdb/sys/kern/sys_socket.c#5 integrate .. //depot/projects/gdb/sys/kern/tty_cons.c#7 integrate .. //depot/projects/gdb/sys/kern/tty_pty.c#10 integrate .. //depot/projects/gdb/sys/kern/tty_tty.c#4 integrate .. //depot/projects/gdb/sys/kern/uipc_socket.c#10 integrate .. //depot/projects/gdb/sys/kern/uipc_socket2.c#10 integrate .. //depot/projects/gdb/sys/kern/uipc_usrreq.c#9 integrate .. //depot/projects/gdb/sys/kern/vfs_aio.c#4 integrate .. //depot/projects/gdb/sys/kern/vfs_bio.c#8 integrate .. //depot/projects/gdb/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/gdb/sys/kern/vfs_subr.c#11 integrate .. //depot/projects/gdb/sys/modules/Makefile#13 integrate .. //depot/projects/gdb/sys/modules/pf/Makefile#3 integrate .. //depot/projects/gdb/sys/modules/pflog/Makefile#3 delete .. //depot/projects/gdb/sys/modules/pfsync/Makefile#3 delete .. //depot/projects/gdb/sys/net/bpf.c#7 integrate .. //depot/projects/gdb/sys/net/if_tap.c#7 integrate .. //depot/projects/gdb/sys/net/if_tun.c#7 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#7 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#5 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#7 integrate .. //depot/projects/gdb/sys/netgraph/ng_ksocket.c#6 integrate .. //depot/projects/gdb/sys/netinet/in.h#4 integrate .. //depot/projects/gdb/sys/netinet/in_proto.c#5 integrate .. //depot/projects/gdb/sys/netsmb/smb_dev.c#6 integrate .. //depot/projects/gdb/sys/netsmb/smb_trantcp.c#4 integrate .. //depot/projects/gdb/sys/nfs4client/nfs4_vn_subs.c#2 integrate .. //depot/projects/gdb/sys/nfsclient/nfs_bio.c#7 integrate .. //depot/projects/gdb/sys/nfsclient/nfs_subs.c#7 integrate .. //depot/projects/gdb/sys/nfsserver/nfs_serv.c#8 integrate .. //depot/projects/gdb/sys/nfsserver/nfs_syscalls.c#8 integrate .. //depot/projects/gdb/sys/sys/_types.h#5 integrate .. //depot/projects/gdb/sys/sys/acct.h#3 integrate .. //depot/projects/gdb/sys/sys/conf.h#8 integrate .. //depot/projects/gdb/sys/sys/mbuf.h#12 integrate .. //depot/projects/gdb/sys/sys/param.h#15 integrate .. //depot/projects/gdb/sys/sys/snoop.h#2 integrate .. //depot/projects/gdb/sys/sys/stat.h#4 integrate .. //depot/projects/gdb/sys/sys/systm.h#8 integrate .. //depot/projects/gdb/sys/sys/tty.h#7 integrate .. //depot/projects/gdb/sys/sys/types.h#8 integrate .. //depot/projects/gdb/sys/sys/user.h#5 integrate .. //depot/projects/gdb/sys/sys/vnode.h#7 integrate .. //depot/projects/gdb/sys/vm/swap_pager.c#6 integrate .. //depot/projects/gdb/sys/vm/vm_page.c#10 integrate .. //depot/projects/gdb/sys/vm/vm_param.h#3 integrate .. //depot/projects/gdb/usr.bin/fstat/fstat.c#3 integrate .. //depot/projects/gdb/usr.bin/fstat/fstat.h#2 integrate .. //depot/projects/gdb/usr.bin/kdump/mkioctls#3 integrate .. //depot/projects/gdb/usr.bin/pkill/pkill.c#3 integrate .. //depot/projects/gdb/usr.sbin/boot0cfg/boot0cfg.8#3 integrate .. //depot/projects/gdb/usr.sbin/pw/psdate.c#2 integrate .. //depot/projects/gdb/usr.sbin/pw/pw_user.c#2 integrate .. //depot/projects/gdb/usr.sbin/pw/pw_vpw.c#2 integrate Differences ... ==== //depot/projects/gdb/Makefile.inc1#11 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.427 2004/05/17 16:19:51 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.430 2004/06/17 08:06:41 obrien Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -62,7 +62,10 @@ .if !defined(NOSHARE) SUBDIR+=share .endif -SUBDIR+=sys usr.bin usr.sbin etc +.if ${MACHINE_ARCH} != "alpha" +SUBDIR+=sys +.endif +SUBDIR+=usr.bin usr.sbin etc # These are last, since it is nice to at least get the base system # rebuilt before you do them. ==== //depot/projects/gdb/contrib/pf/authpf/authpf.8#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $OpenBSD: authpf.8,v 1.30 2003/08/17 23:24:47 henning Exp $ +.\" $OpenBSD: authpf.8,v 1.31 2003/12/10 04:10:37 beck Exp $ .\" .\" Copyright (c) 2002 Bob Beck (beck@openbsd.org>. All rights reserved. .\" @@ -84,9 +84,9 @@ processes. By default, the .Pa anchor -name "authpf" is used, and the ruleset names equal the PIDs of the +name "authpf" is used, and the ruleset names equal the username and PID of the .Nm -processes. +processes as "username(pid)". The following rules need to be added to the main ruleset .Pa /etc/pf.conf in order to cause evaluation of any @@ -263,7 +263,8 @@ .Pa /etc/authpf/authpf.conf file. .Sh EXAMPLES -\fBControl Files\fP - To illustrate the user-specific access control +.Sy Control Files +\- To illustrate the user-specific access control mechanisms, let us consider a typical user named bob. Normally, as long as bob can authenticate himself, the .Nm @@ -298,7 +299,8 @@ Though bob is listed in the allow file, he is prevented from using this gateway due to the existence of a ban file. .Pp -\fBDistributed Authentication\fP - It is often desirable to interface with a +.Sy Distributed Authentication +\- It is often desirable to interface with a distributed password system rather than forcing the sysadmins to keep a large number of local password files in sync. The @@ -332,7 +334,8 @@ as their shell except for root who will get .Pa /bin/csh . .Pp -\fBSSH Configuration\fP - As stated earlier, +.Sy SSH Configuration +\- As stated earlier, .Xr sshd 8 must be properly configured to detect and defeat network attacks. To that end, the following options should be added to @@ -346,7 +349,8 @@ This ensures that unresponsive or spoofed sessions are terminated within a minute, since a hijacker should not be able to spoof ssh keepalive messages. .Pp -\fBBanners\fP - Once authenticated, the user is shown the contents of +.Sy Banners +\- Once authenticated, the user is shown the contents of .Pa /etc/authpf/authpf.message . This message may be a screen-full of the appropriate use policy, the contents of @@ -366,7 +370,8 @@ an email to remove@bulkmailerz.net. .Ed .Pp -\fBPacket Filter Rules\fP - In areas where this gateway is used to protect a +.Sy Packet Filter Rules +\- In areas where this gateway is used to protect a wireless network (a hub with several hundred ports), the default rule set as well as the per-user rules should probably allow very few things beyond encrypted protocols like @@ -378,15 +383,14 @@ given authentication accounts, you might want to allow out everything. In this context, a secure switch is one that tries to prevent address table overflow attacks. -The examples below assume a switched wired net. .Pp Example .Pa /etc/pf.conf : .Bd -literal # by default we allow internal clients to talk to us using # ssh and use us as a dns server. -internal_if=\&"fxp1\&" -gateway_addr=\&"10.0.1.1\&" +internal_if="fxp1" +gateway_addr="10.0.1.1" nat-anchor authpf rdr-anchor authpf binat-anchor authpf @@ -398,26 +402,28 @@ anchor authpf .Ed .Pp -Example -.Pa /etc/authpf/authpf.rules : +.Sy For a switched, wired net +\- This example +.Pa /etc/authpf/authpf.rules +makes no real restrictions; it turns the IP address on and off, logging +TCP connections. .Bd -literal -# no real restrictions here, basically turn the network jack off or on. - -external_if = \&"xl0\&" -internal_if = \&"fxp0\&" +external_if = "xl0" +internal_if = "fxp0" pass in log quick on $internal_if proto tcp from $user_ip to any \e keep state pass in quick on $internal_if from $user_ip to any .Ed .Pp -Another example +.Sy For a wireless or shared net +\- This example .Pa /etc/authpf/authpf.rules -for an insecure network (such as a public wireless network) where +could be used for an insecure network (such as a public wireless network) where we might need to be a bit more restrictive. .Bd -literal -internal_if=\&"fxp1\&" -ipsec_gw=\&"10.2.3.4\&" +internal_if="fxp1" +ipsec_gw="10.2.3.4" # rdr ftp for proxying by ftp-proxy(8) rdr on $internal_if proto tcp from $user_ip to any port 21 \e @@ -433,6 +439,32 @@ keep state pass in quick proto esp from $user_ip to $ipsec_gw .Ed +.Pp +.Sy Dealing with NAT +\- The following +.Pa /etc/authpf/authpf.rules +shows how to deal with NAT, using tags: +.Bd -literal +ext_if = "fxp1" +ext_addr = 129.128.11.10 +int_if = "fxp0" +# nat and tag connections... +nat on $ext_if from $user_ip to any tag $user_ip -> $ext_addr +pass in quick on $int_if from $user_ip to any +pass out log quick on $ext_if tagged $user_ip keep state +.Ed +.Pp +With the above rules added by +.Nm , +outbound connections corresponding to each users NAT'ed connections +will be logged as in the example below, where the user may be identified +from the ruleset name. +.Bd -literal +# tcpdump -n -e -ttt -i pflog0 +Oct 31 19:42:30.296553 rule 0.bbeck(20267).1/0(match): pass out on fxp1: \e +129.128.11.10.60539 > 198.137.240.92.22: S 2131494121:2131494121(0) win \e +16384 (DF) +.Ed .Sh FILES .Bl -tag -width "/etc/authpf/authpf.conf" -compact .It Pa /etc/authpf/authpf.conf ==== //depot/projects/gdb/contrib/pf/authpf/authpf.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $OpenBSD: authpf.c,v 1.68 2003/08/21 19:13:23 frantzen Exp $ */ +/* $OpenBSD: authpf.c,v 1.75 2004/01/29 01:55:10 deraadt Exp $ */ /* * Copyright (C) 1998 - 2002 Bob Beck (beck@openbsd.org). @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/contrib/pf/authpf/authpf.c,v 1.4 2004/03/16 17:24:06 obrien Exp $"); +__FBSDID("$FreeBSD: src/contrib/pf/authpf/authpf.c,v 1.5 2004/06/16 23:39:30 mlaier Exp $"); #include #include @@ -49,6 +49,7 @@ #include #include +#include #include "pathnames.h" @@ -98,12 +99,6 @@ char *cp; uid_t uid; - if ((n = snprintf(rulesetname, sizeof(rulesetname), "%ld", - (long)getpid())) < 0 || n >= sizeof(rulesetname)) { - syslog(LOG_ERR, "pid too large for ruleset name"); - exit(1); - } - config = fopen(PATH_CONFFILE, "r"); if ((cp = getenv("SSH_TTY")) == NULL) { @@ -131,7 +126,6 @@ "cannot determine IP from SSH_CLIENT %s", ipsrc); exit(1); } - /* open the pf device */ dev = open(PATH_DEVFILE, O_RDWR); if (dev == -1) { @@ -160,6 +154,18 @@ goto die; } + if ((n = snprintf(rulesetname, sizeof(rulesetname), "%s(%ld)", + luser, (long)getpid())) < 0 || n >= sizeof(rulesetname)) { + syslog(LOG_INFO, "%s(%ld) too large, ruleset name will be %ld", + luser, (long)getpid(), (long)getpid()); + if ((n = snprintf(rulesetname, sizeof(rulesetname), "%ld", + (long)getpid())) < 0 || n >= sizeof(rulesetname)) { + syslog(LOG_ERR, "pid too large for ruleset name"); + goto die; + } + } + + /* Make our entry in /var/authpf as /var/authpf/ipaddr */ n = snprintf(pidfile, sizeof(pidfile), "%s/%s", PATH_PIDFILE, ipsrc); if (n < 0 || (u_int)n >= sizeof(pidfile)) { @@ -242,15 +248,22 @@ seteuid(getuid()); setuid(getuid()); - if (!check_luser(PATH_BAN_DIR, luser) || !allowed_luser(luser)) + openlog("authpf", LOG_PID | LOG_NDELAY, LOG_DAEMON); + + if (!check_luser(PATH_BAN_DIR, luser) || !allowed_luser(luser)) { + syslog(LOG_INFO, "user %s prohibited", luser); do_death(0); + } - openlog("authpf", LOG_PID | LOG_NDELAY, LOG_DAEMON); - if (config == NULL || read_config(config)) + if (config == NULL || read_config(config)) { + syslog(LOG_INFO, "bad or nonexistent %s", PATH_CONFFILE); do_death(0); + } - if (remove_stale_rulesets()) + if (remove_stale_rulesets()) { + syslog(LOG_INFO, "error removing stale rulesets"); do_death(0); + } /* We appear to be making headway, so actually mark our pid */ rewind(pidfp); @@ -260,7 +273,7 @@ if (change_filter(1, luser, ipsrc) == -1) { printf("Unable to modify filters\r\n"); - do_death(1); + do_death(0); } signal(SIGTERM, need_death); @@ -545,15 +558,20 @@ mnr = prs.nr; nr = 0; while (nr < mnr) { - char *s; + char *s, *t; pid_t pid; prs.nr = nr; if (ioctl(dev, DIOCGETRULESET, &prs)) return (1); errno = 0; - pid = strtoul(prs.name, &s, 10); - if (!prs.name[0] || errno || *s) + if ((t = strchr(prs.name, '(')) == NULL) + t = prs.name; + else + t++; + pid = strtoul(t, &s, 10); + if (!prs.name[0] || errno || + (*s && (t == prs.name || *s != ')'))) return (1); if (kill(pid, 0) && errno != EPERM) { int i; @@ -585,14 +603,11 @@ { char fn[MAXPATHLEN]; FILE *f = NULL; - const int action[PF_RULESET_MAX] = { PF_SCRUB, - PF_PASS, PF_NAT, PF_BINAT, PF_RDR }; struct pfctl pf; - struct pfioc_rule pr[PF_RULESET_MAX]; + struct pfr_buffer t; int i; - if (luser == NULL || !luser[0] || strlen(luser) >= - PF_RULESET_NAME_SIZE || ipsrc == NULL || !ipsrc[0]) { + if (luser == NULL || !luser[0] || ipsrc == NULL || !ipsrc[0]) { syslog(LOG_ERR, "invalid luser/ipsrc"); goto error; } @@ -624,18 +639,18 @@ syslog(LOG_ERR, "unable to load kernel's OS fingerprints"); goto error; } - + bzero(&t, sizeof(t)); + t.pfrb_type = PFRB_TRANS; memset(&pf, 0, sizeof(pf)); for (i = 0; i < PF_RULESET_MAX; ++i) { - memset(&pr[i], 0, sizeof(pr[i])); - pr[i].rule.action = action[i]; - strlcpy(pr[i].anchor, anchorname, sizeof(pr[i].anchor)); - strlcpy(pr[i].ruleset, rulesetname, sizeof(pr[i].ruleset)); - if (ioctl(dev, DIOCBEGINRULES, &pr[i])) { - syslog(LOG_ERR, "DIOCBEGINRULES %m"); + if (pfctl_add_trans(&t, i, anchorname, rulesetname)) { + syslog(LOG_ERR, "pfctl_add_trans %m"); goto error; } - pf.prule[i] = &pr[i]; + } + if (pfctl_trans(dev, &t, DIOCXBEGIN, 0)) { + syslog(LOG_ERR, "DIOCXBEGIN (%s) %m", add?"add":"remove"); + goto error; } if (add) { @@ -646,6 +661,10 @@ } pf.dev = dev; + pf.trans = &t; + pf.anchor = anchorname; + pf.ruleset = rulesetname; + infile = fn; if (parse_rules(f, &pf) < 0) { syslog(LOG_ERR, "syntax error in rule file: " @@ -658,16 +677,10 @@ f = NULL; } - for (i = 0; i < PF_RULESET_MAX; ++i) - /* - * ignore EINVAL on removal, it means the anchor was - * already automatically removed by the kernel. - */ - if (ioctl(dev, DIOCCOMMITRULES, &pr[i]) && - (add || errno != EINVAL)) { - syslog(LOG_ERR, "DIOCCOMMITRULES %m"); - goto error; - } + if (pfctl_trans(dev, &t, DIOCXCOMMIT, 0)) { + syslog(LOG_ERR, "DIOCXCOMMIT (%s) %m", add?"add":"remove"); + goto error; + } if (add) { gettimeofday(&Tstart, NULL); @@ -682,6 +695,8 @@ error: if (f != NULL) fclose(f); + if (pfctl_trans(dev, &t, DIOCXROLLBACK, 0)) + syslog(LOG_ERR, "DIOCXROLLBACK (%s) %m", add?"add":"remove"); infile = NULL; return (-1); @@ -761,37 +776,44 @@ int pfctl_add_rule(struct pfctl *pf, struct pf_rule *r) { - struct pfioc_rule *pr; + u_int8_t rs_num; + struct pfioc_rule pr; switch (r->action) { case PF_PASS: case PF_DROP: - pr = pf->prule[PF_RULESET_FILTER]; + rs_num = PF_RULESET_FILTER; break; case PF_SCRUB: - pr = pf->prule[PF_RULESET_SCRUB]; + rs_num = PF_RULESET_SCRUB; break; case PF_NAT: case PF_NONAT: - pr = pf->prule[PF_RULESET_NAT]; + rs_num = PF_RULESET_NAT; break; case PF_RDR: case PF_NORDR: - pr = pf->prule[PF_RULESET_RDR]; + rs_num = PF_RULESET_RDR; break; case PF_BINAT: case PF_NOBINAT: - pr = pf->prule[PF_RULESET_BINAT]; + rs_num = PF_RULESET_BINAT; break; default: syslog(LOG_ERR, "invalid rule action %d", r->action); return (1); } + + bzero(&pr, sizeof(pr)); + strlcpy(pr.anchor, pf->anchor, sizeof(pr.anchor)); + strlcpy(pr.ruleset, pf->ruleset, sizeof(pr.ruleset)); if (pfctl_add_pool(pf, &r->rpool, r->af)) return (1); - pr->pool_ticket = pf->paddr.ticket; - memcpy(&pr->rule, r, sizeof(pr->rule)); - if (ioctl(pf->dev, DIOCADDRULE, pr)) { + pr.ticket = pfctl_get_ticket(pf->trans, rs_num, pf->anchor, + pf->ruleset); + pr.pool_ticket = pf->paddr.ticket; + memcpy(&pr.rule, r, sizeof(pr.rule)); + if (ioctl(pf->dev, DIOCADDRULE, &pr)) { syslog(LOG_ERR, "DIOCADDRULE %m"); return (1); } @@ -852,6 +874,13 @@ } int +pfctl_set_hostid(struct pfctl *pf, u_int32_t hostid) +{ + fprintf(stderr, "set hostid not supported in authpf\n"); + return (1); +} + +int pfctl_set_timeout(struct pfctl *pf, const char *opt, int seconds, int quiet) { fprintf(stderr, "set timeout not supported in authpf\n"); @@ -866,6 +895,13 @@ } int +pfctl_set_debug(struct pfctl *pf, char *d) +{ + fprintf(stderr, "set debug not supported in authpf\n"); + return (1); +} + +int pfctl_define_table(char *name, int flags, int addrs, const char *anchor, const char *ruleset, struct pfr_buffer *ab, u_int32_t ticket) { @@ -875,10 +911,14 @@ int pfctl_rules(int dev, char *filename, int opts, char *anchorname, - char *rulesetname) + char *rulesetname, struct pfr_buffer *t) { /* never called, no anchors inside anchors, but we need the stub */ fprintf(stderr, "load anchor not supported from authpf\n"); return (1); } +void +pfctl_print_title(char *title) +{ +} ==== //depot/projects/gdb/contrib/pf/ftp-proxy/ftp-proxy.8#3 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $OpenBSD: ftp-proxy.8,v 1.37 2003/09/05 12:27:47 jmc Exp $ +.\" $OpenBSD: ftp-proxy.8,v 1.40 2004/03/16 08:50:07 jmc Exp $ .\" .\" Copyright (c) 1996-2001 .\" Obtuse Systems Corporation, All rights reserved. @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/contrib/pf/ftp-proxy/ftp-proxy.8,v 1.2 2004/05/27 23:51:05 mlaier Exp $ +.\" $FreeBSD: src/contrib/pf/ftp-proxy/ftp-proxy.8,v 1.3 2004/06/16 23:39:30 mlaier Exp $ .\" .Dd August 17, 2001 .Dt FTP-PROXY 8 @@ -38,10 +38,11 @@ .Sh SYNOPSIS .Nm ftp-proxy .Op Fl AnrVw +.Op Fl a Ar address .Op Fl D Ar debuglevel .Op Fl g Ar group +.Op Fl M Ar maxport .Op Fl m Ar minport -.Op Fl M Ar maxport .Op Fl t Ar timeout .Op Fl u Ar user .Sh DESCRIPTION @@ -67,6 +68,26 @@ .Qq anonymous only. Any attempt to log in as another user will be blocked by the proxy. +.It Fl a Ar address +Specify the local IP address to use in +.Xr bind 2 +as the source for connections made by +.Nm ftp-proxy +when connecting to destination FTP servers. +This may be necessary if the interface address of +your default route is not reachable from the destinations +.Nm +is attempting connections to, or this address is different from the one +connections are being NATed to. +In the usual case this means that +.Ar address +should be a publicly visible IP address assigned to one of +the interfaces on the machine running +.Nm +and should be the same address to which you are translating traffic +if you are using the +.Fl n +option. .It Fl D Ar debuglevel Specify a debug level, where the proxy emits verbose debug output into @@ -82,6 +103,14 @@ By default, .Nm uses the default group of the user it drops privilege to. +.It Fl M Ar maxport +Specify the upper end of the port range the proxy will use for the +data connections it establishes. +The default is +.Dv IPPORT_HILASTAUTO +defined in +.Aq Pa netinet/in.h +as 65535. .It Fl m Ar minport Specify the lower end of the port range the proxy will use for all data connections it establishes. @@ -90,14 +119,6 @@ defined in .Aq Pa netinet/in.h as 49152. -.It Fl M Ar maxport -Specify the upper end of the port range the proxy will use for the -data connections it establishes. -The default is -.Dv IPPORT_HILASTAUTO -defined in -.Aq Pa netinet/in.h -as 65535. .It Fl n Activate network address translation .Pq NAT @@ -175,8 +196,8 @@ .Xr pf.conf 5 rule such as .Bd -literal -offset 2n -int_if = xl0 -rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021 +int_if = \&"xl0\&" +rdr pass on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021 .Ed .Pp .Xr inetd 8 ==== //depot/projects/gdb/contrib/pf/ftp-proxy/ftp-proxy.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $OpenBSD: ftp-proxy.c,v 1.33 2003/08/22 21:50:34 david Exp $ */ +/* $OpenBSD: ftp-proxy.c,v 1.35 2004/03/14 21:51:44 dhartmei Exp $ */ /* * Copyright (c) 1996-2001 @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/contrib/pf/ftp-proxy/ftp-proxy.c,v 1.4 2004/03/16 17:24:06 obrien Exp $"); +__FBSDID("$FreeBSD: src/contrib/pf/ftp-proxy/ftp-proxy.c,v 1.5 2004/06/16 23:39:31 mlaier Exp $"); /* * ftp proxy, Originally based on juniper_ftp_proxy from the Obtuse @@ -151,6 +151,7 @@ extern int Debug_Level; extern int Use_Rdns; +extern in_addr_t Bind_Addr; extern char *__progname; typedef enum { @@ -174,9 +175,8 @@ usage(void) { syslog(LOG_NOTICE, - "usage: %s [-AnrVw] [-D debuglevel] [-g group] %s %s", - __progname, "[-m minport] [-M maxport] [-t timeout]", - "[-u user]"); + "usage: %s [-AnrVw] [-a address] [-D debuglevel [-g group]" + " [-M maxport] [-m minport] [-t timeout] [-u user]", __progname); exit(EX_USAGE); } @@ -976,9 +976,18 @@ int use_tcpwrapper = 0; #endif /* LIBWRAP */ - while ((ch = getopt(argc, argv, "D:g:m:M:t:u:AnVwr")) != -1) { + while ((ch = getopt(argc, argv, "a:D:g:m:M:t:u:AnVwr")) != -1) { char *p; switch (ch) { + case 'a': + if (!*optarg) + usage(); + if ((Bind_Addr = inet_addr(optarg)) == INADDR_NONE) { + syslog(LOG_NOTICE, + "%s: invalid address", optarg); + usage(); + } + break; case 'A': AnonFtpOnly = 1; /* restrict to anon usernames only */ break; ==== //depot/projects/gdb/contrib/pf/ftp-proxy/util.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $OpenBSD: util.c,v 1.16 2003/06/28 01:04:57 deraadt Exp $ */ +/* $OpenBSD: util.c,v 1.18 2004/01/22 16:10:30 beck Exp $ */ /* * Copyright (c) 1996-2001 @@ -58,6 +58,7 @@ int Debug_Level; int Use_Rdns; +in_addr_t Bind_Addr = INADDR_NONE; void debuglog(int debug_level, const char *fmt, ...); @@ -77,7 +78,8 @@ struct sockaddr_in *client_sa_ptr) { struct pfioc_natlook natlook; - int slen, fd; + socklen_t slen; + int fd; slen = sizeof(*real_server_sa_ptr); if (getsockname(connected_fd, (struct sockaddr *)real_server_sa_ptr, @@ -257,10 +259,13 @@ bzero(&sa, sizeof sa); sa.sin_family = AF_INET; - if (sap == NULL) - sa.sin_addr.s_addr = INADDR_ANY; + if (Bind_Addr == INADDR_NONE) + if (sap == NULL) + sa.sin_addr.s_addr = INADDR_ANY; + else + sa.sin_addr.s_addr = sap->sin_addr.s_addr; else - sa.sin_addr.s_addr = sap->sin_addr.s_addr; + sa.sin_addr.s_addr = Bind_Addr; /* * Indicate that we want to reuse a port if it happens that the ==== //depot/projects/gdb/contrib/pf/man/pf.4#3 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $OpenBSD: pf.4,v 1.37 2003/08/28 09:41:22 jmc Exp $ +.\" $OpenBSD: pf.4,v 1.48 2004/03/27 17:15:30 henning Exp $ .\" .\" Copyright (C) 2001, Kjell Wooding. All rights reserved. .\" @@ -26,7 +26,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/contrib/pf/man/pf.4,v 1.2 2004/04/18 13:59:12 mlaier Exp $ +.\" $FreeBSD: src/contrib/pf/man/pf.4,v 1.3 2004/06/16 23:39:31 mlaier Exp $ .\" .Dd June 24, 2001 .Dt PF 4 @@ -75,11 +75,7 @@ Starts the ALTQ bandwidth control system. .It Dv DIOCSTOPALTQ Stops the ALTQ bandwidth control system. -.It Dv DIOCBEGINADDRS Fa "u_int32_t" -Clears the buffer address pool -and returns a ticket for subsequent DIOCADDADDR, DIOCADDRULE and -DIOCCHANGERULE calls. -.It Dv DIOCADDADDR Fa "struct pfioc_pooladdr" +.It Dv DIOCBEGINADDRS Fa "struct pfioc_pooladdr" .Bd -literal struct pfioc_pooladdr { u_int32_t action; @@ -95,16 +91,17 @@ }; .Ed .Pp +Clears the buffer address pool +and returns a +.Va ticket +for subsequent DIOCADDADDR, DIOCADDRULE and DIOCCHANGERULE calls. +.It Dv DIOCADDADDR Fa "struct pfioc_pooladdr" +.Pp Adds pool address .Va addr to the buffer address pool to be used in the following DIOCADDRULE or DIOCCHANGERULE call. All other members of the structure are ignored. -.It Dv DIOCBEGINRULES Fa "u_int32_t" -Clears the inactive ruleset for the type of rule indicated by -.Va rule.action -and returns a ticket for subsequent -DIOCADDRULE and DIOCCOMMITRULES calls. .It Dv DIOCADDRULE Fa "struct pfioc_rule" .Bd -literal struct pfioc_rule { @@ -123,7 +120,7 @@ at the end of the inactive ruleset. Requires .Va ticket -obtained through preceding DIOCBEGINRULES call, and +obtained through preceding DIOCXBEGIN call, and .Va pool_ticket obtained through DIOCBEGINADDRS call. DIOCADDADDR must also be called if any pool addresses are required. @@ -136,26 +133,16 @@ and .Va action are ignored. -.It Dv DIOCCOMMITRULES Fa "u_int32_t" -Switch inactive to active filter ruleset. -Requires -.Va ticket . -.It Dv DIOCBEGINALTQS Fa "u_int32_t" -Clears the inactive list of queues and returns a ticket for subsequent -DIOCADDALTQ and DIOCCOMMITALTQS calls. .It Dv DIOCADDALTQ Fa "struct pfioc_altq" Adds .Bd -literal struct pfioc_altq { + u_int32_t action; u_int32_t ticket; u_int32_t nr; struct pf_altq altq; }; .Ed -.It Dv DIOCCOMMITALTQS Fa "u_int32_t" -Switch inactive to active list of queues. -Requires -.Va ticket . .It Dv DIOCGETRULES Fa "struct pfioc_rule" Returns .Va ticket @@ -227,8 +214,6 @@ .Va nbytes for the queue specified by .Va nr . -.It Dv DIOCCLRSTATES -Clears the state table. .It Dv DIOCADDSTATE Fa "struct pfioc_state" Adds a state entry. .It Dv DIOCGETSTATE Fa "struct pfioc_state" @@ -249,8 +234,16 @@ int psk_proto; struct pf_rule_addr psk_src; struct pf_rule_addr psk_dst; + char psk_ifname[IFNAMSIZ]; }; .Ed +.It Dv DIOCCLRSTATES Fa "struct pfioc_state_kill" +Clears all states. +It works like +.Dv DIOCKILLSTATES , +but ignores the psk_af, psk_proto, psk_src and psk_dst fields of the +.Fa pfioc_state_kill +structure. .It Dv DIOCSETSTATUSIF Fa "struct pfioc_if" .Bd -literal struct pfioc_if { @@ -262,14 +255,19 @@ .It Dv DIOCGETSTATUS Fa "struct pf_status" .Bd -literal struct pf_status { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 18 01:33:47 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A92416A4D0; Fri, 18 Jun 2004 01:33:47 +0000 (GMT) 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 121B316A4CE for ; Fri, 18 Jun 2004 01:33:47 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E6BA543D53 for ; Fri, 18 Jun 2004 01:33:46 +0000 (GMT) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I1WquI066742 for ; Fri, 18 Jun 2004 01:32:52 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I1WpiR066738 for perforce@freebsd.org; Fri, 18 Jun 2004 01:32:51 GMT (envelope-from julian@freebsd.org) Date: Fri, 18 Jun 2004 01:32:51 GMT Message-Id: <200406180132.i5I1WpiR066738@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Subject: PERFORCE change 55205 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 01:33:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=55205 Change 55205 by julian@julian_desk on 2004/06/18 01:32:31 don't bother checking this as the function checks it immediatly anyhow. Affected files ... .. //depot/projects/nsched/sys/kern/kern_thread.c#23 edit Differences ... ==== //depot/projects/nsched/sys/kern/kern_thread.c#23 (text+ko) ==== @@ -597,8 +597,7 @@ * XXXKSE This is a KSE thing and should be exported * there somehow. */ - if (td->td_upcall) - upcall_remove(td); + upcall_remove(td); if (kg->kg_numthreads == 0) { /* This kseg is kaput From owner-p4-projects@FreeBSD.ORG Fri Jun 18 03:25:47 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18D9216A4D0; Fri, 18 Jun 2004 03:25:47 +0000 (GMT) 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 C7B9F16A4CE for ; Fri, 18 Jun 2004 03:25:46 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BF32E43D46 for ; Fri, 18 Jun 2004 03:25:46 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5I3PFsj092462 for ; Fri, 18 Jun 2004 03:25:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I3PEBK092459 for perforce@freebsd.org; Fri, 18 Jun 2004 03:25:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 18 Jun 2004 03:25:14 GMT Message-Id: <200406180325.i5I3PEBK092459@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 55215 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 03:25:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=55215 Change 55215 by rwatson@rwatson_tislabs on 2004/06/18 03:25:03 Integrate netperf_socket to loop back kqueue-related locking in socket and fifo kqueue filters. Affected files ... .. //depot/projects/netperf_socket/sys/dev/ed/if_ed_pci.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#9 integrate .. //depot/projects/netperf_socket/sys/i386/isa/npx.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#19 integrate .. //depot/projects/netperf_socket/sys/netinet/in_gif.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_output.c#5 integrate Differences ... ==== //depot/projects/netperf_socket/sys/dev/ed/if_ed_pci.c#2 (text+ko) ==== @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.34 2003/10/31 18:31:58 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.36 2004/06/18 01:28:54 imp Exp $"); #include #include @@ -58,11 +58,11 @@ { 0x00000000, NULL } }; -static int ed_pci_probe (device_t); -static int ed_pci_attach (device_t); +static int ed_pci_probe(device_t); +static int ed_pci_attach(device_t); static int -ed_pci_probe (device_t dev) +ed_pci_probe(device_t dev) { u_int32_t type = pci_get_devid(dev); struct _pcsid *ep =pci_ids; @@ -71,10 +71,9 @@ ++ep; if (ep->desc) { device_set_desc(dev, ep->desc); - return 0; - } else { - return ENXIO; + return (0); } + return (ENXIO); } static int ==== //depot/projects/netperf_socket/sys/fs/fifofs/fifo_vnops.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.98 2004/06/17 22:48:09 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.99 2004/06/18 02:57:54 rwatson Exp $ */ #include @@ -444,23 +444,33 @@ { struct socket *so = (struct socket *)kn->kn_hook; + SOCKBUF_LOCK(&so->so_rcv); SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_rcv.sb_sel.si_note)) so->so_rcv.sb_flags &= ~SB_KNOTE; + SOCKBUF_UNLOCK(&so->so_rcv); } static int filt_fiforead(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; + int need_lock, result; + need_lock = !SOCKBUF_OWNED(&so->so_rcv); + if (need_lock) + SOCKBUF_LOCK(&so->so_rcv); kn->kn_data = so->so_rcv.sb_cc; if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; - return (1); + result = 1; + } else { + kn->kn_flags &= ~EV_EOF; + result = (kn->kn_data > 0); } - kn->kn_flags &= ~EV_EOF; - return (kn->kn_data > 0); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_rcv); + return (result); } static void @@ -468,23 +478,34 @@ { struct socket *so = (struct socket *)kn->kn_hook; + SOCKBUF_LOCK(&so->so_snd); SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_snd.sb_sel.si_note)) so->so_snd.sb_flags &= ~SB_KNOTE; + SOCKBUF_UNLOCK(&so->so_snd); } static int filt_fifowrite(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; + int need_lock, result; + need_lock = !SOCKBUF_OWNED(&so->so_snd); + if (need_lock) + SOCKBUF_LOCK(&so->so_snd); kn->kn_data = sbspace(&so->so_snd); + /* Unlocked read. */ if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; - return (1); + result = 1; + } else { + kn->kn_flags &= ~EV_EOF; + result = (kn->kn_data >= so->so_snd.sb_lowat); } - kn->kn_flags &= ~EV_EOF; - return (kn->kn_data >= so->so_snd.sb_lowat); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_snd); + return (result); } /* ARGSUSED */ ==== //depot/projects/netperf_socket/sys/i386/isa/npx.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.149 2004/06/06 15:17:44 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.151 2004/06/18 02:10:55 bde Exp $"); #include "opt_cpu.h" #include "opt_debug_npx.h" @@ -872,6 +872,15 @@ { struct thread *td; + /* + * Discard pending exceptions in the !cpu_fxsr case so that unmasked + * ones don't cause a panic on the next frstor. + */ +#ifdef CPU_ENABLE_SSE + if (!cpu_fxsr) +#endif + fnclex(); + td = PCPU_GET(fpcurthread); PCPU_SET(fpcurthread, NULL); td->td_pcb->pcb_flags &= ~PCB_NPXINITDONE; ==== //depot/projects/netperf_socket/sys/kern/uipc_socket.c#19 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.179 2004/06/17 22:48:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.180 2004/06/18 02:57:55 rwatson Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -509,9 +509,9 @@ int error; if ((so->so_state & SS_ISCONNECTED) == 0) - return ENOTCONN; + return (ENOTCONN); if (so->so_state & SS_ISDISCONNECTING) - return EALREADY; + return (EALREADY); error = (*so->so_proto->pr_usrreqs->pru_disconnect)(so); return (error); } @@ -1932,9 +1932,16 @@ filt_soread(struct knote *kn, long hint) { struct socket *so = kn->kn_fp->f_data; - int result; + int need_lock, result; - SOCKBUF_LOCK(&so->so_rcv); /* XXX too conservative? */ + /* + * XXXRW: Conditional locking because filt_soread() can be called + * either from KNOTE() in the socket context where the socket buffer + * lock is already held, or from kqueue() itself. + */ + need_lock = !SOCKBUF_OWNED(&so->so_rcv); + if (need_lock) + SOCKBUF_LOCK(&so->so_rcv); kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; @@ -1946,7 +1953,8 @@ result = (kn->kn_data >= kn->kn_sdata); else result = (so->so_rcv.sb_cc >= so->so_rcv.sb_lowat); - SOCKBUF_UNLOCK(&so->so_rcv); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_rcv); return (result); } @@ -1967,9 +1975,16 @@ filt_sowrite(struct knote *kn, long hint) { struct socket *so = kn->kn_fp->f_data; - int result; + int need_lock, result; - SOCKBUF_LOCK(&so->so_snd); /* XXX too conservative? */ + /* + * XXXRW: Conditional locking because filt_soread() can be called + * either from KNOTE() in the socket context where the socket buffer + * lock is already held, or from kqueue() itself. + */ + need_lock = !SOCKBUF_OWNED(&so->so_snd); + if (need_lock) + SOCKBUF_LOCK(&so->so_snd); kn->kn_data = sbspace(&so->so_snd); if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; @@ -1984,7 +1999,8 @@ result = (kn->kn_data >= kn->kn_sdata); else result = (kn->kn_data >= so->so_snd.sb_lowat); - SOCKBUF_UNLOCK(&so->so_snd); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_snd); return (result); } ==== //depot/projects/netperf_socket/sys/netinet/in_gif.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet/in_gif.c,v 1.25 2004/04/14 01:13:14 luigi Exp $ */ +/* $FreeBSD: src/sys/netinet/in_gif.c,v 1.26 2004/06/18 02:04:07 bms Exp $ */ /* $KAME: in_gif.c,v 1.54 2001/05/14 14:02:16 itojun Exp $ */ /* @@ -177,6 +177,7 @@ if (dst->sin_family != sin_dst->sin_family || dst->sin_addr.s_addr != sin_dst->sin_addr.s_addr) { /* cache route doesn't match */ + bzero(dst, sizeof(*dst)); dst->sin_family = sin_dst->sin_family; dst->sin_len = sizeof(struct sockaddr_in); dst->sin_addr = sin_dst->sin_addr; ==== //depot/projects/netperf_socket/sys/netinet/tcp_output.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_output.c 8.4 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.91 2004/05/04 02:11:47 rwatson Exp $ + * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.92 2004/06/18 02:47:59 bms Exp $ */ #include "opt_inet.h" @@ -292,7 +292,7 @@ len = tp->t_maxseg; sendalot = 1; } - if (SEQ_LT(tp->snd_nxt + len, tp->snd_una + so->so_snd.sb_cc)) + if (off + len < so->so_snd.sb_cc) flags &= ~TH_FIN; recwin = sbspace(&so->so_rcv); From owner-p4-projects@FreeBSD.ORG Fri Jun 18 03:28:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA73816A4D0; Fri, 18 Jun 2004 03:28:39 +0000 (GMT) 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 8308916A4CE for ; Fri, 18 Jun 2004 03:28:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C10143D53 for ; Fri, 18 Jun 2004 03:28:39 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I3SKu4092591 for ; Fri, 18 Jun 2004 03:28:20 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I3SK0I092588 for perforce@freebsd.org; Fri, 18 Jun 2004 03:28:20 GMT (envelope-from peter@freebsd.org) Date: Fri, 18 Jun 2004 03:28:20 GMT Message-Id: <200406180328.i5I3SK0I092588@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 55217 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 03:28:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=55217 Change 55217 by peter@peter_overcee on 2004/06/18 03:27:41 attempt to fix fpu initial state based on tjr's observations. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/fpu.c#18 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/fpu.c#18 (text+ko) ==== @@ -125,6 +125,8 @@ ldmxcsr(mxcsr); fxsave(&fpu_cleanstate); start_emulating(); + bzero(fpu_cleanstate.sv_fp, sizeof(fpu_cleanstate.sv_fp)); + bzero(fpu_cleanstate.sv_xmm, sizeof(fpu_cleanstate.sv_xmm)); fpu_cleanstate_ready = 1; intr_restore(savecrit); } @@ -384,7 +386,6 @@ { struct pcb *pcb; register_t s; - u_short control; if (PCPU_GET(fpcurthread) == curthread) { printf("fpudna: fpcurthread == curthread %d times\n", @@ -409,13 +410,10 @@ if ((pcb->pcb_flags & PCB_FPUINITDONE) == 0) { /* - * This is the first time this thread has used the FPU or - * the PCB doesn't contain a clean FPU state. Explicitly - * initialize the FPU and load the default control word. + * This is the first time this thread has used the FPU, + * explicitly load sanitized registers. */ - fninit(); - control = __INITIAL_FPUCW__; - fldcw(&control); + fxrstor(&fpu_cleanstate); pcb->pcb_flags |= PCB_FPUINITDONE; } else fxrstor(&pcb->pcb_save); From owner-p4-projects@FreeBSD.ORG Fri Jun 18 05:08:13 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4565816A4D0; Fri, 18 Jun 2004 05:08:13 +0000 (GMT) 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 00C9716A4CE for ; Fri, 18 Jun 2004 05:08:13 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB91243D49 for ; Fri, 18 Jun 2004 05:08:12 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I56mJb022342 for ; Fri, 18 Jun 2004 05:06:48 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I56aZI022339 for perforce@freebsd.org; Fri, 18 Jun 2004 05:06:36 GMT (envelope-from marcel@freebsd.org) Date: Fri, 18 Jun 2004 05:06:36 GMT Message-Id: <200406180506.i5I56aZI022339@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 55226 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 05:08:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=55226 Change 55226 by marcel@marcel_nfs on 2004/06/18 05:05:50 Import GDB 6.1.1 into contrib/gdb. Stripped. Affected files ... .. //depot/projects/gdb/contrib/gdb/ChangeLog#4 delete .. //depot/projects/gdb/contrib/gdb/FREEBSD-Xlist#4 edit .. //depot/projects/gdb/contrib/gdb/FREEBSD-deletelist#4 delete .. //depot/projects/gdb/contrib/gdb/FREEBSD-upgrade#4 delete .. //depot/projects/gdb/contrib/gdb/MAINTAINERS#4 delete .. //depot/projects/gdb/contrib/gdb/Makefile.in#4 delete .. //depot/projects/gdb/contrib/gdb/config-ml.in#4 edit .. //depot/projects/gdb/contrib/gdb/config.guess#4 delete .. //depot/projects/gdb/contrib/gdb/config.if#4 delete .. //depot/projects/gdb/contrib/gdb/config.sub#4 delete .. //depot/projects/gdb/contrib/gdb/configure#4 delete .. //depot/projects/gdb/contrib/gdb/configure.in#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1990#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1991#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1992#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1993#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1994#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1995#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1996#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1997#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1998#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-1999#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-2000#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-2001#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-3.x#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-96#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-97#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ChangeLog-98#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/MAINTAINERS#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/Makefile.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/NEWS#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/PROBLEMS#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/README#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/TODO#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/acinclude.m4#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/aclocal.m4#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ada-tasks.c#4 add .. //depot/projects/gdb/contrib/gdb/gdb/alpha-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/alphabsd-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/alphafbsd-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/annotate.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/arc-tdep.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/arch-utils.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/arch-utils.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/arm-linux-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/arm-linux-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/arm-tdep.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/armnbsd-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ax-gdb.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ax-gdb.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ax-general.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/bcache.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/bcache.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/blockframe.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/breakpoint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/breakpoint.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/buildsym.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/buildsym.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/c-exp.y#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/c-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/c-lang.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/c-typeprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/c-valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ch-exp.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ch-lang.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ch-lang.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ch-typeprint.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ch-valprint.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/cli-out.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli-out.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-cmds.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-decode.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-decode.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-script.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-script.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-setshow.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cli/cli-setshow.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/coffread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/command.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/command.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/complaints.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/complaints.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/completer.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/completer.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/alpha-linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/alpha-linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/alpha-osf1.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/alpha-osf1.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/fbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/nm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/nm-osf.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/nm-osf2.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/tm-alpha.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/tm-alphalinux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/tm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/alpha/xm-alphalinux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/nbsd.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/nbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/nm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/tm-arm.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/wince.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/xm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/arm/xm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/cygwin.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/cygwin.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/fbsd.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/fbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/gdbserve.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/go32.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386aix.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386aix.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386aout.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386bsd.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386bsd.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386dgux.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386gnu.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386gnu.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386lynx.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386m3.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386m3.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386mach.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386mk.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386mk.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386nw.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386os9k.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386sco5.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386sol2.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386sol2.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386v.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386v32.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386v4.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386v42mp.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/i386v42mp.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nbsd.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nbsdelf.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nbsdelf.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/ncr3000.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-cygwin.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-gnu.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-go32.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386aix.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386bsd.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386lynx.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386mach.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386sco.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386sco5.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386sol2.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386v.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386v4.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-i386v42mp.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-m3.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-nbsdelf.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-obsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-ptx4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-sun386.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-symmetry.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/nm-x86-64.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/obsd.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/obsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/ptx.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/ptx.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/ptx4.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/ptx4.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/sun386.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/sun386.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/symmetry.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/symmetry.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-cygwin.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-go32.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386aix.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386bsd.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386gnu.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386lynx.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386m3.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386mk.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386nw.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386os9k.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386sco5.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386sol2.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386v.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386v4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-i386v42mp.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-nbsdelf.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-obsd.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-ptx.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-ptx4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-sun386.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-symmetry.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-vxworks.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/x86-64linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/x86-64linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-cygwin.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386aix.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386bsd.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386gnu.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386lynx.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386m3.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386mach.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386mk.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386sco.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386v32.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-i386v4.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-linux.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-ptx.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-ptx4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-sun386.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-symmetry.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/xm-windows.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/aix.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/aix.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/nm-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/tm-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/tm-ia64.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/xm-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/ia64/xm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/none/nm-none.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/none/none.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/none/none.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/none/tm-none.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/none/xm-none.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/aix.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/aix.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/gdbserve.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/nbsd.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/nbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/nm-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/nm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/ppc-eabi.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/ppc-sim.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/ppcle-eabi.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/ppcle-sim.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-ppc-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-ppc-eabi.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-ppc-sim.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/tm-vxworks.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/vxworks.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/xm-aix.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/powerpc/xm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/fbsd.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/fbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/linux.mh#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/linux.mt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nbsd.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nbsd.mt#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nbsdelf.mh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-nbsdelf.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-sparclynx.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-sun4os4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/nm-sun4sol2.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sp64.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sp64linux.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sp64sim.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sp64sol2.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sparc-em.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sparclet.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sparclite.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sparclynx.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sparclynx.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sun4os4.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sun4os4.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sun4sol2.mh#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/sun4sol2.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-fbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-nbsd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sp64.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sp64linux.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sp64sim.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sparc.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sparclet.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sparclite.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sparclynx.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-spc-em.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sun4os4.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-sun4sol2.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/tm-vxsparc.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/vxsparc.mt#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/xm-linux.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/xm-nbsd.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/sparc/xm-sun4sol2.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/config/tm-linux.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/configure#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/configure.host#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/configure.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/configure.tgt#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/core-regset.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/corefile.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/corelow.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cp-abi.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cp-abi.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/cp-valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dbug-rom.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dbxread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dcache.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/defs.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/demangle.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dink32-rom.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/ChangeLog#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/GDBvn.texi#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/Makefile.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/agentexpr.texi#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/all-cfg.texi#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/annotate.texi#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/configure#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/configure.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/fdl.texi#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/gdb.texinfo#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/gdbint.texinfo#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doc/libgdb.texinfo#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/doc/stabs.texinfo#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doublest.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/doublest.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dsrec.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dst.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/dstread.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/dwarf2cfi.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/dwarf2cfi.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/dwarf2read.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/dwarfread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/elfread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/environ.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/eval.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/event-loop.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/event-loop.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/event-top.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/event-top.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/exec.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/expprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/expression.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/f-exp.y#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/f-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/f-typeprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/f-valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/findvar.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/fork-child.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/frame.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/frame.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gcore.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb-events.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb-events.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb-events.sh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb-stabs.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb.1#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb_assert.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb_dirent.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb_indent.sh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb_regex.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdb_thread_db.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdba.el#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbarch.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbarch.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbarch.sh#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbcore.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbinit.in#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/Makefile.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/acconfig.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/aclocal.m4#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/config.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/configure#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/configure.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/configure.srv#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/gdbreplay.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/i387-fp.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/i387-fp.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-arm-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-i386-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-ia64-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-low.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-mips-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-ppc-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/linux-x86-64-low.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-hppabsd.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-linux.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-lynx.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-nbsd.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-sim.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-sparc.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/low-sun3.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/regcache.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/regcache.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/remote-utils.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/server.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/server.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/utils.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbthread.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbtypes.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gdbtypes.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gnu-regex.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gnu-regex.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/gnu-v2-abi.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gnu-v3-abi.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/gregset.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/hp-psymtab-read.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/hp-symtab-read.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/hpacc-abi.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/hpread.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/hpux-thread.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/i386-linux-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/i386-linux-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/i386-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386-tdep.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386b-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/i386bsd-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386bsd-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386fbsd-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i386nbsd-nat.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/i386nbsd-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/i387-nat.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/i387-nat.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/i387-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ia64-aix-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ia64-aix-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ia64-linux-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ia64-linux-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ia64-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/infcmd.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/inferior.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/inflow.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/infptrace.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/infrun.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/inftarg.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/infttrace.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/jv-exp.tab.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/jv-exp.y#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/jv-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/jv-typeprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/jv-valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/kod.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/language.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/language.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/lin-lwp.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/linespec.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/linespec.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/linux-proc.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/m2-exp.y#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/m2-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/main.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/maint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mdebugread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mem-break.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/memattr.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/ChangeLog#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/mi/gdbmi.texinfo#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmd-break.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmd-disas.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmd-stack.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmd-var.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmds.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-cmds.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-console.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-console.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-getopt.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-getopt.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-main.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-out.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-out.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mi/mi-parse.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/minsyms.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/mipsread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/nlm/Makefile.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/configure#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/configure.in#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/gdbserve.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/gdbserve.def#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/i386.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/i386.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/ppc.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/ppc.h#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlm/prelude.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/nlmread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/objfiles.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/objfiles.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ocd.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ocd.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/p-exp.y#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/p-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/p-lang.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/p-typeprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/p-valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/parse.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/parser-defs.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/partial-stab.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/ppc-bdm.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ppc-linux-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ppc-linux-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/ppc-tdep.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ppcnbsd-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/printcmd.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/proc-api.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/proc-utils.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/regcache.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/regcache.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/regformats/reg-i386-linux.dat#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/regformats/reg-ppc.dat#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/regformats/reg-x86-64.dat#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/remote-rdi.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/remote-utils.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/remote-utils.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/remote.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/remote.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/saber.suppress#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/scm-exp.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/scm-lang.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/scm-lang.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ser-pipe.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ser-tcp.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ser-unix.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ser-unix.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/serial.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/serial.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/signals.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/signals.h#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/signals/signals.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/sol-thread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib-legacy.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib-osf.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib-sunos.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib-svr4.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib-svr4.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solib.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/solist.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/source.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/source.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/sparc-linux-nat.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/sparc-nat.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/sparc-tdep.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/sparcl-stub.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/sparcl-tdep.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/sparclet-rom.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/sparclet-stub.c#4 delete .. //depot/projects/gdb/contrib/gdb/gdb/stabsread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/stabsread.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/stack.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/symfile.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/symfile.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/symmisc.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/symtab.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/symtab.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/target.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/target.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/thread-db.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/thread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/top.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/top.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/tracepoint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/typeprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/typeprint.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ui-file.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ui-file.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ui-out.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/ui-out.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/utils.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/uw-thread.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/valarith.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/valops.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/valprint.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/valprint.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/value.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/values.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/varobj.c#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/version.in#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/wrapper.h#5 edit .. //depot/projects/gdb/contrib/gdb/gdb/x86-64-linux-nat.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/x86-64-linux-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/x86-64-tdep.c#5 delete .. //depot/projects/gdb/contrib/gdb/gdb/x86-64-tdep.h#5 delete .. //depot/projects/gdb/contrib/gdb/include/gdb/ChangeLog#5 delete .. //depot/projects/gdb/contrib/gdb/include/gdb/signals.h#5 edit Differences ... ==== //depot/projects/gdb/contrib/gdb/FREEBSD-Xlist#4 (text+ko) ==== @@ -1,120 +1,68 @@ $FreeBSD: src/contrib/gdb/FREEBSD-Xlist,v 1.5 2002/10/12 21:33:49 mp Exp $ -*/gettext.m4 -*/libtool.m4 -*/md5.sum -*/install-sh -*/install.sh -*/ltconfig -*/ltmain.sh -*/missing -*/mkinstalldirs -*/move-if-change -*/mpw-*-if-change -*/symlink-tree -*/ylwrap -*/*mpw* -*/*.bat -*/bfd/* -*/config/* -*/etc/* -*/include/* -*/intl/* -*/libiberty/* -*/ltcf-* -*/mmalloc/* -*/opcodes/* -*/texinfo/* -*/utils/* -*/sim/* -*/readline/* -*/testsuite/* -*/gdb/*29k* -*/gdb/*960* -*/gdb/*a68v* -*/gdb/*altos* -*/gdb/*avr* -*/gdb/*convex* -*/gdb/*cpu32bug* -*/gdb/*cris* -*/gdb/*cxux* -*/gdb/*d10v* -*/gdb/*d30v* -*/gdb/*delta68* -*/gdb/*dpx2* -*/gdb/*dve3900* -*/gdb/*e7* -*/gdb/*-exp.tab.c -*/gdb/*gnu-nat* -*/gdb/*go32* -*/gdb/*h8300* -*/gdb/*h8500* -*/gdb/*hp300ux* -*/gdb/hppa* -*/gdb/hpread.c -*/gdb/*irix* -*/gdb/*isi-* -*/gdb/lynx* -*/gdb/*m32r* -*/gdb/*m68k* -*/gdb/m68hc11-tdep.c -*/gdb/*m88k* -*/gdb/*mcore* -*/gdb/mips-* -*/gdb/mipsm3-nat.c -*/gdb/mipsv4-nat.c -*/gdb/*mpw* -*/gdb/*mn10200* -*/gdb/*mn10300* -*/gdb/*news-xdep* -*/gdb/*nindy* -*/gdb/*-nrom* -*/gdb/*ns32k* -*/gdb/*op50* -*/gdb/*os9* -*/gdb/*pa64* -*/gdb/*ptx* -*/gdb/*pyr* -*/gdb/*rs6000* -*/gdb/*s390* -*/gdb/*sh-* -*/gdb/*sh3* -*/gdb/som* -*/gdb/sun3* -*/gdb/*symm-* -*/gdb/*tahoe* -*/gdb/*tic80* -*/gdb/*v850* -*/gdb/*ultra3* -*/gdb/*umax-* -*/gdb/*vax* -*/gdb/*vx* -*/gdb/*w65* -*/gdb/*w89* -*/gdb/*wince* -*/gdb/*xmodem* -*/gdb/*z8k* -*/gdb/remote-adapt.c -*/gdb/remote-array.c -*/gdb/remote-bug.c -*/gdb/remote-eb.c -*/gdb/remote-es.c -*/gdb/remote-est.c -*/gdb/remote-hms.c -*/gdb/remote-mm.c -*/gdb/remote-nrom.c -*/gdb/remote-sds.c -*/gdb/remote-set.c -*/gdb/remote-udi.c -*/gdb/solib-aix5.c -*/gdb/stop-gdb.c -*/gdb/tui/* -*/gdb/config/* -*/gdb/doc/*.info* -*/gdb/doc/*.ps -*/gdb/doc/*.dvi -*/gdb/nindy-share/* -*/gdb/osf-share/* -*/gdb/rdi-share/* -*/gdb/xstormy16-tdep.c -*/gdb/vx-share/* -*/gdb/win32-nat.c +gdb-6.1.1/bfd/* +gdb-6.1.1/config/* +gdb-6.1.1/etc/* +gdb-6.1.1/gdb/avr* +gdb-6.1.1/gdb/config/avr/* +gdb-6.1.1/gdb/config/cris/* +gdb-6.1.1/gdb/config/d10v/* +gdb-6.1.1/gdb/config/djgpp/* +gdb-6.1.1/gdb/config/frv/* +gdb-6.1.1/gdb/config/h8300/* +gdb-6.1.1/gdb/config/m32r/* +gdb-6.1.1/gdb/config/m68hc11/* +gdb-6.1.1/gdb/config/m68k/* +gdb-6.1.1/gdb/config/mcore/* +gdb-6.1.1/gdb/config/mn10300/* +gdb-6.1.1/gdb/config/ns32k/* +gdb-6.1.1/gdb/config/pa/* +gdb-6.1.1/gdb/config/rs6000/* +gdb-6.1.1/gdb/config/sh/* +gdb-6.1.1/gdb/config/v850/* +gdb-6.1.1/gdb/config/vax/* +gdb-6.1.1/gdb/config/xstormy16/* +gdb-6.1.1/gdb/cris* +gdb-6.1.1/gdb/d10v* +gdb-6.1.1/gdb/frv* +gdb-6.1.1/gdb/h8300* +gdb-6.1.1/gdb/*m32r* +gdb-6.1.1/gdb/m68* +gdb-6.1.1/gdb/mcore* +gdb-6.1.1/gdb/mn10300* +gdb-6.1.1/gdb/nlm/* +gdb-6.1.1/gdb/ns32k* +gdb-6.1.1/gdb/osf-share/* +gdb-6.1.1/gdb/hppa* +gdb-6.1.1/gdb/rdi-share/* +gdb-6.1.1/gdb/rs6000* +gdb-6.1.1/gdb/sh* +gdb-6.1.1/gdb/testsuite/* +gdb-6.1.1/gdb/v850* +gdb-6.1.1/gdb/vax* +gdb-6.1.1/gdb/vx-share/* +gdb-6.1.1/gdb/xstormy16* +gdb-6.1.1/include/aout/* +gdb-6.1.1/include/coff/* +gdb-6.1.1/include/elf/* +gdb-6.1.1/include/mpw/* +gdb-6.1.1/include/nlm/* +gdb-6.1.1/include/opcode/* +gdb-6.1.1/intl/* +gdb-6.1.1/libiberty/* +gdb-6.1.1/mmalloc/* +gdb-6.1.1/opcodes/* +gdb-6.1.1/readline/* +gdb-6.1.1/sim/* +gdb-6.1.1/texinfo/* +gdb-6.1.1/utils/* +*ChangeLog* +*Makefile* +*aix* +*config.* +*configure* +*cygwin* +*hpux* +*interix* +*irix* +*linux* +*osf1* ==== //depot/projects/gdb/contrib/gdb/config-ml.in#4 (text+ko) ==== @@ -1,6 +1,32 @@ # Configure fragment invoked in the post-target section for subdirs # wanting multilib support. # +# Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. +# +# Please report bugs to +# and send patches to . + # It is advisable to support a few --enable/--disable options to let the # user select which libraries s/he really wants. # @@ -17,8 +43,6 @@ # . ${srcdir}/../config-ml.in # fi # -# See librx/configure.in in the libg++ distribution for an example of how -# to handle autoconf'd libraries. # # Things are complicated because 6 separate cases must be handled: # 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6. @@ -30,13 +54,10 @@ # The build tree is layed out as # # ./ -# libg++ # newlib # m68020/ -# libg++ # newlib # m68881/ -# libg++ # newlib # # The nice feature about this arrangement is that inter-library references @@ -69,11 +90,6 @@ # newlib. It is up to each target to turn on multilib support for the other # libraries as desired. -# We have to handle being invoked by both Cygnus configure and Autoconf. -# -# Cygnus configure incoming variables: -# srcdir, subdir, host, arguments -# # Autoconf incoming variables: # srcdir, host, ac_configure_args # @@ -83,26 +99,14 @@ # Note that `host' in this case is GCC's `target'. Target libraries are # configured for a particular host. -if [ -n "${ac_configure_args}" ]; then - Makefile=${ac_file-Makefile} - ml_config_shell=${CONFIG_SHELL-/bin/sh} - ml_arguments="${ac_configure_args}" - ml_realsrcdir=${srcdir} -else - Makefile=${Makefile-Makefile} - ml_config_shell=${config_shell-/bin/sh} - ml_arguments="${arguments}" - if [ -n "${subdir}" -a "${subdir}" != "." ] ; then - ml_realsrcdir=${srcdir}/${subdir} - else - ml_realsrcdir=${srcdir} - fi -fi +Makefile=${ac_file-Makefile} +ml_config_shell=${CONFIG_SHELL-/bin/sh} +ml_realsrcdir=${srcdir} # Scan all the arguments and set all the ones we need. ml_verbose=--verbose -for option in ${ml_arguments} +for option in ${ac_configure_args} do case $option in --*) ;; @@ -128,7 +132,7 @@ enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` eval $enableopt="$optarg" ;; - --norecursion | --no*) + --norecursion | --no-recursion) ml_norecursion=yes ;; --silent | --sil* | --quiet | --q*) @@ -156,7 +160,7 @@ if [ "${enable_multilib}" = yes ]; then # Compute whether this is the library's top level directory -# (ie: not a multilib subdirectory, and not a subdirectory like libg++/src). +# (ie: not a multilib subdirectory, and not a subdirectory like newlib/src). # ${with_multisubdir} tells us we're in the right branch, but we could be # in a subdir of that. # ??? The previous version could void this test by separating the process into @@ -397,6 +401,28 @@ esac ;; powerpc*-*-* | rs6000*-*-*) + if [ x$enable_aix64 = xno ] + then + old_multidirs="${multidirs}" + multidirs="" + for x in ${old_multidirs}; do + case "$x" in + *ppc64* ) : ;; + *) multidirs="${multidirs} ${x}" ;; + esac + done + fi + if [ x$enable_pthread = xno ] + then + old_multidirs="${multidirs}" + multidirs="" + for x in ${old_multidirs}; do + case "$x" in + *pthread* ) : ;; + *) multidirs="${multidirs} ${x}" ;; + esac + done + fi if [ x$enable_softfloat = xno ] then old_multidirs="${multidirs}" @@ -463,17 +489,6 @@ esac done fi - if [ x$enable_aix = xno ] - then - old_multidirs="${multidirs}" - multidirs="" - for x in ${old_multidirs}; do - case "$x" in - *mcall-aix* ) : ;; - *) multidirs="${multidirs} ${x}" ;; - esac - done - fi ;; sparc*-*-*) case " $multidirs " in @@ -510,14 +525,16 @@ cat > Multi.tem <<\EOF +PWD_COMMAND=$${PWDCMD-pwd} + # FIXME: There should be an @-sign in front of the `if'. # Leave out until this is tested a bit more. multi-do: if [ -z "$(MULTIDIRS)" ]; then \ true; \ else \ - rootpre=`pwd`/; export rootpre; \ - srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \ + rootpre=`${PWD_COMMAND}`/; export rootpre; \ + srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \ compiler="$(CC)"; \ for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \ @@ -531,10 +548,17 @@ CFLAGS="$(CFLAGS) $${flags}" \ prefix="$(prefix)" \ exec_prefix="$(exec_prefix)" \ + GCJFLAGS="$(GCJFLAGS) $${flags}" \ CXXFLAGS="$(CXXFLAGS) $${flags}" \ LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ LDFLAGS="$(LDFLAGS) $${flags}" \ + MULTIFLAGS="$${flags}" \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 18 05:22:07 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 21EEE16A4D0; Fri, 18 Jun 2004 05:22:07 +0000 (GMT) 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 EFAB616A4CE for ; Fri, 18 Jun 2004 05:22:06 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E6C9343D2D for ; Fri, 18 Jun 2004 05:22:06 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I5L7MQ024524 for ; Fri, 18 Jun 2004 05:21:07 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I5L6uf024521 for perforce@freebsd.org; Fri, 18 Jun 2004 05:21:06 GMT (envelope-from peter@freebsd.org) Date: Fri, 18 Jun 2004 05:21:06 GMT Message-Id: <200406180521.i5I5L6uf024521@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 55228 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 05:22:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=55228 Change 55228 by peter@peter_daintree on 2004/06/18 05:20:27 IFC @55227 Affected files ... .. //depot/projects/hammer/contrib/libpcap/pcap-bpf.c#5 integrate .. //depot/projects/hammer/lib/libc/sys/clock_gettime.2#4 integrate .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#21 integrate .. //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_machdep.h#6 integrate .. //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_start.S#5 integrate .. //depot/projects/hammer/share/man/man5/rc.conf.5#28 integrate .. //depot/projects/hammer/sys/amd64/amd64/fpu.c#19 integrate .. //depot/projects/hammer/sys/dev/ed/if_ed_pci.c#5 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#20 integrate .. //depot/projects/hammer/sys/fs/portalfs/portal_vnops.c#7 integrate .. //depot/projects/hammer/sys/i386/isa/npx.c#19 integrate .. //depot/projects/hammer/sys/kern/kern_time.c#10 integrate .. //depot/projects/hammer/sys/kern/sys_socket.c#11 integrate .. //depot/projects/hammer/sys/kern/uipc_socket.c#26 integrate .. //depot/projects/hammer/sys/kern/uipc_socket2.c#21 integrate .. //depot/projects/hammer/sys/kern/vfs_aio.c#19 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#9 integrate .. //depot/projects/hammer/sys/netgraph/ng_ksocket.c#11 integrate .. //depot/projects/hammer/sys/netinet/in_gif.c#7 integrate .. //depot/projects/hammer/sys/netinet/tcp_output.c#15 integrate .. //depot/projects/hammer/sys/netsmb/smb_trantcp.c#7 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_syscalls.c#13 integrate .. //depot/projects/hammer/sys/sys/param.h#36 integrate Differences ... ==== //depot/projects/hammer/contrib/libpcap/pcap-bpf.c#5 (text+ko) ==== @@ -17,8 +17,6 @@ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * $FreeBSD: src/contrib/libpcap/pcap-bpf.c,v 1.2 2004/05/31 21:29:30 dwmalone Exp $ */ #ifndef lint static const char rcsid[] _U_ = @@ -469,7 +467,7 @@ */ do { (void)snprintf(device, sizeof(device), "/dev/bpf%d", n++); - fd = open(device, O_RDWR); + fd = open(device, O_RDONLY); } while (fd < 0 && errno == EBUSY); /* ==== //depot/projects/hammer/lib/libc/sys/clock_gettime.2#4 (text+ko) ==== @@ -31,9 +31,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.17 2003/09/10 19:24:33 ru Exp $ +.\" $FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.18 2004/06/17 23:13:38 kbyanc Exp $ .\" -.Dd February 5, 2003 +.Dd June 17, 2004 .Dt CLOCK_GETTIME 2 .Os .Sh NAME @@ -128,9 +128,3 @@ .Fn clock_getres system calls conform to .St -p1003.1b-93 . -.Sh BUGS -The -.Dv CLOCK_VIRTUAL -and -.Dv CLOCK_PROF -timers are not yet implemented. ==== //depot/projects/hammer/libexec/rtld-elf/rtld.c#21 (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/libexec/rtld-elf/rtld.c,v 1.96 2004/05/28 00:05:28 eik Exp $ + * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.97 2004/06/18 02:01:37 tmm Exp $ */ /* @@ -162,6 +162,9 @@ extern Elf_Dyn _DYNAMIC; #pragma weak _DYNAMIC +#ifndef RTLD_IS_DYNAMIC +#define RTLD_IS_DYNAMIC() (&_DYNAMIC != NULL) +#endif /* * These are the functions the dynamic linker exports to application @@ -1008,7 +1011,7 @@ #ifdef PIC objtmp.relocbase = mapbase; #endif - if (&_DYNAMIC != 0) { + if (RTLD_IS_DYNAMIC()) { objtmp.dynamic = rtld_dynamic(&objtmp); digest_dynamic(&objtmp, 1); assert(objtmp.needed == NULL); ==== //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_machdep.h#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/libexec/rtld-elf/sparc64/rtld_machdep.h,v 1.5 2003/07/04 00:05:15 jake Exp $ + * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_machdep.h,v 1.6 2004/06/18 02:01:37 tmm Exp $ */ #ifndef RTLD_MACHDEP_H @@ -37,7 +37,9 @@ struct Struct_Obj_Entry; /* Return the address of the .dynamic section in the dynamic linker. */ -Elf_Dyn *rtld_dynamic(const struct Struct_Obj_Entry *); +Elf_Dyn *rtld_dynamic_addr(); +#define rtld_dynamic(obj) rtld_dynamic_addr() +#define RTLD_IS_DYNAMIC() (rtld_dynamic_addr() != NULL) Elf_Addr reloc_jmpslot(Elf_Addr *, Elf_Addr, const struct Struct_Obj_Entry *, ==== //depot/projects/hammer/libexec/rtld-elf/sparc64/rtld_start.S#5 (text+ko) ==== @@ -37,7 +37,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_start.S,v 1.5 2003/07/04 00:05:15 jake Exp $ + * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_start.S,v 1.6 2004/06/18 02:01:37 tmm Exp $ */ #include @@ -71,8 +71,9 @@ * Find the address of _DYNAMIC by disassembling a call instruction to it. * Binutils may not fill in the GOT as expected on other architectures. */ +.weak _DYNAMIC -ENTRY(rtld_dynamic) +ENTRY(rtld_dynamic_addr) save %sp, -CCFSZ, %sp call 1f nop @@ -82,7 +83,7 @@ sra %o0, 0, %o0 ret restore %o0, %o7, %o0 -END(rtld_dynamic) +END(rtld_dynamic_addr) /* * We have two separate entry points to the runtime linker. ==== //depot/projects/hammer/share/man/man5/rc.conf.5#28 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.217 2004/06/16 08:33:56 ru Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.218 2004/06/18 01:28:33 bms Exp $ .\" .Dd April 25, 2004 .Dt RC.CONF 5 @@ -1691,6 +1691,12 @@ whose contents will later be passed to a .Dq Nm route Cm add operation. +For example: +.Bd -literal +static_routes="mcast gif0local" +route_mcast="-net 224.0.0.0/4 -iface gif0" +route_gif0local="-host 169.254.1.1 -iface lo0" +.Ed .It Va ipv6_static_routes .Pq Vt str The IPv6 equivalent of ==== //depot/projects/hammer/sys/amd64/amd64/fpu.c#19 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.153 2004/06/08 01:35:48 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.154 2004/06/18 04:01:54 peter Exp $"); #include #include ==== //depot/projects/hammer/sys/dev/ed/if_ed_pci.c#5 (text+ko) ==== @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.34 2003/10/31 18:31:58 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.36 2004/06/18 01:28:54 imp Exp $"); #include #include @@ -58,11 +58,11 @@ { 0x00000000, NULL } }; -static int ed_pci_probe (device_t); -static int ed_pci_attach (device_t); +static int ed_pci_probe(device_t); +static int ed_pci_attach(device_t); static int -ed_pci_probe (device_t dev) +ed_pci_probe(device_t dev) { u_int32_t type = pci_get_devid(dev); struct _pcsid *ep =pci_ids; @@ -71,10 +71,9 @@ ++ep; if (ep->desc) { device_set_desc(dev, ep->desc); - return 0; - } else { - return ENXIO; + return (0); } + return (ENXIO); } static int ==== //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#20 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.97 2004/06/15 03:51:43 rwatson Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.99 2004/06/18 02:57:54 rwatson Exp $ */ #include @@ -431,8 +431,10 @@ ap->a_kn->kn_hook = (caddr_t)so; + SOCKBUF_LOCK(sb); SLIST_INSERT_HEAD(&sb->sb_sel.si_note, ap->a_kn, kn_selnext); sb->sb_flags |= SB_KNOTE; + SOCKBUF_UNLOCK(sb); return (0); } @@ -442,23 +444,33 @@ { struct socket *so = (struct socket *)kn->kn_hook; + SOCKBUF_LOCK(&so->so_rcv); SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_rcv.sb_sel.si_note)) so->so_rcv.sb_flags &= ~SB_KNOTE; + SOCKBUF_UNLOCK(&so->so_rcv); } static int filt_fiforead(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; + int need_lock, result; + need_lock = !SOCKBUF_OWNED(&so->so_rcv); + if (need_lock) + SOCKBUF_LOCK(&so->so_rcv); kn->kn_data = so->so_rcv.sb_cc; if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; - return (1); + result = 1; + } else { + kn->kn_flags &= ~EV_EOF; + result = (kn->kn_data > 0); } - kn->kn_flags &= ~EV_EOF; - return (kn->kn_data > 0); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_rcv); + return (result); } static void @@ -466,23 +478,34 @@ { struct socket *so = (struct socket *)kn->kn_hook; + SOCKBUF_LOCK(&so->so_snd); SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_snd.sb_sel.si_note)) so->so_snd.sb_flags &= ~SB_KNOTE; + SOCKBUF_UNLOCK(&so->so_snd); } static int filt_fifowrite(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_hook; + int need_lock, result; + need_lock = !SOCKBUF_OWNED(&so->so_snd); + if (need_lock) + SOCKBUF_LOCK(&so->so_snd); kn->kn_data = sbspace(&so->so_snd); + /* Unlocked read. */ if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; - return (1); + result = 1; + } else { + kn->kn_flags &= ~EV_EOF; + result = (kn->kn_data >= so->so_snd.sb_lowat); } - kn->kn_flags &= ~EV_EOF; - return (kn->kn_data >= so->so_snd.sb_lowat); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_snd); + return (result); } /* ARGSUSED */ ==== //depot/projects/hammer/sys/fs/portalfs/portal_vnops.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ * * @(#)portal_vnops.c 8.14 (Berkeley) 5/21/95 * - * $FreeBSD: src/sys/fs/portalfs/portal_vnops.c,v 1.62 2004/04/07 20:46:01 imp Exp $ + * $FreeBSD: src/sys/fs/portalfs/portal_vnops.c,v 1.63 2004/06/17 22:48:09 rwatson Exp $ */ /* @@ -304,8 +304,12 @@ */ so->so_rcv.sb_timeo = 0; so->so_snd.sb_timeo = 0; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags |= SB_NOINTR; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags |= SB_NOINTR; + SOCKBUF_UNLOCK(&so->so_snd); pcred.pcr_flag = ap->a_mode; ==== //depot/projects/hammer/sys/i386/isa/npx.c#19 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.149 2004/06/06 15:17:44 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.151 2004/06/18 02:10:55 bde Exp $"); #include "opt_cpu.h" #include "opt_debug_npx.h" @@ -872,6 +872,15 @@ { struct thread *td; + /* + * Discard pending exceptions in the !cpu_fxsr case so that unmasked + * ones don't cause a panic on the next frstor. + */ +#ifdef CPU_ENABLE_SSE + if (!cpu_fxsr) +#endif + fnclex(); + td = PCPU_GET(fpcurthread); PCPU_SET(fpcurthread, NULL); td->td_pcb->pcb_flags &= ~PCB_NPXINITDONE; ==== //depot/projects/hammer/sys/kern/kern_time.c#10 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_time.c,v 1.106 2004/04/05 21:03:35 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_time.c,v 1.107 2004/06/17 23:12:12 kbyanc Exp $"); #include "opt_mac.h" @@ -156,13 +156,31 @@ clock_gettime(struct thread *td, struct clock_gettime_args *uap) { struct timespec ats; + struct timeval user, sys; - if (uap->clock_id == CLOCK_REALTIME) + switch (uap->clock_id) { + case CLOCK_REALTIME: nanotime(&ats); - else if (uap->clock_id == CLOCK_MONOTONIC) + break; + case CLOCK_MONOTONIC: nanouptime(&ats); - else + break; + case CLOCK_VIRTUAL: + calcru(td->td_proc, &user, &sys, NULL); + TIMEVAL_TO_TIMESPEC(&user, &ats); + break; + case CLOCK_PROF: + calcru(td->td_proc, &user, &sys, NULL); + ats.tv_sec = user.tv_sec + sys.tv_sec; + ats.tv_nsec = (user.tv_usec + sys.tv_usec) * 1000; + if (ats.tv_nsec > 1000000000) { + ats.tv_sec++; + ats.tv_nsec -= 1000000000; + } + break; + default: return (EINVAL); + } return (copyout(&ats, uap->tp, sizeof(ats))); } @@ -216,19 +234,31 @@ struct timespec ts; int error; - if (uap->clock_id != CLOCK_REALTIME) - return (EINVAL); - error = 0; - if (uap->tp) { - ts.tv_sec = 0; + ts.tv_sec = 0; + + switch (uap->clock_id) { + case CLOCK_REALTIME: + case CLOCK_MONOTONIC: /* * Round up the result of the division cheaply by adding 1. * Rounding up is especially important if rounding down * would give 0. Perfect rounding is unimportant. */ ts.tv_nsec = 1000000000 / tc_getfrequency() + 1; + break; + case CLOCK_VIRTUAL: + case CLOCK_PROF: + /* Accurately round up here because we can do so cheaply. */ + ts.tv_nsec = (1000000000 + hz - 1) / hz; + break; + default: + return (EINVAL); + } + + error = 0; + if (uap->tp) error = copyout(&ts, uap->tp, sizeof(ts)); - } + return (error); } ==== //depot/projects/hammer/sys/kern/sys_socket.c#11 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.59 2004/06/14 18:16:19 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sys_socket.c,v 1.60 2004/06/17 22:48:09 rwatson Exp $"); #include "opt_mac.h" @@ -131,21 +131,41 @@ switch (cmd) { case FIONBIO: + SOCK_LOCK(so); if (*(int *)data) so->so_state |= SS_NBIO; else so->so_state &= ~SS_NBIO; + SOCK_UNLOCK(so); return (0); case FIOASYNC: + /* + * XXXRW: This code separately acquires SOCK_LOCK(so) + * and SOCKBUF_LOCK(&so->so_rcv) even though they are + * the same mutex to avoid introducing the assumption + * that they are the same. + */ if (*(int *)data) { + SOCK_LOCK(so); so->so_state |= SS_ASYNC; + SOCK_UNLOCK(so); + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags |= SB_ASYNC; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags |= SB_ASYNC; + SOCKBUF_UNLOCK(&so->so_snd); } else { + SOCK_LOCK(so); so->so_state &= ~SS_ASYNC; + SOCK_UNLOCK(so); + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags &= ~SB_ASYNC; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags &= ~SB_ASYNC; + SOCKBUF_UNLOCK(&so->so_snd); } return (0); ==== //depot/projects/hammer/sys/kern/uipc_socket.c#26 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.178 2004/06/14 18:16:19 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.181 2004/06/18 04:02:56 rwatson Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -277,8 +277,11 @@ return (error); } ACCEPT_LOCK(); - if (TAILQ_EMPTY(&so->so_comp)) + if (TAILQ_EMPTY(&so->so_comp)) { + SOCK_LOCK(so); so->so_options |= SO_ACCEPTCONN; + SOCK_UNLOCK(so); + } if (backlog < 0 || backlog > somaxconn) backlog = somaxconn; so->so_qlimit = backlog; @@ -448,14 +451,13 @@ struct socket *so; struct sockaddr **nam; { - int s = splnet(); int error; - if ((so->so_state & SS_NOFDREF) == 0) - panic("soaccept: !NOFDREF"); + SOCK_LOCK(so); + KASSERT((so->so_state & SS_NOFDREF) != 0, ("soaccept: !NOFDREF")); so->so_state &= ~SS_NOFDREF; + SOCK_UNLOCK(so); error = (*so->so_proto->pr_usrreqs->pru_accept)(so, nam); - splx(s); return (error); } @@ -504,20 +506,13 @@ sodisconnect(so) struct socket *so; { - int s = splnet(); int error; - if ((so->so_state & SS_ISCONNECTED) == 0) { - error = ENOTCONN; - goto bad; - } - if (so->so_state & SS_ISDISCONNECTING) { - error = EALREADY; - goto bad; - } + if ((so->so_state & SS_ISCONNECTED) == 0) + return (ENOTCONN); + if (so->so_state & SS_ISDISCONNECTING) + return (EALREADY); error = (*so->so_proto->pr_usrreqs->pru_disconnect)(so); -bad: - splx(s); return (error); } @@ -754,9 +749,11 @@ break; } } while (space > 0 && atomic); - if (dontroute) + if (dontroute) { + SOCK_LOCK(so); so->so_options |= SO_DONTROUTE; - s = splnet(); /* XXX */ + SOCK_UNLOCK(so); + } /* * XXX all the SBS_CANTSENDMORE checks previously * done could be out of date. We could have recieved @@ -781,8 +778,11 @@ (resid > 0 && space > 0) ? PRUS_MORETOCOME : 0, top, addr, control, td); splx(s); - if (dontroute) + if (dontroute) { + SOCK_LOCK(so); so->so_options &= ~SO_DONTROUTE; + SOCK_UNLOCK(so); + } clen = 0; control = NULL; top = NULL; @@ -1396,11 +1396,13 @@ if (error) goto bad; + SOCK_LOCK(so); so->so_linger = l.l_linger; if (l.l_onoff) so->so_options |= SO_LINGER; else so->so_options &= ~SO_LINGER; + SOCK_UNLOCK(so); break; case SO_DEBUG: @@ -1418,10 +1420,12 @@ sizeof optval); if (error) goto bad; + SOCK_LOCK(so); if (optval) so->so_options |= sopt->sopt_name; else so->so_options &= ~sopt->sopt_name; + SOCK_UNLOCK(so); break; case SO_SNDBUF: @@ -1842,12 +1846,16 @@ (POLLIN | POLLINIGNEOF | POLLPRI | POLLRDNORM | POLLRDBAND)) { selrecord(td, &so->so_rcv.sb_sel); + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags |= SB_SEL; + SOCKBUF_UNLOCK(&so->so_rcv); } if (events & (POLLOUT | POLLWRNORM)) { selrecord(td, &so->so_snd.sb_sel); + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags |= SB_SEL; + SOCKBUF_UNLOCK(&so->so_snd); } } @@ -1860,7 +1868,6 @@ { struct socket *so = kn->kn_fp->f_data; struct sockbuf *sb; - int s; switch (kn->kn_filter) { case EVFILT_READ: @@ -1878,10 +1885,10 @@ return (1); } - s = splnet(); + SOCKBUF_LOCK(sb); SLIST_INSERT_HEAD(&sb->sb_sel.si_note, kn, kn_selnext); sb->sb_flags |= SB_KNOTE; - splx(s); + SOCKBUF_UNLOCK(sb); return (0); } @@ -1889,12 +1896,12 @@ filt_sordetach(struct knote *kn) { struct socket *so = kn->kn_fp->f_data; - int s = splnet(); + SOCKBUF_LOCK(&so->so_rcv); SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_rcv.sb_sel.si_note)) so->so_rcv.sb_flags &= ~SB_KNOTE; - splx(s); + SOCKBUF_UNLOCK(&so->so_rcv); } /*ARGSUSED*/ @@ -1902,8 +1909,16 @@ filt_soread(struct knote *kn, long hint) { struct socket *so = kn->kn_fp->f_data; - int result; + int need_lock, result; + /* + * XXXRW: Conditional locking because filt_soread() can be called + * either from KNOTE() in the socket context where the socket buffer + * lock is already held, or from kqueue() itself. + */ + need_lock = !SOCKBUF_OWNED(&so->so_rcv); + if (need_lock) + SOCKBUF_LOCK(&so->so_rcv); kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; if (so->so_rcv.sb_state & SBS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; @@ -1915,6 +1930,8 @@ result = (kn->kn_data >= kn->kn_sdata); else result = (so->so_rcv.sb_cc >= so->so_rcv.sb_lowat); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_rcv); return (result); } @@ -1922,12 +1939,12 @@ filt_sowdetach(struct knote *kn) { struct socket *so = kn->kn_fp->f_data; - int s = splnet(); + SOCKBUF_LOCK(&so->so_snd); SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext); if (SLIST_EMPTY(&so->so_snd.sb_sel.si_note)) so->so_snd.sb_flags &= ~SB_KNOTE; - splx(s); + SOCKBUF_UNLOCK(&so->so_snd); } /*ARGSUSED*/ @@ -1935,8 +1952,16 @@ filt_sowrite(struct knote *kn, long hint) { struct socket *so = kn->kn_fp->f_data; - int result; + int need_lock, result; + /* + * XXXRW: Conditional locking because filt_soread() can be called + * either from KNOTE() in the socket context where the socket buffer + * lock is already held, or from kqueue() itself. + */ + need_lock = !SOCKBUF_OWNED(&so->so_snd); + if (need_lock) + SOCKBUF_LOCK(&so->so_snd); kn->kn_data = sbspace(&so->so_snd); if (so->so_snd.sb_state & SBS_CANTSENDMORE) { kn->kn_flags |= EV_EOF; @@ -1951,6 +1976,8 @@ result = (kn->kn_data >= kn->kn_sdata); else result = (kn->kn_data >= so->so_snd.sb_lowat); + if (need_lock) + SOCKBUF_UNLOCK(&so->so_snd); return (result); } ==== //depot/projects/hammer/sys/kern/uipc_socket2.c#21 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.131 2004/06/15 03:51:44 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket2.c,v 1.132 2004/06/17 22:48:09 rwatson Exp $"); #include "opt_mac.h" #include "opt_param.h" @@ -105,8 +105,10 @@ register struct socket *so; { + SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTED|SS_ISDISCONNECTING); so->so_state |= SS_ISCONNECTING; + SOCK_UNLOCK(so); } void @@ -115,8 +117,10 @@ { struct socket *head; + SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING); so->so_state |= SS_ISCONNECTED; + SOCK_UNLOCK(so); ACCEPT_LOCK(); head = so->so_head; if (head != NULL && (so->so_qstate & SQ_INCOMP)) { @@ -132,11 +136,13 @@ wakeup_one(&head->so_timeo); } else { ACCEPT_UNLOCK(); + SOCK_LOCK(so); so->so_upcall = head->so_accf->so_accept_filter->accf_callback; so->so_upcallarg = head->so_accf->so_accept_filter_arg; so->so_rcv.sb_flags |= SB_UPCALL; so->so_options &= ~SO_ACCEPTFILTER; + SOCK_UNLOCK(so); so->so_upcall(so, so->so_upcallarg, M_TRYWAIT); } return; @@ -152,8 +158,15 @@ register struct socket *so; { + /* + * XXXRW: This code separately acquires SOCK_LOCK(so) and + * SOCKBUF_LOCK(&so->so_rcv) even though they are the same mutex to + * avoid introducing the assumption that they are the same. + */ + SOCK_LOCK(so); so->so_state &= ~SS_ISCONNECTING; so->so_state |= SS_ISDISCONNECTING; + SOCK_UNLOCK(so); SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_CANTRCVMORE; SOCKBUF_UNLOCK(&so->so_rcv); @@ -170,8 +183,15 @@ register struct socket *so; { + /* + * XXXRW: This code separately acquires SOCK_LOCK(so) and + * SOCKBUF_LOCK(&so->so_rcv) even though they are the same mutex to + * avoid introducing the assumption that they are the same. + */ + SOCK_LOCK(so); so->so_state &= ~(SS_ISCONNECTING|SS_ISCONNECTED|SS_ISDISCONNECTING); so->so_state |= SS_ISDISCONNECTED; + SOCK_UNLOCK(so); SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_state |= SBS_CANTRCVMORE; SOCKBUF_UNLOCK(&so->so_rcv); @@ -400,12 +420,16 @@ goto bad; if (sbreserve(&so->so_rcv, rcvcc, so, td) == 0) goto bad2; + SOCKBUF_LOCK(&so->so_rcv); if (so->so_rcv.sb_lowat == 0) so->so_rcv.sb_lowat = 1; + SOCKBUF_UNLOCK(&so->so_rcv); + SOCKBUF_LOCK(&so->so_snd); if (so->so_snd.sb_lowat == 0) so->so_snd.sb_lowat = MCLBYTES; if (so->so_snd.sb_lowat > so->so_snd.sb_hiwat) so->so_snd.sb_lowat = so->so_snd.sb_hiwat; + SOCKBUF_UNLOCK(&so->so_snd); return (0); bad2: sbrelease(&so->so_snd, so); ==== //depot/projects/hammer/sys/kern/vfs_aio.c#19 (text+ko) ==== @@ -19,7 +19,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.170 2004/05/30 20:34:58 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.171 2004/06/17 22:48:09 rwatson Exp $"); #include #include @@ -566,8 +566,12 @@ so = fp->f_data; TAILQ_REMOVE(&so->so_aiojobq, aiocbe, list); if (TAILQ_EMPTY(&so->so_aiojobq)) { + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags &= ~SB_AIO; + SOCKBUF_UNLOCK(&so->so_snd); + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags &= ~SB_AIO; + SOCKBUF_UNLOCK(&so->so_rcv); } } TAILQ_REMOVE(&ki->kaio_sockqueue, aiocbe, plist); @@ -1231,10 +1235,14 @@ if (sb == &so->so_snd) { opcode = LIO_WRITE; + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags &= ~SB_AIO; + SOCKBUF_UNLOCK(&so->so_snd); } else { opcode = LIO_READ; + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags &= ~SB_AIO; + SOCKBUF_UNLOCK(&so->so_rcv); } for (cb = TAILQ_FIRST(&so->so_aiojobq); cb; cb = cbn) { @@ -1443,10 +1451,15 @@ LIO_WRITE) && (!sowriteable(so)))) { TAILQ_INSERT_TAIL(&so->so_aiojobq, aiocbe, list); TAILQ_INSERT_TAIL(&ki->kaio_sockqueue, aiocbe, plist); - if (opcode == LIO_READ) + if (opcode == LIO_READ) { + SOCKBUF_LOCK(&so->so_rcv); so->so_rcv.sb_flags |= SB_AIO; - else + SOCKBUF_UNLOCK(&so->so_rcv); + } else { + SOCKBUF_LOCK(&so->so_snd); so->so_snd.sb_flags |= SB_AIO; + SOCKBUF_UNLOCK(&so->so_snd); + } aiocbe->jobstate = JOBST_JOBQGLOBAL; /* XXX */ ki->kaio_queue_count++; num_queue_count++; ==== //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#9 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $Id: ng_btsocket_rfcomm.c,v 1.28 2003/09/14 23:29:06 max Exp $ - * $FreeBSD: src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c,v 1.10 2004/06/14 18:16:21 rwatson Exp $ + * $FreeBSD: src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c,v 1.12 2004/06/18 05:09:42 rwatson Exp $ */ #include @@ -997,8 +997,12 @@ /* Close L2CAP socket */ s->l2so->so_upcallarg = NULL; s->l2so->so_upcall = NULL; + SOCKBUF_LOCK(&s->l2so->so_rcv); s->l2so->so_rcv.sb_flags &= ~SB_UPCALL; + SOCKBUF_UNLOCK(&s->l2so->so_rcv); + SOCKBUF_LOCK(&s->l2so->so_snd); s->l2so->so_snd.sb_flags &= ~SB_UPCALL; + SOCKBUF_UNLOCK(&s->l2so->so_snd); soclose(s->l2so); mtx_unlock(&s->session_mtx); @@ -1237,8 +1241,12 @@ /* Prepare L2CAP socket */ l2so->so_upcallarg = NULL; l2so->so_upcall = ng_btsocket_rfcomm_upcall; + SOCKBUF_LOCK(&l2so->so_rcv); l2so->so_rcv.sb_flags |= SB_UPCALL; + SOCKBUF_UNLOCK(&l2so->so_rcv); + SOCKBUF_LOCK(&l2so->so_snd); l2so->so_snd.sb_flags |= SB_UPCALL; + SOCKBUF_UNLOCK(&l2so->so_snd); l2so->so_state |= SS_NBIO; s->l2so = l2so; @@ -1317,8 +1325,12 @@ /* Return L2CAP socket back to its original state */ l2so->so_upcallarg = NULL; l2so->so_upcall = NULL; + SOCKBUF_LOCK(&l2so->so_rcv); l2so->so_rcv.sb_flags &= ~SB_UPCALL; + SOCKBUF_UNLOCK(&l2so->so_rcv); + SOCKBUF_LOCK(&l2so->so_snd); l2so->so_snd.sb_flags &= ~SB_UPCALL; + SOCKBUF_UNLOCK(&l2so->so_snd); l2so->so_state &= ~SS_NBIO; mtx_destroy(&s->session_mtx); ==== //depot/projects/hammer/sys/netgraph/ng_ksocket.c#11 (text+ko) ==== @@ -36,7 +36,7 @@ * * Author: Archie Cobbs * - * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.44 2004/06/14 18:16:20 rwatson Exp $ + * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.45 2004/06/17 22:48:10 rwatson Exp $ * $Whistle: ng_ksocket.c,v 1.1 1999/11/16 20:04:40 archie Exp $ */ @@ -609,9 +609,15 @@ /* Add our hook for incoming data and other events */ priv->so->so_upcallarg = (caddr_t)node; priv->so->so_upcall = ng_ksocket_incoming; + SOCKBUF_LOCK(&priv->so->so_rcv); priv->so->so_rcv.sb_flags |= SB_UPCALL; + SOCKBUF_UNLOCK(&priv->so->so_rcv); + SOCKBUF_LOCK(&priv->so->so_snd); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jun 18 07:33:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1FF3316A4D0; Fri, 18 Jun 2004 07:33:46 +0000 (GMT) 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 E78E716A4CE for ; Fri, 18 Jun 2004 07:33:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E042043D2F for ; Fri, 18 Jun 2004 07:33:45 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5I7WoMt055035 for ; Fri, 18 Jun 2004 07:32:50 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5I7WnEb055032 for perforce@freebsd.org; Fri, 18 Jun 2004 07:32:49 GMT (envelope-from peter@freebsd.org) Date: Fri, 18 Jun 2004 07:32:49 GMT Message-Id: <200406180732.i5I7WnEb055032@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 55236 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2004 07:33:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=55236 Change 55236 by peter@peter_overcee on 2004/06/18 07:32:26 check in g++ codegen bug fix from gcc-cvs via Sam McNiel via amd64@ Affected files ... .. //depot/projects/hammer/contrib/gcc/config/i386/i386.c#10 edit Differences ... ==== //depot/projects/hammer/contrib/gcc/config/i386/i386.c#10 (text+ko) ==== @@ -14607,15 +14607,14 @@ output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops); } - xops[0] = DECL_RTL (function); + xops[0] = XEXP (DECL_RTL (function), 0); if (TARGET_64BIT) { if (!flag_pic || (*targetm.binds_local_p) (function)) output_asm_insn ("jmp\t%P0", xops); else { - tmp = XEXP (xops[0], 0); - tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL); + tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL); tmp = gen_rtx_CONST (Pmode, tmp); tmp = gen_rtx_MEM (QImode, tmp); xops[0] = tmp; From owner-p4-projects@FreeBSD.ORG Sat Jun 19 00:31:00 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D8FA816A4D0; Sat, 19 Jun 2004 00:30:59 +0000 (GMT) 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 AAE7C16A4CF for ; Sat, 19 Jun 2004 00:30:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9D8EA43D1F for ; Sat, 19 Jun 2004 00:30:59 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J0UsM0095232 for ; Sat, 19 Jun 2004 00:30:54 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J0UsPM095229 for perforce@freebsd.org; Sat, 19 Jun 2004 00:30:54 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 00:30:54 GMT Message-Id: <200406190030.i5J0UsPM095229@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 55277 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 00:31:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=55277 Change 55277 by marcel@marcel_nfs on 2004/06/19 00:30:10 IFC @55276 Affected files ... .. //depot/projects/gdb/contrib/libpcap/pcap-bpf.c#4 integrate .. //depot/projects/gdb/etc/defaults/rc.conf#11 integrate .. //depot/projects/gdb/etc/rc.d/syscons#3 integrate .. //depot/projects/gdb/libexec/rtld-elf/rtld.c#6 integrate .. //depot/projects/gdb/libexec/rtld-elf/sparc64/rtld_machdep.h#2 integrate .. //depot/projects/gdb/libexec/rtld-elf/sparc64/rtld_start.S#2 integrate .. //depot/projects/gdb/sbin/conscontrol/conscontrol.8#4 integrate .. //depot/projects/gdb/sbin/conscontrol/conscontrol.c#3 integrate .. //depot/projects/gdb/sbin/sunlabel/sunlabel.c#5 integrate .. //depot/projects/gdb/share/man/man4/netintro.4#2 integrate .. //depot/projects/gdb/share/man/man5/rc.conf.5#12 integrate .. //depot/projects/gdb/share/mk/bsd.kmod.mk#2 integrate .. //depot/projects/gdb/sys/amd64/amd64/fpu.c#6 integrate .. //depot/projects/gdb/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/gdb/sys/compat/linux/linux_ioctl.h#4 integrate .. //depot/projects/gdb/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/gdb/sys/dev/acpica/Osd/OsdHardware.c#4 integrate .. //depot/projects/gdb/sys/dev/acpica/Osd/OsdSynch.c#4 integrate .. //depot/projects/gdb/sys/dev/ed/if_ed_pci.c#2 integrate .. //depot/projects/gdb/sys/dev/firewire/sbp.c#5 integrate .. //depot/projects/gdb/sys/fs/devfs/devfs_devs.c#5 integrate .. //depot/projects/gdb/sys/fs/fifofs/fifo_vnops.c#8 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum.c#2 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_drive.c#3 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_plex.c#3 integrate .. //depot/projects/gdb/sys/geom/vinum/geom_vinum_volume.c#3 integrate .. //depot/projects/gdb/sys/i386/isa/npx.c#7 integrate .. //depot/projects/gdb/sys/kern/kern_exit.c#11 integrate .. //depot/projects/gdb/sys/kern/kern_thread.c#14 integrate .. //depot/projects/gdb/sys/kern/subr_prf.c#5 integrate .. //depot/projects/gdb/sys/kern/uipc_socket.c#11 integrate .. //depot/projects/gdb/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#8 integrate .. //depot/projects/gdb/sys/netinet/in_gif.c#3 integrate .. //depot/projects/gdb/sys/netinet/ip_input.c#10 integrate .. //depot/projects/gdb/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/gdb/sys/netinet/tcp_usrreq.c#8 integrate .. //depot/projects/gdb/sys/sys/kernel.h#5 integrate .. //depot/projects/gdb/sys/ufs/ffs/ffs_snapshot.c#5 integrate Differences ... ==== //depot/projects/gdb/contrib/libpcap/pcap-bpf.c#4 (text+ko) ==== @@ -17,8 +17,6 @@ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * $FreeBSD: src/contrib/libpcap/pcap-bpf.c,v 1.2 2004/05/31 21:29:30 dwmalone Exp $ */ #ifndef lint static const char rcsid[] _U_ = @@ -469,7 +467,7 @@ */ do { (void)snprintf(device, sizeof(device), "/dev/bpf%d", n++); - fd = open(device, O_RDWR); + fd = open(device, O_RDONLY); } while (fd < 0 && errno == EBUSY); /* ==== //depot/projects/gdb/etc/defaults/rc.conf#11 (text+ko) ==== @@ -13,7 +13,7 @@ # # All arguments must be in double or single quotes. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.208 2004/06/02 09:58:18 ume Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.209 2004/06/18 20:09:29 green Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -347,6 +347,7 @@ ### System console options ################################# ############################################################## +keyboard="" # keyboard device to use (default /dev/kbd0). keymap="NO" # keymap in /usr/share/syscons/keymaps/* (or NO). keyrate="NO" # keyboard rate to: slow, normal, fast (or NO). keybell="NO" # See kbdcontrol(1) for options. Use "off" to disable. ==== //depot/projects/gdb/etc/rc.d/syscons#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/etc/rc.d/syscons,v 1.11 2004/03/08 12:25:05 pjd Exp $ +# $FreeBSD: src/etc/rc.d/syscons,v 1.12 2004/06/18 20:09:30 green Exp $ # # PROVIDE: syscons @@ -59,6 +59,13 @@ { echo -n 'Configuring syscons:' + # keyboard + # + if [ -n "${keyboard}" ]; then + echo -n ' keyboard'; kbdcontrol < ${kbddev} \ + -k "${keyboard}" >/dev/null + fi + # keymap # case ${keymap} in ==== //depot/projects/gdb/libexec/rtld-elf/rtld.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/libexec/rtld-elf/rtld.c,v 1.96 2004/05/28 00:05:28 eik Exp $ + * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.97 2004/06/18 02:01:37 tmm Exp $ */ /* @@ -162,6 +162,9 @@ extern Elf_Dyn _DYNAMIC; #pragma weak _DYNAMIC +#ifndef RTLD_IS_DYNAMIC +#define RTLD_IS_DYNAMIC() (&_DYNAMIC != NULL) +#endif /* * These are the functions the dynamic linker exports to application @@ -1008,7 +1011,7 @@ #ifdef PIC objtmp.relocbase = mapbase; #endif - if (&_DYNAMIC != 0) { + if (RTLD_IS_DYNAMIC()) { objtmp.dynamic = rtld_dynamic(&objtmp); digest_dynamic(&objtmp, 1); assert(objtmp.needed == NULL); ==== //depot/projects/gdb/libexec/rtld-elf/sparc64/rtld_machdep.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_machdep.h,v 1.5 2003/07/04 00:05:15 jake Exp $ + * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_machdep.h,v 1.6 2004/06/18 02:01:37 tmm Exp $ */ #ifndef RTLD_MACHDEP_H @@ -37,7 +37,9 @@ struct Struct_Obj_Entry; /* Return the address of the .dynamic section in the dynamic linker. */ -Elf_Dyn *rtld_dynamic(const struct Struct_Obj_Entry *); +Elf_Dyn *rtld_dynamic_addr(); +#define rtld_dynamic(obj) rtld_dynamic_addr() +#define RTLD_IS_DYNAMIC() (rtld_dynamic_addr() != NULL) Elf_Addr reloc_jmpslot(Elf_Addr *, Elf_Addr, const struct Struct_Obj_Entry *, ==== //depot/projects/gdb/libexec/rtld-elf/sparc64/rtld_start.S#2 (text+ko) ==== @@ -37,7 +37,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_start.S,v 1.5 2003/07/04 00:05:15 jake Exp $ + * $FreeBSD: src/libexec/rtld-elf/sparc64/rtld_start.S,v 1.6 2004/06/18 02:01:37 tmm Exp $ */ #include @@ -71,8 +71,9 @@ * Find the address of _DYNAMIC by disassembling a call instruction to it. * Binutils may not fill in the GOT as expected on other architectures. */ +.weak _DYNAMIC -ENTRY(rtld_dynamic) +ENTRY(rtld_dynamic_addr) save %sp, -CCFSZ, %sp call 1f nop @@ -82,7 +83,7 @@ sra %o0, 0, %o0 ret restore %o0, %o7, %o0 -END(rtld_dynamic) +END(rtld_dynamic_addr) /* * We have two separate entry points to the runtime linker. ==== //depot/projects/gdb/sbin/conscontrol/conscontrol.8#4 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sbin/conscontrol/conscontrol.8,v 1.6 2004/05/17 08:35:39 ru Exp $ +.\" $FreeBSD: src/sbin/conscontrol/conscontrol.8,v 1.8 2004/06/18 20:06:04 green Exp $ .\" .Dd October 23, 2001 .Dt CONSCONTROL 8 @@ -89,10 +89,19 @@ Change the state of console muting. All console output is suppressed when console muting is .Cm on . +.It Cm set Ar console | Cm unset +Set or unset the virtual console. +When unset, output from the system, such as the kernel +.Xr printf 9 , +always goes out to the real main console. +When set, it goes to another. +This is an interface to the tty ioctl +.Dv TIOCCONS . .El .Sh SEE ALSO .Xr sio 4 , .Xr syscons 4 , +.Xr tty 4 , .Xr boot 8 , .Xr loader 8 .Sh HISTORY ==== //depot/projects/gdb/sbin/conscontrol/conscontrol.c#3 (text+ko) ==== @@ -25,13 +25,16 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/conscontrol/conscontrol.c,v 1.3 2004/02/17 04:51:06 grog Exp $"); +__FBSDID("$FreeBSD: src/sbin/conscontrol/conscontrol.c,v 1.4 2004/06/18 06:33:44 green Exp $"); #include #include +#include +#include #include #include +#include #include #include #include @@ -43,10 +46,11 @@ usage(void) { - (void)fprintf(stderr, "%s\n%s\n%s\n", + (void)fprintf(stderr, "%s\n%s\n%s\n%s\n", "usage: conscontrol [list]", " conscontrol mute on | off", - " conscontrol add | delete console"); + " conscontrol add | delete console", + " conscontrol set console | unset"); exit(1); } @@ -148,6 +152,32 @@ free(buf); } +static void +consset(char *devnam) +{ + int ttyfd, flag = 1; + + ttyfd = open(devnam, O_RDONLY); + if (ttyfd == -1) + err(1, "opening %s", devnam); + if (ioctl(ttyfd, TIOCCONS, &flag) == -1) + err(1, "could not set %s as virtual console", devnam); + close(ttyfd); +} + +static void +consunset(void) +{ + int ttyfd, flag = 0; + + ttyfd = open(DEVDIR "console", O_RDONLY); + if (ttyfd == -1) + err(1, "opening virtual console"); + if (ioctl(ttyfd, TIOCCONS, &flag) == -1) + err(1, "could not unset virtual console"); + close(ttyfd); +} + int main(int argc, char **argv) { @@ -158,14 +188,18 @@ argv += optind; if (argc > 0 && strcmp(argv[0], "list") != 0) { - if (argc != 2) + if (argc == 1 && strcmp(argv[0], "unset") == 0) + consunset(); + else if (argc != 2) usage(); - if (strcmp(argv[0], "mute") == 0) + else if (strcmp(argv[0], "mute") == 0) consmute(argv[1]); else if (strcmp(argv[0], "add") == 0) consadd(argv[1]); else if (strcmp(argv[0], "delete") == 0) consdel(argv[1]); + else if (strcmp(argv[0], "set") == 0) + consset(argv[1]); else usage(); } ==== //depot/projects/gdb/sbin/sunlabel/sunlabel.c#5 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/sunlabel/sunlabel.c,v 1.10 2004/06/11 11:41:33 joerg Exp $"); +__FBSDID("$FreeBSD: src/sbin/sunlabel/sunlabel.c,v 1.11 2004/06/18 15:08:08 joerg Exp $"); #include #include @@ -293,7 +293,7 @@ if (havevtoc) { if (sl->sl_vtoc_map[i].svtoc_tag == VTOC_BACKUP) { warnx("only partition c is allowed to have " - "tag \"backup\""); + "tag \"backup\""); return (1); } } @@ -573,18 +573,18 @@ if (strncmp(bp, "text:", strlen("text:")) == 0) { bp += strlen("text:"); rv = sscanf(bp, - " %s cyl %u alt %u hd %u sec %u", - text, &cyl, &alt, &hd, &sec); + " %s cyl %u alt %u hd %u sec %u", + text, &cyl, &alt, &hd, &sec); if (rv != 5) { warnx("%s, line %d: text label does not " - "contain required fields", - file, line + 1); + "contain required fields", + file, line + 1); fclose(fp); return (1); } if (alt != 2) { warnx("%s, line %d: # alt must be equal 2", - file, line + 1); + file, line + 1); fclose(fp); return (1); } @@ -593,7 +593,7 @@ nr = cyl; unreasonable: warnx("%s, line %d: # %s %d unreasonable", - file, line + 1, what, nr); + file, line + 1, what, nr); fclose(fp); return (1); } @@ -609,14 +609,14 @@ } if (mediasize == 0) warnx("unit size unknown, no sector count " - "check could be done"); + "check could be done"); else if ((uintmax_t)(cyl + alt) * sec * hd > (uintmax_t)mediasize / sectorsize) { warnx("%s, line %d: sector count %ju exceeds " - "unit size %ju", - file, line + 1, - (uintmax_t)(cyl + alt) * sec * hd, - (uintmax_t)mediasize / sectorsize); + "unit size %ju", + file, line + 1, + (uintmax_t)(cyl + alt) * sec * hd, + (uintmax_t)mediasize / sectorsize); fclose(fp); return (1); } @@ -627,8 +627,8 @@ sl1.sl_ntracks = hd; memset(sl1.sl_text, 0, sizeof(sl1.sl_text)); snprintf(sl1.sl_text, sizeof(sl1.sl_text), - "%s cyl %u alt %u hd %u sec %u", - text, cyl, alt, hd, sec); + "%s cyl %u alt %u hd %u sec %u", + text, cyl, alt, hd, sec); continue; } if (strlen(bp) < 2 || bp[1] != ':') { @@ -636,7 +636,7 @@ continue; } rv = sscanf(bp, "%c: %30s %30s %30s %30s", - &part, size, offset, tag, flag); + &part, size, offset, tag, flag); if (rv < 3) { syntaxerr: warnx("%s: syntax error on line %d", @@ -760,8 +760,8 @@ secpercyl); if (eflag) fprintf(out, - "# max sectors/unit (including alt cylinders): %ju\n", - (uintmax_t)mediasize / sectorsize); + "# max sectors/unit (including alt cylinders): %ju\n", + (uintmax_t)mediasize / sectorsize); fprintf(out, "sectors/unit: %ju\n" "\n" @@ -776,8 +776,8 @@ " Use %%d%c, %%dK, %%dM or %%dG to specify in %s,\n" "# kilobytes, megabytes or gigabytes respectively, or '*' to specify rest of\n" "# disk.\n", - cflag? 's': 'c', - cflag? "sectors": "cylinders"); + cflag? 's': 'c', + cflag? "sectors": "cylinders"); else putc('\n', out); fprintf(out, "# Offset is in cylinders."); @@ -804,21 +804,23 @@ continue; if (hflag) { fprintf(out, " %c: %10s", - 'a' + i, - make_h_number((uintmax_t)sl->sl_part[i].sdkp_nsectors * 512)); + 'a' + i, + make_h_number((uintmax_t) + sl->sl_part[i].sdkp_nsectors * 512)); fprintf(out, " %10s", - make_h_number((uintmax_t)sl->sl_part[i].sdkp_cyloffset * - 512 * secpercyl)); + make_h_number((uintmax_t) + sl->sl_part[i].sdkp_cyloffset * 512 + * secpercyl)); } else { fprintf(out, " %c: %10ju %10u", - 'a' + i, - sl->sl_part[i].sdkp_nsectors / (cflag? secpercyl: 1), - sl->sl_part[i].sdkp_cyloffset); + 'a' + i, + sl->sl_part[i].sdkp_nsectors / (cflag? secpercyl: 1), + sl->sl_part[i].sdkp_cyloffset); } if (havevtoc) fprintf(out, " %11s %5s", - tagname(sl->sl_vtoc_map[i].svtoc_tag), - flagname(sl->sl_vtoc_map[i].svtoc_flag)); + tagname(sl->sl_vtoc_map[i].svtoc_tag), + flagname(sl->sl_vtoc_map[i].svtoc_flag)); putc('\n', out); } } ==== //depot/projects/gdb/share/man/man4/netintro.4#2 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)netintro.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/netintro.4,v 1.22 2003/06/28 23:53:37 ru Exp $ +.\" $FreeBSD: src/share/man/man4/netintro.4,v 1.23 2004/06/18 13:07:18 des Exp $ .\" .Dd November 30, 1993 .Dt NETINTRO 4 @@ -205,10 +205,13 @@ struct sockaddr ifru_dstaddr; struct sockaddr ifru_broadaddr; short ifru_flags[2]; + short ifru_index; int ifru_metric; int ifru_mtu; int ifru_phys; + int ifru_media; caddr_t ifru_data; + int ifru_cap[2]; } ifr_ifru; #define ifr_addr ifr_ifru.ifru_addr /* address */ #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ @@ -218,7 +221,11 @@ #define ifr_metric ifr_ifru.ifru_metric /* metric */ #define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ #define ifr_phys ifr_ifru.ifru_phys /* physical wire */ +#define ifr_media ifr_ifru.ifru_media /* physical media */ #define ifr_data ifr_ifru.ifru_data /* for use by interface */ +#define ifr_reqcap ifr_ifru.ifru_cap[0] /* requested capabilities */ +#define ifr_curcap ifr_ifru.ifru_cap[1] /* current capabilities */ +#define ifr_index ifr_ifru.ifru_index /* interface index */ }; .Ed .Pp @@ -248,6 +255,19 @@ Get point to point address for protocol family and interface. .It Dv SIOCGIFBRDADDR Get broadcast address for protocol family and interface. +.It Dv SIOCSIFCAP +Set interface capabilities field to the value of the +.Va ifr_reqcap +field of the +.Vt ifreq +structure. +.It Dv SIOCGIFCAP +Get interface capabilities field. +Its value will be returned in the +.Va ifr_curcap +field of the +.Vt ifreq +structure. .It Dv SIOCSIFFLAGS Set interface flags field. If the interface is marked down, ==== //depot/projects/gdb/share/man/man5/rc.conf.5#12 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.217 2004/06/16 08:33:56 ru Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.218 2004/06/18 01:28:33 bms Exp $ .\" .Dd April 25, 2004 .Dt RC.CONF 5 @@ -1691,6 +1691,12 @@ whose contents will later be passed to a .Dq Nm route Cm add operation. +For example: +.Bd -literal +static_routes="mcast gif0local" +route_mcast="-net 224.0.0.0/4 -iface gif0" +route_gif0local="-host 169.254.1.1 -iface lo0" +.Ed .It Va ipv6_static_routes .Pq Vt str The IPv6 equivalent of ==== //depot/projects/gdb/share/mk/bsd.kmod.mk#2 (text+ko) ==== @@ -1,8 +1,8 @@ -# $FreeBSD: src/share/mk/bsd.kmod.mk,v 1.88 2001/05/19 23:24:17 kris Exp $ +# $FreeBSD: src/share/mk/bsd.kmod.mk,v 1.89 2004/06/18 16:38:42 pjd Exp $ # Search for kernel source tree in standard places. .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. /sys /usr/src/sys -.if !defined(SYSDIR) && exists(${_dir}/conf/kmod.mk) +.if !defined(SYSDIR) && exists(${_dir}/kern) && exists(${_dir}/conf/kmod.mk) SYSDIR= ${_dir} .endif .endfor ==== //depot/projects/gdb/sys/amd64/amd64/fpu.c#6 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.153 2004/06/08 01:35:48 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.154 2004/06/18 04:01:54 peter Exp $"); #include #include @@ -125,6 +125,8 @@ ldmxcsr(mxcsr); fxsave(&fpu_cleanstate); start_emulating(); + bzero(fpu_cleanstate.sv_fp, sizeof(fpu_cleanstate.sv_fp)); + bzero(fpu_cleanstate.sv_xmm, sizeof(fpu_cleanstate.sv_xmm)); fpu_cleanstate_ready = 1; intr_restore(savecrit); } @@ -384,7 +386,6 @@ { struct pcb *pcb; register_t s; - u_short control; if (PCPU_GET(fpcurthread) == curthread) { printf("fpudna: fpcurthread == curthread %d times\n", @@ -409,13 +410,10 @@ if ((pcb->pcb_flags & PCB_FPUINITDONE) == 0) { /* - * This is the first time this thread has used the FPU or - * the PCB doesn't contain a clean FPU state. Explicitly - * initialize the FPU and load the default control word. + * This is the first time this thread has used the FPU, + * explicitly load sanitized registers. */ - fninit(); - control = __INITIAL_FPUCW__; - fldcw(&control); + fxrstor(&fpu_cleanstate); pcb->pcb_flags |= PCB_FPUINITDONE; } else fxrstor(&pcb->pcb_save); ==== //depot/projects/gdb/sys/compat/linux/linux_ioctl.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.114 2004/06/14 07:26:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.119 2004/06/18 14:36:24 bms Exp $"); #include #include @@ -1443,20 +1443,22 @@ } case LINUX_CDROMREADTOCENTRY: { - struct linux_cdrom_tocentry lte, *ltep = - (struct linux_cdrom_tocentry *)args->arg; + struct linux_cdrom_tocentry lte; struct ioc_read_toc_single_entry irtse; - irtse.address_format = ltep->cdte_format; - irtse.track = ltep->cdte_track; + + error = copyin((void *)args->arg, <e, sizeof(lte)); + if (error) + break; + irtse.address_format = lte.cdte_format; + irtse.track = lte.cdte_track; error = fo_ioctl(fp, CDIOREADTOCENTRY, (caddr_t)&irtse, td->td_ucred, td); if (!error) { - lte = *ltep; lte.cdte_ctrl = irtse.entry.control; lte.cdte_adr = irtse.entry.addr_type; bsd_to_linux_msf_lba(irtse.address_format, &irtse.entry.addr, <e.cdte_addr); - copyout(<e, (void *)args->arg, sizeof(lte)); + error = copyout(<e, (void *)args->arg, sizeof(lte)); } break; } @@ -1696,6 +1698,10 @@ args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE3); return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_INFO: + args->cmd = SETDIR(SOUND_MIXER_INFO); + return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_OSS_GETVERSION: { int version = linux_get_oss_version(td); return (copyout(&version, (void *)args->arg, sizeof(int))); @@ -1705,6 +1711,10 @@ args->cmd = SOUND_MIXER_READ_STEREODEVS; return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_READ_RECMASK: + args->cmd = SOUND_MIXER_READ_RECMASK; + return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_READ_DEVMASK: args->cmd = SOUND_MIXER_READ_DEVMASK; return (ioctl(td, (struct ioctl_args *)args)); @@ -1941,11 +1951,14 @@ break; case LINUX_VT_SETMODE: { - struct vt_mode *mode; + struct vt_mode mode; + if ((error = copyin((void *)args->arg, &mode, sizeof(mode)))) + break; + if (!ISSIGVALID(mode.frsig) && ISSIGVALID(mode.acqsig)) + mode.frsig = mode.acqsig; + if ((error = copyout(&mode, (void *)args->arg, sizeof(mode)))) + break; args->cmd = VT_SETMODE; - mode = (struct vt_mode *)args->arg; - if (!ISSIGVALID(mode->frsig) && ISSIGVALID(mode->acqsig)) - mode->frsig = mode->acqsig; error = (ioctl(td, (struct ioctl_args *)args)); break; } @@ -2076,6 +2089,20 @@ if (error != 0) return (error); + /* handle the 'request buffer size' case */ + if (ifc.ifc_buf == NULL) { + ifc.ifc_len = 0; + TAILQ_FOREACH(ifp, &ifnet, if_link) { + TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + struct sockaddr *sa = ifa->ifa_addr; + if (sa->sa_family == AF_INET) + ifc.ifc_len += sizeof(ifr); + } + } + error = copyout(&ifc, uifc, sizeof(ifc)); + return (error); + } + /* much easier to use uiomove than keep track ourselves */ iov.iov_base = ifc.ifc_buf; iov.iov_len = ifc.ifc_len; ==== //depot/projects/gdb/sys/compat/linux/linux_ioctl.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.18 2004/06/14 07:26:23 phk Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.20 2004/06/18 14:36:24 bms Exp $ */ #ifndef _LINUX_IOCTL_H_ @@ -227,8 +227,10 @@ #define LINUX_SOUND_MIXER_WRITE_LINE1 0x4d0E #define LINUX_SOUND_MIXER_WRITE_LINE2 0x4d0F #define LINUX_SOUND_MIXER_WRITE_LINE3 0x4d10 +#define LINUX_SOUND_MIXER_INFO 0x4d65 #define LINUX_OSS_GETVERSION 0x4d76 #define LINUX_SOUND_MIXER_READ_STEREODEVS 0x4dfb +#define LINUX_SOUND_MIXER_READ_RECMASK 0x4dfd #define LINUX_SOUND_MIXER_READ_DEVMASK 0x4dfe #define LINUX_SOUND_MIXER_WRITE_RECSRC 0x4dff #define LINUX_SNDCTL_DSP_RESET 0x5000 ==== //depot/projects/gdb/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 (text+ko) ==== @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/gdb/sys/dev/acpica/Osd/OsdHardware.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.13 2004/04/14 03:39:08 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.14 2004/06/18 17:56:45 njl Exp $ */ /* @@ -36,11 +36,7 @@ #include #include #include -#if __FreeBSD_version >= 500000 #include -#else -#include -#endif /* * ACPICA's rather gung-ho approach to hardware resource ownership is a little ==== //depot/projects/gdb/sys/dev/acpica/Osd/OsdSynch.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.21 2004/05/05 20:07:52 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.22 2004/06/18 17:58:11 njl Exp $ */ /* @@ -37,35 +37,23 @@ #include #include #include -#if __FreeBSD_version >= 500000 #include #include -#endif #define _COMPONENT ACPI_OS_SERVICES ACPI_MODULE_NAME("SYNCH") MALLOC_DEFINE(M_ACPISEM, "acpisem", "ACPI semaphore"); -#if __FreeBSD_version < 500000 -# define AS_LOCK(as) s = splhigh() -# define AS_UNLOCK(as) splx(s) -# define AS_LOCK_DECL int s -# define msleep(a, b, c, d, e) tsleep(a, c, d, e) -#else -# define AS_LOCK(as) mtx_lock(&(as)->as_mtx) -# define AS_UNLOCK(as) mtx_unlock(&(as)->as_mtx) -# define AS_LOCK_DECL -#endif +#define AS_LOCK(as) mtx_lock(&(as)->as_mtx) +#define AS_UNLOCK(as) mtx_unlock(&(as)->as_mtx) /* * Simple counting semaphore implemented using a mutex. (Subsequently used * in the OSI code to implement a mutex. Go figure.) */ struct acpi_semaphore { -#if __FreeBSD_version >= 500000 struct mtx as_mtx; -#endif UINT32 as_units; UINT32 as_maxunits; UINT32 as_pendings; @@ -101,9 +89,7 @@ if ((as = malloc(sizeof(*as), M_ACPISEM, M_NOWAIT | M_ZERO)) == NULL) return_ACPI_STATUS (AE_NO_MEMORY); -#if __FreeBSD_version >= 500000 mtx_init(&as->as_mtx, "ACPI semaphore", NULL, MTX_DEF); -#endif as->as_units = InitialUnits; as->as_maxunits = MaxUnits; as->as_pendings = as->as_resetting = as->as_timeouts = 0; @@ -129,9 +115,7 @@ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "destroyed semaphore %p\n", as)); -#if __FreeBSD_version >= 500000 mtx_destroy(&as->as_mtx); -#endif free(Handle, M_ACPISEM); #endif /* !ACPI_NO_SEMAPHORES */ @@ -151,7 +135,6 @@ struct acpi_semaphore *as = (struct acpi_semaphore *)Handle; int rv, tmo; struct timeval timeouttv, currenttv, timelefttv; - AS_LOCK_DECL; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -223,11 +206,9 @@ break; } -#if __FreeBSD_version >= 500000 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "semaphore blocked, calling msleep(%p, %p, %d, \"acsem\", %d)\n", as, &as->as_mtx, PCATCH, tmo)); -#endif as->as_pendings++; @@ -310,7 +291,6 @@ { #ifndef ACPI_NO_SEMAPHORES struct acpi_semaphore *as = (struct acpi_semaphore *)Handle; - AS_LOCK_DECL; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ==== //depot/projects/gdb/sys/dev/ed/if_ed_pci.c#2 (text+ko) ==== @@ -18,7 +18,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.34 2003/10/31 18:31:58 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed_pci.c,v 1.36 2004/06/18 01:28:54 imp Exp $"); #include #include @@ -58,11 +58,11 @@ { 0x00000000, NULL } }; -static int ed_pci_probe (device_t); -static int ed_pci_attach (device_t); +static int ed_pci_probe(device_t); +static int ed_pci_attach(device_t); static int -ed_pci_probe (device_t dev) +ed_pci_probe(device_t dev) { u_int32_t type = pci_get_devid(dev); struct _pcsid *ep =pci_ids; @@ -71,10 +71,9 @@ ++ep; if (ep->desc) { device_set_desc(dev, ep->desc); - return 0; - } else { - return ENXIO; + return (0); } + return (ENXIO); } static int ==== //depot/projects/gdb/sys/dev/firewire/sbp.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.77 2004/06/15 16:03:49 dfr Exp $ + * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.78 2004/06/18 08:02:49 simokawa Exp $ * */ @@ -139,7 +139,7 @@ SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, max_speed, CTLFLAG_RW, &max_speed, 0, "SBP transfer max speed"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, exclusive_login, CTLFLAG_RW, - &ex_login, 0, "SBP transfer max speed"); + &ex_login, 0, "SBP enable exclusive login"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, login_delay, CTLFLAG_RW, &login_delay, 0, "SBP login delay in msec"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, scan_delay, CTLFLAG_RW, ==== //depot/projects/gdb/sys/fs/devfs/devfs_devs.c#5 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 + * Copyright (c) 2000,2004 * Poul-Henning Kamp. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 * - * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.30 2004/06/16 09:47:03 phk Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.31 2004/06/18 08:08:47 phk Exp $ */ #include "opt_devfs.h" @@ -59,7 +59,6 @@ static int devfs_noverflow; static unsigned devfs_generation; -static void devfs_attemptoverflow(int insist); static struct devfs_dirent *devfs_find (struct devfs_dirent *dd, const char *name, int namelen); SYSCTL_NODE(_vfs, OID_AUTO, devfs, CTLFLAG_RW, 0, "DEVFS filesystem"); @@ -138,43 +137,6 @@ return (NULL); } -static void -devfs_attemptoverflow(int insist) -{ - struct cdev ***ot; - int *or; - int n, nb; - - /* Check if somebody beat us to it */ - if (devfs_overflow != NULL) - return; - ot = NULL; - or = NULL; - n = devfs_noverflowwant; - nb = sizeof (struct cdev **) * n; - MALLOC(ot, struct cdev ***, nb, M_DEVFS, (insist ? M_WAITOK : M_NOWAIT) | M_ZERO); - if (ot == NULL) - goto bail; - nb = sizeof (int) * n; - MALLOC(or, int *, nb, M_DEVFS, (insist ? M_WAITOK : M_NOWAIT) | M_ZERO); - if (or == NULL) - goto bail; - if (!atomic_cmpset_ptr(&devfs_overflow, NULL, ot)) - goto bail; - devfs_refoverflow = or; - devfs_noverflow = n; - printf("DEVFS Overflow table with %d entries allocated when %d in use\n", n, devfs_numino); - return; - -bail: - /* Somebody beat us to it, or something went wrong. */ - if (ot != NULL) - FREE(ot, M_DEVFS); - if (or != NULL) - FREE(or, M_DEVFS); - return; -} - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 19 00:32:58 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 34F9516A4D0; Sat, 19 Jun 2004 00:32:58 +0000 (GMT) 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 0EB5016A4CE for ; Sat, 19 Jun 2004 00:32:58 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0939E43D48 for ; Sat, 19 Jun 2004 00:32:58 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J0Wv5J096958 for ; Sat, 19 Jun 2004 00:32:57 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J0WvSI096955 for perforce@freebsd.org; Sat, 19 Jun 2004 00:32:57 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 00:32:57 GMT Message-Id: <200406190032.i5J0WvSI096955@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 55278 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 00:32:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=55278 Change 55278 by marcel@marcel_nfs on 2004/06/19 00:32:26 IFC @55276 (with special attention) Affected files ... .. //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-fbsd.h#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/defs.h#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/gdbserver/gdbreplay.c#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/i386bsd-nat.c#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/target.c#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/target.h#6 integrate .. //depot/projects/gdb/contrib/gdb/gdb/version.in#6 integrate Differences ... ==== //depot/projects/gdb/contrib/gdb/gdb/config/i386/tm-fbsd.h#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/defs.h#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/gdbserver/gdbreplay.c#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/i386bsd-nat.c#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/target.c#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/target.h#6 (text+ko) ==== ==== //depot/projects/gdb/contrib/gdb/gdb/version.in#6 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Jun 19 04:24:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 20CAA16A4D0; Sat, 19 Jun 2004 04:24:46 +0000 (GMT) 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 D4EB816A4CE for ; Sat, 19 Jun 2004 04:24:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CB8F743D48 for ; Sat, 19 Jun 2004 04:24:45 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5J4Og5i054268 for ; Sat, 19 Jun 2004 04:24:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J4Og2f054265 for perforce@freebsd.org; Sat, 19 Jun 2004 04:24:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 19 Jun 2004 04:24:42 GMT Message-Id: <200406190424.i5J4Og2f054265@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 55287 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 04:24:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=55287 Change 55287 by rwatson@rwatson_paprika on 2004/06/19 04:24:38 Integrate netperf_socket to loop-back initial sosend/soreceive, sbwait/sblock locking. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/fpu.c#5 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#4 integrate .. //depot/projects/netperf_socket/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdHardware.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdSynch.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_cpu.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/sbp.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_devs.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/kern_exit.c#12 integrate .. //depot/projects/netperf_socket/sys/kern/kern_thread.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/subr_prf.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#20 edit .. //depot/projects/netperf_socket/sys/kern/uipc_socket2.c#17 edit .. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#19 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#9 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_input.c#14 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_output.c#6 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_usrreq.c#9 integrate .. //depot/projects/netperf_socket/sys/sys/kernel.h#5 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_snapshot.c#5 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/fpu.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.153 2004/06/08 01:35:48 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.154 2004/06/18 04:01:54 peter Exp $"); #include #include @@ -125,6 +125,8 @@ ldmxcsr(mxcsr); fxsave(&fpu_cleanstate); start_emulating(); + bzero(fpu_cleanstate.sv_fp, sizeof(fpu_cleanstate.sv_fp)); + bzero(fpu_cleanstate.sv_xmm, sizeof(fpu_cleanstate.sv_xmm)); fpu_cleanstate_ready = 1; intr_restore(savecrit); } @@ -384,7 +386,6 @@ { struct pcb *pcb; register_t s; - u_short control; if (PCPU_GET(fpcurthread) == curthread) { printf("fpudna: fpcurthread == curthread %d times\n", @@ -409,13 +410,10 @@ if ((pcb->pcb_flags & PCB_FPUINITDONE) == 0) { /* - * This is the first time this thread has used the FPU or - * the PCB doesn't contain a clean FPU state. Explicitly - * initialize the FPU and load the default control word. + * This is the first time this thread has used the FPU, + * explicitly load sanitized registers. */ - fninit(); - control = __INITIAL_FPUCW__; - fldcw(&control); + fxrstor(&fpu_cleanstate); pcb->pcb_flags |= PCB_FPUINITDONE; } else fxrstor(&pcb->pcb_save); ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.114 2004/06/14 07:26:23 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.119 2004/06/18 14:36:24 bms Exp $"); #include #include @@ -1443,20 +1443,22 @@ } case LINUX_CDROMREADTOCENTRY: { - struct linux_cdrom_tocentry lte, *ltep = - (struct linux_cdrom_tocentry *)args->arg; + struct linux_cdrom_tocentry lte; struct ioc_read_toc_single_entry irtse; - irtse.address_format = ltep->cdte_format; - irtse.track = ltep->cdte_track; + + error = copyin((void *)args->arg, <e, sizeof(lte)); + if (error) + break; + irtse.address_format = lte.cdte_format; + irtse.track = lte.cdte_track; error = fo_ioctl(fp, CDIOREADTOCENTRY, (caddr_t)&irtse, td->td_ucred, td); if (!error) { - lte = *ltep; lte.cdte_ctrl = irtse.entry.control; lte.cdte_adr = irtse.entry.addr_type; bsd_to_linux_msf_lba(irtse.address_format, &irtse.entry.addr, <e.cdte_addr); - copyout(<e, (void *)args->arg, sizeof(lte)); + error = copyout(<e, (void *)args->arg, sizeof(lte)); } break; } @@ -1696,6 +1698,10 @@ args->cmd = SETDIR(SOUND_MIXER_WRITE_LINE3); return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_INFO: + args->cmd = SETDIR(SOUND_MIXER_INFO); + return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_OSS_GETVERSION: { int version = linux_get_oss_version(td); return (copyout(&version, (void *)args->arg, sizeof(int))); @@ -1705,6 +1711,10 @@ args->cmd = SOUND_MIXER_READ_STEREODEVS; return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_READ_RECMASK: + args->cmd = SOUND_MIXER_READ_RECMASK; + return (ioctl(td, (struct ioctl_args *)args)); + case LINUX_SOUND_MIXER_READ_DEVMASK: args->cmd = SOUND_MIXER_READ_DEVMASK; return (ioctl(td, (struct ioctl_args *)args)); @@ -1941,11 +1951,14 @@ break; case LINUX_VT_SETMODE: { - struct vt_mode *mode; + struct vt_mode mode; + if ((error = copyin((void *)args->arg, &mode, sizeof(mode)))) + break; + if (!ISSIGVALID(mode.frsig) && ISSIGVALID(mode.acqsig)) + mode.frsig = mode.acqsig; + if ((error = copyout(&mode, (void *)args->arg, sizeof(mode)))) + break; args->cmd = VT_SETMODE; - mode = (struct vt_mode *)args->arg; - if (!ISSIGVALID(mode->frsig) && ISSIGVALID(mode->acqsig)) - mode->frsig = mode->acqsig; error = (ioctl(td, (struct ioctl_args *)args)); break; } @@ -2076,6 +2089,20 @@ if (error != 0) return (error); + /* handle the 'request buffer size' case */ + if (ifc.ifc_buf == NULL) { + ifc.ifc_len = 0; + TAILQ_FOREACH(ifp, &ifnet, if_link) { + TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + struct sockaddr *sa = ifa->ifa_addr; + if (sa->sa_family == AF_INET) + ifc.ifc_len += sizeof(ifr); + } + } + error = copyout(&ifc, uifc, sizeof(ifc)); + return (error); + } + /* much easier to use uiomove than keep track ourselves */ iov.iov_base = ifc.ifc_buf; iov.iov_len = ifc.ifc_len; ==== //depot/projects/netperf_socket/sys/compat/linux/linux_ioctl.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.18 2004/06/14 07:26:23 phk Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.20 2004/06/18 14:36:24 bms Exp $ */ #ifndef _LINUX_IOCTL_H_ @@ -227,8 +227,10 @@ #define LINUX_SOUND_MIXER_WRITE_LINE1 0x4d0E #define LINUX_SOUND_MIXER_WRITE_LINE2 0x4d0F #define LINUX_SOUND_MIXER_WRITE_LINE3 0x4d10 +#define LINUX_SOUND_MIXER_INFO 0x4d65 #define LINUX_OSS_GETVERSION 0x4d76 #define LINUX_SOUND_MIXER_READ_STEREODEVS 0x4dfb +#define LINUX_SOUND_MIXER_READ_RECMASK 0x4dfd #define LINUX_SOUND_MIXER_READ_DEVMASK 0x4dfe #define LINUX_SOUND_MIXER_WRITE_RECSRC 0x4dff #define LINUX_SNDCTL_DSP_RESET 0x5000 ==== //depot/projects/netperf_socket/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 (text+ko) ==== @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdHardware.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.13 2004/04/14 03:39:08 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.14 2004/06/18 17:56:45 njl Exp $ */ /* @@ -36,11 +36,7 @@ #include #include #include -#if __FreeBSD_version >= 500000 #include -#else -#include -#endif /* * ACPICA's rather gung-ho approach to hardware resource ownership is a little ==== //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdSynch.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.21 2004/05/05 20:07:52 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.22 2004/06/18 17:58:11 njl Exp $ */ /* @@ -37,35 +37,23 @@ #include #include #include -#if __FreeBSD_version >= 500000 #include #include -#endif #define _COMPONENT ACPI_OS_SERVICES ACPI_MODULE_NAME("SYNCH") MALLOC_DEFINE(M_ACPISEM, "acpisem", "ACPI semaphore"); -#if __FreeBSD_version < 500000 -# define AS_LOCK(as) s = splhigh() -# define AS_UNLOCK(as) splx(s) -# define AS_LOCK_DECL int s -# define msleep(a, b, c, d, e) tsleep(a, c, d, e) -#else -# define AS_LOCK(as) mtx_lock(&(as)->as_mtx) -# define AS_UNLOCK(as) mtx_unlock(&(as)->as_mtx) -# define AS_LOCK_DECL -#endif +#define AS_LOCK(as) mtx_lock(&(as)->as_mtx) +#define AS_UNLOCK(as) mtx_unlock(&(as)->as_mtx) /* * Simple counting semaphore implemented using a mutex. (Subsequently used * in the OSI code to implement a mutex. Go figure.) */ struct acpi_semaphore { -#if __FreeBSD_version >= 500000 struct mtx as_mtx; -#endif UINT32 as_units; UINT32 as_maxunits; UINT32 as_pendings; @@ -101,9 +89,7 @@ if ((as = malloc(sizeof(*as), M_ACPISEM, M_NOWAIT | M_ZERO)) == NULL) return_ACPI_STATUS (AE_NO_MEMORY); -#if __FreeBSD_version >= 500000 mtx_init(&as->as_mtx, "ACPI semaphore", NULL, MTX_DEF); -#endif as->as_units = InitialUnits; as->as_maxunits = MaxUnits; as->as_pendings = as->as_resetting = as->as_timeouts = 0; @@ -129,9 +115,7 @@ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "destroyed semaphore %p\n", as)); -#if __FreeBSD_version >= 500000 mtx_destroy(&as->as_mtx); -#endif free(Handle, M_ACPISEM); #endif /* !ACPI_NO_SEMAPHORES */ @@ -151,7 +135,6 @@ struct acpi_semaphore *as = (struct acpi_semaphore *)Handle; int rv, tmo; struct timeval timeouttv, currenttv, timelefttv; - AS_LOCK_DECL; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -223,11 +206,9 @@ break; } -#if __FreeBSD_version >= 500000 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "semaphore blocked, calling msleep(%p, %p, %d, \"acsem\", %d)\n", as, &as->as_mtx, PCATCH, tmo)); -#endif as->as_pendings++; @@ -310,7 +291,6 @@ { #ifndef ACPI_NO_SEMAPHORES struct acpi_semaphore *as = (struct acpi_semaphore *)Handle; - AS_LOCK_DECL; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_cpu.c#10 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.39 2004/06/05 07:02:17 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.40 2004/06/19 02:27:23 njl Exp $"); #include "opt_acpi.h" #include @@ -1046,15 +1046,21 @@ struct sbuf sb; char buf[128]; int i; - u_int sum; + uint64_t fract, sum, whole; - /* Avoid divide by 0 potential error. */ - sum = 1; + sum = 0; for (i = 0; i < cpu_cx_count; i++) sum += cpu_cx_stats[i]; sbuf_new(&sb, buf, sizeof(buf), SBUF_FIXEDLEN); - for (i = 0; i < cpu_cx_count; i++) - sbuf_printf(&sb, "%u%% ", (cpu_cx_stats[i] * 100) / sum); + for (i = 0; i < cpu_cx_count; i++) { + if (sum > 0) { + whole = cpu_cx_stats[i] * 100; + fract = (whole % sum) * 100; + sbuf_printf(&sb, "%u.%02u%% ", (u_int)(whole / sum), + (u_int)(fract / sum)); + } else + sbuf_printf(&sb, "0%% "); + } sbuf_trim(&sb); sbuf_finish(&sb); sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req); ==== //depot/projects/netperf_socket/sys/dev/firewire/sbp.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.77 2004/06/15 16:03:49 dfr Exp $ + * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.78 2004/06/18 08:02:49 simokawa Exp $ * */ @@ -139,7 +139,7 @@ SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, max_speed, CTLFLAG_RW, &max_speed, 0, "SBP transfer max speed"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, exclusive_login, CTLFLAG_RW, - &ex_login, 0, "SBP transfer max speed"); + &ex_login, 0, "SBP enable exclusive login"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, login_delay, CTLFLAG_RW, &login_delay, 0, "SBP login delay in msec"); SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, scan_delay, CTLFLAG_RW, ==== //depot/projects/netperf_socket/sys/fs/devfs/devfs_devs.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 + * Copyright (c) 2000,2004 * Poul-Henning Kamp. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ * * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 * - * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.30 2004/06/16 09:47:03 phk Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.31 2004/06/18 08:08:47 phk Exp $ */ #include "opt_devfs.h" @@ -58,7 +58,6 @@ static int devfs_noverflow; static unsigned devfs_generation; -static void devfs_attemptoverflow(int insist); static struct devfs_dirent *devfs_find (struct devfs_dirent *dd, const char *name, int namelen); SYSCTL_NODE(_vfs, OID_AUTO, devfs, CTLFLAG_RW, 0, "DEVFS filesystem"); @@ -137,43 +136,6 @@ return (NULL); } -static void -devfs_attemptoverflow(int insist) -{ - struct cdev ***ot; - int *or; - int n, nb; - - /* Check if somebody beat us to it */ - if (devfs_overflow != NULL) - return; - ot = NULL; - or = NULL; - n = devfs_noverflowwant; - nb = sizeof (struct cdev **) * n; - MALLOC(ot, struct cdev ***, nb, M_DEVFS, (insist ? M_WAITOK : M_NOWAIT) | M_ZERO); - if (ot == NULL) - goto bail; - nb = sizeof (int) * n; - MALLOC(or, int *, nb, M_DEVFS, (insist ? M_WAITOK : M_NOWAIT) | M_ZERO); - if (or == NULL) - goto bail; - if (!atomic_cmpset_ptr(&devfs_overflow, NULL, ot)) - goto bail; - devfs_refoverflow = or; - devfs_noverflow = n; - printf("DEVFS Overflow table with %d entries allocated when %d in use\n", n, devfs_numino); - return; - -bail: - /* Somebody beat us to it, or something went wrong. */ - if (ot != NULL) - FREE(ot, M_DEVFS); - if (or != NULL) - FREE(or, M_DEVFS); - return; -} - static struct devfs_dirent * devfs_find(struct devfs_dirent *dd, const char *name, int namelen) { @@ -367,20 +329,26 @@ de->de_dir = dd; devfs_rules_apply(dm, de); TAILQ_INSERT_TAIL(&dd->de_dlist, de, de_list); -#if 0 - printf("Add ino%d %s\n", i, dev->si_name); -#endif } } lockmgr(&dm->dm_lock, LK_DOWNGRADE, 0, curthread); return (0); } +/* + * devfs_create() and devfs_destroy() are called from kern_conf.c and + * in both cases the devlock() mutex is held, so no further locking + * is necesary and no sleeping allowed. + */ + void devfs_create(struct cdev *dev) { int ino, i, *ip; struct cdev **dp; + struct cdev **ot; + int *or; + int n; for (;;) { /* Grab the next inode number */ @@ -389,56 +357,70 @@ /* wrap around when we reach the end */ if (i >= NDEVFSINO + devfs_noverflow) i = 3; - if (!atomic_cmpset_int(&devfs_nextino, ino, i)) - continue; + devfs_nextino = i; /* see if it was occupied */ dp = devfs_itod(ino); - if (dp == NULL) - Debugger("dp == NULL\n"); + KASSERT(dp != NULL, ("DEVFS: No devptr inode %d", ino)); if (*dp != NULL) continue; ip = devfs_itor(ino); - if (ip == NULL) - Debugger("ip == NULL\n"); + KASSERT(ip != NULL, ("DEVFS: No iptr inode %d", ino)); if (*ip != 0) continue; + break; + } - if (!atomic_cmpset_ptr(dp, NULL, dev)) - continue; + *dp = dev; + dev->si_inode = ino; + if (i > devfs_topino) + devfs_topino = i; + + devfs_numino++; + devfs_generation++; + + if (devfs_overflow != NULL || devfs_numino + 100 < NDEVFSINO) + return; - dev->si_inode = ino; - for (;;) { - i = devfs_topino; - if (i >= ino) - break; - if (atomic_cmpset_int(&devfs_topino, i, ino)) - break; - printf("failed topino %d %d\n", i, ino); - } - break; + /* + * Try to allocate overflow table + * XXX: we can probably be less panicy these days and a linked + * XXX: list of PAGESIZE/PTRSIZE entries might be a better idea. + * + * XXX: we may be into witness unlove here. + */ + n = devfs_noverflowwant; + ot = malloc(sizeof(*ot) * n, M_DEVFS, M_NOWAIT | M_ZERO); + if (ot == NULL) + return; + or = malloc(sizeof(*or) * n, M_DEVFS, M_NOWAIT | M_ZERO); + if (or == NULL) { + free(ot, M_DEVFS); + return; } - - atomic_add_int(&devfs_numino, 1); - atomic_add_int(&devfs_generation, 1); - if (devfs_overflow == NULL && devfs_numino + 100 > NDEVFSINO) - devfs_attemptoverflow(0); + devfs_overflow = ot; + devfs_refoverflow = or; + devfs_noverflow = n; + printf("DEVFS Overflow table with %d entries allocated\n", n); + return; } void devfs_destroy(struct cdev *dev) { - int ino, i; + int ino; + struct cdev **dp; ino = dev->si_inode; dev->si_inode = 0; if (ino == 0) return; - if (atomic_cmpset_ptr(devfs_itod(ino), dev, NULL)) { - atomic_add_int(&devfs_generation, 1); - atomic_add_int(&devfs_numino, -1); - i = devfs_nextino; - if (ino < i) - atomic_cmpset_int(&devfs_nextino, i, ino); - } + dp = devfs_itod(ino); + KASSERT(*dp == dev, + ("DEVFS: destroying wrong cdev ino %d", ino)); + *dp = NULL; + devfs_numino--; + devfs_generation++; + if (ino < devfs_nextino) + devfs_nextino = ino; } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum.c,v 1.1 2004/06/12 21:16:10 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum.c,v 1.2 2004/06/18 19:53:33 le Exp $"); #include #include @@ -520,6 +520,9 @@ struct g_geom *gp2; struct gv_softc *sc; struct gv_drive *d, *d2; + struct gv_plex *p, *p2; + struct gv_sd *s, *s2; + struct gv_volume *v, *v2; struct gv_freelist *fl, *fl2; g_trace(G_T_TOPOLOGY, "gv_destroy_geom: %s", gp->name); @@ -539,7 +542,9 @@ return (EBUSY); } + /* Clean up and deallocate what we allocated. */ LIST_FOREACH_SAFE(d, &sc->drives, drive, d2) { + LIST_REMOVE(d, drive); g_free(d->hdr); d->hdr = NULL; LIST_FOREACH_SAFE(fl, &d->freelist, freelist, fl2) { @@ -548,11 +553,40 @@ g_free(fl); fl = NULL; } - LIST_REMOVE(d, drive); + d->geom->softc = NULL; + g_free(d); + } + + LIST_FOREACH_SAFE(s, &sc->subdisks, sd, s2) { + LIST_REMOVE(s, sd); + s->drive_sc = NULL; + s->plex_sc = NULL; + s->provider = NULL; + s->consumer = NULL; + g_free(s); + } + + LIST_FOREACH_SAFE(p, &sc->plexes, plex, p2) { + LIST_REMOVE(p, plex); + gv_kill_thread(p); + p->vol_sc = NULL; + p->geom->softc = NULL; + p->provider = NULL; + p->consumer = NULL; + if (p->org == GV_PLEX_RAID5) { + mtx_destroy(&p->worklist_mtx); + } + g_free(p); + } + + LIST_FOREACH_SAFE(v, &sc->volumes, volume, v2) { + LIST_REMOVE(v, volume); + v->geom->softc = NULL; + g_free(v); } + gp->softc = NULL; g_free(sc); - sc = NULL; g_wither_geom(gp, ENXIO); return (0); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.3 2004/06/16 14:41:04 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.4 2004/06/18 19:53:33 le Exp $"); #include #include @@ -281,13 +281,15 @@ if (!LIST_EMPTY(&gp->consumer)) return; d = gp->softc; - printf("gvinum: lost drive '%s'\n", d->name); - d->geom = NULL; - LIST_FOREACH(s, &d->subdisks, from_drive) { - s->provider = NULL; - s->consumer = NULL; + if (d != NULL) { + printf("gvinum: lost drive '%s'\n", d->name); + d->geom = NULL; + LIST_FOREACH(s, &d->subdisks, from_drive) { + s->provider = NULL; + s->consumer = NULL; + } + gv_set_drive_state(d, GV_DRIVE_DOWN, GV_SETSTATE_FORCE); } - gv_set_drive_state(d, GV_DRIVE_DOWN, GV_SETSTATE_FORCE); gp->softc = NULL; g_wither_geom(gp, error); } @@ -465,12 +467,9 @@ gv_drive_destroy_geom(struct gctl_req *req, struct g_class *mp, struct g_geom *gp) { - /*struct gv_drive *d;*/ - g_trace(G_T_TOPOLOGY, "gv_drive_destroy_geom: %s", gp->name); g_topology_assert(); - /* g_free(sc); */ g_wither_geom(gp, ENXIO); return (0); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_plex.c,v 1.2 2004/06/16 14:41:04 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_plex.c,v 1.3 2004/06/18 19:53:33 le Exp $"); #include #include @@ -66,11 +66,13 @@ return; p = gp->softc; - gv_kill_thread(p); - p->geom = NULL; + if (p != NULL) { + gv_kill_thread(p); + p->geom = NULL; + p->provider = NULL; + p->consumer = NULL; + } gp->softc = NULL; - p->provider = NULL; - p->consumer = NULL; g_wither_geom(gp, error); } ==== //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_volume.c,v 1.2 2004/06/16 14:41:04 le Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/vinum/geom_vinum_volume.c,v 1.3 2004/06/18 19:53:33 le Exp $"); #include #include @@ -62,7 +62,8 @@ if (!LIST_EMPTY(&gp->consumer)) return; v = gp->softc; - v->geom = NULL; + if (v != NULL) + v->geom = NULL; gp->softc = NULL; g_wither_geom(gp, error); } @@ -243,11 +244,7 @@ { g_trace(G_T_TOPOLOGY, "gv_volume_destroy_geom: %s", gp->name); g_topology_assert(); -/* - if (gp->softc != NULL) - g_free(gp->softc); - gp->softc = NULL; -*/ + g_wither_geom(gp, ENXIO); return (0); } ==== //depot/projects/netperf_socket/sys/kern/kern_exit.c#12 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_exit.c,v 1.234 2004/06/08 10:37:29 tjr Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_exit.c,v 1.236 2004/06/18 11:13:49 davidxu Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" @@ -133,6 +133,7 @@ */ PROC_LOCK(p); if (p->p_flag & P_SA || p->p_numthreads > 1) { +retry: /* * First check if some other thread got here before us.. * if so, act apropriatly, (exit or suspend); @@ -152,9 +153,13 @@ * to return to userland will thread_exit() from userret(). * thread_exit() will unsuspend us when the last other * thread exits. + * If there is already a thread singler after resumption, + * calling thread_single will fail, in the case, we just + * re-check all suspension request, the thread should + * either be suspended there or exit. */ if (thread_single(SINGLE_EXIT)) - panic ("Exit: Single threading fouled up"); + goto retry; /* * All other activity in this process is now stopped. * Remove excess KSEs and KSEGRPS. XXXKSE (when we have them) ==== //depot/projects/netperf_socket/sys/kern/kern_thread.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.181 2004/06/11 17:48:20 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.182 2004/06/18 06:15:21 davidxu Exp $"); #include #include @@ -849,6 +849,7 @@ struct thread *td; struct thread *td2; struct proc *p; + int remaining; td = curthread; p = td->td_proc; @@ -870,7 +871,11 @@ p->p_flag |= P_STOPPED_SINGLE; mtx_lock_spin(&sched_lock); p->p_singlethread = td; - while ((p->p_numthreads - p->p_suspcount) != 1) { + if (force_exit == SINGLE_EXIT) + remaining = p->p_numthreads; + else + remaining = p->p_numthreads - p->p_suspcount; + while (remaining != 1) { FOREACH_THREAD_IN_PROC(p, td2) { if (td2 == td) continue; @@ -898,10 +903,15 @@ } } } + if (force_exit == SINGLE_EXIT) + remaining = p->p_numthreads; + else + remaining = p->p_numthreads - p->p_suspcount; + /* * Maybe we suspended some threads.. was it enough? */ - if ((p->p_numthreads - p->p_suspcount) == 1) + if (remaining == 1) break; /* @@ -914,6 +924,10 @@ mtx_unlock_spin(&sched_lock); PROC_LOCK(p); mtx_lock_spin(&sched_lock); + if (force_exit == SINGLE_EXIT) + remaining = p->p_numthreads; + else + remaining = p->p_numthreads - p->p_suspcount; } if (force_exit == SINGLE_EXIT) { if (td->td_upcall) ==== //depot/projects/netperf_socket/sys/kern/subr_prf.c#4 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_prf.c,v 1.110 2004/04/05 21:03:35 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_prf.c,v 1.111 2004/06/18 20:12:42 green Exp $"); #include "opt_ddb.h" @@ -97,7 +97,12 @@ static int log_console_output = 1; TUNABLE_INT("kern.log_console_output", &log_console_output); SYSCTL_INT(_kern, OID_AUTO, log_console_output, CTLFLAG_RW, - &log_console_output, 0, ""); + &log_console_output, 0, "Duplicate console output to the syslog."); + +static int always_console_output = 0; +TUNABLE_INT("kern.always_console_output", &always_console_output); +SYSCTL_INT(_kern, OID_AUTO, always_console_output, CTLFLAG_RW, + &always_console_output, 0, "Always output to console despite TIOCCONS."); /* * Warn that a system table is full. @@ -345,8 +350,12 @@ } else { if ((flags & TOTTY) && tp != NULL) tputchar(c, tp); - if ((flags & TOCONS) && constty != NULL) - msgbuf_addchar(&consmsgbuf, c); + if (flags & TOCONS) { + if (constty != NULL) + msgbuf_addchar(&consmsgbuf, c); + if (always_console_output && c != '\0') + cnputc(c); + } } if ((flags & TOLOG)) msglogchar(c, ap->pri); ==== //depot/projects/netperf_socket/sys/kern/uipc_socket.c#20 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.180 2004/06/18 02:57:55 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.182 2004/06/19 03:23:14 rwatson Exp $"); #include "opt_inet.h" #include "opt_mac.h" @@ -600,8 +600,9 @@ SOCKBUF_LOCK(&so->so_snd); error = sblock(&so->so_snd, SBLOCKWAIT(flags)); if (error) - goto out; + goto out_locked; do { + SOCKBUF_LOCK_ASSERT(&so->so_snd); if (so->so_snd.sb_state & SBS_CANTSENDMORE) snderr(EPIPE); if (so->so_error) { @@ -640,6 +641,7 @@ goto release; continue; } + SOCKBUF_UNLOCK(&so->so_snd); mp = ⊤ space -= clen; do { @@ -654,7 +656,6 @@ #ifdef ZERO_COPY_SOCKETS cow_send = 0; #endif /* ZERO_COPY_SOCKETS */ - SOCKBUF_UNLOCK(&so->so_snd); if (resid >= MINCLSIZE) { #ifdef ZERO_COPY_SOCKETS if (top == NULL) { @@ -735,13 +736,14 @@ else #endif /* ZERO_COPY_SOCKETS */ error = uiomove(mtod(m, void *), (int)len, uio); - SOCKBUF_LOCK(&so->so_snd); resid = uio->uio_resid; m->m_len = len; *mp = m; top->m_pkthdr.len += len; - if (error) + if (error) { + SOCKBUF_LOCK(&so->so_snd); goto release; + } mp = &m->m_next; if (resid <= 0) { if (flags & MSG_EOR) @@ -777,22 +779,30 @@ /* If there is more to send set PRUS_MORETOCOME */ (resid > 0 && space > 0) ? PRUS_MORETOCOME : 0, top, addr, control, td); - if (dontroute) + if (dontroute) { + SOCK_LOCK(so); so->so_options &= ~SO_DONTROUTE; + SOCK_UNLOCK(so); + } clen = 0; control = NULL; top = NULL; mp = ⊤ - if (error) + if (error) { + SOCKBUF_LOCK(&so->so_snd); goto release; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 19 04:46:31 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A85F716A4D0; Sat, 19 Jun 2004 04:46:30 +0000 (GMT) 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 8249F16A4CE for ; Sat, 19 Jun 2004 04:46:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ACA243D1F for ; Sat, 19 Jun 2004 04:46:30 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J4kAiN058413 for ; Sat, 19 Jun 2004 04:46:10 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J4kAPb058410 for perforce@freebsd.org; Sat, 19 Jun 2004 04:46:10 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 04:46:10 GMT Message-Id: <200406190446.i5J4kAPb058410@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 55290 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 04:46:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=55290 Change 55290 by marcel@marcel_nfs on 2004/06/19 04:45:23 Use lwpid_t consistently. Affected files ... .. //depot/projects/gdb/sys/kern/kern_shutdown.c#9 edit .. //depot/projects/gdb/sys/kern/kern_thread.c#15 edit Differences ... ==== //depot/projects/gdb/sys/kern/kern_shutdown.c#9 (text+ko) ==== @@ -126,7 +126,7 @@ /* Context information for dump-debuggers. */ static struct pcb dumppcb; /* Registers. */ -static int dumptid; /* Thread ID. */ +static lwpid_t dumptid; /* Thread ID. */ static void boot(int) __dead2; static void poweroff_wait(void *, int); ==== //depot/projects/gdb/sys/kern/kern_thread.c#15 (text+ko) ==== @@ -129,7 +129,7 @@ struct tid_bitmap_part { STAILQ_ENTRY(tid_bitmap_part) bmp_next; tid_bitmap_word bmp_bitmap[TID_BITMAP_SIZE]; - int bmp_base; + lwpid_t bmp_base; int bmp_free; }; @@ -176,7 +176,8 @@ { struct thread *td; struct tid_bitmap_part *bmp; - int bit, idx, tid; + lwpid_t tid; + int bit, idx; td = (struct thread *)mem; @@ -537,11 +538,12 @@ /* * Assign a thread ID. */ -int +lwpid_t thread_new_tid(void) { struct tid_bitmap_part *bmp, *new; - int bit, idx, tid; + lwpid_t tid; + int bit, idx; mtx_lock(&tid_lock); STAILQ_FOREACH(bmp, &tid_bitmap, bmp_next) { From owner-p4-projects@FreeBSD.ORG Sat Jun 19 05:33:19 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C06CA16A4D0; Sat, 19 Jun 2004 05:33:18 +0000 (GMT) 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 9B2A216A4CE for ; Sat, 19 Jun 2004 05:33:18 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9322343D46 for ; Sat, 19 Jun 2004 05:33:18 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J5XGjS075444 for ; Sat, 19 Jun 2004 05:33:16 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J5XGcg075441 for perforce@freebsd.org; Sat, 19 Jun 2004 05:33:16 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 05:33:16 GMT Message-Id: <200406190533.i5J5XGcg075441@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 55292 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 05:33:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=55292 Change 55292 by marcel@marcel_nfs on 2004/06/19 05:32:52 WARNS=4 fixes. Affected files ... .. //depot/projects/gdb/lib/libthread_db/thread_db.h#3 edit Differences ... ==== //depot/projects/gdb/lib/libthread_db/thread_db.h#3 (text+ko) ==== @@ -112,37 +112,37 @@ } u; } td_notify_t; -static void __inline +static __inline void td_event_addset(td_thr_events_t *es, td_thr_events_e e) { *es |= e; } -static void __inline +static __inline void td_event_delset(td_thr_events_t *es, td_thr_events_e e) { *es &= ~e; } -static void __inline +static __inline void td_event_emptyset(td_thr_events_t *es) { *es = TD_EVENT_NONE; } -static void __inline +static __inline void td_event_fillset(td_thr_events_t *es) { *es = TD_ALL_EVENTS; } -static int __inline +static __inline int td_eventisempty(td_thr_events_t *es) { return ((*es == TD_EVENT_NONE) ? 1 : 0); } -static int __inline +static __inline int td_eventismember(td_thr_events_t *es, td_thr_events_e e) { return ((*es & e) ? 1 : 0); @@ -160,7 +160,7 @@ #define TD_SIGNO_MASK NULL __BEGIN_DECLS -td_err_e td_init(); +td_err_e td_init(void); td_err_e td_ta_event_addr(const td_thragent_t *, td_thr_events_e, td_notify_t *); td_err_e td_ta_event_getmsg(const td_thragent_t *, td_event_msg_t *); From owner-p4-projects@FreeBSD.ORG Sat Jun 19 07:10:32 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0EF716A4D0; Sat, 19 Jun 2004 07:10:31 +0000 (GMT) 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 94DE616A4CE for ; Sat, 19 Jun 2004 07:10:31 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8DF9B43D45 for ; Sat, 19 Jun 2004 07:10:31 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J7ACsi096368 for ; Sat, 19 Jun 2004 07:10:12 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J7ABZK096365 for perforce@freebsd.org; Sat, 19 Jun 2004 07:10:11 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 07:10:11 GMT Message-Id: <200406190710.i5J7ABZK096365@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 55293 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 07:10:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=55293 Change 55293 by marcel@marcel_nfs on 2004/06/19 07:09:11 Cast td_tid to long for printing. This makes it easy to change lwpid_t to a pointer type later, if such would be beneficial. Affected files ... .. //depot/projects/gdb/sys/ddb/db_thread.c#7 edit Differences ... ==== //depot/projects/gdb/sys/ddb/db_thread.c#7 (text+ko) ==== @@ -41,7 +41,7 @@ void db_print_thread(void) { - db_printf("[thread %d]\n", kdb_thread->td_tid); + db_printf("[thread %ld]\n", (long)kdb_thread->td_tid); } void @@ -65,8 +65,8 @@ if (thr != NULL) { err = kdb_thr_select(thr); if (err != 0) { - db_printf("unable to switch to thread %d\n", - (int)thr->td_tid); + db_printf("unable to switch to thread %ld\n", + (long)thr->td_tid); return; } db_dot = PC_REGS(); @@ -93,7 +93,7 @@ pager_quit = 0; thr = kdb_thr_first(); while (!pager_quit && thr != NULL) { - db_printf(" %6d (%p) ", (int)thr->td_tid, thr); + db_printf(" %6ld (%p) ", (long)thr->td_tid, thr); prev_jb = kdb_jmpbuf(jb); if (setjmp(jb) == 0) { if (db_trace_thread(thr, 1) != 0) From owner-p4-projects@FreeBSD.ORG Sat Jun 19 07:13:40 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1195F16A4D8; Sat, 19 Jun 2004 07:13:40 +0000 (GMT) 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 DB6DE16A4CF for ; Sat, 19 Jun 2004 07:13:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D49C143D1F for ; Sat, 19 Jun 2004 07:13:39 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5J7DGpb098274 for ; Sat, 19 Jun 2004 07:13:16 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5J7DG6Y098269 for perforce@freebsd.org; Sat, 19 Jun 2004 07:13:16 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 07:13:16 GMT Message-Id: <200406190713.i5J7DG6Y098269@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 55294 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 07:13:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=55294 Change 55294 by marcel@marcel_nfs on 2004/06/19 07:13:12 Cast td_tid to long. Affected files ... .. //depot/projects/gdb/sys/gdb/gdb_main.c#15 edit Differences ... ==== //depot/projects/gdb/sys/gdb/gdb_main.c#15 (text+ko) ==== @@ -105,7 +105,7 @@ gdb_tx_reg(GDB_REG_PC); gdb_tx_char(';'); gdb_tx_str("thread:"); - gdb_tx_varhex(kdb_thread->td_tid); + gdb_tx_varhex((long)kdb_thread->td_tid); gdb_tx_char(';'); gdb_tx_end(); /* XXX check error condition. */ @@ -185,7 +185,7 @@ if (gdb_rx_equal("fThreadInfo")) { thr_iter = kdb_thr_first(); gdb_tx_begin('m'); - gdb_tx_hex(thr_iter->td_tid, 8); + gdb_tx_hex((long)thr_iter->td_tid, 8); gdb_tx_end(); } else if (gdb_rx_equal("sThreadInfo")) { if (thr_iter == NULL) { @@ -195,7 +195,7 @@ thr_iter = kdb_thr_next(thr_iter); if (thr_iter != NULL) { gdb_tx_begin('m'); - gdb_tx_hex(thr_iter->td_tid, 8); + gdb_tx_hex((long)thr_iter->td_tid, 8); gdb_tx_end(); } else { gdb_tx_begin('l'); From owner-p4-projects@FreeBSD.ORG Sat Jun 19 15:26:22 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC72E16A4D0; Sat, 19 Jun 2004 15:26:21 +0000 (GMT) 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 9FA0A16A4CE for ; Sat, 19 Jun 2004 15:26:21 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9463943D39 for ; Sat, 19 Jun 2004 15:26:21 +0000 (GMT) (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.11/8.12.11) with ESMTP id i5JFQLsI021467 for ; Sat, 19 Jun 2004 15:26:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5JFQLDr021464 for perforce@freebsd.org; Sat, 19 Jun 2004 15:26:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 19 Jun 2004 15:26:21 GMT Message-Id: <200406191526.i5JFQLDr021464@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 55314 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 15:26:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=55314 Change 55314 by rwatson@rwatson_paprika on 2004/06/19 15:25:36 Integrate netperf_socket. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/include/pmap.h#10 integrate .. //depot/projects/netperf_socket/sys/geom/geom_dev.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/kern_proc.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/sysv_shm.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_syscalls.c#10 integrate .. //depot/projects/netperf_socket/sys/net/pfil.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/_lock.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/file.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/proc.h#12 integrate .. //depot/projects/netperf_socket/sys/sys/sysctl.h#7 integrate .. //depot/projects/netperf_socket/sys/sys/user.h#6 integrate .. //depot/projects/netperf_socket/sys/vm/vm_page.c#9 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/include/pmap.h#10 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.119 2004/06/14 01:17:50 alc Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.120 2004/06/19 14:58:34 bde Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -129,9 +129,9 @@ #ifndef LOCORE +#include #include #include -#include typedef u_int64_t pd_entry_t; typedef u_int64_t pt_entry_t; ==== //depot/projects/netperf_socket/sys/geom/geom_dev.c#4 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/geom_dev.c,v 1.76 2004/06/17 21:24:12 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/geom_dev.c,v 1.77 2004/06/19 09:00:53 phk Exp $"); #include #include @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -160,6 +161,7 @@ g_trace(G_T_ACCESS, "g_dev_open(%s, %d, %d, %p)", gp->name, flags, fmt, td); + r = flags & FREAD ? 1 : 0; w = flags & FWRITE ? 1 : 0; #ifdef notyet @@ -167,6 +169,15 @@ #else e = 0; #endif + if (w) { + /* + * When running in very secure mode, do not allow + * opens for writing of any disks. + */ + error = securelevel_ge(td->td_ucred, 2); + if (error) + return (error); + } g_topology_lock(); if (dev->si_devsw == NULL) error = ENXIO; /* We were orphaned */ ==== //depot/projects/netperf_socket/sys/i386/i386/machdep.c#7 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.591 2004/06/16 09:47:07 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.592 2004/06/19 12:28:48 bde Exp $"); #include "opt_apic.h" #include "opt_atalk.h" @@ -1143,27 +1143,8 @@ td->td_pcb->pcb_flags &= ~FP_SOFTFP; /* - * Arrange to trap the next npx or `fwait' instruction (see npx.c - * for why fwait must be trapped at least if there is an npx or an - * emulator). This is mainly to handle the case where npx0 is not - * configured, since the npx routines normally set up the trap - * otherwise. It should be done only at boot time, but doing it - * here allows modifying `npx_exists' for testing the emulator on - * systems with an npx. - */ - load_cr0(rcr0() | CR0_MP | CR0_TS); - - /* Initialize the npx (if any) for the current process. */ - /* - * XXX the above load_cr0() also initializes it and is a layering - * violation if NPX is configured. It drops the npx partially - * and this would be fatal if we were interrupted now, and decided - * to force the state to the pcb, and checked the invariant - * (CR0_TS clear) if and only if PCPU_GET(fpcurthread) != NULL). - * ALL of this can happen except the check. The check used to - * happen and be fatal later when we didn't complete the drop - * before returning to user mode. This should be fixed properly - * soon. + * Drop the FP state if we hold it, so that the process gets a + * clean FP state if it uses the FPU again. */ fpstate_drop(td); @@ -1181,10 +1162,11 @@ unsigned int cr0; cr0 = rcr0(); -#ifdef SMP - cr0 |= CR0_NE; /* Done by npxinit() */ -#endif - cr0 |= CR0_MP | CR0_TS; /* Done at every execve() too. */ + /* + * CR0_MP, CR0_NE and CR0_TS are also set by npx_probe() for the + * BSP. See the comments there about why we set them. + */ + cr0 |= CR0_MP | CR0_NE | CR0_TS; #ifndef I386_CPU cr0 |= CR0_WP | CR0_AM; #endif ==== //depot/projects/netperf_socket/sys/kern/kern_descrip.c#10 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.234 2004/06/16 09:47:12 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.235 2004/06/19 11:40:08 phk Exp $"); #include "opt_compat.h" @@ -1326,6 +1326,8 @@ fp->f_count++; fp->f_cred = crhold(td->td_ucred); fp->f_ops = &badfileops; + fp->f_data = NULL; + fp->f_vnode = NULL; FILEDESC_LOCK(p->p_fd); if ((fq = p->p_fd->fd_ofiles[0])) { LIST_INSERT_AFTER(fq, fp, f_list); @@ -2360,6 +2362,7 @@ xf.xf_fd = n; xf.xf_file = fp; xf.xf_data = fp->f_data; + xf.xf_vnode = fp->f_vnode; xf.xf_type = fp->f_type; xf.xf_count = fp->f_count; xf.xf_msgcount = fp->f_msgcount; ==== //depot/projects/netperf_socket/sys/kern/kern_proc.c#9 (text+ko) ==== @@ -27,11 +27,11 @@ * SUCH DAMAGE. * * @(#)kern_proc.c 8.7 (Berkeley) 2/14/95 - * $FreeBSD: src/sys/kern/kern_proc.c,v 1.207 2004/06/17 17:16:48 phk Exp $ + * $FreeBSD: src/sys/kern/kern_proc.c,v 1.209 2004/06/19 14:09:40 gad Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.207 2004/06/17 17:16:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.209 2004/06/19 14:09:40 gad Exp $"); #include "opt_ktrace.h" #include "opt_kstack_pages.h" @@ -694,10 +694,11 @@ kp->ki_start = p->p_stats->p_start; timevaladd(&kp->ki_start, &boottime); kp->ki_rusage = p->p_stats->p_ru; - kp->ki_childtime.tv_sec = p->p_stats->p_cru.ru_utime.tv_sec + - p->p_stats->p_cru.ru_stime.tv_sec; - kp->ki_childtime.tv_usec = p->p_stats->p_cru.ru_utime.tv_usec + - p->p_stats->p_cru.ru_stime.tv_usec; + kp->ki_childstime = p->p_stats->p_cru.ru_stime; + kp->ki_childutime = p->p_stats->p_cru.ru_utime; + /* Some callers want child-times in a single value */ + kp->ki_childtime = kp->ki_childstime; + timevaladd(&kp->ki_childtime, &kp->ki_childutime); } if (p->p_state != PRS_ZOMBIE) { #if 0 @@ -805,6 +806,9 @@ strlcpy(kp->ki_comm, p->p_comm, sizeof(kp->ki_comm)); strlcpy(kp->ki_ocomm, p->p_comm, sizeof(kp->ki_ocomm)); } + if (p->p_sysent && p->p_sysent->sv_name != NULL && + p->p_sysent->sv_name[0] != '\0') + strlcpy(kp->ki_emul, p->p_sysent->sv_name, sizeof(kp->ki_emul)); kp->ki_siglist = p->p_siglist; SIGSETOR(kp->ki_siglist, td->td_siglist); kp->ki_sigmask = td->td_sigmask; @@ -978,6 +982,14 @@ */ switch (oid_number) { + case KERN_PROC_GID: + if (p->p_ucred == NULL || + p->p_ucred->cr_gid != (gid_t)name[0]) { + PROC_UNLOCK(p); + continue; + } + break; + case KERN_PROC_PGRP: /* could do this by traversing pgrp */ if (p->p_pgrp == NULL || @@ -1187,6 +1199,9 @@ SYSCTL_PROC(_kern_proc, KERN_PROC_ALL, all, CTLFLAG_RD|CTLTYPE_STRUCT, 0, 0, sysctl_kern_proc, "S,proc", "Return entire process table"); +SYSCTL_NODE(_kern_proc, KERN_PROC_GID, gid, CTLFLAG_RD, + sysctl_kern_proc, "Process table"); + SYSCTL_NODE(_kern_proc, KERN_PROC_PGRP, pgrp, CTLFLAG_RD, sysctl_kern_proc, "Process table"); @@ -1217,6 +1232,9 @@ SYSCTL_NODE(_kern_proc, KERN_PROC_SV_NAME, sv_name, CTLFLAG_RD, sysctl_kern_proc_sv_name, "Process syscall vector name (ABI type)"); +SYSCTL_NODE(_kern_proc, (KERN_PROC_GID | KERN_PROC_INC_THREAD), gid_td, + CTLFLAG_RD, sysctl_kern_proc, "Process table"); + SYSCTL_NODE(_kern_proc, (KERN_PROC_PGRP | KERN_PROC_INC_THREAD), pgrp_td, CTLFLAG_RD, sysctl_kern_proc, "Process table"); ==== //depot/projects/netperf_socket/sys/kern/sysv_shm.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sysv_shm.c,v 1.91 2004/05/30 20:34:58 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sysv_shm.c,v 1.92 2004/06/19 14:46:13 tjr Exp $"); #include "opt_compat.h" #include "opt_sysvipc.h" @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -370,8 +371,10 @@ * This is just a hint to vm_map_find() about where to * put it. */ - attach_va = round_page((vm_offset_t)p->p_vmspace->vm_taddr - + maxtsiz + maxdsiz); + PROC_LOCK(p); + attach_va = round_page((vm_offset_t)p->p_vmspace->vm_daddr + + lim_max(p, RLIMIT_DATA)); + PROC_UNLOCK(p); } shm_handle = shmseg->shm_internal; ==== //depot/projects/netperf_socket/sys/kern/vfs_syscalls.c#10 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.349 2004/06/11 11:16:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.350 2004/06/19 11:41:45 phk Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -1033,9 +1033,11 @@ return (0); } fp->f_vnode = vp; - fp->f_data = vp; + if (fp->f_data == NULL) + fp->f_data = vp; fp->f_flag = flags & FMASK; - fp->f_ops = &vnops; + if (fp->f_ops == &badfileops) + fp->f_ops = &vnops; fp->f_seqcount = 1; fp->f_type = (vp->v_type == VFIFO ? DTYPE_FIFO : DTYPE_VNODE); FILEDESC_UNLOCK(fdp); ==== //depot/projects/netperf_socket/sys/net/pfil.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/net/pfil.h,v 1.10 2003/09/23 17:54:03 sam Exp $ */ +/* $FreeBSD: src/sys/net/pfil.h,v 1.11 2004/06/19 14:58:34 bde Exp $ */ /* $NetBSD: pfil.h,v 1.22 2003/06/23 12:57:08 martin Exp $ */ /* @@ -33,10 +33,10 @@ #define _NET_PFIL_H_ #include +#include #include #include #include /* XXX */ -#include struct mbuf; struct ifnet; ==== //depot/projects/netperf_socket/sys/sys/_lock.h#3 (text+ko) ==== @@ -25,14 +25,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/_lock.h,v 1.9 2004/06/16 12:22:59 phk Exp $ + * $FreeBSD: src/sys/sys/_lock.h,v 1.10 2004/06/19 14:58:35 bde Exp $ */ #ifndef _SYS__LOCK_H_ #define _SYS__LOCK_H_ -#include - struct lock_object { struct lock_class *lo_class; const char *lo_name; /* Individual lock name. */ ==== //depot/projects/netperf_socket/sys/sys/file.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)file.h 8.3 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/sys/file.h,v 1.64 2004/04/07 04:19:49 imp Exp $ + * $FreeBSD: src/sys/sys/file.h,v 1.65 2004/06/19 11:38:00 phk Exp $ */ #ifndef _SYS_FILE_H_ @@ -149,6 +149,7 @@ int xf_msgcount; /* references from message queue */ off_t xf_offset; /* file offset */ void *xf_data; /* file descriptor specific data */ + void *xf_vnode; /* vnode pointer */ u_int xf_flag; /* flags (see fcntl.h) */ }; ==== //depot/projects/netperf_socket/sys/sys/proc.h#12 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * @(#)proc.h 8.15 (Berkeley) 5/19/95 - * $FreeBSD: src/sys/sys/proc.h,v 1.379 2004/06/16 00:26:30 julian Exp $ + * $FreeBSD: src/sys/sys/proc.h,v 1.380 2004/06/19 14:58:34 bde Exp $ */ #ifndef _SYS_PROC_H_ @@ -43,9 +43,9 @@ #ifndef _KERNEL #include #endif +#include #include #include -#include #include #include /* XXX. */ #include ==== //depot/projects/netperf_socket/sys/sys/sysctl.h#7 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * @(#)sysctl.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/sysctl.h,v 1.130 2004/06/16 09:47:24 phk Exp $ + * $FreeBSD: src/sys/sys/sysctl.h,v 1.131 2004/06/19 13:42:05 gad Exp $ */ #ifndef _SYS_SYSCTL_H_ @@ -419,9 +419,10 @@ #define KERN_PROC_PROC 8 /* only return procs */ #define KERN_PROC_SV_NAME 9 /* get syscall vector name */ #define KERN_PROC_RGID 10 /* by real group id */ +#define KERN_PROC_GID 11 /* by effective group id */ #define KERN_PROC_INC_THREAD 0x10 /* * modifier for pid, pgrp, tty, - * uid, ruid, and proc + * uid, ruid, gid, rgid and proc */ /* ==== //depot/projects/netperf_socket/sys/sys/user.h#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)user.h 8.2 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/sys/user.h,v 1.57 2004/06/17 17:16:53 phk Exp $ + * $FreeBSD: src/sys/sys/user.h,v 1.58 2004/06/19 13:49:25 gad Exp $ */ #ifndef _SYS_USER_H_ @@ -73,12 +73,15 @@ #if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__) || \ defined(__amd64__) #define KINFO_PROC_SIZE 912 /* the correct size for kinfo_proc */ +#define KI_NSPARE 16 /* number of spare longs to define */ #endif -#if __i386__ || defined __arm__ +#if defined(__i386__) || defined(__arm__) #define KINFO_PROC_SIZE 648 /* the correct size for kinfo_proc */ +#define KI_NSPARE 15 #endif #ifdef __powerpc__ #define KINFO_PROC_SIZE 656 +#define KI_NSPARE 16 #endif #ifndef KINFO_PROC_SIZE #error "Unknown architecture" @@ -87,6 +90,7 @@ #define LOCKNAMELEN 8 /* size of returned lock name */ #define OCOMMLEN 16 /* size of returned ki_ocomm name */ #define COMMLEN 19 /* size of returned ki_comm name */ +#define KI_EMULNAMELEN 16 /* size of returned ki_emul */ #define KI_NGROUPS 16 /* number of groups in ki_groups */ #define LOGNAMELEN 17 /* size of returned ki_login */ @@ -108,6 +112,7 @@ pid_t ki_sid; /* Process session ID */ pid_t ki_tsid; /* Terminal session ID */ short ki_jobc; /* job control counter */ + short ki_spare_short1; /* unused (just here for alignment) */ dev_t ki_tdev; /* controlling tty dev */ sigset_t ki_siglist; /* Signals arrived but not delivered */ sigset_t ki_sigmask; /* Current signal mask */ @@ -119,6 +124,7 @@ gid_t ki_rgid; /* Real group id */ gid_t ki_svgid; /* Saved effective group id */ short ki_ngroups; /* number of groups */ + short ki_spare_short2; /* unused (just here for alignment) */ gid_t ki_groups[KI_NGROUPS]; /* groups */ vm_size_t ki_size; /* virtual size */ segsz_t ki_rssize; /* current resident set size in pages */ @@ -149,14 +155,20 @@ char ki_login[LOGNAMELEN+1]; /* setlogin name */ char ki_lockname[LOCKNAMELEN+1]; /* lock name */ char ki_comm[COMMLEN+1]; /* command name */ - char ki_sparestrings[85]; /* spare string space */ + char ki_emul[KI_EMULNAMELEN+1]; /* emulation name */ + char ki_sparestrings[68]; /* spare string space */ struct rusage ki_rusage; /* process rusage statistics */ long ki_sflag; /* PS_* flags */ struct priority ki_pri; /* process priority */ long ki_tdflags; /* XXXKSE kthread flag */ struct pcb *ki_pcb; /* kernel virtual addr of pcb */ void *ki_kstack; /* kernel virtual addr of stack */ - long ki_spare[22]; /* spare constants */ + struct timeval ki_childstime; /* system time used by children */ + struct timeval ki_childutime; /* user time used by children */ + segsz_t ki_ps_segsz1; /* used by `ps', for its processing */ + float ki_ps_float1; /* used by `ps', for its processing */ + int ki_spare_int1; /* unused (just here for alignment) */ + long ki_spare[KI_NSPARE]; /* spare room for later growth */ }; void fill_kinfo_proc(struct proc *, struct kinfo_proc *); ==== //depot/projects/netperf_socket/sys/vm/vm_page.c#9 (text+ko) ==== @@ -97,7 +97,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_page.c,v 1.285 2004/06/17 06:16:58 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_page.c,v 1.286 2004/06/19 04:19:47 alc Exp $"); #include #include @@ -515,7 +515,7 @@ * enter the page into the kernel's pmap. We are not allowed to block * here so we *can't* do this anyway. * - * The object and page must be locked, and must be splhigh. + * The object and page must be locked. * This routine may not block. */ void @@ -581,7 +581,7 @@ * table and the object page list, but do not invalidate/terminate * the backing store. * - * The object and page must be locked, and at splhigh. + * The object and page must be locked. * The underlying pmap entry (if any) is NOT removed here. * This routine may not block. */ @@ -664,8 +664,6 @@ * The object must be locked. * This routine may not block. * - * Note: this routine will raise itself to splvm(), the caller need not. - * * Note: swap associated with the page must be invalidated by the move. We * have to do this for several reasons: (1) we aren't freeing the * page, (2) we are dirtying the page, (3) the VM system is probably @@ -681,15 +679,12 @@ void vm_page_rename(vm_page_t m, vm_object_t new_object, vm_pindex_t new_pindex) { - int s; - s = splvm(); vm_page_remove(m); vm_page_insert(m, new_object, new_pindex); if (m->queue - m->pc == PQ_CACHE) vm_page_deactivate(m); vm_page_dirty(m); - splx(s); } /* @@ -699,7 +694,6 @@ * might be found, but not applicable, they are deactivated. This * keeps us from using potentially busy cached pages. * - * This routine must be called at splvm(). * This routine may not block. */ vm_page_t @@ -750,7 +744,7 @@ { vm_object_t m_object; vm_page_t m = NULL; - int color, flags, page_req, s; + int color, flags, page_req; page_req = req & VM_ALLOC_CLASS_MASK; @@ -769,7 +763,6 @@ page_req = VM_ALLOC_SYSTEM; }; - s = splvm(); loop: mtx_lock_spin(&vm_page_queue_free_mtx); if (cnt.v_free_count > cnt.v_free_reserved || @@ -792,7 +785,6 @@ vm_page_lock_queues(); if ((m = vm_page_select_cache(color)) == NULL) { vm_page_unlock_queues(); - splx(s); #if defined(DIAGNOSTIC) if (cnt.v_cache_count > 0) printf("vm_page_alloc(NORMAL): missing pages on cache queue: %d\n", cnt.v_cache_count); @@ -814,7 +806,6 @@ * Not allocatable from cache from interrupt, give up. */ mtx_unlock_spin(&vm_page_queue_free_mtx); - splx(s); atomic_add_int(&vm_pageout_deficit, 1); pagedaemon_wakeup(); return (NULL); @@ -826,13 +817,12 @@ KASSERT( m != NULL, - ("vm_page_alloc(): missing page on free queue\n") + ("vm_page_alloc(): missing page on free queue") ); /* * Remove from free queue */ - vm_pageq_remove_nowakeup(m); /* @@ -859,12 +849,6 @@ KASSERT(m->dirty == 0, ("vm_page_alloc: free/cache page %p was dirty", m)); mtx_unlock_spin(&vm_page_queue_free_mtx); - /* - * vm_page_insert() is safe prior to the splx(). Note also that - * inserting a page here does not insert it into the pmap (which - * could cause us to block allocating memory). We cannot block - * anywhere. - */ if ((req & VM_ALLOC_NOOBJ) == 0) vm_page_insert(m, object, pindex); else @@ -877,7 +861,6 @@ if (vm_paging_needed()) pagedaemon_wakeup(); - splx(s); return (m); } @@ -890,9 +873,7 @@ void vm_wait(void) { - int s; - s = splvm(); vm_page_lock_queues(); if (curproc == pageproc) { vm_pageout_pages_needed = 1; @@ -906,7 +887,6 @@ msleep(&cnt.v_free_count, &vm_page_queue_mtx, PDROP | PVM, "vmwait", 0); } - splx(s); } /* @@ -922,9 +902,7 @@ void vm_waitpfault(void) { - int s; - s = splvm(); vm_page_lock_queues(); if (!vm_pages_needed) { vm_pages_needed = 1; @@ -932,7 +910,6 @@ } msleep(&cnt.v_free_count, &vm_page_queue_mtx, PDROP | PUSER, "pfault", 0); - splx(s); } /* @@ -948,10 +925,8 @@ void vm_page_activate(vm_page_t m) { - int s; mtx_assert(&vm_page_queue_mtx, MA_OWNED); - s = splvm(); if (m->queue != PQ_ACTIVE) { if ((m->queue - m->pc) == PQ_CACHE) cnt.v_reactivated++; @@ -965,7 +940,6 @@ if (m->act_count < ACT_INIT) m->act_count = ACT_INIT; } - splx(s); } /* @@ -975,8 +949,8 @@ * routine is called when a page has been added to the cache or free * queues. * + * The page queues must be locked. * This routine may not block. - * This routine must be called at splvm() */ static __inline void vm_page_free_wakeup(void) @@ -1016,12 +990,10 @@ void vm_page_free_toq(vm_page_t m) { - int s; struct vpgqueues *pq; vm_object_t object = m->object; mtx_assert(&vm_page_queue_mtx, MA_OWNED); - s = splvm(); cnt.v_tfree++; if (m->busy || ((m->queue - m->pc) == PQ_FREE)) { @@ -1049,7 +1021,6 @@ * return, otherwise delay object association removal. */ if ((m->flags & PG_FICTITIOUS) != 0) { - splx(s); return; } @@ -1061,7 +1032,7 @@ panic("vm_page_free: invalid wire count (%d), pindex: 0x%lx", m->wire_count, (long)m->pindex); } - panic("vm_page_free: freeing wired page\n"); + panic("vm_page_free: freeing wired page"); } /* @@ -1111,7 +1082,6 @@ } mtx_unlock_spin(&vm_page_queue_free_mtx); vm_page_free_wakeup(); - splx(s); } /* @@ -1135,16 +1105,13 @@ void vm_page_unmanage(vm_page_t m) { - int s; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if ((m->flags & PG_UNMANAGED) == 0) { if (m->wire_count == 0) vm_pageq_remove(m); } vm_page_flag_set(m, PG_UNMANAGED); - splx(s); } /* @@ -1160,14 +1127,12 @@ void vm_page_wire(vm_page_t m) { - int s; /* * Only bump the wire statistics if the page is not already wired, * and only unqueue the page if it is on some queue (if it is unmanaged * it is already off the queues). */ - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->flags & PG_FICTITIOUS) return; @@ -1178,7 +1143,6 @@ } m->wire_count++; KASSERT(m->wire_count != 0, ("vm_page_wire: wire_count overflow m=%p", m)); - splx(s); } /* @@ -1212,9 +1176,7 @@ void vm_page_unwire(vm_page_t m, int activate) { - int s; - s = splvm(); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->flags & PG_FICTITIOUS) return; @@ -1232,9 +1194,8 @@ } } } else { - panic("vm_page_unwire: invalid wire count: %d\n", m->wire_count); + panic("vm_page_unwire: invalid wire count: %d", m->wire_count); } - splx(s); } @@ -1251,16 +1212,14 @@ static __inline void _vm_page_deactivate(vm_page_t m, int athead) { - int s; mtx_assert(&vm_page_queue_mtx, MA_OWNED); + /* * Ignore if already inactive. */ if (m->queue == PQ_INACTIVE) return; - - s = splvm(); if (m->wire_count == 0 && (m->flags & PG_UNMANAGED) == 0) { if ((m->queue - m->pc) == PQ_CACHE) cnt.v_reactivated++; @@ -1274,7 +1233,6 @@ vm_page_queues[PQ_INACTIVE].lcnt++; cnt.v_inactive_count++; } - splx(s); } void @@ -1339,7 +1297,6 @@ void vm_page_cache(vm_page_t m) { - int s; mtx_assert(&vm_page_queue_mtx, MA_OWNED); if ((m->flags & (PG_BUSY|PG_UNMANAGED)) || m->busy || @@ -1359,11 +1316,9 @@ panic("vm_page_cache: caching a dirty page, pindex: %ld", (long)m->pindex); } - s = splvm(); vm_pageq_remove_nowakeup(m); vm_pageq_enqueue(PQ_CACHE + m->pc, m); vm_page_free_wakeup(); - splx(s); } /* From owner-p4-projects@FreeBSD.ORG Sat Jun 19 18:05:40 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0FFF716A4D0; Sat, 19 Jun 2004 18:05:40 +0000 (GMT) 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 DD5E516A4CE for ; Sat, 19 Jun 2004 18:05:39 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D469343D49 for ; Sat, 19 Jun 2004 18:05:39 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5JI5ddX063403 for ; Sat, 19 Jun 2004 18:05:39 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5JI5ce0063400 for perforce@freebsd.org; Sat, 19 Jun 2004 18:05:38 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 18:05:38 GMT Message-Id: <200406191805.i5JI5ce0063400@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 55324 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 18:05:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=55324 Change 55324 by marcel@marcel_nfs on 2004/06/19 18:04:51 IFC @55323 Affected files ... .. //depot/projects/gdb/contrib/gcc/config/i386/i386.c#2 integrate .. //depot/projects/gdb/contrib/smbfs/lib/smb/rap.c#2 integrate .. //depot/projects/gdb/lib/libarchive/archive_entry.c#15 integrate .. //depot/projects/gdb/lib/libkvm/kvm_proc.c#6 integrate .. //depot/projects/gdb/lib/msun/i387/s_ilogb.S#2 integrate .. //depot/projects/gdb/lib/msun/man/ieee.3#3 integrate .. //depot/projects/gdb/lib/msun/man/math.3#2 integrate .. //depot/projects/gdb/lib/msun/src/math.h#6 integrate .. //depot/projects/gdb/share/man/man5/rc.conf.5#13 integrate .. //depot/projects/gdb/sys/amd64/include/pmap.h#9 integrate .. //depot/projects/gdb/sys/arm/arm/pmap.c#2 integrate .. //depot/projects/gdb/sys/arm/sa11x0/sa11x0.c#2 integrate .. //depot/projects/gdb/sys/arm/sa11x0/sa11x0_ost.c#2 integrate .. //depot/projects/gdb/sys/dev/acpica/acpi_cpu.c#10 integrate .. //depot/projects/gdb/sys/geom/geom_dev.c#6 integrate .. //depot/projects/gdb/sys/i386/i386/machdep.c#11 integrate .. //depot/projects/gdb/sys/kern/kern_descrip.c#10 integrate .. //depot/projects/gdb/sys/kern/kern_proc.c#10 integrate .. //depot/projects/gdb/sys/kern/kern_thread.c#16 integrate .. //depot/projects/gdb/sys/kern/sysv_shm.c#4 integrate .. //depot/projects/gdb/sys/kern/uipc_socket.c#12 integrate .. //depot/projects/gdb/sys/kern/uipc_socket2.c#11 integrate .. //depot/projects/gdb/sys/kern/uipc_syscalls.c#15 integrate .. //depot/projects/gdb/sys/kern/vfs_syscalls.c#13 integrate .. //depot/projects/gdb/sys/net/pfil.h#2 integrate .. //depot/projects/gdb/sys/sys/_lock.h#3 integrate .. //depot/projects/gdb/sys/sys/_types.h#6 integrate .. //depot/projects/gdb/sys/sys/file.h#3 integrate .. //depot/projects/gdb/sys/sys/proc.h#18 integrate .. //depot/projects/gdb/sys/sys/sysctl.h#7 integrate .. //depot/projects/gdb/sys/sys/types.h#9 integrate .. //depot/projects/gdb/sys/sys/user.h#6 integrate .. //depot/projects/gdb/sys/vm/vm_page.c#11 integrate .. //depot/projects/gdb/usr.sbin/newsyslog/newsyslog.c#7 integrate Differences ... ==== //depot/projects/gdb/contrib/gcc/config/i386/i386.c#2 (text+ko) ==== @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ -/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.18 2003/11/07 03:17:46 kan Exp $ */ +/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.19 2004/06/19 07:29:04 obrien Exp $ */ #include "config.h" @@ -14607,15 +14607,14 @@ output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops); } - xops[0] = DECL_RTL (function); + xops[0] = XEXP (DECL_RTL (function), 0); if (TARGET_64BIT) { if (!flag_pic || (*targetm.binds_local_p) (function)) output_asm_insn ("jmp\t%P0", xops); else { - tmp = XEXP (xops[0], 0); - tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL); + tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL); tmp = gen_rtx_CONST (Pmode, tmp); tmp = gen_rtx_MEM (QImode, tmp); xops[0] = tmp; ==== //depot/projects/gdb/contrib/smbfs/lib/smb/rap.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * $Id: rap.c,v 1.8 2001/02/24 15:56:05 bp Exp $ - * $FreeBSD: src/contrib/smbfs/lib/smb/rap.c,v 1.2 2003/07/26 04:02:22 peter Exp $ + * $FreeBSD: src/contrib/smbfs/lib/smb/rap.c,v 1.3 2004/06/19 10:09:44 le Exp $ * * This is very simple implementation of RAP protocol. */ @@ -199,7 +199,7 @@ rap = malloc(sizeof(*rap)); if (rap == NULL) - return NULL; + return 0; bzero(rap, sizeof(*rap)); p = rap->r_sparam = rap->r_nparam = strdup(param); rap->r_sdata = rap->r_ndata = strdup(data); ==== //depot/projects/gdb/lib/libarchive/archive_entry.c#15 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry.c,v 1.14 2004/05/27 04:01:58 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry.c,v 1.15 2004/06/19 04:19:27 kientzle Exp $"); #include #include @@ -1366,6 +1366,8 @@ bits &= ~(flag->set | flag->clear); } + if (length == 0) + return (NULL); string = malloc(length); if (string == NULL) return (NULL); ==== //depot/projects/gdb/lib/libkvm/kvm_proc.c#6 (text+ko) ==== @@ -42,7 +42,7 @@ #endif #include -__FBSDID("$FreeBSD: src/lib/libkvm/kvm_proc.c,v 1.75 2004/06/17 17:16:39 phk Exp $"); +__FBSDID("$FreeBSD: src/lib/libkvm/kvm_proc.c,v 1.76 2004/06/19 14:08:10 gad Exp $"); /* * Proc traversal interface for kvm. ps and w are (probably) the exclusive @@ -58,6 +58,7 @@ #include #include #include +#include #include #include #include @@ -108,6 +109,8 @@ struct proc proc; struct proc pproc; struct timeval tv; + struct sysentvec sysent; + char svname[KI_EMULNAMELEN]; kp = &kinfo_proc; kp->ki_structsize = sizeof(kinfo_proc); @@ -156,11 +159,21 @@ switch(what & ~KERN_PROC_INC_THREAD) { + case KERN_PROC_GID: + if (kp->ki_groups[0] != (gid_t)arg) + continue; + break; + case KERN_PROC_PID: if (proc.p_pid != (pid_t)arg) continue; break; + case KERN_PROC_RGID: + if (kp->ki_rgid != (gid_t)arg) + continue; + break; + case KERN_PROC_UID: if (kp->ki_uid != (uid_t)arg) continue; @@ -208,11 +221,11 @@ } kp->ki_start = pstats.p_start; kp->ki_rusage = pstats.p_ru; - kp->ki_childtime.tv_sec = pstats.p_cru.ru_utime.tv_sec + - pstats.p_cru.ru_stime.tv_sec; - kp->ki_childtime.tv_usec = - pstats.p_cru.ru_utime.tv_usec + - pstats.p_cru.ru_stime.tv_usec; + kp->ki_childstime = pstats.p_cru.ru_stime; + kp->ki_childutime = pstats.p_cru.ru_utime; + /* Some callers want child-times in a single value */ + timeradd(&kp->ki_childstime, &kp->ki_childutime, + &kp->ki_childtime); } if (proc.p_oppid) kp->ki_ppid = proc.p_oppid; @@ -304,6 +317,11 @@ continue; break; + case KERN_PROC_SESSION: + if (kp->ki_sid != (pid_t)arg) + continue; + break; + case KERN_PROC_TTY: if ((proc.p_flag & P_CONTROLT) == 0 || kp->ki_tdev != (dev_t)arg) @@ -314,6 +332,12 @@ strncpy(kp->ki_comm, proc.p_comm, MAXCOMLEN); kp->ki_comm[MAXCOMLEN] = 0; } + (void)kvm_read(kd, (u_long)proc.p_sysent, (char *)&sysent, + sizeof(sysent)); + (void)kvm_read(kd, (u_long)sysent.sv_name, (char *)&svname, + sizeof(svname)); + if (svname[0] != 0) + strlcpy(kp->ki_emul, svname, KI_EMULNAMELEN); if ((proc.p_state != PRS_ZOMBIE) && (mtd.td_blocked != 0)) { kp->ki_kiflag |= KI_LOCKBLOCK; ==== //depot/projects/gdb/lib/msun/i387/s_ilogb.S#2 (text+ko) ==== @@ -33,9 +33,14 @@ * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc. */ +#include #include -RCSID("$FreeBSD: src/lib/msun/i387/s_ilogb.S,v 1.8 2000/06/06 12:12:36 bde Exp $") +RCSID("$FreeBSD: src/lib/msun/i387/s_ilogb.S,v 1.9 2004/06/19 09:30:00 stefanf Exp $") + +#define FP_ILOGB0 (-__INT_MAX) +#define FP_ILOGBNAN __INT_MAX +#define FP_ILOGBINF __INT_MAX ENTRY(ilogb) pushl %ebp @@ -44,10 +49,35 @@ fldl 8(%ebp) fxtract - fstp %st + fstp %st(0) fistpl -4(%ebp) movl -4(%ebp),%eax + /* fistpl yields __INT_MIN for NaN, Inf and 0. */ + cmpl $__INT_MIN,%eax + je .L2 + +.L1: leave ret + +.L2: + fldl 8(%ebp) + fldz + fucompp + fnstsw %ax + sahf + jp .L3 + jz .L4 + + movl $FP_ILOGBINF,%eax + jmp .L1 + +.L3: + movl $FP_ILOGBNAN,%eax + jmp .L1 + +.L4: + movl $FP_ILOGB0,%eax + jmp .L1 ==== //depot/projects/gdb/lib/msun/man/ieee.3#3 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" from: @(#)ieee.3 6.4 (Berkeley) 5/6/91 -.\" $FreeBSD: src/lib/msun/man/ieee.3,v 1.13 2004/05/07 18:56:31 stefanf Exp $ +.\" $FreeBSD: src/lib/msun/man/ieee.3,v 1.14 2004/06/19 09:33:29 stefanf Exp $ .\" .Dd February 25, 1994 .Dt IEEE 3 @@ -116,11 +116,14 @@ in integer format. .Fn ilogb \*(Pm\*(If returns -.Dv INT_MAX +.Dv INT_MAX , +.Fn ilogb \*(Pm\*(Na +returns +.Dv FP_ILOGBNAN and .Fn ilogb 0 returns -.Dv INT_MIN . +.Dv FP_ILOGB0 . .Pp .Fn nextafter and ==== //depot/projects/gdb/lib/msun/man/math.3#2 (text+ko) ==== @@ -30,297 +30,141 @@ .\" SUCH DAMAGE. .\" .\" from: @(#)math.3 6.10 (Berkeley) 5/6/91 -.\" $FreeBSD: src/lib/msun/man/math.3,v 1.10 2001/07/15 07:53:37 dd Exp $ +.\" $FreeBSD: src/lib/msun/man/math.3,v 1.11 2004/06/19 03:25:28 das Exp $ .\" -.TH MATH 3M "May 6, 1991" -.UC 4 +.Dd June 11, 2004 +.Dt MATH 3 +.Os .ds up \fIulp\fR -.ds nn \fINaN\fR .de If .if n \\ \\$1Infinity\\$2 .if t \\ \\$1\\(if\\$2 .. -.SH NAME +.Sh NAME math \- introduction to mathematical library functions -.SH DESCRIPTION +.Sh DESCRIPTION These functions constitute the C math library, .I libm. The link editor searches this library under the \*(lq\-lm\*(rq option. Declarations for these functions may be obtained from the include file -.RI < math.h >. -.\" The Fortran math library is described in ``man 3f intro''. -.SH "LIST OF FUNCTIONS" -Each of the following double functions has a float counterpart with the -name ending in f, as an example the float counterpart of double acos(double -x) is float acosf(float x). +.In math.h . +.Sh "LIST OF FUNCTIONS" +Each of the following +.Vt double +functions has a +.Vt float +counterpart with an +.Ql f +appended to the name and a +.Vt long double +counterpart with an +.Ql l +appended. +As an example, the +.Vt float +and +.Vt long double +counterparts of +.Ft double +.Fn acos "double x" +are +.Ft float +.Fn acosf "float x" +and +.Ft long double +.Fn acosl "long double x" , +respectively. .sp 2 .nf -.ta \w'copysign'u+2n +\w'infnan.3m'u+10n +\w'inverse trigonometric func'u -\fIName\fP \fIAppears on Page\fP \fIDescription\fP \fIError Bound (ULPs)\fP -.ta \w'copysign'u+4n +\w'infnan.3m'u+4n +\w'inverse trigonometric function'u+6nC +.ta \w'nexttoward'u+10n +\w'remainder with partial quot'u +\fIName\fP \fIDescription\fP \fIError Bound (ULPs)\fP +.ta \w'nexttoward'u+4n +\w'remainder with partial quotient'u+6nC .sp 5p -acos sin.3m inverse trigonometric function 3 -acosh asinh.3m inverse hyperbolic function 3 -asin sin.3m inverse trigonometric function 3 -asinh asinh.3m inverse hyperbolic function 3 -atan sin.3m inverse trigonometric function 1 -atanh asinh.3m inverse hyperbolic function 3 -atan2 sin.3m inverse trigonometric function 2 -cabs hypot.3m complex absolute value 1 -cbrt sqrt.3m cube root 1 -ceil floor.3m integer no less than 0 -copysign ieee.3m copy sign bit 0 -cos sin.3m trigonometric function 1 -cosh sinh.3m hyperbolic function 3 -erf erf.3m error function ??? -erfc erf.3m complementary error function ??? -exp exp.3m exponential 1 -expm1 exp.3m exp(x)\-1 1 -fabs floor.3m absolute value 0 -floor floor.3m integer no greater than 0 -hypot hypot.3m Euclidean distance 1 -ilogb ieee.3m exponent extraction 0 -j0 j0.3m bessel function ??? -j1 j0.3m bessel function ??? -jn j0.3m bessel function ??? -lgamma lgamma.3m log gamma function; (formerly gamma.3m) -log exp.3m natural logarithm 1 -log10 exp.3m logarithm to base 10 3 -log1p exp.3m log(1+x) 1 -pow exp.3m exponential x**y 60\-500 -remainder ieee.3m remainder 0 -rint floor.3m round to nearest integer 0 -scalbn ieee.3m exponent adjustment 0 -sin sin.3m trigonometric function 1 -sinh sinh.3m hyperbolic function 3 -sqrt sqrt.3m square root 1 -tan sin.3m trigonometric function 3 -tanh sinh.3m hyperbolic function 3 -y0 j0.3m bessel function ??? -y1 j0.3m bessel function ??? -yn j0.3m bessel function ??? +.\" XXX Many of these error bounds are wrong for the current implementation! +acos inverse trigonometric function 3 +acosh inverse hyperbolic function 3 +asin inverse trigonometric function 3 +asinh inverse hyperbolic function 3 +atan inverse trigonometric function 1 +atanh inverse hyperbolic function 3 +atan2 inverse trigonometric function 2 +cbrt cube root 1 +ceil integer no less than 0 +copysign copy sign bit 0 +cos trigonometric function 1 +cosh hyperbolic function 3 +erf error function ??? +erfc complementary error function ??? +exp exponential base e 1 +.\" exp2 exponential base 2 ??? +expm1 exp(x)\-1 1 +fabs absolute value 0 +.\" fdim positive difference ??? +floor integer no greater than 0 +.\" fma multiply-add ??? +.\" fmax maximum function 0 +.\" fmin minimum function 0 +fmod remainder function ??? +frexp extract mantissa and exponent 0 +hypot Euclidean distance 1 +ilogb exponent extraction 0 +j0 bessel function ??? +j1 bessel function ??? +jn bessel function ??? +ldexp multiply by power of 2 0 +lgamma log gamma function ??? +.\" llrint round to integer 0 +.\" llround round to nearest integer 0 +log natural logarithm 1 +log10 logarithm to base 10 3 +log1p log(1+x) 1 +.\" log2 base 2 logarithm 0 +logb exponent extraction 0 +.\" lrint round to integer 0 +.\" lround round to nearest integer 0 +modf extract fractional part ??? +.\" nan return quiet \*(Na) 0 +.\" nearbyint round to integer 0 +.\" nextafter next representable value 0 +.\" nexttoward next representable value 0 +pow exponential x**y 60\-500 +remainder remainder 0 +.\" remquo remainder with partial quotient ??? +rint round to nearest integer 0 +round round to nearest integer 0 +.\" scalbln exponent adjustment 0 +scalbn exponent adjustment 0 +sin trigonometric function 1 +sinh hyperbolic function 3 +sqrt square root 1 +tan trigonometric function 3 +tanh hyperbolic function 3 +tgamma gamma function ??? +.\" trunc round towards zero 0 +y0 bessel function ??? +y1 bessel function ??? +yn bessel function ??? .ta .fi -.SH NOTES -In 4.3 BSD, distributed from the University of California -in late 1985, most of the foregoing functions come in two -versions, one for the double\-precision "D" format in the -DEC VAX\-11 family of computers, another for double\-precision -arithmetic conforming to the IEEE Standard 754 for Binary -Floating\-Point Arithmetic. The two versions behave very -similarly, as should be expected from programs more accurate -and robust than was the norm when UNIX was born. For -instance, the programs are accurate to within the numbers +.Sh NOTES +Virtually all modern floating-point units attempt to support +IEEE Standard 754 for Binary Floating-Point Arithmetic. +This standard does not cover particular routines in the math library +except for the few documented in +.Xr ieee 3 ; +it primarily defines representations of numbers and abstract +properties of arithmetic operations relating to precision, rounding, +and exceptional cases, as described below. +The programs are accurate to within the numbers of \*(ups tabulated above; an \*(up is one \fIU\fRnit in the \fIL\fRast -\fIP\fRlace. And the programs have been cured of anomalies that -afflicted the older math library \fIlibm\fR in which incidents like -the following had been reported: -.RS -sqrt(\-1.0) = 0.0 and log(\-1.0) = \-1.7e38. -.br -cos(1.0e\-11) > cos(0.0) > 1.0. -.br -pow(x,1.0) -.if n \ -!= -.if t \ -\(!= -x when x = 2.0, 3.0, 4.0, ..., 9.0. -.br -pow(\-1.0,1.0e10) trapped on Integer Overflow. -.br -sqrt(1.0e30) and sqrt(1.0e\-30) were very slow. -.RE -However the two versions do differ in ways that have to be -explained, to which end the following notes are provided. -.PP -\fBDEC VAX\-11 D_floating\-point:\fR -.PP -This is the format for which the original math library \fIlibm\fR -was developed, and to which this manual is still principally -dedicated. It is \fIthe\fR double\-precision format for the PDP\-11 -and the earlier VAX\-11 machines; VAX\-11s after 1983 were -provided with an optional "G" format closer to the IEEE -double\-precision format. The earlier DEC MicroVAXs have no -D format, only G double\-precision. -(Why? Why not?) -.PP -Properties of D_floating\-point: -.RS -Wordsize: 64 bits, 8 bytes. Radix: Binary. -.br -Precision: 56 -.if n \ -sig. -.if t \ -significant -bits, roughly like 17 -.if n \ -sig. -.if t \ -significant -decimals. -.RS -If x and x' are consecutive positive D_floating\-point -numbers (they differ by 1 \*(up), then -.br -1.3e\-17 < 0.5**56 < (x'\-x)/x \(<= 0.5**55 < 2.8e\-17. -.RE -.nf -.ta \w'Range:'u+1n +\w'Underflow threshold'u+1n +\w'= 2.0**127'u+1n -Range: Overflow threshold = 2.0**127 = 1.7e38. - Underflow threshold = 0.5**128 = 2.9e\-39. - NOTE: THIS RANGE IS COMPARATIVELY NARROW. -.ta -.fi -.RS -Overflow customarily stops computation. -.br -Underflow is customarily flushed quietly to zero. -.br -CAUTION: -.RS -It is possible to have x -.if n \ -!= -.if t \ -\(!= -y and yet -x\-y = 0 because of underflow. Similarly -x > y > 0 cannot prevent either x\(**y = 0 -or y/x = 0 from happening without warning. -.RE -.RE -Zero is represented ambiguously. -.RS -Although 2**55 different representations of zero are accepted by -the hardware, only the obvious representation is ever produced. -There is no \-0 on a VAX. -.RE -.If -is not part of the VAX architecture. -.br -Reserved operands: -.RS -of the 2**55 that the hardware -recognizes, only one of them is ever produced. -Any floating\-point operation upon a reserved -operand, even a MOVF or MOVD, customarily stops -computation, so they are not much used. -.RE -Exceptions: -.RS -Divisions by zero and operations that -overflow are invalid operations that customarily -stop computation or, in earlier machines, produce -reserved operands that will stop computation. -.RE -Rounding: -.RS -Every rational operation (+, \-, \(**, /) on a -VAX (but not necessarily on a PDP\-11), if not an -over/underflow nor division by zero, is rounded to -within half an \*(up, and when the rounding error is -exactly half an \*(up then rounding is away from 0. -.RE -.RE -.PP -Except for its narrow range, D_floating\-point is one of the -better computer arithmetics designed in the 1960's. -Its properties are reflected fairly faithfully in the elementary -functions for a VAX distributed in 4.3 BSD. -They over/underflow only if their results have to lie out of range -or very nearly so, and then they behave much as any rational -arithmetic operation that over/underflowed would behave. -Similarly, expressions like log(0) and atanh(1) behave -like 1/0; and sqrt(\-3) and acos(3) behave like 0/0; -they all produce reserved operands and/or stop computation! -The situation is described in more detail in manual pages. -.RS -.ll -0.5i -\fIThis response seems excessively punitive, so it is destined -to be replaced at some time in the foreseeable future by a -more flexible but still uniform scheme being developed to -handle all floating\-point arithmetic exceptions neatly. -.\" See infnan(3M) for the present state of affairs.\fR -.ll +0.5i -.RE -.PP -How do the functions in 4.3 BSD's new \fIlibm\fR for UNIX -compare with their counterparts in DEC's VAX/VMS library? -Some of the VMS functions are a little faster, some are -a little more accurate, some are more puritanical about -exceptions (like pow(0.0,0.0) and atan2(0.0,0.0)), -and most occupy much more memory than their counterparts in -\fIlibm\fR. -The VMS codes interpolate in large table to achieve -speed and accuracy; the \fIlibm\fR codes use tricky formulas -compact enough that all of them may some day fit into a ROM. -.PP -More important, DEC regards the VMS codes as proprietary -and guards them zealously against unauthorized use. But the -\fIlibm\fR codes in 4.3 BSD are intended for the public domain; -they may be copied freely provided their provenance is always -acknowledged, and provided users assist the authors in their -researches by reporting experience with the codes. -Therefore no user of UNIX on a machine whose arithmetic resembles -VAX D_floating\-point need use anything worse than the new \fIlibm\fR. -.PP +\fIP\fRlace. +.Pp \fBIEEE STANDARD 754 Floating\-Point Arithmetic:\fR -.PP -This standard is on its way to becoming more widely adopted -than any other design for computer arithmetic. -VLSI chips that conform to some version of that standard have been -produced by a host of manufacturers, among them ... -.nf -.ta 0.5i +\w'Intel i8070, i80287'u+6n - Intel i8087, i80287 National Semiconductor 32081 - Motorola 68881 Weitek WTL-1032, ... , -1165 - Zilog Z8070 Western Electric (AT&T) WE32106. -.ta -.fi -Other implementations range from software, done thoroughly -in the Apple Macintosh, through VLSI in the Hewlett\-Packard -9000 series, to the ELXSI 6400 running ECL at 3 Megaflops. -Several other companies have adopted the formats -of IEEE 754 without, alas, adhering to the standard's way -of handling rounding and exceptions like over/underflow. -The DEC VAX G_floating\-point format is very similar to the IEEE -754 Double format, so similar that the C programs for the -IEEE versions of most of the elementary functions listed -above could easily be converted to run on a MicroVAX, though -nobody has volunteered to do that yet. -.PP -The codes in 4.3 BSD's \fIlibm\fR for machines that conform to -IEEE 754 are intended primarily for the National Semi. 32081 -and WTL 1164/65. To use these codes with the Intel or Zilog -chips, or with the Apple Macintosh or ELXSI 6400, is to -forego the use of better codes provided (perhaps freely) by -those companies and designed by some of the authors of the -codes above. -Except for \fIatan\fR, \fIcabs\fR, \fIcbrt\fR, \fIerf\fR, -\fIerfc\fR, \fIhypot\fR, \fIj0\-jn\fR, \fIlgamma\fR, \fIpow\fR -and \fIy0\-yn\fR, -the Motorola 68881 has all the functions in \fIlibm\fR on chip, -and faster and more accurate; -it, Apple, the i8087, Z8070 and WE32106 all use 64 -.if n \ -sig. -.if t \ -significant -bits. -The main virtue of 4.3 BSD's -\fIlibm\fR codes is that they are intended for the public domain; -they may be copied freely provided their provenance is always -acknowledged, and provided users assist the authors in their -researches by reporting experience with the codes. -Therefore no user of UNIX on a machine that conforms to -IEEE 754 need use anything worse than the new \fIlibm\fR. -.PP +.Pp Properties of IEEE 754 Double\-Precision: -.RS +.Bd -filled -offset indent Wordsize: 64 bits, 8 bytes. Radix: Binary. .br Precision: 53 @@ -334,27 +178,27 @@ .if t \ significant decimals. -.RS +.Bd -filled -offset indent -compact If x and x' are consecutive positive Double\-Precision numbers (they differ by 1 \*(up), then .br 1.1e\-16 < 0.5**53 < (x'\-x)/x \(<= 0.5**52 < 2.3e\-16. -.RE +.Ed .nf .ta \w'Range:'u+1n +\w'Underflow threshold'u+1n +\w'= 2.0**1024'u+1n Range: Overflow threshold = 2.0**1024 = 1.8e308 Underflow threshold = 0.5**1022 = 2.2e\-308 .ta .fi -.RS +.Bd -filled -offset indent -compact Overflow goes by default to a signed .If "" . .br Underflow is \fIGradual,\fR rounding to the nearest integer multiple of 0.5**1074 = 4.9e\-324. -.RE +.Ed Zero is represented ambiguously as +0 or \-0. -.RS +.Bd -filled -offset indent -compact Its sign transforms correctly through multiplication or division, and is preserved by addition of zeros with like signs; but x\-x yields +0 for every @@ -371,10 +215,10 @@ \(!= \-1/(y\-x) = .If \- . -.RE +.Ed .If is signed. -.RS +.Bd -filled -offset indent -compact it persists when added to itself or to any finite number. Its sign transforms correctly through multiplication and division, and @@ -387,16 +231,16 @@ .if t \ \(if\-\(if, \(if\(**0 and \(if/\(if are, like 0/0 and sqrt(\-3), -invalid operations that produce \*(nn. ... -.RE +invalid operations that produce \*(Na. ... +.Ed Reserved operands: -.RS +.Bd -filled -offset indent -compact there are 2**53\-2 of them, all -called \*(nn (\fIN\fRot \fIa N\fRumber). -Some, called Signaling \*(nns, trap any floating\-point operation +called \*(Na (\fIN\fRot \fIa N\fRumber). +Some, called Signaling \*(Nas, trap any floating\-point operation performed upon them; they are used to mark missing or uninitialized values, or nonexistent elements -of arrays. The rest are Quiet \*(nns; they are +of arrays. The rest are Quiet \*(Nas; they are the default results of Invalid Operations, and propagate through subsequent arithmetic operations. If x @@ -404,18 +248,18 @@ != .if t \ \(!= -x then x is \*(nn; every other predicate -(x > y, x = y, x < y, ...) is FALSE if \*(nn is involved. +x then x is \*(Na; every other predicate +(x > y, x = y, x < y, ...) is FALSE if \*(Na is involved. .br -NOTE: Trichotomy is violated by \*(nn. -.RS +NOTE: Trichotomy is violated by \*(Na. +.Bd -filled -offset indent -compact Besides being FALSE, predicates that entail ordered comparison, rather than mere (in)equality, -signal Invalid Operation when \*(nn is involved. -.RE -.RE +signal Invalid Operation when \*(Na is involved. +.Ed +.Ed Rounding: -.RS +.Bd -filled -offset indent -compact Every algebraic operation (+, \-, \(**, /, .if n \ sqrt) @@ -440,19 +284,19 @@ same kinds of rounding are specified for Binary\-Decimal Conversions, at least for magnitudes between roughly 1.0e\-10 and 1.0e37. -.RE +.Ed Exceptions: -.RS +.Bd -filled -offset indent -compact IEEE 754 recognizes five kinds of floating\-point exceptions, listed below in declining order of probable importance. -.RS +.Bd -filled -offset indent -compact .nf .ta \w'Invalid Operation'u+6n +\w'Gradual Underflow'u+2n Exception Default Result .tc \(ru .tc -Invalid Operation \*(nn, or FALSE +Invalid Operation \*(Na, or FALSE .if n \{\ Overflow \(+-Infinity Divide by Zero \(+-Infinity \} @@ -463,7 +307,7 @@ Inexact Rounded value .ta .fi -.RE +.Ed NOTE: An Exception is not an Error unless handled badly. What makes a class of exceptions exceptional is that no single default response can be satisfactory @@ -471,8 +315,8 @@ response will serve most instances satisfactorily, the unsatisfactory instances cannot justify aborting computation every time the exception occurs. -.RE -.PP +.Ed +.Pp For each kind of floating\-point exception, IEEE 754 provides a Flag that is raised each time its exception is signaled, and stays raised until the program resets @@ -480,13 +324,14 @@ Thus, IEEE 754 provides three ways by which programs may cope with exceptions for which the default result might be unsatisfactory: -.IP 1) \w'\0\0\0\0'u +.Bl -enum +.It Test for a condition that might cause an exception later, and branch to avoid the exception. -.IP 2) \w'\0\0\0\0'u +.It Test a flag to see whether an exception has occurred since the program last reset its flag. -.IP 3) \w'\0\0\0\0'u +.It Test a result to see whether it is a value that only an exception could have produced. .RS @@ -513,30 +358,34 @@ because they would have been rounded off anyway. So gradual underflows are usually \fIprovably\fR ignorable. The same cannot be said of underflows flushed to 0. -.RE -.PP +.RE +.El +.Pp At the option of an implementor conforming to IEEE 754, other ways to cope with exceptions may be provided: -.IP 4) \w'\0\0\0\0'u +.Bl -hang -width 3n +.It 4. ABORT. This mechanism classifies an exception in advance as an incident to be handled by means traditionally associated with error\-handling statements like "ON ERROR GO TO ...". Different languages offer different forms of this statement, but most share the following characteristics: -.IP \(em \w'\0\0\0\0'u +.Bl -dash +.It No means is provided to substitute a value for the offending operation's result and resume computation from what may be the middle of an expression. An exceptional result is abandoned. -.IP \(em \w'\0\0\0\0'u +.It In a subprogram that lacks an error\-handling statement, an exception causes the subprogram to abort within whatever program called it, and so on back up the chain of calling subprograms until an error\-handling statement is encountered or the whole task is aborted and memory is dumped. -.IP 5) \w'\0\0\0\0'u +.El +.It 5. STOP. This mechanism, requiring an interactive debugging environment, is more for the programmer than the program. It classifies an exception in @@ -548,98 +397,91 @@ unexceptionable, so the programmer ought ideally to be able to resume execution after each one as if execution had not been stopped. -.IP 6) \w'\0\0\0\0'u +.It 6. \&... Other ways lie beyond the scope of this document. -.RE -.PP -The crucial problem for exception handling is the problem of -Scope, and the problem's solution is understood, but not -enough manpower was available to implement it fully in time -to be distributed in 4.3 BSD's \fIlibm\fR. Ideally, each +.El +.Ed +.Pp +Ideally, each elementary function should act as if it were indivisible, or atomic, in the sense that ... -.IP i) \w'iii)'u+2n +.Bl -tag -width "iii)" +.It i) No exception should be signaled that is not deserved by the data supplied to that function. -.IP ii) \w'iii)'u+2n +.It ii) Any exception signaled should be identified with that function rather than with one of its subroutines. -.IP iii) \w'iii)'u+2n +.It iii) The internal behavior of an atomic function should not be disrupted when a calling program changes from one to another of the five or so ways of handling exceptions listed above, although the definition of the function may be correlated intentionally with exception handling. -.PP -Ideally, every programmer should be able \fIconveniently\fR to -turn a debugged subprogram into one that appears atomic to -its users. But simulating all three characteristics of an -atomic function is still a tedious affair, entailing hosts -of tests and saves\-restores; work is under way to ameliorate -the inconvenience. -.PP -Meanwhile, the functions in \fIlibm\fR are only approximately -atomic. They signal no inappropriate exception except -possibly ... -.RS +.El +.Pp +The functions in \fIlibm\fR are only approximately atomic. +They signal no inappropriate exception except possibly ... +.Bd -filled -offset indent -compact Over/Underflow -.RS +.Bd -filled -offset indent -compact when a result, if properly computed, might have lain barely within range, and -.RE +.Ed Inexact in \fIcabs\fR, \fIcbrt\fR, \fIhypot\fR, \fIlog10\fR and \fIpow\fR -.RS +.Bd -filled -offset indent -compact when it happens to be exact, thanks to fortuitous cancellation of errors. -.RE -.RE +.Ed +.Ed Otherwise, ... -.RS +.Bd -filled -offset indent -compact Invalid Operation is signaled only when -.RS -any result but \*(nn would probably be misleading. -.RE +.Bd -filled -offset indent -compact +any result but \*(Na would probably be misleading. +.Ed Overflow is signaled only when -.RS +.Bd -filled -offset indent -compact the exact result would be finite but beyond the overflow threshold. -.RE +.Ed Divide\-by\-Zero is signaled only when -.RS +.Bd -filled -offset indent -compact a function takes exactly infinite values at finite operands. -.RE +.Ed Underflow is signaled only when -.RS +.Bd -filled -offset indent -compact the exact result would be nonzero but tinier than the underflow threshold. -.RE >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 19 21:39:24 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9426316A4D0; Sat, 19 Jun 2004 21:39:24 +0000 (GMT) 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 45C9F16A4CE for ; Sat, 19 Jun 2004 21:39:24 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3D20A43D2D for ; Sat, 19 Jun 2004 21:39:24 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5JLcxUP015881 for ; Sat, 19 Jun 2004 21:38:59 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5JLcx4C015878 for perforce@freebsd.org; Sat, 19 Jun 2004 21:38:59 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 21:38:59 GMT Message-Id: <200406192138.i5JLcx4C015878@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 55330 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 21:39:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=55330 Change 55330 by marcel@marcel_nfs on 2004/06/19 21:37:58 IFC @55329 Affected files ... .. //depot/projects/gdb/contrib/smbfs/lib/smb/rap.c#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile#6 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/config.h.fbsd#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/ia64/bfd.h#2 integrate .. //depot/projects/gdb/share/man/man4/xl.4#2 integrate .. //depot/projects/gdb/sys/amd64/amd64/pmap.c#15 integrate .. //depot/projects/gdb/sys/arm/arm/pmap.c#3 integrate .. //depot/projects/gdb/sys/i386/i386/pmap.c#10 integrate .. //depot/projects/gdb/sys/ia64/ia64/pmap.c#8 integrate Differences ... ==== //depot/projects/gdb/contrib/smbfs/lib/smb/rap.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * $Id: rap.c,v 1.8 2001/02/24 15:56:05 bp Exp $ - * $FreeBSD: src/contrib/smbfs/lib/smb/rap.c,v 1.3 2004/06/19 10:09:44 le Exp $ + * $FreeBSD: src/contrib/smbfs/lib/smb/rap.c,v 1.4 2004/06/19 19:03:01 le Exp $ * * This is very simple implementation of RAP protocol. */ @@ -199,7 +199,7 @@ rap = malloc(sizeof(*rap)); if (rap == NULL) - return 0; + return ENOMEM; bzero(rap, sizeof(*rap)); p = rap->r_sparam = rap->r_nparam = strdup(param); rap->r_sdata = rap->r_ndata = strdup(data); ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile,v 1.28 2004/06/16 07:09:38 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile,v 1.29 2004/06/19 19:44:19 marcel Exp $ .include "../Makefile.inc0" @@ -49,13 +49,13 @@ # XXX:DEO should grab BFD_VERSION_DATE from ${VERSION}... bfdver.h: Makefile - echo '#define BFD_VERSION 214920000' > ${.TARGET} - echo '#define BFD_VERSION_DATE 20040510' >> ${.TARGET} + echo '#define BFD_VERSION 215000000' > ${.TARGET} + echo '#define BFD_VERSION_DATE 20040517' >> ${.TARGET} echo '#define BFD_VERSION_STRING ${VERSION}' >> ${.TARGET} targmatch.h: targmatch.sed config.bfd sed -f ${.ALLSRC:M*.sed} ${.ALLSRC:M*.bfd} > ${.TARGET} - + config.h: config.h.fbsd .if ${TARGET_ARCH} == "i386" sed -e 's,!!TRAD_HEADER!!,"hosts/i386bsd.h",g' ${.ALLSRC} > ${.TARGET} ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/config.h.fbsd#2 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/config.h.fbsd,v 1.5 2002/12/02 09:54:40 obrien Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/config.h.fbsd,v 1.6 2004/06/19 19:25:33 marcel Exp $ */ /* config.h. Generated automatically by configure. */ -/* config.in. Generated automatically from configure.in by autoheader 2.13. */ +/* config.in. Generated automatically from configure.in by autoheader. */ /* Define if using alloca.c. */ /* #undef C_ALLOCA */ @@ -28,9 +28,6 @@ /* Define to `long' if doesn't define. */ /* #undef off_t */ -/* Define if you need to in order for stat and other things to work. */ -/* #undef _POSIX_SOURCE */ - /* Define to `unsigned' if doesn't define. */ /* #undef size_t */ @@ -67,6 +64,18 @@ /* Define if you have the fdopen function. */ #define HAVE_FDOPEN 1 +/* Define if you have the fseeko function. */ +#define HAVE_FSEEKO 1 + +/* Define if you have the fseeko64 function. */ +/* #undef HAVE_FSEEKO64 */ + +/* Define if you have the ftello function. */ +#define HAVE_FTELLO 1 + +/* Define if you have the ftello64 function. */ +/* #undef HAVE_FTELLO64 */ + /* Define if you have the getcwd function. */ #define HAVE_GETCWD 1 @@ -109,6 +118,9 @@ /* Define if you have the strchr function. */ #define HAVE_STRCHR 1 +/* Define if you have the strtoull function. */ +#define HAVE_STRTOULL 1 + /* Define if you have the sysconf function. */ #define HAVE_SYSCONF 1 @@ -179,7 +191,7 @@ #define PACKAGE "bfd" /* Version number of package */ -/* #define VERSION "2.13.2" */ +/* #define VERSION "2.15" */ /* Define if you have the stpcpy function */ #define HAVE_STPCPY 1 @@ -193,6 +205,12 @@ /* Define as 1 if you have gettext and don't want to use GNU gettext. */ /* #undef HAVE_GETTEXT */ +/* The number of bytes in type long long */ +/* #define SIZEOF_LONG_LONG 8 */ + +/* The number of bytes in type long */ +/* #define SIZEOF_LONG 8 */ + /* Use b modifier when opening binary files? */ /* #undef USE_BINARY_FOPEN */ @@ -265,6 +283,9 @@ /* Name of host specific header file to include in trad-core.c. */ #define TRAD_HEADER !!TRAD_HEADER!! +/* The number of bytes in type off_t */ +/* #define SIZEOF_OFF_T 8 */ + /* Use mmap if it's available? */ /* #undef USE_MMAP */ ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/ia64/bfd.h#2 (text+ko) ==== @@ -1,15 +1,17 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/ia64/bfd.h,v 1.6 2002/12/02 09:49:57 obrien Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/binutils/libbfd/ia64/bfd.h,v 1.7 2004/06/19 18:52:31 marcel Exp $ */ /* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", - "section.c", "archures.c", "reloc.c", "syms.c", "bfd.c", "archive.c", - "corefile.c", "targets.c" and "format.c". + "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", + "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", + "linker.c" and "simple.c". Run "make headers" in your build bfd/ to regenerate. */ /* Main header file for the bfd library -- portable access to object files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 - Free Software Foundation, Inc. + + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Contributed by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -49,10 +51,6 @@ #endif #endif -/* #define BFD_VERSION 213010000 */ -/* #define BFD_VERSION_DATE 20021127 */ -/* #define BFD_VERSION_STRING "2.13.2 20021127" */ - /* The word size used by BFD on the host. This may be 64 with a 32 bit target if the host is 64 bit, or if other 64 bit targets have been selected with --enable-targets, or if --enable-64-bit-bfd. */ @@ -61,14 +59,13 @@ /* The word size of the default bfd target. */ #define BFD_DEFAULT_TARGET_SIZE 64 -#if defined(__i386__) || defined(__powerpc__) -#define BFD_HOST_64BIT_LONG 0 -#else #define BFD_HOST_64BIT_LONG 1 -#endif /* 32-bit host */ -#if 0 -#define BFD_HOST_64_BIT -#define BFD_HOST_U_64_BIT +#define BFD_HOST_LONG_LONG 1 +#if 1 +#define BFD_HOST_64_BIT long +#define BFD_HOST_U_64_BIT unsigned long +typedef BFD_HOST_64_BIT bfd_int64_t; +typedef BFD_HOST_U_64_BIT bfd_uint64_t; #endif #if BFD_ARCH_SIZE >= 64 @@ -84,65 +81,30 @@ #endif /* Forward declaration. */ -typedef struct _bfd bfd; +typedef struct bfd bfd; + +/* Boolean type used in bfd. Too many systems define their own + versions of "boolean" for us to safely typedef a "boolean" of + our own. Using an enum for "bfd_boolean" has its own set of + problems, with strange looking casts required to avoid warnings + on some older compilers. Thus we just use an int. -/* To squelch erroneous compiler warnings ("illegal pointer - combination") from the SVR3 compiler, we would like to typedef - boolean to int (it doesn't like functions which return boolean. - Making sure they are never implicitly declared to return int - doesn't seem to help). But this file is not configured based on - the host. */ -/* General rules: functions which are boolean return true on success - and false on failure (unless they're a predicate). -- bfd.doc */ -/* I'm sure this is going to break something and someone is going to - force me to change it. */ -/* typedef enum boolean {false, true} boolean; */ -/* Yup, SVR4 has a "typedef enum boolean" in -fnf */ -/* It gets worse if the host also defines a true/false enum... -sts */ -/* And even worse if your compiler has built-in boolean types... -law */ -/* And even worse if your compiler provides a stdbool.h that conflicts - with these definitions... gcc 2.95 and later do. If so, it must - be included first. -drow */ -#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -#define TRUE_FALSE_ALREADY_DEFINED -#else -#if defined (__bool_true_false_are_defined) -/* We have . */ -#define TRUE_FALSE_ALREADY_DEFINED -#endif -#endif -#ifdef MPW -/* Pre-emptive strike - get the file with the enum. */ -#include -#define TRUE_FALSE_ALREADY_DEFINED -#endif /* MPW */ -#ifndef TRUE_FALSE_ALREADY_DEFINED -typedef enum bfd_boolean {false, true} boolean; -#define BFD_TRUE_FALSE -#else -/* Use enum names that will appear nowhere else. */ -typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; -#endif + General rule: Functions which are bfd_boolean return TRUE on + success and FALSE on failure (unless they're a predicate). */ -/* Support for different sizes of target format ints and addresses. - If the type `long' is at least 64 bits, BFD_HOST_64BIT_LONG will be - set to 1 above. Otherwise, if gcc is being used, this code will - use gcc's "long long" type. Otherwise, BFD_HOST_64_BIT must be - defined above. */ +typedef int bfd_boolean; +#undef FALSE +#undef TRUE +#define FALSE 0 +#define TRUE 1 -#ifndef BFD_HOST_64_BIT -# if BFD_HOST_64BIT_LONG -# define BFD_HOST_64_BIT long -# define BFD_HOST_U_64_BIT unsigned long -# else -# ifdef __GNUC__ -# if __GNUC__ >= 2 -# define BFD_HOST_64_BIT long long -# define BFD_HOST_U_64_BIT unsigned long long -# endif /* __GNUC__ >= 2 */ -# endif /* ! defined (__GNUC__) */ -# endif /* ! BFD_HOST_64BIT_LONG */ -#endif /* ! defined (BFD_HOST_64_BIT) */ +#if 0 +/* Poison. */ +#undef false +#undef true +#define false dont_use_false_in_bfd +#define true dont_use_true_in_bfd +#endif #ifdef BFD64 @@ -191,19 +153,22 @@ #endif /* not BFD64 */ -/* A pointer to a position in a file. */ -/* FIXME: This should be using off_t from . - For now, try to avoid breaking stuff by not including here. - This will break on systems with 64-bit file offsets (e.g. 4.4BSD). - Probably the best long-term answer is to avoid using file_ptr AND off_t - in this header file, and to handle this in the BFD implementation - rather than in its interface. */ -/* typedef off_t file_ptr; */ -typedef bfd_signed_vma file_ptr; -typedef bfd_vma ufile_ptr; +#ifndef BFD_HOST_64_BIT +/* Fall back on a 32 bit type. The idea is to make these types always + available for function return types, but in the case that + BFD_HOST_64_BIT is undefined such a function should abort or + otherwise signal an error. */ +typedef bfd_signed_vma bfd_int64_t; +typedef bfd_vma bfd_uint64_t; +#endif + +/* An offset into a file. BFD always uses the largest possible offset + based on the build time availability of fseek, fseeko, or fseeko64. */ +typedef BFD_HOST_64_BIT file_ptr; +typedef unsigned BFD_HOST_64_BIT ufile_ptr; -extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma (bfd *, char *, bfd_vma); +extern void bfd_fprintf_vma (bfd *, void *, bfd_vma); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -216,7 +181,7 @@ typedef enum bfd_format { bfd_unknown = 0, /* File format is unknown. */ - bfd_object, /* Linker/assember/compiler output. */ + bfd_object, /* Linker/assembler/compiler output. */ bfd_archive, /* Object archive file. */ bfd_core, /* Core dump. */ bfd_type_end /* Marks the end; don't use it! */ @@ -279,6 +244,9 @@ /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 + +/* The sections in this BFD specify a memory page. */ +#define HAS_LOAD_PAGE 0x1000 /* Symbols and relocation. */ @@ -331,7 +299,7 @@ unsigned int line_number; /* Linenumber from start of function. */ union { - struct symbol_cache_entry *sym; /* Function name. */ + struct bfd_symbol *sym; /* Function name. */ bfd_vma offset; /* Offset into section. */ } u; } @@ -342,7 +310,7 @@ #define align_power(addr, align) \ (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align))) -typedef struct sec *sec_ptr; +typedef struct bfd_section *sec_ptr; #define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0) #define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0) @@ -358,9 +326,9 @@ #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true) -#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) -#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) +#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) +#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) typedef struct stat stat_type; @@ -386,7 +354,7 @@ /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name PARAMS ((int)); +extern const char *bfd_get_stab_name (int); /* Hash table routines. There is no way to free up a hash table. */ @@ -419,75 +387,74 @@ built each of which calls the function in the superclass. Thus each function should be written to allocate a new block of memory only if the argument is NULL. */ - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* An objalloc for this hash table. This is a struct objalloc *, - but we use PTR to avoid requiring the inclusion of objalloc.h. */ - PTR memory; + but we use void * to avoid requiring the inclusion of objalloc.h. */ + void *memory; }; /* Initialize a hash table. */ -extern boolean bfd_hash_table_init - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *))); +extern bfd_boolean bfd_hash_table_init + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *)); /* Initialize a hash table specifying a size. */ -extern boolean bfd_hash_table_init_n - PARAMS ((struct bfd_hash_table *, - struct bfd_hash_entry *(*) (struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *), - unsigned int size)); +extern bfd_boolean bfd_hash_table_init_n + (struct bfd_hash_table *, + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *), + unsigned int size); /* Free up a hash table. */ -extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *)); +extern void bfd_hash_table_free + (struct bfd_hash_table *); -/* Look up a string in a hash table. If CREATE is true, a new entry +/* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The - COPY argument must be true if this routine should copy the string + COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, boolean create, - boolean copy)); + (struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy); /* Replace an entry in a hash table. */ extern void bfd_hash_replace - PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old, - struct bfd_hash_entry *nw)); + (struct bfd_hash_table *, struct bfd_hash_entry *old, + struct bfd_hash_entry *nw); /* Base method for creating a hash table entry. */ extern struct bfd_hash_entry *bfd_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, - const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *, - unsigned int)); +extern void *bfd_hash_allocate + (struct bfd_hash_table *, unsigned int); /* Traverse a hash table in a random order, calling a function on each - element. If the function returns false, the traversal stops. The + element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ -extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *, - boolean (*) (struct bfd_hash_entry *, - PTR), - PTR info)); +extern void bfd_hash_traverse + (struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, void *), + void *info); -#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table +#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table /* User program access to BFD facilities. */ /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell PARAMS ((bfd *)); -extern int bfd_flush PARAMS ((bfd *)); -extern int bfd_stat PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *); +extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *); +extern int bfd_seek (bfd *, file_ptr, int); +extern file_ptr bfd_tell (bfd *); +extern int bfd_flush (bfd *); +extern int bfd_stat (bfd *, struct stat *); /* Deprecated old routines. */ #if __GNUC__ @@ -505,8 +472,7 @@ (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\ bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) #endif -extern void warn_deprecated - PARAMS ((const char *, const char *, int, const char *)); +extern void warn_deprecated (const char *, const char *, int, const char *); /* Cast from const char * to char * so that caller can assign to a char * without a warning. */ @@ -542,40 +508,41 @@ #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) -#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) +#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -extern boolean bfd_cache_close PARAMS ((bfd *abfd)); +extern bfd_boolean bfd_cache_close + (bfd *abfd); /* NB: This declaration should match the autogenerated one in libbfd.h. */ -extern boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma, - boolean, boolean, unsigned int, struct sec **)); +extern bfd_boolean bfd_record_phdr + (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **); /* Byte swapping routines. */ -bfd_vma bfd_getb64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *)); -void bfd_putb64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 PARAMS ((bfd_vma, unsigned char *)); +bfd_uint64_t bfd_getb64 (const void *); +bfd_uint64_t bfd_getl64 (const void *); +bfd_int64_t bfd_getb_signed_64 (const void *); +bfd_int64_t bfd_getl_signed_64 (const void *); +bfd_vma bfd_getb32 (const void *); +bfd_vma bfd_getl32 (const void *); +bfd_signed_vma bfd_getb_signed_32 (const void *); +bfd_signed_vma bfd_getl_signed_32 (const void *); +bfd_vma bfd_getb16 (const void *); +bfd_vma bfd_getl16 (const void *); +bfd_signed_vma bfd_getb_signed_16 (const void *); +bfd_signed_vma bfd_getl_signed_16 (const void *); +void bfd_putb64 (bfd_uint64_t, void *); +void bfd_putl64 (bfd_uint64_t, void *); +void bfd_putb32 (bfd_vma, void *); +void bfd_putl32 (bfd_vma, void *); +void bfd_putb16 (bfd_vma, void *); +void bfd_putl16 (bfd_vma, void *); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits PARAMS ((bfd_byte *, int, boolean)); -void bfd_put_bits PARAMS ((bfd_vma, bfd_byte *, int, boolean)); +bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean); +void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean); /* Externally visible ECOFF routines. */ @@ -583,59 +550,54 @@ struct ecoff_debug_info; struct ecoff_debug_swap; struct ecoff_extr; -struct symbol_cache_entry; +struct bfd_symbol; struct bfd_link_info; struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif -extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd)); -extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value)); -extern boolean bfd_ecoff_set_regmasks - PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, - unsigned long *cprmask)); -extern PTR bfd_ecoff_debug_init - PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); +extern bfd_vma bfd_ecoff_get_gp_value + (bfd * abfd); +extern bfd_boolean bfd_ecoff_set_gp_value + (bfd *abfd, bfd_vma gp_value); +extern bfd_boolean bfd_ecoff_set_regmasks + (bfd *abfd, unsigned long gprmask, unsigned long fprmask, + unsigned long *cprmask); +extern void *bfd_ecoff_debug_init + (bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern void bfd_ecoff_debug_free - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, - bfd *input_bfd, struct ecoff_debug_info *input_debug, - const struct ecoff_debug_swap *input_swap, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate_other - PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, - const struct ecoff_debug_swap *output_swap, bfd *input_bfd, - struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_externals - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - boolean relocateable, - boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), - void (*set_index) (struct symbol_cache_entry *, - bfd_size_type))); -extern boolean bfd_ecoff_debug_one_external - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - const char *name, struct ecoff_extr *esym)); + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_accumulate + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct ecoff_debug_info *input_debug, + const struct ecoff_debug_swap *input_swap, struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_accumulate_other + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, + const struct ecoff_debug_swap *output_swap, bfd *input_bfd, + struct bfd_link_info *); +extern bfd_boolean bfd_ecoff_debug_externals + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, bfd_boolean relocatable, + bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *), + void (*set_index) (struct bfd_symbol *, bfd_size_type)); +extern bfd_boolean bfd_ecoff_debug_one_external + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, const char *name, + struct ecoff_extr *esym); extern bfd_size_type bfd_ecoff_debug_size - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap)); -extern boolean bfd_ecoff_write_debug - PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, file_ptr where)); -extern boolean bfd_ecoff_write_accumulated_debug - PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap, - struct bfd_link_info *info, file_ptr where)); -extern boolean bfd_mips_ecoff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap); +extern bfd_boolean bfd_ecoff_write_debug + (bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, file_ptr where); +extern bfd_boolean bfd_ecoff_write_accumulated_debug + (void *handle, bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap, + struct bfd_link_info *info, file_ptr where); +extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* Externally visible ELF routines. */ @@ -646,36 +608,37 @@ const char *name; }; -extern boolean bfd_elf32_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); -extern boolean bfd_elf64_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); +enum dynamic_lib_link_class { + DYN_NORMAL = 0, + DYN_AS_NEEDED = 1, + DYN_DT_NEEDED = 2 +}; + +extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean); extern struct bfd_link_needed_list *bfd_elf_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf_get_bfd_needed_list - PARAMS ((bfd *, struct bfd_link_needed_list **)); -extern boolean bfd_elf32_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); -extern boolean bfd_elf64_size_dynamic_sections - PARAMS ((bfd *, const char *, const char *, const char *, - const char * const *, struct bfd_link_info *, struct sec **, - struct bfd_elf_version_tree *)); -extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *)); -extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *)); -extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_elf_get_bfd_needed_list + (bfd *, struct bfd_link_needed_list **); +extern bfd_boolean bfd_elf_size_dynamic_sections + (bfd *, const char *, const char *, const char *, const char * const *, + struct bfd_link_info *, struct bfd_section **, struct bfd_elf_version_tree *); +extern void bfd_elf_set_dt_needed_name + (bfd *, const char *); +extern const char *bfd_elf_get_dt_soname + (bfd *); +extern void bfd_elf_set_dyn_lib_class + (bfd *, int); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf64_discard_info - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_elf_discard_info + (bfd *, struct bfd_link_info *); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd)); +extern long bfd_get_elf_phdr_upper_bound + (bfd *abfd); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -684,39 +647,58 @@ Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs)); +extern int bfd_get_elf_phdrs + (bfd *abfd, void *phdrs); + +/* Create a new BFD as if by bfd_openr. Rather than opening a file, + reconstruct an ELF file by reading the segments out of remote memory + based on the ELF file header at EHDR_VMA and the ELF program headers it + points to. If not null, *LOADBASEP is filled in with the difference + between the VMAs from which the segments were read, and the VMAs the + file headers (and hence BFD's idea of each section's VMA) put them at. + + The function TARGET_READ_MEMORY is called to copy LEN bytes from the + remote memory at target address VMA into the local buffer at MYADDR; it + should return zero on success or an `errno' code on failure. TEMPL must + be a BFD for an ELF target with the word size and byte order found in + the remote memory. */ +extern bfd *bfd_elf_bfd_from_remote_memory + (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, + int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ -extern int bfd_get_arch_size PARAMS ((bfd *)); +extern int bfd_get_arch_size + (bfd *); + +/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ +extern int bfd_get_sign_extend_vma + (bfd *); -/* Return true if address "naturally" sign extends, or -1 if not elf. */ -extern int bfd_get_sign_extend_vma PARAMS ((bfd *)); +extern struct bfd_section *_bfd_elf_tls_setup + (bfd *, struct bfd_link_info *); -extern boolean bfd_m68k_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); -extern boolean bfd_mips_elf32_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); +extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); +extern bfd_boolean bfd_mips_elf32_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* SunOS shared library support routines for the linker. */ extern struct bfd_link_needed_list *bfd_sunos_get_needed_list - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sunos_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_sunos_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, - struct sec **)); + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_sunos_record_link_assignment + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_sunos_size_dynamic_sections + (bfd *, struct bfd_link_info *, struct bfd_section **, struct bfd_section **, struct bfd_section **); /* Linux shared library support routines for the linker. */ -extern boolean bfd_i386linux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_m68klinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sparclinux_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_i386linux_size_dynamic_sections + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_m68klinux_size_dynamic_sections + (bfd *, struct bfd_link_info *); +extern bfd_boolean bfd_sparclinux_size_dynamic_sections + (bfd *, struct bfd_link_info *); /* mmap hacks */ @@ -726,7 +708,7 @@ typedef struct _bfd_window { /* What the user asked for. */ - PTR data; + void *data; bfd_size_type size; /* The actual window used by BFD. Small user-requested read-only regions sharing a page may share a single window into the object @@ -738,34 +720,36 @@ } bfd_window; -extern void bfd_init_window PARAMS ((bfd_window *)); -extern void bfd_free_window PARAMS ((bfd_window *)); -extern boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean)); +extern void bfd_init_window + (bfd_window *); +extern void bfd_free_window + (bfd_window *); +extern bfd_boolean bfd_get_file_window + (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); /* XCOFF support routines for the linker. */ -extern boolean bfd_xcoff_link_record_set - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_size_type)); -extern boolean bfd_xcoff_import_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, - bfd_vma, const char *, const char *, const char *, unsigned int)); -extern boolean bfd_xcoff_export_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); -extern boolean bfd_xcoff_link_count_reloc - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, boolean, - int, boolean, boolean, struct sec **, boolean)); -extern boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); +extern bfd_boolean bfd_xcoff_link_record_set + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); +extern bfd_boolean bfd_xcoff_import_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, + const char *, const char *, const char *, unsigned int); +extern bfd_boolean bfd_xcoff_export_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); +extern bfd_boolean bfd_xcoff_link_count_reloc + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_record_link_assignment + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_size_dynamic_sections + (bfd *, struct bfd_link_info *, const char *, const char *, + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean); +extern bfd_boolean bfd_xcoff_link_generate_rtinit + (bfd *, const char *, const char *, bfd_boolean); /* XCOFF support routines for ar. */ -extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *)); +extern bfd_boolean bfd_xcoff_ar_archive_set_magic + (bfd *, char *); /* Externally visible COFF routines. */ @@ -774,144 +758,165 @@ union internal_auxent; #endif -extern boolean bfd_coff_get_syment - PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); +extern bfd_boolean bfd_coff_get_syment + (bfd *, struct bfd_symbol *, struct internal_syment *); -extern boolean bfd_coff_get_auxent - PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); +extern bfd_boolean bfd_coff_get_auxent + (bfd *, struct bfd_symbol *, int, union internal_auxent *); -extern boolean bfd_coff_set_symbol_class - PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); +extern bfd_boolean bfd_coff_set_symbol_class + (bfd *, struct bfd_symbol *, unsigned int); -extern boolean bfd_m68k_coff_create_embedded_relocs - PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, - char **)); +extern bfd_boolean bfd_m68k_coff_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); /* ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_arm_allocate_interworking_sections + (struct bfd_link_info *); -extern boolean bfd_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +extern bfd_boolean bfd_arm_process_before_allocation + (bfd *, struct bfd_link_info *, int); -extern boolean bfd_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); /* PE ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_pe_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_arm_pe_allocate_interworking_sections + (struct bfd_link_info *); -extern boolean bfd_arm_pe_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +extern bfd_boolean bfd_arm_pe_process_before_allocation + (bfd *, struct bfd_link_info *, int); -extern boolean bfd_arm_pe_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); /* ELF ARM Interworking support. Called from linker. */ -extern boolean bfd_elf32_arm_allocate_interworking_sections - PARAMS ((struct bfd_link_info *)); +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections + (struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_process_before_allocation + (bfd *, struct bfd_link_info *, int); + +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd + (bfd *, struct bfd_link_info *); -extern boolean bfd_elf32_arm_process_before_allocation - PARAMS ((bfd *, struct bfd_link_info *, int)); +/* ARM Note section processing. */ +extern bfd_boolean bfd_arm_merge_machines + (bfd *, bfd *); -extern boolean bfd_elf32_arm_get_bfd_for_interworking - PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean bfd_arm_update_notes + (bfd *, const char *); -extern boolean bfd_elf32_arm_add_glue_sections_to_bfd - PARAMS ((bfd *, struct bfd_link_info *)); +extern unsigned int bfd_arm_get_mach_from_notes + (bfd *, const char *); /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page - PARAMS ((struct sec *, int)); + (struct bfd_section *, int); extern int bfd_ticoff_get_section_load_page - PARAMS ((struct sec *)); + (struct bfd_section *); + +/* H8/300 functions. */ +extern bfd_vma bfd_h8300_pad_address + (bfd *, bfd_vma); + +/* IA64 Itanium code generation. Called from linker. */ +extern void bfd_elf32_ia64_after_parse + (int); + +extern void bfd_elf64_ia64_after_parse + (int); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Jun 19 21:43:51 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 346F616A4D0; Sat, 19 Jun 2004 21:43:51 +0000 (GMT) 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 0A41216A4CE for ; Sat, 19 Jun 2004 21:43:51 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 029CA43D39 for ; Sat, 19 Jun 2004 21:43:51 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5JLhftO017803 for ; Sat, 19 Jun 2004 21:43:41 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5JLhf7w017800 for perforce@freebsd.org; Sat, 19 Jun 2004 21:43:41 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 21:43:41 GMT Message-Id: <200406192143.i5JLhf7w017800@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 55333 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 21:43:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=55333 Change 55333 by marcel@marcel_nfs on 2004/06/19 21:43:19 IFC @55331 Affected files ... .. //depot/projects/gdb/contrib/gcc/config/i386/i386.c#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile#7 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.alpha#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.amd64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.i386#5 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.ia64#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.powerpc#2 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.sparc64#3 integrate .. //depot/projects/gdb/share/man/man4/watchdog.4#4 integrate Differences ... ==== //depot/projects/gdb/contrib/gcc/config/i386/i386.c#3 (text+ko) ==== @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ -/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.19 2004/06/19 07:29:04 obrien Exp $ */ +/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.20 2004/06/19 20:40:00 obrien Exp $ */ #include "config.h" @@ -14607,14 +14607,23 @@ output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops); } +#ifdef __amd64__ xops[0] = XEXP (DECL_RTL (function), 0); +#else + xops[0] = DECL_RTL (function); +#endif if (TARGET_64BIT) { if (!flag_pic || (*targetm.binds_local_p) (function)) output_asm_insn ("jmp\t%P0", xops); else { +#ifdef __amd64__ tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL); +#else + tmp = XEXP (xops[0], 0); + tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL); +#endif tmp = gen_rtx_CONST (Pmode, tmp); tmp = gen_rtx_MEM (QImode, tmp); xops[0] = tmp; ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile#7 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile,v 1.29 2004/06/19 19:44:19 marcel Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile,v 1.31 2004/06/19 20:50:57 marcel Exp $ .include "../Makefile.inc0" .PATH: ${SRCDIR}/bfd ${SRCDIR}/opcodes LIB= bfd -SRCS+= archive.c archive64.c archures.c bfd.c binary.c cache.c \ +SRCS+= archive.c archive64.c archures.c bfd.c bfdwin.c binary.c cache.c \ coffgen.c corefile.c elf.c elf-eh-frame.c elf-strtab.c format.c \ hash.c ihex.c init.c libbfd.c linker.c merge.c opncls.c reloc.c \ section.c srec.c stab-syms.c stabs.c syms.c targets.c tekhex.c \ @@ -63,4 +63,10 @@ sed -e 's,!!TRAD_HEADER!!,,g' ${.ALLSRC} > ${.TARGET} .endif +elf32-target.h: elfxx-target.h + sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET} + +elf64-target.h: elfxx-target.h + sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} + .include ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.alpha#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.alpha,v 1.11 2004/06/16 07:09:38 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.alpha,v 1.12 2004/06/19 20:37:38 marcel Exp $ DEFAULT_VECTOR= bfd_elf64_alpha_freebsd_vec @@ -10,5 +10,3 @@ .endif CLEANFILES+= elf64-target.h -elf64-target.h: elfxx-target.h - sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.amd64#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.amd64,v 1.2 2003/07/01 17:29:48 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.amd64,v 1.3 2004/06/19 20:37:38 marcel Exp $ .include "${.CURDIR}/Makefile.i386" @@ -13,9 +13,6 @@ CLEANFILES+= elf64-target.h -elf64-target.h: elfxx-target.h - sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} - CLEANFILES+= elf64-amd64-fbsd.c elf64-amd64-fbsd.c: ${.CURDIR}/elf-fbsd-brand.c ${SRCDIR}/bfd/elf64-x86-64.c ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.i386#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.i386,v 1.15 2004/06/16 07:09:38 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.i386,v 1.16 2004/06/19 20:37:38 marcel Exp $ DEFAULT_VECTOR= bfd_elf32_i386_freebsd_vec @@ -14,5 +14,3 @@ .endif CLEANFILES+= elf32-target.h -elf32-target.h: elfxx-target.h - sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET} ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.ia64#2 (text+ko) ==== @@ -1,10 +1,9 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.ia64,v 1.6 2002/12/05 18:27:22 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.ia64,v 1.8 2004/06/19 21:14:10 marcel Exp $ DEFAULT_VECTOR= bfd_elf64_ia64_little_vec SRCS+= cofflink.c cpu-ia64.c efi-app-ia64.c elf32.c elf32-gen.c elf64.c \ elf64-gen.c elf64-ia64.c elflink.c -#SRCS+= coff-ia64.c elf32-ia64.c VECS+= ${DEFAULT_VECTOR} \ bfd_efi_app_ia64_vec \ @@ -20,14 +19,8 @@ SRCS+= ${GENSRCS} CLEANFILES+= ${GENSRCS} -elf32-target.h: elfxx-target.h - sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET} - -elf64-target.h: elfxx-target.h - sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} - -elf64-ia64.c: elfxx-ia64.c - sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} +elf64-ia64.c: elfxx-ia64.c elf-fbsd-brand.c + cat ${.ALLSRC} | sed -e s/NN/64/g > ${.TARGET} pepigen.c: peXXigen.c sed -e s/XX/pep/g ${.ALLSRC} > ${.TARGET} ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.powerpc#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.powerpc,v 1.6 2002/12/02 09:59:05 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.powerpc,v 1.7 2004/06/19 20:37:38 marcel Exp $ DEFAULT_VECTOR= bfd_elf32_powerpc_vec @@ -21,5 +21,3 @@ .endif CLEANFILES+= elf32-target.h -elf32-target.h: elfxx-target.h - sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET} ==== //depot/projects/gdb/gnu/usr.bin/binutils/libbfd/Makefile.sparc64#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.sparc64,v 1.8 2004/06/17 16:08:20 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libbfd/Makefile.sparc64,v 1.9 2004/06/19 20:37:38 marcel Exp $ DEFAULT_VECTOR= bfd_elf64_sparc_vec @@ -20,11 +20,6 @@ .endif CLEANFILES+= elf32-target.h elf64-target.h -elf32-target.h: elfxx-target.h - sed -e s/NN/32/g ${.ALLSRC} > ${.TARGET} - -elf64-target.h: elfxx-target.h - sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET} CLEANFILES+= elf64-sparc%FIXED.c elf64-sparc%FIXED.c: elf64-sparc.c elf64-sparc.c-bad-rtld.diff ==== //depot/projects/gdb/share/man/man4/watchdog.4#4 (text+ko) ==== @@ -23,53 +23,64 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/watchdog.4,v 1.5 2004/04/29 08:33:12 smkelly Exp $ +.\" $FreeBSD: src/share/man/man4/watchdog.4,v 1.6 2004/06/19 21:17:07 smkelly Exp $ .\" .Dd June 25, 2003 -.Dt watchdog 4 +.Dt WATCHDOG 4 .Os .Sh NAME .Nm watchdog -.Nd Hardware and Software watchdog +.Nd "hardware and software watchdog" .Sh SYNOPSIS -.Cd options CPU_ELAN -.Cd options CPU_GEODE -.Cd options SW_WATCHDOG +.Cd "options CPU_ELAN" +.Cd "options CPU_GEODE" +.Cd "options SW_WATCHDOG" .Pp .In sys/watchdog.h -.Bd -literal - -u_int u = WD_ACTIVE | WD_8SEC; -int fd = open("/dev/" _PATH_WATCHDOG, O_RDWR); - -ioctl(fd, WDIOCPATPAT, &u); -.Ed .Sh DESCRIPTION +The .Nm -is a facility for controlling hardware and software watchdog facilities. +facility is used for controlling hardware and software watchdogs. .Pp -The interface is through a device named "/dev/" +The interface is through a device named +.Qq Li /dev/ .Dv _PATH_WATCHDOG -which -responds to a single ioctl call, +which responds to a single +.Xr ioctl 2 +call, .Dv WDIOCPATPAT . .Pp -The ioctl call takes an argument which consists of a timeout value +The call takes a single argument which represents a timeout value specified as an integer power of two nanoseconds. .Pp The .Dv WD_ACTIVE -flag signals that the watchdog will be kept from +flag signals that the +.Nm +will be kept from timing out from userland, for instance by the .Xr watchdogd 8 daemon. .Pp -To disable the watchdogs, use an argument of zero. +To disable the watchdogs, an argument of zero should be used. .Pp -The ioctl call will return success if just one of the available -watchdog implementations support the request. -If the ioctl fails, for instance if no watchdog supports the timeout -length, all watchdogs are disabled and must be explicitly reenabled. +The +.Xr ioctl 2 +call will return success if just one of the available +.Xr watchdog 9 +implementations support the request. +If the call fails, for instance if none of +.Xr watchdog 9 +implementations support the timeout +length, all watchdogs are disabled and must be explicitly re-enabled. +.Sh EXAMPLES +.\" XXX insert some descriptive text here +.Bd -literal -offset indent +u_int u = WD_ACTIVE | WD_TO_8SEC; +int fd = open("/dev/" _PATH_WATCHDOG, O_RDWR); + +ioctl(fd, WDIOCPATPAT, &u); +.Ed .Sh SEE ALSO .Xr watchdogd 8 , .Xr watchdog 9 @@ -81,13 +92,11 @@ .Sh AUTHORS .An -nosplit The -.Nm watchdog -facility were written by +.Nm +facility was written by .An Poul-Henning Kamp Aq phk@FreeBSD.org . -.Pp -The -.Nm SW_WATCHDOG -code and manual page were written by +The software watchdog code +and this manual page were written by .An Sean Kelly Aq smkelly@FreeBSD.org . Some contributions were made by .An Jeff Roberson Aq jeff@FreeBSD.org . From owner-p4-projects@FreeBSD.ORG Sat Jun 19 23:48:30 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1212416A4D0; Sat, 19 Jun 2004 23:48:30 +0000 (GMT) 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 E06B416A4CE for ; Sat, 19 Jun 2004 23:48:29 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D90CB43D1F for ; Sat, 19 Jun 2004 23:48:29 +0000 (GMT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5JNmGov044305 for ; Sat, 19 Jun 2004 23:48:16 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5JNmGX3044302 for perforce@freebsd.org; Sat, 19 Jun 2004 23:48:16 GMT (envelope-from marcel@freebsd.org) Date: Sat, 19 Jun 2004 23:48:16 GMT Message-Id: <200406192348.i5JNmGX3044302@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 55341 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 23:48:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=55341 Change 55341 by marcel@marcel_nfs on 2004/06/19 23:47:40 IFC @55338 Affected files ... .. //depot/projects/gdb/gnu/usr.bin/binutils/as/ia64-freebsd/config.h#3 integrate .. //depot/projects/gdb/gnu/usr.bin/binutils/libiberty/Makefile#6 integrate .. //depot/projects/gdb/sbin/dump/optr.c#4 integrate .. //depot/projects/gdb/sys/dev/usb/usbdevs#13 integrate .. //depot/projects/gdb/sys/dev/usb/usbdevs.h#13 integrate .. //depot/projects/gdb/sys/dev/usb/usbdevs_data.h#13 integrate .. //depot/projects/gdb/sys/i386/isa/npx.c#8 integrate Differences ... ==== //depot/projects/gdb/gnu/usr.bin/binutils/as/ia64-freebsd/config.h#3 (text+ko) ==== @@ -1,8 +1,6 @@ -/* $FreeBSD: src/gnu/usr.bin/binutils/as/ia64-freebsd/config.h,v 1.6 2004/06/16 07:09:35 obrien Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/binutils/as/ia64-freebsd/config.h,v 1.7 2004/06/19 23:18:14 marcel Exp $ */ -#define HAVE_DECL_GETOPT 1 - -/* config.h. Generated automatically by configure. */ +/* config.h. Generated by configure. */ /* config.in. Generated automatically from configure.in by autoheader. */ /* Define if using alloca.c. */ @@ -30,9 +28,6 @@ /* Define to `long' if doesn't define. */ /* #undef off_t */ -/* Define if you need to in order for stat and other things to work. */ -/* #undef _POSIX_SOURCE */ - /* Define to `unsigned' if doesn't define. */ /* #undef size_t */ @@ -145,13 +140,13 @@ /* #undef HAVE_VALUES_H */ /* Define if you have the header file. */ -#define HAVE_VARARGS_H 1 +/* #undef HAVE_VARARGS_H */ /* Name of package */ #define PACKAGE "gas" /* Version number of package */ -/* #define VERSION "2.12" */ +/* #define VERSION "2.15" */ /* Define if defaulting to ELF on SCO 5. */ /* #undef SCO_ELF */ @@ -165,8 +160,17 @@ /* Define as 1 if big endian. */ /* #undef TARGET_BYTES_BIG_ENDIAN */ -/* Use ELF stabs for MIPS, not ECOFF stabs */ -/* #undef MIPS_STABS_ELF */ +/* Default CPU for MIPS targets. */ +/* #undef MIPS_CPU_STRING_DEFAULT */ + +/* Allow use of E_MIPS_ABI_O32 on MIPS targets. */ +/* #undef USE_E_MIPS_ABI_O32 */ + +/* Generate 64-bit code by default on MIPS targets. */ +/* #undef MIPS_DEFAULT_64BIT */ + +/* Choose a default ABI for MIPS targets. */ +/* #undef MIPS_DEFAULT_ABI */ /* Default architecture. */ /* #undef DEFAULT_ARCH */ @@ -217,7 +221,7 @@ /* #undef USE_EMULATIONS */ /* Supported emulations. */ -#define EMULATIONS +#define EMULATIONS /* Default emulation. */ #define DEFAULT_EMULATION "" @@ -229,19 +233,19 @@ #define BFD_ASSEMBLER 1 /* Target alias. */ -#define TARGET_ALIAS "ia64-obrien-freebsd5" +/* #define TARGET_ALIAS "ia64-unknown-freebsd5.2" */ /* Canonical target. */ -#define TARGET_CANONICAL "ia64-obrien-freebsd5" +/* #define TARGET_CANONICAL "ia64-unknown-freebsd5.2" */ /* Target CPU. */ #define TARGET_CPU "ia64" /* Target vendor. */ -#define TARGET_VENDOR "obrien" +#define TARGET_VENDOR "unknown" /* Target OS. */ -#define TARGET_OS "freebsd5" +#define TARGET_OS "freebsd5.2" /* Define if you have the stpcpy function */ #define HAVE_STPCPY 1 @@ -278,3 +282,4 @@ /* Define if errno is not declared in system header files. */ /* #undef NEED_DECLARATION_ERRNO */ + ==== //depot/projects/gdb/gnu/usr.bin/binutils/libiberty/Makefile#6 (text+ko) ==== @@ -1,16 +1,19 @@ -# $FreeBSD: src/gnu/usr.bin/binutils/libiberty/Makefile,v 1.21 2004/06/16 07:09:41 obrien Exp $ +# $FreeBSD: src/gnu/usr.bin/binutils/libiberty/Makefile,v 1.22 2004/06/19 22:22:42 marcel Exp $ .include "../Makefile.inc0" .PATH: ${SRCDIR}/libiberty LIB= iberty -SRCS= argv.c choose-temp.c concat.c cp-demangle.c cplus-dem.c \ - cp-demint.c lrealpath.c make-relative-prefix.c \ - dyn-string.c getpwd.c getruntime.c \ - hex.c floatformat.c hashtab.c lbasename.c make-temp-file.c \ - objalloc.c obstack.c safe-ctype.c xatexit.c xexit.c xmalloc.c \ - xstrdup.c xstrerror.c +SRCS= argv.c concat.c choose-temp.c cp-demangle.c cp-demint.c \ + cplus-dem.c dyn-string.c getpwd.c getruntime.c floatformat.c \ + hashtab.c hex.c lbasename.c lrealpath.c make-relative-prefix.c \ + make-temp-file.c objalloc.c obstack.c safe-ctype.c xatexit.c \ + xexit.c xmalloc.c xstrdup.c xstrerror.c + +# The following files are needed by gdb(1) +SRCS+= regex.c splay-tree.c + WARNS?= 1 CFLAGS+= -DHAVE_CONFIG_H INTERNALLIB= true ==== //depot/projects/gdb/sbin/dump/optr.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ static char sccsid[] = "@(#)optr.c 8.2 (Berkeley) 1/6/94"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/dump/optr.c,v 1.29 2004/05/21 20:13:33 imp Exp $"; + "$FreeBSD: src/sbin/dump/optr.c,v 1.30 2004/06/19 22:41:18 iedowse Exp $"; #endif /* not lint */ #include @@ -192,11 +192,14 @@ time_t tnow, tdone; int deltat, hours, mins; + (void)time(&tnow); if (blockswritten > tapesize) { setproctitle("%s: 99.99%% done, finished soon", disk); - msg("99.99%% done, finished soon\n"); + if (tnow >= tschedule) { + tschedule = tnow + 300; + msg("99.99%% done, finished soon\n"); + } } else { - (void) time(&tnow); deltat = (blockswritten == 0) ? 0 : tstart_writing - tnow + (double)(tnow - tstart_writing) / blockswritten * tapesize; tdone = tnow + deltat; ==== //depot/projects/gdb/sys/dev/usb/usbdevs#13 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.181 2004/06/05 21:33:59 sanpei Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.182 2004/06/19 22:16:03 sanpei Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -357,6 +357,7 @@ vendor PNY 0x0d7d PNY vendor MSI 0x0db0 Micro Star International vendor HAWKING 0x0e66 Hawking Technologies +vendor MICROTUNE 0x0f4d Microtune, Inc. vendor QUALCOMM 0x1004 Qualcomm vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX @@ -982,6 +983,9 @@ /* Micro Star International products */ product MSI BT_DONGLE 0x1967 Bluetooth USB dongle +/* Microtune, Inc. products */ +product MICROTUNE BT_DONGLE 0x1000 Bluetooth USB dongle + /* Mitsumi products */ product MITSUMI CDRRW 0x0000 CD-R/RW Drive product MITSUMI BT_DONGLE 0x641f Bluetooth USB dongle ==== //depot/projects/gdb/sys/dev/usb/usbdevs.h#13 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.188 2004/06/05 21:36:06 sanpei Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs.h,v 1.189 2004/06/19 22:17:34 sanpei Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.181 2004/06/05 21:33:59 sanpei Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.182 2004/06/19 22:16:03 sanpei Exp */ /* @@ -364,6 +364,7 @@ #define USB_VENDOR_PNY 0x0d7d /* PNY */ #define USB_VENDOR_MSI 0x0db0 /* Micro Star International */ #define USB_VENDOR_HAWKING 0x0e66 /* Hawking Technologies */ +#define USB_VENDOR_MICROTUNE 0x0f4d /* Microtune, Inc. */ #define USB_VENDOR_QUALCOMM 0x1004 /* Qualcomm */ #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ @@ -989,6 +990,9 @@ /* Micro Star International products */ #define USB_PRODUCT_MSI_BT_DONGLE 0x1967 /* Bluetooth USB dongle */ +/* Microtune, Inc. products */ +#define USB_PRODUCT_MICROTUNE_BT_DONGLE 0x1000 /* Bluetooth USB dongle */ + /* Mitsumi products */ #define USB_PRODUCT_MITSUMI_CDRRW 0x0000 /* CD-R/RW Drive */ #define USB_PRODUCT_MITSUMI_BT_DONGLE 0x641f /* Bluetooth USB dongle */ ==== //depot/projects/gdb/sys/dev/usb/usbdevs_data.h#13 (text+ko) ==== @@ -1,10 +1,10 @@ -/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.188 2004/06/05 21:36:06 sanpei Exp $ */ +/* $FreeBSD: src/sys/dev/usb/usbdevs_data.h,v 1.189 2004/06/19 22:17:34 sanpei Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * FreeBSD: src/sys/dev/usb/usbdevs,v 1.181 2004/06/05 21:33:59 sanpei Exp + * FreeBSD: src/sys/dev/usb/usbdevs,v 1.182 2004/06/19 22:16:03 sanpei Exp */ /* @@ -2248,6 +2248,12 @@ "Bluetooth USB dongle", }, { + USB_VENDOR_MICROTUNE, USB_PRODUCT_MICROTUNE_BT_DONGLE, + 0, + "Microtune, Inc.", + "Bluetooth USB dongle", + }, + { USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW, 0, "Mitsumi", @@ -5176,6 +5182,12 @@ NULL, }, { + USB_VENDOR_MICROTUNE, 0, + USB_KNOWNDEV_NOPROD, + "Microtune, Inc.", + NULL, + }, + { USB_VENDOR_QUALCOMM, 0, USB_KNOWNDEV_NOPROD, "Qualcomm", ==== //depot/projects/gdb/sys/i386/isa/npx.c#8 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.151 2004/06/18 02:10:55 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/isa/npx.c,v 1.152 2004/06/19 22:24:16 bde Exp $"); #include "opt_cpu.h" #include "opt_debug_npx.h" @@ -944,6 +944,10 @@ s = intr_disable(); if (td == PCPU_GET(fpcurthread)) { +#ifdef CPU_ENABLE_SSE + if (!cpu_fxsr) +#endif + fnclex(); /* As in npxdrop(). */ fpurstor(addr); intr_restore(s); } else {