libpayload/keyboard: Use `bool` as return type

Use `bool` whenever `0` was used to indicate an error. The mixing of
different types for return values was mildly confusing and potentially
dangerous with the i8042 API close by that uses `0` for success.

Change-Id: I876bb5076c4921f36e3438f359be8ac4c09248cc
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46723
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Nico Huber 2020-10-24 17:19:15 +02:00 committed by Patrick Georgi
parent f56d65266c
commit d9e543a5f9
2 changed files with 13 additions and 10 deletions

View File

@ -27,6 +27,8 @@
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#include <stdbool.h>
#include <keycodes.h> #include <keycodes.h>
#include <libpayload-config.h> #include <libpayload-config.h>
#include <libpayload.h> #include <libpayload.h>
@ -169,14 +171,14 @@ static struct layout_maps keyboard_layouts[] = {
#endif #endif
}; };
static unsigned char keyboard_cmd(unsigned char cmd) static bool keyboard_cmd(unsigned char cmd)
{ {
i8042_write_data(cmd); i8042_write_data(cmd);
return i8042_wait_read_ps2() == 0xfa; return i8042_wait_read_ps2() == 0xfa;
} }
int keyboard_havechar(void) bool keyboard_havechar(void)
{ {
return i8042_data_ready_ps2(); return i8042_data_ready_ps2();
} }
@ -306,13 +308,13 @@ int keyboard_set_layout(char *country)
} }
static struct console_input_driver cons = { static struct console_input_driver cons = {
.havekey = keyboard_havechar, .havekey = (int (*)(void))keyboard_havechar,
.getchar = keyboard_getchar, .getchar = keyboard_getchar,
.input_type = CONSOLE_INPUT_TYPE_EC, .input_type = CONSOLE_INPUT_TYPE_EC,
}; };
/* Enable keyboard translated */ /* Enable keyboard translated */
static int enable_translated(void) static bool enable_translated(void)
{ {
if (!i8042_cmd(I8042_CMD_RD_CMD_BYTE)) { if (!i8042_cmd(I8042_CMD_RD_CMD_BYTE)) {
int cmd = i8042_read_data_ps2(); int cmd = i8042_read_data_ps2();
@ -321,19 +323,19 @@ static int enable_translated(void)
i8042_write_data(cmd); i8042_write_data(cmd);
} else { } else {
printf("ERROR: i8042_cmd WR_CMD failed!\n"); printf("ERROR: i8042_cmd WR_CMD failed!\n");
return 0; return false;
} }
} else { } else {
printf("ERROR: i8042_cmd RD_CMD failed!\n"); printf("ERROR: i8042_cmd RD_CMD failed!\n");
return 0; return false;
} }
return 1; return true;
} }
/* Set scancode set 1 */ /* Set scancode set 1 */
static int set_scancode_set(void) static bool set_scancode_set(void)
{ {
unsigned int ret; bool ret;
ret = keyboard_cmd(I8042_KBCMD_SET_SCANCODE); ret = keyboard_cmd(I8042_KBCMD_SET_SCANCODE);
if (!ret) { if (!ret) {
printf("ERROR: Keyboard set scancode failed!\n"); printf("ERROR: Keyboard set scancode failed!\n");

View File

@ -42,6 +42,7 @@
#ifndef _LIBPAYLOAD_H #ifndef _LIBPAYLOAD_H
#define _LIBPAYLOAD_H #define _LIBPAYLOAD_H
#include <stdbool.h>
#include <libpayload-config.h> #include <libpayload-config.h>
#include <compiler.h> #include <compiler.h>
#include <cbgfx.h> #include <cbgfx.h>
@ -186,7 +187,7 @@ int add_reset_handler(void (*new_handler)(void));
*/ */
void keyboard_init(void); void keyboard_init(void);
void keyboard_disconnect(void); void keyboard_disconnect(void);
int keyboard_havechar(void); bool keyboard_havechar(void);
unsigned char keyboard_get_scancode(void); unsigned char keyboard_get_scancode(void);
int keyboard_getchar(void); int keyboard_getchar(void);
int keyboard_set_layout(char *country); int keyboard_set_layout(char *country);