poll cards when idle
This commit is contained in:
parent
1c3fcdee15
commit
228ccedb5e
3 changed files with 18 additions and 0 deletions
|
@ -29,6 +29,7 @@ struct grub_term_output *grub_term_outputs;
|
||||||
struct grub_term_input *grub_term_inputs;
|
struct grub_term_input *grub_term_inputs;
|
||||||
|
|
||||||
void (*grub_term_poll_usb) (void) = NULL;
|
void (*grub_term_poll_usb) (void) = NULL;
|
||||||
|
void (*grub_net_poll_cards_idle) (void) = NULL;
|
||||||
|
|
||||||
/* Put a Unicode character. */
|
/* Put a Unicode character. */
|
||||||
static void
|
static void
|
||||||
|
@ -91,6 +92,9 @@ grub_checkkey (void)
|
||||||
if (grub_term_poll_usb)
|
if (grub_term_poll_usb)
|
||||||
grub_term_poll_usb ();
|
grub_term_poll_usb ();
|
||||||
|
|
||||||
|
if (grub_net_poll_cards_idle)
|
||||||
|
grub_net_poll_cards_idle ();
|
||||||
|
|
||||||
FOR_ACTIVE_TERM_INPUTS(term)
|
FOR_ACTIVE_TERM_INPUTS(term)
|
||||||
{
|
{
|
||||||
pending_key = term->getkey (term);
|
pending_key = term->getkey (term);
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include <grub/datetime.h>
|
#include <grub/datetime.h>
|
||||||
#include <grub/loader.h>
|
#include <grub/loader.h>
|
||||||
#include <grub/bufio.h>
|
#include <grub/bufio.h>
|
||||||
|
#include <grub/kernel.h>
|
||||||
|
|
||||||
GRUB_MOD_LICENSE ("GPLv3+");
|
GRUB_MOD_LICENSE ("GPLv3+");
|
||||||
|
|
||||||
|
@ -809,6 +810,14 @@ grub_net_poll_cards (unsigned time)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
grub_net_poll_cards_idle_real (void)
|
||||||
|
{
|
||||||
|
struct grub_net_card *card;
|
||||||
|
FOR_NET_CARDS (card)
|
||||||
|
receive_packets (card);
|
||||||
|
}
|
||||||
|
|
||||||
/* Read from the packets list*/
|
/* Read from the packets list*/
|
||||||
static grub_ssize_t
|
static grub_ssize_t
|
||||||
grub_net_fs_read_real (grub_file_t file, char *buf, grub_size_t len)
|
grub_net_fs_read_real (grub_file_t file, char *buf, grub_size_t len)
|
||||||
|
@ -1452,6 +1461,7 @@ GRUB_MOD_INIT(net)
|
||||||
fini_hnd = grub_loader_register_preboot_hook (grub_net_fini_hw,
|
fini_hnd = grub_loader_register_preboot_hook (grub_net_fini_hw,
|
||||||
grub_net_restore_hw,
|
grub_net_restore_hw,
|
||||||
GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK);
|
GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK);
|
||||||
|
grub_net_poll_cards_idle = grub_net_poll_cards_idle_real;
|
||||||
}
|
}
|
||||||
|
|
||||||
GRUB_MOD_FINI(net)
|
GRUB_MOD_FINI(net)
|
||||||
|
@ -1468,4 +1478,5 @@ GRUB_MOD_FINI(net)
|
||||||
grub_net_open = NULL;
|
grub_net_open = NULL;
|
||||||
grub_net_fini_hw (0);
|
grub_net_fini_hw (0);
|
||||||
grub_loader_unregister_preboot_hook (fini_hnd);
|
grub_loader_unregister_preboot_hook (fini_hnd);
|
||||||
|
grub_net_poll_cards_idle = grub_net_poll_cards_idle_real;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,9 @@ grub_machine_get_bootlocation (char **device, char **path);
|
||||||
/* Register all the exported symbols. This is automatically generated. */
|
/* Register all the exported symbols. This is automatically generated. */
|
||||||
void grub_register_exported_symbols (void);
|
void grub_register_exported_symbols (void);
|
||||||
|
|
||||||
|
extern void (*EXPORT_VAR(grub_net_poll_cards_idle)) (void);
|
||||||
|
|
||||||
|
|
||||||
#if ! defined (ASM_FILE)
|
#if ! defined (ASM_FILE)
|
||||||
extern char grub_prefix[];
|
extern char grub_prefix[];
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue