d05f0df3eb
* Makefile.in (pkglib_DATA): Add handler.lst. (handler.lst): New rule. * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * genhandlerlist.sh: New file. * genmk.rb: Add rules to generate handler.lst. * include/grub/normal.h (grub_file_getline): New function definition. (read_handler_list): Likewise. (free_handler_list): Likewise. * include/grub/term.h (grub_term_register_input): Add name parameter for auto generation of handler.lst. (grub_term_register_output): Likewise. * normal/handler.c: New file. * normal/main.c (get_line): Renamed to grub_file_getline. (read_config_file): Use the newly renamed grub_file_getline. (read_command_list): Likewise. (read_fs_list): Likewise. (grub_normal_execute): Call read_handler_list to parse handler.lst. (GRUB_MOD_FINI): Call free_handler_list to free handler list. * term/efi/console.c (grub_console_init): Add name parameter for auto generation of handler.lst. * term/gfxterm.c: Likewise. * term/i386/pc/at_keyboard.c: Likewise. * term/i386/pc/console.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/i386/pc/vga.c: Likewise. * term/i386/pc/vga_text.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. * term/usb_keyboard.c: Likewise.
62 lines
1.9 KiB
C
62 lines
1.9 KiB
C
/*
|
|
* GRUB -- GRand Unified Bootloader
|
|
* Copyright (C) 2002,2003,2005,2007,2008 Free Software Foundation, Inc.
|
|
*
|
|
* GRUB is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* GRUB is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <grub/machine/console.h>
|
|
#include <grub/term.h>
|
|
#include <grub/types.h>
|
|
|
|
static struct grub_term_input grub_console_term_input =
|
|
{
|
|
.name = "console",
|
|
.checkkey = grub_console_checkkey,
|
|
.getkey = grub_console_getkey,
|
|
};
|
|
|
|
static struct grub_term_output grub_console_term_output =
|
|
{
|
|
.name = "console",
|
|
.putchar = grub_console_putchar,
|
|
.getcharwidth = grub_console_getcharwidth,
|
|
.getwh = grub_console_getwh,
|
|
.getxy = grub_console_getxy,
|
|
.gotoxy = grub_console_gotoxy,
|
|
.cls = grub_console_cls,
|
|
.setcolorstate = grub_console_setcolorstate,
|
|
.setcolor = grub_console_setcolor,
|
|
.getcolor = grub_console_getcolor,
|
|
.setcursor = grub_console_setcursor,
|
|
.flags = 0,
|
|
};
|
|
|
|
void
|
|
grub_console_init (void)
|
|
{
|
|
grub_term_register_output ("console", &grub_console_term_output);
|
|
grub_term_register_input ("console", &grub_console_term_input);
|
|
}
|
|
|
|
void
|
|
grub_console_fini (void)
|
|
{
|
|
/* This is to make sure the console is restored to text mode before
|
|
we boot. */
|
|
grub_term_set_current_output (&grub_console_term_output);
|
|
|
|
grub_term_unregister_input (&grub_console_term_input);
|
|
grub_term_unregister_output (&grub_console_term_output);
|
|
}
|