29cfc096a7
The 'conitrace' command prints the codes received from the console input as hexadecimal numbers. This developer utility is useful for testing the handling of special keys by keyboard drivers. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
52 lines
956 B
C
52 lines
956 B
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* The 'conitrace' command prints the codes received from the console input as
|
|
* hexadecimal numbers.
|
|
*
|
|
* Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk@gmx.de>
|
|
*/
|
|
#include <common.h>
|
|
#include <command.h>
|
|
|
|
static int do_conitrace(cmd_tbl_t *cmdtp, int flag, int argc,
|
|
char * const argv[])
|
|
{
|
|
bool first = true;
|
|
|
|
printf("Waiting for your input\n");
|
|
printf("To terminate type 'x'\n");
|
|
|
|
/* Empty input buffer */
|
|
while (tstc())
|
|
getc();
|
|
|
|
for (;;) {
|
|
int c = getc();
|
|
|
|
if (first && (c == 'x' || c == 'X'))
|
|
break;
|
|
|
|
printf("%02x ", c);
|
|
first = false;
|
|
|
|
/* 1 ms delay - serves to detect separate keystrokes */
|
|
udelay(1000);
|
|
if (!tstc()) {
|
|
printf("\n");
|
|
first = true;
|
|
}
|
|
}
|
|
|
|
return CMD_RET_SUCCESS;
|
|
}
|
|
|
|
#ifdef CONFIG_SYS_LONGHELP
|
|
static char conitrace_help_text[] = "";
|
|
#endif
|
|
|
|
U_BOOT_CMD_COMPLETE(
|
|
conitrace, 2, 0, do_conitrace,
|
|
"trace console input",
|
|
conitrace_help_text, NULL
|
|
);
|