drm.h revision d0538f66491267879b7418b21ad78e3dcc2dcc83
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk/* BEGIN CSTYLED */
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Header for the Direct Rendering Manager
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * \author Rickard E. (Rik) Faith <faith@valinux.com>
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * \par Acknowledgments:
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * All rights reserved.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Permission is hereby granted, free of charge, to any person obtaining a
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * copy of this software and associated documentation files (the "Software"),
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * to deal in the Software without restriction, including without limitation
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * the rights to use, copy, modify, merge, publish, distribute, sublicense,
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * and/or sell copies of the Software, and to permit persons to whom the
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * Software is furnished to do so, subject to the following conditions:
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * The above copyright notice and this permission notice (including the next
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk * paragraph) shall be included in all copies or substantial portions of the
#ifndef _DRM_H_
#define _DRM_H_
#ifndef __user
#define __user
#ifdef __GNUC__
# define DEPRECATED
# define __volatile__ volatile
#if defined(__linux__)
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
#define _IOC_NRSHIFT 0
#define _IOC_NONE 0U
#if !defined(_KERNEL)
#ifndef CONFIG_XFREE86_VERSION
#define DRM_DEV_UID 0
#define DRM_DEV_GID 0
#ifdef __OpenBSD__
#if defined(__linux__)
#if defined(__KERNEL__)
typedef unsigned long long drm_u64_t;
typedef unsigned int drm_handle_t;
typedef unsigned int drm_drawable_t;
typedef struct drm_clip_rect {
unsigned short x1;
unsigned short y1;
unsigned short x2;
unsigned short y2;
typedef struct drm_drawable_info {
unsigned int num_rects;
typedef struct drm_tex_region {
unsigned char next;
unsigned char prev;
unsigned char in_use;
unsigned char padding;
unsigned int age;
typedef struct drm_hw_lock {
* drm.h in places (i.e., in the X-server) where I can't use size_t. The real
#ifdef __SIZE_TYPE__
# define DRM_SIZE_T unsigned long
typedef struct drm_version {
typedef struct drm_unique {
} drm_unique_t;
typedef struct drm_list {
} drm_list_t;
typedef struct drm_block {
int unused;
} drm_block_t;
typedef struct drm_control {
} func;
int irq;
typedef enum drm_map_type {
typedef enum drm_map_flags {
typedef struct drm_ctx_priv_map {
typedef struct drm_map {
unsigned long long handle;
} drm_map_t;
typedef struct drm_client {
} drm_client_t;
typedef struct drm_stats {
unsigned long count;
unsigned long value;
} drm_stats_t;
typedef enum drm_lock_flags {
typedef struct drm_lock {
int context;
} drm_lock_t;
* These values \e must match xf86drm.h.
typedef enum drm_dma_flags {
} drm_buf_flag;
typedef struct drm_buf_desc {
typedef struct drm_buf_info {
typedef struct drm_buf_free {
int count;
typedef struct drm_buf_pub {
typedef struct drm_buf_map {
#if defined(__cplusplus)
int fd;
typedef struct drm_dma {
} drm_dma_t;
typedef struct drm_ctx {
} drm_ctx_t;
typedef struct drm_ctx_res {
int count;
typedef struct drm_draw {
} drm_draw_t;
typedef struct drm_update_draw {
unsigned int type;
unsigned int num;
unsigned long long data;
typedef struct drm_auth {
} drm_auth_t;
typedef struct drm_irq_busid {
struct drm_wait_vblank_request {
unsigned int sequence;
unsigned long signal;
struct drm_wait_vblank_reply {
unsigned int sequence;
long tval_sec;
long tval_usec;
typedef union drm_wait_vblank {
typedef struct drm_agp_mode {
typedef struct drm_agp_buffer {
typedef struct drm_agp_binding {
typedef struct drm_agp_info {
int agp_version_major;
int agp_version_minor;
unsigned long mode;
unsigned long memory_used;
unsigned short id_vendor;
unsigned short id_device;
typedef struct drm_scatter_gather {
typedef struct drm_set_version {
int drm_di_major;
int drm_di_minor;
int drm_dd_major;
int drm_dd_minor;