Re: git: f20058955c9d - main - sys/kbio.h: make pre-unicode keymap support optional

From: Justin Hibbits <jhibbits_at_FreeBSD.org>
Date: Tue, 14 Feb 2023 15:21:32 UTC
On Tue, 14 Feb 2023 13:15:57 GMT
Stefan Eßer <se@FreeBSD.org> wrote:

> The branch main has been updated by se:
> 
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=f20058955c9d1041a5a09cd02a27babda7e34dc8
> 
> commit f20058955c9d1041a5a09cd02a27babda7e34dc8
> Author:     Stefan Eßer <se@FreeBSD.org>
> AuthorDate: 2023-02-14 13:03:28 +0000
> Commit:     Stefan Eßer <se@FreeBSD.org>
> CommitDate: 2023-02-14 13:03:28 +0000
> 
>     sys/kbio.h: make pre-unicode keymap support optional
>     
>     FreeBSD-9 had introduced support for the full set of Unicode
>     characters to the parsing and processing of keymap character
> tables. 
>     This support has been extended to cover the table for accented
>     characters that are reached via dead key combinations in
> FreeBSD-13.2. 
>     New ioctls have been introduced to support both the pre-Unicode
> and the Unicode formats and keyboard drivers have been extended to
> support those ioctls.
>     
>     This commit makes the ABI compatibility functions in the kernel
>     optional and dependent on COMPAT_FREEBSD13 in -CURRENT.
>     
>     The kbdcontrol command in -CURRENT and 13-STABLE (before 13.2) has
>     been made ABI compatible with old kernels to allow a new world to
> be run on an old kernel (that does not have full Unicode support for
>     keymaps).
>     
>     This commit is not to merged back to 12-STABLE or 13-STABLE. It is
>     part of review D38465, which has been split into 3 separate
> commits due to different MFC and life-time requirements of either
> commit. 
>     Approved by:    imp
>     Differential Revision:  https://reviews.freebsd.org/D38465
> ---
>  sys/dev/adb/adb_kbd.c         |  4 +++-
>  sys/dev/atkbdc/atkbd.c        |  4 +++-
>  sys/dev/gpio/gpiokeys.c       |  9 ++++++---
>  sys/dev/hid/hkbd.c            |  9 ++++++---
>  sys/dev/hyperv/input/hv_kbd.c |  4 +++-
>  sys/dev/kbd/kbd.c             | 27 ++++++++++++++++++++++-----
>  sys/dev/kbdmux/kbdmux.c       |  6 ++++--
>  sys/dev/syscons/syscons.c     |  6 ++++--
>  sys/dev/usb/input/ukbd.c      |  9 ++++++---
>  sys/dev/vkbd/vkbd.c           |  4 +++-
>  sys/dev/vt/vt_core.c          |  4 +++-
>  sys/sys/kbio.h                | 16 ++++++++--------
>  12 files changed, 71 insertions(+), 31 deletions(-)
> 
> diff --git a/sys/dev/adb/adb_kbd.c b/sys/dev/adb/adb_kbd.c
> index 86d3865473bb..614d89c30447 100644
> --- a/sys/dev/adb/adb_kbd.c
> +++ b/sys/dev/adb/adb_kbd.c
> @@ -795,10 +795,12 @@ static int akbd_ioctl(keyboard_t *kbd, u_long
> cmd, caddr_t data) 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
> index 08266cf4bf51..0c6dadca43aa 100644
> --- a/sys/dev/atkbdc/atkbd.c
> +++ b/sys/dev/atkbdc/atkbd.c
> @@ -1088,10 +1088,12 @@ atkbd_ioctl(keyboard_t *kbd, u_long cmd,
> caddr_t arg) 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

Looks like a unicode character slipped in here.

- Justin