Replace grub_checkkey with grub_getkey_noblock.

* grub-core/kern/term.c (grub_checkkey): Replaced with ...
	(grub_getkey_noblock): ... this. All users updated.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-02-18 19:59:01 +01:00
parent b500bcfeed
commit a8f16eab1a
7 changed files with 28 additions and 36 deletions

View file

@ -79,16 +79,11 @@ grub_xputs_dumb (const char *str)
void (*grub_xputs) (const char *str) = grub_xputs_dumb;
static int pending_key = GRUB_TERM_NO_KEY;
int
grub_checkkey (void)
grub_getkey_noblock (void)
{
grub_term_input_t term;
if (pending_key != GRUB_TERM_NO_KEY)
return pending_key;
if (grub_term_poll_usb)
grub_term_poll_usb ();
@ -97,12 +92,12 @@ grub_checkkey (void)
FOR_ACTIVE_TERM_INPUTS(term)
{
pending_key = term->getkey (term);
if (pending_key != GRUB_TERM_NO_KEY)
return pending_key;
int key = term->getkey (term);
if (key != GRUB_TERM_NO_KEY)
return key;
}
return -1;
return GRUB_TERM_NO_KEY;
}
int
@ -112,18 +107,15 @@ grub_getkey (void)
grub_refresh ();
grub_checkkey ();
while (pending_key == GRUB_TERM_NO_KEY)
while (1)
{
ret = grub_getkey_noblock ();
if (ret != GRUB_TERM_NO_KEY)
return ret;
grub_cpu_idle ();
grub_checkkey ();
}
ret = pending_key;
pending_key = GRUB_TERM_NO_KEY;
return ret;
}
void
grub_refresh (void)
{