/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_KD_H
#define _LINUX_KD_H
#include <linux/types.h>
#include <linux/compiler.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 __user *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 __user *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 period;

};

#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 __user *data;
};

struct console_font {
 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
