Date: Tue, 5 Oct 2004 19:16:06 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 62674 for review Message-ID: <200410051916.i95JG6MM069132@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=62674 Change 62674 by jhb@jhb_slimer on 2004/10/05 19:15:26 IFC @62673. Loop back rusage_ext changes. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/pmap.c#65 integrate .. //depot/projects/smpng/sys/alpha/osf1/osf1_misc.c#31 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#36 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#4 integrate .. //depot/projects/smpng/sys/arm/conf/IQ31244#2 integrate .. //depot/projects/smpng/sys/arm/include/endian.h#5 integrate .. //depot/projects/smpng/sys/boot/alpha/common/help.alpha#2 integrate .. //depot/projects/smpng/sys/boot/common/bcache.c#6 integrate .. //depot/projects/smpng/sys/boot/common/help.common#15 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#30 integrate .. //depot/projects/smpng/sys/cam/cam_periph.h#4 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#22 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#11 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#50 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#34 integrate .. //depot/projects/smpng/sys/conf/NOTES#83 integrate .. //depot/projects/smpng/sys/dev/cy/cy.c#6 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_isa.c#7 integrate .. //depot/projects/smpng/sys/dev/pst/pst-iop.c#5 integrate .. //depot/projects/smpng/sys/dev/pst/pst-iop.h#5 integrate .. //depot/projects/smpng/sys/dev/rp/rp.c#18 integrate .. //depot/projects/smpng/sys/dev/rp/rpvar.h#4 integrate .. //depot/projects/smpng/sys/dev/si/si.c#18 integrate .. //depot/projects/smpng/sys/dev/si/si.h#4 integrate .. //depot/projects/smpng/sys/dev/si/sivar.h#2 integrate .. //depot/projects/smpng/sys/dev/usb/ugen.c#28 integrate .. //depot/projects/smpng/sys/dev/usb/uhci.c#33 integrate .. //depot/projects/smpng/sys/dev/usb/umct.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/uplcom.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#63 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_status.c#20 integrate .. //depot/projects/smpng/sys/fs/unionfs/union.h#9 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vfsops.c#21 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#17 integrate .. //depot/projects/smpng/sys/geom/gate/g_gate.c#7 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#8 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum.c#8 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_share.c#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#8 integrate .. //depot/projects/smpng/sys/i386/i386/autoconf.c#20 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#74 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#64 integrate .. //depot/projects/smpng/sys/kern/init_main.c#49 integrate .. //depot/projects/smpng/sys/kern/kern_acct.c#34 integrate .. //depot/projects/smpng/sys/kern/kern_clock.c#37 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#66 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#86 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#67 integrate .. //depot/projects/smpng/sys/kern/kern_resource.c#52 integrate .. //depot/projects/smpng/sys/kern/kern_shutdown.c#50 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#98 integrate .. //depot/projects/smpng/sys/kern/kern_synch.c#82 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#69 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#29 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#21 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#72 integrate .. //depot/projects/smpng/sys/kern/subr_turnstile.c#16 integrate .. //depot/projects/smpng/sys/kern/tty.c#49 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#59 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#35 integrate .. //depot/projects/smpng/sys/libkern/arm/divsi3.S#2 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#38 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#24 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#42 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#59 integrate .. //depot/projects/smpng/sys/netinet/tcp_output.c#30 integrate .. //depot/projects/smpng/sys/netinet/tcp_sack.c#3 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#55 integrate .. //depot/projects/smpng/sys/netinet/tcp_var.h#29 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#36 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#23 integrate .. //depot/projects/smpng/sys/netipsec/key.c#14 integrate .. //depot/projects/smpng/sys/pc98/pc98/sio_cbus.c#7 integrate .. //depot/projects/smpng/sys/pci/agp_amd64.c#2 integrate .. //depot/projects/smpng/sys/pci/if_dc.c#61 integrate .. //depot/projects/smpng/sys/sys/_task.h#3 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#14 integrate .. //depot/projects/smpng/sys/sys/proc.h#130 integrate .. //depot/projects/smpng/sys/sys/resourcevar.h#23 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#11 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#9 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#60 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#65 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.171 2004/09/19 21:20:01 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.173 2004/10/03 00:16:42 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1686,7 +1686,7 @@ } origpte = *pte; - pa = VM_PAGE_TO_PHYS(m) & ~PAGE_MASK; + pa = VM_PAGE_TO_PHYS(m); managed = 0; opa = pmap_pte_pa(pte); @@ -1717,11 +1717,8 @@ */ if (origpte & PG_MANAGED) { if ((origpte & PG_FOW) != PG_FOW - && pmap_track_modified(va)) { - vm_page_t om; - om = PHYS_TO_VM_PAGE(opa); - vm_page_dirty(om); - } + && pmap_track_modified(va)) + vm_page_dirty(m); } managed = origpte & PG_MANAGED; ==== //depot/projects/smpng/sys/alpha/osf1/osf1_misc.c#31 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.48 2004/08/24 20:21:21 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.49 2004/10/05 18:51:09 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1335,29 +1335,16 @@ struct thread *td; struct osf1_getrusage_args *uap; { - struct proc *p; - struct rusage *rup; struct osf1_rusage oru; + struct rusage ru; + int error; - p = td->td_proc; - switch (uap->who) { - case RUSAGE_SELF: - rup = &p->p_stats->p_ru; - mtx_lock_spin(&sched_lock); - calcru(p, &rup->ru_utime, &rup->ru_stime, NULL); - mtx_unlock_spin(&sched_lock); - break; - - case RUSAGE_CHILDREN: - rup = &p->p_stats->p_cru; - break; - - default: - return (EINVAL); - } - TV_CP(rup->ru_utime, oru.ru_utime); - TV_CP(rup->ru_stime, oru.ru_stime); - bcopy(&(rup->ru_first), &(oru.ru_first), + error = kern_getrusage(td, uap->who, &ru); + if (error) + return (error); + TV_CP(ru.ru_utime, oru.ru_utime); + TV_CP(ru.ru_stime, oru.ru_stime); + bcopy(&(ru.ru_first), &(oru.ru_first), (&(oru.ru_last) - &(oru.ru_first))); return (copyout((caddr_t)&oru, (caddr_t)uap->rusage, @@ -1372,9 +1359,13 @@ { int error, status; struct osf1_rusage oru; - struct rusage ru; + struct rusage ru, *rup; - error = kern_wait(td, uap->pid, &status, uap->options, &ru); + if (uap->rusage != NULL) + rup = &ru; + else + rup = NULL; + error = kern_wait(td, uap->pid, &status, uap->options, rup); if (error) return (error); if (uap->status != NULL) ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#36 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.503 2004/09/29 19:20:39 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.507 2004/10/03 20:14:06 alc Exp $"); /* * Manages physical address maps. @@ -160,7 +160,6 @@ #endif struct pmap kernel_pmap_store; -LIST_HEAD(pmaplist, pmap); vm_paddr_t avail_start; /* PA of first available physical page */ vm_paddr_t avail_end; /* PA of last available physical page */ @@ -1881,7 +1880,7 @@ if (pte == NULL) panic("pmap_enter: invalid page directory va=%#lx\n", va); - pa = VM_PAGE_TO_PHYS(m) & PG_FRAME; + pa = VM_PAGE_TO_PHYS(m); origpte = *pte; opa = origpte & PG_FRAME; @@ -1922,11 +1921,8 @@ * so we go ahead and sense modify status. */ if (origpte & PG_MANAGED) { - if ((origpte & PG_M) && pmap_track_modified(va)) { - vm_page_t om; - om = PHYS_TO_VM_PAGE(opa); - vm_page_dirty(om); - } + if ((origpte & PG_M) && pmap_track_modified(va)) + vm_page_dirty(m); pa |= PG_MANAGED; } goto validate; @@ -1982,7 +1978,7 @@ */ if ((origpte & ~(PG_M|PG_A)) != newpte) { pte_store(pte, newpte | PG_A); - /*if (origpte)*/ { + if (origpte) { pmap_invalidate_page(pmap, va); } } ==== //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.4 2004/09/01 02:11:27 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.5 2004/10/05 18:51:10 jhb Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -940,24 +940,14 @@ int linux_getrusage(struct thread *td, struct linux_getrusage_args *uap) { + struct l_rusage s32; + struct rusage s; int error; - caddr_t sg; - struct l_rusage *p32, s32; - struct rusage *p = NULL, s; - p32 = uap->rusage; - if (p32 != NULL) { - sg = stackgap_init(); - p = stackgap_alloc(&sg, sizeof(struct rusage)); - uap->rusage = (struct l_rusage *)p; - } - error = getrusage(td, (struct getrusage_args *) uap); + error = kern_getrusage(td, uap->who, &s); if (error != 0) return (error); - if (p32 != NULL) { - error = copyin(p, &s, sizeof(s)); - if (error != 0) - return (error); + if (uap->rusage != NULL) { s32.ru_utime.tv_sec = s.ru_utime.tv_sec; s32.ru_utime.tv_usec = s.ru_utime.tv_usec; s32.ru_stime.tv_sec = s.ru_stime.tv_sec; @@ -976,7 +966,7 @@ s32.ru_nsignals = s.ru_nsignals; s32.ru_nvcsw = s.ru_nvcsw; s32.ru_nivcsw = s.ru_nivcsw; - error = copyout(&s32, p32, sizeof(s32)); + error = copyout(&s32, uap->rusage, sizeof(s32)); } return (error); } ==== //depot/projects/smpng/sys/arm/conf/IQ31244#2 (text+ko) ==== @@ -15,7 +15,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/IQ31244,v 1.1 2004/09/23 22:55:00 cognet Exp $ +# $FreeBSD: src/sys/arm/conf/IQ31244,v 1.2 2004/10/01 16:51:37 cognet Exp $ machine arm ident IQ31244 @@ -83,7 +83,6 @@ # Debugging for use in -current options KDB options DDB #Enable the kernel debugger -options MALLOC_PROFILE #options INVARIANTS #Enable calls of extra sanity checking #options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS #options WITNESS #Enable checks to detect deadlocks and cycles ==== //depot/projects/smpng/sys/arm/include/endian.h#5 (text+ko) ==== @@ -27,7 +27,7 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $ - * $FreeBSD: src/sys/arm/include/endian.h,v 1.4 2004/08/02 12:24:18 cognet Exp $ + * $FreeBSD: src/sys/arm/include/endian.h,v 1.5 2004/10/01 16:55:59 cognet Exp $ */ #ifndef _ENDIAN_H_ @@ -70,7 +70,7 @@ } static __inline __uint32_t -__bswap32(__uint32_t v) +__bswap32_var(__uint32_t v) { __uint32_t t1; @@ -83,7 +83,7 @@ } static __inline __uint16_t -__bswap16(__uint32_t v) +__bswap16_var(__uint32_t v) { __asm __volatile( "mov %0, %1, ror #8\n" @@ -94,4 +94,32 @@ return (v); } + +#ifdef __OPTIMIZE__ + +#define __bswap32_constant(x) \ + ((((x) & 0xff000000U) >> 24) | \ + (((x) & 0x00ff0000U) >> 8) | \ + (((x) & 0x0000ff00U) << 8) | \ + (((x) & 0x000000ffU) << 24)) + +#define __bswap16_constant(x) \ + ((((x) & 0xff00) >> 8) | \ + (((x) & 0x00ff) << 8)) + +#define __bswap16(x) \ + (__builtin_constant_p(x) ? \ + __bswap16_constant(x) : \ + __bswap16_var(x)) + +#define __bswap32(x) \ + (__builtin_constant_p(x) ? \ + __bswap32_constant(x) : \ + __bswap32_var(x)) + +#else +#define __bswap16(x) __bswap16_var(x) +#define __bswap32(x) __bswap32_var(x) + +#endif /* __OPTIMIZE__ */ #endif /* !_ENDIAN_H_ */ ==== //depot/projects/smpng/sys/boot/alpha/common/help.alpha#2 (text+ko) ==== @@ -1,0 +1,25 @@ +$FreeBSD: src/sys/boot/alpha/common/help.alpha,v 1.2 2004/10/01 19:44:42 ru Exp $ + +################################################################################ +# Treboot DReboot the system + + reboot + + Causes the system to immediately reboot. + +################################################################################ +# Thalt DHalt the system + + halt + + Causes the system to halt. + +################################################################################ +# Theap DDisplay memory management statistics + + heap + + Requests debugging output from the heap manager. For debugging use + only. + +################################################################################ ==== //depot/projects/smpng/sys/boot/common/bcache.c#6 (text+ko) ==== @@ -25,12 +25,14 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/common/bcache.c,v 1.12 2003/08/25 23:30:41 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/bcache.c,v 1.13 2004/10/03 16:34:01 stefanf Exp $"); /* * Simple LRU block cache */ +#include <sys/stdint.h> + #include <stand.h> #include <string.h> #include <bitstring.h> @@ -337,7 +339,7 @@ u_int i; for (i = 0; i < bcache_nblks; i++) { - printf("%08x %04x %04x|", bcache_ctl[i].bc_blkno, (unsigned int)bcache_ctl[i].bc_stamp & 0xffff, bcache_ctl[i].bc_count & 0xffff); + printf("%08jx %04x %04x|", (uintmax_t)bcache_ctl[i].bc_blkno, (unsigned int)bcache_ctl[i].bc_stamp & 0xffff, bcache_ctl[i].bc_count & 0xffff); if (((i + 1) % 4) == 0) printf("\n"); } ==== //depot/projects/smpng/sys/boot/common/help.common#15 (text+ko) ==== @@ -319,13 +319,6 @@ value is 1 (default), but this may cause problems with some peripherals. Set to 0 to disable. - set vfs.root.mountdelay=<value> - - Delay root partition mount if there is no required provider. - - value is a maximum number of seconds to wait for provider to - show up (default is 5 seconds). - ################################################################################ # Tshow DShow the values of variables ==== //depot/projects/smpng/sys/boot/forth/loader.conf#30 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.90 2004/09/30 20:02:07 ru Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.91 2004/10/05 11:26:43 pjd Exp $ ############################################################## ### Basic configuration options ############################ @@ -98,8 +98,6 @@ #net.inet.tcp.tcbhashsize="" # Set the value of TCBHASHSIZE #vfs.root.mountfrom="" # Specify root partition in a way the # kernel understands -#vfs.root.mountdelay="5" # Delay root partition mount if there is no - # required provider #vm.kmem_size="" # Sets the size of kernel memory (bytes) #debug.ktr.cpumask="0xf" # Bitmask of CPUs to enable KTR on #debug.ktr.mask="0x1200" # Bitmask of KTR events to enable ==== //depot/projects/smpng/sys/cam/cam_periph.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_periph.h,v 1.14 2004/07/15 08:25:59 phk Exp $ + * $FreeBSD: src/sys/cam/cam_periph.h,v 1.15 2004/10/05 04:22:20 scottl Exp $ */ #ifndef _CAM_CAM_PERIPH_H @@ -81,8 +81,7 @@ }; typedef enum { - CAM_PERIPH_BIO, - CAM_PERIPH_NET + CAM_PERIPH_BIO } cam_periph_type; /* Generically usefull offsets into the peripheral private area */ ==== //depot/projects/smpng/sys/cam/cam_xpt.c#22 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.142 2004/07/15 08:25:59 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.143 2004/10/05 04:22:20 scottl Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -598,7 +598,6 @@ /* Queues for our software interrupt handler */ typedef TAILQ_HEAD(cam_isrq, ccb_hdr) cam_isrq_t; static cam_isrq_t cam_bioq; -static cam_isrq_t cam_netq; /* "Pool" of inactive ccbs managed by xpt_alloc_ccb and xpt_free_ccb */ static SLIST_HEAD(,ccb_hdr) ccb_freeq; @@ -658,7 +657,6 @@ #endif /* Pointers to software interrupt handlers */ -static void *camnet_ih; static void *cambio_ih; #if defined(CAM_DEBUG_FLAGS) && !defined(CAMDEBUG) @@ -1367,7 +1365,6 @@ TAILQ_INIT(&xpt_busses); TAILQ_INIT(&cam_bioq); - TAILQ_INIT(&cam_netq); SLIST_INIT(&ccb_freeq); STAILQ_INIT(&highpowerq); @@ -1429,7 +1426,6 @@ } /* Install our software interrupt handlers */ - swi_add(NULL, "camnet", camisr, &cam_netq, SWI_CAMNET, 0, &camnet_ih); swi_add(NULL, "cambio", camisr, &cam_bioq, SWI_CAMBIO, 0, &cambio_ih); } @@ -3610,7 +3606,6 @@ && (--timeout > 0)) { DELAY(1000); (*(sim->sim_poll))(sim); - camisr(&cam_netq); camisr(&cam_bioq); } @@ -3621,7 +3616,6 @@ xpt_action(start_ccb); while(--timeout > 0) { (*(sim->sim_poll))(sim); - camisr(&cam_netq); camisr(&cam_bioq); if ((start_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_INPROG) @@ -4838,12 +4832,9 @@ done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX; swi_sched(cambio_ih, 0); break; - case CAM_PERIPH_NET: - TAILQ_INSERT_TAIL(&cam_netq, &done_ccb->ccb_h, - sim_links.tqe); - done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX; - swi_sched(camnet_ih, 0); - break; + default: + panic("unknown periph type %d", + done_ccb->ccb_h.path->periph->type); } } splx(s); ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.23 2004/06/17 17:16:41 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.24 2004/10/05 18:51:10 jhb Exp $"); #include "opt_compat.h" @@ -91,9 +91,13 @@ { int error, status; struct rusage32 ru32; - struct rusage ru; + struct rusage ru, *rup; - error = kern_wait(td, uap->pid, &status, uap->options, &ru); + if (uap->rusage != NULL) + rup = &ru; + else + rup = NULL; + error = kern_wait(td, uap->pid, &status, uap->options, rup); if (error) return (error); if (uap->status != NULL) @@ -639,24 +643,14 @@ int freebsd32_getrusage(struct thread *td, struct freebsd32_getrusage_args *uap) { + struct rusage32 s32; + struct rusage s; int error; - caddr_t sg; - struct rusage32 *p32, s32; - struct rusage *p = NULL, s; - p32 = uap->rusage; - if (p32) { - sg = stackgap_init(); - p = stackgap_alloc(&sg, sizeof(struct rusage)); - uap->rusage = (struct rusage32 *)p; - } - error = getrusage(td, (struct getrusage_args *) uap); + error = kern_getrusage(td, uap->who, &s); if (error) return (error); - if (p32) { - error = copyin(p, &s, sizeof(s)); - if (error) - return (error); + if (uap->rusage != NULL) { TV_CP(s, s32, ru_utime); TV_CP(s, s32, ru_stime); CP(s, s32, ru_maxrss); @@ -673,7 +667,7 @@ CP(s, s32, ru_nsignals); CP(s, s32, ru_nvcsw); CP(s, s32, ru_nivcsw); - error = copyout(&s32, p32, sizeof(s32)); + error = copyout(&s32, uap->rusage, sizeof(s32)); } return (error); } ==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#50 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.160 2004/08/16 11:12:57 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.161 2004/10/05 18:51:10 jhb Exp $"); #include "opt_mac.h" @@ -689,9 +689,9 @@ int linux_times(struct thread *td, struct linux_times_args *args) { - struct timeval tv; + struct timeval tv, utime, stime, cutime, cstime; struct l_times_argv tms; - struct rusage ru; + struct proc *p; int error; #ifdef DEBUG @@ -699,15 +699,17 @@ printf(ARGS(times, "*")); #endif - mtx_lock_spin(&sched_lock); - calcru(td->td_proc, &ru.ru_utime, &ru.ru_stime, NULL); - mtx_unlock_spin(&sched_lock); + p = td->td_proc; + PROC_LOCK(p); + calcru(p, &utime, &stime); + calccru(p, &cutime, &cstime); + PROC_UNLOCK(p); - tms.tms_utime = CONVTCK(ru.ru_utime); - tms.tms_stime = CONVTCK(ru.ru_stime); + tms.tms_utime = CONVTCK(utime); + tms.tms_stime = CONVTCK(stime); - tms.tms_cutime = CONVTCK(td->td_proc->p_stats->p_cru.ru_utime); - tms.tms_cstime = CONVTCK(td->td_proc->p_stats->p_cru.ru_stime); + tms.tms_cutime = CONVTCK(cutime); + tms.tms_cstime = CONVTCK(cstime); if ((error = copyout(&tms, args->buf, sizeof(tms)))) return error; @@ -851,7 +853,7 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) { int error, options, tmpstat; - struct rusage ru; + struct rusage ru, *rup; struct proc *p; #ifdef DEBUG @@ -866,7 +868,11 @@ if (args->options & __WCLONE) options |= WLINUXCLONE; - error = kern_wait(td, args->pid, &tmpstat, options, &ru); + if (args->rusage != NULL) + rup = &ru; + else + rup = NULL; + error = kern_wait(td, args->pid, &tmpstat, options, rup); if (error) return error; ==== //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#34 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.73 2004/09/24 20:26:15 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.74 2004/10/05 18:51:10 jhb Exp $"); #include "opt_mac.h" @@ -861,44 +861,30 @@ struct thread *td; struct svr4_sys_times_args *uap; { - int error, *retval = td->td_retval; - struct tms tms; - struct timeval t; - struct rusage *ru; - struct rusage r; - struct getrusage_args ga; + struct timeval tv, utime, stime, cutime, cstime; + struct tms tms; + struct proc *p; + int error; - caddr_t sg = stackgap_init(); - ru = stackgap_alloc(&sg, sizeof(struct rusage)); + p = td->td_proc; + PROC_LOCK(p); + calcru(p, &utime, &stime); + calccru(p, &cutime, &cstime); + PROC_UNLOCK(p); - ga.who = RUSAGE_SELF; - ga.rusage = ru; + tms.tms_utime = timeval_to_clock_t(&utime); + tms.tms_stime = timeval_to_clock_t(&stime); - error = getrusage(td, &ga); - if (error) - return error; + tms.tms_cutime = timeval_to_clock_t(&cutime); + tms.tms_cstime = timeval_to_clock_t(&cstime); - if ((error = copyin(ru, &r, sizeof r)) != 0) - return error; - - tms.tms_utime = timeval_to_clock_t(&r.ru_utime); - tms.tms_stime = timeval_to_clock_t(&r.ru_stime); - - ga.who = RUSAGE_CHILDREN; - error = getrusage(td, &ga); + error = copyout(&tms, uap->tp, sizeof(tms)); if (error) - return error; + return (error); - if ((error = copyin(ru, &r, sizeof r)) != 0) - return error; - - tms.tms_cutime = timeval_to_clock_t(&r.ru_utime); - tms.tms_cstime = timeval_to_clock_t(&r.ru_stime); - - microtime(&t); - *retval = timeval_to_clock_t(&t); - - return copyout(&tms, uap->tp, sizeof(tms)); + microtime(&tv); + td->td_retval[0] = (int)timeval_to_clock_t(&tv); + return (0); } @@ -1149,6 +1135,7 @@ int st; svr4_siginfo_t *s; { + struct timeval utime, stime; svr4_siginfo_t i; int sig; @@ -1159,16 +1146,11 @@ if (p) { i.si_pid = p->p_pid; - mtx_lock_spin(&sched_lock); - if (p->p_state == PRS_ZOMBIE) { - i.si_stime = p->p_ru->ru_stime.tv_sec; - i.si_utime = p->p_ru->ru_utime.tv_sec; - } - else { - i.si_stime = p->p_stats->p_ru.ru_stime.tv_sec; - i.si_utime = p->p_stats->p_ru.ru_utime.tv_sec; - } - mtx_unlock_spin(&sched_lock); + PROC_LOCK(p); + calcru(p, &utime, &stime); + PROC_UNLOCK(p); + i.si_stime = stime.tv_sec; + i.si_utime = utime.tv_sec; } if (WIFEXITED(st)) { @@ -1296,7 +1278,8 @@ PROC_UNLOCK(q); sx_xunlock(&proctree_lock); q->p_xstat = 0; - ruadd(&p->p_stats->p_cru, q->p_ru); + ruadd(&p->p_stats->p_cru, &p->p_crux, q->p_ru, + &q->p_rux); FREE(q->p_ru, M_ZOMBIE); q->p_ru = NULL; ==== //depot/projects/smpng/sys/conf/NOTES#83 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1279 2004/09/23 08:34:50 phk Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1281 2004/10/04 14:16:17 yar Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -514,6 +514,8 @@ # The `ether' device provides generic code to handle # Ethernets; it is MANDATORY when an Ethernet device driver is # configured or token-ring is enabled. +# The `vlan' device implements the VLAN tagging of Ethernet frames +# according to IEEE 802.1Q. It requires `device miibus'. # The `wlan' device provides generic code to support 802.11 # drivers, including host AP mode; it is MANDATORY for the wi # driver and will eventually be required by all 802.11 drivers. @@ -558,7 +560,7 @@ # See pppd(8) for more details. # device ether #Generic Ethernet -device vlan #VLAN support +device vlan #VLAN support (needs miibus) device wlan #802.11 support device token #Generic TokenRing device fddi #Generic FDDI ==== //depot/projects/smpng/sys/dev/cy/cy.c#6 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cy/cy.c,v 1.159 2004/07/15 20:47:37 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cy/cy.c,v 1.160 2004/10/05 07:42:19 phk Exp $"); #include "opt_compat.h" @@ -77,6 +77,7 @@ #include <sys/lock.h> #include <sys/malloc.h> #include <sys/mutex.h> +#include <sys/serial.h> #include <sys/syslog.h> #include <sys/tty.h> @@ -89,51 +90,7 @@ #define NCY 10 /* KLUDGE */ -/* - * Dictionary so that I can name everything *sio* or *com* to compare with - * sio.c. There is also lots of ugly formatting and unnecessary ifdefs to - * simplify the comparision. These will go away. - */ -#define LSR_BI CD1400_RDSR_BREAK -#define LSR_FE CD1400_RDSR_FE -#define LSR_OE CD1400_RDSR_OE -#define LSR_PE CD1400_RDSR_PE -#define MCR_DTR CD1400_MSVR2_DTR -#define MCR_RTS CD1400_MSVR1_RTS -#define MSR_CTS CD1400_MSVR2_CTS -#define MSR_DCD CD1400_MSVR2_CD -#define MSR_DSR CD1400_MSVR2_DSR -#define MSR_RI CD1400_MSVR2_RI -#define NSIO (NCY * CY_MAX_PORTS) -#define comconsole cyconsole -#define comdefaultrate cydefaultrate -#define com_events cy_events -#define comhardclose cyhardclose -#define commctl cymctl -#define comparam cyparam -#define comspeed cyspeed -#define comstart cystart -#define comwakeup cywakeup -#define p_com_addr p_cy_addr -#define sioclose cyclose -#define siodriver cydriver -#define sioinput cyinput -#define siointr1 cyintr -#define sioioctl cyioctl -#define sioopen cyopen -#define siopoll cypoll -#define siosettimeout cysettimeout -#define siosetwater cysetwater -#define comstop cystop -#define siowrite cywrite -#define sio_fast_ih cy_fast_ih -#define sio_inited cy_inited -#define sio_irec cy_irec -#define sio_lock cy_lock -#define sio_slow_ih cy_slow_ih -#define sio_timeout cy_timeout -#define sio_timeout_handle cy_timeout_handle -#define sio_timeouts_until_log cy_timeouts_until_log +#define NPORTS (NCY * CY_MAX_PORTS) #define CY_MAX_PORTS (CD1400_NO_OF_CHANNELS * CY_MAX_CD1400s) @@ -153,34 +110,18 @@ #define LOTS_OF_EVENTS 64 /* helps separate urgent events from input */ -#define CALLOUT_MASK 0x80 -#define CONTROL_MASK 0x60 -#define CONTROL_INIT_STATE 0x20 -#define CONTROL_LOCK_STATE 0x40 -#define DEV_TO_UNIT(dev) (MINOR_TO_UNIT(minor(dev))) -#define MINOR_MAGIC_MASK (CALLOUT_MASK | CONTROL_MASK) /* - * Not all of the magic is parametrized in the following macros. 16 and - * 0xff are related to the bitfields in a dev_t. CY_MAX_PORTS must be - * ((0xff & ~MINOR_MAGIC_MASK) + 1) for things to work. - */ -#define MINOR_TO_UNIT(mynor) (((mynor) >> 16) * CY_MAX_PORTS \ - | (((mynor) & 0xff) & ~MINOR_MAGIC_MASK)) -#define UNIT_TO_MINOR(unit) (((unit) / CY_MAX_PORTS) << 16 \ - | (((unit) & 0xff) & ~MINOR_MAGIC_MASK)) - -/* * com state bits. * (CS_BUSY | CS_TTGO) and (CS_BUSY | CS_TTGO | CS_ODEVREADY) must be higher * than the other bits so that they can be tested as a group without masking * off the low bits. * * The following com and tty flags correspond closely: - * CS_BUSY = TS_BUSY (maintained by comstart(), siopoll() and + * CS_BUSY = TS_BUSY (maintained by cystart(), cypoll() and * comstop()) - * CS_TTGO = ~TS_TTSTOP (maintained by comparam() and comstart()) - * CS_CTS_OFLOW = CCTS_OFLOW (maintained by comparam()) - * CS_RTS_IFLOW = CRTS_IFLOW (maintained by comparam()) + * CS_TTGO = ~TS_TTSTOP (maintained by cyparam() and cystart()) + * CS_CTS_OFLOW = CCTS_OFLOW (maintained by cyparam()) + * CS_RTS_IFLOW = CRTS_IFLOW (maintained by cyparam()) * TS_FLUSH is not used. * XXX I think TIOCSETA doesn't clear TS_TTSTOP when it clears IXON. * XXX CS_*FLOW should be CF_*FLOW in com->flags (control flags not state). @@ -207,8 +148,8 @@ #define CE_RECORD(com, errnum) (++(com)->delta_error_counts[errnum]) #ifdef SMP -#define COM_LOCK() mtx_lock_spin(&sio_lock) -#define COM_UNLOCK() mtx_unlock_spin(&sio_lock) +#define COM_LOCK() mtx_lock_spin(&cy_lock) +#define COM_UNLOCK() mtx_unlock_spin(&cy_lock) #else #define COM_LOCK() #define COM_UNLOCK() @@ -228,36 +169,13 @@ /* com device structure */ struct com_s { u_char state; /* miscellaneous flag bits */ - bool_t active_out; /* nonzero if the callout device is open */ -#if 0 - u_char cfcr_image; /* copy of value written to CFCR */ -#endif u_char etc; /* pending Embedded Transmit Command */ u_char extra_state; /* more flag bits, separate for order trick */ -#if 0 - u_char fifo_image; /* copy of value written to FIFO */ -#endif u_char gfrcr_image; /* copy of value read from GFRCR */ -#if 0 - bool_t hasfifo; /* nonzero for 16550 UARTs */ - bool_t loses_outints; /* nonzero if device loses output interrupts */ -#endif u_char mcr_dtr; /* MCR bit that is wired to DTR */ u_char mcr_image; /* copy of value written to MCR */ u_char mcr_rts; /* MCR bit that is wired to RTS */ -#if 0 -#ifdef COM_MULTIPORT - bool_t multiport; /* is this unit part of a multiport device? */ -#endif /* COM_MULTIPORT */ - bool_t no_irq; /* nonzero if irq is not attached */ - bool_t poll; /* nonzero if polling is required */ - bool_t poll_output; /* nonzero if polling for output is required */ -#endif >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410051916.i95JG6MM069132>