some linux headers useful from user apps.
authorRich Felker <dalias@aerifal.cx>
Sat, 19 Mar 2011 01:53:30 +0000 (21:53 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 19 Mar 2011 01:53:30 +0000 (21:53 -0400)
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 [new file with mode: 0644]
include/linux/kd.h [new file with mode: 0644]
include/linux/vt.h [new file with mode: 0644]

diff --git a/include/linux/fb.h b/include/linux/fb.h
new file mode 100644 (file)
index 0000000..3571ee7
--- /dev/null
@@ -0,0 +1,341 @@
+#ifndef _LINUX_FB_H
+#define _LINUX_FB_H
+
+#include <stdint.h>
+#include <sys/ioctl.h>
+
+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 (file)
index 0000000..34e7491
--- /dev/null
@@ -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 (file)
index 0000000..86262ba
--- /dev/null
@@ -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