1. 15 Jan, 2013 1 commit
    • Colin Watson's avatar
      Remove nested functions from script reading and parsing. · 09fd6d82
      Colin Watson authored
      * grub-core/kern/parser.c (grub_parser_split_cmdline): Add
      getline_data argument, passed to getline.
      * grub-core/kern/rescue_parser.c (grub_rescue_parse_line): Add
      getline_data argument, passed to grub_parser_split_cmdline.
      * grub-core/script/lexer.c (grub_script_lexer_yywrap): Pass
      lexerstate->getline_data to lexerstate->getline.
      (grub_script_lexer_init): Add getline_data argument, saved in
      lexerstate->getline_data.
      * grub-core/script/main.c (grub_normal_parse_line): Add getline_data
      argument, passed to grub_script_parse.
      * grub-core/script/script.c (grub_script_parse): Add getline_data
      argument, passed to grub_script_lexer_init.
      * include/grub/parser.h (grub_parser_split_cmdline): Update
      prototype.  Update all callers to pass appropriate getline data.
      (struct grub_parser.parse_line): Likewise.
      (grub_rescue_parse_line): Likewise.
      * include/grub/reader.h (grub_reader_getline_t): Add void *
      argument.
      * include/grub/script_sh.h (struct grub_lexer_param): Add
      getline_data member.
      (grub_script_parse): Update prototype.  Update all callers to pass
      appropriate getline data.
      (grub_script_lexer_init): Likewise.
      (grub_normal_parse_line): Likewise.
      
      * grub-core/commands/legacycfg.c (legacy_file_getline): Add unused
      data argument.
      * grub-core/kern/parser.c (grub_parser_execute: getline): Make
      static instead of nested.  Rename to ...
      (grub_parser_execute_getline): ... this.
      * grub-core/kern/rescue_reader.c (grub_rescue_read_line): Add unused
      data argument.
      * grub-core/normal/main.c (read_config_file: getline): Make static
      instead of nested.  Rename to ...
      (read_config_file_getline): ... this.
      (grub_normal_read_line): Add unused data argument.
      * grub-core/script/execute.c (grub_script_execute_sourcecode:
      getline): Make static instead of nested.  Rename to ...
      (grub_script_execute_sourcecode_getline): ... this.
      * util/grub-script-check.c (main: get_config_line): Make static
      instead of nested.
      09fd6d82
  2. 25 Nov, 2010 1 commit
  3. 19 Nov, 2010 1 commit
  4. 28 Aug, 2010 1 commit
  5. 06 May, 2010 1 commit
  6. 05 May, 2010 1 commit
  7. 23 Jan, 2010 2 commits
  8. 22 Jan, 2010 1 commit
  9. 23 Nov, 2009 1 commit
    • Robert Millan's avatar
      2009-11-23 Robert Millan <rmh.grub@aybabtu.com> · f515aa62
      Robert Millan authored
              * script/sh/execute.c: Move from here ...
              * script/execute.c: ... to here.  Update all users.
              * script/sh/function.c: Move from here ...
              * script/function.c: ... to here.  Update all users.
              * script/sh/lexer.c: Move from here ...
              * script/lexer.c: ... to here.  Update all users.
              * script/sh/main.c: Move from here ...
              * script/main.c: ... to here.  Update all users.
              * script/sh/parser.y: Move from here ...
              * script/parser.y: ... to here.  Update all users.
              * script/sh/script.c: Move from here ...
              * script/script.c: ... to here.  Update all users.
      f515aa62
  10. 25 Aug, 2009 1 commit
    • phcoder's avatar
      2009-08-24 Vladimir Serbinenko <phcoder@gmail.com> · 48e40bff
      phcoder authored
      	* script/sh/function.c (grub_script_function_find): Cut error message
      	not to flood terminal.
      	* script/sh/lexer.c (grub_script_yylex): Remove command line length
      	limit.
      	* script/sh/script.c (grub_script_arg_add): Duplicate string.
      48e40bff
  11. 17 Jul, 2009 1 commit
    • proski's avatar
      2009-07-16 Pavel Roskin <proski@gnu.org> · eab58da2
      proski authored
      	* kern/mm.c (grub_zalloc): New function.
      	(grub_debug_zalloc): Likewise.
      	* include/grub/mm.h: Declare grub_zalloc() and
      	grub_debug_zalloc().
      	* util/misc.c (grub_zalloc): New function.
      	* bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc()
      	instead of grub_malloc(), remove unneeded initializations.
      	* bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise.
      	* commands/extcmd.c (grub_extcmd_dispatcher): Likewise.
      	* commands/parttool.c (grub_cmd_parttool): Likewise.
      	* disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
      	* disk/raid5_recover.c (grub_raid5_recover): Likewise.
      	* disk/raid6_recover.c (grub_raid6_recover): Likewise.
      	* disk/usbms.c (grub_usbms_finddevs): Likewise.
      	* efiemu/mm.c (grub_efiemu_request_memalign): Likewise.
      	* efiemu/pnvram.c (grub_efiemu_pnvram): Likewise.
      	(grub_cmd_efiemu_pnvram): Likewise.
      	* fs/i386/pc/pxe.c (grub_pxefs_open): Likewise.
      	* fs/iso9660.c (grub_iso9660_mount): Likewise.
      	(grub_iso9660_iterate_dir): Likewise.
      	* fs/jfs.c (grub_jfs_opendir): Likewise.
      	* fs/ntfs.c (list_file): Likewise.
      	(grub_ntfs_mount): Likewise.
      	* kern/disk.c (grub_disk_open): Likewise.
      	* kern/dl.c (grub_dl_load_core): Likewise.
      	* kern/elf.c (grub_elf_file): Likewise.
      	* kern/env.c (grub_env_context_open): Likewise.
      	(grub_env_set): Likewise.
      	(grub_env_set_data_slot): Likewise.
      	* kern/file.c (grub_file_open): Likewise.
      	* kern/fs.c (grub_fs_blocklist_open): Likewise.
      	* loader/i386/multiboot.c (grub_module): Likewise.
      	* loader/xnu.c (grub_xnu_create_key): Likewise.
      	(grub_xnu_create_value): Likewise.
      	* normal/main.c (grub_normal_add_menu_entry): Likewise.
      	(read_config_file): Likewise.
      	* normal/menu_entry.c (make_screen): Likewise.
      	* partmap/sun.c (sun_partition_map_iterate): Likewise.
      	* script/sh/lexer.c (grub_script_lexer_init): Likewise.
      	* script/sh/script.c (grub_script_parse): Likewise.
      	* video/bitmap.c (grub_video_bitmap_create): Likewise.
      	* video/readers/jpeg.c (grub_video_reader_jpeg): Likewise.
      	* video/readers/png.c (grub_png_output_byte): Likewise.
      	(grub_video_reader_png): Likewise.
      eab58da2
  12. 04 Jun, 2009 1 commit
    • phcoder's avatar
      2009-06-04 Vladimir Serbinenko <phcoder@gmail.com> · fda6cb98
      phcoder authored
      	Script fixes
      
      	* include/grub/script_sh.h (grub_script_cmdline): remove cmdline
      	(grub_lexer_param): add tokenonhold
      	(grub_script_create_cmdline): remove cmdline. All callers updated
      	(grub_script_function_create): make functionname
      	grub_script_arg. All callers updated
      	(grub_script_execute_argument_to_string): new prototype
      	* kern/parser.c (state_transitions): reorder
      	(grub_parser_cmdline_state): fix a bug and make more compact
      	* script/sh/execute.c (grub_script_execute_argument_to_string): 
      	make global
      	(grub_script_execute_cmdline): use new format
      	* script/sh/function.c (grub_script_function_create): make functionname
      	grub_script_arg. All callers updated
      	* script/sh/lexer.c (grub_script_lexer_init): initilaize tokenonhold
      	(grub_script_yylex): remove
      	(grub_script_yylex2): renamed to ...
      	(grub_script_yylex): ...renamed
      	parse the expressions like a${b}c
      	* script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
      	(GRUB_PARSER_TOKEN_VAR): remove
      	(GRUB_PARSER_TOKEN_NAME): likewise
      	("if"): declare as typeless
      	("while"): likewise
      	("function"): likewise
      	("else"): likewise
      	("then"): likewise
      	("fi"): likewise
      	(text): remove
      	(argument): likewise
      	(script): accept empty scripts and make exit on error
      	(arguments): use GRUB_PARSER_TOKEN_ARG
      	(function): likewise
      	(command): move error handling to script
      	(menuentry): move grub_script_lexer_ref before
      	* script/sh/script.c (grub_script_create_cmdline): remove cmdline 
      	argument. All callers updated
      fda6cb98
  13. 03 May, 2009 1 commit
    • bean's avatar
      2009-05-02 Bean <bean123ch@gmail.com> · d558e6b5
      bean authored
      	* conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
      	script/sh/parser.y.
      	(pkglib_MODULES): Add normal.mod and sh.mod.
      	(normal_SOURCES): New variable.
      	(normal_mod_CFLAGS): Likewise.
      	(normal_mod_LDFLAGS): Likewise.
      	(sh_mod_SOURCES): Likewise.
      	(sh_mod_CFLAGS): Likewise.
      	(sh_mod_LDFLAGS): Likewise.
      
      	* conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
      	script/sh/lexer.c_DEPENDENCIES.
      	(kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
      	kern/rescue_reader.c and kern/rescue_parser.c.
      	(kernel_img_HEADERS): Remove rescue.h, add reader.h.
      	(grub_emu_SOURCES): Change source files.
      	(pkglib_MODULES): Remove normal.mod.
      	(normal_SOURCES): Removed.
      	(normal_mod_CFLAGS): Likewise.
      	(normal_mod_LDFLAGS): Likewise.
      	* conf/i386-coreboot.rmk: Likewise.
      	* conf/i386-efi.rmk: Likewise.
      	* conf/i386-ieee1276.rmk: Likewise.
      	* conf/powerpc-ieee1275.rmk: Likewise.
      	* conf/sparc64-ieee1275.rmk: Likewise.
      	* conf/x86_64-efi.rmk: Likewise.
      
      	* include/grub/command.h (grub_command_execute): New inline function.
      
      	* include/grub/menu.h (grub_menu_entry): Removed commands field.
      
      	* include/grub/normal.h: Remove <grub/setjmp.h>.
      	(grub_fs_module_list): Moved to normal/autofs.c.
      	(grub_exit_env): Removed.
      	(grub_command_execute): Likewise.
      	(grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
      	parameter script.
      	(read_command_list): New function declaration.
      	(read_fs_list): Likewise.
      
      	* include/parser.h: Include <grub/reader.h>.
      	(grub_parser_split_cmdline): Change type of getline parameter.
      	(grub_parser): New structure.
      	(grub_parser_class): New variable.
      	(grub_parser_execute): New function declaration.
      	(grub_register_rescue_parser): Likewise.
      	(grub_parser_register): New inline function.
      	(grub_parser_unregister): Likewise.
      	(grub_parser_get_current): Likewise.
      	(grub_parser_set_current): Likewise.
      
      	* include/grub/reader.h: New file.
      	* kern/reader.c: Likewise.
      	* kern/rescue_parser.c: Likewise.
      	* kern/rescue_reader.c: Likewise.
      	* normal/autofs.c: Likewise.
      	* normal/dyncmd.c: Likewise.
      
      	* include/grub/rescue.h: Removed.
      	* normal/command.h: Likewise.
      
      	* include/grub/script.h: Moved to ...
      	* include/grub/script_sh.h: ... Moved here.
      	* normal/execute.c: Moved to ...
      	* script/sh/execute.c: ... Moved here.
      	* normal/function.c: Moved to ...
      	* script/sh/function.c: ... Moved here.
      	* normal/lexer.c: Moved to ...
      	* script/sh/lexer.c: ... Moved here.
      	* normal/parser.y: Moved to ...
      	* script/sh/parser.y: ... Moved here.
      	* normal/script.c: Moved to ...
      	* script/sh/script.c: ... Moved here.
      
      	* normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
      	<grub/reader.h>.
      	(grub_exit_env): Removed.
      	(fs_module_list): Moved to normal/autofs.c.
      	(grub_file_getline): Don't handle comment here.
      	(free_menu): Skip removed field entry->commands.
      	(grub_normal_menu_addentry): Removed as grub_menu_entry, removed
      	script parameter.
      	(read_config_file): Removed nested parameter, change getline function.
      	(grub_enter_normal_mode): Removed.
      	(grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
      	(read_command_list): Likewise.
      	(autoload_fs_module): Moved to normal/autofs.c.
      	(read_fs_list): Likewise.
      	(reader_nested): New variable.
      	(grub_normal_execute): Run parser.sh to switch to sh parser.
      	(grub_cmd_rescue): Removed.
      	(cmd_normal): Removed.
      	(grub_cmd_normal): Unregister itself at the beginning. Don't register
      	rescue command.
      	(grub_cmdline_run): New function.
      	(grub_normal_reader_init): Likewise.
      	(grub_normal_read_line): Likewise.
      	(grub_env_write_pager): Likewise.
      	(cmdline): New variable.
      	(grub_normal_reader): Likewise.
      	(GRUB_MOD_INIT): Register normal reader and set as current, register
      	pager hook, register normal command with grub_register_command_prio,
      	so that it won't show up in command.lst.
      	(GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
      	grub_fs_autoload_hook.
      
      	* normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
      	(grub_menu_execute_entry): Replace grub_script_execute with
      	grub_parser_execute, change parameter to grub_command_execute.
      
      	* normal/menu_text.c: Remove <grub/script.h>.
      
      	* normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
      	and <grub/parser.h>.
      	(run): Change editor_getline to use new parser interface. Change
      	parameter to grub_command_execute.
      
      	* kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
      	<grub/reader.h> and <grub/parser.h>.
      	(grub_load_normal_mode): Execute normal command.
      	(grub_main): Call grub_register_core_commands,
      	grub_register_rescue_parser and grub_register_rescue_reader, use
      	grub_reader_loop to enter input loop.
      
      	* kern/parser.c (grub_parser_spli_cmdline): Change type of getline
      	parameter.
      	(grub_parser_class): New variable.
      	(grub_parser_execute): New function.
      
      	* loader/i386/multiboot.c: Remove <grub/rescue.h>.
      	* loader/multiboot2.c: Likewise.
      	* loader/sparc64/ieee1275/linux.c: Likewise.
      
      	* util/grub-emu.c (read_command_list): New dummy function.
      d558e6b5
  14. 31 Jan, 2009 1 commit
    • chaac's avatar
      2009-01-31 Colin D Bennett <colin@gibibit.com> · 6fa42fa6
      chaac authored
      	* normal/main.c: Add include to grub/menu_viewer.h. 
      	(free_menu_entry_classes): Added.
      	(grub_normal_menu_addentry): Added class property handling.
      	(grub_normal_execute): Changed to use new menu viewer for menu viewing.
      	(GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
      
      	* normal/menu_viewer.c: New file.
      
      	* normal/menu.c (run_menu_entry): Renamed to ...
      	(grub_menu_execute_entry): ... this and	made it as global.
      	(grub_menu_run): Renamed to ...
      	(show_text_menu): ... this and made it local.
      	(show_text_menu): Adapt to new function names.
      	(grub_normal_terminal_menu_viewer): New global variable.
      
      	* include/grub/menu.h: New file.
      
      	* include/grub/menu_viewer.h: New file.
      
      	* include/grub/normal.h: Added include to grub/menu.h.
      	(grub_menu_entry): Moved to include/grub/menu.h.
      	(grub_menu_entry_t): Likewise.
      	(grub_menu): Likewise.
      	(grub_menu_t): Likewise.
      	(grub_normal_terminal_menu_viewer): Added.
      	(grub_menu_execute_entry): Likewise.
      	(grub_menu_run): Removed.
      
      	* DISTLIST: Added include/grub/menu.h.
      	Added include/grub/menu_viewer.h.
      	Added normal/menu_viewer.c.
      
      2009-01-31  Vesa Jääskeläinen  <chaac@nic.fi>
      
      	* normal/execute.c (grub_script_execute_menuentry): Changed to use
      	arglist for menutitle arguments.
      
      	* normal/main.c (grub_normal_menu_addentry): Likewise.
      
      	* normal/parser.y (menuentry): Likewise.
      
      	* normal/script.c (grub_script_create_cmdmenu): Likewise.
      
      	* include/grub/script.h (grub_script_cmd_menuentry): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      
      	* include/grub/normal.h (grub_normal_menu_addentry): Likewise.
      
      	* conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
      	changes.
      
      	* conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      
      	* conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
      6fa42fa6
  15. 30 Dec, 2007 1 commit
  16. 22 Jul, 2007 1 commit
    • okuji's avatar
      2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> · 5a79f472
      okuji authored
          Migrate to GNU General Public License Version 3.
      
          * COPYING: Replaced with the plain text version of GPLv3.
      
          * config.guess: Updated from gnulib.
          * config.sub: Likewise.
      
          * geninit.sh: Output a GPLv3 copyright notice.
          * geninitheader.sh: Likewise.
          * genmodsrc.sh: Likewise.
          * gensymlist.sh.in: Likewise.
      
          * boot/i386/pc/boot.S: Upgraded to GPLv3.
          * boot/i386/pc/diskboot.S: Likewise.
          * boot/i386/pc/pxeboot.S: Likewise.
          * commands/blocklist.c: Likewise.
          * commands/boot.c: Likewise.
          * commands/cat.c: Likewise.
          * commands/cmp.c: Likewise.
          * commands/configfile.c: Likewise.
          * commands/echo.c: Likewise.
          * commands/help.c: Likewise.
          * commands/ls.c: Likewise.
          * commands/search.c: Likewise.
          * commands/terminal.c: Likewise.
          * commands/test.c: Likewise.
          * commands/videotest.c: Likewise.
          * commands/i386/cpuid.c: Likewise.
          * commands/i386/pc/halt.c: Likewise.
          * commands/i386/pc/play.c: Likewise.
          * commands/i386/pc/reboot.c: Likewise.
          * commands/i386/pc/vbeinfo.c: Likewise.
          * commands/i386/pc/vbetest.c: Likewise.
          * commands/ieee1275/halt.c: Likewise.
          * commands/ieee1275/reboot.c: Likewise.
          * commands/ieee1275/suspend.c: Likewise.
          * disk/loopback.c: Likewise.
          * disk/lvm.c: Likewise.
          * disk/raid.c: Likewise.
          * disk/efi/efidisk.c: Likewise.
          * disk/i386/pc/biosdisk.c: Likewise.
          * disk/ieee1275/ofdisk.c: Likewise.
          * font/manager.c: Likewise.
          * fs/affs.c: Likewise.
          * fs/ext2.c: Likewise.
          * fs/fat.c: Likewise.
          * fs/fshelp.c: Likewise.
          * fs/hfs.c: Likewise.
          * fs/hfsplus.c: Likewise.
          * fs/iso9660.c: Likewise.
          * fs/jfs.c: Likewise.
          * fs/minix.c: Likewise.
          * fs/sfs.c: Likewise.
          * fs/ufs.c: Likewise.
          * fs/xfs.c: Likewise.
          * hello/hello.c: Likewise.
          * include/grub/acorn_filecore.h: Likewise.
          * include/grub/arg.h: Likewise.
          * include/grub/bitmap.h: Likewise.
          * include/grub/boot.h: Likewise.
          * include/grub/cache.h: Likewise.
          * include/grub/device.h: Likewise.
          * include/grub/disk.h: Likewise.
          * include/grub/dl.h: Likewise.
          * include/grub/elfload.h: Likewise.
          * include/grub/env.h: Likewise.
          * include/grub/err.h: Likewise.
          * include/grub/file.h: Likewise.
          * include/grub/font.h: Likewise.
          * include/grub/fs.h: Likewise.
          * include/grub/fshelp.h: Likewise.
          * include/grub/gzio.h: Likewise.
          * include/grub/hfs.h: Likewise.
          * include/grub/kernel.h: Likewise.
          * include/grub/loader.h: Likewise.
          * include/grub/lvm.h: Likewise.
          * include/grub/misc.h: Likewise.
          * include/grub/mm.h: Likewise.
          * include/grub/net.h: Likewise.
          * include/grub/normal.h: Likewise.
          * include/grub/parser.h: Likewise.
          * include/grub/partition.h: Likewise.
          * include/grub/pc_partition.h: Likewise.
          * include/grub/raid.h: Likewise.
          * include/grub/rescue.h: Likewise.
          * include/grub/script.h: Likewise.
          * include/grub/setjmp.h: Likewise.
          * include/grub/symbol.h: Likewise.
          * include/grub/term.h: Likewise.
          * include/grub/terminfo.h: Likewise.
          * include/grub/tparm.h: Likewise.
          * include/grub/types.h: Likewise.
          * include/grub/video.h: Likewise.
          * include/grub/efi/api.h: Likewise.
          * include/grub/efi/chainloader.h: Likewise.
          * include/grub/efi/console.h: Likewise.
          * include/grub/efi/console_control.h: Likewise.
          * include/grub/efi/disk.h: Likewise.
          * include/grub/efi/efi.h: Likewise.
          * include/grub/efi/pe32.h: Likewise.
          * include/grub/efi/time.h: Likewise.
          * include/grub/i386/linux.h: Likewise.
          * include/grub/i386/setjmp.h: Likewise.
          * include/grub/i386/types.h: Likewise.
          * include/grub/i386/efi/kernel.h: Likewise.
          * include/grub/i386/efi/loader.h: Likewise.
          * include/grub/i386/efi/time.h: Likewise.
          * include/grub/i386/pc/biosdisk.h: Likewise.
          * include/grub/i386/pc/boot.h: Likewise.
          * include/grub/i386/pc/chainloader.h: Likewise.
          * include/grub/i386/pc/console.h: Likewise.
          * include/grub/i386/pc/init.h: Likewise.
          * include/grub/i386/pc/kernel.h: Likewise.
          * include/grub/i386/pc/loader.h: Likewise.
          * include/grub/i386/pc/memory.h: Likewise.
          * include/grub/i386/pc/multiboot.h: Likewise.
          * include/grub/i386/pc/serial.h: Likewise.
          * include/grub/i386/pc/time.h: Likewise.
          * include/grub/i386/pc/vbe.h: Likewise.
          * include/grub/i386/pc/vbeblit.h: Likewise.
          * include/grub/i386/pc/vbefill.h: Likewise.
          * include/grub/i386/pc/vbeutil.h: Likewise.
          * include/grub/i386/pc/vga.h: Likewise.
          * include/grub/ieee1275/ieee1275.h: Likewise.
          * include/grub/ieee1275/ofdisk.h: Likewise.
          * include/grub/powerpc/libgcc.h: Likewise.
          * include/grub/powerpc/setjmp.h: Likewise.
          * include/grub/powerpc/types.h: Likewise.
          * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
          * include/grub/powerpc/ieee1275/console.h: Likewise.
          * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
          * include/grub/powerpc/ieee1275/kernel.h: Likewise.
          * include/grub/powerpc/ieee1275/loader.h: Likewise.
          * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
          * include/grub/powerpc/ieee1275/time.h: Likewise.
          * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
          * include/grub/sparc64/libgcc.h: Likewise.
          * include/grub/sparc64/setjmp.h: Likewise.
          * include/grub/sparc64/types.h: Likewise.
          * include/grub/sparc64/ieee1275/console.h: Likewise.
          * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
          * include/grub/sparc64/ieee1275/kernel.h: Likewise.
          * include/grub/sparc64/ieee1275/time.h: Likewise.
          * include/grub/util/biosdisk.h: Likewise.
          * include/grub/util/getroot.h: Likewise.
          * include/grub/util/lvm.h: Likewise.
          * include/grub/util/misc.h: Likewise.
          * include/grub/util/raid.h: Likewise.
          * include/grub/util/resolve.h: Likewise.
          * io/gzio.c: Likewise.
          * kern/device.c: Likewise.
          * kern/disk.c: Likewise.
          * kern/dl.c: Likewise.
          * kern/elf.c: Likewise.
          * kern/env.c: Likewise.
          * kern/err.c: Likewise.
          * kern/file.c: Likewise.
          * kern/fs.c: Likewise.
          * kern/loader.c: Likewise.
          * kern/main.c: Likewise.
          * kern/misc.c: Likewise.
          * kern/mm.c: Likewise.
          * kern/parser.c: Likewise.
          * kern/partition.c: Likewise.
          * kern/rescue.c: Likewise.
          * kern/term.c: Likewise.
          * kern/efi/efi.c: Likewise.
          * kern/efi/init.c: Likewise.
          * kern/efi/mm.c: Likewise.
          * kern/i386/dl.c: Likewise.
          * kern/i386/efi/init.c: Likewise.
          * kern/i386/efi/startup.S: Likewise.
          * kern/i386/pc/init.c: Likewise.
          * kern/i386/pc/lzo1x.S: Likewise.
          * kern/i386/pc/startup.S: Likewise.
          * kern/ieee1275/ieee1275.c: Likewise.
          * kern/powerpc/cache.S: Likewise.
          * kern/powerpc/dl.c: Likewise.
          * kern/powerpc/ieee1275/cmain.c: Likewise.
          * kern/powerpc/ieee1275/crt0.S: Likewise.
          * kern/powerpc/ieee1275/init.c: Likewise.
          * kern/powerpc/ieee1275/openfw.c: Likewise.
          * kern/sparc64/cache.S: Likewise.
          * kern/sparc64/dl.c: Likewise.
          * kern/sparc64/ieee1275/init.c: Likewise.
          * kern/sparc64/ieee1275/openfw.c: Likewise.
          * loader/efi/chainloader.c: Likewise.
          * loader/efi/chainloader_normal.c: Likewise.
          * loader/i386/efi/linux.c: Likewise.
          * loader/i386/efi/linux_normal.c: Likewise.
          * loader/i386/pc/chainloader.c: Likewise.
          * loader/i386/pc/chainloader_normal.c: Likewise.
          * loader/i386/pc/linux.c: Likewise.
          * loader/i386/pc/linux_normal.c: Likewise.
          * loader/i386/pc/multiboot.c: Likewise.
          * loader/i386/pc/multiboot_normal.c: Likewise.
          * loader/powerpc/ieee1275/linux.c: Likewise.
          * loader/powerpc/ieee1275/linux_normal.c: Likewise.
          * normal/arg.c: Likewise.
          * normal/cmdline.c: Likewise.
          * normal/command.c: Likewise.
          * normal/completion.c: Likewise.
          * normal/execute.c: Likewise.
          * normal/function.c: Likewise.
          * normal/lexer.c: Likewise.
          * normal/main.c: Likewise.
          * normal/menu.c: Likewise.
          * normal/menu_entry.c: Likewise.
          * normal/misc.c: Likewise.
          * normal/parser.y: Likewise.
          * normal/script.c: Likewise.
          * normal/i386/setjmp.S: Likewise.
          * normal/powerpc/setjmp.S: Likewise.
          * normal/sparc64/setjmp.S: Likewise.
          * partmap/acorn.c: Likewise.
          * partmap/amiga.c: Likewise.
          * partmap/apple.c: Likewise.
          * partmap/gpt.c: Likewise.
          * partmap/pc.c: Likewise.
          * partmap/sun.c: Likewise.
          * term/gfxterm.c: Likewise.
          * term/terminfo.c: Likewise.
          * term/efi/console.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/ieee1275/ofconsole.c: Likewise.
          * util/biosdisk.c: Likewise.
          * util/console.c: Likewise.
          * util/genmoddep.c: Likewise.
          * util/getroot.c: Likewise.
          * util/grub-emu.c: Likewise.
          * util/grub-mkdevicemap.c: Likewise.
          * util/grub-probe.c: Likewise.
          * util/lvm.c: Likewise.
          * util/misc.c: Likewise.
          * util/raid.c: Likewise.
          * util/resolve.c: Likewise.
          * util/update-grub.in: Likewise.
          * util/update-grub_lib.in: Likewise.
          * util/grub.d/00_header.in: Likewise.
          * util/grub.d/10_hurd.in: Likewise.
          * util/grub.d/10_linux.in: Likewise.
          * util/i386/efi/grub-install.in: Likewise.
          * util/i386/efi/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-install.in: Likewise.
          * util/i386/pc/grub-mkimage.c: Likewise.
          * util/i386/pc/grub-mkrescue.in: Likewise.
          * util/i386/pc/grub-setup.c: Likewise.
          * util/i386/pc/misc.c: Likewise.
          * util/powerpc/ieee1275/grub-install.in: Likewise.
          * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
          * util/powerpc/ieee1275/misc.c: Likewise.
          * video/bitmap.c: Likewise.
          * video/video.c: Likewise.
          * video/i386/pc/vbe.c: Likewise.
          * video/i386/pc/vbeblit.c: Likewise.
          * video/i386/pc/vbefill.c: Likewise.
          * video/i386/pc/vbeutil.c: Likewise.
          * video/readers/tga.c: Likewise.
      5a79f472
  17. 23 Sep, 2006 1 commit
  18. 04 Jun, 2006 1 commit
    • okuji's avatar
      2006-06-04 Yoshinori K. Okuji <okuji@enbug.org> · 524a1e6a
      okuji authored
              Clean up the code to support 64-bit addressing in disks and
              files. This change is not enough for filesystems yet.
      
              * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
              type of "start" to grub_uint64_t.
              (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
              grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
              save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
              convert addresses.
      
              * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
              to grub_disk_addr_t.
      
              * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
              string.
      
              * partmap/pc.c (pc_partition_map_iterate): Likewise.
      
              * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
              to char *.
      
              * normal/script.c (grub_script_parse): Remove unused MEMFREE.
      
              * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
      
              * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
      
              * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
              to grub_off_t, to detect an error from grub_file_seek.
              (grub_multiboot_load_elf32): Likewise.
      
              * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
              maximum unsigned long value when an overflow is detected.
              (grub_strtoull): New function.
              (grub_divmod64): Likewise.
              (grub_lltoa): use grub_divmod64.
      
              * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
              grub_disk_addr_t.
              (grub_fs_blocklist_open): Increase P if P is not NULL to advance
              the pointer to next character. Use grub_strtoull instead of
              grub_strtoul.
              (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
              SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
              respectively.
      
              * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
              return value is signed.
              (grub_file_seek): Change the type of OLD to grub_off_t. Do not
              test if OFFSET is less than zero, as OFFSET is unsigned now.
      
              * kern/disk.c (struct grub_disk_cache): Change the type of
              "sector" to grub_disk_addr_t.
              (grub_disk_cache_get_index): Change the type of SECTOR to
              grub_disk_addr_t. Calculate the hash with SECTOR casted to
              unsigned after shifting.
              (grub_disk_cache_invalidate): Change the type of SECTOR to
              grub_disk_addr_t.
              (grub_disk_cache_unlock): Likewise.
              (grub_disk_cache_store): Likewise.
              (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
              START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
              grub_disk_addr_t and grub_uint64_t, respectively.
              (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
              body, as the value of OFFSET is tweaked by
              grub_disk_check_range. Change the types of START_SECTOR, LEN and
              POS to grub_disk_addr_t, grub_size_t and grub_size_t,
              respectively.
              (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
              body, as the value of OFFSET is tweaked by
              grub_disk_check_range. Change the types of LEN and N to
              grub_size_t.
      
              * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
              and "saved_offset" to grub_off_t.
              (test_header): Cast BUF to char *.
              (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
              to char *.
              (grub_gzio_read): Change the types of OFFSET and SIZE to
              grub_off_t and grub_size_t, respectively.
      
              * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
              Removed.
              (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
              (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
              (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
              (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
              (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
      
              * include/grub/types.h (grub_off_t): Unconditionally set to
              grub_uint64_t.
              (grub_disk_addr_t): Changed to grub_uint64_t.
      
              * include/grub/partition.h (struct grub_partition): Change the
              types of "start", "len" and "offset" to grub_disk_addr_t,
              grub_uint64_t and grub_disk_addr_t, respectively.
              (grub_partition_get_start): Return grub_disk_addr_t.
              (grub_partition_get_len): Return grub_uint64_t.
      
              * include/grub/misc.h (grub_strtoull): New prototype.
              (grub_divmod64): Likewise.
      
              * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
              of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
              grub_off_t, respectively.
              All callers and references changed.
      
              * include/grub/fs.h (struct grub_fs): Change the type of LEN to
              grub_size_t in "read".
              All callers and references changed.
      
              * include/grub/file.h (struct grub_file): Change the types of
              "offset" and "size" to grub_off_t and grub_off_t,
              respectively. Change the type of SECTOR to grub_disk_addr_t in
              "read_hook".
              (grub_file_read): Change the type of LEN to grub_size_t.
              (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
              grub_off_t.
              (grub_file_size): Return grub_off_t.
              (grub_file_tell): Likewise.
              All callers and references changed.
      
              * include/grub/disk.h (struct grub_disk_dev): Change the types of
              SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
              "write".
              (struct grub_disk): Change the type of "total_sectors" to
              grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
              "read_hook".
              (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
              grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
              (grub_disk_write): Likewise.
              All callers and references changed.
      
              * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
              char * for grub_strncmp to silence gcc.
              (grub_iso9660_mount): Likewise.
              (grub_iso9660_mount): Likewise.
              (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
              return statement.
              (grub_iso9660_iterate_dir): Likewise.
              (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
      
              * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
      
              * fs/jfs.c (grub_jfs_read_file): Likewise.
      
              * fs/minix.c (grub_jfs_read_file): Likewise.
      
              * fs/sfs.c (grub_jfs_read_file): Likewise.
      
              * fs/ufs.c (grub_jfs_read_file): Likewise.
      
              * fs/xfs.c (grub_jfs_read_file): Likewise.
      
              * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
              and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
              respectively.
      
              * fs/ext2.c (grub_ext2_read_block): When an error happens, set
              BLKNR to -1 instead of returning GRUB_ERRNO.
              (grub_ext2_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
              LEN to grub_disk_addr_t and grub_size_t, respectively.
      
              * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
              grub_file_read.
      
              * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
              string. Do not cast SECTOR explicitly.
      
              * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
              TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
              (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
              grub_disk_addr_t and grub_size_t, respectively. If the sector is
              over 2TB and LBA mode is not supported, raise an error.
              (get_safe_sectors): New function.
              (grub_biosdisk_read): Use get_safe_sectors.
              (grub_biosdisk_write): Likewise.
      
              * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
              (grub_efidisk_write): Likewise.
      
              * disk/loopback.c (delete_loopback): Cosmetic changes.
              (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
              correctly.
              (grub_loopback_open): Likewise.
              (grub_loopback_read): Likewise. Also, change the type of POS to
              grub_off_t, and fix the usage of grub_memset.
      
              * commands/i386/pc/play.c: Include grub/machine/time.h.
      
              * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
              print FILE->SIZE.
      
              * commands/configfile.c: Include grub/env.h.
      
              * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
              GRUB_ERRNO directly instead. Change the type of POS to
              grub_off_t. Follow the coding standard.
      
              * commands/blocklist.c: Include grub/partition.h.
              (grub_cmd_blocklist): Return an error if the underlying device is
              not a disk. Take the starting sector of a partition into account,
              if a partition is used.
      
              * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
              a length field.
              (lba_mode): Support 64-bit addresses.
              (chs_mode): Likewise.
              (copy_buffer): Adapted to the new offsets of a length field and a
              segment field.
              (blocklist_default_start): Allocate 64-bit space.
      
              * boot/i386/pc/boot.S (force_lba): Removed.
              (boot_drive): Moved to under KERNEL_SECTOR.
              (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
              space.
              (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
              is useless.
              (lba_mode): Refactored to support a 64-bit address. More size
              optimization.
              (setup_sectors): Likewise.
      524a1e6a
  19. 29 May, 2006 1 commit
    • chaac's avatar
      2006-05-29 Vesa Jaaskelainen <chaac@nic.fi> · f09771a1
      chaac authored
              * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
              'exec_to_evaluate'.  Renamed field 'true' to 'exec_on_true'.  Renamed
              field 'false' to 'exec_on_false'.
              (grub_script_create_cmdif): Renamed argument names to reflect above
              changes.
      
              * normal/execute.c (grub_script_execute_cmdif): Likewise.
      
              * normal/script.c (grub_script_create_cmdif): Likewise.
      f09771a1
  20. 20 May, 2006 1 commit
    • marco_g's avatar
      2006-05-20 Marco Gerards <marco@gnu.org> · 7dc4f874
      marco_g authored
      	* normal/lexer.c (grub_script_yylex): Don't filter out newlines.
      
      	* normal/parser.y (commandblock): Defined as <cmd>.  A subroutine
      	for `menuentry'.
      	(script): Accept leading newlines.
      	(newlines): New rule to describe 0 or more newlines.
      	(commands): Accept `command' with trailing newline.  Fixed the
      	order in which arguments were passed to `grub_script_add_cmd'.
      	Accept commands separated by newlines.
      	(function): Changed to accept newlines.
      	(menuentry) Rewritten.
      
      	* normal/script.c (grub_script_create_cmdmenu): Add new entries in
      	front of the list, instead of to the end.
      7dc4f874
  21. 17 Apr, 2006 1 commit
    • marco_g's avatar
      2006-17-04 Marco Gerards <marco@gnu.org> · bfa2bd9e
      marco_g authored
      	* include/grub/script.h: Include <grub/parser.h> and
      	"grub_script.tab.h".
      	(struct grub_lexer_param): New struct.
      	(struct grub_parser_param): Likewise.
      	(grub_script_create_arglist): Pass the state in an argument.
      	(grub_script_add_arglist): Likewise.
      	(grub_script_create_cmdline): Likewise.
      	(grub_script_create_cmdblock): Likewise.
      	(grub_script_create_cmdif): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      	(grub_script_add_cmd): Likewise.
      	(grub_script_arg_add): Likewise.
      	(grub_script_lexer_ref): Likewise.
      	(grub_script_lexer_deref): Likewise.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	(grub_script_mem_record): Likewise.
      	(grub_script_mem_record_stop): Likewise.
      	(grub_script_malloc): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_yyparse): Likewise.
      	(grub_script_yyerror): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_lexer_init): Return the state.
      
      	* normal/lexer.c (grub_script_lexer_state): Removed variable.
      	(grub_script_lexer_done): Likewise.
      	(grub_script_lexer_getline): Likewise.
      	(grub_script_lexer_refs): Likewise.
      	(script): Likewise.
      	(newscript): Likewise.
      	(record): Likewise.
      	(recording): Likewise.
      	(recordpos): Likewise.
      	(recordlen): Likewise.
      	(grub_script_lexer_init): Return the state instead of setting
      	global variables.
      	(grub_script_lexer_ref): Use the newly added argument for state
      	instead of globals.
      	(grub_script_lexer_deref): Likewise.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	(recordchar): Likewise.
      	(nextchar): Likewise.
      	(grub_script_yylex2): Likewise.
      	(grub_script_yylex): Likewise.
      	(grub_script_yyerror): Likewise.
      
      	* normal/parser.y (func_mem): Removed variable.
      	(menu_entry): Likewise.
      	(err): Likewise.
      	(%lex-param): New parser option.
      	(%parse-param): Likewise.
      	(script): Always return the AST.
      	(argument): Pass the state around.
      	(arguments): Likewise.
      	(grubcmd): Likewise.
      	(commands): Likewise.
      	(function): Likewise.
      	(menuentry): Likewise.
      	(if_statement): Likewise.
      	(if): Likewise.
      
      	* normal/script.c (grub_script_memused): Removed variable.
      	(grub_script_parsed): Likewise.
      	(grub_script_malloc): Added a state argument.  Use that instead of
      	global variables.
      	(grub_script_mem_record): Likewise.
      	(grub_script_mem_record_stop): Likewise.
      	(grub_script_arg_add): Likewise.
      	(grub_script_add_arglist): Likewise.
      	(grub_script_create_cmdline): Likewise.
      	(grub_script_create_cmdif): Likewise.
      	(grub_script_create_cmdmenu): Likewise.
      	(grub_script_add_cmd): Likewise.
      	(grub_script_parse): Setup the state before calling the parser.
      bfa2bd9e
  22. 16 Apr, 2006 1 commit
    • marco_g's avatar
      2006-16-04 Marco Gerards <marco@gnu.org> · 6de2ee99
      marco_g authored
      	* normal/command.c (grub_command_init): Remove the title command.
      
      	* normal/lexer.c (grub_script_yylex): Renamed from this...
      	(grub_script_yylex2): ... to this.
      	(grub_script_yylex): New function.  Temporary
      	introduced to filter some tokens.
      	(grub_script_yyerror): Print a newline.
      
      	* normal/main.c (read_config_file): Output information about the
      	lines that contain errors.  Wait for a key after all lines have
      	been processed.  Don't return an empty menu.
      
      	* normal/parser.y (func_mem): Don't initialize.
      	(menu_entry): Likewise.
      	(err): New variable.
      	(script): Don't return anything when an error was encountered.
      	(ws, returns): Removed rules.
      	(argument): Disabled concatenated variable support.
      	(arguments): Remove explicit separators.
      	(grubcmd): Likewise.
      	(function): Likewise.
      	(menuentry): Likewise.
      	(if): Likewise.
      	(commands): Likewise.  Add error handling.
      
      	* normal/script.c (grub_script_create_cmdline): If
      	`grub_script_parsed' is 0, assume the parser encountered an error.
      6de2ee99
  23. 17 Jan, 2006 1 commit
    • marco_g's avatar
      2006-01-17 Marco Gerards <marco@gnu.org> · 77c4a393
      marco_g authored
      	* include/grub/normal.h: Include <grub/script.h>.
      	(grub_command_list): Removed struct.
      	(grub_command_list_t): Removed type.
      	(grub_menu_entry): Remove members `num' and `command_list'.  Add
      	members `commands' and `sourcecode'.
      	* include/grub/script.h: Add inclusion guards.
      	(grub_script_cmd_menuentry): New struct.
      	(grub_script_execute_menuentry): New prototype.
      	(grub_script_lexer_record_start): Likewise.
      	(grub_script_lexer_record_stop): Likewise.
      	* normal/execute.c (grub_script_execute_menuentry): New function.
      	* normal/lexer.c (record, recording, recordpos, recordlen): New
      	variables.
      	(grub_script_lexer_record_start): New function.
      	(grub_script_lexer_record_stop): Likewise.
      	(recordchar): Likewise.
      	(nextchar): Likewise.
      	(grub_script_yylex): Use `nextchar' to fetch new characters.  Use
      	2048 as the buffer size.  Add the tokens `menuentry' and `@'.
      	* normal/main.c: Include <grub/parser.h> and <grub/script.h>
      	(current_menu): New variable.
      	(free_menu): Mainly rewritten.
      	(grub_normal_menu_addentry): New function.
      	(read_config_file): Rewritten.
      	* normal/menu.c (run_menu_entry): Mainly rewritten.
      	* normal/menu_entry.c (make_screen): Rewritten te code to insert
      	the menu entry.
      	(run): Mainly rewritten.
      	* normal/parser.y (menu_entry): New variable.
      	(GRUB_PARSER_TOKEN_MENUENTRY): New token.
      	(menuentry): New rule.
      	(command): Add `menuentry'.
      	(if_statement): Allow additional returns before `fi'.
      	* normal/script.c (grub_script_create_cmdmenu): New function.
      77c4a393
  24. 07 Nov, 2005 1 commit
    • marco_g's avatar
      2005-11-06 Marco Gerards <mgerards@xs4all.nl> · daac212a
      marco_g authored
      	Add initial scripting support.
      
      	* commands/test.c: New file.
      	* include/grub/script.h: Likewise.
      	* normal/execute.c: Likewise.
      	* normal/function.c: Likewise.
      	* normal/lexer.c: Likewise.
      	* normal/parser.y: Likewise.
      	* normal/script.c: Likewise.
      
      	* configure.ac: Add `AC_PROG_YACC' test.
      
      	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
      	`normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
      	`normal/function.c' and `normal/script.c'.
      	(normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
      	`grub_script.tab.c', `normal/function.c' and `normal/script.c'.
      	(test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New variables.
      	(pkgdata_MODULES): Add `test.mod'.
      	(grub_script.tab.c): New rule.
      	(grub_script.tab.h): Likewise.
      
      	* include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
      
      	* include/grub/normal.h (grub_test_init): New prototype.
      	(grub_test_fini): Likewise.
      
      	* normal/command.c: Include <grub/script.h>.
      	(grub_command_execute): Rewritten.
      
      	* util/grub-emu.c (main): Call `grub_test_init' and
      	`grub_test_fini'.
      daac212a