fb.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. #ifndef _LINUX_FB_H
  2. #define _LINUX_FB_H
  3. #include <stdint.h>
  4. #include <sys/ioctl.h>
  5. struct dentry;
  6. #define FB_MAX 32
  7. #define FBIOGET_VSCREENINFO 0x4600
  8. #define FBIOPUT_VSCREENINFO 0x4601
  9. #define FBIOGET_FSCREENINFO 0x4602
  10. #define FBIOGETCMAP 0x4604
  11. #define FBIOPUTCMAP 0x4605
  12. #define FBIOPAN_DISPLAY 0x4606
  13. #define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
  14. #define FBIOGET_CON2FBMAP 0x460F
  15. #define FBIOPUT_CON2FBMAP 0x4610
  16. #define FBIOBLANK 0x4611
  17. #define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
  18. #define FBIO_ALLOC 0x4613
  19. #define FBIO_FREE 0x4614
  20. #define FBIOGET_GLYPH 0x4615
  21. #define FBIOGET_HWCINFO 0x4616
  22. #define FBIOPUT_MODEINFO 0x4617
  23. #define FBIOGET_DISPINFO 0x4618
  24. #define FB_TYPE_PACKED_PIXELS 0
  25. #define FB_TYPE_PLANES 1
  26. #define FB_TYPE_INTERLEAVED_PLANES 2
  27. #define FB_TYPE_TEXT 3
  28. #define FB_TYPE_VGA_PLANES 4
  29. #define FB_AUX_TEXT_MDA 0
  30. #define FB_AUX_TEXT_CGA 1
  31. #define FB_AUX_TEXT_S3_MMIO 2
  32. #define FB_AUX_TEXT_MGA_STEP16 3
  33. #define FB_AUX_TEXT_MGA_STEP8 4
  34. #define FB_AUX_TEXT_SVGA_GROUP 8
  35. #define FB_AUX_TEXT_SVGA_MASK 7
  36. #define FB_AUX_TEXT_SVGA_STEP2 8
  37. #define FB_AUX_TEXT_SVGA_STEP4 9
  38. #define FB_AUX_TEXT_SVGA_STEP8 10
  39. #define FB_AUX_TEXT_SVGA_STEP16 11
  40. #define FB_AUX_TEXT_SVGA_LAST 15
  41. #define FB_AUX_VGA_PLANES_VGA4 0
  42. #define FB_AUX_VGA_PLANES_CFB4 1
  43. #define FB_AUX_VGA_PLANES_CFB8 2
  44. #define FB_VISUAL_MONO01 0
  45. #define FB_VISUAL_MONO10 1
  46. #define FB_VISUAL_TRUECOLOR 2
  47. #define FB_VISUAL_PSEUDOCOLOR 3
  48. #define FB_VISUAL_DIRECTCOLOR 4
  49. #define FB_VISUAL_STATIC_PSEUDOCOLOR 5
  50. #define FB_ACCEL_NONE 0
  51. #define FB_ACCEL_ATARIBLITT 1
  52. #define FB_ACCEL_AMIGABLITT 2
  53. #define FB_ACCEL_S3_TRIO64 3
  54. #define FB_ACCEL_NCR_77C32BLT 4
  55. #define FB_ACCEL_S3_VIRGE 5
  56. #define FB_ACCEL_ATI_MACH64GX 6
  57. #define FB_ACCEL_DEC_TGA 7
  58. #define FB_ACCEL_ATI_MACH64CT 8
  59. #define FB_ACCEL_ATI_MACH64VT 9
  60. #define FB_ACCEL_ATI_MACH64GT 10
  61. #define FB_ACCEL_SUN_CREATOR 11
  62. #define FB_ACCEL_SUN_CGSIX 12
  63. #define FB_ACCEL_SUN_LEO 13
  64. #define FB_ACCEL_IMS_TWINTURBO 14
  65. #define FB_ACCEL_3DLABS_PERMEDIA2 15
  66. #define FB_ACCEL_MATROX_MGA2064W 16
  67. #define FB_ACCEL_MATROX_MGA1064SG 17
  68. #define FB_ACCEL_MATROX_MGA2164W 18
  69. #define FB_ACCEL_MATROX_MGA2164W_AGP 19
  70. #define FB_ACCEL_MATROX_MGAG100 20
  71. #define FB_ACCEL_MATROX_MGAG200 21
  72. #define FB_ACCEL_SUN_CG14 22
  73. #define FB_ACCEL_SUN_BWTWO 23
  74. #define FB_ACCEL_SUN_CGTHREE 24
  75. #define FB_ACCEL_SUN_TCX 25
  76. #define FB_ACCEL_MATROX_MGAG400 26
  77. #define FB_ACCEL_NV3 27
  78. #define FB_ACCEL_NV4 28
  79. #define FB_ACCEL_NV5 29
  80. #define FB_ACCEL_CT_6555x 30
  81. #define FB_ACCEL_3DFX_BANSHEE 31
  82. #define FB_ACCEL_ATI_RAGE128 32
  83. #define FB_ACCEL_IGS_CYBER2000 33
  84. #define FB_ACCEL_IGS_CYBER2010 34
  85. #define FB_ACCEL_IGS_CYBER5000 35
  86. #define FB_ACCEL_SIS_GLAMOUR 36
  87. #define FB_ACCEL_3DLABS_PERMEDIA3 37
  88. #define FB_ACCEL_ATI_RADEON 38
  89. #define FB_ACCEL_I810 39
  90. #define FB_ACCEL_SIS_GLAMOUR_2 40
  91. #define FB_ACCEL_SIS_XABRE 41
  92. #define FB_ACCEL_I830 42
  93. #define FB_ACCEL_NV_10 43
  94. #define FB_ACCEL_NV_20 44
  95. #define FB_ACCEL_NV_30 45
  96. #define FB_ACCEL_NV_40 46
  97. #define FB_ACCEL_XGI_VOLARI_V 47
  98. #define FB_ACCEL_XGI_VOLARI_Z 48
  99. #define FB_ACCEL_OMAP1610 49
  100. #define FB_ACCEL_TRIDENT_TGUI 50
  101. #define FB_ACCEL_TRIDENT_3DIMAGE 51
  102. #define FB_ACCEL_TRIDENT_BLADE3D 52
  103. #define FB_ACCEL_TRIDENT_BLADEXP 53
  104. #define FB_ACCEL_CIRRUS_ALPINE 53
  105. #define FB_ACCEL_NEOMAGIC_NM2070 90
  106. #define FB_ACCEL_NEOMAGIC_NM2090 91
  107. #define FB_ACCEL_NEOMAGIC_NM2093 92
  108. #define FB_ACCEL_NEOMAGIC_NM2097 93
  109. #define FB_ACCEL_NEOMAGIC_NM2160 94
  110. #define FB_ACCEL_NEOMAGIC_NM2200 95
  111. #define FB_ACCEL_NEOMAGIC_NM2230 96
  112. #define FB_ACCEL_NEOMAGIC_NM2360 97
  113. #define FB_ACCEL_NEOMAGIC_NM2380 98
  114. #define FB_ACCEL_SAVAGE4 0x80
  115. #define FB_ACCEL_SAVAGE3D 0x81
  116. #define FB_ACCEL_SAVAGE3D_MV 0x82
  117. #define FB_ACCEL_SAVAGE2000 0x83
  118. #define FB_ACCEL_SAVAGE_MX_MV 0x84
  119. #define FB_ACCEL_SAVAGE_MX 0x85
  120. #define FB_ACCEL_SAVAGE_IX_MV 0x86
  121. #define FB_ACCEL_SAVAGE_IX 0x87
  122. #define FB_ACCEL_PROSAVAGE_PM 0x88
  123. #define FB_ACCEL_PROSAVAGE_KM 0x89
  124. #define FB_ACCEL_S3TWISTER_P 0x8a
  125. #define FB_ACCEL_S3TWISTER_K 0x8b
  126. #define FB_ACCEL_SUPERSAVAGE 0x8c
  127. #define FB_ACCEL_PROSAVAGE_DDR 0x8d
  128. #define FB_ACCEL_PROSAVAGE_DDRK 0x8e
  129. struct fb_fix_screeninfo {
  130. char id[16];
  131. unsigned long smem_start;
  132. uint32_t smem_len;
  133. uint32_t type;
  134. uint32_t type_aux;
  135. uint32_t visual;
  136. uint16_t xpanstep;
  137. uint16_t ypanstep;
  138. uint16_t ywrapstep;
  139. uint32_t line_length;
  140. unsigned long mmio_start;
  141. uint32_t mmio_len;
  142. uint32_t accel;
  143. uint16_t reserved[3];
  144. };
  145. struct fb_bitfield {
  146. uint32_t offset;
  147. uint32_t length;
  148. uint32_t msb_right;
  149. };
  150. #define FB_NONSTD_HAM 1
  151. #define FB_NONSTD_REV_PIX_IN_B 2
  152. #define FB_ACTIVATE_NOW 0
  153. #define FB_ACTIVATE_NXTOPEN 1
  154. #define FB_ACTIVATE_TEST 2
  155. #define FB_ACTIVATE_MASK 15
  156. #define FB_ACTIVATE_VBL 16
  157. #define FB_CHANGE_CMAP_VBL 32
  158. #define FB_ACTIVATE_ALL 64
  159. #define FB_ACTIVATE_FORCE 128
  160. #define FB_ACTIVATE_INV_MODE 256
  161. #define FB_ACCELF_TEXT 1
  162. #define FB_SYNC_HOR_HIGH_ACT 1
  163. #define FB_SYNC_VERT_HIGH_ACT 2
  164. #define FB_SYNC_EXT 4
  165. #define FB_SYNC_COMP_HIGH_ACT 8
  166. #define FB_SYNC_BROADCAST 16
  167. #define FB_SYNC_ON_GREEN 32
  168. #define FB_VMODE_NONINTERLACED 0
  169. #define FB_VMODE_INTERLACED 1
  170. #define FB_VMODE_DOUBLE 2
  171. #define FB_VMODE_ODD_FLD_FIRST 4
  172. #define FB_VMODE_MASK 255
  173. #define FB_VMODE_YWRAP 256
  174. #define FB_VMODE_SMOOTH_XPAN 512
  175. #define FB_VMODE_CONUPDATE 512
  176. #define FB_ROTATE_UR 0
  177. #define FB_ROTATE_CW 1
  178. #define FB_ROTATE_UD 2
  179. #define FB_ROTATE_CCW 3
  180. #define PICOS2KHZ(a) (1000000000UL/(a))
  181. #define KHZ2PICOS(a) (1000000000UL/(a))
  182. struct fb_var_screeninfo {
  183. uint32_t xres;
  184. uint32_t yres;
  185. uint32_t xres_virtual;
  186. uint32_t yres_virtual;
  187. uint32_t xoffset;
  188. uint32_t yoffset;
  189. uint32_t bits_per_pixel;
  190. uint32_t grayscale;
  191. struct fb_bitfield red;
  192. struct fb_bitfield green;
  193. struct fb_bitfield blue;
  194. struct fb_bitfield transp;
  195. uint32_t nonstd;
  196. uint32_t activate;
  197. uint32_t height;
  198. uint32_t width;
  199. uint32_t accel_flags;
  200. uint32_t pixclock;
  201. uint32_t left_margin;
  202. uint32_t right_margin;
  203. uint32_t upper_margin;
  204. uint32_t lower_margin;
  205. uint32_t hsync_len;
  206. uint32_t vsync_len;
  207. uint32_t sync;
  208. uint32_t vmode;
  209. uint32_t rotate;
  210. uint32_t reserved[5];
  211. };
  212. struct fb_cmap {
  213. uint32_t start;
  214. uint32_t len;
  215. uint16_t *red;
  216. uint16_t *green;
  217. uint16_t *blue;
  218. uint16_t *transp;
  219. };
  220. struct fb_con2fbmap {
  221. uint32_t console;
  222. uint32_t framebuffer;
  223. };
  224. #define VESA_NO_BLANKING 0
  225. #define VESA_VSYNC_SUSPEND 1
  226. #define VESA_HSYNC_SUSPEND 2
  227. #define VESA_POWERDOWN 3
  228. #define FB_BLANK_UNBLANK VESA_NO_BLANKING
  229. #define FB_BLANK_NORMAL (VESA_NO_BLANKING + 1)
  230. #define FB_BLANK_VSYNC_SUSPEND (VESA_VSYNC_SUSPEND + 1)
  231. #define FB_BLANK_HSYNC_SUSPEND (VESA_HSYNC_SUSPEND + 1)
  232. #define FB_BLANK_POWERDOWN (VESA_POWERDOWN + 1)
  233. #define FB_VBLANK_VBLANKING 0x001
  234. #define FB_VBLANK_HBLANKING 0x002
  235. #define FB_VBLANK_HAVE_VBLANK 0x004
  236. #define FB_VBLANK_HAVE_HBLANK 0x008
  237. #define FB_VBLANK_HAVE_COUNT 0x010
  238. #define FB_VBLANK_HAVE_VCOUNT 0x020
  239. #define FB_VBLANK_HAVE_HCOUNT 0x040
  240. #define FB_VBLANK_VSYNCING 0x080
  241. #define FB_VBLANK_HAVE_VSYNC 0x100
  242. struct fb_vblank {
  243. uint32_t flags;
  244. uint32_t count;
  245. uint32_t vcount;
  246. uint32_t hcount;
  247. uint32_t reserved[4];
  248. };
  249. #define ROP_COPY 0
  250. #define ROP_XOR 1
  251. struct fb_copyarea {
  252. uint32_t dx;
  253. uint32_t dy;
  254. uint32_t width;
  255. uint32_t height;
  256. uint32_t sx;
  257. uint32_t sy;
  258. };
  259. struct fb_fillrect {
  260. uint32_t dx;
  261. uint32_t dy;
  262. uint32_t width;
  263. uint32_t height;
  264. uint32_t color;
  265. uint32_t rop;
  266. };
  267. struct fb_image {
  268. uint32_t dx;
  269. uint32_t dy;
  270. uint32_t width;
  271. uint32_t height;
  272. uint32_t fg_color;
  273. uint32_t bg_color;
  274. uint8_t depth;
  275. const char *data;
  276. struct fb_cmap cmap;
  277. };
  278. #define FB_CUR_SETIMAGE 0x01
  279. #define FB_CUR_SETPOS 0x02
  280. #define FB_CUR_SETHOT 0x04
  281. #define FB_CUR_SETCMAP 0x08
  282. #define FB_CUR_SETSHAPE 0x10
  283. #define FB_CUR_SETSIZE 0x20
  284. #define FB_CUR_SETALL 0xFF
  285. struct fbcurpos {
  286. uint16_t x, y;
  287. };
  288. struct fb_cursor {
  289. uint16_t set;
  290. uint16_t enable;
  291. uint16_t rop;
  292. const char *mask;
  293. struct fbcurpos hot;
  294. struct fb_image image;
  295. };
  296. #define FB_BACKLIGHT_LEVELS 128
  297. #define FB_BACKLIGHT_MAX 0xFF
  298. #endif