From owner-p4-projects@FreeBSD.ORG Sun Mar 27 01:59:01 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 823CA16A4D0; Sun, 27 Mar 2005 01:59: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 32B2516A4CE for ; Sun, 27 Mar 2005 01:59:00 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F14E643D2D for ; Sun, 27 Mar 2005 01:58:59 +0000 (GMT) (envelope-from wsalamon@computer.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2R1wxXZ004035 for ; Sun, 27 Mar 2005 01:58:59 GMT (envelope-from wsalamon@computer.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2R1wxwe004032 for perforce@freebsd.org; Sun, 27 Mar 2005 01:58:59 GMT (envelope-from wsalamon@computer.org) Date: Sun, 27 Mar 2005 01:58:59 GMT Message-Id: <200503270158.j2R1wxwe004032@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to wsalamon@computer.org using -f From: Wayne Salamon To: Perforce Change Reviews Subject: PERFORCE change 73905 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, 27 Mar 2005 01:59:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=73905 Change 73905 by wsalamon@rickenbacker on 2005/03/27 01:58:31 Add a new trigger for the hard limit on disk space. 'Hard' means there are very few blocks left, and the audit daemon needs to take action. I am staging this change in two pieces: First the basics, not tested yet. Next, possible have the kernel suspend auditing when the hard limit is reached. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/audit_supt/auditd/auditd.c#9 edit .. //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#11 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#18 edit Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/audit_supt/auditd/auditd.c#9 (text+ko) ==== @@ -471,17 +471,16 @@ syslog(LOG_ERR, "Error swapping audit file\n"); } - /* - * check if the next dir has already reached its - * soft limit - */ - dirent = TAILQ_FIRST(&dir_q); - if(dirent->softlim == 1) { - /* all dirs have reached their soft limit */ - audit_warn_allsoft(); - } + /* + * check if the next dir has already reached its + * soft limit + */ + dirent = TAILQ_FIRST(&dir_q); + if(dirent->softlim == 1) { + /* all dirs have reached their soft limit */ + audit_warn_allsoft(); } - else { + } else { /* * Continue auditing to the current file * Also generate an allsoft warning @@ -491,13 +490,29 @@ } break; + case AUDITD_TRIGGER_NO_SPACE: + syslog(LOG_INFO, "Got no space trigger\n"); + + /* delete current dir, go on to next */ + TAILQ_REMOVE(&dir_q, dirent, dirs); + audit_warn_hard(dirent->dirname); + free(dirent->dirname); + free(dirent); + + if(swap_audit_file() == -1) + syslog(LOG_ERR, "Error swapping audit file\n"); + + /* We are out of log directories */ + audit_warn_allhard(++allhardcount); + + break; + case AUDITD_TRIGGER_OPEN_NEW : syslog(LOG_INFO, "Got open new trigger\n"); /* create a new file and swap with the one being * used in kernel */ - if(swap_audit_file() == -1) { + if(swap_audit_file() == -1) syslog(LOG_ERR, "Error swapping audit file\n"); - } break; case AUDITD_TRIGGER_READ_FILE : ==== //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#11 (text+ko) ==== @@ -44,6 +44,11 @@ */ #define AUDITD_TRIGGER_FILE "/dev/audit" +/* + * Minimum noumber of free blocks on the filesystem containing the audit + * log necessary to avoid a hard log rotation. + */ +#define AUDIT_HARD_LIMIT_FREE_BLOCKS 16 /* * Triggers for the audit daemon */ @@ -51,6 +56,7 @@ #define AUDITD_TRIGGER_OPEN_NEW 2 #define AUDITD_TRIGGER_READ_FILE 3 #define AUDITD_TRIGGER_CLOSE_AND_DIE 4 +#define AUDITD_TRIGGER_NO_SPACE 5 /* * Pre-defined audit IDs ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#18 (text+ko) ==== @@ -323,7 +323,6 @@ struct ucred *cred, struct thread *td) { int ret; - int trigger; long temp; struct au_record *bsm; struct vattr vattr; @@ -357,24 +356,34 @@ */ /* - * If we fall below percent free blocks, then trigger the - * audit daemon to do something about it. + * If we fall below minimum free blocks (hard limit), tell the audit + * daemon to force a rotation off of the file system. If we fall + * below the minimum percent free blocks (soft limit), then kindly + * suggest to the audit daemon to do something. */ - if (audit_qctrl.aq_minfree != 0) { - temp = mnt_stat->f_blocks / (100 / audit_qctrl.aq_minfree); - if (mnt_stat->f_bfree < temp) { - trigger = AUDITD_TRIGGER_LOW_SPACE; - ret = send_trigger(AUDITD_TRIGGER_LOW_SPACE); - if (ret != 0) { - printf( - "Failed audit_triggers(AUDIT_TRIGGER_LOW_SPACE): %d\n", ret); + if (mnt_stat->f_bfree < AUDIT_HARD_LIMIT_FREE_BLOCKS) { + ret = send_trigger(AUDITD_TRIGGER_NO_SPACE); + if (ret != 0) { + printf( + "Failed audit_triggers(AUDIT_TRIGGER_NO_SPACE): %d\n", ret); /* * XXX: What to do here? Disable auditing? * panic? */ + } + } else + if (audit_qctrl.aq_minfree != 0) { + temp = mnt_stat->f_blocks / (100 / + audit_qctrl.aq_minfree); + if (mnt_stat->f_bfree < temp) { + ret = send_trigger(AUDITD_TRIGGER_LOW_SPACE); + if (ret != 0) { + printf( + "Failed audit_triggers(AUDIT_TRIGGER_LOW_SPACE): %d\n", ret); + } } } - } + /* Check if the current log file is full; if so, call for * a log rotate. This is not an exact comparison; we may * write some records over the limit. If that's not @@ -384,7 +393,6 @@ (audit_file_rotate_wait == 0) && (vattr.va_size >= audit_fstat.af_filesz)) { audit_file_rotate_wait = 1; - trigger = AUDITD_TRIGGER_OPEN_NEW; ret = send_trigger(AUDITD_TRIGGER_OPEN_NEW); if (ret != 0) { printf( From owner-p4-projects@FreeBSD.ORG Sun Mar 27 21:40:18 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC92016A4D0; Sun, 27 Mar 2005 21:40: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 61CB916A4CE for ; Sun, 27 Mar 2005 21:40:17 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C4F843D39 for ; Sun, 27 Mar 2005 21:40:17 +0000 (GMT) (envelope-from trhodes@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2RLeGeT080185 for ; Sun, 27 Mar 2005 21:40:16 GMT (envelope-from trhodes@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2RLeGQv080181 for perforce@freebsd.org; Sun, 27 Mar 2005 21:40:16 GMT (envelope-from trhodes@freebsd.org) Date: Sun, 27 Mar 2005 21:40:16 GMT Message-Id: <200503272140.j2RLeGQv080181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trhodes@freebsd.org using -f From: Tom Rhodes To: Perforce Change Reviews Subject: PERFORCE change 73936 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, 27 Mar 2005 21:40:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=73936 Change 73936 by trhodes@trhodes_local on 2005/03/27 21:39:43 Update with comments provided by Wayne. Affected files ... .. //depot/projects/trustedbsd/audit3/lib/libc/sys/auditon.2#2 edit Differences ... ==== //depot/projects/trustedbsd/audit3/lib/libc/sys/auditon.2#2 (text+ko) ==== @@ -25,7 +25,7 @@ .\" $FreeBSD$ .\" .Dd February 17, 2005 -.Dt AUDIT 2 +.Dt AUDITON 2 .Os .Sh NAME .Nm auditon @@ -34,7 +34,7 @@ .Lb bsm .Sh SYNOPSIS .In sys/param.h -.In libbsm/audit.h +.In bsm/audit.h .Ft int .Fn auditon "struct thread *td, struct auditon_args *uap" .Sh DESCRIPTION @@ -49,6 +49,21 @@ .Bl -tag -width ".It Dv A_GETPINFO_ADDR" .It Dv A_SETPOLICY Set audit policy flags. +Currently, only +.Dv AUDIT_CNT +and +.Dv AUDIT_AHLT +are implemented. +In the +.Dv AUDIT_CNT +case, the action will continue regardless if +an event will not be audited. +In the +.Dv AUDIT_AHLT +case, a +.Xr panic 9 +will result if an event will not be written to the +audit log file. .It Dv A_SETKAUDIT Return .Er ENOSYS . @@ -77,15 +92,15 @@ .It Dv A_SETCLASS Set the event class preselection mask for the designated audit event. .It Dv A_SETPMASK -Set the default kernel preselection mask, this is used to preselect -non-attributable audit events. +Set the given process's audit selection masks for both +success and failure. .It Dv A_SETFSIZE -Return the maximum and default size of the audit file. +Set the maximum size of the audit log file. .It Dv A_SETKAUDIT -Toggle kernel event auditing to enable/disable. +Return +.Er ENOSYS . .It Dv A_GETCLASS Return the event to class mapping for the designated audit event. -The preselection class mask will be returned as well. .It Dv A_GETKAUDIT Return .Er ENOSYS . @@ -95,7 +110,8 @@ .It Dv A_GETPINFO_ADDR Return .Er ENOSYS . -A_GETKMASK +.It Dv A_GETKMASK +Return the current kernel preselection mask for non-attributable mask. .It Dv A_GETPOLICY Get the current audit policy flags. .It Dv A_GETQCTRL @@ -103,12 +119,21 @@ .It Dv A_SETQCTRL Set the kernel audit queue control parameters. .It Dv A_GETCWD -Return the current working directory as stored in the audit subsystem. +.\" [COMMENTED OUT]: Valid description, not yet implemented. +.\" Return the current working directory as stored in the audit subsystem. +Return +.Er ENOSYS . .It Dv A_GETCAR -Stores and returns the current active root as stored in the audit -subsystem. +.\" [COMMENTED OUT]: Valid description, not yet implemented. +.\"Stores and returns the current active root as stored in the audit +.\"subsystem. +Return +.Er ENOSYS . .It Dv A_GETSTAT -Return the statistics stored in the audit system. +.\" [COMMENTED OUT]: Valid description, not yet implemented. +.\"Return the statistics stored in the audit system. +Return +.Er ENOSYS . .It Dv A_GETCOND Return .Er ENOSYS . @@ -120,6 +145,8 @@ .Fn auditon function will fail if: .Bl -tag -width Er +.It Bq Er ENOSYS +Returned by options not yet implemented. .It Bq Er EFAULT A failure occurred while data transferred to or from the kernel failed. From owner-p4-projects@FreeBSD.ORG Mon Mar 28 01:47:30 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B3AD816A4D0; Mon, 28 Mar 2005 01:47: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 4AFED16A4CE for ; Mon, 28 Mar 2005 01:47:28 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E8FE143D48 for ; Mon, 28 Mar 2005 01:47:27 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2S1lRNC095552 for ; Mon, 28 Mar 2005 01:47:27 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2S1lRR2095549 for perforce@freebsd.org; Mon, 28 Mar 2005 01:47:27 GMT (envelope-from sam@freebsd.org) Date: Mon, 28 Mar 2005 01:47:27 GMT Message-Id: <200503280147.j2S1lRR2095549@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 73944 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, 28 Mar 2005 01:47:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=73944 Change 73944 by sam@sam_ebb on 2005/03/28 01:46:29 o IFC o resurrect ff support lost in a previous merge o forward merge some stuff from the vap branch to simplify ifconfig sharing Affected files ... .. //depot/projects/wifi/sys/net80211/_ieee80211.h#5 edit .. //depot/projects/wifi/sys/net80211/ieee80211.c#22 edit .. //depot/projects/wifi/sys/net80211/ieee80211_input.c#45 edit .. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#23 edit .. //depot/projects/wifi/sys/net80211/ieee80211_output.c#40 edit Differences ... ==== //depot/projects/wifi/sys/net80211/_ieee80211.h#5 (text+ko) ==== @@ -59,7 +59,8 @@ IEEE80211_M_IBSS = 0, /* IBSS (adhoc) station */ IEEE80211_M_AHDEMO = 3, /* Old lucent compatible adhoc demo */ IEEE80211_M_HOSTAP = 6, /* Software Access Point */ - IEEE80211_M_MONITOR = 8 /* Monitor mode */ + IEEE80211_M_MONITOR = 8, /* Monitor mode */ + IEEE80211_M_WDS = 2 /* WDS link */ }; /* ==== //depot/projects/wifi/sys/net80211/ieee80211.c#22 (text+ko) ==== @@ -625,6 +625,7 @@ case IEEE80211_M_HOSTAP: case IEEE80211_M_STA: case IEEE80211_M_MONITOR: + case IEEE80211_M_WDS: ic->ic_flags &= ~IEEE80211_F_IBSSON; break; case IEEE80211_M_IBSS: @@ -696,6 +697,11 @@ case IEEE80211_M_MONITOR: imr->ifm_active |= IFM_IEEE80211_MONITOR; break; + case IEEE80211_M_WDS: +#if 0 + imr->ifm_active |= IFM_IEEE80211_WDS; +#endif + break; } switch (ic->ic_curmode) { case IEEE80211_MODE_11A: ==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#45 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.33 2005/02/23 04:52:30 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.35 2005/03/16 20:39:05 sam Exp $"); #include #include @@ -109,7 +109,11 @@ static struct mbuf *ieee80211_defrag(struct ieee80211com *, struct ieee80211_node *, struct mbuf *); +static void ieee80211_deliver_data(struct ieee80211com *, + struct ieee80211_node *, struct mbuf *); static struct mbuf *ieee80211_decap(struct ieee80211com *, struct mbuf *); +static struct mbuf *ieee80211_decap_fastframe(struct ieee80211com *, + struct ieee80211_node *, struct mbuf *); static void ieee80211_node_pwrsave(struct ieee80211_node *, int enable); static void ieee80211_recv_pspoll(struct ieee80211com *, struct ieee80211_node *, struct mbuf *); @@ -134,7 +138,7 @@ struct ieee80211_frame *wh; struct ieee80211_key *key; struct ether_header *eh; - int len, hdrsize, off; + int hdrsize, off; u_int8_t dir, type, subtype; u_int8_t *bssid; u_int16_t rxseq; @@ -237,8 +241,7 @@ * discovered member of the IBSS. */ ni = ieee80211_fakeup_adhoc_node(&ic->ic_sta, - type == IEEE80211_FC0_TYPE_CTL ? - wh->i_addr1 : wh->i_addr2); + wh->i_addr2); if (ni == NULL) { /* NB: stat kept for alloc failure */ goto err; @@ -289,9 +292,9 @@ hdrsize = roundup(hdrsize, sizeof(u_int32_t)); if (m->m_len < hdrsize && (m = m_pullup(m, hdrsize)) == NULL) { - IEEE80211_DISCARD(ic, IEEE80211_MSG_ANY, - wh, "data", "too short: len %u, expecting %u", - m->m_pkthdr.len, hdrsize); + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, NULL, + "data too short: expecting %u", hdrsize); ic->ic_stats.is_rx_tooshort++; goto out; /* XXX */ } @@ -493,49 +496,32 @@ IEEE80211_NODE_STAT(ni, rx_data); IEEE80211_NODE_STAT_ADD(ni, rx_bytes, m->m_pkthdr.len); - /* perform as a bridge within the AP */ - if (ic->ic_opmode == IEEE80211_M_HOSTAP && - (ic->ic_flags & IEEE80211_F_NOBRIDGE) == 0) { - struct mbuf *m1 = NULL; +#define FF_LLC_SIZE (sizeof(struct ether_header) + sizeof(struct llc)) + if ((ni->ni_flags & IEEE80211_NODE_FF) && + m->m_pkthdr.len >= 3*FF_LLC_SIZE) { + struct llc *llc; - if (ETHER_IS_MULTICAST(eh->ether_dhost)) { - m1 = m_copypacket(m, M_DONTWAIT); - if (m1 == NULL) - ifp->if_oerrors++; - else - m1->m_flags |= M_MCAST; - } else { - /* XXX this dups work done in ieee80211_encap */ - /* check if destination is associated */ - struct ieee80211_node *ni1 = - ieee80211_find_node(&ic->ic_sta, - eh->ether_dhost); - if (ni1 != NULL) { - /* XXX check if authorized */ - if (ni1->ni_associd != 0) { - m1 = m; - m = NULL; - } - /* XXX statistic? */ - ieee80211_free_node(ni1); - } + /* + * Check for fast-frame tunnel encapsulation. + */ + if (m->m_len < FF_LLC_SIZE && + (m = m_pullup(m, FF_LLC_SIZE)) == NULL) { + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, "fast-frame", + "%s", "m_pullup(llc) failed"); + ic->ic_stats.is_rx_tooshort++; } - if (m1 != NULL) { - len = m1->m_pkthdr.len; - IF_ENQUEUE(&ifp->if_snd, m1); - if (m != NULL) - ifp->if_omcasts++; - ifp->if_obytes += len; + llc = (struct llc *)(mtod(m, u_int8_t *) + + sizeof(struct ether_header)); + if (llc->llc_snap.ether_type == htons(ATH_FF_ETH_TYPE)) { + m_adj(m, FF_LLC_SIZE); + m = ieee80211_decap_fastframe(ic, ni, m); + if (m == NULL) + return; } } - if (m != NULL) { - if (ni->ni_vlan != 0) { - /* attach vlan tag */ - /* XXX goto err? */ - VLAN_INPUT_TAG(ifp, m, ni->ni_vlan, goto out); - } - (*ifp->if_input)(ifp, m); - } +#undef FF_LLC_SIZE + ieee80211_deliver_data(ic, ni, m); return; case IEEE80211_FC0_TYPE_MGT: @@ -706,13 +692,72 @@ *(u_int16_t *) lwh->i_seq = *(u_int16_t *) wh->i_seq; } if (more_frag) { /* more to come, save */ - ni->ni_rxfragstamp = ticks; ni->ni_rxfrag[0] = mfrag; mfrag = NULL; } return mfrag; } +static void +ieee80211_deliver_data(struct ieee80211com *ic, + struct ieee80211_node *ni, struct mbuf *m) +{ + struct ether_header *eh = mtod(m, struct ether_header *); + struct ifnet *ifp = ic->ic_ifp; + int len; + + /* perform as a bridge within the AP */ + if (ic->ic_opmode == IEEE80211_M_HOSTAP && + (ic->ic_flags & IEEE80211_F_NOBRIDGE) == 0) { + struct mbuf *m1 = NULL; + + if (ETHER_IS_MULTICAST(eh->ether_dhost)) { + m1 = m_copypacket(m, M_DONTWAIT); + if (m1 == NULL) + ifp->if_oerrors++; + else + m1->m_flags |= M_MCAST; + } else { + /* XXX this dups work done in ieee80211_encap */ + /* check if destination is associated */ + struct ieee80211_node *ni1 = + ieee80211_find_node(&ic->ic_sta, + eh->ether_dhost); + if (ni1 != NULL) { + /* XXX check if authorized */ + if (ni1->ni_associd != 0) { + m1 = m; + m = NULL; + } + /* XXX statistic? */ + ieee80211_free_node(ni1); + } + } + if (m1 != NULL) { + len = m1->m_pkthdr.len; + IF_ENQUEUE(&ifp->if_snd, m1); + if (m != NULL) + ifp->if_omcasts++; + ifp->if_obytes += len; + } + } + if (m != NULL) { + if (ni->ni_vlan != 0) { + /* attach vlan tag */ + /* XXX goto err? */ + VLAN_INPUT_TAG(ifp, m, ni->ni_vlan, goto out); + } + (*ifp->if_input)(ifp, m); + } + return; + out: + if (m != NULL) { + if (ic->ic_rawbpf) + bpf_mtap(ic->ic_rawbpf, m); + m_freem(m); + } +} + static struct mbuf * ieee80211_decap(struct ieee80211com *ic, struct mbuf *m) { @@ -815,6 +860,104 @@ } /* + * Decap a frame encapsulated in a fast-frame. + */ +static struct mbuf * +ieee80211_decap1(struct mbuf *m, int *framelen) +{ +#define FF_LLC_SIZE (sizeof(struct ether_header) + sizeof(struct llc)) + struct ether_header *eh; + struct llc *llc; + + /* + * The frame has an 802.3 header followed by an 802.2 + * LLC header. The encapsulated frame length is in the + * first header type field; save that and overwrite it + * with the true type field found in the second. Then + * copy the 802.3 header up to where it belongs and + * adjust the mbuf contents to remove the void. + */ + if (m->m_len < FF_LLC_SIZE && (m = m_pullup(m, FF_LLC_SIZE)) == NULL) + return NULL; + eh = mtod(m, struct ether_header *); /* 802.3 header is first */ + llc = (struct llc *)&eh[1]; /* 802.2 header follows */ + *framelen = ntohs(eh->ether_type) /* encap'd frame size */ + + sizeof(struct ether_header) - sizeof(struct llc); + eh->ether_type = llc->llc_un.type_snap.ether_type; + ovbcopy(eh, mtod(m, u_int8_t *) + sizeof(struct llc), + sizeof(struct ether_header)); + m_adj(m, sizeof(struct llc)); + return m; +#undef FF_LLC_SIZE +} + +/* + * Decap the encapsulated frame pair and dispatch the first + * for delivery. The second frame is returned for delivery + * via the normal path. + */ +static struct mbuf * +ieee80211_decap_fastframe(struct ieee80211com *ic, + struct ieee80211_node *ni, struct mbuf *m) +{ +#define MS(x,f) (((x) & f) >> f##_S) + u_int32_t ath; + struct mbuf *n; + int framelen; + + m_copydata(m, 0, sizeof(u_int32_t), (caddr_t) &ath); + if (MS(ath, ATH_FF_PROTO) != ATH_FF_PROTO_L2TUNNEL) { + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, "fast-frame", + "unsupport tunnel protocol, header 0x%x", ath); + ic->ic_stats.is_ff_badhdr++; + m_freem(m); + return NULL; + } + /* NB: skip header and alignment padding */ + m_adj(m, roundup(sizeof(u_int32_t) - 2, 4) + 2); + + ic->ic_stats.is_ff_decap++; + + /* + * Decap the first frame, bust it apart from the + * second and deliver; then decap the second frame + * and return it to the caller for normal delivery. + */ + m = ieee80211_decap1(m, &framelen); + if (m == NULL) { + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, "fast-frame", "%s", "first decap failed"); + ic->ic_stats.is_ff_tooshort++; + return NULL; + } + n = m_split(m, framelen, M_NOWAIT); + if (n == NULL) { + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, "fast-frame", + "%s", "unable to split encapsulated frames"); + ic->ic_stats.is_ff_split++; + m_freem(m); /* NB: must reclaim */ + return NULL; + } + ieee80211_deliver_data(ic, ni, m); /* 1st of pair */ + + /* + * Decap second frame. + */ + m_adj(n, roundup2(framelen, 4) - framelen); /* padding */ + n = ieee80211_decap1(n, &framelen); + if (n == NULL) { + IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, + ni->ni_macaddr, "fast-frame", "%s", "second decap failed"); + ic->ic_stats.is_ff_tooshort++; + } + /* XXX verify framelen against mbuf contents */ + return n; /* 2nd delivered by caller */ +#undef MS +} + +/* * Install received rate set information in the node's state block. */ static int @@ -864,6 +1007,7 @@ break; case IEEE80211_M_AHDEMO: + case IEEE80211_M_WDS: /* should not come here */ break; @@ -1007,6 +1151,7 @@ case IEEE80211_M_MONITOR: case IEEE80211_M_AHDEMO: case IEEE80211_M_IBSS: + case IEEE80211_M_WDS: IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_AUTH, ni->ni_macaddr, "shared key auth", "bad operating mode %u", ic->ic_opmode); @@ -1613,6 +1758,40 @@ #undef MS } +static int +ieee80211_parse_athparams(struct ieee80211_node *ni, u_int8_t *frm, + const struct ieee80211_frame *wh) +{ + struct ieee80211com *ic = ni->ni_ic; + const struct ieee80211_ath_ie *ath; + u_int len = frm[1]; + int caps; + + if (len < sizeof(struct ieee80211_ath_ie)-2) { + IEEE80211_DISCARD_IE(ic, + IEEE80211_MSG_ELEMID | IEEE80211_MSG_SUPERG, + wh, "Atheros", "too short, len %u", len); + return -1; + } + ath = (const struct ieee80211_ath_ie *)frm; + caps = 0; + if ((ath->ath_capability & ATHEROS_CAP_TURBO_PRIME) && + (ic->ic_flags & IEEE80211_F_TURBOP)) + caps |= IEEE80211_NODE_TURBOP; + if ((ath->ath_capability & ATHEROS_CAP_FAST_FRAME) && + (ic->ic_flags & IEEE80211_F_FF)) + caps |= IEEE80211_NODE_FF; + if ((ni->ni_flags ^ caps) & IEEE80211_NODE_ATH) { + IEEE80211_DPRINTF(ic, IEEE80211_MSG_SUPERG, + "[%s] ath ie: caps 0x%x defkeyix 0x%x, use 0x%x\n", + ether_sprintf(ni->ni_macaddr), + ath->ath_capability, LE_READ_2(ath->ath_defkeyix), caps); + ni->ni_flags = (ni->ni_flags &~ IEEE80211_NODE_ATH) | caps; + return 1; + } else + return 0; /* NB: no change */ +} + static void ieee80211_saveie(u_int8_t **iep, const u_int8_t *ie) { @@ -1671,7 +1850,7 @@ #define ISREASSOC(_st) ((_st) == IEEE80211_FC0_SUBTYPE_REASSOC_RESP) struct ieee80211_frame *wh; u_int8_t *frm, *efrm; - u_int8_t *ssid, *rates, *xrates, *wpa, *wme; + u_int8_t *ssid, *rates, *xrates, *wpa, *wme, *ath; int reassoc, resp, allocbs; wh = mtod(m0, struct ieee80211_frame *); @@ -1712,12 +1891,13 @@ * [tlv] extended supported rates * [tlv] WME * [tlv] WPA or RSN + * [tlv] Atheros capabilities */ IEEE80211_VERIFY_LENGTH(efrm - frm, 12); tstamp = frm; frm += 8; bintval = le16toh(*(u_int16_t *)frm); frm += 2; capinfo = le16toh(*(u_int16_t *)frm); frm += 2; - ssid = rates = xrates = country = wpa = wme = NULL; + ssid = rates = xrates = country = wpa = wme = ath = NULL; bchan = ieee80211_chan2ieee(ic, ic->ic_bss->ni_chan); chan = bchan; fhdwell = 0; @@ -1777,7 +1957,8 @@ wpa = frm; else if (iswmeparam(frm) || iswmeinfo(frm)) wme = frm; - /* XXX Atheros OUI support */ + else if (isatherosoui(frm)) + ath = frm; break; default: IEEE80211_DISCARD_IE(ic, IEEE80211_MSG_ELEMID, @@ -1870,6 +2051,8 @@ if (wme != NULL && ieee80211_parse_wmeparams(ic, wme, wh) > 0) ieee80211_wme_updateparams(ic); + if (ath != NULL) + ieee80211_parse_athparams(ni, ath, wh); /* NB: don't need the rest of this */ if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) return; @@ -1945,6 +2128,10 @@ ieee80211_saveie(&ni->ni_wme_ie, wme); if (wpa != NULL) ieee80211_saveie(&ni->ni_wpa_ie, wpa); + if (ath != NULL) { + ieee80211_saveie(&ni->ni_ath_ie, ath); + (void) ieee80211_parse_athparams(ni, ath, wh); + } /* NB: must be after ni_chan is setup */ ieee80211_setup_rates(ic, ni, rates, xrates, IEEE80211_F_DOSORT); break; @@ -1969,8 +2156,9 @@ * [tlv] ssid * [tlv] supported rates * [tlv] extended supported rates + * [tlv] Atheros capabilities */ - ssid = rates = xrates = NULL; + ssid = rates = xrates = ath = NULL; while (frm < efrm) { switch (*frm) { case IEEE80211_ELEMID_SSID: @@ -1982,20 +2170,16 @@ case IEEE80211_ELEMID_XRATES: xrates = frm; break; + case IEEE80211_ELEMID_VENDOR: + if (isatherosoui(frm)) + ath = frm; + break; } frm += frm[1] + 2; } IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE); IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN); IEEE80211_VERIFY_SSID(ic->ic_bss, ssid); - if ((ic->ic_flags & IEEE80211_F_HIDESSID) && ssid[1] == 0) { - IEEE80211_DISCARD(ic, IEEE80211_MSG_INPUT, - wh, ieee80211_mgt_subtype_name[subtype >> - IEEE80211_FC0_SUBTYPE_SHIFT], - "%s", "no ssid with ssid suppression enabled"); - ic->ic_stats.is_rx_ssidmismatch++; /*XXX*/ - return; - } if (ni == ic->ic_bss) { if (ic->ic_opmode == IEEE80211_M_IBSS) { @@ -2018,6 +2202,10 @@ "[%s] recv probe req\n", ether_sprintf(wh->i_addr2)); ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; + if (ath != NULL) { + ieee80211_saveie(&ni->ni_ath_ie, ath); + (void) ieee80211_parse_athparams(ni, ath, wh); + } rate = ieee80211_setup_rates(ic, ni, rates, xrates, IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE | IEEE80211_F_DONEGO | IEEE80211_F_DODEL); @@ -2124,6 +2312,7 @@ * [tlv] supported rates * [tlv] extended supported rates * [tlv] WPA or RSN + * [tlv] Atheros capabilities */ IEEE80211_VERIFY_LENGTH(efrm - frm, (reassoc ? 10 : 4)); if (!IEEE80211_ADDR_EQ(wh->i_addr3, ic->ic_bss->ni_bssid)) { @@ -2138,7 +2327,7 @@ bintval = le16toh(*(u_int16_t *)frm); frm += 2; if (reassoc) frm += 6; /* ignore current AP info */ - ssid = rates = xrates = wpa = wme = NULL; + ssid = rates = xrates = wpa = wme = ath = NULL; while (frm < efrm) { switch (*frm) { case IEEE80211_ELEMID_SSID: @@ -2160,7 +2349,8 @@ wpa = frm; } else if (iswmeinfo(frm)) wme = frm; - /* XXX Atheros OUI support */ + else if (isatherosoui(frm)) + ath = frm; break; } frm += frm[1] + 2; @@ -2184,6 +2374,20 @@ ic->ic_stats.is_rx_assoc_notauth++; return; } + /* assert right associstion security credentials */ + if (wpa == NULL && (ic->ic_flags & IEEE80211_F_WPA)) { + IEEE80211_DPRINTF(ic, + IEEE80211_MSG_ASSOC | IEEE80211_MSG_WPA, + "[%s] no WPA/RSN IE in association request\n", + ether_sprintf(wh->i_addr2)); + IEEE80211_SEND_MGMT(ic, ni, + IEEE80211_FC0_SUBTYPE_DEAUTH, + IEEE80211_REASON_RSN_REQUIRED); + ieee80211_node_leave(ic, ni); + /* XXX distinguish WPA/RSN? */ + ic->ic_stats.is_rx_assoc_badwpaie++; + return; + } if (wpa != NULL) { /* * Parse WPA information element. Note that @@ -2287,6 +2491,23 @@ ni->ni_wme_ie = NULL; ni->ni_flags &= ~IEEE80211_NODE_QOS; } + if (ath != NULL) { + /* + * Record ATH parameters for station, mark + * node with appropriate capabilities, and + * record the information element for + * applications that require it. + */ + ieee80211_saveie(&ni->ni_ath_ie, ath); + (void) ieee80211_parse_athparams(ni, ath, wh); + } else if (ni->ni_ath_ie != NULL) { + /* + * Flush any state from a previous association. + */ + FREE(ni->ni_ath_ie, M_DEVBUF); + ni->ni_ath_ie = NULL; + ni->ni_flags &= ~IEEE80211_NODE_ATH; + } ieee80211_node_join(ic, ni, resp); break; } @@ -2330,7 +2551,7 @@ associd = le16toh(*(u_int16_t *)frm); frm += 2; - rates = xrates = wpa = wme = NULL; + rates = xrates = wme = NULL; while (frm < efrm) { switch (*frm) { case IEEE80211_ELEMID_RATES: @@ -2398,13 +2619,15 @@ else ic->ic_flags &= ~IEEE80211_F_USEPROT; IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC, - "[%s] %sassoc success: %s preamble, %s slot time%s%s\n", + "[%s] %sassoc success: %s preamble, %s slot time%s%s%s%s\n", ether_sprintf(wh->i_addr2), ISREASSOC(subtype) ? "re" : "", ic->ic_flags&IEEE80211_F_SHPREAMBLE ? "short" : "long", ic->ic_flags&IEEE80211_F_SHSLOT ? "short" : "long", ic->ic_flags&IEEE80211_F_USEPROT ? ", protection" : "", - ni->ni_flags & IEEE80211_NODE_QOS ? ", QoS" : "" + ni->ni_flags & IEEE80211_NODE_QOS ? ", QoS" : "", + ni->ni_flags & IEEE80211_NODE_FF ? ", fast-frames" : "", + ni->ni_flags & IEEE80211_NODE_TURBOP ? ", turbo'" : "" ); ieee80211_new_state(ic, IEEE80211_S_RUN, subtype); break; ==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.h#23 (text+ko) ==== @@ -360,6 +360,7 @@ }; #define SIOCS80211 _IOW('i', 234, struct ieee80211req) #define SIOCG80211 _IOWR('i', 235, struct ieee80211req) +#define SIOCG80211STATS _IOWR('i', 236, struct ifreq) #define IEEE80211_IOC_SSID 1 #define IEEE80211_IOC_NUMSSIDS 2 @@ -453,7 +454,10 @@ /* variable length SSID followed by IE data */ }; -#define SIOCG80211STATS _IOWR('i', 236, struct ifreq) +struct ieee80211_clone_params { + char icp_parent[IFNAMSIZ]; /* parent device */ + int icp_opmode; /* operating mode */ +}; #endif /* __FreeBSD__ */ #endif /* _NET80211_IEEE80211_IOCTL_H_ */ ==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#40 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.20 2005/02/10 17:00:48 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.21 2005/03/16 20:42:00 sam Exp $"); #include "opt_inet.h" @@ -233,7 +233,7 @@ v_wme_ac = 0; if (ni->ni_vlan != 0) { struct m_tag *mtag = VLAN_OUTPUT_TAG(ic->ic_ifp, m); - if (mtag != NULL) { + if (mtag == NULL) { IEEE80211_NODE_STAT(ni, tx_novlantag); return 1; } @@ -593,6 +593,7 @@ IEEE80211_ADDR_COPY(wh->i_addr3, eh.ether_shost); break; case IEEE80211_M_MONITOR: + case IEEE80211_M_WDS: goto bad; } if (addqos) { From owner-p4-projects@FreeBSD.ORG Mon Mar 28 04:20:32 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 176A716A4D0; Mon, 28 Mar 2005 04:20: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 D75F016A4CE for ; Mon, 28 Mar 2005 04:20:31 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C2C5E43D49 for ; Mon, 28 Mar 2005 04:20:31 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2S4KVxJ001207 for ; Mon, 28 Mar 2005 04:20:31 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2S4KVfc001199 for perforce@freebsd.org; Mon, 28 Mar 2005 04:20:31 GMT (envelope-from sam@freebsd.org) Date: Mon, 28 Mar 2005 04:20:31 GMT Message-Id: <200503280420.j2S4KVfc001199@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 73945 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, 28 Mar 2005 04:20:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=73945 Change 73945 by sam@sam_ebb on 2005/03/28 04:19:38 restore chunk lost in last merge fixup Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_input.c#46 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#46 (text+ko) ==== @@ -2180,6 +2180,14 @@ IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE); IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN); IEEE80211_VERIFY_SSID(ic->ic_bss, ssid); + if ((ic->ic_flags & IEEE80211_F_HIDESSID) && ssid[1] == 0) { + IEEE80211_DISCARD(ic, IEEE80211_MSG_INPUT, + wh, ieee80211_mgt_subtype_name[subtype >> + IEEE80211_FC0_SUBTYPE_SHIFT], + "%s", "no ssid with ssid suppression enabled"); + ic->ic_stats.is_rx_ssidmismatch++; /*XXX*/ + return; + } if (ni == ic->ic_bss) { if (ic->ic_opmode == IEEE80211_M_IBSS) { From owner-p4-projects@FreeBSD.ORG Mon Mar 28 18:05:24 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B23516A4D0; Mon, 28 Mar 2005 18:05: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 CF90C16A4CE for ; Mon, 28 Mar 2005 18:05:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B27F43D1F for ; Mon, 28 Mar 2005 18:05:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2SI5NlJ061214 for ; Mon, 28 Mar 2005 18:05:23 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2SI5Nn7061211 for perforce@freebsd.org; Mon, 28 Mar 2005 18:05:23 GMT (envelope-from jhb@freebsd.org) Date: Mon, 28 Mar 2005 18:05:23 GMT Message-Id: <200503281805.j2SI5Nn7061211@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 73981 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, 28 Mar 2005 18:05:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=73981 Change 73981 by jhb@jhb_twclab on 2005/03/28 18:04:56 Rework yet again to fix atomic.c build. Affected files ... .. //depot/projects/smpng/sys/i386/include/atomic.h#25 edit Differences ... ==== //depot/projects/smpng/sys/i386/include/atomic.h#25 (text+ko) ==== @@ -69,8 +69,7 @@ */ #if defined(KLD_MODULE) #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ -ATOMIC_ACQ(NAME, TYPE) +void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); @@ -104,14 +103,12 @@ : "=m" (*p) \ : CONS (V), "m" (*p)); \ } \ -ATOMIC_ACQ(NAME, TYPE); \ struct __hack #else /* !__GNUCLIKE_ASM */ #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -extern void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ -ATOMIC_ACQ(NAME, TYPE) +extern void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) #endif /* __GNUCLIKE_ASM */ @@ -242,15 +239,6 @@ #endif /* KLD_MODULE */ -#define ATOMIC_ACQ(NAME, TYPE) \ -static __inline void \ -atomic_##NAME##_acq_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ -{ \ - atomic_##NAME##_##TYPE(p, v); \ - __asm __volatile("" ::: "memory"); \ -} \ -struct __hack - ATOMIC_ASM(set, char, "orb %b1,%0", "iq", v); ATOMIC_ASM(clear, char, "andb %b1,%0", "iq", ~v); ATOMIC_ASM(add, char, "addb %b1,%0", "iq", v); @@ -279,6 +267,7 @@ #undef ATOMIC_ASM #undef ATOMIC_STORE_LOAD +#if !defined(WANT_FUNCTIONS) #define atomic_set_rel_char atomic_set_char #define atomic_clear_rel_char atomic_clear_char #define atomic_add_rel_char atomic_add_char @@ -354,7 +343,35 @@ #define atomic_cmpset_rel_32 atomic_cmpset_rel_int #define atomic_readandclear_32 atomic_readandclear_int -#if !defined(WANT_FUNCTIONS) +#define ATOMIC_ACQ(NAME, TYPE) \ +static __inline void \ +atomic_##NAME##_acq_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + atomic_##NAME##_##TYPE(p, v); \ + __asm __volatile("" ::: "memory"); \ +} \ +struct __hack + +ATOMIC_ACQ(set, char); +ATOMIC_ACQ(clear, char); +ATOMIC_ACQ(add, char); +ATOMIC_ACQ(subtract, char); + +ATOMIC_ACQ(set, short); +ATOMIC_ACQ(clear, short); +ATOMIC_ACQ(add, short); +ATOMIC_ACQ(subtract, short); + +ATOMIC_ACQ(set, int); +ATOMIC_ACQ(clear, int); +ATOMIC_ACQ(add, int); +ATOMIC_ACQ(subtract, int); + +ATOMIC_ACQ(set, long); +ATOMIC_ACQ(clear, long); +ATOMIC_ACQ(add, long); +ATOMIC_ACQ(subtract, long); + static __inline int atomic_cmpset_acq_int(volatile u_int *dst, u_int exp, u_int src) { From owner-p4-projects@FreeBSD.ORG Mon Mar 28 18:12:34 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3E6C616A4D0; Mon, 28 Mar 2005 18:12: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 18DA516A4CE for ; Mon, 28 Mar 2005 18:12:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B025843D46 for ; Mon, 28 Mar 2005 18:12:33 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2SICXXU061624 for ; Mon, 28 Mar 2005 18:12:33 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2SICXpv061621 for perforce@freebsd.org; Mon, 28 Mar 2005 18:12:33 GMT (envelope-from jhb@freebsd.org) Date: Mon, 28 Mar 2005 18:12:33 GMT Message-Id: <200503281812.j2SICXpv061621@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 73984 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, 28 Mar 2005 18:12:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=73984 Change 73984 by jhb@jhb_slimer on 2005/03/28 18:11:33 Fix everyone but arm to make atomic_*_ptr() operator on a pointer rather than a void. This is more consistent with the rest of the interface. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#14 edit .. //depot/projects/smpng/sys/amd64/include/atomic.h#10 edit .. //depot/projects/smpng/sys/i386/include/atomic.h#26 edit .. //depot/projects/smpng/sys/ia64/include/atomic.h#5 edit .. //depot/projects/smpng/sys/powerpc/include/atomic.h#8 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#14 (text+ko) ==== @@ -381,7 +381,7 @@ #define atomic_cmpset_long atomic_cmpset_64 static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_long((volatile u_long *)dst, (u_long)exp, @@ -430,7 +430,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_64 static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, @@ -438,7 +438,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, @@ -446,32 +446,32 @@ } static __inline void * -atomic_load_acq_ptr(volatile void *p) +atomic_load_acq_ptr(volatile void **p) { return (void *)atomic_load_acq_long((volatile u_long *)p); } static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) +atomic_store_rel_ptr(volatile void **p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v);\ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v);\ } ==== //depot/projects/smpng/sys/amd64/include/atomic.h#10 (text+ko) ==== @@ -322,7 +322,7 @@ #if !defined(WANT_FUNCTIONS) static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_long((volatile u_long *)dst, @@ -330,7 +330,7 @@ } static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_acq_long((volatile u_long *)dst, @@ -338,7 +338,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_rel_long((volatile u_long *)dst, @@ -346,7 +346,7 @@ } static __inline void * -atomic_load_acq_ptr(volatile void *p) +atomic_load_acq_ptr(volatile void **p) { /* * The apparently-bogus cast to intptr_t in the following is to @@ -356,26 +356,26 @@ } static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) +atomic_store_rel_ptr(volatile void **p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v);\ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v);\ } ==== //depot/projects/smpng/sys/i386/include/atomic.h#26 (text+ko) ==== @@ -383,7 +383,7 @@ } static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_int((volatile u_int *)dst, (u_int)exp, @@ -391,7 +391,7 @@ } static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_acq_int((volatile u_int *)dst, (u_int)exp, @@ -399,7 +399,7 @@ } static __inline void * -atomic_load_acq_ptr(volatile void *p) +atomic_load_acq_ptr(volatile void **p) { /* * The apparently-bogus cast to intptr_t in the following is to @@ -409,26 +409,26 @@ } static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) +atomic_store_rel_ptr(volatile void **p, void *v) { atomic_store_rel_int((volatile u_int *)p, (u_int)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_int((volatile u_int *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_acq_int((volatile u_int *)p, v);\ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_rel_int((volatile u_int *)p, v);\ } ==== //depot/projects/smpng/sys/ia64/include/atomic.h#5 (text+ko) ==== @@ -301,7 +301,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_64 static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) { int ret; ret = atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, @@ -310,7 +310,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) { int ret; ret = atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, @@ -321,32 +321,32 @@ #define atomic_cmpset_ptr atomic_cmpset_acq_ptr static __inline void * -atomic_load_acq_ptr(volatile void *p) +atomic_load_acq_ptr(volatile void **p) { return ((void *)atomic_load_acq_long((volatile u_long *)p)); } static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) +atomic_store_rel_ptr(volatile void **p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ - atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ + atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ - atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ + atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v); \ } \ \ static __inline void \ - atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ + atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v); \ } ==== //depot/projects/smpng/sys/powerpc/include/atomic.h#8 (text+ko) ==== @@ -406,7 +406,7 @@ #endif /* 0 */ static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_32((volatile uint32_t *)dst, (uint32_t)exp, @@ -437,7 +437,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_32 static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_acq_32((volatile uint32_t *)dst, @@ -445,7 +445,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) { return (atomic_cmpset_rel_32((volatile uint32_t *)dst, @@ -453,14 +453,14 @@ } static __inline void * -atomic_load_acq_ptr(volatile void *p) +atomic_load_acq_ptr(volatile void **p) { return (void *)atomic_load_acq_32((volatile uint32_t *)p); } static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) +atomic_store_rel_ptr(volatile void **p, void *v) { atomic_store_rel_32((volatile uint32_t *)p, (uint32_t)v); @@ -468,19 +468,19 @@ #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_32((volatile uint32_t *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_acq_32((volatile uint32_t *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ { \ atomic_##NAME##_rel_32((volatile uint32_t *)p, v); \ } From owner-p4-projects@FreeBSD.ORG Mon Mar 28 22:27:12 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9126C16A4D0; Mon, 28 Mar 2005 22:27: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 65A4C16A4CE for ; Mon, 28 Mar 2005 22:27:11 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E0E4943D1F for ; Mon, 28 Mar 2005 22:27:10 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2SMRAZl079634 for ; Mon, 28 Mar 2005 22:27:10 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2SMRA3W079631 for perforce@freebsd.org; Mon, 28 Mar 2005 22:27:10 GMT (envelope-from jhb@freebsd.org) Date: Mon, 28 Mar 2005 22:27:10 GMT Message-Id: <200503282227.j2SMRA3W079631@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74002 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, 28 Mar 2005 22:27:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=74002 Change 74002 by jhb@jhb_twclab on 2005/03/28 22:26:38 Fix the mutex code and panic_thread stuff to be happy with the fixed atomic_foo_ptr() prototypes. Affected files ... .. //depot/projects/smpng/sys/kern/kern_fork.c#91 edit .. //depot/projects/smpng/sys/kern/kern_mutex.c#92 edit .. //depot/projects/smpng/sys/kern/kern_shutdown.c#55 edit .. //depot/projects/smpng/sys/kern/sched_4bsd.c#46 edit .. //depot/projects/smpng/sys/kern/sched_ule.c#53 edit .. //depot/projects/smpng/sys/kern/subr_witness.c#128 edit .. //depot/projects/smpng/sys/sys/_mutex.h#13 edit .. //depot/projects/smpng/sys/sys/mutex.h#49 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_fork.c#91 (text+ko) ==== @@ -762,7 +762,7 @@ td->td_oncpu = PCPU_GET(cpuid); KASSERT(p->p_state == PRS_NORMAL, ("executing process is still new")); - sched_lock.mtx_lock = (uintptr_t)td; + sched_lock.mtx_lock = td; mtx_assert(&sched_lock, MA_OWNED | MA_NOTRECURSED); cpu_critical_fork_exit(); CTR4(KTR_PROC, "fork_exit: new thread %p (kse %p, pid %d, %s)", ==== //depot/projects/smpng/sys/kern/kern_mutex.c#92 (text+ko) ==== @@ -86,10 +86,10 @@ /* * Internal utility macros. */ -#define mtx_unowned(m) ((m)->mtx_lock == MTX_UNOWNED) +#define mtx_unowned(m) ((m)->mtx_lock == (void *)MTX_UNOWNED) #define mtx_owner(m) (mtx_unowned((m)) ? NULL \ - : (struct thread *)((m)->mtx_lock & MTX_FLAGMASK)) + : (struct thread *)((uintptr_t)(m)->mtx_lock & ~MTX_FLAGMASK)) /* * Lock classes for sleep and spin mutexes. @@ -473,7 +473,7 @@ atomic_add_int(&m->mtx_contest_holding, 1); #endif turnstile_lock(&m->mtx_object); - v = m->mtx_lock; + v = (uintptr_t)m->mtx_lock; /* * Check if the lock has been released while spinning for @@ -519,7 +519,7 @@ * If the current owner of the lock is executing on another * CPU, spin instead of blocking. */ - owner = (struct thread *)(v & MTX_FLAGMASK); + owner = (struct thread *)(v & ~MTX_FLAGMASK); #ifdef ADAPTIVE_GIANT if (TD_IS_RUNNING(owner)) { #else @@ -600,7 +600,7 @@ if (apic_hack) APIC_IPI_SPINWAIT_ENTER(); #endif - while (m->mtx_lock != MTX_UNOWNED) { + while (m->mtx_lock != (void *)MTX_UNOWNED) { if (i++ < 10000000) { cpu_spinwait(); continue; @@ -609,7 +609,7 @@ DELAY(1); else if (!kdb_active) { printf("spin lock %s held by %p for > 5 seconds\n", - m->mtx_object.lo_name, (void *)m->mtx_lock); + m->mtx_object.lo_name, m->mtx_lock); #ifdef WITNESS witness_display_spinlock(&m->mtx_object, mtx_owner(m)); @@ -683,7 +683,7 @@ if (LOCK_LOG_TEST(&m->mtx_object, opts)) CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p not held", m); } else { - m->mtx_lock = MTX_CONTESTED; + m->mtx_lock = (void *)MTX_CONTESTED; if (LOCK_LOG_TEST(&m->mtx_object, opts)) CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p still contested", m); @@ -861,7 +861,7 @@ if (opts & MTX_DUPOK) lock->lo_flags |= LO_DUPOK; - m->mtx_lock = MTX_UNOWNED; + m->mtx_lock = (void *)MTX_UNOWNED; LOCK_LOG_INIT(lock, opts); @@ -883,7 +883,7 @@ if (!mtx_owned(m)) MPASS(mtx_unowned(m)); else { - MPASS((m->mtx_lock & (MTX_RECURSED|MTX_CONTESTED)) == 0); + MPASS(((uintptr_t)m->mtx_lock & (MTX_FLAGMASK)) == 0); /* Tell witness this isn't locked to make it happy. */ WITNESS_UNLOCK(&m->mtx_object, LOP_EXCLUSIVE, __FILE__, ==== //depot/projects/smpng/sys/kern/kern_shutdown.c#55 (text+ko) ==== @@ -475,7 +475,7 @@ } #ifdef SMP -static struct thread *panic_thread = NULL; +static volatile void *panic_thread = NULL; #endif /* @@ -500,8 +500,8 @@ * panic_thread if we are spinning in case the panic on the first * CPU is canceled. */ - if (panic_thread != curthread) - while (atomic_cmpset_ptr(&panic_thread, NULL, curthread) == 0) + if (panic_thread != td) + while (atomic_cmpset_ptr(&panic_thread, NULL, td) == 0) while (panic_thread != NULL) cpu_spinwait(); #endif ==== //depot/projects/smpng/sys/kern/sched_4bsd.c#46 (text+ko) ==== @@ -961,7 +961,7 @@ if (td != newtd) cpu_switch(td, newtd); - sched_lock.mtx_lock = (uintptr_t)td; + sched_lock.mtx_lock = td; td->td_oncpu = PCPU_GET(cpuid); } ==== //depot/projects/smpng/sys/kern/sched_ule.c#53 (text+ko) ==== @@ -1393,7 +1393,7 @@ newtd = choosethread(); if (td != newtd) cpu_switch(td, newtd); - sched_lock.mtx_lock = (uintptr_t)td; + sched_lock.mtx_lock = td; td->td_oncpu = PCPU_GET(cpuid); } ==== //depot/projects/smpng/sys/kern/subr_witness.c#128 (text+ko) ==== @@ -407,7 +407,7 @@ LO_INITIALIZED, /* mtx_object.lo_flags */ { NULL, NULL }, /* mtx_object.lo_list */ NULL }, /* mtx_object.lo_witness */ - MTX_UNOWNED, 0 /* mtx_lock, mtx_recurse */ + (void *)MTX_UNOWNED, 0 /* mtx_lock, mtx_recurse */ }; /* ==== //depot/projects/smpng/sys/sys/_mutex.h#13 (text+ko) ==== @@ -36,8 +36,8 @@ */ struct mtx { struct lock_object mtx_object; /* Common lock properties. */ - volatile uintptr_t mtx_lock; /* Owner and flags. */ - volatile u_int mtx_recurse; /* Number of recursive holds. */ + volatile void * mtx_lock; /* Owner and flags. */ + u_int mtx_recurse; /* Number of recursive holds. */ #ifdef MUTEX_PROFILING /* ==== //depot/projects/smpng/sys/sys/mutex.h#49 (text+ko) ==== @@ -71,7 +71,7 @@ #define MTX_RECURSED 0x00000001 /* lock recursed (for MTX_DEF only) */ #define MTX_CONTESTED 0x00000002 /* lock contested (for MTX_DEF only) */ #define MTX_UNOWNED 0x00000004 /* Cookie for free mutex */ -#define MTX_FLAGMASK ~(MTX_RECURSED | MTX_CONTESTED) +#define MTX_FLAGMASK (MTX_RECURSED | MTX_CONTESTED) #endif /* _KERNEL */ @@ -124,19 +124,19 @@ * here, if they are not already defined in the machine-dependent mutex.h */ -/* Actually obtain mtx_lock */ +/* Try to obtain mtx_lock once. */ #ifndef _obtain_lock #define _obtain_lock(mp, tid) \ atomic_cmpset_acq_ptr(&(mp)->mtx_lock, (void *)MTX_UNOWNED, (tid)) #endif -/* Actually release mtx_lock */ +/* Try to release mtx_lock if it is unrecursed and uncontested. */ #ifndef _release_lock #define _release_lock(mp, tid) \ atomic_cmpset_rel_ptr(&(mp)->mtx_lock, (tid), (void *)MTX_UNOWNED) #endif -/* Actually release mtx_lock quickly, assuming we own it. */ +/* Release mtx_lock quickly, assuming we own it. */ #ifndef _release_lock_quick #define _release_lock_quick(mp) \ atomic_store_rel_ptr(&(mp)->mtx_lock, (void *)MTX_UNOWNED) @@ -169,7 +169,7 @@ \ critical_enter(); \ if (!_obtain_lock((mp), _tid)) { \ - if ((mp)->mtx_lock == (uintptr_t)_tid) \ + if ((mp)->mtx_lock == _tid) \ (mp)->mtx_recurse++; \ else \ _mtx_lock_spin((mp), _tid, (opts), (file), (line)); \ @@ -180,11 +180,12 @@ struct thread *_tid = (tid); \ \ critical_enter(); \ - if ((mp)->mtx_lock == (uintptr_t)_tid) \ + if ((mp)->mtx_lock == _tid) \ (mp)->mtx_recurse++; \ else { \ - KASSERT((mp)->mtx_lock == MTX_UNOWNED, ("corrupt spinlock")); \ - (mp)->mtx_lock = (uintptr_t)_tid; \ + KASSERT((mp)->mtx_lock == (void *)MTX_UNOWNED, \ + ("corrupt spinlock")); \ + (mp)->mtx_lock = _tid; \ } \ } while (0) #endif /* SMP */ @@ -225,7 +226,7 @@ if (mtx_recursed((mp))) \ (mp)->mtx_recurse--; \ else \ - (mp)->mtx_lock = MTX_UNOWNED; \ + (mp)->mtx_lock = (void *)MTX_UNOWNED; \ critical_exit(); \ } while (0) #endif /* SMP */ @@ -320,7 +321,7 @@ #define mtx_initialized(m) ((m)->mtx_object.lo_flags & LO_INITIALIZED) -#define mtx_owned(m) (((m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) +#define mtx_owned(m) (((uintptr_t)(m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) #define mtx_recursed(m) ((m)->mtx_recurse != 0) From owner-p4-projects@FreeBSD.ORG Tue Mar 29 03:57:52 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D878516A4D0; Tue, 29 Mar 2005 03:57: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 8618C16A4CE for ; Tue, 29 Mar 2005 03:57:51 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5762443D48 for ; Tue, 29 Mar 2005 03:57:51 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2T3vp3U098344 for ; Tue, 29 Mar 2005 03:57:51 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2T3vpdT098341 for perforce@freebsd.org; Tue, 29 Mar 2005 03:57:51 GMT (envelope-from peter@freebsd.org) Date: Tue, 29 Mar 2005 03:57:51 GMT Message-Id: <200503290357.j2T3vpdT098341@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 74010 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, 29 Mar 2005 03:57:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=74010 Change 74010 by peter@peter_overcee on 2005/03/29 03:57:40 I don't remember if this worked or not, but check it in before I lose it. (do a libmap lookup for explicit library paths) Affected files ... .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#27 edit Differences ... ==== //depot/projects/hammer/libexec/rtld-elf/rtld.c#27 (text+ko) ==== @@ -863,6 +863,12 @@ xname); return NULL; } +#ifdef COMPAT_32BIT + name = lm_find(NULL, xname)); + if (name) + return xstrdup(name); + else +#endif return xstrdup(xname); } From owner-p4-projects@FreeBSD.ORG Tue Mar 29 04:13:14 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7566F16A4D0; Tue, 29 Mar 2005 04:13: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 4805B16A4CE for ; Tue, 29 Mar 2005 04:13:14 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 019B343D2D for ; Tue, 29 Mar 2005 04:13:13 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2T4DC7a098916 for ; Tue, 29 Mar 2005 04:13:12 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2T4DAXR098910 for perforce@freebsd.org; Tue, 29 Mar 2005 04:13:10 GMT (envelope-from peter@freebsd.org) Date: Tue, 29 Mar 2005 04:13:10 GMT Message-Id: <200503290413.j2T4DAXR098910@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 74011 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, 29 Mar 2005 04:13:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=74011 Change 74011 by peter@peter_overcee on 2005/03/29 04:12:15 IFC @74009 Affected files ... .. //depot/projects/hammer/Makefile.inc1#87 integrate .. //depot/projects/hammer/bin/ps/keyword.c#14 integrate .. //depot/projects/hammer/bin/ps/ps.1#22 integrate .. //depot/projects/hammer/contrib/bind9/CHANGES#3 integrate .. //depot/projects/hammer/contrib/bind9/COPYRIGHT#2 integrate .. //depot/projects/hammer/contrib/bind9/FAQ#2 integrate .. //depot/projects/hammer/contrib/bind9/FREEBSD-Upgrade#4 integrate .. //depot/projects/hammer/contrib/bind9/FREEBSD-Xlist#2 integrate .. //depot/projects/hammer/contrib/bind9/KNOWN_DEFECTS#2 delete .. //depot/projects/hammer/contrib/bind9/README#2 integrate .. //depot/projects/hammer/contrib/bind9/acconfig.h#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/check/check-tool.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/check/named-checkconf.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/check/named-checkzone.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dig/dig.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dig/dighost.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dig/host.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dig/include/dig/dig.h#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dig/nslookup.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/dnssec/dnssec-signzone.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/client.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/config.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/control.c#3 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/include/named/control.h#3 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/main.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/named.conf.5#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/named.conf.docbook#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/named.conf.html#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/server.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/unix/include/named/os.h#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/unix/os.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/update.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/nsupdate/nsupdate.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/rndc/rndc-confgen.c#2 integrate .. //depot/projects/hammer/contrib/bind9/bin/rndc/rndc.c#3 integrate .. //depot/projects/hammer/contrib/bind9/config.guess#2 integrate .. //depot/projects/hammer/contrib/bind9/config.sub#2 integrate .. //depot/projects/hammer/contrib/bind9/configure.in#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM-book.xml#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch03.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch04.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch05.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch06.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch07.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch08.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.ch09.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/arm/Bv9ARM.html#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/misc/migration#2 integrate .. //depot/projects/hammer/contrib/bind9/doc/misc/options#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/aclocal.m4#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/config.h.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/configure#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/configure.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/dst/dst_api.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/include/netdb.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/inet/inet_makeaddr.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/dns_nw.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/gai_strerror.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/gen.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/getnetgrent_r.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/getpwent_r.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/irs/irs_data.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/isc/eventlib.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/isc/eventlib_p.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/isc/memcluster.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/libtool.m4#2 delete .. //depot/projects/hammer/contrib/bind9/lib/bind/ltmain.sh#2 delete .. //depot/projects/hammer/contrib/bind9/lib/bind/make/rules.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/nameser/ns_print.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/port_after.h.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind/resolv/res_findzonecut.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind9/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind9/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind9/check.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/bind9/getaddresses.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/adb.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_api.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_internal.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_lib.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_openssl.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_parse.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_parse.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/dst_result.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/gssapi_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/gssapictx.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/hmac_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/include/Makefile.in#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dns/name.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dns/rbt.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dns/zone.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dst/Makefile.in#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dst/dst.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dst/gssapi.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dst/lib.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/include/dst/result.h#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/journal.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/key.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/openssl_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/openssldh_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/openssldsa_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/opensslrsa_link.c#1 branch .. //depot/projects/hammer/contrib/bind9/lib/dns/rbt.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/rdata.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/rdata/in_1/wks_11.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/resolver.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/Makefile.in#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/Makefile.in#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_api.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_internal.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_lib.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_openssl.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_parse.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_parse.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/dst_result.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/gssapi_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/gssapictx.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/hmac_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/Makefile.in#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/dst/Makefile.in#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/dst/dst.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/dst/gssapi.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/dst/lib.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/include/dst/result.h#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/key.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/openssl_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/openssldh_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/openssldsa_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/sec/dst/opensslrsa_link.c#2 delete .. //depot/projects/hammer/contrib/bind9/lib/dns/validator.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/xfrin.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/dns/zone.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/include/isc/mem.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/pthreads/thread.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/string.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/task.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/unix/ifiter_ioctl.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isc/unix/socket.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isccfg/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isccfg/include/isccfg/grammar.h#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/isccfg/namedconf.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/lwres/api#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/lwres/context.c#2 integrate .. //depot/projects/hammer/contrib/bind9/lib/lwres/print.c#2 integrate .. //depot/projects/hammer/contrib/bind9/libtool.m4#2 integrate .. //depot/projects/hammer/contrib/bind9/ltmain.sh#2 integrate .. //depot/projects/hammer/contrib/bind9/make/includes.in#2 integrate .. //depot/projects/hammer/contrib/bind9/version#3 integrate .. //depot/projects/hammer/contrib/telnet/telnet/telnet.c#3 integrate .. //depot/projects/hammer/etc/mtree/BSD.local.dist#23 integrate .. //depot/projects/hammer/etc/mtree/BSD.x11-4.dist#9 integrate .. //depot/projects/hammer/etc/netstart#5 integrate .. //depot/projects/hammer/etc/rc.d/ipfw#10 integrate .. //depot/projects/hammer/etc/rc.d/mixer#5 integrate .. //depot/projects/hammer/games/fortune/datfiles/fortunes#42 integrate .. //depot/projects/hammer/games/fortune/datfiles/freebsd-tips#13 integrate .. //depot/projects/hammer/gnu/lib/libstdc++/config.h#8 integrate .. //depot/projects/hammer/gnu/usr.bin/Makefile#11 integrate .. //depot/projects/hammer/gnu/usr.bin/tar/Makefile#7 integrate .. //depot/projects/hammer/include/unistd.h#15 integrate .. //depot/projects/hammer/lib/bind/config.h#2 integrate .. //depot/projects/hammer/lib/bind/config.mk#6 integrate .. //depot/projects/hammer/lib/bind/dns/Makefile#4 integrate .. //depot/projects/hammer/lib/bind/dns/code.h#2 integrate .. //depot/projects/hammer/lib/bind/dns/dns/enumclass.h#2 integrate .. //depot/projects/hammer/lib/bind/dns/dns/enumtype.h#2 integrate .. //depot/projects/hammer/lib/bind/dns/dns/rdatastruct.h#2 integrate .. //depot/projects/hammer/lib/libbluetooth/bluetooth.h#2 integrate .. //depot/projects/hammer/lib/libc/arm/Makefile.inc#3 integrate .. //depot/projects/hammer/lib/libc/arm/_fpmath.h#4 integrate .. //depot/projects/hammer/lib/libc/gen/fmtcheck.c#4 integrate .. //depot/projects/hammer/lib/libc/gen/tls.c#7 integrate .. //depot/projects/hammer/lib/libc/net/byteorder.3#3 integrate .. //depot/projects/hammer/lib/libkvm/kvm_proc.c#29 integrate .. //depot/projects/hammer/lib/libpthread/support/Makefile.inc#5 integrate .. //depot/projects/hammer/lib/libpthread/support/thr_support.c#4 integrate .. //depot/projects/hammer/lib/libugidfw/Makefile#5 integrate .. //depot/projects/hammer/lib/libugidfw/ugidfw.c#8 integrate .. //depot/projects/hammer/lib/msun/Makefile#25 integrate .. //depot/projects/hammer/lib/msun/alpha/fenv.c#2 integrate .. //depot/projects/hammer/lib/msun/alpha/fenv.h#3 integrate .. //depot/projects/hammer/lib/msun/amd64/Makefile.inc#3 integrate .. //depot/projects/hammer/lib/msun/amd64/fenv.c#3 integrate .. //depot/projects/hammer/lib/msun/amd64/fenv.h#3 integrate .. //depot/projects/hammer/lib/msun/amd64/s_remquo.S#1 branch .. //depot/projects/hammer/lib/msun/amd64/s_remquof.S#1 branch .. //depot/projects/hammer/lib/msun/arm/fenv.h#5 integrate .. //depot/projects/hammer/lib/msun/i387/Makefile.inc#4 integrate .. //depot/projects/hammer/lib/msun/i387/fenv.c#2 integrate .. //depot/projects/hammer/lib/msun/i387/fenv.h#3 integrate .. //depot/projects/hammer/lib/msun/i387/s_remquo.S#1 branch .. //depot/projects/hammer/lib/msun/i387/s_remquof.S#1 branch .. //depot/projects/hammer/lib/msun/ia64/fenv.h#4 integrate .. //depot/projects/hammer/lib/msun/man/feenableexcept.3#1 branch .. //depot/projects/hammer/lib/msun/man/fenv.3#3 integrate .. //depot/projects/hammer/lib/msun/man/math.3#10 integrate .. //depot/projects/hammer/lib/msun/man/remainder.3#2 integrate .. //depot/projects/hammer/lib/msun/powerpc/fenv.h#3 integrate .. //depot/projects/hammer/lib/msun/sparc64/fenv.h#3 integrate .. //depot/projects/hammer/lib/msun/src/math.h#28 integrate .. //depot/projects/hammer/lib/msun/src/s_fma.c#3 integrate .. //depot/projects/hammer/lib/msun/src/s_fmal.c#2 integrate .. //depot/projects/hammer/lib/msun/src/s_remquo.c#1 branch .. //depot/projects/hammer/lib/msun/src/s_remquof.c#1 branch .. //depot/projects/hammer/libexec/rexecd/rexecd.c#6 integrate .. //depot/projects/hammer/libexec/rshd/rshd.c#4 integrate .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#28 integrate .. //depot/projects/hammer/release/Makefile#69 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/artheader.sgml#4 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#73 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#88 integrate .. //depot/projects/hammer/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml#10 integrate .. //depot/projects/hammer/release/doc/ru_RU.KOI8-R/relnotes/common/new.sgml#11 integrate .. //depot/projects/hammer/release/doc/ru_RU.KOI8-R/share/sgml/dev-auto-ru.sgml#2 integrate .. //depot/projects/hammer/release/doc/share/examples/Makefile.relnotesng#7 integrate .. //depot/projects/hammer/release/doc/share/misc/dev.archlist.txt#24 integrate .. //depot/projects/hammer/release/doc/share/sgml/release.ent#15 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/i386/proc-i386.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/install.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#2 integrate .. //depot/projects/hammer/release/scripts/package-split.py#1 branch .. //depot/projects/hammer/release/scripts/package-trees.sh#1 branch .. //depot/projects/hammer/release/scripts/print-cdrom-packages.sh#27 delete .. //depot/projects/hammer/rescue/rescue/Makefile#24 integrate .. //depot/projects/hammer/sbin/camcontrol/camcontrol.8#6 integrate .. //depot/projects/hammer/sbin/camcontrol/camcontrol.c#7 integrate .. //depot/projects/hammer/sbin/devfs/devfs.8#9 integrate .. //depot/projects/hammer/sbin/geom/core/geom.c#8 integrate .. //depot/projects/hammer/sbin/ifconfig/Makefile#6 integrate .. //depot/projects/hammer/sbin/ifconfig/ifconfig.8#22 integrate .. //depot/projects/hammer/sbin/mount/mount.8#16 integrate .. //depot/projects/hammer/sbin/mount/mount.c#17 integrate .. //depot/projects/hammer/sbin/mount_ufs/mount_ufs.c#2 integrate .. //depot/projects/hammer/sbin/reboot/reboot.c#8 integrate .. //depot/projects/hammer/sbin/restore/Makefile#4 integrate .. //depot/projects/hammer/sbin/restore/dirs.c#6 integrate .. //depot/projects/hammer/sbin/restore/main.c#8 integrate .. //depot/projects/hammer/sbin/restore/restore.8#11 integrate .. //depot/projects/hammer/sbin/restore/restore.h#5 integrate .. //depot/projects/hammer/sbin/restore/tape.c#5 integrate .. //depot/projects/hammer/share/doc/bind9/Makefile#4 integrate .. //depot/projects/hammer/share/examples/etc/make.conf#36 integrate .. //depot/projects/hammer/share/man/man4/Makefile#66 integrate .. //depot/projects/hammer/share/man/man4/ata.4#13 integrate .. //depot/projects/hammer/share/man/man4/carp.4#2 integrate .. //depot/projects/hammer/share/man/man4/cdce.4#1 branch .. //depot/projects/hammer/share/man/man4/ehci.4#2 integrate .. //depot/projects/hammer/share/man/man4/ip.4#15 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/Makefile#28 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/acpi_fujitsu.4#1 branch .. //depot/projects/hammer/share/man/man4/man4.i386/scd.4#5 integrate .. //depot/projects/hammer/share/man/man4/man4.i386/sr.4#4 integrate .. //depot/projects/hammer/share/man/man4/ng_netflow.4#6 integrate .. //depot/projects/hammer/share/man/man4/polling.4#14 integrate .. //depot/projects/hammer/share/man/man4/rc.4#5 integrate .. //depot/projects/hammer/share/man/man4/snd_ich.4#5 integrate .. //depot/projects/hammer/share/man/man4/snd_via8233.4#1 branch .. //depot/projects/hammer/share/man/man4/ubser.4#5 integrate .. //depot/projects/hammer/share/man/man4/xl.4#12 integrate .. //depot/projects/hammer/share/man/man5/Makefile#10 integrate .. //depot/projects/hammer/share/man/man5/drivers.conf.5#4 delete .. //depot/projects/hammer/share/man/man7/release.7#25 integrate .. //depot/projects/hammer/share/man/man9/make_dev.9#5 integrate .. //depot/projects/hammer/share/man/man9/mbuf.9#20 integrate .. //depot/projects/hammer/sys/alpha/alpha/autoconf.c#8 integrate .. //depot/projects/hammer/sys/alpha/alpha/timerreg.h#3 integrate .. //depot/projects/hammer/sys/alpha/conf/GENERIC#27 integrate .. //depot/projects/hammer/sys/amd64/amd64/nexus.c#33 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC#67 integrate .. //depot/projects/hammer/sys/amd64/isa/timerreg.h#8 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_sysvec.c#5 integrate .. //depot/projects/hammer/sys/arm/arm/fiq.c#3 integrate .. //depot/projects/hammer/sys/arm/arm/locore.S#10 integrate .. //depot/projects/hammer/sys/arm/arm/pmap.c#18 integrate .. //depot/projects/hammer/sys/arm/include/float.h#4 integrate .. //depot/projects/hammer/sys/arm/xscale/i80321/i80321.c#4 integrate .. //depot/projects/hammer/sys/arm/xscale/i80321/iq31244_machdep.c#8 integrate .. //depot/projects/hammer/sys/arm/xscale/i80321/iq80321.c#5 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.c#18 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_cd.c#20 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_ch.c#10 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_low.c#7 integrate .. //depot/projects/hammer/sys/coda/coda_vfsops.c#17 integrate .. //depot/projects/hammer/sys/coda/coda_vnops.c#17 integrate .. //depot/projects/hammer/sys/compat/linux/linux_ioctl.c#22 integrate .. //depot/projects/hammer/sys/compat/linux/linux_socket.c#18 integrate .. //depot/projects/hammer/sys/compat/ndis/kern_ndis.c#27 integrate .. //depot/projects/hammer/sys/compat/ndis/ndis_var.h#19 integrate .. //depot/projects/hammer/sys/compat/ndis/ntoskrnl_var.h#16 integrate .. //depot/projects/hammer/sys/compat/ndis/subr_hal.c#10 integrate .. //depot/projects/hammer/sys/compat/ndis/subr_ndis.c#26 integrate .. //depot/projects/hammer/sys/compat/ndis/subr_ntoskrnl.c#26 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_stream.c#15 integrate .. //depot/projects/hammer/sys/conf/NOTES#84 integrate .. //depot/projects/hammer/sys/conf/files#108 integrate .. //depot/projects/hammer/sys/conf/files.amd64#65 integrate .. //depot/projects/hammer/sys/conf/files.i386#54 integrate .. //depot/projects/hammer/sys/conf/files.sparc64#27 integrate .. //depot/projects/hammer/sys/conf/options.i386#31 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#29 integrate .. //depot/projects/hammer/sys/dev/acpi_support/acpi_asus.c#3 integrate .. //depot/projects/hammer/sys/dev/acpi_support/acpi_fujitsu.c#1 branch .. //depot/projects/hammer/sys/dev/acpi_support/acpi_toshiba.c#3 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#57 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_battery.c#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#29 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_ec.c#30 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_if.m#5 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_perf.c#6 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_resource.c#18 integrate .. //depot/projects/hammer/sys/dev/acpica/acpiio.h#8 integrate .. //depot/projects/hammer/sys/dev/acpica/acpivar.h#41 integrate .. //depot/projects/hammer/sys/dev/adlink/adlink.c#12 integrate .. //depot/projects/hammer/sys/dev/an/if_an.c#21 integrate .. //depot/projects/hammer/sys/dev/asr/asr.c#15 integrate .. //depot/projects/hammer/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/hammer/sys/dev/ath/ath_rate/sample/sample.h#2 integrate .. //depot/projects/hammer/sys/dev/bfe/if_bfe.c#15 integrate .. //depot/projects/hammer/sys/dev/cardbus/cardbus.c#19 integrate .. //depot/projects/hammer/sys/dev/ciss/ciss.c#31 integrate .. //depot/projects/hammer/sys/dev/cpufreq/ichss.c#5 integrate .. //depot/projects/hammer/sys/dev/eisa/eisaconf.c#10 integrate .. //depot/projects/hammer/sys/dev/fb/vga.c#20 integrate .. //depot/projects/hammer/sys/dev/firewire/fwohci.c#27 integrate .. //depot/projects/hammer/sys/dev/fxp/if_fxp.c#44 integrate .. //depot/projects/hammer/sys/dev/hptmv/entry.c#7 integrate .. //depot/projects/hammer/sys/dev/hptmv/gui_lib.c#3 integrate .. //depot/projects/hammer/sys/dev/if_ndis/if_ndis.c#29 integrate .. //depot/projects/hammer/sys/dev/if_ndis/if_ndis_pci.c#11 integrate .. //depot/projects/hammer/sys/dev/ixgb/if_ixgb.c#6 integrate .. //depot/projects/hammer/sys/dev/ixgb/if_ixgb.h#4 integrate .. //depot/projects/hammer/sys/dev/ixgb/if_ixgb_osdep.h#3 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx.c#9 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx_pci.c#9 integrate .. //depot/projects/hammer/sys/dev/nge/if_nge.c#26 integrate .. //depot/projects/hammer/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/hammer/sys/dev/nve/if_nvereg.h#2 integrate .. //depot/projects/hammer/sys/dev/pccard/pccard.c#23 integrate .. //depot/projects/hammer/sys/dev/pccard/pccard_cis.c#11 integrate .. //depot/projects/hammer/sys/dev/pccard/pccard_cis_quirks.c#6 integrate .. //depot/projects/hammer/sys/dev/pci/pci.c#36 integrate .. //depot/projects/hammer/sys/dev/pci/pci_pci.c#13 integrate .. //depot/projects/hammer/sys/dev/pci/pcireg.h#6 integrate .. //depot/projects/hammer/sys/dev/pdq/pdq_ifsubr.c#6 integrate .. //depot/projects/hammer/sys/dev/ppbus/lpt.c#10 integrate .. //depot/projects/hammer/sys/dev/ppbus/pps.c#11 integrate .. //depot/projects/hammer/sys/dev/random/randomdev_soft.c#10 integrate .. //depot/projects/hammer/sys/dev/rp/rp_pci.c#8 integrate .. //depot/projects/hammer/sys/dev/sound/pci/ich.c#20 integrate .. //depot/projects/hammer/sys/dev/sym/sym_hipd.c#16 integrate .. //depot/projects/hammer/sys/dev/twa/twa.c#4 integrate .. //depot/projects/hammer/sys/dev/twa/twa.h#7 integrate .. //depot/projects/hammer/sys/dev/usb/ehci.c#21 integrate .. //depot/projects/hammer/sys/dev/usb/ehci_pci.c#15 integrate .. //depot/projects/hammer/sys/dev/usb/ehcivar.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/if_aue.c#21 integrate .. //depot/projects/hammer/sys/dev/usb/if_auereg.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/if_axe.c#20 integrate .. //depot/projects/hammer/sys/dev/usb/if_axereg.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/if_cdce.c#1 branch .. //depot/projects/hammer/sys/dev/usb/if_cdcereg.h#1 branch .. //depot/projects/hammer/sys/dev/usb/if_cue.c#21 integrate .. //depot/projects/hammer/sys/dev/usb/if_cuereg.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/if_kue.c#17 integrate .. //depot/projects/hammer/sys/dev/usb/if_kuereg.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/if_rue.c#14 integrate .. //depot/projects/hammer/sys/dev/usb/if_ruereg.h#4 integrate .. //depot/projects/hammer/sys/dev/usb/if_udav.c#9 integrate .. //depot/projects/hammer/sys/dev/usb/if_udavreg.h#4 integrate .. //depot/projects/hammer/sys/dev/usb/ohci.c#20 integrate .. //depot/projects/hammer/sys/dev/usb/ohcivar.h#8 integrate .. //depot/projects/hammer/sys/dev/usb/ubser.c#11 integrate .. //depot/projects/hammer/sys/dev/usb/ubser.h#3 integrate .. //depot/projects/hammer/sys/dev/usb/uhci.c#18 integrate .. //depot/projects/hammer/sys/dev/usb/uhcivar.h#8 integrate .. //depot/projects/hammer/sys/dev/usb/uhub.c#15 integrate .. //depot/projects/hammer/sys/dev/usb/umass.c#30 integrate .. //depot/projects/hammer/sys/dev/usb/usb.c#15 integrate .. //depot/projects/hammer/sys/dev/usb/usb_ethersubr.c#9 integrate .. //depot/projects/hammer/sys/dev/usb/usb_ethersubr.h#4 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#57 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.h#10 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi.c#34 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi_pccard.c#25 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_devs.c#10 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_vfsops.c#14 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#30 integrate .. //depot/projects/hammer/sys/fs/fdescfs/fdesc_vfsops.c#13 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs.h#8 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs_hash.c#7 delete .. //depot/projects/hammer/sys/fs/hpfs/hpfs_vfsops.c#19 integrate .. //depot/projects/hammer/sys/fs/hpfs/hpfs_vnops.c#18 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_denode.c#20 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_lookup.c#6 integrate .. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_vfsops.c#33 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_vfsops.c#24 integrate .. //depot/projects/hammer/sys/fs/ntfs/ntfs_vnops.c#17 integrate .. //depot/projects/hammer/sys/fs/nullfs/null_vfsops.c#15 integrate .. //depot/projects/hammer/sys/fs/nullfs/null_vnops.c#19 integrate .. //depot/projects/hammer/sys/fs/nwfs/nwfs_vfsops.c#14 integrate .. //depot/projects/hammer/sys/fs/nwfs/nwfs_vnops.c#12 integrate .. //depot/projects/hammer/sys/fs/portalfs/portal_vfsops.c#13 integrate .. //depot/projects/hammer/sys/fs/portalfs/portal_vnops.c#13 integrate .. //depot/projects/hammer/sys/fs/pseudofs/pseudofs.c#10 integrate .. //depot/projects/hammer/sys/fs/pseudofs/pseudofs.h#8 integrate .. //depot/projects/hammer/sys/fs/pseudofs/pseudofs_fileno.c#5 integrate .. //depot/projects/hammer/sys/fs/pseudofs/pseudofs_internal.h#2 integrate .. //depot/projects/hammer/sys/fs/pseudofs/pseudofs_vnops.c#17 integrate .. //depot/projects/hammer/sys/fs/smbfs/smbfs_vfsops.c#18 integrate .. //depot/projects/hammer/sys/fs/smbfs/smbfs_vnops.c#23 integrate .. //depot/projects/hammer/sys/fs/udf/udf.h#11 integrate .. //depot/projects/hammer/sys/fs/udf/udf_vfsops.c#20 integrate .. //depot/projects/hammer/sys/fs/udf/udf_vnops.c#25 integrate .. //depot/projects/hammer/sys/fs/umapfs/umap_vfsops.c#14 integrate .. //depot/projects/hammer/sys/fs/unionfs/union_vfsops.c#16 integrate .. //depot/projects/hammer/sys/fs/unionfs/union_vnops.c#24 integrate .. //depot/projects/hammer/sys/gdb/gdb_main.c#5 integrate .. //depot/projects/hammer/sys/geom/geom_bsd.c#26 integrate .. //depot/projects/hammer/sys/geom/geom_dev.c#31 integrate .. //depot/projects/hammer/sys/geom/geom_disk.c#32 integrate .. //depot/projects/hammer/sys/geom/geom_gpt.c#20 integrate .. //depot/projects/hammer/sys/geom/geom_subr.c#33 integrate .. //depot/projects/hammer/sys/geom/mirror/g_mirror.c#20 integrate .. //depot/projects/hammer/sys/geom/mirror/g_mirror_ctl.c#5 integrate .. //depot/projects/hammer/sys/geom/raid3/g_raid3.c#16 integrate .. //depot/projects/hammer/sys/geom/raid3/g_raid3_ctl.c#7 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/ext2_alloc.c#5 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/ext2_inode.c#13 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/ext2_lookup.c#10 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/ext2_vfsops.c#29 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/ext2_vnops.c#24 integrate .. //depot/projects/hammer/sys/gnu/ext2fs/inode.h#6 integrate .. //depot/projects/hammer/sys/i386/conf/GENERIC#35 integrate .. //depot/projects/hammer/sys/i386/conf/NOTES#64 integrate .. //depot/projects/hammer/sys/i386/conf/PAE#13 integrate .. //depot/projects/hammer/sys/i386/cpufreq/est.c#2 integrate .. //depot/projects/hammer/sys/i386/cpufreq/powernow.c#1 branch .. //depot/projects/hammer/sys/i386/i386/bios.c#18 integrate .. //depot/projects/hammer/sys/i386/i386/nexus.c#16 integrate .. //depot/projects/hammer/sys/i386/i386/sys_machdep.c#15 integrate .. //depot/projects/hammer/sys/i386/include/npx.h#5 integrate .. //depot/projects/hammer/sys/i386/isa/clock.c#23 integrate .. //depot/projects/hammer/sys/i386/isa/isa.h#5 integrate .. //depot/projects/hammer/sys/i386/isa/npx.c#24 integrate .. //depot/projects/hammer/sys/i386/pci/pci_bus.c#21 integrate .. //depot/projects/hammer/sys/i4b/layer1/iwic/i4b_iwic_pci.c#7 integrate .. //depot/projects/hammer/sys/ia64/conf/GENERIC#20 integrate .. //depot/projects/hammer/sys/ia64/ia64/autoconf.c#5 integrate .. //depot/projects/hammer/sys/ia64/ia64/nexus.c#7 integrate .. //depot/projects/hammer/sys/isa/isa_common.c#14 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_lookup.c#8 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_node.h#8 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_vfsops.c#29 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_vnops.c#20 integrate .. //depot/projects/hammer/sys/kern/kern_conf.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_event.c#31 integrate .. //depot/projects/hammer/sys/kern/kern_lock.c#17 integrate .. //depot/projects/hammer/sys/kern/kern_proc.c#44 integrate .. //depot/projects/hammer/sys/kern/kern_prot.c#23 integrate .. //depot/projects/hammer/sys/kern/kern_switch.c#39 integrate .. //depot/projects/hammer/sys/kern/kern_tc.c#17 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#76 integrate .. //depot/projects/hammer/sys/kern/subr_bus.c#37 integrate .. //depot/projects/hammer/sys/kern/subr_hints.c#5 integrate .. //depot/projects/hammer/sys/kern/subr_prf.c#18 integrate .. //depot/projects/hammer/sys/kern/subr_rman.c#13 integrate .. //depot/projects/hammer/sys/kern/subr_trap.c#31 integrate .. //depot/projects/hammer/sys/kern/sys_process.c#21 integrate .. //depot/projects/hammer/sys/kern/sysv_sem.c#20 integrate .. //depot/projects/hammer/sys/kern/tty.c#44 integrate .. //depot/projects/hammer/sys/kern/uipc_mbuf.c#28 integrate .. //depot/projects/hammer/sys/kern/vfs_aio.c#28 integrate .. //depot/projects/hammer/sys/kern/vfs_bio.c#52 integrate .. //depot/projects/hammer/sys/kern/vfs_cache.c#11 integrate .. //depot/projects/hammer/sys/kern/vfs_default.c#37 integrate .. //depot/projects/hammer/sys/kern/vfs_export.c#11 integrate .. //depot/projects/hammer/sys/kern/vfs_hash.c#3 integrate .. //depot/projects/hammer/sys/kern/vfs_lookup.c#13 integrate .. //depot/projects/hammer/sys/kern/vfs_mount.c#52 integrate .. //depot/projects/hammer/sys/kern/vfs_subr.c#78 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#44 integrate .. //depot/projects/hammer/sys/kern/vfs_vnops.c#32 integrate .. //depot/projects/hammer/sys/modules/Makefile#71 integrate .. //depot/projects/hammer/sys/modules/acpi/Makefile#21 integrate .. //depot/projects/hammer/sys/modules/acpi/acpi_fujitsu/Makefile#1 branch .. //depot/projects/hammer/sys/modules/asr/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/cdce/Makefile#1 branch .. //depot/projects/hammer/sys/modules/cpufreq/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/ep/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/hpfs/Makefile#2 integrate .. //depot/projects/hammer/sys/net/bpf.c#29 integrate .. //depot/projects/hammer/sys/net/if.c#43 integrate .. //depot/projects/hammer/sys/net/if_fddisubr.c#15 integrate .. //depot/projects/hammer/sys/net/if_fwsubr.c#8 integrate .. //depot/projects/hammer/sys/net/rtsock.c#22 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_input.c#16 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_node.c#20 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_output.c#14 integrate .. //depot/projects/hammer/sys/netgraph/netflow/netflow.c#8 integrate .. //depot/projects/hammer/sys/netgraph/netflow/ng_netflow.c#4 integrate .. //depot/projects/hammer/sys/netgraph/netflow/ng_netflow.h#3 integrate .. //depot/projects/hammer/sys/netinet/igmp.c#9 integrate .. //depot/projects/hammer/sys/netinet/in.c#14 integrate .. //depot/projects/hammer/sys/netinet/in_pcb.c#33 integrate .. //depot/projects/hammer/sys/netinet/ip_carp.c#3 integrate .. //depot/projects/hammer/sys/netinet/ip_input.c#48 integrate .. //depot/projects/hammer/sys/netinet/raw_ip.c#32 integrate .. //depot/projects/hammer/sys/netinet/tcp_usrreq.c#28 integrate .. //depot/projects/hammer/sys/netinet/udp_usrreq.c#30 integrate .. //depot/projects/hammer/sys/netinet6/ip6_input.c#21 integrate .. //depot/projects/hammer/sys/netinet6/mld6.c#10 integrate .. //depot/projects/hammer/sys/netinet6/raw_ip6.c#18 integrate .. //depot/projects/hammer/sys/nfs4client/nfs4_vfsops.c#15 integrate .. //depot/projects/hammer/sys/nfs4client/nfs4_vnops.c#19 integrate .. //depot/projects/hammer/sys/nfsclient/krpc_subr.c#10 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_bio.c#33 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_node.c#18 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_socket.c#24 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vfsops.c#37 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#39 integrate .. //depot/projects/hammer/sys/nfsclient/nfsnode.h#14 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_srvsubs.c#18 integrate .. //depot/projects/hammer/sys/nfsserver/nfs_syscalls.c#15 integrate .. //depot/projects/hammer/sys/pc98/conf/GENERIC#30 integrate .. //depot/projects/hammer/sys/pc98/pc98/canbus.c#3 integrate .. //depot/projects/hammer/sys/pc98/pc98/clock.c#19 integrate .. //depot/projects/hammer/sys/pc98/pc98/pc98.h#4 integrate .. //depot/projects/hammer/sys/pc98/pc98/pc98_machdep.c#3 integrate .. //depot/projects/hammer/sys/pci/if_sis.c#33 integrate .. //depot/projects/hammer/sys/pci/if_sk.c#36 integrate .. //depot/projects/hammer/sys/pci/if_skreg.h#11 integrate .. //depot/projects/hammer/sys/pci/if_ti.c#27 integrate .. //depot/projects/hammer/sys/pci/if_tireg.h#6 integrate .. //depot/projects/hammer/sys/pci/if_xl.c#48 integrate .. //depot/projects/hammer/sys/pci/if_xlreg.h#12 integrate .. //depot/projects/hammer/sys/powerpc/conf/GENERIC#21 integrate .. //depot/projects/hammer/sys/powerpc/ofw/ofw_syscons.c#6 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/autoconf.c#5 integrate .. //depot/projects/hammer/sys/rpc/rpcclnt.c#10 integrate .. //depot/projects/hammer/sys/sparc64/central/central.c#5 integrate .. //depot/projects/hammer/sys/sparc64/conf/GENERIC#37 integrate .. //depot/projects/hammer/sys/sparc64/conf/NOTES#14 integrate .. //depot/projects/hammer/sys/sparc64/fhc/clkbrd.c#1 branch .. //depot/projects/hammer/sys/sparc64/fhc/clkbrdreg.h#1 branch .. //depot/projects/hammer/sys/sparc64/fhc/fhc.c#6 integrate .. //depot/projects/hammer/sys/sparc64/fhc/fhc_central.c#5 integrate .. //depot/projects/hammer/sys/sparc64/fhc/fhc_nexus.c#5 integrate .. //depot/projects/hammer/sys/sparc64/fhc/fhcreg.h#2 integrate .. //depot/projects/hammer/sys/sparc64/fhc/fhcvar.h#4 integrate .. //depot/projects/hammer/sys/sparc64/pci/ofw_pcibus.c#6 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/autoconf.c#4 integrate .. //depot/projects/hammer/sys/sys/_types.h#13 integrate .. //depot/projects/hammer/sys/sys/bus.h#17 integrate .. //depot/projects/hammer/sys/sys/conf.h#31 integrate .. //depot/projects/hammer/sys/sys/event.h#7 integrate .. //depot/projects/hammer/sys/sys/exec.h#6 integrate .. //depot/projects/hammer/sys/sys/jail.h#9 integrate .. //depot/projects/hammer/sys/sys/lockmgr.h#8 integrate .. //depot/projects/hammer/sys/sys/mbuf.h#39 integrate .. //depot/projects/hammer/sys/sys/mount.h#33 integrate .. //depot/projects/hammer/sys/sys/namei.h#8 integrate .. //depot/projects/hammer/sys/sys/param.h#56 integrate .. //depot/projects/hammer/sys/sys/proc.h#76 integrate .. //depot/projects/hammer/sys/sys/stat.h#10 integrate .. //depot/projects/hammer/sys/sys/sysctl.h#25 integrate .. //depot/projects/hammer/sys/sys/types.h#19 integrate .. //depot/projects/hammer/sys/sys/user.h#18 integrate .. //depot/projects/hammer/sys/sys/vnode.h#50 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_softdep.c#26 integrate .. //depot/projects/hammer/sys/ufs/ffs/ffs_vfsops.c#47 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_extattr.c#17 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_inode.c#16 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_lookup.c#11 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_vfsops.c#11 integrate .. //depot/projects/hammer/sys/vm/swap_pager.c#37 integrate .. //depot/projects/hammer/sys/vm/vm_object.c#52 integrate .. //depot/projects/hammer/tools/debugscripts/kgdb#2 integrate .. //depot/projects/hammer/tools/debugscripts/kld_deb.py#2 integrate .. //depot/projects/hammer/tools/regression/lib/msun/Makefile#5 integrate .. //depot/projects/hammer/tools/regression/lib/msun/test-fenv.c#4 integrate .. //depot/projects/hammer/tools/regression/lib/msun/test-rem.c#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-F.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-G.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-P.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-S.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-U.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-g.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-i.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-j.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-l.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-n.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-o.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-s.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-t.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-v.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pgrep-x.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-F.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-G.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-P.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-U.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-g.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-i.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-j.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-s.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-t.t#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/pkill/pkill-x.t#1 branch .. //depot/projects/hammer/tools/tools/nanobsd/Makefile#8 integrate .. //depot/projects/hammer/usr.bin/fstat/cd9660.c#4 integrate .. //depot/projects/hammer/usr.bin/make/arch.c#16 integrate .. //depot/projects/hammer/usr.bin/make/arch.h#2 integrate .. //depot/projects/hammer/usr.bin/make/buf.c#9 integrate .. //depot/projects/hammer/usr.bin/make/buf.h#8 integrate .. //depot/projects/hammer/usr.bin/make/compat.c#18 integrate .. //depot/projects/hammer/usr.bin/make/cond.c#16 integrate .. //depot/projects/hammer/usr.bin/make/dir.c#15 integrate .. //depot/projects/hammer/usr.bin/make/dir.h#10 integrate .. //depot/projects/hammer/usr.bin/make/for.c#16 integrate .. //depot/projects/hammer/usr.bin/make/globals.h#2 integrate .. //depot/projects/hammer/usr.bin/make/job.c#23 integrate .. //depot/projects/hammer/usr.bin/make/lst.c#3 integrate .. //depot/projects/hammer/usr.bin/make/lst.h#13 integrate .. //depot/projects/hammer/usr.bin/make/main.c#30 integrate .. //depot/projects/hammer/usr.bin/make/make.c#12 integrate .. //depot/projects/hammer/usr.bin/make/parse.c#26 integrate .. //depot/projects/hammer/usr.bin/make/suff.c#17 integrate .. //depot/projects/hammer/usr.bin/make/suff.h#3 integrate .. //depot/projects/hammer/usr.bin/make/var.c#25 integrate .. //depot/projects/hammer/usr.bin/make/var.h#8 integrate .. //depot/projects/hammer/usr.bin/make/var_modify.c#8 integrate .. //depot/projects/hammer/usr.bin/pkill/pkill.1#5 integrate .. //depot/projects/hammer/usr.bin/pkill/pkill.c#7 integrate .. //depot/projects/hammer/usr.bin/printf/printf.1#5 integrate .. //depot/projects/hammer/usr.bin/printf/printf.c#6 integrate .. //depot/projects/hammer/usr.bin/stat/stat.1#6 integrate .. //depot/projects/hammer/usr.bin/tail/reverse.c#4 integrate .. //depot/projects/hammer/usr.bin/tar/Makefile#11 integrate .. //depot/projects/hammer/usr.bin/tar/bsdtar.1#17 integrate .. //depot/projects/hammer/usr.bin/truss/extern.h#7 integrate .. //depot/projects/hammer/usr.bin/truss/main.c#9 integrate .. //depot/projects/hammer/usr.bin/truss/setup.c#4 integrate .. //depot/projects/hammer/usr.sbin/apmd/apmd.c#3 integrate .. //depot/projects/hammer/usr.sbin/config/main.c#6 integrate .. //depot/projects/hammer/usr.sbin/flowctl/flowctl.8#3 integrate .. //depot/projects/hammer/usr.sbin/flowctl/flowctl.c#4 integrate .. //depot/projects/hammer/usr.sbin/pciconf/pciconf.c#6 integrate .. //depot/projects/hammer/usr.sbin/pkg_install/add/main.c#10 integrate .. //depot/projects/hammer/usr.sbin/pstat/Makefile#3 integrate .. //depot/projects/hammer/usr.sbin/pstat/pstat.8#8 integrate .. //depot/projects/hammer/usr.sbin/pstat/pstat.c#12 integrate .. //depot/projects/hammer/usr.sbin/rpc.lockd/kern.c#6 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/Makefile#9 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/index.c#7 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/menus.c#32 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/sysinstall.8#10 integrate .. //depot/projects/hammer/usr.sbin/syslogd/syslogd.c#20 integrate .. //depot/projects/hammer/usr.sbin/watchdogd/watchdogd.c#6 integrate Differences ... ==== //depot/projects/hammer/Makefile.inc1#87 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.488 2005/03/02 16:40:50 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.490 2005/03/27 19:35:09 ru Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -205,7 +205,7 @@ PATH=${TMPPATH} WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP} -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" # 32 bit world LIB32TMP= ${OBJTREE}${.CURDIR}/lib32 @@ -382,7 +382,7 @@ @echo ">>> stage 4.4: building everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${WMAKE} par-all -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" build32: @echo @echo "--------------------------------------------------------------" @@ -400,7 +400,7 @@ .if !defined(NO_KERBEROS) && !defined(NO_CRYPT) && !defined(NO_OPENSSL) .for _t in obj depend all cd ${.CURDIR}/kerberos5/tools; \ - MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} ${_t} + MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} DESTDIR= ${_t} .endfor .endif .for _t in obj includes @@ -427,7 +427,7 @@ .endfor .for _dir in lib/libncurses lib/libmagic cd ${.CURDIR}/${_dir}; \ - MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} build-tools + MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} DESTDIR= build-tools .endfor cd ${.CURDIR}; \ ${LIB32MAKE} -f Makefile.inc1 DESTDIR=${LIB32TMP} libraries @@ -456,7 +456,7 @@ WMAKE_TGTS+= _cross-tools .endif WMAKE_TGTS+= _includes _libraries _depend everything -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) WMAKE_TGTS+= build32 .endif @@ -542,7 +542,7 @@ @echo ">>> Installing everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32 .endif ==== //depot/projects/hammer/bin/ps/keyword.c#14 (text+ko) ==== @@ -33,7 +33,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ps/keyword.c,v 1.71 2005/02/06 16:34:49 csjp Exp $"); +__FBSDID("$FreeBSD: src/bin/ps/keyword.c,v 1.72 2005/03/20 10:40:36 pjd Exp $"); #include #include @@ -95,6 +95,7 @@ {"inblk", "INBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_inblock), LONG, "ld", 0}, {"inblock", "", "inblk", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, + {"jid", "JID", NULL, 0, kvar, NULL, 6, KOFF(ki_jid), INT, "d", 0}, {"jobc", "JOBC", NULL, 0, kvar, NULL, 4, KOFF(ki_jobc), SHORT, "d", 0}, {"ktrace", "KTRACE", NULL, 0, kvar, NULL, 8, KOFF(ki_traceflag), INT, ==== //depot/projects/hammer/bin/ps/ps.1#22 (text+ko) ==== @@ -27,9 +27,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/ps/ps.1,v 1.84 2005/02/14 16:56:15 delphij Exp $ +.\" $FreeBSD: src/bin/ps/ps.1,v 1.85 2005/03/20 10:40:36 pjd Exp $ .\" -.Dd March 27, 2004 +.Dd March 20, 2005 .Dt PS 1 .Os .Sh NAME @@ -471,6 +471,8 @@ .It Cm inblk total blocks read (alias .Cm inblock ) +.It Cm jid +jail ID .It Cm jobc job control count .It Cm ktrace ==== //depot/projects/hammer/contrib/bind9/CHANGES#3 (text+ko) ==== @@ -1,4 +1,238 @@ + --- 9.3.1 released --- + +1818. [bug] 'named-checkconf -z' triggered an INSIST. [RT #13599] + + --- 9.3.1rc1 released --- + +1812. [port] win32: IN6_IS_ADDR_UNSPECIFIED macro is incorrect. + [RT #13453] + +1808. [bug] zone.c:notify_zone() contained a race condition, + zone->db could change underneath it. [RT #13511] + +1806. [bug] The resolver returned the wrong result when a CNAME / + DNAME was encountered when fetching glue from a + secure namespace. [RT #13501] + +1805. [bug] Pending status was not being cleared when DLV was + active. [RT #13501] + + --- 9.3.1beta2 released --- + +1800. [bug] Changes #1719 allowed a INSIST to be triggered. + [RT #13428] + + --- 9.3.1beta1 released --- + +1790. [cleanup] Move lib/dns/sec/dst up into lib/dns. This should + allow parallel make to succeed. + +1789. [bug] Prerequisite test for tkey and dnssec could fail + with "configure --with-libtool". + +1788. [bug] libbind9.la/libbind9.so needs to link against + libisccfg.la/libisccfg.so. + +1787. [port] HPUX: both "cc" and "gcc" need -Wl,+vnocompatwarnings. + +1786. [port] AIX: libt_api needs to be taught to look for + T_testlist in the main executable (--with-libtool). + [RT #13239] + +1785. [bug] libbind9.la/libbind9.so needs to link against + libisc.la/libisc.so. + +1784. [cleanup] "libtool -allow-undefined" is the default. + Leave hooks in configure to allow it to be set + if needed in the future. + +1783. [cleanup] We only need one copy of libtool.m4, ltmain.sh in the + source tree. + +1782. [port] OSX: --with-libtool + --enable-libbind broke on + __evOptMonoTime. [RT #13219] + +1781. [port] FreeBSD 5.3: set PTHREAD_SCOPE_SYSTEM. [RT #12810] + +1780. [bug] Update libtool to 1.5.10. + +1779. [port] OSF 5.1: libtool didn't handle -pthread correctly. + +1778. [port] HUX 11.11: fix broken IN6ADDR_ANY_INIT and + IN6ADDR_LOOPBACK_INIT macros. + +1777. [port] OSF 5.1: fix broken IN6ADDR_ANY_INIT and + IN6ADDR_LOOPBACK_INIT macros. + +1776. [port] Solaris 2.9: fix broken IN6ADDR_ANY_INIT and + IN6ADDR_LOOPBACK_INIT macros. + +1775. [bug] Only compile getnetent_r.c when threaded. [RT #13205] + +1774. [port] Aix: Silence compiler warnings / build failures. + [RT #13154] + +1773. [bug] Fast retry on host / net unreachable. [RT #13153] + +1770. [bug] named-checkconf failed to report missing a missing + file clause for rbt{64} master/hint zones. [RT#13009] + +1769. [port] win32: change compiler flags /MTd ==> /MDd, + /MT ==> /MD. + +1768. [bug] nsecnoexistnodata() could be called with a non-NSEC + rdataset. [RT #12907] + +1767. [port] Builds on IPv6 platforms without IPv6 Advanced API + support for (struct in6_pktinfo) failed. [RT #13077] + +1766. [bug] Update the master file timestamp on successful refresh + as well as the journal's timestamp. [RT# 13062] + +1765. [bug] configure --with-openssl=auto failed. [RT #12937] + +1764. [bug] dns_zone_replacedb failed to emit a error message + if there was no SOA record in the replacment db. + [RT #13016] + +1762. [bug] isc_interfaceiter_create() could return ISC_R_SUCCESS + even when it failed. [RT #12995] + +1761. [bug] 'rndc dumpdb' didn't report unassociated entries. + [RT #12971] + +1760. [bug] Host / net unreachable was not penalising rtt + estimates. [RT #12970] + +1759. [bug] Named failed to startup if the OS supported IPv6 + but had no IPv6 interfaces configured. [RT #12942] + +1754. [bug] We wern't always attempting to query the parent + server for the DS records at the zone cut. + [RT #12774] + +1753. [bug] Don't serve a slave zone which has no NS records. + [RT #12894] + +1752. [port] Move isc_app_start() to after ns_os_daemonise() + as some fork() implementations unblock the signals + that are blocked by isc_app_start(). [RT #12810] + +1751. [bug] --enable-getifaddrs failed under linux. [RT #12867] + +1750. [port] lib/bind/make/rules.in:subdirs was not bash friendly. + [RT #12864] + +1749. [bug] 'check-names response ignore;' failed to ignore. + [RT #12866] + +1747. [bug] BIND 8 compatability: named/named-checkconf failed + to parse "host-statistics-max" in named.conf. + +1745. [bug] Dig/host/nslookup accept replies from link locals + regardless of scope if no scope was specified when + query was sent. [RT #12745] + +1744. [bug] If tuple2msgname() failed to convert a tuple to + a name a REQUIRE could be triggered. [RT #12796] + +1743. [bug] If isc_taskmgr_create() was not able to create the + requested number of worker threads then destruction + of the manager would trigger an INSIST() failure. + [RT #12790] + +1742. [bug] Deleting all records at a node then adding a + previously existing record, in a single UPDATE + transaction, failed to leave / regenerate the + associated RRSIG records. [RT #12788] + +1741. [bug] Deleting all records at a node in a secure zone + using a update-policy grant failed. [RT #12787] + +1740. [bug] Replace rbt's hash algorithm as it performed badly + with certain zones. [RT #12729] + + NOTE: a hash context now needs to be established + via isc_hash_create() if the application was not + already doing this. + +1739. [bug] dns_rbt_deletetree() could incorrectly return + ISC_R_QUOTA. [RT #12695] + +1738. [bug] Enable overrun checking by default. [RT #12695] + +1737. [bug] named failed if more than 16 masters were specified. + [RT #12627] + +1736. [bug] dst_key_fromnamedfile() could fail to read a + public key. [RT #12687] + +1735. [bug] 'dig +sigtrace' could die with a REQUIRE failure. + [RE #12688] + +1734. [cleanup] 'rndc-confgen -a -t' remove extra '/' in path. + [RT #12588] + +1733. [bug] Return non-zero exit status on initial load failure. + [RT #12658] + +1732. [bug] 'rrset-order name "*"' wasn't being applied to ".". + [RT #12467] + +1731. [port] darwin: relax version test in ifconfig.sh. + [RT #12581] + +1730. [port] Determine the length type used by the socket API. + [RT #12581] + +1728. [doc] Update check-names documentation. + +1727. [bug] named-checkzone: check-names support didn't match + documentation. + +1726. [port] aix5: add support for aix5. + +1725. [port] linux: update error message on interaction of threads, + capabilities and setuid support (named -u). [RT #12541] + +1724. [bug] Look for DNSKEY records with "dig +sigtrace". + [RT #12557] + +1723. [cleanup] Silence compiler warnings from t_tasks.c. [RT #12493] + +1722. [bug] Don't commit the journal on malformed ixfr streams. + [RT #12519] + +1721. [bug] Error message from the journal processing were not + always identifing the relevent journal. [RT #12519] + +1720. [bug] 'dig +chase' did not terminate on a RFC 2308 Type 1 + negative response. [RT #12506] + +1719. [bug] named was not correctly caching a RFC 2308 Type 1 + negative response. [RT #12506] + +1718. [bug] nsupdate was not handling RFC 2308 Type 3 negative >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Mar 29 21:03:02 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0839016A4D0; Tue, 29 Mar 2005 21:03: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 D2E9716A4CE for ; Tue, 29 Mar 2005 21:03:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8848343D39 for ; Tue, 29 Mar 2005 21:03:01 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2TL31J0071497 for ; Tue, 29 Mar 2005 21:03:01 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2TL31ES071494 for perforce@freebsd.org; Tue, 29 Mar 2005 21:03:01 GMT (envelope-from sam@freebsd.org) Date: Tue, 29 Mar 2005 21:03:01 GMT Message-Id: <200503292103.j2TL31ES071494@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74061 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, 29 Mar 2005 21:03:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=74061 Change 74061 by sam@sam_ebb on 2005/03/29 21:02:44 IFC Affected files ... .. //depot/projects/wifi/sys/dev/ath/ath_rate/amrr/amrr.c#9 integrate .. //depot/projects/wifi/sys/dev/ath/ath_rate/onoe/onoe.c#9 integrate Differences ... ==== //depot/projects/wifi/sys/dev/ath/ath_rate/amrr/amrr.c#9 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.4 2005/01/24 19:32:10 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.5 2005/03/29 20:59:49 sam Exp $"); /* * AMRR rate control. See: @@ -326,7 +326,9 @@ static void ath_rate_cb(void *arg, struct ieee80211_node *ni) { - ath_rate_update(ni->ni_ic->ic_ifp->if_softc, ni, (int)(uintptr_t) arg); + struct ath_softc *sc = arg; + + ath_rate_update(sc, ni, 0); } /* @@ -361,7 +363,7 @@ * For any other operating mode we want to reset the * tx rate state of each node. */ - ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, 0); + ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc); ath_rate_update(sc, ic->ic_bss, 0); } if (ic->ic_fixed_rate == -1 && state == IEEE80211_S_RUN) { ==== //depot/projects/wifi/sys/dev/ath/ath_rate/onoe/onoe.c#9 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.4 2005/01/24 19:32:10 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.5 2005/03/29 20:59:49 sam Exp $"); /* * Atsushi Onoe's rate control algorithm. @@ -310,7 +310,9 @@ static void ath_rate_cb(void *arg, struct ieee80211_node *ni) { - ath_rate_update(ni->ni_ic->ic_ifp->if_softc, ni, (int)(uintptr_t) arg); + struct ath_softc *sc = arg; + + ath_rate_update(sc, ni, 0); } /* @@ -345,7 +347,7 @@ * For any other operating mode we want to reset the * tx rate state of each node. */ - ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, 0); + ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc); ath_rate_update(sc, ic->ic_bss, 0); } if (ic->ic_fixed_rate == -1 && state == IEEE80211_S_RUN) { From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:10:56 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B5B916A4D0; Wed, 30 Mar 2005 05:10: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 1A4DC16A4CF for ; Wed, 30 Mar 2005 05:10:56 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1322B43D45 for ; Wed, 30 Mar 2005 05:10:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5AtaJ004472 for ; Wed, 30 Mar 2005 05:10:55 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5AsVP004469 for perforce@freebsd.org; Wed, 30 Mar 2005 05:10:54 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:10:54 GMT Message-Id: <200503300510.j2U5AsVP004469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74077 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, 30 Mar 2005 05:10:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=74077 Change 74077 by sam@sam_ebb on 2005/03/30 05:10:04 IFC @ 74076 Affected files ... .. //depot/projects/wifi/Makefile.inc1#15 integrate .. //depot/projects/wifi/contrib/telnet/telnet/telnet.c#3 integrate .. //depot/projects/wifi/etc/netstart#2 integrate .. //depot/projects/wifi/gnu/lib/libstdc++/config.h#3 integrate .. //depot/projects/wifi/lib/libarchive/Makefile#7 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_extract.c#4 integrate .. //depot/projects/wifi/lib/libugidfw/Makefile#2 integrate .. //depot/projects/wifi/lib/libugidfw/ugidfw.c#2 integrate .. //depot/projects/wifi/libexec/rexecd/rexecd.c#5 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 integrate .. //depot/projects/wifi/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#2 integrate .. //depot/projects/wifi/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#2 integrate .. //depot/projects/wifi/sbin/camcontrol/camcontrol.8#3 integrate .. //depot/projects/wifi/sbin/camcontrol/camcontrol.c#2 integrate .. //depot/projects/wifi/sbin/mount/mount.c#4 integrate .. //depot/projects/wifi/sbin/mount_ufs/mount_ufs.c#2 integrate .. //depot/projects/wifi/share/man/man4/polling.4#4 integrate .. //depot/projects/wifi/share/man/man4/xl.4#6 integrate .. //depot/projects/wifi/share/man/man9/make_dev.9#2 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_cd.c#4 integrate .. //depot/projects/wifi/sys/coda/coda_vnops.c#9 integrate .. //depot/projects/wifi/sys/compat/linux/linux_getcwd.c#3 integrate .. //depot/projects/wifi/sys/compat/ndis/kern_ndis.c#9 integrate .. //depot/projects/wifi/sys/compat/ndis/ndis_var.h#8 integrate .. //depot/projects/wifi/sys/compat/ndis/ntoskrnl_var.h#9 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_hal.c#7 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ndis.c#9 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ntoskrnl.c#10 integrate .. //depot/projects/wifi/sys/conf/files.amd64#8 integrate .. //depot/projects/wifi/sys/conf/files.i386#13 integrate .. //depot/projects/wifi/sys/conf/kern.post.mk#5 integrate .. //depot/projects/wifi/sys/conf/kern.pre.mk#6 integrate .. //depot/projects/wifi/sys/conf/majors#4 delete .. //depot/projects/wifi/sys/conf/majors.awk#2 delete .. //depot/projects/wifi/sys/dev/aac/aac.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi.c#10 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_cpu.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_perf.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpivar.h#7 integrate .. //depot/projects/wifi/sys/dev/an/if_an.c#3 integrate .. //depot/projects/wifi/sys/dev/ciss/ciss.c#5 integrate .. //depot/projects/wifi/sys/dev/fb/vga.c#3 integrate .. //depot/projects/wifi/sys/dev/firewire/fwohci.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/entry.c#6 integrate .. //depot/projects/wifi/sys/dev/if_ndis/if_ndis.c#12 integrate .. //depot/projects/wifi/sys/dev/if_ndis/if_ndis_pci.c#6 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb.c#4 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb.h#3 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb_osdep.h#3 integrate .. //depot/projects/wifi/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/wifi/sys/dev/mlx/mlx_pci.c#4 integrate .. //depot/projects/wifi/sys/dev/mse/msevar.h#3 integrate .. //depot/projects/wifi/sys/dev/nge/if_nge.c#5 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard_cis.c#5 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard_cis_quirks.c#3 integrate .. //depot/projects/wifi/sys/dev/pci/pci.c#12 integrate .. //depot/projects/wifi/sys/dev/pci/pcireg.h#3 integrate .. //depot/projects/wifi/sys/dev/random/randomdev_soft.c#5 integrate .. //depot/projects/wifi/sys/dev/sym/sym_hipd.c#4 integrate .. //depot/projects/wifi/sys/dev/twa/twa.c#3 integrate .. //depot/projects/wifi/sys/dev/usb/usb.c#6 integrate .. //depot/projects/wifi/sys/dev/wi/if_wi_pccard.c#5 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#18 integrate .. //depot/projects/wifi/sys/fs/hpfs/hpfs_vnops.c#9 integrate .. //depot/projects/wifi/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate .. //depot/projects/wifi/sys/fs/ntfs/ntfs_vnops.c#11 integrate .. //depot/projects/wifi/sys/fs/nwfs/nwfs_vnops.c#8 integrate .. //depot/projects/wifi/sys/fs/portalfs/portal_vnops.c#5 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_vnops.c#6 integrate .. //depot/projects/wifi/sys/fs/smbfs/smbfs_vnops.c#10 integrate .. //depot/projects/wifi/sys/fs/udf/udf_vnops.c#11 integrate .. //depot/projects/wifi/sys/fs/unionfs/union_vnops.c#11 integrate .. //depot/projects/wifi/sys/gdb/gdb_main.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_subr.c#3 integrate .. //depot/projects/wifi/sys/geom/mirror/g_mirror.c#10 integrate .. //depot/projects/wifi/sys/geom/mirror/g_mirror_ctl.c#6 integrate .. //depot/projects/wifi/sys/geom/raid3/g_raid3.c#12 integrate .. //depot/projects/wifi/sys/geom/raid3/g_raid3_ctl.c#5 integrate .. //depot/projects/wifi/sys/gnu/ext2fs/ext2_lookup.c#4 integrate .. //depot/projects/wifi/sys/i386/cpufreq/powernow.c#1 branch .. //depot/projects/wifi/sys/i386/i386/bios.c#3 integrate .. //depot/projects/wifi/sys/isofs/cd9660/cd9660_lookup.c#2 integrate .. //depot/projects/wifi/sys/kern/kern_conf.c#8 integrate .. //depot/projects/wifi/sys/kern/kern_lock.c#7 integrate .. //depot/projects/wifi/sys/kern/kern_lockf.c#5 integrate .. //depot/projects/wifi/sys/kern/kern_tc.c#2 integrate .. //depot/projects/wifi/sys/kern/subr_trap.c#5 integrate .. //depot/projects/wifi/sys/kern/tty.c#7 integrate .. //depot/projects/wifi/sys/kern/vfs_cache.c#6 integrate .. //depot/projects/wifi/sys/kern/vfs_lookup.c#9 integrate .. //depot/projects/wifi/sys/kern/vfs_subr.c#18 integrate .. //depot/projects/wifi/sys/modules/cpufreq/Makefile#3 integrate .. //depot/projects/wifi/sys/modules/hpfs/Makefile#2 integrate .. //depot/projects/wifi/sys/net/bpf.c#8 integrate .. //depot/projects/wifi/sys/net/rtsock.c#5 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_freebsd.c#16 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_freebsd.h#13 integrate .. //depot/projects/wifi/sys/netinet/igmp.c#3 integrate .. //depot/projects/wifi/sys/netinet/ip_fastfwd.c#4 integrate .. //depot/projects/wifi/sys/netinet/raw_ip.c#4 integrate .. //depot/projects/wifi/sys/netinet/tcp_usrreq.c#10 integrate .. //depot/projects/wifi/sys/netinet/udp_usrreq.c#5 integrate .. //depot/projects/wifi/sys/netinet6/raw_ip6.c#5 integrate .. //depot/projects/wifi/sys/nfs4client/nfs4_vnops.c#10 integrate .. //depot/projects/wifi/sys/nfsclient/nfs_vnops.c#17 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_srvsubs.c#6 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/wifi/sys/pc98/pc98/pc98_machdep.c#3 integrate .. //depot/projects/wifi/sys/pci/if_sis.c#4 integrate .. //depot/projects/wifi/sys/pci/if_sk.c#11 integrate .. //depot/projects/wifi/sys/pci/if_ti.c#6 integrate .. //depot/projects/wifi/sys/pci/if_xl.c#5 integrate .. //depot/projects/wifi/sys/pci/if_xlreg.h#3 integrate .. //depot/projects/wifi/sys/sys/conf.h#8 integrate .. //depot/projects/wifi/sys/sys/lockmgr.h#5 integrate .. //depot/projects/wifi/sys/sys/namei.h#4 integrate .. //depot/projects/wifi/sys/sys/systm.h#10 integrate .. //depot/projects/wifi/sys/sys/vnode.h#19 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_vfsops.c#18 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_extattr.c#7 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/wifi/tools/tools/ath/80211watch.c#2 integrate .. //depot/projects/wifi/usr.bin/stat/stat.1#2 integrate .. //depot/projects/wifi/usr.bin/tar/bsdtar.1#5 integrate .. //depot/projects/wifi/usr.bin/truss/extern.h#2 integrate .. //depot/projects/wifi/usr.bin/truss/main.c#2 integrate .. //depot/projects/wifi/usr.bin/truss/setup.c#2 integrate .. //depot/projects/wifi/usr.sbin/Makefile#7 integrate .. //depot/projects/wifi/usr.sbin/config/main.c#2 integrate .. //depot/projects/wifi/usr.sbin/memcontrol/memcontrol.c#3 integrate .. //depot/projects/wifi/usr.sbin/mtree/Makefile#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/compare.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/create.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/misc.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/mtree.8#4 integrate .. //depot/projects/wifi/usr.sbin/mtree/mtree.h#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/spec.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/specspec.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/test/test03.sh#2 integrate .. //depot/projects/wifi/usr.sbin/pciconf/pciconf.c#2 integrate .. //depot/projects/wifi/usr.sbin/sysinstall/menus.c#6 integrate .. //depot/projects/wifi/usr.sbin/syslogd/syslogd.c#6 integrate Differences ... ==== //depot/projects/wifi/Makefile.inc1#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.489 2005/03/22 14:22:47 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.490 2005/03/27 19:35:09 ru Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -205,7 +205,7 @@ PATH=${TMPPATH} WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP} -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" # 32 bit world LIB32TMP= ${OBJTREE}${.CURDIR}/lib32 @@ -382,7 +382,7 @@ @echo ">>> stage 4.4: building everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${WMAKE} par-all -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" build32: @echo @echo "--------------------------------------------------------------" @@ -454,7 +454,7 @@ WMAKE_TGTS+= _cross-tools .endif WMAKE_TGTS+= _includes _libraries _depend everything -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) WMAKE_TGTS+= build32 .endif @@ -540,7 +540,7 @@ @echo ">>> Installing everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32 .endif ==== //depot/projects/wifi/contrib/telnet/telnet/telnet.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ #endif #endif #include -__FBSDID("$FreeBSD: src/contrib/telnet/telnet/telnet.c,v 1.15 2005/02/28 12:46:53 tobez Exp $"); +__FBSDID("$FreeBSD: src/contrib/telnet/telnet/telnet.c,v 1.16 2005/03/28 14:45:12 nectar Exp $"); #include @@ -1326,6 +1326,7 @@ } unsigned char slc_reply[128]; +unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)]; unsigned char *slc_replyp; void @@ -1341,6 +1342,14 @@ void slc_add_reply(unsigned char func, unsigned char flags, cc_t value) { + /* A sequence of up to 6 bytes my be written for this member of the SLC + * suboption list by this function. The end of negotiation command, + * which is written by slc_end_reply(), will require 2 additional + * bytes. Do not proceed unless there is sufficient space for these + * items. + */ + if (&slc_replyp[6+2] > slc_reply_eom) + return; if ((*slc_replyp++ = func) == IAC) *slc_replyp++ = IAC; if ((*slc_replyp++ = flags) == IAC) @@ -1354,6 +1363,9 @@ { int len; + /* The end of negotiation command requires 2 bytes. */ + if (&slc_replyp[2] > slc_reply_eom) + return; *slc_replyp++ = IAC; *slc_replyp++ = SE; len = slc_replyp - slc_reply; @@ -1471,8 +1483,8 @@ } } -#define OPT_REPLY_SIZE 256 -unsigned char *opt_reply; +#define OPT_REPLY_SIZE (2 * SUBBUFSIZE) +unsigned char *opt_reply = NULL; unsigned char *opt_replyp; unsigned char *opt_replyend; @@ -1525,9 +1537,9 @@ return; } vp = env_getvalue(ep); - if (opt_replyp + (vp ? strlen((char *)vp) : 0) + - strlen((char *)ep) + 6 > opt_replyend) - { + if (opt_replyp + (vp ? 2 * strlen((char *)vp) : 0) + + 2 * strlen((char *)ep) + 6 > opt_replyend) + { int len; opt_replyend += OPT_REPLY_SIZE; len = opt_replyend - opt_reply; @@ -1551,6 +1563,8 @@ *opt_replyp++ = ENV_USERVAR; for (;;) { while ((c = *ep++)) { + if (opt_replyp + (2 + 2) > opt_replyend) + return; switch(c&0xff) { case IAC: *opt_replyp++ = IAC; @@ -1565,6 +1579,8 @@ *opt_replyp++ = c; } if ((ep = vp)) { + if (opt_replyp + (1 + 2 + 2) > opt_replyend) + return; #ifdef OLD_ENVIRON if (telopt_environ == TELOPT_OLD_ENVIRON) *opt_replyp++ = old_env_value; @@ -1595,7 +1611,9 @@ { int len; - len = opt_replyp - opt_reply + 2; + if (opt_replyp + 2 > opt_replyend) + return; + len = opt_replyp + 2 - opt_reply; if (emptyok || len > 6) { *opt_replyp++ = IAC; *opt_replyp++ = SE; ==== //depot/projects/wifi/etc/netstart#2 (text+ko) ==== @@ -24,12 +24,12 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/netstart,v 1.64 2004/02/10 19:10:34 des Exp $ +# $FreeBSD: src/etc/netstart,v 1.65 2005/03/26 20:10:24 cperciva Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # # This file is NOT called by any of the other scripts - it has been -# obsoleted by /etc/rc.network and is provided here only for user +# obsoleted by /etc/rc.d/* and is provided here only for user # convenience (if you're sitting in single user mode and wish to start # the network by hand, this script will do it for you). # ==== //depot/projects/wifi/gnu/lib/libstdc++/config.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.10 2005/01/26 14:23:31 kan Exp $ */ +/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.11 2005/03/26 08:27:53 das Exp $ */ /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ @@ -285,7 +285,7 @@ #define HAVE_FREXPF 1 /* Define to 1 if you have the `frexpl' function. */ -/* #undef HAVE_FREXPL */ +#define HAVE_FREXPL 1 /* Define to 1 if you have the `fwide' function. */ #define HAVE_FWIDE 1 @@ -357,7 +357,7 @@ #define HAVE_LDEXPF 1 /* Define to 1 if you have the `ldexpl' function. */ -/* #undef HAVE_LDEXPL */ +#define HAVE_LDEXPL 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_LIBINTL_H */ ==== //depot/projects/wifi/lib/libarchive/Makefile#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/Makefile,v 1.31 2005/03/13 02:53:42 kientzle Exp $ +# $FreeBSD: src/lib/libarchive/Makefile,v 1.32 2005/03/29 05:24:08 kientzle Exp $ # # Use "make distfile" to build a conventional tar.gz archive @@ -7,7 +7,7 @@ LIB= archive -VERSION= 1.02.013 +VERSION= 1.02.016 ARCHIVE_API_FEATURE= 2 ARCHIVE_API_VERSION= 1 SHLIB_MAJOR= ${ARCHIVE_API_VERSION} ==== //depot/projects/wifi/lib/libarchive/archive_read_extract.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.37 2005/03/13 02:53:42 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.38 2005/03/29 05:24:08 kientzle Exp $"); #include #ifdef HAVE_SYS_ACL_H @@ -185,15 +185,16 @@ /* * If pathname is longer than PATH_MAX, record starting directory - * and move to a suitable intermediate dir. + * and chdir to a suitable intermediate dir. */ if (strlen(archive_entry_pathname(entry)) > PATH_MAX) { + char *intdir, *tail; + /* * Yes, the copy here is necessary because we edit * the pathname in-place to create intermediate dirnames. */ original_filename = strdup(archive_entry_pathname(entry)); - char *intdir, *tail; restore_pwd = open(".", O_RDONLY); /* @@ -203,28 +204,28 @@ intdir = tail = original_filename; while (strlen(tail) > PATH_MAX) { intdir = tail; + + /* Locate a dir prefix shorter than PATH_MAX. */ tail = intdir + PATH_MAX - 8; while (tail > intdir && *tail != '/') tail--; if (tail <= intdir) { - close(restore_pwd); archive_set_error(a, EPERM, "Path element too long"); - return (ARCHIVE_WARN); + ret = ARCHIVE_WARN; + goto cleanup; } + + /* Create intdir and chdir to it. */ *tail = '\0'; /* Terminate dir portion */ - if (create_dir(a, intdir, flags) != ARCHIVE_OK) { - fchdir(restore_pwd); - close(restore_pwd); - return (ARCHIVE_WARN); - } - if (chdir(intdir) != 0) { + ret = create_dir(a, intdir, flags); + if (ret == ARCHIVE_OK && chdir(intdir) != 0) { archive_set_error(a, errno, "Couldn't chdir"); - fchdir(restore_pwd); - close(restore_pwd); - return (ARCHIVE_WARN); + ret = ARCHIVE_WARN; } *tail = '/'; /* Restore the / we removed. */ + if (ret != ARCHIVE_OK) + goto cleanup; tail++; } archive_entry_set_pathname(entry, tail); @@ -266,9 +267,12 @@ } } + +cleanup: /* If we changed directory above, restore it here. */ if (restore_pwd >= 0 && original_filename != NULL) { fchdir(restore_pwd); + close(restore_pwd); archive_entry_copy_pathname(entry, original_filename); free(original_filename); } ==== //depot/projects/wifi/lib/libugidfw/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libugidfw/Makefile,v 1.5 2004/02/25 03:24:39 rwatson Exp $ +# $FreeBSD: src/lib/libugidfw/Makefile,v 1.6 2005/03/28 09:38:43 pjd Exp $ LIB= ugidfw SHLIB_MAJOR= 1 @@ -9,7 +9,7 @@ bsde_rule_to_string.3 libugidfw.3 MLINKS= bsde_get_rule.3 bsde_add_rule.3 -MLINKS= bsde_get_rule.3 bsde_delete_rule.3 +MLINKS+= bsde_get_rule.3 bsde_delete_rule.3 MLINKS+= bsde_get_rule.3 bsde_set_rule.3 MLINKS+= bsde_get_rule_count.3 bsde_get_rule_slots.3 MLINKS+= bsde_parse_rule.3 bsde_parse_rule_string.3 ==== //depot/projects/wifi/lib/libugidfw/ugidfw.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libugidfw/ugidfw.c,v 1.7 2004/10/21 11:21:13 rwatson Exp $ + * $FreeBSD: src/lib/libugidfw/ugidfw.c,v 1.8 2005/03/28 09:37:44 pjd Exp $ */ #include #include @@ -743,7 +743,7 @@ } if (rulenum != NULL) - rule_slots; + *rulenum = rule_slots; return (0); } ==== //depot/projects/wifi/libexec/rexecd/rexecd.c#5 (text+ko) ==== @@ -42,7 +42,7 @@ static char sccsid[] = "@(#)rexecd.c 8.1 (Berkeley) 6/4/93"; #endif static const char rcsid[] = - "$FreeBSD: src/libexec/rexecd/rexecd.c,v 1.36 2005/03/21 08:01:14 das Exp $"; + "$FreeBSD: src/libexec/rexecd/rexecd.c,v 1.37 2005/03/27 13:59:44 nectar Exp $"; #endif /* not lint */ #include @@ -135,7 +135,9 @@ char *cmdbuf, *cp; int maxcmdlen; char user[16], pass[16]; - struct passwd *pwd; + struct passwd *pwd, pwd_storage; + char *pwdbuf; + int pwdbuflen; int fd, r, sd; u_short port; int pv[2], pid, cc, nfds; @@ -190,7 +192,20 @@ getstr(cmdbuf, maxcmdlen, "command"); (void) alarm(0); - if ((pwd = getpwnam(user)) == NULL || (pwd->pw_uid = 0 && no_uid_0) || + pwdbuflen = BUFSIZ; + pwdbuf = NULL; + pwd = NULL; + r = ERANGE; + while (pwd == NULL && r == ERANGE) { + pwdbuflen <<= 1; + if ((pwdbuf = reallocf(pwdbuf, pwdbuflen)) == NULL) { + syslog(LOG_ERR, "Cannot allocate memory"); + error("Cannot allocate memory.\n"); + exit(1); + } + r = getpwnam_r(user, &pwd_storage, pwdbuf, pwdbuflen, &pwd); + } + if (pwd == NULL || (pwd->pw_uid == 0 && no_uid_0) || !pam_ok(pam_start("rexecd", user, &pamc, &pamh)) || !pam_ok(pam_set_item(pamh, PAM_RHOST, remote)) || !pam_ok(pam_set_item(pamh, PAM_AUTHTOK, pass)) || ==== //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 (text+ko) ==== @@ -3,7 +3,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.834 2005/03/23 20:42:09 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.835 2005/03/27 17:25:18 delphij Exp $ 2000 @@ -893,7 +893,7 @@ Korea. &merged; The option of the &man.xargs.1; command - has been changed to confirm IEEE Std 1003.1-2004. + has been changed to conform IEEE Std 1003.1-2004. The standard requires that the constructed arguments cannot grow larger than 255 bytes. ==== //depot/projects/wifi/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#2 (text+ko) ==== @@ -1,8 +1,8 @@ @@ -16,6 +16,7 @@ 2002 2003 2004 + 2005 The FreeBSD Documentation Project ==== //depot/projects/wifi/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#2 (text+ko) ==== @@ -1,14 +1,14 @@ &os;/&arch; &release.current; ·¢ÐÐ˵Ã÷ The &os; Project - $FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.1 2004/10/15 06:43:48 delphij Exp $ + $FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.2 2005/03/27 16:51:55 delphij Exp $ 2000 @@ -16,15 +16,25 @@ 2002 2003 2004 + 2005 The &os; Documentation Project + + &tm-attrib.freebsd; + &tm-attrib.ibm; + &tm-attrib.ieee; + &tm-attrib.intel; + &tm-attrib.sparc; + &tm-attrib.general; + + - &os; &release.current; µÄ·¢ÐÐ˵Ã÷°üÀ¨ÁË×Ô &release.prev; ÒÔÀ´ - &os; »ù±¾ÏµÍ³Ëù½øÐеĸĶ¯µÄ×ܽᡣ - Õâ·ÝÎĵµÁоÙÁ˶ÔÉÏÒ»·¢Ðа汾ÊÊÓõÄËùÓа²È«¹«¸æ£¬ÒÔ¼° - &os; Äں˺ÍÓû§³ÌÐòËù×÷µÄÖØÒªÐ޸ġ£ - ¶ÔÓÚÉý¼¶Ê±ÐèҪעÒâµÄһЩÎÊÌ⣬Ҳ½øÐÐÁ˼òÂԵĽéÉÜ¡£ + Õâ·Ý &os; &release.current; µÄ·¢ÐÐ˵Ã÷£¬ ¸ÅÀ¨ÁË &os; + »ù±¾ÏµÍ³×Ô &release.branch; ´´½¨ÒÔÀ´Ëù×öµÄ¸Ä¶¯¡£ + ±¾ÎĵµÁоÙÁË×ÔÇ°Ò»·¢Ðа汾ÒÔÀ´ËùÓÐÊÊÓõݲȫ¹«¸æ£¬ ÒÔ¼°¶ÔÓÚ + &os; ÄÚºËÒÔ¼°ÏµÍ³¸½´øµÄÓ¦ÓóÌÐòËù×öµÄÖØÒªÐ޸ġ£ + ÔÚÉý¼¶Ê±ËùÐèҪעÒâµÄһЩÎÊÌ⣬ Ò²½øÐÐÁ˼òÂԵĽéÉÜ¡£ @@ -35,12 +45,22 @@ &release.current; µÄ·¢ÐÐ˵Ã÷¡£ ËüÃèÊöÁË×î½ü¸Õ¸Õ¼ÓÈë¡¢Ð޸Ļòɾ³ýÁ赀 &os; ÌØÐÔµÄ˵Ã÷¡£ ͬʱ£¬ËüÒ²½«¸ø³öÈçºÎ´ÓÏÈÇ°µÄ &os; °æ±¾Íê³ÉÉý¼¶µÄ˵Ã÷¡£ +ÕâƪÎĵµËù½éÉÜµÄ &release.type; Èí¼þ°ü£¬ + ½éÉÜÁË &release.branch; ¿ª·¢·ÖÖ§×Ô &release.branch; + ´´½¨ÒÔÀ´µÄ½øÕ¹¡£ ¹ØÓÚÕâÒ»·ÖÖ§ÉÏÔ¤±àÒëµÄ¡¢ ¶þ½øÖÆ°æ±¾µÄ + &release.type; Èí¼þ°ü£¬ ¿ÉÒÔÔÚ + ÕÒµ½¡£ + +]]> + Õâ·Ý &release.type; °æ±¾ÊÇÕýÔÚ½øÐпª·¢µÄ &release.branch; - ·ÖÖ§ÔÚ &release.prev; ºÍδÀ´µÄ &release.next; Ö®¼äµÄÒ»¸ö¿ìÕÕ¡£ - Ô¤ÏȱàÒëºÃµÄ &release.type; °²×°°ü¿ÉÒÔÔÚ - ÕÒµ½¡£ + Õâ·Ý˵Ã÷Ëù˵µÄ &release.type; °æ±¾£¬ + ÊÇÔÚ &release.branch; ¿ª·¢·ÖÖ§ÉÏ &release.prev; µ½Î´À´µÄ &release.next; + ÉϵÄÒ»µã¡£ ÕâÒ»¿ª·¢·ÖÖ§ÉÏÔ¤±àÒëµÄ¶þ½øÖÆÐÎʽµÄ &release.type; + °²×°°ü£¬ ¿ÉÒÔÔÚ ÕÒµ½¡£ ]]> @@ -84,340 +104,114 @@ °²È«¹«¸æ - ÔÚ &man.mksnap.ffs.8; ÖеÄÒ»´¦È±Ïݱ»¸ÄÕý£» - ÕâһȱÏݻᵼÖ´´½¨¿ìÕÕʱ½«ÎļþϵͳµÄȨÏÞ±ê¼ÇÖµ (flags) »Ö¸´µ½Ä¬ÈÏ״̬¡£ - ÉÏÊöÎÊÌâ¿ÉÄÜÒý·¢µÄºó¹ûÓëÈçºÎÀûÓÃÕâһȱÏÝÓйأ¬µ«ËüÖÁÉÙ¿ÉÒÔ±»ÓÃÀ´Èƹý»ùÓÚÀ©Õ¹·ÃÎÊ¿ØÖƱíµÄ°²È«»úÖÆ£¬ - ÒÔ¼°ÔÚ²»Ó¦ÊÜÐÅÈεÄÎļþϵͳÉÏÆôÓà setuid Ö§³Ö¡£ - ÕâÒ»ÎÊÌâÒ²»áÓ°Ïì &man.dump.8; µÄ - Ñ¡ÏÒòΪËüÒ²»áʹÓà &man.mksnap.ffs.8;¡£ - ÐèҪ˵Ã÷µÄÊÇ£¬ &man.mksnap.ffs.8; ÔÚͨ³£Çé¿öÏÂÖ»Óг¬¼¶Óû§ºÍ - operator ×éµÄ³ÉÔ±²ÅÄܹ»Ê¹Óᣠ- ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:01¡£ - - ÐÞÕýÁËÒ»¸ö System V ¹²ÏíÄÚ´æ½Ó¿Ú - (ÌØÖ¸ &man.shmat.2; ϵͳµ÷ÓÃ) µÄÎÊÌâ¡£ - ÕâÒ»ÎÊÌâ»áµ¼Ö¹²ÏíÄÚ´æ¶ÎÒýÓõ½Î´·ÖÅäµÄÄÚºËÄÚ´æ¡£ - ÓÚÊÇ£¬Õ⽫µ¼Ö±¾µØµÄ¹¥»÷ÕßÔÚûÓеõ½ÊÚȨµÄÇé¿öÏ·ÃÎÊÒ»²¿·ÖÄÚºËÄڴ棬 - Æä½á¹ûÊÇ¿ÉÄÜ»áй¶һЩÃô¸ÐÐÅÏ¢£¬Èƹý·ÃÎÊ¿ØÖÆ»úÖÆ£¬»òµ¼ÖÂÌØȨÌáÉý¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:02¡£ + ÔÚ &man.fetch.1; ¹¤¾ßÖз¢ÏÖÁËÒ»´¦ÎÊÌ⣬ + Ëü¿ÉÄܵ¼Ö¶ñÒâµÄ HTTP ·þÎñÆ÷¸²¸Ç¿Í»§³ÌÐòÈÎÒⲿ·ÖµÄÄڴ棬 + ÕâÒ»ÎÊÌâÒѾ­µÃµ½ÐÞ¸´¡£ ÒªÁ˽â¸ü¶àÐÅÏ¢£¬ Çë²Î¼û°²È«¹«¸æ + FreeBSD-SA-04:16.fetch¡£ &merged; - ÐÞÕýÁË &man.jail.attach.2; ϵͳµ÷ÓÃÖеÄÒ»´¦±àÂëʧÎó¡£ - Õâ¸öʧÎóÓпÉÄÜÔÊÐíÔÚ &man.jail.8; »·¾³ÖÐÒÔ³¬¼¶Óû§Éí·ÝÔËÐеĽø³ÌÐÞ¸ÄÆä¸ùĿ¼µ½ÁíÒ»¸ö - jail ÖУ¬½ø¶ø»ñµÃÔÚÄǸö jail ÖеÄÍêÈ«¶ÁдȨÏÞ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:03¡£ - - ͨ¹ýÏÞÖÆͬһʱ¼ä¶ÎÄÚÔÊÐíµÄ´íλ·ÖƬÊýÄ¿£¬Ò»ÖÖDZÔÚµÄÕë¶Ô &os; - TCP ЭÒéÕ»µÄ·Ç¶Ô³Æ´ø¿í¾Ü¾ø·þÎñ¹¥»÷µÃÒÔ±ÜÃâ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:04¡£ + ÔÚ &man.procfs.5; ºÍ &man.linprocfs.5; + Öз¢ÏÖÁËÒ»´¦ÎÊÌ⣬ ËüÄܹ»ÔÊÐí¶ñÒâµÄ±¾µØÓû§¶ÁÈ¡²¿·ÖÄÚºËÄڴ棬 + »òͨ¹ýÔì³Éϵͳ panic À´ÊµÊ©±¾µØ¾Ü¾ø·þÎñ¹¥»÷£¬ + ÕâÒ»ÎÊÌâÒѾ­µÃµ½ÐÞ¸´¡£ ÒªÁ˽â¸ü¶àÐÅÏ¢£¬ Çë²Î¼û°²È«¹«¸æ + FreeBSD-SA-04:17.procfs¡£ &merged; - ÔÚ OpenSSL µÄ SSL/TLS - ChangeCipherSpec ÏûÏ¢´¦Àí¹ý³ÌÖеÄÒ»¸öÎÊÌâ¿ÉÄܵ¼Ö¶ÔÁãÖ¸ÕëµÄ²Ù×÷£¬ - ÏÖÔÚÒѾ­µÃµ½¾ÀÕý¡£ ÕâÒ»ÎÊÌâ¿ÉÄÜÒýÖÂÔ¶³Ì¹¥»÷Õß·¢¶¯¹¥»÷²¢µ¼Ö²ÉÓà - OpenSSL µÄÓ¦ÓóÌÐò±ÀÀ££¬´Ó¶øÍê³É¾Ü¾ø·þÎñ¹¥»÷¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:05¡£ - &merged; - - ÐÞÕýÁËÒ»´¦ &man.setsockopt.2; ϵͳµ÷ÓÃÔÚ´¦ÀíijЩ IPv6 socket - Ñ¡ÏîʱµÄ±à³ÌÊèºö¡£ ÕâÒ»ÎÊÌâʹµÃ±¾µØµÄ¹¥»÷ÕßÄܹ»Òý·¢ÏµÍ³ panic£¬ - ²¢ÇÒ£¬»¹ÓпÉÄÜÔÚδ¾­ÊÚȨµÄÇé¿öÏ·ÃÎÊÄÚºËÄÚ´æµÄijЩ²¿·Ö£¬ - Õâ¿ÉÄÜÔì³ÉÃô¸ÐÐÅÏ¢µÄй©¡¢Èƹý·ÃÎÊ¿ØÖÆ»úÖÆ£¬»òµ¼ÖÂÌØȨÌáÉý¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:06¡£ - - ÐÞÕýÁË CVS ÖеÄÁ½´¦³ÌÐòÉè¼ÆȱÏÝ¡£ - ÕâЩȱÏÝÄܹ»µ¼Ö·þÎñÆ÷¸²¸Ç¿Í»§»úÉϵÄÈÎÒâÎļþ£¬ÒÔ¼°ÔÊÐí¿Í»§»úÔÚ·ÃÎÊÔ¶³Ì´úÂë¿âµÄ¹ý³ÌÖжÁÈ¡·þÎñÆ÷ÉϵÄÈÎÒâÎļþ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:07¡£ &merged; - - ÐÞÕýÁË Heimdal ÖжÔÓÚĬÈϵĿçÓòÑé֤ûÓÐʵʩÓÐЧµÄ¼ì²éµÄÎÊÌâ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:08¡£ &merged; - - ÐÞÕýÁË CVS ÔÊÐí¶ñÒâµÄ¿Í»§¸²¸Ç·þÎñÆ÷ÈÎÒⲿ·ÖµÄÎÊÌâ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:10¡£ &merged; - - ÐÞÕýÁË &man.msync.2; ϵͳµ÷ÓÃÖеÄÒ»¸öDZÔÚµÄÓë - MS_INVALIDATE ²Ù×÷ÓйصĻº´æÒ»ÖÂÐÔÆÆ»µÎÊÌâ¡£ - ²»¹ý£¬ÐÞ¸´ÕâÒ»°²È«ÎÊÌâµÄ¸ºÃæÓ°ÏìÊÇ£¬ MS_INVALIDATE - ²»ÔÙ±£Ö¤¸Ã·¶Î§ÄÚËùÓÐÒ³¶¼Ê§Ð§¡£ - ¶ÔÓÚ²»µ£ÐÄÕâÒ»°²È«ÎÊÌ⣬ ÇÒÏ£Íû±£³ÖÔ­Ï鵀 MS_INVALIDATE - ÓïÒåµÄÓû§¿ÉÒÔ¿¼Âǽ« vm.old_msync sysctl ÉèÖÃΪ 1 - À´»¹Ô­ÏÈÇ°µÄ (ͬʱҲÊDz»°²È«µÄ) ÐÐΪ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:11¡£ &merged; - - ÐÞÕýÁË &man.jail.2; ϵͳµ÷ÓÃÖеÄÒ»´¦³ÌÐòÉè¼ÆʧÎó¡£ - ÕâÒ»ÎÊÌâ¿ÉÄܵ¼Ö jail ÍâÃæµÄ½ø³ÌÐÞ¸Ä jail ÖеÄ·ÓÉ±í¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:12¡£ &merged; - - ÐÞÕýÁËÔÚ´¦ÀíijЩ Linux ϵͳµ÷ÓÃʱûÓнøÐÐÓÐЧµÄÑéÖ¤¶øµ¼ÖµķÃÎÊÈÎÒâÄڴ淶ΧµÄÎÊÌâ¡£ - ¹ØÓÚÕâÒ»ÎÊÌâµÄÏêÇ飬Çë²Î¿¼°²È«¹«¸æ FreeBSD-SA-04:13¡£ &merged; - - ͨ¹ý½« CVS Éý¼¶µ½ 1.11.17£¬ - ÐÞÕýÁË CVS ÖпÉÄܵ¼ÖÂÐÅϢй¶¡¢ - ¾Ü¾ø·þÎñ£¬ »òÖ´ÐÐÈÎÒâ´úÂëµÄһϵÁгÌÐòÉè¼ÆÎÊÌâ¡£ - ÒªÁ˽â¸üÏêϸµÄÐÅÏ¢£¬ Çë²Î¼û°²È«¹«¸æ FreeBSD-SA-04:14¡£ - - ÐÞÕýÁË CONS_SCRSHOT &man.ioctl.2; - ÖеÄÒ»´¦ÎÊÌ⣻ Õâ¸öÎÊÌâ¿ÉÄܵ¼ÖÂδÊÚȨµÄ¶ÔÄÚºËÄÚ´æµÄ·ÃÎÊ£¬ - ¶øÕâÖÖ·ÃÎÊ¿ÉÄܻᵼÖÂй¶Ãô¸ÐÐÅÏ¢¡¢ Èƹý·ÃÎÊ¿ØÖÆ»úÖÆ£¬ - »òµ¼ÖÂÌØȨÌáÉý¡£ - ÒªÁ˽â¸üÏêϸµÄÐÅÏ¢£¬ Çë²Î¼û°²È«¹«¸æ FreeBSD-SA-04:15¡£ ¶ÔÓÚÄں˵ĸĶ¯ - ¼ÓÈ벢ĬÈÏÆôÓÃÁË ADAPTIVE_MUTEXES¡£ - µ±ÁíÒ»¸ö CPU ÉÏÔËÐеÄÏß³ÌÓµÓÐij¸ö mutex ʱ£¬ - Õ⽫ÈÃÊÜ×èµÄ mutex ×ÔÐý¡£ - Èç¹ûÒª¹Ø±ÕÕâ¸öÌØÐÔ£¬ ÔòÐèÒªÉèÖÃÄÚºËÑ¡Ïî - NO_ADAPTIVE_MUTEXES¡£ + ¶ÔÓÚ 80386 ´¦ÀíÆ÷ (Ò²¾ÍÊÇ + I386_CPU ÄÚºËÅäÖÃÑ¡Ïî) µÄÖ§³Ö£¬ + ÒѾ­±»É¾È¥¡£ ʹÓÃÕâÒ»ÀàÐ굀 CPU µÄÓû§£¬ ӦʹÓà &os; + 5.X »ò¸üÔçµÄ°æ±¾¡£ - ÐÂÔöÁË ADAPTIVE_GIANT£¬ - ËüʹµÃÆôÓÃÁË×ÔÊÊÓ¦ mutex ʱ£¬ÄÚºËÈ«¾ÖËø (Giant) - Ò²ÒÔ×ÔÊÊÓ¦ mutex µÄ·½Ê½´¦Àí¡£ Õâ¿ÉÒÔ¸ÄÉÆ SMP »úÆ÷µÄÐÔÄÜ£¬ - ²¢ÔÚ i386 ÉÏĬÈÏÆôÓᣠ+ Äں˵÷ÊÔÆ÷ &man.ddb.4; ÏÖÔÚÖ§³ÖÓÃÓÚÏÔʾ³ÖÓÐÐÝÃß»¥³âÌå + (ÒÔ¼°µ±Ç°Ïß³ÌËù³ÖÓеÄ×ÔÐý»¥³âÌå) µÄÇé¿öµÄ + show alllocks ÃüÁîÁË¡£ &merged; - &man.bus.dma.9; ½Ó¿ÚÐÂÔöÁ˼ÓÔØ»º³åʱ¶ÔÓÚ DMA tag - ÖеĶÔÆëºÍ±ß½çÏÞÖƵÄ͸Ã÷ʶ±ðÖ§³Ö£¬ - ¶ø bus_dmamap_load() - ½«ÔÚÐèҪʱ×Ô¶¯Ê¹Óõ¯»Ø»º³å¡£ - ´ËÍ⣬ »¹Ôö¼ÓÁËÒ»×éÓÃÓÚ &man.bus.dma.9; ͳ¼ÆµÄ - sysctl hw.busdma.*¡£ + ÏÖÔÚ &man.jail.8; ¹¦ÄÜÖ§³ÖÒ»¸öÐ嵀 sysctl + security.jail.chflags_allowed£¬ + ÓÃÓÚ¿ØÖÆ &man.chflags.1; ÔÚ jail ÖеÄÐÐΪ¡£ + Èç¹ûÉèÖÃΪ 0 (ĬÈÏÖµ)£¬ jail ÖÐµÄ root + Óû§½«±»ÈÏΪÊÇ·ÇÌØȨÓû§£» Èç¹ûÉèÖÃΪ 1£¬ + Ôò jail ÖÐµÄ root Óû§»á±»ÊÓΪÓëδ jail µÄ root + Óû§Ò»Ñù¡£ &merged; - ÖØÐÂʵÏÖÁË &man.contigmalloc.9; - ²¢²ÉÓÃÁËÒ»ÖÖÔÚÖ´ÐгÌÐòʱÎÞÂÛѹÁ¦´óС¶¼ÄܸüºÃµØ¹¤×÷µÄËã·¨¡£ - Ô­ÏȵÄËã·¨¿ÉÒÔͨ¹ýÉèÖà sysctl vm.old_contigmalloc - À´ÆôÓ㬠¾ßÌåÇé¿öÔÚ &man.contigmalloc.9; Áª»úÊÖ²áÖÐÓÐËù½éÉÜ¡£ + ¼ÓÔØÆ÷±äÁ¿ debug.mpsafevm + ĬÈÏÖÃΪÆôÓÃÁË¡£ &merged; - &man.devfs.5; ·¾¶¹æÔòÏÖÔÚ¿ÉÒÔÔÚĿ¼ÖÐÕý³£¹¤×÷ÁË¡£ + ¼ÓÈëÁË &man.memguard.9;£¬ Ò»ÖÖÓÃÀ´°ïÖú¼ì²â + Ðü¹ÒÖ¸Õë²Ù×÷ ÇéÐεÄÄÚºËÄÚ´æ·ÖÅäÆ÷¡£ + ÒªÀûÓÃÕâÒ»¹¦ÄÜ£¬ ¾Í±ØÐëÃ÷È·µØͨ¹ý options + DEBUG_MEMGUARD À´ÆôÓÃËü£¬ ²¢¶ÔÄں˽øÐÐС·ù¶ÈµÄÐ޸ġ£ + Ò»°ã¶øÑÔ£¬ ÕâÊÇΪÄں˿ª·¢ÈËÔ±ÌṩµÄ¹¦ÄÜ¡£ - ɾȥÁË &man.getvfsent.3; API¡£ + һϵÁÐ ULE µÄÎÊÌâµÃµ½ÁËÐÞÕý¡£ &merged; - È¥µôÁË loader ±äÁ¿ hw.pci.allow_unsupported_io_range¡£ + ÔÚ VFS Õ»ÖмÓÈëÁËϸËø£¬ ÕâʹµÃËüµÄ´ó²¿·ÖµÃÒÔÍÑÀëÈ«¾ÖËø¡£ + ÕâÒ»ÌØÐÔÔÚ alpha¡¢ amd64£¬ ÒÔ¼° i386 ƽ̨Éϱ»Ä¬ÈÏ´ò¿ª£¬ + ²¢¿ÉÒÔͨ¹ýÉèÖüÓÔØÆ÷±äÁ¿ (ÒÔ¼° sysctl ±äÁ¿) + debug.mpsafevfs Ϊ + 0 À´½ûÓÃËü¡£ - &man.jail.2; Ä¿Ç°¿ÉÒÔÖ§³Ö´Ó jail ÖÐʹÓà raw sockets ÁË¡£ - ĬÈÏÇé¿öÏ£¬ÕâÒ»¹¦ÄÜ´¦ÓڹرյÄ״̬£¬¿ÉÒÔͨ¹ý - security.jail.allow_raw_sockets sysctl À´¿ØÖÆ¡£ + Ò»¸ö¹ØÓÚÔÚ¶Ô´¦ÀíÆ÷¼äÖÐ¶Ï (IPI) ½øÐд¦ÀíʱµÄÎÊÌâµÃÒÔÐÞÕý£¬ + ÕâÒ»ÎÊÌâ¿ÉÄܵ¼Ö SMP ϵͳÔÚÖØÔØʱ±ÀÀ£¡£ ¸ü¶àϸ½Ú£¬ ¿ÉÒÔÔÚ¿±Îó˵Ã÷ + FreeBSD-EN-05:03.ipi + ÖÐÕÒµ½¡£ &merged; - &man.kqueue.2; ÐÂÔöÁËÒ»ÖÖ½Ð×ö - EVFILT_FS µÄ¹ýÂËÆ÷Ö§³Ö£¬ - Ëü¿ÉÒÔÓÃÐźŽ«Ò»°ãµÄÎļþϵͳʼþ´«´ï¸øÓû§½ø³Ì¿Õ¼ä¡£ - Ä¿Ç°£¬ mount, unmount, ÒÔ¼° NFS µÄ up/down - ¿ÉÒÔʹÓÃÐźŴ«µÝ¡£ + System V IPC ¶ÔÏó (ÏûÏ¢¶ÓÁС¢ ÐźÅÁ¿ºÍ¹²ÏíÄÚ´æ) + ÏÖÔÚÌṩÁËÇ¿ÖÆÐÔ·ÃÎÊ¿ØÖƲßÂÔ£¬ + ÌرðÊÇ &man.mac.biba.4;, &man.mac.mls.4;, &man.mac.stub.4;, ºÍ + &man.mac.test.4; µÄÖ§³Ö¡£ - KDB£¬ Ò»¸öеĵ÷ÊÔÆ÷¿ò¼Ü£¬ ±»¼ÓÈë½øÀ´¡£ - Õâ°üÀ¨Ò»¸ö±»ÖØдÒÔÖ§³ÖÏ̡߳¢ RLE ѹËõµÈ¹¦ÄܵÄȫРGDB ºó¶Ë£¬ - ¶øÇ°¶ËÔòÌṩÁË¿ÉÒÔÅäÖöà¸ö²»Í¬µ÷ÊÔÆ÷ºó¶ËµÄ¿ò¼Ü£¬ - ²¢ÎªÕâЩºó¶ËÌṩ»ù±¾·þÎñ¡£ ´ËÍâÐÞ¸ÄÁËÏÂÊöÑ¡Ï + ½«´«Í³ PCI ÇŵÄÄÚ´æ·ÖÅ䷶Χ£¬ + ÏÞÖƵ½ÁË RAM ¶¥²¿µÄ 32MB¡£ Ðí¶à½ÏÔçµÄ¡¢ ¾ÉµÄÇÅÓ²¼þ£¬ + Ö»ÔÊÐí·ÖÅäÕâÒ»·¶Î§µÄÄÚ´æ¡£ ÕâÒ»ÐÞ¸ÄÖ»±»Ó¦ÓÃÓÚÄÇЩûÓÐͨ¹ý BIOS + Ö¸¶¨Äڴ淶ΧµÄÉ豸¡£ ËüÐÞÕýÁË CardBus ÇÅ (&man.pccbb.4;) + µÄ bad Vcc ´íÎó¡£ &merged; - - - KDB ¿ÉÒÔͨ¹ýÄÚºËÑ¡Ïî options KDB¡¢ - options GDB ÒÔ¼° options DDB - À´Ä¬ÈϵØÆôÓᣠ- DDB ºÍ - GDB ÓÃÓÚÖ¸¶¨Ê¹ÓÃÄÄÒ»¸ö KDB ºó¶Ë¡£ - + ÒÔ debug ¿ªÍ·µÄ &man.sysctl.3; MIB£¬ + ÏÖÔÚÐèҪʹÓÃÄÚºËÑ¡Ïî options SYSCTL_DEBUG + ²ÅÄÜʹÓÃÁË¡£ ÕâһѡÏîĬÈϲ»ÆôÓᣠ- - WITNESS_DDB ¸ÄÃûΪ - WITNESS_KDB¡£ - + ÔÚÐí¶àÇý¶¯ÖмÓÈëÁËͨÓÃµÄ &man.tty.4; Çý¶¯½Ó¿Ú£¬ + Õâ°üÀ¨ + &man.cx.4; ({tty,cua}x), + &man.cy.4; ({tty,cua}c), + &man.digi.4; ({tty,cua}D), + &man.rc.4; ({tty,cua}m), + &man.rp.4; ({tty,cua}R), + &man.sab.4; ({tty,cua}z), + &man.si.4; ({tty,cua}A), + &man.sio.4; ({tty,cua}d), + sx ({tty,cua}G), + &man.uart.4; ({tty,cua}u), + &man.ubser.4; ({tty,cua}y), + &man.ucom.4; ({tty,cua}U), ÒÔ¼° + &man.ucycom.4; ({tty,cua}y) + ²¢½øÐÐÁ˱ØÒªµÄÖØд¡£ Çë×¢Ò⣬ /etc/remote + ºÍ /etc/ttys Ò²ËæÖ®½øÐÐÁ˸üС£ - - DDB_TRACE ¸ÄÃûΪ - KDB_TRACE¡£ - - - - DDB_UNATTENDED ¸ÄÃûΪ - KDB_UNATTENDED¡£ - - - - SC_HISTORY_DDBKEY ¸ÄÃûΪ - SC_HISTORY_KDBKEY¡£ - - - - È¥µôÁË DDB_NOKLDSYM¡£ - Ð嵀 DDB ºó¶ËÖ§³ÖÁ¬½ÓÇ°·ûºÅµÄ²éÕÒ£¬ - ²¢Äܹ»²éÕÒ KLD µÄ·ûºÅ¡£ - - - - È¥µôÁË GDB_REMOTE_CHAT¡£ - ÐÞ¸ÄÁË GDB ЭÒéÒÔÊÊÓ¦ &os; µÄÐèÒª¡£ - ͬʱ£¬ GDB Ò²°üÀ¨ÁË¿ØÖÆ̨Êä³ö¡£ - - - - KDB ͬʱ»¹×÷ΪÈκÎÐèҪʹÓõ÷ÊÔ¹¦ÄÜ´úÂëµÄͳһÊàŦ£¬ - ÀýÈç½øÈëµ÷ÊÔÆ÷£¬ »ò´¦Àíºó±¸µÄ break ÐòÁС£ - »ùÓÚÕâÑùµÄÔ­Òò£¬ Ç°¶Ë²»ÔÙÊÇ¿ÉÑ¡µÄ¡£ - Ö»Òª¿ÉÄÜ£¬ ËùÓеĵ÷ÊÔÆ÷ÇëÇ󶼻ᱻת·¢»ò½»¸øµ±Ç°µÄºó¶ËÀ´½øÐд¦Àí¡£ - ¿ÉÒÔͨ¹ý - debug.kdb.current sysctl À´Ñ¡Ôñµ±Ç°Ê¹Óõĺó¶Ë¡£ - ÒѾ­ÅäÖúõĺó¶ËÁбí¿ÉÒÔͨ¹ý - debug.kdb.available sysctl µÃµ½¡£ - ÁíÍ⣬ ¿ÉÒÔͨ¹ýд - debug.kdb.enter sysctl À´½øÈëµ÷ÊÔÆ÷¡£ - - Ôö¼ÓÁËÐ嵀 sysctl debug.kdb.stop_cpus¡£ - Õâ¿ÉÒÔ¿ØÖÆÔÚ½øÈëµ÷ÊÔÆ÷ʱÊÇ·ñ·¢³ö IPI (´¦ÀíÆ÷¼äÖжÏ)£¬ - ÒÔ±ãÔÚµ÷ÊÔʱֹͣËüÃǵÄÔËÐС£ - - amd64 ÉϵĶ¯Ì¬ÄÚºËÄ£¿éÒÑ´¦ÓÚ¿ÉÓÃ״̬£¬ - ÔÚ±àÒëʱĬÈÏ¿ªÆô¡£ - - Ôö¼ÓÁ˳õ²½µÄÓÃÓÚÔÚ amd64 ÉÏÔËÐÐ 32-λ - Linux ³ÌÐòµÄÖ§³Ö¡£ Õâ¿ÉÒÔͨ¹ý - COMPAT_LINUX32 ÄÚºËÑ¡ÏîÀ´ÆôÓᣠ- - Ôö¼ÓÁË MAC_STATIC£¬ ÕâÒ»ÄÚºËÑ¡ÏîÓÃÓÚÔÚ¶¯Ì¬¼ÓÔغÍжÔØ MAC - ¹æÔòʱ½ûÖ¹ÄÚ²¿ MAC Framework ͬ²½±£»¤¡£ - - &man.mac.bsdextended.4; ²ßÂÔÏÖÔÚÖ§³ÖÖ»ÓÐÔÚÈ«²¿¹æÔòÆ¥Åäʱ²ÅÆ¥Åä²¢Ó¦ÓõÚÒ»¸ö²ßÂÔ¡£ - ÕâÒ»ÌØÐÔ¿ÉÒÔͨ¹ýÐ嵀 sysctl - mac_bsdextended_firstmatch_enabled À´ÆôÓᣠ- - &man.mac.bsdextended.4; ²ßÂÔÄܹ»ÔÚ syslog µÄ - AUTHPRIV facility ÖмǼʧ°Ü³¢ÊÔÁË¡£ - ÕâÒ»ÌØÐÔ¿ÉÒÔͨ¹ýÐ嵀 sysctl - mac_bsdextended_logging À´ÆôÓᣠ- - mbuma È¡´úÁË mballoc£¬ ÕâÊÇÒ»¸ö»ùÓÚ UMA ¿ò¼ÜÖ®ÉϵÄÀ©Õ¹ Mbuf ºÍ Cluster ·ÖÅäϵͳ¡£ - ÕâÒ»±ä¶¯Ê¹µÃ²»ÔÙÐèÒª NMBCLUSTERS ¡£ - clusters µÄ×î´óÊýÄ¿ÒÀȻȡ¾öÓÚ maxusers£¬ - µ«Èç¹ûÔÚÆô¶¯Ê±½« kern.ipc.nmbclusters ÉèÖÃΪÁ㣬 - Ôò¿ÉÒÔÈÃÆä²»ÊÜÏÞÖÆ¡£ - - /dev/kmem¡¢ /dev/mem¡¢ - ÒÔ¼° /dev/io - ÏÖÔÚ¿ÉÒÔ×÷ΪÄں˿ɼÓÔØÄ£¿éÀ´Ê¹ÓÃÁË¡£ - - ÐÞÕýÁË &man.mmap.2; ÔÚ½«ÄÚ´æÒ³±ê¼ÇΪ PROT_NONE - ʱÈÔÈ»¿ÉÄÜÔÚÌض¨Çé¿öϱ»¶ÁÈ¡µÄÎÊÌâ¡£ &merged; - - Ôö¼ÓÁËеÄÄÚºËÑ¡Ïî MP_WATCHDOG£¬ - Ëü¿ÉÒÔ½«ÏµÍ³ÖеÄÒ»¸öÂß¼­ CPU ×÷Ϊһ¸öרÓÃµÄ - watchdog À´Ê¹Óᣠһµ©ÄÚºËÍ£Ö¹ÏìÓ¦£¬ Ëü½«½øÈëµ÷ÊÔÆ÷»ò²úÉúÒ»¸ö - NMI (²»¿ÉÆÁ±ÎÖжÏ)¡£ - ÌṩÁËÐí¶à sysctl ÓÃÓÚÔÚ´¦ÀíÆ÷µÄ idle Ïß³ÌÖÐÆôÓà watchdog; - ¶øÒ»¸ö callout ½«ÔÚ watchdog Öи´Î»¼ÆÊýÆ÷¡£ - Èç¹ûÊ®ÃëÖ®ÄÚ callout ÈÔȻûÓи´Î»¼ÆÊýÆ÷£¬ - Ôò³¬Ê±½ø³Ì½«Æô¶¯¡£ - debug.watchdog_cpu - sysctl ¿ÉÒÔÓÃÀ´Ñ¡ÔñÖ´ÐÐ watchdog µÄ CPU¡£ - - Ôö¼ÓÁË debug.leak_schedlock - sysctl¡£ Õ⽫ÈÃй©ÁË sched ËøµÄ sysctl ´¦Àí¹ý³ÌÔÚËøÉÏ×ÔÐýÒÔ´¥·¢ - MP_WATCHDOG Ñ¡ÏîËùÌṩµÄ watchdog¡£ - - Ôö¼ÓÁ˼ÓÔØÆ÷Ñ¡Ïî debug.mpsafenet ²¢Ä¬ÈÏ¿ªÆô¡£ - Õ⽫ʹ &os; µÄÍøÂçЭÒéÕ»ÔÚ²»Ê¹Óà - Giant µÄÌõ¼þÏÂÖ´ÐУ¬ - ´Ó¶øͨ¹ýÌá¸ß²¢ÐжȺͼõÉÙÍøÂç´¦ÀíÑÓ³ÙÀ´´ïµ½Ìá¸ßÐÔÄܵÄÄ¿µÄ¡£ - Çë×¢ÒâÈç¹ûÆôÓÃÁË &man.ng.tty.4; - Netgraph ½ÚµãÀàÐÍ¡¢ KAME IPsec¡¢ ÒÔ¼° IPX/SPX - ×ÓϵͳÖеÄÈκÎÒ»¸ö¶¼½«µ¼ÖÂÆô¶¯Ê±Ê¹ÓòÉÓà Giant µÄÍøÂç²Ù×÷£¬ - Èç¹ûÔÚÔËÐÐʱ¼ÓÔØËüÃÇÔò½«»áÓо¯¸æ˵Ã÷ÕâЩ×é¼þÐèÒª Giant - Ëø²ÅÄܹ»Õý³£¹¤×÷¡£ - - Ôö¼ÓÁËеÄÄÚºËÑ¡Ïî NET_WITH_GIANT¡£ - Õ⽫»¹Ô­ debug.mpsafenet µÄĬÈÏÖµ - 0£¬ ËüÖ÷ÒªÓÃÓÚ±àÒëÒÑÖªµÄ·ÇḬ̈߳²È«µÄ×é¼þ£¬ - »òÐèÒª¸üΪ±£ÊصÄÅäÖõÄÇéÐΡ£ - - Ôö¼ÓÁËеļÓÔØÆ÷±äÁ¿ debug.mpsafevm¡£ - Ä¿Ç°ÉèÖÃËü½«Ê¹ÌîÁãȱҳÔÚ¾ø´ó¶àÊýʱºòÒÔÎÞ Giant µÄÐÎʽÔËÐС£ + ¼ÓÈëÁË &man.vkbd.4; Çý¶¯¡£ Õâ¸öÇý¶¯ÌṩÁËÒ»¸ö¿ÉÒÔÓÃÓÚʵÏÖÀàËÆÓÚ + &man.pty.4; Ö®ÓÚÖÕ¶ËËùÍê³ÉµÄ¹¦ÄܵÄÐéÄâ AT ¼üÅ̵ÄÈí¼þ»·»Ø»úÖÆ¡£ - Ôö¼ÓÁËеÄÄÚºËÑ¡Ïî - PREEMPTION¡£ - ËüʹµÃÄÚºËÖеÄÏß³ÌÄܹ»±»ÓÅÏȼ¶¸ü¸ßµÄÏß³ÌÇÀÕ¼¡£ - ÕâÓÐÖúÓÚ¸ÄÉƽ»»¥ÐÔ£¬ ²¢ÔÊÐíÖжÏÏ̸߳üÔçµØÖ´Ðжø²»Êǵȴý¡£ - - ÔÚ dev sysctl ÖмÓÈëÁËÒ»²ã devclass ÒÔÖ§³Ö°´·Ö²ã¿É±äµÄÉ豸±äÁ¿¡£ - ÕâÑù£¬ dev.foo0.bar ÏÖÔÚÓ¦¸Ä×÷ dev.foo.0.bar£¬ - ͬʱ£¬Ê¹Óà dev.foo.bar Ò²³ÉΪ¿ÉÄÜ¡£ - - ÐÂÔöÁË sysctl£¬ kern.always_console_output - ¿ÉÒÔÓÃÀ´¿ØÖÆÄÚºËÊÇ·ñ°ÑËùÓÐÊä³ö·Åµ½ - TIOCCONS¡£ - - ¼ÓÈëÁËÒ»¸öÓÃÓÚ¼ì²âµ±Ç°Ê¹Óõĵ÷¶ÈÆ÷Ãû³ÆµÄ kern.sched.name - sysctl¡£ ¿¼Âǵ½Ò»ÖÂÐÔ£¬ kern.quantum sysctl - ±»¸ÄÃûΪ kern.sched.quantum¡£ - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:20:08 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A269416A4D6; Wed, 30 Mar 2005 05:20: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 77D1D16A4D3 for ; Wed, 30 Mar 2005 05:20:07 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CB8343D2D for ; Wed, 30 Mar 2005 05:20:07 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5K7gM004843 for ; Wed, 30 Mar 2005 05:20:07 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5K6BQ004840 for perforce@freebsd.org; Wed, 30 Mar 2005 05:20:06 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:20:06 GMT Message-Id: <200503300520.j2U5K6BQ004840@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74079 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, 30 Mar 2005 05:20:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=74079 Change 74079 by sam@sam_ebb on 2005/03/30 05:19:40 IFC ibss merge fixup add CTS extension for when bursting frames Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#78 edit Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#78 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.77 2005/03/08 17:01:03 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.81 2005/03/30 02:33:33 avatar Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -2765,6 +2765,21 @@ } /* + * Extend 15-bit time stamp from rx descriptor to + * a full 64-bit TSF using the current h/w TSF. + */ +static __inline u_int64_t +ath_extend_tsf(struct ath_hal *ah, u_int32_t rstamp) +{ + u_int64_t tsf; + + tsf = ath_hal_gettsf64(ah); + if ((tsf & 0x7fff) < rstamp) + tsf -= 0x8000; + return ((tsf &~ 0x7fff) | rstamp); +} + +/* * Intercept management frames to collect beacon rssi data * and to do ibss merges. */ @@ -2788,10 +2803,7 @@ case IEEE80211_FC0_SUBTYPE_PROBE_RESP: if (ic->ic_opmode == IEEE80211_M_IBSS && ic->ic_state == IEEE80211_S_RUN) { - struct ath_hal *ah = sc->sc_ah; - /* XXX extend rstamp */ - u_int64_t tsf = ath_hal_gettsf64(ah); - + u_int64_t tsf = ath_extend_tsf(sc->sc_ah, rstamp); /* * Handle ibss merge as needed; check the tsf on the * frame before attempting the merge. The 802.11 spec @@ -2799,11 +2811,16 @@ * the oldest station with the same ssid, where oldest * is determined by the tsf. Note that hardware * reconfiguration happens through callback to - * ath_newstate as the state machine will be go - * from RUN -> RUN when this happens. + * ath_newstate as the state machine will go from + * RUN -> RUN when this happens. */ - if (le64toh(ni->ni_tstamp.tsf) >= tsf) + if (le64toh(ni->ni_tstamp.tsf) >= tsf) { + DPRINTF(sc, ATH_DEBUG_STATE, + "ibss merge, rstamp %u tsf %ju " + "tstamp %ju\n", rstamp, (uintmax_t)tsf, + (uintmax_t)ni->ni_tstamp.tsf); (void) ieee80211_ibss_merge(ic, ni); + } } break; } @@ -3377,6 +3394,7 @@ struct ieee80211com *ic = &sc->sc_ic; struct ath_hal *ah = sc->sc_ah; struct ifnet *ifp = &sc->sc_if; + const struct chanAccParams *cap = &ic->ic_wme.wme_wmeChanParams; int i, error, iswep, ismcast, keyix, hdrlen, pktlen, try0; u_int8_t rix, txrate, ctsrate; u_int8_t cix = 0xff; /* NB: silence compiler */ @@ -3389,6 +3407,7 @@ HAL_BOOL shortPreamble; struct ath_node *an; struct mbuf *m; + u_int pri; wh = mtod(m0, struct ieee80211_frame *); iswep = wh->i_fc[1] & IEEE80211_FC1_WEP; @@ -3467,10 +3486,9 @@ if (bf->bf_nseg > ATH_TXDESC) { /* too many desc's, linearize */ sc->sc_stats.ast_tx_linear++; m = ath_defrag(m0, M_DONTWAIT, ATH_TXDESC); - if (m0 == NULL) { + if (m == NULL) { m_freem(m0); sc->sc_stats.ast_tx_nombuf++; - m_freem(m0); return ENOMEM; } m0 = m; @@ -3538,9 +3556,9 @@ /* NB: force all management frames to highest queue */ if (ni->ni_flags & IEEE80211_NODE_QOS) { /* NB: force all management frames to highest queue */ - txq = sc->sc_ac2q[WME_AC_VO]; + pri = WME_AC_VO; } else - txq = sc->sc_ac2q[WME_AC_BE]; + pri = WME_AC_BE; flags |= HAL_TXDESC_INTREQ; /* force interrupt */ break; case IEEE80211_FC0_TYPE_CTL: @@ -3554,9 +3572,9 @@ /* NB: force all ctl frames to highest queue */ if (ni->ni_flags & IEEE80211_NODE_QOS) { /* NB: force all ctl frames to highest queue */ - txq = sc->sc_ac2q[WME_AC_VO]; + pri = WME_AC_VO; } else - txq = sc->sc_ac2q[WME_AC_BE]; + pri = WME_AC_BE; flags |= HAL_TXDESC_INTREQ; /* force interrupt */ break; case IEEE80211_FC0_TYPE_DATA: @@ -3572,14 +3590,13 @@ * Default all non-QoS traffic to the best-effort queue. */ if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) { - u_int pri = M_WME_GETAC(m0); - txq = sc->sc_ac2q[pri]; - if (ic->ic_wme.wme_wmeChanParams.cap_wmeParams[pri].wmep_noackPolicy) { + pri = M_WME_GETAC(m0); + if (cap->cap_wmeParams[pri].wmep_noackPolicy) { flags |= HAL_TXDESC_NOACK; sc->sc_stats.ast_tx_noack++; } } else - txq = sc->sc_ac2q[WME_AC_BE]; + pri = WME_AC_BE; break; default: if_printf(ifp, "bogus frame type 0x%x (%s)\n", @@ -3588,6 +3605,7 @@ m_freem(m0); return EIO; } + txq = sc->sc_ac2q[pri]; /* * When servicing one or more stations in power-save mode @@ -3778,22 +3796,38 @@ __func__, i, ds->ds_link, ds->ds_data, ds->ds_ctl0, ds->ds_ctl1, ds->ds_hw[0], ds->ds_hw[1]); } -#if 0 - if ((flags & (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA)) && - !ath_hal_updateCTSForBursting(ah, ds - , txq->axq_linkbuf != NULL ? + if (flags & (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA)) { +#define CTS_DURATION \ + ath_hal_computetxtime(ah, rt, IEEE80211_ACK_LEN, cix, AH_TRUE) + u_int32_t txopLimit = IEEE80211_TXOP_TO_US( + cap->cap_wmeParams[pri].wmep_txopLimit); + /* + * When bursting, if RTS/CTS is to be used insure the + * total duration does not exceed the limit imposed by + * the WME parameters. This is complicated as we need + * to update the state of packets on the (live) hardware + * queue. The logic is buried in the hal because it's very + * chip-specific. + */ + if (txopLimit != 0 && + ath_hal_updateCTSForBursting(ah, ds + , txq->axq_linkbuf != NULL ? txq->axq_linkbuf->bf_desc : NULL - , txq->axq_lastdsWithCTS - , txq->axq_gatingds - , IEEE80211_TXOP_TO_US(ic->ic_chanParams.cap_wmeParams[skb->priority].wmep_txopLimit) - , ath_hal_computetxtime(ah, rt, IEEE80211_ACK_LEN, cix, AH_TRUE))) { - ATH_TXQ_LOCK(txq); - txq->axq_lastdsWithCTS = ds; - /* set gating Desc to final desc */ - txq->axq_gatingds = (struct ath_desc *)txq->axq_link; - ATH_TXQ_UNLOCK(txq); + , txq->axq_lastdsWithCTS, txq->axq_gatingds + , txopLimit, CTS_DURATION) == 0) { + /* + * This descriptor falls in a new txop window, update + * the descriptor pointers for the next packet that + * needs similar treatment. + */ + ATH_TXQ_LOCK(txq); + txq->axq_lastdsWithCTS = ds; + /* set gating Desc to final desc */ + txq->axq_gatingds = (struct ath_desc *)txq->axq_link; + ATH_TXQ_UNLOCK(txq); + } +#undef CTS_DURATION } -#endif /* * Insert the frame on the outbound list and * pass it on to the hardware. @@ -3864,12 +3898,10 @@ ATH_TXQ_UNLOCK(txq); break; } -#if 0 if (bf->bf_desc == txq->axq_lastdsWithCTS) txq->axq_lastdsWithCTS = NULL; if (ds == txq->axq_gatingds) txq->axq_gatingds = NULL; -#endif ATH_TXQ_REMOVE_HEAD(txq, bf_list); ATH_TXQ_UNLOCK(txq); From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:21:10 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9D66816A4D0; Wed, 30 Mar 2005 05:21: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 5F28716A4CE for ; Wed, 30 Mar 2005 05:21:09 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05DAF43D31 for ; Wed, 30 Mar 2005 05:21:09 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5L8Mm004946 for ; Wed, 30 Mar 2005 05:21:08 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5L8Mk004943 for perforce@freebsd.org; Wed, 30 Mar 2005 05:21:08 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:21:08 GMT Message-Id: <200503300521.j2U5L8Mk004943@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74080 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, 30 Mar 2005 05:21:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=74080 Change 74080 by sam@sam_ebb on 2005/03/30 05:20:59 IFC random stuff add force parametr to enmic/demic for tx fragmentation and similar and for verifying michael errors detected in h/w Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_crypto.h#7 edit .. //depot/projects/wifi/sys/net80211/ieee80211_crypto_ccmp.c#7 edit .. //depot/projects/wifi/sys/net80211/ieee80211_crypto_none.c#7 edit .. //depot/projects/wifi/sys/net80211/ieee80211_crypto_tkip.c#9 edit .. //depot/projects/wifi/sys/net80211/ieee80211_crypto_wep.c#7 edit .. //depot/projects/wifi/sys/net80211/ieee80211_input.c#47 edit .. //depot/projects/wifi/sys/net80211/ieee80211_output.c#41 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_crypto.h#7 (text+ko) ==== @@ -158,8 +158,8 @@ int (*ic_encap)(struct ieee80211_key *, struct mbuf *, u_int8_t keyid); int (*ic_decap)(struct ieee80211_key *, struct mbuf *); - int (*ic_enmic)(struct ieee80211_key *, struct mbuf *); - int (*ic_demic)(struct ieee80211_key *, struct mbuf *); + int (*ic_enmic)(struct ieee80211_key *, struct mbuf *, int); + int (*ic_demic)(struct ieee80211_key *, struct mbuf *, int); }; extern const struct ieee80211_cipher ieee80211_cipher_none; @@ -177,10 +177,10 @@ */ static __inline int ieee80211_crypto_demic(struct ieee80211com *ic, struct ieee80211_key *k, - struct mbuf *m) + struct mbuf *m, int force) { const struct ieee80211_cipher *cip = k->wk_cipher; - return (cip->ic_miclen > 0 ? cip->ic_demic(k, m) : 1); + return (cip->ic_miclen > 0 ? cip->ic_demic(k, m, force) : 1); } /* @@ -188,10 +188,10 @@ */ static __inline int ieee80211_crypto_enmic(struct ieee80211com *ic, - struct ieee80211_key *k, struct mbuf *m) + struct ieee80211_key *k, struct mbuf *m, int force) { const struct ieee80211_cipher *cip = k->wk_cipher; - return (cip->ic_miclen > 0 ? cip->ic_enmic(k, m) : 1); + return (cip->ic_miclen > 0 ? cip->ic_enmic(k, m, force) : 1); } /* ==== //depot/projects/wifi/sys/net80211/ieee80211_crypto_ccmp.c#7 (text+ko) ==== @@ -68,8 +68,8 @@ static int ccmp_setkey(struct ieee80211_key *); static int ccmp_encap(struct ieee80211_key *k, struct mbuf *, u_int8_t keyid); static int ccmp_decap(struct ieee80211_key *, struct mbuf *); -static int ccmp_enmic(struct ieee80211_key *, struct mbuf *); -static int ccmp_demic(struct ieee80211_key *, struct mbuf *); +static int ccmp_enmic(struct ieee80211_key *, struct mbuf *, int); +static int ccmp_demic(struct ieee80211_key *, struct mbuf *, int); static const struct ieee80211_cipher ccmp = { .ic_name = "AES-CCM", @@ -177,7 +177,7 @@ * Add MIC to the frame as needed. */ static int -ccmp_enmic(struct ieee80211_key *k, struct mbuf *m) +ccmp_enmic(struct ieee80211_key *k, struct mbuf *m, int force) { return 1; @@ -262,7 +262,7 @@ * Verify and strip MIC from the frame. */ static int -ccmp_demic(struct ieee80211_key *k, struct mbuf *m) +ccmp_demic(struct ieee80211_key *k, struct mbuf *m, int force) { return 1; } ==== //depot/projects/wifi/sys/net80211/ieee80211_crypto_none.c#7 (text+ko) ==== @@ -53,8 +53,8 @@ static int none_setkey(struct ieee80211_key *); static int none_encap(struct ieee80211_key *, struct mbuf *, u_int8_t); static int none_decap(struct ieee80211_key *, struct mbuf *); -static int none_enmic(struct ieee80211_key *, struct mbuf *); -static int none_demic(struct ieee80211_key *, struct mbuf *); +static int none_enmic(struct ieee80211_key *, struct mbuf *, int); +static int none_demic(struct ieee80211_key *, struct mbuf *, int); const struct ieee80211_cipher ieee80211_cipher_none = { .ic_name = "NONE", @@ -131,7 +131,7 @@ } static int -none_enmic(struct ieee80211_key *k, struct mbuf *m) +none_enmic(struct ieee80211_key *k, struct mbuf *m, int force) { struct ieee80211com *ic = k->wk_private; @@ -140,7 +140,7 @@ } static int -none_demic(struct ieee80211_key *k, struct mbuf *m) +none_demic(struct ieee80211_key *k, struct mbuf *m, int force) { struct ieee80211com *ic = k->wk_private; ==== //depot/projects/wifi/sys/net80211/ieee80211_crypto_tkip.c#9 (text+ko) ==== @@ -59,9 +59,9 @@ static void tkip_detach(struct ieee80211_key *); static int tkip_setkey(struct ieee80211_key *); static int tkip_encap(struct ieee80211_key *, struct mbuf *m, u_int8_t keyid); -static int tkip_enmic(struct ieee80211_key *, struct mbuf *); +static int tkip_enmic(struct ieee80211_key *, struct mbuf *, int); static int tkip_decap(struct ieee80211_key *, struct mbuf *); -static int tkip_demic(struct ieee80211_key *, struct mbuf *); +static int tkip_demic(struct ieee80211_key *, struct mbuf *, int); static const struct ieee80211_cipher tkip = { .ic_name = "TKIP", @@ -209,11 +209,11 @@ * Add MIC to the frame as needed. */ static int -tkip_enmic(struct ieee80211_key *k, struct mbuf *m) +tkip_enmic(struct ieee80211_key *k, struct mbuf *m, int force) { struct tkip_ctx *ctx = k->wk_private; - if (k->wk_flags & IEEE80211_KEY_SWMIC) { + if (force || (k->wk_flags & IEEE80211_KEY_SWMIC)) { struct ieee80211_frame *wh = mtod(m, struct ieee80211_frame *); struct ieee80211com *ic = ctx->tc_ic; int hdrlen; @@ -321,11 +321,11 @@ * Verify and strip MIC from the frame. */ static int -tkip_demic(struct ieee80211_key *k, struct mbuf *m) +tkip_demic(struct ieee80211_key *k, struct mbuf *m, int force) { struct tkip_ctx *ctx = k->wk_private; - if (k->wk_flags & IEEE80211_KEY_SWMIC) { + if (force || (k->wk_flags & IEEE80211_KEY_SWMIC)) { struct ieee80211_frame *wh = mtod(m, struct ieee80211_frame *); int hdrlen = ieee80211_hdrsize(wh); u8 mic[IEEE80211_WEP_MICLEN]; ==== //depot/projects/wifi/sys/net80211/ieee80211_crypto_wep.c#7 (text+ko) ==== @@ -56,8 +56,8 @@ static int wep_setkey(struct ieee80211_key *); static int wep_encap(struct ieee80211_key *, struct mbuf *, u_int8_t keyid); static int wep_decap(struct ieee80211_key *, struct mbuf *); -static int wep_enmic(struct ieee80211_key *, struct mbuf *); -static int wep_demic(struct ieee80211_key *, struct mbuf *); +static int wep_enmic(struct ieee80211_key *, struct mbuf *, int); +static int wep_demic(struct ieee80211_key *, struct mbuf *, int); static const struct ieee80211_cipher wep = { .ic_name = "WEP", @@ -193,7 +193,7 @@ * Add MIC to the frame as needed. */ static int -wep_enmic(struct ieee80211_key *k, struct mbuf *m) +wep_enmic(struct ieee80211_key *k, struct mbuf *m, int force) { return 1; @@ -242,7 +242,7 @@ * Verify and strip MIC from the frame. */ static int -wep_demic(struct ieee80211_key *k, struct mbuf *skb) +wep_demic(struct ieee80211_key *k, struct mbuf *skb, int force) { return 1; } ==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#47 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.35 2005/03/16 20:39:05 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.36 2005/03/26 07:15:34 sam Exp $"); #include #include @@ -432,7 +432,7 @@ /* * Next strip any MSDU crypto bits. */ - if (key != NULL && !ieee80211_crypto_demic(ic, key, m)) { + if (key != NULL && !ieee80211_crypto_demic(ic, key, m, 0)) { IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_INPUT, ni->ni_macaddr, "data", "%s", "demic error"); IEEE80211_NODE_STAT(ni, rx_demicfail); ==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#41 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.21 2005/03/16 20:42:00 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.22 2005/03/26 07:11:31 sam Exp $"); #include "opt_inet.h" @@ -629,7 +629,7 @@ !KEY_UNDEFINED(*key) : !KEY_UNDEFINED(ni->ni_ucastkey)))) { wh->i_fc[1] |= IEEE80211_FC1_WEP; /* XXX do fragmentation */ - if (!ieee80211_crypto_enmic(ic, key, m)) { + if (!ieee80211_crypto_enmic(ic, key, m, 0)) { IEEE80211_DPRINTF(ic, IEEE80211_MSG_OUTPUT, "[%s] enmic failed, discard frame\n", ether_sprintf(eh.ether_dhost)); @@ -1162,14 +1162,12 @@ * [tlv] ssid * [tlv] supported rates * [tlv] extended supported rates - * [tlv] WME (optional) * [tlv] user-specified ie's */ m = ieee80211_getmgtframe(&frm, 2 + IEEE80211_NWID_LEN + 2 + IEEE80211_RATE_SIZE + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE) - + sizeof(struct ieee80211_wme_param) + (ic->ic_opt_ie != NULL ? ic->ic_opt_ie_len : 0) ); if (m == NULL) @@ -1179,8 +1177,6 @@ mode = ieee80211_chan2mode(ic, ni->ni_chan); frm = ieee80211_add_rates(frm, &ic->ic_sup_rates[mode]); frm = ieee80211_add_xrates(frm, &ic->ic_sup_rates[mode]); - if (ic->ic_flags & IEEE80211_F_WME) - frm = ieee80211_add_wme_param(frm, &ic->ic_wme); if (ic->ic_opt_ie != NULL) { memcpy(frm, ic->ic_opt_ie, ic->ic_opt_ie_len); frm += ic->ic_opt_ie_len; @@ -1205,6 +1201,7 @@ * [tlv] extended rate phy (ERP) * [tlv] extended supported rates * [tlv] WPA + * [tlv] WME (optional) * [tlv] Atheros capabilities */ m = ieee80211_getmgtframe(&frm, @@ -1220,6 +1217,7 @@ /* XXX !WPA1+WPA2 fits w/o a cluster */ + (ic->ic_flags & IEEE80211_F_WPA ? 2*sizeof(struct ieee80211_ie_wpa) : 0) + + sizeof(struct ieee80211_wme_param) + sizeof(struct ieee80211_ath_ie) ); if (m == NULL) @@ -1273,6 +1271,8 @@ if (ic->ic_curmode == IEEE80211_MODE_11G) frm = ieee80211_add_erp(frm, ic); frm = ieee80211_add_xrates(frm, &ni->ni_rates); + if (ic->ic_flags & IEEE80211_F_WME) + frm = ieee80211_add_wme_param(frm, &ic->ic_wme); if (ni->ni_ath_ie != NULL) frm = ieee80211_add_ath(frm, ni); m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *); From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:22:11 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18AC716A4D0; Wed, 30 Mar 2005 05:22: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 E5F9916A4CE for ; Wed, 30 Mar 2005 05:22:10 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BA20943D3F for ; Wed, 30 Mar 2005 05:22:10 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5MAtW004979 for ; Wed, 30 Mar 2005 05:22:10 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5MA7W004976 for perforce@freebsd.org; Wed, 30 Mar 2005 05:22:10 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:22:10 GMT Message-Id: <200503300522.j2U5MA7W004976@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74081 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, 30 Mar 2005 05:22:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=74081 Change 74081 by sam@sam_ebb on 2005/03/30 05:21:54 silence compiler Affected files ... .. //depot/projects/wifi/sys/dev/iwi/if_iwi.c#2 edit Differences ... ==== //depot/projects/wifi/sys/dev/iwi/if_iwi.c#2 (text+ko) ==== @@ -721,6 +721,7 @@ case IEEE80211_M_AHDEMO: case IEEE80211_M_HOSTAP: + case IEEE80211_M_WDS: /* should not get there */ break; } From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:23:13 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C508716A4D0; Wed, 30 Mar 2005 05:23: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 A043C16A4CE for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8008343D1F for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5NC4k005049 for ; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5NC8j005046 for perforce@freebsd.org; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:23:12 GMT Message-Id: <200503300523.j2U5NC8j005046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74082 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, 30 Mar 2005 05:23:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=74082 Change 74082 by sam@sam_ebb on 2005/03/30 05:22:12 IFC timeout fix silence compiler complaint Affected files ... .. //depot/projects/wifi/sys/dev/wi/if_wi.c#13 edit Differences ... ==== //depot/projects/wifi/sys/dev/wi/if_wi.c#13 (text+ko) ==== @@ -62,7 +62,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.175 2005/01/06 01:43:33 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.177 2005/03/26 23:43:54 sam Exp $"); #define WI_HERMES_AUTOINC_WAR /* Work around data write autoinc bug. */ #define WI_HERMES_STATS_WAR /* Work around stats counter bug. */ @@ -688,6 +688,9 @@ wi_write_val(sc, WI_RID_PORTTYPE, WI_PORTTYPE_ADHOC); wi_cmd(sc, WI_CMD_DEBUG | (WI_TEST_MONITOR << 8), 0, 0, 0); break; + default: + /* XXX WDS */ + break; } /* Intersil interprets this RID as joining ESS even in IBSS mode */ @@ -962,6 +965,7 @@ if (k == NULL) { if (ni != NULL) ieee80211_free_node(ni); + m_freem(m0); continue; } frmhdr.wi_tx_ctl |= htole16(WI_TXCNTL_NOCRYPT); @@ -1291,6 +1295,11 @@ case IEEE80211_M_MONITOR: imr->ifm_active |= IFM_IEEE80211_MONITOR; break; + case IEEE80211_M_WDS: +#if 0 + imr->ifm_active |= IFM_IEEE80211_WDS; +#endif + break; } } @@ -2618,12 +2627,12 @@ for (i = 0; i < WI_TIMEOUT; i++) { if (CSR_READ_2(sc, WI_EVENT_STAT) & WI_EV_ALLOC) break; - if (i == WI_TIMEOUT) { - device_printf(sc->sc_dev, "timeout in alloc\n"); - return ETIMEDOUT; - } DELAY(1); } + if (i == WI_TIMEOUT) { + device_printf(sc->sc_dev, "timeout in alloc\n"); + return ETIMEDOUT; + } *idp = CSR_READ_2(sc, WI_ALLOC_FID); CSR_WRITE_2(sc, WI_EVENT_ACK, WI_EV_ALLOC); return 0; From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:23:14 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A247F16A4DE; Wed, 30 Mar 2005 05:23: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 EC42D16A4E6 for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D020043D1F for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5NCtg005056 for ; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5NC1p005052 for perforce@freebsd.org; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:23:12 GMT Message-Id: <200503300523.j2U5NC1p005052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74083 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, 30 Mar 2005 05:23:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=74083 Change 74083 by sam@sam_ebb on 2005/03/30 05:23:04 save ip_next_mtu rewrite Affected files ... .. //depot/projects/wifi/sys/netinet/ip_icmp.c#3 edit Differences ... ==== //depot/projects/wifi/sys/netinet/ip_icmp.c#3 (text+ko) ==== @@ -832,36 +832,34 @@ * is returned; otherwise, a smaller value is returned. */ static int -ip_next_mtu(mtu, dir) - int mtu; - int dir; +ip_next_mtu(int mtu, int dir) { - static int mtutab[] = { + static const int mtutab[] = { 65535, 32000, 17914, 8166, 4352, 2002, 1492, 1006, 508, 296, 68, 0 }; +#define NMTU (sizeof(mtutab) / sizeof(mtutab[0])) int i; - for (i = 0; i < (sizeof mtutab) / (sizeof mtutab[0]); i++) { - if (mtu >= mtutab[i]) - break; + if (mtu < 0) { +#ifdef ICMPPRINTFS + if (icmpprintfs) + printf("%s: bogus mtu %d\n", mtu); +#endif + return 0; } - - if (dir < 0) { - if (i == 0) { - return 0; - } else { - return mtutab[i - 1]; - } - } else { - if (mtutab[i] == 0) { - return 0; - } else if(mtu > mtutab[i]) { - return mtutab[i]; - } else { - return mtutab[i + 1]; - } + if (dir < 0) { /* next larger mtu */ + for (i = 0; i < NMTU; i++) + if (mtu >= mtutab[i]) + break; + return (i > 0 ? mtutab[i-1] : mtutab[0]); + } else { /* next smaller mtu */ + for (i = 0; i < NMTU; i++) + if (mtutab[i] < mtu) + break; + return (i < NMTU ? mtutab[i] : mtutab[NMTU-1]); } +#undef NMTU } From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:24:15 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F2EC116A4D0; Wed, 30 Mar 2005 05: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 CEB2E16A4CE for ; Wed, 30 Mar 2005 05:24:14 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8EEC843D58 for ; Wed, 30 Mar 2005 05:24:14 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5OE1i005081 for ; Wed, 30 Mar 2005 05:24:14 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5OEQE005078 for perforce@freebsd.org; Wed, 30 Mar 2005 05:24:14 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:24:14 GMT Message-Id: <200503300524.j2U5OEQE005078@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74084 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, 30 Mar 2005 05:24:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=74084 Change 74084 by sam@sam_ebb on 2005/03/30 05:23:39 misc coverity fixes kame awaiting kame review Affected files ... .. //depot/projects/wifi/sys/netinet6/ah_core.c#4 edit .. //depot/projects/wifi/sys/netinet6/esp_core.c#3 edit Differences ... ==== //depot/projects/wifi/sys/netinet6/ah_core.c#4 (text+ko) ==== @@ -1400,8 +1400,6 @@ (algo->result)(&algos, sumbuf, sizeof(sumbuf)); bcopy(&sumbuf[0], ahdat, (*algo->sumsiz)(sav)); - if (n) - m_free(n); return error; fail: @@ -1632,9 +1630,6 @@ (algo->result)(&algos, sumbuf, sizeof(sumbuf)); bcopy(&sumbuf[0], ahdat, (*algo->sumsiz)(sav)); - /* just in case */ - if (n) - m_free(n); return 0; fail: /* just in case */ ==== //depot/projects/wifi/sys/netinet6/esp_core.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/esp_core.c,v 1.22 2005/01/07 02:30:34 imp Exp $ */ +/* $FreeBSD: src/sys/netinet6/esp_core.c,v 1.23 2005/03/11 12:37:06 ume Exp $ */ /* $KAME: esp_core.c,v 1.50 2000/11/02 12:27:38 itojun Exp $ */ /*- @@ -75,7 +75,15 @@ #include #include -#include + +#include +#define cast128_key cast_key +#define cast128_setkey(key, rawkey, keybytes) \ + cast_setkey((key), (rawkey), (keybytes)) +#define cast128_encrypt(key, inblock, outblock) \ + cast_encrypt((key), (inblock), (outblock)) +#define cast128_decrypt(key, inblock, outblock) \ + cast_decrypt((key), (inblock), (outblock)) #include @@ -409,7 +417,7 @@ algo = esp_algorithm_lookup(sav->alg_enc); if (!algo) { ipseclog((LOG_ERR, - "esp_cbc_mature %s: unsupported algorithm.\n", algo->name)); + "esp_cbc_mature %d: unsupported algorithm.\n", sav->alg_enc)); return 1; } @@ -713,6 +721,7 @@ /* skip bodyoff */ while (soff < bodyoff) { + KASSERT(s != NULL, ("malformed mbuf chain")); if (soff + s->m_len >= bodyoff) { sn = bodyoff - soff; break; @@ -730,6 +739,7 @@ while (soff < m->m_pkthdr.len) { /* source */ + KASSERT(s != NULL, ("malformed mbuf chain")); if (sn + blocklen <= s->m_len) { /* body is continuous */ sp = mtod(s, u_int8_t *) + sn; @@ -923,6 +933,7 @@ /* skip bodyoff */ while (soff < bodyoff) { + KASSERT(s != NULL, ("malformed mbuf chain")); if (soff + s->m_len >= bodyoff) { sn = bodyoff - soff; break; @@ -940,6 +951,7 @@ while (soff < m->m_pkthdr.len) { /* source */ + KASSERT(s != NULL, ("malformed mbuf chain")); if (sn + blocklen <= s->m_len) { /* body is continuous */ sp = mtod(s, u_int8_t *) + sn; From owner-p4-projects@FreeBSD.ORG Wed Mar 30 15:17:43 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 09A0916A4D0; Wed, 30 Mar 2005 15:17: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 B93F016A4CE for ; Wed, 30 Mar 2005 15:17:42 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 643DF43D1D for ; Wed, 30 Mar 2005 15:17:42 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UFHgEv041999 for ; Wed, 30 Mar 2005 15:17:42 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UFHfQp041996 for perforce@freebsd.org; Wed, 30 Mar 2005 15:17:41 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 15:17:41 GMT Message-Id: <200503301517.j2UFHfQp041996@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74108 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, 30 Mar 2005 15:17:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=74108 Change 74108 by jhb@jhb_slimer on 2005/03/30 15:17:00 Revert the changes to atomic_ptr ops. They need to operate on uintptr_t's instead because gcc is applying the volatile to what mtx_lock points to rather than mtx_lock's value when mtx_lock is a void *. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#15 edit .. //depot/projects/smpng/sys/amd64/include/atomic.h#11 edit .. //depot/projects/smpng/sys/ia64/include/atomic.h#6 edit .. //depot/projects/smpng/sys/kern/kern_fork.c#92 edit .. //depot/projects/smpng/sys/kern/kern_mutex.c#93 edit .. //depot/projects/smpng/sys/kern/sched_4bsd.c#47 edit .. //depot/projects/smpng/sys/kern/sched_ule.c#54 edit .. //depot/projects/smpng/sys/kern/subr_witness.c#129 edit .. //depot/projects/smpng/sys/powerpc/include/atomic.h#9 edit .. //depot/projects/smpng/sys/sparc64/include/atomic.h#9 edit .. //depot/projects/smpng/sys/sys/_mutex.h#14 edit .. //depot/projects/smpng/sys/sys/mutex.h#50 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#15 (text+ko) ==== @@ -381,7 +381,7 @@ #define atomic_cmpset_long atomic_cmpset_64 static __inline int -atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_long((volatile u_long *)dst, (u_long)exp, @@ -430,7 +430,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_64 static __inline int -atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, @@ -438,7 +438,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, @@ -446,32 +446,32 @@ } static __inline void * -atomic_load_acq_ptr(volatile void **p) +atomic_load_acq_ptr(volatile void *p) { return (void *)atomic_load_acq_long((volatile u_long *)p); } static __inline void -atomic_store_rel_ptr(volatile void **p, void *v) +atomic_store_rel_ptr(volatile void *p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v);\ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v);\ } ==== //depot/projects/smpng/sys/amd64/include/atomic.h#11 (text+ko) ==== @@ -356,26 +356,26 @@ } static __inline void -atomic_store_rel_ptr(volatile void **p, void *v) +atomic_store_rel_ptr(volatile void *p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v);\ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v);\ } ==== //depot/projects/smpng/sys/ia64/include/atomic.h#6 (text+ko) ==== @@ -301,7 +301,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_64 static __inline int -atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) { int ret; ret = atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, @@ -310,7 +310,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) { int ret; ret = atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, @@ -321,32 +321,32 @@ #define atomic_cmpset_ptr atomic_cmpset_acq_ptr static __inline void * -atomic_load_acq_ptr(volatile void **p) +atomic_load_acq_ptr(volatile void *p) { return ((void *)atomic_load_acq_long((volatile u_long *)p)); } static __inline void -atomic_store_rel_ptr(volatile void **p, void *v) +atomic_store_rel_ptr(volatile void *p, void *v) { atomic_store_rel_long((volatile u_long *)p, (u_long)v); } #define ATOMIC_PTR(NAME) \ static __inline void \ - atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ + atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_long((volatile u_long *)p, v); \ } \ \ static __inline void \ - atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ + atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_acq_long((volatile u_long *)p, v); \ } \ \ static __inline void \ - atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ + atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_rel_long((volatile u_long *)p, v); \ } ==== //depot/projects/smpng/sys/kern/kern_fork.c#92 (text+ko) ==== @@ -762,7 +762,7 @@ td->td_oncpu = PCPU_GET(cpuid); KASSERT(p->p_state == PRS_NORMAL, ("executing process is still new")); - sched_lock.mtx_lock = td; + sched_lock.mtx_lock = (uintptr_t)td; mtx_assert(&sched_lock, MA_OWNED | MA_NOTRECURSED); cpu_critical_fork_exit(); CTR4(KTR_PROC, "fork_exit: new thread %p (kse %p, pid %d, %s)", ==== //depot/projects/smpng/sys/kern/kern_mutex.c#93 (text+ko) ==== @@ -86,10 +86,10 @@ /* * Internal utility macros. */ -#define mtx_unowned(m) ((m)->mtx_lock == (void *)MTX_UNOWNED) +#define mtx_unowned(m) ((m)->mtx_lock == MTX_UNOWNED) #define mtx_owner(m) (mtx_unowned((m)) ? NULL \ - : (struct thread *)((uintptr_t)(m)->mtx_lock & ~MTX_FLAGMASK)) + : (struct thread *)((m)->mtx_lock & ~MTX_FLAGMASK)) /* * Lock classes for sleep and spin mutexes. @@ -473,7 +473,7 @@ atomic_add_int(&m->mtx_contest_holding, 1); #endif turnstile_lock(&m->mtx_object); - v = (uintptr_t)m->mtx_lock; + v = m->mtx_lock; /* * Check if the lock has been released while spinning for @@ -609,7 +609,7 @@ DELAY(1); else if (!kdb_active) { printf("spin lock %s held by %p for > 5 seconds\n", - m->mtx_object.lo_name, m->mtx_lock); + m->mtx_object.lo_name, (void *)m->mtx_lock); #ifdef WITNESS witness_display_spinlock(&m->mtx_object, mtx_owner(m)); @@ -683,7 +683,7 @@ if (LOCK_LOG_TEST(&m->mtx_object, opts)) CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p not held", m); } else { - m->mtx_lock = (void *)MTX_CONTESTED; + m->mtx_lock = MTX_CONTESTED; if (LOCK_LOG_TEST(&m->mtx_object, opts)) CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p still contested", m); @@ -861,7 +861,7 @@ if (opts & MTX_DUPOK) lock->lo_flags |= LO_DUPOK; - m->mtx_lock = (void *)MTX_UNOWNED; + m->mtx_lock = MTX_UNOWNED; LOCK_LOG_INIT(lock, opts); @@ -883,7 +883,7 @@ if (!mtx_owned(m)) MPASS(mtx_unowned(m)); else { - MPASS(((uintptr_t)m->mtx_lock & (MTX_FLAGMASK)) == 0); + MPASS((m->mtx_lock & (MTX_RECURSED|MTX_CONTESTED)) == 0); /* Tell witness this isn't locked to make it happy. */ WITNESS_UNLOCK(&m->mtx_object, LOP_EXCLUSIVE, __FILE__, ==== //depot/projects/smpng/sys/kern/sched_4bsd.c#47 (text+ko) ==== @@ -961,7 +961,7 @@ if (td != newtd) cpu_switch(td, newtd); - sched_lock.mtx_lock = td; + sched_lock.mtx_lock = (uintptr_t)td; td->td_oncpu = PCPU_GET(cpuid); } ==== //depot/projects/smpng/sys/kern/sched_ule.c#54 (text+ko) ==== @@ -1393,7 +1393,7 @@ newtd = choosethread(); if (td != newtd) cpu_switch(td, newtd); - sched_lock.mtx_lock = td; + sched_lock.mtx_lock = (uintptr_t)td; td->td_oncpu = PCPU_GET(cpuid); } ==== //depot/projects/smpng/sys/kern/subr_witness.c#129 (text+ko) ==== @@ -407,7 +407,7 @@ LO_INITIALIZED, /* mtx_object.lo_flags */ { NULL, NULL }, /* mtx_object.lo_list */ NULL }, /* mtx_object.lo_witness */ - (void *)MTX_UNOWNED, 0 /* mtx_lock, mtx_recurse */ + MTX_UNOWNED, 0 /* mtx_lock, mtx_recurse */ }; /* ==== //depot/projects/smpng/sys/powerpc/include/atomic.h#9 (text+ko) ==== @@ -406,7 +406,7 @@ #endif /* 0 */ static __inline int -atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_32((volatile uint32_t *)dst, (uint32_t)exp, @@ -437,7 +437,7 @@ #define atomic_cmpset_rel_long atomic_cmpset_rel_32 static __inline int -atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_acq_32((volatile uint32_t *)dst, @@ -445,7 +445,7 @@ } static __inline int -atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) +atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) { return (atomic_cmpset_rel_32((volatile uint32_t *)dst, @@ -453,14 +453,14 @@ } static __inline void * -atomic_load_acq_ptr(volatile void **p) +atomic_load_acq_ptr(volatile void *p) { return (void *)atomic_load_acq_32((volatile uint32_t *)p); } static __inline void -atomic_store_rel_ptr(volatile void **p, void *v) +atomic_store_rel_ptr(volatile void *p, void *v) { atomic_store_rel_32((volatile uint32_t *)p, (uint32_t)v); @@ -468,19 +468,19 @@ #define ATOMIC_PTR(NAME) \ static __inline void \ -atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_32((volatile uint32_t *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_acq_32((volatile uint32_t *)p, v); \ } \ \ static __inline void \ -atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ +atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ { \ atomic_##NAME##_rel_32((volatile uint32_t *)p, v); \ } ==== //depot/projects/smpng/sys/sparc64/include/atomic.h#9 (text+ko) ==== @@ -278,7 +278,7 @@ ATOMIC_GEN(long, u_long *, u_long, u_long, 64); ATOMIC_GEN(64, uint64_t *, uint64_t, uint64_t, 64); -ATOMIC_GEN(ptr, void **, void *, uintptr_t, 64); +ATOMIC_GEN(ptr, void *, void *, uintptr_t, 64); #undef ATOMIC_GEN #undef atomic_cas ==== //depot/projects/smpng/sys/sys/_mutex.h#14 (text+ko) ==== @@ -36,7 +36,7 @@ */ struct mtx { struct lock_object mtx_object; /* Common lock properties. */ - volatile void * mtx_lock; /* Owner and flags. */ + volatile uintptr_t mtx_lock; /* Owner and flags. */ u_int mtx_recurse; /* Number of recursive holds. */ #ifdef MUTEX_PROFILING ==== //depot/projects/smpng/sys/sys/mutex.h#50 (text+ko) ==== @@ -169,7 +169,7 @@ \ critical_enter(); \ if (!_obtain_lock((mp), _tid)) { \ - if ((mp)->mtx_lock == _tid) \ + if ((mp)->mtx_lock == (uintptr_t)_tid) \ (mp)->mtx_recurse++; \ else \ _mtx_lock_spin((mp), _tid, (opts), (file), (line)); \ @@ -180,12 +180,11 @@ struct thread *_tid = (tid); \ \ critical_enter(); \ - if ((mp)->mtx_lock == _tid) \ + if ((mp)->mtx_lock == (uintptr_t)_tid) \ (mp)->mtx_recurse++; \ else { \ - KASSERT((mp)->mtx_lock == (void *)MTX_UNOWNED, \ - ("corrupt spinlock")); \ - (mp)->mtx_lock = _tid; \ + KASSERT((mp)->mtx_lock == MTX_UNOWNED, ("corrupt spinlock")); \ + (mp)->mtx_lock = (uintptr_t)_tid; \ } \ } while (0) #endif /* SMP */ @@ -226,7 +225,7 @@ if (mtx_recursed((mp))) \ (mp)->mtx_recurse--; \ else \ - (mp)->mtx_lock = (void *)MTX_UNOWNED; \ + (mp)->mtx_lock = MTX_UNOWNED; \ critical_exit(); \ } while (0) #endif /* SMP */ @@ -321,7 +320,7 @@ #define mtx_initialized(m) ((m)->mtx_object.lo_flags & LO_INITIALIZED) -#define mtx_owned(m) (((uintptr_t)(m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) +#define mtx_owned(m) (((m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) #define mtx_recursed(m) ((m)->mtx_recurse != 0) From owner-p4-projects@FreeBSD.ORG Wed Mar 30 15:35:04 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5A5CE16A4D0; Wed, 30 Mar 2005 15:35: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 F017616A4CE for ; Wed, 30 Mar 2005 15:35:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB2A043D5A for ; Wed, 30 Mar 2005 15:35:03 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UFZ3q9042708 for ; Wed, 30 Mar 2005 15:35:03 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UFZ3HA042705 for perforce@freebsd.org; Wed, 30 Mar 2005 15:35:03 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 15:35:03 GMT Message-Id: <200503301535.j2UFZ3HA042705@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74109 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, 30 Mar 2005 15:35:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=74109 Change 74109 by jhb@jhb_slimer on 2005/03/30 15:34:06 Use macro mappings for all of char, int, short. long, ptr to the appropriate atomic_XX variants. This also changes ptr to operate on uintptr_t's. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#16 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#16 (text+ko) ==== @@ -206,28 +206,6 @@ return result; } -#define atomic_set_char atomic_set_8 -#define atomic_clear_char atomic_clear_8 -#define atomic_add_char atomic_add_8 -#define atomic_subtract_char atomic_subtract_8 - -#define atomic_set_short atomic_set_16 -#define atomic_clear_short atomic_clear_16 -#define atomic_add_short atomic_add_16 -#define atomic_subtract_short atomic_subtract_16 - -#define atomic_set_int atomic_set_32 -#define atomic_clear_int atomic_clear_32 -#define atomic_add_int atomic_add_32 -#define atomic_subtract_int atomic_subtract_32 -#define atomic_readandclear_int atomic_readandclear_32 - -#define atomic_set_long atomic_set_64 -#define atomic_clear_long atomic_clear_64 -#define atomic_add_long atomic_add_64 -#define atomic_subtract_long atomic_subtract_64 -#define atomic_readandclear_long atomic_readandclear_64 - #define ATOMIC_ACQ_REL(NAME, WIDTH, TYPE) \ static __inline void \ atomic_##NAME##_acq_##WIDTH(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\ @@ -242,23 +220,9 @@ { \ alpha_wmb(); \ atomic_##NAME##_##WIDTH(p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_acq_##TYPE(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\ -{ \ - atomic_##NAME##_##WIDTH(p, v); \ - alpha_mb(); \ - __asm __volatile("" ::: "memory"); \ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_##TYPE(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\ -{ \ - alpha_wmb(); \ - atomic_##NAME##_##WIDTH(p, v); \ } +/* Variants of simple arithmetic with memory barriers. */ ATOMIC_ACQ_REL(set, 8, char) ATOMIC_ACQ_REL(clear, 8, char) ATOMIC_ACQ_REL(add, 8, char) @@ -298,30 +262,12 @@ { \ alpha_wmb(); \ *p = v; \ -} \ - \ -static __inline u_##TYPE \ -atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ -{ \ - u_##TYPE v; \ - \ - v = *p; \ - alpha_mb(); \ - __asm __volatile("" ::: "memory"); \ - return (v); \ -} \ - \ -static __inline void \ -atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ -{ \ - alpha_wmb(); \ - *p = v; \ } -ATOMIC_STORE_LOAD(char, 8) -ATOMIC_STORE_LOAD(short, 16) -ATOMIC_STORE_LOAD(int, 32) -ATOMIC_STORE_LOAD(long, 64) +ATOMIC_STORE_LOAD(8) +ATOMIC_STORE_LOAD(16) +ATOMIC_STORE_LOAD(32) +ATOMIC_STORE_LOAD(64) #undef ATOMIC_STORE_LOAD @@ -377,17 +323,6 @@ return ret; } -#define atomic_cmpset_int atomic_cmpset_32 -#define atomic_cmpset_long atomic_cmpset_64 - -static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) -{ - - return (atomic_cmpset_long((volatile u_long *)dst, (u_long)exp, - (u_long)src)); -} - static __inline u_int32_t atomic_cmpset_acq_32(volatile u_int32_t *p, u_int32_t cmpval, u_int32_t newval) { @@ -424,63 +359,94 @@ return (atomic_cmpset_64(p, cmpval, newval)); } +/* Operations on chars. */ +#define atomic_load_acq_char atomic_load_acq_8 +#define atomic_store_rel_char atomic_store_rel_8 +#define atomic_set_char atomic_set_8 +#define atomic_set_acq_char atomic_set_acq_8 +#define atomic_set_rel_char atomic_set_rel_8 +#define atomic_clear_char atomic_clear_8 +#define atomic_clear_acq_char atomic_clear_acq_8 +#define atomic_clear_rel_char atomic_clear_rel_8 +#define atomic_add_char atomic_add_8 +#define atomic_add_acq_char atomic_add_acq_8 +#define atomic_add_rel_char atomic_add_rel_8 +#define atomic_subtract_char atomic_subtract_8 +#define atomic_subtract_acq_char atomic_subtract_acq_8 +#define atomic_subtract_rel_char atomic_subtract_rel_8 + +/* Operations on shorts. */ +#define atomic_load_acq_short atomic_load_acq_16 +#define atomic_store_rel_short atomic_store_rel_16 +#define atomic_set_short atomic_set_16 +#define atomic_set_acq_short atomic_set_acq_16 +#define atomic_set_rel_short atomic_set_rel_16 +#define atomic_clear_short atomic_clear_16 +#define atomic_clear_acq_short atomic_clear_acq_16 +#define atomic_clear_rel_short atomic_clear_rel_16 +#define atomic_add_short atomic_add_16 +#define atomic_add_acq_short atomic_add_acq_16 +#define atomic_add_rel_short atomic_add_rel_16 +#define atomic_subtract_short atomic_subtract_16 +#define atomic_subtract_acq_short atomic_subtract_acq_16 +#define atomic_subtract_rel_short atomic_subtract_rel_16 + +/* Operations on ints. */ +#define atomic_load_acq_int atomic_load_acq_32 +#define atomic_store_rel_int atomic_store_rel_32 +#define atomic_set_int atomic_set_32 +#define atomic_set_acq_int atomic_set_acq_32 +#define atomic_set_rel_int atomic_set_rel_32 +#define atomic_clear_int atomic_clear_32 +#define atomic_clear_acq_int atomic_clear_acq_32 +#define atomic_clear_rel_int atomic_clear_rel_32 +#define atomic_add_int atomic_add_32 +#define atomic_add_acq_int atomic_add_acq_32 +#define atomic_add_rel_int atomic_add_rel_32 +#define atomic_subtract_int atomic_subtract_32 +#define atomic_readandclear_int atomic_readandclear_32 +#define atomic_cmpset_int atomic_cmpset_32 #define atomic_cmpset_acq_int atomic_cmpset_acq_32 #define atomic_cmpset_rel_int atomic_cmpset_rel_32 +#define atomic_subtract_acq_int atomic_subtract_acq_32 +#define atomic_subtract_rel_int atomic_subtract_rel_32 + +/* Operations on longs. */ +#define atomic_load_acq_long atomic_load_acq_64 +#define atomic_store_rel_long atomic_store_rel_64 +#define atomic_set_long atomic_set_64 +#define atomic_set_acq_long atomic_set_acq_64 +#define atomic_set_rel_long atomic_set_rel_64 +#define atomic_clear_long atomic_clear_64 +#define atomic_clear_acq_long atomic_clear_acq_64 +#define atomic_clear_rel_long atomic_clear_rel_64 +#define atomic_add_long atomic_add_64 +#define atomic_add_acq_long atomic_add_acq_64 +#define atomic_add_rel_long atomic_add_rel_64 +#define atomic_subtract_long atomic_subtract_64 +#define atomic_readandclear_long atomic_readandclear_64 +#define atomic_cmpset_long atomic_cmpset_64 #define atomic_cmpset_acq_long atomic_cmpset_acq_64 #define atomic_cmpset_rel_long atomic_cmpset_rel_64 -static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) -{ - - return (atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, - (u_long)src)); -} - -static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) -{ - - return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, - (u_long)src)); -} - -static __inline void * -atomic_load_acq_ptr(volatile void *p) -{ - return (void *)atomic_load_acq_long((volatile u_long *)p); -} - -static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) -{ - atomic_store_rel_long((volatile u_long *)p, (u_long)v); -} - -#define ATOMIC_PTR(NAME) \ -static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_long((volatile u_long *)p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_acq_long((volatile u_long *)p, v);\ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_rel_long((volatile u_long *)p, v);\ -} - -ATOMIC_PTR(set) -ATOMIC_PTR(clear) -ATOMIC_PTR(add) -ATOMIC_PTR(subtract) - -#undef ATOMIC_PTR +/* Operations on pointers. */ +#define atomic_load_acq_ptr atomic_load_acq_64 +#define atomic_store_rel_ptr atomic_store_rel_64 +#define atomic_set_ptr atomic_set_64 +#define atomic_set_acq_ptr atomic_set_acq_64 +#define atomic_set_rel_ptr atomic_set_rel_64 +#define atomic_clear_ptr atomic_clear_64 +#define atomic_clear_acq_ptr atomic_clear_acq_64 +#define atomic_clear_rel_ptr atomic_clear_rel_64 +#define atomic_add_ptr atomic_add_64 +#define atomic_add_acq_ptr atomic_add_acq_64 +#define atomic_add_rel_ptr atomic_add_rel_64 +#define atomic_subtract_ptr atomic_subtract_64 +#define atomic_subtract_acq_ptr atomic_subtract_acq_64 +#define atomic_subtract_rel_ptr atomic_subtract_rel_64 +#define atomic_readandclear_ptr atomic_readandclear_64 +#define atomic_cmpset_ptr atomic_cmpset_64 +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_64 +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_64 #endif /* ! _MACHINE_ATOMIC_H_ */ From owner-p4-projects@FreeBSD.ORG Wed Mar 30 17:57:57 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2680E16A4D0; Wed, 30 Mar 2005 17:57:57 +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 EE29616A4CE for ; Wed, 30 Mar 2005 17:57:56 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95CB643D41 for ; Wed, 30 Mar 2005 17:57:56 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UHvux6054524 for ; Wed, 30 Mar 2005 17:57:56 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UHvuId054521 for perforce@freebsd.org; Wed, 30 Mar 2005 17:57:56 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 17:57:56 GMT Message-Id: <200503301757.j2UHvuId054521@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74112 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, 30 Mar 2005 17:57:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=74112 Change 74112 by jhb@jhb_slimer on 2005/03/30 17:57:50 More rototilling. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#17 edit .. //depot/projects/smpng/sys/amd64/include/atomic.h#12 edit .. //depot/projects/smpng/sys/arm/include/atomic.h#7 edit .. //depot/projects/smpng/sys/i386/include/atomic.h#27 edit .. //depot/projects/smpng/sys/ia64/include/atomic.h#7 edit .. //depot/projects/smpng/sys/powerpc/include/atomic.h#10 edit .. //depot/projects/smpng/sys/sparc64/include/atomic.h#10 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#17 (text+ko) ==== @@ -360,8 +360,6 @@ } /* Operations on chars. */ -#define atomic_load_acq_char atomic_load_acq_8 -#define atomic_store_rel_char atomic_store_rel_8 #define atomic_set_char atomic_set_8 #define atomic_set_acq_char atomic_set_acq_8 #define atomic_set_rel_char atomic_set_rel_8 @@ -374,10 +372,10 @@ #define atomic_subtract_char atomic_subtract_8 #define atomic_subtract_acq_char atomic_subtract_acq_8 #define atomic_subtract_rel_char atomic_subtract_rel_8 +#define atomic_load_acq_char atomic_load_acq_8 +#define atomic_store_rel_char atomic_store_rel_8 /* Operations on shorts. */ -#define atomic_load_acq_short atomic_load_acq_16 -#define atomic_store_rel_short atomic_store_rel_16 #define atomic_set_short atomic_set_16 #define atomic_set_acq_short atomic_set_acq_16 #define atomic_set_rel_short atomic_set_rel_16 @@ -390,10 +388,10 @@ #define atomic_subtract_short atomic_subtract_16 #define atomic_subtract_acq_short atomic_subtract_acq_16 #define atomic_subtract_rel_short atomic_subtract_rel_16 +#define atomic_load_acq_short atomic_load_acq_16 +#define atomic_store_rel_short atomic_store_rel_16 /* Operations on ints. */ -#define atomic_load_acq_int atomic_load_acq_32 -#define atomic_store_rel_int atomic_store_rel_32 #define atomic_set_int atomic_set_32 #define atomic_set_acq_int atomic_set_acq_32 #define atomic_set_rel_int atomic_set_rel_32 @@ -404,16 +402,16 @@ #define atomic_add_acq_int atomic_add_acq_32 #define atomic_add_rel_int atomic_add_rel_32 #define atomic_subtract_int atomic_subtract_32 -#define atomic_readandclear_int atomic_readandclear_32 +#define atomic_subtract_acq_int atomic_subtract_acq_32 +#define atomic_subtract_rel_int atomic_subtract_rel_32 #define atomic_cmpset_int atomic_cmpset_32 #define atomic_cmpset_acq_int atomic_cmpset_acq_32 #define atomic_cmpset_rel_int atomic_cmpset_rel_32 -#define atomic_subtract_acq_int atomic_subtract_acq_32 -#define atomic_subtract_rel_int atomic_subtract_rel_32 +#define atomic_load_acq_int atomic_load_acq_32 +#define atomic_store_rel_int atomic_store_rel_32 +#define atomic_readandclear_int atomic_readandclear_32 /* Operations on longs. */ -#define atomic_load_acq_long atomic_load_acq_64 -#define atomic_store_rel_long atomic_store_rel_64 #define atomic_set_long atomic_set_64 #define atomic_set_acq_long atomic_set_acq_64 #define atomic_set_rel_long atomic_set_rel_64 @@ -424,14 +422,16 @@ #define atomic_add_acq_long atomic_add_acq_64 #define atomic_add_rel_long atomic_add_rel_64 #define atomic_subtract_long atomic_subtract_64 -#define atomic_readandclear_long atomic_readandclear_64 +#define atomic_subtract_acq_long atomic_subtract_acq_64 +#define atomic_subtract_rel_long atomic_subtract_rel_64 #define atomic_cmpset_long atomic_cmpset_64 #define atomic_cmpset_acq_long atomic_cmpset_acq_64 #define atomic_cmpset_rel_long atomic_cmpset_rel_64 +#define atomic_load_acq_long atomic_load_acq_64 +#define atomic_store_rel_long atomic_store_rel_64 +#define atomic_readandclear_long atomic_readandclear_64 /* Operations on pointers. */ -#define atomic_load_acq_ptr atomic_load_acq_64 -#define atomic_store_rel_ptr atomic_store_rel_64 #define atomic_set_ptr atomic_set_64 #define atomic_set_acq_ptr atomic_set_acq_64 #define atomic_set_rel_ptr atomic_set_rel_64 @@ -444,9 +444,11 @@ #define atomic_subtract_ptr atomic_subtract_64 #define atomic_subtract_acq_ptr atomic_subtract_acq_64 #define atomic_subtract_rel_ptr atomic_subtract_rel_64 -#define atomic_readandclear_ptr atomic_readandclear_64 #define atomic_cmpset_ptr atomic_cmpset_64 #define atomic_cmpset_acq_ptr atomic_cmpset_acq_64 #define atomic_cmpset_rel_ptr atomic_cmpset_rel_64 +#define atomic_load_acq_ptr atomic_load_acq_64 +#define atomic_store_rel_ptr atomic_store_rel_64 +#define atomic_readandclear_ptr atomic_readandclear_64 #endif /* ! _MACHINE_ATOMIC_H_ */ ==== //depot/projects/smpng/sys/amd64/include/atomic.h#12 (text+ko) ==== @@ -69,9 +69,9 @@ */ #if defined(KLD_MODULE) #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) \ -void atomic_##NAME##_##TYPE_acq(volatile u_##TYPE *p, u_##TYPE v) \ -void atomic_##NAME##_##TYPE_rel(volatile u_##TYPE *p, u_##TYPE v); +void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ +void atomic_##NAME##_##TYPE_acq(volatile u_##TYPE *p, u_##TYPE v); \ +void atomic_##NAME##_##TYPE_rel(volatile u_##TYPE *p, u_##TYPE v) int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); int atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src); @@ -129,7 +129,9 @@ #else /* !(__GNUCLIKE_ASM && __CC_SUPPORTS___INLINE) */ #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -extern void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) +extern void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ +extern void atomic_##NAME##_##TYPE##_acq(volatile u_##TYPE *p, u_##TYPE v); \ +extern void atomic_##NAME##_##TYPE##_rel(volatile u_##TYPE *p, u_##TYPE v) #endif /* __GNUCLIKE_ASM && __CC_SUPPORTS___INLINE */ @@ -313,79 +315,33 @@ #define atomic_subtract_32 atomic_subtract_int #define atomic_subtract_acq_32 atomic_subtract_acq_int #define atomic_subtract_rel_32 atomic_subtract_rel_int -#define atomic_load_acq_32 atomic_load_acq_int -#define atomic_store_rel_32 atomic_store_rel_int #define atomic_cmpset_32 atomic_cmpset_int #define atomic_cmpset_acq_32 atomic_cmpset_acq_int #define atomic_cmpset_rel_32 atomic_cmpset_rel_int +#define atomic_load_acq_32 atomic_load_acq_int +#define atomic_store_rel_32 atomic_store_rel_int #define atomic_readandclear_32 atomic_readandclear_int +#define atomic_set_ptr atomic_set_int +#define atomic_set_acq_ptr atomic_set_acq_int +#define atomic_set_rel_ptr atomic_set_rel_int +#define atomic_clear_ptr atomic_clear_int +#define atomic_clear_acq_ptr atomic_clear_acq_int +#define atomic_clear_rel_ptr atomic_clear_rel_int +#define atomic_add_ptr atomic_add_int +#define atomic_add_acq_ptr atomic_add_acq_int +#define atomic_add_rel_ptr atomic_add_rel_int +#define atomic_subtract_ptr atomic_subtract_int +#define atomic_subtract_acq_ptr atomic_subtract_acq_int +#define atomic_subtract_rel_ptr atomic_subtract_rel_int +#define atomic_cmpset_ptr atomic_cmpset_int +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_int +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_int +#define atomic_load_acq_ptr atomic_load_acq_int +#define atomic_store_rel_ptr atomic_store_rel_int +#define atomic_readandclear_ptr atomic_readandclear_int + #if !defined(WANT_FUNCTIONS) -static __inline int -atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) -{ - - return (atomic_cmpset_long((volatile u_long *)dst, - (u_long)exp, (u_long)src)); -} - -static __inline int -atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) -{ - - return (atomic_cmpset_acq_long((volatile u_long *)dst, - (u_long)exp, (u_long)src)); -} - -static __inline int -atomic_cmpset_rel_ptr(volatile void **dst, void *exp, void *src) -{ - - return (atomic_cmpset_rel_long((volatile u_long *)dst, - (u_long)exp, (u_long)src)); -} - -static __inline void * -atomic_load_acq_ptr(volatile void **p) -{ - /* - * The apparently-bogus cast to intptr_t in the following is to - * avoid a warning from "gcc -Wbad-function-cast". - */ - return ((void *)(intptr_t)atomic_load_acq_long((volatile u_long *)p)); -} - -static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) -{ - atomic_store_rel_long((volatile u_long *)p, (u_long)v); -} - -#define ATOMIC_PTR(NAME) \ -static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_long((volatile u_long *)p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_acq_long((volatile u_long *)p, v);\ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_rel_long((volatile u_long *)p, v);\ -} - -ATOMIC_PTR(set) -ATOMIC_PTR(clear) -ATOMIC_PTR(add) -ATOMIC_PTR(subtract) - -#undef ATOMIC_PTR #if defined(__GNUCLIKE_ASM) && defined(__CC_SUPPORTS___INLINE) ==== //depot/projects/smpng/sys/arm/include/atomic.h#7 (text+ko) ==== @@ -175,15 +175,11 @@ #define atomic_store_rel_ptr atomic_store_ptr #define atomic_store_rel_int atomic_store_32 #define atomic_cmpset_rel_32 atomic_cmpset_32 -#define atomic_smpset_rel_ptr atomic_cmpset_ptr +#define atomic_cmpset_rel_ptr atomic_cmpset_ptr #define atomic_load_acq_int atomic_load_32 -#define atomic_clear_ptr(ptr, bit) atomic_clear_32( \ - (volatile uint32_t *)ptr, (uint32_t)bit) -#define atomic_store_ptr(ptr, bit) atomic_store_32( \ - (volatile uint32_t *)ptr, (uint32_t)bit) -#define atomic_cmpset_ptr(dst, exp, s) atomic_cmpset_32( \ - (volatile uint32_t *)dst, (uint32_t)exp, (uint32_t)s) -#define atomic_set_ptr(ptr, src) atomic_set_32( \ - (volatile uint32_t *)ptr, (uint32_t)src) +#define atomic_clear_ptr atomic_clear_32 +#define atomic_store_ptr atomic_store_32 +#define atomic_cmpset_ptr atomic_cmpset_32 +#define atomic_set_ptr atomic_set_32 #endif /* _MACHINE_ATOMIC_H_ */ ==== //depot/projects/smpng/sys/i386/include/atomic.h#27 (text+ko) ==== @@ -172,6 +172,14 @@ #endif /* defined(CPU_DISABLE_CMPXCHG) */ +#else /* !__GNUCLIKE_ASM */ + +extern int atomic_cmpset_int(volatile u_int *, u_int, u_int); + +#endif /* __GNUCLIKE_ASM */ + +#ifdef __GNUCLIKE_ASM + #if defined(_KERNEL) && !defined(SMP) /* @@ -229,8 +237,6 @@ #else /* !__GNUCLIKE_ASM */ -extern int atomic_cmpset_int(volatile u_int *, u_int, u_int); - #define ATOMIC_STORE_LOAD(TYPE, LOP, SOP) \ extern u_##TYPE atomic_load_acq_##TYPE(volatile u_##TYPE *p); \ extern void atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v) @@ -254,95 +260,16 @@ ATOMIC_ASM(add, int, "addl %1,%0", "ir", v); ATOMIC_ASM(subtract, int, "subl %1,%0", "ir", v); -ATOMIC_ASM(set, long, "orl %1,%0", "ir", v); -ATOMIC_ASM(clear, long, "andl %1,%0", "ir", ~v); -ATOMIC_ASM(add, long, "addl %1,%0", "ir", v); -ATOMIC_ASM(subtract, long, "subl %1,%0", "ir", v); - ATOMIC_STORE_LOAD(char, "cmpxchgb %b0,%1", "xchgb %b1,%0"); ATOMIC_STORE_LOAD(short,"cmpxchgw %w0,%1", "xchgw %w1,%0"); ATOMIC_STORE_LOAD(int, "cmpxchgl %0,%1", "xchgl %1,%0"); -ATOMIC_STORE_LOAD(long, "cmpxchgl %0,%1", "xchgl %1,%0"); #undef ATOMIC_ASM #undef ATOMIC_STORE_LOAD #if !defined(WANT_FUNCTIONS) -#define atomic_set_rel_char atomic_set_char -#define atomic_clear_rel_char atomic_clear_char -#define atomic_add_rel_char atomic_add_char -#define atomic_subtract_rel_char atomic_subtract_char -#define atomic_set_rel_short atomic_set_short -#define atomic_clear_rel_short atomic_clear_short -#define atomic_add_rel_short atomic_add_short -#define atomic_subtract_rel_short atomic_subtract_short - -#define atomic_set_rel_int atomic_set_int -#define atomic_clear_rel_int atomic_clear_int -#define atomic_add_rel_int atomic_add_int -#define atomic_subtract_rel_int atomic_subtract_int -#define atomic_cmpset_rel_int atomic_cmpset_int - -#define atomic_set_rel_long atomic_set_long -#define atomic_clear_rel_long atomic_clear_long -#define atomic_add_rel_long atomic_add_long -#define atomic_subtract_rel_long atomic_subtract_long -#define atomic_cmpset_long atomic_cmpset_int -#define atomic_cmpset_acq_long atomic_cmpset_acq_int -#define atomic_cmpset_rel_long atomic_cmpset_rel_int - -#define atomic_cmpset_rel_ptr atomic_cmpset_ptr - -#define atomic_set_8 atomic_set_char -#define atomic_set_acq_8 atomic_set_acq_char -#define atomic_set_rel_8 atomic_set_rel_char -#define atomic_clear_8 atomic_clear_char -#define atomic_clear_acq_8 atomic_clear_acq_char -#define atomic_clear_rel_8 atomic_clear_rel_char -#define atomic_add_8 atomic_add_char -#define atomic_add_acq_8 atomic_add_acq_char -#define atomic_add_rel_8 atomic_add_rel_char -#define atomic_subtract_8 atomic_subtract_char -#define atomic_subtract_acq_8 atomic_subtract_acq_char -#define atomic_subtract_rel_8 atomic_subtract_rel_char -#define atomic_load_acq_8 atomic_load_acq_char -#define atomic_store_rel_8 atomic_store_rel_char - -#define atomic_set_16 atomic_set_short -#define atomic_set_acq_16 atomic_set_acq_short -#define atomic_set_rel_16 atomic_set_rel_short -#define atomic_clear_16 atomic_clear_short -#define atomic_clear_acq_16 atomic_clear_acq_short -#define atomic_clear_rel_16 atomic_clear_rel_short -#define atomic_add_16 atomic_add_short -#define atomic_add_acq_16 atomic_add_acq_short -#define atomic_add_rel_16 atomic_add_rel_short -#define atomic_subtract_16 atomic_subtract_short -#define atomic_subtract_acq_16 atomic_subtract_acq_short -#define atomic_subtract_rel_16 atomic_subtract_rel_short -#define atomic_load_acq_16 atomic_load_acq_short -#define atomic_store_rel_16 atomic_store_rel_short - -#define atomic_set_32 atomic_set_int -#define atomic_set_acq_32 atomic_set_acq_int -#define atomic_set_rel_32 atomic_set_rel_int -#define atomic_clear_32 atomic_clear_int -#define atomic_clear_acq_32 atomic_clear_acq_int -#define atomic_clear_rel_32 atomic_clear_rel_int -#define atomic_add_32 atomic_add_int -#define atomic_add_acq_32 atomic_add_acq_int -#define atomic_add_rel_32 atomic_add_rel_int -#define atomic_subtract_32 atomic_subtract_int -#define atomic_subtract_acq_32 atomic_subtract_acq_int -#define atomic_subtract_rel_32 atomic_subtract_rel_int -#define atomic_load_acq_32 atomic_load_acq_int -#define atomic_store_rel_32 atomic_store_rel_int -#define atomic_cmpset_32 atomic_cmpset_int -#define atomic_cmpset_acq_32 atomic_cmpset_acq_int -#define atomic_cmpset_rel_32 atomic_cmpset_rel_int -#define atomic_readandclear_32 atomic_readandclear_int - +/* Acquire variants that add a "memory" clobber. */ #define ATOMIC_ACQ(NAME, TYPE) \ static __inline void \ atomic_##NAME##_acq_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ @@ -382,64 +309,24 @@ return (retval); } -static __inline int -atomic_cmpset_ptr(volatile void **dst, void *exp, void *src) -{ +/* Release variants are identical to the normal ones. */ +#define atomic_set_rel_char atomic_set_char +#define atomic_clear_rel_char atomic_clear_char +#define atomic_add_rel_char atomic_add_char +#define atomic_subtract_rel_char atomic_subtract_char - return (atomic_cmpset_int((volatile u_int *)dst, (u_int)exp, - (u_int)src)); -} +#define atomic_set_rel_short atomic_set_short +#define atomic_clear_rel_short atomic_clear_short +#define atomic_add_rel_short atomic_add_short +#define atomic_subtract_rel_short atomic_subtract_short -static __inline int -atomic_cmpset_acq_ptr(volatile void **dst, void *exp, void *src) -{ +#define atomic_set_rel_int atomic_set_int +#define atomic_clear_rel_int atomic_clear_int +#define atomic_add_rel_int atomic_add_int +#define atomic_subtract_rel_int atomic_subtract_int +#define atomic_cmpset_rel_int atomic_cmpset_int - return (atomic_cmpset_acq_int((volatile u_int *)dst, (u_int)exp, - (u_int)src)); -} - -static __inline void * -atomic_load_acq_ptr(volatile void **p) -{ - /* - * The apparently-bogus cast to intptr_t in the following is to - * avoid a warning from "gcc -Wbad-function-cast". - */ - return ((void *)(intptr_t)atomic_load_acq_int((volatile u_int *)p)); -} - -static __inline void -atomic_store_rel_ptr(volatile void **p, void *v) -{ - atomic_store_rel_int((volatile u_int *)p, (u_int)v); -} - -#define ATOMIC_PTR(NAME) \ -static __inline void \ -atomic_##NAME##_ptr(volatile void **p, uintptr_t v) \ -{ \ - atomic_##NAME##_int((volatile u_int *)p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_acq_ptr(volatile void **p, uintptr_t v) \ -{ \ - atomic_##NAME##_acq_int((volatile u_int *)p, v);\ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_ptr(volatile void **p, uintptr_t v) \ -{ \ - atomic_##NAME##_rel_int((volatile u_int *)p, v);\ -} - -ATOMIC_PTR(set) -ATOMIC_PTR(clear) -ATOMIC_PTR(add) -ATOMIC_PTR(subtract) - -#undef ATOMIC_PTR - +/* Read the current value and store a zero in the destination. */ #ifdef __GNUCLIKE_ASM static __inline u_int @@ -481,5 +368,97 @@ #endif /* __GNUCLIKE_ASM */ +/* Operations on 8-bit bytes. */ +#define atomic_set_8 atomic_set_char +#define atomic_set_acq_8 atomic_set_acq_char +#define atomic_set_rel_8 atomic_set_rel_char +#define atomic_clear_8 atomic_clear_char +#define atomic_clear_acq_8 atomic_clear_acq_char +#define atomic_clear_rel_8 atomic_clear_rel_char +#define atomic_add_8 atomic_add_char +#define atomic_add_acq_8 atomic_add_acq_char +#define atomic_add_rel_8 atomic_add_rel_char +#define atomic_subtract_8 atomic_subtract_char +#define atomic_subtract_acq_8 atomic_subtract_acq_char +#define atomic_subtract_rel_8 atomic_subtract_rel_char +#define atomic_load_acq_8 atomic_load_acq_char +#define atomic_store_rel_8 atomic_store_rel_char + +/* Operations on 16-bit words. */ +#define atomic_set_16 atomic_set_short +#define atomic_set_acq_16 atomic_set_acq_short +#define atomic_set_rel_16 atomic_set_rel_short +#define atomic_clear_16 atomic_clear_short +#define atomic_clear_acq_16 atomic_clear_acq_short +#define atomic_clear_rel_16 atomic_clear_rel_short +#define atomic_add_16 atomic_add_short +#define atomic_add_acq_16 atomic_add_acq_short +#define atomic_add_rel_16 atomic_add_rel_short +#define atomic_subtract_16 atomic_subtract_short +#define atomic_subtract_acq_16 atomic_subtract_acq_short +#define atomic_subtract_rel_16 atomic_subtract_rel_short +#define atomic_load_acq_16 atomic_load_acq_short +#define atomic_store_rel_16 atomic_store_rel_short + +/* Operations on 32-bit double words. */ +#define atomic_set_32 atomic_set_int +#define atomic_set_acq_32 atomic_set_acq_int +#define atomic_set_rel_32 atomic_set_rel_int +#define atomic_clear_32 atomic_clear_int +#define atomic_clear_acq_32 atomic_clear_acq_int +#define atomic_clear_rel_32 atomic_clear_rel_int +#define atomic_add_32 atomic_add_int +#define atomic_add_acq_32 atomic_add_acq_int +#define atomic_add_rel_32 atomic_add_rel_int +#define atomic_subtract_32 atomic_subtract_int +#define atomic_subtract_acq_32 atomic_subtract_acq_int +#define atomic_subtract_rel_32 atomic_subtract_rel_int +#define atomic_cmpset_32 atomic_cmpset_int +#define atomic_cmpset_acq_32 atomic_cmpset_acq_int +#define atomic_cmpset_rel_32 atomic_cmpset_rel_int +#define atomic_load_acq_32 atomic_load_acq_int +#define atomic_store_rel_32 atomic_store_rel_int +#define atomic_readandclear_32 atomic_readandclear_int + +/* Operations on longs. */ +#define atomic_set_long atomic_set_int +#define atomic_set_acq_long atomic_set_acq_int +#define atomic_set_rel_long atomic_set_rel_int +#define atomic_clear_long atomic_clear_int +#define atomic_clear_acq_long atomic_clear_acq_int +#define atomic_clear_rel_long atomic_clear_rel_int +#define atomic_add_long atomic_add_int +#define atomic_add_acq_long atomic_add_acq_int +#define atomic_add_rel_long atomic_add_rel_int +#define atomic_subtract_long atomic_subtract_int +#define atomic_subtract_acq_long atomic_subtract_acq_int +#define atomic_subtract_rel_long atomic_subtract_rel_int +#define atomic_cmpset_long atomic_cmpset_int +#define atomic_cmpset_acq_long atomic_cmpset_acq_int +#define atomic_cmpset_rel_long atomic_cmpset_rel_int +#define atomic_load_acq_long atomic_load_acq_int +#define atomic_store_rel_long atomic_store_rel_int +#define atomic_readandclear_long atomic_readandclear_int + +/* Operations on pointers. */ +#define atomic_set_ptr atomic_set_int +#define atomic_set_acq_ptr atomic_set_acq_int +#define atomic_set_rel_ptr atomic_set_rel_int +#define atomic_clear_ptr atomic_clear_int +#define atomic_clear_acq_ptr atomic_clear_acq_int +#define atomic_clear_rel_ptr atomic_clear_rel_int +#define atomic_add_ptr atomic_add_int +#define atomic_add_acq_ptr atomic_add_acq_int +#define atomic_add_rel_ptr atomic_add_rel_int +#define atomic_subtract_ptr atomic_subtract_int +#define atomic_subtract_acq_ptr atomic_subtract_acq_int +#define atomic_subtract_rel_ptr atomic_subtract_rel_int +#define atomic_cmpset_ptr atomic_cmpset_int +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_int +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_int +#define atomic_load_acq_ptr atomic_load_acq_int +#define atomic_store_rel_ptr atomic_store_rel_int +#define atomic_readandclear_ptr atomic_readandclear_int + #endif /* !defined(WANT_FUNCTIONS) */ #endif /* ! _MACHINE_ATOMIC_H_ */ ==== //depot/projects/smpng/sys/ia64/include/atomic.h#7 (text+ko) ==== @@ -138,6 +138,9 @@ #undef ATOMIC_STORE_LOAD +#define atomic_load_acq_ptr atomic_load_acq_64 +#define atomic_store_rel_ptr atomic_store_rel_64 + #define IA64_ATOMIC(sz, type, name, width, op) \ static __inline type \ atomic_##name##_acq_##width(volatile type *p, type v) \ @@ -255,6 +258,19 @@ #define atomic_add_rel_long atomic_add_rel_64 #define atomic_subtract_rel_long atomic_subtract_rel_64 +#define atomic_set_ptr atomic_set_64 +#define atomic_clear_ptr atomic_clear_64 +#define atomic_add_ptr atomic_add_64 +#define atomic_subtract_ptr atomic_subtract_64 +#define atomic_set_acq_ptr atomic_set_acq_64 +#define atomic_clear_acq_ptr atomic_clear_acq_64 +#define atomic_add_acq_ptr atomic_add_acq_64 +#define atomic_subtract_acq_ptr atomic_subtract_acq_64 +#define atomic_set_rel_ptr atomic_set_rel_64 +#define atomic_clear_rel_ptr atomic_clear_rel_64 +#define atomic_add_rel_ptr atomic_add_rel_64 +#define atomic_subtract_rel_ptr atomic_subtract_rel_64 + #undef IA64_CMPXCHG /* @@ -295,68 +311,13 @@ #define atomic_cmpset_64 atomic_cmpset_acq_64 #define atomic_cmpset_int atomic_cmpset_32 #define atomic_cmpset_long atomic_cmpset_64 +#define atomic_cmpset_ptr atomic_cmpset_64 #define atomic_cmpset_acq_int atomic_cmpset_acq_32 #define atomic_cmpset_rel_int atomic_cmpset_rel_32 #define atomic_cmpset_acq_long atomic_cmpset_acq_64 #define atomic_cmpset_rel_long atomic_cmpset_rel_64 - -static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) -{ - int ret; - ret = atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, - (u_long)src); - return (ret); -} - -static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) -{ - int ret; - ret = atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, - (u_long)src); - return (ret); -} - -#define atomic_cmpset_ptr atomic_cmpset_acq_ptr - -static __inline void * -atomic_load_acq_ptr(volatile void *p) -{ - return ((void *)atomic_load_acq_long((volatile u_long *)p)); -} - -static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) -{ - atomic_store_rel_long((volatile u_long *)p, (u_long)v); -} - -#define ATOMIC_PTR(NAME) \ - static __inline void \ - atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ - { \ - atomic_##NAME##_long((volatile u_long *)p, v); \ - } \ - \ - static __inline void \ - atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ - { \ - atomic_##NAME##_acq_long((volatile u_long *)p, v); \ - } \ - \ - static __inline void \ - atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ - { \ - atomic_##NAME##_rel_long((volatile u_long *)p, v); \ - } - -ATOMIC_PTR(set) -ATOMIC_PTR(clear) -ATOMIC_PTR(add) -ATOMIC_PTR(subtract) - -#undef ATOMIC_PTR +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_64 +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_64 static __inline uint32_t atomic_readandclear_32(volatile uint32_t* p) ==== //depot/projects/smpng/sys/powerpc/include/atomic.h#10 (text+ko) ==== @@ -230,6 +230,11 @@ #define atomic_subtract_long(p, v) atomic_subtract_32((uint32_t *)p, (uint32_t)v) #define atomic_readandclear_long atomic_readandclear_32 +#define atomic_set_ptr atomic_set_32 +#define atomic_clear_ptr atomic_clear_32 +#define atomic_add_ptr atomic_add_32 +#define atomic_subtract_ptr atomic_subtract_32 + #if 0 /* See above. */ @@ -295,6 +300,15 @@ #define atomic_subtract_acq_long atomic_subtract_acq_32 #define atomic_subtract_rel_long atomic_subtract_rel_32 +#define atomic_set_acq_ptr atomic_set_acq_32 +#define atomic_set_rel_ptr atomic_set_rel_32 +#define atomic_clear_acq_ptr atomic_clear_acq_32 +#define atomic_clear_rel_ptr atomic_clear_rel_32 +#define atomic_add_acq_ptr atomic_add_acq_32 +#define atomic_add_rel_ptr atomic_add_rel_32 +#define atomic_subtract_acq_ptr atomic_subtract_acq_32 +#define atomic_subtract_rel_ptr atomic_subtract_rel_32 + #undef ATOMIC_ACQ_REL /* @@ -343,6 +357,9 @@ #define atomic_load_acq_long atomic_load_acq_32 #define atomic_store_rel_long atomic_store_rel_32 +#define atomic_load_acq_ptr atomic_load_acq_32 +#define atomic_store_rel_ptr atomic_store_rel_32 + #undef ATOMIC_STORE_LOAD /* @@ -400,19 +417,12 @@ #define atomic_cmpset_int atomic_cmpset_32 #define atomic_cmpset_long atomic_cmpset_32 +#define atomic_cmpset_ptr atomic_cmpset_32 #if 0 #define atomic_cmpset_long_long atomic_cmpset_64 #endif /* 0 */ -static __inline int -atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) -{ - - return (atomic_cmpset_32((volatile uint32_t *)dst, (uint32_t)exp, - (uint32_t)src)); -} - static __inline uint32_t atomic_cmpset_acq_32(volatile uint32_t *p, uint32_t cmpval, uint32_t newval) { @@ -435,60 +445,7 @@ #define atomic_cmpset_rel_int atomic_cmpset_rel_32 #define atomic_cmpset_acq_long atomic_cmpset_acq_32 #define atomic_cmpset_rel_long atomic_cmpset_rel_32 - -static __inline int -atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) -{ +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_32 +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_32 - return (atomic_cmpset_acq_32((volatile uint32_t *)dst, - (uint32_t)exp, (uint32_t)src)); -} - -static __inline int -atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) -{ - - return (atomic_cmpset_rel_32((volatile uint32_t *)dst, - (uint32_t)exp, (uint32_t)src)); -} - -static __inline void * -atomic_load_acq_ptr(volatile void *p) -{ - - return (void *)atomic_load_acq_32((volatile uint32_t *)p); -} - -static __inline void -atomic_store_rel_ptr(volatile void *p, void *v) -{ - - atomic_store_rel_32((volatile uint32_t *)p, (uint32_t)v); -} - -#define ATOMIC_PTR(NAME) \ -static __inline void \ -atomic_##NAME##_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_32((volatile uint32_t *)p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_acq_32((volatile uint32_t *)p, v); \ -} \ - \ -static __inline void \ -atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \ -{ \ - atomic_##NAME##_rel_32((volatile uint32_t *)p, v); \ -} - -ATOMIC_PTR(set) -ATOMIC_PTR(clear) -ATOMIC_PTR(add) -ATOMIC_PTR(subtract) - -#undef ATOMIC_PTR #endif /* ! _MACHINE_ATOMIC_H_ */ ==== //depot/projects/smpng/sys/sparc64/include/atomic.h#10 (text+ko) ==== @@ -278,7 +278,7 @@ ATOMIC_GEN(long, u_long *, u_long, u_long, 64); ATOMIC_GEN(64, uint64_t *, uint64_t, uint64_t, 64); -ATOMIC_GEN(ptr, void *, void *, uintptr_t, 64); +ATOMIC_GEN(ptr, uintptr_t *, uintptr_t, uintptr_t, 64); #undef ATOMIC_GEN #undef atomic_cas From owner-p4-projects@FreeBSD.ORG Wed Mar 30 20:29:07 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 71DCC16A4D0; Wed, 30 Mar 2005 20:29: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 2B84116A4CF for ; Wed, 30 Mar 2005 20:29:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 66A6543D54 for ; Wed, 30 Mar 2005 20:29:02 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UKT2pf060233 for ; Wed, 30 Mar 2005 20:29:02 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UKT1K7060210 for perforce@freebsd.org; Wed, 30 Mar 2005 20:29:01 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 20:29:01 GMT Message-Id: <200503302029.j2UKT1K7060210@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74119 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, 30 Mar 2005 20:29:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=74119 Change 74119 by sam@sam_ebb on 2005/03/30 20:28:19 IFC @ 74118 Affected files ... .. //depot/projects/wifi/etc/periodic/weekly/330.catman#2 integrate .. //depot/projects/wifi/lib/libdisk/change.c#2 integrate .. //depot/projects/wifi/libexec/rtld-elf/rtld.c#6 integrate .. //depot/projects/wifi/sbin/atacontrol/atacontrol.c#2 integrate .. //depot/projects/wifi/sbin/sunlabel/sunlabel.8#2 integrate .. //depot/projects/wifi/sbin/sunlabel/sunlabel.c#3 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ntoskrnl.c#11 integrate .. //depot/projects/wifi/sys/conf/files#21 integrate .. //depot/projects/wifi/sys/conf/kmod.mk#10 integrate .. //depot/projects/wifi/sys/conf/options#13 integrate .. //depot/projects/wifi/sys/dev/acpi_support/acpi_asus.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-all.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/wifi/sys/dev/ata/ata-card.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-cbus.c#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata-chipset.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/ata-commands.h#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata-disk.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-disk.h#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/wifi/sys/dev/ata/ata-isa.c#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata-lowlevel.c#6 integrate .. //depot/projects/wifi/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/wifi/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/wifi/sys/dev/ata/ata-queue.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-raid.c#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata-raid.h#2 integrate .. //depot/projects/wifi/sys/dev/ata/ata_if.m#1 branch .. //depot/projects/wifi/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-cd.h#2 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-fd.c#2 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-fd.h#2 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-tape.c#3 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-tape.h#2 integrate .. //depot/projects/wifi/sys/dev/ath/ath_rate/amrr/amrr.c#10 integrate .. //depot/projects/wifi/sys/dev/ath/ath_rate/onoe/onoe.c#10 integrate .. //depot/projects/wifi/sys/dev/ath/if_ath.c#79 integrate .. //depot/projects/wifi/sys/dev/ath/if_athioctl.h#8 integrate .. //depot/projects/wifi/sys/dev/ath/if_athrate.h#5 integrate .. //depot/projects/wifi/sys/dev/ath/if_athvar.h#31 integrate .. //depot/projects/wifi/sys/dev/usb/ukbd.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_pc98.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_sunlabel_enc.c#3 integrate .. //depot/projects/wifi/sys/modules/Makefile#16 integrate .. //depot/projects/wifi/sys/modules/ata/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/Makefile.inc#1 branch .. //depot/projects/wifi/sys/modules/ata/ata/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atacam/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atacard/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atacbus/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atadisk/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/ataisa/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atapci/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atapicd/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atapifd/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/atapist/Makefile#1 branch .. //depot/projects/wifi/sys/modules/ata/ataraid/Makefile#1 branch .. //depot/projects/wifi/sys/netinet/ip_carp.c#4 integrate .. //depot/projects/wifi/sys/pc98/conf/GENERIC#6 integrate .. //depot/projects/wifi/sys/sys/ata.h#2 integrate .. //depot/projects/wifi/sys/sys/sun_disklabel.h#3 integrate .. //depot/projects/wifi/sys/vm/vm_object.c#10 integrate .. //depot/projects/wifi/tools/tools/ath/80211watch.c#3 integrate .. //depot/projects/wifi/usr.bin/make/cond.c#9 integrate .. //depot/projects/wifi/usr.bin/make/cond.h#2 integrate .. //depot/projects/wifi/usr.bin/make/globals.h#3 integrate .. //depot/projects/wifi/usr.bin/make/parse.c#12 integrate .. //depot/projects/wifi/usr.bin/make/parse.h#2 integrate .. //depot/projects/wifi/usr.bin/make/var.c#12 integrate .. //depot/projects/wifi/usr.sbin/sysinstall/disks.c#2 integrate Differences ... ==== //depot/projects/wifi/etc/periodic/weekly/330.catman#2 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh - # -# $FreeBSD: src/etc/periodic/weekly/330.catman,v 1.9 2002/03/05 19:13:05 cjc Exp $ +# $FreeBSD: src/etc/periodic/weekly/330.catman,v 1.10 2005/03/30 18:02:49 ru Exp $ # # If there is a global system configuration file, suck it in. @@ -34,7 +34,7 @@ rc=0 # Preformat original, non-localized manpages - echo /usr/libexec/catman.local "$MANPATH" | + echo /usr/libexec/catman.local -r "$MANPATH" | su -fm man || rc=3 # Preformat localized manpages. @@ -42,7 +42,7 @@ then for i in $man_locales do - echo /usr/libexec/catman.local -L \ + echo /usr/libexec/catman.local -Lr \ "$MANPATH" | LC_ALL=$i su -fm man || rc=3 done fi ==== //depot/projects/wifi/lib/libdisk/change.c#2 (text+ko) ==== @@ -8,7 +8,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libdisk/change.c,v 1.25 2004/01/27 15:25:33 nyan Exp $"); +__FBSDID("$FreeBSD: src/lib/libdisk/change.c,v 1.26 2005/03/30 13:03:33 nyan Exp $"); #include #include @@ -40,7 +40,11 @@ if (disk->bios_cyl > 1024) #endif sane = 0; +#ifdef PC98 + if (disk->bios_hd >= 256) +#else if (disk->bios_hd > 16) +#endif sane = 0; #ifdef PC98 if (disk->bios_sect >= 256) @@ -68,8 +72,8 @@ return; /* Hmm, try harder... */ + /* Assume standard SCSI parameter */ #ifdef PC98 - /* Assume standard SCSI parameter */ disk->bios_sect = 128; disk->bios_hd = 8; #else @@ -77,6 +81,25 @@ #endif disk->bios_cyl = disk->chunks->size / (disk->bios_sect * disk->bios_hd); + +#ifdef PC98 + if (disk->bios_cyl < 65536) + return; + + /* Assume UIDE-133/98-A Challenger BIOS 0.9821C parameter */ + disk->bios_sect = 255; + disk->bios_hd = 16; + disk->bios_cyl = disk->chunks->size / + (disk->bios_sect * disk->bios_hd); + + if (disk->bios_cyl < 65536) + return; + + /* BIG-na-Drive? */ + disk->bios_hd = 255; + disk->bios_cyl = disk->chunks->size / + (disk->bios_sect * disk->bios_hd); +#endif } void ==== //depot/projects/wifi/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.105 2005/03/24 10:12:29 cperciva Exp $ + * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.106 2005/03/30 08:28:26 dfr Exp $ */ /* @@ -2560,7 +2560,7 @@ size = tls_static_space; tls = malloc(size); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); + dtv = calloc(1, (tls_max_index + 2) * sizeof(Elf_Addr)); *(Elf_Addr**) tls = dtv; @@ -2601,8 +2601,6 @@ memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); dtv[obj->tlsindex + 1] = addr; - } else if (obj->tlsindex) { - dtv[obj->tlsindex + 1] = 0; } } } @@ -2629,7 +2627,7 @@ tlsstart = (Elf_Addr) tls; tlsend = tlsstart + size; for (i = 0; i < dtvsize; i++) { - if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { + if (dtv[i+2] && (dtv[i+2] < tlsstart || dtv[i+2] > tlsend)) { free((void*) dtv[i+2]); } } @@ -2659,7 +2657,7 @@ assert(tcbsize >= 2*sizeof(Elf_Addr)); tls = malloc(size + tcbsize); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); + dtv = calloc(1, (tls_max_index + 2) * sizeof(Elf_Addr)); segbase = (Elf_Addr)(tls + size); ((Elf_Addr*)segbase)[0] = segbase; @@ -2703,8 +2701,6 @@ if (obj->tlsinit) memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); dtv[obj->tlsindex + 1] = addr; - } else if (obj->tlsindex) { - dtv[obj->tlsindex + 1] = 0; } } } @@ -2731,7 +2727,7 @@ tlsend = (Elf_Addr) tls; tlsstart = tlsend - size; for (i = 0; i < dtvsize; i++) { - if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { + if (dtv[i+2] && (dtv[i+2] < tlsstart || dtv[i+2] > tlsend)) { free((void*) dtv[i+2]); } } ==== //depot/projects/wifi/sbin/atacontrol/atacontrol.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2000 - 2004 Søren Schmidt + * Copyright (c) 2000 - 2005 Søren Schmidt * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -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/sbin/atacontrol/atacontrol.c,v 1.32 2004/09/15 11:22:05 sos Exp $ + * $FreeBSD: src/sbin/atacontrol/atacontrol.c,v 1.33 2005/03/30 12:03:40 sos Exp $ */ #include @@ -373,17 +373,21 @@ iocmd.cmd = ATARAIDCREATE; if (argc > 2) { - if (!strcmp(argv[2], "RAID0") || - !strcmp(argv[2], "stripe")) - iocmd.u.raid_setup.type = 1; - if (!strcmp(argv[2], "RAID1") || - !strcmp(argv[2],"mirror")) - iocmd.u.raid_setup.type = 2; - if (!strcmp(argv[2], "RAID0+1")) - iocmd.u.raid_setup.type = 3; - if (!strcmp(argv[2], "SPAN") || - !strcmp(argv[2], "JBOD")) - iocmd.u.raid_setup.type = 4; + if (!strcasecmp(argv[2], "RAID0") || + !strcasecmp(argv[2], "stripe")) + iocmd.u.raid_setup.type = AR_RAID0; + if (!strcasecmp(argv[2], "RAID1") || + !strcasecmp(argv[2],"mirror")) + iocmd.u.raid_setup.type = AR_RAID1; + if (!strcasecmp(argv[2], "RAID0+1") || + !strcasecmp(argv[2],"RAID10")) + iocmd.u.raid_setup.type = AR_RAID01; + if (!strcasecmp(argv[2], "RAID5")) + iocmd.u.raid_setup.type = AR_RAID5; + if (!strcasecmp(argv[2], "SPAN")) + iocmd.u.raid_setup.type = AR_SPAN; + if (!strcasecmp(argv[2], "JBOD")) + iocmd.u.raid_setup.type = AR_JBOD; } if (!iocmd.u.raid_setup.type) { fprintf(stderr, "atacontrol: Invalid RAID type\n"); @@ -393,7 +397,9 @@ exit(EX_USAGE); } - if (iocmd.u.raid_setup.type & 1) { + if (iocmd.u.raid_setup.type == AR_RAID0 || + iocmd.u.raid_setup.type == AR_RAID01 || + iocmd.u.raid_setup.type == AR_RAID5) { if (argc < 4 || !sscanf(argv[3], "%d", &iocmd.u.raid_setup.interleave) == 1) { @@ -451,6 +457,14 @@ iocmd.cmd = ATARAIDREBUILD; if (ioctl(fd, IOCATA, &iocmd) < 0) warn("ioctl(ATARAIDREBUILD)"); + else { + char buffer[128]; + sprintf(buffer, "/usr/bin/nice -n 20 /bin/dd " + "if=/dev/ar%d of=/dev/null bs=1m &", + iocmd.channel); + if (system(buffer)) + warn("background dd"); + } } else if (!strcmp(argv[1], "status") && argc == 3) { int i; @@ -467,10 +481,16 @@ case AR_RAID1: printf("RAID1"); break; - case AR_RAID0 | AR_RAID1: + case AR_RAID01: printf("RAID0+1 stripesize=%d", iocmd.u.raid_status.interleave); break; + case AR_RAID5: + printf("RAID5 stripesize=%d", + iocmd.u.raid_status.interleave); + break; + case AR_JBOD: + printf("JBOD"); case AR_SPAN: printf("SPAN"); break; ==== //depot/projects/wifi/sbin/sunlabel/sunlabel.8#2 (text+ko) ==== @@ -1,6 +1,6 @@ .\" Copyright (c) 2004 .\" David E. O'Brien. All rights reserved. -.\" Copyright (c) 2004 +.\" Copyright (c) 2004, 2005 .\" Joerg Wunsch. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,9 +24,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sbin/sunlabel/sunlabel.8,v 1.4 2004/06/02 20:21:28 joerg Exp $ +.\" $FreeBSD: src/sbin/sunlabel/sunlabel.8,v 1.6 2005/03/30 18:54:41 joerg Exp $ .\" -.Dd June 1, 2004 +.Dd March 30, 2005 .Dt SUNLABEL 8 .Os .Sh NAME @@ -238,7 +238,7 @@ The label presented for editing is the same as the standard printout, with some added hints about the possible options to specify the sector size and starting cylinder. -There are two areas in the template that can be edited: +The following areas in the template can be edited: .Bl -tag -width indent .It Sy Textual label, geometry emulation The line @@ -266,6 +266,15 @@ .D1 Em (CC + 2) * HH * SS must be less than or equal to the total number of sectors of the disk (which is given as a hint in a comment field). +.It Sy Volume name +The volume name (if present) is introduced by the string +.Dq "volume name:" . +It can be up to 8 characters long, and might be useful to distinguish +different disks in a system. +Note that volume names require the VTOC elements to be present, so +any of the VTOC constraints described below need to be obeyed as well +if a volume name is to be set. +Setting an empty volume name will delete it from the label. .It Sy Partition entries Partition entries start with a letter from .Ql a ==== //depot/projects/wifi/sbin/sunlabel/sunlabel.c#3 (text+ko) ==== @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003 Jake Burkholder. - * Copyright (c) 2004 Joerg Wunsch. + * Copyright (c) 2004,2005 Joerg Wunsch. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -67,7 +67,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/sunlabel/sunlabel.c,v 1.12 2005/02/15 22:31:05 obrien Exp $"); +__FBSDID("$FreeBSD: src/sbin/sunlabel/sunlabel.c,v 1.13 2005/03/30 09:33:09 joerg Exp $"); #include #include @@ -541,6 +541,7 @@ char tag[32]; char buf[128]; char text[128]; + char volname[SUN_VOLNAME_LEN + 1]; struct sun_disklabel sl1; char *bp; const char *what; @@ -631,6 +632,33 @@ text, cyl, alt, hd, sec); continue; } + if (strncmp(bp, "volume name:", strlen("volume name:")) == 0) { + wantvtoc = 1; /* Volume name requires VTOC. */ + bp += strlen("volume name:"); +#if SUN_VOLNAME_LEN != 8 +# error "scanf field width does not match SUN_VOLNAME_LEN" +#endif + /* + * We set the field length to one more than + * SUN_VOLNAME_LEN to allow detecting an + * overflow. + */ + memset(volname, 0, sizeof volname); + rv = sscanf(bp, " %9[^\n]", volname); + if (rv != 1) { + /* Clear the volume name. */ + memset(sl1.sl_vtoc_volname, 0, + SUN_VOLNAME_LEN); + } else { + memcpy(sl1.sl_vtoc_volname, volname, + SUN_VOLNAME_LEN); + if (volname[SUN_VOLNAME_LEN] != '\0') + warnx( +"%s, line %d: volume name longer than %d characters, truncating", + file, line + 1, SUN_VOLNAME_LEN); + } + continue; + } if (strlen(bp) < 2 || bp[1] != ':') { line++; continue; @@ -742,9 +770,11 @@ static void print_label(struct sun_disklabel *sl, const char *disk, FILE *out) { - int i; + int i, j; int havevtoc; uintmax_t secpercyl; + /* Long enough to hex-encode each character. */ + char volname[4 * SUN_VOLNAME_LEN + 1]; havevtoc = sl->sl_vtoc_sane == SUN_VTOC_SANE; secpercyl = sl->sl_nsectors * sl->sl_ntracks; @@ -763,11 +793,25 @@ "# max sectors/unit (including alt cylinders): %ju\n", (uintmax_t)mediasize / sectorsize); fprintf(out, -"sectors/unit: %ju\n" +"sectors/unit: %ju\n", + secpercyl * sl->sl_ncylinders); + if (havevtoc && sl->sl_vtoc_volname[0] != '\0') { + for (i = j = 0; i < SUN_VOLNAME_LEN; i++) { + if (sl->sl_vtoc_volname[i] == '\0') + break; + if (isprint(sl->sl_vtoc_volname[i])) + volname[j++] = sl->sl_vtoc_volname[i]; + else + j += sprintf(volname + j, "\\x%02X", + sl->sl_vtoc_volname[i]); + } + volname[j] = '\0'; + fprintf(out, "volume name: %s\n", volname); + } + fprintf(out, "\n" "%d partitions:\n" "#\n", - secpercyl * sl->sl_ncylinders, SUN_NPART); if (!hflag) { fprintf(out, "# Size is in %s.", cflag? "cylinders": "sectors"); ==== //depot/projects/wifi/sys/compat/ndis/subr_ntoskrnl.c#11 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.62 2005/03/28 20:46:08 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.63 2005/03/30 16:22:48 wpaul Exp $"); #include #include @@ -2575,11 +2575,11 @@ uint64_t curtime; uint8_t pending; - mtx_lock(&ntoskrnl_dispatchlock); - if (timer == NULL) return(FALSE); + mtx_lock(&ntoskrnl_dispatchlock); + if (timer->k_header.dh_inserted == TRUE) { untimeout(ntoskrnl_timercall, timer, timer->k_handle); timer->k_header.dh_inserted = FALSE; ==== //depot/projects/wifi/sys/conf/files#21 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1010 2005/03/22 14:52:37 sobomax Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1011 2005/03/30 12:03:37 sos Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -387,6 +387,7 @@ dev/an/if_an_pccard.c optional an pccard dev/an/if_an_pci.c optional an pci dev/asr/asr.c optional asr pci +dev/ata/ata_if.m optional ata dev/ata/ata-all.c optional ata dev/ata/ata-card.c optional ata pccard dev/ata/ata-cbus.c optional ata pc98 ==== //depot/projects/wifi/sys/conf/kmod.mk#10 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/sys/conf/kmod.mk,v 1.185 2005/02/11 21:04:20 ru Exp $ +# $FreeBSD: src/sys/conf/kmod.mk,v 1.186 2005/03/30 12:03:37 sos Exp $ # # The include file handles building and installing loadable # kernel modules. @@ -298,8 +298,9 @@ .endfor .endif -MFILES?= dev/acpica/acpi_if.m dev/eisa/eisa_if.m dev/iicbus/iicbb_if.m \ - dev/iicbus/iicbus_if.m dev/mii/miibus_if.m dev/ofw/ofw_bus_if.m \ +MFILES?= dev/acpica/acpi_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \ + dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \ + dev/mii/miibus_if.m dev/ofw/ofw_bus_if.m \ dev/pccard/card_if.m dev/pccard/power_if.m dev/pci/pci_if.m \ dev/pci/pcib_if.m dev/ppbus/ppbus_if.m dev/smbus/smbus_if.m \ dev/sound/pcm/ac97_if.m dev/sound/pcm/channel_if.m \ ==== //depot/projects/wifi/sys/conf/options#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.496 2005/03/14 16:04:26 des Exp $ +# $FreeBSD: src/sys/conf/options,v 1.497 2005/03/30 12:03:37 sos Exp $ # # On the handling of kernel options # @@ -303,12 +303,6 @@ # Options used in the 'ata' ATA/ATAPI driver ATA_STATIC_ID opt_ata.h ATA_NOPCI opt_ata.h -DEV_ATADISK opt_ata.h -DEV_ATAPICD opt_ata.h -DEV_ATAPIST opt_ata.h -DEV_ATAPIFD opt_ata.h -DEV_ATAPICAM opt_ata.h -DEV_ATARAID opt_ata.h # Net stuff. ACCEPT_FILTER_DATA ==== //depot/projects/wifi/sys/dev/acpi_support/acpi_asus.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.21 2005/03/24 21:07:55 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.22 2005/03/30 15:06:11 philip Exp $"); /* * Driver for extra ACPI-controlled gadgets (hotkeys, leds, etc) found on @@ -79,8 +79,10 @@ }; struct acpi_asus_led { + struct acpi_asus_softc *sc; struct cdev *cdev; - device_t dev; + int busy; + int state; enum { ACPI_ASUS_LED_MLED, ACPI_ASUS_LED_TLED, @@ -255,6 +257,7 @@ static int acpi_asus_detach(device_t dev); static void acpi_asus_led(struct acpi_asus_led *led, int state); +static void acpi_asus_led_task(struct acpi_asus_led *led, int pending __unused); static int acpi_asus_sysctl(SYSCTL_HANDLER_ARGS); static int acpi_asus_sysctl_init(struct acpi_asus_softc *sc, int method); @@ -401,21 +404,24 @@ /* Attach leds */ if (sc->model->mled_set) { - sc->s_mled.dev = dev; + sc->s_mled.busy = 0; + sc->s_mled.sc = sc; sc->s_mled.type = ACPI_ASUS_LED_MLED; sc->s_mled.cdev = led_create((led_t *)acpi_asus_led, &sc->s_mled, "mled"); } if (sc->model->tled_set) { - sc->s_tled.dev = dev; + sc->s_tled.busy = 0; + sc->s_tled.sc = sc; sc->s_tled.type = ACPI_ASUS_LED_TLED; sc->s_tled.cdev = led_create((led_t *)acpi_asus_led, &sc->s_tled, "tled"); } if (sc->model->wled_set) { - sc->s_wled.dev = dev; + sc->s_wled.busy = 0; + sc->s_wled.sc = sc; sc->s_wled.type = ACPI_ASUS_LED_WLED; sc->s_wled.cdev = led_create((led_t *)acpi_asus_led, &sc->s_wled, "wled"); @@ -461,27 +467,30 @@ } static void -acpi_asus_led(struct acpi_asus_led *led, int state) +acpi_asus_led_task(struct acpi_asus_led *led, int pending __unused) { struct acpi_asus_softc *sc; char *method; - + int state; + ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); - sc = device_get_softc(led->dev); + sc = led->sc; switch (led->type) { case ACPI_ASUS_LED_MLED: method = sc->model->mled_set; /* Note: inverted */ - state = !state; + state = !led->state; break; case ACPI_ASUS_LED_TLED: method = sc->model->tled_set; + state = led->state; break; case ACPI_ASUS_LED_WLED: method = sc->model->wled_set; + state = led->state; break; default: printf("acpi_asus_led: invalid LED type %d\n", @@ -490,6 +499,23 @@ } acpi_SetInteger(sc->handle, method, state); + led->busy = 0; +} + +static void +acpi_asus_led(struct acpi_asus_led *led, int state) +{ + + ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); + + if (led->busy) + return; + + led->busy = 1; + led->state = state; + + AcpiOsQueueForExecution(OSD_PRIORITY_LO, + (void *)acpi_asus_led_task, led); } static int ==== //depot/projects/wifi/sys/dev/ata/ata-all.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 1998 - 2004 Søren Schmidt + * Copyright (c) 1998 - 2005 Søren Schmidt * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,13 +27,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.235 2005/02/07 17:14:42 mdodd Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.236 2005/03/30 12:03:37 sos Exp $"); #include "opt_ata.h" #include #include #include #include +#include #include #include #include @@ -51,33 +52,27 @@ #ifdef __alpha__ #include #endif -#include #include -#include -#include +#include +#include -/* device structures */ -static d_ioctl_t ata_ioctl; +/* device structure */ +static d_ioctl_t ata_ioctl; static struct cdevsw ata_cdevsw = { - .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, - .d_ioctl = ata_ioctl, - .d_name = "ata", + .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, /* we need this as newbus isn't safe */ + .d_ioctl = ata_ioctl, + .d_name = "ata", }; /* prototypes */ -static void ata_shutdown(void *, int); static void ata_interrupt(void *); -static int ata_getparam(struct ata_device *, u_int8_t); -static void ata_identify_devices(struct ata_channel *); static void ata_boot_attach(void); -static void bswap(int8_t *, int); -static void btrim(int8_t *, int); -static void bpack(int8_t *, int8_t *, int); -static void ata_init(void); +device_t ata_add_child(driver_t *driver, device_t parent, struct ata_device *atadev, const char *name, int unit); /* global vars */ MALLOC_DEFINE(M_ATA, "ATA generic", "ATA driver generic layer"); +int (*ata_ioctl_func)(struct ata_cmd *iocmd) = NULL; devclass_t ata_devclass; uma_zone_t ata_zone; int ata_wc = 1; @@ -86,19 +81,18 @@ static struct intr_config_hook *ata_delayed_attach = NULL; static int ata_dma = 1; static int atapi_dma = 1; -static int ata_resuming = 0; /* sysctl vars */ SYSCTL_NODE(_hw, OID_AUTO, ata, CTLFLAG_RD, 0, "ATA driver parameters"); TUNABLE_INT("hw.ata.ata_dma", &ata_dma); SYSCTL_INT(_hw_ata, OID_AUTO, ata_dma, CTLFLAG_RDTUN, &ata_dma, 0, "ATA disk DMA mode control"); +TUNABLE_INT("hw.ata.atapi_dma", &atapi_dma); +SYSCTL_INT(_hw_ata, OID_AUTO, atapi_dma, CTLFLAG_RDTUN, &atapi_dma, 0, + "ATAPI device DMA mode control"); TUNABLE_INT("hw.ata.wc", &ata_wc); SYSCTL_INT(_hw_ata, OID_AUTO, wc, CTLFLAG_RDTUN, &ata_wc, 0, "ATA disk write caching"); -TUNABLE_INT("hw.ata.atapi_dma", &atapi_dma); -SYSCTL_INT(_hw_ata, OID_AUTO, atapi_dma, CTLFLAG_RDTUN, &atapi_dma, 0, - "ATAPI device DMA mode control"); /* * newbus device interface related functions @@ -106,231 +100,147 @@ int ata_probe(device_t dev) { - struct ata_channel *ch; - - if (!dev || !(ch = device_get_softc(dev))) - return ENXIO; - - if (ch->r_irq) - return EEXIST; - return 0; } int ata_attach(device_t dev) { - struct ata_channel *ch; + struct ata_channel *ch = device_get_softc(dev); int error, rid; - if (!dev || !(ch = device_get_softc(dev))) - return ENXIO; + /* check that we have a virgin channel to attach */ + if (ch->r_irq) + return EEXIST; /* initialize the softc basics */ - ch->device[MASTER].channel = ch; - ch->device[MASTER].unit = ATA_MASTER; - ch->device[MASTER].mode = ATA_PIO; - ch->device[SLAVE].channel = ch; - ch->device[SLAVE].unit = ATA_SLAVE; - ch->device[SLAVE].mode = ATA_PIO; ch->dev = dev; ch->state = ATA_IDLE; bzero(&ch->state_mtx, sizeof(struct mtx)); mtx_init(&ch->state_mtx, "ATA state lock", NULL, MTX_DEF); + bzero(&ch->queue_mtx, sizeof(struct mtx)); + mtx_init(&ch->queue_mtx, "ATA queue lock", NULL, MTX_DEF); + TAILQ_INIT(&ch->ata_queue); /* initialise device(s) on this channel */ - while (ch->locking(ch, ATA_LF_LOCK) != ch->unit) + while (ATA_LOCKING(device_get_parent(dev), dev, ATA_LF_LOCK) != ch->unit) tsleep(&error, PRIBIO, "ataatch", 1); ch->hw.reset(ch); - ch->locking(ch, ATA_LF_UNLOCK); + ATA_LOCKING(device_get_parent(dev), dev, ATA_LF_UNLOCK); + /* setup interrupt delivery */ rid = ATA_IRQ_RID; ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE | RF_ACTIVE); if (!ch->r_irq) { - ata_printf(ch, -1, "unable to allocate interrupt\n"); + device_printf(dev, "unable to allocate interrupt\n"); return ENXIO; } if ((error = bus_setup_intr(dev, ch->r_irq, ATA_INTR_FLAGS, ata_interrupt, ch, &ch->ih))) { - ata_printf(ch, -1, "unable to setup interrupt\n"); + device_printf(dev, "unable to setup interrupt\n"); return error; } - /* initialize queue and associated lock */ - bzero(&ch->queue_mtx, sizeof(struct mtx)); - mtx_init(&ch->queue_mtx, "ATA queue lock", NULL, MTX_DEF); - TAILQ_INIT(&ch->ata_queue); - /* do not attach devices if we are in early boot */ if (ata_delayed_attach) return 0; - ata_identify_devices(ch); - - if (ch->device[MASTER].attach) - ch->device[MASTER].attach(&ch->device[MASTER]); - if (ch->device[SLAVE].attach) - ch->device[SLAVE].attach(&ch->device[SLAVE]); -#ifdef DEV_ATAPICAM - atapi_cam_attach_bus(ch); -#endif + /* probe and attach devices on this channel */ + bus_generic_probe(dev); + bus_generic_attach(dev); return 0; } int ata_detach(device_t dev) { - struct ata_channel *ch; + struct ata_channel *ch = device_get_softc(dev); + device_t *children; + int nchildren, i; - if (!dev || !(ch = device_get_softc(dev)) || !ch->r_irq) + /* check that we have a vaild channel to detach */ + if (!ch->r_irq) return ENXIO; - /* mark devices on this channel as detaching */ - ch->device[MASTER].flags |= ATA_D_DETACHING; - ch->device[SLAVE].flags |= ATA_D_DETACHING; + /* detach & delete all children */ + if (!device_get_children(dev, &children, &nchildren)) { + for (i = 0; i < nchildren; i++) + if (children[i]) + device_delete_child(dev, children[i]); + free(children, M_TEMP); + } - /* fail outstanding requests on this channel */ + /* fail outstanding requests on this channel (SOS shouldn't be any XXX ) */ ata_fail_requests(ch, NULL); - /* unlock the channel */ - mtx_lock(&ch->state_mtx); - ch->state = ATA_IDLE; - mtx_unlock(&ch->state_mtx); - ch->locking(ch, ATA_LF_UNLOCK); - - /* detach devices on this channel */ - if (ch->device[MASTER].detach) - ch->device[MASTER].detach(&ch->device[MASTER]); - if (ch->device[SLAVE].detach) - ch->device[SLAVE].detach(&ch->device[SLAVE]); -#ifdef DEV_ATAPICAM - atapi_cam_detach_bus(ch); -#endif - - /* flush cache and powerdown device */ - if (ch->device[MASTER].param) { - if (ch->device[MASTER].param->support.command2 & ATA_SUPPORT_FLUSHCACHE) - ata_controlcmd(&ch->device[MASTER], ATA_FLUSHCACHE, 0, 0, 0); - ata_controlcmd(&ch->device[MASTER], ATA_SLEEP, 0, 0, 0); - free(ch->device[MASTER].param, M_ATA); - ch->device[MASTER].param = NULL; - } - if (ch->device[SLAVE].param) { - if (ch->device[SLAVE].param->support.command2 & ATA_SUPPORT_FLUSHCACHE) - ata_controlcmd(&ch->device[SLAVE], ATA_FLUSHCACHE, 0, 0, 0); - ata_controlcmd(&ch->device[SLAVE], ATA_SLEEP, 0, 0, 0); - free(ch->device[SLAVE].param, M_ATA); - ch->device[SLAVE].param = NULL; - } - ch->device[MASTER].mode = ATA_PIO; - ch->device[SLAVE].mode = ATA_PIO; - ch->devices = 0; - + /* release resources */ bus_teardown_intr(dev, ch->r_irq, ch->ih); bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); ch->r_irq = NULL; + mtx_destroy(&ch->state_mtx); mtx_destroy(&ch->queue_mtx); return 0; } int -ata_reinit(struct ata_channel *ch) +ata_reinit(device_t dev) { - int devices, misdev, newdev; + struct ata_channel *ch = device_get_softc(dev); + device_t *children; + int nchildren, i; - if (!ch->r_irq) + if (!ch || !ch->r_irq) return ENXIO; if (bootverbose) - ata_printf(ch, -1, "reiniting channel ..\n"); + device_printf(dev, "reiniting channel ..\n"); - /* poll for locking of this channel */ - while (ch->locking(ch, ATA_LF_LOCK) != ch->unit) - tsleep(&devices, PRIBIO, "atarint", 1); + /* poll for locking the channel */ + while (ATA_LOCKING(device_get_parent(dev), dev, ATA_LF_LOCK) != ch->unit) + tsleep(&dev, PRIBIO, "atarini", 1); - ata_catch_inflight(ch); - - /* grap the channel lock no matter what */ + /* grap the channel lock */ mtx_lock(&ch->state_mtx); - ch->state = ATA_ACTIVE; + ch->state = ATA_STALL_QUEUE; mtx_unlock(&ch->state_mtx); - if (ch->flags & ATA_IMMEDIATE_MODE) - return EIO; - else - ch->flags |= ATA_IMMEDIATE_MODE; - - devices = ch->devices; - + /* reset the channel and devices */ ch->hw.reset(ch); - if (bootverbose) - ata_printf(ch, -1, "resetting done ..\n"); - - /* detach what left the channel during reset */ - if ((misdev = devices & ~ch->devices)) { - if ((misdev & (ATA_ATA_MASTER | ATA_ATAPI_MASTER)) && - ch->device[MASTER].detach) { - ata_fail_requests(ch, &ch->device[MASTER]); - ch->device[MASTER].detach(&ch->device[MASTER]); - free(ch->device[MASTER].param, M_ATA); - ch->device[MASTER].param = NULL; + /* reinit the children and delete any that fails */ + if (!device_get_children(dev, &children, &nchildren)) { + mtx_lock(&Giant); /* newbus suckage it needs Giant */ + for (i = 0; i < nchildren; i++) { + if (children[i] && device_is_attached(children[i])) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Mar 30 20:34:10 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 02DC216A4D0; Wed, 30 Mar 2005 20:34:10 +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 B5E1816A4CE for ; Wed, 30 Mar 2005 20:34:09 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8914E43D1D for ; Wed, 30 Mar 2005 20:34:09 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UKY9YU060503 for ; Wed, 30 Mar 2005 20:34:09 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UKY9Ju060500 for perforce@freebsd.org; Wed, 30 Mar 2005 20:34:09 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 20:34:09 GMT Message-Id: <200503302034.j2UKY9Ju060500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74121 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, 30 Mar 2005 20:34:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=74121 Change 74121 by jhb@jhb_slimer on 2005/03/30 20:34:04 Remove duplicate acq/rel for longs. Affected files ... .. //depot/projects/smpng/sys/i386/include/atomic.h#28 edit Differences ... ==== //depot/projects/smpng/sys/i386/include/atomic.h#28 (text+ko) ==== @@ -294,11 +294,6 @@ ATOMIC_ACQ(add, int); ATOMIC_ACQ(subtract, int); -ATOMIC_ACQ(set, long); -ATOMIC_ACQ(clear, long); -ATOMIC_ACQ(add, long); -ATOMIC_ACQ(subtract, long); - static __inline int atomic_cmpset_acq_int(volatile u_int *dst, u_int exp, u_int src) { From owner-p4-projects@FreeBSD.ORG Wed Mar 30 20:35:12 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8DCE16A4D0; Wed, 30 Mar 2005 20:35: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 9397716A4CE for ; Wed, 30 Mar 2005 20:35:11 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5ED3343D45 for ; Wed, 30 Mar 2005 20:35:11 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UKZB8G060574 for ; Wed, 30 Mar 2005 20:35:11 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UKZACx060570 for perforce@freebsd.org; Wed, 30 Mar 2005 20:35:10 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 20:35:10 GMT Message-Id: <200503302035.j2UKZACx060570@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74122 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, 30 Mar 2005 20:35:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=74122 Change 74122 by jhb@jhb_slimer on 2005/03/30 20:34:35 Fix UP mutex code to work with uintptr_t for atomic_ptr(). Affected files ... .. //depot/projects/smpng/sys/kern/kern_mutex.c#94 edit .. //depot/projects/smpng/sys/sys/mutex.h#51 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_mutex.c#94 (text+ko) ==== @@ -417,7 +417,7 @@ atomic_set_ptr(&m->mtx_lock, MTX_RECURSED); rval = 1; } else - rval = _obtain_lock(m, curthread); + rval = _obtain_lock(m, (uintptr_t)curthread); LOCK_LOG_TRY("LOCK", &m->mtx_object, opts, rval, file, line); if (rval) @@ -434,7 +434,7 @@ * sleep waiting for it), or if we need to recurse on it. */ void -_mtx_lock_sleep(struct mtx *m, struct thread *td, int opts, const char *file, +_mtx_lock_sleep(struct mtx *m, uintptr_t tid, int opts, const char *file, int line) { #if defined(SMP) && !defined(NO_ADAPTIVE_MUTEXES) @@ -467,7 +467,7 @@ #ifdef MUTEX_PROFILING contested = 0; #endif - while (!_obtain_lock(m, td)) { + while (!_obtain_lock(m, tid)) { #ifdef MUTEX_PROFILING contested = 1; atomic_add_int(&m->mtx_contest_holding, 1); @@ -495,7 +495,7 @@ * necessary. */ if (v == MTX_CONTESTED) { - m->mtx_lock = (uintptr_t)td | MTX_CONTESTED; + m->mtx_lock = tid | MTX_CONTESTED; turnstile_claim(&m->mtx_object); break; } @@ -507,8 +507,7 @@ * or the state of the MTX_RECURSED bit changed. */ if ((v & MTX_CONTESTED) == 0 && - !atomic_cmpset_ptr(&m->mtx_lock, (void *)v, - (void *)(v | MTX_CONTESTED))) { + !atomic_cmpset_ptr(&m->mtx_lock, v, v | MTX_CONTESTED)) { turnstile_release(&m->mtx_object); cpu_spinwait(); continue; @@ -542,7 +541,7 @@ if (!cont_logged) { CTR6(KTR_CONTENTION, "contention: %p at %s:%d wants %s, taken by %s:%d", - td, file, line, m->mtx_object.lo_name, + (void *)tid, file, line, m->mtx_object.lo_name, WITNESS_FILE(&m->mtx_object), WITNESS_LINE(&m->mtx_object)); cont_logged = 1; @@ -559,7 +558,7 @@ if (cont_logged) { CTR4(KTR_CONTENTION, "contention end: %s acquired by %p at %s:%d", - m->mtx_object.lo_name, td, file, line); + m->mtx_object.lo_name, (void *)tid, file, line); } #endif #ifdef MUTEX_PROFILING @@ -578,7 +577,7 @@ * is handled inline. */ void -_mtx_lock_spin(struct mtx *m, struct thread *td, int opts, const char *file, +_mtx_lock_spin(struct mtx *m, uintptr_t tid, int opts, const char *file, int line) { int i = 0; @@ -590,7 +589,7 @@ CTR1(KTR_LOCK, "_mtx_lock_spin: %p spinning", m); for (;;) { - if (_obtain_lock(m, td)) + if (_obtain_lock(m, tid)) break; /* Give interrupts a chance while we spin. */ ==== //depot/projects/smpng/sys/sys/mutex.h#51 (text+ko) ==== @@ -100,11 +100,11 @@ void mtx_destroy(struct mtx *m); void mtx_sysinit(void *arg); void mutex_init(void); -void _mtx_lock_sleep(struct mtx *m, struct thread *td, int opts, +void _mtx_lock_sleep(struct mtx *m, uintptr_t tid, int opts, const char *file, int line); void _mtx_unlock_sleep(struct mtx *m, int opts, const char *file, int line); #ifdef SMP -void _mtx_lock_spin(struct mtx *m, struct thread *td, int opts, +void _mtx_lock_spin(struct mtx *m, uintptr_t tid, int opts, const char *file, int line); #endif void _mtx_unlock_spin(struct mtx *m, int opts, const char *file, int line); @@ -127,19 +127,19 @@ /* Try to obtain mtx_lock once. */ #ifndef _obtain_lock #define _obtain_lock(mp, tid) \ - atomic_cmpset_acq_ptr(&(mp)->mtx_lock, (void *)MTX_UNOWNED, (tid)) + atomic_cmpset_acq_ptr(&(mp)->mtx_lock, MTX_UNOWNED, (tid)) #endif /* Try to release mtx_lock if it is unrecursed and uncontested. */ #ifndef _release_lock #define _release_lock(mp, tid) \ - atomic_cmpset_rel_ptr(&(mp)->mtx_lock, (tid), (void *)MTX_UNOWNED) + atomic_cmpset_rel_ptr(&(mp)->mtx_lock, (tid), MTX_UNOWNED) #endif /* Release mtx_lock quickly, assuming we own it. */ #ifndef _release_lock_quick #define _release_lock_quick(mp) \ - atomic_store_rel_ptr(&(mp)->mtx_lock, (void *)MTX_UNOWNED) + atomic_store_rel_ptr(&(mp)->mtx_lock, MTX_UNOWNED) #endif /* @@ -148,7 +148,7 @@ */ #ifndef _get_sleep_lock #define _get_sleep_lock(mp, tid, opts, file, line) do { \ - struct thread *_tid = (tid); \ + uintptr_t _tid = (uintptr_t)(tid); \ \ if (!_obtain_lock((mp), _tid)) \ _mtx_lock_sleep((mp), _tid, (opts), (file), (line)); \ @@ -165,11 +165,11 @@ #ifndef _get_spin_lock #ifdef SMP #define _get_spin_lock(mp, tid, opts, file, line) do { \ - struct thread *_tid = (tid); \ + uintptr_t _tid = (uintptr_t)(tid); \ \ critical_enter(); \ if (!_obtain_lock((mp), _tid)) { \ - if ((mp)->mtx_lock == (uintptr_t)_tid) \ + if ((mp)->mtx_lock == _tid) \ (mp)->mtx_recurse++; \ else \ _mtx_lock_spin((mp), _tid, (opts), (file), (line)); \ @@ -177,14 +177,14 @@ } while (0) #else /* SMP */ #define _get_spin_lock(mp, tid, opts, file, line) do { \ - struct thread *_tid = (tid); \ + uintptr_t _tid = (uintptr_t)(tid); \ \ critical_enter(); \ - if ((mp)->mtx_lock == (uintptr_t)_tid) \ + if ((mp)->mtx_lock == _tid) \ (mp)->mtx_recurse++; \ else { \ KASSERT((mp)->mtx_lock == MTX_UNOWNED, ("corrupt spinlock")); \ - (mp)->mtx_lock = (uintptr_t)_tid; \ + (mp)->mtx_lock = _tid; \ } \ } while (0) #endif /* SMP */ @@ -196,7 +196,9 @@ */ #ifndef _rel_sleep_lock #define _rel_sleep_lock(mp, tid, opts, file, line) do { \ - if (!_release_lock((mp), (tid))) \ + uintptr_t _tid = (uintptr_t)(tid); \ + \ + if (!_release_lock((mp), _tid)) \ _mtx_unlock_sleep((mp), (opts), (file), (line)); \ } while (0) #endif From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:00:58 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7490316A4D1; Wed, 30 Mar 2005 22:00: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 2443616A4D0 for ; Wed, 30 Mar 2005 22:00:58 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CF5C943D5E for ; Wed, 30 Mar 2005 22:00:56 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UM0uh1070336 for ; Wed, 30 Mar 2005 22:00:56 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UM0ubP070333 for perforce@freebsd.org; Wed, 30 Mar 2005 22:00:56 GMT (envelope-from peter@freebsd.org) Date: Wed, 30 Mar 2005 22:00:56 GMT Message-Id: <200503302200.j2UM0ubP070333@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 74127 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, 30 Mar 2005 22:00:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=74127 Change 74127 by peter@peter_daintree on 2005/03/30 22:00:39 snapshot at something that does a halfway reasonable attempt at disassembling itself. known bugs: movslq has the wrong source operand mode. it is coming out as %r instead of %e. might need a hack for this. gcc generates cmoveXX instructions with -O, there is no decoder for that. Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#6 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#6 (text+ko) ==== @@ -30,11 +30,27 @@ /* * Instruction disassembler. */ +#ifdef _KERNEL #include #include #include #include +#else +#include +#include +#include + +typedef unsigned long db_addr_t; +#define db_printf printf +#define db_printsym(x, y) printf("%#lx", (long)(x)); +typedef int boolean_t; +typedef unsigned int db_expr_t; +#define FALSE 0 +#define TRUE 1 +void db_read_bytes(db_addr_t addr, int size, char *data) { memcpy(data, (void *)addr, size); } +db_expr_t db_get_value(db_addr_t addr, int size, boolean_t is_signed); +#endif /* * Size attributes @@ -50,6 +66,15 @@ #define NONE 8 /* + * REX prefix and bits + */ +#define REX_B 1 +#define REX_X 2 +#define REX_R 4 +#define REX_W 8 +#define REX 0x40 + +/* * Addressing modes */ #define E 1 /* general effective address */ @@ -585,23 +610,23 @@ /*3e*/ { "", FALSE, NONE, 0, 0 }, /*3f*/ { "aas", FALSE, NONE, 0, 0 }, -/*40*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*41*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*42*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*43*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*44*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*45*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*46*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*47*/ { "inc", FALSE, LONG, op1(Ri), 0 }, +/*40*/ { "rex", FALSE, NONE, 0, 0 }, +/*41*/ { "rex.b", FALSE, NONE, 0, 0 }, +/*42*/ { "rex.x", FALSE, NONE, 0, 0 }, +/*43*/ { "rex.xb", FALSE, NONE, 0, 0 }, +/*44*/ { "rex.r", FALSE, NONE, 0, 0 }, +/*45*/ { "rex.rb", FALSE, NONE, 0, 0 }, +/*46*/ { "rex.rx", FALSE, NONE, 0, 0 }, +/*47*/ { "rex.rxb", FALSE, NONE, 0, 0 }, -/*48*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*49*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4a*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4b*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4c*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4d*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4e*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4f*/ { "dec", FALSE, LONG, op1(Ri), 0 }, +/*48*/ { "rex.w", FALSE, NONE, 0, 0 }, +/*49*/ { "rex.wb", FALSE, NONE, 0, 0 }, +/*4a*/ { "rex.wx", FALSE, NONE, 0, 0 }, +/*4b*/ { "rex.wxb", FALSE, NONE, 0, 0 }, +/*4c*/ { "rex.wr", FALSE, NONE, 0, 0 }, +/*4d*/ { "rex.wrb", FALSE, NONE, 0, 0 }, +/*4e*/ { "rex.wrx", FALSE, NONE, 0, 0 }, +/*4f*/ { "rex.wrxb", FALSE, NONE, 0, 0 }, /*50*/ { "push", FALSE, LONG, op1(Ri), 0 }, /*51*/ { "push", FALSE, LONG, op1(Ri), 0 }, @@ -624,7 +649,7 @@ /*60*/ { "pusha", FALSE, LONG, 0, 0 }, /*61*/ { "popa", FALSE, LONG, 0, 0 }, /*62*/ { "bound", TRUE, LONG, op2(E, R), 0 }, -/*63*/ { "arpl", TRUE, NONE, op2(Rw,Ew), 0 }, +/*63*/ { "movslq", TRUE, NONE, op2(E,R), 0 }, /*64*/ { "", FALSE, NONE, 0, 0 }, /*65*/ { "", FALSE, NONE, 0, 0 }, @@ -807,13 +832,13 @@ { "???", FALSE, NONE, 0, 0 } ; -#define f_mod(byte) ((byte)>>6) -#define f_reg(byte) (((byte)>>3)&0x7) -#define f_rm(byte) ((byte)&0x7) +#define f_mod(rex, byte) ((byte)>>6) +#define f_reg(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_R ? 0x8 : 0x0)) +#define f_rm(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) -#define sib_ss(byte) ((byte)>>6) -#define sib_index(byte) (((byte)>>3)&0x7) -#define sib_base(byte) ((byte)&0x7) +#define sib_ss(rex, byte) ((byte)>>6) +#define sib_index(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_X ? 0x8 : 0x0)) +#define sib_base(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) struct i_addr { int is_reg; /* if reg, reg number is in 'disp' */ @@ -834,10 +859,25 @@ "%bx" }; -static const char * const db_reg[3][8] = { - { "%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh" }, - { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di" }, - { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi" } +static const char * const db_reg[2][4][16] = { + + {{"%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }}, + + {{"%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }} }; static const char * const db_seg_reg[8] = { @@ -862,28 +902,29 @@ (loc) += (size); static db_addr_t - db_disasm_esc(db_addr_t loc, int inst, int short_addr, + db_disasm_esc(db_addr_t loc, int inst, int rex, int short_addr, int size, const char *seg); -static void db_print_address(const char *seg, int size, +static void db_print_address(const char *seg, int size, int rex, struct i_addr *addrp); static db_addr_t - db_read_address(db_addr_t loc, int short_addr, int regmodrm, + db_read_address(db_addr_t loc, int short_addr, int rex, int regmodrm, struct i_addr *addrp); /* * Read address at location and return updated location. */ static db_addr_t -db_read_address(loc, short_addr, regmodrm, addrp) +db_read_address(loc, short_addr, rex, regmodrm, addrp) db_addr_t loc; int short_addr; + int rex; int regmodrm; struct i_addr * addrp; /* out */ { int mod, rm, sib, index, disp; - mod = f_mod(regmodrm); - rm = f_rm(regmodrm); + mod = f_mod(rex, regmodrm); + rm = f_rm(rex, regmodrm); if (mod == 3) { addrp->is_reg = TRUE; @@ -892,6 +933,7 @@ } addrp->is_reg = FALSE; addrp->index = 0; +/* printf("[[short_addr %d, mod %d rm %d, rex %x]]", short_addr,mod, rm, rex); */ if (short_addr) { addrp->index = 0; @@ -924,13 +966,14 @@ else { if (mod != 3 && rm == 4) { get_value_inc(sib, loc, 1, FALSE); - rm = sib_base(sib); - index = sib_index(sib); + rm = sib_base(rex, sib); + index = sib_index(rex, sib); if (index != 4) - addrp->index = db_reg[LONG][index]; - addrp->ss = sib_ss(sib); + addrp->index = db_reg[1][QUAD][index]; + addrp->ss = sib_ss(rex, sib); } +/* printf("[mod %d]", mod); */ switch (mod) { case 0: if (rm == 5) { @@ -939,20 +982,20 @@ } else { addrp->disp = 0; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; } break; case 1: get_value_inc(disp, loc, 1, TRUE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; case 2: get_value_inc(disp, loc, 4, FALSE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; } } @@ -960,13 +1003,15 @@ } static void -db_print_address(seg, size, addrp) +db_print_address(seg, size, rex, addrp) const char * seg; int size; + int rex; struct i_addr * addrp; { +/* printf("[rex:0x%x,size=%d]", rex, size); */ if (addrp->is_reg) { - db_printf("%s", db_reg[size][addrp->disp]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(size == LONG && (rex & REX_W)) ? QUAD : size][addrp->disp]); return; } @@ -990,9 +1035,10 @@ * and return updated location. */ static db_addr_t -db_disasm_esc(loc, inst, short_addr, size, seg) +db_disasm_esc(loc, inst, rex, short_addr, size, seg) db_addr_t loc; int inst; + int rex; int short_addr; int size; const char * seg; @@ -1004,8 +1050,8 @@ const char * name; get_value_inc(regmodrm, loc, 1, FALSE); - fp = &db_Esc_inst[inst - 0xd8][f_reg(regmodrm)]; - mod = f_mod(regmodrm); + fp = &db_Esc_inst[inst - 0xd8][f_reg(rex, regmodrm)]; + mod = f_mod(rex, regmodrm); if (mod != 3) { if (*fp->f_name == '\0') { db_printf(""); @@ -1014,7 +1060,7 @@ /* * Normal address modes. */ - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); db_printf("%s", fp->f_name); switch(fp->f_size) { case SNGL: @@ -1039,7 +1085,7 @@ break; } db_printf("\t"); - db_print_address(seg, BYTE, &address); + db_print_address(seg, BYTE, rex, &address); } else { /* @@ -1048,24 +1094,24 @@ switch (fp->f_rrmode) { case op2(ST,STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st,%%st(%d)",name,f_rm(regmodrm)); + db_printf("%s\t%%st,%%st(%d)",name,f_rm(rex, regmodrm)); break; case op2(STI,ST): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d),%%st",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d),%%st",name, f_rm(rex, regmodrm)); break; case op1(STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d)",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d)",name, f_rm(rex, regmodrm)); break; case op1(X): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s", name); break; case op1(XA): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s\t%%ax", name); @@ -1098,6 +1144,7 @@ const char * i_name; int i_size; int i_mode; + int rex = 0; int regmodrm = 0; boolean_t first; int displ; @@ -1112,6 +1159,9 @@ size = LONG; seg = 0; +#ifndef _KERNEL +printf("0x%08x: "); +#endif /* * Get prefixes */ @@ -1155,13 +1205,17 @@ prefix = FALSE; break; } + if (inst >= 0x40 && inst < 0x50) { + rex = inst; + prefix = TRUE; + } if (prefix) { get_value_inc(inst, loc, 1, FALSE); } } while (prefix); if (inst >= 0xd8 && inst <= 0xdf) { - loc = db_disasm_esc(loc, inst, short_addr, size, seg); + loc = db_disasm_esc(loc, inst, rex, short_addr, size, seg); db_printf("\n"); return (loc); } @@ -1181,7 +1235,7 @@ if (ip->i_has_modrm) { get_value_inc(regmodrm, loc, 1, FALSE); - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); } i_name = ip->i_name; @@ -1191,17 +1245,17 @@ if (ip->i_extra == db_Grp1 || ip->i_extra == db_Grp2 || ip->i_extra == db_Grp6 || ip->i_extra == db_Grp7 || ip->i_extra == db_Grp8 || ip->i_extra == db_Grp9) { - i_name = ((const char * const *)ip->i_extra)[f_reg(regmodrm)]; + i_name = ((const char * const *)ip->i_extra)[f_reg(rex, regmodrm)]; } else if (ip->i_extra == db_Grp3) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; } else if (ip->i_extra == db_Grp4 || ip->i_extra == db_Grp5) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; i_size = ip->i_size; @@ -1215,6 +1269,11 @@ } else { db_printf("%s", i_name); + if ((strncmp(i_name, "push", 4) == 0) || + (strncmp(i_name, "pop", 3) == 0)) { + i_size = NONE; + db_printf("q"); + } if (i_size != NONE) { if (i_size == BYTE) { db_printf("b"); @@ -1226,8 +1285,12 @@ } else if (size == WORD) db_printf("w"); - else - db_printf("l"); + else { + if (rex & REX_W) + db_printf("q"); + else + db_printf("l"); + } } } db_printf("\t"); @@ -1238,138 +1301,203 @@ if (!first) db_printf(","); +#ifdef _KERNEL +#define M(s) do { } while (0) +#else +#if 0 +#define M(s) printf(s) +#else +#define M(s) do { } while (0) +#endif +#endif switch (i_mode & 0xFF) { case E: - db_print_address(seg, size, &address); + M("[E]"); + db_print_address(seg, size, rex, &address); break; case Eind: + M("[Eind]"); db_printf("*"); - db_print_address(seg, size, &address); + db_print_address(seg, size, rex, &address); break; case El: - db_print_address(seg, LONG, &address); + M("[El]"); + db_print_address(seg, (rex & REX_W) ? QUAD : LONG, rex, &address); break; case Ew: - db_print_address(seg, WORD, &address); + M("[Ew]"); + db_print_address(seg, WORD, rex, &address); break; case Eb: - db_print_address(seg, BYTE, &address); + M("[Eb]"); + db_print_address(seg, BYTE, rex, &address); break; case R: - db_printf("%s", db_reg[size][f_reg(regmodrm)]); + M("[R]"); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(size == LONG && (rex & REX_W)) ? QUAD : size][f_reg(rex, regmodrm)]); break; case Rw: - db_printf("%s", db_reg[WORD][f_reg(regmodrm)]); + M("[Rw]"); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][WORD][f_reg(rex, regmodrm)]); break; case Ri: - db_printf("%s", db_reg[size][f_rm(inst)]); + M("[Ri]"); + db_printf("%s", db_reg[0][QUAD][f_rm(rex, inst)]); break; case Ril: - db_printf("%s", db_reg[LONG][f_rm(inst)]); + M("[Ril]"); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(rex & REX_R) ? QUAD : LONG][f_rm(rex, inst)]); break; case S: - db_printf("%s", db_seg_reg[f_reg(regmodrm)]); + M("[S]"); + db_printf("%s", db_seg_reg[f_reg(rex, regmodrm)]); break; case Si: - db_printf("%s", db_seg_reg[f_reg(inst)]); + M("[Si]"); + db_printf("%s", db_seg_reg[f_reg(rex, inst)]); break; case A: - db_printf("%s", db_reg[size][0]); /* acc */ + M("[A]"); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][size][0]); /* acc */ break; case BX: + M("[BX]"); if (seg) db_printf("%s:", seg); db_printf("(%s)", short_addr ? "%bx" : "%ebx"); break; case CL: + M("[CL]"); db_printf("%%cl"); break; case DX: + M("[DX]"); db_printf("%%dx"); break; case SI: + M("[SI]"); if (seg) db_printf("%s:", seg); - db_printf("(%s)", short_addr ? "%si" : "%esi"); + db_printf("(%s)", short_addr ? "%si" : "%rsi"); break; case DI: - db_printf("%%es:(%s)", short_addr ? "%di" : "%edi"); + M("[DI]"); + db_printf("%%es:(%s)", short_addr ? "%di" : "%rdi"); break; case CR: - db_printf("%%cr%d", f_reg(regmodrm)); + M("[CR]"); + db_printf("%%cr%d", f_reg(rex, regmodrm)); break; case DR: - db_printf("%%dr%d", f_reg(regmodrm)); + M("[DR]"); + db_printf("%%dr%d", f_reg(rex, regmodrm)); break; case TR: - db_printf("%%tr%d", f_reg(regmodrm)); + M("[TR]"); + db_printf("%%tr%d", f_reg(rex, regmodrm)); break; case I: + M("[I]"); len = db_lengths[size]; get_value_inc(imm, loc, len, FALSE); +#ifdef _KERNEL db_printf("$%#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case Is: - len = db_lengths[size]; + M("[Is]"); + len = db_lengths[(size == LONG && (rex & REX_W)) ? QUAD : size]; get_value_inc(imm, loc, len, FALSE); +#ifdef _KERNEL db_printf("$%+#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case Ib: + M("[Ib]"); get_value_inc(imm, loc, 1, FALSE); +#ifdef _KERNEL db_printf("$%#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case Iba: + M("[Iba]"); get_value_inc(imm, loc, 1, FALSE); if (imm != 0x0a) +#ifdef _KERNEL db_printf("$%#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case Ibs: + M("[Ibs]"); get_value_inc(imm, loc, 1, TRUE); if (size == WORD) imm &= 0xFFFF; +#ifdef _KERNEL db_printf("$%+#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case Iw: + M("[Iw]"); get_value_inc(imm, loc, 2, FALSE); +#ifdef _KERNEL db_printf("$%#r", imm); +#else + db_printf("$%#x", imm); +#endif break; case O: + M("[O]"); len = (short_addr ? 2 : 4); get_value_inc(displ, loc, len, FALSE); if (seg) +#ifdef _KERNEL db_printf("%s:%+#r",seg, displ); +#else + db_printf("%s:%#x",seg, displ); +#endif else db_printsym((db_addr_t)displ, DB_STGY_ANY); break; case Db: + M("[Db]"); get_value_inc(displ, loc, 1, TRUE); displ += loc; if (size == WORD) @@ -1378,7 +1506,8 @@ break; case Dl: - len = db_lengths[size]; + M("[Dl]"); + len = db_lengths[(size == LONG && (rex & REX_W)) ? QUAD : size]; get_value_inc(displ, loc, len, FALSE); displ += loc; if (size == WORD) @@ -1387,21 +1516,87 @@ break; case o1: + M("[o1]"); db_printf("$1"); break; case o3: + M("[o3]"); db_printf("$3"); break; case OS: + M("[OS]"); len = db_lengths[size]; get_value_inc(imm, loc, len, FALSE); /* offset */ get_value_inc(imm2, loc, 2, FALSE); /* segment */ +#ifdef _KERNEL db_printf("$%#r,%#r", imm2, imm); +#else + db_printf("$%#x,%#x", imm2, imm); +#endif break; } } db_printf("\n"); return (loc); +#undef M +} + +#ifndef _KERNEL +/* Just self-disassemble for a a few instructions */ +int +main(int ac, char *av[]) +{ + db_addr_t base = (db_addr_t)main; + int i; + for (i = 0; i < 60; i++) + base = db_disasm(base, 0); + return 0; } +void tasm(void) +{ + asm("push %si"); +} + +/* + * Access unaligned data items on aligned (longword) + * boundaries. + */ + +static unsigned db_extend[] = { /* table for sign-extending */ + 0, + 0xFFFFFF80U, + 0xFFFF8000U, + 0xFF800000U +}; + +db_expr_t +db_get_value(addr, size, is_signed) + db_addr_t addr; + register int size; + boolean_t is_signed; +{ + char data[sizeof(int)]; + register db_expr_t value; + register int i; + + db_read_bytes(addr, size, data); + + value = 0; +#if BYTE_MSF + for (i = 0; i < size; i++) +#else /* BYTE_LSF */ + for (i = size - 1; i >= 0; i--) +#endif + { + value = (value << 8) + (data[i] & 0xFF); + } + + if (size < 4) { + if (is_signed && (value & db_extend[size]) != 0) + value |= db_extend[size]; + } + return (value); +} +#endif From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:04:01 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F09416A4D0; Wed, 30 Mar 2005 22: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 12E2A16A4CE for ; Wed, 30 Mar 2005 22:04:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EA28043D31 for ; Wed, 30 Mar 2005 22:04:00 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UM407O070419 for ; Wed, 30 Mar 2005 22:04:00 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UM40Rw070412 for perforce@freebsd.org; Wed, 30 Mar 2005 22:04:00 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 22:04:00 GMT Message-Id: <200503302204.j2UM40Rw070412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74128 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, 30 Mar 2005 22:04:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=74128 Change 74128 by jhb@jhb_slimer on 2005/03/30 22:03:59 Fixes for SMP kernels for atomic_ptr() changes. Affected files ... .. //depot/projects/smpng/sys/kern/kern_mutex.c#95 edit .. //depot/projects/smpng/sys/kern/kern_shutdown.c#56 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_mutex.c#95 (text+ko) ==== @@ -599,7 +599,7 @@ if (apic_hack) APIC_IPI_SPINWAIT_ENTER(); #endif - while (m->mtx_lock != (void *)MTX_UNOWNED) { + while (m->mtx_lock != MTX_UNOWNED) { if (i++ < 10000000) { cpu_spinwait(); continue; ==== //depot/projects/smpng/sys/kern/kern_shutdown.c#56 (text+ko) ==== @@ -475,7 +475,7 @@ } #ifdef SMP -static volatile void *panic_thread = NULL; +static volatile uintptr_t panic_thread; #endif /* @@ -492,17 +492,19 @@ int bootopt, newpanic; va_list ap; static char buf[256]; +#ifdef SMP + uintptr_t tid; -#ifdef SMP /* * We don't want multiple CPU's to panic at the same time, so we * use panic_thread as a simple spinlock. We have to keep checking * panic_thread if we are spinning in case the panic on the first * CPU is canceled. */ - if (panic_thread != td) - while (atomic_cmpset_ptr(&panic_thread, NULL, td) == 0) - while (panic_thread != NULL) + tid = (uintptr_t)td; + if (panic_thread != tid) + while (atomic_cmpset_ptr(&panic_thread, 0, tid) == 0) + while (panic_thread != 0) cpu_spinwait(); #endif @@ -539,7 +541,7 @@ /* See if the user aborted the panic, in which case we continue. */ if (panicstr == NULL) { #ifdef SMP - atomic_store_rel_ptr(&panic_thread, NULL); + atomic_store_rel_ptr(&panic_thread, 0); #endif return; } From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:21:23 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2506216A4D0; Wed, 30 Mar 2005 22:21: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 DBE0D16A4CF for ; Wed, 30 Mar 2005 22:21:22 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A5F6743D53 for ; Wed, 30 Mar 2005 22:21:22 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UMLM0g071143 for ; Wed, 30 Mar 2005 22:21:22 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UMLMQi071140 for perforce@freebsd.org; Wed, 30 Mar 2005 22:21:22 GMT (envelope-from peter@freebsd.org) Date: Wed, 30 Mar 2005 22:21:22 GMT Message-Id: <200503302221.j2UMLMQi071140@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 74130 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, 30 Mar 2005 22:21:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=74130 Change 74130 by peter@peter_daintree on 2005/03/30 22:21:12 Add an explicit forced long override for use by the source arg for movslq Add the cmovCC family Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#7 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#7 (text+ko) ==== @@ -110,9 +110,10 @@ #define STI 32 /* FP stack */ #define X 33 /* extended FP op */ #define XA 34 /* for 'fstcw %ax' */ -#define El 35 /* address, long size */ +#define El 35 /* address, long/quad size */ #define Ril 36 /* long register in instruction */ #define Iba 37 /* byte immediate, don't print if 0xa */ +#define EL 38 /* address, explicitly long size */ struct inst { const char * i_name; /* name */ @@ -238,6 +239,26 @@ /*3f*/ { "", FALSE, NONE, 0, 0 }, }; +static const struct inst db_inst_0f4x[] = { +/*40*/ { "cmovo", TRUE, NONE, op2(E, R), 0 }, +/*41*/ { "cmovno", TRUE, NONE, op2(E, R), 0 }, +/*42*/ { "cmovb", TRUE, NONE, op2(E, R), 0 }, +/*43*/ { "cmovnb", TRUE, NONE, op2(E, R), 0 }, +/*44*/ { "cmovz", TRUE, NONE, op2(E, R), 0 }, +/*45*/ { "cmovnz", TRUE, NONE, op2(E, R), 0 }, +/*46*/ { "cmovbe", TRUE, NONE, op2(E, R), 0 }, +/*47*/ { "cmovnbe",TRUE, NONE, op2(E, R), 0 }, + +/*48*/ { "cmovs", TRUE, NONE, op2(E, R), 0 }, +/*49*/ { "cmovns", TRUE, NONE, op2(E, R), 0 }, +/*4a*/ { "cmovp", TRUE, NONE, op2(E, R), 0 }, +/*4b*/ { "cmovnp", TRUE, NONE, op2(E, R), 0 }, +/*4c*/ { "cmovl", TRUE, NONE, op2(E, R), 0 }, +/*4d*/ { "cmovnl", TRUE, NONE, op2(E, R), 0 }, +/*4e*/ { "cmovle", TRUE, NONE, op2(E, R), 0 }, +/*4f*/ { "cmovnle",TRUE, NONE, op2(E, R), 0 }, +}; + static const struct inst db_inst_0f8x[] = { /*80*/ { "jo", FALSE, NONE, op1(Dl), 0 }, /*81*/ { "jno", FALSE, NONE, op1(Dl), 0 }, @@ -342,6 +363,7 @@ 0, db_inst_0f2x, db_inst_0f3x, + db_inst_0f4x, 0, 0, 0, @@ -649,7 +671,7 @@ /*60*/ { "pusha", FALSE, LONG, 0, 0 }, /*61*/ { "popa", FALSE, LONG, 0, 0 }, /*62*/ { "bound", TRUE, LONG, op2(E, R), 0 }, -/*63*/ { "movslq", TRUE, NONE, op2(E,R), 0 }, +/*63*/ { "movslq", TRUE, NONE, op2(EL,R), 0 }, /*64*/ { "", FALSE, NONE, 0, 0 }, /*65*/ { "", FALSE, NONE, 0, 0 }, @@ -1160,7 +1182,7 @@ seg = 0; #ifndef _KERNEL -printf("0x%08x: "); +printf("0x%08x: ", loc); #endif /* * Get prefixes @@ -1328,6 +1350,11 @@ db_print_address(seg, (rex & REX_W) ? QUAD : LONG, rex, &address); break; + case EL: + M("[EL]"); + db_print_address(seg, LONG, 0, &address); + break; + case Ew: M("[Ew]"); db_print_address(seg, WORD, rex, &address); From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:25:28 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 480B216A4D0; Wed, 30 Mar 2005 22:25: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 235F916A4CE for ; Wed, 30 Mar 2005 22:25:28 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F3F0143D31 for ; Wed, 30 Mar 2005 22:25:27 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UMPRF8071287 for ; Wed, 30 Mar 2005 22:25:27 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UMPRXs071284 for perforce@freebsd.org; Wed, 30 Mar 2005 22:25:27 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 22:25:27 GMT Message-Id: <200503302225.j2UMPRXs071284@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74131 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, 30 Mar 2005 22:25:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=74131 Change 74131 by sam@sam_ebb on 2005/03/30 22:24:35 IFC Affected files ... .. //depot/projects/wifi/sys/dev/ath/if_ath.c#80 integrate .. //depot/projects/wifi/tools/tools/ath/athstats.c#8 integrate Differences ... ==== //depot/projects/wifi/sys/dev/ath/if_ath.c#80 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.83 2005/03/30 20:17:18 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.85 2005/03/30 20:30:48 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -3856,14 +3856,14 @@ (caddr_t)bf->bf_daddr, bf->bf_desc, txq->axq_depth); } txq->axq_link = &bf->bf_desc[bf->bf_nseg - 1].ds_link; - ATH_TXQ_UNLOCK(txq); - /* * The CAB queue is started from the SWBA handler since * frames only go out on DTIM and to avoid possible races. */ if (txq != sc->sc_cabq) ath_hal_txstart(ah, txq->axq_qnum); + ATH_TXQ_UNLOCK(txq); + return 0; #undef updateCTSForBursting #undef CTS_DURATION ==== //depot/projects/wifi/tools/tools/ath/athstats.c#8 (text+ko) ==== @@ -33,7 +33,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. * - * $FreeBSD: src/tools/tools/ath/athstats.c,v 1.5 2004/12/08 17:42:53 sam Exp $ + * $FreeBSD: src/tools/tools/ath/athstats.c,v 1.6 2005/03/30 20:21:44 sam Exp $ */ /* @@ -126,6 +126,8 @@ STAT(tx_shortpre, "tx frames with short preamble"); STAT(tx_altrate, "tx frames with an alternate rate"); STAT(tx_protect, "tx frames with 11g protection"); + STAT(tx_ctsburst, "tx frames with 11g protection and bursting"); + STAT(tx_ctsext, "tx frames with 11g cts protection extended for bursting"); STAT(ff_txok, "tx fast frames successful"); STAT(ff_txerr, "tx fast frames with error"); STAT(ff_flush, "frames flushed from fast frame staging queue"); From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:35:41 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 578F216A4D0; Wed, 30 Mar 2005 22:35: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 3216F16A4CE for ; Wed, 30 Mar 2005 22:35:41 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B719D43D2D for ; Wed, 30 Mar 2005 22:35:40 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UMZeO9071679 for ; Wed, 30 Mar 2005 22:35:40 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UMZer5071676 for perforce@freebsd.org; Wed, 30 Mar 2005 22:35:40 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 22:35:40 GMT Message-Id: <200503302235.j2UMZer5071676@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74132 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, 30 Mar 2005 22:35:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=74132 Change 74132 by sam@sam_ebb on 2005/03/30 22:35:12 IFC Affected files ... .. //depot/projects/wifi/sys/dev/ath/ath_rate/sample/sample.c#3 integrate .. //depot/projects/wifi/sys/dev/ath/ath_rate/sample/sample.h#3 integrate Differences ... ==== //depot/projects/wifi/sys/dev/ath/ath_rate/sample/sample.c#3 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.4 2005/01/24 19:32:10 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.6 2005/03/30 20:20:49 sam Exp $"); /* * John Bicket's SampleRate control algorithm. @@ -111,7 +111,9 @@ * */ -static void ath_rate_ctl_start(struct ath_softc *, struct ieee80211_node *); +#define STALE_FAILURE_TIMEOUT_MS 10000 + +static void ath_rate_ctl_reset(struct ath_softc *, struct ieee80211_node *); static __inline int size_to_bin(int size) { @@ -127,6 +129,16 @@ return packet_size_bins[index]; } +static __inline int rate_to_ndx(struct sample_node *sn, int rate) { + int x = 0; + for (x = 0; x < sn->num_rates; x++) { + if (sn->rates[x].rate == rate) { + return x; + } + } + return -1; +} + /* * Setup rate codes for management/control frames. We force * all such frames to the lowest rate. @@ -162,18 +174,21 @@ * returns the ndx with the lowest average_tx_time, * or -1 if all the average_tx_times are 0. */ -static __inline int best_rate_ndx(struct sample_node *sn, int size_bin) +static __inline int best_rate_ndx(struct sample_node *sn, int size_bin, + int require_acked_before) { int x = 0; int best_rate_ndx = 0; int best_rate_tt = 0; for (x = 0; x < sn->num_rates; x++) { int tt = sn->stats[size_bin][x].average_tx_time; - if (tt > 0) { - if (!best_rate_tt || best_rate_tt > tt) { - best_rate_tt = tt; - best_rate_ndx = x; - } + if (tt <= 0 || (require_acked_before && + !sn->stats[size_bin][x].packets_acked)) { + continue; + } + if (!best_rate_tt || best_rate_tt > tt) { + best_rate_tt = tt; + best_rate_ndx = x; } } return (best_rate_tt) ? best_rate_ndx : -1; @@ -187,45 +202,38 @@ static __inline int pick_sample_ndx(struct sample_node *sn, int size_bin) { int x = 0; - int best_ndx = best_rate_ndx(sn, size_bin); - int best_tt = 0; - int num_eligible = 0; + int current_ndx = 0; + unsigned current_tt = 0; - if (best_ndx < 0) { + current_ndx = sn->current_rate[size_bin]; + if (current_ndx < 0) { /* no successes yet, send at the lowest bit-rate */ return 0; } - best_tt = sn->stats[size_bin][best_ndx].average_tx_time; - sn->sample_num[size_bin]++; + current_tt = sn->stats[size_bin][current_ndx].average_tx_time; - /* - * first, find the number of bit-rates we could potentially - * sample. we assume this list doesn't change a lot, so - * we will just cycle through them. - */ for (x = 0; x < sn->num_rates; x++) { - if (x != best_ndx && - sn->stats[size_bin][x].perfect_tx_time < best_tt && - sn->stats[size_bin][x].successive_failures < 4) { - num_eligible++; + int ndx = (sn->last_sample_ndx[size_bin] + 1 + x) % sn->num_rates; + /* + * clear any stale stuff out. + */ + if (ticks - sn->stats[size_bin][ndx].last_tx > ((hz * STALE_FAILURE_TIMEOUT_MS)/1000)) { + sn->stats[size_bin][ndx].average_tx_time = sn->stats[size_bin][ndx].perfect_tx_time; + sn->stats[size_bin][ndx].successive_failures = 0; + sn->stats[size_bin][ndx].tries = 0; + sn->stats[size_bin][ndx].total_packets = 0; + sn->stats[size_bin][ndx].packets_acked = 0; } - } - - if (num_eligible > 0) { - int pick = sn->sample_num[size_bin] % num_eligible; - for (x = 0; x < sn->num_rates; x++) { - if (x != best_ndx && - sn->stats[size_bin][x].perfect_tx_time < best_tt && - sn->stats[size_bin][x].successive_failures < 4) { - if (pick == 0) { - return x; - } - pick--; - } + + if (ndx != current_ndx && + sn->stats[size_bin][ndx].perfect_tx_time < current_tt && + sn->stats[size_bin][ndx].successive_failures < 4) { + sn->last_sample_ndx[size_bin] = ndx; + return ndx; } } - return best_ndx; + return current_ndx; } void @@ -235,73 +243,138 @@ { struct sample_node *sn = ATH_NODE_SAMPLE(an); struct sample_softc *ssc = ATH_SOFTC_SAMPLE(sc); - int x; - int ndx = 0; - int size_bin = size_to_bin(frameLen); - int best_ndx = best_rate_ndx(sn, size_bin); + struct ieee80211com *ic = &sc->sc_ic; + int ndx, size_bin, mrr, best_ndx; + unsigned average_tx_time; + + mrr = sc->sc_mrretry && !(ic->ic_flags & IEEE80211_F_USEPROT) && + !(frameLen > ic->ic_rtsthreshold); + size_bin = size_to_bin(frameLen); + best_ndx = best_rate_ndx(sn, size_bin, !mrr); + if (best_ndx >= 0) { + average_tx_time = sn->stats[size_bin][best_ndx].average_tx_time; + } else { + average_tx_time = 0; + } if (sn->static_rate_ndx != -1) { - *try0 = 4; - *rix = sn->rates[sn->static_rate_ndx].rix; - *txrate = sn->rates[sn->static_rate_ndx].rateCode; - return; - } - - *try0 = 2; - - best_ndx = best_rate_ndx(sn, size_bin); - if (!sn->packets_sent[size_bin] || - sn->packets_sent[size_bin] % ssc->ath_sample_rate > 0) { - /* - * for most packets, send the packet at the bit-rate with - * the lowest estimated transmission time. - */ - if (best_ndx != -1) { - ndx = best_ndx; + ndx = sn->static_rate_ndx; + *try0 = ATH_TXMAXTRY; + } else { + ndx = 0; + *try0 = mrr ? 2 : ATH_TXMAXTRY; + + DPRINTF(sc, "%s: %s size %d mrr %d packets_sent %d best_ndx %d " + "sample tt %d packets since %d\n" + , __func__, ether_sprintf(an->an_node.ni_macaddr) + , packet_size_bins[size_bin] + , mrr + , sn->packets_sent[size_bin] + , best_ndx + , sn->sample_tt[size_bin] + , sn->packets_since_sample[size_bin] + ); + if (!sn->packets_sent[size_bin]) { + /* no packets sent */ + if (best_ndx == -1) { + ndx = sn->num_rates - 1; + if (sc->sc_curmode != IEEE80211_MODE_11B) { + for (; ndx >= 0 && sn->rates[ndx].rate > 72; ndx--) + ; + + } + } else { + ndx = best_ndx; + } + } else if (best_ndx == -1) { + /* no packet has succeeded yet */ + if (mrr) { + /* + * no packet has succeeded, try the + * highest bitrate that hasn't failed + */ + for (ndx = sn->num_rates-1; ndx >= 0; ndx--) { + if (sn->stats[size_bin][ndx].successive_failures == 0) { + break; + } + } + } else { + ndx = sn->num_rates - 1; + if (sc->sc_curmode != IEEE80211_MODE_11B) { + for (; ndx >= 0 && sn->rates[ndx].rate > 72; ndx--) + ; + + } + } + } else if (sn->sample_tt[size_bin] < (sn->packets_since_sample[size_bin]*ssc->ath_sample_rate/100) * average_tx_time && + sn->packets_since_sample[size_bin] > 15) { + /* + * we want to limit the time measuring the performance + * of other bit-rates to ath_sample_rate% of the + * total transmission time. + */ + ndx = pick_sample_ndx(sn, size_bin); + if (ndx != sn->current_rate[size_bin]) { + DPRINTF(sc, "%s: %s size %d last sample tt %d sampling %d packets since %d\n", + __func__, + ether_sprintf(an->an_node.ni_macaddr), + packet_size_bins[size_bin], + sn->sample_tt[size_bin], + sn->rates[ndx].rate, + sn->packets_since_sample[size_bin]); + sn->current_sample_ndx[size_bin] = ndx; + } else { + sn->current_sample_ndx[size_bin] = -1; + } + sn->packets_since_sample[size_bin] = 0; + } else { - /* - * no packet has succeeded, try the highest bitrate - * that hasn't failed. - */ - for (ndx = sn->num_rates-1; ndx >= 0; ndx--) { - if (sn->stats[size_bin][ndx].successive_failures == 0) { - break; + sn->packets_since_sample[size_bin]++; + /* + * don't switch bit-rates every packet. only + * switch during the first few packets we send + * or after 100 packets, or if the current + * bit-rate begins to perform twice as bad as + * another one. + */ + if (sn->packets_sent[size_bin] < 20 || + ticks - ((hz*2000)/1000) > sn->jiffies_since_switch[size_bin] || + average_tx_time * 2 < sn->stats[size_bin][sn->current_rate[size_bin]].average_tx_time ) { + if (sn->packets_sent[size_bin] > 20) { + DPRINTF(sc, "%s: %s size %d switch rate %d (%d/%d) -> %d (%d/%d) after %d packets mmr %d\n", + __func__, + ether_sprintf(an->an_node.ni_macaddr), + packet_size_bins[size_bin], + sn->rates[sn->current_rate[size_bin]].rate, + sn->stats[size_bin][sn->current_rate[size_bin]].average_tx_time, + sn->stats[size_bin][sn->current_rate[size_bin]].perfect_tx_time, + sn->rates[best_ndx].rate, + sn->stats[size_bin][best_ndx].average_tx_time, + sn->stats[size_bin][best_ndx].perfect_tx_time, + sn->packets_since_switch[size_bin], + mrr); } + sn->packets_since_switch[size_bin] = 0; + sn->current_rate[size_bin] = best_ndx; + sn->jiffies_since_switch[size_bin] = ticks; } + ndx = sn->current_rate[size_bin]; + sn->packets_since_switch[size_bin]++; } - if (size_bin == 0) { - /* update the visible txrate for this node */ - an->an_node.ni_txrate = ndx; - } - } else { - /* - * before we pick a bit-rate to "sample", clear any - * stale stuff out. - */ - for (x = 0; x < sn->num_rates; x++) { - if (ticks - sn->stats[size_bin][x].last_tx > ((hz * 10000)/1000)) { - sn->stats[size_bin][x].average_tx_time = sn->stats[size_bin][x].perfect_tx_time; - sn->stats[size_bin][x].successive_failures = 0; - sn->stats[size_bin][x].tries = 0; - sn->stats[size_bin][x].total_packets = 0; - sn->stats[size_bin][x].packets_acked = 0; - } - } + + } - /* send the packet at a different bit-rate */ - ndx = pick_sample_ndx(sn, size_bin); + if (ndx < 0) { + ndx = 0; } - - *rix = sn->rates[ndx].rix; if (shortPreamble) { *txrate = sn->rates[ndx].shortPreambleRateCode; } else { - *txrate = sn->rates[ndx].rateCode; } - sn->packets_sent[size_bin]++; + an->an_node.ni_txrate = ndx; } void @@ -310,107 +383,109 @@ { struct sample_node *sn = ATH_NODE_SAMPLE(an); int rateCode = -1; - int frame_size; - int size_bin; - int best_ndx; + int frame_size, size_bin, best_ndx, ndx; frame_size = ds->ds_ctl0 & 0x0fff; /* low-order 12 bits of ds_ctl0 */ - if (frame_size == 0) - frame_size = 1500; + KASSERT(frame_size != 0, ("no frame size")); size_bin = size_to_bin(frame_size); - best_ndx = best_rate_ndx(sn, size_bin); + best_ndx = best_rate_ndx(sn, size_bin, 0); if (best_ndx == -1 || !sn->stats[size_bin][best_ndx].packets_acked) { /* - * no packet has succeeded, so also try twice at the lowest bitate. + * no packet has succeeded, so also try at the + * lowest bitate. */ - if (shortPreamble) { - rateCode = sn->rates[0].shortPreambleRateCode; - } else { - rateCode = sn->rates[0].rateCode; - } - } else if (sn->rates[best_ndx].rix != rix) { + ndx = 0; + } else { /* * we're trying a different bit-rate, and it could be lossy, * so if it fails try at the best bit-rate. */ - if (shortPreamble) { - rateCode = sn->rates[MAX(0,best_ndx-1)].shortPreambleRateCode; - } else { - rateCode = sn->rates[MAX(0,best_ndx-1)].rateCode; - } + ndx = best_ndx; } - if (rateCode != -1) { - ath_hal_setupxtxdesc(sc->sc_ah, ds - , rateCode, 1 /* series 1 */ - , rateCode, 1 /* series 2 */ - , rateCode, 1 /* series 3 */ - ); + KASSERT(0 <= ndx && ndx < IEEE80211_RATE_MAXSIZE, + ("invalid ndx %d", ndx)); + if (shortPreamble) { + rateCode = sn->rates[ndx].shortPreambleRateCode; + } else { + rateCode = sn->rates[ndx].rateCode; } - + ath_hal_setupxtxdesc(sc->sc_ah, ds + , rateCode, 3 /* series 1 */ + , sn->rates[0].rateCode, 3 /* series 2 */ + , 0, 0 /* series 3 */ + ); } -void -ath_rate_tx_complete(struct ath_softc *sc, - struct ath_node *an, const struct ath_desc *ds) +static void +update_stats(struct ath_softc *sc, struct ath_node *an, + int frame_size, + int ndx0, int tries0, + int ndx1, int tries1, + int ndx2, int tries2, + int ndx3, int tries3, + int short_tries, int tries, int status) { struct sample_node *sn = ATH_NODE_SAMPLE(an); struct sample_softc *ssc = ATH_SOFTC_SAMPLE(sc); - int rate = sc->sc_hwmap[ds->ds_txstat.ts_rate &~ HAL_TXSTAT_ALTRATE].ieeerate; - int retries = ds->ds_txstat.ts_longretry; - int initial_rate_failed = ((ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE) - || ds->ds_txstat.ts_status != 0 || - retries > 3); int tt = 0; - int rix = -1; - int x = 0; - int frame_size; /* low-order 12 bits of ds_ctl0 */ - int size_bin; - int size; + int tries_so_far = 0; + int size_bin = 0; + int size = 0; + int rate = 0; + + size_bin = size_to_bin(frame_size); + size = bin_to_size(size_bin); + rate = sn->rates[ndx0].rate; - if (!sn->num_rates) { - DPRINTF(sc, "%s: no rates yet\n", __func__); - return; + tt += calc_usecs_unicast_packet(sc, size, sn->rates[ndx0].rix, + short_tries-1, + MIN(tries0, tries) - 1); + tries_so_far += tries0; + if (tries1 && tries0 < tries) { + tt += calc_usecs_unicast_packet(sc, size, sn->rates[ndx1].rix, + short_tries-1, + MIN(tries1 + tries_so_far, tries) - tries_so_far - 1); } - for (x = 0; x < sn->num_rates; x++) { - if (sn->rates[x].rate == rate) { - rix = x; - break; - } + tries_so_far += tries1; + + if (tries2 && tries0 + tries1 < tries) { + tt += calc_usecs_unicast_packet(sc, size, sn->rates[ndx2].rix, + short_tries-1, + MIN(tries2 + tries_so_far, tries) - tries_so_far - 1); } - - if (rix < 0 || rix > sn->num_rates) { - /* maybe a management packet */ - return; - } - frame_size = ds->ds_ctl0 & 0x0fff; /* low-order 12 bits of ds_ctl0 */ - if (frame_size == 0) - frame_size = 1500; - size_bin = size_to_bin(frame_size); - size = bin_to_size(size_bin); - tt = calc_usecs_unicast_packet(sc, size, sn->rates[rix].rix, - retries); + tries_so_far += tries2; - DPRINTF(sc, "%s: rate %d rix %d frame_size %d (%d) retries %d status %d tt %d avg_tt %d perfect_tt %d ts-rate %d\n", - __func__, rate, rix, frame_size, size, retries, initial_rate_failed, tt, - sn->stats[size_bin][rix].average_tx_time, - sn->stats[size_bin][rix].perfect_tx_time, - ds->ds_txstat.ts_rate); - - if (sn->stats[size_bin][rix].total_packets < 7) { + if (tries3 && tries0 + tries1 + tries2 < tries) { + tt += calc_usecs_unicast_packet(sc, size, sn->rates[ndx3].rix, + short_tries-1, + MIN(tries3 + tries_so_far, tries) - tries_so_far - 1); + } +#ifdef SAMPLE_DEBUG + if (short_tries + tries > 3 || status) { + DPRINTF(sc, "%s: %s size %d rate %d ndx %d tries (%d/%d) tries0 %d tt %d avg_tt %d perfect_tt %d status %d\n", + __func__, ether_sprintf(an->an_node.ni_macaddr), + size, + rate, ndx0, short_tries, tries, tries0, tt, + sn->stats[size_bin][ndx0].average_tx_time, + sn->stats[size_bin][ndx0].perfect_tx_time, + status); + } +#endif /* SAMPLE_DEBUG */ + if (sn->stats[size_bin][ndx0].total_packets < (100 / (100 - ssc->ath_smoothing_rate))) { /* just average the first few packets */ - int avg_tx = sn->stats[size_bin][rix].average_tx_time; - int packets = sn->stats[size_bin][rix].total_packets; - sn->stats[size_bin][rix].average_tx_time = (tt+(avg_tx*packets))/(packets+1); + int avg_tx = sn->stats[size_bin][ndx0].average_tx_time; + int packets = sn->stats[size_bin][ndx0].total_packets; + sn->stats[size_bin][ndx0].average_tx_time = (tt+(avg_tx*packets))/(packets+1); } else { /* use a ewma */ - sn->stats[size_bin][rix].average_tx_time = - ((sn->stats[size_bin][rix].average_tx_time * ssc->ath_smoothing_rate) + + sn->stats[size_bin][ndx0].average_tx_time = + ((sn->stats[size_bin][ndx0].average_tx_time * ssc->ath_smoothing_rate) + (tt * (100 - ssc->ath_smoothing_rate))) / 100; } - if (initial_rate_failed) { + if (status) { /* * this packet failed - count this as a failure * for larger packets also, since we assume @@ -419,82 +494,196 @@ */ int y; for (y = size_bin; y < NUM_PACKET_SIZE_BINS; y++) { - sn->stats[y][rix].successive_failures++; - sn->stats[y][rix].last_tx = ticks; + sn->stats[y][ndx0].successive_failures++; + sn->stats[y][ndx0].last_tx = ticks; } } else { - sn->stats[size_bin][rix].packets_acked++; - sn->stats[size_bin][rix].successive_failures = 0; + sn->stats[size_bin][ndx0].packets_acked++; + sn->stats[size_bin][ndx0].successive_failures = 0; + } + sn->stats[size_bin][ndx0].tries += tries; + sn->stats[size_bin][ndx0].last_tx = ticks; + sn->stats[size_bin][ndx0].total_packets++; + + + if (ndx0 == sn->current_sample_ndx[size_bin]) { + DPRINTF(sc, "%s: %s size %d sample rate %d tries (%d/%d) tt %d avg_tt (%d/%d) status %d\n", + __func__, ether_sprintf(an->an_node.ni_macaddr), + size, rate, short_tries, tries, tt, + sn->stats[size_bin][ndx0].average_tx_time, + sn->stats[size_bin][ndx0].perfect_tx_time, + status); + sn->sample_tt[size_bin] = tt; + sn->current_sample_ndx[size_bin] = -1; } - sn->stats[size_bin][rix].tries += (1+retries); - sn->stats[size_bin][rix].last_tx = ticks; - sn->stats[size_bin][rix].total_packets++; } void -ath_rate_newassoc(struct ath_softc *sc, struct ath_node *an, int isnew) +ath_rate_tx_complete(struct ath_softc *sc, struct ath_node *an, + const struct ath_desc *ds, const struct ath_desc *ds0) { - DPRINTF(sc, "%s:\n", __func__); - if (isnew) - ath_rate_ctl_start(sc, &an->an_node); -} + struct sample_node *sn = ATH_NODE_SAMPLE(an); + const struct ar5212_desc *ads = (const struct ar5212_desc *)&ds->ds_ctl0; + int final_rate, short_tries, long_tries, frame_size; + int ndx = -1; + + final_rate = sc->sc_hwmap[ds->ds_txstat.ts_rate &~ HAL_TXSTAT_ALTRATE].ieeerate; + short_tries = ds->ds_txstat.ts_shortretry + 1; + long_tries = ds->ds_txstat.ts_longretry + 1; + frame_size = ds0->ds_ctl0 & 0x0fff; /* low-order 12 bits of ds_ctl0 */ + if (frame_size == 0) /* NB: should not happen */ + frame_size = 1500; + + if (sn->num_rates <= 0) { + DPRINTF(sc, "%s: %s size %d status %d rate/try %d/%d " + "no rates yet\n", + __func__, ether_sprintf(an->an_node.ni_macaddr), + bin_to_size(size_to_bin(frame_size)), + ds->ds_txstat.ts_status, + short_tries, long_tries); + return; + } + + if (sc->sc_mrretry && ds->ds_txstat.ts_status) { + /* this packet failed */ + DPRINTF(sc, "%s: %s size %d rate/try %d/%d %d/%d %d/%d %d/%d status %s retries (%d/%d)\n", + __func__, + ether_sprintf(an->an_node.ni_macaddr), + bin_to_size(size_to_bin(frame_size)), + sc->sc_hwmap[ads->xmit_rate0].ieeerate, + ads->xmit_tries0, + sc->sc_hwmap[ads->xmit_rate1].ieeerate, + ads->xmit_tries1, + sc->sc_hwmap[ads->xmit_rate2].ieeerate, + ads->xmit_tries2, + sc->sc_hwmap[ads->xmit_rate3].ieeerate, + ads->xmit_tries3, + ds->ds_txstat.ts_status ? "FAIL" : "OK", + short_tries, + long_tries); + } + + if (!(ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE)) { + /* only one rate was used */ + ndx = rate_to_ndx(sn, final_rate); + DPRINTF(sc, "%s: %s size %d status %d rate/try %d/%d/%d\n", + __func__, ether_sprintf(an->an_node.ni_macaddr), + bin_to_size(size_to_bin(frame_size)), + ds->ds_txstat.ts_status, + ndx, short_tries, long_tries); + if (ndx >= 0 && ndx < sn->num_rates) { + update_stats(sc, an, frame_size, + ndx, long_tries, + 0, 0, + 0, 0, + 0, 0, + short_tries, long_tries, ds->ds_txstat.ts_status); + } + } else { + int rate0, tries0, ndx0; + int rate1, tries1, ndx1; + int rate2, tries2, ndx2; + int rate3, tries3, ndx3; + int finalTSIdx = ads->final_ts_index; -static void -ath_rate_ctl_reset(struct ath_softc *sc, struct ieee80211_node *ni) -{ - struct ath_node *an = ATH_NODE(ni); - struct sample_node *sn = ATH_NODE_SAMPLE(an); - int x = 0; - int y = 0; + /* + * Process intermediate rates that failed. + */ - for (y = 0; y < NUM_PACKET_SIZE_BINS; y++) { - int size = bin_to_size(y); - sn->packets_sent[y] = 0; - sn->sample_num[y] = 0; + rate0 = sc->sc_hwmap[ads->xmit_rate0].ieeerate; + tries0 = ads->xmit_tries0; + ndx0 = rate_to_ndx(sn, rate0); + + rate1 = sc->sc_hwmap[ads->xmit_rate1].ieeerate; + tries1 = ads->xmit_tries1; + ndx1 = rate_to_ndx(sn, rate1); + + rate2 = sc->sc_hwmap[ads->xmit_rate2].ieeerate; + tries2 = ads->xmit_tries2; + ndx2 = rate_to_ndx(sn, rate2); + + rate3 = sc->sc_hwmap[ads->xmit_rate3].ieeerate; + tries3 = ads->xmit_tries3; + ndx3 = rate_to_ndx(sn, rate3); + +#if 1 + DPRINTF(sc, "%s: %s size %d finaltsidx %d tries %d status %d rate/try %d/%d %d/%d %d/%d %d/%d\n", + __func__, ether_sprintf(an->an_node.ni_macaddr), + bin_to_size(size_to_bin(frame_size)), + finalTSIdx, + long_tries, + ds->ds_txstat.ts_status, + rate0, tries0, + rate1, tries1, + rate2, tries2, + rate3, tries3); +#endif - for (x = 0; x < ni->ni_rates.rs_nrates; x++) { - sn->stats[y][x].successive_failures = 0; - sn->stats[y][x].tries = 0; - sn->stats[y][x].total_packets = 0; - sn->stats[y][x].packets_acked = 0; - sn->stats[y][x].last_tx = 0; - sn->stats[y][x].perfect_tx_time = calc_usecs_unicast_packet(sc, size, - sn->rates[x].rix, - 0); - sn->stats[y][x].average_tx_time = sn->stats[y][x].perfect_tx_time; + if (tries0) { + update_stats(sc, an, frame_size, + ndx0, tries0, + ndx1, tries1, + ndx2, tries2, + ndx3, tries3, + short_tries, ds->ds_txstat.ts_longretry + 1, + ds->ds_txstat.ts_status); + } + + if (tries1 && finalTSIdx > 0) { + update_stats(sc, an, frame_size, + ndx1, tries1, + ndx2, tries2, + ndx3, tries3, + 0, 0, + short_tries, ds->ds_txstat.ts_longretry + 1 - tries0, + ds->ds_txstat.ts_status); + } - - DPRINTF(sc, "%s: %d rate %d rix %d rateCode %d perfect_tx_time %d \n", __func__, - x, sn->rates[x].rate, - sn->rates[x].rix, sn->rates[x].rateCode, - sn->stats[0][x].perfect_tx_time); + if (tries2 && finalTSIdx > 1) { + update_stats(sc, an, frame_size, + ndx2, tries2, + ndx3, tries3, + 0, 0, + 0, 0, + short_tries, ds->ds_txstat.ts_longretry + 1 - tries0 - tries1, + ds->ds_txstat.ts_status); } + if (tries3 && finalTSIdx > 2) { + update_stats(sc, an, frame_size, + ndx3, tries3, + 0, 0, + 0, 0, + 0, 0, + short_tries, ds->ds_txstat.ts_longretry + 1 - tries0 - tries1 - tries2, + ds->ds_txstat.ts_status); + } } - - /* set the visible bit-rate to the lowest one available */ - ni->ni_txrate = 0; +} +void +ath_rate_newassoc(struct ath_softc *sc, struct ath_node *an, int isnew) +{ + DPRINTF(sc, "%s: %s isnew %d\n", __func__, + ether_sprintf(an->an_node.ni_macaddr), isnew); + if (isnew) + ath_rate_ctl_reset(sc, &an->an_node); } /* * Initialize the tables for a node. */ static void -ath_rate_ctl_start(struct ath_softc *sc, struct ieee80211_node *ni) +ath_rate_ctl_reset(struct ath_softc *sc, struct ieee80211_node *ni) { #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) struct ieee80211com *ic = &sc->sc_ic; struct ath_node *an = ATH_NODE(ni); struct sample_node *sn = ATH_NODE_SAMPLE(an); const HAL_RATE_TABLE *rt = sc->sc_currates; + int x, y, srate; - int x; - int srate; - - DPRINTF(sc, "%s:\n", __func__); KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode)); - KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates")); sn->static_rate_ndx = -1; if (ic->ic_fixed_rate != -1) { /* @@ -514,20 +703,58 @@ KASSERT(srate >= 0, ("fixed rate %d not in rate set", ic->ic_fixed_rate)); sn->static_rate_ndx = srate; - } + + DPRINTF(sc, "%s: %s size 1600 rate/tt", __func__, ether_sprintf(ni->ni_macaddr)); + sn->num_rates = ni->ni_rates.rs_nrates; for (x = 0; x < ni->ni_rates.rs_nrates; x++) { - sn->rates[x].rate = ni->ni_rates.rs_rates[x] & IEEE80211_RATE_VAL; - sn->rates[x].rix = sc->sc_rixmap[sn->rates[x].rate]; - sn->rates[x].rateCode = rt->info[sn->rates[x].rix].rateCode; - sn->rates[x].shortPreambleRateCode = - rt->info[sn->rates[x].rix].rateCode | - rt->info[sn->rates[x].rix].shortPreamble; + sn->rates[x].rate = ni->ni_rates.rs_rates[x] & IEEE80211_RATE_VAL; + sn->rates[x].rix = sc->sc_rixmap[sn->rates[x].rate]; + sn->rates[x].rateCode = rt->info[sn->rates[x].rix].rateCode; + sn->rates[x].shortPreambleRateCode = + rt->info[sn->rates[x].rix].rateCode | + rt->info[sn->rates[x].rix].shortPreamble; + + DPRINTF(sc, " %d/%d", sn->rates[x].rate, + calc_usecs_unicast_packet(sc, 1600, sn->rates[x].rix, + 0,0)); + } + DPRINTF(sc, "%s\n", ""); + + /* set the visible bit-rate to the lowest one available */ + ni->ni_txrate = 0; + sn->num_rates = ni->ni_rates.rs_nrates; + + for (y = 0; y < NUM_PACKET_SIZE_BINS; y++) { + int size = bin_to_size(y); + sn->packets_sent[y] = 0; + sn->current_sample_ndx[y] = -1; + sn->last_sample_ndx[y] = 0; + + for (x = 0; x < ni->ni_rates.rs_nrates; x++) { + sn->stats[y][x].successive_failures = 0; + sn->stats[y][x].tries = 0; + sn->stats[y][x].total_packets = 0; + sn->stats[y][x].packets_acked = 0; + sn->stats[y][x].last_tx = 0; + + sn->stats[y][x].perfect_tx_time = + calc_usecs_unicast_packet(sc, size, + sn->rates[x].rix, + 0, 0); + sn->stats[y][x].average_tx_time = sn->stats[y][x].perfect_tx_time; + } } - ath_rate_ctl_reset(sc, ni); +#undef RATE +} + +static void +rate_cb(void *arg, struct ieee80211_node *ni) +{ + struct ath_softc *sc = arg; -#undef RATE + ath_rate_newassoc(sc, ATH_NODE(ni), 1); } /* @@ -538,8 +765,15 @@ { struct ieee80211com *ic = &sc->sc_ic; - if (state == IEEE80211_S_RUN) + if (state == IEEE80211_S_RUN) { + if (ic->ic_opmode != IEEE80211_M_STA) { + /* + * Sync rates for associated stations and neighbors. + */ + ieee80211_iterate_nodes(&ic->ic_sta, rate_cb, sc); + } ath_rate_newassoc(sc, ATH_NODE(ic->ic_bss), 1); + } } static void @@ -591,7 +825,7 @@ switch (type) { case MOD_LOAD: if (bootverbose) - printf("ath_rate: \n"); + printf("ath_rate: version 1.2 \n"); return 0; case MOD_UNLOAD: return 0; @@ -606,4 +840,5 @@ }; DECLARE_MODULE(ath_rate, sample_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); MODULE_VERSION(ath_rate, 1); +MODULE_DEPEND(ath_rate, ath_hal, 1, 1, 1); /* Atheros HAL */ MODULE_DEPEND(ath_rate, wlan, 1, 1, 1); ==== //depot/projects/wifi/sys/dev/ath/ath_rate/sample/sample.h#3 (text+ko) ==== @@ -33,6 +33,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. * + * $FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.h,v 1.3 2005/03/20 01:27:33 sam Exp $ */ /* @@ -58,12 +59,12 @@ struct rate_stats { - int average_tx_time; + unsigned average_tx_time; int successive_failures; int tries; int total_packets; int packets_acked; - int perfect_tx_time; /* transmit time for 0 retries */ + unsigned perfect_tx_time; /* transmit time for 0 retries */ int last_tx; }; @@ -82,9 +83,17 @@ struct rate_info rates[IEEE80211_RATE_MAXSIZE]; struct rate_stats stats[NUM_PACKET_SIZE_BINS][IEEE80211_RATE_MAXSIZE]; - int sample_num[NUM_PACKET_SIZE_BINS]; + int last_sample_ndx[NUM_PACKET_SIZE_BINS]; + + int current_sample_ndx[NUM_PACKET_SIZE_BINS]; int packets_sent[NUM_PACKET_SIZE_BINS]; + int current_rate[NUM_PACKET_SIZE_BINS]; + int packets_since_switch[NUM_PACKET_SIZE_BINS]; + unsigned jiffies_since_switch[NUM_PACKET_SIZE_BINS]; + + int packets_since_sample[NUM_PACKET_SIZE_BINS]; + unsigned sample_tt[NUM_PACKET_SIZE_BINS]; }; #define ATH_NODE_SAMPLE(an) ((struct sample_node *)&an[1]) @@ -98,35 +107,141 @@ #define WIFI_CW_MIN 31 #define WIFI_CW_MAX 1023 +struct ar5212_desc { + /* + * tx_control_0 + */ + u_int32_t frame_len:12; + u_int32_t reserved_12_15:4; + u_int32_t xmit_power:6; + u_int32_t rts_cts_enable:1; + u_int32_t veol:1; + u_int32_t clear_dest_mask:1; + u_int32_t ant_mode_xmit:4; + u_int32_t inter_req:1; + u_int32_t encrypt_key_valid:1; + u_int32_t cts_enable:1; + + /* + * tx_control_1 + */ + u_int32_t buf_len:12; + u_int32_t more:1; + u_int32_t encrypt_key_index:7; + u_int32_t frame_type:4; + u_int32_t no_ack:1; + u_int32_t comp_proc:2; + u_int32_t comp_iv_len:2; + u_int32_t comp_icv_len:2; + u_int32_t reserved_31:1; + + /* + * tx_control_2 + */ + u_int32_t rts_duration:15; + u_int32_t duration_update_enable:1; + u_int32_t xmit_tries0:4; + u_int32_t xmit_tries1:4; + u_int32_t xmit_tries2:4; + u_int32_t xmit_tries3:4; + + /* + * tx_control_3 + */ + u_int32_t xmit_rate0:5; + u_int32_t xmit_rate1:5; + u_int32_t xmit_rate2:5; + u_int32_t xmit_rate3:5; + u_int32_t rts_cts_rate:5; + u_int32_t reserved_25_31:7; + + /* + * tx_status_0 + */ + u_int32_t frame_xmit_ok:1; + u_int32_t excessive_retries:1; + u_int32_t fifo_underrun:1; + u_int32_t filtered:1; + u_int32_t rts_fail_count:4; + u_int32_t data_fail_count:4; + u_int32_t virt_coll_count:4; + u_int32_t send_timestamp:16; + + /* + * tx_status_1 + */ + u_int32_t done:1; + u_int32_t seq_num:12; + u_int32_t ack_sig_strength:8; + u_int32_t final_ts_index:2; + u_int32_t comp_success:1; + u_int32_t xmit_antenna:1; + u_int32_t reserved_25_31_x:7; +} __packed; + /* * Calculate the transmit duration of a frame. */ static unsigned calc_usecs_unicast_packet(struct ath_softc *sc, int length, - int rix, int retries) { + int rix, int short_retries, int long_retries) { const HAL_RATE_TABLE *rt = sc->sc_currates; - /* pg 205 ieee.802.11.pdf */ unsigned t_slot = 20; unsigned t_difs = 50; unsigned t_sifs = 10; + struct ieee80211com *ic = &sc->sc_ic; int tt = 0; int x = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Mar 30 22:57:10 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF1C116A4D0; Wed, 30 Mar 2005 22:57: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 A956716A4CE for ; Wed, 30 Mar 2005 22:57:09 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 929BA43D41 for ; Wed, 30 Mar 2005 22:57:09 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2UMv9YW073793 for ; Wed, 30 Mar 2005 22:57:09 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2UMv9tF073790 for perforce@freebsd.org; Wed, 30 Mar 2005 22:57:09 GMT (envelope-from jhb@freebsd.org) Date: Wed, 30 Mar 2005 22:57:09 GMT Message-Id: <200503302257.j2UMv9tF073790@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74136 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, 30 Mar 2005 22:57:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=74136 Change 74136 by jhb@jhb_twclab on 2005/03/30 22:56:52 Compile. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#18 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#18 (text+ko) ==== @@ -245,11 +245,11 @@ /* * We assume that a = b will do atomic loads and stores. */ -#define ATOMIC_STORE_LOAD(TYPE, WIDTH) \ -static __inline u_##TYPE \ -atomic_load_acq_##WIDTH(volatile u_##TYPE *p) \ +#define ATOMIC_STORE_LOAD(WIDTH) \ +static __inline u_int##WIDTH##_t \ +atomic_load_acq_##WIDTH(volatile u_int##WIDTH##_t *p) \ { \ - u_##TYPE v; \ + u_int##WIDTH##_t v; \ \ v = *p; \ alpha_mb(); \ @@ -258,7 +258,7 @@ } \ \ static __inline void \ -atomic_store_rel_##WIDTH(volatile u_##TYPE *p, u_##TYPE v)\ +atomic_store_rel_##WIDTH(volatile u_int##WIDTH##_t *p, u_int##WIDTH##_t v)\ { \ alpha_wmb(); \ *p = v; \ From owner-p4-projects@FreeBSD.ORG Thu Mar 31 16:26:48 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C8ABB16A4D0; Thu, 31 Mar 2005 16:26: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 A1D7B16A4CE for ; Thu, 31 Mar 2005 16:26:47 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6EA5E43D4C for ; Thu, 31 Mar 2005 16:26:47 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VGQllS041946 for ; Thu, 31 Mar 2005 16:26:47 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VGQl6t041943 for perforce@freebsd.org; Thu, 31 Mar 2005 16:26:47 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 16:26:47 GMT Message-Id: <200503311626.j2VGQl6t041943@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74188 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, 31 Mar 2005 16:26:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=74188 Change 74188 by jhb@jhb_slimer on 2005/03/31 16:26:25 Put back some memory clobbers to narrow down why I now get panics. Still have a few more archs to go. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#19 edit .. //depot/projects/smpng/sys/amd64/include/atomic.h#13 edit .. //depot/projects/smpng/sys/arm/include/atomic.h#8 edit .. //depot/projects/smpng/sys/i386/include/atomic.h#29 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#19 (text+ko) ==== @@ -61,7 +61,8 @@ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -76,7 +77,8 @@ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -91,7 +93,8 @@ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -106,7 +109,8 @@ "stl_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -122,7 +126,8 @@ "stl_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ : "=&r"(result), "=&r"(temp), "=m" (*addr) - : "m" (*addr)); + : "m" (*addr) + : "memory"); #endif return result; @@ -139,7 +144,8 @@ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -154,7 +160,8 @@ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -169,7 +176,8 @@ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -184,7 +192,8 @@ "stq_c %0, %1\n\t" /* attempt to store */ "beq %0, 1b\n" /* spin if failed */ : "=&r" (temp), "=m" (*p) - : "r" (v), "m" (*p)); + : "r" (v), "m" (*p) + : "memory"); #endif } @@ -200,7 +209,8 @@ "stq_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ : "=&r"(result), "=&r"(temp), "+m" (*addr) - : "m" (*addr)); + : "m" (*addr) + : "memory"); #endif return result; @@ -264,8 +274,6 @@ *p = v; \ } -ATOMIC_STORE_LOAD(8) -ATOMIC_STORE_LOAD(16) ATOMIC_STORE_LOAD(32) ATOMIC_STORE_LOAD(64) @@ -291,7 +299,8 @@ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" : "=&r" (ret), "=m" (*p) - : "r" ((long)(int)cmpval), "r" (newval), "m" (*p)); + : "r" ((long)(int)cmpval), "r" (newval), "m" (*p) + : "memory"); #endif return ret; @@ -317,7 +326,8 @@ "beq %0, 1b\n\t" /* if it failed, spin */ "2:\n" : "=&r" (ret), "=m" (*p) - : "r" (cmpval), "r" (newval), "m" (*p)); + : "r" (cmpval), "r" (newval), "m" (*p) + : "memory"); #endif return ret; @@ -372,8 +382,6 @@ #define atomic_subtract_char atomic_subtract_8 #define atomic_subtract_acq_char atomic_subtract_acq_8 #define atomic_subtract_rel_char atomic_subtract_rel_8 -#define atomic_load_acq_char atomic_load_acq_8 -#define atomic_store_rel_char atomic_store_rel_8 /* Operations on shorts. */ #define atomic_set_short atomic_set_16 @@ -388,8 +396,6 @@ #define atomic_subtract_short atomic_subtract_16 #define atomic_subtract_acq_short atomic_subtract_acq_16 #define atomic_subtract_rel_short atomic_subtract_rel_16 -#define atomic_load_acq_short atomic_load_acq_16 -#define atomic_store_rel_short atomic_store_rel_16 /* Operations on ints. */ #define atomic_set_int atomic_set_32 ==== //depot/projects/smpng/sys/amd64/include/atomic.h#13 (text+ko) ==== @@ -160,7 +160,8 @@ : "+a" (res), /* 0 (result) */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "m" (*dst)); /* 3 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -180,7 +181,8 @@ : "+a" (res), /* 0 (result) */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "m" (*dst)); /* 3 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } ==== //depot/projects/smpng/sys/arm/include/atomic.h#8 (text+ko) ==== @@ -75,7 +75,9 @@ __swp(uint32_t val, volatile uint32_t *ptr) { __asm __volatile("swp %0, %2, [%3]" - : "=&r" (val), "=m" (*ptr) : "r" (val) , "r" (ptr), "m" (*ptr)); + : "=&r" (val), "=m" (*ptr) + : "r" (val) , "r" (ptr), "m" (*ptr) + : "memory"); return (val); } ==== //depot/projects/smpng/sys/i386/include/atomic.h#29 (text+ko) ==== @@ -143,7 +143,8 @@ : "+a" (res), /* 0 (result) */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "m" (*dst)); /* 3 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -165,7 +166,8 @@ : "+a" (res), /* 0 (result) */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "m" (*dst)); /* 3 */ + "m" (*dst) /* 3 */ + : "memory"); return (res); } @@ -294,15 +296,7 @@ ATOMIC_ACQ(add, int); ATOMIC_ACQ(subtract, int); -static __inline int -atomic_cmpset_acq_int(volatile u_int *dst, u_int exp, u_int src) -{ - int retval; - - retval = atomic_cmpset_int(dst, exp, src); - __asm __volatile("" ::: "memory"); - return (retval); -} +#define atomic_cmpset_acq_int atomic_cmpset_int /* Release variants are identical to the normal ones. */ #define atomic_set_rel_char atomic_set_char From owner-p4-projects@FreeBSD.ORG Thu Mar 31 20:45:08 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E513116A4D0; Thu, 31 Mar 2005 20:45: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 BE24F16A4CE for ; Thu, 31 Mar 2005 20:45:07 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A36E743D54 for ; Thu, 31 Mar 2005 20:45:07 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VKj7m0059314 for ; Thu, 31 Mar 2005 20:45:07 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VKj7Dv059310 for perforce@freebsd.org; Thu, 31 Mar 2005 20:45:07 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 20:45:07 GMT Message-Id: <200503312045.j2VKj7Dv059310@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74206 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, 31 Mar 2005 20:45:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=74206 Change 74206 by jhb@jhb_slimer on 2005/03/31 20:45:05 Mark the memory as an output, not just an input. Affected files ... .. //depot/projects/smpng/sys/sparc64/include/cpufunc.h#22 edit Differences ... ==== //depot/projects/smpng/sys/sparc64/include/cpufunc.h#22 (text+ko) ==== @@ -62,15 +62,17 @@ #define casa(rs1, rs2, rd, asi) ({ \ u_int __rd = (uint32_t)(rd); \ - __asm __volatile("casa [%1] %2, %3, %0" \ - : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1));\ + __asm __volatile("casa [%2] %3, %4, %0" \ + : "+r" (__rd), "=m" (*rs1) \ + : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1)); \ __rd; \ }) #define casxa(rs1, rs2, rd, asi) ({ \ u_long __rd = (uint64_t)(rd); \ - __asm __volatile("casxa [%1] %2, %3, %0" \ - : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1));\ + __asm __volatile("casxa [%2] %3, %4, %0" \ + : "+r" (__rd), "=m" (*rs1) \ + : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1)); \ __rd; \ }) From owner-p4-projects@FreeBSD.ORG Thu Mar 31 20:46:10 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0885116A4D0; Thu, 31 Mar 2005 20:46:10 +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 BA84516A4CE for ; Thu, 31 Mar 2005 20:46:09 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7A15C43D2F for ; Thu, 31 Mar 2005 20:46:09 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VKk9gV059430 for ; Thu, 31 Mar 2005 20:46:09 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VKk9AC059427 for perforce@freebsd.org; Thu, 31 Mar 2005 20:46:09 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 20:46:09 GMT Message-Id: <200503312046.j2VKk9AC059427@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74207 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, 31 Mar 2005 20:46:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=74207 Change 74207 by jhb@jhb_slimer on 2005/03/31 20:45:40 Finish undoing memory clobber dinking on other archs. Affected files ... .. //depot/projects/smpng/sys/ia64/include/atomic.h#8 edit .. //depot/projects/smpng/sys/powerpc/include/atomic.h#11 edit .. //depot/projects/smpng/sys/sparc64/include/atomic.h#11 edit Differences ... ==== //depot/projects/smpng/sys/ia64/include/atomic.h#8 (text+ko) ==== @@ -37,13 +37,13 @@ /* * Everything is built out of cmpxchg. */ -#define IA64_CMPXCHG(sz, sem, p, cmpval, newval, ret, clobber) \ +#define IA64_CMPXCHG(sz, sem, p, cmpval, newval, ret) \ __asm __volatile ( \ "mov ar.ccv=%2;;\n\t" \ "cmpxchg" #sz "." #sem " %0=%4,%3,ar.ccv\n\t" \ : "=r" (ret), "=m" (*p) \ : "r" (cmpval), "r" (newval), "m" (*p) \ - : clobber) + : "memory") /* * Some common forms of cmpxch. @@ -52,7 +52,7 @@ ia64_cmpxchg_acq_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval) { uint32_t ret; - IA64_CMPXCHG(4, acq, p, cmpval, newval, ret, "memory"); + IA64_CMPXCHG(4, acq, p, cmpval, newval, ret); return (ret); } @@ -60,7 +60,7 @@ ia64_cmpxchg_rel_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval) { uint32_t ret; - IA64_CMPXCHG(4, rel, p, cmpval, newval, ret, ""); + IA64_CMPXCHG(4, rel, p, cmpval, newval, ret); return (ret); } @@ -68,7 +68,7 @@ ia64_cmpxchg_acq_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval) { uint64_t ret; - IA64_CMPXCHG(8, acq, p, cmpval, newval, ret, "memory"); + IA64_CMPXCHG(8, acq, p, cmpval, newval, ret); return (ret); } @@ -76,7 +76,7 @@ ia64_cmpxchg_rel_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval) { uint64_t ret; - IA64_CMPXCHG(8, rel, p, cmpval, newval, ret, ""); + IA64_CMPXCHG(8, rel, p, cmpval, newval, ret); return (ret); } @@ -112,7 +112,7 @@ ia64_st_rel_##width(volatile uint##width##_t* p, uint##width##_t v) \ { \ __asm __volatile ("st" size ".rel %0=%1" : "=m" (*p) \ - : "r" (v)); \ + : "r" (v) : "memory"); \ } \ \ static __inline void \ @@ -120,7 +120,7 @@ uint##width##_t v) \ { \ __asm __volatile ("st" size ".rel %0=%1" : "=m" (*p) \ - : "r" (v)); \ + : "r" (v) : "memory"); \ } \ \ static __inline void \ @@ -128,7 +128,7 @@ uint##width##_t v) \ { \ __asm __volatile ("st" size ".rel %0=%1" : "=m" (*p) \ - : "r" (v)); \ + : "r" (v) : "memory"); \ } ATOMIC_STORE_LOAD(char, 8, "1") @@ -148,7 +148,7 @@ type old, ret; \ do { \ old = *p; \ - IA64_CMPXCHG(sz, acq, p, old, old op v, ret, "memory");\ + IA64_CMPXCHG(sz, acq, p, old, old op v, ret); \ } while (ret != old); \ return (old); \ } \ @@ -159,7 +159,7 @@ type old, ret; \ do { \ old = *p; \ - IA64_CMPXCHG(sz, rel, p, old, old op v, ret, "");\ + IA64_CMPXCHG(sz, rel, p, old, old op v, ret); \ } while (ret != old); \ return (old); \ } ==== //depot/projects/smpng/sys/powerpc/include/atomic.h#11 (text+ko) ==== @@ -65,7 +65,7 @@ "bne- 1b\n\t" /* spin if failed */ : "=&r" (temp), "=m" (*p) : "r" (p), "r" (v), "m" (*p) - : "cc"); + : "cc", "memory"); #endif } @@ -82,7 +82,7 @@ "bne- 1b\n\t" /* spin if failed */ : "=&r" (temp), "=m" (*p) : "r" (p), "r" (v), "m" (*p) - : "cc"); + : "cc", "memory"); #endif } @@ -99,7 +99,7 @@ "bne- 1b\n\t" /* spin if failed */ : "=&r" (temp), "=m" (*p) : "r" (p), "r" (v), "m" (*p) - : "cc"); + : "cc", "memory"); #endif } @@ -116,7 +116,7 @@ "bne- 1b\n\t" /* spin if failed */ : "=&r" (temp), "=m" (*p) : "r" (p), "r" (v), "m" (*p) - : "cc"); + : "cc", "memory"); #endif } @@ -134,7 +134,7 @@ "bne- 1b\n\t" /* spin if failed */ : "=&r"(result), "=&r"(temp), "=m" (*addr) : "r" (addr), "m" (*p) - : "cc"); + : "cc", "memory"); #endif return (result); @@ -253,7 +253,6 @@ { \ atomic_##NAME##_##WIDTH(p, v); \ powerpc_mb(); \ - __asm __volatile("" ::: "memory"); \ } \ \ static __inline void \ @@ -268,7 +267,6 @@ { \ atomic_##NAME##_##WIDTH(p, v); \ powerpc_mb(); \ - __asm __volatile("" ::: "memory"); \ } \ \ static __inline void \ @@ -322,7 +320,6 @@ \ v = *p; \ powerpc_mb(); \ - __asm __volatile("" ::: "memory"); \ return (v); \ } \ \ @@ -387,7 +384,7 @@ "3:\n\t" : "=&r" (ret), "=m" (*p) : "r" (p), "r" (cmpval), "r" (newval), "m" (*p) - : "cc"); + : "cc", "memory"); #endif return (ret); @@ -430,7 +427,6 @@ retval = atomic_cmpset_32(p, cmpval, newval); powerpc_mb(); - __asm __volatile("" ::: "memory"); return (retval); } ==== //depot/projects/smpng/sys/sparc64/include/atomic.h#11 (text+ko) ==== @@ -90,7 +90,6 @@ itype(sz) v; \ v = atomic_cas(p, e, s, sz); \ membar(LoadLoad | LoadStore); \ - __asm __volatile("" : : : "memory"); \ v; \ }) @@ -116,7 +115,6 @@ itype(sz) t; \ t = atomic_op(p, op, v, sz); \ membar(LoadLoad | LoadStore); \ - __asm __volatile("" : : : "memory"); \ t; \ }) @@ -134,7 +132,6 @@ itype(sz) v; \ v = atomic_load(p, sz); \ membar(LoadLoad | LoadStore); \ - __asm __volatile("" : : : "memory"); \ v; \ }) From owner-p4-projects@FreeBSD.ORG Thu Mar 31 21:02:30 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 521BB16A4D0; Thu, 31 Mar 2005 21:02: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 2C59816A4CE for ; Thu, 31 Mar 2005 21:02:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0BEC443D54 for ; Thu, 31 Mar 2005 21:02:30 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VL2Tfi066898 for ; Thu, 31 Mar 2005 21:02:29 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VL2TY1066895 for perforce@freebsd.org; Thu, 31 Mar 2005 21:02:29 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 21:02:29 GMT Message-Id: <200503312102.j2VL2TY1066895@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74209 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, 31 Mar 2005 21:02:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=74209 Change 74209 by jhb@jhb_slimer on 2005/03/31 21:01:38 Revert MTX_FLAGMASK changes (refix mtx_owned() since I hadn't updated it). Affected files ... .. //depot/projects/smpng/sys/kern/kern_mutex.c#96 edit .. //depot/projects/smpng/sys/sys/mutex.h#52 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_mutex.c#96 (text+ko) ==== @@ -89,7 +89,7 @@ #define mtx_unowned(m) ((m)->mtx_lock == MTX_UNOWNED) #define mtx_owner(m) (mtx_unowned((m)) ? NULL \ - : (struct thread *)((m)->mtx_lock & ~MTX_FLAGMASK)) + : (struct thread *)((m)->mtx_lock & MTX_FLAGMASK)) /* * Lock classes for sleep and spin mutexes. @@ -518,7 +518,7 @@ * If the current owner of the lock is executing on another * CPU, spin instead of blocking. */ - owner = (struct thread *)(v & ~MTX_FLAGMASK); + owner = (struct thread *)(v & MTX_FLAGMASK); #ifdef ADAPTIVE_GIANT if (TD_IS_RUNNING(owner)) { #else ==== //depot/projects/smpng/sys/sys/mutex.h#52 (text+ko) ==== @@ -71,7 +71,7 @@ #define MTX_RECURSED 0x00000001 /* lock recursed (for MTX_DEF only) */ #define MTX_CONTESTED 0x00000002 /* lock contested (for MTX_DEF only) */ #define MTX_UNOWNED 0x00000004 /* Cookie for free mutex */ -#define MTX_FLAGMASK (MTX_RECURSED | MTX_CONTESTED) +#define MTX_FLAGMASK ~(MTX_RECURSED | MTX_CONTESTED) #endif /* _KERNEL */ @@ -322,7 +322,7 @@ #define mtx_initialized(m) ((m)->mtx_object.lo_flags & LO_INITIALIZED) -#define mtx_owned(m) (((m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) +#define mtx_owned(m) (((m)->mtx_lock & ~MTX_FLAGMASK) == (uintptr_t)curthread) #define mtx_recursed(m) ((m)->mtx_recurse != 0) From owner-p4-projects@FreeBSD.ORG Thu Mar 31 21:04:33 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8402516A4D0; Thu, 31 Mar 2005 21:04:33 +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 4792C16A4CE for ; Thu, 31 Mar 2005 21:04:33 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1DA5843D48 for ; Thu, 31 Mar 2005 21:04:33 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VL4XV5066970 for ; Thu, 31 Mar 2005 21:04:33 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VL4WcC066967 for perforce@freebsd.org; Thu, 31 Mar 2005 21:04:32 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 21:04:32 GMT Message-Id: <200503312104.j2VL4WcC066967@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74210 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, 31 Mar 2005 21:04:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=74210 Change 74210 by jhb@jhb_slimer on 2005/03/31 21:03:35 Revert more gcc memory clobber changes and fix a "+m" constraint that was left around. I think I'm going to mostly punt on trying to relax the "memory" clobbers for now (except on amd64 where membars weren't implemented _at all_) and do that later. Instead, I'm focusing on 1) changing atomic_ptr() to use uintptr_t because it makes things much simpler, and 2) removing +m constraints since + is only supposed to be used with registers according to gcc info. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#20 edit .. //depot/projects/smpng/sys/i386/include/atomic.h#30 edit Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#20 (text+ko) ==== @@ -208,7 +208,7 @@ "ldiq %1,0\n\t" /* value to store */ "stq_c %1,%2\n\t" /* attempt to store */ "beq %1,1b\n" /* if the store failed, spin */ - : "=&r"(result), "=&r"(temp), "+m" (*addr) + : "=&r"(result), "=&r"(temp), "=m" (*addr) : "m" (*addr) : "memory"); #endif @@ -222,7 +222,6 @@ { \ atomic_##NAME##_##WIDTH(p, v); \ alpha_mb(); \ - __asm __volatile("" ::: "memory"); \ } \ \ static __inline void \ @@ -263,7 +262,6 @@ \ v = *p; \ alpha_mb(); \ - __asm __volatile("" ::: "memory"); \ return (v); \ } \ \ @@ -340,7 +338,6 @@ retval = atomic_cmpset_32(p, cmpval, newval); alpha_mb(); - __asm __volatile("" ::: "memory"); return (retval); } @@ -358,7 +355,6 @@ retval = atomic_cmpset_64(p, cmpval, newval); alpha_mb(); - __asm __volatile("" ::: "memory"); return (retval); } ==== //depot/projects/smpng/sys/i386/include/atomic.h#30 (text+ko) ==== @@ -271,48 +271,34 @@ #if !defined(WANT_FUNCTIONS) -/* Acquire variants that add a "memory" clobber. */ -#define ATOMIC_ACQ(NAME, TYPE) \ -static __inline void \ -atomic_##NAME##_acq_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ -{ \ - atomic_##NAME##_##TYPE(p, v); \ - __asm __volatile("" ::: "memory"); \ -} \ -struct __hack - -ATOMIC_ACQ(set, char); -ATOMIC_ACQ(clear, char); -ATOMIC_ACQ(add, char); -ATOMIC_ACQ(subtract, char); - -ATOMIC_ACQ(set, short); -ATOMIC_ACQ(clear, short); -ATOMIC_ACQ(add, short); -ATOMIC_ACQ(subtract, short); - -ATOMIC_ACQ(set, int); -ATOMIC_ACQ(clear, int); -ATOMIC_ACQ(add, int); -ATOMIC_ACQ(subtract, int); - -#define atomic_cmpset_acq_int atomic_cmpset_int - -/* Release variants are identical to the normal ones. */ +/* Acquire and release variants are identical to the normal ones. */ +#define atomic_set_acq_char atomic_set_char #define atomic_set_rel_char atomic_set_char +#define atomic_clear_acq_char atomic_clear_char #define atomic_clear_rel_char atomic_clear_char +#define atomic_add_acq_char atomic_add_char #define atomic_add_rel_char atomic_add_char +#define atomic_subtract_acq_char atomic_subtract_char #define atomic_subtract_rel_char atomic_subtract_char +#define atomic_set_acq_short atomic_set_short #define atomic_set_rel_short atomic_set_short +#define atomic_clear_acq_short atomic_clear_short #define atomic_clear_rel_short atomic_clear_short +#define atomic_add_acq_short atomic_add_short #define atomic_add_rel_short atomic_add_short +#define atomic_subtract_acq_short atomic_subtract_short #define atomic_subtract_rel_short atomic_subtract_short +#define atomic_set_acq_int atomic_set_int #define atomic_set_rel_int atomic_set_int +#define atomic_clear_acq_int atomic_clear_int #define atomic_clear_rel_int atomic_clear_int +#define atomic_add_acq_int atomic_add_int #define atomic_add_rel_int atomic_add_int +#define atomic_subtract_acq_int atomic_subtract_int #define atomic_subtract_rel_int atomic_subtract_int +#define atomic_cmpset_acq_int atomic_cmpset_int #define atomic_cmpset_rel_int atomic_cmpset_int /* Read the current value and store a zero in the destination. */ From owner-p4-projects@FreeBSD.ORG Thu Mar 31 22:06:53 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2D8C16A4D0; Thu, 31 Mar 2005 22:06: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 8D16816A4CE for ; Thu, 31 Mar 2005 22:06:52 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5C6FE43D2D for ; Thu, 31 Mar 2005 22:06:52 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2VM6q7Y069956 for ; Thu, 31 Mar 2005 22:06:52 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2VM6qGS069953 for perforce@freebsd.org; Thu, 31 Mar 2005 22:06:52 GMT (envelope-from jhb@freebsd.org) Date: Thu, 31 Mar 2005 22:06:52 GMT Message-Id: <200503312206.j2VM6qGS069953@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74219 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, 31 Mar 2005 22:06:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=74219 Change 74219 by jhb@jhb_slimer on 2005/03/31 22:06:15 Oof, I managed to rebreak mtx_owned() in last submit. Affected files ... .. //depot/projects/smpng/sys/sys/mutex.h#53 edit Differences ... ==== //depot/projects/smpng/sys/sys/mutex.h#53 (text+ko) ==== @@ -322,7 +322,7 @@ #define mtx_initialized(m) ((m)->mtx_object.lo_flags & LO_INITIALIZED) -#define mtx_owned(m) (((m)->mtx_lock & ~MTX_FLAGMASK) == (uintptr_t)curthread) +#define mtx_owned(m) (((m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread) #define mtx_recursed(m) ((m)->mtx_recurse != 0) From owner-p4-projects@FreeBSD.ORG Fri Apr 1 03:20:19 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E9CC416A4D0; Fri, 1 Apr 2005 03:20: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 8CAD716A4CE for ; Fri, 1 Apr 2005 03:20:18 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DC3B43D45 for ; Fri, 1 Apr 2005 03:20:17 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j313KH04089512 for ; Fri, 1 Apr 2005 03:20:17 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j313KHbC089509 for perforce@freebsd.org; Fri, 1 Apr 2005 03:20:17 GMT (envelope-from sam@freebsd.org) Date: Fri, 1 Apr 2005 03:20:17 GMT Message-Id: <200504010320.j313KHbC089509@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74237 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, 01 Apr 2005 03:20:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=74237 Change 74237 by sam@sam_ebb on 2005/04/01 03:19:35 IFC @ 74236 Affected files ... .. //depot/projects/wifi/release/Makefile#7 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#12 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#7 integrate .. //depot/projects/wifi/release/doc/share/misc/dev.archlist.txt#11 integrate .. //depot/projects/wifi/release/scripts/package-split.py#2 integrate .. //depot/projects/wifi/sbin/ffsinfo/ffsinfo.8#3 integrate .. //depot/projects/wifi/sbin/ffsinfo/ffsinfo.c#4 integrate .. //depot/projects/wifi/sbin/growfs/Makefile#3 integrate .. //depot/projects/wifi/share/man/man4/Makefile#17 integrate .. //depot/projects/wifi/share/man/man4/arcmsr.4#1 branch .. //depot/projects/wifi/share/man/man4/cpufreq.4#4 integrate .. //depot/projects/wifi/share/man/man5/rc.conf.5#12 integrate .. //depot/projects/wifi/sys/alpha/osf1/osf1_misc.c#5 integrate .. //depot/projects/wifi/sys/amd64/amd64/db_disasm.c#3 integrate .. //depot/projects/wifi/sys/amd64/conf/GENERIC#7 integrate .. //depot/projects/wifi/sys/amd64/conf/NOTES#5 integrate .. //depot/projects/wifi/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/wifi/sys/cam/cam_xpt.c#9 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_target.c#4 integrate .. //depot/projects/wifi/sys/coda/coda_fbsd.c#5 integrate .. //depot/projects/wifi/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ndis.c#10 integrate .. //depot/projects/wifi/sys/conf/NOTES#16 integrate .. //depot/projects/wifi/sys/conf/files.amd64#9 integrate .. //depot/projects/wifi/sys/conf/files.i386#14 integrate .. //depot/projects/wifi/sys/conf/kern.mk#3 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi.c#11 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx.c#5 integrate .. //depot/projects/wifi/sys/dev/amr/amr.c#8 integrate .. //depot/projects/wifi/sys/dev/arcmsr/arcmsr.c#1 branch .. //depot/projects/wifi/sys/dev/arcmsr/arcmsr.h#1 branch .. //depot/projects/wifi/sys/dev/ata/ata-all.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/ata-cbus.c#3 integrate .. //depot/projects/wifi/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/wifi/sys/dev/ata/ata-disk.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/ata-lowlevel.c#7 integrate .. //depot/projects/wifi/sys/dev/ata/ata-pci.c#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/wifi/sys/dev/ata/ata-queue.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/ata_if.m#2 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-cd.c#5 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-fd.c#3 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-tape.c#4 integrate .. //depot/projects/wifi/sys/dev/ath/if_ath.c#81 integrate .. //depot/projects/wifi/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/hptproc.c#2 integrate .. //depot/projects/wifi/sys/dev/mlx/mlx.c#3 integrate .. //depot/projects/wifi/sys/dev/nmdm/nmdm.c#5 integrate .. //depot/projects/wifi/sys/dev/snp/snp.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/mixer.c#4 integrate .. //depot/projects/wifi/sys/dev/vkbd/vkbd.c#5 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_devs.c#5 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vfsops.c#8 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#19 integrate .. //depot/projects/wifi/sys/i386/conf/GENERIC#7 integrate .. //depot/projects/wifi/sys/i386/conf/NOTES#11 integrate .. //depot/projects/wifi/sys/i386/cpufreq/powernow.c#2 integrate .. //depot/projects/wifi/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/wifi/sys/kern/kern_conf.c#9 integrate .. //depot/projects/wifi/sys/kern/kern_cpu.c#4 integrate .. //depot/projects/wifi/sys/kern/kern_jail.c#4 integrate .. //depot/projects/wifi/sys/kern/kern_linker.c#2 integrate .. //depot/projects/wifi/sys/kern/kern_lock.c#8 integrate .. //depot/projects/wifi/sys/kern/kern_ntptime.c#4 integrate .. //depot/projects/wifi/sys/kern/kern_synch.c#5 integrate .. //depot/projects/wifi/sys/kern/kern_time.c#6 integrate .. //depot/projects/wifi/sys/kern/subr_bus.c#11 integrate .. //depot/projects/wifi/sys/kern/sys_generic.c#8 integrate .. //depot/projects/wifi/sys/kern/tty_pty.c#5 integrate .. //depot/projects/wifi/sys/kern/tty_tty.c#3 integrate .. //depot/projects/wifi/sys/kern/uipc_syscalls.c#11 integrate .. //depot/projects/wifi/sys/kern/vfs_mount.c#18 integrate .. //depot/projects/wifi/sys/kern/vfs_subr.c#19 integrate .. //depot/projects/wifi/sys/kern/vfs_vnops.c#12 integrate .. //depot/projects/wifi/sys/modules/Makefile#17 integrate .. //depot/projects/wifi/sys/modules/arcmsr/Makefile#1 branch .. //depot/projects/wifi/sys/modules/cpufreq/Makefile#4 integrate .. //depot/projects/wifi/sys/net/bpf.c#9 integrate .. //depot/projects/wifi/sys/net/if_tap.c#5 integrate .. //depot/projects/wifi/sys/net/if_tun.c#5 integrate .. //depot/projects/wifi/sys/netsmb/smb_dev.c#4 integrate .. //depot/projects/wifi/sys/nfsclient/nfs_node.c#9 integrate .. //depot/projects/wifi/sys/pci/if_ti.c#7 integrate .. //depot/projects/wifi/sys/posix4/p1003_1b.c#3 integrate .. //depot/projects/wifi/sys/powerpc/powermac/ata_kauai.c#4 integrate .. //depot/projects/wifi/sys/powerpc/powermac/ata_macio.c#4 integrate .. //depot/projects/wifi/sys/powerpc/psim/ata_iobus.c#4 integrate .. //depot/projects/wifi/sys/sys/conf.h#9 integrate .. //depot/projects/wifi/sys/sys/lockmgr.h#6 integrate .. //depot/projects/wifi/sys/sys/proc.h#10 integrate .. //depot/projects/wifi/sys/sys/syscallsubr.h#8 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_rawread.c#7 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_snapshot.c#12 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_vfsops.c#19 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_vnops.c#11 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_extattr.c#8 integrate .. //depot/projects/wifi/sys/vm/vnode_pager.c#15 integrate .. //depot/projects/wifi/usr.bin/calendar/calendars/calendar.freebsd#10 integrate .. //depot/projects/wifi/usr.bin/make/arch.c#11 integrate .. //depot/projects/wifi/usr.bin/make/arch.h#3 integrate .. //depot/projects/wifi/usr.bin/make/buf.c#6 integrate .. //depot/projects/wifi/usr.bin/make/main.c#16 integrate .. //depot/projects/wifi/usr.bin/make/make.1#7 integrate .. //depot/projects/wifi/usr.bin/make/util.h#3 integrate .. //depot/projects/wifi/usr.sbin/Makefile#8 integrate .. //depot/projects/wifi/usr.sbin/config/main.c#3 integrate Differences ... ==== //depot/projects/wifi/release/Makefile#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.881 2005/03/23 15:01:54 jhb Exp $ +# $FreeBSD: src/release/Makefile,v 1.882 2005/03/31 16:19:26 jhb Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -945,6 +945,16 @@ @mkdir -p ${CD_DISC2} @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf @echo "CD_VOLUME = 2" >> ${CD_DISC2}/cdrom.inf +.if !defined(NODOC) + @mkdir -p ${CD_DISC2}/usr/share/doc + @for i in `ls ${CD_LIVEFS}/usr/share/doc`; do \ + if [ -L ${CD_LIVEFS}/usr/share/doc/$$i -o \ + -d /usr/doc/$$i ]; then \ + mv ${CD_LIVEFS}/usr/share/doc/$$i \ + ${CD_DISC2}/usr/share/doc; \ + fi \ + done +.endif touch ${.TARGET} # @@ -998,6 +1008,7 @@ FreeBSD_LiveFS \ ${CD}/${BUILDNAME}-${TARGET}-livefs.iso ${CD_LIVEFS} .endif + @echo "Generating MD5 sums..." @(cd ${CD} && md5 *.iso > ${BUILDNAME}-${TARGET}-iso.CHECKSUM.MD5) touch ${.TARGET} .else ==== //depot/projects/wifi/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#12 (text+ko) ==== @@ -29,7 +29,7 @@ - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.276 2005/03/18 03:12:46 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.277 2005/03/31 20:52:26 brueffer Exp $ Supported Devices @@ -148,6 +148,8 @@ supported due to SRM limitations. + &hwlist.arcmsr; + &hwlist.mlx; ==== //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#7 (text+ko) ==== @@ -3,7 +3,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.835 2005/03/27 17:25:18 delphij Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.838 2005/03/31 16:02:12 bmah Exp $ 2000 @@ -128,6 +128,14 @@ FreeBSD-SA-04:17.procfs. &merged; + Two buffer overflows in the TELNET client program have been + corrected. They could have allowed a malicious TELNET server or + an active network attacker to cause &man.telnet.1; to execute + arbitrary code with the privileges of the user running it. + More information can be found in security advisory + FreeBSD-SA-05:01.telnet. + &merged; + @@ -401,7 +409,7 @@ nVidia nForce MCP Networking Adapter, has been added. The &man.re.4; driver now supports the &man.altq.4; - framework. + framework. &merged; The &man.sf.4; driver now has support for device polling and &man.altq.4;. &merged; @@ -822,6 +830,9 @@ The &man.rescue.8; utilities in the /rescue directory now include &man.bsdtar.1; instead of GNU tar. + The &man.restore.8; utility has regained the ability to read + &os; version 1 dump tapes. + The &man.rm.1; utility now supports an option that asks for confirmation (once) if recursively removing directories or if more than 3 files are listed in the @@ -893,13 +904,13 @@ Korea. &merged; The option of the &man.xargs.1; command - has been changed to conform IEEE Std 1003.1-2004. + has been changed to conform to IEEE Std 1003.1-2004. The standard requires that the constructed arguments cannot grow larger than 255 bytes. A bug, which caused the last line of configuration files such as &man.hosts.5;, &man.services.5;, and so on to be ignored if it did not end in a newline character, - has been fixed. + has been fixed. &merged; <filename>/etc/rc.d</filename> Scripts @@ -1091,7 +1102,7 @@ &man.inet6.rth.space.3;, &man.inet6.rthdr.space.3;, &man.icmp6.4;, and - &man.ip6.4;. + &man.ip6.4;. &merged; ==== //depot/projects/wifi/release/doc/share/misc/dev.archlist.txt#11 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/release/doc/share/misc/dev.archlist.txt,v 1.58 2005/03/18 03:12:47 brueffer Exp $ +# $FreeBSD: src/release/doc/share/misc/dev.archlist.txt,v 1.59 2005/03/31 20:52:27 brueffer Exp $ # # @@ -43,6 +43,7 @@ ahd i386,sparc64,ia64,amd64 aic i386,pc98,amd64 amd i386,pc98,amd64 +arcmsr i386,amd64 asr i386 ath i386 aue i386,pc98,ia64,amd64 ==== //depot/projects/wifi/release/scripts/package-split.py#2 (text+ko) ==== @@ -7,7 +7,7 @@ # # Usage: package-split.py # -# $FreeBSD: src/release/scripts/package-split.py,v 1.3 2005/03/21 20:03:56 jhb Exp $ +# $FreeBSD: src/release/scripts/package-split.py,v 1.4 2005/03/31 13:52:12 kensmith Exp $ import os import sys @@ -100,7 +100,6 @@ 'www/apache2'] if arch == 'i386': pkgs.extend(['comms/ltmdm', - 'print/acroread', 'www/opera']) return pkgs ==== //depot/projects/wifi/sbin/ffsinfo/ffsinfo.8#3 (text+ko) ==== @@ -35,7 +35,7 @@ .\" SUCH DAMAGE. .\" .\" $TSHeader: src/sbin/ffsinfo/ffsinfo.8,v 1.3 2000/12/12 19:30:55 tomsoft Exp $ -.\" $FreeBSD: src/sbin/ffsinfo/ffsinfo.8,v 1.15 2005/01/18 10:09:31 ru Exp $ +.\" $FreeBSD: src/sbin/ffsinfo/ffsinfo.8,v 1.16 2005/03/31 04:05:17 rwatson Exp $ .\" .Dd September 8, 2000 .Dt FSINFO 8 @@ -106,18 +106,19 @@ indirect block dump .El .It Fl o Ar outfile -This allows to change the output filename where the dump is written to. -The current default is -.Pa /var/tmp/ffsinfo . +This allows to set the output filename where the dump is written to, and +must be specified. If .Fl is provided, output will be sent to stdout. .El .Sh EXAMPLES -.Dl ffsinfo -l 1023 /dev/vinum/testvol +.Dl ffsinfo -o /var/tmp/ffsinfo -l 1023 /dev/vinum/testvol .Pp will dump .Pa /dev/vinum/testvol +to +.Pa /var/tmp/ffsinfo with all available information. .Sh SEE ALSO .Xr disklabel 8 , ==== //depot/projects/wifi/sbin/ffsinfo/ffsinfo.c#4 (text+ko) ==== @@ -48,7 +48,7 @@ #ifndef lint static const char rcsid[] = - "$FreeBSD: src/sbin/ffsinfo/ffsinfo.c,v 1.9 2005/02/10 09:19:29 ru Exp $"; + "$FreeBSD: src/sbin/ffsinfo/ffsinfo.c,v 1.10 2005/03/31 04:05:17 rwatson Exp $"; #endif /* not lint */ /* ********************************************************** INCLUDES ***** */ @@ -141,10 +141,7 @@ cfg_lv=0xff; cfg_in=-2; cfg_cg=-2; - out_file=strdup("/var/tmp/ffsinfo"); - if(out_file == NULL) { - errx(1, "strdup failed"); - } + out_file=NULL; while ((ch=getopt(argc, argv, "g:i:l:o:")) != -1) { switch(ch) { @@ -192,6 +189,8 @@ usage(); } device=*argv; + if (out_file == NULL) + errx(1, "out_file not specified"); /* * Now we try to guess the (raw)device name. ==== //depot/projects/wifi/sbin/growfs/Makefile#3 (text+ko) ==== @@ -1,7 +1,7 @@ # @(#)Makefile 8.8 (Berkeley) 6/21/2000 # # $TSHeader: src/sbin/growfs/Makefile,v 1.4 2000/12/05 19:45:24 tomsoft Exp $ -# $FreeBSD: src/sbin/growfs/Makefile,v 1.12 2004/10/24 15:32:37 ru Exp $ +# $FreeBSD: src/sbin/growfs/Makefile,v 1.13 2005/03/31 04:10:31 rwatson Exp $ # #GFSDBG= @@ -14,7 +14,6 @@ .if defined(GFSDBG) SRCS+= debug.c -CFLAGS+=-DFS_DEBUG .endif .include ==== //depot/projects/wifi/share/man/man4/Makefile#17 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.310 2005/03/24 04:45:09 jcamou Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.311 2005/03/31 19:44:15 scottl Exp $ MAN= aac.4 \ acpi.4 \ @@ -16,6 +16,7 @@ altq.4 \ amd.4 \ amr.4 \ + arcmsr.4 \ an.4 \ asr.4 \ ata.4 \ ==== //depot/projects/wifi/share/man/man4/cpufreq.4#4 (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/man4/cpufreq.4,v 1.6 2005/02/26 22:48:04 njl Exp $ +.\" $FreeBSD: src/share/man/man4/cpufreq.4,v 1.7 2005/03/31 06:05:16 njl Exp $ .\" .Dd February 26, 2005 .Dt CPUFREQ 4 @@ -101,6 +101,8 @@ Intel Enhanced SpeedStep .It Pa ichss Intel SpeedStep for ICH +.It Pa powernow +AMD PowerNow! for K7 and K8 .El .Pp The following device drivers offer relative frequency control and ==== //depot/projects/wifi/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.248 2005/03/12 21:10:42 trhodes Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.249 2005/03/31 06:02:44 njl Exp $ .\" .Dd March 12, 2005 .Dt RC.CONF 5 @@ -221,6 +221,13 @@ driver which can lead to system hangs when using some newer .Xr ed 4 based cards. +.It Va powerd_enable +.Pq Vt bool +If set to +.Dq Li YES , +enable the system power control facility with the +.Xr powerd 8 +daemon. .It Va removable_interfaces .Pq Vt str List of removable network interfaces to be supported by ==== //depot/projects/wifi/sys/alpha/osf1/osf1_misc.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.53 2005/02/18 18:37:26 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.54 2005/03/31 22:56:14 jhb Exp $"); #include #include @@ -993,52 +993,61 @@ char *iov_base; int iov_len; }; -#define STACKGAPLEN 400 + +static int +osf1_copyinuio(struct osf1_iovec *iovp, u_int iovcnt, struct uio **uiop) +{ + struct osf1_iovec oiov; + struct iovec *iov; + struct uio *uio; + u_int iovlen; + int error, i; + + *uiop = NULL; + if (iovcnt > UIO_MAXIOV) + return (EINVAL); + iovlen = iovcnt * sizeof(struct iovec); + uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK); + iov = (struct iovec *)(uio + 1); + for (i = 0; i < iovcnt; i++) { + error = copyin(&iovp[i], &oiov, sizeof(struct osf1_iovec)); + if (error) { + free(uio, M_IOV); + return (error); + } + iov[i].iov_base = oiov.iov_base; + iov[i].iov_len = oiov.iov_len; + } + uio->uio_iov = iov; + uio->uio_iovcnt = iovcnt; + uio->uio_segflg = UIO_USERSPACE; + uio->uio_offset = -1; + uio->uio_resid = 0; + for (i = 0; i < iovcnt; i++) { + if (iov->iov_len > INT_MAX - uio->uio_resid) { + free(uio, M_IOV); + return (EINVAL); + } + uio->uio_resid += iov->iov_len; + iov++; + } + *uiop = uio; + return (0); +} + int osf1_readv(td, uap) struct thread *td; struct osf1_readv_args *uap; { - int error, osize, nsize, i; - caddr_t sg; - struct readv_args /* { - syscallarg(int) fd; - syscallarg(struct iovec *) iovp; - syscallarg(u_int) iovcnt; - } */ a; - struct osf1_iovec *oio; - struct iovec *nio; + struct uio *auio; + int error; - sg = stackgap_init(); - - if (uap->iovcnt > (STACKGAPLEN / sizeof (struct iovec))) - return (EINVAL); - - osize = uap->iovcnt * sizeof (struct osf1_iovec); - nsize = uap->iovcnt * sizeof (struct iovec); - - oio = malloc(osize, M_TEMP, M_WAITOK); - nio = malloc(nsize, M_TEMP, M_WAITOK); - - error = 0; - if ((error = copyin(uap->iovp, oio, osize))) - goto punt; - for (i = 0; i < uap->iovcnt; i++) { - nio[i].iov_base = oio[i].iov_base; - nio[i].iov_len = oio[i].iov_len; - } - - a.fd = uap->fd; - a.iovp = stackgap_alloc(&sg, nsize); - a.iovcnt = uap->iovcnt; - - if ((error = copyout(nio, (caddr_t)a.iovp, nsize))) - goto punt; - error = readv(td, &a); - -punt: - free(oio, M_TEMP); - free(nio, M_TEMP); + error = osf1_copyinuio(uap->iovp, uap->iovcnt, &auio); + if (error) + return (error); + error = kern_readv(td, uap->fd, auio); + free(auio, M_IOV); return (error); } @@ -1048,46 +1057,14 @@ struct thread *td; struct osf1_writev_args *uap; { - int error, i, nsize, osize; - caddr_t sg; - struct writev_args /* { - syscallarg(int) fd; - syscallarg(struct iovec *) iovp; - syscallarg(u_int) iovcnt; - } */ a; - struct osf1_iovec *oio; - struct iovec *nio; + struct uio *auio; + int error; - sg = stackgap_init(); - - if (uap->iovcnt > (STACKGAPLEN / sizeof (struct iovec))) - return (EINVAL); - - osize = uap->iovcnt * sizeof (struct osf1_iovec); - nsize = uap->iovcnt * sizeof (struct iovec); - - oio = malloc(osize, M_TEMP, M_WAITOK); - nio = malloc(nsize, M_TEMP, M_WAITOK); - - error = 0; - if ((error = copyin(uap->iovp, oio, osize))) - goto punt; - for (i = 0; i < uap->iovcnt; i++) { - nio[i].iov_base = oio[i].iov_base; - nio[i].iov_len = oio[i].iov_len; - } - - a.fd = uap->fd; - a.iovp = stackgap_alloc(&sg, nsize); - a.iovcnt = uap->iovcnt; - - if ((error = copyout(nio, (caddr_t)a.iovp, nsize))) - goto punt; - error = writev(td, &a); - -punt: - free(oio, M_TEMP); - free(nio, M_TEMP); + error = osf1_copyinuio(uap->iovp, uap->iovcnt, &auio); + if (error) + return (error); + error = kern_writev(td, uap->fd, auio); + free(auio, M_IOV); return (error); } ==== //depot/projects/wifi/sys/amd64/amd64/db_disasm.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.28 2005/01/05 20:17:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.30 2005/03/30 22:57:41 peter Exp $"); /* * Instruction disassembler. @@ -50,6 +50,15 @@ #define NONE 8 /* + * REX prefix and bits + */ +#define REX_B 1 +#define REX_X 2 +#define REX_R 4 +#define REX_W 8 +#define REX 0x40 + +/* * Addressing modes */ #define E 1 /* general effective address */ @@ -85,9 +94,10 @@ #define STI 32 /* FP stack */ #define X 33 /* extended FP op */ #define XA 34 /* for 'fstcw %ax' */ -#define El 35 /* address, long size */ +#define El 35 /* address, long/quad size */ #define Ril 36 /* long register in instruction */ #define Iba 37 /* byte immediate, don't print if 0xa */ +#define EL 38 /* address, explicitly long size */ struct inst { const char * i_name; /* name */ @@ -213,6 +223,26 @@ /*3f*/ { "", FALSE, NONE, 0, 0 }, }; +static const struct inst db_inst_0f4x[] = { +/*40*/ { "cmovo", TRUE, NONE, op2(E, R), 0 }, +/*41*/ { "cmovno", TRUE, NONE, op2(E, R), 0 }, +/*42*/ { "cmovb", TRUE, NONE, op2(E, R), 0 }, +/*43*/ { "cmovnb", TRUE, NONE, op2(E, R), 0 }, +/*44*/ { "cmovz", TRUE, NONE, op2(E, R), 0 }, +/*45*/ { "cmovnz", TRUE, NONE, op2(E, R), 0 }, +/*46*/ { "cmovbe", TRUE, NONE, op2(E, R), 0 }, +/*47*/ { "cmovnbe",TRUE, NONE, op2(E, R), 0 }, + +/*48*/ { "cmovs", TRUE, NONE, op2(E, R), 0 }, +/*49*/ { "cmovns", TRUE, NONE, op2(E, R), 0 }, +/*4a*/ { "cmovp", TRUE, NONE, op2(E, R), 0 }, +/*4b*/ { "cmovnp", TRUE, NONE, op2(E, R), 0 }, +/*4c*/ { "cmovl", TRUE, NONE, op2(E, R), 0 }, +/*4d*/ { "cmovnl", TRUE, NONE, op2(E, R), 0 }, +/*4e*/ { "cmovle", TRUE, NONE, op2(E, R), 0 }, +/*4f*/ { "cmovnle",TRUE, NONE, op2(E, R), 0 }, +}; + static const struct inst db_inst_0f8x[] = { /*80*/ { "jo", FALSE, NONE, op1(Dl), 0 }, /*81*/ { "jno", FALSE, NONE, op1(Dl), 0 }, @@ -317,6 +347,7 @@ 0, db_inst_0f2x, db_inst_0f3x, + db_inst_0f4x, 0, 0, 0, @@ -585,23 +616,23 @@ /*3e*/ { "", FALSE, NONE, 0, 0 }, /*3f*/ { "aas", FALSE, NONE, 0, 0 }, -/*40*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*41*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*42*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*43*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*44*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*45*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*46*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*47*/ { "inc", FALSE, LONG, op1(Ri), 0 }, +/*40*/ { "rex", FALSE, NONE, 0, 0 }, +/*41*/ { "rex.b", FALSE, NONE, 0, 0 }, +/*42*/ { "rex.x", FALSE, NONE, 0, 0 }, +/*43*/ { "rex.xb", FALSE, NONE, 0, 0 }, +/*44*/ { "rex.r", FALSE, NONE, 0, 0 }, +/*45*/ { "rex.rb", FALSE, NONE, 0, 0 }, +/*46*/ { "rex.rx", FALSE, NONE, 0, 0 }, +/*47*/ { "rex.rxb", FALSE, NONE, 0, 0 }, -/*48*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*49*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4a*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4b*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4c*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4d*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4e*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4f*/ { "dec", FALSE, LONG, op1(Ri), 0 }, +/*48*/ { "rex.w", FALSE, NONE, 0, 0 }, +/*49*/ { "rex.wb", FALSE, NONE, 0, 0 }, +/*4a*/ { "rex.wx", FALSE, NONE, 0, 0 }, +/*4b*/ { "rex.wxb", FALSE, NONE, 0, 0 }, +/*4c*/ { "rex.wr", FALSE, NONE, 0, 0 }, +/*4d*/ { "rex.wrb", FALSE, NONE, 0, 0 }, +/*4e*/ { "rex.wrx", FALSE, NONE, 0, 0 }, +/*4f*/ { "rex.wrxb", FALSE, NONE, 0, 0 }, /*50*/ { "push", FALSE, LONG, op1(Ri), 0 }, /*51*/ { "push", FALSE, LONG, op1(Ri), 0 }, @@ -624,7 +655,7 @@ /*60*/ { "pusha", FALSE, LONG, 0, 0 }, /*61*/ { "popa", FALSE, LONG, 0, 0 }, /*62*/ { "bound", TRUE, LONG, op2(E, R), 0 }, -/*63*/ { "arpl", TRUE, NONE, op2(Rw,Ew), 0 }, +/*63*/ { "movslq", TRUE, NONE, op2(EL,R), 0 }, /*64*/ { "", FALSE, NONE, 0, 0 }, /*65*/ { "", FALSE, NONE, 0, 0 }, @@ -807,13 +838,13 @@ { "???", FALSE, NONE, 0, 0 } ; -#define f_mod(byte) ((byte)>>6) -#define f_reg(byte) (((byte)>>3)&0x7) -#define f_rm(byte) ((byte)&0x7) +#define f_mod(rex, byte) ((byte)>>6) +#define f_reg(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_R ? 0x8 : 0x0)) +#define f_rm(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) -#define sib_ss(byte) ((byte)>>6) -#define sib_index(byte) (((byte)>>3)&0x7) -#define sib_base(byte) ((byte)&0x7) +#define sib_ss(rex, byte) ((byte)>>6) +#define sib_index(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_X ? 0x8 : 0x0)) +#define sib_base(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) struct i_addr { int is_reg; /* if reg, reg number is in 'disp' */ @@ -834,10 +865,25 @@ "%bx" }; -static const char * const db_reg[3][8] = { - { "%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh" }, - { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di" }, - { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi" } +static const char * const db_reg[2][4][16] = { + + {{"%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }}, + + {{"%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }} }; static const char * const db_seg_reg[8] = { @@ -862,28 +908,29 @@ (loc) += (size); static db_addr_t - db_disasm_esc(db_addr_t loc, int inst, int short_addr, + db_disasm_esc(db_addr_t loc, int inst, int rex, int short_addr, int size, const char *seg); -static void db_print_address(const char *seg, int size, +static void db_print_address(const char *seg, int size, int rex, struct i_addr *addrp); static db_addr_t - db_read_address(db_addr_t loc, int short_addr, int regmodrm, + db_read_address(db_addr_t loc, int short_addr, int rex, int regmodrm, struct i_addr *addrp); /* * Read address at location and return updated location. */ static db_addr_t -db_read_address(loc, short_addr, regmodrm, addrp) +db_read_address(loc, short_addr, rex, regmodrm, addrp) db_addr_t loc; int short_addr; + int rex; int regmodrm; struct i_addr * addrp; /* out */ { int mod, rm, sib, index, disp; - mod = f_mod(regmodrm); - rm = f_rm(regmodrm); + mod = f_mod(rex, regmodrm); + rm = f_rm(rex, regmodrm); if (mod == 3) { addrp->is_reg = TRUE; @@ -924,11 +971,11 @@ else { if (mod != 3 && rm == 4) { get_value_inc(sib, loc, 1, FALSE); - rm = sib_base(sib); - index = sib_index(sib); + rm = sib_base(rex, sib); + index = sib_index(rex, sib); if (index != 4) - addrp->index = db_reg[LONG][index]; - addrp->ss = sib_ss(sib); + addrp->index = db_reg[1][QUAD][index]; + addrp->ss = sib_ss(rex, sib); } switch (mod) { @@ -939,20 +986,20 @@ } else { addrp->disp = 0; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; } break; case 1: get_value_inc(disp, loc, 1, TRUE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; case 2: get_value_inc(disp, loc, 4, FALSE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; } } @@ -960,13 +1007,14 @@ } static void -db_print_address(seg, size, addrp) +db_print_address(seg, size, rex, addrp) const char * seg; int size; + int rex; struct i_addr * addrp; { if (addrp->is_reg) { - db_printf("%s", db_reg[size][addrp->disp]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(size == LONG && (rex & REX_W)) ? QUAD : size][addrp->disp]); return; } @@ -990,9 +1038,10 @@ * and return updated location. */ static db_addr_t -db_disasm_esc(loc, inst, short_addr, size, seg) +db_disasm_esc(loc, inst, rex, short_addr, size, seg) db_addr_t loc; int inst; + int rex; int short_addr; int size; const char * seg; @@ -1004,8 +1053,8 @@ const char * name; get_value_inc(regmodrm, loc, 1, FALSE); - fp = &db_Esc_inst[inst - 0xd8][f_reg(regmodrm)]; - mod = f_mod(regmodrm); + fp = &db_Esc_inst[inst - 0xd8][f_reg(rex, regmodrm)]; + mod = f_mod(rex, regmodrm); if (mod != 3) { if (*fp->f_name == '\0') { db_printf(""); @@ -1014,7 +1063,7 @@ /* * Normal address modes. */ - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); db_printf("%s", fp->f_name); switch(fp->f_size) { case SNGL: @@ -1039,7 +1088,7 @@ break; } db_printf("\t"); - db_print_address(seg, BYTE, &address); + db_print_address(seg, BYTE, rex, &address); } else { /* @@ -1048,24 +1097,24 @@ switch (fp->f_rrmode) { case op2(ST,STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st,%%st(%d)",name,f_rm(regmodrm)); + db_printf("%s\t%%st,%%st(%d)",name,f_rm(rex, regmodrm)); break; case op2(STI,ST): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d),%%st",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d),%%st",name, f_rm(rex, regmodrm)); break; case op1(STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d)",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d)",name, f_rm(rex, regmodrm)); break; case op1(X): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s", name); break; case op1(XA): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s\t%%ax", name); @@ -1098,6 +1147,7 @@ const char * i_name; int i_size; int i_mode; + int rex = 0; int regmodrm = 0; boolean_t first; int displ; @@ -1155,13 +1205,17 @@ prefix = FALSE; break; } + if (inst >= 0x40 && inst < 0x50) { + rex = inst; + prefix = TRUE; + } if (prefix) { get_value_inc(inst, loc, 1, FALSE); } } while (prefix); if (inst >= 0xd8 && inst <= 0xdf) { - loc = db_disasm_esc(loc, inst, short_addr, size, seg); + loc = db_disasm_esc(loc, inst, rex, short_addr, size, seg); db_printf("\n"); return (loc); } @@ -1181,7 +1235,7 @@ if (ip->i_has_modrm) { get_value_inc(regmodrm, loc, 1, FALSE); - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); } i_name = ip->i_name; @@ -1191,17 +1245,17 @@ if (ip->i_extra == db_Grp1 || ip->i_extra == db_Grp2 || ip->i_extra == db_Grp6 || ip->i_extra == db_Grp7 || ip->i_extra == db_Grp8 || ip->i_extra == db_Grp9) { - i_name = ((const char * const *)ip->i_extra)[f_reg(regmodrm)]; + i_name = ((const char * const *)ip->i_extra)[f_reg(rex, regmodrm)]; } else if (ip->i_extra == db_Grp3) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; } else if (ip->i_extra == db_Grp4 || ip->i_extra == db_Grp5) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; i_size = ip->i_size; @@ -1215,6 +1269,10 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 1 14:32:12 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6918316A4D0; Fri, 1 Apr 2005 14:32: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 1973416A4CE for ; Fri, 1 Apr 2005 14:32:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 281E143D48 for ; Fri, 1 Apr 2005 14:32:11 +0000 (GMT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31EWBCl039448 for ; Fri, 1 Apr 2005 14:32:11 GMT (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31EVv9R039267 for perforce@freebsd.org; Fri, 1 Apr 2005 14:31:57 GMT (envelope-from areisse@nailabs.com) Date: Fri, 1 Apr 2005 14:31:57 GMT Message-Id: <200504011431.j31EVv9R039267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 74270 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, 01 Apr 2005 14:32:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=74270 Change 74270 by areisse@areisse_ibook on 2005/04/01 14:31:37 Update DSEP vendor tree to release dsep-20050331. See the included README for the major changes in this update. Affected files ... .. //depot/projects/trustedbsd/dsep/README#2 edit .. //depot/projects/trustedbsd/dsep/VERSION#2 edit .. //depot/projects/trustedbsd/dsep/src/Makeconfig.in#2 edit .. //depot/projects/trustedbsd/dsep/src/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/bootinfo.hdr#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/Control2.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/MAC-PARTS.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/ci.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/ci_io.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/ci.subproj/sl_words.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/CaseTables.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/HFSCompare.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/cache.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ext2fs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ext2fs.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ext2fs_bswap.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ext2fs_dinode.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ext2fs_dir.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/fs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/hfs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/net.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ufs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ufs_byteorder.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/fs.subproj/ufs_byteorder.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/boot_args.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/ci.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/device_tree.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/fs.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/libclite.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/sl.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/include.subproj/sl_words.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/bsearch.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/bswap.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/mem.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/prf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/printf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/sprintf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/string.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/strtol.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/libclite.subproj/zalloc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/appleboot.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/clut.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/device_tree.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/display.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/drivers.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/elf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/elf.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/failedboot.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/lzss.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/macho.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/main.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/bootx.tproj/sl.subproj/netboot.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/fcode-to-c.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/fcode-to-c.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/fcode-to-c.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/fcode-to-c.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/fcode-to-c.tproj/fcode-to-c.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/macho-to-xcoff.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/macho-to-xcoff.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/macho-to-xcoff.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/macho-to-xcoff.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/BootX/macho-to-xcoff.tproj/macho-to-xcoff.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/gethnamaddr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/getnetbyaddr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/getnetbyname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/getnetent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/getnetnamadr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/herror.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/inet.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/nameser8_compat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/options.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/portability.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_comp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_data.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_debug.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_init.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_mkquery.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_query.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/res_send.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/resolv8_compat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/dns.subproj/sethostent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/aliasdb.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/ether_addr.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/ether_addr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/fstab.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getgrent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/gethostbyname.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getifaddrs.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getifaddrs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getipnodebyname.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getnetent.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getproto.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getprotoent.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getprotoent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getprotoname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getpwent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getservbyname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getservbyport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getservent.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/getservent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/if_indextoname.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/if_indextoname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/if_nameindex.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/if_nametoindex.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/ifaddrs.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/inet6_option_space.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/inet6_rthdr_space.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/inet_ntop.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/inet_pton.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/initgroups.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/ip6opt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/map_v4v6.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/printerdb.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/rthdr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/gen.subproj/vars.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/_lu_types.x#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/aliasdb.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/bootparams.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/getaddrinfo.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/getaddrinfo.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/getnameinfo.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lookup.defs#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lookup_types.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_alias.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_bootp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_bootparam.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_fstab.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_group.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_host.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_host.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_host_async.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_netgroup.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_network.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_overrides.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_printer.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_protocol.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_rpc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_service.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_user.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_utils.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/lu_utils.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/netdb.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/netdb_async.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/netgr.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/lookup.subproj/printerdb.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/DNSServiceDiscovery.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/DNSServiceDiscovery.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/DNSServiceDiscoveryDefines.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/DNSServiceDiscoveryReply.defs#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/DNSServiceDiscoveryRequest.defs#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/dns_sd.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/dnssd_clientstub.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/dnssd_ipc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/mdns.subproj/dnssd_ipc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/clib.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/mm.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/multi_call.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/netinfo.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/netinfo.5#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_error.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_glue.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_prot.x#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_pwdomain.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_useful.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_util.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/ni_util.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/nibind_prot.x#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/sys_interfaces.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/netinfo.subproj/sys_interfaces.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/getdomainname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/getnetgrent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/innetgr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/setdomainname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_domainname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_keydat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_mapname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_peername.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_valdat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypbind_binding.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypbind_resp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypbind_resptype.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypbind_setdom.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypmaplist.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypreq_key.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypreq_nokey.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_all.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_key_val.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_maplist.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_master.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_order.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypresp_val.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/xdr_ypstat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_all.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_all.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_bind.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_bind.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_first.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_first.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_get_default_domain.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_get_default_domain.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_maplist.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_master.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_master.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_match.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_next.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_order.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_order.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_prot.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yp_unbind.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypclnt.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypclnt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yperr_string.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yperr_string.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypinternal.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypmatch_cache.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/yppasswdd_xdr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypprot_err.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/nis.subproj/ypprot_err.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/auth.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/auth_none.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/auth_unix.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/auth_unix.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/authunix_prot.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/bindresvport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_generic.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_perror.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_raw.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_simple.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_tcp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/clnt_udp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/get_myaddress.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/getrpcent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/getrpcport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_clnt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_clnt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_getmaps.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_getport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_prot.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_prot.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_prot2.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_rmt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/pmap_rmt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc_callmsg.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc_commondata.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc_dtablesize.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc_msg.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/rpc_prot.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_auth.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_auth.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_auth_unix.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_raw.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_run.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_simple.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_tcp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/svc_udp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/types.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_array.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_float.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_mem.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_rec.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_reference.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/rpc.subproj/xdr_stdio.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/glob.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/hosts.equiv.5#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/hton.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/putpwpasswd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/pwcache.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/rcmd.3#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/rcmd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libinfo/util.subproj/rcmdsh.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/NXLogError.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/defs.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/except.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/file_funcs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/globals.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/indir_ops.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/ipc_funcs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/memory_funcs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streams.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streams.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streams_doprnt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streams_doscan.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streams_internal.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streamsextra.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Libstreams/streamsimpl.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/ar.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/dpkg/control#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/CREDITS#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ChangeLog#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/INSTALL#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/LICENCE#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/Makefile.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/OVERVIEW#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/README.privsep#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/README.smartcard#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/RFC.nroff#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/TODO#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/WARNING.RNG#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/acconfig.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/aclocal.m4#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/atomicio.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/atomicio.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-bsdauth.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-chall.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-krb4.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-krb5.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-options.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-options.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-pam.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-pam.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-passwd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-rh-rsa.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-rhosts.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-rsa.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-sia.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-sia.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth-skey.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth1.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-chall.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-gss.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-hostbased.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-kbdint.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-none.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-pam.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-pam.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-passwd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2-pubkey.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/auth2.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/authfd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/authfd.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/authfile.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/authfile.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/autom4te-2.53.cache/output.0#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/autom4te-2.53.cache/requests#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/autom4te-2.53.cache/traces.0#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/bufaux.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/bufaux.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/buffer.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/buffer.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/canohost.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/canohost.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/channels.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/channels.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/cipher.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/cipher.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/clientloop.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/clientloop.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/compat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/compat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/compress.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/compress.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/config.guess#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/config.h.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/config.sub#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/configure#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/configure.ac#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/aix/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/aix/buildbff.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/aix/inventory.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/caldera/openssh.spec#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/caldera/ssh-host-keygen#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/caldera/sshd.init#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/caldera/sshd.pam#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/cygwin/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/cygwin/ssh-host-config#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/cygwin/ssh-user-config#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/gnome-ssh-askpass1.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/gnome-ssh-askpass2.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/hpux/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/hpux/egd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/hpux/egd.rc#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/hpux/sshd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/hpux/sshd.rc#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/gnome-ssh-askpass.csh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/gnome-ssh-askpass.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/openssh.spec#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/sshd.init#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/sshd.init.old#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/sshd.pam#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/redhat/sshd.pam.old#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/solaris/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/solaris/buildpkg.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/solaris/opensshd.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/ssh-copy-id#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/ssh-copy-id.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/sshd.pam.freebsd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/sshd.pam.generic#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/suse/openssh.spec#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/suse/rc.config.sshd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/contrib/suse/rc.sshd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/crc32.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/crc32.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/deattack.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/deattack.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/defines.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/dh.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/dh.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/dispatch.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/dispatch.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/entropy.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/entropy.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/fatal.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/fixpaths#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/fixprogs#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/getput.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/groupaccess.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/groupaccess.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/gss-genr.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/gss-serv-gsi.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/gss-serv-krb5.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/gss-serv.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/hostfile.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/hostfile.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/includes.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/install-sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kex.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kex.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexdh.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexdhc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexdhs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexgex.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexgexc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexgexs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexgssc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/kexgsss.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/key.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/key.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/log.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/log.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/loginrec.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/loginrec.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/logintest.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mac.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mac.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/makegssname.pl#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/match.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/match.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/md5crypt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/md5crypt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mdoc2man.pl#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/misc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/misc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mkinstalldirs#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/moduli#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_fdpass.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_fdpass.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_mm.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_mm.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_wrap.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/monitor_wrap.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mpaux.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/mpaux.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/msg.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/msg.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/myproposal.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/nchan.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/nchan.ms#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/nchan2.ms#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/Makefile.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/base64.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/base64.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/basename.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/basename.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bindresvport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bindresvport.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-arc4random.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-arc4random.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-cray.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-cray.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-cygwin_util.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-cygwin_util.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-getpeereid.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-getpeereid.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-misc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-misc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-nextstep.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-nextstep.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-snprintf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-snprintf.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-waitpid.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/bsd-waitpid.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/daemon.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/daemon.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/dirname.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/dirname.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-gai-errnos.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-getaddrinfo.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-getaddrinfo.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-getnameinfo.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-getnameinfo.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/fake-socket.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getcwd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getcwd.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getgrouplist.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getgrouplist.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getopt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/getopt.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/glob.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/glob.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_aton.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_aton.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_ntoa.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_ntoa.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_ntop.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/inet_ntop.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/mktemp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/mktemp.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/openbsd-compat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/port-aix.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/port-aix.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/port-irix.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/port-irix.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/readpassphrase.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/readpassphrase.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/realpath.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/realpath.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/rresvport.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/rresvport.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/setenv.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/setenv.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/setproctitle.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/setproctitle.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/sigact.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/sigact.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strlcat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strlcat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strlcpy.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strlcpy.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strmode.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strmode.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strsep.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/strsep.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/sys-queue.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/sys-tree.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/vis.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/vis.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/xmmap.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/openbsd-compat/xmmap.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/packet.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/packet.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/pathnames.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/progressmeter.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/progressmeter.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/radix.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/radix.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/readconf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/readconf.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/readpass.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/readpass.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/agent-getpeereid.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/agent-ptrace.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/agent-timeout.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/agent.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/authorized_keys_root#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/broken-pipe.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/bsd.regress.mk#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/connect-privsep.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/connect.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/copy.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/copy.2#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/dsa_ssh2.prv#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/dsa_ssh2.pub#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/exit-status.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/forwarding.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/keygen-change.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/keyscan.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/proto-mismatch.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/proto-version.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/proxy-connect.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/rsa_openssh.prv#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/rsa_openssh.pub#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/rsa_ssh2.prv#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/runtests.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/sftp-batch.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/sftp-cmds.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/sftp.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/ssh-com-client.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/ssh-com-keygen.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/ssh-com-sftp.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/ssh-com.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/stderr-after-eof.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/stderr-data.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/t4.ok#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/t5.ok#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/test-exec.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/transfer.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/try-ciphers.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/regress/yes-head.sh#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/rijndael.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/rijndael.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/rsa.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/rsa.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard-opensc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard/Makefile.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard/Ssh.bin#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard/Ssh.bin.uu#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scard/Ssh.java#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scp.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/scp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/servconf.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/servconf.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/serverloop.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/serverloop.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/session.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/session.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-client.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-client.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-common.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-common.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-glob.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-glob.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-int.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-int.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-server.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp-server.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sftp.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-add.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-add.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-agent.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-agent.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-dss.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-gss.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keygen.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keygen.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keyscan.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keyscan.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keysign.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-keysign.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-rand-helper.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-rand-helper.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh-rsa.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh1.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh2.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh_config#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh_config.5#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ssh_prng_cmds.in#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshconnect.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshconnect.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshconnect1.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshconnect2.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshd.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshd_config#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshd_config.5#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshlogin.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshlogin.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshpty.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshpty.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshtty.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/sshtty.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/tildexpand.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/tildexpand.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ttymodes.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/ttymodes.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/uidswap.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/uidswap.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/uuencode.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/uuencode.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/version.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/xmalloc.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/openssh/xmalloc.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/ssh-via-xinetd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/OpenSSH/sshd-keygen-wrapper#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/Makefile.include#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/adv_cmds.rtf#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/cap_mkdb.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/cap_mkdb.tproj/cap_mkdb.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/colldef.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/common.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/fbsdcompat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/locale/collate.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/parse.y#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/colldef.tproj/scan.l#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/extern.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/finger.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/finger.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/finger.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/lprint.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/net.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/pathnames.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/sprint.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/finger.tproj/util.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/fingerd.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/fingerd.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/fingerd.tproj/pathnames.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/fbsdcompat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/gencat.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/gencat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/gencat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/genlib.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/gencat.tproj/nls/msgcat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/last.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/last.tproj/last.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/lsvfs.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/lsvfs.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/lsvfs.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/lsvfs.tproj/lsvfs.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/lsvfs.tproj/lsvfs.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/Makefile.dist#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/md.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/md.tproj/md.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/extern.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/fbsdcompat.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/ldef.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/lex.l#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/mklocale.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/mklocale.tproj/yacc.y#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/extern.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/fmt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/h.template#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/keyword.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/m.template#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/nlist.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/print.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/ps.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/ps.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/ps.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/ps.tproj/tasks.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/pstat.8#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/pstat.tproj/pstat.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/Makefile.dist#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/cchar.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/extern.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/gfmt.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/key.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/modes.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/print.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/stty.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/stty.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/stty.h#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/stty.tproj/util.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/tty.1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/tty.tproj/tty.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/Makefile.bsd#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/Makefile.postamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/Makefile.preamble#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/PB.project#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/README#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/bg_BG.CP1251.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/ca_ES.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/ca_ES.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/cs_CZ.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/de_DE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/de_DE.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/el_GR.ISO8859-7.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/en_DK.example#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/es_ES.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/es_ES.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/et_EE.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/hi_IN.ISCII-DEV.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/is_IS.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/is_IS.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/la_LN.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/la_LN.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/la_LN.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/la_LN.ISO8859-4.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/la_LN.US-ASCII.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/lt_LT.ISO8859-13.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/lt_LT.ISO8859-4.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.CP1251#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.CP866#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISCII-DEV#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-1#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-13#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-15#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-2#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-4#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-5#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.ISO8859-7#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.KOI8-R#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/map.KOI8-U#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/pl_PL.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/ru_RU.CP866.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/ru_RU.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/ru_RU.KOI8-R.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/sr_YU.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/sv_SE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/sv_SE.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/uk_UA.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/colldef/uk_UA.KOI8-U.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/dummy.c#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/README.locale_name#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/bg_BG.CP1251.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/el_GR.ISO8859-7.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/hi_IN.ISCII-DEV.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ja_JP.SJIS.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ja_JP.eucJP.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ko_KR.eucKR.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/la_LN.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/la_LN.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/la_LN.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/la_LN.ISO8859-4.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/la_LN.US-ASCII.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/lt_LT.ISO8859-13.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ru_RU.CP866.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ru_RU.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/ru_RU.KOI8-R.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/uk_UA.KOI8-U.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/zh_CN.eucCN.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/mklocale/zh_TW.Big5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/Makefile#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/af_ZA.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/bg_BG.CP1251.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ca_ES.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/cs_CZ.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/da_DK.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/de_AT.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/de_CH.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/de_DE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/el_GR.ISO8859-7.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/en_AU.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/en_CA.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/en_GB.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/en_NZ.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/en_US.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/es_ES.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/et_EE.ISO8859-15.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/fi_FI.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/fr_BE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/fr_CA.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/fr_FR.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/hi_IN.ISCII-DEV.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/hr_HR.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/hu_HU.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/is_IS.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/it_IT.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ja_JP.eucJP.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ko_KR.eucKR.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/lt_LT.ISO8859-13.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/nl_BE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/nl_NL.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/no_NO.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/pl_PL.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/pt_BR.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/pt_PT.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ro_RO.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ru_RU.CP866.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ru_RU.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/ru_RU.KOI8-R.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/sk_SK.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/sl_SI.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/sr_YU.ISO8859-2.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/sr_YU.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/sv_SE.ISO8859-1.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/tr_TR.ISO8859-9.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/uk_UA.ISO8859-5.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/uk_UA.KOI8-U.src#2 edit .. //depot/projects/trustedbsd/dsep/src/darwin/adv_cmds/usr-share-locale.tproj/monetdef/zh_CN.eucCN.src#2 edit >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 1 16:01:03 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3259416A4D0; Fri, 1 Apr 2005 16:01: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 03E6616A4CF for ; Fri, 1 Apr 2005 16:01:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DACDB43D55 for ; Fri, 1 Apr 2005 16:01:02 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31G12t0059467 for ; Fri, 1 Apr 2005 16:01:02 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31G12th059464 for perforce@freebsd.org; Fri, 1 Apr 2005 16:01:02 GMT (envelope-from jhb@freebsd.org) Date: Fri, 1 Apr 2005 16:01:02 GMT Message-Id: <200504011601.j31G12th059464@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74277 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, 01 Apr 2005 16:01:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=74277 Change 74277 by jhb@jhb_slimer on 2005/04/01 16:00:01 Update. Affected files ... .. //depot/projects/smpng/sys/notes#32 edit Differences ... ==== //depot/projects/smpng/sys/notes#32 (text+ko) ==== @@ -19,32 +19,31 @@ more realistic since they call functions. However, these clobber updates need to be verified against the actual pc98 code. - Untested - - Oops, '+' is invalid for memory operands it turns out, so revisit the + + Oops, '+' is invalid for memory operands it turns out, so revisit the whole tree to really fix this. Also, fixup atomic ops so that they treat the memory pointed to as an output and don't all clobber "memory", instead, just acquire variants clobber "memory". - + alpha - + amd64 + - Put off the relaxing of memory clobbers to just acquire variants until + later + - alpha + - amd64 - why clobber memory in disable_intr()? - eventually we should not clobber all memory for bus_space, but just the memory we actually touch - + arm + - arm - needs real acq variants to get "memory" clobber - + boot - + contrib - + dev + - dev - drm clobbers memory for write barriers - drm and sym should use bus_space for barriers - gnu - contrib code - + ia64 - + i386 + - ia64 + - i386 - why clobber memory in disable_intr()? - + pc98 - + pci - + powerpc + - pc98 + - powerpc - not sure powerpc_mb() should clobber memory - + sparc64 + - sparc64 - sys - Fixup td_ucred of thread doing execve() to re-sync with process ucred after single threading during an exec. From owner-p4-projects@FreeBSD.ORG Fri Apr 1 18:39:32 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 476BD16A4D0; Fri, 1 Apr 2005 18:39: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 03A5616A4CF for ; Fri, 1 Apr 2005 18:39:32 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A830343D48 for ; Fri, 1 Apr 2005 18:39:30 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31IdUVQ072491 for ; Fri, 1 Apr 2005 18:39:30 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31IdSMB072488 for perforce@freebsd.org; Fri, 1 Apr 2005 18:39:28 GMT (envelope-from jhb@freebsd.org) Date: Fri, 1 Apr 2005 18:39:28 GMT Message-Id: <200504011839.j31IdSMB072488@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74298 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, 01 Apr 2005 18:39:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=74298 Change 74298 by jhb@jhb_slimer on 2005/04/01 18:38:57 IFC @74280. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/machdep.c#79 integrate .. //depot/projects/smpng/sys/alpha/osf1/osf1_misc.c#36 integrate .. //depot/projects/smpng/sys/amd64/amd64/db_disasm.c#4 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#30 integrate .. //depot/projects/smpng/sys/amd64/conf/NOTES#13 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#6 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#28 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#26 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_ch.c#13 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#22 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#18 integrate .. //depot/projects/smpng/sys/coda/coda_fbsd.c#14 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.c#23 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#17 integrate .. //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#16 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#24 integrate .. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#19 integrate .. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#15 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#13 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#26 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#26 integrate .. //depot/projects/smpng/sys/conf/NOTES#95 integrate .. //depot/projects/smpng/sys/conf/files#138 integrate .. //depot/projects/smpng/sys/conf/files.amd64#29 integrate .. //depot/projects/smpng/sys/conf/files.i386#79 integrate .. //depot/projects/smpng/sys/conf/kern.mk#14 integrate .. //depot/projects/smpng/sys/conf/kern.post.mk#43 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#45 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#44 integrate .. //depot/projects/smpng/sys/conf/majors#44 delete .. //depot/projects/smpng/sys/conf/majors.awk#2 delete .. //depot/projects/smpng/sys/conf/options#96 integrate .. //depot/projects/smpng/sys/dev/aac/aac.c#48 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_asus.c#4 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#82 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#31 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_perf.c#4 integrate .. //depot/projects/smpng/sys/dev/acpica/acpivar.h#54 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.c#25 integrate .. //depot/projects/smpng/sys/dev/amr/amr.c#29 integrate .. //depot/projects/smpng/sys/dev/an/if_an.c#42 integrate .. //depot/projects/smpng/sys/dev/arcmsr/arcmsr.c#1 branch .. //depot/projects/smpng/sys/dev/arcmsr/arcmsr.h#1 branch .. //depot/projects/smpng/sys/dev/ata/ata-all.c#67 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#34 integrate .. //depot/projects/smpng/sys/dev/ata/ata-card.c#24 integrate .. //depot/projects/smpng/sys/dev/ata/ata-cbus.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#49 integrate .. //depot/projects/smpng/sys/dev/ata/ata-commands.h#3 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#48 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.h#16 integrate .. //depot/projects/smpng/sys/dev/ata/ata-dma.c#42 integrate .. //depot/projects/smpng/sys/dev/ata/ata-isa.c#19 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#25 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#52 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#27 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#25 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.c#32 integrate .. //depot/projects/smpng/sys/dev/ata/ata-raid.h#17 integrate .. //depot/projects/smpng/sys/dev/ata/ata_if.m#1 branch .. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#54 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cd.h#15 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-fd.c#26 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-fd.h#11 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-tape.c#30 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-tape.h#9 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/amrr/amrr.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/onoe/onoe.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#24 integrate .. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#9 integrate .. //depot/projects/smpng/sys/dev/ath/if_athrate.h#3 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#13 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#39 integrate .. //depot/projects/smpng/sys/dev/fb/vga.c#20 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdev.c#20 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci.c#35 integrate .. //depot/projects/smpng/sys/dev/hptmv/entry.c#6 integrate .. //depot/projects/smpng/sys/dev/hptmv/hptproc.c#4 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#26 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.h#3 integrate .. //depot/projects/smpng/sys/dev/ixgb/if_ixgb_osdep.h#3 integrate .. //depot/projects/smpng/sys/dev/mlx/mlx.c#17 integrate .. //depot/projects/smpng/sys/dev/mlx/mlx_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/mse/msevar.h#4 integrate .. //depot/projects/smpng/sys/dev/nge/if_nge.c#39 integrate .. //depot/projects/smpng/sys/dev/nmdm/nmdm.c#27 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#18 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard_cis_quirks.c#8 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#54 integrate .. //depot/projects/smpng/sys/dev/pci/pci_pci.c#24 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#7 integrate .. //depot/projects/smpng/sys/dev/random/randomdev_soft.c#9 integrate .. //depot/projects/smpng/sys/dev/rp/rp_pci.c#7 integrate .. //depot/projects/smpng/sys/dev/snp/snp.c#23 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#19 integrate .. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#22 integrate .. //depot/projects/smpng/sys/dev/twa/twa.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/if_aue.c#35 integrate .. //depot/projects/smpng/sys/dev/usb/if_auereg.h#9 integrate .. //depot/projects/smpng/sys/dev/usb/if_axe.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/if_axereg.h#6 integrate .. //depot/projects/smpng/sys/dev/usb/if_cdce.c#2 integrate .. //depot/projects/smpng/sys/dev/usb/if_cdcereg.h#2 integrate .. //depot/projects/smpng/sys/dev/usb/if_cue.c#27 integrate .. //depot/projects/smpng/sys/dev/usb/if_cuereg.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/if_kue.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/if_kuereg.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/if_rue.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/if_ruereg.h#4 integrate .. //depot/projects/smpng/sys/dev/usb/if_udav.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/if_udavreg.h#4 integrate .. //depot/projects/smpng/sys/dev/usb/uhub.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/ukbd.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#46 integrate .. //depot/projects/smpng/sys/dev/usb/usb.c#31 integrate .. //depot/projects/smpng/sys/dev/usb/usb_ethersubr.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/usb_ethersubr.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.h#16 integrate .. //depot/projects/smpng/sys/dev/vkbd/vkbd.c#5 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#70 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#33 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#16 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vfsops.c#22 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#43 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vnops.c#28 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#22 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_lookup.c#9 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_vnops.c#23 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vnops.c#14 integrate .. //depot/projects/smpng/sys/fs/portalfs/portal_vnops.c#22 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#36 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vnops.c#33 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#27 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#26 integrate .. //depot/projects/smpng/sys/gdb/gdb_main.c#5 integrate .. //depot/projects/smpng/sys/geom/geom_pc98.c#27 integrate .. //depot/projects/smpng/sys/geom/geom_subr.c#46 integrate .. //depot/projects/smpng/sys/geom/geom_sunlabel_enc.c#5 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#19 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror_ctl.c#6 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.c#16 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3_ctl.c#7 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_lookup.c#16 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#62 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#98 integrate .. //depot/projects/smpng/sys/i386/cpufreq/powernow.c#1 branch .. //depot/projects/smpng/sys/i386/i386/bios.c#22 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_misc.c#20 integrate .. //depot/projects/smpng/sys/i386/isa/clock.c#40 integrate .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#26 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_lookup.c#12 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#37 integrate .. //depot/projects/smpng/sys/kern/kern_cpu.c#3 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#37 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_lockf.c#20 integrate .. //depot/projects/smpng/sys/kern/kern_ntptime.c#17 integrate .. //depot/projects/smpng/sys/kern/kern_synch.c#89 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#31 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#34 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#49 integrate .. //depot/projects/smpng/sys/kern/subr_hints.c#8 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#77 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#41 integrate .. //depot/projects/smpng/sys/kern/tty.c#58 integrate .. //depot/projects/smpng/sys/kern/tty_pty.c#39 integrate .. //depot/projects/smpng/sys/kern/tty_tty.c#15 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#67 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#77 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#26 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#26 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#48 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#99 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#60 integrate .. //depot/projects/smpng/sys/modules/Makefile#93 integrate .. //depot/projects/smpng/sys/modules/arcmsr/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/Makefile.inc#1 branch .. //depot/projects/smpng/sys/modules/ata/ata/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atacam/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atacard/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atacbus/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atadisk/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/ataisa/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atapci/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atapicd/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atapifd/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/atapist/Makefile#1 branch .. //depot/projects/smpng/sys/modules/ata/ataraid/Makefile#1 branch .. //depot/projects/smpng/sys/modules/cpufreq/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/hpfs/Makefile#3 integrate .. //depot/projects/smpng/sys/net/bpf.c#48 integrate .. //depot/projects/smpng/sys/net/if_fwsubr.c#6 integrate .. //depot/projects/smpng/sys/net/if_tap.c#33 integrate .. //depot/projects/smpng/sys/net/if_tun.c#40 integrate .. //depot/projects/smpng/sys/net/rtsock.c#44 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.h#3 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#16 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#14 integrate .. //depot/projects/smpng/sys/netinet/igmp.c#14 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#4 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#16 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#48 integrate .. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#40 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#55 integrate .. //depot/projects/smpng/sys/netinet6/raw_ip6.c#33 integrate .. //depot/projects/smpng/sys/netsmb/smb_dev.c#18 integrate .. //depot/projects/smpng/sys/nfs4client/nfs4_vnops.c#16 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_node.c#20 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#52 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsubs.c#26 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_syscalls.c#25 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#53 integrate .. //depot/projects/smpng/sys/pc98/pc98/clock.c#29 integrate .. //depot/projects/smpng/sys/pc98/pc98/pc98_machdep.c#3 integrate .. //depot/projects/smpng/sys/pci/if_sis.c#49 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#45 integrate .. //depot/projects/smpng/sys/pci/if_ti.c#44 integrate .. //depot/projects/smpng/sys/pci/if_xl.c#55 integrate .. //depot/projects/smpng/sys/pci/if_xlreg.h#15 integrate .. //depot/projects/smpng/sys/posix4/p1003_1b.c#10 integrate .. //depot/projects/smpng/sys/powerpc/powermac/ata_kauai.c#8 integrate .. //depot/projects/smpng/sys/powerpc/powermac/ata_macio.c#13 integrate .. //depot/projects/smpng/sys/powerpc/psim/ata_iobus.c#10 integrate .. //depot/projects/smpng/sys/sys/ata.h#19 integrate .. //depot/projects/smpng/sys/sys/conf.h#40 integrate .. //depot/projects/smpng/sys/sys/event.h#16 integrate .. //depot/projects/smpng/sys/sys/lockmgr.h#14 integrate .. //depot/projects/smpng/sys/sys/namei.h#15 integrate .. //depot/projects/smpng/sys/sys/proc.h#141 integrate .. //depot/projects/smpng/sys/sys/sun_disklabel.h#8 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#20 integrate .. //depot/projects/smpng/sys/sys/systm.h#64 integrate .. //depot/projects/smpng/sys/sys/vnode.h#60 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#14 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#48 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#43 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#70 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#42 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_extattr.c#35 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_lookup.c#21 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#69 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.c#51 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/machdep.c#79 (text+ko) ==== @@ -88,7 +88,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.233 2005/03/01 21:55:26 wes Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.234 2005/04/01 10:59:13 des Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -415,6 +415,7 @@ char *bootinfo_msg, *bootinfo_booted_kernel; vm_offset_t kernstart, kernend; vm_offset_t kernstartpfn, kernendpfn, pfn0, pfn1; + u_long physmem_tunable; struct mddt *mddtp; struct mddt_cluster *memc; int i, mddtweird; @@ -771,39 +772,8 @@ Maxmem = alpha_btop(MAXMEM * 1024); #endif - /* - * hw.physmem is a size in bytes; we also allow k, m, and g suffixes - * for the appropriate modifiers. This overrides MAXMEM. - */ - if ((p = getenv("hw.physmem")) != NULL) { - u_int64_t AllowMem, sanity; - char *ep; - - sanity = AllowMem = strtouq(p, &ep, 0); - if ((ep != p) && (*ep != 0)) { - switch(*ep) { - case 'g': - case 'G': - AllowMem <<= 10; - case 'm': - case 'M': - AllowMem <<= 10; - case 'k': - case 'K': - AllowMem <<= 10; - break; - default: - AllowMem = sanity = 0; - } - if (AllowMem < sanity) - AllowMem = 0; - } - if (AllowMem == 0) - printf("Ignoring invalid memory size of '%s'\n", p); - else - Maxmem = alpha_btop(AllowMem); - freeenv(p); - } + if (TUNABLE_ULONG_FETCH("hw.physmem", &physmem_tunable)) + Maxmem = alpha_btop(physmem_tunable); while (physmem > Maxmem) { int i = phys_avail_cnt - 2; ==== //depot/projects/smpng/sys/alpha/osf1/osf1_misc.c#36 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.53 2005/02/18 18:37:26 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.54 2005/03/31 22:56:14 jhb Exp $"); #include #include @@ -993,52 +993,61 @@ char *iov_base; int iov_len; }; -#define STACKGAPLEN 400 + +static int +osf1_copyinuio(struct osf1_iovec *iovp, u_int iovcnt, struct uio **uiop) +{ + struct osf1_iovec oiov; + struct iovec *iov; + struct uio *uio; + u_int iovlen; + int error, i; + + *uiop = NULL; + if (iovcnt > UIO_MAXIOV) + return (EINVAL); + iovlen = iovcnt * sizeof(struct iovec); + uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK); + iov = (struct iovec *)(uio + 1); + for (i = 0; i < iovcnt; i++) { + error = copyin(&iovp[i], &oiov, sizeof(struct osf1_iovec)); + if (error) { + free(uio, M_IOV); + return (error); + } + iov[i].iov_base = oiov.iov_base; + iov[i].iov_len = oiov.iov_len; + } + uio->uio_iov = iov; + uio->uio_iovcnt = iovcnt; + uio->uio_segflg = UIO_USERSPACE; + uio->uio_offset = -1; + uio->uio_resid = 0; + for (i = 0; i < iovcnt; i++) { + if (iov->iov_len > INT_MAX - uio->uio_resid) { + free(uio, M_IOV); + return (EINVAL); + } + uio->uio_resid += iov->iov_len; + iov++; + } + *uiop = uio; + return (0); +} + int osf1_readv(td, uap) struct thread *td; struct osf1_readv_args *uap; { - int error, osize, nsize, i; - caddr_t sg; - struct readv_args /* { - syscallarg(int) fd; - syscallarg(struct iovec *) iovp; - syscallarg(u_int) iovcnt; - } */ a; - struct osf1_iovec *oio; - struct iovec *nio; + struct uio *auio; + int error; - sg = stackgap_init(); - - if (uap->iovcnt > (STACKGAPLEN / sizeof (struct iovec))) - return (EINVAL); - - osize = uap->iovcnt * sizeof (struct osf1_iovec); - nsize = uap->iovcnt * sizeof (struct iovec); - - oio = malloc(osize, M_TEMP, M_WAITOK); - nio = malloc(nsize, M_TEMP, M_WAITOK); - - error = 0; - if ((error = copyin(uap->iovp, oio, osize))) - goto punt; - for (i = 0; i < uap->iovcnt; i++) { - nio[i].iov_base = oio[i].iov_base; - nio[i].iov_len = oio[i].iov_len; - } - - a.fd = uap->fd; - a.iovp = stackgap_alloc(&sg, nsize); - a.iovcnt = uap->iovcnt; - - if ((error = copyout(nio, (caddr_t)a.iovp, nsize))) - goto punt; - error = readv(td, &a); - -punt: - free(oio, M_TEMP); - free(nio, M_TEMP); + error = osf1_copyinuio(uap->iovp, uap->iovcnt, &auio); + if (error) + return (error); + error = kern_readv(td, uap->fd, auio); + free(auio, M_IOV); return (error); } @@ -1048,46 +1057,14 @@ struct thread *td; struct osf1_writev_args *uap; { - int error, i, nsize, osize; - caddr_t sg; - struct writev_args /* { - syscallarg(int) fd; - syscallarg(struct iovec *) iovp; - syscallarg(u_int) iovcnt; - } */ a; - struct osf1_iovec *oio; - struct iovec *nio; + struct uio *auio; + int error; - sg = stackgap_init(); - - if (uap->iovcnt > (STACKGAPLEN / sizeof (struct iovec))) - return (EINVAL); - - osize = uap->iovcnt * sizeof (struct osf1_iovec); - nsize = uap->iovcnt * sizeof (struct iovec); - - oio = malloc(osize, M_TEMP, M_WAITOK); - nio = malloc(nsize, M_TEMP, M_WAITOK); - - error = 0; - if ((error = copyin(uap->iovp, oio, osize))) - goto punt; - for (i = 0; i < uap->iovcnt; i++) { - nio[i].iov_base = oio[i].iov_base; - nio[i].iov_len = oio[i].iov_len; - } - - a.fd = uap->fd; - a.iovp = stackgap_alloc(&sg, nsize); - a.iovcnt = uap->iovcnt; - - if ((error = copyout(nio, (caddr_t)a.iovp, nsize))) - goto punt; - error = writev(td, &a); - -punt: - free(oio, M_TEMP); - free(nio, M_TEMP); + error = osf1_copyinuio(uap->iovp, uap->iovcnt, &auio); + if (error) + return (error); + error = kern_writev(td, uap->fd, auio); + free(auio, M_IOV); return (error); } ==== //depot/projects/smpng/sys/amd64/amd64/db_disasm.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.28 2005/01/05 20:17:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.30 2005/03/30 22:57:41 peter Exp $"); /* * Instruction disassembler. @@ -50,6 +50,15 @@ #define NONE 8 /* + * REX prefix and bits + */ +#define REX_B 1 +#define REX_X 2 +#define REX_R 4 +#define REX_W 8 +#define REX 0x40 + +/* * Addressing modes */ #define E 1 /* general effective address */ @@ -85,9 +94,10 @@ #define STI 32 /* FP stack */ #define X 33 /* extended FP op */ #define XA 34 /* for 'fstcw %ax' */ -#define El 35 /* address, long size */ +#define El 35 /* address, long/quad size */ #define Ril 36 /* long register in instruction */ #define Iba 37 /* byte immediate, don't print if 0xa */ +#define EL 38 /* address, explicitly long size */ struct inst { const char * i_name; /* name */ @@ -213,6 +223,26 @@ /*3f*/ { "", FALSE, NONE, 0, 0 }, }; +static const struct inst db_inst_0f4x[] = { +/*40*/ { "cmovo", TRUE, NONE, op2(E, R), 0 }, +/*41*/ { "cmovno", TRUE, NONE, op2(E, R), 0 }, +/*42*/ { "cmovb", TRUE, NONE, op2(E, R), 0 }, +/*43*/ { "cmovnb", TRUE, NONE, op2(E, R), 0 }, +/*44*/ { "cmovz", TRUE, NONE, op2(E, R), 0 }, +/*45*/ { "cmovnz", TRUE, NONE, op2(E, R), 0 }, +/*46*/ { "cmovbe", TRUE, NONE, op2(E, R), 0 }, +/*47*/ { "cmovnbe",TRUE, NONE, op2(E, R), 0 }, + +/*48*/ { "cmovs", TRUE, NONE, op2(E, R), 0 }, +/*49*/ { "cmovns", TRUE, NONE, op2(E, R), 0 }, +/*4a*/ { "cmovp", TRUE, NONE, op2(E, R), 0 }, +/*4b*/ { "cmovnp", TRUE, NONE, op2(E, R), 0 }, +/*4c*/ { "cmovl", TRUE, NONE, op2(E, R), 0 }, +/*4d*/ { "cmovnl", TRUE, NONE, op2(E, R), 0 }, +/*4e*/ { "cmovle", TRUE, NONE, op2(E, R), 0 }, +/*4f*/ { "cmovnle",TRUE, NONE, op2(E, R), 0 }, +}; + static const struct inst db_inst_0f8x[] = { /*80*/ { "jo", FALSE, NONE, op1(Dl), 0 }, /*81*/ { "jno", FALSE, NONE, op1(Dl), 0 }, @@ -317,6 +347,7 @@ 0, db_inst_0f2x, db_inst_0f3x, + db_inst_0f4x, 0, 0, 0, @@ -585,23 +616,23 @@ /*3e*/ { "", FALSE, NONE, 0, 0 }, /*3f*/ { "aas", FALSE, NONE, 0, 0 }, -/*40*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*41*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*42*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*43*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*44*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*45*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*46*/ { "inc", FALSE, LONG, op1(Ri), 0 }, -/*47*/ { "inc", FALSE, LONG, op1(Ri), 0 }, +/*40*/ { "rex", FALSE, NONE, 0, 0 }, +/*41*/ { "rex.b", FALSE, NONE, 0, 0 }, +/*42*/ { "rex.x", FALSE, NONE, 0, 0 }, +/*43*/ { "rex.xb", FALSE, NONE, 0, 0 }, +/*44*/ { "rex.r", FALSE, NONE, 0, 0 }, +/*45*/ { "rex.rb", FALSE, NONE, 0, 0 }, +/*46*/ { "rex.rx", FALSE, NONE, 0, 0 }, +/*47*/ { "rex.rxb", FALSE, NONE, 0, 0 }, -/*48*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*49*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4a*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4b*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4c*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4d*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4e*/ { "dec", FALSE, LONG, op1(Ri), 0 }, -/*4f*/ { "dec", FALSE, LONG, op1(Ri), 0 }, +/*48*/ { "rex.w", FALSE, NONE, 0, 0 }, +/*49*/ { "rex.wb", FALSE, NONE, 0, 0 }, +/*4a*/ { "rex.wx", FALSE, NONE, 0, 0 }, +/*4b*/ { "rex.wxb", FALSE, NONE, 0, 0 }, +/*4c*/ { "rex.wr", FALSE, NONE, 0, 0 }, +/*4d*/ { "rex.wrb", FALSE, NONE, 0, 0 }, +/*4e*/ { "rex.wrx", FALSE, NONE, 0, 0 }, +/*4f*/ { "rex.wrxb", FALSE, NONE, 0, 0 }, /*50*/ { "push", FALSE, LONG, op1(Ri), 0 }, /*51*/ { "push", FALSE, LONG, op1(Ri), 0 }, @@ -624,7 +655,7 @@ /*60*/ { "pusha", FALSE, LONG, 0, 0 }, /*61*/ { "popa", FALSE, LONG, 0, 0 }, /*62*/ { "bound", TRUE, LONG, op2(E, R), 0 }, -/*63*/ { "arpl", TRUE, NONE, op2(Rw,Ew), 0 }, +/*63*/ { "movslq", TRUE, NONE, op2(EL,R), 0 }, /*64*/ { "", FALSE, NONE, 0, 0 }, /*65*/ { "", FALSE, NONE, 0, 0 }, @@ -807,13 +838,13 @@ { "???", FALSE, NONE, 0, 0 } ; -#define f_mod(byte) ((byte)>>6) -#define f_reg(byte) (((byte)>>3)&0x7) -#define f_rm(byte) ((byte)&0x7) +#define f_mod(rex, byte) ((byte)>>6) +#define f_reg(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_R ? 0x8 : 0x0)) +#define f_rm(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) -#define sib_ss(byte) ((byte)>>6) -#define sib_index(byte) (((byte)>>3)&0x7) -#define sib_base(byte) ((byte)&0x7) +#define sib_ss(rex, byte) ((byte)>>6) +#define sib_index(rex, byte) ((((byte)>>3)&0x7) | (rex & REX_X ? 0x8 : 0x0)) +#define sib_base(rex, byte) (((byte)&0x7) | (rex & REX_B ? 0x8 : 0x0)) struct i_addr { int is_reg; /* if reg, reg number is in 'disp' */ @@ -834,10 +865,25 @@ "%bx" }; -static const char * const db_reg[3][8] = { - { "%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh" }, - { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di" }, - { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi" } +static const char * const db_reg[2][4][16] = { + + {{"%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }}, + + {{"%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil", + "%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b" }, + { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di", + "%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w" }, + { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi", + "%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d" }, + { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi", + "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" }} }; static const char * const db_seg_reg[8] = { @@ -862,28 +908,29 @@ (loc) += (size); static db_addr_t - db_disasm_esc(db_addr_t loc, int inst, int short_addr, + db_disasm_esc(db_addr_t loc, int inst, int rex, int short_addr, int size, const char *seg); -static void db_print_address(const char *seg, int size, +static void db_print_address(const char *seg, int size, int rex, struct i_addr *addrp); static db_addr_t - db_read_address(db_addr_t loc, int short_addr, int regmodrm, + db_read_address(db_addr_t loc, int short_addr, int rex, int regmodrm, struct i_addr *addrp); /* * Read address at location and return updated location. */ static db_addr_t -db_read_address(loc, short_addr, regmodrm, addrp) +db_read_address(loc, short_addr, rex, regmodrm, addrp) db_addr_t loc; int short_addr; + int rex; int regmodrm; struct i_addr * addrp; /* out */ { int mod, rm, sib, index, disp; - mod = f_mod(regmodrm); - rm = f_rm(regmodrm); + mod = f_mod(rex, regmodrm); + rm = f_rm(rex, regmodrm); if (mod == 3) { addrp->is_reg = TRUE; @@ -924,11 +971,11 @@ else { if (mod != 3 && rm == 4) { get_value_inc(sib, loc, 1, FALSE); - rm = sib_base(sib); - index = sib_index(sib); + rm = sib_base(rex, sib); + index = sib_index(rex, sib); if (index != 4) - addrp->index = db_reg[LONG][index]; - addrp->ss = sib_ss(sib); + addrp->index = db_reg[1][QUAD][index]; + addrp->ss = sib_ss(rex, sib); } switch (mod) { @@ -939,20 +986,20 @@ } else { addrp->disp = 0; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; } break; case 1: get_value_inc(disp, loc, 1, TRUE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; case 2: get_value_inc(disp, loc, 4, FALSE); addrp->disp = disp; - addrp->base = db_reg[LONG][rm]; + addrp->base = db_reg[1][QUAD][rm]; break; } } @@ -960,13 +1007,14 @@ } static void -db_print_address(seg, size, addrp) +db_print_address(seg, size, rex, addrp) const char * seg; int size; + int rex; struct i_addr * addrp; { if (addrp->is_reg) { - db_printf("%s", db_reg[size][addrp->disp]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(size == LONG && (rex & REX_W)) ? QUAD : size][addrp->disp]); return; } @@ -990,9 +1038,10 @@ * and return updated location. */ static db_addr_t -db_disasm_esc(loc, inst, short_addr, size, seg) +db_disasm_esc(loc, inst, rex, short_addr, size, seg) db_addr_t loc; int inst; + int rex; int short_addr; int size; const char * seg; @@ -1004,8 +1053,8 @@ const char * name; get_value_inc(regmodrm, loc, 1, FALSE); - fp = &db_Esc_inst[inst - 0xd8][f_reg(regmodrm)]; - mod = f_mod(regmodrm); + fp = &db_Esc_inst[inst - 0xd8][f_reg(rex, regmodrm)]; + mod = f_mod(rex, regmodrm); if (mod != 3) { if (*fp->f_name == '\0') { db_printf(""); @@ -1014,7 +1063,7 @@ /* * Normal address modes. */ - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); db_printf("%s", fp->f_name); switch(fp->f_size) { case SNGL: @@ -1039,7 +1088,7 @@ break; } db_printf("\t"); - db_print_address(seg, BYTE, &address); + db_print_address(seg, BYTE, rex, &address); } else { /* @@ -1048,24 +1097,24 @@ switch (fp->f_rrmode) { case op2(ST,STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st,%%st(%d)",name,f_rm(regmodrm)); + db_printf("%s\t%%st,%%st(%d)",name,f_rm(rex, regmodrm)); break; case op2(STI,ST): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d),%%st",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d),%%st",name, f_rm(rex, regmodrm)); break; case op1(STI): name = (fp->f_rrname) ? fp->f_rrname : fp->f_name; - db_printf("%s\t%%st(%d)",name, f_rm(regmodrm)); + db_printf("%s\t%%st(%d)",name, f_rm(rex, regmodrm)); break; case op1(X): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s", name); break; case op1(XA): - name = ((const char * const *)fp->f_rrname)[f_rm(regmodrm)]; + name = ((const char * const *)fp->f_rrname)[f_rm(rex, regmodrm)]; if (*name == '\0') goto bad; db_printf("%s\t%%ax", name); @@ -1098,6 +1147,7 @@ const char * i_name; int i_size; int i_mode; + int rex = 0; int regmodrm = 0; boolean_t first; int displ; @@ -1155,13 +1205,17 @@ prefix = FALSE; break; } + if (inst >= 0x40 && inst < 0x50) { + rex = inst; + prefix = TRUE; + } if (prefix) { get_value_inc(inst, loc, 1, FALSE); } } while (prefix); if (inst >= 0xd8 && inst <= 0xdf) { - loc = db_disasm_esc(loc, inst, short_addr, size, seg); + loc = db_disasm_esc(loc, inst, rex, short_addr, size, seg); db_printf("\n"); return (loc); } @@ -1181,7 +1235,7 @@ if (ip->i_has_modrm) { get_value_inc(regmodrm, loc, 1, FALSE); - loc = db_read_address(loc, short_addr, regmodrm, &address); + loc = db_read_address(loc, short_addr, rex, regmodrm, &address); } i_name = ip->i_name; @@ -1191,17 +1245,17 @@ if (ip->i_extra == db_Grp1 || ip->i_extra == db_Grp2 || ip->i_extra == db_Grp6 || ip->i_extra == db_Grp7 || ip->i_extra == db_Grp8 || ip->i_extra == db_Grp9) { - i_name = ((const char * const *)ip->i_extra)[f_reg(regmodrm)]; + i_name = ((const char * const *)ip->i_extra)[f_reg(rex, regmodrm)]; } else if (ip->i_extra == db_Grp3) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; } else if (ip->i_extra == db_Grp4 || ip->i_extra == db_Grp5) { ip = ip->i_extra; - ip = &ip[f_reg(regmodrm)]; + ip = &ip[f_reg(rex, regmodrm)]; i_name = ip->i_name; i_mode = ip->i_mode; i_size = ip->i_size; @@ -1215,6 +1269,10 @@ } else { db_printf("%s", i_name); + if ((inst >= 0x50 && inst <= 0x5f) || inst == 0x68 || inst == 0x6a) { + i_size = NONE; + db_printf("q"); + } if (i_size != NONE) { if (i_size == BYTE) { db_printf("b"); @@ -1226,8 +1284,12 @@ } else if (size == WORD) db_printf("w"); - else - db_printf("l"); + else { + if (rex & REX_W) + db_printf("q"); + else + db_printf("l"); + } } } db_printf("\t"); @@ -1241,52 +1303,56 @@ switch (i_mode & 0xFF) { case E: - db_print_address(seg, size, &address); + db_print_address(seg, size, rex, &address); break; case Eind: db_printf("*"); - db_print_address(seg, size, &address); + db_print_address(seg, size, rex, &address); break; case El: - db_print_address(seg, LONG, &address); + db_print_address(seg, (rex & REX_W) ? QUAD : LONG, rex, &address); + break; + + case EL: + db_print_address(seg, LONG, 0, &address); break; case Ew: - db_print_address(seg, WORD, &address); + db_print_address(seg, WORD, rex, &address); break; case Eb: - db_print_address(seg, BYTE, &address); + db_print_address(seg, BYTE, rex, &address); break; case R: - db_printf("%s", db_reg[size][f_reg(regmodrm)]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(size == LONG && (rex & REX_W)) ? QUAD : size][f_reg(rex, regmodrm)]); break; case Rw: - db_printf("%s", db_reg[WORD][f_reg(regmodrm)]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][WORD][f_reg(rex, regmodrm)]); break; case Ri: - db_printf("%s", db_reg[size][f_rm(inst)]); + db_printf("%s", db_reg[0][QUAD][f_rm(rex, inst)]); break; case Ril: - db_printf("%s", db_reg[LONG][f_rm(inst)]); + db_printf("%s", db_reg[rex != 0 ? 1 : 0][(rex & REX_R) ? QUAD : LONG][f_rm(rex, inst)]); break; case S: - db_printf("%s", db_seg_reg[f_reg(regmodrm)]); + db_printf("%s", db_seg_reg[f_reg(rex, regmodrm)]); break; case Si: - db_printf("%s", db_seg_reg[f_reg(inst)]); + db_printf("%s", db_seg_reg[f_reg(rex, inst)]); break; case A: - db_printf("%s", db_reg[size][0]); /* acc */ + db_printf("%s", db_reg[rex != 0 ? 1 : 0][size][0]); /* acc */ break; case BX: @@ -1306,23 +1372,23 @@ case SI: if (seg) db_printf("%s:", seg); - db_printf("(%s)", short_addr ? "%si" : "%esi"); + db_printf("(%s)", short_addr ? "%si" : "%rsi"); break; case DI: - db_printf("%%es:(%s)", short_addr ? "%di" : "%edi"); + db_printf("%%es:(%s)", short_addr ? "%di" : "%rdi"); break; case CR: - db_printf("%%cr%d", f_reg(regmodrm)); + db_printf("%%cr%d", f_reg(rex, regmodrm)); break; case DR: - db_printf("%%dr%d", f_reg(regmodrm)); + db_printf("%%dr%d", f_reg(rex, regmodrm)); break; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 1 18:52:48 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2FB9E16A504; Fri, 1 Apr 2005 18:52: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 DF95016A4EE for ; Fri, 1 Apr 2005 18:52:47 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 27BC543D39 for ; Fri, 1 Apr 2005 18:52:47 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31IqldP073078 for ; Fri, 1 Apr 2005 18:52:47 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31IqkEd073075 for perforce@freebsd.org; Fri, 1 Apr 2005 18:52:46 GMT (envelope-from jhb@freebsd.org) Date: Fri, 1 Apr 2005 18:52:46 GMT Message-Id: <200504011852.j31IqkEd073075@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74299 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, 01 Apr 2005 18:52:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=74299 Change 74299 by jhb@jhb_slimer on 2005/04/01 18:52:31 IFC @74297. Affected files ... .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#25 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#55 integrate .. //depot/projects/smpng/sys/modules/Makefile#94 integrate Differences ... ==== //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#25 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.75 2005/03/30 02:50:06 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.76 2005/04/01 16:40:22 wpaul Exp $"); #include #include @@ -93,6 +93,7 @@ IMPORT_FUNC(ndis_getdone_func), IMPORT_FUNC(ndis_resetdone_func), IMPORT_FUNC(ndis_sendrsrcavail_func), + IMPORT_FUNC(ndis_intrhand), { NULL, NULL, NULL } }; @@ -1718,7 +1719,7 @@ sc->ndis_block = block; sc->ndis_chars = IoGetDriverObjectExtension(drv, (void *)1); - IoInitializeDpcRequest(fdo, ndis_intrhand); + IoInitializeDpcRequest(fdo, kernndis_functbl[6].ipt_wrap); /* Finish up BSD-specific setup. */ ==== //depot/projects/smpng/sys/dev/pci/pci.c#55 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.284 2005/03/26 20:31:09 jmg Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.285 2005/04/01 16:22:50 jmg Exp $"); #include "opt_bus.h" @@ -509,11 +509,6 @@ if (oldstate == state) return (0); - if (bootverbose) - printf( - "pci%d:%d:%d: Transition from D%d to D%d\n", - dinfo->cfg.bus, dinfo->cfg.slot, dinfo->cfg.func, - oldstate, state); /* * The PCI power management specification states that after a state * transition between PCI power states, system software must @@ -556,6 +551,13 @@ default: return (EINVAL); } + + if (bootverbose) + printf( + "pci%d:%d:%d: Transition from D%d to D%d\n", + dinfo->cfg.bus, dinfo->cfg.slot, dinfo->cfg.func, + oldstate, state); + PCI_WRITE_CONFIG(dev, child, cfg->pp.pp_status, status, 2); if (delay) DELAY(delay); ==== //depot/projects/smpng/sys/modules/Makefile#94 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/Makefile,v 1.436 2005/03/31 20:21:43 scottl Exp $ +# $FreeBSD: src/sys/modules/Makefile,v 1.437 2005/04/01 17:40:39 imp Exp $ # oldcard -- specialized use for debugging only. # owi -- totally unsupported for debugging only. @@ -307,7 +307,6 @@ _aout= aout _apm= apm _ar= ar -_arcmsr= arcmsr _arcnet= arcnet _ath_hal= ath_hal _awi= awi @@ -361,6 +360,7 @@ _acpi= acpi _ahb= ahb _arl= arl +_arcmsr= arcmsr _asr= asr _bios= bios _cardbus= cardbus From owner-p4-projects@FreeBSD.ORG Fri Apr 1 19:17:21 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86A3316A4D0; Fri, 1 Apr 2005 19:17: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 29E6516A4CF for ; Fri, 1 Apr 2005 19:17:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0AA0F43D45 for ; Fri, 1 Apr 2005 19:17:19 +0000 (GMT) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31JHJrT074085 for ; Fri, 1 Apr 2005 19:17:19 GMT (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31JHIUI074082 for perforce@freebsd.org; Fri, 1 Apr 2005 19:17:18 GMT (envelope-from areisse@nailabs.com) Date: Fri, 1 Apr 2005 19:17:18 GMT Message-Id: <200504011917.j31JHIUI074082@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 74303 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, 01 Apr 2005 19:17:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=74303 Change 74303 by areisse@areisse_ibook on 2005/04/01 19:16:38 Bring over changes made in the dsep-20050331 drop. See the readme for the major changes. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/README#2 integrate .. //depot/projects/trustedbsd/sedarwin7/VERSION#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/Makefile.preamble#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/fcode-to-c.tproj/Makefile.preamble#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/macho-to-xcoff.tproj/Makefile.preamble#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/etc/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/file_cmds/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/file_cmds/ls/ls.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/libmac/mac_get.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/libmac/mac_set.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/getfmac/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/getpmac/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/mexec/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setfsmac/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setfsmac/sysqueue.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setpmac/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setpmac/setpmac.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mach_cmds/BootstrapDump.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/mach_cmds/mgetpmac.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/system_cmds/mach_init.tproj/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/system_cmds/mach_init.tproj/bootstrap.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/kern_descrip.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/posix_sem.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/posix_shm.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/sys_socket.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/uipc_mbuf.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/uipc_socket.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/uipc_socket2.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/uipc_syscalls.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/uipc_usrreq.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet/raw_ip.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet/tcp_input.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet/tcp_output.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet/tcp_subr.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet6/esp_input.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet6/icmp6.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet6/ip6_output.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet6/ipsec.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/netinet6/raw_ip6.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/mac.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/mac_policy.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/mbuf.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/posix_sem.h#1 branch .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/posix_shm.h#1 branch .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/socket.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/socketvar.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/sys/vnode.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/vfs/vfs_vnops.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/osfmk/ipc/ipc_right.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/osfmk/mach/mac.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/conf/files#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_base.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_internal.h#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_port.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_posix_sem.c#1 branch .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_posix_shm.c#1 branch .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_socket.c#1 branch .. //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/security/mac_vfs.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/mac_mls/mac_mls.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/mac_stub/mac_stub.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/mactest/mac_test.c#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/libsedarwin/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/policy/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/programs/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/programs/checkpolicy/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/programs/loadpolicy/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/programs/newrole/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/programs/wslogin/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/stacktrace/commands/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/stacktrace/commands/save_trace/Makefile#2 integrate .. //depot/projects/trustedbsd/sedarwin7/src/stacktrace/commands/sec_trace/Makefile#2 integrate Differences ... ==== //depot/projects/trustedbsd/sedarwin7/README#2 (text+ko) ==== @@ -46,7 +46,35 @@ - Enhancements to the BootX boot loader and XNU kernel extension linker to support the loading of policy KEXTs earlier in the boot sequence. + - Modifications to mach_init to help bootstrap the mac_mls policy; + this is only a temporary measure until the login modifications + are complete. + + +New Features in the 20050331 release +==================================== + + - Support labelling and access control for Posix IPC (semaphores + and shared memory). This includes support for Posix IPC in mls and + stub policies. + + - Modifications to the Darwin kernel to assign labels to + sockets and other supporting IPv4 data structures, and the + addition of access control checks to socket-related operations. + Extensions to the MAC Framework to permit policy modules to + implement these entry points. + + - Build improvements to convert all remaining BSD Makefiles to GNU + Makefiles. The build is further isolated; it no longer builds + and installs BootX tools in the user's home directory. The + mach_init program was added to the installation. + - Modified Darwin kernel with additional experimental labeling and + access control for Mach IPC. Prototype modifications to the MLS + policy to control information flow via Mach IPC. + + - Additional maturing in VFS security; in particular, vn_read, + vn_write, and vn_rdwr access controls were changed. New Features in Drop 5 ====================== ==== //depot/projects/trustedbsd/sedarwin7/VERSION#2 (text+ko) ==== @@ -1,6 +1,4 @@ -Code Drop 5 -December 17, 2004 +Code Drop dsep-20050331 +March 31, 2005 -src @1501 -docs @1501 -testbed @1501 +src @1896 ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/Makefile.preamble#2 (text+ko) ==== @@ -1,3 +1,4 @@ +include ../../Makeconfig INCLUDED_ARCHS = ppc OTHER_RECURSIVE_VARIABLES += INCLUDED_ARCHS @@ -139,4 +140,4 @@ # Change this definition to install projects somewhere other than the # standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems # and "" on other systems. -DSTROOT = $(HOME) +DSTROOT = $(DARWIN_ROOT) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/fcode-to-c.tproj/Makefile.preamble#2 (text+ko) ==== @@ -1,3 +1,4 @@ +include ../../../Makeconfig ############################################################################### # Makefile.preamble # Copyright 1997, Apple Computer, Inc. @@ -134,4 +135,4 @@ # Change this definition to install projects somewhere other than the # standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems # and "" on other systems. -DSTROOT = $(HOME) +DSTROOT = $(DARWIN_ROOT) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/BootX/macho-to-xcoff.tproj/Makefile.preamble#2 (text+ko) ==== @@ -1,3 +1,4 @@ +include ../../../Makeconfig ############################################################################### # Makefile.preamble # Copyright 1997, Apple Computer, Inc. @@ -134,4 +135,4 @@ # Change this definition to install projects somewhere other than the # standard locations. NEXT_ROOT defaults to "C:/Apple" on Windows systems # and "" on other systems. -DSTROOT = $(HOME) +DSTROOT = $(DARWIN_ROOT) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/Makefile#2 (text+ko) ==== @@ -10,12 +10,13 @@ cd libextattr && gnumake cd libmac && gnumake cd adv_cmds/ps.tproj && gnumake - cd etc && bsdmake + cd etc && gnumake cd extattr_cmds && make - cd mac_cmds && bsdmake - cd file_cmds && bsdmake + cd mac_cmds && gnumake + cd file_cmds && gnumake cd mach_cmds && gnumake cd top && make + cd system_cmds/mach_init.tproj && gnumake # bootstrap_cmds @@ -28,12 +29,13 @@ cd libextattr && gnumake install cd libmac && gnumake install cd adv_cmds/ps.tproj && gnumake install - cd etc && bsdmake install + cd etc && gnumake install cd extattr_cmds && make install - cd mac_cmds && bsdmake install - cd file_cmds && bsdmake install + cd mac_cmds && gnumake install + cd file_cmds && gnumake install cd mach_cmds && gnumake install cd top && make install + cd system_cmds/mach_init.tproj && gnumake install clean: rm -rf xnu/BUILD @@ -45,12 +47,13 @@ cd libextattr && gnumake clean cd libmac && gnumake clean cd adv_cmds/ps.tproj && gnumake clean - cd etc && bsdmake clean + cd etc && gnumake clean cd extattr_cmds && make clean - cd mac_cmds && bsdmake clean - cd file_cmds && bsdmake clean + cd mac_cmds && gnumake clean + cd file_cmds && gnumake clean cd mach_cmds && gnumake clean cd top && make clean + cd system_cmds/mach_init.tproj && gnumake clean #ifndef DARWIN_ROOT # $(error DARWIN_ROOT is not defined in Makeconfig) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/etc/Makefile#2 (text+ko) ==== @@ -1,11 +1,13 @@ include ../../Makeconfig ETCFILES= mac.conf +INSTALL= install + +all: install: - cd ${.CURDIR}; \ + cd ${CURDIR}; \ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \ $(ETCFILES) ${DESTDIR}/private/etc; - -.include +clean: ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/file_cmds/Makefile#2 (text+ko) ==== @@ -1,7 +1,13 @@ include ../../Makeconfig -SUBDIR= ls +.PHONY: install + +all: + cd ls && gnumake + +install: + cd ls && gnumake install -MAKE=gnumake +clean: + cd ls && gnumake clean -.include ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/file_cmds/ls/ls.c#2 (text+ko) ==== @@ -593,7 +593,6 @@ if (f_flags) { np->flags = &np->data[ulen + glen + 2]; (void)strcpy(np->flags, flags); - free(flags); } if (f_label) { np->label = &np->data[ulen + glen + 2 ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/libmac/mac_get.c#2 (text+ko) ==== @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -40,7 +41,7 @@ mac_get_fd(int fd, struct mac *label) { - return (ENOSYS); + return (syscall(SYS___mac_get_fd, fd, label)); } int @@ -70,3 +71,12 @@ return (syscall(SYS___mac_get_proc, label)); } + +int +mac_get_peer(int fd, struct mac *label) +{ + socklen_t len; + + len = sizeof(*label); + return (getsockopt(fd, SOL_SOCKET, SO_PEERLABEL, label, &len)); +} ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/libmac/mac_set.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ mac_set_fd(int fd, struct mac *label) { - return (ENOSYS); + return (syscall(SYS___mac_set_fd, fd, label)); } int ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/Makefile#2 (text+ko) ==== @@ -1,9 +1,22 @@ include ../../Makeconfig -SUBDIR= getfmac \ - getpmac \ - mexec \ - setfsmac \ - setpmac +all: + cd getfmac && gnumake + cd getpmac && gnumake + cd mexec && gnumake + cd setfsmac && gnumake + cd setpmac && gnumake + +install: + cd getfmac && gnumake install + cd getpmac && gnumake install + cd mexec && gnumake install + cd setfsmac && gnumake install + cd setpmac && gnumake install -.include +clean: + cd getfmac && gnumake clean + cd getpmac && gnumake clean + cd mexec && gnumake clean + cd setfsmac && gnumake clean + cd setpmac && gnumake clean ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/getfmac/Makefile#2 (text+ko) ==== @@ -3,7 +3,19 @@ PROG= getfmac MAN8= getfmac.8 +OBJS= getfmac.o + CFLAGS+= $(DARWIN_HDRS) LDADD+= $(LIBMAC) -.include +all: $(PROG) + +$(PROG): $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LDADD) + +install: $(PROG) + install -m 555 $(PROG) $(DESTDIR)/usr/bin + install -m 444 $(MAN8) $(DESTDIR)/usr/share/man/man8 + +clean: + rm -f $(OBJS) $(PROG) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/getpmac/Makefile#2 (text+ko) ==== @@ -3,7 +3,19 @@ PROG= getpmac MAN8= getpmac.8 +OBJS= getpmac.o + CFLAGS+= $(DARWIN_HDRS) LDADD+= $(LIBMAC) -.include +all: $(PROG) + +$(PROG): $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LDADD) + +install: $(PROG) + install -m 555 $(PROG) $(DESTDIR)/usr/bin + install -m 444 $(MAN8) $(DESTDIR)/usr/share/man/man8 + +clean: + rm -f $(PROG) $(OBJS) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/mexec/Makefile#2 (text+ko) ==== @@ -3,7 +3,18 @@ PROG= mexec NOMAN= +OBJS= mexec.o + CFLAGS+= $(DARWIN_HDRS) LDADD+= $(LIBMAC) -.include +all: $(PROG) + +$(PROG): $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LDADD) + +install: $(PROG) + install -m 555 $(PROG) $(DESTDIR)/usr/bin + +clean: + rm -f $(PROG) $(OBJS) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setfsmac/Makefile#2 (text+ko) ==== @@ -3,8 +3,22 @@ PROG= setfsmac MAN8= setfsmac.8 setfmac.8 +OBJS= setfsmac.o + CFLAGS+= $(DARWIN_HDRS) LDADD+= $(LIBMAC) -LINKS+= $(BINDIR)/setfsmac $(BINDIR)/setfmac +LINKS+= $(DESTDIR)/usr/bin/setfsmac $(DESTDIR)/usr/bin/setfmac + +all: $(PROG) + +$(PROG): $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LDADD) + +install: $(PROG) + install -m 555 $(PROG) $(DESTDIR)/usr/bin + ln -f $(LINKS) + install -m 444 $(MAN8) $(DESTDIR)/usr/share/man/man8 + +clean: + rm -f $(PROG) $(OBJS) -.include ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setfsmac/sysqueue.h#2 (text+ko) ==== @@ -34,8 +34,8 @@ * $FreeBSD: src/sys/sys/queue.h,v 1.54 2002/08/05 05:18:43 alfred Exp $ */ -#ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ +#ifndef _SYSQUEUE_H_ +#define _SYSQUEUE_H_ #include @@ -526,4 +526,4 @@ #endif /* _KERNEL */ -#endif /* !_SYS_QUEUE_H_ */ +#endif /* _SYSQUEUE_H_ */ ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setpmac/Makefile#2 (text+ko) ==== @@ -3,7 +3,19 @@ PROG= setpmac MAN8= setpmac.8 +OBJS= setpmac.o + CFLAGS+= $(DARWIN_HDRS) LDADD+= $(LIBMAC) -.include +all: $(PROG) + +$(PROG): $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ $(LDADD) + +install: $(PROG) + install -m 555 $(PROG) $(DESTDIR)/usr/bin + install -m 444 $(MAN8) $(DESTDIR)/usr/share/man/man8 + +clean: + rm -f $(PROG) $(OBJS) ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mac_cmds/setpmac/setpmac.c#2 (text+ko) ==== @@ -62,7 +62,7 @@ int error; - if (argc < 3) + if (argc < 2) usage(); error = mac_from_text(&label, argv[1]); ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mach_cmds/BootstrapDump.c#2 (text+ko) ==== @@ -70,7 +70,7 @@ fprintf(stderr, "%s: Usage: BootstrapPortDump [ pid ]\n", gProgramName); } -static const char *policies = "sebsd,ipctrace"; +static const char *policies = "?sebsd,?ipctrace,?mls"; int main (int argc, const char * argv[]) { ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/mach_cmds/mgetpmac.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ { mach_port_t tp; char label[512]; - char *policies = "sebsd"; + char *policies = "?sebsd,?ipctrace,?mls"; if (argc > 1) task_for_pid(mach_task_self(), strtol(argv[1], NULL, 10), &tp); ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/system_cmds/mach_init.tproj/Makefile#2 (text+ko) ==== @@ -7,6 +7,8 @@ # and Makefile.postamble (both optional), and Makefile will include them. # +include ../../../Makeconfig + NAME = mach_init PROJECTVERSION = 2.8 @@ -26,7 +28,8 @@ NEXTSTEP_INSTALLDIR = /sbin WINDOWS_INSTALLDIR = /sbin PDO_UNIX_INSTALLDIR = /sbin -LIBS = +OTHER_CFLAGS= -I$(EXPORT_HDRS)/bsd -I$(EXPORT_HDRS)/osfmk -I$(EXPORT_HDRS) +LIBS = $(LIBMAC) DEBUG_LIBS = $(LIBS) PROF_LIBS = $(LIBS) @@ -36,7 +39,7 @@ PDO_UNIX_PB_CFLAGS = -DMACH_USER_API -NEXTSTEP_BUILD_OUTPUT_DIR = /tmp/$(USER)/BUILD +NEXTSTEP_BUILD_OUTPUT_DIR = NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/system_cmds/mach_init.tproj/bootstrap.c#2 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include #include +#include #import #import @@ -254,6 +255,10 @@ ioctl(fd, TIOCNOTTY, 0); close(fd); } + + mac_t mac; + if (!mac_from_text(&mac, "mls/low(low-high)")) + mac_set_proc(mac); /* pass our arguments on to init */ argv[0] = INIT_PATH; @@ -813,6 +818,10 @@ sigemptyset(&mask); (void) sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL); + mac_t mac; + if (!mac_from_text(&mac, "mls/low(low-high)")) + mac_set_proc(mac); + execv(argv[0], argv); unix_fatal("Disabled server %x bootstrap %x: \"%s\": exec()", serverp->port, ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/kern_descrip.c#2 (text+ko) ==== @@ -257,6 +257,12 @@ return (EBADF); pop = &fdp->fd_ofileflags[fd]; +#ifdef MAC + error = mac_check_fcntl(p->p_ucred, fdp, uap->cmd, uap->arg); + if (error) + return (error); +#endif + switch (uap->cmd) { case F_DUPFD: @@ -733,7 +739,7 @@ break; case DTYPE_PSXSHM: - error = pshm_stat((void *)fp->f_data, &ub); + error = pshm_stat((void *)fp->f_data, &ub, p); break; case DTYPE_KQUEUE: ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/posix_sem.c#2 (text+ko) ==== @@ -61,30 +61,8 @@ #include #include #include - -#define PSEMNAMLEN 31 /* maximum name segment length we bother with */ - -struct pseminfo { - unsigned int psem_flags; - unsigned int psem_usecount; - mode_t psem_mode; - uid_t psem_uid; - gid_t psem_gid; - char psem_name[PSEMNAMLEN + 1]; /* segment name */ - void * psem_semobject; - struct proc * sem_proc; -}; -#define PSEMINFO_NULL (struct pseminfo *)0 +#include -#define PSEM_NONE 1 -#define PSEM_DEFINED 2 -#define PSEM_ALLOCATED 4 -#define PSEM_MAPPED 8 -#define PSEM_INUSE 0x10 -#define PSEM_REMOVED 0x20 -#define PSEM_INCREATE 0x40 -#define PSEM_INDELETE 0x80 - struct psemcache { LIST_ENTRY(psemcache) psem_hash; /* hash chain */ struct pseminfo *pseminfo; /* vnode the name refers to */ @@ -424,6 +402,15 @@ pinfo->psem_flags &= ~PSEM_DEFINED; pinfo->psem_flags |= PSEM_ALLOCATED; pinfo->sem_proc = p; +#ifdef MAC + mac_init_posix_sem(pinfo); + + error = mac_check_posix_sem_create(p->p_ucred, nameptr); + if (error) + goto bad2; + + mac_create_posix_sem(p->p_ucred, pinfo, nameptr); +#endif } else { /* semaphore should exist as it is without O_CREAT */ if (!incache) { @@ -433,7 +420,11 @@ if( pinfo->psem_flags & PSEM_INDELETE) { error = ENOENT; goto bad1; - } + } +#ifdef MAC + if (error = mac_check_posix_sem_open(p->p_ucred, pinfo)) + goto bad1; +#endif if (error = psem_access(pinfo, fmode, p->p_ucred, p)) goto bad1; } @@ -469,8 +460,12 @@ goto bad1; bad2: _FREE(pnode, M_SHM); - if (pinfo_alloc) + if (pinfo_alloc) { +#ifdef MAC + mac_destroy_posix_sem(pinfo); +#endif _FREE(pinfo, M_SHM); + } bad1: fdrelse(p, indx); ffree(nfp); @@ -602,6 +597,11 @@ goto bad; } else incache = 1; +#ifdef MAC + error = mac_check_posix_sem_unlink(p->p_ucred, pinfo, nameptr); + if (error) + goto bad; +#endif if (error = psem_access(pinfo, pinfo->psem_mode, p->p_ucred, p)) goto bad; @@ -686,6 +686,11 @@ != PSEM_ALLOCATED) { return(EINVAL); } +#ifdef MAC + error = mac_check_posix_sem_wait(p->p_ucred, pinfo); + if (error) + return (error); +#endif kret = semaphore_wait(pinfo->psem_semobject); switch (kret) { @@ -733,6 +738,11 @@ != PSEM_ALLOCATED) { return(EINVAL); } +#ifdef MAC + error = mac_check_posix_sem_wait(p->p_ucred, pinfo); + if (error) + return (error); +#endif wait_time.tv_sec = 0; wait_time.tv_nsec = 0; @@ -783,6 +793,11 @@ != PSEM_ALLOCATED) { return(EINVAL); } +#ifdef MAC + error = mac_check_posix_sem_post(p->p_ucred, pinfo); + if (error) + return (error); +#endif kret = semaphore_signal(pinfo->psem_semobject); switch (kret) { @@ -890,6 +905,10 @@ kret = semaphore_destroy(kernel_task, pinfo->psem_semobject); +#ifdef MAC + mac_destroy_posix_sem(pinfo); +#endif + switch (kret) { case KERN_INVALID_ADDRESS: case KERN_PROTECTION_FAILURE: ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/posix_shm.c#2 (text+ko) ==== @@ -60,36 +60,8 @@ #include #include #include - - -#define PSHMNAMLEN 31 /* maximum name segment length we bother with */ - -struct pshminfo { - unsigned int pshm_flags; - unsigned int pshm_usecount; - off_t pshm_length; - mode_t pshm_mode; - uid_t pshm_uid; - gid_t pshm_gid; - char pshm_name[PSHMNAMLEN + 1]; /* segment name */ - void * pshm_memobject; -#if DIAGNOSTIC - unsigned int pshm_readcount; - unsigned int pshm_writecount; - struct proc * pshm_proc; -#endif /* DIAGNOSTIC */ -}; -#define PSHMINFO_NULL (struct pshminfo *)0 +#include -#define PSHM_NONE 1 -#define PSHM_DEFINED 2 -#define PSHM_ALLOCATED 4 -#define PSHM_MAPPED 8 -#define PSHM_INUSE 0x10 -#define PSHM_REMOVED 0x20 -#define PSHM_INCREATE 0x40 -#define PSHM_INDELETE 0x80 - struct pshmcache { LIST_ENTRY(pshmcache) pshm_hash; /* hash chain */ struct pshminfo *pshminfo; /* vnode the name refers to */ @@ -417,12 +389,25 @@ pinfo->pshm_mode = cmode; pinfo->pshm_uid = p->p_ucred->cr_uid; pinfo->pshm_gid = p->p_ucred->cr_gid; +#ifdef MAC + mac_init_posix_shm(pinfo); + + error = mac_check_posix_shm_create(p->p_ucred, nameptr); + if (error) + goto bad2; + + mac_create_posix_shm(p->p_ucred, pinfo, nameptr); +#endif } else { /* already exists */ if( pinfo->pshm_flags & PSHM_INDELETE) { error = ENOENT; goto bad1; } +#ifdef MAC + if (error = mac_check_posix_shm_open(p->p_ucred, pinfo)) + goto bad1; +#endif if (error = pshm_access(pinfo, fmode, p->p_ucred, p)) goto bad1; } @@ -436,6 +421,10 @@ error = ENOENT; goto bad1; } +#ifdef MAC + if (error = mac_check_posix_shm_open(p->p_ucred, pinfo)) + goto bad1; +#endif if (error = pshm_access(pinfo, fmode, p->p_ucred, p)) goto bad1; } @@ -472,8 +461,12 @@ _FREE(pnode, M_SHM); bad2: - if (pinfo_alloc) + if (pinfo_alloc) { +#ifdef MAC + mac_destroy_posix_shm(pinfo); +#endif _FREE(pinfo, M_SHM); + } bad1: fdrelse(p, indx); ffree(nfp); @@ -515,6 +508,13 @@ } size = round_page_64(length); + +#ifdef MAC + int error = mac_check_posix_shm_truncate(p->p_ucred, pinfo, size); + if (error) + return(error); +#endif + kret = vm_allocate(current_map(), &user_addr, size, TRUE); if (kret != KERN_SUCCESS) goto out; @@ -547,15 +547,22 @@ } int -pshm_stat(pnode, sb) +pshm_stat(pnode, sb, p) struct pshmnode *pnode; struct stat *sb; +struct proc *p; { struct pshminfo *pinfo; if ((pinfo = pnode->pinfo) == PSHMINFO_NULL) return(EINVAL); +#ifdef MAC + int error = mac_check_posix_shm_stat(p->p_ucred, pinfo); + if (error) + return(error); +#endif + bzero(sb, sizeof(struct stat)); sb->st_mode = pinfo->pshm_mode; sb->st_uid = pinfo->pshm_uid; @@ -663,7 +670,12 @@ return(EINVAL); } - +#ifdef MAC + int error = mac_check_posix_shm_mmap(p->p_ucred, pinfo, prot, flags); + if (error) + return(error); +#endif + user_map = current_map(); if ((flags & MAP_FIXED) == 0) { @@ -794,6 +806,12 @@ return (EINVAL); } +#ifdef MAC + error = mac_check_posix_shm_unlink(p->p_ucred, pinfo, nameptr); + if (error) + goto bad; +#endif + if (pinfo->pshm_flags & PSHM_INDELETE) { error = 0; goto bad; @@ -849,6 +867,9 @@ pinfo->pshm_usecount--; if ((pinfo->pshm_flags & PSHM_REMOVED) && !pinfo->pshm_usecount) { +#ifdef MAC + mac_destroy_posix_shm(pinfo); +#endif _FREE(pinfo,M_SHM); } _FREE(pnode, M_SHM); ==== //depot/projects/trustedbsd/sedarwin7/src/darwin/xnu/bsd/kern/sys_socket.c#2 (text+ko) ==== @@ -104,6 +104,9 @@ struct mbuf **controlp, int *flagsp)); +#ifdef MAC + int error; +#endif thread_funnel_switch(KERNEL_FUNNEL, NETWORK_FUNNEL); if ((so = (struct socket *)fp->f_data) == NULL) { @@ -112,6 +115,13 @@ return (EBADF); } +#ifdef MAC + error = mac_check_socket_receive(p->p_ucred, so); + if (error) { + thread_funnel_switch(NETWORK_FUNNEL, KERNEL_FUNNEL); + return (error); + } +#endif fsoreceive = so->so_proto->pr_usrreqs->pru_soreceive; if (fsoreceive != soreceive) { kp = sotokextcb(so); @@ -144,6 +154,9 @@ struct mbuf *control, int flags)); struct kextcb *kp; int stat; +#ifdef MAC + int error; +#endif thread_funnel_switch(KERNEL_FUNNEL, NETWORK_FUNNEL); @@ -153,6 +166,13 @@ return (EBADF); } +#ifdef MAC + error = mac_check_socket_send(p->p_ucred, so); + if (error) { + thread_funnel_switch(NETWORK_FUNNEL, KERNEL_FUNNEL); + return (error); + } +#endif fsosend = so->so_proto->pr_usrreqs->pru_sosend; if (fsosend != sosend) { kp = sotokextcb(so); @@ -398,12 +418,25 @@ register struct stat *ub; { int stat; +#ifdef MAC + struct proc *p; +#endif /* * DANGER: by the time we get the network funnel the socket * may have been closed */ +#ifdef MAC + p = current_proc(); +#endif thread_funnel_switch(KERNEL_FUNNEL, NETWORK_FUNNEL); +#ifdef MAC + stat = mac_check_socket_stat(p->p_ucred, so); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 1 19:56:24 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A8E3E16A4D0; Fri, 1 Apr 2005 19:56: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 6C54E16A4CE for ; Fri, 1 Apr 2005 19:56:23 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 40C2643D2D for ; Fri, 1 Apr 2005 19:56:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j31JuNii076627 for ; Fri, 1 Apr 2005 19:56:23 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j31JuMFM076624 for perforce@freebsd.org; Fri, 1 Apr 2005 19:56:22 GMT (envelope-from jhb@freebsd.org) Date: Fri, 1 Apr 2005 19:56:22 GMT Message-Id: <200504011956.j31JuMFM076624@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 74314 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, 01 Apr 2005 19:56:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=74314 Change 74314 by jhb@jhb_slimer on 2005/04/01 19:55:40 Drop the jhb_clock branch as it no longer active for now. Affected files ... .. //depot/projects/smpng/sys/notes#33 edit Differences ... ==== //depot/projects/smpng/sys/notes#33 (text+ko) ==== @@ -82,7 +82,6 @@ it after cpu number by default Active child branches: -- jhb_clock - lapic timer stuff - jhb_intr - intr_vector stuff - jhb_ktrace - kernel debugging stuff, possibly per-thread ktrace - jhb_lock - critical section optimization + rwlocks From owner-p4-projects@FreeBSD.ORG Sat Apr 2 17:32:03 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1285516A4D0; Sat, 2 Apr 2005 17:32: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 CA81716A4CE for ; Sat, 2 Apr 2005 17:32:02 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9D9A943D1F for ; Sat, 2 Apr 2005 17:32:02 +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.13.1/8.13.1) with ESMTP id j32HW2iq025440 for ; Sat, 2 Apr 2005 17:32:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j32HW2JO025437 for perforce@freebsd.org; Sat, 2 Apr 2005 17:32:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 2 Apr 2005 17:32:02 GMT Message-Id: <200504021732.j32HW2JO025437@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 74356 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, 02 Apr 2005 17:32:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=74356 Change 74356 by rwatson@rwatson_paprika on 2005/04/02 17:31:46 Delete likely mis-merge from adding MAC labels and access control to System V messages. This line is not present in the main FreeBSD source tree. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/mac/mac_sysv_msg.c#11 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/mac/mac_sysv_msg.c#11 (text+ko) ==== @@ -101,7 +101,6 @@ { msqkptr->label = mac_sysv_msgqueue_label_alloc(); - msqkptr->label = NULL; } static void