/****************************************************************************
 ****************************************************************************
 ***
 ***   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
