OSDN Git Service

Eliminate support for fake buffers.
[android-x86/external-libdrm.git] / shared-core / xgi_drm.h
1 /****************************************************************************
2  * Copyright (C) 2003-2006 by XGI Technology, Taiwan.
3  *
4  * All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining
7  * a copy of this software and associated documentation files (the
8  * "Software"), to deal in the Software without restriction, including
9  * without limitation on the rights to use, copy, modify, merge,
10  * publish, distribute, sublicense, and/or sell copies of the Software,
11  * and to permit persons to whom the Software is furnished to do so,
12  * subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the
15  * next paragraph) shall be included in all copies or substantial
16  * portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NON-INFRINGEMENT.  IN NO EVENT SHALL XGI AND/OR
22  * ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25  * DEALINGS IN THE SOFTWARE.
26  ***************************************************************************/
27
28 #ifndef _XGI_DRM_H_
29 #define _XGI_DRM_H_
30
31 #include <linux/types.h>
32 #include <asm/ioctl.h>
33
34 struct drm_xgi_sarea {
35         __u16 device_id;
36         __u16 vendor_id;
37
38         char device_name[32];
39
40         unsigned int scrn_start;
41         unsigned int scrn_xres;
42         unsigned int scrn_yres;
43         unsigned int scrn_bpp;
44         unsigned int scrn_pitch;
45 };
46
47
48 struct xgi_bootstrap {
49         /**
50          * Size of PCI-e GART range in megabytes.
51          */
52         struct drm_map gart;
53 };
54
55
56 enum xgi_mem_location {
57         XGI_MEMLOC_NON_LOCAL = 0,
58         XGI_MEMLOC_LOCAL = 1,
59         XGI_MEMLOC_INVALID = 0x7fffffff
60 };
61
62 struct xgi_mem_alloc {
63         /**
64          * Memory region to be used for allocation.
65          * 
66          * Must be one of XGI_MEMLOC_NON_LOCAL or XGI_MEMLOC_LOCAL.
67          */
68         unsigned int location;
69
70         /**
71          * Number of bytes request.
72          * 
73          * On successful allocation, set to the actual number of bytes
74          * allocated.
75          */
76         unsigned int size;
77
78         /**
79          * Address of the memory from the graphics hardware's point of view.
80          */
81         __u32 hw_addr;
82
83         /**
84          * Offset of the allocation in the mapping.
85          */
86         __u32 offset;
87
88         /**
89          * Magic handle used to release memory.
90          * 
91          * See also DRM_XGI_FREE ioctl.
92          */
93         __u32 index;
94 };
95
96 enum xgi_batch_type {
97         BTYPE_2D = 0,
98         BTYPE_3D = 1,
99         BTYPE_FLIP = 2,
100         BTYPE_CTRL = 3,
101         BTYPE_NONE = 0x7fffffff
102 };
103
104 struct xgi_cmd_info {
105         __u32 type;
106         __u32 hw_addr;
107         __u32 size;
108         __u32 id;
109 };
110
111 struct xgi_state_info {
112         unsigned int _fromState;
113         unsigned int _toState;
114 };
115
116
117 /*
118  * Ioctl definitions
119  */
120
121 #define DRM_XGI_BOOTSTRAP           0
122 #define DRM_XGI_ALLOC               1
123 #define DRM_XGI_FREE                2
124 #define DRM_XGI_SUBMIT_CMDLIST      3
125 #define DRM_XGI_STATE_CHANGE        4
126
127 #define XGI_IOCTL_BOOTSTRAP         DRM_IOWR(DRM_COMMAND_BASE + DRM_XGI_BOOTSTRAP, struct xgi_bootstrap)
128 #define XGI_IOCTL_ALLOC             DRM_IOWR(DRM_COMMAND_BASE + DRM_XGI_ALLOC, struct xgi_mem_alloc)
129 #define XGI_IOCTL_FREE              DRM_IOW(DRM_COMMAND_BASE + DRM_XGI_FREE, __u32)
130 #define XGI_IOCTL_SUBMIT_CMDLIST    DRM_IOW(DRM_COMMAND_BASE + DRM_XGI_SUBMIT_CMDLIST, struct xgi_cmd_info)
131 #define XGI_IOCTL_STATE_CHANGE      DRM_IOW(DRM_COMMAND_BASE + DRM_XGI_STATE_CHANGE, struct xgi_state_info)
132
133 #endif /* _XGI_DRM_H_ */