Date: Sun, 29 Jun 2003 21:52:57 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 33873 for review Message-ID: <200306300452.h5U4qvKY029113@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=33873 Change 33873 by marcel@marcel_nfs on 2003/06/29 21:52:36 IFC @33872 Affected files ... .. //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_detach.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_exit.c#7 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#7 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#7 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_kern.c#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#9 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_private.h#8 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#5 integrate .. //depot/projects/ia64/rescue/rescue/Makefile#2 integrate .. //depot/projects/ia64/share/man/man4/urio.4#3 integrate .. //depot/projects/ia64/sys/alpha/alpha/pmap.c#33 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#8 integrate .. //depot/projects/ia64/sys/boot/common/loader.8#18 integrate .. //depot/projects/ia64/sys/boot/i386/kgzldr/Makefile#9 integrate .. //depot/projects/ia64/sys/boot/pc98/kgzldr/Makefile#8 integrate .. //depot/projects/ia64/sys/dev/wi/if_wi.c#41 integrate .. //depot/projects/ia64/sys/i386/i386/pmap.c#46 integrate .. //depot/projects/ia64/sys/ia64/ia64/pmap.c#69 integrate .. //depot/projects/ia64/sys/net80211/ieee80211.c#3 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_ioctl.c#3 integrate .. //depot/projects/ia64/sys/net80211/ieee80211_node.c#3 integrate .. //depot/projects/ia64/sys/netipsec/ipsec.c#5 integrate .. //depot/projects/ia64/sys/netipsec/key.c#6 integrate .. //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#25 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#39 integrate .. //depot/projects/ia64/sys/vm/pmap.h#18 integrate .. //depot/projects/ia64/sys/vm/vm_map.c#57 integrate .. //depot/projects/ia64/sys/vm/vm_map.h#23 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.c#41 integrate .. //depot/projects/ia64/usr.bin/whois/whois.c#10 integrate Differences ... ==== //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#5 (text+ko) ==== @@ -1,6 +1,6 @@ /* * David Leonard <d@openbsd.org>, 1999. Public domain. - * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.5 2003/05/25 08:48:11 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.6 2003/06/29 23:51:04 mtm Exp $ */ #include <sys/errno.h> #include <pthread.h> @@ -80,12 +80,12 @@ * Disconnect the thread from the joinee: */ if ((joined = pthread->join_status.thread) != NULL) { - if (_spintrylock(&joined->lock) == EBUSY) { + if (THR_TRYLOCK(&joined->lock) == EBUSY) { _thread_critical_exit(pthread); goto retry; } pthread->join_status.thread->joiner = NULL; - _spinunlock(&joined->lock); + THR_UNLOCK(&joined->lock); joined = pthread->join_status.thread = NULL; } pthread->cancelflags |= PTHREAD_CANCELLING; ==== //depot/projects/ia64/lib/libthr/thread/thr_detach.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_detach.c,v 1.4 2003/06/02 11:01:00 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_detach.c,v 1.5 2003/06/29 23:51:04 mtm Exp $ */ #include <errno.h> #include <pthread.h> @@ -44,10 +44,10 @@ if (pthread == NULL || pthread->magic != PTHREAD_MAGIC) return (EINVAL); - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); if (pthread->attr.flags & PTHREAD_DETACHED) { - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); return (EINVAL); } @@ -73,7 +73,7 @@ _thread_critical_exit(joiner); } - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); return (0); } ==== //depot/projects/ia64/lib/libthr/thread/thr_exit.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.8 2003/05/29 20:46:53 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.9 2003/06/29 23:51:04 mtm Exp $ */ #include <errno.h> #include <unistd.h> @@ -146,7 +146,7 @@ /* Check if there is a thread joining this one: */ if (curthread->joiner != NULL) { pthread = curthread->joiner; - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); curthread->joiner = NULL; /* Make the joining thread runnable: */ @@ -156,7 +156,7 @@ pthread->join_status.ret = curthread->ret; pthread->join_status.error = 0; pthread->join_status.thread = NULL; - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); /* Make this thread collectable by the garbage collector. */ PTHREAD_ASSERT(((curthread->attr.flags & PTHREAD_DETACHED) == ==== //depot/projects/ia64/lib/libthr/thread/thr_gc.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.6 2003/05/29 20:46:53 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.7 2003/06/29 23:51:04 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -106,7 +106,7 @@ if (pthread == _thread_initial) continue; - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); /* * Check if the stack was not specified by @@ -128,7 +128,7 @@ * it on the dead thread list. */ if ((pthread->attr.flags & PTHREAD_DETACHED) == 0) { - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); continue; } @@ -141,7 +141,7 @@ */ pthread_cln = pthread; - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); /* * Retire the architecture specific id so it may be ==== //depot/projects/ia64/lib/libthr/thread/thr_join.c#7 (text+ko) ==== @@ -29,10 +29,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.8 2003/05/29 20:46:53 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.9 2003/06/29 23:51:04 mtm Exp $ */ #include <errno.h> #include <pthread.h> +#include <stdlib.h> #include "thr_private.h" __weak_reference(_pthread_join, pthread_join); @@ -69,7 +70,7 @@ THREAD_LIST_LOCK; TAILQ_FOREACH(thread, &_thread_list, tle) if (thread == pthread) { - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); break; } @@ -79,7 +80,7 @@ */ TAILQ_FOREACH(thread, &_dead_list, dle) if (thread == pthread) { - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); break; } @@ -87,7 +88,7 @@ if (thread == NULL || ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) { if (thread != NULL) - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ESRCH; @@ -97,7 +98,7 @@ if (pthread->joiner != NULL) { /* Multiple joiners are not supported. */ /* XXXTHR - support multiple joiners. */ - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ENOTSUP; @@ -109,7 +110,7 @@ if (pthread->state != PS_DEAD) { /* Set the running thread to be the joiner: */ pthread->joiner = curthread; - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); _thread_critical_enter(curthread); /* Keep track of which thread we're joining to: */ @@ -159,7 +160,7 @@ /* Make the thread collectable by the garbage collector. */ pthread->attr.flags |= PTHREAD_DETACHED; - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); THREAD_LIST_UNLOCK; if (pthread_cond_signal(&_gc_cond) != 0) PANIC("Cannot signal gc cond"); ==== //depot/projects/ia64/lib/libthr/thread/thr_kern.c#8 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_kern.c,v 1.9 2003/06/29 15:55:44 jdp Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_kern.c,v 1.11 2003/06/29 23:51:04 mtm Exp $ */ #include <sys/cdefs.h> @@ -55,6 +55,20 @@ void _thread_critical_enter(pthread_t pthread) { + _thread_sigblock(); + THR_LOCK(&pthread->lock); +} + +void +_thread_critical_exit(pthread_t pthread) +{ + THR_UNLOCK(&pthread->lock); + _thread_sigunblock(); +} + +void +_thread_sigblock() +{ sigset_t set; sigset_t sav; @@ -62,18 +76,13 @@ * Block all signals. */ SIGFILLSET(set); + SIGADDSET(set, SIGTHR); - /* - * We can not use the global 'restore' set until after we have - * acquired the giant lock. - */ - _SPINLOCK(&pthread->lock); - - /* If we are already in a critical section, just up the refcount */ - if (++curthread->crit_ref > 1) + /* If we have already blocked signals, just up the refcount */ + if (++curthread->signest > 1) return; - PTHREAD_ASSERT(curthread->crit_ref == 1, - ("Critical section reference count must be 1!")); + PTHREAD_ASSERT(curthread->signest == 1, + ("Blocked signal nesting level must be 1!")); if (__sys_sigprocmask(SIG_SETMASK, &set, &sav)) { _thread_printf(STDERR_FILENO, "Critical Enter: sig err %d\n", @@ -84,15 +93,15 @@ } void -_thread_critical_exit(pthread_t pthread) +_thread_sigunblock() { sigset_t set; - /* We might be in a nested critical section */ - if (--curthread->crit_ref > 0) + /* We might be in a nested 'blocked signal' section */ + if (--curthread->signest > 0) return; - PTHREAD_ASSERT(curthread->crit_ref == 0, - ("Non-Zero critical section reference count.")); + PTHREAD_ASSERT(curthread->signest == 0, + ("Non-Zero blocked signal nesting level.")); /* * Restore signals. @@ -103,7 +112,6 @@ errno); abort(); } - _SPINUNLOCK(&pthread->lock); } void ==== //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.11 2003/06/02 10:04:18 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.12 2003/06/29 23:51:04 mtm Exp $ */ #include <stdlib.h> #include <errno.h> @@ -1263,9 +1263,9 @@ /* _thread_kern_sig_defer();*/ /* XXX - Necessary to obey lock order */ - _SPINLOCK(&pthread->lock); + THR_LOCK(&pthread->lock); mutex = pthread->data.mutex; - _SPINUNLOCK(&pthread->lock); + THR_UNLOCK(&pthread->lock); _SPINLOCK(&mutex->lock); ==== //depot/projects/ia64/lib/libthr/thread/thr_private.h#8 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.17 2003/06/29 15:55:44 jdp Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.19 2003/06/29 23:49:41 mtm Exp $ */ #ifndef _THR_PRIVATE_H @@ -81,6 +81,24 @@ #define curthread _get_curthread() /* + * Locking macros + */ +#define THR_LOCK(m) \ + do { \ + if (umtx_lock((m), curthread->thr_id) != 0) \ + abort(); \ + } while (0) + +#define THR_TRYLOCK(m) _umtxtrylock((m)) + +#define THR_UNLOCK(m) \ + do { \ + if (umtx_unlock((m), curthread->thr_id) != 0) \ + abort(); \ + } while (0) + + +/* * State change macro without scheduling queue change: */ #define PTHREAD_SET_STATE(thrd, newstate) do { \ @@ -426,12 +444,12 @@ u_int64_t uniqueid; /* for gdb */ thr_id_t thr_id; sigset_t savedsig; - int crit_ref; /* crit. section netsting level */ + int signest; /* blocked signal netsting level */ /* * Lock for accesses to this thread structure. */ - spinlock_t lock; + struct umtx lock; /* Queue entry for list of all threads: */ TAILQ_ENTRY(pthread) tle; @@ -748,7 +766,6 @@ int _pthread_once(pthread_once_t *, void (*) (void)); pthread_t _pthread_self(void); int _pthread_setspecific(pthread_key_t, const void *); -int _spintrylock(spinlock_t *); void _thread_exit(char *, int, char *); void _thread_exit_cleanup(void); void *_thread_cleanup(pthread_t); @@ -766,6 +783,9 @@ int _thread_suspend(pthread_t thread, struct timespec *abstime); void _thread_critical_enter(pthread_t); void _thread_critical_exit(pthread_t); +void _thread_sigblock(); +void _thread_sigunblock(); +int _umtxtrylock(struct umtx *lck); /* #include <sys/aio.h> */ #ifdef _SYS_AIO_H_ ==== //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.5 2003/06/29 00:12:40 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.6 2003/06/29 23:49:41 mtm Exp $ * */ @@ -65,10 +65,10 @@ } int -_spintrylock(spinlock_t *lck) +_umtxtrylock(struct umtx *lck) { int error; - error = umtx_trylock((struct umtx *)lck, curthread->thr_id); + error = umtx_trylock(lck, curthread->thr_id); if (error != 0 && error != EBUSY) abort(); return (error); ==== //depot/projects/ia64/rescue/rescue/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -#$FreeBSD: src/rescue/rescue/Makefile,v 1.1 2003/06/29 18:35:37 gordon Exp $ +#$FreeBSD: src/rescue/rescue/Makefile,v 1.2 2003/06/29 20:44:12 gordon Exp $ # @(#)Makefile 8.1 (Berkeley) 6/2/93 PROG= rescue @@ -133,7 +133,7 @@ CRUNCH_PROGS+= mca gpt .endif -.if ${MACHINE_ARCH} == "sparc" +.if ${MACHINE_ARCH} == "sparc64" .endif .if ${MACHINE_ARCH} == "alpha" ==== //depot/projects/ia64/share/man/man4/urio.4#3 (text+ko) ==== @@ -28,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/urio.4,v 1.8 2003/03/25 15:01:10 keramida Exp $ +.\" $FreeBSD: src/share/man/man4/urio.4,v 1.9 2003/06/30 03:16:41 mph Exp $ .\" .Dd March 5, 2000 .Dt URIO 4 @@ -74,7 +74,7 @@ utility (see the .Sx SEE ALSO section): -.Dl rio_add_song /usr/local/MP3/TraceyChapman/02-Fast-Car.mp3 +.Dl rio_add_song /usr/local/MP3/TracyChapman/02-Fast-Car.mp3 .Sh SEE ALSO .Xr ohci 4 , .Xr uhci 4 , ==== //depot/projects/ia64/sys/alpha/alpha/pmap.c#33 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.127 2003/06/28 21:21:04 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.128 2003/06/29 21:20:02 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -330,8 +330,6 @@ static void alpha_protection_init(void); static void pmap_changebit(vm_page_t m, int bit, boolean_t setem); -static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, - vm_page_t m, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t* ptq, vm_offset_t sva); static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); static int pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -1973,7 +1971,7 @@ * but is *MUCH* faster than pmap_enter... */ -static vm_page_t +vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { register pt_entry_t *pte; ==== //depot/projects/ia64/sys/amd64/amd64/pmap.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.417 2003/06/26 01:04:31 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.418 2003/06/29 21:20:03 alc Exp $ */ /*- * Copyright (c) 2003 Networks Associates Technology, Inc. @@ -208,8 +208,6 @@ static void amd64_protection_init(void); static __inline void pmap_changebit(vm_page_t m, int bit, boolean_t setem); -static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, - vm_page_t m, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva); static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); static int pmap_remove_entry(struct pmap *pmap, vm_page_t m, @@ -1951,7 +1949,7 @@ * but is *MUCH* faster than pmap_enter... */ -static vm_page_t +vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { pt_entry_t *pte; ==== //depot/projects/ia64/sys/boot/common/loader.8#18 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.56 2003/05/17 22:17:23 ru Exp $ +.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.57 2003/06/29 20:57:55 brueffer Exp $ .\" .\" Note: The date here should be updated whenever a non-trivial .\" change is made to the manual page. @@ -57,7 +57,7 @@ The main drive behind these commands is user-friendliness. The bigger component is an .Tn ANS -Forth compatible Forth interpreter based on ficl, by +Forth compatible Forth interpreter based on FICL, by .An John Sadler . .Pp During initialization, ==== //depot/projects/ia64/sys/boot/i386/kgzldr/Makefile#9 (text+ko) ==== @@ -1,25 +1,19 @@ -# $FreeBSD: src/sys/boot/i386/kgzldr/Makefile,v 1.15 2003/06/07 17:42:26 obrien Exp $ +# $FreeBSD: src/sys/boot/i386/kgzldr/Makefile,v 1.16 2003/06/30 00:15:38 ru Exp $ -SRCS= boot.c inflate.c lib.c +SRCS= start.s boot.c inflate.c lib.c crt.s sio.s OBJS= ${SRCS:N*.h:R:S/$/.o/g} CFLAGS= -ffreestanding CFLAGS+=-Os CFLAGS+=-DKZIP -LDFLAGS=-nostdlib -static -r +LDFLAGS=-nostdlib -static -Wl,-r .PATH: ${.CURDIR}/../../../kern -.for asm in start crt sio -OBJS+= ${asm}.o -${asm}.o: ${asm}.s - ${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*${asm}*} -.endfor - CLEANFILES=kgzldr.o BOOT_COMCONSOLE_PORT?= 0x3f8 AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT} -all: ${OBJS} kgzldr.o +all: kgzldr.o kgzldr.o: ${OBJS} ${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS} @@ -28,4 +22,4 @@ ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ kgzldr.o ${DESTDIR}${LIBDIR} -.include <bsd.lib.mk> +.include <bsd.prog.mk> ==== //depot/projects/ia64/sys/boot/pc98/kgzldr/Makefile#8 (text+ko) ==== @@ -1,28 +1,22 @@ -# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.9 2003/06/07 17:42:26 obrien Exp $ +# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.10 2003/06/30 00:20:28 ru Exp $ -SRCS= boot.c inflate.c lib.c +SRCS= start.s boot.c inflate.c lib.c crt.s sio.s OBJS= ${SRCS:N*.h:R:S/$/.o/g} CFLAGS= -ffreestanding CFLAGS+=-Os CFLAGS+=-DKZIP -LDFLAGS=-nostdlib -static -r +LDFLAGS=-nostdlib -static -Wl,-r .PATH: ${.CURDIR}/../../../kern .PATH: ${.CURDIR}/../../i386/kgzldr AFLAGS+=--defsym PC98=1 -.for asm in start crt sio -OBJS+= ${asm}.o -${asm}.o: ${asm}.s - ${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*${asm}*} -.endfor - CLEANFILES=kgzldr.o BOOT_COMCONSOLE_PORT?= 0x238 AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT} -all: ${OBJS} kgzldr.o +all: kgzldr.o kgzldr.o: ${OBJS} ${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS} @@ -31,4 +25,4 @@ ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ kgzldr.o ${DESTDIR}${LIBDIR} -.include <bsd.lib.mk> +.include <bsd.prog.mk> ==== //depot/projects/ia64/sys/dev/wi/if_wi.c#41 (text+ko) ==== @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.144 2003/06/28 06:17:26 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.145 2003/06/29 20:14:35 sam Exp $"); #define WI_HERMES_AUTOINC_WAR /* Work around data write autoinc bug. */ #define WI_HERMES_STATS_WAR /* Work around stats counter bug. */ @@ -347,6 +347,10 @@ ic->ic_channels[val].ic_flags != 0, ("wi_attach: invalid own channel %u!", val)); ic->ic_ibss_chan = &ic->ic_channels[val]; + } else { + device_printf(dev, + "WI_RID_OWN_CHNL failed, using first channel!\n"); + ic->ic_ibss_chan = &ic->ic_channels[0]; } /* ==== //depot/projects/ia64/sys/i386/i386/pmap.c#46 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.413 2003/06/27 22:39:13 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.414 2003/06/29 21:20:03 alc Exp $"); /*- * Copyright (c) 2003 Networks Associates Technology, Inc. * All rights reserved. @@ -243,8 +243,6 @@ static void i386_protection_init(void); static __inline void pmap_changebit(vm_page_t m, int bit, boolean_t setem); -static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, - vm_page_t m, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva); static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); static int pmap_remove_entry(struct pmap *pmap, vm_page_t m, @@ -2090,7 +2088,7 @@ * but is *MUCH* faster than pmap_enter... */ -static vm_page_t +vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { pt_entry_t *pte; ==== //depot/projects/ia64/sys/ia64/ia64/pmap.c#69 (text+ko) ==== @@ -43,7 +43,7 @@ * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 * from: i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp * with some ideas from NetBSD's alpha pmap - * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.112 2003/06/29 06:10:32 alc Exp $ + * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.113 2003/06/29 21:20:03 alc Exp $ */ /* @@ -267,7 +267,6 @@ static pmap_t pmap_install(pmap_t); static void pmap_invalidate_all(pmap_t pmap); -static void pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m); vm_offset_t pmap_steal_memory(vm_size_t size) @@ -1709,8 +1708,8 @@ * but is *MUCH* faster than pmap_enter... */ -static void -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m) +vm_page_t +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { struct ia64_lpte *pte; pmap_t oldpmap; @@ -1719,7 +1718,7 @@ pte = pmap_find_pte(va); if (pte->pte_p) - return; + goto reinstall; /* * Enter on the PV list since its part of our managed memory. @@ -1737,8 +1736,9 @@ pmap_set_pte(pte, va, VM_PAGE_TO_PHYS(m), PTE_IG_MANAGED, PTE_PL_USER, PTE_AR_R); - +reinstall: pmap_install(oldpmap); + return (NULL); } /* @@ -1821,7 +1821,8 @@ vm_page_unlock_queues(); VM_OBJECT_UNLOCK(object); pmap_enter_quick(pmap, - addr + ia64_ptob(tmpidx), p); + addr + ia64_ptob(tmpidx), p, + NULL); VM_OBJECT_LOCK(object); vm_page_lock_queues(); vm_page_wakeup(p); @@ -1855,7 +1856,8 @@ vm_page_unlock_queues(); VM_OBJECT_UNLOCK(object); pmap_enter_quick(pmap, - addr + ia64_ptob(tmpidx), p); + addr + ia64_ptob(tmpidx), p, + NULL); VM_OBJECT_LOCK(object); vm_page_lock_queues(); vm_page_wakeup(p); @@ -1951,7 +1953,7 @@ } vm_page_busy(m); vm_page_unlock_queues(); - pmap_enter_quick(pmap, addr, m); + pmap_enter_quick(pmap, addr, m, NULL); vm_page_lock_queues(); vm_page_wakeup(m); } ==== //depot/projects/ia64/sys/net80211/ieee80211.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.3 2003/06/27 05:13:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.4 2003/06/29 20:10:54 sam Exp $"); /* * IEEE 802.11 generic handler @@ -197,10 +197,13 @@ return c - ic->ic_channels; else if (c == IEEE80211_CHAN_ANYC) return IEEE80211_CHAN_ANY; - else { + else if (c != NULL) { if_printf(&ic->ic_if, "invalid channel freq %u flags %x\n", c->ic_freq, c->ic_flags); return 0; /* XXX */ + } else { + if_printf(&ic->ic_if, "invalid channel (NULL)\n"); + return 0; /* XXX */ } } ==== //depot/projects/ia64/sys/net80211/ieee80211_ioctl.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.2 2003/06/27 05:13:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.3 2003/06/29 20:12:17 sam Exp $"); /* * IEEE 802.11 ioctl support (FreeBSD-specific) @@ -404,7 +404,7 @@ } memset(ic->ic_des_essid, 0, sizeof(ic->ic_des_essid)); ic->ic_des_esslen = le16toh(wreq.wi_val[0]) * 2; - memcpy(ic->ic_des_essid, &wreq.wi_val[1], len); + memcpy(ic->ic_des_essid, &wreq.wi_val[1], ic->ic_des_esslen); error = ENETRESET; break; case WI_RID_CURRENT_BSSID: ==== //depot/projects/ia64/sys/net80211/ieee80211_node.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.2 2003/06/27 05:13:52 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.3 2003/06/29 20:13:38 sam Exp $"); #include "opt_inet.h" @@ -87,7 +87,8 @@ ic->ic_node_free = ieee80211_node_free; ic->ic_node_copy = ieee80211_node_copy; ic->ic_bss = (*ic->ic_node_alloc)(ic); - /* XXX KASSERT != NULL? */ + KASSERT(ic->ic_bss != NULL, ("unable to setup inital BSS node")); + ic->ic_bss->ni_chan = IEEE80211_CHAN_ANYC; } void ==== //depot/projects/ia64/sys/netipsec/ipsec.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netipsec/ipsec.c,v 1.4 2003/02/28 20:06:29 sam Exp $ */ +/* $FreeBSD: src/sys/netipsec/ipsec.c,v 1.5 2003/06/29 23:58:38 sam Exp $ */ /* $KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $ */ /* @@ -1922,6 +1922,8 @@ { struct xformsw *xsp; + if (sav->tdb_xform != NULL) /* previously initialized */ + return 0; for (xsp = xforms; xsp; xsp = xsp->xf_next) if (xsp->xf_type == xftype) return (*xsp->xf_init)(sav, xsp); ==== //depot/projects/ia64/sys/netipsec/key.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netipsec/key.c,v 1.5 2003/02/19 05:47:36 imp Exp $ */ +/* $FreeBSD: src/sys/netipsec/key.c,v 1.6 2003/06/29 23:58:38 sam Exp $ */ /* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ /* @@ -2751,13 +2751,24 @@ if (__LIST_CHAINED(sav)) LIST_REMOVE(sav, chain); + /* + * Cleanup xform state. Note that zeroize'ing causes the + * keys to be cleared; otherwise we must do it ourself. + */ + if (sav->tdb_xform != NULL) { + sav->tdb_xform->xf_zeroize(sav); + sav->tdb_xform = NULL; + } else { + if (sav->key_auth != NULL) + bzero(_KEYBUF(sav->key_auth), _KEYLEN(sav->key_auth)); + if (sav->key_enc != NULL) + bzero(_KEYBUF(sav->key_enc), _KEYLEN(sav->key_enc)); + } if (sav->key_auth != NULL) { - bzero(_KEYBUF(sav->key_auth), _KEYLEN(sav->key_auth)); KFREE(sav->key_auth); sav->key_auth = NULL; } if (sav->key_enc != NULL) { - bzero(_KEYBUF(sav->key_enc), _KEYLEN(sav->key_enc)); KFREE(sav->key_enc); sav->key_enc = NULL; } ==== //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#25 (text+ko) ==== @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap.c,v 1.57 2003/06/14 23:23:54 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap.c,v 1.58 2003/06/29 21:20:04 alc Exp $"); /* * Manages physical address maps. @@ -1032,6 +1032,14 @@ pmap_syncicache(VM_PAGE_TO_PHYS(m), PAGE_SIZE); } +vm_page_t +pmap_enter_quick(pmap_t pm, vm_offset_t va, vm_page_t m, vm_page_t mpte) +{ + + pmap_enter(pm, va, m, VM_PROT_READ | VM_PROT_EXECUTE, FALSE); + return (NULL); +} + vm_offset_t pmap_extract(pmap_t pm, vm_offset_t va) { ==== //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#39 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.115 2003/06/18 17:03:04 jake Exp $ + * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.116 2003/06/29 21:20:04 alc Exp $ */ /* @@ -1331,6 +1331,14 @@ } } +vm_page_t +pmap_enter_quick(pmap_t pm, vm_offset_t va, vm_page_t m, vm_page_t mpte) +{ + + pmap_enter(pm, va, m, VM_PROT_READ | VM_PROT_EXECUTE, FALSE); + return (NULL); +} + void pmap_object_init_pt(pmap_t pm, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, vm_size_t size, int limit) ==== //depot/projects/ia64/sys/vm/pmap.h#18 (text+ko) ==== @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $FreeBSD: src/sys/vm/pmap.h,v 1.59 2003/06/14 23:23:55 alc Exp $ + * $FreeBSD: src/sys/vm/pmap.h,v 1.60 2003/06/29 21:20:04 alc Exp $ */ /* @@ -103,6 +103,8 @@ void pmap_copy_page(vm_page_t, vm_page_t); void pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); +vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t mpte); vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va); void pmap_growkernel(vm_offset_t); void pmap_init(vm_paddr_t, vm_paddr_t); @@ -110,7 +112,7 @@ boolean_t pmap_ts_referenced(vm_page_t m); vm_offset_t pmap_map(vm_offset_t *, vm_paddr_t, vm_paddr_t, int); void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, - vm_object_t object, vm_pindex_t pindex, vm_offset_t size, + vm_object_t object, vm_pindex_t pindex, vm_size_t size, int pagelimit); boolean_t pmap_page_exists_quick(pmap_t pmap, vm_page_t m); void pmap_page_protect(vm_page_t m, vm_prot_t prot); ==== //depot/projects/ia64/sys/vm/vm_map.c#57 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.300 2003/06/27 18:52:49 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.301 2003/06/29 23:32:55 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -911,11 +911,9 @@ #endif >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200306300452.h5U4qvKY029113>