diff --git a/sys/dev/adb/adb_kbd.c b/sys/dev/adb/adb_kbd.c --- a/sys/dev/adb/adb_kbd.c +++ b/sys/dev/adb/adb_kbd.c @@ -795,10 +795,12 @@ break; case PIO_KEYMAP: - case OPIO_KEYMAP: case PIO_KEYMAPENT: case PIO_DEADKEYMAP: +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: case OPIO_DEADKEYMAP: +#endif /* COMPAT_FREEBSD13 */ default: return (genkbd_commonioctl(kbd, cmd, data)); } diff --git a/sys/dev/atkbdc/atkbd.c b/sys/dev/atkbdc/atkbd.c --- a/sys/dev/atkbdc/atkbd.c +++ b/sys/dev/atkbdc/atkbd.c @@ -1088,10 +1088,12 @@ return error; case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ +Àifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ state->ks_accents = 0; /* FALLTHROUGH */ default: diff --git a/sys/dev/gpio/gpiokeys.c b/sys/dev/gpio/gpiokeys.c --- a/sys/dev/gpio/gpiokeys.c +++ b/sys/dev/gpio/gpiokeys.c @@ -894,12 +894,15 @@ return (gpiokeys_set_typematic(kbd, *(int *)arg)); case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table - * (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table * entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ - case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table + * (compat) */ + case OPIO_DEADKEYMAP: /* set accent key translation table + * (compat) */ +#endif /* COMPAT_FREEBSD13 */ sc->sc_accents = 0; /* FALLTHROUGH */ default: diff --git a/sys/dev/hid/hkbd.c b/sys/dev/hid/hkbd.c --- a/sys/dev/hid/hkbd.c +++ b/sys/dev/hid/hkbd.c @@ -1635,12 +1635,15 @@ return (hkbd_set_typematic(kbd, *(int *)arg)); case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table - * (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table * entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ - case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table + * (compat) */ + case OPIO_DEADKEYMAP: /* set accent key translation table + * (compat) */ +#endif /* COMPAT_FREEBSD13 */ sc->sc_accents = 0; /* FALLTHROUGH */ default: diff --git a/sys/dev/hyperv/input/hv_kbd.c b/sys/dev/hyperv/input/hv_kbd.c --- a/sys/dev/hyperv/input/hv_kbd.c +++ b/sys/dev/hyperv/input/hv_kbd.c @@ -663,10 +663,12 @@ KBD_LED_VAL(kbd) = *(int *)arg; break; case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ sc->sc_accents = 0; /* FALLTHROUGH */ default: diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c --- a/sys/dev/kbd/kbd.c +++ b/sys/dev/kbd/kbd.c @@ -789,13 +789,16 @@ genkbd_commonioctl(keyboard_t *kbd, u_long cmd, caddr_t arg) { keymap_t *mapp; - okeymap_t *omapp; accentmap_t *accentmapp; - oaccentmap_t *oaccentmapp; keyarg_t *keyp; fkeyarg_t *fkeyp; - int i, j; int error; + int i; +#ifdef COMPAT_FREEBSD13 + int j; + okeymap_t *omapp; + oaccentmap_t *oaccentmapp; +#endif /* COMPAT_FREEBSD13 */ GIANT_REQUIRED; switch (cmd) { @@ -824,6 +827,7 @@ error = copyout(kbd->kb_keymap, *(void **)arg, sizeof(keymap_t)); return (error); +#ifdef COMPAT_FREEBSD13 case OGIO_KEYMAP: /* get keyboard translation table (compat) */ mapp = kbd->kb_keymap; omapp = (okeymap_t *)arg; @@ -836,10 +840,14 @@ omapp->key[i].flgs = mapp->key[i].flgs; } break; +#endif /* COMPAT_FREEBSD13 */ case PIO_KEYMAP: /* set keyboard translation table */ +#ifdef COMPAT_FREEBSD13 case OPIO_KEYMAP: /* set keyboard translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ #ifndef KBD_DISABLE_KEYMAP_LOAD mapp = malloc(sizeof *mapp, M_TEMP, M_WAITOK); +#ifdef COMPAT_FREEBSD13 if (cmd == OPIO_KEYMAP) { omapp = (okeymap_t *)arg; mapp->n_keys = omapp->n_keys; @@ -850,7 +858,9 @@ mapp->key[i].spcl = omapp->key[i].spcl; mapp->key[i].flgs = omapp->key[i].flgs; } - } else { + } else +#endif /* COMPAT_FREEBSD13 */ + { error = copyin(*(void **)arg, mapp, sizeof *mapp); if (error != 0) { free(mapp, M_TEMP); @@ -904,6 +914,7 @@ sizeof(accentmap_t)); return (error); break; +#ifdef COMPAT_FREEBSD13 case OGIO_DEADKEYMAP: /* get accent key translation table (compat) */ accentmapp = kbd->kb_accentmap; oaccentmapp = (oaccentmap_t *)arg; @@ -919,11 +930,15 @@ } } break; +#endif /* COMPAT_FREEBSD13 */ case PIO_DEADKEYMAP: /* set accent key translation table */ +#ifdef COMPAT_FREEBSD13 case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ #ifndef KBD_DISABLE_KEYMAP_LOAD accentmapp = malloc(sizeof(*accentmapp), M_TEMP, M_WAITOK); +#ifdef COMPAT_FREEBSD13 if (cmd == OPIO_DEADKEYMAP) { oaccentmapp = (oaccentmap_t *)arg; accentmapp->n_accs = oaccentmapp->n_accs; @@ -937,7 +952,9 @@ oaccentmapp->acc[i].accchar; } } - } else { + } else +#endif /* COMPAT_FREEBSD13 */ + { error = copyin(*(void **)arg, accentmapp, sizeof(*accentmapp)); if (error != 0) { free(accentmapp, M_TEMP); diff --git a/sys/dev/kbdmux/kbdmux.c b/sys/dev/kbdmux/kbdmux.c --- a/sys/dev/kbdmux/kbdmux.c +++ b/sys/dev/kbdmux/kbdmux.c @@ -1240,12 +1240,14 @@ break; case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ KBDMUX_LOCK(state); - state->ks_accents = 0; + state->ks_accents = 0; +#endif /* COMPAT_FREEBSD13 */ /* perform command on all slave keyboards */ SLIST_FOREACH(k, &state->ks_kbds, next) diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -1594,12 +1594,14 @@ case GIO_KEYMAP: /* get keyboard translation table */ case PIO_KEYMAP: /* set keyboard translation table */ - case OGIO_KEYMAP: /* get keyboard translation table (compat) */ - case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case GIO_DEADKEYMAP: /* get accent key translation table */ case PIO_DEADKEYMAP: /* set accent key translation table */ +#ifdef COMPAT_FREEBSD13 + case OGIO_KEYMAP: /* get keyboard translation table (compat) */ + case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case OGIO_DEADKEYMAP: /* get accent key translation table (compat) */ case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ case GETFKEY: /* get function key string */ case SETFKEY: /* set function key string */ error = kbdd_ioctl(sc->kbd, cmd, data); diff --git a/sys/dev/usb/input/ukbd.c b/sys/dev/usb/input/ukbd.c --- a/sys/dev/usb/input/ukbd.c +++ b/sys/dev/usb/input/ukbd.c @@ -1857,12 +1857,15 @@ return (ukbd_set_typematic(kbd, *(int *)arg)); case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table - * (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table * entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ - case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table + * (compat) */ + case OPIO_DEADKEYMAP: /* set accent key translation table + * (compat) */ +#endif /* COMPAT_FREEBSD13 */ sc->sc_accents = 0; /* FALLTHROUGH */ default: diff --git a/sys/dev/vkbd/vkbd.c b/sys/dev/vkbd/vkbd.c --- a/sys/dev/vkbd/vkbd.c +++ b/sys/dev/vkbd/vkbd.c @@ -1204,10 +1204,12 @@ break; case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case PIO_KEYMAPENT: /* set keyboard translation table entry */ case PIO_DEADKEYMAP: /* set accent key translation table */ +#ifdef COMPAT_FREEBSD13 + case OPIO_KEYMAP: /* set keyboard translation table (compat) */ case OPIO_DEADKEYMAP: /* set accent key translation table (compat) */ +#endif /* COMPAT_FREEBSD13 */ state->ks_accents = 0; /* FALLTHROUGH */ diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -2403,9 +2403,11 @@ case GIO_KEYMAP: case PIO_KEYMAP: case GIO_DEADKEYMAP: - case OGIO_DEADKEYMAP: case PIO_DEADKEYMAP: +#ifdef COMPAT_FREEBSD13 + case OGIO_DEADKEYMAP: case OPIO_DEADKEYMAP: +#endif /* COMPAT_FREEBSD13 */ case GETFKEY: case SETFKEY: case KDGKBINFO: diff --git a/sys/sys/kbio.h b/sys/sys/kbio.h --- a/sys/sys/kbio.h +++ b/sys/sys/kbio.h @@ -120,7 +120,7 @@ }; typedef struct keymap keymap_t; -#ifdef _KERNEL +#ifdef COMPAT_FREEBSD13 struct okeyent_t { u_char map[NUM_STATES]; u_char spcl; @@ -132,7 +132,7 @@ struct okeyent_t key[NUM_KEYS]; }; typedef struct okeymap okeymap_t; -#endif /* _KERNEL */ +#endif /* COMPAT_FREEBSD13 */ #endif /* !_KEYMAP_DECLARED */ @@ -209,7 +209,7 @@ }; typedef struct accentmap accentmap_t; -//#ifdef _KERNEL +#ifdef COMPAT_FREEBSD13 struct oacc_t { u_char accchar; u_char map[NUM_ACCENTCHARS][2]; @@ -220,7 +220,7 @@ struct oacc_t acc[NUM_DEADKEYS]; }; typedef struct oaccentmap oaccentmap_t; -//#endif /* _KERNEL */ +#endif /* COMPAT_FREEBSD13 */ struct keyarg { u_short keynum; @@ -250,17 +250,17 @@ /* XXX: Should have keymap_t as an argument, but that's too big for ioctl()! */ #define GIO_KEYMAP _IO('k', 6) #define PIO_KEYMAP _IO('k', 7) -#ifdef _KERNEL +#ifdef COMPAT_FREEBSD13 #define OGIO_KEYMAP _IOR('k', 6, okeymap_t) #define OPIO_KEYMAP _IOW('k', 7, okeymap_t) -#endif /* _KERNEL */ +#endif /* COMPAT_FREEBSD13 */ /* XXX: Should have accentmap_t as an argument, but that's too big for ioctl()! */ #define GIO_DEADKEYMAP _IO('k', 8) #define PIO_DEADKEYMAP _IO('k', 9) -//#ifdef _KERNEL +#ifdef COMPAT_FREEBSD13 #define OGIO_DEADKEYMAP _IOR('k', 8, oaccentmap_t) #define OPIO_DEADKEYMAP _IOW('k', 9, oaccentmap_t) -//#endif /* _KERNEL */ +#endif /* COMPAT_FREEBSD13 */ #define GIO_KEYMAPENT _IOWR('k', 10, keyarg_t) #define PIO_KEYMAPENT _IOW('k', 11, keyarg_t) diff --git a/usr.sbin/kbdcontrol/Makefile b/usr.sbin/kbdcontrol/Makefile --- a/usr.sbin/kbdcontrol/Makefile +++ b/usr.sbin/kbdcontrol/Makefile @@ -8,5 +8,6 @@ WARNS?= 4 CFLAGS+= -I${.CURDIR} +CFLAGS+= -DCOMPAT_FREEBSD13 # for pre-Unicode accent key compatibility .include diff --git a/usr.sbin/kbdcontrol/kbdcontrol.c b/usr.sbin/kbdcontrol/kbdcontrol.c --- a/usr.sbin/kbdcontrol/kbdcontrol.c +++ b/usr.sbin/kbdcontrol/kbdcontrol.c @@ -818,6 +818,7 @@ STAILQ_INSERT_TAIL(&pathlist, pe, next); } +#ifdef OPIO_DEADKEYMAP static void to_old_accentmap(accentmap_t *from, oaccentmap_t *to) { @@ -832,13 +833,16 @@ } } } +#endif /* OPIO_DEADKEYMAP */ static void load_keymap(char *opt, int dumponly) { keymap_t keymap; accentmap_t accentmap; +#ifdef OPIO_DEADKEYMAP oaccentmap_t oaccentmap; +#endif /* OPIO_DEADKEYMAP */ struct pathent *pe; FILE *file; int j; @@ -898,8 +902,11 @@ } if ((accentmap.n_accs > 0) && (ioctl(0, PIO_DEADKEYMAP, &accentmap) < 0)) { +#ifdef OPIO_DEADKEYMAP to_old_accentmap(&accentmap, &oaccentmap); - if (ioctl(0, OPIO_DEADKEYMAP, &oaccentmap) < 0) { + if (ioctl(0, OPIO_DEADKEYMAP, &oaccentmap) < 0) +#endif /* OGIO_DEADKEYMAP */ + { warn("setting accentmap"); fclose(file); return; @@ -907,6 +914,7 @@ } } +#ifdef OPIO_DEADKEYMAP static void to_new_accentmap(oaccentmap_t *from, accentmap_t *to) { @@ -921,21 +929,26 @@ } } } +#endif /* OPIO_DEADKEYMAP */ static void print_keymap(void) { keymap_t keymap; accentmap_t accentmap; +#ifdef OGIO_DEADKEYMAP oaccentmap_t oaccentmap; +#endif /* OPIO_DEADKEYMAP */ int i; if (ioctl(0, GIO_KEYMAP, &keymap) < 0) err(1, "getting keymap"); if (ioctl(0, GIO_DEADKEYMAP, &accentmap) < 0) { +#ifdef OGIO_DEADKEYMAP if (ioctl(0, OGIO_DEADKEYMAP, &oaccentmap) == 0) to_new_accentmap(&oaccentmap, &accentmap); else +#endif /* OGIO_DEADKEYMAP */ memset(&accentmap, 0, sizeof(accentmap)); } printf(