1/****************************************************************************
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 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __FIMG2D_H
20#define __FIMG2D_H __FILE__
21#define FIMG2D_MAX_PLANES 2
22#define FIMG2D_IOCTL_MAGIC 'F'
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define FIMG2D_BITBLT_BLIT _IOWR(FIMG2D_IOCTL_MAGIC, 0, struct fimg2d_blit)
25#define FIMG2D_BITBLT_SYNC _IOW(FIMG2D_IOCTL_MAGIC, 1, int)
26#define FIMG2D_BITBLT_VERSION _IOR(FIMG2D_IOCTL_MAGIC, 2, struct fimg2d_version)
27struct fimg2d_version {
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 unsigned int hw;
30 unsigned int sw;
31};
32enum blit_sync {
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 BLIT_SYNC,
35 BLIT_ASYNC,
36};
37enum addr_space {
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 ADDR_NONE = 0,
40 ADDR_DMA_BUF,
41};
42enum pixel_order {
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 AX_RGB = 0,
45 RGB_AX,
46 AX_BGR,
47 BGR_AX,
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 ARGB_ORDER_END,
50 P1_CRY1CBY0,
51 P1_CBY1CRY0,
52 P1_Y1CRY0CB,
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 P1_Y1CBY0CR,
55 P1_ORDER_END,
56 P2_CRCB,
57 P2_CBCR,
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 P2_ORDER_END,
60};
61enum color_format {
62 CF_XRGB_8888 = 0,
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 CF_ARGB_8888,
65 CF_RGB_565,
66 CF_XRGB_1555,
67 CF_ARGB_1555,
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 CF_XRGB_4444,
70 CF_ARGB_4444,
71 CF_RGB_888,
72 CF_YCBCR_444,
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 CF_YCBCR_422,
75 CF_YCBCR_420,
76 CF_A8,
77 CF_L8,
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 SRC_DST_FORMAT_END,
80 CF_MSK_1BIT,
81 CF_MSK_4BIT,
82 CF_MSK_8BIT,
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 CF_MSK_16BIT_565,
85 CF_MSK_16BIT_1555,
86 CF_MSK_16BIT_4444,
87 CF_MSK_32BIT_8888,
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 MSK_FORMAT_END,
90};
91enum rotation {
92 ORIGIN,
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 ROT_90,
95 ROT_180,
96 ROT_270,
97 XFLIP,
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 YFLIP,
100};
101enum repeat {
102 NO_REPEAT = 0,
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 REPEAT_NORMAL,
105 REPEAT_PAD,
106 REPEAT_REFLECT, REPEAT_MIRROR = REPEAT_REFLECT,
107 REPEAT_CLAMP,
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109};
110enum scaling {
111 NO_SCALING,
112 SCALING_NEAREST,
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 SCALING_BILINEAR,
115};
116enum scaling_factor {
117 SCALING_PIXELS,
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 SCALING_RATIO,
120};
121enum premultiplied {
122 PREMULTIPLIED,
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 NON_PREMULTIPLIED,
125};
126enum bluescreen {
127 OPAQUE,
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 TRANSP,
130 BLUSCR,
131};
132enum blit_op {
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 BLIT_OP_SOLID_FILL = 0,
135 BLIT_OP_CLR,
136 BLIT_OP_SRC, BLIT_OP_SRC_COPY = BLIT_OP_SRC,
137 BLIT_OP_DST,
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 BLIT_OP_SRC_OVER,
140 BLIT_OP_DST_OVER, BLIT_OP_OVER_REV = BLIT_OP_DST_OVER,
141 BLIT_OP_SRC_IN,
142 BLIT_OP_DST_IN, BLIT_OP_IN_REV = BLIT_OP_DST_IN,
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 BLIT_OP_SRC_OUT,
145 BLIT_OP_DST_OUT, BLIT_OP_OUT_REV = BLIT_OP_DST_OUT,
146 BLIT_OP_SRC_ATOP,
147 BLIT_OP_DST_ATOP, BLIT_OP_ATOP_REV = BLIT_OP_DST_ATOP,
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 BLIT_OP_XOR,
150 BLIT_OP_ADD,
151 BLIT_OP_MULTIPLY,
152 BLIT_OP_SCREEN,
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 BLIT_OP_DARKEN,
155 BLIT_OP_LIGHTEN,
156 BLIT_OP_DISJ_SRC_OVER,
157 BLIT_OP_DISJ_DST_OVER, BLIT_OP_SATURATE = BLIT_OP_DISJ_DST_OVER,
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 BLIT_OP_DISJ_SRC_IN,
160 BLIT_OP_DISJ_DST_IN, BLIT_OP_DISJ_IN_REV = BLIT_OP_DISJ_DST_IN,
161 BLIT_OP_DISJ_SRC_OUT,
162 BLIT_OP_DISJ_DST_OUT, BLIT_OP_DISJ_OUT_REV = BLIT_OP_DISJ_DST_OUT,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 BLIT_OP_DISJ_SRC_ATOP,
165 BLIT_OP_DISJ_DST_ATOP, BLIT_OP_DISJ_ATOP_REV = BLIT_OP_DISJ_DST_ATOP,
166 BLIT_OP_DISJ_XOR,
167 BLIT_OP_CONJ_SRC_OVER,
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 BLIT_OP_CONJ_DST_OVER, BLIT_OP_CONJ_OVER_REV = BLIT_OP_CONJ_DST_OVER,
170 BLIT_OP_CONJ_SRC_IN,
171 BLIT_OP_CONJ_DST_IN, BLIT_OP_CONJ_IN_REV = BLIT_OP_CONJ_DST_IN,
172 BLIT_OP_CONJ_SRC_OUT,
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 BLIT_OP_CONJ_DST_OUT, BLIT_OP_CONJ_OUT_REV = BLIT_OP_CONJ_DST_OUT,
175 BLIT_OP_CONJ_SRC_ATOP,
176 BLIT_OP_CONJ_DST_ATOP, BLIT_OP_CONJ_ATOP_REV = BLIT_OP_CONJ_DST_ATOP,
177 BLIT_OP_CONJ_XOR,
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 BLIT_OP_USER_COEFF,
180 BLIT_OP_USER_SRC_GA,
181 BLIT_OP_END,
182};
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184#define MAX_FIMG2D_BLIT_OP (int)BLIT_OP_END
185struct fimg2d_addr {
186 enum addr_space type;
187 int fd[FIMG2D_MAX_PLANES];
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189};
190struct fimg2d_rect {
191 int x1;
192 int y1;
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194 int x2;
195 int y2;
196};
197struct fimg2d_scale {
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 enum scaling mode;
200 int src_w, src_h;
201 int dst_w, dst_h;
202};
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204struct fimg2d_clip {
205 __u32 enable;
206 int x1;
207 int y1;
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 int x2;
210 int y2;
211};
212struct fimg2d_repeat {
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 enum repeat mode;
215 unsigned long pad_color;
216};
217struct fimg2d_bluscr {
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 enum bluescreen mode;
220 unsigned long bs_color;
221 unsigned long bg_color;
222};
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224struct fimg2d_image {
225 int width;
226 int height;
227 int stride;
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 enum pixel_order order;
230 enum color_format fmt;
231 struct fimg2d_addr addr;
232 struct fimg2d_rect rect;
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234};
235struct fimg2d_param {
236 unsigned long solid_color;
237 unsigned char g_alpha;
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 __u32 dither;
240 enum rotation rotate;
241 enum premultiplied premult;
242 struct fimg2d_scale scaling;
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 struct fimg2d_repeat repeat;
245 struct fimg2d_bluscr bluscr;
246 struct fimg2d_clip clipping;
247};
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249struct fimg2d_blit {
250 enum blit_op op;
251 struct fimg2d_param param;
252 struct fimg2d_image *src;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 struct fimg2d_image *msk;
255 struct fimg2d_image *tmp;
256 struct fimg2d_image *dst;
257 enum blit_sync sync;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 unsigned int seq_no;
260};
261#endif
262
263