Files
cubelinux-kernel/tools/perf/ui/keysyms.c
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

45 lines
1.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#include "keysyms.h"
#include <linux/ctype.h>
#include <linux/kernel.h>
const char *key_name(int key, char *bf, size_t size)
{
if (isprint(key)) {
scnprintf(bf, size, "%c", key);
} else if (key < 32) {
scnprintf(bf, size, "Ctrl+%c", key + '@');
} else {
const char *name = NULL;
switch (key) {
case K_DOWN: name = "Down"; break;
case K_END: name = "End"; break;
case K_ENTER: name = "Enter"; break;
case K_ESC: name = "ESC"; break;
case K_F1: name = "F1"; break;
case K_HOME: name = "Home"; break;
case K_LEFT: name = "Left"; break;
case K_PGDN: name = "PgDown"; break;
case K_PGUP: name = "PgUp"; break;
case K_RIGHT: name = "Right"; break;
case K_TAB: name = "Tab"; break;
case K_UNTAB: name = "Untab"; break;
case K_UP: name = "Up"; break;
case K_BKSPC: name = "Backspace"; break;
case K_DEL: name = "Del"; break;
default:
if (key >= SL_KEY_F(1) && key <= SL_KEY_F(63))
scnprintf(bf, size, "F%d", key - SL_KEY_F(0));
else
scnprintf(bf, size, "Unknown (%d)", key);
}
if (name)
scnprintf(bf, size, "%s", name);
}
return bf;
}