PERFORCE change 42181 for review
John Baldwin
jhb at FreeBSD.org
Wed Nov 12 15:06:53 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=42181
Change 42181 by jhb at jhb_blue on 2003/11/12 15:05:25
IFC @42179.
Affected files ...
.. //depot/projects/smpng/sys/amd64/amd64/autoconf.c#3 integrate
.. //depot/projects/smpng/sys/conf/files#94 integrate
.. //depot/projects/smpng/sys/crypto/rijndael/rijndael-api.c#1 branch
.. //depot/projects/smpng/sys/crypto/rijndael/rijndael.c#2 delete
.. //depot/projects/smpng/sys/dev/acpica/Osd/OsdInterrupt.c#9 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#8 integrate
.. //depot/projects/smpng/sys/dev/aha/ahareg.h#3 integrate
.. //depot/projects/smpng/sys/dev/drm/drm.h#5 integrate
.. //depot/projects/smpng/sys/dev/drm/drmP.h#7 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_bufs.h#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_drv.h#13 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_fops.h#8 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_ioctl.h#6 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_irq.h#2 integrate
.. //depot/projects/smpng/sys/dev/drm/drm_os_freebsd.h#13 integrate
.. //depot/projects/smpng/sys/dev/drm/mga_dma.c#7 integrate
.. //depot/projects/smpng/sys/dev/drm/r128_cce.c#7 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon.h#7 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_cp.c#8 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drm.h#6 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_drv.h#7 integrate
.. //depot/projects/smpng/sys/dev/drm/radeon_state.c#7 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp.c#29 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp.h#2 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp_targ.c#2 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#37 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#21 integrate
.. //depot/projects/smpng/sys/dev/usb/ohci.c#26 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs.h#9 integrate
.. //depot/projects/smpng/sys/fs/nwfs/nwfs_vfsops.c#13 integrate
.. //depot/projects/smpng/sys/fs/smbfs/smbfs_vfsops.c#21 integrate
.. //depot/projects/smpng/sys/geom/geom_ccd.c#8 integrate
.. //depot/projects/smpng/sys/i386/i386/apic_vector.s#2 integrate
.. //depot/projects/smpng/sys/i386/i386/genassym.c#27 integrate
.. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#2 integrate
.. //depot/projects/smpng/sys/i386/i386/io_apic.c#4 integrate
.. //depot/projects/smpng/sys/i386/i386/local_apic.c#2 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#58 integrate
.. //depot/projects/smpng/sys/i386/include/apicvar.h#2 integrate
.. //depot/projects/smpng/sys/i386/include/clock.h#8 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic.c#2 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic_vector.s#2 integrate
.. //depot/projects/smpng/sys/i386/isa/icu.h#7 integrate
.. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#22 integrate
.. //depot/projects/smpng/sys/ia64/ia64/machdep.c#72 integrate
.. //depot/projects/smpng/sys/ia64/ia64/trap.c#60 integrate
.. //depot/projects/smpng/sys/ia64/include/md_var.h#13 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#35 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#63 integrate
.. //depot/projects/smpng/sys/kern/kern_mac.c#32 integrate
.. //depot/projects/smpng/sys/kern/kern_timeout.c#15 integrate
.. //depot/projects/smpng/sys/kern/subr_turnstile.c#3 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#35 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#34 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#54 integrate
.. //depot/projects/smpng/sys/kern/vfs_cluster.c#30 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#20 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#64 integrate
.. //depot/projects/smpng/sys/net/bpfdesc.h#7 integrate
.. //depot/projects/smpng/sys/net/if_var.h#19 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#22 integrate
.. //depot/projects/smpng/sys/netgraph/netgraph.h#6 integrate
.. //depot/projects/smpng/sys/netgraph/ng_message.h#6 integrate
.. //depot/projects/smpng/sys/netinet/ip_var.h#17 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#40 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#32 integrate
.. //depot/projects/smpng/sys/netinet6/in6_src.c#14 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vfsops.c#30 integrate
.. //depot/projects/smpng/sys/security/mac/mac_internal.h#4 integrate
.. //depot/projects/smpng/sys/security/mac/mac_label.c#1 branch
.. //depot/projects/smpng/sys/security/mac/mac_net.c#5 integrate
.. //depot/projects/smpng/sys/security/mac/mac_pipe.c#4 integrate
.. //depot/projects/smpng/sys/security/mac/mac_process.c#4 integrate
.. //depot/projects/smpng/sys/security/mac/mac_system.c#2 integrate
.. //depot/projects/smpng/sys/security/mac/mac_vfs.c#4 integrate
.. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#20 integrate
.. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#15 integrate
.. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#19 integrate
.. //depot/projects/smpng/sys/security/mac_partition/mac_partition.c#5 integrate
.. //depot/projects/smpng/sys/security/mac_test/mac_test.c#15 integrate
.. //depot/projects/smpng/sys/sys/mac.h#20 integrate
.. //depot/projects/smpng/sys/sys/mount.h#24 integrate
.. //depot/projects/smpng/sys/sys/pipe.h#6 integrate
.. //depot/projects/smpng/sys/sys/proc.h#105 integrate
.. //depot/projects/smpng/sys/sys/socketvar.h#33 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#35 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#35 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#37 integrate
.. //depot/projects/smpng/sys/sys/turnstile.h#1 branch
.. //depot/projects/smpng/sys/sys/ucred.h#22 integrate
.. //depot/projects/smpng/sys/sys/vnode.h#39 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#48 integrate
Differences ...
==== //depot/projects/smpng/sys/amd64/amd64/autoconf.c#3 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.174 2003/07/25 21:15:44 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.175 2003/11/12 01:49:49 peter Exp $");
/*
* Setup the system to run on the current machine.
@@ -155,6 +155,8 @@
{
cninit_finish();
+ if (bootverbose)
+ printf("Device configuration finished.\n");
cold = 0;
}
==== //depot/projects/smpng/sys/conf/files#94 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.848 2003/11/11 22:07:29 jhb Exp $
+# $FreeBSD: src/sys/conf/files,v 1.850 2003/11/12 04:22:36 ume Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -207,7 +207,7 @@
crypto/des/des_ecb.c optional ipsec ipsec_esp
crypto/des/des_setkey.c optional ipsec ipsec_esp
crypto/rijndael/rijndael-alg-fst.c optional ipsec
-crypto/rijndael/rijndael.c optional ipsec
+crypto/rijndael/rijndael-api.c optional ipsec
opencrypto/rmd160.c optional ipsec
crypto/sha1.c optional ipsec
crypto/sha2/sha2.c optional ipsec
@@ -1618,6 +1618,7 @@
posix4/p1003_1b.c standard
posix4/posix4_mib.c standard
kern/uipc_sem.c optional p1003_1b_semaphores
+security/mac/mac_label.c optional mac
security/mac/mac_net.c optional mac
security/mac/mac_pipe.c optional mac
security/mac/mac_process.c optional mac
==== //depot/projects/smpng/sys/dev/acpica/Osd/OsdInterrupt.c#9 (text+ko) ====
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.13 2003/11/11 18:12:12 jhb Exp $
+ * $FreeBSD: src/sys/dev/acpica/Osd/OsdInterrupt.c,v 1.15 2003/11/12 16:24:16 jhb Exp $
*/
/*
@@ -135,10 +135,12 @@
acpi_OverrideInterruptLevel(UINT32 InterruptNumber)
{
- if (InterruptOverride != 0)
- return_ACPI_STATUS(AE_ALREADY_EXISTS);
- InterruptOverride = InterruptNumber;
- return_ACPI_STATUS(AE_OK);
+ ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
+
+ if (InterruptOverride != 0)
+ return_ACPI_STATUS(AE_ALREADY_EXISTS);
+ InterruptOverride = InterruptNumber;
+ return_ACPI_STATUS(AE_OK);
}
/*
==== //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#8 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.7 2003/08/24 17:48:01 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.8 2003/11/12 19:46:17 jhb Exp $");
#include "opt_acpi.h"
#include <sys/param.h>
@@ -120,7 +120,7 @@
break;
default:
- printf("unkown,");
+ printf("unknown,");
break;
}
@@ -134,7 +134,7 @@
break;
default:
- printf("unkown,");
+ printf("unknown,");
break;
}
@@ -148,7 +148,7 @@
break;
default:
- printf("unkown");
+ printf("unknown");
break;
}
==== //depot/projects/smpng/sys/dev/aha/ahareg.h#3 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/aha/ahareg.h,v 1.15 2003/11/09 19:51:16 imp Exp $
+ * $FreeBSD: src/sys/dev/aha/ahareg.h,v 1.16 2003/11/12 05:44:44 imp Exp $
*/
#ifndef _AHAREG_H_
@@ -426,4 +426,4 @@
#define AHA1542_PNPCOMPAT 0xA000D040 /* PNP00A0 */
#define ICU0091_PNP 0X91005AA4 /* ICU0091 */
-#endif /* _AHA_H_ */
+#endif /* _AHAREG_H_ */
==== //depot/projects/smpng/sys/dev/drm/drm.h#5 (text+ko) ====
@@ -1,6 +1,14 @@
-/* drm.h -- Header for Direct Rendering Manager -*- linux-c -*-
- * Created: Mon Jan 4 10:05:05 1999 by faith at precisioninsight.com
+/**
+ * \file drm.h
+ * Header for the Direct Rendering Manager
+ *
+ * \author Rickard E. (Rik) Faith <faith at valinux.com>
*
+ * \par Acknowledgments:
+ * Dec 1999, Richard Henderson <rth at twiddle.net>, move to generic \c cmpxchg.
+ */
+
+/*
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
* All rights reserved.
@@ -24,15 +32,10 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
- * Authors:
- * Rickard E. (Rik) Faith <faith at valinux.com>
- *
- * Acknowledgements:
- * Dec 1999, Richard Henderson <rth at twiddle.net>, move to generic cmpxchg.
- *
- * $FreeBSD: src/sys/dev/drm/drm.h,v 1.5 2003/10/24 01:48:16 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drm.h,v 1.6 2003/11/12 20:56:30 anholt Exp $
*/
+
#ifndef _DRM_H_
#define _DRM_H_
@@ -79,29 +82,42 @@
#define DRM_DEV_GID 0
#endif
-#define DRM_NAME "drm" /* Name in kernel, /dev, and /proc */
-#define DRM_MIN_ORDER 5 /* At least 2^5 bytes = 32 bytes */
-#define DRM_MAX_ORDER 22 /* Up to 2^22 bytes = 4MB */
-#define DRM_RAM_PERCENT 10 /* How much system ram can we lock? */
+#if CONFIG_XFREE86_VERSION >= XFREE86_VERSION(4,1,0,0)
+#ifdef __OpenBSD__
+#define DRM_MAJOR 81
+#endif
+#if defined(__linux__) || defined(__NetBSD__)
+#define DRM_MAJOR 226
+#endif
+#define DRM_MAX_MINOR 15
+#endif
+#define DRM_NAME "drm" /**< Name in kernel, /dev, and /proc */
+#define DRM_MIN_ORDER 5 /**< At least 2^5 bytes = 32 bytes */
+#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */
+#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */
-#define _DRM_LOCK_HELD 0x80000000 /* Hardware lock is held */
-#define _DRM_LOCK_CONT 0x40000000 /* Hardware lock is contended */
+#define _DRM_LOCK_HELD 0x80000000 /**< Hardware lock is held */
+#define _DRM_LOCK_CONT 0x40000000 /**< Hardware lock is contended */
#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD)
#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT)
#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
+
typedef unsigned long drm_handle_t;
typedef unsigned int drm_context_t;
typedef unsigned int drm_drawable_t;
typedef unsigned int drm_magic_t;
-/* Warning: If you change this structure, make sure you change
- * XF86DRIClipRectRec in the server as well */
-/* KW: Actually it's illegal to change either for
+/**
+ * Cliprect.
+ *
+ * \warning: If you change this structure, make sure you change
+ * XF86DRIClipRectRec in the server as well
+ *
+ * \note KW: Actually it's illegal to change either for
* backwards-compatibility reasons.
*/
-
typedef struct drm_clip_rect {
unsigned short x1;
unsigned short y1;
@@ -109,6 +125,10 @@
unsigned short y2;
} drm_clip_rect_t;
+
+/**
+ * Texture region,
+ */
typedef struct drm_tex_region {
unsigned char next;
unsigned char prev;
@@ -117,32 +137,52 @@
unsigned int age;
} drm_tex_region_t;
+
+/**
+ * DRM_IOCTL_VERSION ioctl argument type.
+ *
+ * \sa drmGetVersion().
+ */
typedef struct drm_version {
- int version_major; /* Major version */
- int version_minor; /* Minor version */
- int version_patchlevel;/* Patch level */
- size_t name_len; /* Length of name buffer */
- char *name; /* Name of driver */
- size_t date_len; /* Length of date buffer */
- char *date; /* User-space buffer to hold date */
- size_t desc_len; /* Length of desc buffer */
- char *desc; /* User-space buffer to hold desc */
+ int version_major; /**< Major version */
+ int version_minor; /**< Minor version */
+ int version_patchlevel;/**< Patch level */
+ size_t name_len; /**< Length of name buffer */
+ char *name; /**< Name of driver */
+ size_t date_len; /**< Length of date buffer */
+ char *date; /**< User-space buffer to hold date */
+ size_t desc_len; /**< Length of desc buffer */
+ char *desc; /**< User-space buffer to hold desc */
} drm_version_t;
+
+/**
+ * DRM_IOCTL_GET_UNIQUE ioctl argument type.
+ *
+ * \sa drmGetBusid() and drmSetBusId().
+ */
typedef struct drm_unique {
- size_t unique_len; /* Length of unique */
- char *unique; /* Unique name for driver instantiation */
+ size_t unique_len; /**< Length of unique */
+ char *unique; /**< Unique name for driver instantiation */
} drm_unique_t;
+
typedef struct drm_list {
- int count; /* Length of user-space structures */
+ int count; /**< Length of user-space structures */
drm_version_t *version;
} drm_list_t;
+
typedef struct drm_block {
int unused;
} drm_block_t;
+
+/**
+ * DRM_IOCTL_CONTROL ioctl argument type.
+ *
+ * \sa drmCtlInstHandler() and drmCtlUninstHandler().
+ */
typedef struct drm_control {
enum {
DRM_ADD_COMMAND,
@@ -153,49 +193,70 @@
int irq;
} drm_control_t;
+
+/**
+ * Type of memory to map.
+ */
typedef enum drm_map_type {
- _DRM_FRAME_BUFFER = 0, /* WC (no caching), no core dump */
- _DRM_REGISTERS = 1, /* no caching, no core dump */
- _DRM_SHM = 2, /* shared, cached */
- _DRM_AGP = 3, /* AGP/GART */
- _DRM_SCATTER_GATHER = 4 /* Scatter/gather memory for PCI DMA */
+ _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */
+ _DRM_REGISTERS = 1, /**< no caching, no core dump */
+ _DRM_SHM = 2, /**< shared, cached */
+ _DRM_AGP = 3, /**< AGP/GART */
+ _DRM_SCATTER_GATHER = 4 /**< Scatter/gather memory for PCI DMA */
} drm_map_type_t;
+
+/**
+ * Memory mapping flags.
+ */
typedef enum drm_map_flags {
- _DRM_RESTRICTED = 0x01, /* Cannot be mapped to user-virtual */
+ _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */
_DRM_READ_ONLY = 0x02,
- _DRM_LOCKED = 0x04, /* shared, cached, locked */
- _DRM_KERNEL = 0x08, /* kernel requires access */
- _DRM_WRITE_COMBINING = 0x10, /* use write-combining if available */
- _DRM_CONTAINS_LOCK = 0x20, /* SHM page that contains lock */
- _DRM_REMOVABLE = 0x40 /* Removable mapping */
+ _DRM_LOCKED = 0x04, /**< shared, cached, locked */
+ _DRM_KERNEL = 0x08, /**< kernel requires access */
+ _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
+ _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */
+ _DRM_REMOVABLE = 0x40 /**< Removable mapping */
} drm_map_flags_t;
+
typedef struct drm_ctx_priv_map {
- unsigned int ctx_id; /* Context requesting private mapping */
- void *handle; /* Handle of map */
+ unsigned int ctx_id; /**< Context requesting private mapping */
+ void *handle; /**< Handle of map */
} drm_ctx_priv_map_t;
+
+/**
+ * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
+ * argument type.
+ *
+ * \sa drmAddMap().
+ */
typedef struct drm_map {
- unsigned long offset; /* Requested physical address (0 for SAREA)*/
- unsigned long size; /* Requested physical size (bytes) */
- drm_map_type_t type; /* Type of memory to map */
- drm_map_flags_t flags; /* Flags */
- void *handle; /* User-space: "Handle" to pass to mmap */
- /* Kernel-space: kernel-virtual address */
- int mtrr; /* MTRR slot used */
- /* Private data */
+ unsigned long offset; /**< Requested physical address (0 for SAREA)*/
+ unsigned long size; /**< Requested physical size (bytes) */
+ drm_map_type_t type; /**< Type of memory to map */
+ drm_map_flags_t flags; /**< Flags */
+ void *handle; /**< User-space: "Handle" to pass to mmap() */
+ /**< Kernel-space: kernel-virtual address */
+ int mtrr; /**< MTRR slot used */
+ /* Private data */
} drm_map_t;
+
+/**
+ * DRM_IOCTL_GET_CLIENT ioctl argument type.
+ */
typedef struct drm_client {
- int idx; /* Which client desired? */
- int auth; /* Is client authenticated? */
- unsigned long pid; /* Process id */
- unsigned long uid; /* User id */
- unsigned long magic; /* Magic */
- unsigned long iocs; /* Ioctl count */
+ int idx; /**< Which client desired? */
+ int auth; /**< Is client authenticated? */
+ unsigned long pid; /**< Process ID */
+ unsigned long uid; /**< User ID */
+ unsigned long magic; /**< Magic */
+ unsigned long iocs; /**< Ioctl count */
} drm_client_t;
+
typedef enum {
_DRM_STAT_LOCK,
_DRM_STAT_OPENS,
@@ -203,20 +264,24 @@
_DRM_STAT_IOCTLS,
_DRM_STAT_LOCKS,
_DRM_STAT_UNLOCKS,
- _DRM_STAT_VALUE, /* Generic value */
- _DRM_STAT_BYTE, /* Generic byte counter (1024bytes/K) */
- _DRM_STAT_COUNT, /* Generic non-byte counter (1000/k) */
+ _DRM_STAT_VALUE, /**< Generic value */
+ _DRM_STAT_BYTE, /**< Generic byte counter (1024bytes/K) */
+ _DRM_STAT_COUNT, /**< Generic non-byte counter (1000/k) */
- _DRM_STAT_IRQ, /* IRQ */
- _DRM_STAT_PRIMARY, /* Primary DMA bytes */
- _DRM_STAT_SECONDARY, /* Secondary DMA bytes */
- _DRM_STAT_DMA, /* DMA */
- _DRM_STAT_SPECIAL, /* Special DMA (e.g., priority or polled) */
- _DRM_STAT_MISSED /* Missed DMA opportunity */
+ _DRM_STAT_IRQ, /**< IRQ */
+ _DRM_STAT_PRIMARY, /**< Primary DMA bytes */
+ _DRM_STAT_SECONDARY, /**< Secondary DMA bytes */
+ _DRM_STAT_DMA, /**< DMA */
+ _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */
+ _DRM_STAT_MISSED /**< Missed DMA opportunity */
/* Add to the *END* of the list */
} drm_stat_type_t;
+
+/**
+ * DRM_IOCTL_GET_STATS ioctl argument type.
+ */
typedef struct drm_stats {
unsigned long count;
struct {
@@ -225,137 +290,220 @@
} data[15];
} drm_stats_t;
+
+/**
+ * Hardware locking flags.
+ */
typedef enum drm_lock_flags {
- _DRM_LOCK_READY = 0x01, /* Wait until hardware is ready for DMA */
- _DRM_LOCK_QUIESCENT = 0x02, /* Wait until hardware quiescent */
- _DRM_LOCK_FLUSH = 0x04, /* Flush this context's DMA queue first */
- _DRM_LOCK_FLUSH_ALL = 0x08, /* Flush all DMA queues first */
+ _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */
+ _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */
+ _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */
+ _DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */
/* These *HALT* flags aren't supported yet
-- they will be used to support the
full-screen DGA-like mode. */
- _DRM_HALT_ALL_QUEUES = 0x10, /* Halt all current and future queues */
- _DRM_HALT_CUR_QUEUES = 0x20 /* Halt all current queues */
+ _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
+ _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
} drm_lock_flags_t;
+
+/**
+ * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
+ *
+ * \sa drmGetLock() and drmUnlock().
+ */
typedef struct drm_lock {
int context;
drm_lock_flags_t flags;
} drm_lock_t;
-typedef enum drm_dma_flags { /* These values *MUST* match xf86drm.h */
- /* Flags for DMA buffer dispatch */
- _DRM_DMA_BLOCK = 0x01, /* Block until buffer dispatched.
- Note, the buffer may not yet have
- been processed by the hardware --
- getting a hardware lock with the
- hardware quiescent will ensure
- that the buffer has been
- processed. */
- _DRM_DMA_WHILE_LOCKED = 0x02, /* Dispatch while lock held */
- _DRM_DMA_PRIORITY = 0x04, /* High priority dispatch */
+
+/**
+ * DMA flags
+ *
+ * \warning
+ * These values \e must match xf86drm.h.
+ *
+ * \sa drm_dma.
+ */
+typedef enum drm_dma_flags {
+ /* Flags for DMA buffer dispatch */
+ _DRM_DMA_BLOCK = 0x01, /**<
+ * Block until buffer dispatched.
+ *
+ * \note The buffer may not yet have
+ * been processed by the hardware --
+ * getting a hardware lock with the
+ * hardware quiescent will ensure
+ * that the buffer has been
+ * processed.
+ */
+ _DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
+ _DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */
- /* Flags for DMA buffer request */
- _DRM_DMA_WAIT = 0x10, /* Wait for free buffers */
- _DRM_DMA_SMALLER_OK = 0x20, /* Smaller-than-requested buffers ok */
- _DRM_DMA_LARGER_OK = 0x40 /* Larger-than-requested buffers ok */
+ /* Flags for DMA buffer request */
+ _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */
+ _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */
+ _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
} drm_dma_flags_t;
+
+/**
+ * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
+ *
+ * \sa drmAddBufs().
+ */
typedef struct drm_buf_desc {
- int count; /* Number of buffers of this size */
- int size; /* Size in bytes */
- int low_mark; /* Low water mark */
- int high_mark; /* High water mark */
+ int count; /**< Number of buffers of this size */
+ int size; /**< Size in bytes */
+ int low_mark; /**< Low water mark */
+ int high_mark; /**< High water mark */
enum {
- _DRM_PAGE_ALIGN = 0x01, /* Align on page boundaries for DMA */
- _DRM_AGP_BUFFER = 0x02, /* Buffer is in agp space */
- _DRM_SG_BUFFER = 0x04 /* Scatter/gather memory buffer */
+ _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */
+ _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */
+ _DRM_SG_BUFFER = 0x04 /**< Scatter/gather memory buffer */
} flags;
- unsigned long agp_start; /* Start address of where the agp buffers
- * are in the agp aperture */
+ unsigned long agp_start; /**<
+ * Start address of where the AGP buffers are
+ * in the AGP aperture
+ */
} drm_buf_desc_t;
+
+/**
+ * DRM_IOCTL_INFO_BUFS ioctl argument type.
+ */
typedef struct drm_buf_info {
- int count; /* Entries in list */
+ int count; /**< Entries in list */
drm_buf_desc_t *list;
} drm_buf_info_t;
+
+/**
+ * DRM_IOCTL_FREE_BUFS ioctl argument type.
+ */
typedef struct drm_buf_free {
int count;
int *list;
} drm_buf_free_t;
+
+/**
+ * Buffer information
+ *
+ * \sa drm_buf_map.
+ */
typedef struct drm_buf_pub {
- int idx; /* Index into master buflist */
- int total; /* Buffer size */
- int used; /* Amount of buffer in use (for DMA) */
- void *address; /* Address of buffer */
+ int idx; /**< Index into the master buffer list */
+ int total; /**< Buffer size */
+ int used; /**< Amount of buffer in use (for DMA) */
+ void *address; /**< Address of buffer */
} drm_buf_pub_t;
+
+/**
+ * DRM_IOCTL_MAP_BUFS ioctl argument type.
+ */
typedef struct drm_buf_map {
- int count; /* Length of buflist */
- void *virtual; /* Mmaped area in user-virtual */
- drm_buf_pub_t *list; /* Buffer information */
+ int count; /**< Length of the buffer list */
+ void *virtual; /**< Mmap'd area in user-virtual */
+ drm_buf_pub_t *list; /**< Buffer information */
} drm_buf_map_t;
+
+/**
+ * DRM_IOCTL_DMA ioctl argument type.
+ *
+ * Indices here refer to the offset into the buffer list in drm_buf_get.
+ *
+ * \sa drmDMA().
+ */
typedef struct drm_dma {
- /* Indices here refer to the offset into
- buflist in drm_buf_get_t. */
- int context; /* Context handle */
- int send_count; /* Number of buffers to send */
- int *send_indices; /* List of handles to buffers */
- int *send_sizes; /* Lengths of data to send */
- drm_dma_flags_t flags; /* Flags */
- int request_count; /* Number of buffers requested */
- int request_size; /* Desired size for buffers */
- int *request_indices; /* Buffer information */
+ int context; /**< Context handle */
+ int send_count; /**< Number of buffers to send */
+ int *send_indices; /**< List of handles to buffers */
+ int *send_sizes; /**< Lengths of data to send */
+ drm_dma_flags_t flags; /**< Flags */
+ int request_count; /**< Number of buffers requested */
+ int request_size; /**< Desired size for buffers */
+ int *request_indices; /**< Buffer information */
int *request_sizes;
- int granted_count; /* Number of buffers granted */
+ int granted_count; /**< Number of buffers granted */
} drm_dma_t;
+
typedef enum {
_DRM_CONTEXT_PRESERVED = 0x01,
_DRM_CONTEXT_2DONLY = 0x02
} drm_ctx_flags_t;
+
+/**
+ * DRM_IOCTL_ADD_CTX ioctl argument type.
+ *
+ * \sa drmCreateContext() and drmDestroyContext().
+ */
typedef struct drm_ctx {
drm_context_t handle;
drm_ctx_flags_t flags;
} drm_ctx_t;
+
+/**
+ * DRM_IOCTL_RES_CTX ioctl argument type.
+ */
typedef struct drm_ctx_res {
int count;
drm_ctx_t *contexts;
} drm_ctx_res_t;
+
+/**
+ * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
+ */
typedef struct drm_draw {
drm_drawable_t handle;
} drm_draw_t;
+
+/**
+ * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
+ */
typedef struct drm_auth {
drm_magic_t magic;
} drm_auth_t;
+
+/**
+ * DRM_IOCTL_IRQ_BUSID ioctl argument type.
+ *
+ * \sa drmGetInterruptFromBusID().
+ */
typedef struct drm_irq_busid {
- int irq;
- int busnum;
- int devnum;
- int funcnum;
+ int irq; /**< IRQ number */
+ int busnum; /**< bus number */
+ int devnum; /**< device number */
+ int funcnum; /**< function number */
} drm_irq_busid_t;
+
typedef enum {
- _DRM_VBLANK_ABSOLUTE = 0x0, /* Wait for specific vblank sequence number */
- _DRM_VBLANK_RELATIVE = 0x1, /* Wait for given number of vblanks */
- _DRM_VBLANK_SIGNAL = 0x40000000 /* Send signal instead of blocking */
+ _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
+ _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
+ _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */
} drm_vblank_seq_type_t;
+
#define _DRM_VBLANK_FLAGS_MASK _DRM_VBLANK_SIGNAL
+
struct drm_wait_vblank_request {
drm_vblank_seq_type_t type;
unsigned int sequence;
unsigned long signal;
};
+
struct drm_wait_vblank_reply {
drm_vblank_seq_type_t type;
unsigned int sequence;
@@ -363,29 +511,59 @@
long tval_usec;
};
+
+/**
+ * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
+ *
+ * \sa drmWaitVBlank().
+ */
typedef union drm_wait_vblank {
struct drm_wait_vblank_request request;
struct drm_wait_vblank_reply reply;
} drm_wait_vblank_t;
+
+/**
+ * DRM_IOCTL_AGP_ENABLE ioctl argument type.
+ *
+ * \sa drmAgpEnable().
+ */
typedef struct drm_agp_mode {
- unsigned long mode;
+ unsigned long mode; /**< AGP mode */
} drm_agp_mode_t;
- /* For drm_agp_alloc -- allocated a buffer */
+
+/**
+ * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
+ *
+ * \sa drmAgpAlloc() and drmAgpFree().
+ */
typedef struct drm_agp_buffer {
- unsigned long size; /* In bytes -- will round to page boundary */
- unsigned long handle; /* Used for BIND/UNBIND ioctls */
- unsigned long type; /* Type of memory to allocate */
- unsigned long physical; /* Physical used by i810 */
+ unsigned long size; /**< In bytes -- will round to page boundary */
+ unsigned long handle; /**< Used for binding / unbinding */
+ unsigned long type; /**< Type of memory to allocate */
+ unsigned long physical; /**< Physical used by i810 */
} drm_agp_buffer_t;
- /* For drm_agp_bind */
+
+/**
+ * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
+ *
+ * \sa drmAgpBind() and drmAgpUnbind().
+ */
typedef struct drm_agp_binding {
- unsigned long handle; /* From drm_agp_buffer */
- unsigned long offset; /* In bytes -- will round to page boundary */
+ unsigned long handle; /**< From drm_agp_buffer */
+ unsigned long offset; /**< In bytes -- will round to page boundary */
} drm_agp_binding_t;
+
+/**
+ * DRM_IOCTL_AGP_INFO ioctl argument type.
+ *
+ * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
+ * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),
+ * drmAgpVendorId() and drmAgpDeviceId().
+ */
typedef struct drm_agp_info {
int agp_version_major;
int agp_version_minor;
@@ -400,11 +578,18 @@
unsigned short id_device;
} drm_agp_info_t;
+
+/**
+ * DRM_IOCTL_SG_ALLOC ioctl argument type.
+ */
typedef struct drm_scatter_gather {
- unsigned long size; /* In bytes -- will round to page boundary */
- unsigned long handle; /* Used for mapping / unmapping */
+ unsigned long size; /**< In bytes -- will round to page boundary */
+ unsigned long handle; /**< Used for mapping / unmapping */
} drm_scatter_gather_t;
+/**
+ * DRM_IOCTL_SET_VERSION ioctl argument type.
+ */
typedef struct drm_set_version {
int drm_di_major;
int drm_di_minor;
@@ -412,6 +597,7 @@
int drm_dd_minor;
} drm_set_version_t;
+
#define DRM_IOCTL_BASE 'd'
#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr)
#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type)
@@ -472,8 +658,13 @@
#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, drm_wait_vblank_t)
-/* Device specfic ioctls should only be in their respective headers
- * The device specific ioctl range is 0x40 to 0x79. */
+/**
+ * Device specific ioctls should only be in their respective headers
+ * The device specific ioctl range is from 0x40 to 0x79.
+ *
+ * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and
+ * drmCommandReadWrite().
+ */
#define DRM_COMMAND_BASE 0x40
#endif
==== //depot/projects/smpng/sys/dev/drm/drmP.h#7 (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.7 2003/10/24 01:48:16 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drmP.h,v 1.8 2003/11/12 20:56:30 anholt Exp $
*/
#ifndef _DRM_P_H_
@@ -119,6 +119,8 @@
#define DRM_MIN(a,b) ((a)<(b)?(a):(b))
#define DRM_MAX(a,b) ((a)>(b)?(a):(b))
+#define DRM_IF_VERSION(maj, min) (maj << 16 | min)
+
#define DRM_GET_PRIV_SAREA(_dev, _ctx, _map) do { \
(_map) = (_dev)->context_sareas[_ctx]; \
} while(0)
@@ -211,6 +213,9 @@
drm_magic_t magic;
unsigned long ioctl_count;
struct drm_device *devXX;
+#ifdef DRIVER_FILE_FIELDS
+ DRIVER_FILE_FIELDS;
+#endif
};
typedef struct drm_lock_data {
@@ -314,6 +319,7 @@
device_t device; /* Device instance from newbus */
#endif
dev_t devnode; /* Device number for mknod */
+ int if_version; /* Highest interface version set */
int flags; /* Flags to open(2) */
@@ -330,7 +336,6 @@
/* Usage Counters */
int open_count; /* Outstanding files open */
int buf_use; /* Buffers in use -- cannot alloc */
- int buf_alloc; /* Buffer allocation in progress */
/* Performance counters */
unsigned long counters;
@@ -354,14 +359,21 @@
/* Context support */
int irq; /* Interrupt used by board */
- int irqrid; /* Interrupt used by board */
+ int irq_enabled; /* True if the irq handler is enabled */
#ifdef __FreeBSD__
+ int irqrid; /* Interrupt used by board */
struct resource *irqr; /* Resource for interrupt used by board */
#elif defined(__NetBSD__)
struct pci_attach_args pa;
pci_intr_handle_t ih;
#endif
void *irqh; /* Handle from bus_setup_intr */
+
+ int pci_domain;
+ int pci_bus;
+ int pci_slot;
+ int pci_func;
+
atomic_t context_flag; /* Context swapping flag */
int last_context; /* Last current context */
#if __FreeBSD_version >= 400005
@@ -444,7 +456,7 @@
#if __HAVE_IRQ
/* IRQ support (drm_irq.h) */
-extern int DRM(irq_install)( drm_device_t *dev, int irq );
+extern int DRM(irq_install)(drm_device_t *dev);
extern int DRM(irq_uninstall)( drm_device_t *dev );
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list