diff options
author | Toomas Soome <tsoome@me.com> | 2017-01-19 00:54:55 +0200 |
---|---|---|
committer | Hans Rosenfeld <hans.rosenfeld@joyent.com> | 2019-01-07 10:11:17 +0100 |
commit | adc2b73db62a4506a57dfd1ce89bcadc4a60a29d (patch) | |
tree | f659fc1972895271b7cd74327dec7476685992e8 | |
parent | 1f5207b7604fb44407eb4342aff613f7c4508508 (diff) | |
download | illumos-gate-adc2b73db62a4506a57dfd1ce89bcadc4a60a29d.tar.gz |
7784 uts: console input should support Unicode
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
51 files changed, 470 insertions, 512 deletions
diff --git a/usr/src/cmd/loadkeys/dumpkeys.c b/usr/src/cmd/loadkeys/dumpkeys.c index b200d5c73a..e16f319a2b 100644 --- a/usr/src/cmd/loadkeys/dumpkeys.c +++ b/usr/src/cmd/loadkeys/dumpkeys.c @@ -19,9 +19,6 @@ * * CDDL HEADER END */ -#ifndef lint -#ident "%Z%%M% %I% %E% SMI" -#endif /* * Copyright (c) 1988 by Sun Microsystems, Inc. @@ -66,9 +63,7 @@ static void printchar(int character, int delim); /*ARGSUSED*/ int -main(argc, argv) - int argc; - char **argv; +main(int argc, char **argv) { register int kbdfd; register int keystation; @@ -242,6 +237,9 @@ static char *funnies[] = { "nop", "oops", "hole", + "", /* not used */ + "", /* not used */ + "", /* not used */ "reset", "error", "idle", @@ -258,6 +256,15 @@ static char *fa_class[] = { "fa_cedilla", "fa_acute", "fa_grave", + "fa_macron", + "fa_breve", + "fa_dot", + "fa_slash", + "fa_ring", + "fa_apostrophe", + "fa_dacute", + "fa_ogonek", + "fa_caron" }; #define NFA_CLASS (sizeof (fa_class) / sizeof (fa_class[0])) @@ -311,15 +318,14 @@ static char *padkeys[] = { #define NPADKEYS (sizeof (padkeys) / sizeof (padkeys[0])) static void -printentry(kio) - register struct kiockeymap *kio; +printentry(struct kiockeymap *kio) { - register int entry = (kio->kio_entry & 0x1F); - register int fkeyset; - register int i; - register int c; + int entry = (kio->kio_entry & 0x1F); + int fkeyset; + int i; + int c; - switch (kio->kio_entry >> 8) { + switch (KEYFLAGS(kio->kio_entry)) { case 0x0: if (kio->kio_entry == '"') @@ -330,37 +336,37 @@ printentry(kio) printchar((int)kio->kio_entry, '\''); break; - case SHIFTKEYS >> 8: + case SHIFTKEYS: if (entry < NSHIFTKEYS) (void) printf("shiftkeys+%s", shiftkeys[entry]); else (void) printf("%#4x", kio->kio_entry); break; - case BUCKYBITS >> 8: + case BUCKYBITS: if (entry < NBUCKYBITS) (void) printf("buckybits+%s", buckybits[entry]); else (void) printf("%#4x", kio->kio_entry); break; - case FUNNY >> 8: + case FUNNY: if (entry < NFUNNIES) (void) printf("%s", funnies[entry]); else (void) printf("%#4x", kio->kio_entry); break; - case FA_CLASS >> 8: + case FA_CLASS: if (entry < NFA_CLASS) (void) printf("%s", fa_class[entry]); else (void) printf("%#4x", kio->kio_entry); break; - case STRING >> 8: + case STRING: if (entry < NBUILTIN_STRINGS && strncmp(kio->kio_string, - builtin_strings[entry].string, KTAB_STRLEN) == 0) + builtin_strings[entry].string, KTAB_STRLEN) == 0) (void) printf("string+%s", builtin_strings[entry].name); else { (void) printf("\""); @@ -372,16 +378,16 @@ printentry(kio) } break; - case FUNCKEYS >> 8: + case FUNCKEYS: fkeyset = (int)(kio->kio_entry & 0xF0) >> 4; if (fkeyset < NFKEYSETS) (void) printf("%s(%d)", fkeysets[fkeyset], - (entry&0x0F) + 1); + (entry & 0x0F) + 1); else (void) printf("%#4x", kio->kio_entry); break; - case PADKEYS >> 8: + case PADKEYS: if (entry < NPADKEYS) (void) printf("%s", padkeys[entry]); else @@ -395,9 +401,7 @@ printentry(kio) } static void -printchar(character, delim) - int character; - int delim; +printchar(int character, int delim) { switch (character) { @@ -433,8 +437,10 @@ printchar(character, delim) } else { if (character < 040) (void) printf("^%c", character + 0100); - else + else if (character <= 0xff) (void) printf("'\\%.3o'", character); + else + (void) printf("%#4x", character); } break; } diff --git a/usr/src/cmd/loadkeys/loadkeys.y b/usr/src/cmd/loadkeys/loadkeys.y index 2795f1f7bf..eb146480e6 100644 --- a/usr/src/cmd/loadkeys/loadkeys.y +++ b/usr/src/cmd/loadkeys/loadkeys.y @@ -21,10 +21,6 @@ * CDDL HEADER END */ -#ifndef lint -#pragma ident "%Z%%M% %I% %E% SMI" -#endif - /* * Copyright (c) 1999 by Sun Microsystems, Inc. * All rights reserved. @@ -45,21 +41,7 @@ #define ALL -1 /* special symbol for all tables */ -/* - * SunOS 4.x and Solaris 2.[1234] put Type 4 key tables into - * the keytables directory with no type qualification. - * If we're a SPARC, we might be using an NFS server that - * doesn't have the new type-qualified directories. - * (loadkeys wasn't used on non-SPARCs in 2.[1234].) - */ -#ifdef sparc -#define COMPATIBILITY_DIR -#endif - static char keytable_dir[] = "/usr/share/lib/keytables/type_%d/"; -#ifdef COMPATIBILITY_DIR -static char keytable_dir2[] = "/usr/share/lib/keytables/"; -#endif static char layout_prefix[] = "layout_"; struct keyentry { @@ -132,6 +114,7 @@ static int loadkey(int kbdfd, keyentry *kep); static int dupkey(int kbdfd, dupentry *dep, int shiftmask); static int swapkey(int kbdfd, dupentry *dep, int shiftmask); static int yylex(); +extern int yyparse(void); static int readesc(FILE *stream, int delim, int single_char); static int wordcmp(const void *w1, const void *w2); static int yyerror(char *msg); @@ -141,20 +124,18 @@ static FILE *open_mapping_file(char *pathbuf, char *name, boolean_t explicit_name, int type); int -main(argc, argv) - int argc; - char **argv; +main(int argc, char **argv) { - register int kbdfd; + int kbdfd; int type; int layout; /* maxint is 8 hex digits. */ char layout_filename[sizeof(layout_prefix)+8]; char pathbuf[MAXPATHLEN]; - register int shift; + int shift; struct kiockeymap mapentry; - register keyentry *kep; - register dupentry *dep; + keyentry *kep; + dupentry *dep; boolean_t explicit_name; while(++argv, --argc) { @@ -333,12 +314,8 @@ set_layout(char *arg) * else print a message on stderr and return NULL. */ FILE * -open_mapping_file( - char *pathbuf, - char *name, - boolean_t explicit_name, - int type -) { +open_mapping_file(char *pathbuf, char *name, boolean_t explicit_name, int type) +{ /* If the user specified the name, try it "raw". */ if (explicit_name) { strcpy(pathbuf, name); @@ -358,23 +335,8 @@ open_mapping_file( return (NULL); } (void) strcat(pathbuf, name); - infile = fopen(pathbuf, "r"); - if (infile) return (infile); - if (errno != ENOENT) goto fopen_fail; - -#ifdef COMPATIBILITY_DIR - /* If not, and either the name was specified explicitly */ - /* or this is a type 4... */ - if (explicit_name || type == KB_SUN4) { - /* Try the compatibility name. */ - /* No need to check len here, it's shorter. */ - (void) strcpy(pathbuf, keytable_dir2); - (void) strcat(pathbuf, infilename); - infile = fopen(pathbuf, "r"); - if (infile) return (infile); - if (errno != ENOENT) goto fopen_fail; - } -#endif + if ((infile = fopen(pathbuf, "r")) != NULL) + return (infile); fopen_fail: (void) fprintf(stderr, "loadkeys: "); @@ -425,7 +387,7 @@ makeentry(tablemask, entry) kep->ke_next = NULL; kep->ke_entry.kio_tablemask = tablemask; kep->ke_entry.kio_station = 0; - kep->ke_entry.kio_entry = (u_short)entry; + kep->ke_entry.kio_entry = entry; index = entry - STRING; if (index >= 0 && index <= 15) (void) strncpy(kep->ke_entry.kio_string, strings[index], @@ -624,6 +586,10 @@ code: { $$ = $1; } +| INT + { + $$ = $1; + } | '(' { $$ = '('; @@ -707,9 +673,18 @@ word_t wordtab[] = { { "downarrow", CONSTANT, DOWNARROW }, { "error", CONSTANT, ERROR }, { "fa_acute", CONSTANT, FA_ACUTE }, + { "fa_apostrophe", CONSTANT, FA_APOSTROPHE }, + { "fa_breve", CONSTANT, FA_BREVE }, + { "fa_caron", CONSTANT, FA_CARON }, { "fa_cedilla", CONSTANT, FA_CEDILLA }, { "fa_cflex", CONSTANT, FA_CFLEX }, + { "fa_dacute", CONSTANT, FA_DACUTE }, + { "fa_dot", CONSTANT, FA_DOT }, { "fa_grave", CONSTANT, FA_GRAVE }, + { "fa_macron", CONSTANT, FA_MACRON }, + { "fa_ogonek", CONSTANT, FA_OGONEK }, + { "fa_ring", CONSTANT, FA_RING }, + { "fa_slash", CONSTANT, FA_SLASH }, { "fa_tilde", CONSTANT, FA_TILDE }, { "fa_umlaut", CONSTANT, FA_UMLAUT }, { "hole", CONSTANT, HOLE }, @@ -910,7 +885,7 @@ yylex() yylval.number = wptr->w_lval; tokentype = wptr->w_type; } else { - yylval.number = strtol(tokbuf, &ptr, 10); + yylval.number = strtol(tokbuf, &ptr, 0); if (ptr == tokbuf) yyerror("syntax error"); else diff --git a/usr/src/cmd/loadkeys/type_6/albania b/usr/src/cmd/loadkeys/type_6/albania index d58ab75d5d..0ef261a8be 100644 --- a/usr/src/cmd/loadkeys/type_6/albania +++ b/usr/src/cmd/loadkeys/type_6/albania @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Albania Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/belarus b/usr/src/cmd/loadkeys/type_6/belarus index 432affeae3..b89fc72366 100644 --- a/usr/src/cmd/loadkeys/type_6/belarus +++ b/usr/src/cmd/loadkeys/type_6/belarus @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Belarus Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/belgium b/usr/src/cmd/loadkeys/type_6/belgium index 42c1edcacf..bd29bf992c 100644 --- a/usr/src/cmd/loadkeys/type_6/belgium +++ b/usr/src/cmd/loadkeys/type_6/belgium @@ -26,18 +26,18 @@ # Belgian Type 6 (USB) key layout # # -key 53 base ² shift ³ caps ² ctrl ² altg nop +key 53 base 0x00B2 shift 0x00B3 caps 0x00B2 ctrl 0x00B2 altg nop key 30 base & shift 1 caps & ctrl & altg | -key 31 base é shift 2 caps é ctrl é altg @ +key 31 base 0x00E9 shift 2 caps 0x00E9 ctrl 0x00E9 altg @ key 32 base '"' shift 3 caps '"' ctrl '"' altg # key 33 base '\'' shift 4 caps '\'' ctrl '\'' altg nop key 34 base ( shift 5 caps ( ctrl ^[ altg nop -key 35 base § shift 6 caps § ctrl ^_ altg ^ -key 36 base è shift 7 caps è ctrl è altg nop +key 35 base 0x00A7 shift 6 caps 0x00A7 ctrl ^_ altg ^ +key 36 base 0x00E8 shift 7 caps 0x00E8 ctrl 0x00E8 altg nop key 37 base ! shift 8 caps ! ctrl ^\ altg nop -key 38 base ç shift 9 caps ç ctrl ^^ altg { -key 39 base à shift 0 caps à ctrl ^@ altg } -key 45 base ) shift ° caps ) ctrl ^] altg nop +key 38 base 0x00E7 shift 9 caps 0x00E7 ctrl ^^ altg { +key 39 base 0x00E0 shift 0 caps 0x00E0 ctrl ^@ altg } +key 45 base ) shift 0x00B0 caps ) ctrl ^] altg nop key 46 base - shift _ caps - ctrl ^_ altg nop key 20 base a shift A caps A ctrl ^A altg nop key 26 base z shift Z caps Z ctrl ^Z altg nop @@ -45,8 +45,8 @@ key 47 base fa_cflex shift fa_umlaut caps fa_cflex ctrl fa_cflex altg [ key 48 base $ shift * caps $ ctrl $ altg ] key 4 base q shift Q caps Q ctrl ^Q altg nop key 51 base m shift M caps M ctrl ^M altg nop -key 52 base ù shift % caps ù ctrl ù altg fa_grave -key 50 base µ shift £ caps µ ctrl µ altg fa_acute numl nonl up nop +key 52 base 0x00F9 shift % caps 0x00F9 ctrl 0x00F9 altg fa_grave +key 50 base 0x00B5 shift 0x00A3 caps 0x00B5 ctrl 0x00B5 altg fa_acute numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg '\\' numl nonl up nop key 29 base w shift W caps W ctrl ^W altg nop diff --git a/usr/src/cmd/loadkeys/type_6/brazil b/usr/src/cmd/loadkeys/type_6/brazil index d20cdfe74e..b1c905f5e4 100644 --- a/usr/src/cmd/loadkeys/type_6/brazil +++ b/usr/src/cmd/loadkeys/type_6/brazil @@ -29,44 +29,44 @@ # "caps lock" acts as "shift lock" on this keyboard # # -key 53 base '\'' shift '"' caps '\'' ctrl '\'' altg ¬ -key 30 base 1 shift ! caps 1 ctrl 1 altg ¹ -key 31 base 2 shift @ caps 2 ctrl ^@ altg ² -key 32 base 3 shift # caps 3 ctrl 3 altg ³ -key 33 base 4 shift $ caps 4 ctrl 4 altg £ -key 34 base 5 shift % caps 5 ctrl 5 altg ¢ -key 35 base 6 shift fa_umlaut caps 6 ctrl ^^ altg ¬ +key 53 base '\'' shift '"' caps '\'' ctrl '\'' altg 0x00AC +key 30 base 1 shift ! caps 1 ctrl 1 altg 0x00B9 +key 31 base 2 shift @ caps 2 ctrl ^@ altg 0x00B2 +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00B3 +key 33 base 4 shift $ caps 4 ctrl 4 altg 0x00A3 +key 34 base 5 shift % caps 5 ctrl 5 altg 0x00A2 +key 35 base 6 shift fa_umlaut caps 6 ctrl ^^ altg 0x00AC key 36 base 7 shift & caps 7 ctrl 7 altg { key 37 base 8 shift * caps 8 ctrl ^[ altg [ key 38 base 9 shift ( caps 9 ctrl ^] altg ] key 39 base 0 shift ) caps 0 ctrl 0 altg } key 45 base - shift _ caps - ctrl ^_ altg '\\' -key 46 base = shift + caps = ctrl = altg § +key 46 base = shift + caps = ctrl = altg 0x00A7 key 20 base q shift Q caps Q ctrl ^Q altg nop key 26 base w shift W caps W ctrl ^W altg nop key 8 base e shift E caps E ctrl ^E altg nop key 28 base y shift Y caps Y ctrl ^Y altg nop -key 18 base o shift O caps O ctrl ^O altg § -key 19 base p shift P caps P ctrl ^P altg ¶ +key 18 base o shift O caps O ctrl ^O altg 0x00A7 +key 19 base p shift P caps P ctrl ^P altg 0x00B6 key 47 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg '`' -key 48 base [ shift { caps [ ctrl ^[ altg ª +key 48 base [ shift { caps [ ctrl ^[ altg 0x00AA key 4 base a shift A caps A ctrl ^A altg nop key 22 base s shift S caps S ctrl ^S altg nop -key 51 base ç shift Ç caps Ç ctrl ç altg ¡ +key 51 base 0x00E7 shift 0x00C7 caps 0x00C7 ctrl 0x00E7 altg ¡ key 52 base fa_tilde shift fa_cflex caps fa_tilde ctrl ^^ altg ~ -key 50 base ] shift } caps ] ctrl ^] altg º numl nonl up nop -key 29 base z shift Z caps Z ctrl ^Z altg « -key 27 base x shift X caps X ctrl ^X altg » +key 50 base ] shift } caps ] ctrl ^] altg 0x00BA numl nonl up nop +key 29 base z shift Z caps Z ctrl ^Z altg 0x00AB +key 27 base x shift X caps X ctrl ^X altg 0x00BB key 6 base c shift C caps C ctrl ^C altg nop key 25 base v shift V caps V ctrl ^V altg nop key 5 base b shift B caps B ctrl ^B altg nop key 17 base n shift N caps N ctrl ^N altg nop -key 16 base m shift M caps M ctrl ^M altg µ +key 16 base m shift M caps M ctrl ^M altg 0x00B5 key 49 all hole -key 100 base / shift | caps / ctrl ^\ altg ° numl nonl up nop +key 100 base / shift | caps / ctrl ^\ altg 0x00B0 numl nonl up nop key 54 base , shift < caps , ctrl , altg ? key 55 base . shift > caps . ctrl . altg nop -key 56 base ; shift : caps ; ctrl ; altg ¿ +key 56 base ; shift : caps ; ctrl ; altg 0x00BF # # # diff --git a/usr/src/cmd/loadkeys/type_6/bulgaria b/usr/src/cmd/loadkeys/type_6/bulgaria index 1846c455c5..feafdf59b3 100644 --- a/usr/src/cmd/loadkeys/type_6/bulgaria +++ b/usr/src/cmd/loadkeys/type_6/bulgaria @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Bulgaria Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/canadian_bilingual b/usr/src/cmd/loadkeys/type_6/canadian_bilingual index d27e0abe84..e727c55cbf 100644 --- a/usr/src/cmd/loadkeys/type_6/canadian_bilingual +++ b/usr/src/cmd/loadkeys/type_6/canadian_bilingual @@ -28,42 +28,42 @@ # "caps lock" acts as "shift lock" on this keyboard # key 53 base / shift | caps / ctrl ^\ altg '\\' -key 30 base 1 shift ! caps 1 ctrl 1 altg ± +key 30 base 1 shift ! caps 1 ctrl 1 altg 0x00B1 key 31 base 2 shift @ caps 2 ctrl 2 altg nop -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift $ caps 4 ctrl 4 altg ¢ -key 34 base 5 shift % caps 5 ctrl 5 altg ¤ -key 35 base 6 shift ? caps 6 ctrl 6 altg ¬ +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 +key 33 base 4 shift $ caps 4 ctrl 4 altg 0x00A2 +key 34 base 5 shift % caps 5 ctrl 5 altg 0x00A4 +key 35 base 6 shift ? caps 6 ctrl 6 altg 0x00AC key 36 base 7 shift & caps 7 ctrl 7 altg { key 37 base 8 shift * caps 8 ctrl 8 altg } key 38 base 9 shift ( caps 9 ctrl 9 altg [ key 39 base 0 shift ) caps 0 ctrl 0 altg ] -key 45 base - shift _ caps - ctrl ^_ altg ½ -key 46 base = shift + caps = ctrl = altg ¬ +key 45 base - shift _ caps - ctrl ^_ altg 0x00B0 +key 46 base = shift + caps = ctrl = altg 0x00AC key 20 base q shift Q caps Q ctrl ^Q altg nop key 26 base w shift W caps W ctrl ^W altg nop key 8 base e shift E caps E ctrl ^E altg nop key 28 base y shift Y caps Y ctrl ^Y altg nop -key 18 base o shift O caps O ctrl ^O altg § -key 19 base p shift P caps P ctrl ^P altg ¶ +key 18 base o shift O caps O ctrl ^O altg 0x00A7 +key 19 base p shift P caps P ctrl ^P altg 0x00B6 key 47 base fa_cflex shift fa_umlaut caps fa_cflex ctrl fa_cflex altg fa_grave -key 48 base ç shift Ç caps Ç ctrl ç altg ~ +key 48 base 0x00E7 shift 0x00C7 caps 0x00C7 ctrl 0x00E7 altg ~ key 4 base a shift A caps A ctrl ^A altg nop key 22 base s shift S caps S ctrl ^S altg nop key 51 base ; shift : caps ; ctrl ; altg ° -key 52 base è shift È caps È ctrl ¨ altg { -key 50 base à shift À caps À ctrl à altg } numl nonl up nop -key 29 base z shift Z caps Z ctrl ^Z altg « -key 27 base x shift X caps X ctrl ^X altg » +key 52 base 0x00E8 shift 0x00C8 caps 0x00C8 ctrl 0x00A8 altg { +key 50 base 0x00E0 shift 0x00C0 caps 0x00C0 ctrl 0x00E0 altg } numl nonl up nop +key 29 base z shift Z caps Z ctrl ^Z altg 0x00AB +key 27 base x shift X caps X ctrl ^X altg 0x00BB key 6 base c shift C caps C ctrl ^C altg nop key 25 base v shift V caps V ctrl ^V altg nop key 5 base b shift B caps B ctrl ^B altg nop key 17 base n shift N caps N ctrl ^N altg nop -key 16 base m shift M caps M ctrl ^M altg µ +key 16 base m shift M caps M ctrl ^M altg 0x00B5 key 54 base , shift '\'' caps , ctrl , altg < key 55 base . shift '"' caps . ctrl . altg > -key 56 base é shift É caps É ctrl é altg fa_acute -key 100 base ù shift Ù caps Ù ctrl ù altg nop numl nonl up nop +key 56 base 0x00E9 shift 0x00C9 caps 0x00C9 ctrl 0x00E9 altg fa_acute +key 100 base 0x00F9 shift 0x00D9 caps 0x00D9 ctrl 0x00F9 altg nop numl nonl up nop # # # New function keys assigned old codes diff --git a/usr/src/cmd/loadkeys/type_6/canadian_french b/usr/src/cmd/loadkeys/type_6/canadian_french index fab1b9a32c..8ebf7eecb8 100644 --- a/usr/src/cmd/loadkeys/type_6/canadian_french +++ b/usr/src/cmd/loadkeys/type_6/canadian_french @@ -22,40 +22,38 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Canadian French Type 6 (USB) key layout # # "caps lock" acts as "shift lock" on this keyboard # -key 53 base ² shift nop caps ² ctrl ² altg nop +key 53 base 0x00B2 shift nop caps 0x00B2 ctrl 0x00B2 altg nop key 30 base & shift 1 caps & ctrl & altg nop -key 31 base é shift 2 caps é ctrl é altg ~ +key 31 base 0x00E9 shift 2 caps 0x00E9 ctrl 0x00E9 altg ~ key 32 base '"' shift 3 caps '"' ctrl '"' altg # key 33 base '\'' shift 4 caps '\'' ctrl '\'' altg { key 34 base ( shift 5 caps ( ctrl ^[ altg [ key 35 base - shift 6 caps - ctrl ^_ altg | -key 36 base è shift 7 caps è ctrl è altg ` +key 36 base 0x00E8 shift 7 caps 0x00E8 ctrl 0x00E8 altg ` key 37 base _ shift 8 caps _ ctrl ^\ altg \ -key 38 base ç shift 9 caps ç ctrl ^^ altg ^ -key 39 base à shift 0 caps à ctrl ^@ altg @ -key 45 base ) shift ° caps ) ctrl ^] altg ] +key 38 base 0x00E7 shift 9 caps 0x00E7 ctrl ^^ altg ^ +key 39 base 0x00E0 shift 0 caps 0x00E0 ctrl ^@ altg @ +key 45 base ) shift 0x00B0 caps ) ctrl ^] altg ] key 46 base = shift + caps = ctrl = altg } key 20 base a shift A caps A ctrl ^A altg nop key 26 base z shift Z caps Z ctrl ^Z altg nop key 47 base fa_cflex shift fa_umlaut caps fa_cflex ctrl fa_cflex altg nop -key 48 base $ shift £ caps $ ctrl $ altg ¤ +key 48 base $ shift 0x00A3 caps $ ctrl $ altg 0x00A4 key 4 base q shift Q caps Q ctrl ^Q altg nop key 51 base m shift M caps M ctrl ^M altg nop -key 52 base ù shift % caps ù ctrl ù altg nop -key 50 base * shift µ caps * ctrl * altg nop numl nonl up nop +key 52 base 0x00F9 shift % caps 0x00F9 ctrl 0x00F9 altg nop +key 50 base * shift 0x00B5 caps * ctrl * altg nop numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg nop numl nonl up nop key 29 base w shift W caps W ctrl ^W altg nop key 16 base , shift ? caps , ctrl , altg nop key 54 base ; shift . caps ; ctrl ; altg nop key 55 base : shift / caps : ctrl : altg nop -key 56 base ! shift § caps ! ctrl ! altg nop +key 56 base ! shift 0x00A7 caps ! ctrl ! altg nop # # # diff --git a/usr/src/cmd/loadkeys/type_6/croatia b/usr/src/cmd/loadkeys/type_6/croatia index bcedf7b51c..16530a2648 100644 --- a/usr/src/cmd/loadkeys/type_6/croatia +++ b/usr/src/cmd/loadkeys/type_6/croatia @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Croatia Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/czech b/usr/src/cmd/loadkeys/type_6/czech index c68d403b4f..e762e3d7af 100644 --- a/usr/src/cmd/loadkeys/type_6/czech +++ b/usr/src/cmd/loadkeys/type_6/czech @@ -21,8 +21,6 @@ # # CDDL HEADER END # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Czech Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/denmark b/usr/src/cmd/loadkeys/type_6/denmark index fbebfb1d56..4f493d11f6 100644 --- a/usr/src/cmd/loadkeys/type_6/denmark +++ b/usr/src/cmd/loadkeys/type_6/denmark @@ -22,14 +22,12 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Danish Type 6 (USB) key layout # -key 53 base ½ shift § caps ½ ctrl ½ altg nop +key 53 base 0x00BD shift 0x00A7 caps 0x00BD ctrl 0x00BD altg nop key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift ¤ caps 4 ctrl 4 altg $ +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 +key 33 base 4 shift 0x00A4 caps 4 ctrl 4 altg $ key 34 base 5 shift % caps 5 ctrl 5 altg ~ key 35 base 6 shift & caps 6 ctrl ^^ altg ^ key 36 base 7 shift / caps 7 ctrl 7 altg { @@ -38,10 +36,10 @@ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base + shift ? caps + ctrl ^_ altg nop key 46 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg | -key 47 base å shift Å caps Å ctrl å altg nop +key 47 base 0x00E5 shift 0x00C5 caps 0x00C5 ctrl 0x00E5 altg nop key 48 base fa_umlaut shift fa_cflex caps fa_umlaut ctrl fa_umlaut altg fa_tilde -key 51 base æ shift Æ caps Æ ctrl æ altg nop -key 52 base ø shift Ø caps Ø ctrl ø altg nop +key 51 base 0x00E6 shift 0x00C6 caps 0x00C6 ctrl 0x00E6 altg nop +key 52 base 0x00F8 shift 0x00D8 caps 0x00D8 ctrl 0x00F8 altg nop key 50 base '\'' shift * caps '\'' ctrl '\'' altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^\ altg '\\' numl nonl up nop diff --git a/usr/src/cmd/loadkeys/type_6/estonia b/usr/src/cmd/loadkeys/type_6/estonia index eadf99a94a..8b9f62b3f1 100644 --- a/usr/src/cmd/loadkeys/type_6/estonia +++ b/usr/src/cmd/loadkeys/type_6/estonia @@ -30,13 +30,13 @@ # However, all necessary ASCII characters are placed onto the right keys. # # -key 53 base ` shift fa_tilde caps ` ctrl ^^ altg '¬' -key 30 base 1 shift ! caps 1 ctrl 1 altg ¹ +key 53 base fa_caron shift fa_tilde caps ` ctrl ^^ altg '~' +key 30 base 1 shift ! caps 1 ctrl 1 altg 0x00B9 key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift ¤ caps 4 ctrl 4 altg $ -key 34 base 5 shift % caps 5 ctrl 5 altg ½ -key 35 base 6 shift & caps 6 ctrl 6 altg '¬' +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A2 +key 33 base 4 shift 0x00A4 caps 4 ctrl 4 altg $ +key 34 base 5 shift % caps 5 ctrl 5 altg 0x00BD +key 35 base 6 shift & caps 6 ctrl 6 altg 0x00AC key 36 base 7 shift / caps 7 ctrl 7 altg { key 37 base 8 shift ( caps 8 ctrl ^[ altg [ key 38 base 9 shift ) caps 9 ctrl ^] altg ] @@ -44,17 +44,19 @@ key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base + shift ? caps + ctrl ^_ altg '\\' key 46 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg ` key 20 base q shift Q caps Q ctrl ^Q altg @ -key 47 base ü shift Ü caps Ü ctrl ü altg fa_umlaut -key 48 base fa_umlaut shift ^ caps fa_umlaut ctrl fa_tilde altg ~ -key 51 base ö shift Ö caps Ö ctrl ö altg nop -key 52 base ä shift Ä caps Ä ctrl ä altg ^ +key 47 base 0x00FC shift 0x00DC caps 0x00DC ctrl nop altg fa_umlaut +key 48 base 0x00F5 shift 0x00D5 caps 0x00D5 ctrl nop altg ~ +key 51 base 0x00F6 shift 0x00D6 caps 0x00D6 ctrl nop altg nop +key 52 base 0x00E4 shift 0x00C4 caps 0x00C4 ctrl nop altg ^ key 50 base '\'' shift * caps '\'' ctrl '\'' altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^| altg | numl nonl up nop -key 29 base z shift Z caps Z ctrl ^Z altg « -key 27 base x shift X caps X ctrl ^X altg » -key 6 base c shift C caps C ctrl ^C altg ¢ -key 16 base m shift M caps M ctrl '\r' altg µ +key 22 base s shift S caps S ctrl ^S altg 0x0161 +key 29 base z shift Z caps Z ctrl ^Z altg 0x017E +key 27 base x shift X caps X ctrl ^X altg nop +key 6 base c shift C caps C ctrl ^C altg 0x00A2 +key 8 base e shift E caps E ctrl ^E altg 0x20AC +key 16 base m shift M caps M ctrl '\r' altg 0x00B5 key 54 base , shift ; caps , ctrl , altg < key 55 base . shift : caps . ctrl . altg > key 56 base - shift _ caps - ctrl ^_ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/finnish b/usr/src/cmd/loadkeys/type_6/finnish index 6a7f113331..bc3926aa17 100644 --- a/usr/src/cmd/loadkeys/type_6/finnish +++ b/usr/src/cmd/loadkeys/type_6/finnish @@ -22,13 +22,11 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Finnish Type 6 (USB) key layout # -key 53 base § shift ½ caps § ctrl § altg nop +key 53 base 0x00A7 shift 0x00B0 caps 0x00A7 ctrl 0x00A7 altg nop key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 key 33 base 4 shift ¤ caps 4 ctrl 4 altg $ key 34 base 5 shift % caps 5 ctrl 5 altg nop key 35 base 6 shift & caps 6 ctrl 6 altg nop @@ -38,10 +36,10 @@ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base + shift ? caps + ctrl ^_ altg '\\' key 46 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg nop -key 47 base å shift Å caps Å ctrl å altg nop +key 47 base 0x00E5 shift 0x00C5 caps 0x00C5 ctrl 0x00E5 altg nop key 48 base fa_umlaut shift ^ caps fa_umlaut ctrl fa_umlaut altg ~ -key 51 base ö shift Ö caps Ö ctrl ö altg nop -key 52 base ä shift Ä caps Ä ctrl ä altg nop +key 51 base 0x00F6 shift 0x00D6 caps 0x00D6 ctrl 0x00F6 altg nop +key 52 base 0x00E4 shift 0x00C4 caps 0x00C4 ctrl 0x00E4 altg nop key 50 base '\'' shift * caps '\'' ctrl '\'' altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^| altg | numl nonl up nop diff --git a/usr/src/cmd/loadkeys/type_6/france b/usr/src/cmd/loadkeys/type_6/france index 0e1c39c3cb..edcad8053c 100644 --- a/usr/src/cmd/loadkeys/type_6/france +++ b/usr/src/cmd/loadkeys/type_6/france @@ -22,40 +22,38 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # French Type 6 (USB) key layout # # "caps lock" acts as "shift lock" on this keyboard # -key 53 base ² shift nop caps ² ctrl ² altg nop +key 53 base 0x00B2 shift nop caps 0x00B2 ctrl 0x00B2 altg nop key 30 base & shift 1 caps & ctrl & altg nop -key 31 base é shift 2 caps é ctrl é altg ~ +key 31 base 0x00E9 shift 2 caps 0x00E9 ctrl 0x00E9 altg ~ key 32 base '"' shift 3 caps '"' ctrl '"' altg # key 33 base '\'' shift 4 caps '\'' ctrl '\'' altg { key 34 base ( shift 5 caps ( ctrl ^[ altg [ key 35 base - shift 6 caps - ctrl ^_ altg | -key 36 base è shift 7 caps è ctrl è altg ` +key 36 base 0x00E8 shift 7 caps 0x00E8 ctrl 0x00E8 altg ` key 37 base _ shift 8 caps _ ctrl ^\ altg \ -key 38 base ç shift 9 caps ç ctrl ^^ altg ^ -key 39 base à shift 0 caps à ctrl ^@ altg @ -key 45 base ) shift ° caps ) ctrl ^] altg ] +key 38 base 0x00E7 shift 9 caps 0x00E7 ctrl ^^ altg ^ +key 39 base 0x00E0 shift 0 caps 0x00E0 ctrl ^@ altg @ +key 45 base ) shift 0x00B0 caps ) ctrl ^] altg ] key 46 base = shift + caps = ctrl = altg } key 20 base a shift A caps A ctrl ^A altg nop key 26 base z shift Z caps Z ctrl ^Z altg nop key 47 base fa_cflex shift fa_umlaut caps fa_cflex ctrl fa_cflex altg nop -key 48 base $ shift £ caps $ ctrl $ altg ¤ +key 48 base $ shift 0x00A3 caps $ ctrl $ altg 0x00A4 key 4 base q shift Q caps Q ctrl ^Q altg nop key 51 base m shift M caps M ctrl ^M altg nop -key 52 base ù shift % caps ù ctrl ù altg nop -key 50 base * shift µ caps * ctrl * altg nop numl nonl up nop +key 52 base 0x00F9 shift % caps 0x00F9 ctrl 0x00F9 altg nop +key 50 base * shift 0x00B5 caps * ctrl * altg nop numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg nop numl nonl up nop key 29 base w shift W caps W ctrl ^W altg nop key 16 base , shift ? caps , ctrl , altg nop key 54 base ; shift . caps ; ctrl ; altg nop key 55 base : shift / caps : ctrl : altg nop -key 56 base ! shift § caps ! ctrl ! altg nop +key 56 base ! shift 0x00A7 caps ! ctrl ! altg nop # # # diff --git a/usr/src/cmd/loadkeys/type_6/germany b/usr/src/cmd/loadkeys/type_6/germany index c26ba4eee1..1377c4c4b4 100644 --- a/usr/src/cmd/loadkeys/type_6/germany +++ b/usr/src/cmd/loadkeys/type_6/germany @@ -22,16 +22,14 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # German Type 6 (USB) key layout # # "caps lock" acts as "shift lock" on this keyboard # -key 53 base ^ shift ° caps ^ ctrl ^^ altg nop +key 53 base ^ shift 0x00B0 caps ^ ctrl ^^ altg nop key 30 base 1 shift ! caps 1 ctrl 1 altg nop -key 31 base 2 shift '"' caps 2 ctrl ^@ altg ² -key 32 base 3 shift § caps 3 ctrl 3 altg ³ +key 31 base 2 shift '"' caps 2 ctrl ^@ altg 0x00B2 +key 32 base 3 shift 0x00A7 caps 3 ctrl 3 altg 0x00B3 key 33 base 4 shift $ caps 4 ctrl 4 altg nop key 34 base 5 shift % caps 5 ctrl 5 altg nop key 35 base 6 shift & caps 6 ctrl 6 altg nop @@ -39,19 +37,19 @@ key 36 base 7 shift / caps 7 ctrl 7 altg { key 37 base 8 shift ( caps 8 ctrl ^[ altg [ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } -key 45 base ß shift ? caps ß ctrl ^\ altg '\\' +key 45 base 0x00DF shift ? caps 0x00DF ctrl ^\ altg '\\' key 46 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg nop key 20 base q shift Q caps Q ctrl ^Q altg @ key 28 base z shift Z caps Z ctrl ^Z altg nop -key 47 base ü shift Ü caps Ü ctrl ü altg nop +key 47 base 0x00FC shift 0x00DC caps 0x00DC ctrl 0x00FC altg nop key 48 base + shift * caps + ctrl + altg ~ -key 51 base ö shift Ö caps Ö ctrl ö altg nop -key 52 base ä shift Ä caps Ä ctrl ä altg nop +key 51 base 0x00F6 shift 0x00D6 caps 0x00D6 ctrl 0x00F6 altg nop +key 52 base 0x00E4 shift 0x00C4 caps 0x00C4 ctrl 0x00E4 altg nop key 50 base # shift '\'' caps # ctrl # altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg | numl nonl up nop key 29 base y shift Y caps Y ctrl ^Y altg nop -key 16 base m shift M caps M ctrl '\r' altg µ +key 16 base m shift M caps M ctrl '\r' altg 0x00B5 key 54 base , shift ; caps , ctrl , altg nop key 55 base . shift : caps . ctrl . altg nop key 56 base - shift _ caps - ctrl ^_ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/greece b/usr/src/cmd/loadkeys/type_6/greece index c20507e228..aa9f6ca157 100644 --- a/usr/src/cmd/loadkeys/type_6/greece +++ b/usr/src/cmd/loadkeys/type_6/greece @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Greek Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/hungary b/usr/src/cmd/loadkeys/type_6/hungary index 668765061f..0227c744b2 100644 --- a/usr/src/cmd/loadkeys/type_6/hungary +++ b/usr/src/cmd/loadkeys/type_6/hungary @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Hungary Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/iceland b/usr/src/cmd/loadkeys/type_6/iceland index e18c8206e2..4ff9b4ab8a 100644 --- a/usr/src/cmd/loadkeys/type_6/iceland +++ b/usr/src/cmd/loadkeys/type_6/iceland @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Iceland Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/italy b/usr/src/cmd/loadkeys/type_6/italy index c2b70a221b..6c9e1effc0 100644 --- a/usr/src/cmd/loadkeys/type_6/italy +++ b/usr/src/cmd/loadkeys/type_6/italy @@ -22,25 +22,23 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Italian Type 6 (USB) key layout # key 53 base '\\' shift | caps '\\' ctrl ^\ altg nop key 31 base 2 shift '"' caps 2 ctrl 2 altg nop -key 32 base 3 shift £ caps 3 ctrl 3 altg nop +key 32 base 3 shift 0x00A3 caps 3 ctrl 3 altg nop key 35 base 6 shift & caps 6 ctrl 6 altg nop key 36 base 7 shift / caps 7 ctrl 7 altg nop key 37 base 8 shift ( caps 8 ctrl 8 altg { key 38 base 9 shift ) caps 9 ctrl 9 altg } key 39 base 0 shift = caps 0 ctrl 0 altg nop key 45 base '\'' shift ? caps '\'' ctrl '\'' altg '`' -key 46 base ì shift ^ caps Ì ctrl ^^ altg nop -key 47 base è shift é caps È ctrl ^[ altg [ +key 46 base 0x00EC shift ^ caps 0x00CC ctrl ^^ altg nop +key 47 base 0x00E8 shift 0x00E9 caps 0x00C8 ctrl ^[ altg [ key 48 base + shift * caps + ctrl ^] altg ] -key 51 base ò shift ç caps Ò ctrl ^@ altg @ -key 52 base à shift ° caps À ctrl à altg # -key 50 base ù shift § caps Ù ctrl ù altg ~ numl nonl up nop +key 51 base 0x00F2 shift 0x00E7 caps 0x00D2 ctrl ^@ altg @ +key 52 base 0x00E0 shift 0x00B0 caps 0x00C0 ctrl 0x00E0 altg # +key 50 base 0x00F9 shift 0x00A7 caps 0x00D9 ctrl 0x00F9 altg ~ numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg nop numl nonl up nop key 54 base , shift ; caps , ctrl , altg nop diff --git a/usr/src/cmd/loadkeys/type_6/japan b/usr/src/cmd/loadkeys/type_6/japan index c4b2ea1eeb..37f87cf47b 100644 --- a/usr/src/cmd/loadkeys/type_6/japan +++ b/usr/src/cmd/loadkeys/type_6/japan @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Japanese Type 6 (USB) key layout # # key 13: ROMAN/KANA diff --git a/usr/src/cmd/loadkeys/type_6/korea b/usr/src/cmd/loadkeys/type_6/korea index 2f8df8125f..473a996db6 100644 --- a/usr/src/cmd/loadkeys/type_6/korea +++ b/usr/src/cmd/loadkeys/type_6/korea @@ -22,8 +22,6 @@ # # CDDL HEADER END # -# ident "%Z%%M% %I% %E% SMI" -# # Korean Type 6 (USB) key layout # # diff --git a/usr/src/cmd/loadkeys/type_6/latinamerica b/usr/src/cmd/loadkeys/type_6/latinamerica index 26182531ce..a383f26390 100644 --- a/usr/src/cmd/loadkeys/type_6/latinamerica +++ b/usr/src/cmd/loadkeys/type_6/latinamerica @@ -22,11 +22,9 @@ # # CDDL HEADER END # -# ident "%Z%%M% %I% %E% SMI" -# # Latin American Type 6 (USB) key layout # -key 53 base | shift ° caps | ctrl hole altg ¬ +key 53 base | shift 0x00B0 caps | ctrl hole altg 0x00AC key 30 base 1 shift ! caps 1 ctrl 1 altg nop key 31 base 2 shift '"' caps 2 ctrl 2 altg nop key 32 base 3 shift # caps 3 ctrl 3 altg nop @@ -38,11 +36,11 @@ key 37 base 8 shift ( caps 8 ctrl 8 altg nop key 38 base 9 shift ) caps 9 ctrl 9 altg nop key 39 base 0 shift = caps 0 ctrl 0 altg nop key 45 base '\'' shift ? caps '\'' ctrl '\'' altg '\\' -key 46 base ¿ shift ¡ caps ¿ ctrl ¿ altg nop +key 46 base 0x00BF shift 0x00A1 caps 0x00BF ctrl 0x00BF altg nop key 20 base q shift Q caps Q ctrl ^@ altg @ key 47 base fa_acute shift fa_umlaut caps fa_acute ctrl fa_acute altg nop key 48 base + shift * caps + ctrl + altg ~ -key 51 base ñ shift Ñ caps Ñ ctrl ñ altg nop +key 51 base 0x00F1 shift 0x00D1 caps 0x00D1 ctrl 0x00F1 altg nop key 52 base { shift [ caps { ctrl ^[ altg ^ key 50 base } shift ] caps } ctrl ^] altg ` numl nonl up nop key 49 all hole diff --git a/usr/src/cmd/loadkeys/type_6/latvia b/usr/src/cmd/loadkeys/type_6/latvia index 99d9514c0d..b2794e5186 100644 --- a/usr/src/cmd/loadkeys/type_6/latvia +++ b/usr/src/cmd/loadkeys/type_6/latvia @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Latvian Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/lithuania b/usr/src/cmd/loadkeys/type_6/lithuania index 9b5fa55d8a..a594d3f440 100644 --- a/usr/src/cmd/loadkeys/type_6/lithuania +++ b/usr/src/cmd/loadkeys/type_6/lithuania @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Lithuanian Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/macedonia b/usr/src/cmd/loadkeys/type_6/macedonia index f287e76aa9..a48c051c54 100644 --- a/usr/src/cmd/loadkeys/type_6/macedonia +++ b/usr/src/cmd/loadkeys/type_6/macedonia @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Macedonian Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/maltauk b/usr/src/cmd/loadkeys/type_6/maltauk index 6e2862208d..71b10d6f09 100644 --- a/usr/src/cmd/loadkeys/type_6/maltauk +++ b/usr/src/cmd/loadkeys/type_6/maltauk @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Malta UK Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/maltaus b/usr/src/cmd/loadkeys/type_6/maltaus index 4e95c9aa28..bc93655470 100644 --- a/usr/src/cmd/loadkeys/type_6/maltaus +++ b/usr/src/cmd/loadkeys/type_6/maltaus @@ -22,8 +22,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Malta US Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/netherlands b/usr/src/cmd/loadkeys/type_6/netherlands index a412f185ff..7524bacf09 100644 --- a/usr/src/cmd/loadkeys/type_6/netherlands +++ b/usr/src/cmd/loadkeys/type_6/netherlands @@ -22,37 +22,35 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Dutch Type 6 (USB) key layout # -key 53 base @ shift § caps @ ctrl ^@ altg '¬' -key 30 base 1 shift ! caps 1 ctrl 1 altg ¹ -key 31 base 2 shift '"' caps 2 ctrl 2 altg ² -key 32 base 3 shift # caps 3 ctrl 3 altg ³ -key 33 base 4 shift $ caps 4 ctrl 4 altg ¼ -key 34 base 5 shift % caps 5 ctrl 5 altg ½ -key 35 base 6 shift & caps 6 ctrl 6 altg ¾ -key 36 base 7 shift _ caps 7 ctrl ^_ altg £ +key 53 base @ shift 0x00A7 caps @ ctrl ^@ altg 0x00AC +key 30 base 1 shift ! caps 1 ctrl 1 altg 0x00B9 +key 31 base 2 shift '"' caps 2 ctrl 2 altg 0x00B2 +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00B3 +key 33 base 4 shift $ caps 4 ctrl 4 altg 0x00BC +key 34 base 5 shift % caps 5 ctrl 5 altg 0x00BD +key 35 base 6 shift & caps 6 ctrl 6 altg 0x00BE +key 36 base 7 shift _ caps 7 ctrl ^_ altg 0x00A3 key 37 base 8 shift ( caps 8 ctrl 8 altg { key 38 base 9 shift ) caps 9 ctrl ^] altg } key 39 base 0 shift '\'' caps 0 ctrl 0 altg '`' key 45 base / shift ? caps / ctrl ^\ altg '\\' -key 46 base ° shift fa_tilde caps ° ctrl ° altg fa_cedilla +key 46 base 0x00B0 shift fa_tilde caps 0x00B0 ctrl 0x00B0 altg fa_cedilla key 47 base fa_umlaut shift fa_cflex caps fa_umlaut ctrl fa_umlaut altg nop key 48 base * shift | caps * ctrl * altg ~ -key 22 base s shift S caps S ctrl ^S altg ß -key 51 base + shift ± caps + ctrl + altg nop +key 22 base s shift S caps S ctrl ^S altg 0x00DF +key 51 base + shift 0x00B1 caps + ctrl + altg nop key 52 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg nop key 50 base < shift > caps < ctrl ^^ altg ^ numl nonl up nop key 49 all hole -key 100 base ] shift [ caps [ ctrl ^[ altg ¦ numl nonl up nop -key 29 base z shift Z caps Z ctrl ^Z altg « -key 27 base x shift X caps X ctrl ^X altg » -key 6 base c shift C caps C ctrl ^C altg ¢ -key 16 base m shift M caps M ctrl '\r' altg µ +key 100 base ] shift [ caps [ ctrl ^[ altg 0x00A6 numl nonl up nop +key 29 base z shift Z caps Z ctrl ^Z altg 0x00AB +key 27 base x shift X caps X ctrl ^X altg 0x00BB +key 6 base c shift C caps C ctrl ^C altg 0x00A2 +key 16 base m shift M caps M ctrl '\r' altg 0x00B5 key 54 base , shift ; caps , ctrl , altg nop -key 55 base . shift : caps . ctrl . altg · +key 55 base . shift : caps . ctrl . altg 0x00B7 key 56 base - shift = caps - ctrl ^_ altg nop # # diff --git a/usr/src/cmd/loadkeys/type_6/norway b/usr/src/cmd/loadkeys/type_6/norway index 182f912305..21f93521a3 100644 --- a/usr/src/cmd/loadkeys/type_6/norway +++ b/usr/src/cmd/loadkeys/type_6/norway @@ -22,14 +22,12 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Norwegian Type 6 (USB) key layout # -key 53 base | shift § caps | ctrl | altg nop +key 53 base | shift 0x00A7 caps | ctrl | altg nop key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift ¤ caps 4 ctrl 4 altg $ +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 +key 33 base 4 shift 0x00A4 caps 4 ctrl 4 altg $ key 34 base 5 shift % caps 5 ctrl 5 altg ~ key 35 base 6 shift & caps 6 ctrl ^^ altg ^ key 36 base 7 shift / caps 7 ctrl 7 altg { @@ -38,10 +36,10 @@ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base + shift ? caps + ctrl + altg nop key 46 base '\\' shift fa_grave caps '\\' ctrl ^\ altg fa_acute -key 47 base å shift Å caps Å ctrl å altg nop +key 47 base 0x00E5 shift 0x00C5 caps 0x00C5 ctrl 0x00E5 altg nop key 48 base fa_umlaut shift fa_cflex caps fa_umlaut ctrl ^^ altg fa_tilde -key 51 base ø shift Ø caps Ø ctrl ø altg nop -key 52 base æ shift Æ caps Æ ctrl æ altg nop +key 51 base 0x00F8 shift 0x00D8 caps 0x00D8 ctrl 0x00F8 altg nop +key 52 base 0x00E6 shift 0x00C6 caps 0x00C6 ctrl 0x00E6 altg nop key 50 base '\'' shift * caps '\'' ctrl '\'' altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg nop numl nonl up nop diff --git a/usr/src/cmd/loadkeys/type_6/poland b/usr/src/cmd/loadkeys/type_6/poland index 4c7c605aef..b5da164e8a 100644 --- a/usr/src/cmd/loadkeys/type_6/poland +++ b/usr/src/cmd/loadkeys/type_6/poland @@ -21,8 +21,6 @@ # # CDDL HEADER END # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Polish Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/portugal b/usr/src/cmd/loadkeys/type_6/portugal index 335ea464e5..817b821ab7 100644 --- a/usr/src/cmd/loadkeys/type_6/portugal +++ b/usr/src/cmd/loadkeys/type_6/portugal @@ -22,14 +22,12 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Portuguese Type 6 (USB) key layout # key 53 base '\\' shift | caps '\\' ctrl ^\ altg nop key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift $ caps 4 ctrl 4 altg § +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 +key 33 base 4 shift $ caps 4 ctrl 4 altg 0x00A7 key 34 base 5 shift % caps 5 ctrl 5 altg ~ key 35 base 6 shift & caps 6 ctrl ^^ altg ^ key 36 base 7 shift / caps 7 ctrl 7 altg { @@ -37,11 +35,11 @@ key 37 base 8 shift ( caps 8 ctrl ^[ altg [ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base '\'' shift ? caps '\'' ctrl '\'' altg '`' -key 46 base « shift » caps « ctrl « altg nop +key 46 base 0x00AB shift 0x00BB caps 0x00AB ctrl 0x00AB altg nop key 47 base + shift * caps + ctrl + altg fa_umlaut key 48 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg nop -key 51 base ç shift Ç caps Ç ctrl ç altg nop -key 52 base º shift ª caps º ctrl º altg nop +key 51 base 0x00E7 shift 0x00C7 caps 0x00C7 ctrl 0x00E7 altg nop +key 52 base 0x00BA shift 0x00AA caps 0x00BA ctrl 0x00BA altg nop key 50 base fa_tilde shift fa_cflex caps fa_tilde ctrl ^^ altg nop numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl < altg nop numl nonl up nop diff --git a/usr/src/cmd/loadkeys/type_6/russia b/usr/src/cmd/loadkeys/type_6/russia index 15a7272e43..22803f8357 100644 --- a/usr/src/cmd/loadkeys/type_6/russia +++ b/usr/src/cmd/loadkeys/type_6/russia @@ -22,8 +22,6 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Russian Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/serbiaandmontenegro b/usr/src/cmd/loadkeys/type_6/serbiaandmontenegro index 9b91b1fef0..68712e9ee5 100644 --- a/usr/src/cmd/loadkeys/type_6/serbiaandmontenegro +++ b/usr/src/cmd/loadkeys/type_6/serbiaandmontenegro @@ -21,8 +21,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Serbia-And-Montenegro Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/slovakia b/usr/src/cmd/loadkeys/type_6/slovakia index 038490b74a..429d36edff 100644 --- a/usr/src/cmd/loadkeys/type_6/slovakia +++ b/usr/src/cmd/loadkeys/type_6/slovakia @@ -20,8 +20,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Slovakia Type 6 (USB) key layout # # Note, on the console, this keyboard layout is exactly diff --git a/usr/src/cmd/loadkeys/type_6/spain b/usr/src/cmd/loadkeys/type_6/spain index 41acd98d81..b9d60e76f7 100644 --- a/usr/src/cmd/loadkeys/type_6/spain +++ b/usr/src/cmd/loadkeys/type_6/spain @@ -23,28 +23,26 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Spanish Type 6 (USB) key layout # -key 53 base º shift ª caps º ctrl ^\ altg '\\' +key 53 base 0x00BA shift 0x00AA caps 0x00BA ctrl ^\ altg '\\' key 30 base 1 shift ! caps 1 ctrl 1 altg | key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift · caps 3 ctrl 3 altg # +key 32 base 3 shift 0x00B7 caps 3 ctrl 3 altg # key 33 base 4 shift $ caps 4 ctrl ^^ altg ^ key 34 base 5 shift % caps 5 ctrl 5 altg ~ -key 35 base 6 shift & caps 6 ctrl 6 altg ¬ +key 35 base 6 shift & caps 6 ctrl 6 altg 0x00AC key 36 base 7 shift / caps 7 ctrl 7 altg nop key 37 base 8 shift ( caps 8 ctrl 8 altg nop key 38 base 9 shift ) caps 9 ctrl 9 altg nop key 39 base 0 shift = caps 0 ctrl 0 altg nop key 45 base '\'' shift ? caps '\'' ctrl '\'' altg '`' -key 46 base ¡ shift ¿ caps ¡ ctrl ¡ altg nop +key 46 base 0x00A1 shift 0x00BF caps 0x00A1 ctrl 0x00A1 altg nop key 47 base fa_grave shift fa_cflex caps fa_grave ctrl ^[ altg [ key 48 base + shift * caps + ctrl ^] altg ] -key 51 base ñ shift Ñ caps Ñ ctrl ñ altg nop +key 51 base 0x00F1 shift 0x00D1 caps 0x00D1 ctrl 0x00F1 altg nop key 52 base fa_acute shift fa_umlaut caps fa_acute ctrl fa_acute altg { -key 50 base ç shift Ç caps Ç ctrl ç altg } numl nonl up nop +key 50 base 0x00E7 shift 0x00C7 caps 0x00C7 ctrl 0x00E7 altg } numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^^ altg nop numl nonl up nop key 54 base , shift ; caps , ctrl , altg nop diff --git a/usr/src/cmd/loadkeys/type_6/sweden b/usr/src/cmd/loadkeys/type_6/sweden index 2561cc7c2f..9b04ff05af 100644 --- a/usr/src/cmd/loadkeys/type_6/sweden +++ b/usr/src/cmd/loadkeys/type_6/sweden @@ -22,14 +22,12 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Swedish Type 6 (USB) key layout # -key 53 base § shift ½ caps § ctrl § altg nop +key 53 base 0x00A7 shift 0x00BD caps 0x00A7 ctrl 0x00A7 altg nop key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ -key 32 base 3 shift # caps 3 ctrl 3 altg £ -key 33 base 4 shift ¤ caps 4 ctrl 4 altg $ +key 32 base 3 shift # caps 3 ctrl 3 altg 0x00A3 +key 33 base 4 shift 0x00A4 caps 4 ctrl 4 altg $ key 34 base 5 shift % caps 5 ctrl 5 altg nop key 35 base 6 shift & caps 6 ctrl 6 altg nop key 36 base 7 shift / caps 7 ctrl 7 altg { @@ -38,10 +36,10 @@ key 38 base 9 shift ) caps 9 ctrl ^] altg ] key 39 base 0 shift = caps 0 ctrl 0 altg } key 45 base + shift ? caps + ctrl ^_ altg '\\' key 46 base fa_acute shift fa_grave caps fa_acute ctrl fa_acute altg nop -key 47 base å shift Å caps Å ctrl å altg nop +key 47 base 0x00E5 shift 0x00C5 caps 0x00C5 ctrl 0x00E5 altg nop key 48 base fa_umlaut shift ^ caps fa_umlaut ctrl fa_umlaut altg ~ -key 51 base ö shift Ö caps Ö ctrl ö altg nop -key 52 base ä shift Ä caps Ä ctrl ä altg nop +key 51 base 0x00F6 shift 0x00D6 caps 0x00D6 ctrl 0x00F6 altg nop +key 52 base 0x00E4 shift 0x00C4 caps 0x00C4 ctrl 0x00E4 altg nop key 50 base '\'' shift * caps '\'' ctrl '\'' altg '`' numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^| altg | numl nonl up nop diff --git a/usr/src/cmd/loadkeys/type_6/swiss_french b/usr/src/cmd/loadkeys/type_6/swiss_french index 0b4efa5ca6..5a5e9af0fe 100644 --- a/usr/src/cmd/loadkeys/type_6/swiss_french +++ b/usr/src/cmd/loadkeys/type_6/swiss_french @@ -22,15 +22,13 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Swiss French Type 6 (USB) key layout # -key 53 base § shift ° caps § ctrl § altg nop +key 53 base 0x00A7 shift 0x00B0 caps 0x00A7 ctrl 0x00A7 altg nop key 30 base 1 shift + caps 1 ctrl 1 altg | key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ key 32 base 3 shift * caps 3 ctrl 3 altg # -key 33 base 4 shift ç caps 4 ctrl ^^ altg ^ +key 33 base 4 shift 0x00E7 caps 4 ctrl ^^ altg ^ key 34 base 5 shift % caps 5 ctrl 5 altg ~ key 35 base 6 shift & caps 6 ctrl 6 altg nop key 36 base 7 shift / caps 7 ctrl 7 altg nop @@ -40,11 +38,11 @@ key 39 base 0 shift = caps 0 ctrl 0 altg '`' key 45 base '\'' shift ? caps '\'' ctrl '\'' altg fa_acute key 46 base fa_cflex shift fa_grave caps fa_cflex ctrl ^^ altg fa_tilde key 28 base z shift Z caps Z ctrl ^Z altg nop -key 47 base è shift ü caps È ctrl ^[ altg [ +key 47 base 0x00E8 shift 0x00FC caps 0x00C8 ctrl ^[ altg [ key 48 base fa_umlaut shift ! caps fa_umlaut ctrl ^] altg ] -key 51 base é shift ö caps É ctrl é altg nop -key 52 base à shift ä caps À ctrl à altg { -key 50 base $ shift £ caps $ ctrl $ altg } numl nonl up nop +key 51 base 0x00E9 shift 0x00F6 caps 0x00C9 ctrl 0x00E9 altg nop +key 52 base 0x00E0 shift 0x00E4 caps 0x00C0 ctrl 0x00E0 altg { +key 50 base $ shift 0x00A3 caps $ ctrl $ altg } numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^\ altg '\\' numl nonl up nop key 29 base y shift Y caps Y ctrl ^Y altg nop diff --git a/usr/src/cmd/loadkeys/type_6/swiss_german b/usr/src/cmd/loadkeys/type_6/swiss_german index 0131514521..bae367d68d 100644 --- a/usr/src/cmd/loadkeys/type_6/swiss_german +++ b/usr/src/cmd/loadkeys/type_6/swiss_german @@ -22,15 +22,13 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # Swiss German Type 6 (USB) key layout # -key 53 base § shift ° caps § ctrl § altg nop +key 53 base 0x00A7 shift 0x00B0 caps 0x00A7 ctrl 0x00A7 altg nop key 30 base 1 shift + caps 1 ctrl 1 altg | key 31 base 2 shift '"' caps 2 ctrl ^@ altg @ key 32 base 3 shift * caps 3 ctrl 3 altg # -key 33 base 4 shift ç caps 4 ctrl ^^ altg ^ +key 33 base 4 shift 0x00E7 caps 4 ctrl ^^ altg ^ key 34 base 5 shift % caps 5 ctrl 5 altg ~ key 35 base 6 shift & caps 6 ctrl 6 altg nop key 36 base 7 shift / caps 7 ctrl 7 altg nop @@ -40,11 +38,11 @@ key 39 base 0 shift = caps 0 ctrl 0 altg '`' key 45 base '\'' shift ? caps '\'' ctrl '\'' altg fa_acute key 46 base fa_cflex shift fa_grave caps fa_cflex ctrl ^^ altg fa_tilde key 28 base z shift Z caps Z ctrl ^Z altg nop -key 47 base ü shift è caps Ü ctrl ^[ altg [ +key 47 base 0x00FC shift 0x00E8 caps 0x00DC ctrl ^[ altg [ key 48 base fa_umlaut shift ! caps fa_umlaut ctrl ^] altg ] -key 51 base ö shift é caps Ö ctrl ö altg nop -key 52 base ä shift à caps Ä ctrl ä altg { -key 50 base $ shift £ caps $ ctrl $ altg } numl nonl up nop +key 51 base 0x00F6 shift 0x00E9 caps 0x00D6 ctrl 0x00F6 altg nop +key 52 base 0x00E4 shift 0x00E0 caps 0x00C4 ctrl 0x00E4 altg { +key 50 base $ shift 0x00A3 caps $ ctrl $ altg } numl nonl up nop key 49 all hole key 100 base < shift > caps < ctrl ^\ altg '\\' numl nonl up nop key 29 base y shift Y caps Y ctrl ^Y altg nop diff --git a/usr/src/cmd/loadkeys/type_6/turkeyf b/usr/src/cmd/loadkeys/type_6/turkeyf index 56d77fffc2..d74476ea09 100644 --- a/usr/src/cmd/loadkeys/type_6/turkeyf +++ b/usr/src/cmd/loadkeys/type_6/turkeyf @@ -21,8 +21,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Turkey F Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/turkeyq b/usr/src/cmd/loadkeys/type_6/turkeyq index e794343a27..a8e337c3dd 100644 --- a/usr/src/cmd/loadkeys/type_6/turkeyq +++ b/usr/src/cmd/loadkeys/type_6/turkeyq @@ -21,8 +21,6 @@ # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#pragma ident "%Z%%M% %I% %E% SMI" -# # Turkey F Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/cmd/loadkeys/type_6/uk b/usr/src/cmd/loadkeys/type_6/uk index 5f1ab05034..1a07302667 100644 --- a/usr/src/cmd/loadkeys/type_6/uk +++ b/usr/src/cmd/loadkeys/type_6/uk @@ -22,13 +22,11 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# # UK Type 6 (USB) key layout # -key 53 base ` shift ¬ caps ` ctrl ` altg ¦ +key 53 base ` shift 0x00AC caps ` ctrl ` altg 0x00A6 key 31 base 2 shift '"' caps 2 ctrl 2 altg nop -key 32 base 3 shift £ caps 3 ctrl 3 altg nop +key 32 base 3 shift 0x00A3 caps 3 ctrl 3 altg nop key 52 base '\'' shift @ caps '\'' ctrl ^@ altg nop key 50 base # shift ~ caps # ctrl # altg nop numl nonl up nop key 49 all hole diff --git a/usr/src/cmd/loadkeys/type_6/us b/usr/src/cmd/loadkeys/type_6/us index 8d66fdadd0..4375f25e12 100644 --- a/usr/src/cmd/loadkeys/type_6/us +++ b/usr/src/cmd/loadkeys/type_6/us @@ -22,8 +22,6 @@ # # CDDL HEADER END # -# ident "%Z%%M% %I% %E% SMI" -# # US Type 6 (USB) key layout # key 49 base '\\' shift | caps '\\' ctrl ^\ altg nop diff --git a/usr/src/uts/common/io/kb8042/kb8042.c b/usr/src/uts/common/io/kb8042/kb8042.c index ba7746eae4..0b1480bf1f 100644 --- a/usr/src/uts/common/io/kb8042/kb8042.c +++ b/usr/src/uts/common/io/kb8042/kb8042.c @@ -159,22 +159,46 @@ static int kb8042_close(queue_t *qp, int flag, cred_t *credp); static int kb8042_wsrv(); struct module_info kb8042_sinfo = { - 42, /* Module ID */ - module_name, - 0, 32, /* Minimum and maximum packet sizes */ - 256, 128 /* High and low water marks */ + .mi_idnum = 42, /* Module ID */ + .mi_idname = module_name, /* Module name */ + .mi_minpsz = 0, /* Minimum packet size */ + .mi_maxpsz = 32, /* Maximum packet size */ + .mi_hiwat = 256, /* High water mark */ + .mi_lowat = 128 /* Low water mark */ }; static struct qinit kb8042_rinit = { - NULL, NULL, kb8042_open, kb8042_close, NULL, &kb8042_sinfo, NULL + .qi_putp = NULL, + .qi_srvp = NULL, + .qi_qopen = kb8042_open, + .qi_qclose = kb8042_close, + .qi_qadmin = NULL, + .qi_minfo = &kb8042_sinfo, + .qi_mstat = NULL, + .qi_rwp = NULL, + .qi_infop = NULL, + .qi_struiot = 0 }; static struct qinit kb8042_winit = { - putq, kb8042_wsrv, kb8042_open, kb8042_close, NULL, &kb8042_sinfo, NULL + .qi_putp = putq, + .qi_srvp = kb8042_wsrv, + .qi_qopen = kb8042_open, + .qi_qclose = kb8042_close, + .qi_qadmin = NULL, + .qi_minfo = &kb8042_sinfo, + .qi_mstat = NULL, + .qi_rwp = NULL, + .qi_infop = NULL, + .qi_struiot = 0 }; -struct streamtab - kb8042_str_info = { &kb8042_rinit, &kb8042_winit, NULL, NULL }; +struct streamtab kb8042_str_info = { + .st_rdinit = &kb8042_rinit, + .st_wrinit = &kb8042_winit, + .st_muxrinit = NULL, + .st_muxwinit = NULL +}; struct kb8042 Kdws = {0}; static dev_info_t *kb8042_dip = NULL; @@ -185,36 +209,39 @@ static int kb8042_attach(dev_info_t *, ddi_attach_cmd_t); static int kb8042_detach(dev_info_t *, ddi_detach_cmd_t); static struct cb_ops cb_kb8042_ops = { - nulldev, /* cb_open */ - nulldev, /* cb_close */ - nodev, /* cb_strategy */ - nodev, /* cb_print */ - nodev, /* cb_dump */ - nodev, /* cb_read */ - nodev, /* cb_write */ - nodev, /* cb_ioctl */ - nodev, /* cb_devmap */ - nodev, /* cb_mmap */ - nodev, /* cb_segmap */ - nochpoll, /* cb_chpoll */ - ddi_prop_op, /* cb_prop_op */ - &kb8042_str_info, /* cb_stream */ - D_MP + .cb_open = nulldev, + .cb_close = nulldev, + .cb_strategy = nodev, + .cb_print = nodev, + .cb_dump = nodev, + .cb_read = nodev, + .cb_write = nodev, + .cb_ioctl = nodev, + .cb_devmap = nodev, + .cb_mmap = nodev, + .cb_segmap = nodev, + .cb_chpoll = nochpoll, + .cb_prop_op = ddi_prop_op, + .cb_str = &kb8042_str_info, + .cb_flag = D_MP, + .cb_rev = CB_REV, + .cb_aread = nodev, + .cb_awrite = nodev }; struct dev_ops kb8042_ops = { - DEVO_REV, /* devo_rev */ - 0, /* devo_refcnt */ - kb8042_getinfo, /* devo_getinfo */ - nulldev, /* devo_identify */ - nulldev, /* devo_probe */ - kb8042_attach, /* devo_attach */ - kb8042_detach, /* devo_detach */ - nodev, /* devo_reset */ - &cb_kb8042_ops, /* devo_cb_ops */ - (struct bus_ops *)NULL, /* devo_bus_ops */ - NULL, /* devo_power */ - ddi_quiesce_not_needed, /* devo_quiesce */ + .devo_rev = DEVO_REV, + .devo_refcnt = 0, + .devo_getinfo = kb8042_getinfo, + .devo_identify = nulldev, + .devo_probe = nulldev, + .devo_attach = kb8042_attach, + .devo_detach = kb8042_detach, + .devo_reset = nodev, + .devo_cb_ops = &cb_kb8042_ops, + .devo_bus_ops = NULL, + .devo_power = NULL, + .devo_quiesce = ddi_quiesce_not_needed }; @@ -227,15 +254,14 @@ struct dev_ops kb8042_ops = { * Module linkage information for the kernel. */ static struct modldrv modldrv = { - &mod_driverops, /* Type of module. This one is a driver */ - "PS/2 keyboard driver", - &kb8042_ops, /* driver ops */ + .drv_modops = &mod_driverops, /* Type of module. */ + .drv_linkinfo = "PS/2 keyboard driver", + .drv_dev_ops = &kb8042_ops, /* driver ops */ }; static struct modlinkage modlinkage = { - MODREV_1, - (void *) &modldrv, - NULL + .ml_rev = MODREV_1, + .ml_linkage = { &modldrv, NULL } }; int diff --git a/usr/src/uts/common/io/kbtrans/kbtrans.c b/usr/src/uts/common/io/kbtrans/kbtrans.c index f01d4b8f06..2091a18162 100644 --- a/usr/src/uts/common/io/kbtrans/kbtrans.c +++ b/usr/src/uts/common/io/kbtrans/kbtrans.c @@ -24,8 +24,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * Generic keyboard support: translation * @@ -63,11 +61,11 @@ /* * Internal Function Prototypes */ -static boolean_t kbtrans_do_compose(struct kbtrans_lower *, ushort_t, - ushort_t, ushort_t *); -static void kbtrans_translate(struct kbtrans_lower *, - struct keyboard_callback *, kbtrans_key_t, - enum keystate); +static boolean_t kbtrans_do_compose(struct kbtrans_lower *, keymap_entry_t, + keymap_entry_t, keymap_entry_t *); +static void kbtrans_translate(struct kbtrans_lower *, + struct keyboard_callback *, kbtrans_key_t, enum keystate); + /* * kbtrans_processkey: * @@ -83,12 +81,10 @@ static void kbtrans_translate(struct kbtrans_lower *, */ void kbtrans_processkey(struct kbtrans_lower *lower, - struct keyboard_callback *cb, - kbtrans_key_t key, - enum keystate state) + struct keyboard_callback *cb, kbtrans_key_t key, enum keystate state) { DPRINTF(PRINT_L0, PRINT_MASK_ALL, (lower, "kbtrans_processkey: " - "newstate=%d key=%d", state, key)); + "newstate=%d key=%d", state, key)); /* * If there is a raw routine, then call it and return. @@ -126,21 +122,19 @@ kbtrans_processkey(struct kbtrans_lower *lower, * for the character when it is done translating it. */ static void -kbtrans_translate(struct kbtrans_lower *lower, - struct keyboard_callback *cb, - kbtrans_key_t key, - enum keystate newstate) +kbtrans_translate(struct kbtrans_lower *lower, struct keyboard_callback *cb, + kbtrans_key_t key, enum keystate newstate) { unsigned shiftmask; - register ushort_t entry; - register ushort_t entrytype; - ushort_t result_iso; - unsigned short *ke; + register keymap_entry_t entry; + register unsigned entrytype; + keymap_entry_t result; + keymap_entry_t *ke; int i; boolean_t good_compose; DPRINTF(PRINT_L0, PRINT_MASK_ALL, (lower, "KEY TRANSLATE " - "newstate=0x%x key=0x%x\n", newstate, key)); + "newstate=0x%x key=0x%x\n", newstate, key)); if (lower->kbtrans_keyboard == NULL) { /* @@ -188,8 +182,7 @@ kbtrans_translate(struct kbtrans_lower *lower, * ask for the table we would have gotten had Num Lock not been * down, and translate using that table. */ - ke = kbtrans_find_entry(lower, shiftmask & ~NUMLOCKMASK, - key); + ke = kbtrans_find_entry(lower, shiftmask & ~NUMLOCKMASK, key); if (ke == NULL) { /* @@ -212,7 +205,7 @@ kbtrans_translate(struct kbtrans_lower *lower, * Categories include shift keys, function keys, and numeric keypad * keys. */ - entrytype = (ushort_t)(entry & 0xFF00); + entrytype = KEYFLAGS(entry); if (entrytype == SHIFTKEYS) { /* @@ -222,8 +215,7 @@ kbtrans_translate(struct kbtrans_lower *lower, */ if ((1 << (entry & 0x0F)) & lower->kbtrans_keyboard->k_toggleshifts) { - if ((1 << (entry & 0x0F)) & - lower->kbtrans_togglemask) { + if ((1 << (entry & 0x0F)) & lower->kbtrans_togglemask) { newstate = KEY_RELEASED; /* toggling off */ } else { newstate = KEY_PRESSED; /* toggling on */ @@ -236,7 +228,6 @@ kbtrans_translate(struct kbtrans_lower *lower, switch (lower->kbtrans_state) { case COMPOSE1: if (newstate == KEY_RELEASED) - return; if (entry < ASCII_SET_SIZE) { @@ -265,28 +256,22 @@ kbtrans_translate(struct kbtrans_lower *lower, cb->kc_setled(lower->kbtrans_upper); good_compose = kbtrans_do_compose(lower, - lower->kbtrans_compose_key, entry, - &result_iso); + lower->kbtrans_compose_key, entry, &result); if (good_compose) { - if (lower->kbtrans_compat) - result_iso += ISO_FIRST; - else - result_iso += EUC_FIRST; cb->kc_keypressed(lower->kbtrans_upper, - entrytype, key, result_iso); + entrytype, key, result); } return; case FLTACCENT: if (newstate == KEY_RELEASED) - return; /* next state is "normal" */ lower->kbtrans_state = NORMAL; for (i = 0; - (lower->kbtrans_fltaccent_table[i].fa_entry - != lower->kbtrans_fltaccent_entry) || + (lower->kbtrans_fltaccent_table[i].fa_entry != + lower->kbtrans_fltaccent_entry) || (lower->kbtrans_fltaccent_table[i].ascii != entry); i++) { if (lower->kbtrans_fltaccent_table[i].fa_entry @@ -297,10 +282,8 @@ kbtrans_translate(struct kbtrans_lower *lower, } } - cb->kc_keypressed(lower->kbtrans_upper, entrytype, - key, (lower->kbtrans_compat ? - ISO_FIRST : EUC_FIRST) + - lower->kbtrans_fltaccent_table[i].iso); + cb->kc_keypressed(lower->kbtrans_upper, entrytype, key, + lower->kbtrans_fltaccent_table[i].utf8); return; } @@ -321,7 +304,7 @@ kbtrans_translate(struct kbtrans_lower *lower, if (lower->kbtrans_repeatkey != key) { cb->kc_cancel_repeat(lower->kbtrans_upper); cb->kc_setup_repeat(lower->kbtrans_upper, entrytype, - key); + key); } /* key going up */ } else if (key == lower->kbtrans_repeatkey) { @@ -342,7 +325,7 @@ kbtrans_translate(struct kbtrans_lower *lower, case 0x0: /* regular key */ cb->kc_keypressed(lower->kbtrans_upper, entrytype, key, - entry | lower->kbtrans_buckybits); + SPECIAL(lower->kbtrans_buckybits, entry)); break; case SHIFTKEYS: { @@ -353,13 +336,13 @@ kbtrans_translate(struct kbtrans_lower *lower, if (newstate == KEY_RELEASED) { if (shiftbit == CAPSMASK) { lower->kbtrans_led_state &= - ~LED_CAPS_LOCK; + ~LED_CAPS_LOCK; cb->kc_setled(lower->kbtrans_upper); } else if (shiftbit == NUMLOCKMASK) { lower->kbtrans_led_state &= - ~LED_NUM_LOCK; + ~LED_NUM_LOCK; cb->kc_setled(lower->kbtrans_upper); } @@ -367,12 +350,12 @@ kbtrans_translate(struct kbtrans_lower *lower, } else { if (shiftbit == CAPSMASK) { lower->kbtrans_led_state |= - LED_CAPS_LOCK; + LED_CAPS_LOCK; cb->kc_setled(lower->kbtrans_upper); } else if (shiftbit == NUMLOCKMASK) { lower->kbtrans_led_state |= - LED_NUM_LOCK; + LED_NUM_LOCK; cb->kc_setled(lower->kbtrans_upper); } @@ -387,18 +370,18 @@ kbtrans_translate(struct kbtrans_lower *lower, if (newstate == KEY_PRESSED) { cb->kc_keypressed(lower->kbtrans_upper, entrytype, key, - entry); + entry); } break; } case BUCKYBITS: - lower->kbtrans_buckybits ^= 1 << (7 + (entry & 0x0F)); + lower->kbtrans_buckybits ^= 1 << (entry & 0x0F); if (newstate == KEY_PRESSED) { cb->kc_keypressed(lower->kbtrans_upper, entrytype, key, - entry); + entry); } break; @@ -414,18 +397,18 @@ kbtrans_translate(struct kbtrans_lower *lower, case RESET: case ERROR: lower->kbtrans_shiftmask &= - lower->kbtrans_keyboard->k_idleshifts; + lower->kbtrans_keyboard->k_idleshifts; lower->kbtrans_shiftmask |= - lower->kbtrans_togglemask; + lower->kbtrans_togglemask; lower->kbtrans_buckybits &= - lower->kbtrans_keyboard->k_idlebuckys; + lower->kbtrans_keyboard->k_idlebuckys; cb->kc_cancel_repeat(lower->kbtrans_upper); cb->kc_keypressed(lower->kbtrans_upper, entrytype, key, - entry); + entry); break; @@ -480,16 +463,14 @@ kbtrans_translate(struct kbtrans_lower *lower, /* * kbtrans_do_compose: * Given a two key compose sequence, lookup the iso equivalent and put - * the result in the result_iso_ptr. + * the result in the result_ptr. */ static boolean_t -kbtrans_do_compose(struct kbtrans_lower *lower, - ushort_t first_entry, - ushort_t second_entry, - ushort_t *result_iso_ptr) +kbtrans_do_compose(struct kbtrans_lower *lower, keymap_entry_t first_entry, + keymap_entry_t second_entry, keymap_entry_t *result_ptr) { struct compose_sequence_t *ptr; - ushort_t tmp; + keymap_entry_t tmp; /* * Validate the second keystroke. @@ -510,11 +491,11 @@ kbtrans_do_compose(struct kbtrans_lower *lower, } ptr = lower->kbtrans_compose_table + - lower->kbtrans_compose_map[first_entry]; + lower->kbtrans_compose_map[first_entry]; while (ptr->first == first_entry) { if (ptr->second == second_entry) { - *result_iso_ptr = ptr->iso; + *result_ptr = ptr->utf8; return (B_TRUE); } @@ -529,10 +510,9 @@ kbtrans_do_compose(struct kbtrans_lower *lower, * This routine finds the entry corresponding to the current shift * state and keycode. */ -unsigned short * -kbtrans_find_entry(struct kbtrans_lower *lower, - register uint_t mask, - kbtrans_key_t key_station) +keymap_entry_t * +kbtrans_find_entry(struct kbtrans_lower *lower, uint_t mask, + kbtrans_key_t key_station) { register struct keyboard *kp; keymap_entry_t *km; diff --git a/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c b/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c index 197a412e6e..7755c14aad 100644 --- a/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c +++ b/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c @@ -24,8 +24,6 @@ * All rights reserved. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * This file contains generic keytable information across all * keyboard hardware. @@ -217,7 +215,7 @@ signed char kb_compose_map[ASCII_SET_SIZE] = { * (top to bottom). */ -/* COMPOSE + first character + second character => ISO character */ +/* COMPOSE + first character + second character => UTF-8 character */ struct compose_sequence_t kb_compose_table[] = { @@ -341,9 +339,10 @@ struct compose_sequence_t kb_compose_table[] = { * Floating Accent Sequence Table */ -/* FA + ASCII character => ISO character */ +/* FA + ASCII character => UTF-8 character */ struct fltaccent_sequence_t kb_fltaccent_table[] = { + {FA_UMLAUT, ' ', 0xA8}, /* umlaut/diaresis */ {FA_UMLAUT, 'A', 0xC4}, /* A with umlaut */ {FA_UMLAUT, 'E', 0xCB}, /* E with umlaut */ {FA_UMLAUT, 'I', 0xCF}, /* I with umlaut */ @@ -367,6 +366,7 @@ struct fltaccent_sequence_t kb_fltaccent_table[] = { {FA_CFLEX, 'o', 0xF4}, /* o with circumflex */ {FA_CFLEX, 'u', 0xFB}, /* u with circumflex */ + {FA_TILDE, ' ', '~'}, /* tilde */ {FA_TILDE, 'A', 0xC3}, /* A with tilde */ {FA_TILDE, 'N', 0xD1}, /* N with tilde */ {FA_TILDE, 'O', 0xD5}, /* O with tilde */ @@ -374,9 +374,11 @@ struct fltaccent_sequence_t kb_fltaccent_table[] = { {FA_TILDE, 'n', 0xF1}, /* n with tilde */ {FA_TILDE, 'o', 0xF5}, /* o with tilde */ + {FA_CEDILLA, ' ', 0xB8}, /* cedilla */ {FA_CEDILLA, 'C', 0xC7}, /* C with cedilla */ {FA_CEDILLA, 'c', 0xE7}, /* c with cedilla */ + {FA_ACUTE, ' ', '\''}, /* apostrophe */ {FA_ACUTE, 'A', 0xC1}, /* A with acute accent */ {FA_ACUTE, 'E', 0xC9}, /* E with acute accent */ {FA_ACUTE, 'I', 0xCD}, /* I with acute accent */ @@ -389,6 +391,7 @@ struct fltaccent_sequence_t kb_fltaccent_table[] = { {FA_ACUTE, 'u', 0xFA}, /* u with acute accent */ {FA_ACUTE, 'y', 0xFD}, /* y with acute accent */ + {FA_GRAVE, ' ', '`'}, /* grave accent */ {FA_GRAVE, 'A', 0xC0}, /* A with grave accent */ {FA_GRAVE, 'E', 0xC8}, /* E with grave accent */ {FA_GRAVE, 'I', 0xCC}, /* I with grave accent */ @@ -400,6 +403,30 @@ struct fltaccent_sequence_t kb_fltaccent_table[] = { {FA_GRAVE, 'o', 0xF2}, /* o with grave accent */ {FA_GRAVE, 'u', 0xF9}, /* u with grave accent */ + {FA_MACRON, ' ', 0xAF}, /* macron */ + + {FA_BREVE, ' ', 0x306}, /* combining breve */ + + {FA_DOT, ' ', 0x307}, /* combining dot above */ + + {FA_SLASH, 0, 0}, /* slash, invalid entry */ + + {FA_RING, ' ', 0x30A}, /* combining ring above */ + + {FA_APOSTROPHE, ' ', '\''}, /* apostrophe */ + + {FA_DACUTE, ' ', 0x30B}, /* combining double acute */ + + {FA_OGONEK, ' ', 0x328}, /* combining ogonek */ + + {FA_CARON, ' ', 0x2C7}, /* caron */ + {FA_CARON, 'C', 0x10C}, /* C with caron */ + {FA_CARON, 'S', 0x160}, /* S with caron */ + {FA_CARON, 'Z', 0x17D}, /* Z with caron */ + {FA_CARON, 'c', 0x10D}, /* c with caron */ + {FA_CARON, 's', 0x161}, /* s with caron */ + {FA_CARON, 'z', 0x17E}, /* z with caron */ + {0, 0, 0}, /* end of table */ }; diff --git a/usr/src/uts/common/io/kbtrans/kbtrans_lower.h b/usr/src/uts/common/io/kbtrans/kbtrans_lower.h index 14157a7816..7836292f0c 100644 --- a/usr/src/uts/common/io/kbtrans/kbtrans_lower.h +++ b/usr/src/uts/common/io/kbtrans/kbtrans_lower.h @@ -27,8 +27,6 @@ #ifndef _KBTRANS_LOWER_H #define _KBTRANS_LOWER_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif @@ -56,8 +54,8 @@ struct kbtrans_lower { uchar_t kbtrans_state; /* compose state */ uint_t kbtrans_buckybits; /* current buckybits */ uint_t kbtrans_togglemask; /* Toggle shifts state */ - ushort_t kbtrans_compose_key; /* first compose key */ - ushort_t kbtrans_fltaccent_entry; /* floating accent keymap entry */ + kbtrans_key_t kbtrans_compose_key; /* first compose key */ + kbtrans_key_t kbtrans_fltaccent_entry; /* floating accent entry */ /* * Various mapping tables. @@ -127,24 +125,15 @@ struct keyboard_callback { * Process a scancode. This routine will call the functions in * keyboard_callback to handle the translated key. */ -void -kbtrans_processkey( - struct kbtrans_lower *lower, - struct keyboard_callback *cb, - kbtrans_key_t key, - enum keystate state -); +void kbtrans_processkey(struct kbtrans_lower *, struct keyboard_callback *, + kbtrans_key_t, enum keystate); /* * This routine finds the entry for the specified keycode based on the * specified shift mask. */ -unsigned short * -kbtrans_find_entry( - struct kbtrans_lower *lower, - uint_t mask, - kbtrans_key_t -); +keymap_entry_t *kbtrans_find_entry(struct kbtrans_lower *, uint_t, + kbtrans_key_t); /* * Debug printing diff --git a/usr/src/uts/common/io/kbtrans/kbtrans_streams.c b/usr/src/uts/common/io/kbtrans/kbtrans_streams.c index d285b5c23b..a468cb7d01 100644 --- a/usr/src/uts/common/io/kbtrans/kbtrans_streams.c +++ b/usr/src/uts/common/io/kbtrans/kbtrans_streams.c @@ -1265,7 +1265,7 @@ kbtrans_strsetwithdecimal(char *buf, uint_t val, uint_t maxdigs) */ static void kbtrans_keypressed(struct kbtrans *upper, uchar_t key_station, - Firm_event *fe, ushort_t base) + Firm_event *fe, ushort_t base) { register short id_addr; @@ -1278,7 +1278,7 @@ kbtrans_keypressed(struct kbtrans *upper, uchar_t key_station, * not been CTRLed. */ if (lower->kbtrans_shiftmask & (CTRLMASK | CTLSMASK)) { - unsigned short *ke; + keymap_entry_t *ke; unsigned int mask; mask = lower->kbtrans_shiftmask & @@ -1327,7 +1327,7 @@ send: */ static void kbtrans_queuepress(struct kbtrans *upper, - uchar_t key_station, Firm_event *fe) + uchar_t key_station, Firm_event *fe) { register struct key_event *ke, *ke_free; register int i; @@ -1439,9 +1439,24 @@ kbtrans_putcode(register struct kbtrans *upper, uint_t code) /* * We will strip out any high order information here. + * Convert to UTF-8. */ - /* NOTE the implicit cast here */ - *bp->b_wptr++ = (uchar_t)code; + code = KEYCHAR(code); + if (code < 0x80) { + *bp->b_wptr++ = (char)code; + } else if (code < 0x800) { + *bp->b_wptr++ = 0xc0 | (code >> 6); + *bp->b_wptr++ = 0x80 | (code & 0x3f); + } else if (code < 0x10000) { + *bp->b_wptr++ = 0xe0 | (code >> 12); + *bp->b_wptr++ = 0x80 | ((code >> 6) & 0x3f); + *bp->b_wptr++ = 0x80 | (code & 0x3f); + } else { + *bp->b_wptr++ = 0xf0 | (code >> 18); + *bp->b_wptr++ = 0x80 | ((code >> 12) & 0x3f); + *bp->b_wptr++ = 0x80 | ((code >> 6) & 0x3f); + *bp->b_wptr++ = 0x80 | (code & 0x3f); + } /* * Send the message up. @@ -1788,7 +1803,7 @@ kbtrans_ascii_keypressed( } /* - * Send the byte upstream. + * Send the char upstream. */ kbtrans_putcode(upper, entry); @@ -2089,7 +2104,7 @@ kbtrans_trans_event_setup_repeat( * Map old special codes to new ones. * Indexed by ((old special code) >> 4) & 0x07; add (old special code) & 0x0F. */ -static ushort_t special_old_to_new[] = { +static keymap_entry_t special_old_to_new[] = { SHIFTKEYS, BUCKYBITS, FUNNY, @@ -2109,15 +2124,14 @@ static int kbtrans_setkey(struct kbtrans_lower *lower, struct kiockey *key, cred_t *cr) { int strtabindex, i; - unsigned short *ke; + keymap_entry_t *ke; register int tablemask; - register ushort_t entry; + register keymap_entry_t entry; register struct keyboard *kp; kp = lower->kbtrans_keyboard; if (key->kio_station >= kp->k_keymap_size) - return (EINVAL); if (lower->kbtrans_keyboard == NULL) @@ -2208,8 +2222,8 @@ static int kbtrans_getkey(struct kbtrans_lower *lower, struct kiockey *key) { int strtabindex; - unsigned short *ke; - register ushort_t entry; + keymap_entry_t *ke; + register keymap_entry_t entry; struct keyboard *kp; kp = lower->kbtrans_keyboard; @@ -2267,7 +2281,7 @@ static int kbtrans_skey(struct kbtrans_lower *lower, struct kiockeymap *key, cred_t *cr) { int strtabindex, i; - unsigned short *ke; + keymap_entry_t *ke; struct keyboard *kp; kp = lower->kbtrans_keyboard; @@ -2308,7 +2322,7 @@ kbtrans_skey(struct kbtrans_lower *lower, struct kiockeymap *key, cred_t *cr) return (EINVAL); if (key->kio_entry >= STRING && - key->kio_entry <= (ushort_t)(STRING + 15)) { + key->kio_entry <= (STRING + 15)) { strtabindex = key->kio_entry-STRING; bcopy(key->kio_string, lower->kbtrans_keystringtab[strtabindex], KTAB_STRLEN); @@ -2326,10 +2340,10 @@ kbtrans_skey(struct kbtrans_lower *lower, struct kiockeymap *key, cred_t *cr) * Get individual keystation translation as new-style entry. */ static int -kbtrans_gkey(struct kbtrans_lower *lower, struct kiockeymap *key) +kbtrans_gkey(struct kbtrans_lower *lower, struct kiockeymap *key) { int strtabindex; - unsigned short *ke; + keymap_entry_t *ke; struct keyboard *kp; kp = lower->kbtrans_keyboard; @@ -2360,7 +2374,7 @@ kbtrans_gkey(struct kbtrans_lower *lower, struct kiockeymap *key) key->kio_entry = *ke; if (key->kio_entry >= STRING && - key->kio_entry <= (ushort_t)(STRING + 15)) { + key->kio_entry <= (STRING + 15)) { strtabindex = key->kio_entry-STRING; bcopy(lower->kbtrans_keystringtab[strtabindex], key->kio_string, KTAB_STRLEN); diff --git a/usr/src/uts/common/sys/kbd.h b/usr/src/uts/common/sys/kbd.h index a45c600750..c098d7a89d 100644 --- a/usr/src/uts/common/sys/kbd.h +++ b/usr/src/uts/common/sys/kbd.h @@ -26,8 +26,6 @@ #ifndef _SYS_KBD_H #define _SYS_KBD_H -#pragma ident "%Z%%M% %I% %E% SMI" /* SunOS4.0 1.18 */ - #ifdef __cplusplus extern "C" { #endif @@ -225,15 +223,15 @@ struct keyboards { * keyboard struct appropriately. */ +typedef unsigned int keymap_entry_t; #ifdef KEYMAP_SIZE_VARIABLE -typedef unsigned short keymap_entry_t; #else #define KEYMAP_SIZE 128 struct keymap { - unsigned short keymap[KEYMAP_SIZE]; /* maps keycodes to actions */ + keymap_entry_t keymap[KEYMAP_SIZE]; /* maps keycodes to actions */ }; #endif @@ -262,7 +260,7 @@ struct exception_map { /* * This is our translated version of the matching sequence. */ - unsigned short exc_entry; + keymap_entry_t exc_entry; }; /* @@ -319,26 +317,35 @@ struct keyboard { struct compose_sequence_t { unsigned char first; /* first ASCII char after COMPOSE key */ unsigned char second; /* second ASCII char after COMPOSE key */ - unsigned char iso; /* equivalent ISO code */ + keymap_entry_t utf8; /* equivalent UTF-8 code */ }; /* * Define the floating accent sequence structure. */ struct fltaccent_sequence_t { - unsigned short fa_entry; /* floating accent keymap entry */ + keymap_entry_t fa_entry; /* floating accent keymap entry */ unsigned char ascii; /* ASCII char after FA-type key */ - unsigned char iso; /* equivalent ISO code */ + keymap_entry_t utf8; /* equivalent UTF-8 code */ }; /* + * The top byte is used to store the flags, leaving 24 bits for char. + */ +#define KEYCHAR(c) ((c) & 0x00ffffff) +#define KEYFLAGS(c) ((c) & ~0x00ffffff) + +/* * The "special" entries' top 4 bits are defined below. Generally they are * used with a 4-bit parameter (such as a bit number) in the low 4 bits. * The bytes whose top 4 bits are 0x0 thru 0x7 happen to be ascii * characters. They are not special cased, but just normal cased. */ -#define SHIFTKEYS 0x100 /* thru 0x10F. This key helps to determine */ +#define SPECIAL(h, l) (((h) << 24) | (l)) + +#define SHIFTKEYS SPECIAL(0x1, 0) + /* thru 0x10F. This key helps to determine */ /* the translation table used. The bit */ /* position of its bit in "shiftmask" */ /* is added to the entry, eg */ @@ -347,7 +354,8 @@ struct fltaccent_sequence_t { /* toggled. Depending which tables you put */ /* it in, this works well for hold-down */ /* keys or press-on, press-off keys. */ -#define BUCKYBITS 0x200 /* thru 0x20F. This key determines the state */ +#define BUCKYBITS SPECIAL(0x2, 0) + /* thru 0x20F. This key determines the state */ /* of one of the "bucky" bits above the */ /* returned ASCII character. This is */ /* basically a way to pass mode-key-up/down */ @@ -366,33 +374,43 @@ struct fltaccent_sequence_t { /* toggled. Depending which tables you put */ /* it in, this works well for hold-down */ /* keys or press-on, press-off keys. */ -#define FUNNY 0x300 /* thru 0x30F. This key does one of 16 funny */ +#define FUNNY SPECIAL(0x3, 0) /* thru 0x30F. This key does one of 16 funny */ /* things based on the low 4 bits: */ -#define NOP 0x300 /* This key does nothing. */ -#define OOPS 0x301 /* This key exists but is undefined. */ -#define HOLE 0x302 /* This key does not exist on the keyboard. */ +#define NOP SPECIAL(0x3, 0x0) /* This key does nothing. */ +#define OOPS SPECIAL(0x3, 0x1) /* This key exists but is undefined. */ +#define HOLE SPECIAL(0x3, 0x2) /* This key does not exist on the keyboard. */ /* Its position code should never be */ /* generated. This indicates a software/ */ /* hardware mismatch, or bugs. */ -#define RESET 0x306 /* Kbd was just reset */ -#define ERROR 0x307 /* Kbd just detected an internal error */ -#define IDLE 0x308 /* Kbd is idle (no keys down) */ -#define COMPOSE 0x309 /* This key is the Compose key. */ -#define NONL 0x30A /* This key not affected by Num Lock */ +#define RESET SPECIAL(0x3, 0x6) /* Kbd was just reset */ +#define ERROR SPECIAL(0x3, 0x7) /* Kbd just detected an internal error */ +#define IDLE SPECIAL(0x3, 0x8) /* Kbd is idle (no keys down) */ +#define COMPOSE SPECIAL(0x3, 0x9) /* This key is the Compose key. */ +#define NONL SPECIAL(0x3, 0xA) /* This key not affected by Num Lock */ /* Combinations 0x30B to 0x30F are reserved for non-parameterized functions */ -#define FA_CLASS 0x400 /* thru 0x40F. These are for "floating */ +#define FA_CLASS SPECIAL(0x4, 0) + /* thru 0x40F. These are for "floating */ /* accent" characters. The low-order 4 bits */ /* select one of those characters. */ /* Definitions for the individual floating accents: */ -#define FA_UMLAUT 0x400 /* umlaut accent */ -#define FA_CFLEX 0x401 /* circumflex accent */ -#define FA_TILDE 0x402 /* tilde accent */ -#define FA_CEDILLA 0x403 /* cedilla accent */ -#define FA_ACUTE 0x404 /* acute accent */ -#define FA_GRAVE 0x405 /* grave accent */ - -#define STRING 0x500 /* thru 0x50F. The low-order 4 bits index */ +#define FA_UMLAUT SPECIAL(0x4, 0x0) /* umlaut accent */ +#define FA_CFLEX SPECIAL(0x4, 0x1) /* circumflex accent */ +#define FA_TILDE SPECIAL(0x4, 0x2) /* tilde accent */ +#define FA_CEDILLA SPECIAL(0x4, 0x3) /* cedilla accent */ +#define FA_ACUTE SPECIAL(0x4, 0x4) /* acute accent */ +#define FA_GRAVE SPECIAL(0x4, 0x5) /* grave accent */ +#define FA_MACRON SPECIAL(0x4, 0x6) /* macron accent */ +#define FA_BREVE SPECIAL(0x4, 0x7) /* breve accent */ +#define FA_DOT SPECIAL(0x4, 0x8) /* dot accent */ +#define FA_SLASH SPECIAL(0x4, 0x9) /* slash accent */ +#define FA_RING SPECIAL(0x4, 0xa) /* ring accent */ +#define FA_APOSTROPHE SPECIAL(0x4, 0xb) /* apostrophe accent */ +#define FA_DACUTE SPECIAL(0x4, 0xc) /* double acute accent */ +#define FA_OGONEK SPECIAL(0x4, 0xd) /* ogonek accent */ +#define FA_CARON SPECIAL(0x4, 0xe) /* caron accent */ + +#define STRING SPECIAL(0x5, 0) /* thru 0x50F. The low-order 4 bits index */ /* a table select a string to be returned, */ /* char by char. Each entry the table is */ /* null terminated. */ @@ -410,11 +428,11 @@ struct fltaccent_sequence_t { * the function key number within the group, and the next 4 bits indicate * the group. */ -#define FUNCKEYS 0x600 -#define LEFTFUNC 0x600 /* thru 0x60F. The "left" group. */ -#define RIGHTFUNC 0x610 /* thru 0x61F. The "right" group. */ -#define TOPFUNC 0x620 /* thru 0x62F. The "top" group. */ -#define BOTTOMFUNC 0x630 /* thru 0x63F. The "bottom" group. */ +#define FUNCKEYS SPECIAL(0x6, 0) +#define LEFTFUNC SPECIAL(0x6, 0x0) /* thru 0x60F. The "left" group. */ +#define RIGHTFUNC SPECIAL(0x6, 0x10) /* thru 0x61F. The "right" group. */ +#define TOPFUNC SPECIAL(0x6, 0x20) /* thru 0x62F. The "top" group. */ +#define BOTTOMFUNC SPECIAL(0x6, 0x30) /* thru 0x63F. The "bottom" group. */ #define LF(n) (LEFTFUNC+(n)-1) #define RF(n) (RIGHTFUNC+(n)-1) #define TF(n) (TOPFUNC+(n)-1) @@ -431,25 +449,25 @@ struct fltaccent_sequence_t { * where ESC is a single escape character and 0..9 indicate some number of * digits needed to encode the function key as a decimal number. */ -#define PADKEYS 0x700 -#define PADEQUAL 0x700 /* keypad = */ -#define PADSLASH 0x701 /* keypad / */ -#define PADSTAR 0x702 /* keypad * */ -#define PADMINUS 0x703 /* keypad - */ -#define PADSEP 0x704 /* keypad, */ -#define PAD7 0x705 /* keypad 7 */ -#define PAD8 0x706 /* keypad 8 */ -#define PAD9 0x707 /* keypad 9 */ -#define PADPLUS 0x708 /* keypad + */ -#define PAD4 0x709 /* keypad 4 */ -#define PAD5 0x70A /* keypad 5 */ -#define PAD6 0x70B /* keypad 6 */ -#define PAD1 0x70C /* keypad 1 */ -#define PAD2 0x70D /* keypad 2 */ -#define PAD3 0x70E /* keypad 3 */ -#define PAD0 0x70F /* keypad 0 */ -#define PADDOT 0x710 /* keypad . */ -#define PADENTER 0x711 /* keypad Enter */ +#define PADKEYS SPECIAL(0x7, 0) +#define PADEQUAL SPECIAL(0x7, 0x00) /* keypad = */ +#define PADSLASH SPECIAL(0x7, 0x01) /* keypad / */ +#define PADSTAR SPECIAL(0x7, 0x02) /* keypad * */ +#define PADMINUS SPECIAL(0x7, 0x03) /* keypad - */ +#define PADSEP SPECIAL(0x7, 0x04) /* keypad, */ +#define PAD7 SPECIAL(0x7, 0x05) /* keypad 7 */ +#define PAD8 SPECIAL(0x7, 0x06) /* keypad 8 */ +#define PAD9 SPECIAL(0x7, 0x07) /* keypad 9 */ +#define PADPLUS SPECIAL(0x7, 0x08) /* keypad + */ +#define PAD4 SPECIAL(0x7, 0x09) /* keypad 4 */ +#define PAD5 SPECIAL(0x7, 0x0A) /* keypad 5 */ +#define PAD6 SPECIAL(0x7, 0x0B) /* keypad 6 */ +#define PAD1 SPECIAL(0x7, 0x0C) /* keypad 1 */ +#define PAD2 SPECIAL(0x7, 0x0D) /* keypad 2 */ +#define PAD3 SPECIAL(0x7, 0x0E) /* keypad 3 */ +#define PAD0 SPECIAL(0x7, 0x0F) /* keypad 0 */ +#define PADDOT SPECIAL(0x7, 0x10) /* keypad . */ +#define PADENTER SPECIAL(0x7, 0x11) /* keypad Enter */ #ifdef __cplusplus } diff --git a/usr/src/uts/common/sys/kbio.h b/usr/src/uts/common/sys/kbio.h index e306902855..294710c002 100644 --- a/usr/src/uts/common/sys/kbio.h +++ b/usr/src/uts/common/sys/kbio.h @@ -26,8 +26,6 @@ #ifndef _SYS_KBIO_H #define _SYS_KBIO_H -#pragma ident "%Z%%M% %I% %E% SMI" /* SunOS4.0 1.23 */ - #ifdef __cplusplus extern "C" { #endif @@ -146,7 +144,7 @@ struct kiockeymap { /* SHIFTMASK, CTRLMASK, UPMASK, */ /* ALTGRAPHMASK) */ uchar_t kio_station; /* Physical keyboard key station (0-127) */ - ushort_t kio_entry; /* Translation table station's entry */ + unsigned kio_entry; /* Translation table station's entry */ char kio_string[10]; /* Value for STRING entries (null terminated) */ }; diff --git a/usr/src/uts/intel/kbtrans/Makefile b/usr/src/uts/intel/kbtrans/Makefile index f5d8214e6c..29e6fda4e6 100644 --- a/usr/src/uts/intel/kbtrans/Makefile +++ b/usr/src/uts/intel/kbtrans/Makefile @@ -63,9 +63,6 @@ INSTALL_TARGET = $(BINARY) $(ROOTMODULE) LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV -CERRWARN += -_gcc=-Wno-empty-body -CERRWARN += -_gcc=-Wno-unused-braces - .KEEP_STATE: def: $(DEF_DEPS) |