From owner-p4-projects@FreeBSD.ORG Fri Jun 11 13:21:36 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F001416A4D1; Fri, 11 Jun 2004 13:21:35 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 98F3D16A4CE for ; Fri, 11 Jun 2004 13:21:35 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 910C043D1F for ; Fri, 11 Jun 2004 13:21:35 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5BDLJNe031610 for ; Fri, 11 Jun 2004 13:21:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5BDLIRr031595 for perforce@freebsd.org; Fri, 11 Jun 2004 13:21:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 11 Jun 2004 13:21:18 GMT Message-Id: <200406111321.i5BDLIRr031595@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 54633 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, 11 Jun 2004 13:21:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=54633 Change 54633 by rwatson@rwatson_paprika on 2004/06/11 13:21:03 Integrate netperf_socket to loop back changes merged to CVS: - Loop back of NET_{LOCK,UNLOCK}_GIANT() around if_output in BPF from rwatson_netperf. - Loop back const raw_{send,recv}space from rwatson_netperf. - Loop back igmp_mtx from rwatson_netperf. - Loop back removal of Giant acquisition/comment about it in divert_packet(). Also: - COMPAT_SUNOS removed. Affected files ... .. //depot/projects/netperf_socket/sys/alpha/alpha/machdep.c#5 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#7 integrate .. //depot/projects/netperf_socket/sys/boot/i386/boot0/boot0.S#3 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/netperf_socket/sys/conf/NOTES#20 integrate .. //depot/projects/netperf_socket/sys/conf/options#13 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/cy/cy.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/digi/digi.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drmP.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_drv.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_linux_list.h#1 branch .. //depot/projects/netperf_socket/sys/dev/drm/drm_os_freebsd.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_pciids.h#1 branch .. //depot/projects/netperf_socket/sys/dev/drm/drm_sarea.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/mga.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/mga_drm.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/r128.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/r128_drm.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/r128_state.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/drm/radeon.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/radeon_drm.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/radeon_drv.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/radeon_mem.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/radeon_state.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/drm/sis.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/sis_drv.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/drm/sis_mm.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/drm/tdfx.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/rp/rp.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/si/si.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/sio/sio.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/sx/sx.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ucom.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#5 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/pmap.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_prot.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_resource.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sig.c#11 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sysctl.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_xxx.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/tty.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/tty_compat.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/tty_pty.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_syscalls.c#15 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_syscalls.c#9 integrate .. //depot/projects/netperf_socket/sys/net/bpf.c#6 integrate .. //depot/projects/netperf_socket/sys/net/raw_cb.c#4 integrate .. //depot/projects/netperf_socket/sys/netinet/igmp.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_divert.c#6 integrate .. //depot/projects/netperf_socket/sys/pc98/i386/machdep.c#4 integrate .. //depot/projects/netperf_socket/sys/pc98/pc98/sio.c#9 integrate .. //depot/projects/netperf_socket/sys/sys/ioctl.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/signal.h#3 integrate .. //depot/projects/netperf_socket/sys/vm/vm_mmap.c#9 integrate Differences ... ==== //depot/projects/netperf_socket/sys/alpha/alpha/machdep.c#5 (text+ko) ==== @@ -88,7 +88,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.219 2004/04/01 20:56:43 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.220 2004/06/11 11:16:17 phk Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -1180,7 +1180,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sip = (osiginfo_t *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1304,7 +1304,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sfp = (struct sigframe4 *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1428,7 +1428,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sfp = (struct sigframe *)((caddr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size - rndfsize); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -1543,7 +1543,7 @@ return (EINVAL); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) /* * Restore the user-supplied information */ @@ -1633,7 +1633,7 @@ alpha_pal_wrusp(uc.uc_mcontext.mc_regs[R_SP]); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) if (uc.uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; else @@ -1709,7 +1709,7 @@ alpha_pal_wrusp(uc.uc_mcontext.mc_regs[R_SP]); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) if (uc.uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; else ==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#7 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.609 2004/06/10 20:30:55 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.610 2004/06/11 11:16:18 phk Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -262,7 +262,7 @@ SIGISMEMBER(psp->ps_sigonstack, sig)) { sp = td->td_sigstk.ss_sp + td->td_sigstk.ss_size - sizeof(struct sigframe); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else @@ -403,7 +403,7 @@ bcopy(&ucp->uc_mcontext.mc_rdi, regs, sizeof(*regs)); PROC_LOCK(p); -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) if (ucp->uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; else ==== //depot/projects/netperf_socket/sys/boot/i386/boot0/boot0.S#3 (text+ko) ==== @@ -13,7 +13,7 @@ * warranties of merchantability and fitness for a particular * purpose. * - * $FreeBSD: src/sys/boot/i386/boot0/boot0.S,v 1.8 2004/05/14 20:28:31 ru Exp $ + * $FreeBSD: src/sys/boot/i386/boot0/boot0.S,v 1.9 2004/06/11 09:45:18 phk Exp $ */ /* A 512-byte boot manager. */ @@ -94,15 +94,11 @@ main: #ifdef SIO /* - * Initialize the serial port. - * Must save DX (contains drive number) + * Initialize the serial port. bioscom preserves the driver number in DX. */ - pushw %dx # Save - xorw %dx,%dx # Port: COM1 movb COMSPEED,%al # defined by Makefile movb $0x00,%ah # BIOS: Set COM Port - int $0x14 # Parameters - popw %dx # Restore + call bioscom #endif /* SIO */ /* * Check what flags were loaded with us, specifically, Use a predefined Drive. @@ -199,23 +195,21 @@ callw putx # item /* * Now that we've printed the drive (if we needed to), display a prompt. - * Get ready for the input by noting the time. */ main.7: movw $prompt,%si # Display callw putstr # prompt movb _OPT(%bp),%dl # Display decw %si # default callw putkey # key -main.7_1: +/* + * Start of input loop. Beep and take note of time + */ +main.10: movb $ASCII_BEL,%al # Signal + callw putchr # beep! xorb %ah,%ah # BIOS: Get int $0x1a # system time -#ifndef SIO movw %dx,%di # Ticks when - addw _TICKS(%bp),%di # timeout -#else /* SIO */ - movw %dx,%si # Ticks when - addw _TICKS(%bp),%si # timeout -#endif /* SIO */ + addw _TICKS(%bp),%di # timeout /* * Busy loop, looking for keystrokes but * keeping one eye on the time. @@ -226,19 +220,14 @@ int $0x16 # for keypress jnz main.11 # Have one #else /* SIO */ - xorw %dx,%dx # Use COM1 movb $0x03,%ah # BIOS: Read COM - int $0x14 # Status + call bioscom testb $0x01,%ah # Check line status jnz main.11 # (bit 1 indicates input) #endif /* SIO */ xorb %ah,%ah # BIOS: Get int $0x1a # system time -#ifndef SIO cmpw %di,%dx # Timeout? -#else /* SIO */ - cmpw %si,%dx # Timeout? -#endif /* SIO */ jb main.8 # No /* * If timed out or defaulting, come here. @@ -246,18 +235,6 @@ main.9: movb _OPT(%bp),%al # Load default jmp main.12 # Join common code /* - * User's last try was bad, beep in displeasure. - * Since nothing was printed, just continue on as if the user - * hadn't done anything. This gives the effect of the user getting a beep - * for all bad keystrokes but no action until either the timeout - * occurs or the user hits a good key. - */ -main.10: movb $ASCII_BEL,%al # Signal - callw putchr # error -#ifdef SIO - jmp main.7_1 # Go back -#endif /* SIO */ -/* * Get the keystroke. */ main.11: @@ -267,7 +244,7 @@ movb %ah,%al # Scan code #else /* SIO */ movb $0x02,%ah # BIOS: Receive - int $0x14 # COM Byte + call bioscom #endif /* SIO */ /* * If it's CR act as if timed out. @@ -384,22 +361,25 @@ jmp putstr # Continue putstr.2: andb $~0x80,%al # Clear MSB +#ifndef SIO putchr: -#ifndef SIO pushw %bx # Save movw $0x7,%bx # Page:attribute movb $0xe,%ah # BIOS: Display int $0x10 # character popw %bx # Restore + retw # To caller #else /* SIO */ +putchr: + movb $0x01,%ah # BIOS: Send + xorw %cx,%cx # No timeout +bioscom: pushw %dx # Save xorw %dx,%dx # Use COM1 - xorw %cx,%cx # No timeout - movb $0x01,%ah # BIOS: Send int $0x14 # Character popw %dx # Restore + retw # To caller #endif /* SIO */ - retw # To caller /* One-sector disk I/O routine */ @@ -426,13 +406,8 @@ /* Menu strings */ -#ifndef SIO item: .ascii " "; .byte ' '|0x80 prompt: .ascii "\nDefault:"; .byte ' '|0x80 -#else /* SIO */ -item: .ascii " "; .byte ' '|0x80 -prompt: .ascii "\nDef:"; .byte ' '|0x80 -#endif /* SIO */ crlf: .ascii "\r"; .byte '\n'|0x80 /* Partition type tables */ ==== //depot/projects/netperf_socket/sys/compat/linux/linux_misc.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.153 2004/03/17 19:59:59 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.154 2004/06/11 11:16:18 phk Exp $"); #include "opt_mac.h" @@ -1299,7 +1299,7 @@ /* * The FreeBSD native getpid(2), getgid(2) and getuid(2) also modify - * td->td_retval[1] when COMPAT_43 or COMPAT_SUNOS is defined. This + * td->td_retval[1] when COMPAT_43 is defined. This * globbers registers that are assumed to be preserved. The following * lightweight syscalls fixes this. See also linux_getgid16() and * linux_getuid16() in linux_uid16.c. ==== //depot/projects/netperf_socket/sys/compat/linux/linux_uid16.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_uid16.c,v 1.12 2003/10/21 11:00:33 tjr Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_uid16.c,v 1.13 2004/06/11 11:16:18 phk Exp $"); #include #include @@ -190,7 +190,7 @@ /* * The FreeBSD native getgid(2) and getuid(2) also modify td->td_retval[1] - * when COMPAT_43 or COMPAT_SUNOS is defined. This globbers registers that + * when COMPAT_43 is defined. This globbers registers that * are assumed to be preserved. The following lightweight syscalls fixes * this. See also linux_getpid(2), linux_getgid(2) and linux_getuid(2) in * linux_misc.c ==== //depot/projects/netperf_socket/sys/conf/NOTES#20 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1229 2004/06/10 05:43:36 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1230 2004/06/11 11:16:19 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -210,12 +210,6 @@ # options COMPAT_43 -# -# Be compatible with SunOS. The COMPAT_43 option above pulls in most -# (all?) of the changes that this option turns on. -# -options COMPAT_SUNOS - # Enable FreeBSD4 compatibility syscalls options COMPAT_FREEBSD4 ==== //depot/projects/netperf_socket/sys/conf/options#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.451 2004/05/20 10:37:11 pjd Exp $ +# $FreeBSD: src/sys/conf/options,v 1.452 2004/06/11 11:16:19 phk Exp $ # # On the handling of kernel options # @@ -52,7 +52,6 @@ CODA_COMPAT_5 opt_coda.h COMPAT_43 opt_compat.h COMPAT_FREEBSD4 opt_compat.h -COMPAT_SUNOS opt_compat.h COMPILING_LINT opt_global.h CONSPEED opt_comconsole.h CY_PCI_FASTINTR ==== //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.37 2004/06/01 11:34:46 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.38 2004/06/11 07:39:15 sos Exp $"); #include "opt_ata.h" #include @@ -532,7 +532,7 @@ ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_MASTER); DELAY(10); ostat0 = ATA_IDX_INB(ch, ATA_STATUS); - if ((ostat0 & 0xf8) != 0xf8 && ostat0 != 0xa5 && ostat0 != 0x7f) { + if ((ostat0 & 0xf8) != 0xf8 && ostat0 != 0xa5) { stat0 = ATA_S_BUSY; mask |= 0x01; } @@ -543,7 +543,7 @@ /* in some setups we dont want to test for a slave */ if (!(ch->flags & ATA_NO_SLAVE)) { - if ((ostat1 & 0xf8) != 0xf8 && ostat1 != 0xa5 && ostat1 != 0x7f) { + if ((ostat1 & 0xf8) != 0xf8 && ostat1 != 0xa5) { stat1 = ATA_S_BUSY; mask |= 0x02; } @@ -637,15 +637,10 @@ DELAY(100000); } - if (stat0 & ATA_S_BUSY) - mask &= ~0x01; - if (stat1 & ATA_S_BUSY) - mask &= ~0x02; - if (bootverbose) ata_printf(ch, -1, - "reset tp2 mask=%02x stat0=%02x stat1=%02x devices=0x%b\n", - mask, stat0, stat1, ch->devices, + "reset tp2 stat0=%02x stat1=%02x devices=0x%b\n", + stat0, stat1, ch->devices, "\20\4ATAPI_SLAVE\3ATAPI_MASTER\2ATA_SLAVE\1ATA_MASTER"); } ==== //depot/projects/netperf_socket/sys/dev/cy/cy.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/cy/cy.c,v 1.150 2004/06/04 21:55:49 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cy/cy.c,v 1.151 2004/06/11 11:16:20 phk Exp $"); #include "opt_compat.h" @@ -1539,7 +1539,7 @@ int mynor; int s; struct tty *tp; -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) int oldcmd; struct termios term; #endif @@ -1580,7 +1580,7 @@ } } tp = com->tp; -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) term = tp->t_termios; oldcmd = cmd; error = ttsetcompat(tp, &cmd, data, &term); ==== //depot/projects/netperf_socket/sys/dev/digi/digi.c#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/digi/digi.c,v 1.45 2004/06/04 21:55:49 phk Exp $ + * $FreeBSD: src/sys/dev/digi/digi.c,v 1.46 2004/06/11 11:16:20 phk Exp $ */ /*- @@ -1072,7 +1072,7 @@ struct digi_softc *sc; struct digi_p *port; struct tty *tp; -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) int oldcmd; struct termios term; #endif @@ -1226,7 +1226,7 @@ } tp = port->tp; -#if defined(COMPAT_43) || defined(COMPAT_SUNOS) +#if defined(COMPAT_43) term = tp->t_termios; oldcmd = cmd; error = ttsetcompat(tp, &cmd, data, &term); ==== //depot/projects/netperf_socket/sys/dev/drm/drm.h#2 (text+ko) ==== @@ -32,7 +32,7 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * $FreeBSD: src/sys/dev/drm/drm.h,v 1.6 2003/11/12 20:56:30 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/drm.h,v 1.7 2004/06/11 03:26:59 anholt Exp $ */ @@ -137,6 +137,18 @@ unsigned int age; } drm_tex_region_t; +/** + * Hardware lock. + * + * The lock structure is a simple cache-line aligned integer. To avoid + * processor bus contention on a multiprocessor system, there should not be any + * other data stored in the same cache line. + */ +typedef struct drm_hw_lock { + __volatile__ unsigned int lock; /**< lock variable */ + char padding[60]; /**< Pad to cache line */ +} drm_hw_lock_t; + /** * DRM_IOCTL_VERSION ioctl argument type. ==== //depot/projects/netperf_socket/sys/dev/drm/drmP.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * Rickard E. (Rik) Faith * Gareth Hughes * - * $FreeBSD: src/sys/dev/drm/drmP.h,v 1.9 2004/01/06 04:34:52 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/drmP.h,v 1.10 2004/06/11 03:26:59 anholt Exp $ */ #ifndef _DRM_P_H_ @@ -197,11 +197,6 @@ drm_freelist_t freelist; } drm_buf_entry_t; -typedef struct drm_hw_lock { - __volatile__ unsigned int lock; - char padding[60]; /* Pad to cache line */ -} drm_hw_lock_t; - typedef TAILQ_HEAD(drm_file_list, drm_file) drm_file_list_t; struct drm_file { TAILQ_ENTRY(drm_file) link; ==== //depot/projects/netperf_socket/sys/dev/drm/drm_drv.h#4 (text+ko) ==== @@ -28,7 +28,7 @@ * Rickard E. (Rik) Faith * Gareth Hughes * - * $FreeBSD: src/sys/dev/drm/drm_drv.h,v 1.23 2004/03/03 08:27:33 obrien Exp $ + * $FreeBSD: src/sys/dev/drm/drm_drv.h,v 1.24 2004/06/11 03:26:59 anholt Exp $ */ /* @@ -79,16 +79,16 @@ #endif #ifndef DRIVER_PREINIT -#define DRIVER_PREINIT() +#define DRIVER_PREINIT(dev) do {} while (0) #endif #ifndef DRIVER_POSTINIT -#define DRIVER_POSTINIT() +#define DRIVER_POSTINIT(dev) do {} while (0) #endif #ifndef DRIVER_PRERELEASE #define DRIVER_PRERELEASE() #endif #ifndef DRIVER_PRETAKEDOWN -#define DRIVER_PRETAKEDOWN() +#define DRIVER_PRETAKEDOWN(dev) #endif #ifndef DRIVER_POSTCLEANUP #define DRIVER_POSTCLEANUP() @@ -212,7 +212,9 @@ #ifdef __FreeBSD__ static struct cdevsw DRM(cdevsw) = { +#if __FreeBSD_version >= 502103 .d_version = D_VERSION, +#endif .d_open = DRM( open ), .d_close = DRM( close ), .d_read = DRM( read ), @@ -220,14 +222,21 @@ .d_poll = DRM( poll ), .d_mmap = DRM( mmap ), .d_name = DRIVER_NAME, +#if __FreeBSD_version >= 502103 .d_flags = D_TRACKCLOSE | D_NEEDGIANT, +#else + .d_maj = 145, + .d_flags = D_TRACKCLOSE, +#endif #if __FreeBSD_version < 500000 .d_bmaj = -1 #endif }; +#include "dev/drm/drm_pciids.h" + static drm_pci_id_list_t DRM(pciidlist)[] = { - DRIVER_PCI_IDS + DRM(PCI_IDS) }; static int DRM(probe)(device_t dev) @@ -511,7 +520,7 @@ DRM_DEBUG( "\n" ); - DRIVER_PRETAKEDOWN(); + DRIVER_PRETAKEDOWN(dev); #if __HAVE_IRQ if (dev->irq_enabled) DRM(irq_uninstall)( dev ); @@ -626,7 +635,7 @@ int retcode; #endif DRM_DEBUG( "\n" ); - DRIVER_PREINIT(); + DRIVER_PREINIT(dev); #ifdef __FreeBSD__ unit = device_get_unit(nbdev); @@ -704,7 +713,7 @@ DRIVER_DATE, unit ); - DRIVER_POSTINIT(); + DRIVER_POSTINIT(dev); return 0; ==== //depot/projects/netperf_socket/sys/dev/drm/drm_os_freebsd.h#4 (text+ko) ==== @@ -28,7 +28,7 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * $FreeBSD: src/sys/dev/drm/drm_os_freebsd.h,v 1.18 2004/03/03 06:19:03 obrien Exp $ + * $FreeBSD: src/sys/dev/drm/drm_os_freebsd.h,v 1.19 2004/06/11 03:26:59 anholt Exp $ */ #include @@ -78,6 +78,8 @@ #include #endif +#include "dev/drm/drm_linux_list.h" + #if __FreeBSD_version >= 400006 #define __REALLY_HAVE_AGP __HAVE_AGP #endif @@ -310,6 +312,11 @@ MALLOC_DECLARE(malloctype); #undef malloctype +#if __FreeBSD_version < 502109 +#define bus_alloc_resource_any(dev, type, rid, flags) \ + bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags) +#endif + #if __FreeBSD_version >= 480000 #define cpu_to_le32(x) htole32(x) #define le32_to_cpu(x) le32toh(x) ==== //depot/projects/netperf_socket/sys/dev/drm/drm_sarea.h#2 (text+ko) ==== @@ -2,7 +2,7 @@ * \file drm_sarea.h * \brief SAREA definitions * - * \author Michel Dänzer + * \author Michel D�zer */ /* @@ -28,15 +28,29 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * $FreeBSD: src/sys/dev/drm/drm_sarea.h,v 1.2 2003/08/19 02:57:31 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/drm_sarea.h,v 1.3 2004/06/11 03:26:59 anholt Exp $ */ #ifndef _DRM_SAREA_H_ #define _DRM_SAREA_H_ +#include "dev/drm/drm.h" + +/* SAREA area needs to be at least a page */ +#if defined(__alpha__) +#define SAREA_MAX 0x2000 +#elif defined(__ia64__) +#define SAREA_MAX 0x10000 /* 64kB */ +#else +/* Intel 830M driver needs at least 8k SAREA */ +#define SAREA_MAX 0x2000 +#endif + /** Maximum number of drawables in the SAREA */ #define SAREA_MAX_DRAWABLES 256 +#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 + /** SAREA drawable */ typedef struct drm_sarea_drawable { unsigned int stamp; ==== //depot/projects/netperf_socket/sys/dev/drm/mga.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * Authors: * Gareth Hughes * - * $FreeBSD: src/sys/dev/drm/mga.h,v 1.4 2003/10/24 01:48:16 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/mga.h,v 1.5 2004/06/11 03:26:59 anholt Exp $ */ #ifndef __MGA_H__ @@ -66,12 +66,6 @@ [DRM_IOCTL_NR(DRM_IOCTL_MGA_BLIT)] = { mga_dma_blit, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_MGA_GETPARAM)]= { mga_getparam, 1, 0 }, -#define DRIVER_PCI_IDS \ - {0x102b, 0x0521, 0, "Matrox G200 (AGP)"}, \ - {0x102b, 0x0525, 0, "Matrox G400/G450 (AGP)"}, \ - {0x102b, 0x2527, 0, "Matrox G550 (AGP)"}, \ - {0, 0, 0, NULL} - #define __HAVE_COUNTERS 3 #define __HAVE_COUNTER6 _DRM_STAT_IRQ #define __HAVE_COUNTER7 _DRM_STAT_PRIMARY @@ -79,7 +73,7 @@ /* Driver customization: */ -#define DRIVER_PRETAKEDOWN() do { \ +#define DRIVER_PRETAKEDOWN( dev ) do { \ mga_do_cleanup_dma( dev ); \ } while (0) ==== //depot/projects/netperf_socket/sys/dev/drm/mga_drm.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * Rewritten by: * Gareth Hughes * - * $FreeBSD: src/sys/dev/drm/mga_drm.h,v 1.3 2003/03/09 02:08:28 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/mga_drm.h,v 1.4 2004/06/11 03:26:59 anholt Exp $ */ #ifndef __MGA_DRM_H__ @@ -119,6 +119,8 @@ #define MGA_NR_TEX_REGIONS 16 #define MGA_LOG_MIN_TEX_REGION_SIZE 16 +#define DRM_MGA_IDLE_RETRY 2048 + #endif /* __MGA_SAREA_DEFINES__ */ @@ -232,16 +234,27 @@ /* MGA specific ioctls * The device specific ioctl range is 0x40 to 0x79. */ -#define DRM_IOCTL_MGA_INIT DRM_IOW( 0x40, drm_mga_init_t) -#define DRM_IOCTL_MGA_FLUSH DRM_IOW( 0x41, drm_lock_t) -#define DRM_IOCTL_MGA_RESET DRM_IO( 0x42) -#define DRM_IOCTL_MGA_SWAP DRM_IO( 0x43) -#define DRM_IOCTL_MGA_CLEAR DRM_IOW( 0x44, drm_mga_clear_t) -#define DRM_IOCTL_MGA_VERTEX DRM_IOW( 0x45, drm_mga_vertex_t) -#define DRM_IOCTL_MGA_INDICES DRM_IOW( 0x46, drm_mga_indices_t) -#define DRM_IOCTL_MGA_ILOAD DRM_IOW( 0x47, drm_mga_iload_t) -#define DRM_IOCTL_MGA_BLIT DRM_IOW( 0x48, drm_mga_blit_t) -#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(0x49, drm_mga_getparam_t) +#define DRM_MGA_INIT 0x00 +#define DRM_MGA_FLUSH 0x01 +#define DRM_MGA_RESET 0x02 +#define DRM_MGA_SWAP 0x03 +#define DRM_MGA_CLEAR 0x04 +#define DRM_MGA_VERTEX 0x05 +#define DRM_MGA_INDICES 0x06 +#define DRM_MGA_ILOAD 0x07 +#define DRM_MGA_BLIT 0x08 +#define DRM_MGA_GETPARAM 0x09 + +#define DRM_IOCTL_MGA_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t) +#define DRM_IOCTL_MGA_FLUSH DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_FLUSH, drm_lock_t) +#define DRM_IOCTL_MGA_RESET DRM_IO( DRM_COMMAND_BASE + DRM_MGA_RESET) +#define DRM_IOCTL_MGA_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_MGA_SWAP) +#define DRM_IOCTL_MGA_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t) +#define DRM_IOCTL_MGA_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t) +#define DRM_IOCTL_MGA_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t) +#define DRM_IOCTL_MGA_ILOAD DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t) +#define DRM_IOCTL_MGA_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t) +#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t) typedef struct _drm_mga_warp_index { int installed; @@ -332,7 +345,7 @@ typedef struct drm_mga_getparam { int param; - int *value; + void *value; } drm_mga_getparam_t; #endif ==== //depot/projects/netperf_socket/sys/dev/drm/r128.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * Authors: * Gareth Hughes * - * $FreeBSD: src/sys/dev/drm/r128.h,v 1.5 2004/01/06 04:34:53 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/r128.h,v 1.6 2004/06/11 03:26:59 anholt Exp $ */ #ifndef __R128_H__ @@ -81,46 +81,6 @@ [DRM_IOCTL_NR(DRM_IOCTL_R128_INDIRECT)] = { r128_cce_indirect, 1, 1 }, \ [DRM_IOCTL_NR(DRM_IOCTL_R128_GETPARAM)] = { r128_getparam, 1, 0 }, -#define DRIVER_PCI_IDS \ - {0x1002, 0x4c45, 0, "ATI Rage 128 Mobility LE (PCI)"}, \ - {0x1002, 0x4c46, 0, "ATI Rage 128 Mobility LF (AGP)"}, \ - {0x1002, 0x4d46, 0, "ATI Rage 128 Mobility MF (AGP)"}, \ - {0x1002, 0x4d4c, 0, "ATI Rage 128 Mobility ML (AGP)"}, \ - {0x1002, 0x5041, 0, "ATI Rage 128 Pro PA (PCI)"}, \ - {0x1002, 0x5042, 0, "ATI Rage 128 Pro PB (AGP)"}, \ - {0x1002, 0x5043, 0, "ATI Rage 128 Pro PC (AGP)"}, \ - {0x1002, 0x5044, 0, "ATI Rage 128 Pro PD (PCI)"}, \ - {0x1002, 0x5045, 0, "ATI Rage 128 Pro PE (AGP)"}, \ - {0x1002, 0x5046, 0, "ATI Rage 128 Pro PF (AGP)"}, \ - {0x1002, 0x5047, 0, "ATI Rage 128 Pro PG (PCI)"}, \ - {0x1002, 0x5048, 0, "ATI Rage 128 Pro PH (AGP)"}, \ - {0x1002, 0x5049, 0, "ATI Rage 128 Pro PI (AGP)"}, \ - {0x1002, 0x504A, 0, "ATI Rage 128 Pro PJ (PCI)"}, \ - {0x1002, 0x504B, 0, "ATI Rage 128 Pro PK (AGP)"}, \ - {0x1002, 0x504C, 0, "ATI Rage 128 Pro PL (AGP)"}, \ - {0x1002, 0x504D, 0, "ATI Rage 128 Pro PM (PCI)"}, \ - {0x1002, 0x504E, 0, "ATI Rage 128 Pro PN (AGP)"}, \ - {0x1002, 0x504F, 0, "ATI Rage 128 Pro PO (AGP)"}, \ - {0x1002, 0x5050, 0, "ATI Rage 128 Pro PP (PCI)"}, \ - {0x1002, 0x5051, 0, "ATI Rage 128 Pro PQ (AGP)"}, \ - {0x1002, 0x5052, 0, "ATI Rage 128 Pro PR (PCI)"}, \ - {0x1002, 0x5053, 0, "ATI Rage 128 Pro PS (PCI)"}, \ - {0x1002, 0x5054, 0, "ATI Rage 128 Pro PT (AGP)"}, \ - {0x1002, 0x5055, 0, "ATI Rage 128 Pro PU (AGP)"}, \ - {0x1002, 0x5056, 0, "ATI Rage 128 Pro PV (PCI)"}, \ - {0x1002, 0x5057, 0, "ATI Rage 128 Pro PW (AGP)"}, \ - {0x1002, 0x5058, 0, "ATI Rage 128 Pro PX (AGP)"}, \ - {0x1002, 0x5245, 0, "ATI Rage 128 RE (PCI)"}, \ - {0x1002, 0x5246, 0, "ATI Rage 128 RF (AGP)"}, \ - {0x1002, 0x5247, 0, "ATI Rage 128 RG (AGP)"}, \ - {0x1002, 0x524b, 0, "ATI Rage 128 RK (PCI)"}, \ - {0x1002, 0x524c, 0, "ATI Rage 128 RL (AGP)"}, \ - {0x1002, 0x534d, 0, "ATI Rage 128 SM (AGP)"}, \ - {0x1002, 0x5446, 0, "ATI Rage 128 Pro Ultra TF (AGP)"}, \ - {0x1002, 0x544C, 0, "ATI Rage 128 Pro Ultra TL (AGP)"}, \ - {0x1002, 0x5452, 0, "ATI Rage 128 Pro Ultra TR (AGP)"}, \ - {0, 0, 0, NULL} - /* Driver customization: */ #define DRIVER_PRERELEASE() do { \ @@ -132,7 +92,7 @@ } \ } while (0) -#define DRIVER_PRETAKEDOWN() do { \ +#define DRIVER_PRETAKEDOWN(dev) do { \ r128_do_cleanup_cce( dev ); \ } while (0) ==== //depot/projects/netperf_socket/sys/dev/drm/r128_drm.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * Gareth Hughes * Kevin E. Martin * - * $FreeBSD: src/sys/dev/drm/r128_drm.h,v 1.4 2003/08/19 02:57:31 anholt Exp $ + * $FreeBSD: src/sys/dev/drm/r128_drm.h,v 1.5 2004/06/11 03:26:59 anholt Exp $ */ #ifndef __R128_DRM_H__ @@ -178,24 +178,47 @@ /* Rage 128 specific ioctls * The device specific ioctl range is 0x40 to 0x79. */ -#define DRM_IOCTL_R128_INIT DRM_IOW( 0x40, drm_r128_init_t) -#define DRM_IOCTL_R128_CCE_START DRM_IO( 0x41) -#define DRM_IOCTL_R128_CCE_STOP DRM_IOW( 0x42, drm_r128_cce_stop_t) -#define DRM_IOCTL_R128_CCE_RESET DRM_IO( 0x43) -#define DRM_IOCTL_R128_CCE_IDLE DRM_IO( 0x44) -#define DRM_IOCTL_R128_RESET DRM_IO( 0x46) -#define DRM_IOCTL_R128_SWAP DRM_IO( 0x47) -#define DRM_IOCTL_R128_CLEAR DRM_IOW( 0x48, drm_r128_clear_t) -#define DRM_IOCTL_R128_VERTEX DRM_IOW( 0x49, drm_r128_vertex_t) -#define DRM_IOCTL_R128_INDICES DRM_IOW( 0x4a, drm_r128_indices_t) -#define DRM_IOCTL_R128_BLIT DRM_IOW( 0x4b, drm_r128_blit_t) -#define DRM_IOCTL_R128_DEPTH DRM_IOW( 0x4c, drm_r128_depth_t) -#define DRM_IOCTL_R128_STIPPLE DRM_IOW( 0x4d, drm_r128_stipple_t) -#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(0x4f, drm_r128_indirect_t) -#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW( 0x50, drm_r128_fullscreen_t) -#define DRM_IOCTL_R128_CLEAR2 DRM_IOW( 0x51, drm_r128_clear2_t) -#define DRM_IOCTL_R128_GETPARAM DRM_IOW( 0x52, drm_r128_getparam_t) -#define DRM_IOCTL_R128_FLIP DRM_IO( 0x53) +#define DRM_R128_INIT 0x00 +#define DRM_R128_CCE_START 0x01 +#define DRM_R128_CCE_STOP 0x02 +#define DRM_R128_CCE_RESET 0x03 +#define DRM_R128_CCE_IDLE 0x04 +/* 0x05 not used */ +#define DRM_R128_RESET 0x06 +#define DRM_R128_SWAP 0x07 +#define DRM_R128_CLEAR 0x08 +#define DRM_R128_VERTEX 0x09 +#define DRM_R128_INDICES 0x0a +#define DRM_R128_BLIT 0x0b +#define DRM_R128_DEPTH 0x0c +#define DRM_R128_STIPPLE 0x0d +/* 0x0e not used */ +#define DRM_R128_INDIRECT 0x0f +#define DRM_R128_FULLSCREEN 0x10 +#define DRM_R128_CLEAR2 0x11 +#define DRM_R128_GETPARAM 0x12 +#define DRM_R128_FLIP 0x13 + +#define DRM_IOCTL_R128_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t) +#define DRM_IOCTL_R128_CCE_START DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_START) +#define DRM_IOCTL_R128_CCE_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t) +#define DRM_IOCTL_R128_CCE_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_RESET) +#define DRM_IOCTL_R128_CCE_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_IDLE) +/* 0x05 not used */ +#define DRM_IOCTL_R128_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_RESET) +#define DRM_IOCTL_R128_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_R128_SWAP) +#define DRM_IOCTL_R128_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t) +#define DRM_IOCTL_R128_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t) +#define DRM_IOCTL_R128_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t) +#define DRM_IOCTL_R128_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t) +#define DRM_IOCTL_R128_DEPTH DRM_IOW( DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t) +#define DRM_IOCTL_R128_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t) +/* 0x0e not used */ +#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t) +#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t) +#define DRM_IOCTL_R128_CLEAR2 DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t) +#define DRM_IOCTL_R128_GETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t) +#define DRM_IOCTL_R128_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_R128_FLIP) typedef struct drm_r128_init { enum { @@ -318,7 +341,7 @@ typedef struct drm_r128_getparam { int param; - int *value; + void *value; } drm_r128_getparam_t; #endif ==== //depot/projects/netperf_socket/sys/dev/drm/r128_state.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * Authors: >>> TRUNCATED FOR MAIL (1000 lines) <<<