From 56fd65e861e0ad0ea7677211f8258a8f64233f26 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 18 Mar 2011 21:53:30 -0400 Subject: [PATCH] some linux headers useful from user apps. i'm still not sure whether it's a good idea to include or use any of these, but i'll add them for now. it may make more sense to just add official kernel headers to the include path for compiling programs that need them. --- include/linux/fb.h | 341 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/kd.h | 157 +++++++++++++++++++++ include/linux/vt.h | 52 +++++++ 3 files changed, 550 insertions(+) create mode 100644 include/linux/fb.h create mode 100644 include/linux/kd.h create mode 100644 include/linux/vt.h diff --git a/include/linux/fb.h b/include/linux/fb.h new file mode 100644 index 00000000..3571ee7c --- /dev/null +++ b/include/linux/fb.h @@ -0,0 +1,341 @@ +#ifndef _LINUX_FB_H +#define _LINUX_FB_H + +#include +#include + +struct dentry; + +#define FB_MAX 32 + +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 +#define FBIOGETCMAP 0x4604 +#define FBIOPUTCMAP 0x4605 +#define FBIOPAN_DISPLAY 0x4606 +#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor) +#define FBIOGET_CON2FBMAP 0x460F +#define FBIOPUT_CON2FBMAP 0x4610 +#define FBIOBLANK 0x4611 +#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank) +#define FBIO_ALLOC 0x4613 +#define FBIO_FREE 0x4614 +#define FBIOGET_GLYPH 0x4615 +#define FBIOGET_HWCINFO 0x4616 +#define FBIOPUT_MODEINFO 0x4617 +#define FBIOGET_DISPINFO 0x4618 + +#define FB_TYPE_PACKED_PIXELS 0 +#define FB_TYPE_PLANES 1 +#define FB_TYPE_INTERLEAVED_PLANES 2 +#define FB_TYPE_TEXT 3 +#define FB_TYPE_VGA_PLANES 4 + +#define FB_AUX_TEXT_MDA 0 +#define FB_AUX_TEXT_CGA 1 +#define FB_AUX_TEXT_S3_MMIO 2 +#define FB_AUX_TEXT_MGA_STEP16 3 +#define FB_AUX_TEXT_MGA_STEP8 4 +#define FB_AUX_TEXT_SVGA_GROUP 8 +#define FB_AUX_TEXT_SVGA_MASK 7 +#define FB_AUX_TEXT_SVGA_STEP2 8 +#define FB_AUX_TEXT_SVGA_STEP4 9 +#define FB_AUX_TEXT_SVGA_STEP8 10 +#define FB_AUX_TEXT_SVGA_STEP16 11 +#define FB_AUX_TEXT_SVGA_LAST 15 + +#define FB_AUX_VGA_PLANES_VGA4 0 +#define FB_AUX_VGA_PLANES_CFB4 1 +#define FB_AUX_VGA_PLANES_CFB8 2 + +#define FB_VISUAL_MONO01 0 +#define FB_VISUAL_MONO10 1 +#define FB_VISUAL_TRUECOLOR 2 +#define FB_VISUAL_PSEUDOCOLOR 3 +#define FB_VISUAL_DIRECTCOLOR 4 +#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 + +#define FB_ACCEL_NONE 0 +#define FB_ACCEL_ATARIBLITT 1 +#define FB_ACCEL_AMIGABLITT 2 +#define FB_ACCEL_S3_TRIO64 3 +#define FB_ACCEL_NCR_77C32BLT 4 +#define FB_ACCEL_S3_VIRGE 5 +#define FB_ACCEL_ATI_MACH64GX 6 +#define FB_ACCEL_DEC_TGA 7 +#define FB_ACCEL_ATI_MACH64CT 8 +#define FB_ACCEL_ATI_MACH64VT 9 +#define FB_ACCEL_ATI_MACH64GT 10 +#define FB_ACCEL_SUN_CREATOR 11 +#define FB_ACCEL_SUN_CGSIX 12 +#define FB_ACCEL_SUN_LEO 13 +#define FB_ACCEL_IMS_TWINTURBO 14 +#define FB_ACCEL_3DLABS_PERMEDIA2 15 +#define FB_ACCEL_MATROX_MGA2064W 16 +#define FB_ACCEL_MATROX_MGA1064SG 17 +#define FB_ACCEL_MATROX_MGA2164W 18 +#define FB_ACCEL_MATROX_MGA2164W_AGP 19 +#define FB_ACCEL_MATROX_MGAG100 20 +#define FB_ACCEL_MATROX_MGAG200 21 +#define FB_ACCEL_SUN_CG14 22 +#define FB_ACCEL_SUN_BWTWO 23 +#define FB_ACCEL_SUN_CGTHREE 24 +#define FB_ACCEL_SUN_TCX 25 +#define FB_ACCEL_MATROX_MGAG400 26 +#define FB_ACCEL_NV3 27 +#define FB_ACCEL_NV4 28 +#define FB_ACCEL_NV5 29 +#define FB_ACCEL_CT_6555x 30 +#define FB_ACCEL_3DFX_BANSHEE 31 +#define FB_ACCEL_ATI_RAGE128 32 +#define FB_ACCEL_IGS_CYBER2000 33 +#define FB_ACCEL_IGS_CYBER2010 34 +#define FB_ACCEL_IGS_CYBER5000 35 +#define FB_ACCEL_SIS_GLAMOUR 36 +#define FB_ACCEL_3DLABS_PERMEDIA3 37 +#define FB_ACCEL_ATI_RADEON 38 +#define FB_ACCEL_I810 39 +#define FB_ACCEL_SIS_GLAMOUR_2 40 +#define FB_ACCEL_SIS_XABRE 41 +#define FB_ACCEL_I830 42 +#define FB_ACCEL_NV_10 43 +#define FB_ACCEL_NV_20 44 +#define FB_ACCEL_NV_30 45 +#define FB_ACCEL_NV_40 46 +#define FB_ACCEL_XGI_VOLARI_V 47 +#define FB_ACCEL_XGI_VOLARI_Z 48 +#define FB_ACCEL_OMAP1610 49 +#define FB_ACCEL_TRIDENT_TGUI 50 +#define FB_ACCEL_TRIDENT_3DIMAGE 51 +#define FB_ACCEL_TRIDENT_BLADE3D 52 +#define FB_ACCEL_TRIDENT_BLADEXP 53 +#define FB_ACCEL_CIRRUS_ALPINE 53 +#define FB_ACCEL_NEOMAGIC_NM2070 90 +#define FB_ACCEL_NEOMAGIC_NM2090 91 +#define FB_ACCEL_NEOMAGIC_NM2093 92 +#define FB_ACCEL_NEOMAGIC_NM2097 93 +#define FB_ACCEL_NEOMAGIC_NM2160 94 +#define FB_ACCEL_NEOMAGIC_NM2200 95 +#define FB_ACCEL_NEOMAGIC_NM2230 96 +#define FB_ACCEL_NEOMAGIC_NM2360 97 +#define FB_ACCEL_NEOMAGIC_NM2380 98 + +#define FB_ACCEL_SAVAGE4 0x80 +#define FB_ACCEL_SAVAGE3D 0x81 +#define FB_ACCEL_SAVAGE3D_MV 0x82 +#define FB_ACCEL_SAVAGE2000 0x83 +#define FB_ACCEL_SAVAGE_MX_MV 0x84 +#define FB_ACCEL_SAVAGE_MX 0x85 +#define FB_ACCEL_SAVAGE_IX_MV 0x86 +#define FB_ACCEL_SAVAGE_IX 0x87 +#define FB_ACCEL_PROSAVAGE_PM 0x88 +#define FB_ACCEL_PROSAVAGE_KM 0x89 +#define FB_ACCEL_S3TWISTER_P 0x8a +#define FB_ACCEL_S3TWISTER_K 0x8b +#define FB_ACCEL_SUPERSAVAGE 0x8c +#define FB_ACCEL_PROSAVAGE_DDR 0x8d +#define FB_ACCEL_PROSAVAGE_DDRK 0x8e + +struct fb_fix_screeninfo { + char id[16]; + unsigned long smem_start; + uint32_t smem_len; + uint32_t type; + uint32_t type_aux; + uint32_t visual; + uint16_t xpanstep; + uint16_t ypanstep; + uint16_t ywrapstep; + uint32_t line_length; + unsigned long mmio_start; + uint32_t mmio_len; + uint32_t accel; + uint16_t reserved[3]; +}; + +struct fb_bitfield { + uint32_t offset; + uint32_t length; + uint32_t msb_right; +}; + +#define FB_NONSTD_HAM 1 +#define FB_NONSTD_REV_PIX_IN_B 2 + +#define FB_ACTIVATE_NOW 0 +#define FB_ACTIVATE_NXTOPEN 1 +#define FB_ACTIVATE_TEST 2 +#define FB_ACTIVATE_MASK 15 +#define FB_ACTIVATE_VBL 16 +#define FB_CHANGE_CMAP_VBL 32 +#define FB_ACTIVATE_ALL 64 +#define FB_ACTIVATE_FORCE 128 +#define FB_ACTIVATE_INV_MODE 256 + +#define FB_ACCELF_TEXT 1 + +#define FB_SYNC_HOR_HIGH_ACT 1 +#define FB_SYNC_VERT_HIGH_ACT 2 +#define FB_SYNC_EXT 4 +#define FB_SYNC_COMP_HIGH_ACT 8 +#define FB_SYNC_BROADCAST 16 +#define FB_SYNC_ON_GREEN 32 + +#define FB_VMODE_NONINTERLACED 0 +#define FB_VMODE_INTERLACED 1 +#define FB_VMODE_DOUBLE 2 +#define FB_VMODE_ODD_FLD_FIRST 4 +#define FB_VMODE_MASK 255 + +#define FB_VMODE_YWRAP 256 +#define FB_VMODE_SMOOTH_XPAN 512 +#define FB_VMODE_CONUPDATE 512 + +#define FB_ROTATE_UR 0 +#define FB_ROTATE_CW 1 +#define FB_ROTATE_UD 2 +#define FB_ROTATE_CCW 3 + +#define PICOS2KHZ(a) (1000000000UL/(a)) +#define KHZ2PICOS(a) (1000000000UL/(a)) + +struct fb_var_screeninfo { + uint32_t xres; + uint32_t yres; + uint32_t xres_virtual; + uint32_t yres_virtual; + uint32_t xoffset; + uint32_t yoffset; + + uint32_t bits_per_pixel; + uint32_t grayscale; + + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + + uint32_t nonstd; + + uint32_t activate; + + uint32_t height; + uint32_t width; + + uint32_t accel_flags; + + uint32_t pixclock; + uint32_t left_margin; + uint32_t right_margin; + uint32_t upper_margin; + uint32_t lower_margin; + uint32_t hsync_len; + uint32_t vsync_len; + uint32_t sync; + uint32_t vmode; + uint32_t rotate; + uint32_t reserved[5]; +}; + +struct fb_cmap { + uint32_t start; + uint32_t len; + uint16_t *red; + uint16_t *green; + uint16_t *blue; + uint16_t *transp; +}; + +struct fb_con2fbmap { + uint32_t console; + uint32_t framebuffer; +}; + +#define VESA_NO_BLANKING 0 +#define VESA_VSYNC_SUSPEND 1 +#define VESA_HSYNC_SUSPEND 2 +#define VESA_POWERDOWN 3 + +#define FB_BLANK_UNBLANK VESA_NO_BLANKING +#define FB_BLANK_NORMAL (VESA_NO_BLANKING + 1) +#define FB_BLANK_VSYNC_SUSPEND (VESA_VSYNC_SUSPEND + 1) +#define FB_BLANK_HSYNC_SUSPEND (VESA_HSYNC_SUSPEND + 1) +#define FB_BLANK_POWERDOWN (VESA_POWERDOWN + 1) + +#define FB_VBLANK_VBLANKING 0x001 +#define FB_VBLANK_HBLANKING 0x002 +#define FB_VBLANK_HAVE_VBLANK 0x004 +#define FB_VBLANK_HAVE_HBLANK 0x008 +#define FB_VBLANK_HAVE_COUNT 0x010 +#define FB_VBLANK_HAVE_VCOUNT 0x020 +#define FB_VBLANK_HAVE_HCOUNT 0x040 +#define FB_VBLANK_VSYNCING 0x080 +#define FB_VBLANK_HAVE_VSYNC 0x100 + +struct fb_vblank { + uint32_t flags; + uint32_t count; + uint32_t vcount; + uint32_t hcount; + uint32_t reserved[4]; +}; + +#define ROP_COPY 0 +#define ROP_XOR 1 + +struct fb_copyarea { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t sx; + uint32_t sy; +}; + +struct fb_fillrect { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t color; + uint32_t rop; +}; + +struct fb_image { + uint32_t dx; + uint32_t dy; + uint32_t width; + uint32_t height; + uint32_t fg_color; + uint32_t bg_color; + uint8_t depth; + const char *data; + struct fb_cmap cmap; +}; + +#define FB_CUR_SETIMAGE 0x01 +#define FB_CUR_SETPOS 0x02 +#define FB_CUR_SETHOT 0x04 +#define FB_CUR_SETCMAP 0x08 +#define FB_CUR_SETSHAPE 0x10 +#define FB_CUR_SETSIZE 0x20 +#define FB_CUR_SETALL 0xFF + +struct fbcurpos { + uint16_t x, y; +}; + +struct fb_cursor { + uint16_t set; + uint16_t enable; + uint16_t rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; + +#define FB_BACKLIGHT_LEVELS 128 +#define FB_BACKLIGHT_MAX 0xFF + +#endif diff --git a/include/linux/kd.h b/include/linux/kd.h new file mode 100644 index 00000000..34e7491a --- /dev/null +++ b/include/linux/kd.h @@ -0,0 +1,157 @@ +#ifndef _LINUX_KD_H +#define _LINUX_KD_H + +#define GIO_FONT 0x4B60 +#define PIO_FONT 0x4B61 +#define GIO_FONTX 0x4B6B +#define PIO_FONTX 0x4B6C + +struct consolefontdesc { + unsigned short charcount; + unsigned short charheight; + char *chardata; +}; + +#define PIO_FONTRESET 0x4B6D + +#define GIO_CMAP 0x4B70 +#define PIO_CMAP 0x4B71 + +#define KIOCSOUND 0x4B2F +#define KDMKTONE 0x4B30 + +#define KDGETLED 0x4B31 +#define KDSETLED 0x4B32 +#define LED_SCR 0x01 +#define LED_NUM 0x02 +#define LED_CAP 0x04 + +#define KDGKBTYPE 0x4B33 +#define KB_84 0x01 +#define KB_101 0x02 +#define KB_OTHER 0x03 + +#define KDADDIO 0x4B34 +#define KDDELIO 0x4B35 +#define KDENABIO 0x4B36 +#define KDDISABIO 0x4B37 + +#define KDSETMODE 0x4B3A +#define KD_TEXT 0x00 +#define KD_GRAPHICS 0x01 +#define KD_TEXT0 0x02 +#define KD_TEXT1 0x03 +#define KDGETMODE 0x4B3B + +#define KDMAPDISP 0x4B3C +#define KDUNMAPDISP 0x4B3D + +typedef char scrnmap_t; +#define E_TABSZ 256 +#define GIO_SCRNMAP 0x4B40 +#define PIO_SCRNMAP 0x4B41 +#define GIO_UNISCRNMAP 0x4B69 +#define PIO_UNISCRNMAP 0x4B6A + +#define GIO_UNIMAP 0x4B66 +struct unipair { + unsigned short unicode; + unsigned short fontpos; +}; +struct unimapdesc { + unsigned short entry_ct; + struct unipair *entries; +}; + +#define PIO_UNIMAP 0x4B67 +#define PIO_UNIMAPCLR 0x4B68 + +struct unimapinit { + unsigned short advised_hashsize; + unsigned short advised_hashstep; + unsigned short advised_hashlevel; +}; + +#define UNI_DIRECT_BASE 0xF000 +#define UNI_DIRECT_MASK 0x01FF + +#define K_RAW 0x00 +#define K_XLATE 0x01 +#define K_MEDIUMRAW 0x02 +#define K_UNICODE 0x03 +#define KDGKBMODE 0x4B44 +#define KDSKBMODE 0x4B45 + +#define K_METABIT 0x03 +#define K_ESCPREFIX 0x04 +#define KDGKBMETA 0x4B62 +#define KDSKBMETA 0x4B63 + +#define K_SCROLLLOCK 0x01 +#define K_NUMLOCK 0x02 +#define K_CAPSLOCK 0x04 +#define KDGKBLED 0x4B64 +#define KDSKBLED 0x4B65 + +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; +}; +#define K_NORMTAB 0x00 +#define K_SHIFTTAB 0x01 +#define K_ALTTAB 0x02 +#define K_ALTSHIFTTAB 0x03 + +#define KDGKBENT 0x4B46 +#define KDSKBENT 0x4B47 + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; +#define KDGKBSENT 0x4B48 +#define KDSKBSENT 0x4B49 + +struct kbdiacr { + unsigned char diacr, base, result; +}; +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; +}; +#define KDGKBDIACR 0x4B4A +#define KDSKBDIACR 0x4B4B + +struct kbkeycode { + unsigned int scancode, keycode; +}; +#define KDGETKEYCODE 0x4B4C +#define KDSETKEYCODE 0x4B4D + +#define KDSIGACCEPT 0x4B4E + +struct kbd_repeat { + int delay; + int rate; +}; + +#define KDKBDREP 0x4B52 +#define KDFONTOP 0x4B72 + +struct console_font_op { + unsigned int op; + unsigned int flags; + unsigned int width, height; + unsigned int charcount; + unsigned char *data; +}; + +#define KD_FONT_OP_SET 0 +#define KD_FONT_OP_GET 1 +#define KD_FONT_OP_SET_DEFAULT 2 +#define KD_FONT_OP_COPY 3 + +#define KD_FONT_FLAG_DONT_RECALC 1 + +#endif diff --git a/include/linux/vt.h b/include/linux/vt.h new file mode 100644 index 00000000..86262bac --- /dev/null +++ b/include/linux/vt.h @@ -0,0 +1,52 @@ +#ifndef _LINUX_VT_H +#define _LINUX_VT_H + +#define VT_OPENQRY 0x5600 + +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; +}; +#define VT_GETMODE 0x5601 +#define VT_SETMODE 0x5602 +#define VT_AUTO 0x00 +#define VT_PROCESS 0x01 +#define VT_ACKACQ 0x02 + +struct vt_stat { + unsigned short v_active; + unsigned short v_signal; + unsigned short v_state; +}; +#define VT_GETSTATE 0x5603 +#define VT_SENDSIG 0x5604 + +#define VT_RELDISP 0x5605 + +#define VT_ACTIVATE 0x5606 +#define VT_WAITACTIVE 0x5607 +#define VT_DISALLOCATE 0x5608 + +struct vt_sizes { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_scrollsize; +}; +#define VT_RESIZE 0x5609 + +struct vt_consize { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_vlin; + unsigned short v_clin; + unsigned short v_vcol; + unsigned short v_ccol; +}; +#define VT_RESIZEX 0x560A +#define VT_LOCKSWITCH 0x560B +#define VT_UNLOCKSWITCH 0x560C + +#endif -- 2.25.1