blob: 8386327c17e1152737e89057159357eb0eb0b578 [file] [log] [blame]
Dima Zavin81fa6d52009-08-05 17:51:29 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _MSM_KGSL_H
13#define _MSM_KGSL_H
14
15#define KGSL_CONTEXT_SAVE_GMEM 1
16#define KGSL_CONTEXT_NO_GMEM_ALLOC 2
17
18#define KGSL_FLAGS_NORMALMODE 0x00000000
19#define KGSL_FLAGS_SAFEMODE 0x00000001
20#define KGSL_FLAGS_INITIALIZED0 0x00000002
21#define KGSL_FLAGS_INITIALIZED 0x00000004
22#define KGSL_FLAGS_STARTED 0x00000008
23#define KGSL_FLAGS_ACTIVE 0x00000010
24#define KGSL_FLAGS_RESERVED0 0x00000020
25#define KGSL_FLAGS_RESERVED1 0x00000040
26#define KGSL_FLAGS_RESERVED2 0x00000080
27
28enum kgsl_deviceid {
29 KGSL_DEVICE_ANY = 0x00000000,
30 KGSL_DEVICE_YAMATO = 0x00000001,
31 KGSL_DEVICE_G12 = 0x00000002,
32 KGSL_DEVICE_MAX = 0x00000002
33};
34
35struct kgsl_devinfo {
36
37 unsigned int device_id;
38
39 unsigned int chip_id;
40 unsigned int mmu_enabled;
41 unsigned int gmem_gpubaseaddr;
42
43 unsigned int gmem_hostbaseaddr;
44 unsigned int gmem_sizebytes;
45};
46
47struct kgsl_devmemstore {
48 volatile unsigned int soptimestamp;
49 unsigned int sbz;
50 volatile unsigned int eoptimestamp;
51 unsigned int sbz2;
52};
53
54#define KGSL_DEVICE_MEMSTORE_OFFSET(field) offsetof(struct kgsl_devmemstore, field)
55
56enum kgsl_timestamp_type {
57 KGSL_TIMESTAMP_CONSUMED = 0x00000001,
58 KGSL_TIMESTAMP_RETIRED = 0x00000002,
59 KGSL_TIMESTAMP_MAX = 0x00000002,
60};
61
62enum kgsl_property_type {
63 KGSL_PROP_DEVICE_INFO = 0x00000001,
64 KGSL_PROP_DEVICE_SHADOW = 0x00000002,
65};
66
67struct kgsl_shadowprop {
68 unsigned int gpuaddr;
69 unsigned int size;
70 unsigned int flags;
71};
72
73#define KGSL_IOC_TYPE 0x09
74
75struct kgsl_device_getproperty {
76 unsigned int type;
77 void *value;
78 unsigned int sizebytes;
79};
80
81#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
82
83struct kgsl_device_regread {
84 unsigned int offsetwords;
85 unsigned int value;
86};
87
88#define IOCTL_KGSL_DEVICE_REGREAD _IOWR(KGSL_IOC_TYPE, 0x3, struct kgsl_device_regread)
89
90struct kgsl_device_waittimestamp {
91 unsigned int timestamp;
92 unsigned int timeout;
93};
94
95#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
96
97struct kgsl_ringbuffer_issueibcmds {
98 unsigned int drawctxt_id;
99 unsigned int ibaddr;
100 unsigned int sizedwords;
101 unsigned int timestamp;
102 unsigned int flags;
103};
104
105#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
106
107struct kgsl_ringbuffer_readtimestamp {
108 unsigned int type;
109 unsigned int timestamp;
110};
111
112#define IOCTL_KGSL_RINGBUFFER_READTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_ringbuffer_readtimestamp)
113
114struct kgsl_ringbuffer_freememontimestamp {
115 unsigned int gpuaddr;
116 unsigned int type;
117 unsigned int timestamp;
118};
119
120#define IOCTL_KGSL_RINGBUFFER_FREEMEMONTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_ringbuffer_freememontimestamp)
121
122struct kgsl_drawctxt_create {
123 unsigned int flags;
124 unsigned int drawctxt_id;
125};
126
127#define IOCTL_KGSL_DRAWCTXT_CREATE _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
128
129struct kgsl_drawctxt_destroy {
130 unsigned int drawctxt_id;
131};
132
133#define IOCTL_KGSL_DRAWCTXT_DESTROY _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
134
135struct kgsl_sharedmem_from_pmem {
136 int pmem_fd;
137 unsigned int gpuaddr;
138};
139
140#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
141
142struct kgsl_sharedmem_free {
143 unsigned int gpuaddr;
144};
145
146#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
147
148#endif
149