--- Gnu-Mach/i386/i386at/kd.h 2020/09/02 04:44:37 1.1.1.3 +++ Gnu-Mach/i386/i386at/kd.h 2020/09/02 04:49:23 1.1.1.5 @@ -75,7 +75,11 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #include #include - +#include +#include +#include +#include +#include /* * Where memory for various graphics adapters starts. @@ -109,6 +113,8 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT /* * Commands sent to graphics adapter. */ +#define C_START 0x0a /* return cursor line start */ +#define C_STOP 0x0b /* return cursor line stop */ #define C_LOW 0x0f /* return low byte of cursor addr */ #define C_HIGH 0x0e /* high byte */ @@ -238,7 +244,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #define CURRENT_COLUMN(pos) (((pos) % ONE_LINE) / ONE_SPACE) #define NUMKEYS 89 -#define NUMSTATES 5 /* NORMAL_STATE, ... */ +#define NUMSTATES 5 /* NORM_STATE, ... */ #define NUMOUTPUT 3 /* max size of byte seq from key */ #define WIDTH_KMAP (NUMSTATES * NUMOUTPUT) @@ -358,10 +364,10 @@ typedef u_char Scancode; * Other mappable non-Ascii keys (e.g., "ctrl") are represented by a * two-byte sequence: K_SCAN, followed by the key's scan code. */ -#define K_DONE 0xff /* must be same as NC */ -#define NC 0xff /* No character defined */ +#define K_DONE 0xffu /* must be same as NC */ +#define NC 0xffu /* No character defined */ -#define K_SCAN 0xfe /* followed by scan code */ +#define K_SCAN 0xfeu /* followed by scan code */ /* ascii char set */ #define K_NUL 0x00 /* Null character */ @@ -567,8 +573,6 @@ extern u_char key_map[NUMKEYS][WIDTH_KMA #ifdef KERNEL #include -extern void splx(); -extern spl_t spltty(); #define SPLKD spltty #endif /* KERNEL */ @@ -640,6 +644,8 @@ extern int kb_mode; #define KDGKBDTYPE _IOR('K', 2, int) /* get keyboard type */ #define KB_VANILLAKB 0 +#define KDSETLEDS _IOW('K', 5, int) /* set the keyboard ledstate */ + struct X_kdb { u_int *ptr; u_int size; @@ -685,4 +691,109 @@ typedef struct { #define MOUSE_MOTION 4 /* mouse motion */ #define KEYBD_EVENT 5 /* key up/down */ +extern boolean_t kd_isupper (u_char); +extern boolean_t kd_islower (u_char); +extern void kd_senddata (unsigned char); +extern void kd_sendcmd (unsigned char); +extern void kd_cmdreg_write (int); +extern void kd_mouse_drain (void); +extern void set_kd_state (int); +extern void kd_setleds1 (u_char); +extern void kd_setleds2 (void); +extern void cnsetleds (u_char); +extern void kdreboot (void); +extern void kd_putc (u_char); +extern void kd_parseesc (void); +extern void kd_down (void); +extern void kd_up (void); +extern void kd_cr (void); +extern void kd_tab (void); +extern void kd_left (void); +extern void kd_right (void); +extern void kd_scrollup (void); +extern void kd_scrolldn (void); +extern void kd_cls (void); +extern void kd_home (void); +extern void kd_insch (int number); +extern void kd_cltobcur (void); +extern void kd_cltopcur (void); +extern void kd_cltoecur (void); +extern void kd_clfrbcur (void); +extern void kd_eraseln (void); +extern void kd_insln (int); +extern void kd_delln (int); +extern void kd_delch (int); +extern void kd_erase (int); +extern void kd_bellon (void); +extern void kd_belloff (void *param); +extern void kdinit (void); +extern int kdsetkbent (struct kbentry *, int); +extern int kdgetkbent (struct kbentry *); +extern int kdsetbell (int, int); +extern void kd_resend (void); +extern void kd_handle_ack (void); +extern int kd_kbd_magic (int); +extern unsigned int kdstate2idx (unsigned int, boolean_t); +extern void kd_parserest (u_char *); +extern int kdcnprobe(struct consdev *cp); +extern int kdcninit(struct consdev *cp); +extern int kdcngetc(dev_t dev, int wait); +extern int kdcnmaygetc (void); +extern int kdcnputc(dev_t dev, int c); + +extern void kd_slmwd (void *start, int count, int value); +extern void kd_slmscu (void *from, void *to, int count); +extern void kd_slmscd (void *from, void *to, int count); + +extern void kdintr(int vec); + +#if MACH_KDB +extern void kdb_kintr(void); +#endif /* MACH_KDB */ + +extern int kdopen(dev_t dev, int flag, io_req_t ior); +extern void kdclose(dev_t dev, int flag); +extern int kdread(dev_t dev, io_req_t uio); +extern int kdwrite(dev_t dev, io_req_t uio); + +extern io_return_t kdgetstat( + dev_t dev, + int flavor, + int *data, + natural_t *count); + +extern io_return_t kdsetstat( + dev_t dev, + int flavor, + int * data, + natural_t count); + +extern int kdportdeath(dev_t dev, mach_port_t port); +extern int kdmmap(dev_t dev, vm_offset_t off, vm_prot_t prot); + +boolean_t kdcheckmagic(Scancode scancode); + +int do_modifier(int state, Scancode c, boolean_t up); + +/* + * Generic routines for bitmap devices (i.e., assume no hardware + * assist). Assumes a simple byte ordering (i.e., a byte at a lower + * address is to the left of the byte at the next higher address). + * For the 82786, this works anyway if the characters are 2 bytes + * wide. (more bubble gum and paper clips.) + * + * See the comments above (in i386at/kd.c) about SLAMBPW. + */ +void bmpch2bit(csrpos_t pos, short *xb, short *yb); +void bmppaintcsr(csrpos_t pos, u_char val); +u_char *bit2fbptr(short xb, short yb); + +unsigned char kd_getdata(void); +unsigned char state2leds(int state); + +void kdstart(struct tty *tp); +void kdstop(struct tty *tp, int flags); + +void kd_xga_init(void); + #endif /* _KD_H_ */