Date: Fri, 16 May 2003 00:17:16 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 31304 for review Message-ID: <200305160717.h4G7HGDN017514@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31304 Change 31304 by marcel@marcel_nfs on 2003/05/16 00:17:09 IFia64. Affected files ... .. //depot/projects/ia64_epc/Makefile.inc1#14 integrate .. //depot/projects/ia64_epc/lib/libc/gen/opendir.c#2 integrate .. //depot/projects/ia64_epc/lib/libthr/thread/thr_cancel.c#2 integrate .. //depot/projects/ia64_epc/lib/libthr/thread/thr_cond.c#2 integrate .. //depot/projects/ia64_epc/share/man/man4/kame.4#2 integrate .. //depot/projects/ia64_epc/share/syscons/keymaps/INDEX.keymaps#3 integrate .. //depot/projects/ia64_epc/share/syscons/keymaps/Makefile#3 integrate .. //depot/projects/ia64_epc/share/syscons/keymaps/be.iso.kbd#2 integrate .. //depot/projects/ia64_epc/share/syscons/keymaps/fr.dvorak.kbd#1 branch .. //depot/projects/ia64_epc/share/syscons/keymaps/norwegian.dvorak.kbd#2 integrate .. //depot/projects/ia64_epc/sys/boot/forth/loader.conf#4 integrate .. //depot/projects/ia64_epc/sys/cam/scsi/scsi_da.c#11 integrate .. //depot/projects/ia64_epc/sys/conf/files.amd64#5 integrate .. //depot/projects/ia64_epc/sys/conf/ldscript.ia64#4 integrate .. //depot/projects/ia64_epc/sys/dev/fxp/if_fxp.c#14 integrate .. //depot/projects/ia64_epc/sys/dev/gem/if_gem.c#3 integrate .. //depot/projects/ia64_epc/sys/dev/gem/if_gemvar.h#2 integrate .. //depot/projects/ia64_epc/sys/dev/sio/sio_isa.c#3 integrate .. //depot/projects/ia64_epc/sys/dev/usb/umass.c#8 integrate .. //depot/projects/ia64_epc/sys/i386/i386/vm_machdep.c#6 integrate .. //depot/projects/ia64_epc/sys/ia64/ia64/pmap.c#15 integrate .. //depot/projects/ia64_epc/sys/kern/kern_descrip.c#6 integrate .. //depot/projects/ia64_epc/sys/kern/kern_sig.c#16 integrate .. //depot/projects/ia64_epc/sys/kern/subr_mbuf.c#10 integrate .. //depot/projects/ia64_epc/sys/netgraph/ng_bridge.c#3 integrate .. //depot/projects/ia64_epc/sys/nfsclient/nfs_bio.c#3 integrate .. //depot/projects/ia64_epc/sys/nfsclient/nfs_vnops.c#8 integrate .. //depot/projects/ia64_epc/sys/pci/if_dc.c#10 integrate .. //depot/projects/ia64_epc/sys/ufs/ufs/ufs_extattr.c#4 integrate .. //depot/projects/ia64_epc/tools/tools/tinderbox/Makefile#3 integrate .. //depot/projects/ia64_epc/tools/tools/tinderbox/tbmaster.pl#7 integrate .. //depot/projects/ia64_epc/tools/tools/tinderbox/tinderbox.pl#6 integrate .. //depot/projects/ia64_epc/tools/tools/tinderbox/www/Makefile#1 branch .. //depot/projects/ia64_epc/tools/tools/tinderbox/www/index.cgi#2 integrate .. //depot/projects/ia64_epc/tools/tools/tinderbox/www/tb.css#2 integrate .. //depot/projects/ia64_epc/usr.bin/netstat/mbuf.c#3 integrate Differences ... ==== //depot/projects/ia64_epc/Makefile.inc1#14 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.356 2003/05/05 12:54:26 bde Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.357 2003/05/15 17:59:32 ru Exp $ # # Make command line options: # -DNO_KERBEROS Do not build Heimdal (Kerberos 5) @@ -120,7 +120,8 @@ MAKEOBJDIRPREFIX?= /usr/obj .if !defined(OSRELDATE) -OSRELDATE!= sysctl -n kern.osreldate +OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \ + /usr/include/osreldate.h .endif TARGET_ARCH?= ${MACHINE_ARCH} .if ${TARGET_ARCH} == ${MACHINE_ARCH} ==== //depot/projects/ia64_epc/lib/libc/gen/opendir.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)opendir.c 8.8 (Berkeley) 5/1/95"; #endif /* LIBC_SCCS and not lint */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libc/gen/opendir.c,v 1.19 2003/01/04 00:18:50 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/opendir.c,v 1.20 2003/05/16 02:15:07 tjr Exp $"); #include "namespace.h" #include <sys/param.h> @@ -118,7 +118,7 @@ if (_fstatfs(fd, &sfb) < 0) goto fail; - unionstack = !strcmp(sfb.f_fstypename, "union") + unionstack = !strcmp(sfb.f_fstypename, "unionfs") || (sfb.f_flags & MNT_UNION); } else { unionstack = 0; ==== //depot/projects/ia64_epc/lib/libthr/thread/thr_cancel.c#2 (text+ko) ==== @@ -1,11 +1,16 @@ /* * David Leonard <d@openbsd.org>, 1999. Public domain. - * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.2 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.3 2003/05/15 17:56:18 mtm Exp $ */ #include <sys/errno.h> #include <pthread.h> #include "thr_private.h" +/* + * Static prototypes + */ +static void testcancel(void); + __weak_reference(_pthread_cancel, pthread_cancel); __weak_reference(_pthread_setcancelstate, pthread_setcancelstate); __weak_reference(_pthread_setcanceltype, pthread_setcanceltype); @@ -16,85 +21,102 @@ { int ret; - if ((ret = _find_thread(pthread)) != 0) { - /* NOTHING */ - } else if (pthread->state == PS_DEAD || pthread->state == PS_DEADLOCK + if ((ret = _find_thread(pthread)) != 0) + /* The thread is not on the list of active threads */ + goto out; + + _thread_critical_enter(pthread); + + if (pthread->state == PS_DEAD || pthread->state == PS_DEADLOCK || (pthread->flags & PTHREAD_EXITING) != 0) { + /* + * The thread is in the process of (or has already) exited + * or is deadlocked. + */ + _thread_critical_exit(pthread); ret = 0; - } else { - GIANT_LOCK(curthread); + goto out; + } + + /* + * The thread is on the active thread list and is not in the process + * of exiting. + */ + + if (((pthread->cancelflags & PTHREAD_CANCEL_DISABLE) != 0) || + (((pthread->cancelflags & PTHREAD_CANCEL_ASYNCHRONOUS) == 0) && + ((pthread->cancelflags & PTHREAD_AT_CANCEL_POINT) == 0))) + /* Just mark it for cancellation: */ + pthread->cancelflags |= PTHREAD_CANCELLING; + else { + /* + * Check if we need to kick it back into the + * run queue: + */ + switch (pthread->state) { + case PS_RUNNING: + /* No need to resume: */ + pthread->cancelflags |= PTHREAD_CANCELLING; + break; - if (((pthread->cancelflags & PTHREAD_CANCEL_DISABLE) != 0) || - (((pthread->cancelflags & PTHREAD_CANCEL_ASYNCHRONOUS) == 0) && - ((pthread->cancelflags & PTHREAD_AT_CANCEL_POINT) == 0))) - /* Just mark it for cancellation: */ + case PS_SLEEP_WAIT: + case PS_WAIT_WAIT: pthread->cancelflags |= PTHREAD_CANCELLING; - else { + PTHREAD_NEW_STATE(pthread, PS_RUNNING); + break; + + case PS_JOIN: /* - * Check if we need to kick it back into the - * run queue: + * Disconnect the thread from the joinee: */ - switch (pthread->state) { - case PS_RUNNING: - /* No need to resume: */ - pthread->cancelflags |= PTHREAD_CANCELLING; - break; + if (pthread->join_status.thread != NULL) { + pthread->join_status.thread->joiner + = NULL; + pthread->join_status.thread = NULL; + } + pthread->cancelflags |= PTHREAD_CANCELLING; + PTHREAD_NEW_STATE(pthread, PS_RUNNING); + break; - case PS_SLEEP_WAIT: - case PS_WAIT_WAIT: - pthread->cancelflags |= PTHREAD_CANCELLING; - PTHREAD_NEW_STATE(pthread, PS_RUNNING); - break; + case PS_MUTEX_WAIT: + case PS_COND_WAIT: + /* + * Threads in these states may be in queues. + * In order to preserve queue integrity, the + * cancelled thread must remove itself from the + * queue. When the thread resumes, it will + * remove itself from the queue and call the + * cancellation routine. + */ + pthread->cancelflags |= PTHREAD_CANCELLING; + PTHREAD_NEW_STATE(pthread, PS_RUNNING); + break; - case PS_JOIN: - /* - * Disconnect the thread from the joinee: - */ - if (pthread->join_status.thread != NULL) { - pthread->join_status.thread->joiner - = NULL; - pthread->join_status.thread = NULL; - } - pthread->cancelflags |= PTHREAD_CANCELLING; - PTHREAD_NEW_STATE(pthread, PS_RUNNING); - break; - - case PS_MUTEX_WAIT: - case PS_COND_WAIT: - /* - * Threads in these states may be in queues. - * In order to preserve queue integrity, the - * cancelled thread must remove itself from the - * queue. When the thread resumes, it will - * remove itself from the queue and call the - * cancellation routine. - */ - pthread->cancelflags |= PTHREAD_CANCELLING; - PTHREAD_NEW_STATE(pthread, PS_RUNNING); - break; - - case PS_DEAD: - case PS_DEADLOCK: - case PS_STATE_MAX: - /* Ignore - only here to silence -Wall: */ - break; - } + case PS_DEAD: + case PS_DEADLOCK: + case PS_STATE_MAX: + /* Ignore - only here to silence -Wall: */ + break; } + } - /* Unprotect the scheduling queues: */ - GIANT_UNLOCK(curthread); + /* Unprotect the scheduling queues: */ + _thread_critical_exit(pthread); - ret = 0; - } + ret = 0; +out: return (ret); } int _pthread_setcancelstate(int state, int *oldstate) { - int ostate; + int ostate, ret; + + ret = 0; + + _thread_critical_enter(curthread); - GIANT_LOCK(curthread); ostate = curthread->cancelflags & PTHREAD_CANCEL_DISABLE; switch (state) { @@ -102,23 +124,21 @@ if (oldstate != NULL) *oldstate = ostate; curthread->cancelflags &= ~PTHREAD_CANCEL_DISABLE; - if ((curthread->cancelflags & PTHREAD_CANCEL_ASYNCHRONOUS) == 0) + if ((curthread->cancelflags & PTHREAD_CANCEL_ASYNCHRONOUS) == 0) break; - GIANT_UNLOCK(curthread); - pthread_testcancel(); + testcancel(); break; case PTHREAD_CANCEL_DISABLE: if (oldstate != NULL) *oldstate = ostate; curthread->cancelflags |= PTHREAD_CANCEL_DISABLE; - GIANT_UNLOCK(curthread); break; default: - GIANT_UNLOCK(curthread); - return (EINVAL); + ret = EINVAL; } - return (0); + _thread_critical_exit(curthread); + return (ret); } int @@ -126,37 +146,43 @@ { int otype; - GIANT_LOCK(curthread); + _thread_critical_enter(curthread); otype = curthread->cancelflags & PTHREAD_CANCEL_ASYNCHRONOUS; switch (type) { case PTHREAD_CANCEL_ASYNCHRONOUS: if (oldtype != NULL) *oldtype = otype; curthread->cancelflags |= PTHREAD_CANCEL_ASYNCHRONOUS; - GIANT_UNLOCK(curthread); - pthread_testcancel(); + testcancel(); break; case PTHREAD_CANCEL_DEFERRED: if (oldtype != NULL) *oldtype = otype; curthread->cancelflags &= ~PTHREAD_CANCEL_ASYNCHRONOUS; - GIANT_UNLOCK(curthread); break; default: - GIANT_UNLOCK(curthread); return (EINVAL); } + _thread_critical_exit(curthread); return (0); } -/* - * XXXTHR Make an internal locked version. - */ void _pthread_testcancel(void) { - GIANT_LOCK(curthread); + _thread_critical_enter(curthread); + testcancel(); + _thread_critical_exit(curthread); +} + +static void +testcancel() +{ + /* + * This pthread should already be locked by the caller. + */ + if (((curthread->cancelflags & PTHREAD_CANCEL_DISABLE) == 0) && ((curthread->cancelflags & PTHREAD_CANCELLING) != 0) && ((curthread->flags & PTHREAD_EXITING) == 0)) { @@ -166,30 +192,28 @@ * to be cancelled again. */ curthread->cancelflags &= ~PTHREAD_CANCELLING; - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); _thread_exit_cleanup(); pthread_exit(PTHREAD_CANCELED); PANIC("cancel"); } - GIANT_UNLOCK(curthread); } void _thread_enter_cancellation_point(void) { - pthread_testcancel(); - - GIANT_LOCK(curthread); + _thread_critical_enter(curthread); + testcancel(); curthread->cancelflags |= PTHREAD_AT_CANCEL_POINT; - GIANT_UNLOCK(curthread); + _thread_critical_exit(curthread); } void _thread_leave_cancellation_point(void) { - GIANT_LOCK(curthread); + _thread_critical_enter(curthread); curthread->cancelflags &= ~PTHREAD_AT_CANCEL_POINT; - GIANT_UNLOCK(curthread); + testcancel(); + _thread_critical_exit(curthread); - pthread_testcancel(); } ==== //depot/projects/ia64_epc/lib/libthr/thread/thr_cond.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_cond.c,v 1.3 2003/04/02 03:05:39 jeff Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cond.c,v 1.4 2003/05/15 18:17:13 mtm Exp $ */ #include <stdlib.h> #include <errno.h> @@ -43,6 +43,8 @@ static pthread_t cond_queue_deq(pthread_cond_t); static void cond_queue_remove(pthread_cond_t, pthread_t); static void cond_queue_enq(pthread_cond_t, pthread_t); +static int cond_wait_common(pthread_cond_t *, + pthread_mutex_t *, const struct timespec *); __weak_reference(_pthread_cond_init, pthread_cond_init); __weak_reference(_pthread_cond_destroy, pthread_cond_destroy); @@ -161,13 +163,8 @@ _pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) { int rval; - struct timespec abstime = { 0, 0 }; - /* - * XXXTHR This is a hack. Make a pthread_cond_common function that - * accepts NULL so we don't change posix semantics for timedwait. - */ - rval = pthread_cond_timedwait(cond, mutex, &abstime); + rval = cond_wait_common(cond, mutex, NULL); /* This should never happen. */ if (rval == ETIMEDOUT) @@ -180,7 +177,16 @@ _pthread_cond_timedwait(pthread_cond_t * cond, pthread_mutex_t * mutex, const struct timespec * abstime) { - struct timespec *time; + if (abstime == NULL || abstime->tv_nsec >= 1000000000) + return (EINVAL); + + return (cond_wait_common(cond, mutex, abstime)); +} + +static int +cond_wait_common(pthread_cond_t * cond, pthread_mutex_t * mutex, + const struct timespec * abstime) +{ int rval = 0; int done = 0; int seqno; @@ -189,13 +195,6 @@ _thread_enter_cancellation_point(); - if (abstime == NULL || abstime->tv_nsec >= 1000000000) - return (EINVAL); - - if (abstime->tv_sec == 0 && abstime->tv_nsec == 0) - time = NULL; - else - time = abstime; /* * If the condition variable is statically initialized, perform dynamic * initialization. @@ -273,7 +272,7 @@ PTHREAD_SET_STATE(curthread, PS_COND_WAIT); GIANT_UNLOCK(curthread); - rval = _thread_suspend(curthread, time); + rval = _thread_suspend(curthread, (struct timespec *)abstime); if (rval == -1) { printf("foo"); fflush(stdout); ==== //depot/projects/ia64_epc/share/man/man4/kame.4#2 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" $Id: kame.4,v 1.4 1999/10/07 04:01:15 itojun Exp $ -.\" $FreeBSD: src/share/man/man4/kame.4,v 1.11 2002/07/09 20:37:18 blackend Exp $ +.\" $FreeBSD: src/share/man/man4/kame.4,v 1.12 2003/05/16 00:31:12 hmp Exp $ .\" .Dd April 13, 1999 .Dt KAME 4 @@ -67,7 +67,6 @@ .\" .Ss Plug and Play and protocol stack/interface configuration .Xr ndp 8 , -.Xr prefix 8 , .Xr rrenumd 8 , .Xr rtadvd 8 , .Xr rtsol 8 , @@ -81,8 +80,8 @@ .Xr mchat 1 .Pq - , .Xr ifmcstat 8 , -.Xr pim6dd 8 , -.Xr pim6sd 8 , +.Xr pim6dd 8 [ /usr/ports/net/pim6dd ] , +.Xr pim6sd 8 [ /usr/ports/net/pim6sd ] , .Xr pim6stat 8 . .\" .Ss Transition Tools @@ -96,12 +95,8 @@ .Fx . .\" .Ss IPsec and tunnelling -.Xr gifconfig 8 , .Xr ipsec 4 , -.\" (dtcp and racoon doesn't exist yet.) -.\" .Xr dtcpc 8 , -.\" .Xr dtcps 8 , -.\" .Xr racoon 8 , +.Xr racoon 8 [ /usr/ports/security/racoon ] , .Xr setkey 8 . .Pp Dozen of existing tools are modified for IPsec support, like @@ -123,6 +118,7 @@ modified for IPv4/v6 support, or IPv6-only .Xr inet6d 8 +.Pq - is supplied. .Pp Dozen of existing daemons are modified for IPv6/IPsec support, like ==== //depot/projects/ia64_epc/share/syscons/keymaps/INDEX.keymaps#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/syscons/keymaps/INDEX.keymaps,v 1.46 2003/05/05 06:06:55 murray Exp $ +# $FreeBSD: src/share/syscons/keymaps/INDEX.keymaps,v 1.47 2003/05/16 03:46:53 murray Exp $ # # database for kbdmap(8) # @@ -128,6 +128,11 @@ fr.iso.acc.kbd:es:Francés ISO-8859-1 (con acentos) fr.iso.acc.kbd:uk:æÒÁÎÃÕÚØËÁ ISO-8859-1 (accent keys) +fr.dvorak.kbd:en:French Dvorak-like +fr.dvorak.kbd:de:Französisch Dvorak +fr.dvorak.kbd:es:Francés Dvorak +fr.dvorak.kbd:uk:French Dvorak-like + fr_CA.iso.acc.kbd:en:French Canadian ISO-8859-1 (accent keys) fr_CA.iso.acc.kbd:de:Französisch Kanada ISO-8859-1 (mit Akzenten) fr_CA.iso.acc.kbd:es:Francocanadiense ISO-8859-1 (con acentos) ==== //depot/projects/ia64_epc/share/syscons/keymaps/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/syscons/keymaps/Makefile,v 1.59 2003/05/05 06:06:55 murray Exp $ +# $FreeBSD: src/share/syscons/keymaps/Makefile,v 1.60 2003/05/16 03:46:53 murray Exp $ KEYMAPS= INDEX.keymaps KEYMAPS+= be.iso.kbd be.iso.acc.kbd @@ -11,7 +11,7 @@ KEYMAPS+= el.iso07.kbd KEYMAPS+= estonian.iso.kbd estonian.iso15.kbd estonian.cp850.kbd KEYMAPS+= finnish.iso.kbd finnish.cp850.kbd -KEYMAPS+= fr.iso.kbd fr.iso.acc.kbd +KEYMAPS+= fr.iso.kbd fr.iso.acc.kbd fr.dvorak.kbd KEYMAPS+= fr_CA.iso.acc.kbd KEYMAPS+= german.iso.kbd german.cp850.kbd KEYMAPS+= gr.elot.acc.kbd gr.us101.acc.kbd ==== //depot/projects/ia64_epc/share/syscons/keymaps/be.iso.kbd#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/syscons/keymaps/be.iso.kbd,v 1.11 2001/03/11 23:41:18 ache Exp $ +# $FreeBSD: src/share/syscons/keymaps/be.iso.kbd,v 1.12 2003/05/16 03:37:52 murray Exp $ # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt shift cntrl shift state @@ -42,7 +42,7 @@ 036 'j' 'J' nl nl 'j' 'J' nl nl C 037 'k' 'K' vt vt 'k' 'K' vt vt C 038 'l' 'L' ff ff 'l' 'L' ff ff C - 039 'm' 'M' cr cr 'm' 'M' cr cr O + 039 'm' 'M' cr cr 'm' 'M' cr cr C 040 249 '%' nop nop ''' ''' nop nop O 041 178 179 nop nop 178 179 nop nop O 042 lshift lshift lshift lshift lshift lshift lshift lshift O @@ -53,7 +53,7 @@ 047 'v' 'V' syn syn 'v' 'V' syn syn C 048 'b' 'B' stx stx 'b' 'B' stx stx C 049 'n' 'N' so so 'n' 'N' so so C - 050 ',' '?' nop nop ',' '?' nop nop C + 050 ',' '?' nop nop ',' '?' nop nop O 051 ';' '.' nop nop ';' '.' nop nop O 052 ':' '/' nop nop ':' '/' nop nop O 053 '=' '+' nop nop '~' '~' nop nop O ==== //depot/projects/ia64_epc/share/syscons/keymaps/norwegian.dvorak.kbd#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/syscons/keymaps/norwegian.dvorak.kbd,v 1.1 2003/05/05 06:06:55 murray Exp $ +# $FreeBSD: src/share/syscons/keymaps/norwegian.dvorak.kbd,v 1.2 2003/05/16 03:34:23 murray Exp $ # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt shift cntrl shift state @@ -11,10 +11,10 @@ 005 '4' 164 nop nop '$' 164 nop nop O 006 '5' '%' nop nop '5' '%' nop nop O 007 '6' '&' rs rs '6' '&' nop nop O - 008 '7' '/' nop nop '7' '/' nop nop O - 009 '8' '(' nop nop '8' '(' esc esc O - 010 '9' ')' nop nop '9' ')' gs gs O - 011 '0' '=' nop nop '0' '=' nop nop O + 008 '7' '/' nop nop '{' '/' nop nop O + 009 '8' '(' nop nop '[' '(' esc esc O + 010 '9' ')' nop nop ']' ')' gs gs O + 011 '0' '=' nop nop '}' '=' nop nop O 012 '+' '?' esc esc '[' '?' nop nop O 013 '\' '`' nop nop ''' nop nop nop O 014 bs bs del del bs bs del del O @@ -46,7 +46,7 @@ 040 '-' '_' us us '-' '_' us us O 041 '|' 167 nop nop 166 182 nop nop O 042 lshift lshift lshift lshift lshift lshift lshift lshift O - 043 248 216 nop nop '|' '\' nop nop C + 043 '<' '>' nop nop '|' '\' nop nop C 044 230 198 nop nop '{' '[' nop nop C 045 'q' 'Q' dc1 dc1 'q' 'Q' dc1 dc1 C 046 'j' 'J' nl nl 'j' 'J' nl nl C ==== //depot/projects/ia64_epc/sys/boot/forth/loader.conf#4 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.70 2003/03/11 12:09:25 ru Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.71 2003/05/16 04:31:00 murray Exp $ ############################################################## ### Basic configuration options ############################ @@ -179,6 +179,7 @@ miibus_load="NO" # miibus support, needed for some drivers if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs if_ar_load="NO" # Digi SYNC/570i +if_awi_load="NO" # AMD PCnetMobile IEEE 802.11 wireless NICs if_bge_load="NO" # Broadcom BCM570x PCI gigabit ethernet if_cm_load="NO" # SMC (90c26, 90c56, 90c66) if_dc_load="NO" # DEC/Intel 21143 and various workalikes @@ -186,12 +187,16 @@ if_ed_load="NO" # National Semiconductor DS8390/WD83C690 ethernet if_el_load="NO" # 3Com Etherlink 3C501 if_em_load="NO" # Intel(R) PRO/1000 gigabit ethernet +if_en_load="NO" # Midway-based ATM interfaces if_ep_load="NO" # 3Com Etherlink III (3c5x9) +if_ex_load="NO" # Intel EtherExpress Pro/10 ethernet if_fe_load="NO" # Fujitsu MB86960A/MB86965A based Ethernet adapters if_fxp_load="NO" # Intel EtherExpress PRO/100B (82557, 82558) if_gx_load="NO" # Intel Pro/1000 gigabit ethernet +if_ie_load="NO" # Intel 82586 if_lge_load="NO" # Level 1 LXT1001 NetCellerator PCI gigabit ethernet if_lnc_load="NO" # AMD Lance/PCnet Ethernet +if_my_load="NO" # Myson PCI fast ethernet if_nge_load="NO" # National Semiconductor PCI gigabit ethernet if_oltr_load="NO" # Olicom if_pcn_load="NO" # AMD PCnet PCI @@ -287,6 +292,7 @@ umodem_load="NO" # Modems uscanner_load="NO" # Scanners if_aue_load="NO" # ADMtek USB ethernet +if_axe_load="NO" # ASIX Electronics AX88172 USB ethernet if_cue_load="NO" # CATC USB ethernet if_kue_load="NO" # Kawasaki LSI USB ethernet ==== //depot/projects/ia64_epc/sys/cam/scsi/scsi_da.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.142 2003/05/03 00:21:40 ken Exp $ + * $FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.143 2003/05/15 17:35:35 njl Exp $ */ #ifdef _KERNEL @@ -499,6 +499,14 @@ */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "MITSUMI", "USB FDD", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE + }, + { + /* + * OTi USB Flash Key + * PR: kern/51825 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "OTi", "Flash Disk", "*"}, + /*quirks*/ DA_Q_NO_6_BYTE } }; ==== //depot/projects/ia64_epc/sys/conf/files.amd64#5 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.14 2003/05/14 04:10:49 peter Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.15 2003/05/16 02:27:17 obrien Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -16,7 +16,7 @@ # ia32_assym.h optional ia32 \ dependency "$S/kern/genassym.sh ia32_genassym.o" \ - compile-with "sh $S/kern/genassym.sh ia32_genassym.o > ${.TARGET}" \ + compile-with "env NM=${NM} sh $S/kern/genassym.sh ia32_genassym.o > ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "ia32_assym.h" # ==== //depot/projects/ia64_epc/sys/conf/ldscript.ia64#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/conf/ldscript.ia64,v 1.8 2002/12/05 18:35:44 obrien Exp $ */ +/* $FreeBSD: src/sys/conf/ldscript.ia64,v 1.9 2003/05/16 06:03:45 marcel Exp $ */ OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") OUTPUT_ARCH(ia64) ENTRY(__start) ==== //depot/projects/ia64_epc/sys/dev/fxp/if_fxp.c#14 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.178 2003/04/30 04:14:56 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.179 2003/05/16 01:13:16 rwatson Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -264,6 +264,10 @@ static int fxp_rnr; SYSCTL_INT(_hw, OID_AUTO, fxp_rnr, CTLFLAG_RW, &fxp_rnr, 0, "fxp rnr events"); +static int fxp_noflow; +SYSCTL_INT(_hw, OID_AUTO, fxp_noflow, CTLFLAG_RW, &fxp_noflow, 0, "fxp flow control disabled"); +TUNABLE_INT("hw.fxp_noflow", &fxp_noflow); + /* * Wait for the previous command to be accepted (but not necessarily * completed). @@ -2051,7 +2055,7 @@ cbp->mc_all = sc->flags & FXP_FLAG_ALL_MCAST ? 1 : 0; cbp->gamla_rx = sc->flags & FXP_FLAG_EXT_RFA ? 1 : 0; - if (sc->revision == FXP_REV_82557) { + if (fxp_noflow || sc->revision == FXP_REV_82557) { /* * The 82557 has no hardware flow control, the values * below are the defaults for the chip. ==== //depot/projects/ia64_epc/sys/dev/gem/if_gem.c#3 (text+ko) ==== @@ -26,14 +26,16 @@ * * from: NetBSD: gem.c,v 1.21 2002/06/01 23:50:58 lukem Exp * - * $FreeBSD: src/sys/dev/gem/if_gem.c,v 1.15 2003/02/19 05:47:05 imp Exp $ + * $FreeBSD: src/sys/dev/gem/if_gem.c,v 1.16 2003/05/15 16:57:55 tmm Exp $ */ /* * Driver for Sun GEM ethernet controllers. */ +#if 0 #define GEM_DEBUG +#endif #include <sys/param.h> #include <sys/systm.h> @@ -109,7 +111,7 @@ #define KTR_GEM KTR_CT2 #endif -#define GEM_NSEGS GEM_NTXSEGS +#define GEM_NSEGS GEM_NTXDESC /* * gem_attach: @@ -144,7 +146,7 @@ error = bus_dma_tag_create(sc->sc_pdmatag, 1, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, - GEM_TD_BUFSIZE, GEM_NTXSEGS, BUS_SPACE_MAXSIZE_32BIT, + GEM_TD_BUFSIZE, GEM_NTXDESC, BUS_SPACE_MAXSIZE_32BIT, BUS_DMA_ALLOCNOW, &sc->sc_tdmatag); if (error) goto fail_rtag; @@ -470,10 +472,12 @@ */ for (seg = 0; seg < nsegs; seg++, nexttx = GEM_NEXTTX(nexttx)) { +#ifdef GEM_DEBUG CTR5(KTR_GEM, "txdma_cb: mapping seg %d (txd %d), len " "%lx, addr %#lx (%#lx)", seg, nexttx, segs[seg].ds_len, segs[seg].ds_addr, GEM_DMA_WRITE(sc, segs[seg].ds_addr)); +#endif if (segs[seg].ds_len == 0) continue; @@ -483,8 +487,10 @@ ("gem_txdma_callback: segment size too large!")); flags = segs[seg].ds_len & GEM_TD_BUFSIZE; if (len == 0) { +#ifdef GEM_DEBUG CTR2(KTR_GEM, "txdma_cb: start of packet at seg %d, " "tx %d", seg, nexttx); +#endif flags |= GEM_TD_START_OF_PACKET; if (++sc->sc_txwin > GEM_NTXSEGS * 2 / 3) { sc->sc_txwin = 0; @@ -492,8 +498,10 @@ } } if (len + segs[seg].ds_len == totsz) { +#ifdef GEM_DEBUG CTR2(KTR_GEM, "txdma_cb: end of packet at seg %d, " "tx %d", seg, nexttx); +#endif flags |= GEM_TD_END_OF_PACKET; } sc->sc_txdescs[nexttx].gd_flags = GEM_DMA_WRITE(sc, flags); @@ -545,7 +553,9 @@ int s; s = splnet(); +#ifdef GEM_DEBUG CTR1(KTR_GEM, "%s: gem_reset", device_get_name(sc->sc_dev)); +#endif gem_reset_rx(sc); gem_reset_tx(sc); @@ -592,7 +602,9 @@ struct gem_softc *sc = (struct gem_softc *)ifp->if_softc; struct gem_txsoft *txs; +#ifdef GEM_DEBUG CTR1(KTR_GEM, "%s: gem_stop", device_get_name(sc->sc_dev)); +#endif callout_stop(&sc->sc_tick_ch); @@ -846,7 +858,9 @@ s = splnet(); +#ifdef GEM_DEBUG CTR1(KTR_GEM, "%s: gem_init: calling stop", device_get_name(sc->sc_dev)); +#endif /* * Initialization sequence. The numbered steps below correspond * to the sequence outlined in section 6.3.5.1 in the Ethernet @@ -857,7 +871,9 @@ /* step 1 & 2. Reset the Ethernet Channel */ gem_stop(&sc->sc_arpcom.ac_if, 0); gem_reset(sc); +#ifdef GEM_DEBUG CTR1(KTR_GEM, "%s: gem_init: restarting", device_get_name(sc->sc_dev)); +#endif /* Re-initialize the MIF */ gem_mifinit(sc); @@ -881,8 +897,10 @@ bus_space_write_4(t, h, GEM_RX_RING_PTR_HI, 0); bus_space_write_4(t, h, GEM_RX_RING_PTR_LO, GEM_CDRXADDR(sc, 0)); +#ifdef GEM_DEBUG CTR3(KTR_GEM, "loading rx ring %lx, tx ring %lx, cddma %lx", GEM_CDRXADDR(sc, 0), GEM_CDTXADDR(sc, 0), sc->sc_cddma); +#endif /* step 8. Global Configuration & Interrupt Mask */ bus_space_write_4(t, h, GEM_INTMASK, @@ -978,9 +996,11 @@ bus_dmamap_sync(sc->sc_tdmatag, txs->txs_dmamap, BUS_DMASYNC_PREWRITE); +#ifdef GEM_DEBUG CTR3(KTR_GEM, "load_mbuf: setting firstdesc=%d, lastdesc=%d, " "ndescs=%d", txs->txs_firstdesc, txs->txs_lastdesc, txs->txs_ndescs); +#endif STAILQ_REMOVE_HEAD(&sc->sc_txfreeq, txs_q); STAILQ_INSERT_TAIL(&sc->sc_txdirtyq, txs, txs_q); @@ -989,7 +1009,9 @@ return (0); fail: +#ifdef GEM_DEBUG CTR1(KTR_GEM, "gem_load_txmbuf failed (%d)", error); +#endif bus_dmamap_unload(sc->sc_tdmatag, txs->txs_dmamap); return (error); } @@ -1091,7 +1113,7 @@ { struct gem_softc *sc = (struct gem_softc *)ifp->if_softc; struct mbuf *m0 = NULL; - int firsttx, ntx, ofree, txmfail; + int firsttx, ntx = 0, ofree, txmfail; if ((ifp->if_flags & (IFF_RUNNING | IFF_OACTIVE)) != IFF_RUNNING) return; @@ -1103,8 +1125,10 @@ ofree = sc->sc_txfree; firsttx = sc->sc_txnext; +#ifdef GEM_DEBUG CTR3(KTR_GEM, "%s: gem_start: txfree %d, txnext %d", device_get_name(sc->sc_dev), ofree, firsttx); +#endif /* * Loop through the send queue, setting up transmit descriptors @@ -1112,7 +1136,7 @@ * descriptors. */ txmfail = 0; - for (ntx = 0;; ntx++) { + do { /* * Grab a packet off the queue. */ @@ -1135,15 +1159,18 @@ break; } + ntx++; /* Kick the transmitter. */ +#ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: gem_start: kicking tx %d", device_get_name(sc->sc_dev), sc->sc_txnext); +#endif bus_space_write_4(sc->sc_bustag, sc->sc_h, GEM_TX_KICK, sc->sc_txnext); if (ifp->if_bpf != NULL) bpf_mtap(ifp->if_bpf, m0); - } + } while (1); if (txmfail == -1 || sc->sc_txfree == 0) { /* No more slots left; notify upper layer. */ @@ -1153,13 +1180,17 @@ if (ntx > 0) { GEM_CDSYNC(sc, BUS_DMASYNC_PREWRITE); +#ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: packets enqueued, OWN on %d", device_get_name(sc->sc_dev), firsttx); +#endif /* Set a watchdog timer in case the chip flakes out. */ ifp->if_timer = 5; +#ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: gem_start: watchdog %d", device_get_name(sc->sc_dev), ifp->if_timer); +#endif } } @@ -1178,7 +1209,9 @@ int progress = 0; +#ifdef GEM_DEBUG CTR1(KTR_GEM, "%s: gem_tint", device_get_name(sc->sc_dev)); +#endif /* * Unload collision counters @@ -1228,9 +1261,11 @@ * processed +1. */ txlast = bus_space_read_4(t, mac, GEM_TX_COMPLETION); +#ifdef GEM_DEBUG CTR3(KTR_GEM, "gem_tint: txs->txs_firstdesc = %d, " "txs->txs_lastdesc = %d, txlast = %d", txs->txs_firstdesc, txs->txs_lastdesc, txlast); +#endif if (txs->txs_firstdesc <= txs->txs_lastdesc) { if ((txlast >= txs->txs_firstdesc) && (txlast <= txs->txs_lastdesc)) @@ -1242,7 +1277,9 @@ break; } +#ifdef GEM_DEBUG CTR0(KTR_GEM, "gem_tint: releasing a desc"); +#endif STAILQ_REMOVE_HEAD(&sc->sc_txdirtyq, txs_q); sc->sc_txfree += txs->txs_ndescs; @@ -1261,6 +1298,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305160717.h4G7HGDN017514>