1. 20 Jan, 2016 1 commit
    • Colin Watson's avatar
      Remove pragmas related to -Wunreachable-code · 47e67d80
      Colin Watson authored
      -Wunreachable-code has been a no-op since GCC 4.5; GRUB hasn't been
      compiled with it since 2012; and GCC 6 produces "error:
      '-Wunreachable-code' is not an option that controls warnings" for these.
      
      Fixes Debian bug #812047.
      47e67d80
  2. 07 Nov, 2013 1 commit
    • Vladimir Serbinenko's avatar
      Remove vestiges of -Wunsafe-loop-optimisations. · ec0ebb3f
      Vladimir Serbinenko authored
      	* conf/Makefile.common (CFLAGS_GNULIB): Remove
      	-Wno-unsafe-loop-optimisations.
      	* grub-core/commands/legacycfg.c: Remove -Wunsafe-loop-optimisations
      	pragma.
      	* grub-core/io/gzio.c: Likewise.
      	* grub-core/script/parser.y: Likewise.
      	* grub-core/script/yylex.l: Likewise.
      	* util/grub-mkfont.c: Likewise.
      ec0ebb3f
  3. 24 Feb, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      * conf/Makefile.common (CFLAGS_GNULIB): Add · 4e27343f
      Vladimir 'phcoder' Serbinenko authored
      	-Wno-unsafe-loop-optimizations.
      	* configure.ac: Remove -Wmissing-declarations and -Wmissing-prototypes
      	on tools.
      	* grub-core/commands/legacycfg.c: Add pragma to skip
      	-Wunsafe-loop-optimizations.
      	(check_password_md5_real): Fix loop counter type.
      	* grub-core/commands/testload.c (grub_cmd_testload): Fix over the EOF
      	reading.
      	* grub-core/disk/ldm.c (grub_util_get_ldm): Fix logic error.
      	* grub-core/fs/zfs/zfs_sha256.c (zio_checksum_SHA256): Add safety
      	loop condition.
      	* grub-core/io/gzio.c: Add pragma to skip -Wunsafe-loop-optimizations.
      	* grub-core/lib/LzmaEnc.c (GetOptimum): Avoid possible infinite loop.
      	* grub-core/net/net.c (grub_net_route_address): Add safety loop
      	condition.
      	* grub-core/normal/charset.c (bidi_line_wrap): Likewise.
      	* grub-core/normal/cmdline.c (grub_set_history): Fix loop types and
      	avoid possible infinite loops.
      	* grub-core/script/parser.y: Add pragma to skip -Wmissing-declarations
      	and -Wunsafe-loop-optimizations.
      	* grub-core/script/yylex.l: Likewise.
      	* util/grub-mkfont.c: Add pragma to skip -Wunsafe-loop-optimizations.
      	(print_glyphs): Avoid infinite loops.
      	* util/grub-mkimage.c (compress_kernel_xz): Fix format security.
      4e27343f
  4. 10 Feb, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Increase warning level. · ebcecdf1
      Vladimir 'phcoder' Serbinenko authored
      	* conf/Makefile.common (CFLAGS_GNULIB): Add -Wno-redundant-decls
      	-Wno-unreachable-code -Wno-conversion -Wno-old-style-definition.
      	* configure.ac (HOST_CFLAGS): Add bunch of -W arguments.
      	(TARGET_CFLAGS): Likewise.
      	(HOST_CFLAGS): Add -Werror unless --disable-werror is activated.
      	* grub-core/Makefile.core.def (decompressor_xz): Add
      	-Wno-unreachable-code.
      	(normal): Add -Wno-redundant-decls.
      	(xzio): Add -Wno-unreachable-code.
      	(lzopio): Add -Wno-redundant-decls -Wno-error.
      	* grub-core/commands/acpi.c: Add exception to -Wcast-align.
      	* grub-core/commands/lsacpi.c: Add exception to -Wcast-align.
      	* grub-core/gensymlist.sh: Add exception to -Wmissing-format-attribute.
      	* grub-core/kern/dl.c: Add exception to -Wcast-align.
      	* grub-core/kern/efi/efi.c (grub_efi_modules_addr): Likewise.
      	* grub-core/kern/i386/coreboot/init.c: Add exception to
      	-Wsuggest-attribute=noreturn.
      	* grub-core/kern/ia64/dl.c: Add exception to -Wcast-align.
      	* grub-core/kern/ia64/dl_helper.c: Likewise.
      	* grub-core/kern/mips/dl.c: Likewise.
      	* grub-core/kern/sparc64/dl.c: Likewise.
      	* grub-core/lib/LzmaEnc.c: Add exception to -Wshadow.
      	* grub-core/lib/libgcrypt_wrap/cipher_wrap.h (memcpy): Likewise.
      	(memcmp): Likewise.
      	* grub-core/lib/pbkdf2.c: Add exception to -Wunreachable-code.
      	* grub-core/loader/ia64/efi/linux.c: Add exception to -Wcast-align.
      	* grub-core/loader/mips/linux.c: Likewise.
      	* grub-core/loader/multiboot_elfxx.c: Likewise.
      	* grub-core/script/parser.y: Add exception to -Wunreachable-code.
      	* grub-core/video/sm712.c: Add exception to -Wcast-align.
      	* util/import_gcry.py: Add -Wno-cast-align to modules checked by hand.
      	* grub-core/font/font.c (grub_font_loader_init): Add explicit cast and
      	fixme.
      	* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
      	* grub-core/kern/i386/multiboot_mmap.c (grub_machine_mmap_init):
      	Fix prototype.
      ebcecdf1
  5. 03 Feb, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      * grub-core/commands/ls.c: Gettextize. · 4a9f8346
      Vladimir 'phcoder' Serbinenko authored
              * grub-core/commands/setpci.c: Likewise.
              * grub-core/commands/videotest.c: Likewise.
              * grub-core/disk/geli.c: Likewise.
              * grub-core/kern/mm.c: Likewise.
              * grub-core/lib/relocator.c: Likewise.
              * grub-core/loader/efi/appleloader.c: Likewise.
              * grub-core/loader/i386/xnu.c: Likewise.
              * grub-core/loader/ia64/efi/linux.c: Likewise.
              * grub-core/loader/xnu.c: Likewise.
              * grub-core/net/dns.c: Likewise.
              * grub-core/net/net.c: Likewise.
              * grub-core/script/lexer.c: Likewise.
              * grub-core/script/parser.y: Likewise.
              * grub-core/script/yylex.l: Likewise.
              * util/getroot.c: Likewise.
              * util/grub-setup.c: Likewise.
      4a9f8346
  6. 27 Jun, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Implement time command. · 5ff1d945
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/Makefile.core.def (time): New module.
      	* grub-core/commands/time.c: New file.
      	* grub-core/script/parser.y: Remove "time" keyword.
      	* grub-core/script/yylex.l: Likewise.
      5ff1d945
  7. 23 Mar, 2011 1 commit
  8. 06 May, 2010 1 commit
  9. 05 May, 2010 1 commit
  10. 30 Apr, 2010 1 commit
  11. 29 Apr, 2010 1 commit
  12. 22 Mar, 2010 1 commit
  13. 21 Mar, 2010 1 commit
  14. 25 Jan, 2010 1 commit
  15. 23 Jan, 2010 3 commits
  16. 22 Jan, 2010 1 commit
  17. 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
  18. 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
  19. 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
  20. 01 Feb, 2009 1 commit
  21. 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
  22. 10 Jan, 2009 1 commit
    • robertmh's avatar
      2009-01-10 Robert Millan <rmh@aybabtu.com> · f36cc108
      robertmh authored
                  Update a few copyright years which we forgot to do in 2008 (only for
                  files whose changes made in 2008 were copyright-significant)
      
                  * Makefile.in: Add 2008 to Copyright line.
                  * disk/ieee1275/ofdisk.c: Likewise.
                  * disk/efi/efidisk.c: Likewise.
                  * kern/dl.c: Likewise.
                  * kern/sparc64/ieee1275/init.c: Likewise.
                  * kern/mm.c: Likewise.
                  * kern/efi/mm.c: Likewise.
                  * boot/i386/pc/boot.S: Likewise.
                  * genfslist.sh: Likewise.
                  * fs/iso9660.c: Likewise.
                  * fs/hfs.c: Likewise.
                  * fs/jfs.c: Likewise.
                  * fs/minix.c: Likewise.
                  * fs/ufs.c: Likewise.
                  * gensymlist.sh.in: Likewise.
                  * genkernsyms.sh.in: Likewise.
                  * include/grub/misc.h: Likewise.
                  * include/grub/types.h: Likewise.
                  * include/grub/symbol.h: Likewise.
                  * include/grub/elf.h: Likewise.
                  * include/grub/kernel.h: Likewise.
                  * include/grub/disk.h: Likewise.
                  * include/grub/dl.h: Likewise.
                  * include/grub/i386/linux.h: Likewise.
                  * include/grub/i386/pc/biosdisk.h: Likewise.
                  * include/grub/efi/api.h: Likewise.
                  * include/grub/efi/pe32.h: Likewise.
                  * include/grub/util/misc.h: Likewise.
                  * normal/execute.c: Likewise.
                  * normal/arg.c: Likewise.
                  * normal/completion.c: Likewise.
                  * normal/lexer.c: Likewise.
                  * normal/parser.y: Likewise.
                  * normal/misc.c: Likewise.
                  * commands/i386/pc/vbeinfo.c: Likewise.
                  * commands/hexdump.c: Likewise.
                  * commands/terminal.c: Likewise.
                  * commands/ls.c: Likewise.
                  * commands/help.c: Likewise.
                  * partmap/pc.c: Likewise.
                  * loader/efi/chainloader.c: Likewise.
                  * loader/multiboot_loader.c: Likewise.
                  * loader/i386/pc/multiboot2.c: Likewise.
                  * term/efi/console.c: Likewise.
                  * term/i386/pc/serial.c: Likewise.
                  * util/lvm.c: Likewise.
                  * util/console.c: Likewise.
                  * util/i386/efi/grub-mkimage.c: Likewise.
                  * util/raid.c: Likewise.
      f36cc108
  23. 02 Jul, 2008 1 commit
  24. 15 Jan, 2008 1 commit
    • bean's avatar
      2008-01-15 Bean <bean123ch@gmail.com> · a83ccafd
      bean authored
      	* normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
      	(grub_script_execute_cmdline): Reset grub_errno.
      
      	* normal/main.c (read_config_file): Reset grub_errno.
      
      	* normal/parse.y (script_init): New.
      	(script): Move function and menuentry here.
      	(delimiter): New.
      	(command): Add delimiter at the end of command.
      	(commands): Adjust to match the new command.
      	(commandblock): Remove grub_script_lexer_record_start.
      	(menuentry): Add grub_script_lexer_record_start, use the new commands.
      	(if): Use the new commands.
      
      	* conf/common.rmk (pkgdata_MODULES): Add echo.mod.
      a83ccafd
  25. 30 Dec, 2007 1 commit
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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