PERFORCE change 54633 for review
Robert Watson
rwatson at FreeBSD.org
Fri Jun 11 13:21:36 GMT 2004
http://perforce.freebsd.org/chv.cgi?CH=54633
Change 54633 by rwatson at 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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/lock.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
@@ -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 <sys/cdefs.h>
-__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 <faith at valinux.com>
* Gareth Hughes <gareth at valinux.com>
*
- * $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 <faith at valinux.com>
* Gareth Hughes <gareth at valinux.com>
*
- * $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 <sys/param.h>
@@ -78,6 +78,8 @@
#include <sys/mutex.h>
#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 <michel at daenzer.net>
+ * \author Michel D�zer <michel at daenzer.net>
*/
/*
@@ -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 <gareth at valinux.com>
*
- * $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 <gareth at valinux.com>
*
- * $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 <gareth at valinux.com>
*
- * $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 <gareth at valinux.com>
* Kevin E. Martin <martin at valinux.com>
*
- * $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) <<<
More information about the p4-projects
mailing list