/* @file kbd-chooser.h * * Copyright (C) 2002 Alastair McKinstry * Released under the GNU License; see file COPYING for details */ #ifndef KBD_CHOOSER_H #define KBD_CHOOSER_H #define DEFMAP "us" /* Default Map */ #define KEYMAPDIR "keymaps" #define KEYMAPLISTDIR "/usr/share/console/lists" #define LINESIZE 512 typedef enum { TRUE = 1, FALSE = 0, UNKNOWN = -1 } exists; typedef struct keymap_s { char *langs; char *name; char *description; struct keymap_s *next; } keymap_t; typedef struct maplist_s { char *name; keymap_t *maps; struct maplist_s *next; } maplist_t; typedef struct kbd_s { char *name; // short name of kbd arch char *description; // description char *deflt; // default keymap for this keyboard exists present; // Is keyboard present ? void *data; // Arch-specific data goes here struct kbd_s *next; } kbd_t; /* Some of the following will be linked in * via *-kbd.c */ extern kbd_t *at_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *usb_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *mac_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *sparc_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *amiga_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *serial_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *atari_kbd_get (kbd_t *keyboards,const char *subarch); extern kbd_t *dec_kbd_get (kbd_t *keyboards, const char *subarch); extern kbd_t *hil_kbd_get (kbd_t *keyboards, const char *subarch); /* Used by *_kb_get() methods */ extern int grep (const char *file, const char *string); extern int check_dir (const char *dirname); char *locale_get (void); #if defined(__sparc__) #define PREFERRED_KBD "sun" #endif #if defined(__m68k__) #define PREFERRED_KBD "skip-config" #endif #if defined(AT_KBD) && !defined(PREFERRED_KBD) #define PREFERRED_KBD "at" #endif #if !defined(PREFERRED_KBD) #define PREFERRED_KBD "skip-config" #endif #endif /* KBD_CHOOSER_H */